Skip to content

GoodPart/GP-Dialog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

º ( 크롬 익스텐션 'Markdown viewer'를 사용하면 깔끔하게 확인 가능합니다, https://chromewebstore.google.com/detail/markdown-viewer/ckkdlimhmcjmikdlpkmbgfkaikojcbjk )

다이얼로그 사용법

목차



빠른 사용법

Install

Dialog 사용을 위해 아래 링크스크립트head에 사용한다.
Dialog.css는 다이얼로그 기본 틀만 잡혀있다. 따라서 별도의 스타일 값을 잡아서 사용한다.

<link rel="stylesheet" href="yogo-dialog-1.0.0/dialog.css" />
<script src="yogo-dialog-1.0.0/dialog.js"></script>

사용하기


HTML

dialog(필수) 생성 후 고유 id를 삽입한다.

<dialog id="default-dialog" title="dialog title here">
    <!-- sombody here -->
</dialog>

자바스크립트

window.load된 후에 사용.

//type
 window.addEventListener("load", ()=> {
    new YogoDialog(type : String, options: Object);
 })

//기본 다이얼로그 생성
const defaultDialog = new YogoDialog("#default-dialog", {
    options : {
        modal : true,
        style: {
            width: 1000, 
            height: 400, 
        },
        header : {
            /*
                24.04.26 - pks
                title 값은 더이상 사용하지 않습니다. (dialog태그의 title로 대체)
                
                이유 : dialog에 title 값이 있으면 내부의 모든 요소에 title의 대체 텍스트가 붙는다.
            */
            // title : "타이틀",
            closeIcon: "ico_x-01--light",
            minimize: {
                icon: "ico_minimize-01--light",
                icons: {
                    mini: "ico_minimize-01--light",
                    maxi: "ico_maximize-01--light"
                }
            },
            events: () => {
                defaultDialog._close()
            }
        },
        footer: [
            {
                title: "취소",
                className: "ui-button size-20 outlined",
                function: () => {
                    defaultDialog._close()
                }
            },
            {
                title: "확인",
                className: "ui-button size-20 toned",
                function: () => {
                    defaultDialog._close()
                }
            }
        ]
    }; 
});

//다이얼로그 확인
defaultDialog._open();


옵션

NAME TYPE DESCRIPTION
modal Boolean = false 모달형태 노출 관련 옵션으로, true일 경우 화면 정 가운데 노출된다. (position : fixed)
className String = "class-name brabra-class add-class" 다이얼로그에 클래스를 추가할 수 있다. (문자열이며, 띄어쓰기를 사용하여 구분)
drag Boolean = true header의 ".yogo-dialog__header"영역을 잡아 이동할 수 있다.
header 옵션과 doPosition() 메소드가 필수이며, modal과는 같이 사용할 수 없다.
header Object 다이얼로그 헤더 영역으로 타입은 Object.
PROPERTIES TYPE DESCRIPTION
title String = "타이틀입니다" 다이얼로그의 헤더 타이틀의 텍스트 값.
(해당 값은 dialog태그의 'title' 로 대체 되었습니다)
closeIcon String = "ico_x-01--light" 헤더영역의 닫기 버튼 아이콘 명.
minimize Object = icons : {...} 헤더영역의 최소, 최대화 버튼.
PROPERTIES TYPE DESCRIPTION
mini String = "ico_minimize-01--light" 최소화 아이콘
maxi String = "ico_maximize-01--light" 이전 크기 원복 아이콘
events Function = ()=> {...} 닫기 버튼 클릭시 실행되는 메소드.
content Object dialog안에 content영역에 대한 선언을 할 수 있다. content옵션은 필수가 아니며, 선언하지 않을 경우, dialog내부 HTML이 content가 된다.
PROPERTIES TYPE DESCRIPTION
typeValue String = "alert" || undefined content영역의 타입을 선언하며, "alert" 이외에는 dialog 태그 안의 내용이 노출된다. alert으로 선언했을 경우, content의 모든 옵션을 사용해야 한다.
icon String = "ico_exclamation-01--dark" typeValue가 "alert"일 경우, icon에 선언된 심볼을 사용한다.
filColor Int = 1 ~ ... typeValue가 "alert"일 경우, "icon"과 "innerText"에 색상을 설정한다. (번호만 사용하며, css로 스타일 값을 선언한다)
innerText String = "bra bra bra" typeValue가 "alert"일 경우, ".dialog-popup__title"에 해당 내용을 추가한다.
events Object 다이얼로그의 생성, 열기, 닫기 등의 동작에 함수를 선언할 수 있다.
PROPERTIES TYPE DESCRIPTION
create Function = ()=> {...} 다이얼로그가 생성되고 난 후의 상태.
beforeOpen 다이얼로그가 생성되고 _open() 전 상태.
open 다이얼로그가 생성되고 난 _open() 후의 상태.
beforeClose 다이얼로그 닫기 전의 상태.
close 다이얼로그 닫기 후의 상태.
style Object 다이얼로그의 넓이 및 높이 값을 선언
PROPERTIES TYPE DESCRIPTION
width Int(default String) 넓이 값, default "fit-content;"
height Int(default String) 높이 값, default "fit-content;"
minWidth Int(default String) 최소 넓이 값, default "intial"
minHeight Int(default String) 최소 높이 값, default "intial"
maxWidth Int(default String) 최대 넓이 값, default "intial"
maxHeight Int(default String) 최소 높이 값, default "intial"

이벤트 메소드

_open()

다이얼로그를 상태를 노출로 변경.

defaultDialog._open();

_close()

다이얼로그를 상태를 비노출로 변경.

defaultDialog._close();

doScroll(wheel)

스크롤시, .yogo-dialog__content영역의 스크롤 값을 알 수 있다.

defaultDialog.doScroll((wheel)=> {
    console.log(wheel);

    /*
    wheel = {
        distance_value: wheelEvent value,
        wheelDirection: "up" || "down",
    }
    */
});

doPosition({of, at, me})

다이얼로그의 상대적 위치를 선언 할 수 있음. (Only modal : false)

NAME TYPE DESCRIPTION
of String = "#dialog-id" 다이얼로그의 위치를 `of` 기준 설정
at Object `of`에서 다이얼로그의 위치를 `at`으로 이동시킨다.
PROPERTIES TYPE DESCRIPTION
horizontal Object 수평 값
PROPERTIES TYPE DESCRIPTION
direction String = "left" || "center" || "right" 수평 값
value Int = 0 at으로 부터 'value'만큼 dialog를 이동
vertical Object 수직 값
PROPERTIES TYPE DESCRIPTION
direction String = "top" || "center" || "bottom" 수평 값
value Int = 0 at으로 부터 'value'만큼 dialog를 이동
me Object `at`으로 이동한 다이얼로그의 상대적 위치를 선언한다.
PROPERTIES TYPE DESCRIPTION
horizontal Object 수평 값
PROPERTIES TYPE DESCRIPTION
direction String = "left" || "center" || "right" 수평 값
vertical Object 수직 값
PROPERTIES TYPE DESCRIPTION
direction String = "top" || "center" || "bottom" 수평 값
dialog1.doPosition({
    of: "#standardPosition",
    at: {
        horizontal: {
            direction: "left",
            value: 0
        },
        vertical: {
            direction: "center",
            value: 0
        }
    },
    me: {
        horizontal: {
            direction: "left",
        },
        vertical: {
            direction: "center",
        }
    }
})


향후 개선 및 추가 사항 등

  • alert 다이얼로그의 사용성 개편이 필요 (현재 dialog내부에 html을 수동 삽입이 강제됨, 자동으로 넣을 수 있도록 수정 필요) - 적용 완료
  • doPosition값이 없을 경우, drag 옵션이 정상적으로 동작하지 않음, 수정이 필요. (right, bottom 값이 초기화 되지 않았기 떄문)
  • 연관되어있는 옵션이 정상적으로 사용되지 않으면 throw error를 사용이 필요. - 진행중

About

회사의 다이얼로그 기능을 만들기만들어 사내 배포한 코드

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors