@sellmate/design-system 0.0.39 → 0.0.40
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/sd-select-multiple-group.cjs.entry.js +38 -37
- package/dist/cjs/sd-select-multiple-group.entry.cjs.js.map +1 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +38 -37
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js.map +1 -1
- package/dist/components/sd-select-multiple-group.js +38 -37
- package/dist/components/sd-select-multiple-group.js.map +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/p-03658389.entry.js +2 -0
- package/dist/design-system/p-03658389.entry.js.map +1 -0
- package/dist/design-system/sd-select-multiple-group.entry.esm.js.map +1 -1
- package/dist/esm/sd-select-multiple-group.entry.js +38 -37
- package/dist/esm/sd-select-multiple-group.entry.js.map +1 -1
- package/hydrate/index.js +39 -38
- package/hydrate/index.mjs +39 -38
- package/package.json +2 -2
- package/dist/design-system/p-b544c93d.entry.js +0 -2
- package/dist/design-system/p-b544c93d.entry.js.map +0 -1
package/hydrate/index.js
CHANGED
|
@@ -7782,11 +7782,17 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7782
7782
|
handleAllOptionClick = (detail) => {
|
|
7783
7783
|
if (detail.isSelected) {
|
|
7784
7784
|
// 이미 선택된 옵션인 경우, 선택 해제
|
|
7785
|
-
this.
|
|
7785
|
+
const filterDisabledOptions = this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled);
|
|
7786
|
+
this.value =
|
|
7787
|
+
this.value?.filter(selected => !filterDisabledOptions.some(opt => opt.value === selected.value)) || this.value;
|
|
7786
7788
|
}
|
|
7787
7789
|
else {
|
|
7788
7790
|
// 새로운 옵션 선택
|
|
7789
|
-
|
|
7791
|
+
const valueSet = new Set([
|
|
7792
|
+
...(this.value || []),
|
|
7793
|
+
...this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled),
|
|
7794
|
+
]);
|
|
7795
|
+
this.value = Array.from(valueSet);
|
|
7790
7796
|
}
|
|
7791
7797
|
};
|
|
7792
7798
|
handleOptionClick = (detail) => {
|
|
@@ -7881,23 +7887,23 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7881
7887
|
this.value = [...(this.value || []), option];
|
|
7882
7888
|
}
|
|
7883
7889
|
};
|
|
7884
|
-
getAllItemsUnderOption(parentOption) {
|
|
7885
|
-
const
|
|
7886
|
-
if (parentOption.type === '
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
return
|
|
7890
|
+
getAllItemsUnderOption(parentOption, includeDisabled = false) {
|
|
7891
|
+
const filterChildrenWithParent = (option) => option.parent === parentOption.value && (includeDisabled || !option.disabled);
|
|
7892
|
+
if (parentOption.type === 'subgroup') {
|
|
7893
|
+
return this.filteredOptions.filter(option => filterChildrenWithParent(option) && option.type === 'item');
|
|
7894
|
+
}
|
|
7895
|
+
const allItems = [];
|
|
7896
|
+
const childOptions = this.filteredOptions.filter(filterChildrenWithParent);
|
|
7897
|
+
const subgroupOptions = childOptions.filter(option => option.type === 'subgroup');
|
|
7898
|
+
subgroupOptions.forEach(subgroup => {
|
|
7899
|
+
const itemsUnderSubgroup = this.filteredOptions.filter(option => option.parent === subgroup.value &&
|
|
7900
|
+
option.type === 'item' &&
|
|
7901
|
+
(includeDisabled ? true : !option.disabled));
|
|
7902
|
+
allItems.push(...itemsUnderSubgroup);
|
|
7903
|
+
});
|
|
7904
|
+
const directItems = childOptions.filter(option => option.type === 'item');
|
|
7905
|
+
allItems.push(...directItems);
|
|
7906
|
+
return allItems;
|
|
7901
7907
|
}
|
|
7902
7908
|
isAllChildrenSelected(groupOption) {
|
|
7903
7909
|
const allItems = this.getAllItemsUnderOption(groupOption);
|
|
@@ -7911,25 +7917,21 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7911
7917
|
return false;
|
|
7912
7918
|
}
|
|
7913
7919
|
getChildrenOptions(parentOption) {
|
|
7914
|
-
|
|
7915
|
-
|
|
7916
|
-
const selectedItems = allItems.filter(item => this.value?.some(selected => selected.value === item.value));
|
|
7917
|
-
return {
|
|
7918
|
-
selectedCount: selectedItems.length,
|
|
7919
|
-
totalCount: allItems.length,
|
|
7920
|
-
};
|
|
7921
|
-
}
|
|
7922
|
-
// Subgroup의 경우
|
|
7923
|
-
const children = this.filteredOptions.filter(option => option.parent === parentOption.value);
|
|
7920
|
+
const allItems = this.getAllItemsUnderOption(parentOption, true);
|
|
7921
|
+
const selectedCount = allItems.filter(item => this.value?.some(val => val.value === item.value)).length;
|
|
7924
7922
|
return {
|
|
7925
|
-
selectedCount
|
|
7926
|
-
|
|
7927
|
-
totalCount: children.length,
|
|
7923
|
+
selectedCount,
|
|
7924
|
+
totalCount: allItems.length,
|
|
7928
7925
|
};
|
|
7929
7926
|
}
|
|
7930
7927
|
isAllOptionsSelected() {
|
|
7931
|
-
|
|
7932
|
-
|
|
7928
|
+
if (!this.value || this.value.length === 0)
|
|
7929
|
+
return false;
|
|
7930
|
+
const selectableItems = this.options.filter(opt => opt.type === 'item' && !opt.disabled);
|
|
7931
|
+
if (selectableItems.length === 0)
|
|
7932
|
+
return false;
|
|
7933
|
+
const selectedValues = new Set(this.value.map(v => v.value));
|
|
7934
|
+
return selectableItems.every(option => selectedValues.has(option.value));
|
|
7933
7935
|
}
|
|
7934
7936
|
getTriggerLabel() {
|
|
7935
7937
|
const selectedOption = this.getSelectedOption();
|
|
@@ -7969,11 +7971,11 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7969
7971
|
'--select-width': this.width || '200px',
|
|
7970
7972
|
'--select-dropdown-height': this.dropdownHeight || '260px',
|
|
7971
7973
|
};
|
|
7972
|
-
return (hAsync(Host, { key: '
|
|
7974
|
+
return (hAsync(Host, { key: 'b94c7ab29fd483d5e02b330465ca1ee52e633614', style: style }, hAsync("div", { key: 'fa4f208be81c4c70f499d45bd353e17e852b00f1', class: {
|
|
7973
7975
|
'sd-select-multiple-group': true,
|
|
7974
7976
|
'sd-select-multiple-group--open': this.isOpen,
|
|
7975
7977
|
'sd-select-multiple-group--disabled': this.disabled,
|
|
7976
|
-
}, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: '
|
|
7978
|
+
}, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: 'fa4a306d932a9c182ae16c05192dce0c0d25d915', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
|
|
7977
7979
|
}
|
|
7978
7980
|
renderLabel(label, labelStyle) {
|
|
7979
7981
|
if (!label)
|
|
@@ -8007,8 +8009,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
8007
8009
|
}, onKeyDown: e => {
|
|
8008
8010
|
if (e.code === 'Enter')
|
|
8009
8011
|
e.stopPropagation();
|
|
8010
|
-
} }, hAsync("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (hAsync(Fragment, null, this.useAll && (hAsync("sd-select-option-group", { option: { label: this.allCheckOptionLabel, value: '', type: 'all' }, index: 0, isSelected: this.value
|
|
8011
|
-
this.options.filter(opt => !opt.disabled && opt.type === 'item').length, isFocused: this.itemIndex === 0, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => this.handleAllOptionClick(detail), useCheckbox: this.useCheckbox, useIndicator: false })), this.filteredOptions.map((option, index) => (hAsync("slot", { name: `option-${option.value}` }, hAsync("sd-select-option-group", { option: option, index: index, isSelected: option.type === 'item'
|
|
8012
|
+
} }, hAsync("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (hAsync(Fragment, null, this.useAll && (hAsync("sd-select-option-group", { option: { label: this.allCheckOptionLabel, value: '', type: 'all' }, index: 0, isSelected: this.isAllOptionsSelected(), isFocused: this.itemIndex === 0, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => this.handleAllOptionClick(detail), useCheckbox: this.useCheckbox, useIndicator: false })), this.filteredOptions.map((option, index) => (hAsync("slot", { name: `option-${option.value}` }, hAsync("sd-select-option-group", { option: option, index: index, isSelected: option.type === 'item'
|
|
8012
8013
|
? this.value?.some(selected => selected.value === option.value)
|
|
8013
8014
|
: this.isAllChildrenSelected(option), isFocused: index === this.itemIndex, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => {
|
|
8014
8015
|
if (option.type !== 'item' && !this.useCheckbox) {
|
package/hydrate/index.mjs
CHANGED
|
@@ -7780,11 +7780,17 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7780
7780
|
handleAllOptionClick = (detail) => {
|
|
7781
7781
|
if (detail.isSelected) {
|
|
7782
7782
|
// 이미 선택된 옵션인 경우, 선택 해제
|
|
7783
|
-
this.
|
|
7783
|
+
const filterDisabledOptions = this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled);
|
|
7784
|
+
this.value =
|
|
7785
|
+
this.value?.filter(selected => !filterDisabledOptions.some(opt => opt.value === selected.value)) || this.value;
|
|
7784
7786
|
}
|
|
7785
7787
|
else {
|
|
7786
7788
|
// 새로운 옵션 선택
|
|
7787
|
-
|
|
7789
|
+
const valueSet = new Set([
|
|
7790
|
+
...(this.value || []),
|
|
7791
|
+
...this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled),
|
|
7792
|
+
]);
|
|
7793
|
+
this.value = Array.from(valueSet);
|
|
7788
7794
|
}
|
|
7789
7795
|
};
|
|
7790
7796
|
handleOptionClick = (detail) => {
|
|
@@ -7879,23 +7885,23 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7879
7885
|
this.value = [...(this.value || []), option];
|
|
7880
7886
|
}
|
|
7881
7887
|
};
|
|
7882
|
-
getAllItemsUnderOption(parentOption) {
|
|
7883
|
-
const
|
|
7884
|
-
if (parentOption.type === '
|
|
7885
|
-
|
|
7886
|
-
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
return
|
|
7888
|
+
getAllItemsUnderOption(parentOption, includeDisabled = false) {
|
|
7889
|
+
const filterChildrenWithParent = (option) => option.parent === parentOption.value && (includeDisabled || !option.disabled);
|
|
7890
|
+
if (parentOption.type === 'subgroup') {
|
|
7891
|
+
return this.filteredOptions.filter(option => filterChildrenWithParent(option) && option.type === 'item');
|
|
7892
|
+
}
|
|
7893
|
+
const allItems = [];
|
|
7894
|
+
const childOptions = this.filteredOptions.filter(filterChildrenWithParent);
|
|
7895
|
+
const subgroupOptions = childOptions.filter(option => option.type === 'subgroup');
|
|
7896
|
+
subgroupOptions.forEach(subgroup => {
|
|
7897
|
+
const itemsUnderSubgroup = this.filteredOptions.filter(option => option.parent === subgroup.value &&
|
|
7898
|
+
option.type === 'item' &&
|
|
7899
|
+
(includeDisabled ? true : !option.disabled));
|
|
7900
|
+
allItems.push(...itemsUnderSubgroup);
|
|
7901
|
+
});
|
|
7902
|
+
const directItems = childOptions.filter(option => option.type === 'item');
|
|
7903
|
+
allItems.push(...directItems);
|
|
7904
|
+
return allItems;
|
|
7899
7905
|
}
|
|
7900
7906
|
isAllChildrenSelected(groupOption) {
|
|
7901
7907
|
const allItems = this.getAllItemsUnderOption(groupOption);
|
|
@@ -7909,25 +7915,21 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7909
7915
|
return false;
|
|
7910
7916
|
}
|
|
7911
7917
|
getChildrenOptions(parentOption) {
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
const selectedItems = allItems.filter(item => this.value?.some(selected => selected.value === item.value));
|
|
7915
|
-
return {
|
|
7916
|
-
selectedCount: selectedItems.length,
|
|
7917
|
-
totalCount: allItems.length,
|
|
7918
|
-
};
|
|
7919
|
-
}
|
|
7920
|
-
// Subgroup의 경우
|
|
7921
|
-
const children = this.filteredOptions.filter(option => option.parent === parentOption.value);
|
|
7918
|
+
const allItems = this.getAllItemsUnderOption(parentOption, true);
|
|
7919
|
+
const selectedCount = allItems.filter(item => this.value?.some(val => val.value === item.value)).length;
|
|
7922
7920
|
return {
|
|
7923
|
-
selectedCount
|
|
7924
|
-
|
|
7925
|
-
totalCount: children.length,
|
|
7921
|
+
selectedCount,
|
|
7922
|
+
totalCount: allItems.length,
|
|
7926
7923
|
};
|
|
7927
7924
|
}
|
|
7928
7925
|
isAllOptionsSelected() {
|
|
7929
|
-
|
|
7930
|
-
|
|
7926
|
+
if (!this.value || this.value.length === 0)
|
|
7927
|
+
return false;
|
|
7928
|
+
const selectableItems = this.options.filter(opt => opt.type === 'item' && !opt.disabled);
|
|
7929
|
+
if (selectableItems.length === 0)
|
|
7930
|
+
return false;
|
|
7931
|
+
const selectedValues = new Set(this.value.map(v => v.value));
|
|
7932
|
+
return selectableItems.every(option => selectedValues.has(option.value));
|
|
7931
7933
|
}
|
|
7932
7934
|
getTriggerLabel() {
|
|
7933
7935
|
const selectedOption = this.getSelectedOption();
|
|
@@ -7967,11 +7969,11 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
7967
7969
|
'--select-width': this.width || '200px',
|
|
7968
7970
|
'--select-dropdown-height': this.dropdownHeight || '260px',
|
|
7969
7971
|
};
|
|
7970
|
-
return (hAsync(Host, { key: '
|
|
7972
|
+
return (hAsync(Host, { key: 'b94c7ab29fd483d5e02b330465ca1ee52e633614', style: style }, hAsync("div", { key: 'fa4f208be81c4c70f499d45bd353e17e852b00f1', class: {
|
|
7971
7973
|
'sd-select-multiple-group': true,
|
|
7972
7974
|
'sd-select-multiple-group--open': this.isOpen,
|
|
7973
7975
|
'sd-select-multiple-group--disabled': this.disabled,
|
|
7974
|
-
}, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: '
|
|
7976
|
+
}, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: 'fa4a306d932a9c182ae16c05192dce0c0d25d915', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
|
|
7975
7977
|
}
|
|
7976
7978
|
renderLabel(label, labelStyle) {
|
|
7977
7979
|
if (!label)
|
|
@@ -8005,8 +8007,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
|
|
|
8005
8007
|
}, onKeyDown: e => {
|
|
8006
8008
|
if (e.code === 'Enter')
|
|
8007
8009
|
e.stopPropagation();
|
|
8008
|
-
} }, hAsync("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (hAsync(Fragment, null, this.useAll && (hAsync("sd-select-option-group", { option: { label: this.allCheckOptionLabel, value: '', type: 'all' }, index: 0, isSelected: this.value
|
|
8009
|
-
this.options.filter(opt => !opt.disabled && opt.type === 'item').length, isFocused: this.itemIndex === 0, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => this.handleAllOptionClick(detail), useCheckbox: this.useCheckbox, useIndicator: false })), this.filteredOptions.map((option, index) => (hAsync("slot", { name: `option-${option.value}` }, hAsync("sd-select-option-group", { option: option, index: index, isSelected: option.type === 'item'
|
|
8010
|
+
} }, hAsync("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (hAsync(Fragment, null, this.useAll && (hAsync("sd-select-option-group", { option: { label: this.allCheckOptionLabel, value: '', type: 'all' }, index: 0, isSelected: this.isAllOptionsSelected(), isFocused: this.itemIndex === 0, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => this.handleAllOptionClick(detail), useCheckbox: this.useCheckbox, useIndicator: false })), this.filteredOptions.map((option, index) => (hAsync("slot", { name: `option-${option.value}` }, hAsync("sd-select-option-group", { option: option, index: index, isSelected: option.type === 'item'
|
|
8010
8011
|
? this.value?.some(selected => selected.value === option.value)
|
|
8011
8012
|
: this.isAllChildrenSelected(option), isFocused: index === this.itemIndex, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => {
|
|
8012
8013
|
if (option.type !== 'item' && !this.useCheckbox) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sellmate/design-system",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.40",
|
|
4
4
|
"description": "Sellmate Design System - Web Components Library built with Stencil",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"@stencil/react-output-target": "^1.2.0",
|
|
93
93
|
"@stencil/vue-output-target": "^0.11.8"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "c3641510e1dcc5a342e1415440b628d888185785"
|
|
96
96
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,a as s,h as i,H as l,F as o}from"./p-B2T3tS5r.js";import{B as r,S as n}from"./p-C2JaR3A6.js";const p=".sd-select-multiple-group__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select-multiple-group__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select-multiple-group__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-track{background-color:transparent}sd-select-multiple-group{display:inline-block;height:fit-content}sd-select-multiple-group .sd-select-multiple-group{display:flex;flex-wrap:nowrap;width:var(--select-width, 200px);cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white;color:#333333}sd-select-multiple-group .sd-select-multiple-group:hover:not(.sd-select-multiple-group--disabled){background:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__label{border-right:1px solid #cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger{color:#888888}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-visible,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group__label{font-size:12px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group__container{position:relative;width:100%;display:flex}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{width:var(--select-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container sd-input{width:100%}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px}";const c=class extends r{constructor(s){super();e(this,s);this.sdChange=t(this,"sdChange");this.dropDownShow=t(this,"dropDownShow")}get el(){return s(this)}value=null;label="";options=[];placeholder="선택";optionPlaceholder="옵션이 없습니다.";width="200px";dropdownHeight="260px";disabled=false;clearable=false;searchable=false;useCheckbox=false;useAll=false;allCheckedLabel="전체";allCheckOptionLabel="전체";containerStyle={};triggerStyle={};dropdownStyle={};optionStyle={};labelStyle={};optionRenderer;filteredOptions=this.options;isOpen=false;searchText=null;itemIndex=-1;isScrolled=false;sdChange;dropDownShow;selectRef;searchRef;optionRef;dropdownRef;valueChanged(){this.sdChange?.emit(this.value)}optionsChanged(){this.filteredOptions=this.options;this.filterOptions()}searchTextChanged(){this.filterOptions()}async itemIndexChanged(e,t){if(this.searchable){const e=await this.getNativeInputElement();if(this.itemIndex===-1){e?.focus();return}else if(e?.matches(":focus")){e?.blur()}}const s=Array.from(this.dropdownRef?.querySelectorAll(".sd-select-multiple-group__dropdown sd-select-option-group")||[]);const i=s?.[this.itemIndex];if(!i||!this.isOpen)return;this.optionRef=i;const l=await this.optionRef.isDisabled();if(l){e>t?this.itemIndex++:this.itemIndex--;return}this.scrollToOption(i)}async isOpenChanged(){this.onDropdownToggle(this.isOpen);const e=this.getSelectedOption();if(!e){this.itemIndex=-1}else{this.itemIndex=this.options.indexOf(e[0])}this.dropDownShow?.emit({isOpen:this.isOpen});if(this.isOpen===false)return;await new Promise((e=>setTimeout(e,10)));const t=Array.from(this.dropdownRef?.querySelectorAll(".sd-select-multiple__dropdown sd-select-item")||[]);const s=t?.[this.itemIndex];if(this.searchable){const e=await this.getNativeInputElement();e?.focus()}if(!s)return;await new Promise((e=>setTimeout(e,10)));this.scrollToOption(s)}componentWillLoad(){this.filteredOptions=this.options;this.initializeEvent()}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(e){if(!this.selectRef?.contains(e.target)){this.isOpen=false}}handleDocumentKeydown(e){e.stopPropagation();const t=["ArrowDown","ArrowUp","Enter","Escape"];if(!t.includes(e.key))return;e.preventDefault();switch(e.key){case"ArrowDown":case"ArrowUp":const t=new n(this.searchable,this.filteredOptions);const s=t.getNextIndex(this.itemIndex,e.key);this.itemIndex=s;break;case"Enter":const i=this.filteredOptions[this.itemIndex];if(i&&!i.disabled){this.handleOptionSelection(i)}break;case"Escape":this.isOpen=false;break}}handleTriggerClick=e=>{e.stopPropagation();if(!this.disabled){this.isOpen=!this.isOpen;this.dropDownShow?.emit({isOpen:this.isOpen})}};handleAllOptionClick=e=>{if(e.isSelected){this.value=[]}else{this.value=[...this.filteredOptions.filter((e=>e.type==="item"&&!e.disabled))]}};handleOptionClick=e=>{const{option:t,event:s}=e;s.stopPropagation();if(t.type==="group")this.handleGroupOptionClick(e);if(t.type==="subgroup")this.handleSubGroupOptionClick(e);if(t.type==="item")this.handleOptionSelection(t)};handleGroupOptionClick=e=>{const{option:t,isSelected:s}=e;const i=this.filteredOptions.filter((e=>e.parent===t.value&&!e.disabled));i.forEach((e=>{this.handleSubGroupOptionClick({option:e,isSelected:s||s===null})}))};handleSubGroupOptionClick=e=>{const{option:t,isSelected:s}=e;const i=this.filteredOptions.filter((e=>e.parent===t.value&&!e.disabled));if(s||s===null){this.value=this.value?.filter((e=>!i.some((t=>t.value===e.value))))||null}else{const e=i.filter((e=>!this.value?.some((t=>t.value===e.value))));this.value=[...this.value||[],...e]}};filterOptions(){if(!this.searchText||this.searchText.trim()===""){this.filteredOptions=this.options;return}const e=this.searchText.toLowerCase();const t=new Set;this.options.forEach((s=>{if(s.label.toLowerCase().includes(e)){t.add(s);this.addParentGroups(s,t)}}));this.filteredOptions=this.options.filter((e=>t.has(e)))}addParentGroups(e,t){if(!e.parent)return;const s=this.options.find((t=>t.value===e.parent));if(s&&!t.has(s)){t.add(s);this.addParentGroups(s,t)}}getSelectedOption(){return this.options.filter((e=>this.value?.includes(e)))}handleDropdownScroll=e=>{const t=e.target;const s=t.scrollTop;this.isScrolled=s>0};async getNativeInputElement(){if(this.searchRef){return this.searchRef.getNativeElement()}return null}handleOptionSelection=e=>{if(!e||e.disabled)return;const t=this.value?.some((t=>t.value===e.value));if(t){this.value=this.value?.filter((t=>t.value!==e.value))||null}else{this.value=[...this.value||[],e]}};getAllItemsUnderOption(e){const t=this.filteredOptions.filter((t=>t.parent===e.value&&!t.disabled));if(e.type==="group"){const e=t.filter((e=>e.type==="subgroup"));const s=[];e.forEach((e=>{const t=this.filteredOptions.filter((t=>t.parent===e.value&&t.type==="item"&&!t.disabled));s.push(...t)}));const i=t.filter((e=>e.type==="item"));s.push(...i);return s}return t.filter((e=>e.type==="item"))}isAllChildrenSelected(e){const t=this.getAllItemsUnderOption(e);if(t.length===0)return false;const s=t.filter((e=>this.value?.some((t=>t.value===e.value))));if(s.length===t.length)return true;if(s.length>0)return null;return false}getChildrenOptions(e){if(e.type==="group"){const t=this.getAllItemsUnderOption(e);const s=t.filter((e=>this.value?.some((t=>t.value===e.value))));return{selectedCount:s.length,totalCount:t.length}}const t=this.filteredOptions.filter((t=>t.parent===e.value));return{selectedCount:t.filter((e=>this.value?.some((t=>t.value===e.value)))).length,totalCount:t.length}}isAllOptionsSelected(){const e=this.getSelectedOption();return e.length===this.options.filter((e=>!e.disabled&&e.type==="item")).length}getTriggerLabel(){const e=this.getSelectedOption();if(!e)return"선택";if(e.length===0)return this.placeholder;const t=this.isAllOptionsSelected();return t?this.allCheckedLabel:e.map((e=>e.label)).join(", ")}closeDropdown(){this.isOpen=false}scrollToOption(e){if(!this.dropdownRef||!e)return;const t=this.dropdownRef;const s=e.offsetTop;const i=e.offsetHeight;const l=t.scrollTop;const o=t.clientHeight;const r=t.querySelector(".sd-select__search-container");const n=r?r.offsetHeight:0;const p=l+n;const c=l+o;if(s<p){t.scrollTop=s-n}else if(s+i>c){t.scrollTop=s+i-o+n}}render(){const e={"--select-width":this.width||"200px","--select-dropdown-height":this.dropdownHeight||"260px"};return i(l,{key:"3657f1c9c91e6ef006acb50bd83790f45ec38ccd",style:e},i("div",{key:"9bb5379eb59eef6dc706686fb08f8bd9f3c5eaab",class:{"sd-select-multiple-group":true,"sd-select-multiple-group--open":this.isOpen,"sd-select-multiple-group--disabled":this.disabled},style:this.containerStyle,ref:e=>this.selectRef=e},this.renderLabel(this.label,this.labelStyle),i("div",{key:"4f0a9205a38450ab205e57d3ec80b95ee3b028e0",class:"sd-select-multiple-group__container"},this.renderTrigger(),this.renderDropdown())))}renderLabel(e,t){if(!e)return null;return i("label",{class:"sd-select-multiple-group__label",style:t},e)}renderTrigger(){const e=this.getSelectedOption();return i("div",{class:"sd-select-multiple-group__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,style:this.triggerStyle},i("span",{class:"sd-select-multiple-group__value"},this.getTriggerLabel()),this.clearable&&e?.length>0&&!this.disabled&&i("sd-icon",{key:"close-icon",name:"close",size:10,color:"#888",class:"sd-select-multiple-group__clear",onClick:e=>{e.stopPropagation();this.value=null}}),i("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"#888",class:{"sd-select-multiple-group__arrow":true,"sd-select-multiple-group__arrow--open":this.isOpen}}))}renderDropdown(){const e={"--select-width":this.width||"200px","--select-dropdown-height":this.dropdownHeight||"260px"};if(this.isOpen===false)return null;return i("sd-portal",{open:this.isOpen,parentRef:this.selectRef,onSdClose:this.closeDropdown},i("div",{class:"sd-select-multiple-group__dropdown",style:{...e,...this.dropdownStyle},onScroll:this.handleDropdownScroll,ref:e=>this.dropdownRef=e},this.searchable&&i("div",{class:{"sd-select-multiple-group__search-container":true,"sd-select-multiple-group__search-container--scrolled":this.isScrolled},onClick:e=>e.stopPropagation()},i("sd-input",{ref:e=>this.searchRef=e,value:this.searchText,placeholder:"검색",clearable:true,inputStyle:{"padding-left":"8px"},autofocus:true,onSdInput:e=>{this.searchText=String(e?.detail)},onSdFocus:()=>{this.itemIndex=-1},onKeyDown:e=>{if(e.code==="Enter")e.stopPropagation()}},i("sd-icon",{name:"search",size:16,color:"#737373",slot:"prefix"}))),this.filteredOptions.length>0?i(o,null,this.useAll&&i("sd-select-option-group",{option:{label:this.allCheckOptionLabel,value:"",type:"all"},index:0,isSelected:this.value?.length===this.options.filter((e=>!e.disabled&&e.type==="item")).length,isFocused:this.itemIndex===0,optionStyle:this.optionStyle,onOptionClick:({detail:e})=>this.handleAllOptionClick(e),useCheckbox:this.useCheckbox,useIndicator:false}),this.filteredOptions.map(((e,t)=>i("slot",{name:`option-${e.value}`},i("sd-select-option-group",{option:e,index:t,isSelected:e.type==="item"?this.value?.some((t=>t.value===e.value)):this.isAllChildrenSelected(e),isFocused:t===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:t})=>{if(e.type!=="item"&&!this.useCheckbox){return}this.handleOptionClick(t)},useCheckbox:this.useCheckbox,...e.type!=="item"&&{countInfo:this.getChildrenOptions(e)}}))))):i("slot",{name:"option-placeholder"},i("div",{class:"sd-select-multiple-group__option-placeholder",style:this.optionStyle},this.optionPlaceholder))))}static get watchers(){return{value:["valueChanged"],options:["optionsChanged"],searchText:["searchTextChanged"],itemIndex:["itemIndexChanged"],isOpen:["isOpenChanged"]}}};c.style=p;export{c as sd_select_multiple_group};
|
|
2
|
-
//# sourceMappingURL=p-b544c93d.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["registerInstance","createEvent","getElement","h","Host","Fragment","BaseDropdownEvent","SelectKeyboardNavigation","sdSelectMultipleGroupCss","SdSelectMultipleGroup","constructor","hostRef","super","this","sdChange","dropDownShow","el","value","label","options","placeholder","optionPlaceholder","width","dropdownHeight","disabled","clearable","searchable","useCheckbox","useAll","allCheckedLabel","allCheckOptionLabel","containerStyle","triggerStyle","dropdownStyle","optionStyle","labelStyle","optionRenderer","filteredOptions","isOpen","searchText","itemIndex","isScrolled","selectRef","searchRef","optionRef","dropdownRef","valueChanged","emit","optionsChanged","filterOptions","searchTextChanged","itemIndexChanged","newIndex","oldIndex","searchInput","getNativeInputElement","focus","matches","blur","optionElements","Array","from","querySelectorAll","currentItem","isOptionDisabled","isDisabled","scrollToOption","isOpenChanged","onDropdownToggle","selectedOption","getSelectedOption","indexOf","Promise","resolve","setTimeout","componentWillLoad","initializeEvent","disconnectedCallback","cleanupEvent","handleDocumentClick","event","contains","target","handleDocumentKeydown","keyboardEvent","stopPropagation","targetKey","includes","key","preventDefault","keyboardNavigation","nextIndex","getNextIndex","handleOptionSelection","handleTriggerClick","handleAllOptionClick","detail","isSelected","filter","opt","type","handleOptionClick","option","handleGroupOptionClick","handleSubGroupOptionClick","childOptions","parent","forEach","subgroup","selected","some","child","newSelections","trim","searchTerm","toLowerCase","matchedOptions","Set","add","addParentGroups","has","matchedSet","parentOption","find","handleDropdownScroll","scrollTop","getNativeElement","isAlreadySelected","getAllItemsUnderOption","subgroupOptions","allItemsUnderGroup","itemsUnderSubgroup","push","directItems","isAllChildrenSelected","groupOption","allItems","length","selectedItems","item","getChildrenOptions","selectedCount","totalCount","children","val","isAllOptionsSelected","getTriggerLabel","isAllChecked","map","join","closeDropdown","optionElement","dropdown","optionTop","offsetTop","optionHeight","offsetHeight","dropdownScrollTop","clientHeight","searchContainer","querySelector","searchOffset","visibleTop","visibleBottom","render","style","class","ref","renderLabel","renderTrigger","renderDropdown","tabindex","onClick","name","size","color","open","parentRef","onSdClose","onScroll","inputStyle","autofocus","onSdInput","String","onSdFocus","onKeyDown","e","code","slot","index","isFocused","onOptionClick","useIndicator","countInfo","watchers"],"sources":["0"],"mappings":"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","ignoreList":[]}
|