@sellmate/design-system 1.18.0 → 1.19.0
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-chip-input.cjs.entry.js +29 -2
- package/dist/cjs/sd-key-value-table.cjs.entry.js +12 -6
- package/dist/cjs/sd-table.cjs.entry.js +10 -9
- package/dist/collection/components/sd-chip-input/sd-chip-input.js +48 -2
- package/dist/collection/components/sd-key-value-table/sd-key-value-table.config.js +1 -0
- package/dist/collection/components/sd-key-value-table/sd-key-value-table.css +10 -3
- package/dist/collection/components/sd-key-value-table/sd-key-value-table.js +17 -12
- package/dist/collection/components/sd-table/sd-table.css +4 -1
- package/dist/collection/components/sd-table/sd-table.js +15 -14
- package/dist/components/sd-chip-input.js +1 -1
- package/dist/components/sd-key-value-table.js +1 -1
- package/dist/components/sd-table.js +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/p-4b15247b.entry.js +1 -0
- package/dist/design-system/p-4b626171.entry.js +1 -0
- package/dist/design-system/p-9d35b674.entry.js +1 -0
- package/dist/esm/design-system.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sd-chip-input.entry.js +29 -2
- package/dist/esm/sd-key-value-table.entry.js +12 -6
- package/dist/esm/sd-table.entry.js +10 -9
- package/dist/types/components/sd-chip-input/sd-chip-input.d.ts +4 -0
- package/dist/types/components/sd-key-value-table/sd-key-value-table.config.d.ts +1 -0
- package/dist/types/components/sd-key-value-table/sd-key-value-table.d.ts +5 -3
- package/dist/types/components/sd-table/sd-table.d.ts +1 -1
- package/dist/types/components.d.ts +23 -20
- package/hydrate/index.js +54 -19
- package/hydrate/index.mjs +54 -19
- package/package.json +3 -3
- package/dist/design-system/p-0a772d43.entry.js +0 -1
- package/dist/design-system/p-bcd7d358.entry.js +0 -1
- package/dist/design-system/p-ff939fbd.entry.js +0 -1
|
@@ -16,6 +16,7 @@ export class SdChipInput {
|
|
|
16
16
|
error = false;
|
|
17
17
|
useReset = false;
|
|
18
18
|
maxCount;
|
|
19
|
+
duplicateLabel;
|
|
19
20
|
suggestions = [];
|
|
20
21
|
loadingSuggestions = false;
|
|
21
22
|
recommendedItems = [];
|
|
@@ -52,6 +53,11 @@ export class SdChipInput {
|
|
|
52
53
|
this.internalErrors = [...newErrors];
|
|
53
54
|
}
|
|
54
55
|
}
|
|
56
|
+
internalValuesChanged_validate() {
|
|
57
|
+
if (typeof this.formField?.sdValidate === 'function') {
|
|
58
|
+
this.formField.sdValidate();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
55
61
|
suggestionsChanged(newVal) {
|
|
56
62
|
if (!Array.isArray(newVal))
|
|
57
63
|
this.suggestions = [];
|
|
@@ -70,7 +76,13 @@ export class SdChipInput {
|
|
|
70
76
|
}
|
|
71
77
|
this.inputValue = this.inputValue ?? '';
|
|
72
78
|
}
|
|
79
|
+
isDuplicateChip(index) {
|
|
80
|
+
const value = this.internalValues[index];
|
|
81
|
+
return this.internalValues.indexOf(value) !== index;
|
|
82
|
+
}
|
|
73
83
|
getChipError(index) {
|
|
84
|
+
if (this.isDuplicateChip(index))
|
|
85
|
+
return true;
|
|
74
86
|
if (typeof this.errors === 'function') {
|
|
75
87
|
return this.errors(this.internalValues?.[index] ?? '');
|
|
76
88
|
}
|
|
@@ -264,6 +276,18 @@ export class SdChipInput {
|
|
|
264
276
|
this.update.emit(next);
|
|
265
277
|
this.inputEl?.focus();
|
|
266
278
|
};
|
|
279
|
+
duplicateRule = () => {
|
|
280
|
+
const seen = new Set();
|
|
281
|
+
for (const val of this.internalValues) {
|
|
282
|
+
if (seen.has(val)) {
|
|
283
|
+
if (this.duplicateLabel != null && this.duplicateLabel !== '')
|
|
284
|
+
return `이미 입력된 ${this.duplicateLabel}입니다.`;
|
|
285
|
+
return '중복된 값이 존재합니다.';
|
|
286
|
+
}
|
|
287
|
+
seen.add(val);
|
|
288
|
+
}
|
|
289
|
+
return true;
|
|
290
|
+
};
|
|
267
291
|
render() {
|
|
268
292
|
const sizeTokens = CHIP_INPUT_SIZE_MAP[this.size] ?? CHIP_INPUT_SIZE_MAP.sm;
|
|
269
293
|
const cssVars = {
|
|
@@ -368,7 +392,7 @@ export class SdChipInput {
|
|
|
368
392
|
fontFamily: CHIP_INPUT_SUGGESTIONS.itemFontFamily,
|
|
369
393
|
color: CHIP_INPUT_SUGGESTIONS.emptyColor,
|
|
370
394
|
};
|
|
371
|
-
return (h("sd-field", { key: '
|
|
395
|
+
return (h("sd-field", { key: '33ae95b159edcb8ee407cf8d311428f419f26e95', name: this.name, label: this.label, labelWidth: this.labelWidth, hint: this.hint, errorMessage: this.errorMessage, rules: [this.duplicateRule, ...(this.rules ?? [])], error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, width: this.width, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), style: cssVars, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, h("div", { key: '4f7cd96e4cda06239a7498b8af5f1f3169362028', class: "sd-chip-input", ref: el => (this.chipInputRef = el), onClick: this.handleContainerClick }, (this.internalValues ?? []).map((value, i) => (h("sd-chip", { key: i, value: value, error: this.getChipError(i), disabled: this.getChipDisabled(i), editable: false, onSdRemove: () => this.handleChipRemove(i) }))), !isMaxReached && (h("div", { key: 'dab7b1c520923fdb8cb026141727d8d008b83663', class: {
|
|
372
396
|
'sd-chip-input__field': true,
|
|
373
397
|
'sd-chip-input__field--filled': this.inputValue !== '',
|
|
374
398
|
'sd-chip-input__field--empty': this.inputValue === '' && this.internalValues.length > 0 && !this.focused,
|
|
@@ -376,7 +400,7 @@ export class SdChipInput {
|
|
|
376
400
|
? this.inputValue
|
|
377
401
|
: this.internalValues.length === 0
|
|
378
402
|
? this.placeholder
|
|
379
|
-
: '' }, h("input", { key: '
|
|
403
|
+
: '' }, h("input", { key: '0aee2d0f30c5af7fccfc2e35e5cee17912712ce9', ref: el => (this.inputEl = el), class: "sd-chip-input__input", placeholder: this.internalValues.length === 0 ? this.placeholder : '', disabled: this.disabled, size: 1, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur }))), showResetArea && (h("div", { key: 'b0b508db62d31f6427d5a2def435fec7fc552e92', class: "sd-chip-input__reset" }, this.inputValue === '' && h("span", { key: '30ce147f3bc8070192d95f381fa7f75ad37aab9b', class: "sd-chip-input__divider" }), this.maxCount != null && (h("span", { key: '8c43a2920e55a36ff0c0ab952a52ab3df8d3c98d', class: "sd-chip-input__max-count" }, "\uCD5C\uB300 ", this.maxCount, "\uAC1C")), this.useReset && this.internalValues.length > 0 && (h("sd-text-link", { key: '543316c12760fe16449e2b89a9afb8c43344eab5', icon: "reset", iconColor: CHIP_INPUT_RESET.iconColor, label: "\uC785\uB825 \uCD08\uAE30\uD654", underline: true, disabled: this.disabled, style: { '--sd-text-link-color': CHIP_INPUT_RESET.labelColor }, onSdClick: this.handleResetInput })))), showDropdown && (h("sd-portal", { key: 'c402b8336f7d62213f2b803f80f7a2ffabce2c9d', open: showDropdown, parentRef: this.chipInputRef ?? null, viewportPadding: SdChipInput.SUGGESTIONS_VIEWPORT_PADDING, onSdClose: this.closeSuggestions }, h("div", { key: '4ade4acb535b2db7011699a449afd8c17fe5696d', class: "sd-chip-input__suggestions", role: "listbox", style: suggestionBoxStyle }, isDropdownLoading && (h("div", { key: 'e07a447f7c9a9d376680ddb3af6daf58e0d39167', class: "sd-chip-input__suggestions-empty", style: suggestionEmptyStyle }, "\uBD88\uB7EC\uC624\uB294 \uC911...")), dropdownItems.map((item, i) => (h("div", { key: item, class: {
|
|
380
404
|
'sd-chip-input__suggestion-item': true,
|
|
381
405
|
'sd-chip-input__suggestion-item--active': i === this.activeSuggestionIndex,
|
|
382
406
|
}, role: "option", tabIndex: -1, "aria-selected": i === this.activeSuggestionIndex, style: i === this.activeSuggestionIndex
|
|
@@ -629,6 +653,25 @@ export class SdChipInput {
|
|
|
629
653
|
"reflect": false,
|
|
630
654
|
"attribute": "max-count"
|
|
631
655
|
},
|
|
656
|
+
"duplicateLabel": {
|
|
657
|
+
"type": "string",
|
|
658
|
+
"mutable": false,
|
|
659
|
+
"complexType": {
|
|
660
|
+
"original": "string",
|
|
661
|
+
"resolved": "string | undefined",
|
|
662
|
+
"references": {}
|
|
663
|
+
},
|
|
664
|
+
"required": false,
|
|
665
|
+
"optional": true,
|
|
666
|
+
"docs": {
|
|
667
|
+
"tags": [],
|
|
668
|
+
"text": ""
|
|
669
|
+
},
|
|
670
|
+
"getter": false,
|
|
671
|
+
"setter": false,
|
|
672
|
+
"reflect": false,
|
|
673
|
+
"attribute": "duplicate-label"
|
|
674
|
+
},
|
|
632
675
|
"suggestions": {
|
|
633
676
|
"type": "unknown",
|
|
634
677
|
"mutable": true,
|
|
@@ -1049,6 +1092,9 @@ export class SdChipInput {
|
|
|
1049
1092
|
}, {
|
|
1050
1093
|
"propName": "errors",
|
|
1051
1094
|
"methodName": "errorsChanged"
|
|
1095
|
+
}, {
|
|
1096
|
+
"propName": "internalValues",
|
|
1097
|
+
"methodName": "internalValuesChanged_validate"
|
|
1052
1098
|
}, {
|
|
1053
1099
|
"propName": "suggestions",
|
|
1054
1100
|
"methodName": "suggestionsChanged"
|
|
@@ -14,10 +14,13 @@ sd-key-value-table .sd-key-value-table__wrapper .sd-key-value-table {
|
|
|
14
14
|
border: 0;
|
|
15
15
|
border-radius: 0;
|
|
16
16
|
}
|
|
17
|
-
sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--
|
|
17
|
+
sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-usetop {
|
|
18
18
|
border-top-left-radius: 0;
|
|
19
19
|
border-top-right-radius: 0;
|
|
20
20
|
}
|
|
21
|
+
sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-full {
|
|
22
|
+
border-radius: 0;
|
|
23
|
+
}
|
|
21
24
|
sd-key-value-table .sd-key-value-table__search-panel {
|
|
22
25
|
display: flex;
|
|
23
26
|
align-items: center;
|
|
@@ -36,13 +39,15 @@ sd-key-value-table .sd-key-value-table {
|
|
|
36
39
|
border-spacing: 0;
|
|
37
40
|
overflow: hidden;
|
|
38
41
|
}
|
|
39
|
-
sd-key-value-table .sd-key-value-table.sd-key-value-table--
|
|
42
|
+
sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-usetop {
|
|
40
43
|
border-top-left-radius: 0;
|
|
41
44
|
border-top-right-radius: 0;
|
|
42
45
|
}
|
|
46
|
+
sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-full {
|
|
47
|
+
border-radius: 0;
|
|
48
|
+
}
|
|
43
49
|
sd-key-value-table .sd-key-value-table__th, sd-key-value-table .sd-key-value-table__td {
|
|
44
50
|
height: var(--sd-kvt-row-height);
|
|
45
|
-
padding: var(--sd-kvt-padding);
|
|
46
51
|
box-sizing: border-box;
|
|
47
52
|
vertical-align: middle;
|
|
48
53
|
text-align: left;
|
|
@@ -54,6 +59,7 @@ sd-key-value-table .sd-key-value-table tbody > tr:first-child > .sd-key-value-ta
|
|
|
54
59
|
border-top: 0;
|
|
55
60
|
}
|
|
56
61
|
sd-key-value-table .sd-key-value-table__th {
|
|
62
|
+
padding: var(--sd-kvt-padding) var(--sd-kvt-th-padding-x);
|
|
57
63
|
width: var(--sd-kvt-th-width);
|
|
58
64
|
background: var(--sd-kvt-th-bg);
|
|
59
65
|
color: var(--sd-kvt-th-color);
|
|
@@ -87,6 +93,7 @@ sd-key-value-table .sd-key-value-table__help {
|
|
|
87
93
|
flex-shrink: 0;
|
|
88
94
|
}
|
|
89
95
|
sd-key-value-table .sd-key-value-table__td {
|
|
96
|
+
padding: var(--sd-kvt-padding);
|
|
90
97
|
background: var(--sd-kvt-td-bg);
|
|
91
98
|
color: var(--sd-kvt-td-color);
|
|
92
99
|
}
|
|
@@ -11,10 +11,12 @@ export class SdKeyValueTable {
|
|
|
11
11
|
*/
|
|
12
12
|
search = false;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* 테이블 border-radius 제어.
|
|
15
|
+
* - 'default': 전체 radius 적용
|
|
16
|
+
* - 'usetop': 상단 radius 0 (헤더·탭 등 하단에 붙여 쓸 때)
|
|
17
|
+
* - 'full': 상하단 모두 radius 0 (요소 사이에 끼워 쓸 때)
|
|
16
18
|
*/
|
|
17
|
-
|
|
19
|
+
radius = 'default';
|
|
18
20
|
change;
|
|
19
21
|
searchEvent;
|
|
20
22
|
emit = (name, value) => {
|
|
@@ -162,6 +164,7 @@ export class SdKeyValueTable {
|
|
|
162
164
|
'--sd-kvt-row-height': `${KEY_VALUE_TABLE_LAYOUT.rowHeight}px`,
|
|
163
165
|
'--sd-kvt-th-width': `${KEY_VALUE_TABLE_LAYOUT.thWidth}px`,
|
|
164
166
|
'--sd-kvt-radius': `${KEY_VALUE_TABLE_LAYOUT.borderRadius}px`,
|
|
167
|
+
'--sd-kvt-th-padding-x': `${KEY_VALUE_TABLE_LAYOUT.thPaddingX}px`,
|
|
165
168
|
'--sd-kvt-padding': `${KEY_VALUE_TABLE_LAYOUT.padding}px`,
|
|
166
169
|
'--sd-kvt-gap': `${KEY_VALUE_TABLE_LAYOUT.gap}px`,
|
|
167
170
|
'--sd-kvt-label-gap': `${KEY_VALUE_TABLE_LAYOUT.labelGap}px`,
|
|
@@ -188,7 +191,8 @@ export class SdKeyValueTable {
|
|
|
188
191
|
const maxCols = this.computeMaxCols(autoSkip);
|
|
189
192
|
const tableEl = (h("table", { class: {
|
|
190
193
|
'sd-key-value-table': true,
|
|
191
|
-
'sd-key-value-table--
|
|
194
|
+
'sd-key-value-table--radius-usetop': this.radius === 'usetop',
|
|
195
|
+
'sd-key-value-table--radius-full': this.radius === 'full',
|
|
192
196
|
}, style: cssVars }, h("colgroup", null, Array.from({ length: maxCols }, (_, i) => {
|
|
193
197
|
if (i % 2 !== 0)
|
|
194
198
|
return h("col", { key: `col-${i}` });
|
|
@@ -212,7 +216,8 @@ export class SdKeyValueTable {
|
|
|
212
216
|
return tableEl;
|
|
213
217
|
return (h("div", { class: {
|
|
214
218
|
'sd-key-value-table__wrapper': true,
|
|
215
|
-
'sd-key-value-table__wrapper--
|
|
219
|
+
'sd-key-value-table__wrapper--radius-usetop': this.radius === 'usetop',
|
|
220
|
+
'sd-key-value-table__wrapper--radius-full': this.radius === 'full',
|
|
216
221
|
}, style: cssVars }, tableEl, h("div", { class: "sd-key-value-table__search-panel" }, h("sd-button", { label: "\uAC80\uC0C9", name: "neutral_outline_md", onSdClick: this.handleSearchClick }))));
|
|
217
222
|
}
|
|
218
223
|
static get is() { return "sd-key-value-table"; }
|
|
@@ -273,25 +278,25 @@ export class SdKeyValueTable {
|
|
|
273
278
|
"attribute": "search",
|
|
274
279
|
"defaultValue": "false"
|
|
275
280
|
},
|
|
276
|
-
"
|
|
277
|
-
"type": "
|
|
281
|
+
"radius": {
|
|
282
|
+
"type": "string",
|
|
278
283
|
"mutable": false,
|
|
279
284
|
"complexType": {
|
|
280
|
-
"original": "
|
|
281
|
-
"resolved": "
|
|
285
|
+
"original": "'default' | 'usetop' | 'full'",
|
|
286
|
+
"resolved": "\"default\" | \"full\" | \"usetop\"",
|
|
282
287
|
"references": {}
|
|
283
288
|
},
|
|
284
289
|
"required": false,
|
|
285
290
|
"optional": false,
|
|
286
291
|
"docs": {
|
|
287
292
|
"tags": [],
|
|
288
|
-
"text": "
|
|
293
|
+
"text": "\uD14C\uC774\uBE14 border-radius \uC81C\uC5B4.\n- 'default': \uC804\uCCB4 radius \uC801\uC6A9\n- 'usetop': \uC0C1\uB2E8 radius 0 (\uD5E4\uB354\u00B7\uD0ED \uB4F1 \uD558\uB2E8\uC5D0 \uBD99\uC5EC \uC4F8 \uB54C)\n- 'full': \uC0C1\uD558\uB2E8 \uBAA8\uB450 radius 0 (\uC694\uC18C \uC0AC\uC774\uC5D0 \uB07C\uC6CC \uC4F8 \uB54C)"
|
|
289
294
|
},
|
|
290
295
|
"getter": false,
|
|
291
296
|
"setter": false,
|
|
292
297
|
"reflect": false,
|
|
293
|
-
"attribute": "
|
|
294
|
-
"defaultValue": "
|
|
298
|
+
"attribute": "radius",
|
|
299
|
+
"defaultValue": "'default'"
|
|
295
300
|
}
|
|
296
301
|
};
|
|
297
302
|
}
|
|
@@ -29,9 +29,12 @@ sd-table *,
|
|
|
29
29
|
border-radius: var(--table-radius, 8px);
|
|
30
30
|
overflow: hidden;
|
|
31
31
|
}
|
|
32
|
-
.sd-table__wrapper--
|
|
32
|
+
.sd-table__wrapper--radius-usetop {
|
|
33
33
|
border-radius: 0 0 var(--table-radius, 8px) var(--table-radius, 8px);
|
|
34
34
|
}
|
|
35
|
+
.sd-table__wrapper--radius-full {
|
|
36
|
+
border-radius: 0;
|
|
37
|
+
}
|
|
35
38
|
|
|
36
39
|
.sd-table__scroll-container {
|
|
37
40
|
width: 100%;
|
|
@@ -17,7 +17,7 @@ export class SdTable {
|
|
|
17
17
|
height;
|
|
18
18
|
stickyHeader = false;
|
|
19
19
|
stickyColumn = { left: 0, right: 0 };
|
|
20
|
-
|
|
20
|
+
radius = 'default';
|
|
21
21
|
noDataLabel = SdTable.DEFAULT_NO_DATA_LABEL;
|
|
22
22
|
resolvedNoDataLabel = SdTable.DEFAULT_NO_DATA_LABEL;
|
|
23
23
|
isLoading = false;
|
|
@@ -818,24 +818,25 @@ export class SdTable {
|
|
|
818
818
|
'--table-selectable-width': `${TABLE_SELECTABLE_COLUMN_WIDTH}px`,
|
|
819
819
|
'--table-host-height': hostHeight,
|
|
820
820
|
};
|
|
821
|
-
return (h(Host, { key: '
|
|
821
|
+
return (h(Host, { key: '87170da602bd45011a4f03e0bb7c1ce35ac4b771', style: hostStyle }, h("div", { key: '899ad5a375b30565141fc50063620975a1c87b95', class: "sd-table__container", style: {
|
|
822
822
|
'--table-width': this.width,
|
|
823
823
|
'--pagination-height': `${paginationHeight}px`,
|
|
824
|
-
} }, h("div", { key: '
|
|
824
|
+
} }, h("div", { key: '73db070c9018b814e9c55f605c22a13f81fefc5d', class: {
|
|
825
825
|
'sd-table__wrapper': true,
|
|
826
|
-
'sd-table__wrapper--
|
|
827
|
-
|
|
826
|
+
'sd-table__wrapper--radius-usetop': this.radius === 'usetop',
|
|
827
|
+
'sd-table__wrapper--radius-full': this.radius === 'full',
|
|
828
|
+
} }, h("div", { key: 'f52d585b54a29a6e44c3d9f5ec3a8f20f0e62e8c', class: {
|
|
828
829
|
'sd-table__scroll-container': true,
|
|
829
830
|
'sd-table__scroll-container--loading': this.isLoading,
|
|
830
831
|
'sd-table__scroll-container--no-data': isNoData,
|
|
831
|
-
} }, this.isLoading && (h("div", { key: '
|
|
832
|
+
} }, this.isLoading && (h("div", { key: 'cd9ee8de1d3a4f7abe553372342da1d3ee38b6fe', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, h("sd-circle-progress", { key: 'b239353973c8e6959ff9b5c3308696b4c743dbf0', indeterminate: true }))), isNoData && (h(h.Fragment, null, h("div", { key: '7f219801def31f4f19f6042e85e02d9e2b366c90', class: "sd-table__no-data-header-overlay" }), h("div", { key: '2dcb2227ea402c4fcc176e3e493b88d37843f8ed', class: "sd-table__no-data" }, h("div", { key: '47b8e69f4518200cd87c79d50bfc0d505310aff9', class: "sd-table__no-data-content", ref: el => {
|
|
832
833
|
this.noDataContentEl = el;
|
|
833
834
|
if (el)
|
|
834
835
|
this.syncNoDataContentObserver();
|
|
835
|
-
} }, h("slot", { key: '
|
|
836
|
+
} }, h("slot", { key: '3cdbaa3552166b915d0bd30a2e19324679615da4', name: "no-data" }, h("span", { key: 'dd14af39eb6658f3a1d876745f80fcbe13529846' }, this.resolvedNoDataLabel)))))), h("table", { key: 'f11b8e0e7bb53f3ceda805ecc2b0911ea83cb79f', class: this.tableClasses }, this.autoThead ? (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, h("sd-thead", { rows: this.rows ?? [] }))) : (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, h("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
|
|
836
837
|
this.pagination.rowsPerPage > 0 &&
|
|
837
838
|
this.rowCount > 0 &&
|
|
838
|
-
!this.useVirtualScroll && (h("div", { key: '
|
|
839
|
+
!this.useVirtualScroll && (h("div", { key: 'ac990f82d327f1dbfd5fc8e395b348b228c7b724', class: "sd-table__pagination" }, h("sd-pagination", { key: '724c0b1f72efdaae442dde22391e0035c9ddf8f9', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (h("sd-select", { key: 'b5fcde2f53f9d5b497e5da3b4099f9d56f67c245', value: this.useInternalPagination
|
|
839
840
|
? this.innerRowsPerPage
|
|
840
841
|
: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", emitValue: true, onSdUpdate: e => {
|
|
841
842
|
if (!this.isRowsPerPageValue(e.detail))
|
|
@@ -1094,12 +1095,12 @@ export class SdTable {
|
|
|
1094
1095
|
"setter": false,
|
|
1095
1096
|
"defaultValue": "{ left: 0, right: 0 }"
|
|
1096
1097
|
},
|
|
1097
|
-
"
|
|
1098
|
-
"type": "
|
|
1098
|
+
"radius": {
|
|
1099
|
+
"type": "string",
|
|
1099
1100
|
"mutable": false,
|
|
1100
1101
|
"complexType": {
|
|
1101
|
-
"original": "
|
|
1102
|
-
"resolved": "
|
|
1102
|
+
"original": "'default' | 'usetop' | 'full'",
|
|
1103
|
+
"resolved": "\"default\" | \"full\" | \"usetop\"",
|
|
1103
1104
|
"references": {}
|
|
1104
1105
|
},
|
|
1105
1106
|
"required": false,
|
|
@@ -1111,8 +1112,8 @@ export class SdTable {
|
|
|
1111
1112
|
"getter": false,
|
|
1112
1113
|
"setter": false,
|
|
1113
1114
|
"reflect": false,
|
|
1114
|
-
"attribute": "
|
|
1115
|
-
"defaultValue": "
|
|
1115
|
+
"attribute": "radius",
|
|
1116
|
+
"defaultValue": "'default'"
|
|
1116
1117
|
},
|
|
1117
1118
|
"noDataLabel": {
|
|
1118
1119
|
"type": "string",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as i,H as t,c as s,h as e,t as n}from"./p-Bg9XySrz.js";import{n as h}from"./p-CCwNgVmC.js";import{s as d}from"./p-BJfiMC9H.js";import{l as o,a as p}from"./p-U8VaRj9c.js";import{d as a,C as r,a as l,b as c}from"./p-Bzo51vnP.js";import{d as u}from"./p-DDR0VcRU.js";import{d as g}from"./p-BX5uKVOt.js";import{d as f}from"./p-BLNc_TL-.js";import{d as m}from"./p-DTFXzlvq.js";import{d as b}from"./p-ClKABgST.js";import{d as v}from"./p-Dr5Q2ZKB.js";import{d as y}from"./p-BMIgVp9-.js";import{d as x}from"./p-DrSHJYop.js";import{d as w}from"./p-Cl5io5TH.js";var _={minHeight:"36",paddingX:"12",paddingY:"6",radius:"4",typography:{fontFamily:"Pretendard Variable, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, Apple Color Emoji, Segoe UI Emoji, sans-serif",fontWeight:"400",fontSize:"12",lineHeight:"20"}},k={minHeight:"40",paddingX:"16",paddingY:"8",radius:"6",typography:{fontFamily:"Pretendard Variable, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, Apple Color Emoji, Segoe UI Emoji, sans-serif",fontWeight:"400",fontSize:"14",lineHeight:"24"}},S={placeholder:"#AAAAAA"};const C={sm:{minHeight:_.minHeight,paddingX:_.paddingX,paddingY:_.paddingY,radius:_.radius,fontSize:_.typography.fontSize,lineHeight:_.typography.lineHeight,fontWeight:_.typography.fontWeight,fontFamily:_.typography.fontFamily},md:{minHeight:k.minHeight,paddingX:k.paddingX,paddingY:k.paddingY,radius:k.radius,fontSize:k.typography.fontSize,lineHeight:k.typography.lineHeight,fontWeight:k.typography.fontWeight,fontFamily:k.typography.fontFamily}},z={text:{placeholder:S.placeholder}},E={chipGap:{gap:"8"}.gap+"px"},A=d.typography.feedback.sm.regular,F={fontSize:A.fontSize+"px",fontWeight:""+A.fontWeight,color:S.placeholder},I=p.listItem,R={radius:o.listBox.radius+"px",maxHeight:"260px",itemPaddingY:I.paddingY+"px",itemPaddingX:I.paddingLeft.depth1+"px",itemPaddingRight:I.paddingRight+"px",itemGap:I.gap+"px",itemFontSize:I.typography.default.fontSize+"px",itemFontWeight:I.typography.default.fontWeight,itemFontWeightSelected:I.typography.selected.fontWeight,itemLineHeight:I.typography.default.lineHeight+"px",itemFontFamily:I.typography.default.fontFamily,itemColor:I.content.default,itemColorHover:I.content.hover,itemBgHover:I.bg.hover,emptyColor:"#888888",emptyFontSize:"12px",emptyLineHeight:"20px"},H=i(class i extends t{constructor(i){super(),!1!==i&&this.__registerHost(),this.update=s(this,"sdUpdate",7),this.focusEvent=s(this,"sdFocus",7),this.blurEvent=s(this,"sdBlur",7),this.inputEvent=s(this,"sdInput",7)}static SUGGESTIONS_VIEWPORT_PADDING=8;get host(){return this}values=[];errors=[];disabledChips=[];size="sm";disabled=!1;placeholder="입력해 주세요.";name=h();rules=[];error=!1;useReset=!1;maxCount;suggestions=[];loadingSuggestions=!1;recommendedItems=[];loadingRecommendedItems=!1;label="";labelWidth="";hint="";errorMessage="";width="";status;icon=void 0;labelTooltip="";labelTooltipProps=null;internalValues=[];internalErrors=[];focused=!1;hovered=!1;inputValue="";activeSuggestionIndex=-1;suppressSuggestions=!1;suppressRecommendations=!1;inputEl;formField;chipInputRef;get value(){return this.internalValues}valuesChanged(i){this.internalValues=Array.isArray(i)?[...i]:[]}errorsChanged(i){Array.isArray(i)&&(this.internalErrors=[...i])}suggestionsChanged(i){Array.isArray(i)||(this.suggestions=[]),this.activeSuggestionIndex=-1,this.suppressSuggestions=!1}recommendedItemsChanged(i){Array.isArray(i)||(this.recommendedItems=[]),this.activeSuggestionIndex=-1}componentWillLoad(){this.internalValues=Array.isArray(this.values)?[...this.values]:[],Array.isArray(this.errors)&&(this.internalErrors=[...this.errors]),this.inputValue=this.inputValue??""}getChipError(i){return"function"==typeof this.errors?this.errors(this.internalValues?.[i]??""):this.internalErrors?.[i]??!1}getChipDisabled(i){return!!this.disabled||("function"==typeof this.disabledChips?this.disabledChips(this.internalValues?.[i]??""):this.disabledChips?.[i]??!1)}update;focusEvent;blurEvent;inputEvent;async sdValidate(){return this.formField?.sdValidate()}async sdReset(){return this.formField?.sdReset()}async sdResetValidate(){return this.formField?.sdResetValidation()}async sdFocus(){return this.formField?.sdFocus()}addChip=i=>{if(null!=this.maxCount&&this.internalValues.length>=this.maxCount)return;const t=[...this.internalValues,i];if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const i=[...this.internalErrors,!1];this.internalErrors=i,this.errors=i}Array.isArray(this.disabledChips)&&(this.disabledChips=[...this.disabledChips,!1]),null!=this.inputEl&&(this.inputEl.value=""),this.inputValue="",this.activeSuggestionIndex=-1,this.suppressSuggestions=!0,this.update.emit(t),this.inputEvent.emit(""),this.inputEl?.focus(),this.suppressRecommendations=!0};handleChipRemove=i=>{const t=this.internalValues.filter(((t,s)=>s!==i));if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const t=this.internalErrors.filter(((t,s)=>s!==i));this.internalErrors=t,this.errors=t}Array.isArray(this.disabledChips)&&(this.disabledChips=this.disabledChips.filter(((t,s)=>s!==i))),this.update.emit(t),this.inputEl?.focus(),this.suppressRecommendations=!0};handleKeyDown=i=>{const t=i.target,s=this.suggestions??[],e=this.recommendedItems??[],n=this.focused&&""!==this.inputValue&&!this.suppressSuggestions&&(s.length>0||this.loadingSuggestions),h=this.focused&&""===this.inputValue&&!this.suppressRecommendations&&(e.length>0||this.loadingRecommendedItems),d=n?s:e;if(n||h){if("ArrowDown"===i.key)return i.preventDefault(),void(this.activeSuggestionIndex=Math.min(this.activeSuggestionIndex+1,d.length-1));if("ArrowUp"===i.key)return i.preventDefault(),void(this.activeSuggestionIndex=Math.max(this.activeSuggestionIndex-1,-1));if("Escape"===i.key)return n&&(this.suppressSuggestions=!0),h&&(this.suppressRecommendations=!0),void(this.activeSuggestionIndex=-1);if("Enter"===i.key&&this.activeSuggestionIndex>=0)return i.preventDefault(),void this.addChip(d[this.activeSuggestionIndex])}if("Enter"!==i.key||i.isComposing||""===t.value.trim()){if("Backspace"===i.key&&""===t.value&&this.internalValues.length>0){if(this.getChipDisabled(this.internalValues.length-1))return;i.preventDefault();const t=this.internalValues.slice(0,-1);if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const i=this.internalErrors.slice(0,-1);this.internalErrors=i,this.errors=i}Array.isArray(this.disabledChips)&&(this.disabledChips=this.disabledChips.slice(0,-1)),this.update.emit(t)}}else{if(null!=this.maxCount&&this.internalValues.length>=this.maxCount)return;i.preventDefault(),this.addChip(t.value.trim())}};handleInput=i=>{const t=i.target.value,s=""===t;""===this.inputValue!==s&&(this.activeSuggestionIndex=-1,s&&(this.suppressRecommendations=!1)),this.inputValue=t,this.suppressSuggestions=!1,this.inputEvent.emit(t)};handleFocus=()=>{this.focused=!0,this.suppressRecommendations=!1,this.focusEvent.emit()};handleBlur=()=>{this.focused=!1,this.activeSuggestionIndex=-1,this.blurEvent.emit()};closeSuggestions=()=>{this.focused=!1,this.activeSuggestionIndex=-1,this.suppressSuggestions=!0,this.suppressRecommendations=!0};handleContainerClick=()=>{this.disabled||this.inputEl?.focus()};handleResetInput=()=>{const i=this.internalValues.reduce(((i,t,s)=>(this.getChipDisabled(s)&&i.push(s),i)),[]),t=i.map((i=>this.internalValues[i]));if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const t=i.map((i=>this.internalErrors[i]??!1));this.internalErrors=t,this.errors=t}else this.internalErrors=[];if(Array.isArray(this.disabledChips)){const t=this.disabledChips;this.disabledChips=i.map((i=>t[i]))}this.update.emit(t),this.inputEl?.focus()};render(){const t=C[this.size]??C.sm,s={[`--sd-system-size-field-${this.size}-height`]:"auto",["--sd-system-radius-field-"+this.size]:t.radius+"px","--sd-chip-input-min-height":t.minHeight+"px","--sd-chip-input-padding-x":t.paddingX+"px","--sd-chip-input-padding-y":t.paddingY+"px","--sd-chip-input-font-size":t.fontSize+"px","--sd-chip-input-line-height":t.lineHeight+"px","--sd-chip-input-font-weight":t.fontWeight,"--sd-chip-input-font-family":t.fontFamily,"--sd-chip-input-chip-gap":E.chipGap,"--sd-chip-input-placeholder-color":z.text.placeholder,"--sd-chip-input-reset-gap":E.chipGap,"--sd-chip-input-divider-color":"#E1E1E1","--sd-chip-input-field-height":c.height,"--sd-chip-input-field-padding-x":c.paddingX,"--sd-chip-input-field-radius":c.radius,"--sd-chip-input-field-border-width":c.borderWidth,"--sd-chip-input-field-bg":l.bg.default,"--sd-chip-input-field-border-color":"transparent","--sd-chip-input-field-content":l.content.focus,"--sd-chip-input-field-font-size":r.focus.fontSize,"--sd-chip-input-field-font-weight":r.focus.fontWeight,"--sd-chip-input-field-line-height":r.focus.lineHeight,"--sd-chip-input-field-font-family":r.focus.fontFamily,"--sd-chip-input-max-count-font-size":F.fontSize,"--sd-chip-input-max-count-font-weight":F.fontWeight,"--sd-chip-input-max-count-color":F.color,"--sd-chip-input-suggestions-radius":R.radius,"--sd-chip-input-suggestions-max-height":R.maxHeight,"--sd-chip-input-suggestion-padding-y":R.itemPaddingY,"--sd-chip-input-suggestion-padding-x":R.itemPaddingX,"--sd-chip-input-suggestion-padding-right":R.itemPaddingRight,"--sd-chip-input-suggestion-gap":R.itemGap,"--sd-chip-input-suggestion-font-size":R.itemFontSize,"--sd-chip-input-suggestion-font-weight":R.itemFontWeight,"--sd-chip-input-suggestion-font-weight-selected":R.itemFontWeightSelected,"--sd-chip-input-suggestion-line-height":R.itemLineHeight,"--sd-chip-input-suggestion-font-family":R.itemFontFamily,"--sd-chip-input-suggestion-color":R.itemColor,"--sd-chip-input-suggestion-color-hover":R.itemColorHover,"--sd-chip-input-suggestion-bg-hover":R.itemBgHover,"--sd-chip-input-suggestions-empty-color":R.emptyColor,"--sd-chip-input-suggestions-empty-font-size":R.emptyFontSize,"--sd-chip-input-suggestions-empty-line-height":R.emptyLineHeight},n=null!=this.maxCount&&this.internalValues.length>=this.maxCount,h=this.useReset&&this.internalValues.length>0||null!=this.maxCount,d=this.suggestions??[],o=this.recommendedItems??[],p=this.focused&&""!==this.inputValue&&!this.suppressSuggestions&&(d.length>0||this.loadingSuggestions),a=p||this.focused&&""===this.inputValue&&!this.suppressRecommendations&&(o.length>0||this.loadingRecommendedItems),u=p?d:o,g=p?this.loadingSuggestions&&0===d.length:this.loadingRecommendedItems&&0===o.length,f={width:(this.chipInputRef?.offsetWidth??0)+"px",display:"flex",flexDirection:"column",boxSizing:"border-box",background:"#FFFFFF",borderRadius:R.radius,boxShadow:"2px 2px 12px 2px rgba(0, 0, 0, 0.1)",maxHeight:R.maxHeight,minHeight:"0",overflowY:"auto",overflowX:"hidden",outline:"none"},m={display:"flex",alignItems:"center",gap:R.itemGap,padding:`${R.itemPaddingY} ${R.itemPaddingRight} ${R.itemPaddingY} ${R.itemPaddingX}`,fontSize:R.itemFontSize,lineHeight:R.itemLineHeight,fontWeight:R.itemFontWeight,fontFamily:R.itemFontFamily,color:R.itemColor,cursor:"pointer",userSelect:"none",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},b={padding:"12px",textAlign:"center",fontSize:R.emptyFontSize,lineHeight:R.emptyLineHeight,fontFamily:R.itemFontFamily,color:R.emptyColor};return e("sd-field",{key:"6ff0688cd9a076cd81693364bfeb6a98b5bf018e",name:this.name,label:this.label,labelWidth:this.labelWidth,hint:this.hint,errorMessage:this.errorMessage,rules:this.rules,error:this.error,disabled:this.disabled,focused:this.focused,hovered:this.hovered,status:this.status,size:this.size,width:this.width,icon:this.icon,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:i=>this.formField=i,style:s,onMouseEnter:()=>this.hovered=!0,onMouseLeave:()=>this.hovered=!1},e("div",{key:"0c6ae92de4dcb44ed4fbcd12f1dddef93cec12db",class:"sd-chip-input",ref:i=>this.chipInputRef=i,onClick:this.handleContainerClick},(this.internalValues??[]).map(((i,t)=>e("sd-chip",{key:t,value:i,error:this.getChipError(t),disabled:this.getChipDisabled(t),editable:!1,onSdRemove:()=>this.handleChipRemove(t)}))),!n&&e("div",{key:"df111f3110b444ed296db8c6b7f00d9209f858af",class:{"sd-chip-input__field":!0,"sd-chip-input__field--filled":""!==this.inputValue,"sd-chip-input__field--empty":""===this.inputValue&&this.internalValues.length>0&&!this.focused},"data-value":""!==this.inputValue?this.inputValue:0===this.internalValues.length?this.placeholder:""},e("input",{key:"8e170c84cedab36edbdd0a84e7e2e1ac0fba9632",ref:i=>this.inputEl=i,class:"sd-chip-input__input",placeholder:0===this.internalValues.length?this.placeholder:"",disabled:this.disabled,size:1,onInput:this.handleInput,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur})),h&&e("div",{key:"5b30bb4f89c9d3c9b18870acccad22bd97e1d748",class:"sd-chip-input__reset"},""===this.inputValue&&e("span",{key:"6fbf74a5a77b70789a609d28f5c4b6dd2aab57ef",class:"sd-chip-input__divider"}),null!=this.maxCount&&e("span",{key:"fbb21a27bdd2aa38870cfd8d16b7e5293769eaf3",class:"sd-chip-input__max-count"},"최대 ",this.maxCount,"개"),this.useReset&&this.internalValues.length>0&&e("sd-text-link",{key:"83626145602b13d7a00ef955a6db59f41c152529",icon:"reset",iconColor:"#888888",label:"입력 초기화",underline:!0,disabled:this.disabled,style:{"--sd-text-link-color":"#555555"},onSdClick:this.handleResetInput})),a&&e("sd-portal",{key:"1682a89b513098f192f776af782aa9ee432574e8",open:a,parentRef:this.chipInputRef??null,viewportPadding:i.SUGGESTIONS_VIEWPORT_PADDING,onSdClose:this.closeSuggestions},e("div",{key:"3efb484bd5616e411824f7014a759a34a9e93d8b",class:"sd-chip-input__suggestions",role:"listbox",style:f},g&&e("div",{key:"b5b1d5e6db03f6fe60864b6c19e9b2c753468447",class:"sd-chip-input__suggestions-empty",style:b},"불러오는 중..."),u.map(((i,t)=>e("div",{key:i,class:{"sd-chip-input__suggestion-item":!0,"sd-chip-input__suggestion-item--active":t===this.activeSuggestionIndex},role:"option",tabIndex:-1,"aria-selected":t===this.activeSuggestionIndex,style:t===this.activeSuggestionIndex?{...m,background:R.itemBgHover,color:R.itemColorHover,fontWeight:R.itemFontWeightSelected}:m,onMouseDown:t=>{t.preventDefault(),this.addChip(i)}},i)))))))}static get watchers(){return{values:[{valuesChanged:0}],errors:[{errorsChanged:0}],suggestions:[{suggestionsChanged:0}],recommendedItems:[{recommendedItemsChanged:0}]}}static get style(){return"sd-chip-input{display:inline-flex}sd-chip-input .sd-chip-input{position:relative;width:100%;isolation:isolate;min-height:var(--sd-chip-input-min-height);display:flex;flex-flow:row wrap;align-items:center;gap:var(--sd-chip-input-chip-gap);padding:var(--sd-chip-input-padding-y) var(--sd-chip-input-padding-x);cursor:text}sd-chip-input .sd-chip-input__reset{display:inline-flex;align-items:center;gap:var(--sd-chip-input-reset-gap);flex-shrink:0}sd-chip-input .sd-chip-input__divider{display:inline-block;width:1px;height:12px;background-color:var(--sd-chip-input-divider-color);flex-shrink:0}sd-chip-input .sd-chip-input__max-count{font-size:var(--sd-chip-input-max-count-font-size);font-weight:var(--sd-chip-input-max-count-font-weight);color:var(--sd-chip-input-max-count-color);white-space:nowrap;flex-shrink:0}sd-chip-input .sd-chip-input__field{flex:0 0 auto;display:inline-grid;grid-template-columns:minmax(0, max-content);align-items:center;min-width:1ch;max-width:100%;height:var(--sd-chip-input-field-height);box-sizing:border-box;padding:0;border:none;border-radius:0;background:transparent;overflow:hidden}sd-chip-input .sd-chip-input__field::after{content:attr(data-value);grid-area:1/1;visibility:hidden;white-space:pre;font-size:var(--sd-chip-input-field-font-size);line-height:var(--sd-chip-input-field-line-height);font-weight:var(--sd-chip-input-field-font-weight);font-family:var(--sd-chip-input-field-font-family)}sd-chip-input .sd-chip-input__field--filled{padding:0 var(--sd-chip-input-field-padding-x);border:var(--sd-chip-input-field-border-width) solid var(--sd-chip-input-field-border-color);border-radius:var(--sd-chip-input-field-radius);background:var(--sd-chip-input-field-bg)}sd-chip-input .sd-chip-input__field--empty{position:absolute;top:0;left:0;width:0;height:0;min-width:0;overflow:hidden}sd-chip-input .sd-chip-input__input{grid-area:1/1;width:100%;min-width:1ch;height:var(--sd-chip-input-field-height);margin:0;padding:0;border:none;outline:none;overflow:hidden;text-overflow:ellipsis;background:transparent;font-size:var(--sd-chip-input-field-font-size);line-height:var(--sd-chip-input-field-line-height);font-weight:var(--sd-chip-input-field-font-weight);font-family:var(--sd-chip-input-field-font-family);color:var(--sd-chip-input-field-content)}sd-chip-input .sd-chip-input__input[disabled]{cursor:not-allowed;pointer-events:none}sd-chip-input .sd-chip-input__input::placeholder{color:var(--sd-chip-input-placeholder-color)}sd-chip-input .sd-chip-input__suggestions{display:flex;flex-direction:column;box-sizing:border-box;background:white;border-radius:var(--sd-chip-input-suggestions-radius);box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);max-height:var(--sd-chip-input-suggestions-max-height);min-height:0;overflow-y:auto;overflow-x:hidden;outline:none}sd-chip-input .sd-chip-input__suggestion-item{display:flex;align-items:center;gap:var(--sd-chip-input-suggestion-gap);padding:var(--sd-chip-input-suggestion-padding-y) var(--sd-chip-input-suggestion-padding-right) var(--sd-chip-input-suggestion-padding-y) var(--sd-chip-input-suggestion-padding-x);font-size:var(--sd-chip-input-suggestion-font-size);line-height:var(--sd-chip-input-suggestion-line-height);font-weight:var(--sd-chip-input-suggestion-font-weight);font-family:var(--sd-chip-input-suggestion-font-family);color:var(--sd-chip-input-suggestion-color);cursor:pointer;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-chip-input .sd-chip-input__suggestion-item--active{background:var(--sd-chip-input-suggestion-bg-hover);color:var(--sd-chip-input-suggestion-color-hover);font-weight:var(--sd-chip-input-suggestion-font-weight-selected)}sd-chip-input .sd-chip-input__suggestions-empty{padding:12px;text-align:center;font-size:var(--sd-chip-input-suggestions-empty-font-size);line-height:var(--sd-chip-input-suggestions-empty-line-height);font-family:var(--sd-chip-input-suggestion-font-family);color:var(--sd-chip-input-suggestions-empty-color)}"}},[512,"sd-chip-input",{values:[1040],errors:[1040],disabledChips:[1040],size:[1],disabled:[4],placeholder:[1],name:[1],rules:[16],error:[1028],useReset:[4,"use-reset"],maxCount:[2,"max-count"],suggestions:[1040],loadingSuggestions:[4,"loading-suggestions"],recommendedItems:[1040],loadingRecommendedItems:[4,"loading-recommended-items"],label:[1],labelWidth:[8,"label-width"],hint:[1],errorMessage:[1,"error-message"],width:[8],status:[1],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],internalValues:[32],internalErrors:[32],focused:[32],hovered:[32],inputValue:[32],activeSuggestionIndex:[32],suppressSuggestions:[32],suppressRecommendations:[32],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{values:[{valuesChanged:0}],errors:[{errorsChanged:0}],suggestions:[{suggestionsChanged:0}],recommendedItems:[{recommendedItemsChanged:0}]}]),j=H,V=function(){"undefined"!=typeof customElements&&["sd-chip-input","sd-button","sd-chip","sd-field","sd-floating-portal","sd-ghost-button","sd-icon","sd-portal","sd-tag","sd-text-link","sd-tooltip"].forEach((i=>{switch(i){case"sd-chip-input":customElements.get(n(i))||customElements.define(n(i),H);break;case"sd-button":customElements.get(n(i))||u();break;case"sd-chip":customElements.get(n(i))||a();break;case"sd-field":customElements.get(n(i))||g();break;case"sd-floating-portal":customElements.get(n(i))||f();break;case"sd-ghost-button":customElements.get(n(i))||m();break;case"sd-icon":customElements.get(n(i))||b();break;case"sd-portal":customElements.get(n(i))||v();break;case"sd-tag":customElements.get(n(i))||y();break;case"sd-text-link":customElements.get(n(i))||x();break;case"sd-tooltip":customElements.get(n(i))||w()}}))};export{j as SdChipInput,V as defineCustomElement}
|
|
1
|
+
import{p as i,H as t,c as s,h as e,t as n}from"./p-Bg9XySrz.js";import{n as h}from"./p-CCwNgVmC.js";import{s as d}from"./p-BJfiMC9H.js";import{l as o,a as p}from"./p-U8VaRj9c.js";import{d as a,C as r,a as l,b as u}from"./p-Bzo51vnP.js";import{d as c}from"./p-DDR0VcRU.js";import{d as g}from"./p-BX5uKVOt.js";import{d as f}from"./p-BLNc_TL-.js";import{d as m}from"./p-DTFXzlvq.js";import{d as b}from"./p-ClKABgST.js";import{d as v}from"./p-Dr5Q2ZKB.js";import{d as y}from"./p-BMIgVp9-.js";import{d as x}from"./p-DrSHJYop.js";import{d as w}from"./p-Cl5io5TH.js";var _={minHeight:"36",paddingX:"12",paddingY:"6",radius:"4",typography:{fontFamily:"Pretendard Variable, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, Apple Color Emoji, Segoe UI Emoji, sans-serif",fontWeight:"400",fontSize:"12",lineHeight:"20"}},k={minHeight:"40",paddingX:"16",paddingY:"8",radius:"6",typography:{fontFamily:"Pretendard Variable, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, Apple Color Emoji, Segoe UI Emoji, sans-serif",fontWeight:"400",fontSize:"14",lineHeight:"24"}},C={placeholder:"#AAAAAA"};const S={sm:{minHeight:_.minHeight,paddingX:_.paddingX,paddingY:_.paddingY,radius:_.radius,fontSize:_.typography.fontSize,lineHeight:_.typography.lineHeight,fontWeight:_.typography.fontWeight,fontFamily:_.typography.fontFamily},md:{minHeight:k.minHeight,paddingX:k.paddingX,paddingY:k.paddingY,radius:k.radius,fontSize:k.typography.fontSize,lineHeight:k.typography.lineHeight,fontWeight:k.typography.fontWeight,fontFamily:k.typography.fontFamily}},z={text:{placeholder:C.placeholder}},E={chipGap:{gap:"8"}.gap+"px"},A=d.typography.feedback.sm.regular,F={fontSize:A.fontSize+"px",fontWeight:""+A.fontWeight,color:C.placeholder},I=p.listItem,R={radius:o.listBox.radius+"px",maxHeight:"260px",itemPaddingY:I.paddingY+"px",itemPaddingX:I.paddingLeft.depth1+"px",itemPaddingRight:I.paddingRight+"px",itemGap:I.gap+"px",itemFontSize:I.typography.default.fontSize+"px",itemFontWeight:I.typography.default.fontWeight,itemFontWeightSelected:I.typography.selected.fontWeight,itemLineHeight:I.typography.default.lineHeight+"px",itemFontFamily:I.typography.default.fontFamily,itemColor:I.content.default,itemColorHover:I.content.hover,itemBgHover:I.bg.hover,emptyColor:"#888888",emptyFontSize:"12px",emptyLineHeight:"20px"},V=i(class i extends t{constructor(i){super(),!1!==i&&this.__registerHost(),this.update=s(this,"sdUpdate",7),this.focusEvent=s(this,"sdFocus",7),this.blurEvent=s(this,"sdBlur",7),this.inputEvent=s(this,"sdInput",7)}static SUGGESTIONS_VIEWPORT_PADDING=8;get host(){return this}values=[];errors=[];disabledChips=[];size="sm";disabled=!1;placeholder="입력해 주세요.";name=h();rules=[];error=!1;useReset=!1;maxCount;duplicateLabel;suggestions=[];loadingSuggestions=!1;recommendedItems=[];loadingRecommendedItems=!1;label="";labelWidth="";hint="";errorMessage="";width="";status;icon=void 0;labelTooltip="";labelTooltipProps=null;internalValues=[];internalErrors=[];focused=!1;hovered=!1;inputValue="";activeSuggestionIndex=-1;suppressSuggestions=!1;suppressRecommendations=!1;inputEl;formField;chipInputRef;get value(){return this.internalValues}valuesChanged(i){this.internalValues=Array.isArray(i)?[...i]:[]}errorsChanged(i){Array.isArray(i)&&(this.internalErrors=[...i])}internalValuesChanged_validate(){"function"==typeof this.formField?.sdValidate&&this.formField.sdValidate()}suggestionsChanged(i){Array.isArray(i)||(this.suggestions=[]),this.activeSuggestionIndex=-1,this.suppressSuggestions=!1}recommendedItemsChanged(i){Array.isArray(i)||(this.recommendedItems=[]),this.activeSuggestionIndex=-1}componentWillLoad(){this.internalValues=Array.isArray(this.values)?[...this.values]:[],Array.isArray(this.errors)&&(this.internalErrors=[...this.errors]),this.inputValue=this.inputValue??""}isDuplicateChip(i){return this.internalValues.indexOf(this.internalValues[i])!==i}getChipError(i){return!!this.isDuplicateChip(i)||("function"==typeof this.errors?this.errors(this.internalValues?.[i]??""):this.internalErrors?.[i]??!1)}getChipDisabled(i){return!!this.disabled||("function"==typeof this.disabledChips?this.disabledChips(this.internalValues?.[i]??""):this.disabledChips?.[i]??!1)}update;focusEvent;blurEvent;inputEvent;async sdValidate(){return this.formField?.sdValidate()}async sdReset(){return this.formField?.sdReset()}async sdResetValidate(){return this.formField?.sdResetValidation()}async sdFocus(){return this.formField?.sdFocus()}addChip=i=>{if(null!=this.maxCount&&this.internalValues.length>=this.maxCount)return;const t=[...this.internalValues,i];if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const i=[...this.internalErrors,!1];this.internalErrors=i,this.errors=i}Array.isArray(this.disabledChips)&&(this.disabledChips=[...this.disabledChips,!1]),null!=this.inputEl&&(this.inputEl.value=""),this.inputValue="",this.activeSuggestionIndex=-1,this.suppressSuggestions=!0,this.update.emit(t),this.inputEvent.emit(""),this.inputEl?.focus(),this.suppressRecommendations=!0};handleChipRemove=i=>{const t=this.internalValues.filter(((t,s)=>s!==i));if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const t=this.internalErrors.filter(((t,s)=>s!==i));this.internalErrors=t,this.errors=t}Array.isArray(this.disabledChips)&&(this.disabledChips=this.disabledChips.filter(((t,s)=>s!==i))),this.update.emit(t),this.inputEl?.focus(),this.suppressRecommendations=!0};handleKeyDown=i=>{const t=i.target,s=this.suggestions??[],e=this.recommendedItems??[],n=this.focused&&""!==this.inputValue&&!this.suppressSuggestions&&(s.length>0||this.loadingSuggestions),h=this.focused&&""===this.inputValue&&!this.suppressRecommendations&&(e.length>0||this.loadingRecommendedItems),d=n?s:e;if(n||h){if("ArrowDown"===i.key)return i.preventDefault(),void(this.activeSuggestionIndex=Math.min(this.activeSuggestionIndex+1,d.length-1));if("ArrowUp"===i.key)return i.preventDefault(),void(this.activeSuggestionIndex=Math.max(this.activeSuggestionIndex-1,-1));if("Escape"===i.key)return n&&(this.suppressSuggestions=!0),h&&(this.suppressRecommendations=!0),void(this.activeSuggestionIndex=-1);if("Enter"===i.key&&this.activeSuggestionIndex>=0)return i.preventDefault(),void this.addChip(d[this.activeSuggestionIndex])}if("Enter"!==i.key||i.isComposing||""===t.value.trim()){if("Backspace"===i.key&&""===t.value&&this.internalValues.length>0){if(this.getChipDisabled(this.internalValues.length-1))return;i.preventDefault();const t=this.internalValues.slice(0,-1);if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const i=this.internalErrors.slice(0,-1);this.internalErrors=i,this.errors=i}Array.isArray(this.disabledChips)&&(this.disabledChips=this.disabledChips.slice(0,-1)),this.update.emit(t)}}else{if(null!=this.maxCount&&this.internalValues.length>=this.maxCount)return;i.preventDefault(),this.addChip(t.value.trim())}};handleInput=i=>{const t=i.target.value,s=""===t;""===this.inputValue!==s&&(this.activeSuggestionIndex=-1,s&&(this.suppressRecommendations=!1)),this.inputValue=t,this.suppressSuggestions=!1,this.inputEvent.emit(t)};handleFocus=()=>{this.focused=!0,this.suppressRecommendations=!1,this.focusEvent.emit()};handleBlur=()=>{this.focused=!1,this.activeSuggestionIndex=-1,this.blurEvent.emit()};closeSuggestions=()=>{this.focused=!1,this.activeSuggestionIndex=-1,this.suppressSuggestions=!0,this.suppressRecommendations=!0};handleContainerClick=()=>{this.disabled||this.inputEl?.focus()};handleResetInput=()=>{const i=this.internalValues.reduce(((i,t,s)=>(this.getChipDisabled(s)&&i.push(s),i)),[]),t=i.map((i=>this.internalValues[i]));if(this.internalValues=t,this.values=t,Array.isArray(this.errors)){const t=i.map((i=>this.internalErrors[i]??!1));this.internalErrors=t,this.errors=t}else this.internalErrors=[];if(Array.isArray(this.disabledChips)){const t=this.disabledChips;this.disabledChips=i.map((i=>t[i]))}this.update.emit(t),this.inputEl?.focus()};duplicateRule=()=>{const i=new Set;for(const t of this.internalValues){if(i.has(t))return null!=this.duplicateLabel&&""!==this.duplicateLabel?`이미 입력된 ${this.duplicateLabel}입니다.`:"중복된 값이 존재합니다.";i.add(t)}return!0};render(){const t=S[this.size]??S.sm,s={[`--sd-system-size-field-${this.size}-height`]:"auto",["--sd-system-radius-field-"+this.size]:t.radius+"px","--sd-chip-input-min-height":t.minHeight+"px","--sd-chip-input-padding-x":t.paddingX+"px","--sd-chip-input-padding-y":t.paddingY+"px","--sd-chip-input-font-size":t.fontSize+"px","--sd-chip-input-line-height":t.lineHeight+"px","--sd-chip-input-font-weight":t.fontWeight,"--sd-chip-input-font-family":t.fontFamily,"--sd-chip-input-chip-gap":E.chipGap,"--sd-chip-input-placeholder-color":z.text.placeholder,"--sd-chip-input-reset-gap":E.chipGap,"--sd-chip-input-divider-color":"#E1E1E1","--sd-chip-input-field-height":u.height,"--sd-chip-input-field-padding-x":u.paddingX,"--sd-chip-input-field-radius":u.radius,"--sd-chip-input-field-border-width":u.borderWidth,"--sd-chip-input-field-bg":l.bg.default,"--sd-chip-input-field-border-color":"transparent","--sd-chip-input-field-content":l.content.focus,"--sd-chip-input-field-font-size":r.focus.fontSize,"--sd-chip-input-field-font-weight":r.focus.fontWeight,"--sd-chip-input-field-line-height":r.focus.lineHeight,"--sd-chip-input-field-font-family":r.focus.fontFamily,"--sd-chip-input-max-count-font-size":F.fontSize,"--sd-chip-input-max-count-font-weight":F.fontWeight,"--sd-chip-input-max-count-color":F.color,"--sd-chip-input-suggestions-radius":R.radius,"--sd-chip-input-suggestions-max-height":R.maxHeight,"--sd-chip-input-suggestion-padding-y":R.itemPaddingY,"--sd-chip-input-suggestion-padding-x":R.itemPaddingX,"--sd-chip-input-suggestion-padding-right":R.itemPaddingRight,"--sd-chip-input-suggestion-gap":R.itemGap,"--sd-chip-input-suggestion-font-size":R.itemFontSize,"--sd-chip-input-suggestion-font-weight":R.itemFontWeight,"--sd-chip-input-suggestion-font-weight-selected":R.itemFontWeightSelected,"--sd-chip-input-suggestion-line-height":R.itemLineHeight,"--sd-chip-input-suggestion-font-family":R.itemFontFamily,"--sd-chip-input-suggestion-color":R.itemColor,"--sd-chip-input-suggestion-color-hover":R.itemColorHover,"--sd-chip-input-suggestion-bg-hover":R.itemBgHover,"--sd-chip-input-suggestions-empty-color":R.emptyColor,"--sd-chip-input-suggestions-empty-font-size":R.emptyFontSize,"--sd-chip-input-suggestions-empty-line-height":R.emptyLineHeight},n=null!=this.maxCount&&this.internalValues.length>=this.maxCount,h=this.useReset&&this.internalValues.length>0||null!=this.maxCount,d=this.suggestions??[],o=this.recommendedItems??[],p=this.focused&&""!==this.inputValue&&!this.suppressSuggestions&&(d.length>0||this.loadingSuggestions),a=p||this.focused&&""===this.inputValue&&!this.suppressRecommendations&&(o.length>0||this.loadingRecommendedItems),c=p?d:o,g=p?this.loadingSuggestions&&0===d.length:this.loadingRecommendedItems&&0===o.length,f={width:(this.chipInputRef?.offsetWidth??0)+"px",display:"flex",flexDirection:"column",boxSizing:"border-box",background:"#FFFFFF",borderRadius:R.radius,boxShadow:"2px 2px 12px 2px rgba(0, 0, 0, 0.1)",maxHeight:R.maxHeight,minHeight:"0",overflowY:"auto",overflowX:"hidden",outline:"none"},m={display:"flex",alignItems:"center",gap:R.itemGap,padding:`${R.itemPaddingY} ${R.itemPaddingRight} ${R.itemPaddingY} ${R.itemPaddingX}`,fontSize:R.itemFontSize,lineHeight:R.itemLineHeight,fontWeight:R.itemFontWeight,fontFamily:R.itemFontFamily,color:R.itemColor,cursor:"pointer",userSelect:"none",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},b={padding:"12px",textAlign:"center",fontSize:R.emptyFontSize,lineHeight:R.emptyLineHeight,fontFamily:R.itemFontFamily,color:R.emptyColor};return e("sd-field",{key:"33ae95b159edcb8ee407cf8d311428f419f26e95",name:this.name,label:this.label,labelWidth:this.labelWidth,hint:this.hint,errorMessage:this.errorMessage,rules:[this.duplicateRule,...this.rules??[]],error:this.error,disabled:this.disabled,focused:this.focused,hovered:this.hovered,status:this.status,size:this.size,width:this.width,icon:this.icon,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:i=>this.formField=i,style:s,onMouseEnter:()=>this.hovered=!0,onMouseLeave:()=>this.hovered=!1},e("div",{key:"4f7cd96e4cda06239a7498b8af5f1f3169362028",class:"sd-chip-input",ref:i=>this.chipInputRef=i,onClick:this.handleContainerClick},(this.internalValues??[]).map(((i,t)=>e("sd-chip",{key:t,value:i,error:this.getChipError(t),disabled:this.getChipDisabled(t),editable:!1,onSdRemove:()=>this.handleChipRemove(t)}))),!n&&e("div",{key:"dab7b1c520923fdb8cb026141727d8d008b83663",class:{"sd-chip-input__field":!0,"sd-chip-input__field--filled":""!==this.inputValue,"sd-chip-input__field--empty":""===this.inputValue&&this.internalValues.length>0&&!this.focused},"data-value":""!==this.inputValue?this.inputValue:0===this.internalValues.length?this.placeholder:""},e("input",{key:"0aee2d0f30c5af7fccfc2e35e5cee17912712ce9",ref:i=>this.inputEl=i,class:"sd-chip-input__input",placeholder:0===this.internalValues.length?this.placeholder:"",disabled:this.disabled,size:1,onInput:this.handleInput,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur})),h&&e("div",{key:"b0b508db62d31f6427d5a2def435fec7fc552e92",class:"sd-chip-input__reset"},""===this.inputValue&&e("span",{key:"30ce147f3bc8070192d95f381fa7f75ad37aab9b",class:"sd-chip-input__divider"}),null!=this.maxCount&&e("span",{key:"8c43a2920e55a36ff0c0ab952a52ab3df8d3c98d",class:"sd-chip-input__max-count"},"최대 ",this.maxCount,"개"),this.useReset&&this.internalValues.length>0&&e("sd-text-link",{key:"543316c12760fe16449e2b89a9afb8c43344eab5",icon:"reset",iconColor:"#888888",label:"입력 초기화",underline:!0,disabled:this.disabled,style:{"--sd-text-link-color":"#555555"},onSdClick:this.handleResetInput})),a&&e("sd-portal",{key:"c402b8336f7d62213f2b803f80f7a2ffabce2c9d",open:a,parentRef:this.chipInputRef??null,viewportPadding:i.SUGGESTIONS_VIEWPORT_PADDING,onSdClose:this.closeSuggestions},e("div",{key:"4ade4acb535b2db7011699a449afd8c17fe5696d",class:"sd-chip-input__suggestions",role:"listbox",style:f},g&&e("div",{key:"e07a447f7c9a9d376680ddb3af6daf58e0d39167",class:"sd-chip-input__suggestions-empty",style:b},"불러오는 중..."),c.map(((i,t)=>e("div",{key:i,class:{"sd-chip-input__suggestion-item":!0,"sd-chip-input__suggestion-item--active":t===this.activeSuggestionIndex},role:"option",tabIndex:-1,"aria-selected":t===this.activeSuggestionIndex,style:t===this.activeSuggestionIndex?{...m,background:R.itemBgHover,color:R.itemColorHover,fontWeight:R.itemFontWeightSelected}:m,onMouseDown:t=>{t.preventDefault(),this.addChip(i)}},i)))))))}static get watchers(){return{values:[{valuesChanged:0}],errors:[{errorsChanged:0}],internalValues:[{internalValuesChanged_validate:0}],suggestions:[{suggestionsChanged:0}],recommendedItems:[{recommendedItemsChanged:0}]}}static get style(){return"sd-chip-input{display:inline-flex}sd-chip-input .sd-chip-input{position:relative;width:100%;isolation:isolate;min-height:var(--sd-chip-input-min-height);display:flex;flex-flow:row wrap;align-items:center;gap:var(--sd-chip-input-chip-gap);padding:var(--sd-chip-input-padding-y) var(--sd-chip-input-padding-x);cursor:text}sd-chip-input .sd-chip-input__reset{display:inline-flex;align-items:center;gap:var(--sd-chip-input-reset-gap);flex-shrink:0}sd-chip-input .sd-chip-input__divider{display:inline-block;width:1px;height:12px;background-color:var(--sd-chip-input-divider-color);flex-shrink:0}sd-chip-input .sd-chip-input__max-count{font-size:var(--sd-chip-input-max-count-font-size);font-weight:var(--sd-chip-input-max-count-font-weight);color:var(--sd-chip-input-max-count-color);white-space:nowrap;flex-shrink:0}sd-chip-input .sd-chip-input__field{flex:0 0 auto;display:inline-grid;grid-template-columns:minmax(0, max-content);align-items:center;min-width:1ch;max-width:100%;height:var(--sd-chip-input-field-height);box-sizing:border-box;padding:0;border:none;border-radius:0;background:transparent;overflow:hidden}sd-chip-input .sd-chip-input__field::after{content:attr(data-value);grid-area:1/1;visibility:hidden;white-space:pre;font-size:var(--sd-chip-input-field-font-size);line-height:var(--sd-chip-input-field-line-height);font-weight:var(--sd-chip-input-field-font-weight);font-family:var(--sd-chip-input-field-font-family)}sd-chip-input .sd-chip-input__field--filled{padding:0 var(--sd-chip-input-field-padding-x);border:var(--sd-chip-input-field-border-width) solid var(--sd-chip-input-field-border-color);border-radius:var(--sd-chip-input-field-radius);background:var(--sd-chip-input-field-bg)}sd-chip-input .sd-chip-input__field--empty{position:absolute;top:0;left:0;width:0;height:0;min-width:0;overflow:hidden}sd-chip-input .sd-chip-input__input{grid-area:1/1;width:100%;min-width:1ch;height:var(--sd-chip-input-field-height);margin:0;padding:0;border:none;outline:none;overflow:hidden;text-overflow:ellipsis;background:transparent;font-size:var(--sd-chip-input-field-font-size);line-height:var(--sd-chip-input-field-line-height);font-weight:var(--sd-chip-input-field-font-weight);font-family:var(--sd-chip-input-field-font-family);color:var(--sd-chip-input-field-content)}sd-chip-input .sd-chip-input__input[disabled]{cursor:not-allowed;pointer-events:none}sd-chip-input .sd-chip-input__input::placeholder{color:var(--sd-chip-input-placeholder-color)}sd-chip-input .sd-chip-input__suggestions{display:flex;flex-direction:column;box-sizing:border-box;background:white;border-radius:var(--sd-chip-input-suggestions-radius);box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);max-height:var(--sd-chip-input-suggestions-max-height);min-height:0;overflow-y:auto;overflow-x:hidden;outline:none}sd-chip-input .sd-chip-input__suggestion-item{display:flex;align-items:center;gap:var(--sd-chip-input-suggestion-gap);padding:var(--sd-chip-input-suggestion-padding-y) var(--sd-chip-input-suggestion-padding-right) var(--sd-chip-input-suggestion-padding-y) var(--sd-chip-input-suggestion-padding-x);font-size:var(--sd-chip-input-suggestion-font-size);line-height:var(--sd-chip-input-suggestion-line-height);font-weight:var(--sd-chip-input-suggestion-font-weight);font-family:var(--sd-chip-input-suggestion-font-family);color:var(--sd-chip-input-suggestion-color);cursor:pointer;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-chip-input .sd-chip-input__suggestion-item--active{background:var(--sd-chip-input-suggestion-bg-hover);color:var(--sd-chip-input-suggestion-color-hover);font-weight:var(--sd-chip-input-suggestion-font-weight-selected)}sd-chip-input .sd-chip-input__suggestions-empty{padding:12px;text-align:center;font-size:var(--sd-chip-input-suggestions-empty-font-size);line-height:var(--sd-chip-input-suggestions-empty-line-height);font-family:var(--sd-chip-input-suggestion-font-family);color:var(--sd-chip-input-suggestions-empty-color)}"}},[512,"sd-chip-input",{values:[1040],errors:[1040],disabledChips:[1040],size:[1],disabled:[4],placeholder:[1],name:[1],rules:[16],error:[1028],useReset:[4,"use-reset"],maxCount:[2,"max-count"],duplicateLabel:[1,"duplicate-label"],suggestions:[1040],loadingSuggestions:[4,"loading-suggestions"],recommendedItems:[1040],loadingRecommendedItems:[4,"loading-recommended-items"],label:[1],labelWidth:[8,"label-width"],hint:[1],errorMessage:[1,"error-message"],width:[8],status:[1],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],internalValues:[32],internalErrors:[32],focused:[32],hovered:[32],inputValue:[32],activeSuggestionIndex:[32],suppressSuggestions:[32],suppressRecommendations:[32],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{values:[{valuesChanged:0}],errors:[{errorsChanged:0}],internalValues:[{internalValuesChanged_validate:0}],suggestions:[{suggestionsChanged:0}],recommendedItems:[{recommendedItemsChanged:0}]}]),H=V,j=function(){"undefined"!=typeof customElements&&["sd-chip-input","sd-button","sd-chip","sd-field","sd-floating-portal","sd-ghost-button","sd-icon","sd-portal","sd-tag","sd-text-link","sd-tooltip"].forEach((i=>{switch(i){case"sd-chip-input":customElements.get(n(i))||customElements.define(n(i),V);break;case"sd-button":customElements.get(n(i))||c();break;case"sd-chip":customElements.get(n(i))||a();break;case"sd-field":customElements.get(n(i))||g();break;case"sd-floating-portal":customElements.get(n(i))||f();break;case"sd-ghost-button":customElements.get(n(i))||m();break;case"sd-icon":customElements.get(n(i))||b();break;case"sd-portal":customElements.get(n(i))||v();break;case"sd-tag":customElements.get(n(i))||y();break;case"sd-text-link":customElements.get(n(i))||x();break;case"sd-tooltip":customElements.get(n(i))||w()}}))};export{H as SdChipInput,j as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as t,c as s,h as a,t as l}from"./p-Bg9XySrz.js";import{s as d}from"./p-BJfiMC9H.js";import{t as r}from"./p-D6GUzecR.js";import{d as o}from"./p-DDR0VcRU.js";import{d as i}from"./p-qJeUUOyB.js";import{d as n}from"./p-DbLQoVx6.js";import{d as u}from"./p-Bzo51vnP.js";import{d as c}from"./p-C_r3z9VA.js";import{d as p}from"./p-CQWZv8vY.js";import{d as b}from"./p-B_5uwji5.js";import{d as k}from"./p-C3wv8gVC.js";import{d as v}from"./p-BX5uKVOt.js";import{d as m}from"./p-B-4ulKJj.js";import{d as h}from"./p-BLNc_TL-.js";import{d as y}from"./p-DTFXzlvq.js";import{d as f}from"./p-ClKABgST.js";import{d as g}from"./p-C0tkFuhj.js";import{d as _}from"./p-AI4YlQmL.js";import{d as w}from"./p-Dr5Q2ZKB.js";import{d as x}from"./p-MJG6EZeP.js";import{d as j}from"./p-9Z-q6kKD.js";import{d as E}from"./p-B3SKaQId.js";import{d as S}from"./p-CH6cVc2a.js";import{d as z}from"./p-79DExV92.js";import{d as B}from"./p-BD8OoYud.js";import{d as N}from"./p-DMS9mQsg.js";import{d as C}from"./p-BMIgVp9-.js";import{d as U}from"./p-Ng3JMPxb.js";import{d as D}from"./p-Cl5io5TH.js";const F=r.table,T=Number(F.keyValue.height),q=Number(F.radius),V=Number(F.keyValue.body.padding),L=Number(F.header.gap),A=Number(F.content.gap),H=Number(F.border.width),K=Number(F.keyValue.search.paddingX),M={border:F.border.color,thBg:F.header.bg,thLabel:d.color.fg.primary,required:d.color.fg.accent,helpIcon:d.color.fg.success,tdBg:d.color.bg.frame,tdText:d.color.fg.primary,searchBg:F.keyValue.search.bg},Q={labelFontFamily:F.header.typography.fontFamily,labelFontSize:Number(F.header.typography.fontSize),labelFontWeight:700,labelLineHeight:Number(F.header.typography.lineHeight),tdFontFamily:F.body.typography.fontFamily,tdFontSize:Number(F.body.typography.fontSize),tdFontWeight:Number(F.body.typography.fontWeight),tdLineHeight:Number(F.body.typography.lineHeight)},I=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.change=s(this,"sdChange",7),this.searchEvent=s(this,"sdSearch",7)}fields=[];search=!1;useTop=!1;change;searchEvent;emit=(e,t)=>{this.change.emit({name:e,value:t})};handleSearchClick=()=>{this.searchEvent.emit()};renderField(e){const t=t=>this.emit(e.name,t.detail);switch(e.type){case"input":return a("sd-input",{width:"100%",...e.options??{},onSdUpdate:t});case"textarea":return a("sd-textarea",{width:"100%",...e.options??{},onSdUpdate:t});case"number-input":return a("sd-number-input",{width:"100%",...e.options??{},onSdUpdate:t});case"select":return a("sd-select",{width:"100%",...e.options??{},onSdUpdate:t});case"radio":{const{value:s,direction:l,...d}=e.options??{};return a("sd-radio-group",{...d,value:s,direction:l??"horizontal",onSdUpdate:t})}case"checkbox":{const{value:s,...l}=e.options??{};return a("sd-checkbox",{...l,value:s,onSdUpdate:t})}case"date-picker":return a("sd-date-picker",{width:"100%",...e.options??{},onSdUpdate:t});case"date-range-picker":return a("sd-date-range-picker",{width:"100%",...e.options??{},onSdUpdate:t});case"file-picker":return a("sd-file-picker",{width:"100%",...e.options??{},onSdUpdate:t});default:return a("span",{class:"sd-key-value-table__text"},e.options?.value??"")}}renderHelpIcon(e){return a("span",{class:"sd-key-value-table__help"},a("sd-tooltip",{icon:"helpOutline",iconSize:16,color:M.helpIcon,trigger:"hover"},e))}computeAutoSkipTh(){const e=this.fields.map((e=>e.map((()=>!1))));return this.fields.forEach(((t,s)=>{t.forEach(((t,a)=>{const l=null!=t.thRowSpan&&t.thRowSpan>1?t.thRowSpan:1;if(!(l<=1))for(let t=1;t<l;t++){const l=e[s+t];l&&a<l.length&&(l[a]=!0)}}))})),e}computeMaxCols(e){let t=0;return this.fields.forEach(((s,a)=>{let l=0;s.forEach(((t,s)=>{let d;d=t.hideTh?0:e[a]?.[s]?1:null!=t.thColSpan&&t.thColSpan>1?t.thColSpan:1,l+=d+(null!=t.tdColSpan&&t.tdColSpan>1?t.tdColSpan:1)})),l>t&&(t=l)})),t}buildThStyle(e){const t={...e};return null!=e.color&&(t["--sd-kvt-th-color"]=e.color),null!=e.background&&(t["--sd-kvt-th-bg"]=e.background),null!=e.backgroundColor&&(t["--sd-kvt-th-bg"]=e.backgroundColor),null!=e.fontFamily&&(t["--sd-kvt-label-font-family"]=e.fontFamily),null!=e.fontSize&&(t["--sd-kvt-label-font-size"]=e.fontSize),null!=e.fontWeight&&(t["--sd-kvt-label-font-weight"]=e.fontWeight),null!=e.lineHeight&&(t["--sd-kvt-label-line-height"]=e.lineHeight),t}renderTh(e,t,s){const l=null!=e.thRowSpan&&e.thRowSpan>1?e.thRowSpan:void 0,d=null!=e.thColSpan&&e.thColSpan>1?e.thColSpan:void 0,r={"sd-key-value-table__th":!0};"string"==typeof e.thClass?r[e.thClass]=!0:Array.isArray(e.thClass)&&e.thClass.forEach((e=>r[e]=!0));const o=null!=e.thStyle?this.buildThStyle(e.thStyle):void 0;return a("th",{key:`th-${t}-${s}`,class:r,style:o,scope:"row",rowSpan:l,colSpan:d},a("div",{class:"sd-key-value-table__th-inner"},a("span",{class:"sd-key-value-table__label"},e.label,e.required&&a("sd-icon",{class:"sd-key-value-table__required",name:"star",size:12,color:M.required,label:"required"})),e.helpText&&this.renderHelpIcon(e.helpText)))}renderTd(e,t,s){return a("td",{key:`td-${t}-${s}`,class:"sd-key-value-table__td",rowSpan:null!=e.tdRowSpan&&e.tdRowSpan>1?e.tdRowSpan:void 0,colSpan:null!=e.tdColSpan&&e.tdColSpan>1?e.tdColSpan:void 0},a("div",{class:"sd-key-value-table__td-inner"},a("slot",{name:"field-"+e.name},this.renderField(e))))}warnDuplicateNames(){const e=new Set,t=new Set;this.fields.forEach((s=>s.forEach((s=>{e.has(s.name)?t.add(s.name):e.add(s.name)})))),t.size>0&&console.warn(`[sd-key-value-table] Duplicate field name(s) detected: ${[...t].join(", ")}. Slot names ("field-{name}") and sdChange events rely on unique names.`)}render(){if(0===this.fields.length)return null;const e={"--sd-kvt-row-height":T+"px","--sd-kvt-th-width":"120px","--sd-kvt-radius":q+"px","--sd-kvt-padding":V+"px","--sd-kvt-gap":L+"px","--sd-kvt-label-gap":A+"px","--sd-kvt-border-width":H+"px","--sd-kvt-border-color":M.border,"--sd-kvt-th-bg":M.thBg,"--sd-kvt-th-color":M.thLabel,"--sd-kvt-required-color":M.required,"--sd-kvt-td-bg":M.tdBg,"--sd-kvt-td-color":M.tdText,"--sd-kvt-label-font-family":Q.labelFontFamily,"--sd-kvt-label-font-size":Q.labelFontSize+"px","--sd-kvt-label-font-weight":""+Q.labelFontWeight,"--sd-kvt-label-line-height":Q.labelLineHeight+"px","--sd-kvt-td-font-family":Q.tdFontFamily,"--sd-kvt-td-font-size":Q.tdFontSize+"px","--sd-kvt-td-font-weight":""+Q.tdFontWeight,"--sd-kvt-td-line-height":Q.tdLineHeight+"px","--sd-kvt-search-bg":M.searchBg,"--sd-kvt-search-padding-x":K+"px"};this.warnDuplicateNames();const t=this.computeAutoSkipTh(),s=this.computeMaxCols(t),l=a("table",{class:{"sd-key-value-table":!0,"sd-key-value-table--use-top":this.useTop},style:e},a("colgroup",null,Array.from({length:s},((e,t)=>{if(t%2!=0)return a("col",{key:"col-"+t});const s=t/2,l=this.fields.reduce(((e,t)=>null!=e?e:t[s]?.thWidth),void 0);return a("col",{key:"col-"+t,style:{width:null!=l?"number"==typeof l?l+"px":l:"120px"}})}))),a("tbody",null,this.fields.map(((e,s)=>a("tr",{class:"sd-key-value-table__row",key:"row-"+s},e.map(((e,a)=>[e.hideTh||t[s][a]?null:this.renderTh(e,s,a),this.renderTd(e,s,a)])))))));return this.search?a("div",{class:{"sd-key-value-table__wrapper":!0,"sd-key-value-table__wrapper--use-top":this.useTop},style:e},l,a("div",{class:"sd-key-value-table__search-panel"},a("sd-button",{label:"검색",name:"neutral_outline_md",onSdClick:this.handleSearchClick}))):l}static get style(){return"sd-key-value-table{display:block}sd-key-value-table .sd-key-value-table__wrapper{display:flex;align-items:stretch;width:100%;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);overflow:hidden}sd-key-value-table .sd-key-value-table__wrapper .sd-key-value-table{flex:1 1 auto;border:0;border-radius:0}sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--use-top{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table__search-panel{display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:var(--sd-kvt-padding) var(--sd-kvt-search-padding-x);background:var(--sd-kvt-search-bg);border-left:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table{width:100%;table-layout:fixed;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);border-collapse:separate;border-spacing:0;overflow:hidden}sd-key-value-table .sd-key-value-table.sd-key-value-table--use-top{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table__th,sd-key-value-table .sd-key-value-table__td{height:var(--sd-kvt-row-height);padding:var(--sd-kvt-padding);box-sizing:border-box;vertical-align:middle;text-align:left;font-weight:normal;border-top:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__th,sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__td{border-top:0}sd-key-value-table .sd-key-value-table__th{width:var(--sd-kvt-th-width);background:var(--sd-kvt-th-bg);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__th-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sd-kvt-gap);width:100%;height:100%}sd-key-value-table .sd-key-value-table__label{display:inline-flex;align-items:center;gap:var(--sd-kvt-label-gap);font-family:var(--sd-kvt-label-font-family);font-size:var(--sd-kvt-label-font-size);font-weight:var(--sd-kvt-label-font-weight);line-height:var(--sd-kvt-label-line-height);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__required{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__help{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__td{background:var(--sd-kvt-td-bg);color:var(--sd-kvt-td-color)}sd-key-value-table .sd-key-value-table__td-inner{display:flex;align-items:center;width:100%;height:100%}sd-key-value-table .sd-key-value-table__td-inner>slot{display:block;flex:1 1 auto;min-width:0}sd-key-value-table .sd-key-value-table__td-inner sd-input,sd-key-value-table .sd-key-value-table__td-inner sd-textarea,sd-key-value-table .sd-key-value-table__td-inner sd-number-input,sd-key-value-table .sd-key-value-table__td-inner sd-select,sd-key-value-table .sd-key-value-table__td-inner sd-date-picker,sd-key-value-table .sd-key-value-table__td-inner sd-date-range-picker,sd-key-value-table .sd-key-value-table__td-inner sd-file-picker{width:100%}sd-key-value-table .sd-key-value-table__text{font-family:var(--sd-kvt-td-font-family);font-size:var(--sd-kvt-td-font-size);font-weight:var(--sd-kvt-td-font-weight);line-height:var(--sd-kvt-td-line-height);color:var(--sd-kvt-td-color)}"}},[772,"sd-key-value-table",{fields:[16],search:[4],useTop:[4,"use-top"]}]),J=I,$=function(){"undefined"!=typeof customElements&&["sd-key-value-table","sd-button","sd-calendar","sd-checkbox","sd-chip","sd-date-picker","sd-date-picker-trigger","sd-date-range-picker","sd-date-range-picker-calendar","sd-field","sd-file-picker","sd-floating-portal","sd-ghost-button","sd-icon","sd-input","sd-number-input","sd-portal","sd-radio","sd-radio-group","sd-select","sd-select-list-item","sd-select-list-item-search","sd-select-listbox","sd-select-trigger","sd-tag","sd-textarea","sd-tooltip"].forEach((e=>{switch(e){case"sd-key-value-table":customElements.get(l(e))||customElements.define(l(e),I);break;case"sd-button":customElements.get(l(e))||o();break;case"sd-calendar":customElements.get(l(e))||i();break;case"sd-checkbox":customElements.get(l(e))||n();break;case"sd-chip":customElements.get(l(e))||u();break;case"sd-date-picker":customElements.get(l(e))||c();break;case"sd-date-picker-trigger":customElements.get(l(e))||p();break;case"sd-date-range-picker":customElements.get(l(e))||b();break;case"sd-date-range-picker-calendar":customElements.get(l(e))||k();break;case"sd-field":customElements.get(l(e))||v();break;case"sd-file-picker":customElements.get(l(e))||m();break;case"sd-floating-portal":customElements.get(l(e))||h();break;case"sd-ghost-button":customElements.get(l(e))||y();break;case"sd-icon":customElements.get(l(e))||f();break;case"sd-input":customElements.get(l(e))||g();break;case"sd-number-input":customElements.get(l(e))||_();break;case"sd-portal":customElements.get(l(e))||w();break;case"sd-radio":customElements.get(l(e))||x();break;case"sd-radio-group":customElements.get(l(e))||j();break;case"sd-select":customElements.get(l(e))||E();break;case"sd-select-list-item":customElements.get(l(e))||S();break;case"sd-select-list-item-search":customElements.get(l(e))||z();break;case"sd-select-listbox":customElements.get(l(e))||B();break;case"sd-select-trigger":customElements.get(l(e))||N();break;case"sd-tag":customElements.get(l(e))||C();break;case"sd-textarea":customElements.get(l(e))||U();break;case"sd-tooltip":customElements.get(l(e))||D()}}))};export{J as SdKeyValueTable,$ as defineCustomElement}
|
|
1
|
+
import{p as e,H as t,c as s,h as a,t as d}from"./p-Bg9XySrz.js";import{s as l}from"./p-BJfiMC9H.js";import{t as r}from"./p-D6GUzecR.js";import{d as i}from"./p-DDR0VcRU.js";import{d as o}from"./p-qJeUUOyB.js";import{d as n}from"./p-DbLQoVx6.js";import{d as u}from"./p-Bzo51vnP.js";import{d as c}from"./p-C_r3z9VA.js";import{d as p}from"./p-CQWZv8vY.js";import{d as b}from"./p-B_5uwji5.js";import{d as k}from"./p-C3wv8gVC.js";import{d as v}from"./p-BX5uKVOt.js";import{d as m}from"./p-B-4ulKJj.js";import{d as h}from"./p-BLNc_TL-.js";import{d as y}from"./p-DTFXzlvq.js";import{d as f}from"./p-ClKABgST.js";import{d as g}from"./p-C0tkFuhj.js";import{d as _}from"./p-AI4YlQmL.js";import{d as w}from"./p-Dr5Q2ZKB.js";import{d as x}from"./p-MJG6EZeP.js";import{d as j}from"./p-9Z-q6kKD.js";import{d as E}from"./p-B3SKaQId.js";import{d as S}from"./p-CH6cVc2a.js";import{d as z}from"./p-79DExV92.js";import{d as B}from"./p-BD8OoYud.js";import{d as N}from"./p-DMS9mQsg.js";import{d as C}from"./p-BMIgVp9-.js";import{d as U}from"./p-Ng3JMPxb.js";import{d as D}from"./p-Cl5io5TH.js";const F=r.table,q=Number(F.keyValue.height),T=Number(F.radius),V=Number(F.header.paddingX),L=Number(F.keyValue.body.padding),A=Number(F.header.gap),H=Number(F.content.gap),K=Number(F.border.width),M=Number(F.keyValue.search.paddingX),Q={border:F.border.color,thBg:F.header.bg,thLabel:l.color.fg.primary,required:l.color.fg.accent,helpIcon:l.color.fg.success,tdBg:l.color.bg.frame,tdText:l.color.fg.primary,searchBg:F.keyValue.search.bg},I={labelFontFamily:F.header.typography.fontFamily,labelFontSize:Number(F.header.typography.fontSize),labelFontWeight:700,labelLineHeight:Number(F.header.typography.lineHeight),tdFontFamily:F.body.typography.fontFamily,tdFontSize:Number(F.body.typography.fontSize),tdFontWeight:Number(F.body.typography.fontWeight),tdLineHeight:Number(F.body.typography.lineHeight)},J=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.change=s(this,"sdChange",7),this.searchEvent=s(this,"sdSearch",7)}fields=[];search=!1;radius="default";change;searchEvent;emit=(e,t)=>{this.change.emit({name:e,value:t})};handleSearchClick=()=>{this.searchEvent.emit()};renderField(e){const t=t=>this.emit(e.name,t.detail);switch(e.type){case"input":return a("sd-input",{width:"100%",...e.options??{},onSdUpdate:t});case"textarea":return a("sd-textarea",{width:"100%",...e.options??{},onSdUpdate:t});case"number-input":return a("sd-number-input",{width:"100%",...e.options??{},onSdUpdate:t});case"select":return a("sd-select",{width:"100%",...e.options??{},onSdUpdate:t});case"radio":{const{value:s,direction:d,...l}=e.options??{};return a("sd-radio-group",{...l,value:s,direction:d??"horizontal",onSdUpdate:t})}case"checkbox":{const{value:s,...d}=e.options??{};return a("sd-checkbox",{...d,value:s,onSdUpdate:t})}case"date-picker":return a("sd-date-picker",{width:"100%",...e.options??{},onSdUpdate:t});case"date-range-picker":return a("sd-date-range-picker",{width:"100%",...e.options??{},onSdUpdate:t});case"file-picker":return a("sd-file-picker",{width:"100%",...e.options??{},onSdUpdate:t});default:return a("span",{class:"sd-key-value-table__text"},e.options?.value??"")}}renderHelpIcon(e){return a("span",{class:"sd-key-value-table__help"},a("sd-tooltip",{icon:"helpOutline",iconSize:16,color:Q.helpIcon,trigger:"hover"},e))}computeAutoSkipTh(){const e=this.fields.map((e=>e.map((()=>!1))));return this.fields.forEach(((t,s)=>{t.forEach(((t,a)=>{const d=null!=t.thRowSpan&&t.thRowSpan>1?t.thRowSpan:1;if(!(d<=1))for(let t=1;t<d;t++){const d=e[s+t];d&&a<d.length&&(d[a]=!0)}}))})),e}computeMaxCols(e){let t=0;return this.fields.forEach(((s,a)=>{let d=0;s.forEach(((t,s)=>{let l;l=t.hideTh?0:e[a]?.[s]?1:null!=t.thColSpan&&t.thColSpan>1?t.thColSpan:1,d+=l+(null!=t.tdColSpan&&t.tdColSpan>1?t.tdColSpan:1)})),d>t&&(t=d)})),t}buildThStyle(e){const t={...e};return null!=e.color&&(t["--sd-kvt-th-color"]=e.color),null!=e.background&&(t["--sd-kvt-th-bg"]=e.background),null!=e.backgroundColor&&(t["--sd-kvt-th-bg"]=e.backgroundColor),null!=e.fontFamily&&(t["--sd-kvt-label-font-family"]=e.fontFamily),null!=e.fontSize&&(t["--sd-kvt-label-font-size"]=e.fontSize),null!=e.fontWeight&&(t["--sd-kvt-label-font-weight"]=e.fontWeight),null!=e.lineHeight&&(t["--sd-kvt-label-line-height"]=e.lineHeight),t}renderTh(e,t,s){const d=null!=e.thRowSpan&&e.thRowSpan>1?e.thRowSpan:void 0,l=null!=e.thColSpan&&e.thColSpan>1?e.thColSpan:void 0,r={"sd-key-value-table__th":!0};"string"==typeof e.thClass?r[e.thClass]=!0:Array.isArray(e.thClass)&&e.thClass.forEach((e=>r[e]=!0));const i=null!=e.thStyle?this.buildThStyle(e.thStyle):void 0;return a("th",{key:`th-${t}-${s}`,class:r,style:i,scope:"row",rowSpan:d,colSpan:l},a("div",{class:"sd-key-value-table__th-inner"},a("span",{class:"sd-key-value-table__label"},e.label,e.required&&a("sd-icon",{class:"sd-key-value-table__required",name:"star",size:12,color:Q.required,label:"required"})),e.helpText&&this.renderHelpIcon(e.helpText)))}renderTd(e,t,s){return a("td",{key:`td-${t}-${s}`,class:"sd-key-value-table__td",rowSpan:null!=e.tdRowSpan&&e.tdRowSpan>1?e.tdRowSpan:void 0,colSpan:null!=e.tdColSpan&&e.tdColSpan>1?e.tdColSpan:void 0},a("div",{class:"sd-key-value-table__td-inner"},a("slot",{name:"field-"+e.name},this.renderField(e))))}warnDuplicateNames(){const e=new Set,t=new Set;this.fields.forEach((s=>s.forEach((s=>{e.has(s.name)?t.add(s.name):e.add(s.name)})))),t.size>0&&console.warn(`[sd-key-value-table] Duplicate field name(s) detected: ${[...t].join(", ")}. Slot names ("field-{name}") and sdChange events rely on unique names.`)}render(){if(0===this.fields.length)return null;const e={"--sd-kvt-row-height":q+"px","--sd-kvt-th-width":"120px","--sd-kvt-radius":T+"px","--sd-kvt-th-padding-x":V+"px","--sd-kvt-padding":L+"px","--sd-kvt-gap":A+"px","--sd-kvt-label-gap":H+"px","--sd-kvt-border-width":K+"px","--sd-kvt-border-color":Q.border,"--sd-kvt-th-bg":Q.thBg,"--sd-kvt-th-color":Q.thLabel,"--sd-kvt-required-color":Q.required,"--sd-kvt-td-bg":Q.tdBg,"--sd-kvt-td-color":Q.tdText,"--sd-kvt-label-font-family":I.labelFontFamily,"--sd-kvt-label-font-size":I.labelFontSize+"px","--sd-kvt-label-font-weight":""+I.labelFontWeight,"--sd-kvt-label-line-height":I.labelLineHeight+"px","--sd-kvt-td-font-family":I.tdFontFamily,"--sd-kvt-td-font-size":I.tdFontSize+"px","--sd-kvt-td-font-weight":""+I.tdFontWeight,"--sd-kvt-td-line-height":I.tdLineHeight+"px","--sd-kvt-search-bg":Q.searchBg,"--sd-kvt-search-padding-x":M+"px"};this.warnDuplicateNames();const t=this.computeAutoSkipTh(),s=this.computeMaxCols(t),d=a("table",{class:{"sd-key-value-table":!0,"sd-key-value-table--radius-usetop":"usetop"===this.radius,"sd-key-value-table--radius-full":"full"===this.radius},style:e},a("colgroup",null,Array.from({length:s},((e,t)=>{if(t%2!=0)return a("col",{key:"col-"+t});const s=t/2,d=this.fields.reduce(((e,t)=>null!=e?e:t[s]?.thWidth),void 0);return a("col",{key:"col-"+t,style:{width:null!=d?"number"==typeof d?d+"px":d:"120px"}})}))),a("tbody",null,this.fields.map(((e,s)=>a("tr",{class:"sd-key-value-table__row",key:"row-"+s},e.map(((e,a)=>[e.hideTh||t[s][a]?null:this.renderTh(e,s,a),this.renderTd(e,s,a)])))))));return this.search?a("div",{class:{"sd-key-value-table__wrapper":!0,"sd-key-value-table__wrapper--radius-usetop":"usetop"===this.radius,"sd-key-value-table__wrapper--radius-full":"full"===this.radius},style:e},d,a("div",{class:"sd-key-value-table__search-panel"},a("sd-button",{label:"검색",name:"neutral_outline_md",onSdClick:this.handleSearchClick}))):d}static get style(){return"sd-key-value-table{display:block}sd-key-value-table .sd-key-value-table__wrapper{display:flex;align-items:stretch;width:100%;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);overflow:hidden}sd-key-value-table .sd-key-value-table__wrapper .sd-key-value-table{flex:1 1 auto;border:0;border-radius:0}sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-usetop{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-full{border-radius:0}sd-key-value-table .sd-key-value-table__search-panel{display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:var(--sd-kvt-padding) var(--sd-kvt-search-padding-x);background:var(--sd-kvt-search-bg);border-left:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table{width:100%;table-layout:fixed;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);border-collapse:separate;border-spacing:0;overflow:hidden}sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-usetop{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-full{border-radius:0}sd-key-value-table .sd-key-value-table__th,sd-key-value-table .sd-key-value-table__td{height:var(--sd-kvt-row-height);box-sizing:border-box;vertical-align:middle;text-align:left;font-weight:normal;border-top:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__th,sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__td{border-top:0}sd-key-value-table .sd-key-value-table__th{padding:var(--sd-kvt-padding) var(--sd-kvt-th-padding-x);width:var(--sd-kvt-th-width);background:var(--sd-kvt-th-bg);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__th-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sd-kvt-gap);width:100%;height:100%}sd-key-value-table .sd-key-value-table__label{display:inline-flex;align-items:center;gap:var(--sd-kvt-label-gap);font-family:var(--sd-kvt-label-font-family);font-size:var(--sd-kvt-label-font-size);font-weight:var(--sd-kvt-label-font-weight);line-height:var(--sd-kvt-label-line-height);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__required{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__help{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__td{padding:var(--sd-kvt-padding);background:var(--sd-kvt-td-bg);color:var(--sd-kvt-td-color)}sd-key-value-table .sd-key-value-table__td-inner{display:flex;align-items:center;width:100%;height:100%}sd-key-value-table .sd-key-value-table__td-inner>slot{display:block;flex:1 1 auto;min-width:0}sd-key-value-table .sd-key-value-table__td-inner sd-input,sd-key-value-table .sd-key-value-table__td-inner sd-textarea,sd-key-value-table .sd-key-value-table__td-inner sd-number-input,sd-key-value-table .sd-key-value-table__td-inner sd-select,sd-key-value-table .sd-key-value-table__td-inner sd-date-picker,sd-key-value-table .sd-key-value-table__td-inner sd-date-range-picker,sd-key-value-table .sd-key-value-table__td-inner sd-file-picker{width:100%}sd-key-value-table .sd-key-value-table__text{font-family:var(--sd-kvt-td-font-family);font-size:var(--sd-kvt-td-font-size);font-weight:var(--sd-kvt-td-font-weight);line-height:var(--sd-kvt-td-line-height);color:var(--sd-kvt-td-color)}"}},[772,"sd-key-value-table",{fields:[16],search:[4],radius:[1]}]),$=J,O=function(){"undefined"!=typeof customElements&&["sd-key-value-table","sd-button","sd-calendar","sd-checkbox","sd-chip","sd-date-picker","sd-date-picker-trigger","sd-date-range-picker","sd-date-range-picker-calendar","sd-field","sd-file-picker","sd-floating-portal","sd-ghost-button","sd-icon","sd-input","sd-number-input","sd-portal","sd-radio","sd-radio-group","sd-select","sd-select-list-item","sd-select-list-item-search","sd-select-listbox","sd-select-trigger","sd-tag","sd-textarea","sd-tooltip"].forEach((e=>{switch(e){case"sd-key-value-table":customElements.get(d(e))||customElements.define(d(e),J);break;case"sd-button":customElements.get(d(e))||i();break;case"sd-calendar":customElements.get(d(e))||o();break;case"sd-checkbox":customElements.get(d(e))||n();break;case"sd-chip":customElements.get(d(e))||u();break;case"sd-date-picker":customElements.get(d(e))||c();break;case"sd-date-picker-trigger":customElements.get(d(e))||p();break;case"sd-date-range-picker":customElements.get(d(e))||b();break;case"sd-date-range-picker-calendar":customElements.get(d(e))||k();break;case"sd-field":customElements.get(d(e))||v();break;case"sd-file-picker":customElements.get(d(e))||m();break;case"sd-floating-portal":customElements.get(d(e))||h();break;case"sd-ghost-button":customElements.get(d(e))||y();break;case"sd-icon":customElements.get(d(e))||f();break;case"sd-input":customElements.get(d(e))||g();break;case"sd-number-input":customElements.get(d(e))||_();break;case"sd-portal":customElements.get(d(e))||w();break;case"sd-radio":customElements.get(d(e))||x();break;case"sd-radio-group":customElements.get(d(e))||j();break;case"sd-select":customElements.get(d(e))||E();break;case"sd-select-list-item":customElements.get(d(e))||S();break;case"sd-select-list-item-search":customElements.get(d(e))||z();break;case"sd-select-listbox":customElements.get(d(e))||B();break;case"sd-select-trigger":customElements.get(d(e))||N();break;case"sd-tag":customElements.get(d(e))||C();break;case"sd-textarea":customElements.get(d(e))||U();break;case"sd-tooltip":customElements.get(d(e))||D()}}))};export{$ as SdKeyValueTable,O as defineCustomElement}
|