@sellmate/design-system 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/design-system.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sd-button.sd-guide.sd-icon.sd-portal.entry.cjs.js.map +1 -1
- package/dist/cjs/sd-button_4.cjs.entry.js +7 -7
- package/dist/cjs/sd-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/sd-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/sd-date-box_2.cjs.entry.js +4 -4
- package/dist/cjs/sd-date-picker.cjs.entry.js +2 -2
- package/dist/cjs/sd-date-range-picker.cjs.entry.js +2 -2
- package/dist/cjs/sd-pagination_2.cjs.entry.js +4 -4
- package/dist/cjs/sd-popover.cjs.entry.js +2 -2
- package/dist/cjs/sd-select-option.cjs.entry.js +1 -1
- package/dist/cjs/sd-select.cjs.entry.js +2 -2
- package/dist/cjs/sd-table.cjs.entry.js +2 -2
- package/dist/cjs/sd-tag.cjs.entry.js +1 -1
- package/dist/cjs/sd-tooltip-portal.cjs.entry.js +1 -1
- package/dist/collection/components/sd-button/sd-button.css +5 -0
- package/dist/collection/components/sd-button/sd-button.js +2 -3
- package/dist/collection/components/sd-button/sd-button.js.map +1 -1
- package/dist/collection/components/sd-checkbox/sd-checkbox.css +2 -0
- package/dist/collection/components/sd-checkbox/sd-checkbox.js +2 -3
- package/dist/collection/components/sd-checkbox/sd-checkbox.js.map +1 -1
- package/dist/collection/components/sd-date-box/sd-date-box.js +2 -2
- package/dist/collection/components/sd-date-picker/sd-date-picker.js +2 -2
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
- package/dist/collection/components/sd-guide/sd-guide.css +5 -0
- package/dist/collection/components/sd-guide/sd-guide.js +5 -9
- package/dist/collection/components/sd-guide/sd-guide.js.map +1 -1
- package/dist/collection/components/sd-icon/sd-icon.js +1 -1
- package/dist/collection/components/sd-input/sd-input.js +2 -2
- package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
- package/dist/collection/components/sd-popover/sd-popover.js +2 -2
- package/dist/collection/components/sd-portal/sd-portal.js +1 -1
- package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
- package/dist/collection/components/sd-select/sd-select.js +2 -2
- package/dist/collection/components/sd-table/sd-table.js +2 -2
- package/dist/collection/components/sd-tag/sd-tag.js +1 -1
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
- package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
- package/dist/components/{p-ru6C2WME.js → p-BNrJPeOI.js} +7 -8
- package/dist/components/p-BNrJPeOI.js.map +1 -0
- package/dist/components/{p-B9i2YE0t.js → p-BamrFZ7M.js} +5 -5
- package/dist/components/{p-B9i2YE0t.js.map → p-BamrFZ7M.js.map} +1 -1
- package/dist/components/{p-BYJLcD4q.js → p-BonATi5_.js} +5 -5
- package/dist/components/{p-BYJLcD4q.js.map → p-BonATi5_.js.map} +1 -1
- package/dist/components/{p-CP07OxFR.js → p-CUIR9Siy.js} +4 -4
- package/dist/components/{p-CP07OxFR.js.map → p-CUIR9Siy.js.map} +1 -1
- package/dist/components/{p-BCYA4Zc8.js → p-CpJ7YbAE.js} +3 -3
- package/dist/components/{p-BCYA4Zc8.js.map → p-CpJ7YbAE.js.map} +1 -1
- package/dist/components/{p-C8U-8ibc.js → p-DPjSXfwa.js} +7 -8
- package/dist/components/p-DPjSXfwa.js.map +1 -0
- package/dist/components/{p-CUaQiV_x.js → p-DRnR5yin.js} +3 -3
- package/dist/components/{p-CUaQiV_x.js.map → p-DRnR5yin.js.map} +1 -1
- package/dist/components/{p-BYycGbL4.js → p-Da0ln5XA.js} +7 -7
- package/dist/components/{p-BYycGbL4.js.map → p-Da0ln5XA.js.map} +1 -1
- package/dist/components/{p-_NsXHYCA.js → p-VGi4VXID.js} +5 -5
- package/dist/components/{p-_NsXHYCA.js.map → p-VGi4VXID.js.map} +1 -1
- package/dist/components/{p-CyxZzPBJ.js → p-tCpgW4SF.js} +3 -3
- package/dist/components/{p-CyxZzPBJ.js.map → p-tCpgW4SF.js.map} +1 -1
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-date-box.js +1 -1
- package/dist/components/sd-date-picker.js +6 -6
- package/dist/components/sd-date-range-picker.js +6 -6
- package/dist/components/sd-guide.js +6 -6
- package/dist/components/sd-guide.js.map +1 -1
- package/dist/components/sd-icon.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +5 -5
- package/dist/components/sd-portal.js +1 -1
- package/dist/components/sd-select-option.js +1 -1
- package/dist/components/sd-select.js +7 -7
- package/dist/components/sd-table.js +8 -8
- package/dist/components/sd-tag.js +1 -1
- package/dist/components/sd-tooltip-portal.js +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/{p-2106f2b1.entry.js → p-074da3aa.entry.js} +2 -2
- package/dist/design-system/{p-95e7d47f.entry.js → p-1526bba1.entry.js} +2 -2
- package/dist/design-system/{p-ae72caf9.entry.js → p-1afb87d7.entry.js} +2 -2
- package/dist/design-system/{p-9edcce39.entry.js → p-26b03b36.entry.js} +2 -2
- package/dist/design-system/{p-0be303fc.entry.js → p-615224c5.entry.js} +2 -2
- package/dist/design-system/p-61722b7c.entry.js +2 -0
- package/dist/design-system/p-61722b7c.entry.js.map +1 -0
- package/dist/design-system/{p-3d8c249d.entry.js → p-6b2b3225.entry.js} +2 -2
- package/dist/design-system/p-75add9e4.entry.js +2 -0
- package/dist/design-system/p-75add9e4.entry.js.map +1 -0
- package/dist/design-system/{p-af40a2ec.entry.js → p-7bd79f05.entry.js} +2 -2
- package/dist/design-system/{p-2d8ef8b7.entry.js → p-bff5660e.entry.js} +2 -2
- package/dist/design-system/{p-9e1abc28.entry.js → p-f2a4ad75.entry.js} +2 -2
- package/dist/design-system/{p-3ec8c5aa.entry.js → p-f87fcbac.entry.js} +2 -2
- package/dist/design-system/sd-button.sd-guide.sd-icon.sd-portal.entry.esm.js.map +1 -1
- package/dist/design-system/sd-checkbox.entry.esm.js.map +1 -1
- package/dist/esm/design-system.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sd-button.sd-guide.sd-icon.sd-portal.entry.js.map +1 -1
- package/dist/esm/sd-button_4.entry.js +7 -7
- package/dist/esm/sd-checkbox.entry.js +3 -3
- package/dist/esm/sd-checkbox.entry.js.map +1 -1
- package/dist/esm/sd-date-box_2.entry.js +4 -4
- package/dist/esm/sd-date-picker.entry.js +2 -2
- package/dist/esm/sd-date-range-picker.entry.js +2 -2
- package/dist/esm/sd-pagination_2.entry.js +4 -4
- package/dist/esm/sd-popover.entry.js +2 -2
- package/dist/esm/sd-select-option.entry.js +1 -1
- package/dist/esm/sd-select.entry.js +2 -2
- package/dist/esm/sd-table.entry.js +2 -2
- package/dist/esm/sd-tag.entry.js +1 -1
- package/dist/esm/sd-tooltip-portal.entry.js +1 -1
- package/dist/types/components/sd-guide/sd-guide.d.ts +1 -3
- package/dist/types/components.d.ts +2 -2
- package/package.json +2 -2
- package/dist/components/p-C8U-8ibc.js.map +0 -1
- package/dist/components/p-ru6C2WME.js.map +0 -1
- package/dist/design-system/p-40f06495.entry.js +0 -2
- package/dist/design-system/p-40f06495.entry.js.map +0 -1
- package/dist/design-system/p-bda0d32b.entry.js +0 -2
- package/dist/design-system/p-bda0d32b.entry.js.map +0 -1
- /package/dist/design-system/{p-2106f2b1.entry.js.map → p-074da3aa.entry.js.map} +0 -0
- /package/dist/design-system/{p-95e7d47f.entry.js.map → p-1526bba1.entry.js.map} +0 -0
- /package/dist/design-system/{p-ae72caf9.entry.js.map → p-1afb87d7.entry.js.map} +0 -0
- /package/dist/design-system/{p-9edcce39.entry.js.map → p-26b03b36.entry.js.map} +0 -0
- /package/dist/design-system/{p-0be303fc.entry.js.map → p-615224c5.entry.js.map} +0 -0
- /package/dist/design-system/{p-3d8c249d.entry.js.map → p-6b2b3225.entry.js.map} +0 -0
- /package/dist/design-system/{p-af40a2ec.entry.js.map → p-7bd79f05.entry.js.map} +0 -0
- /package/dist/design-system/{p-2d8ef8b7.entry.js.map → p-bff5660e.entry.js.map} +0 -0
- /package/dist/design-system/{p-9e1abc28.entry.js.map → p-f2a4ad75.entry.js.map} +0 -0
- /package/dist/design-system/{p-3ec8c5aa.entry.js.map → p-f87fcbac.entry.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { resolveColor } from "../../utils/color";
|
|
3
3
|
const ICON_SIZES = {
|
|
4
4
|
xs: 12,
|
|
@@ -50,10 +50,9 @@ export class SdButton {
|
|
|
50
50
|
const buttonClasses = this.getButtonClasses();
|
|
51
51
|
// 유틸로 색상 키 -> HEX 매핑 (없으면 원본 그대로)
|
|
52
52
|
const resolvedColor = resolveColor(this.color);
|
|
53
|
-
return (h("button", { key: '
|
|
53
|
+
return (h(Host, { key: '5fdb366b66bbb66b6481bb111da15441d7d42a3e' }, h("button", { key: 'c5e82af18ca5057cbf19802f69eb1b67a2c8b9dc', class: buttonClasses, type: this.type, disabled: this.disabled, onClick: this.handleClick, style: { '--button-color': resolvedColor, ...this.buttonStyle } }, h("div", { key: 'd6972c4ba6d3b601681b9514431142398b35d798', class: "sd-button__content" }, this.icon && (h("sd-icon", { key: '30e8c5d94f917f3d8f2c0a4211eb3685c1a1499b', class: "sd-button__icon sd-button__icon--left", name: this.icon, size: this.iconSize ? this.iconSize : ICON_SIZES[this.size], color: this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor })), this.label && h("div", { key: '5c69631080667f2945b10734d51d9aaf09cb8128', class: "sd-button__label" }, this.label), this.iconRight && (h("sd-icon", { key: 'b720a86f44ca4c4f8c3a14991028e3e3582d842f', class: "sd-button__icon sd-button__icon--right", name: this.iconRight, size: ICON_SIZES[this.size], color: this.variant === 'primary' ? '#fff' : resolvedColor }))))));
|
|
54
54
|
}
|
|
55
55
|
static get is() { return "sd-button"; }
|
|
56
|
-
static get encapsulation() { return "shadow"; }
|
|
57
56
|
static get originalStyleUrls() {
|
|
58
57
|
return {
|
|
59
58
|
"$": ["sd-button.scss"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-button.js","sourceRoot":"","sources":["../../../src/components/sd-button/sd-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sd-button.js","sourceRoot":"","sources":["../../../src/components/sd-button/sd-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, Event, EventEmitter, Host } from '@stencil/core';\r\nimport { resolveColor } from '../../utils/color';\r\n\r\nexport type ButtonVariant = 'primary' | 'outline' | 'ghost';\r\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\r\n\r\nconst ICON_SIZES: { [key in ButtonSize]: number } = {\r\n xs: 12,\r\n sm: 16,\r\n md: 20,\r\n lg: 24,\r\n};\r\n\r\n@Component({\r\n tag: 'sd-button',\r\n styleUrl: 'sd-button.scss',\r\n})\r\nexport class SdButton {\r\n @Element() el!: HTMLElement;\r\n\r\n @Prop() variant?: ButtonVariant = 'primary';\r\n @Prop() size: ButtonSize = 'sm';\r\n @Prop() color: string = '#025497';\r\n @Prop() label: string = '';\r\n @Prop() disabled: boolean = false;\r\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\r\n @Prop() icon?: IconName;\r\n @Prop() iconColor?: string;\r\n @Prop() iconSize?: number;\r\n @Prop() iconRight?: IconName;\r\n @Prop() noHover: boolean = false;\r\n\r\n @Prop() buttonStyle: StyleProps = {};\r\n @Prop() iconStyle: StyleProps = {};\r\n\r\n @Event() sdClick!: EventEmitter<MouseEvent>;\r\n\r\n private handleClick = (event: MouseEvent) => {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return;\r\n }\r\n this.sdClick.emit(event);\r\n };\r\n\r\n private getButtonClasses(): string {\r\n const classes = ['sd-button'];\r\n\r\n classes.push(`sd-button--${this.variant}`);\r\n classes.push(`sd-button--${this.size}`);\r\n classes.push(`sd-button--color-${this.color}`);\r\n\r\n if (this.disabled) {\r\n classes.push('sd-button--disabled');\r\n }\r\n\r\n if (!this.label && (this.icon || this.iconRight)) {\r\n classes.push('sd-button--icon-only');\r\n }\r\n\r\n if (this.noHover) {\r\n classes.push('sd-button--no-hover');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n render() {\r\n const buttonClasses = this.getButtonClasses();\r\n // 유틸로 색상 키 -> HEX 매핑 (없으면 원본 그대로)\r\n const resolvedColor = resolveColor(this.color);\r\n\r\n return (\r\n <Host>\r\n <button\r\n class={buttonClasses}\r\n type={this.type}\r\n disabled={this.disabled}\r\n onClick={this.handleClick}\r\n style={{ '--button-color': resolvedColor, ...this.buttonStyle }}\r\n >\r\n <div class=\"sd-button__content\">\r\n {this.icon && (\r\n <sd-icon\r\n class=\"sd-button__icon sd-button__icon--left\"\r\n name={this.icon}\r\n size={this.iconSize ? this.iconSize : ICON_SIZES[this.size!]}\r\n color={\r\n this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor\r\n }\r\n ></sd-icon>\r\n )}\r\n\r\n {this.label && <div class=\"sd-button__label\">{this.label}</div>}\r\n\r\n {this.iconRight && (\r\n <sd-icon\r\n class=\"sd-button__icon sd-button__icon--right\"\r\n name={this.iconRight}\r\n size={ICON_SIZES[this.size!]}\r\n color={this.variant === 'primary' ? '#fff' : resolvedColor}\r\n ></sd-icon>\r\n )}\r\n </div>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
1
|
+
import { h, Host, } from "@stencil/core";
|
|
2
2
|
export class SdCheckbox {
|
|
3
3
|
el;
|
|
4
4
|
/** 현재 선택 상태 또는 배열 형태의 값 */
|
|
@@ -60,10 +60,9 @@ export class SdCheckbox {
|
|
|
60
60
|
this.sdChange.emit(newValue);
|
|
61
61
|
};
|
|
62
62
|
render() {
|
|
63
|
-
return (h("label", { key: '
|
|
63
|
+
return (h(Host, { key: '547fee4a8d2639651a4887056fa72fc0cdaa90dd' }, h("label", { key: '975cdc3b10bbbf36f979f7df0f38d02fef3f3d7f', class: this.getCheckboxClasses() }, h("input", { key: '82c70897b2f4659d709f154f4ab42d14c799da29', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onChange: this.handleChange }), h("div", { key: 'ef39406a7b3a1d3232324dd62f7362814fa74089', class: "sd-checkbox__bg", style: this.checkboxStyle }, this.isChecked ? (h("sd-icon", { name: "check", size: 12, color: this.disabled ? '#888888' : 'white' })) : null), this.label && h("span", { key: '183c72be55f35791a22213ce3d7f91305892df9f', class: "sd-checkbox__label" }, this.label))));
|
|
64
64
|
}
|
|
65
65
|
static get is() { return "sd-checkbox"; }
|
|
66
|
-
static get encapsulation() { return "shadow"; }
|
|
67
66
|
static get originalStyleUrls() {
|
|
68
67
|
return {
|
|
69
68
|
"$": ["sd-checkbox.scss"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-checkbox.js","sourceRoot":"","sources":["../../../src/components/sd-checkbox/sd-checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sd-checkbox.js","sourceRoot":"","sources":["../../../src/components/sd-checkbox/sd-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component,\r\n Prop,\r\n h,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Watch,\r\n Host,\r\n} from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'sd-checkbox',\r\n styleUrl: 'sd-checkbox.scss',\r\n})\r\nexport class SdCheckbox {\r\n @Element() el!: HTMLElement;\r\n\r\n /** 현재 선택 상태 또는 배열 형태의 값 */\r\n @Prop() checked: any[] | any = false;\r\n\r\n /** 배열 모드에서의 개별 값 */\r\n @Prop() val?: any;\r\n\r\n /** 비활성화 여부 */\r\n @Prop() disabled: boolean = false;\r\n\r\n /** 표시할 라벨 텍스트 */\r\n @Prop() label: string = '';\r\n\r\n @Prop() checkboxStyle: StyleProps = {};\r\n\r\n /** 내부 체크 상태 */\r\n @State() private isChecked: boolean = false;\r\n\r\n /** 값 변경 이벤트 */\r\n @Event() sdChange!: EventEmitter<any | any[]>;\r\n\r\n componentWillLoad() {\r\n this.updateCheckedState(this.checked);\r\n }\r\n\r\n @Watch('checked')\r\n watchValueHandler(newValue: any | any[]) {\r\n this.updateCheckedState(newValue);\r\n }\r\n\r\n private getCheckboxClasses(): string {\r\n const classes = ['sd-checkbox', `sd-checkbox--${this.isChecked ? 'checked' : 'unchecked'}`];\r\n\r\n if (this.disabled) {\r\n classes.push('sd-checkbox--disabled');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private updateCheckedState(value: any | any[]) {\r\n if (typeof value === 'boolean') {\r\n this.isChecked = value;\r\n } else if (Array.isArray(value)) {\r\n this.isChecked = this.val !== undefined && value.includes(this.val);\r\n } else {\r\n this.isChecked = false;\r\n }\r\n }\r\n\r\n private handleChange = () => {\r\n if (this.disabled) return;\r\n\r\n let newValue: any | any[];\r\n\r\n if (typeof this.checked === 'boolean') {\r\n newValue = !this.checked;\r\n } else if (Array.isArray(this.checked)) {\r\n if (this.val === undefined) {\r\n console.warn('A \"val\" property is required when using an array for the \"value\" property.');\r\n return;\r\n }\r\n\r\n const valueSet = new Set(this.checked);\r\n valueSet.has(this.val) ? valueSet.delete(this.val) : valueSet.add(this.val);\r\n newValue = Array.from(valueSet);\r\n } else {\r\n newValue = !this.isChecked;\r\n }\r\n\r\n this.sdChange.emit(newValue);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <label class={this.getCheckboxClasses()}>\r\n <input\r\n type=\"checkbox\"\r\n checked={this.isChecked}\r\n disabled={this.disabled}\r\n onChange={this.handleChange}\r\n />\r\n <div class=\"sd-checkbox__bg\" style={this.checkboxStyle}>\r\n {this.isChecked ? (\r\n <sd-icon name=\"check\" size={12} color={this.disabled ? '#888888' : 'white'} />\r\n ) : null}\r\n </div>\r\n {this.label && <span class=\"sd-checkbox__label\">{this.label}</span>}\r\n </label>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -23,7 +23,7 @@ export class SdDateBox {
|
|
|
23
23
|
this.sdMouseOver?.emit(this.date);
|
|
24
24
|
}
|
|
25
25
|
render() {
|
|
26
|
-
return (h(Host, { key: '
|
|
26
|
+
return (h(Host, { key: '992ba0be8b908a910f2d572c665fce75570e7956', role: "button", "aria-disabled": this.disabled ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
|
|
27
27
|
'sd-date-box': true,
|
|
28
28
|
'sd-hoverable': !this.disabled || !this.selected || this.type === '',
|
|
29
29
|
'sd-date-box--disabled': this.disabled,
|
|
@@ -34,7 +34,7 @@ export class SdDateBox {
|
|
|
34
34
|
'sd-date-box--in-range': this.inRange,
|
|
35
35
|
'sd-date-box--type-start': this.type === 'start',
|
|
36
36
|
'sd-date-box--type-end': this.type === 'end',
|
|
37
|
-
}, onClick: () => this.handleClickDate(), onMouseOver: () => this.handleHoverDate() }, h("div", { key: '
|
|
37
|
+
}, onClick: () => this.handleClickDate(), onMouseOver: () => this.handleHoverDate() }, h("div", { key: '5673658e4532547f57e86babfce2ac9c8399cfa7', class: "sd-date-box__content" }, h("div", { key: '1e978a0bbf7a1f3e8d13d541d5d75e1b8568ddd8', class: "sd-date-box__label" }, this.date))));
|
|
38
38
|
}
|
|
39
39
|
static get is() { return "sd-date-box"; }
|
|
40
40
|
static get encapsulation() { return "scoped"; }
|
|
@@ -74,9 +74,9 @@ export class SdDatePicker {
|
|
|
74
74
|
this.isOpen = false;
|
|
75
75
|
};
|
|
76
76
|
render() {
|
|
77
|
-
return (h(Host, { key: '
|
|
77
|
+
return (h(Host, { key: '7f25fe19940087b6a8d4ec2639dd84833034bc72', class: "sd-date-picker" }, h("sd-input", { key: 'c2d0eeba3dcb13142a38d29943eb71911cb9fd86', ref: el => (this.inputEl = el), value: this.date, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
|
|
78
78
|
margin: '0 0 0 8px',
|
|
79
|
-
}, onClick: () => this.openMenu() }, h("sd-icon", { key: '
|
|
79
|
+
}, onClick: () => this.openMenu() }, h("sd-icon", { key: '86660591177b91d9ea9463619631af973eb94b8e', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: '9f38b78302db746379968d10905be4cad44219e9', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '295539c5374bddc50b6947c7e451ad5c563fe94a', class: "sd-date-picker__menu" }, h("div", { key: '43f91099cd421ee1d11433579cb0db7ae46c381e', class: "sd-date-picker__header" }, h("div", { key: 'fdeb6f059903e81cf18f917ef076f15f040f746b', class: "year-nav" }, h("button", { key: 'a539fa46145bde41dd4b17da48b1a80ee62cf97e', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, h("sd-icon", { key: 'fc4cde6dcb1b536bf86b58576fd6c32048c13e61', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: '6d9d60a0d6f57c82aa94422b2e1096ab8cf60322', class: "year-nav__current" }, this.currentYear), h("button", { key: '047cc4c2ac9707f632ac2987cfc3ed7aa0a23486', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, h("sd-icon", { key: '37bbc1ec4412806ecd97a06e025227f0f83facd8', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '6a8d98d2a0e49b0fc9d07eb098d9d8e6dc4f705a', class: "month-nav" }, h("button", { key: '300151b8e212025f221ef8b4e7c5da32b0fd13ca', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, h("sd-icon", { key: 'b9a5822af1de65d2e79338680143fceeebf8292a', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: 'fd3c22b6eb4d10ce0df5097709d55e6426d070a8', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), h("button", { key: '4e8bcb9708a9aec649aa111b705b10c8f485a4d0', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, h("sd-icon", { key: '943df568d382c139e77d5b17bc5f32657b190cbc', name: "arrowRight", size: "12", color: "#CCCCCC" })))), h("div", { key: '8de6da2b112c68ca61197e16ed512013e25ce668', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("div", { key: day, class: "day" }, day)))), h("div", { key: '649cfdd71aa7275ff0b3f90e13cadfcd78acff68', class: "sd-date-picker__body" }, [
|
|
80
80
|
...this.calendar.prevMonthDays,
|
|
81
81
|
...this.calendar.days,
|
|
82
82
|
...this.calendar.afterMonthDays,
|
|
@@ -137,9 +137,9 @@ export class SdDateRangePicker {
|
|
|
137
137
|
this.isOpen = false;
|
|
138
138
|
};
|
|
139
139
|
render() {
|
|
140
|
-
return (h(Host, { key: '
|
|
140
|
+
return (h(Host, { key: '4af937257ba809f3a46e53cbdfd93ed811bff28f', class: "sd-date-range-picker" }, h("sd-input", { key: 'ae47eca04301a2ec14d97e421b663697ecba35e3', ref: el => (this.inputEl = el), value: `${this.dateRange[0]} ~ ${this.dateRange[1]}`, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
|
|
141
141
|
margin: '0 0 0 8px',
|
|
142
|
-
}, onClick: () => this.openMenu() }, h("sd-icon", { key: '
|
|
142
|
+
}, onClick: () => this.openMenu() }, h("sd-icon", { key: '1b146d7f4c2ca35241a74eb2c0eb045c56a3b8ec', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: 'f12a79e23e611b34148cbc4477505c5521fc9b99', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '19f65644f08c55aca12f20da6ecb93ac2190fd5a', class: "sd-date-range-picker__menu" }, h("div", { key: '02b29d14d319144bcf43f660a2815873b0ad8ba9', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, h("button", { key: '77e91e8603595770203d55a25afb5091b3389620', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, h("sd-icon", { key: '7d17fc7a981ef911f5673976a2a7d6dffb186b60', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("div", { key: '16e43058070b9fe8f81b975b1be1a8b8b0a64fa6', class: "header-label" }, this.prevYear), h("button", { key: '401d711456467b751094fcb02e6fb5ddc3bde978', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, h("sd-icon", { key: '8b8c486b7bd921dc374ae252ca233daa09c854c4', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '3875858b39253f58781d05fb94f9029ecf70e866', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index) => (h(Fragment, null, index === 1 && h("div", { class: "separator" }), h("div", { key: index, class: "calendar-container" }, h("div", { class: "calendar-header" }, h("button", { type: "button", name: "month", title: "Month", class: index === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index === 0 ? 'prev' : 'next') }, h("sd-icon", { name: index === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index === 0
|
|
143
143
|
? `${this.prevYear}.${String(this.prevMonth).padStart(2, '0')}`
|
|
144
144
|
: `${this.nextYear}.${String(this.nextMonth).padStart(2, '0')}`), h("div", { class: "calendar-days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("sd-date-box", { key: day, date: day, disabled: true, class: "day" })))), h("div", { class: "calendar-body mt-12pxr grid grid-cols-7 gap-y-8pxr" }, [...calendar.prevMonthDays, ...calendar.days, ...calendar.afterMonthDays].map((day, idx) => (h("sd-date-box", { key: `prev${day}_${idx}`, date: !day ? '' : Number(day), selected: this.dateRange.some(date => date ===
|
|
145
145
|
this.dateUtil.formatDate(index === 0 ? this.prevYear : this.nextYear, index === 0 ? this.prevMonth : this.nextMonth, Number(day))), type: this.getDateBoxType(this.dateUtil.formatDate(index === 0 ? this.prevYear : this.nextYear, index === 0 ? this.prevMonth : this.nextMonth, Number(day))), isToday: today ===
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
import colors from "../../styles/color.json";
|
|
3
|
+
// type GuideType = 'help' | 'pdf' | 'youtube' | 'notion' | 'event';
|
|
3
4
|
export class SdGuide {
|
|
4
5
|
el;
|
|
5
6
|
type = 'help';
|
|
@@ -66,7 +67,7 @@ export class SdGuide {
|
|
|
66
67
|
};
|
|
67
68
|
render() {
|
|
68
69
|
const { name: iconName, size: iconSize, color: iconColor } = this.getGuidIcon();
|
|
69
|
-
return (h(Host, { key: '
|
|
70
|
+
return (h(Host, { key: '9807832e3e8be682b04adc463099264a940c1a4c', style: this.getGuideStyle() }, h("sd-button", { key: '6247b9b5a3e35265bca22e410b531d71b6563ea4', ref: el => (this.guideRef = el), class: this.getGuideClasses(), variant: "outline", label: SdGuide.guideTitle[this.type], size: "md", color: "var(--guide-color)", icon: iconName, iconColor: iconColor, iconSize: iconSize, iconStyle: { marginRight: '4px' }, buttonStyle: {
|
|
70
71
|
height: '28px',
|
|
71
72
|
minHeight: '28px',
|
|
72
73
|
padding: '4px 12px',
|
|
@@ -76,7 +77,7 @@ export class SdGuide {
|
|
|
76
77
|
fontSize: '12px',
|
|
77
78
|
fontWeight: '400',
|
|
78
79
|
backgroundColor: 'var(--guide-background)',
|
|
79
|
-
}, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (h("sd-portal", { key: '
|
|
80
|
+
}, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (h("sd-portal", { key: '1a5e0c50e9373db3346fe33c88b7a2774571e567', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 24] }, h("div", { key: 'bcc6f4506104b0cf996b429ef020eb6790f11c55', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, h("sd-button", { key: '305e6d5a2086211c803d38134b191372fa3f0a59', class: "sd-guide__popup__close", icon: "close", color: colors.grey_65, size: "md", variant: "ghost", noHover: true, buttonStyle: { padding: '0px', minHeight: '0px' }, onSdClick: this.closeDropdown }), h("div", { key: 'e9e41101d83c7f29d604ced9cb8d5ab285e57eeb', class: "sd-guide__popup__header" }, h("sd-icon", { key: '49f884e1feed7126342a260bd5f3dcadbc04427d', name: "helpOutline", size: 24, color: colors.green_65 }), h("h3", { key: 'c0a9c4d62c6eb14c9e0df91e837cf542deaa00de', class: "sd-guide__popup__title" }, this.popupTitle || SdGuide.guideTitle[this.type])), h("ul", { key: 'f8fcbb776f0a2f1f72f3314fa9ae816d68f61c28', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
|
|
80
81
|
}
|
|
81
82
|
// 현재 2depth까지만 스타일 적용
|
|
82
83
|
renderListItem(message, depth = 0) {
|
|
@@ -111,14 +112,9 @@ export class SdGuide {
|
|
|
111
112
|
"type": "string",
|
|
112
113
|
"mutable": false,
|
|
113
114
|
"complexType": {
|
|
114
|
-
"original": "
|
|
115
|
+
"original": "'help' | 'pdf' | 'youtube' | 'notion' | 'event'",
|
|
115
116
|
"resolved": "\"event\" | \"help\" | \"notion\" | \"pdf\" | \"youtube\"",
|
|
116
|
-
"references": {
|
|
117
|
-
"GuideType": {
|
|
118
|
-
"location": "global",
|
|
119
|
-
"id": "global::GuideType"
|
|
120
|
-
}
|
|
121
|
-
}
|
|
117
|
+
"references": {}
|
|
122
118
|
},
|
|
123
119
|
"required": false,
|
|
124
120
|
"optional": false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-guide.js","sourceRoot":"","sources":["../../../src/components/sd-guide/sd-guide.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, State, h } from '@stencil/core';\r\nimport colors from '../../styles/color.json';\r\n\r\ntype GuideType = 'help' | 'pdf' | 'youtube' | 'notion' | 'event';\r\n\r\n@Component({\r\n tag: 'sd-guide',\r\n styleUrl: 'sd-guide.scss',\r\n})\r\nexport class SdGuide {\r\n @Element() el!: HTMLElement;\r\n\r\n @Prop() type: GuideType = 'help';\r\n @Prop() popupTitle: string = '';\r\n @Prop() message: string | string[] = '';\r\n @Prop() guideUrl: string = '';\r\n @Prop() popupWidth?: number;\r\n\r\n @State() popupShow: boolean = false;\r\n\r\n private guideRef?: HTMLElement;\r\n\r\n static guideTitle = {\r\n help: '활용 Tip',\r\n pdf: 'PDF Guide',\r\n youtube: 'Video Guide',\r\n notion: '사용 가이드',\r\n event: 'Event Button',\r\n };\r\n\r\n private handleClickGuide = () => {\r\n if (this.type === 'help') {\r\n this.popupShow = !this.popupShow;\r\n return;\r\n }\r\n\r\n if (this.guideUrl) {\r\n window.open(this.guideUrl, '_blank');\r\n }\r\n };\r\n\r\n private getGuideClasses(): string {\r\n const classes = ['sd-guide'];\r\n\r\n classes.push(`sd-guide--${this.type}`);\r\n\r\n if (this.popupShow) classes.push('sd-guide--active');\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private getGuideStyle(): StyleProps {\r\n const styles: StyleProps = {};\r\n\r\n if (this.type === 'help') {\r\n styles['--guide-border'] = this.popupShow ? colors.green_65 : colors.grey_45;\r\n styles['--guide-color'] = this.popupShow ? colors.white : colors.grey_90;\r\n styles['--guide-background'] = this.popupShow ? colors.green_65 : colors.white;\r\n } else {\r\n styles['--guide-border'] = colors.grey_45;\r\n styles['--guide-color'] = colors.grey_90;\r\n styles['--guide-background'] = colors.white;\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n private getGuidIcon(): { name: IconName; size: number; color: string } {\r\n if (this.type === 'pdf') {\r\n return { name: 'pdf', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'youtube') {\r\n return { name: 'youtube', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'notion') {\r\n return { name: 'notion', size: 16, color: colors.black };\r\n } else if (this.type === 'event') {\r\n return { name: 'event', size: 16, color: colors.brilliantblue_70 };\r\n }\r\n\r\n return { name: 'helpOutline', size: 20, color: this.popupShow ? colors.white : colors.green_65 };\r\n }\r\n\r\n closeDropdown = () => {\r\n this.popupShow = false;\r\n };\r\n\r\n render() {\r\n const { name: iconName, size: iconSize, color: iconColor } = this.getGuidIcon();\r\n\r\n return (\r\n <Host style={this.getGuideStyle()}>\r\n <sd-button\r\n ref={el => (this.guideRef = el as unknown as HTMLElement)}\r\n class={this.getGuideClasses()}\r\n variant=\"outline\"\r\n label={SdGuide.guideTitle[this.type]}\r\n size=\"md\"\r\n color=\"var(--guide-color)\"\r\n icon={iconName}\r\n iconColor={iconColor}\r\n iconSize={iconSize}\r\n iconStyle={{ marginRight: '4px' }}\r\n buttonStyle={{\r\n height: '28px',\r\n minHeight: '28px',\r\n padding: '4px 12px',\r\n borderRadius: '16px',\r\n borderColor: 'var(--guide-border)',\r\n color: 'var(--guide-color)',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n backgroundColor: 'var(--guide-background)',\r\n }}\r\n onSdClick={this.handleClickGuide}\r\n />\r\n {this.type === 'help' && this.popupShow && (\r\n <sd-portal\r\n open={this.popupShow}\r\n parentRef={this.guideRef}\r\n onSdClose={this.closeDropdown}\r\n offset={[0, 24]}\r\n >\r\n <div\r\n class=\"sd-guide__popup\"\r\n style={{ width: this.popupWidth ? this.popupWidth + 'px' : '426px' } as any}\r\n >\r\n <sd-button\r\n class=\"sd-guide__popup__close\"\r\n icon=\"close\"\r\n color={colors.grey_65}\r\n size=\"md\"\r\n variant=\"ghost\"\r\n noHover\r\n buttonStyle={{ padding: '0px', minHeight: '0px' }}\r\n onSdClick={this.closeDropdown}\r\n />\r\n <div class=\"sd-guide__popup__header\">\r\n <sd-icon name=\"helpOutline\" size={24} color={colors.green_65} />\r\n <h3 class=\"sd-guide__popup__title\">{this.popupTitle || SdGuide.guideTitle[this.type]}</h3>\r\n </div>\r\n <ul class=\"sd-guide__popup__list\">{this.renderListItem(this.message)}</ul>\r\n </div>\r\n </sd-portal>\r\n )}\r\n </Host>\r\n );\r\n }\r\n\r\n // 현재 2depth까지만 스타일 적용\r\n renderListItem(message: string | string[], depth: number = 0): HTMLElement[] {\r\n const listItems: HTMLElement[] = [];\r\n\r\n if (Array.isArray(message)) {\r\n const depthMsg = message.map(msg => this.renderListItem(msg, depth + 1));\r\n listItems.push(...depthMsg.flat());\r\n } else {\r\n listItems.push(this.renderLi(message, depth));\r\n }\r\n\r\n return listItems;\r\n }\r\n\r\n renderLi = (message: string, depth: number) => {\r\n const listContent = message.replace(/ /gi, ' ');\r\n return (\r\n <li class={`sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}`}>\r\n <p innerHTML={listContent}></p>\r\n </li>\r\n );\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"sd-guide.js","sourceRoot":"","sources":["../../../src/components/sd-guide/sd-guide.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, State, h } from '@stencil/core';\r\nimport colors from '../../styles/color.json';\r\n\r\n// type GuideType = 'help' | 'pdf' | 'youtube' | 'notion' | 'event';\r\n\r\n@Component({\r\n tag: 'sd-guide',\r\n styleUrl: 'sd-guide.scss',\r\n})\r\nexport class SdGuide {\r\n @Element() el!: HTMLElement;\r\n\r\n @Prop() type: 'help' | 'pdf' | 'youtube' | 'notion' | 'event' = 'help';\r\n @Prop() popupTitle: string = '';\r\n @Prop() message: string | string[] = '';\r\n @Prop() guideUrl: string = '';\r\n @Prop() popupWidth?: number;\r\n\r\n @State() popupShow: boolean = false;\r\n\r\n private guideRef?: HTMLElement;\r\n\r\n static guideTitle = {\r\n help: '활용 Tip',\r\n pdf: 'PDF Guide',\r\n youtube: 'Video Guide',\r\n notion: '사용 가이드',\r\n event: 'Event Button',\r\n };\r\n\r\n private handleClickGuide = () => {\r\n if (this.type === 'help') {\r\n this.popupShow = !this.popupShow;\r\n return;\r\n }\r\n\r\n if (this.guideUrl) {\r\n window.open(this.guideUrl, '_blank');\r\n }\r\n };\r\n\r\n private getGuideClasses(): string {\r\n const classes = ['sd-guide'];\r\n\r\n classes.push(`sd-guide--${this.type}`);\r\n\r\n if (this.popupShow) classes.push('sd-guide--active');\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private getGuideStyle(): StyleProps {\r\n const styles: StyleProps = {};\r\n\r\n if (this.type === 'help') {\r\n styles['--guide-border'] = this.popupShow ? colors.green_65 : colors.grey_45;\r\n styles['--guide-color'] = this.popupShow ? colors.white : colors.grey_90;\r\n styles['--guide-background'] = this.popupShow ? colors.green_65 : colors.white;\r\n } else {\r\n styles['--guide-border'] = colors.grey_45;\r\n styles['--guide-color'] = colors.grey_90;\r\n styles['--guide-background'] = colors.white;\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n private getGuidIcon(): { name: IconName; size: number; color: string } {\r\n if (this.type === 'pdf') {\r\n return { name: 'pdf', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'youtube') {\r\n return { name: 'youtube', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'notion') {\r\n return { name: 'notion', size: 16, color: colors.black };\r\n } else if (this.type === 'event') {\r\n return { name: 'event', size: 16, color: colors.brilliantblue_70 };\r\n }\r\n\r\n return { name: 'helpOutline', size: 20, color: this.popupShow ? colors.white : colors.green_65 };\r\n }\r\n\r\n closeDropdown = () => {\r\n this.popupShow = false;\r\n };\r\n\r\n render() {\r\n const { name: iconName, size: iconSize, color: iconColor } = this.getGuidIcon();\r\n\r\n return (\r\n <Host style={this.getGuideStyle()}>\r\n <sd-button\r\n ref={el => (this.guideRef = el as unknown as HTMLElement)}\r\n class={this.getGuideClasses()}\r\n variant=\"outline\"\r\n label={SdGuide.guideTitle[this.type]}\r\n size=\"md\"\r\n color=\"var(--guide-color)\"\r\n icon={iconName}\r\n iconColor={iconColor}\r\n iconSize={iconSize}\r\n iconStyle={{ marginRight: '4px' }}\r\n buttonStyle={{\r\n height: '28px',\r\n minHeight: '28px',\r\n padding: '4px 12px',\r\n borderRadius: '16px',\r\n borderColor: 'var(--guide-border)',\r\n color: 'var(--guide-color)',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n backgroundColor: 'var(--guide-background)',\r\n }}\r\n onSdClick={this.handleClickGuide}\r\n />\r\n {this.type === 'help' && this.popupShow && (\r\n <sd-portal\r\n open={this.popupShow}\r\n parentRef={this.guideRef}\r\n onSdClose={this.closeDropdown}\r\n offset={[0, 24]}\r\n >\r\n <div\r\n class=\"sd-guide__popup\"\r\n style={{ width: this.popupWidth ? this.popupWidth + 'px' : '426px' } as any}\r\n >\r\n <sd-button\r\n class=\"sd-guide__popup__close\"\r\n icon=\"close\"\r\n color={colors.grey_65}\r\n size=\"md\"\r\n variant=\"ghost\"\r\n noHover\r\n buttonStyle={{ padding: '0px', minHeight: '0px' }}\r\n onSdClick={this.closeDropdown}\r\n />\r\n <div class=\"sd-guide__popup__header\">\r\n <sd-icon name=\"helpOutline\" size={24} color={colors.green_65} />\r\n <h3 class=\"sd-guide__popup__title\">{this.popupTitle || SdGuide.guideTitle[this.type]}</h3>\r\n </div>\r\n <ul class=\"sd-guide__popup__list\">{this.renderListItem(this.message)}</ul>\r\n </div>\r\n </sd-portal>\r\n )}\r\n </Host>\r\n );\r\n }\r\n\r\n // 현재 2depth까지만 스타일 적용\r\n renderListItem(message: string | string[], depth: number = 0): HTMLElement[] {\r\n const listItems: HTMLElement[] = [];\r\n\r\n if (Array.isArray(message)) {\r\n const depthMsg = message.map(msg => this.renderListItem(msg, depth + 1));\r\n listItems.push(...depthMsg.flat());\r\n } else {\r\n listItems.push(this.renderLi(message, depth));\r\n }\r\n\r\n return listItems;\r\n }\r\n\r\n renderLi = (message: string, depth: number) => {\r\n const listContent = message.replace(/ /gi, ' ');\r\n return (\r\n <li class={`sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}`}>\r\n <p innerHTML={listContent}></p>\r\n </li>\r\n );\r\n };\r\n}\r\n"]}
|
|
@@ -25,7 +25,7 @@ export class SdIcon {
|
|
|
25
25
|
}
|
|
26
26
|
render() {
|
|
27
27
|
const IconComponent = Icons[this.name]?.[this.size];
|
|
28
|
-
return (h("i", { key: '
|
|
28
|
+
return (h("i", { key: '9d53cc78e1433e03e0329dc59b2fcb704dfc5229', class: this.getIconClasses(), style: this.iconStyle }, h(IconComponent, { key: 'f2e0c3c9eec1efb16a6aa703ae7e112b89a90876', color: this.resolvedColor })));
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "sd-icon"; }
|
|
31
31
|
static get encapsulation() { return "scoped"; }
|
|
@@ -89,11 +89,11 @@ export class SdInput {
|
|
|
89
89
|
'--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
|
|
90
90
|
}
|
|
91
91
|
: {};
|
|
92
|
-
return (h(Host, { key: '
|
|
92
|
+
return (h(Host, { key: '17b45c8fff6a50fefba8852188d76aae5e494117', style: inputWidth }, this.label && h("div", { key: '9cad02ee97a3685372a5de808d94f2d78b6f1931', class: "sd-input__label" }, this.label), h("label", { key: 'd1df0ccc07e76291876b072d26feeace34abbae7', class: {
|
|
93
93
|
'sd-input': true,
|
|
94
94
|
[this.getInputStatus()]: true,
|
|
95
95
|
'sd-input--barcode': !!this.barcode,
|
|
96
|
-
}, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, h("slot", { key: '
|
|
96
|
+
}, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, h("slot", { key: '3af4ceb58d0f96abb383e0829f7256b81a6f94ec', name: "prefix" }), h("input", { key: '8f78d01452e39ab362eb6031564f26df6998dfe4', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), h("slot", { key: 'f4f0d0aa8185c277e22524e698275987034fc053', name: "suffix" }), this.clearable && this.internalValue && (h("sd-icon", { key: '61cd69cb8c562fcd88ce0138e52ee505d9d9e641', name: "close", color: "#888", style: { marginRight: '-4px', marginLeft: '8px', cursor: 'pointer' }, onClick: () => {
|
|
97
97
|
this.internalValue = '';
|
|
98
98
|
this.sdChange?.emit(this.internalValue);
|
|
99
99
|
this.sdInput?.emit(this.internalValue);
|
|
@@ -73,12 +73,12 @@ export class SdPagination {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
render() {
|
|
76
|
-
return (h("div", { key: '
|
|
76
|
+
return (h("div", { key: '4a54f4fb07b16bb6334e975967865d225a8d88e0', class: this.paginationClasses }, h("div", { key: 'a7054470cf94b30af967883072cf2af9eab5fb8d', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "pagination-info" }, h("span", { class: "current-page" }, this.currentPage), h("span", null, "/"), h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
|
|
77
77
|
'pagination-btn': true,
|
|
78
78
|
'pagination-btn--selected': this.currentPage === n,
|
|
79
79
|
}, disabled: this.currentPage === n, style: {
|
|
80
80
|
'--pagination-btn-width': `${this.buttonWidth}px`,
|
|
81
|
-
}, onClick: () => this.handlePageChange(n) }, n)))), h("div", { key: '
|
|
81
|
+
}, onClick: () => this.handlePageChange(n) }, n)))), h("div", { key: '2b785eca4e7dd7b18f850cf90f92418d283171e2', class: "append-btns" }, this.renderNextButtons())));
|
|
82
82
|
}
|
|
83
83
|
static get is() { return "sd-pagination"; }
|
|
84
84
|
static get encapsulation() { return "shadow"; }
|
|
@@ -31,11 +31,11 @@ export class SdPopover {
|
|
|
31
31
|
this.showPopover = false;
|
|
32
32
|
};
|
|
33
33
|
render() {
|
|
34
|
-
return (h(Fragment, { key: '
|
|
34
|
+
return (h(Fragment, { key: 'd15f1b55b6b397676fc9c96c48cef500ae84993b' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-popover", onClick: () => (console.log('click popover'), (this.showPopover = !this.showPopover)) })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (console.log('click popover'), (this.showPopover = !this.showPopover)) })), this.showPopover && (h("sd-tooltip-portal", { key: 'eea0f3aeab811cfd1b228088517756de85b801d9', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, h("div", { key: '9db5d4ce6fc5e3f4b9358864c36c45b7958f15be', class: {
|
|
35
35
|
'sd-popover-menu': true,
|
|
36
36
|
[`sd-popover-menu--${this.placement}`]: true,
|
|
37
37
|
[this.menuClass]: !!this.menuClass,
|
|
38
|
-
} }, h("i", { key: '
|
|
38
|
+
} }, h("i", { key: '938a3f683ee00bb8b57d2b38229b137c60fb2fee', class: `sd-popover-menu__arrow sd-popover-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '70b4e58bd7d4e78ee82fbb54010e6b1cc369cb47' })), h("div", { key: 'f2b022d3b324a55fd39a224273d956a43fa778cf', class: "sd-popover-menu__content" }, this.menuTitle && h("div", { key: '0b6ad274cdc12dccaec60a1ae295ebf6cd908aa5', class: "sd-popover-menu__title" }, this.menuTitle), this.messages.length > 0 && (h("div", { key: '484c18a44b8a8bcd6ec850cbfa293b45acc55696', class: "sd-popover-menu__messages" }, this.messages.map(message => (h("div", null, message))))), this.buttons.length > 0 && (h("div", { key: '3e7eb1384a12ebf6be3f7da1bd76979957b41310', class: `sd-popover-menu__buttons sd-popover-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (h("sd-button", { ...button })))))), this.useClose && (h("button", { key: '87189dde9bf5ace19a53f35d4dab68c7fd5790f6', class: "sd-popover-menu__close-button", onClick: () => this.handleClose() }, h("sd-icon", { key: 'f4c1685ce30e7e15ed5d16faa4157489ae7d8bbb', name: "close", size: "12", color: "#AAAAAA" }))))))));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "sd-popover"; }
|
|
41
41
|
static get encapsulation() { return "shadow"; }
|
|
@@ -92,7 +92,7 @@ export class SdPortal {
|
|
|
92
92
|
this.sdClose.emit();
|
|
93
93
|
}
|
|
94
94
|
render() {
|
|
95
|
-
return h("slot", { key: '
|
|
95
|
+
return h("slot", { key: 'b1a22a7a0865bf3984f79148dd6c97fce0268ca4' });
|
|
96
96
|
}
|
|
97
97
|
static get is() { return "sd-portal"; }
|
|
98
98
|
static get properties() {
|
|
@@ -24,7 +24,7 @@ export class SdSelectOption {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
render() {
|
|
27
|
-
return (h("div", { key: '
|
|
27
|
+
return (h("div", { key: '6a41bb20544e864db75ec58455aacdf4a5411b2e', class: {
|
|
28
28
|
'sd-select__option': true,
|
|
29
29
|
'sd-select__option--selected': this.isSelected,
|
|
30
30
|
'sd-select__option--disabled': !!this.option.disabled,
|
|
@@ -209,11 +209,11 @@ export class SdSelect extends BaseDropdownEvent {
|
|
|
209
209
|
'--select-width': this.width || '200px',
|
|
210
210
|
'--select-dropdown-height': this.dropdownHeight || '260px',
|
|
211
211
|
};
|
|
212
|
-
return (h(Host, { key: '
|
|
212
|
+
return (h(Host, { key: 'c43c086134d7a179d63a7f0c0df7e62058f7625e', style: style }, h("div", { key: 'd6ef6428b1a5ec114fbf97741c93b6cbb354bec0', class: {
|
|
213
213
|
'sd-select': true,
|
|
214
214
|
'sd-select--open': this.isOpen,
|
|
215
215
|
'sd-select--disabled': this.disabled,
|
|
216
|
-
}, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), h("div", { key: '
|
|
216
|
+
}, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), h("div", { key: 'c6a3ec4e8705b9654fa5123b228e8f9f0d75c9dc', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
|
|
217
217
|
}
|
|
218
218
|
renderLabel(label, labelStyle) {
|
|
219
219
|
if (!label)
|
|
@@ -183,9 +183,9 @@ export class SdTable {
|
|
|
183
183
|
}))))));
|
|
184
184
|
}
|
|
185
185
|
render() {
|
|
186
|
-
return (h(Host, { key: '
|
|
186
|
+
return (h(Host, { key: 'ab7c2b556c1df0e3bae1d50ed9303261cb090d53' }, h("div", { key: 'fb6af621e1641c1781d7d78a91b71ed9919a8b3c', class: "sd-table__container" }, h("div", { key: '87d376e4dabb05945c3ab32431ee5893bcd4b163', class: "sd-table__middle", style: {
|
|
187
187
|
'--table-height': this.height ? `${this.height}px` : 'auto',
|
|
188
|
-
} }, h("table", { key: '
|
|
188
|
+
} }, h("table", { key: 'dd5e9fec59b67ba17f86ae34a8ad0f1c3931d2da', part: "table", class: this.sdTableClasses }, this.renderHeader(), this.renderBody())), h("div", { key: '34fd7cdf2eeebc1606ee3755e496a4eb219644b7', class: "sd-table__bottom" })), this.pagination && this.innerRows.length > 0 && (h("div", { key: '38f172421f5d1b682db6fbf42fa06156de776972', class: "sd-table__pagination" }, h("sd-pagination", { key: '6a8518855acf47b3df79c992e3a6ce8b4ff73551', currentPage: this.currentPage, lastPage: this.lastPageNumber, onPageChange: (e) => {
|
|
189
189
|
this.currentPage = e.detail;
|
|
190
190
|
this.sdPageChange.emit(this.currentPage);
|
|
191
191
|
} })))));
|
|
@@ -37,7 +37,7 @@ export class SdTag {
|
|
|
37
37
|
}
|
|
38
38
|
render() {
|
|
39
39
|
const tagClasses = this.getTagClasses();
|
|
40
|
-
return (h("span", { key: '
|
|
40
|
+
return (h("span", { key: 'b16fa963430cafba6451888d44d531d01e42bc85', class: tagClasses, style: {
|
|
41
41
|
'--tag-bg-color': this.bgColor,
|
|
42
42
|
'--tag-text-color': this.textColor,
|
|
43
43
|
}, "aria-label": this.label || 'tag' }, this.renderContent()));
|
|
@@ -27,11 +27,11 @@ export class SdTooltip {
|
|
|
27
27
|
: {
|
|
28
28
|
onClick: () => (console.log('click tooltip'), (this.showTooltip = !this.showTooltip)),
|
|
29
29
|
};
|
|
30
|
-
return (h(Fragment, { key: '
|
|
30
|
+
return (h(Fragment, { key: '8acd661f796fc9c006e966c1667a46752205ed48' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-tooltip-portal", { key: '4437a6b3df82731ebea80649c5e75ec203554dbd', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, h("div", { key: '43f186e6eb64b019359815b5cb43e50972ed782b', class: {
|
|
31
31
|
'sd-tooltip-menu': true,
|
|
32
32
|
[`sd-tooltip-menu--${this.placement}`]: true,
|
|
33
33
|
'sd-tooltip-menu--with-close': this.useClose,
|
|
34
|
-
} }, h("i", { key: '
|
|
34
|
+
} }, h("i", { key: '811ebc90e1dcee2e2c88357419009c017badcf6f', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '8907d113ccc956c3bc1e1dca2267f992ccd94d09' })), h("div", { key: '22fbfd6b6ce6c5efe4f75f9e4d208b05ea945783', class: "sd-tooltip-menu__content" }, h("slot", { key: '7c953be946fb90b8e4512eacd6da913000a75f19' }, this.el.textContent)), this.useClose && (h("div", { key: '039dd932a468cb7419beec5d929514c4866d7992', class: "sd-tooltip-menu__close-button" }, h("button", { key: '4edc7ea5cec0cb8023a3aa848cc208a8379b5fbb', onClick: () => this.handleClose() }, h("sd-icon", { key: '51ecdb054e7b34dd6872b14964034c1e1e870ff6', name: "close", size: "12", color: "#AAAAAA" })))))))));
|
|
35
35
|
}
|
|
36
36
|
static get is() { return "sd-tooltip"; }
|
|
37
37
|
static get encapsulation() { return "shadow"; }
|
|
@@ -143,7 +143,7 @@ export class SdTooltipPortal {
|
|
|
143
143
|
this.sdClose.emit();
|
|
144
144
|
}
|
|
145
145
|
render() {
|
|
146
|
-
return h("slot", { key: '
|
|
146
|
+
return h("slot", { key: '3a845f83619e1bff0b6b67abddd7fc21cb47e2ba' });
|
|
147
147
|
}
|
|
148
148
|
static get is() { return "sd-tooltip-portal"; }
|
|
149
149
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h } from './p-dHboNV0o.js';
|
|
2
|
-
import { d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-dHboNV0o.js';
|
|
2
|
+
import { d as defineCustomElement$1 } from './p-DRnR5yin.js';
|
|
3
3
|
|
|
4
|
-
const sdCheckboxCss = ":host{line-height:0}.sd-checkbox{line-height:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px;max-height:20px;position:relative;cursor:pointer}.sd-checkbox>input{display:none}.sd-checkbox:hover.sd-checkbox--checked .sd-checkbox__bg{background:#005cc9}.sd-checkbox:hover.sd-checkbox--unchecked .sd-checkbox__bg{border:1px solid #0075ff;background:#d9eaff}.sd-checkbox:hover.sd-checkbox--disabled .sd-checkbox__bg{border:1px solid transparent;background:#eeeeee}.sd-checkbox__bg{width:16px;height:16px;border-radius:2px;border:1px solid #888888;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;line-height:0}.sd-checkbox__label{font-size:12px;color:#333333;line-height:20px}.sd-checkbox--checked.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}.sd-checkbox--checked .sd-checkbox__bg{border:0;background:#0075ff}.sd-checkbox--unchecked .sd-checkbox__bg{background:white}.sd-checkbox--disabled{cursor:not-allowed}.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}";
|
|
4
|
+
const sdCheckboxCss = ":host{display:inline-block;height:fit-content;line-height:0}.sd-checkbox{line-height:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px;max-height:20px;position:relative;cursor:pointer}.sd-checkbox>input{display:none}.sd-checkbox:hover.sd-checkbox--checked .sd-checkbox__bg{background:#005cc9}.sd-checkbox:hover.sd-checkbox--unchecked .sd-checkbox__bg{border:1px solid #0075ff;background:#d9eaff}.sd-checkbox:hover.sd-checkbox--disabled .sd-checkbox__bg{border:1px solid transparent;background:#eeeeee}.sd-checkbox__bg{width:16px;height:16px;border-radius:2px;border:1px solid #888888;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;line-height:0}.sd-checkbox__label{font-size:12px;color:#333333;line-height:20px}.sd-checkbox--checked.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}.sd-checkbox--checked .sd-checkbox__bg{border:0;background:#0075ff}.sd-checkbox--unchecked .sd-checkbox__bg{background:white}.sd-checkbox--disabled{cursor:not-allowed}.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}";
|
|
5
5
|
|
|
6
6
|
const SdCheckbox = /*@__PURE__*/ proxyCustomElement(class SdCheckbox extends H {
|
|
7
7
|
constructor(registerHost) {
|
|
@@ -9,7 +9,6 @@ const SdCheckbox = /*@__PURE__*/ proxyCustomElement(class SdCheckbox extends H {
|
|
|
9
9
|
if (registerHost !== false) {
|
|
10
10
|
this.__registerHost();
|
|
11
11
|
}
|
|
12
|
-
this.__attachShadow();
|
|
13
12
|
this.sdChange = createEvent(this, "sdChange");
|
|
14
13
|
}
|
|
15
14
|
get el() { return this; }
|
|
@@ -72,13 +71,13 @@ const SdCheckbox = /*@__PURE__*/ proxyCustomElement(class SdCheckbox extends H {
|
|
|
72
71
|
this.sdChange.emit(newValue);
|
|
73
72
|
};
|
|
74
73
|
render() {
|
|
75
|
-
return (h("label", { key: '
|
|
74
|
+
return (h(Host, { key: '547fee4a8d2639651a4887056fa72fc0cdaa90dd' }, h("label", { key: '975cdc3b10bbbf36f979f7df0f38d02fef3f3d7f', class: this.getCheckboxClasses() }, h("input", { key: '82c70897b2f4659d709f154f4ab42d14c799da29', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onChange: this.handleChange }), h("div", { key: 'ef39406a7b3a1d3232324dd62f7362814fa74089', class: "sd-checkbox__bg", style: this.checkboxStyle }, this.isChecked ? (h("sd-icon", { name: "check", size: 12, color: this.disabled ? '#888888' : 'white' })) : null), this.label && h("span", { key: '183c72be55f35791a22213ce3d7f91305892df9f', class: "sd-checkbox__label" }, this.label))));
|
|
76
75
|
}
|
|
77
76
|
static get watchers() { return {
|
|
78
77
|
"checked": ["watchValueHandler"]
|
|
79
78
|
}; }
|
|
80
79
|
static get style() { return sdCheckboxCss; }
|
|
81
|
-
}, [
|
|
80
|
+
}, [256, "sd-checkbox", {
|
|
82
81
|
"checked": [8],
|
|
83
82
|
"val": [8],
|
|
84
83
|
"disabled": [4],
|
|
@@ -108,6 +107,6 @@ function defineCustomElement() {
|
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
export { SdCheckbox as S, defineCustomElement as d };
|
|
111
|
-
//# sourceMappingURL=p-
|
|
110
|
+
//# sourceMappingURL=p-BNrJPeOI.js.map
|
|
112
111
|
|
|
113
|
-
//# sourceMappingURL=p-
|
|
112
|
+
//# sourceMappingURL=p-BNrJPeOI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-BNrJPeOI.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-checkbox/sd-checkbox.scss?tag=sd-checkbox","src/components/sd-checkbox/sd-checkbox.tsx"],"sourcesContent":["@import '../../styles/variables.scss';\r\n\r\n:host {\r\n display: inline-block;\r\n height: fit-content;\r\n line-height: 0;\r\n}\r\n\r\n.sd-checkbox {\r\n line-height: 0;\r\n\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n height: 20px;\r\n max-height: 20px;\r\n position: relative;\r\n cursor: pointer;\r\n\r\n > input {\r\n display: none;\r\n }\r\n\r\n &:hover {\r\n &.sd-checkbox--checked {\r\n .sd-checkbox__bg {\r\n background: $brilliantblue_80;\r\n }\r\n }\r\n\r\n &.sd-checkbox--unchecked {\r\n .sd-checkbox__bg {\r\n border: 1px solid $brilliantblue_75;\r\n background: $brilliantblue_25;\r\n }\r\n }\r\n\r\n &.sd-checkbox--disabled {\r\n .sd-checkbox__bg {\r\n border: 1px solid transparent;\r\n background: $grey_20;\r\n }\r\n }\r\n }\r\n\r\n &__bg {\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 2px;\r\n border: 1px solid $grey_65;\r\n box-sizing: border-box;\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n line-height: 0;\r\n }\r\n\r\n &__label {\r\n font-size: 12px;\r\n color: $grey_90;\r\n line-height: 20px;\r\n }\r\n\r\n &--checked {\r\n &.sd-checkbox--disabled {\r\n .sd-checkbox__bg {\r\n background: $grey_20;\r\n border: 1px solid $grey_45 !important;\r\n }\r\n }\r\n\r\n .sd-checkbox__bg {\r\n border: 0;\r\n background: $brilliantblue_75;\r\n }\r\n }\r\n\r\n &--unchecked {\r\n .sd-checkbox__bg {\r\n background: white;\r\n }\r\n }\r\n\r\n &--disabled {\r\n cursor: not-allowed;\r\n .sd-checkbox__bg {\r\n background: $grey_20;\r\n border: 1px solid $grey_45 !important;\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Prop,\r\n h,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Watch,\r\n Host,\r\n} from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'sd-checkbox',\r\n styleUrl: 'sd-checkbox.scss',\r\n})\r\nexport class SdCheckbox {\r\n @Element() el!: HTMLElement;\r\n\r\n /** 현재 선택 상태 또는 배열 형태의 값 */\r\n @Prop() checked: any[] | any = false;\r\n\r\n /** 배열 모드에서의 개별 값 */\r\n @Prop() val?: any;\r\n\r\n /** 비활성화 여부 */\r\n @Prop() disabled: boolean = false;\r\n\r\n /** 표시할 라벨 텍스트 */\r\n @Prop() label: string = '';\r\n\r\n @Prop() checkboxStyle: StyleProps = {};\r\n\r\n /** 내부 체크 상태 */\r\n @State() private isChecked: boolean = false;\r\n\r\n /** 값 변경 이벤트 */\r\n @Event() sdChange!: EventEmitter<any | any[]>;\r\n\r\n componentWillLoad() {\r\n this.updateCheckedState(this.checked);\r\n }\r\n\r\n @Watch('checked')\r\n watchValueHandler(newValue: any | any[]) {\r\n this.updateCheckedState(newValue);\r\n }\r\n\r\n private getCheckboxClasses(): string {\r\n const classes = ['sd-checkbox', `sd-checkbox--${this.isChecked ? 'checked' : 'unchecked'}`];\r\n\r\n if (this.disabled) {\r\n classes.push('sd-checkbox--disabled');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private updateCheckedState(value: any | any[]) {\r\n if (typeof value === 'boolean') {\r\n this.isChecked = value;\r\n } else if (Array.isArray(value)) {\r\n this.isChecked = this.val !== undefined && value.includes(this.val);\r\n } else {\r\n this.isChecked = false;\r\n }\r\n }\r\n\r\n private handleChange = () => {\r\n if (this.disabled) return;\r\n\r\n let newValue: any | any[];\r\n\r\n if (typeof this.checked === 'boolean') {\r\n newValue = !this.checked;\r\n } else if (Array.isArray(this.checked)) {\r\n if (this.val === undefined) {\r\n console.warn('A \"val\" property is required when using an array for the \"value\" property.');\r\n return;\r\n }\r\n\r\n const valueSet = new Set(this.checked);\r\n valueSet.has(this.val) ? valueSet.delete(this.val) : valueSet.add(this.val);\r\n newValue = Array.from(valueSet);\r\n } else {\r\n newValue = !this.isChecked;\r\n }\r\n\r\n this.sdChange.emit(newValue);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <label class={this.getCheckboxClasses()}>\r\n <input\r\n type=\"checkbox\"\r\n checked={this.isChecked}\r\n disabled={this.disabled}\r\n onChange={this.handleChange}\r\n />\r\n <div class=\"sd-checkbox__bg\" style={this.checkboxStyle}>\r\n {this.isChecked ? (\r\n <sd-icon name=\"check\" size={12} color={this.disabled ? '#888888' : 'white'} />\r\n ) : null}\r\n </div>\r\n {this.label && <span class=\"sd-checkbox__label\">{this.label}</span>}\r\n </label>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|