@sellmate/design-system 1.0.47 → 1.0.49
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/{component.button-BjTPq93d.js → component.button-BKa5OPya.js} +2 -2
- package/dist/cjs/design-system.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sd-action-modal.cjs.entry.js +2 -2
- package/dist/cjs/{sd-button-v2.config-DniiNqy_.js → sd-button-v2.config-CQoTThio.js} +1 -1
- package/dist/cjs/sd-button-v2_2.cjs.entry.js +4 -4
- package/dist/cjs/sd-button_4.cjs.entry.js +3 -3
- package/dist/cjs/sd-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/sd-dropdown-button.cjs.entry.js +8 -8
- package/dist/cjs/sd-input_2.cjs.entry.js +12 -6
- package/dist/cjs/sd-loading-spinner_3.cjs.entry.js +2 -2
- package/dist/cjs/sd-number-input.cjs.entry.js +182 -50
- package/dist/cjs/sd-popover.cjs.entry.js +2 -2
- package/dist/cjs/sd-progress.cjs.entry.js +2 -2
- package/dist/cjs/sd-select-dropdown_2.cjs.entry.js +3 -3
- package/dist/cjs/sd-select-group.cjs.entry.js +1 -1
- package/dist/cjs/sd-select-multiple.cjs.entry.js +1 -1
- package/dist/cjs/sd-select-option-group.cjs.entry.js +3 -3
- package/dist/cjs/sd-select-v2-list-item_2.cjs.entry.js +5 -5
- package/dist/cjs/sd-select-v2-listbox_2.cjs.entry.js +3 -3
- package/dist/cjs/sd-select-v2.cjs.entry.js +3 -3
- package/dist/cjs/sd-tag.cjs.entry.js +26 -26
- package/dist/cjs/sd-text-link.cjs.entry.js +3 -3
- package/dist/cjs/sd-textarea.cjs.entry.js +2 -2
- package/dist/cjs/sd-toast-container.cjs.entry.js +1 -1
- package/dist/cjs/sd-toast.cjs.entry.js +2 -2
- package/dist/cjs/sd-toggle-button.cjs.entry.js +1 -1
- package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
- package/dist/collection/components/sd-action-modal/sd-action-modal.js +4 -4
- package/dist/collection/components/sd-button-v2/sd-button-v2.config.js +2 -1
- package/dist/collection/components/sd-button-v2/sd-button-v2.css +3 -1
- package/dist/collection/components/sd-button-v2/sd-button-v2.js +1 -1
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +2 -1
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.css +1 -1
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +5 -5
- package/dist/collection/components/sd-input/sd-input.css +5 -0
- package/dist/collection/components/sd-input/sd-input.js +8 -2
- package/dist/collection/components/sd-number-input/sd-number-input.config.js +39 -0
- package/dist/collection/components/sd-number-input/sd-number-input.css +41 -84
- package/dist/collection/components/sd-number-input/sd-number-input.js +142 -49
- package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
- package/dist/collection/components/sd-popover/sd-popover.js +2 -2
- package/dist/collection/components/sd-progress/sd-progress.js +2 -2
- package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +2 -2
- package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
- package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +3 -3
- package/dist/collection/components/sd-select-group/sd-select-group.js +1 -1
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +1 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
- package/dist/collection/components/sd-select-v2/sd-select-v2-list-item/sd-select-v2-list-item.js +2 -2
- package/dist/collection/components/sd-select-v2/sd-select-v2-list-item-search/sd-select-v2-list-item-search.js +3 -3
- package/dist/collection/components/sd-select-v2/sd-select-v2-listbox/sd-select-v2-listbox.js +1 -1
- package/dist/collection/components/sd-select-v2/sd-select-v2-trigger/sd-select-v2-trigger.js +2 -2
- package/dist/collection/components/sd-select-v2/sd-select-v2.js +3 -3
- package/dist/collection/components/sd-tag/sd-tag.config.js +8 -8
- package/dist/collection/components/sd-tag/sd-tag.js +2 -2
- package/dist/collection/components/sd-text-link/sd-text-link.js +3 -3
- package/dist/collection/components/sd-textarea/sd-textarea.js +2 -2
- package/dist/collection/components/sd-toast/sd-toast.js +2 -2
- package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
- package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +1 -1
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
- package/dist/components/{p-VgEdINd9.js → p-7tPcjtqM.js} +1 -1
- package/dist/components/{p-BcZ3kfAq.js → p-B09D2cZD.js} +1 -1
- package/dist/components/{p-BdjLD8BG.js → p-B6NYLHOZ.js} +1 -1
- package/dist/components/{p-DeFPfiJf.js → p-BeZsmobQ.js} +1 -1
- package/dist/components/p-By4ufaS3.js +1 -0
- package/dist/components/p-C3XBhNH9.js +1 -0
- package/dist/components/{p-D1g7VL0r.js → p-CUy8ulXZ.js} +1 -1
- package/dist/components/{p-CCACqlGH.js → p-CdoxVzYC.js} +1 -1
- package/dist/components/{p-D9MEHQTt.js → p-DAWMGK_A.js} +1 -1
- package/dist/components/{p-ek1GaThy.js → p-DE3qbfEZ.js} +1 -1
- package/dist/components/{p-CDGHjR8K.js → p-DJScHgLW.js} +1 -1
- package/dist/components/p-DdjivpAF.js +1 -0
- package/dist/components/{p-Dn-uC69K.js → p-DeTDTmN7.js} +1 -1
- package/dist/components/{p-BgyCebrU.js → p-DhKZT8lW.js} +1 -1
- package/dist/components/{p-Cnu8Ol-v.js → p-Dl7yIIDW.js} +1 -1
- package/dist/components/{p-DET3nB7T.js → p-DqwiOEb3.js} +1 -1
- package/dist/components/p-Du3VqeNP.js +1 -0
- package/dist/components/p-DwYSoCyW.js +1 -0
- package/dist/components/{p-vFrxPNO8.js → p-ZoQO0p2E.js} +1 -1
- package/dist/components/{p-pByyQ_xa.js → p-poQ9yAeD.js} +1 -1
- package/dist/components/{p-BUl_ruQ7.js → p-uWsY9w9i.js} +1 -1
- package/dist/components/sd-action-modal.js +1 -1
- package/dist/components/sd-barcode-input.js +1 -1
- package/dist/components/sd-button-v2.js +1 -1
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-confirm-modal.js +1 -1
- package/dist/components/sd-date-picker.js +1 -1
- package/dist/components/sd-date-range-picker.js +1 -1
- package/dist/components/sd-dropdown-button.js +1 -1
- package/dist/components/sd-field.js +1 -1
- package/dist/components/sd-guide.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-modal-container.js +1 -1
- package/dist/components/sd-number-input.js +1 -1
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +1 -1
- package/dist/components/sd-progress.js +1 -1
- package/dist/components/sd-select-dropdown.js +1 -1
- package/dist/components/sd-select-group.js +1 -1
- package/dist/components/sd-select-multiple-group.js +1 -1
- package/dist/components/sd-select-multiple.js +1 -1
- package/dist/components/sd-select-option-group.js +1 -1
- package/dist/components/sd-select-option.js +1 -1
- package/dist/components/sd-select-search-input.js +1 -1
- package/dist/components/sd-select-v2-list-item-search.js +1 -1
- package/dist/components/sd-select-v2-list-item.js +1 -1
- package/dist/components/sd-select-v2-listbox.js +1 -1
- package/dist/components/sd-select-v2-trigger.js +1 -1
- package/dist/components/sd-select-v2.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-table.js +1 -1
- package/dist/components/sd-tabs.js +1 -1
- package/dist/components/sd-tag.js +1 -1
- package/dist/components/sd-text-link.js +1 -1
- package/dist/components/sd-textarea.js +1 -1
- package/dist/components/sd-toast-container.js +1 -1
- package/dist/components/sd-toast.js +1 -1
- package/dist/components/sd-toggle-button.js +1 -1
- package/dist/components/sd-toggle.js +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/design-system/design-system.css +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/p-07a3c3fc.entry.js +1 -0
- package/dist/design-system/{p-f026f7f4.entry.js → p-0e0992bf.entry.js} +1 -1
- package/dist/design-system/{p-c4aea24e.entry.js → p-127445af.entry.js} +1 -1
- package/dist/design-system/{p-50bfaf92.entry.js → p-19b18e4c.entry.js} +1 -1
- package/dist/design-system/{p-49e0b0bf.entry.js → p-19e62a3d.entry.js} +1 -1
- package/dist/design-system/{p-dd67b2e0.entry.js → p-242c605c.entry.js} +1 -1
- package/dist/design-system/p-4d904e5a.entry.js +1 -0
- package/dist/design-system/{p-5f4b252c.entry.js → p-4e9abae8.entry.js} +1 -1
- package/dist/design-system/{p-3a772b47.entry.js → p-53326ad6.entry.js} +1 -1
- package/dist/design-system/{p-c3117559.entry.js → p-833f828d.entry.js} +1 -1
- package/dist/design-system/{p-136e8453.entry.js → p-83e46793.entry.js} +1 -1
- package/dist/design-system/p-DwYSoCyW.js +1 -0
- package/dist/design-system/{p-CdOU_SOg.js → p-DzagopqQ.js} +1 -1
- package/dist/design-system/{p-f93313da.entry.js → p-ade2ed02.entry.js} +1 -1
- package/dist/design-system/p-aeed9b29.entry.js +1 -0
- package/dist/design-system/p-b5d8e54d.entry.js +1 -0
- package/dist/design-system/p-bddf2246.entry.js +1 -0
- package/dist/design-system/{p-50a571f7.entry.js → p-cf641008.entry.js} +1 -1
- package/dist/design-system/{p-b113f1e2.entry.js → p-d4da5815.entry.js} +1 -1
- package/dist/design-system/p-d93c6ea8.entry.js +1 -0
- package/dist/design-system/{p-f2df591c.entry.js → p-e58e5fa2.entry.js} +1 -1
- package/dist/design-system/{p-71ea3e9e.entry.js → p-e8cb12b7.entry.js} +1 -1
- package/dist/design-system/{p-3f6de68e.entry.js → p-ee25a675.entry.js} +1 -1
- package/dist/design-system/{p-b136cc18.entry.js → p-ef654bbe.entry.js} +1 -1
- package/dist/design-system/{p-9805bf41.entry.js → p-fc235907.entry.js} +1 -1
- package/dist/design-system/p-fd2e0035.entry.js +1 -0
- package/dist/esm/{component.button-KOzU1j2w.js → component.button-DwYSoCyW.js} +2 -2
- package/dist/esm/design-system.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sd-action-modal.entry.js +2 -2
- package/dist/esm/{sd-button-v2.config-CRtF2Br0.js → sd-button-v2.config-B4Fmn4Ju.js} +1 -1
- package/dist/esm/sd-button-v2_2.entry.js +4 -4
- package/dist/esm/sd-button_4.entry.js +3 -3
- package/dist/esm/sd-checkbox.entry.js +1 -1
- package/dist/esm/sd-dropdown-button.entry.js +8 -8
- package/dist/esm/sd-input_2.entry.js +12 -6
- package/dist/esm/sd-loading-spinner_3.entry.js +2 -2
- package/dist/esm/sd-number-input.entry.js +182 -50
- package/dist/esm/sd-popover.entry.js +2 -2
- package/dist/esm/sd-progress.entry.js +2 -2
- package/dist/esm/sd-select-dropdown_2.entry.js +3 -3
- package/dist/esm/sd-select-group.entry.js +1 -1
- package/dist/esm/sd-select-multiple.entry.js +1 -1
- package/dist/esm/sd-select-option-group.entry.js +3 -3
- package/dist/esm/sd-select-v2-list-item_2.entry.js +5 -5
- package/dist/esm/sd-select-v2-listbox_2.entry.js +3 -3
- package/dist/esm/sd-select-v2.entry.js +3 -3
- package/dist/esm/sd-tag.entry.js +26 -26
- package/dist/esm/sd-text-link.entry.js +3 -3
- package/dist/esm/sd-textarea.entry.js +2 -2
- package/dist/esm/sd-toast-container.entry.js +1 -1
- package/dist/esm/sd-toast.entry.js +2 -2
- package/dist/esm/sd-toggle-button.entry.js +1 -1
- package/dist/esm/sd-toggle.entry.js +1 -1
- package/dist/types/components/sd-action-modal/sd-action-modal.d.ts +1 -1
- package/dist/types/components/sd-button-v2/sd-button-v2.config.d.ts +2 -1
- package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +2 -1
- package/dist/types/components/sd-number-input/sd-number-input.config.d.ts +67 -0
- package/dist/types/components/sd-number-input/sd-number-input.d.ts +7 -2
- package/dist/types/components.d.ts +34 -5
- package/hydrate/index.js +307 -166
- package/hydrate/index.mjs +307 -166
- package/package.json +1 -1
- package/dist/components/p-B0DS3FC2.js +0 -1
- package/dist/components/p-B2GnuHlE.js +0 -1
- package/dist/components/p-BGW3nie7.js +0 -1
- package/dist/components/p-DM5hNBSY.js +0 -1
- package/dist/components/p-KOzU1j2w.js +0 -1
- package/dist/design-system/p-0c07a9be.entry.js +0 -1
- package/dist/design-system/p-3214d7c2.entry.js +0 -1
- package/dist/design-system/p-KOzU1j2w.js +0 -1
- package/dist/design-system/p-a443cbef.entry.js +0 -1
- package/dist/design-system/p-a44975fc.entry.js +0 -1
- package/dist/design-system/p-b6f4369d.entry.js +0 -1
- package/dist/design-system/p-bad64f8a.entry.js +0 -1
- package/dist/design-system/p-da57a2e6.entry.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,c as t,h as s,F as o,t as i}from"./p-B1vJXa29.js";import{n as r}from"./p-CCwNgVmC.js";import{B as n}from"./p-BNuWMSR_.js";import{S as l}from"./p-Cy6HMEsK.js";import{d as a}from"./p-Dn-uC69K.js";import{d}from"./p-Cnu8Ol-v.js";import{d as p}from"./p-CCACqlGH.js";import{d as h}from"./p-BYaBx4Ar.js";import{d as c}from"./p-BBYig1zV.js";import{d as u}from"./p-B0DS3FC2.js";import{d as g}from"./p-Chqlvi5E.js";import{d as m}from"./p-CDGHjR8K.js";import{d as f}from"./p-BcZ3kfAq.js";import{d as w}from"./p-D1g7VL0r.js";const x=e(class extends n{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=t(this,"sdUpdate"),this.dropDownShow=t(this,"sdDropDownShow")}get el(){return this}value=null;options=[];placeholder="선택";optionPlaceholder="선택지가 없습니다.";width="200px";dropdownHeight="260px";autoFocus=!1;disabled=!1;clearable=!1;searchable=!1;label="";addonLabel="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;containerStyle={};triggerStyle={};dropdownStyle={};optionStyle={};labelStyle={};optionRenderer;filteredOptions=[];isOpen=!1;searchText=null;itemIndex=-1;isScrolled=!1;isDropdownReady=!1;update;dropDownShow;selectRef;searchRef;triggerRef;optionRef;dropdownRef;formField;dropDownWidth="200px";name=r();async sdOpen(){await new Promise((e=>setTimeout(e,0))),this.isOpen=!0}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}optionsChanged(){this.filteredOptions=this.options,this.filterOptions()}searchTextChanged(){this.filterOptions()}async itemIndexChanged(e,t){if(this.searchable){const e=await this.getNativeInputElement();if(-1===this.itemIndex)return void e?.focus({preventScroll:!0});e?.matches(":focus")&&e?.blur()}const s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),o=s?.[this.itemIndex];o&&this.isOpen&&(this.optionRef=o,await this.optionRef.isDisabled()?e>t?this.itemIndex++:this.itemIndex--:this.scrollToOption(o))}async isOpenChanged(){this.onDropdownToggle(this.isOpen),this.dropDownShow?.emit({isOpen:this.isOpen}),this.isDropdownReady=!1,!1!==this.isOpen?requestAnimationFrame((()=>{requestAnimationFrame((async()=>{const e=this.getSelectedOption();if(e){const t=this.filteredOptions.indexOf(e),s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),o=Math.min(t+4,s.length-1),i=s?.[o];i&&this.scrollToOption(i)}if(this.isDropdownReady=!0,this.searchable){const e=await this.getNativeInputElement();e&&requestAnimationFrame((()=>{e.focus({preventScroll:!0})}))}}))})):await(this.formField?.sdValidate())}componentWillLoad(){this.filteredOptions=this.options,this.dropDownWidth=this.width,this.initializeEvent()}componentDidLoad(){this.autoFocus&&this.selectRef?.focus()}componentDidRender(){const e=this.triggerRef,t=e?.getBoundingClientRect();this.dropDownWidth=t?.width?t.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(e){this.selectRef?.contains(e.target)||(this.isOpen=!1)}handleDocumentKeydown(e){if(e.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(e.key))switch(e.preventDefault(),e.key){case"ArrowDown":case"ArrowUp":const t=new l(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,e.key);this.itemIndex=t;break;case"Enter":const s=this.filteredOptions[this.itemIndex];s&&!s.disabled&&"item"===s.type&&this.handleOptionSelection(s);break;case"Escape":this.isOpen=!1}}handleTriggerClick=e=>{e.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleOptionClick=e=>{const{option:t,event:s}=e;s.stopPropagation(),"item"===t.type&&this.handleOptionSelection(t)};filterOptions(){if(!this.searchText||""===this.searchText.trim())return void(this.filteredOptions=this.options);const e=this.searchText.toLowerCase(),t=new Set;this.options.forEach((s=>{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));s&&!t.has(s)&&(t.add(s),this.addParentGroups(s,t))}getSelectedOption(){return this.options.find((e=>e.value===this.value))}handleDropdownScroll=e=>{this.isScrolled=e.target.scrollTop>0};async getNativeInputElement(){return this.searchRef?this.searchRef.sdGetNativeElement():null}handleOptionSelection=e=>{if(!e||e.disabled)return;this.value=e.value,this.isOpen=!1;const t=this.getSelectedOption();this.update?.emit({value:t?.value||null,option:t||null})};closeDropdown(){this.isOpen=!1}async scrollToOption(e){this.dropdownRef&&e&&requestAnimationFrame((()=>{const t=this.dropdownRef,s=e.offsetTop,o=e.offsetHeight,i=t.scrollTop,r=t.clientHeight,n=t.querySelector(".sd-select-group__search-container"),l=n?n.offsetHeight:0,a=r-l,d=i+r;s<i+l?t.scrollTo({top:s-l,behavior:"instant"}):s+o>d&&t.scrollTo({top:s+o-a-l,behavior:"instant"})}))}render(){return s("sd-field",{key:"9e061f322fd1d9b167799bee6d65492713eb362a",label:this.label,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,addonLabel:this.addonLabel,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e,style:{"--field-width":this.width||"200px"}},s("div",{key:"47c889231afc91990925e1c45756aae807488aec",class:{"sd-select-group":!0,"sd-select-group--open":this.isOpen,"sd-select-group--disabled":this.disabled,"sd-select-group--label":!!this.label},ref:e=>this.selectRef=e},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const e=this.getSelectedOption();return s("div",{class:"sd-select-group__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,style:this.triggerStyle,ref:e=>this.triggerRef=e},s("span",{class:"sd-select-group__value"},e?e.label:this.placeholder),this.clearable&&e&&!this.disabled&&s("sd-icon",{key:"close-icon",name:"close",size:10,color:"grey_65",class:"sd-select-group__clear",onClick:async e=>{e.stopPropagation(),this.value=null,this.update?.emit({value:null,option:null}),await(this.formField?.sdValidate())}}),s("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"grey_65",class:{"sd-select-group__arrow":!0,"sd-select-group__arrow--open":this.isOpen}}))}renderDropdown(){return!1===this.isOpen?null:s("sd-portal",{open:this.isOpen,parentRef:this.selectRef,onSdClose:this.closeDropdown},s("div",{style:{width:"0",height:"0",overflow:"visible"}},s("div",{class:{"sd-select-group__dropdown":!0,"sd-select-group__dropdown--ready":this.isDropdownReady},style:{"--select-width":this.dropDownWidth||"200px","--select-dropdown-height":this.dropdownHeight||"260px",...this.dropdownStyle},onScroll:this.handleDropdownScroll,ref:e=>this.dropdownRef=e},this.searchable&&s("sd-select-search-input",{ref:e=>this.searchRef=e,isScrolled:this.isScrolled,searchText:this.searchText,onSdSearchInput:e=>this.searchText=e.detail||"",onSdSearchFocus:()=>this.itemIndex=-1}),this.filteredOptions.length>0?s(o,null,this.filteredOptions.map(((e,t)=>s("slot",{name:"option-"+e.value},s("sd-select-option-group",{option:e,index:t,isSelected:"item"===e.type&&e.value===this.value,isFocused:t===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:t})=>{"item"===e.type&&this.handleOptionClick(t)},useCheckbox:!1,useIndicator:!1}))))):s("slot",{name:"option-placeholder"},s("div",{class:"sd-select-group__option-placeholder",style:this.optionStyle},this.optionPlaceholder)))))}static get watchers(){return{options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}}static get style(){return".sd-select-group__dropdown .sd-select-group__option-placeholder{height:48px;display:flex;align-items:center;padding:8px 16px;font-size:12px;line-height:0;text-align:left;color:#888888}sd-select-group{display:inline-flex;flex-flow:column nowrap;width:fit-content;height:fit-content}sd-select-group:focus,sd-select-group:focus-visible,sd-select-group:focus-within{outline:none !important}sd-select-group .sd-select-group{width:100%}sd-select-group .sd-select-group .sd-select-group__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;height:100%;align-items:center}sd-select-group .sd-select-group .sd-select-group__trigger .sd-select-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}sd-select-group .sd-select-group .sd-select-group__trigger .sd-select-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-group .sd-select-group .sd-select-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-group .sd-select-group .sd-select-group__arrow--open{transform:rotate(180deg)}.sd-select-group__dropdown{overflow:auto;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;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-group__dropdown--ready{opacity:1}"}},[772,"sd-select-group",{value:[1032],options:[1040],placeholder:[1],optionPlaceholder:[1,"option-placeholder"],width:[1],dropdownHeight:[1,"dropdown-height"],autoFocus:[4,"auto-focus"],disabled:[4],clearable:[4],searchable:[4],label:[1],addonLabel:[1,"addon-label"],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[4],containerStyle:[16],triggerStyle:[16],dropdownStyle:[16],optionStyle:[16],labelStyle:[16],optionRenderer:[16],filteredOptions:[32],isOpen:[32],searchText:[32],itemIndex:[32],isScrolled:[32],isDropdownReady:[32],sdOpen:[64],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}]),b=x,y=function(){"undefined"!=typeof customElements&&["sd-select-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-input","sd-portal","sd-select-option-group","sd-select-search-input","sd-tooltip"].forEach((e=>{switch(e){case"sd-select-group":customElements.get(i(e))||customElements.define(i(e),x);break;case"sd-button":customElements.get(i(e))||a();break;case"sd-checkbox":customElements.get(i(e))||d();break;case"sd-field":customElements.get(i(e))||p();break;case"sd-floating-portal":customElements.get(i(e))||h();break;case"sd-icon":customElements.get(i(e))||c();break;case"sd-input":customElements.get(i(e))||u();break;case"sd-portal":customElements.get(i(e))||g();break;case"sd-select-option-group":customElements.get(i(e))||m();break;case"sd-select-search-input":customElements.get(i(e))||f();break;case"sd-tooltip":customElements.get(i(e))||w()}}))};export{b as SdSelectGroup,y as defineCustomElement}
|
|
1
|
+
import{p as e,c as t,h as s,F as o,t as i}from"./p-B1vJXa29.js";import{n as r}from"./p-CCwNgVmC.js";import{B as n}from"./p-BNuWMSR_.js";import{S as l}from"./p-Cy6HMEsK.js";import{d as a}from"./p-DeTDTmN7.js";import{d}from"./p-Dl7yIIDW.js";import{d as p}from"./p-CdoxVzYC.js";import{d as h}from"./p-BYaBx4Ar.js";import{d as c}from"./p-BBYig1zV.js";import{d as u}from"./p-Du3VqeNP.js";import{d as g}from"./p-Chqlvi5E.js";import{d as m}from"./p-DJScHgLW.js";import{d as f}from"./p-B09D2cZD.js";import{d as w}from"./p-CUy8ulXZ.js";const x=e(class extends n{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=t(this,"sdUpdate"),this.dropDownShow=t(this,"sdDropDownShow")}get el(){return this}value=null;options=[];placeholder="선택";optionPlaceholder="선택지가 없습니다.";width="200px";dropdownHeight="260px";autoFocus=!1;disabled=!1;clearable=!1;searchable=!1;label="";addonLabel="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;containerStyle={};triggerStyle={};dropdownStyle={};optionStyle={};labelStyle={};optionRenderer;filteredOptions=[];isOpen=!1;searchText=null;itemIndex=-1;isScrolled=!1;isDropdownReady=!1;update;dropDownShow;selectRef;searchRef;triggerRef;optionRef;dropdownRef;formField;dropDownWidth="200px";name=r();async sdOpen(){await new Promise((e=>setTimeout(e,0))),this.isOpen=!0}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}optionsChanged(){this.filteredOptions=this.options,this.filterOptions()}searchTextChanged(){this.filterOptions()}async itemIndexChanged(e,t){if(this.searchable){const e=await this.getNativeInputElement();if(-1===this.itemIndex)return void e?.focus({preventScroll:!0});e?.matches(":focus")&&e?.blur()}const s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),o=s?.[this.itemIndex];o&&this.isOpen&&(this.optionRef=o,await this.optionRef.isDisabled()?e>t?this.itemIndex++:this.itemIndex--:this.scrollToOption(o))}async isOpenChanged(){this.onDropdownToggle(this.isOpen),this.dropDownShow?.emit({isOpen:this.isOpen}),this.isDropdownReady=!1,!1!==this.isOpen?requestAnimationFrame((()=>{requestAnimationFrame((async()=>{const e=this.getSelectedOption();if(e){const t=this.filteredOptions.indexOf(e),s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),o=Math.min(t+4,s.length-1),i=s?.[o];i&&this.scrollToOption(i)}if(this.isDropdownReady=!0,this.searchable){const e=await this.getNativeInputElement();e&&requestAnimationFrame((()=>{e.focus({preventScroll:!0})}))}}))})):await(this.formField?.sdValidate())}componentWillLoad(){this.filteredOptions=this.options,this.dropDownWidth=this.width,this.initializeEvent()}componentDidLoad(){this.autoFocus&&this.selectRef?.focus()}componentDidRender(){const e=this.triggerRef,t=e?.getBoundingClientRect();this.dropDownWidth=t?.width?t.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(e){this.selectRef?.contains(e.target)||(this.isOpen=!1)}handleDocumentKeydown(e){if(e.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(e.key))switch(e.preventDefault(),e.key){case"ArrowDown":case"ArrowUp":const t=new l(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,e.key);this.itemIndex=t;break;case"Enter":const s=this.filteredOptions[this.itemIndex];s&&!s.disabled&&"item"===s.type&&this.handleOptionSelection(s);break;case"Escape":this.isOpen=!1}}handleTriggerClick=e=>{e.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleOptionClick=e=>{const{option:t,event:s}=e;s.stopPropagation(),"item"===t.type&&this.handleOptionSelection(t)};filterOptions(){if(!this.searchText||""===this.searchText.trim())return void(this.filteredOptions=this.options);const e=this.searchText.toLowerCase(),t=new Set;this.options.forEach((s=>{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));s&&!t.has(s)&&(t.add(s),this.addParentGroups(s,t))}getSelectedOption(){return this.options.find((e=>e.value===this.value))}handleDropdownScroll=e=>{this.isScrolled=e.target.scrollTop>0};async getNativeInputElement(){return this.searchRef?this.searchRef.sdGetNativeElement():null}handleOptionSelection=e=>{if(!e||e.disabled)return;this.value=e.value,this.isOpen=!1;const t=this.getSelectedOption();this.update?.emit({value:t?.value||null,option:t||null})};closeDropdown(){this.isOpen=!1}async scrollToOption(e){this.dropdownRef&&e&&requestAnimationFrame((()=>{const t=this.dropdownRef,s=e.offsetTop,o=e.offsetHeight,i=t.scrollTop,r=t.clientHeight,n=t.querySelector(".sd-select-group__search-container"),l=n?n.offsetHeight:0,a=r-l,d=i+r;s<i+l?t.scrollTo({top:s-l,behavior:"instant"}):s+o>d&&t.scrollTo({top:s+o-a-l,behavior:"instant"})}))}render(){return s("sd-field",{key:"7dc16e6167d57ea23971ddc60f6414c1894f4163",label:this.label,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,addonLabel:this.addonLabel,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e,style:{"--field-width":this.width||"200px"}},s("div",{key:"470501b3bd905154bb090c11237feea3c3566fd5",class:{"sd-select-group":!0,"sd-select-group--open":this.isOpen,"sd-select-group--disabled":this.disabled,"sd-select-group--label":!!this.label},ref:e=>this.selectRef=e},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const e=this.getSelectedOption();return s("div",{class:"sd-select-group__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,style:this.triggerStyle,ref:e=>this.triggerRef=e},s("span",{class:"sd-select-group__value"},e?e.label:this.placeholder),this.clearable&&e&&!this.disabled&&s("sd-icon",{key:"close-icon",name:"close",size:10,color:"grey_65",class:"sd-select-group__clear",onClick:async e=>{e.stopPropagation(),this.value=null,this.update?.emit({value:null,option:null}),await(this.formField?.sdValidate())}}),s("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"grey_65",class:{"sd-select-group__arrow":!0,"sd-select-group__arrow--open":this.isOpen}}))}renderDropdown(){return!1===this.isOpen?null:s("sd-portal",{open:this.isOpen,parentRef:this.selectRef,onSdClose:this.closeDropdown},s("div",{style:{width:"0",height:"0",overflow:"visible"}},s("div",{class:{"sd-select-group__dropdown":!0,"sd-select-group__dropdown--ready":this.isDropdownReady},style:{"--select-width":this.dropDownWidth||"200px","--select-dropdown-height":this.dropdownHeight||"260px",...this.dropdownStyle},onScroll:this.handleDropdownScroll,ref:e=>this.dropdownRef=e},this.searchable&&s("sd-select-search-input",{ref:e=>this.searchRef=e,isScrolled:this.isScrolled,searchText:this.searchText,onSdSearchInput:e=>this.searchText=e.detail||"",onSdSearchFocus:()=>this.itemIndex=-1}),this.filteredOptions.length>0?s(o,null,this.filteredOptions.map(((e,t)=>s("slot",{name:"option-"+e.value},s("sd-select-option-group",{option:e,index:t,isSelected:"item"===e.type&&e.value===this.value,isFocused:t===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:t})=>{"item"===e.type&&this.handleOptionClick(t)},useCheckbox:!1,useIndicator:!1}))))):s("slot",{name:"option-placeholder"},s("div",{class:"sd-select-group__option-placeholder",style:this.optionStyle},this.optionPlaceholder)))))}static get watchers(){return{options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}}static get style(){return".sd-select-group__dropdown .sd-select-group__option-placeholder{height:48px;display:flex;align-items:center;padding:8px 16px;font-size:12px;line-height:0;text-align:left;color:#888888}sd-select-group{display:inline-flex;flex-flow:column nowrap;width:fit-content;height:fit-content}sd-select-group:focus,sd-select-group:focus-visible,sd-select-group:focus-within{outline:none !important}sd-select-group .sd-select-group{width:100%}sd-select-group .sd-select-group .sd-select-group__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;height:100%;align-items:center}sd-select-group .sd-select-group .sd-select-group__trigger .sd-select-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}sd-select-group .sd-select-group .sd-select-group__trigger .sd-select-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-group .sd-select-group .sd-select-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-group .sd-select-group .sd-select-group__arrow--open{transform:rotate(180deg)}.sd-select-group__dropdown{overflow:auto;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;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-group__dropdown--ready{opacity:1}"}},[772,"sd-select-group",{value:[1032],options:[1040],placeholder:[1],optionPlaceholder:[1,"option-placeholder"],width:[1],dropdownHeight:[1,"dropdown-height"],autoFocus:[4,"auto-focus"],disabled:[4],clearable:[4],searchable:[4],label:[1],addonLabel:[1,"addon-label"],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[4],containerStyle:[16],triggerStyle:[16],dropdownStyle:[16],optionStyle:[16],labelStyle:[16],optionRenderer:[16],filteredOptions:[32],isOpen:[32],searchText:[32],itemIndex:[32],isScrolled:[32],isDropdownReady:[32],sdOpen:[64],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}]),b=x,y=function(){"undefined"!=typeof customElements&&["sd-select-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-input","sd-portal","sd-select-option-group","sd-select-search-input","sd-tooltip"].forEach((e=>{switch(e){case"sd-select-group":customElements.get(i(e))||customElements.define(i(e),x);break;case"sd-button":customElements.get(i(e))||a();break;case"sd-checkbox":customElements.get(i(e))||d();break;case"sd-field":customElements.get(i(e))||p();break;case"sd-floating-portal":customElements.get(i(e))||h();break;case"sd-icon":customElements.get(i(e))||c();break;case"sd-input":customElements.get(i(e))||u();break;case"sd-portal":customElements.get(i(e))||g();break;case"sd-select-option-group":customElements.get(i(e))||m();break;case"sd-select-search-input":customElements.get(i(e))||f();break;case"sd-tooltip":customElements.get(i(e))||w()}}))};export{b as SdSelectGroup,y as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,c as t,h as s,F as i,t as o}from"./p-B1vJXa29.js";import{n as l}from"./p-CCwNgVmC.js";import{B as n}from"./p-BNuWMSR_.js";import{S as r}from"./p-Cy6HMEsK.js";import{d as p}from"./p-Dn-uC69K.js";import{d as h}from"./p-Cnu8Ol-v.js";import{d as a}from"./p-CCACqlGH.js";import{d}from"./p-BYaBx4Ar.js";import{d as c}from"./p-BBYig1zV.js";import{d as u}from"./p-B0DS3FC2.js";import{d as m}from"./p-Chqlvi5E.js";import{d as g}from"./p-CDGHjR8K.js";import{d as f}from"./p-BcZ3kfAq.js";import{d as w}from"./p-D1g7VL0r.js";const b=e(class extends n{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=t(this,"sdUpdate"),this.dropDownShow=t(this,"sdDropDownShow")}get el(){return this}value=null;options=[];placeholder="선택";optionPlaceholder="선택지가 없습니다.";width="200px";dropdownHeight="260px";disabled=!1;clearable=!1;searchable=!1;useCheckbox=!1;useAll=!1;allCheckedLabel="전체";allCheckOptionLabel="전체";label="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;containerStyle={};triggerStyle={};dropdownStyle={};optionStyle={};labelStyle={};optionRenderer;filteredOptions=[];isOpen=!1;searchText=null;itemIndex=-1;isScrolled=!1;isDropdownReady=!1;update;dropDownShow;selectRef;searchRef;triggerRef;optionRef;dropdownRef;formField;dropDownWidth="200px";name=l();async sdOpen(){await new Promise((e=>setTimeout(e,0))),this.isOpen=!0}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}valueChanged(){this.update?.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(-1===this.itemIndex)return void e?.focus({preventScroll:!0});e?.matches(":focus")&&e?.blur()}const s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),i=this.useAll?this.itemIndex+1:this.itemIndex,o=s?.[i];o&&this.isOpen&&(this.optionRef=o,await this.optionRef.isDisabled()?e>t?this.itemIndex++:this.itemIndex--:this.scrollToOption(o))}async isOpenChanged(){this.onDropdownToggle(this.isOpen),this.dropDownShow?.emit({isOpen:this.isOpen}),this.isDropdownReady=!1,!1!==this.isOpen?requestAnimationFrame((()=>{requestAnimationFrame((async()=>{const e=this.getSelectedOption();if(e&&e.length>0){const t=this.options.indexOf(e[0]),s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),i=Math.min((this.useAll?t+1:t)+4,s.length-1),o=s?.[i];o&&this.scrollToOption(o)}if(this.isDropdownReady=!0,this.searchable){const e=await this.getNativeInputElement();e&&requestAnimationFrame((()=>{e.focus({preventScroll:!0})}))}}))})):await(this.formField?.sdValidate())}componentWillLoad(){this.filteredOptions=this.options,this.dropDownWidth=this.width,this.initializeEvent()}componentDidRender(){const e=this.triggerRef,t=e?.getBoundingClientRect();this.dropDownWidth=t?.width?t.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(e){this.selectRef?.contains(e.target)||(this.isOpen=!1)}handleDocumentKeydown(e){if(e.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(e.key))switch(e.preventDefault(),e.key){case"ArrowDown":case"ArrowUp":const t=new r(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,e.key);this.itemIndex=t;break;case"Enter":const s=this.filteredOptions[this.itemIndex];s&&!s.disabled&&this.handleOptionSelection(s);break;case"Escape":this.isOpen=!1}}handleTriggerClick=e=>{e.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleAllOptionClick=e=>{if(e.isSelected){const e=this.filteredOptions.filter((e=>"item"===e.type&&!e.disabled));this.value=this.value?.filter((t=>!e.some((e=>e.value===t.value))))||this.value}else{const e=new Set([...this.value||[],...this.filteredOptions.filter((e=>"item"===e.type&&!e.disabled))]);this.value=Array.from(e)}};handleOptionClick=e=>{const{option:t,event:s}=e;s.stopPropagation(),"group"===t.type&&this.handleGroupOptionClick(e),"subgroup"===t.type&&this.handleSubGroupOptionClick(e),"item"===t.type&&this.handleOptionSelection(t)};handleGroupOptionClick=e=>{const{option:t,isSelected:s}=e;this.filteredOptions.filter((e=>e.parent===t.value&&!e.disabled)).forEach((e=>{this.handleSubGroupOptionClick({option:e,isSelected:s||null===s})}))};handleSubGroupOptionClick=e=>{const{option:t,isSelected:s}=e,i=this.filteredOptions.filter((e=>e.parent===t.value&&!e.disabled));if(s||null===s)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())return void(this.filteredOptions=this.options);const e=this.searchText.toLowerCase(),t=new Set;this.options.forEach((s=>{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));s&&!t.has(s)&&(t.add(s),this.addParentGroups(s,t))}getSelectedOption(){return this.options.filter((e=>this.value?.includes(e)))}handleDropdownScroll=e=>{this.isScrolled=e.target.scrollTop>0};async getNativeInputElement(){return this.searchRef?this.searchRef.sdGetNativeElement():null}handleOptionSelection=e=>{if(!e||e.disabled)return;const t=this.value?.some((t=>t.value===e.value));this.value=t?this.value?.filter((t=>t.value!==e.value))||null:[...this.value||[],e]};getAllItemsUnderOption(e,t=!1){const s=s=>s.parent===e.value&&(t||!s.disabled);if("subgroup"===e.type)return this.filteredOptions.filter((e=>s(e)&&"item"===e.type));const i=[],o=this.filteredOptions.filter(s);o.filter((e=>"subgroup"===e.type)).forEach((e=>{const s=this.filteredOptions.filter((s=>!(s.parent!==e.value||"item"!==s.type||!t&&s.disabled)));i.push(...s)}));const l=o.filter((e=>"item"===e.type));return i.push(...l),i}isAllChildrenSelected(e){const t=this.getAllItemsUnderOption(e);if(0===t.length)return!1;const s=t.filter((e=>this.value?.some((t=>t.value===e.value))));return s.length===t.length||s.length>0&&null}getChildrenOptions(e){const t=this.getAllItemsUnderOption(e,!0);return{selectedCount:t.filter((e=>this.value?.some((t=>t.value===e.value)))).length,totalCount:t.length}}isAllOptionsSelected(){if(!this.value||0===this.value.length)return!1;const e=this.options.filter((e=>"item"===e.type&&!e.disabled));if(0===e.length)return!1;const t=new Set(this.value.map((e=>e.value)));return e.every((e=>t.has(e.value)))}getTriggerLabel(){const e=this.getSelectedOption();return e?0===e.length?this.placeholder:this.isAllOptionsSelected()?this.allCheckedLabel:e.map((e=>e.label)).join(", "):"선택"}closeDropdown(){this.isOpen=!1}async scrollToOption(e){this.dropdownRef&&e&&requestAnimationFrame((()=>{const t=this.dropdownRef,s=e.offsetTop,i=e.offsetHeight,o=t.scrollTop,l=t.clientHeight,n=t.querySelector(".sd-select-multiple-group__search-container"),r=n?n.offsetHeight:0,p=l-r,h=o+l;s<o+r?t.scrollTo({top:s-r,behavior:"instant"}):s+i>h&&t.scrollTo({top:s+i-p-r,behavior:"instant"})}))}render(){return s("sd-field",{key:"350c7b2df807166a1439a2151f0f168385adac4a",label:this.label,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e,style:{"--field-width":this.width||"200px"}},s("div",{key:"cce989263e1c7dcb38216e734aabe6eea643676a",class:{"sd-select-multiple-group":!0,"sd-select-multiple-group--open":this.isOpen,"sd-select-multiple-group--disabled":this.disabled,"sd-select-multiple-group--label":!!this.label},ref:e=>this.selectRef=e},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const e=this.getSelectedOption();return s("div",{class:"sd-select-multiple-group__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,style:this.triggerStyle},s("span",{class:"sd-select-multiple-group__value"},this.getTriggerLabel()),this.clearable&&e?.length>0&&!this.disabled&&s("sd-icon",{key:"close-icon",name:"close",size:10,color:"#888",class:"sd-select-multiple-group__clear",onClick:async e=>{e.stopPropagation(),this.value=null,await(this.formField?.sdValidate())}}),s("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"#888",class:{"sd-select-multiple-group__arrow":!0,"sd-select-multiple-group__arrow--open":this.isOpen}}))}renderDropdown(){return!1===this.isOpen?null:s("sd-portal",{open:this.isOpen,parentRef:this.selectRef,onSdClose:this.closeDropdown},s("div",{style:{width:"0",height:"0",overflow:"visible"}},s("div",{class:{"sd-select-multiple-group__dropdown":!0,"sd-select-multiple-group__dropdown--ready":this.isDropdownReady},style:{"--select-width":this.dropDownWidth||"200px","--select-dropdown-height":this.dropdownHeight||"260px",...this.dropdownStyle},onScroll:this.handleDropdownScroll,ref:e=>this.dropdownRef=e},this.searchable&&s("sd-select-search-input",{ref:e=>this.searchRef=e,isScrolled:this.isScrolled,searchText:this.searchText,onSdSearchInput:e=>this.searchText=e.detail||"",onSdSearchFocus:()=>this.itemIndex=-1}),this.filteredOptions.length>0?s(i,null,this.useAll&&s("sd-select-option-group",{option:{label:this.allCheckOptionLabel,value:"",type:"all"},index:0,isSelected:this.isAllOptionsSelected(),isFocused:0===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:e})=>this.handleAllOptionClick(e),useCheckbox:this.useCheckbox,useIndicator:!1}),this.filteredOptions.map(((e,t)=>s("slot",{name:"option-"+e.value},s("sd-select-option-group",{option:e,index:t,isSelected:"item"===e.type?this.value?.some((t=>t.value===e.value)):this.isAllChildrenSelected(e),isFocused:t===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:t})=>{("item"===e.type||this.useCheckbox)&&this.handleOptionClick(t)},useCheckbox:this.useCheckbox,..."item"!==e.type&&{countInfo:this.getChildrenOptions(e)}}))))):s("slot",{name:"option-placeholder"},s("div",{class:"sd-select-multiple-group__option-placeholder",style:this.optionStyle},this.optionPlaceholder)))))}static get watchers(){return{value:[{valueChanged:0}],options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}}static get style(){return".sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{height:48px;display:flex;align-items:center;padding:8px 16px;font-size:12px;line-height:0;text-align:left;color:#888888}sd-select-multiple-group{display:inline-flex;flex-flow:column nowrap;width:fit-content;height:fit-content}sd-select-multiple-group:focus,sd-select-multiple-group:focus-visible,sd-select-multiple-group:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group{width:100%}sd-select-multiple-group .sd-select-multiple-group .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 .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 .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 .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 .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{overflow:auto;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;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-multiple-group__dropdown--ready{opacity:1}"}},[772,"sd-select-multiple-group",{value:[1040],options:[1040],placeholder:[1],optionPlaceholder:[1,"option-placeholder"],width:[1],dropdownHeight:[1,"dropdown-height"],disabled:[4],clearable:[4],searchable:[4],useCheckbox:[4,"use-checkbox"],useAll:[4,"use-all"],allCheckedLabel:[1,"all-checked-label"],allCheckOptionLabel:[1,"all-check-option-label"],label:[1],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[4],containerStyle:[16],triggerStyle:[16],dropdownStyle:[16],optionStyle:[16],labelStyle:[16],optionRenderer:[16],filteredOptions:[32],isOpen:[32],searchText:[32],itemIndex:[32],isScrolled:[32],isDropdownReady:[32],sdOpen:[64],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{value:[{valueChanged:0}],options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}]),x=b,y=function(){"undefined"!=typeof customElements&&["sd-select-multiple-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-input","sd-portal","sd-select-option-group","sd-select-search-input","sd-tooltip"].forEach((e=>{switch(e){case"sd-select-multiple-group":customElements.get(o(e))||customElements.define(o(e),b);break;case"sd-button":customElements.get(o(e))||p();break;case"sd-checkbox":customElements.get(o(e))||h();break;case"sd-field":customElements.get(o(e))||a();break;case"sd-floating-portal":customElements.get(o(e))||d();break;case"sd-icon":customElements.get(o(e))||c();break;case"sd-input":customElements.get(o(e))||u();break;case"sd-portal":customElements.get(o(e))||m();break;case"sd-select-option-group":customElements.get(o(e))||g();break;case"sd-select-search-input":customElements.get(o(e))||f();break;case"sd-tooltip":customElements.get(o(e))||w()}}))};export{x as SdSelectMultipleGroup,y as defineCustomElement}
|
|
1
|
+
import{p as e,c as t,h as s,F as i,t as o}from"./p-B1vJXa29.js";import{n as l}from"./p-CCwNgVmC.js";import{B as n}from"./p-BNuWMSR_.js";import{S as r}from"./p-Cy6HMEsK.js";import{d as p}from"./p-DeTDTmN7.js";import{d as h}from"./p-Dl7yIIDW.js";import{d as a}from"./p-CdoxVzYC.js";import{d}from"./p-BYaBx4Ar.js";import{d as c}from"./p-BBYig1zV.js";import{d as u}from"./p-Du3VqeNP.js";import{d as m}from"./p-Chqlvi5E.js";import{d as g}from"./p-DJScHgLW.js";import{d as f}from"./p-B09D2cZD.js";import{d as w}from"./p-CUy8ulXZ.js";const b=e(class extends n{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=t(this,"sdUpdate"),this.dropDownShow=t(this,"sdDropDownShow")}get el(){return this}value=null;options=[];placeholder="선택";optionPlaceholder="선택지가 없습니다.";width="200px";dropdownHeight="260px";disabled=!1;clearable=!1;searchable=!1;useCheckbox=!1;useAll=!1;allCheckedLabel="전체";allCheckOptionLabel="전체";label="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;containerStyle={};triggerStyle={};dropdownStyle={};optionStyle={};labelStyle={};optionRenderer;filteredOptions=[];isOpen=!1;searchText=null;itemIndex=-1;isScrolled=!1;isDropdownReady=!1;update;dropDownShow;selectRef;searchRef;triggerRef;optionRef;dropdownRef;formField;dropDownWidth="200px";name=l();async sdOpen(){await new Promise((e=>setTimeout(e,0))),this.isOpen=!0}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}valueChanged(){this.update?.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(-1===this.itemIndex)return void e?.focus({preventScroll:!0});e?.matches(":focus")&&e?.blur()}const s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),i=this.useAll?this.itemIndex+1:this.itemIndex,o=s?.[i];o&&this.isOpen&&(this.optionRef=o,await this.optionRef.isDisabled()?e>t?this.itemIndex++:this.itemIndex--:this.scrollToOption(o))}async isOpenChanged(){this.onDropdownToggle(this.isOpen),this.dropDownShow?.emit({isOpen:this.isOpen}),this.isDropdownReady=!1,!1!==this.isOpen?requestAnimationFrame((()=>{requestAnimationFrame((async()=>{const e=this.getSelectedOption();if(e&&e.length>0){const t=this.options.indexOf(e[0]),s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),i=Math.min((this.useAll?t+1:t)+4,s.length-1),o=s?.[i];o&&this.scrollToOption(o)}if(this.isDropdownReady=!0,this.searchable){const e=await this.getNativeInputElement();e&&requestAnimationFrame((()=>{e.focus({preventScroll:!0})}))}}))})):await(this.formField?.sdValidate())}componentWillLoad(){this.filteredOptions=this.options,this.dropDownWidth=this.width,this.initializeEvent()}componentDidRender(){const e=this.triggerRef,t=e?.getBoundingClientRect();this.dropDownWidth=t?.width?t.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(e){this.selectRef?.contains(e.target)||(this.isOpen=!1)}handleDocumentKeydown(e){if(e.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(e.key))switch(e.preventDefault(),e.key){case"ArrowDown":case"ArrowUp":const t=new r(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,e.key);this.itemIndex=t;break;case"Enter":const s=this.filteredOptions[this.itemIndex];s&&!s.disabled&&this.handleOptionSelection(s);break;case"Escape":this.isOpen=!1}}handleTriggerClick=e=>{e.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleAllOptionClick=e=>{if(e.isSelected){const e=this.filteredOptions.filter((e=>"item"===e.type&&!e.disabled));this.value=this.value?.filter((t=>!e.some((e=>e.value===t.value))))||this.value}else{const e=new Set([...this.value||[],...this.filteredOptions.filter((e=>"item"===e.type&&!e.disabled))]);this.value=Array.from(e)}};handleOptionClick=e=>{const{option:t,event:s}=e;s.stopPropagation(),"group"===t.type&&this.handleGroupOptionClick(e),"subgroup"===t.type&&this.handleSubGroupOptionClick(e),"item"===t.type&&this.handleOptionSelection(t)};handleGroupOptionClick=e=>{const{option:t,isSelected:s}=e;this.filteredOptions.filter((e=>e.parent===t.value&&!e.disabled)).forEach((e=>{this.handleSubGroupOptionClick({option:e,isSelected:s||null===s})}))};handleSubGroupOptionClick=e=>{const{option:t,isSelected:s}=e,i=this.filteredOptions.filter((e=>e.parent===t.value&&!e.disabled));if(s||null===s)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())return void(this.filteredOptions=this.options);const e=this.searchText.toLowerCase(),t=new Set;this.options.forEach((s=>{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));s&&!t.has(s)&&(t.add(s),this.addParentGroups(s,t))}getSelectedOption(){return this.options.filter((e=>this.value?.includes(e)))}handleDropdownScroll=e=>{this.isScrolled=e.target.scrollTop>0};async getNativeInputElement(){return this.searchRef?this.searchRef.sdGetNativeElement():null}handleOptionSelection=e=>{if(!e||e.disabled)return;const t=this.value?.some((t=>t.value===e.value));this.value=t?this.value?.filter((t=>t.value!==e.value))||null:[...this.value||[],e]};getAllItemsUnderOption(e,t=!1){const s=s=>s.parent===e.value&&(t||!s.disabled);if("subgroup"===e.type)return this.filteredOptions.filter((e=>s(e)&&"item"===e.type));const i=[],o=this.filteredOptions.filter(s);o.filter((e=>"subgroup"===e.type)).forEach((e=>{const s=this.filteredOptions.filter((s=>!(s.parent!==e.value||"item"!==s.type||!t&&s.disabled)));i.push(...s)}));const l=o.filter((e=>"item"===e.type));return i.push(...l),i}isAllChildrenSelected(e){const t=this.getAllItemsUnderOption(e);if(0===t.length)return!1;const s=t.filter((e=>this.value?.some((t=>t.value===e.value))));return s.length===t.length||s.length>0&&null}getChildrenOptions(e){const t=this.getAllItemsUnderOption(e,!0);return{selectedCount:t.filter((e=>this.value?.some((t=>t.value===e.value)))).length,totalCount:t.length}}isAllOptionsSelected(){if(!this.value||0===this.value.length)return!1;const e=this.options.filter((e=>"item"===e.type&&!e.disabled));if(0===e.length)return!1;const t=new Set(this.value.map((e=>e.value)));return e.every((e=>t.has(e.value)))}getTriggerLabel(){const e=this.getSelectedOption();return e?0===e.length?this.placeholder:this.isAllOptionsSelected()?this.allCheckedLabel:e.map((e=>e.label)).join(", "):"선택"}closeDropdown(){this.isOpen=!1}async scrollToOption(e){this.dropdownRef&&e&&requestAnimationFrame((()=>{const t=this.dropdownRef,s=e.offsetTop,i=e.offsetHeight,o=t.scrollTop,l=t.clientHeight,n=t.querySelector(".sd-select-multiple-group__search-container"),r=n?n.offsetHeight:0,p=l-r,h=o+l;s<o+r?t.scrollTo({top:s-r,behavior:"instant"}):s+i>h&&t.scrollTo({top:s+i-p-r,behavior:"instant"})}))}render(){return s("sd-field",{key:"350c7b2df807166a1439a2151f0f168385adac4a",label:this.label,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e,style:{"--field-width":this.width||"200px"}},s("div",{key:"cce989263e1c7dcb38216e734aabe6eea643676a",class:{"sd-select-multiple-group":!0,"sd-select-multiple-group--open":this.isOpen,"sd-select-multiple-group--disabled":this.disabled,"sd-select-multiple-group--label":!!this.label},ref:e=>this.selectRef=e},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const e=this.getSelectedOption();return s("div",{class:"sd-select-multiple-group__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,style:this.triggerStyle},s("span",{class:"sd-select-multiple-group__value"},this.getTriggerLabel()),this.clearable&&e?.length>0&&!this.disabled&&s("sd-icon",{key:"close-icon",name:"close",size:10,color:"#888",class:"sd-select-multiple-group__clear",onClick:async e=>{e.stopPropagation(),this.value=null,await(this.formField?.sdValidate())}}),s("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"#888",class:{"sd-select-multiple-group__arrow":!0,"sd-select-multiple-group__arrow--open":this.isOpen}}))}renderDropdown(){return!1===this.isOpen?null:s("sd-portal",{open:this.isOpen,parentRef:this.selectRef,onSdClose:this.closeDropdown},s("div",{style:{width:"0",height:"0",overflow:"visible"}},s("div",{class:{"sd-select-multiple-group__dropdown":!0,"sd-select-multiple-group__dropdown--ready":this.isDropdownReady},style:{"--select-width":this.dropDownWidth||"200px","--select-dropdown-height":this.dropdownHeight||"260px",...this.dropdownStyle},onScroll:this.handleDropdownScroll,ref:e=>this.dropdownRef=e},this.searchable&&s("sd-select-search-input",{ref:e=>this.searchRef=e,isScrolled:this.isScrolled,searchText:this.searchText,onSdSearchInput:e=>this.searchText=e.detail||"",onSdSearchFocus:()=>this.itemIndex=-1}),this.filteredOptions.length>0?s(i,null,this.useAll&&s("sd-select-option-group",{option:{label:this.allCheckOptionLabel,value:"",type:"all"},index:0,isSelected:this.isAllOptionsSelected(),isFocused:0===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:e})=>this.handleAllOptionClick(e),useCheckbox:this.useCheckbox,useIndicator:!1}),this.filteredOptions.map(((e,t)=>s("slot",{name:"option-"+e.value},s("sd-select-option-group",{option:e,index:t,isSelected:"item"===e.type?this.value?.some((t=>t.value===e.value)):this.isAllChildrenSelected(e),isFocused:t===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:t})=>{("item"===e.type||this.useCheckbox)&&this.handleOptionClick(t)},useCheckbox:this.useCheckbox,..."item"!==e.type&&{countInfo:this.getChildrenOptions(e)}}))))):s("slot",{name:"option-placeholder"},s("div",{class:"sd-select-multiple-group__option-placeholder",style:this.optionStyle},this.optionPlaceholder)))))}static get watchers(){return{value:[{valueChanged:0}],options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}}static get style(){return".sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{height:48px;display:flex;align-items:center;padding:8px 16px;font-size:12px;line-height:0;text-align:left;color:#888888}sd-select-multiple-group{display:inline-flex;flex-flow:column nowrap;width:fit-content;height:fit-content}sd-select-multiple-group:focus,sd-select-multiple-group:focus-visible,sd-select-multiple-group:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group{width:100%}sd-select-multiple-group .sd-select-multiple-group .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 .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 .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 .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 .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{overflow:auto;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;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-multiple-group__dropdown--ready{opacity:1}"}},[772,"sd-select-multiple-group",{value:[1040],options:[1040],placeholder:[1],optionPlaceholder:[1,"option-placeholder"],width:[1],dropdownHeight:[1,"dropdown-height"],disabled:[4],clearable:[4],searchable:[4],useCheckbox:[4,"use-checkbox"],useAll:[4,"use-all"],allCheckedLabel:[1,"all-checked-label"],allCheckOptionLabel:[1,"all-check-option-label"],label:[1],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[4],containerStyle:[16],triggerStyle:[16],dropdownStyle:[16],optionStyle:[16],labelStyle:[16],optionRenderer:[16],filteredOptions:[32],isOpen:[32],searchText:[32],itemIndex:[32],isScrolled:[32],isDropdownReady:[32],sdOpen:[64],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{value:[{valueChanged:0}],options:[{optionsChanged:0}],searchText:[{searchTextChanged:0}],itemIndex:[{itemIndexChanged:0}],isOpen:[{isOpenChanged:0}]}]),x=b,y=function(){"undefined"!=typeof customElements&&["sd-select-multiple-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-input","sd-portal","sd-select-option-group","sd-select-search-input","sd-tooltip"].forEach((e=>{switch(e){case"sd-select-multiple-group":customElements.get(o(e))||customElements.define(o(e),b);break;case"sd-button":customElements.get(o(e))||p();break;case"sd-checkbox":customElements.get(o(e))||h();break;case"sd-field":customElements.get(o(e))||a();break;case"sd-floating-portal":customElements.get(o(e))||d();break;case"sd-icon":customElements.get(o(e))||c();break;case"sd-input":customElements.get(o(e))||u();break;case"sd-portal":customElements.get(o(e))||m();break;case"sd-select-option-group":customElements.get(o(e))||g();break;case"sd-select-search-input":customElements.get(o(e))||f();break;case"sd-tooltip":customElements.get(o(e))||w()}}))};export{x as SdSelectMultipleGroup,y as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,c as s,h as t,t as i}from"./p-B1vJXa29.js";import{S as l}from"./p-Cy6HMEsK.js";import{B as o}from"./p-BNuWMSR_.js";import{n as r}from"./p-CCwNgVmC.js";import{d as n}from"./p-
|
|
1
|
+
import{p as e,c as s,h as t,t as i}from"./p-B1vJXa29.js";import{S as l}from"./p-Cy6HMEsK.js";import{B as o}from"./p-BNuWMSR_.js";import{n as r}from"./p-CCwNgVmC.js";import{d as n}from"./p-DeTDTmN7.js";import{d}from"./p-Dl7yIIDW.js";import{d as a}from"./p-CdoxVzYC.js";import{d as c}from"./p-BYaBx4Ar.js";import{d as p}from"./p-BBYig1zV.js";import{d as h}from"./p-Du3VqeNP.js";import{d as m}from"./p-Chqlvi5E.js";import{d as u}from"./p-C3XBhNH9.js";import{d as f}from"./p-BeZsmobQ.js";import{d as b}from"./p-B09D2cZD.js";import{d as w}from"./p-CUy8ulXZ.js";const g=e(class extends o{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=s(this,"sdUpdate"),this.dropDownShow=s(this,"sdDropDownShow")}get el(){return this}value=null;options=[];placeholder="선택";optionPlaceholder="선택지가 없습니다.";width="200px";dropdownHeight="260px";autoFocus=!1;disabled=!1;clearable=!1;searchable=!1;useAll=!1;useCheckbox=!1;label="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;optionRenderer;isOpen=!1;itemIndex=-1;isScrolled=!1;update;dropDownShow;selectRef;triggerRef;formField;filteredOptions=[];dropDownWidth="200px";name=r();async sdOpen(){this.isOpen=!0}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}async isOpenChanged(){this.onDropdownToggle(this.isOpen),this.dropDownShow?.emit({isOpen:this.isOpen}),!1===this.isOpen&&await(this.formField?.sdValidate())}componentWillLoad(){this.filteredOptions=this.options,this.dropDownWidth=this.width,this.initializeEvent()}componentDidLoad(){this.autoFocus&&this.selectRef?.focus()}componentDidRender(){const e=this.triggerRef,s=e?.getBoundingClientRect();this.dropDownWidth=s?.width?s.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(e){this.selectRef?.contains(e.target)||(this.isOpen=!1)}handleDocumentKeydown(e){if(e.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(e.key))switch(e.preventDefault(),e.key){case"ArrowDown":case"ArrowUp":const s=new l(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,e.key);this.itemIndex=s;break;case"Enter":const t=this.filteredOptions[this.itemIndex];t&&!t.disabled&&this.handleOptionSelection(t);break;case"Escape":this.isOpen=!1}}handleOptionSelection=e=>{if(!e||e.disabled)return;const s=this.value?.some((s=>s.value===e.value));this.value=s?this.value?.filter((s=>s.value!==e.value))||null:[...this.value||[],e],this.update?.emit(this.value)};getSelectedOption(){return this.options.filter((e=>this.value?.includes(e)))}closeDropdown(){this.isOpen=!1}handleTriggerClick=e=>{e.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleOptionClick=e=>{const{option:s,event:t}=e;t.stopPropagation(),this.handleOptionSelection(s)};render(){return t("sd-field",{key:"526a52f1fb3a8bd80a55d7094857901d7c933ca5",label:this.label,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e},t("div",{key:"1084a5740aca5ea9d27485807e7edfc276d78ba3",class:{"sd-select-multiple":!0,"sd-select-multiple--open":this.isOpen,"sd-select-multiple--disabled":this.disabled,"sd-select-multiple--error":!!this.error},ref:e=>this.selectRef=e},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const e=this.getSelectedOption();return t("div",{class:"sd-select-multiple__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,ref:e=>this.triggerRef=e},t("span",{class:"sd-select-multiple__value"},e&&0!==e.length?e.map((e=>e.label)).join(", "):this.placeholder),this.clearable&&e?.length>0&&!this.disabled&&t("sd-icon",{key:"close-icon",name:"close",size:10,color:"#888",class:"sd-select-multiple__clear",onClick:async e=>{e.stopPropagation(),this.value=null,await(this.formField?.sdValidate())}}),t("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"#888",class:{"sd-select-multiple__arrow":!0,"sd-select-multiple__arrow--open":this.isOpen}}))}renderDropdown(){if(!1===this.isOpen)return null;const e=this.selectRef?.querySelector(".sd-select-multiple__trigger")||this.selectRef;return t("sd-portal",{open:this.isOpen,parentRef:e,onSdClose:this.closeDropdown},t("sd-select-dropdown",{value:this.value,options:this.options,itemIndex:this.itemIndex,width:this.dropDownWidth,dropdownHeight:this.dropdownHeight,searchable:this.searchable,optionPlaceholder:this.optionPlaceholder,useCheckbox:this.useCheckbox,useAll:this.useAll,onSdOptionClick:({detail:e})=>this.handleOptionClick(e),onSdOptionFiltered:({detail:e})=>this.filteredOptions=e}))}static get watchers(){return{isOpen:[{isOpenChanged:0}]}}static get style(){return"sd-select-multiple{display:inline-flex;flex-flow:column nowrap;height:fit-content}sd-select-multiple *:focus,sd-select-multiple *:focus-visible,sd-select-multiple *:focus-within{outline:none !important}sd-select-multiple .sd-select-multiple{width:100%}sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger .sd-select-multiple__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger .sd-select-multiple__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple .sd-select-multiple__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease;margin-left:8px}sd-select-multiple .sd-select-multiple__arrow--open{transform:rotate(180deg)}"}},[512,"sd-select-multiple",{value:[1040],options:[1040],placeholder:[1],optionPlaceholder:[1,"option-placeholder"],width:[1],dropdownHeight:[1,"dropdown-height"],autoFocus:[4,"auto-focus"],disabled:[4],clearable:[4],searchable:[4],useAll:[4,"use-all"],useCheckbox:[4,"use-checkbox"],label:[1],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[4],optionRenderer:[16],isOpen:[32],itemIndex:[32],isScrolled:[32],sdOpen:[64],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{isOpen:[{isOpenChanged:0}]}]),x=g,k=function(){"undefined"!=typeof customElements&&["sd-select-multiple","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-input","sd-portal","sd-select-dropdown","sd-select-option","sd-select-search-input","sd-tooltip"].forEach((e=>{switch(e){case"sd-select-multiple":customElements.get(i(e))||customElements.define(i(e),g);break;case"sd-button":customElements.get(i(e))||n();break;case"sd-checkbox":customElements.get(i(e))||d();break;case"sd-field":customElements.get(i(e))||a();break;case"sd-floating-portal":customElements.get(i(e))||c();break;case"sd-icon":customElements.get(i(e))||p();break;case"sd-input":customElements.get(i(e))||h();break;case"sd-portal":customElements.get(i(e))||m();break;case"sd-select-dropdown":customElements.get(i(e))||u();break;case"sd-select-option":customElements.get(i(e))||f();break;case"sd-select-search-input":customElements.get(i(e))||b();break;case"sd-tooltip":customElements.get(i(e))||w()}}))};export{x as SdSelectMultiple,k as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-DJScHgLW.js";const p=o,r=s;export{p as SdSelectOptionGroup,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-BeZsmobQ.js";const m=o,p=s;export{m as SdSelectOption,p as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-B09D2cZD.js";const p=o,r=s;export{p as SdSelectSearchInput,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as
|
|
1
|
+
import{S as s,d as o}from"./p-uWsY9w9i.js";const p=s,r=o;export{p as SdSelectV2ListItemSearch,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as
|
|
1
|
+
import{S as o,d as p}from"./p-ZoQO0p2E.js";const s=o,r=p;export{s as SdSelectV2ListItem,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as
|
|
1
|
+
import{S as o,d as s}from"./p-DhKZT8lW.js";const p=o,r=s;export{p as SdSelectV2Listbox,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-DqwiOEb3.js";const p=o,r=s;export{p as SdSelectV2Trigger,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as e,c as s,h as i,t as o}from"./p-B1vJXa29.js";import{n as r}from"./p-CCwNgVmC.js";import{d as a}from"./p-
|
|
1
|
+
import{p as t,H as e,c as s,h as i,t as o}from"./p-B1vJXa29.js";import{n as r}from"./p-CCwNgVmC.js";import{d as a}from"./p-DeTDTmN7.js";import{d as l}from"./p-Dl7yIIDW.js";import{d as h}from"./p-CdoxVzYC.js";import{d}from"./p-BYaBx4Ar.js";import{d as n}from"./p-BBYig1zV.js";import{d as c}from"./p-Chqlvi5E.js";import{d as p}from"./p-ZoQO0p2E.js";import{d as m}from"./p-uWsY9w9i.js";import{d as u}from"./p-DhKZT8lW.js";import{d as f}from"./p-DqwiOEb3.js";import{d as b}from"./p-CUy8ulXZ.js";const g=t(class t extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.update=s(this,"sdUpdate"),this.dropDownShow=s(this,"sdDropDownShow")}static VIEWPORT_PADDING=20;static PORTAL_OFFSET_Y=4;static CLOSE_ANIMATION_DURATION=150;get el(){return this}name="default";value=null;options=[];placeholder="선택";maxDropdownWidth="640px";dropdownHeight="260px";disabled=!1;label="";addonLabel="";error=!1;hint="";errorMessage="";fieldName="";rules=[];icon=void 0;labelTooltip="";labelTooltipProps=null;emitValue=!1;width="";isOpen=!1;isAnimatingOut=!1;triggerWidth="200px";resolvedDropdownHeight="260px";resolvedMaxDropdownWidth="640px";focused=!1;hovered=!1;update;dropDownShow;triggerRef;closeAnimationTimer;internalName=r();watchIsOpen(t){this.focused=t,this.dropDownShow.emit({isOpen:t})}get isMulti(){return"multi"===this.name||"multi_depth"===this.name}get displayText(){if(this.isMulti){if(!this.value||!Array.isArray(this.value))return"";if(this.emitValue){const t=this.flattenOptions(this.options);return this.value.map((e=>t.find((t=>t.value===e))?.label??"")).filter(Boolean).join(", ")}const t=this.value;return 0===t.length?"":t.map((t=>t.label)).join(", ")}if(null==this.value)return"";if(!this.emitValue&&"object"==typeof this.value&&!Array.isArray(this.value))return this.value.label??"";const t=this.flattenOptions(this.options).find((t=>t.value===this.value));return t?.label??""}flattenOptions(t){return t.flatMap((t=>t.children?this.flattenOptions(t.children):[t]))}getSelectedOptions(){const t=this.value;return t&&Array.isArray(t)?this.emitValue?t.map((t=>this.findOriginalOption(t,this.options))).filter((t=>!!t)):t:[]}toMultiValue(t){return this.emitValue?t.map((t=>t.value)):t}parsePixelValue(t,e){const s=Number.parseFloat(t);return Number.isFinite(s)?s:e}updateDropdownViewportConstraints(){if(!this.triggerRef)return;const e=this.triggerRef.getBoundingClientRect(),s=t.VIEWPORT_PADDING,i=t.PORTAL_OFFSET_Y,o=this.parsePixelValue(this.dropdownHeight,260),r=this.parsePixelValue(this.maxDropdownWidth,640),a=Math.max(window.innerHeight-e.bottom-s-i,0),l=Math.max(a,Math.max(e.top-s-i,0)),h=Math.max(window.innerWidth-2*s,0);this.resolvedDropdownHeight=Math.min(o,l)+"px",this.resolvedMaxDropdownWidth=Math.min(r,h)+"px"}handleViewportResize=()=>{this.isOpen&&this.updateDropdownViewportConstraints()};findOriginalOption(t,e){for(const s of e){if(s.value===t)return s;if(s.children){const e=this.findOriginalOption(t,s.children);if(e)return e}}}closeDropdown(){this.isOpen&&(this.isOpen=!1,this.isAnimatingOut=!0,this.closeAnimationTimer&&clearTimeout(this.closeAnimationTimer),this.closeAnimationTimer=setTimeout((()=>{this.isAnimatingOut=!1}),t.CLOSE_ANIMATION_DURATION))}handleTriggerClick=()=>{this.triggerRef&&(this.triggerWidth=this.triggerRef.offsetWidth+"px"),this.updateDropdownViewportConstraints(),this.isOpen?this.closeDropdown():(this.closeAnimationTimer&&clearTimeout(this.closeAnimationTimer),this.isAnimatingOut=!1,this.isOpen=!0)};emitUpdate(t){this.update.emit(t)}handleOptionSelect=t=>{const{option:e,leaves:s}=t;if(this.isMulti)this.handleMultiSelect(e,s);else{this.closeDropdown(),this.value=this.emitValue?e.value:e;const t=this.value;requestAnimationFrame((()=>{this.emitUpdate(t)}))}};handleMultiSelect(t,e){const s=this.getSelectedOptions();let i;if(t.children)if(e.every((t=>s.some((e=>e.value===t.value))))){const t=new Set(e.map((t=>t.value)));i=s.filter((e=>!t.has(e.value)))}else{const t=new Set(s.map((t=>t.value))),o=e.filter((e=>!t.has(e.value)));i=[...s,...o]}else i=s.some((e=>e.value===t.value))?s.filter((e=>e.value!==t.value)):[...s,t];this.value=this.toMultiValue(i),this.emitUpdate(this.value)}connectedCallback(){window.addEventListener("resize",this.handleViewportResize)}disconnectedCallback(){window.removeEventListener("resize",this.handleViewportResize),this.closeAnimationTimer&&clearTimeout(this.closeAnimationTimer)}render(){const e={open:this.isOpen,parentRef:this.triggerRef,viewportPadding:t.VIEWPORT_PADDING,onSdClose:()=>{this.closeDropdown()}};return i("sd-field",{key:"94a50bd86ecb1fdaab2e5edd816f123f985bb5e1",name:this.fieldName||this.internalName,label:this.label,addonLabel:this.addonLabel,hint:this.hint,errorMessage:this.errorMessage,width:this.width,rules:this.rules,error:this.error,disabled:this.disabled,focused:this.focused,hovered:this.hovered,icon:this.icon,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,onMouseEnter:()=>{this.hovered=!0},onMouseLeave:()=>{this.hovered=!1}},i("div",{key:"6986034ffd38602b111724ea998199d88bbed270",class:"sd-select-v2",ref:t=>{this.triggerRef=t}},i("sd-select-v2-trigger",{key:"3af08facaebc0ec5b99ced0bb93cf8daea3367cb",displayText:this.displayText,placeholder:this.placeholder,disabled:this.disabled,isOpen:this.isOpen,onSdTriggerClick:this.handleTriggerClick})),(this.isOpen||this.isAnimatingOut)&&i("sd-portal",{key:"6fa4284cdd6d69d02a93e2e18423a7029122e58f",...e},i("sd-select-v2-listbox",{key:"323f811ace6ee59c1d7b15ae7fa497a49b1d2f17",name:this.name,options:this.options,value:this.value,emitValue:this.emitValue,triggerWidth:this.triggerWidth,maxWidth:this.resolvedMaxDropdownWidth,maxHeight:this.resolvedDropdownHeight,onSdOptionSelect:t=>this.handleOptionSelect(t.detail)})))}static get watchers(){return{isOpen:[{watchIsOpen:0}]}}static get style(){return"sd-select-v2{display:inline-flex}sd-select-v2 sd-portal{display:none}sd-select-v2 .sd-select-v2{position:relative;width:100%;height:100%}"}},[512,"sd-select-v2",{name:[1],value:[1032],options:[16],placeholder:[1],maxDropdownWidth:[1,"max-dropdown-width"],dropdownHeight:[1,"dropdown-height"],disabled:[4],label:[1],addonLabel:[1,"addon-label"],error:[1028],hint:[1],errorMessage:[1,"error-message"],fieldName:[1,"field-name"],rules:[16],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],emitValue:[4,"emit-value"],width:[8],isOpen:[32],isAnimatingOut:[32],triggerWidth:[32],resolvedDropdownHeight:[32],resolvedMaxDropdownWidth:[32],focused:[32],hovered:[32]},void 0,{isOpen:[{watchIsOpen:0}]}]),w=g,v=function(){"undefined"!=typeof customElements&&["sd-select-v2","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-portal","sd-select-v2-list-item","sd-select-v2-list-item-search","sd-select-v2-listbox","sd-select-v2-trigger","sd-tooltip"].forEach((t=>{switch(t){case"sd-select-v2":customElements.get(o(t))||customElements.define(o(t),g);break;case"sd-button":customElements.get(o(t))||a();break;case"sd-checkbox":customElements.get(o(t))||l();break;case"sd-field":customElements.get(o(t))||h();break;case"sd-floating-portal":customElements.get(o(t))||d();break;case"sd-icon":customElements.get(o(t))||n();break;case"sd-portal":customElements.get(o(t))||c();break;case"sd-select-v2-list-item":customElements.get(o(t))||p();break;case"sd-select-v2-list-item-search":customElements.get(o(t))||m();break;case"sd-select-v2-listbox":customElements.get(o(t))||u();break;case"sd-select-v2-trigger":customElements.get(o(t))||f();break;case"sd-tooltip":customElements.get(o(t))||b()}}))};export{w as SdSelectV2,v as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-DE3qbfEZ.js";const p=o,r=s;export{p as SdSelect,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as e,c as s,d as i,h as a,F as l,t as d}from"./p-B1vJXa29.js";import{d as r}from"./p-Dn-uC69K.js";import{d as n}from"./p-Cnu8Ol-v.js";import{d as h}from"./p-CCACqlGH.js";import{d as o}from"./p-BYaBx4Ar.js";import{d as c}from"./p-BBYig1zV.js";import{d as b}from"./p-B0DS3FC2.js";import{d as _}from"./p-BeIOWDKk.js";import{d as p}from"./p-D9MEHQTt.js";import{d as u}from"./p-Chqlvi5E.js";import{d as g}from"./p-ek1GaThy.js";import{d as m}from"./p-B2GnuHlE.js";import{d as f}from"./p-DeFPfiJf.js";import{d as y}from"./p-BcZ3kfAq.js";import{d as w}from"./p-D1g7VL0r.js";const k=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.sdSelectChange=s(this,"sdSelectChange"),this.sdPageChange=s(this,"sdPageChange"),this.sdRowsPerPageChange=s(this,"sdRowsPerPageChange")}get el(){return this}columns;rows;selected=[];rowKey="id";selectable=!1;resizable=!1;width;height;stickyHeader=!1;stickyColumn={left:0,right:0};noDataLabel="데이터가 없습니다.";isLoading=!1;pagination;useInternalPagination=!1;useRowsPerPageSelect=!1;rowsPerPageOption=[{label:"10개씩 보기",value:10},{label:"25개씩 보기",value:25},{label:"50개씩 보기",value:50},{label:"100개씩 보기",value:100}];useVirtualScroll={};virtualRowHeight=44;virtualColumnWidth=120;virtualBufferSize={vertical:5,horizontal:5};sdSelectChange;sdPageChange;sdRowsPerPageChange;currentPage=this.pagination?.page||1;innerRows=[];innerSelected=new Set;columnWidths=[];scrolledLeft=!1;scrolledRight=!1;virtualStartIndex=0;virtualEndIndex=0;scrollTopPosition=0;virtualStartColIdx=0;virtualEndColIdx=0;scrollLeftPosition=0;scrollRequestAnimationFrame=null;scrollContainer=null;resizeObserver=null;rafScheduled=!1;pendingUpdates={vertical:!1,horizontal:!1};cachedVirtualRows=null;cachedVirtualIndexKey="";cachedColumnOrder=null;lastColumnOrderKey="";cachedContainerHeight=0;cachedContainerWidth=0;stickyStyleCache=new Map;cachedIsAllChecked;lastSelectionKey="";onScroll;handleColumnsChange(t){this.columnWidths=this.getColumnWidths(t),this.refreshColumnLayout()}handleUseVirtualScrollChange(){this.columnWidths=this.getColumnWidths(this.columns||[]),this.refreshColumnLayout(),this.useVirtualScroll.vertical&&this.scheduleUpdate("vertical")}handleVirtualColumnWidthChange(){this.useVirtualScroll.horizontal&&(this.columnWidths=this.getColumnWidths(this.columns||[]),this.refreshColumnLayout())}handleSelectableChange(){this.refreshColumnLayout()}handleStickyColumnChange(){this.refreshColumnLayout()}handleColumnWidthsChange(){this.stickyStyleCache.clear(),this.useVirtualScroll.horizontal&&this.scheduleUpdate("horizontal")}handleRowsChange(t){this.innerRows=[...t],this.clearRowDerivedCache(),this.useVirtualScroll.vertical&&this.scheduleUpdate("vertical")}handleSelectedChange(t){this.innerSelected=new Set(this.dedupeRowsByKey(t||[])),this.clearSelectionCache()}cleanUpVirtualCache(){this.cachedVirtualRows=null,this.cachedVirtualIndexKey="",this.cachedColumnOrder=null,this.lastColumnOrderKey=""}refreshColumnLayout(){this.cleanUpVirtualCache(),this.stickyStyleCache.clear(),this.useVirtualScroll.horizontal&&this.scheduleUpdate("horizontal")}clearSelectionCache(){this.cachedIsAllChecked=void 0,this.lastSelectionKey=""}clearRowDerivedCache(){this.cleanUpVirtualCache(),this.clearSelectionCache()}handlePaginationChange(t){this.clearRowDerivedCache(),t?.page&&t.page!==this.currentPage&&(this.currentPage=t.page,this.useVirtualScroll.vertical&&this.scrollContainer&&(this.scrollContainer.scrollTo({top:0,behavior:"instant"}),this.scrollTopPosition=0,this.calculateVisibleRange()))}componentWillLoad(){this.innerRows=[...this.rows||[]],this.innerSelected=new Set(this.dedupeRowsByKey(this.selected||[])),this.columnWidths=this.getColumnWidths(this.columns||[]),this.pagination?.page&&(this.currentPage=this.pagination.page)}componentDidLoad(){i((()=>{const t=this.el.querySelector(".sd-table__middle");t&&(this.onScroll=()=>{const e=t.scrollLeft,s=t.scrollTop,i=this.useVirtualScroll.vertical&&this.scrollTopPosition!==s,a=this.useVirtualScroll.horizontal&&this.scrollLeftPosition!==e,l=e>0,d=e+t.clientWidth<t.scrollWidth;this.scrolledLeft===l&&this.scrolledRight===d||(this.scrolledLeft=l,this.scrolledRight=d),(i||a)&&(null!==this.scrollRequestAnimationFrame&&cancelAnimationFrame(this.scrollRequestAnimationFrame),this.scrollRequestAnimationFrame=requestAnimationFrame((()=>{i&&(this.scrollTopPosition=s,this.calculateVisibleRange()),a&&(this.scrollLeftPosition=e,this.calculateVisibleColumnRange()),this.scrollRequestAnimationFrame=null})))},this.scrollContainer=t,requestAnimationFrame((()=>{this.scrollContainer&&this.onScroll&&(this.cachedContainerHeight=this.scrollContainer.clientHeight,this.cachedContainerWidth=this.scrollContainer.clientWidth,t.addEventListener("scroll",this.onScroll,{passive:!0}),this.startResizeObserver(),this.useVirtualScroll.vertical&&this.calculateVisibleRange(),this.useVirtualScroll.horizontal&&this.calculateVisibleColumnRange(),this.onScroll())})))}))}changePage(t){this.useInternalPagination?(this.currentPage=t,this.clearRowDerivedCache(),this.useVirtualScroll.vertical&&this.scrollContainer&&(this.scrollContainer.scrollTo({top:0,behavior:"instant"}),this.scrollTopPosition=0,this.calculateVisibleRange()),this.sdPageChange.emit(this.currentPage)):this.sdPageChange.emit(t)}changeRowsPerPage(t){const e=t?Number(t):0;if(!this.useInternalPagination)return void this.sdRowsPerPageChange.emit(e);const s=Number(t||0);let i=Math.max(1,Math.ceil(this.innerRows.length/s)),a=this.currentPage;a>i&&(a=i),this.pagination={page:a,rowsPerPage:s,lastPage:i},this.currentPage=a,this.clearRowDerivedCache(),this.useVirtualScroll.vertical&&this.scrollContainer&&(this.scrollContainer.scrollTo({top:0,behavior:"instant"}),this.scrollTopPosition=0,this.calculateVisibleRange()),this.sdRowsPerPageChange.emit(e)}disconnectedCallback(){this.scrollContainer&&this.onScroll&&this.scrollContainer.removeEventListener("scroll",this.onScroll),this.resizeObserver?.disconnect(),null!==this.scrollRequestAnimationFrame&&cancelAnimationFrame(this.scrollRequestAnimationFrame)}get tableColumns(){return this.columns||[]}get paginatedRows(){if(!this.pagination||!this.useInternalPagination)return this.innerRows;const{rowsPerPage:t=this.rows.length}=this.pagination||{};return this.innerRows.slice((this.currentPage-1)*t,this.currentPage*t)}get virtualRows(){const t=`${this.useInternalPagination?`${this.currentPage}-${this.pagination?.rowsPerPage??"all"}`:"all"}-${this.innerRows.length}-${this.virtualStartIndex}-${this.virtualEndIndex}`;return this.cachedVirtualRows&&this.cachedVirtualIndexKey===t||(this.cachedVirtualIndexKey=t,this.cachedVirtualRows=this.useVirtualScroll.vertical?this.paginatedRows.slice(this.virtualStartIndex,this.virtualEndIndex+1).map(((t,e)=>({row:t,actualIndex:this.virtualStartIndex+e}))):this.paginatedRows.map(((t,e)=>({row:t,actualIndex:e})))),this.cachedVirtualRows}get topSpacerHeight(){return this.useVirtualScroll.vertical&&0!==this.virtualStartIndex?this.virtualStartIndex*this.virtualRowHeight:0}get bottomSpacerHeight(){if(!this.useVirtualScroll.vertical)return 0;const t=this.paginatedRows.length-this.virtualEndIndex-1;return t>0?t*this.virtualRowHeight:0}getHorizontalSpacerWidth(t){const{stickyLeftCount:e,stickyRightCount:s}=this.getNormalizedStickyCounts(),i=this.columnWidths.slice(e,this.tableColumns.length-s);return"right"===t&&i.length-this.virtualEndColIdx-1<=0?0:i.slice(..."left"===t?[0,this.virtualStartColIdx]:[this.virtualEndColIdx+1]).reduce(((t,e)=>t+e),0)}get leftSpacerWidth(){return this.useVirtualScroll.horizontal&&0!==this.virtualStartColIdx?this.getHorizontalSpacerWidth("left"):0}get rightSpacerWidth(){return this.useVirtualScroll.horizontal?this.getHorizontalSpacerWidth("right"):0}get totalVirtualHeight(){return this.useVirtualScroll.vertical?this.paginatedRows.length*this.virtualRowHeight:0}get lastPageNumber(){const{lastPage:t,rowsPerPage:e=this.rows.length}=this.pagination||{};return t??Math.max(1,Math.ceil(this.rows.length/e))}get sdTableClasses(){return["sd-table",this.stickyHeader&&"sd-table--sticky-header",this.selectable&&"sd-table--selectable",this.resizable&&"sd-table--resizable",!this.innerRows.length&&"sd-table--no-data",this.hasStickyColumn&&"sd-table--sticky-column",this.scrolledLeft&&"sd-table--scrolled-left",this.scrolledRight&&"sd-table--scrolled-right"].filter(Boolean).join(" ")}get hasStickyColumn(){const{stickyLeftCount:t,stickyRightCount:e}=this.getNormalizedStickyCounts();return this.selectable||t>0||e>0}get hasStickyLeftDataColumn(){return this.getNormalizedStickyCounts().stickyLeftCount>0}isRowSelected(t){return Array.from(this.innerSelected).some((e=>this.getRowKeyValue(e)===this.getRowKeyValue(t)))}updateRowSelect(t){const e=Array.from(this.innerSelected),s=this.isRowSelected(t)?e.filter((e=>this.getRowKeyValue(e)!==this.getRowKeyValue(t))):[...e,t];s.length!==e.length&&(this.innerSelected=new Set(this.dedupeRowsByKey(s)),this.clearSelectionCache(),this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected)))}toggleSelectAll(t){const e=Array.from(this.innerSelected);if(t)this.innerSelected=new Set(this.dedupeRowsByKey([...e,...this.paginatedRows]));else{const t=new Set(this.paginatedRows.map((t=>this.getRowKeyValue(t))));this.innerSelected=new Set(e.filter((e=>!t.has(this.getRowKeyValue(e)))))}this.clearSelectionCache(),this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected))}get isAllChecked(){const t=`${this.paginatedRows.map((t=>this.getRowKeyValue(t)+"")).join("|")}::${Array.from(this.innerSelected).map((t=>this.getRowKeyValue(t)+"")).sort().join("|")}`;if(void 0!==this.cachedIsAllChecked&&this.lastSelectionKey===t)return this.cachedIsAllChecked;const e=this.paginatedRows.length,s=this.paginatedRows.filter((t=>Array.from(this.innerSelected).some((e=>this.getRowKeyValue(e)===this.getRowKeyValue(t))))).length;let i;return i=0!==s&&(s===e||null),this.cachedIsAllChecked=i,this.lastSelectionKey=t,i}scheduleUpdate(t){this.pendingUpdates[t]=!0,this.rafScheduled||(this.rafScheduled=!0,this.scrollRequestAnimationFrame=requestAnimationFrame((()=>{this.pendingUpdates.vertical&&this.calculateVisibleRange(),this.pendingUpdates.horizontal&&this.calculateVisibleColumnRange(),this.pendingUpdates={vertical:!1,horizontal:!1},this.rafScheduled=!1,this.scrollRequestAnimationFrame=null})))}calculateVisibleRange(){if(!this.useVirtualScroll.vertical)return this.virtualStartIndex=0,void(this.virtualEndIndex=this.paginatedRows.length-1);const t=this.scrollTopPosition;let e=this.cachedContainerHeight;0===e&&this.scrollContainer&&(e=this.scrollContainer.clientHeight,this.cachedContainerHeight=e);const s=this.virtualBufferSize.vertical||5,i=Math.floor(t/this.virtualRowHeight),a=i+Math.ceil(e/this.virtualRowHeight)-1,l=Math.max(0,i-s),d=Math.min(this.paginatedRows.length-1,a+s);this.virtualStartIndex===l&&this.virtualEndIndex===d||(this.virtualStartIndex=l,this.virtualEndIndex=d)}calculateVisibleColumnRange(){if(!this.useVirtualScroll.horizontal)return this.virtualStartColIdx=0,void(this.virtualEndColIdx=this.tableColumns.length-1);const t=this.scrollLeftPosition;let e=this.cachedContainerWidth;0===e&&this.scrollContainer&&(e=this.scrollContainer.clientWidth,this.cachedContainerWidth=e);const{stickyLeftCount:s,stickyRightCount:i}=this.getNormalizedStickyCounts(),a=this.tableColumns.slice(s,this.tableColumns.length-i);if(0===a.length)return this.virtualStartColIdx=0,void(this.virtualEndColIdx=0);const l=this.columnWidths.slice(0,s).reduce(((t,e)=>t+e),0)+(this.selectable?52:0),d=e-l-this.columnWidths.slice(this.tableColumns.length-i).reduce(((t,e)=>t+e),0),r=this.columnWidths.slice(s,this.tableColumns.length-i),n=Math.max(0,t-l),h=r.reduce(((t,e,s)=>(t.push((t[s-1]||0)+e),t)),[]);let o=0,c=a.length-1;for(let t=0;t<h.length;t++)if(h[t]>n){o=Math.max(0,t);break}const b=n+d;for(let t=o;t<h.length;t++)if(h[t]>=b){c=Math.min(a.length-1,t);break}const _=this.virtualBufferSize.horizontal||5,p=Math.max(0,o-_),u=Math.min(a.length-1,c+_);this.virtualStartColIdx===p&&this.virtualEndColIdx===u||(this.virtualStartColIdx=p,this.virtualEndColIdx=u)}getStickyStyle(t){if(this.stickyStyleCache.has(t))return this.stickyStyleCache.get(t);const e=this.columnWidths.slice(0,t).reduce(((t,e)=>t+e),0)+(this.selectable?52:0),{stickyRightCount:s}=this.getNormalizedStickyCounts(),i={"--sticky-left-offset":e+"px","--sticky-right-offset":this.columnWidths.filter(((e,i)=>i>=this.tableColumns.length-s&&i>t)).reduce(((t,e)=>t+e),0)+"px",width:this.columnWidths[t]+"px",minWidth:this.columnWidths[t]+"px",maxWidth:this.columnWidths[t]+"px"};return this.stickyStyleCache.set(t,i),i}startResizeObserver(){this.scrollContainer&&"undefined"!=typeof ResizeObserver&&(this.resizeObserver?.disconnect(),this.resizeObserver=new ResizeObserver((()=>{if(!this.scrollContainer)return;const t=this.scrollContainer.clientHeight,e=this.scrollContainer.clientWidth,s=this.cachedContainerHeight!==t,i=this.cachedContainerWidth!==e;(s||i)&&(this.cachedContainerHeight=t,this.cachedContainerWidth=e,s&&this.useVirtualScroll.vertical&&this.scheduleUpdate("vertical"),i&&this.useVirtualScroll.horizontal&&this.scheduleUpdate("horizontal"))})),this.resizeObserver.observe(this.scrollContainer))}parseColumnWidth(t,e){if("number"==typeof t)return Number.isFinite(t)?t:e;if("string"!=typeof t)return e;const s=t.trim();return s&&(/^\d+(\.\d+)?px$/.test(s)||/^\d+(\.\d+)?$/.test(s))?Number.parseFloat(s):e}getColumnWidths(t=[]){const e=this.useVirtualScroll.horizontal?this.virtualColumnWidth:120;return t.map((t=>this.parseColumnWidth(t.width,e)))}getNormalizedStickyCounts(){const t=this.tableColumns.length,e=Number(this.stickyColumn?.left??0)||0,s=Number(this.stickyColumn?.right??0)||0,i=Math.min(t,Math.max(0,e));return{stickyLeftCount:i,stickyRightCount:Math.min(Math.max(0,t-i),Math.max(0,s))}}getRowKeyValue(t){return t?.[this.rowKey]}dedupeRowsByKey(t){const e=new Map;return t.forEach((t=>{e.set(this.getRowKeyValue(t),t)})),Array.from(e.values())}handleResize(t,e){if("undefined"==typeof document)return;const s=e.clientX,i=this.columnWidths[t],a=e=>{if(!this.columnWidths[t])return;const a=this.tableColumns[t],l=a?.minWidth||50,d=a?.maxWidth||9999,r=Math.min(Math.max(i+e.clientX-s,l),d);this.columnWidths=this.columnWidths.map(((e,s)=>s===t?r:e))},l=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",l)}getCellValue(t,e){const{field:s,format:i,name:a}=t,l="function"==typeof s?s(e):s?e[s]:e[a];return i?i(l,e):l}getColumnRenderedInOrder(){const{stickyLeftCount:t,stickyRightCount:e}=this.getNormalizedStickyCounts(),s=`${this.tableColumns.map((t=>t.name)).join("|")}-${t}-${e}-${this.useVirtualScroll.horizontal?`${this.virtualStartColIdx}-${this.virtualEndColIdx}`:"all"}`;if(this.cachedColumnOrder&&this.lastColumnOrderKey===s)return this.cachedColumnOrder;const i=this.tableColumns.slice(0,t),a=this.tableColumns.slice(this.tableColumns.length-e),l=this.useVirtualScroll.horizontal?this.tableColumns.slice(t,this.tableColumns.length-e).slice(this.virtualStartColIdx,this.virtualEndColIdx+1):this.tableColumns.slice(t,this.tableColumns.length-e);return this.cachedColumnOrder={stickyLeftCount:t,stickyRightCount:e,stickyLeftCols:i,middleCols:l,stickyRightCols:a},this.lastColumnOrderKey=s,this.cachedColumnOrder}renderHead(){const{stickyLeftCount:t,stickyRightCount:e,stickyLeftCols:s,middleCols:i,stickyRightCols:l}=this.getColumnRenderedInOrder();return a("thead",null,a("tr",null,this.selectable&&a("th",{class:{"sd-th":!0,"sd-th--selected":!0,"sticky-left":!0,"sticky-left-edge":!this.hasStickyLeftDataColumn},style:{"--sticky-left-offset":"0px"}},a("sd-checkbox",{value:this.isAllChecked,disabled:!this.paginatedRows.length,onSdUpdate:t=>this.toggleSelectAll(t.detail)})),s.map(((e,s)=>a("th",{key:e.name,class:{"sd-th":!0,[""+e.thClass]:!!e.thClass,"sticky-left":!0,"sticky-left-edge":s===t-1},style:{...e.thStyle,...this.getStickyStyle(s)}},a("div",{class:"sd-th__content sd-th__content--"+(e.align||"left")},a("slot",{name:"header-cell-"+e.name},a("div",{class:"sd-th__content--label"},e.label)),e.usePageMoveIcon&&a("sd-icon",{name:"pageMove",size:"12",color:"#006AC1"}),e.tooltip&&a("sd-tooltip",{...e.tooltipOptions},a("div",{slot:"content"},e.tooltip.map((t=>a("p",null,t)))))),this.resizable&&"undefined"!=typeof window&&a("div",{class:"sd-th__resizer",onMouseDown:t=>this.handleResize(s,t)})))),this.renderSpacerTh("left"),i.map(((e,s)=>{const i=t+this.virtualStartColIdx+s;return a("th",{key:e.name,class:{"sd-th":!0,[""+e.thClass]:!!e.thClass},style:{...e.thStyle,...this.getStickyStyle(i)}},a("div",{class:"sd-th__content sd-th__content--"+(e.align||"left")},a("slot",{name:"header-cell-"+e.name},a("div",{class:"sd-th__content--label"},e.label)),e.usePageMoveIcon&&a("sd-icon",{name:"pageMove",size:"12",color:"#006AC1"}),e.tooltip&&a("sd-tooltip",{...e.tooltipOptions},a("div",{slot:"content"},e.tooltip.map((t=>a("p",null,t)))))),this.resizable&&"undefined"!=typeof window&&a("div",{class:"sd-th__resizer",onMouseDown:t=>this.handleResize(i,t)}))})),this.renderSpacerTh("right"),l.map(((t,s)=>{const i=this.tableColumns.length-e+s;return a("th",{key:t.name,class:{"sd-th":!0,[""+t.thClass]:!!t.thClass,"sticky-right":!0,"sticky-right-edge":0===s},style:{...t.thStyle,...this.getStickyStyle(i)}},a("div",{class:"sd-th__content sd-th__content--"+(t.align||"left")},a("slot",{name:"header-cell-"+t.name},a("div",{class:"sd-th__content--label"},t.label)),t.usePageMoveIcon&&a("sd-icon",{name:"pageMove",size:"12",color:"#006AC1"}),t.tooltip&&a("sd-tooltip",{...t.tooltipOptions},a("div",{slot:"content"},t.tooltip.map((t=>a("p",null,t)))))),this.resizable&&"undefined"!=typeof window&&a("div",{class:"sd-th__resizer",onMouseDown:t=>this.handleResize(i,t)}))}))))}renderBody(){return a("tbody",{...!this.paginatedRows.length&&{part:"tbody-empty"},class:"sd-table-tbody "+(this.useVirtualScroll.vertical?"sd-table-tbody--virtual-scroll":""),style:{"--total-virtual-height":this.totalVirtualHeight+"px"}},this.useVirtualScroll.vertical&&this.topSpacerHeight>0&&this.renderSpacerRow("top"),this.paginatedRows.length>0&&this.virtualRows.map((({row:t,actualIndex:e})=>this.renderRow(t,e))),this.useVirtualScroll.vertical&&this.bottomSpacerHeight>0&&this.renderSpacerRow("bottom"))}renderRow(t,e){const{stickyLeftCount:s,stickyRightCount:i,stickyLeftCols:l,middleCols:d,stickyRightCols:r}=this.getColumnRenderedInOrder();return a("tr",{key:t[this.rowKey],class:"hover:bg-Grey_Lighten-6",style:this.useVirtualScroll.vertical?{height:this.virtualRowHeight+"px"}:{}},this.selectable&&a("td",{class:{"sd-td":!0,"sd-td--selected":!0,"sticky-left":!0,"sticky-left-edge":!this.hasStickyLeftDataColumn},style:{"--sticky-left-offset":"0px"}},a("sd-checkbox",{value:this.isRowSelected(t),disabled:!this.paginatedRows.length,onSdUpdate:()=>this.updateRowSelect(t)})),l.map(((i,l)=>a("td",{key:i.name,part:"td-"+i.name,class:{"sd-td":!0,["sd-td--"+(i.align||"left")]:!0,"sticky-left":!0,"sticky-left-edge":l===s-1,[""+i.tdClass]:!!i.tdClass},style:this.getStickyStyle(l)},a("slot",{name:`body-cell-${i.name}-${e}`},this.getCellValue(i,t))))),this.renderSpacerTd("left",e),d.map(((i,l)=>{const d=s+this.virtualStartColIdx+l;return a("td",{key:i.name,part:"td-"+i.name,class:{"sd-td":!0,["sd-td--"+(i.align||"left")]:!0,[""+i.tdClass]:!!i.tdClass},style:this.getStickyStyle(d)},a("slot",{name:`body-cell-${i.name}-${e}`},this.getCellValue(i,t)))})),this.renderSpacerTd("right",e),r.map(((s,l)=>{const d=this.tableColumns.length-i+l;return a("td",{key:s.name,part:"td-"+s.name,class:{"sd-td":!0,["sd-td--"+(s.align||"left")]:!0,"sticky-right":!0,"sticky-right-edge":0===l,[""+s.tdClass]:!!s.tdClass},style:this.getStickyStyle(d)},a("slot",{name:`body-cell-${s.name}-${e}`},this.getCellValue(s,t)))})))}renderSpacerRow(t){return a("tr",{key:`virtual-${t}-spacer`,class:"sd-table__virtual-row-spacer",style:{height:("top"===t?this.topSpacerHeight:this.bottomSpacerHeight)+"px"},"aria-hidden":"true"},a("td",{colSpan:this.tableColumns.length+(this.selectable?1:0)},a("div",{class:"sd-table__skeleton",style:{"--row-height":this.virtualRowHeight+"px"}})))}getSpacerCellStyle(t){return{width:t+"px",minWidth:t+"px",maxWidth:t+"px",padding:"0",border:"none"}}renderSpacerTh(t){return("left"===t?this.useVirtualScroll.horizontal&&this.leftSpacerWidth>0:this.useVirtualScroll.horizontal&&this.rightSpacerWidth>0)?a("th",{key:`virtual-${t}-spacer-header`,class:"sd-table__virtual-spacer",style:this.getSpacerCellStyle("left"===t?this.leftSpacerWidth:this.rightSpacerWidth),"aria-hidden":"true"},a("div",{class:"sd-table__skeleton-cell"})):null}renderSpacerTd(t,e){return("left"===t?this.useVirtualScroll.horizontal&&this.leftSpacerWidth>0:this.useVirtualScroll.horizontal&&this.rightSpacerWidth>0)?a("td",{key:`virtual-${t}-spacer-${e}`,class:"sd-table__virtual-spacer",style:this.getSpacerCellStyle("left"===t?this.leftSpacerWidth:this.rightSpacerWidth),"aria-hidden":"true"},a("div",{class:"sd-table__skeleton-cell"})):null}render(){return a(l,{key:"f3e4930d36d080fd546dddc1e80190b831e93012"},a("div",{key:"ad2f798951631319190d93f83e25b87f871e58de",class:"sd-table__wrapper",style:{"--table-width":this.width,"--table-height":this.height}},a("div",{key:"c4b6d4080f1416d1c88ab1413c66848bdafe9019",class:"sd-table__container",style:{"--table-container-height":`calc(${this.height} - ${this.pagination&&this.innerRows.length>0?48:0}px)`}},a("div",{key:"3aacc27970b0c6d8b700063c0af7c57175e2cb22",class:{"sd-table__middle":!0,"sd-table__middle--scrollable":this.paginatedRows.length>0,"sd-table__middle--loading":this.isLoading}},this.isLoading&&a("div",{key:"25fca304a4e8ebf43aeeff20de3e3446d25e1ffb",class:"sd-table__middle--loading__spinner"},a("sd-loading-spinner",{key:"48b0adad60cf422b884557b53097c28a4f0b8879"})),a("table",{key:"ec4328a1f43c865de642cc5814fbdef6a374b7e3",part:"table",class:this.sdTableClasses},this.renderHead(),this.renderBody())),!this.paginatedRows.length&&a("div",{key:"ba362ecb9fb8134a15ff3d0a3b8e6a523e94166a",class:"sd-table__bottom"},a("div",{key:"ca5c2e0b19a1e301ac159588436ef24eecfb6365",class:"sd-table__no-data"},a("slot",{key:"68564a60a05833ba87743212d7189eef6e179fb4",name:"no-data"},this.noDataLabel)))),this.pagination&&this.innerRows.length>0&&a("div",{key:"88c3c7362234c20a60f6437ecd79d4c75b2caa6e",class:"sd-table__pagination"},a("sd-pagination",{key:"c3c8c435fcb752f2b1139981bb764cf4dfb153ab",currentPage:this.useInternalPagination?this.currentPage:this.pagination.page,lastPage:this.useInternalPagination?this.lastPageNumber:this.pagination.lastPage,onSdPageChange:t=>this.changePage(t.detail)}),this.useRowsPerPageSelect&&a("sd-select",{key:"03801039397a31321e5af96c2bd2d2900151240e",value:this.pagination.rowsPerPage,options:this.rowsPerPageOption,width:"128px",onSdUpdate:t=>this.changeRowsPerPage(t.detail.value)}))))}static get watchers(){return{columns:[{handleColumnsChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],virtualColumnWidth:[{handleVirtualColumnWidthChange:0}],selectable:[{handleSelectableChange:0}],stickyColumn:[{handleStickyColumnChange:0}],columnWidths:[{handleColumnWidthsChange:0}],rows:[{handleRowsChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}}static get style(){return'.sd-table__wrapper{height:var(--table-height, auto);width:var(--table-width, 100%);color:#222222}.sd-table__wrapper .sd-table__container{width:100%;height:var(--table-container-height, auto);display:flex;flex-direction:column;position:relative;border:1px solid #E1E1E1;border-radius:8px;font-size:12px;overflow:hidden;background:#FFFFFF}.sd-table__wrapper .sd-table__container .sd-table__middle{overflow:auto;will-change:scroll-position;min-height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--scrollable{height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle--loading__spinner{position:absolute;top:0;left:0;width:100%;height:var(--table-container-height, 100%);min-height:var(--table-container-height, 100%);background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll{position:relative;height:var(--total-virtual-height, --table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]){width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]{padding:0;border:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]:not(.sd-table__virtual-row-spacer) td{display:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected{position:relative;width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected sd-checkbox label,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected sd-checkbox label{position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected sd-checkbox label:before,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead{position:sticky;top:0;z-index:120}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-right{position:sticky;background-color:#F5FAFF;z-index:110 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-right{position:sticky;background-color:white;z-index:100 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-left{left:var(--sticky-left-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-right{right:var(--sticky-right-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-cell{position:sticky;z-index:102;background-color:#F5FAFF}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-cell{position:sticky;z-index:101;background-color:white}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead{opacity:0.4}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead tr th.sd-th{border-bottom:1px solid rgba(225, 225, 225, 0.4) !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-td,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-th,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table .sd-th__content--label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead{height:36px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr{width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th{background:#F5FAFF;height:36px;padding:0 16px;font-weight:500;vertical-align:middle;border-bottom:1px solid #E1E1E1;-webkit-user-select:none;user-select:none;position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:4px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left{justify-content:flex-start}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center{justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right{justify-content:flex-end}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:16px;cursor:col-resize;z-index:3;border-left:1px solid #CCCCCC;border-right:1px solid #CCCCCC}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td{height:44px;padding:0 16px;border-bottom:1px solid #E1E1E1;background:white;vertical-align:middle}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left{text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center{text-align:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right{text-align:right}.sd-table__wrapper .sd-table__container .sd-table__bottom{background:transparent;text-align:center;display:flex;align-items:center;justify-content:center;flex:1;min-height:240px;translate:0 -10%;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data{font-size:12px;color:#888888}.sd-table__wrapper .sd-table__pagination{position:relative;background:#F9F9F9;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #E1E1E1;border-top:none;border-radius:8px}.sd-table__wrapper .sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.sd-table__wrapper .sd-table__virtual-spacer,.sd-table__wrapper .sd-table__virtual-row-spacer{padding:0 !important}.sd-table__wrapper .sd-table__virtual-spacer td,.sd-table__wrapper .sd-table__virtual-row-spacer td{padding:0 !important;border:none}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton{width:100%;height:100%;background-image:repeating-linear-gradient(0deg, rgba(246, 246, 246, 0.3) 0px, rgba(225, 225, 225, 0.5) calc(var(--row-height, 44px) / 2), rgba(246, 246, 246, 0.3) var(--row-height, 44px));background-size:100% 200%;animation:skeleton-loading 1.5s ease-in-out infinite;position:relative}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--row-height, 44px) - 1px), #E1E1E1 calc(var(--row-height, 44px) - 1px), #E1E1E1 var(--row-height, 44px));pointer-events:none}.sd-table__wrapper .sd-table__skeleton-cell{width:100%;height:20px;background:linear-gradient(90deg, rgba(246, 246, 246, 0.3) 0%, rgba(225, 225, 225, 0.5) 50%, rgba(246, 246, 246, 0.3) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}'}},[772,"sd-table",{columns:[16],rows:[1040],selected:[1040],rowKey:[1,"row-key"],selectable:[4],resizable:[4],width:[1],height:[1],stickyHeader:[4,"sticky-header"],stickyColumn:[16],noDataLabel:[1,"no-data-label"],isLoading:[4,"is-loading"],pagination:[16],useInternalPagination:[4,"use-internal-pagination"],useRowsPerPageSelect:[4,"use-rows-per-page-select"],rowsPerPageOption:[16],useVirtualScroll:[16],virtualRowHeight:[2,"virtual-row-height"],virtualColumnWidth:[2,"virtual-column-width"],virtualBufferSize:[16],currentPage:[32],innerRows:[32],innerSelected:[32],columnWidths:[32],scrolledLeft:[32],scrolledRight:[32],virtualStartIndex:[32],virtualEndIndex:[32],scrollTopPosition:[32],virtualStartColIdx:[32],virtualEndColIdx:[32],scrollLeftPosition:[32]},void 0,{columns:[{handleColumnsChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],virtualColumnWidth:[{handleVirtualColumnWidthChange:0}],selectable:[{handleSelectableChange:0}],stickyColumn:[{handleStickyColumnChange:0}],columnWidths:[{handleColumnWidthsChange:0}],rows:[{handleRowsChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}]),v=k,C=function(){"undefined"!=typeof customElements&&["sd-table","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-input","sd-loading-spinner","sd-pagination","sd-portal","sd-select","sd-select-dropdown","sd-select-option","sd-select-search-input","sd-tooltip"].forEach((t=>{switch(t){case"sd-table":customElements.get(d(t))||customElements.define(d(t),k);break;case"sd-button":customElements.get(d(t))||r();break;case"sd-checkbox":customElements.get(d(t))||n();break;case"sd-field":customElements.get(d(t))||h();break;case"sd-floating-portal":customElements.get(d(t))||o();break;case"sd-icon":customElements.get(d(t))||c();break;case"sd-input":customElements.get(d(t))||b();break;case"sd-loading-spinner":customElements.get(d(t))||_();break;case"sd-pagination":customElements.get(d(t))||p();break;case"sd-portal":customElements.get(d(t))||u();break;case"sd-select":customElements.get(d(t))||g();break;case"sd-select-dropdown":customElements.get(d(t))||m();break;case"sd-select-option":customElements.get(d(t))||f();break;case"sd-select-search-input":customElements.get(d(t))||y();break;case"sd-tooltip":customElements.get(d(t))||w()}}))};export{v as SdTable,C as defineCustomElement}
|
|
1
|
+
import{p as t,H as e,c as s,d as i,h as a,F as l,t as d}from"./p-B1vJXa29.js";import{d as r}from"./p-DeTDTmN7.js";import{d as n}from"./p-Dl7yIIDW.js";import{d as h}from"./p-CdoxVzYC.js";import{d as o}from"./p-BYaBx4Ar.js";import{d as c}from"./p-BBYig1zV.js";import{d as b}from"./p-Du3VqeNP.js";import{d as _}from"./p-BeIOWDKk.js";import{d as p}from"./p-DAWMGK_A.js";import{d as u}from"./p-Chqlvi5E.js";import{d as g}from"./p-DE3qbfEZ.js";import{d as m}from"./p-C3XBhNH9.js";import{d as f}from"./p-BeZsmobQ.js";import{d as y}from"./p-B09D2cZD.js";import{d as w}from"./p-CUy8ulXZ.js";const k=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.sdSelectChange=s(this,"sdSelectChange"),this.sdPageChange=s(this,"sdPageChange"),this.sdRowsPerPageChange=s(this,"sdRowsPerPageChange")}get el(){return this}columns;rows;selected=[];rowKey="id";selectable=!1;resizable=!1;width;height;stickyHeader=!1;stickyColumn={left:0,right:0};noDataLabel="데이터가 없습니다.";isLoading=!1;pagination;useInternalPagination=!1;useRowsPerPageSelect=!1;rowsPerPageOption=[{label:"10개씩 보기",value:10},{label:"25개씩 보기",value:25},{label:"50개씩 보기",value:50},{label:"100개씩 보기",value:100}];useVirtualScroll={};virtualRowHeight=44;virtualColumnWidth=120;virtualBufferSize={vertical:5,horizontal:5};sdSelectChange;sdPageChange;sdRowsPerPageChange;currentPage=this.pagination?.page||1;innerRows=[];innerSelected=new Set;columnWidths=[];scrolledLeft=!1;scrolledRight=!1;virtualStartIndex=0;virtualEndIndex=0;scrollTopPosition=0;virtualStartColIdx=0;virtualEndColIdx=0;scrollLeftPosition=0;scrollRequestAnimationFrame=null;scrollContainer=null;resizeObserver=null;rafScheduled=!1;pendingUpdates={vertical:!1,horizontal:!1};cachedVirtualRows=null;cachedVirtualIndexKey="";cachedColumnOrder=null;lastColumnOrderKey="";cachedContainerHeight=0;cachedContainerWidth=0;stickyStyleCache=new Map;cachedIsAllChecked;lastSelectionKey="";onScroll;handleColumnsChange(t){this.columnWidths=this.getColumnWidths(t),this.refreshColumnLayout()}handleUseVirtualScrollChange(){this.columnWidths=this.getColumnWidths(this.columns||[]),this.refreshColumnLayout(),this.useVirtualScroll.vertical&&this.scheduleUpdate("vertical")}handleVirtualColumnWidthChange(){this.useVirtualScroll.horizontal&&(this.columnWidths=this.getColumnWidths(this.columns||[]),this.refreshColumnLayout())}handleSelectableChange(){this.refreshColumnLayout()}handleStickyColumnChange(){this.refreshColumnLayout()}handleColumnWidthsChange(){this.stickyStyleCache.clear(),this.useVirtualScroll.horizontal&&this.scheduleUpdate("horizontal")}handleRowsChange(t){this.innerRows=[...t],this.clearRowDerivedCache(),this.useVirtualScroll.vertical&&this.scheduleUpdate("vertical")}handleSelectedChange(t){this.innerSelected=new Set(this.dedupeRowsByKey(t||[])),this.clearSelectionCache()}cleanUpVirtualCache(){this.cachedVirtualRows=null,this.cachedVirtualIndexKey="",this.cachedColumnOrder=null,this.lastColumnOrderKey=""}refreshColumnLayout(){this.cleanUpVirtualCache(),this.stickyStyleCache.clear(),this.useVirtualScroll.horizontal&&this.scheduleUpdate("horizontal")}clearSelectionCache(){this.cachedIsAllChecked=void 0,this.lastSelectionKey=""}clearRowDerivedCache(){this.cleanUpVirtualCache(),this.clearSelectionCache()}handlePaginationChange(t){this.clearRowDerivedCache(),t?.page&&t.page!==this.currentPage&&(this.currentPage=t.page,this.useVirtualScroll.vertical&&this.scrollContainer&&(this.scrollContainer.scrollTo({top:0,behavior:"instant"}),this.scrollTopPosition=0,this.calculateVisibleRange()))}componentWillLoad(){this.innerRows=[...this.rows||[]],this.innerSelected=new Set(this.dedupeRowsByKey(this.selected||[])),this.columnWidths=this.getColumnWidths(this.columns||[]),this.pagination?.page&&(this.currentPage=this.pagination.page)}componentDidLoad(){i((()=>{const t=this.el.querySelector(".sd-table__middle");t&&(this.onScroll=()=>{const e=t.scrollLeft,s=t.scrollTop,i=this.useVirtualScroll.vertical&&this.scrollTopPosition!==s,a=this.useVirtualScroll.horizontal&&this.scrollLeftPosition!==e,l=e>0,d=e+t.clientWidth<t.scrollWidth;this.scrolledLeft===l&&this.scrolledRight===d||(this.scrolledLeft=l,this.scrolledRight=d),(i||a)&&(null!==this.scrollRequestAnimationFrame&&cancelAnimationFrame(this.scrollRequestAnimationFrame),this.scrollRequestAnimationFrame=requestAnimationFrame((()=>{i&&(this.scrollTopPosition=s,this.calculateVisibleRange()),a&&(this.scrollLeftPosition=e,this.calculateVisibleColumnRange()),this.scrollRequestAnimationFrame=null})))},this.scrollContainer=t,requestAnimationFrame((()=>{this.scrollContainer&&this.onScroll&&(this.cachedContainerHeight=this.scrollContainer.clientHeight,this.cachedContainerWidth=this.scrollContainer.clientWidth,t.addEventListener("scroll",this.onScroll,{passive:!0}),this.startResizeObserver(),this.useVirtualScroll.vertical&&this.calculateVisibleRange(),this.useVirtualScroll.horizontal&&this.calculateVisibleColumnRange(),this.onScroll())})))}))}changePage(t){this.useInternalPagination?(this.currentPage=t,this.clearRowDerivedCache(),this.useVirtualScroll.vertical&&this.scrollContainer&&(this.scrollContainer.scrollTo({top:0,behavior:"instant"}),this.scrollTopPosition=0,this.calculateVisibleRange()),this.sdPageChange.emit(this.currentPage)):this.sdPageChange.emit(t)}changeRowsPerPage(t){const e=t?Number(t):0;if(!this.useInternalPagination)return void this.sdRowsPerPageChange.emit(e);const s=Number(t||0);let i=Math.max(1,Math.ceil(this.innerRows.length/s)),a=this.currentPage;a>i&&(a=i),this.pagination={page:a,rowsPerPage:s,lastPage:i},this.currentPage=a,this.clearRowDerivedCache(),this.useVirtualScroll.vertical&&this.scrollContainer&&(this.scrollContainer.scrollTo({top:0,behavior:"instant"}),this.scrollTopPosition=0,this.calculateVisibleRange()),this.sdRowsPerPageChange.emit(e)}disconnectedCallback(){this.scrollContainer&&this.onScroll&&this.scrollContainer.removeEventListener("scroll",this.onScroll),this.resizeObserver?.disconnect(),null!==this.scrollRequestAnimationFrame&&cancelAnimationFrame(this.scrollRequestAnimationFrame)}get tableColumns(){return this.columns||[]}get paginatedRows(){if(!this.pagination||!this.useInternalPagination)return this.innerRows;const{rowsPerPage:t=this.rows.length}=this.pagination||{};return this.innerRows.slice((this.currentPage-1)*t,this.currentPage*t)}get virtualRows(){const t=`${this.useInternalPagination?`${this.currentPage}-${this.pagination?.rowsPerPage??"all"}`:"all"}-${this.innerRows.length}-${this.virtualStartIndex}-${this.virtualEndIndex}`;return this.cachedVirtualRows&&this.cachedVirtualIndexKey===t||(this.cachedVirtualIndexKey=t,this.cachedVirtualRows=this.useVirtualScroll.vertical?this.paginatedRows.slice(this.virtualStartIndex,this.virtualEndIndex+1).map(((t,e)=>({row:t,actualIndex:this.virtualStartIndex+e}))):this.paginatedRows.map(((t,e)=>({row:t,actualIndex:e})))),this.cachedVirtualRows}get topSpacerHeight(){return this.useVirtualScroll.vertical&&0!==this.virtualStartIndex?this.virtualStartIndex*this.virtualRowHeight:0}get bottomSpacerHeight(){if(!this.useVirtualScroll.vertical)return 0;const t=this.paginatedRows.length-this.virtualEndIndex-1;return t>0?t*this.virtualRowHeight:0}getHorizontalSpacerWidth(t){const{stickyLeftCount:e,stickyRightCount:s}=this.getNormalizedStickyCounts(),i=this.columnWidths.slice(e,this.tableColumns.length-s);return"right"===t&&i.length-this.virtualEndColIdx-1<=0?0:i.slice(..."left"===t?[0,this.virtualStartColIdx]:[this.virtualEndColIdx+1]).reduce(((t,e)=>t+e),0)}get leftSpacerWidth(){return this.useVirtualScroll.horizontal&&0!==this.virtualStartColIdx?this.getHorizontalSpacerWidth("left"):0}get rightSpacerWidth(){return this.useVirtualScroll.horizontal?this.getHorizontalSpacerWidth("right"):0}get totalVirtualHeight(){return this.useVirtualScroll.vertical?this.paginatedRows.length*this.virtualRowHeight:0}get lastPageNumber(){const{lastPage:t,rowsPerPage:e=this.rows.length}=this.pagination||{};return t??Math.max(1,Math.ceil(this.rows.length/e))}get sdTableClasses(){return["sd-table",this.stickyHeader&&"sd-table--sticky-header",this.selectable&&"sd-table--selectable",this.resizable&&"sd-table--resizable",!this.innerRows.length&&"sd-table--no-data",this.hasStickyColumn&&"sd-table--sticky-column",this.scrolledLeft&&"sd-table--scrolled-left",this.scrolledRight&&"sd-table--scrolled-right"].filter(Boolean).join(" ")}get hasStickyColumn(){const{stickyLeftCount:t,stickyRightCount:e}=this.getNormalizedStickyCounts();return this.selectable||t>0||e>0}get hasStickyLeftDataColumn(){return this.getNormalizedStickyCounts().stickyLeftCount>0}isRowSelected(t){return Array.from(this.innerSelected).some((e=>this.getRowKeyValue(e)===this.getRowKeyValue(t)))}updateRowSelect(t){const e=Array.from(this.innerSelected),s=this.isRowSelected(t)?e.filter((e=>this.getRowKeyValue(e)!==this.getRowKeyValue(t))):[...e,t];s.length!==e.length&&(this.innerSelected=new Set(this.dedupeRowsByKey(s)),this.clearSelectionCache(),this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected)))}toggleSelectAll(t){const e=Array.from(this.innerSelected);if(t)this.innerSelected=new Set(this.dedupeRowsByKey([...e,...this.paginatedRows]));else{const t=new Set(this.paginatedRows.map((t=>this.getRowKeyValue(t))));this.innerSelected=new Set(e.filter((e=>!t.has(this.getRowKeyValue(e)))))}this.clearSelectionCache(),this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected))}get isAllChecked(){const t=`${this.paginatedRows.map((t=>this.getRowKeyValue(t)+"")).join("|")}::${Array.from(this.innerSelected).map((t=>this.getRowKeyValue(t)+"")).sort().join("|")}`;if(void 0!==this.cachedIsAllChecked&&this.lastSelectionKey===t)return this.cachedIsAllChecked;const e=this.paginatedRows.length,s=this.paginatedRows.filter((t=>Array.from(this.innerSelected).some((e=>this.getRowKeyValue(e)===this.getRowKeyValue(t))))).length;let i;return i=0!==s&&(s===e||null),this.cachedIsAllChecked=i,this.lastSelectionKey=t,i}scheduleUpdate(t){this.pendingUpdates[t]=!0,this.rafScheduled||(this.rafScheduled=!0,this.scrollRequestAnimationFrame=requestAnimationFrame((()=>{this.pendingUpdates.vertical&&this.calculateVisibleRange(),this.pendingUpdates.horizontal&&this.calculateVisibleColumnRange(),this.pendingUpdates={vertical:!1,horizontal:!1},this.rafScheduled=!1,this.scrollRequestAnimationFrame=null})))}calculateVisibleRange(){if(!this.useVirtualScroll.vertical)return this.virtualStartIndex=0,void(this.virtualEndIndex=this.paginatedRows.length-1);const t=this.scrollTopPosition;let e=this.cachedContainerHeight;0===e&&this.scrollContainer&&(e=this.scrollContainer.clientHeight,this.cachedContainerHeight=e);const s=this.virtualBufferSize.vertical||5,i=Math.floor(t/this.virtualRowHeight),a=i+Math.ceil(e/this.virtualRowHeight)-1,l=Math.max(0,i-s),d=Math.min(this.paginatedRows.length-1,a+s);this.virtualStartIndex===l&&this.virtualEndIndex===d||(this.virtualStartIndex=l,this.virtualEndIndex=d)}calculateVisibleColumnRange(){if(!this.useVirtualScroll.horizontal)return this.virtualStartColIdx=0,void(this.virtualEndColIdx=this.tableColumns.length-1);const t=this.scrollLeftPosition;let e=this.cachedContainerWidth;0===e&&this.scrollContainer&&(e=this.scrollContainer.clientWidth,this.cachedContainerWidth=e);const{stickyLeftCount:s,stickyRightCount:i}=this.getNormalizedStickyCounts(),a=this.tableColumns.slice(s,this.tableColumns.length-i);if(0===a.length)return this.virtualStartColIdx=0,void(this.virtualEndColIdx=0);const l=this.columnWidths.slice(0,s).reduce(((t,e)=>t+e),0)+(this.selectable?52:0),d=e-l-this.columnWidths.slice(this.tableColumns.length-i).reduce(((t,e)=>t+e),0),r=this.columnWidths.slice(s,this.tableColumns.length-i),n=Math.max(0,t-l),h=r.reduce(((t,e,s)=>(t.push((t[s-1]||0)+e),t)),[]);let o=0,c=a.length-1;for(let t=0;t<h.length;t++)if(h[t]>n){o=Math.max(0,t);break}const b=n+d;for(let t=o;t<h.length;t++)if(h[t]>=b){c=Math.min(a.length-1,t);break}const _=this.virtualBufferSize.horizontal||5,p=Math.max(0,o-_),u=Math.min(a.length-1,c+_);this.virtualStartColIdx===p&&this.virtualEndColIdx===u||(this.virtualStartColIdx=p,this.virtualEndColIdx=u)}getStickyStyle(t){if(this.stickyStyleCache.has(t))return this.stickyStyleCache.get(t);const e=this.columnWidths.slice(0,t).reduce(((t,e)=>t+e),0)+(this.selectable?52:0),{stickyRightCount:s}=this.getNormalizedStickyCounts(),i={"--sticky-left-offset":e+"px","--sticky-right-offset":this.columnWidths.filter(((e,i)=>i>=this.tableColumns.length-s&&i>t)).reduce(((t,e)=>t+e),0)+"px",width:this.columnWidths[t]+"px",minWidth:this.columnWidths[t]+"px",maxWidth:this.columnWidths[t]+"px"};return this.stickyStyleCache.set(t,i),i}startResizeObserver(){this.scrollContainer&&"undefined"!=typeof ResizeObserver&&(this.resizeObserver?.disconnect(),this.resizeObserver=new ResizeObserver((()=>{if(!this.scrollContainer)return;const t=this.scrollContainer.clientHeight,e=this.scrollContainer.clientWidth,s=this.cachedContainerHeight!==t,i=this.cachedContainerWidth!==e;(s||i)&&(this.cachedContainerHeight=t,this.cachedContainerWidth=e,s&&this.useVirtualScroll.vertical&&this.scheduleUpdate("vertical"),i&&this.useVirtualScroll.horizontal&&this.scheduleUpdate("horizontal"))})),this.resizeObserver.observe(this.scrollContainer))}parseColumnWidth(t,e){if("number"==typeof t)return Number.isFinite(t)?t:e;if("string"!=typeof t)return e;const s=t.trim();return s&&(/^\d+(\.\d+)?px$/.test(s)||/^\d+(\.\d+)?$/.test(s))?Number.parseFloat(s):e}getColumnWidths(t=[]){const e=this.useVirtualScroll.horizontal?this.virtualColumnWidth:120;return t.map((t=>this.parseColumnWidth(t.width,e)))}getNormalizedStickyCounts(){const t=this.tableColumns.length,e=Number(this.stickyColumn?.left??0)||0,s=Number(this.stickyColumn?.right??0)||0,i=Math.min(t,Math.max(0,e));return{stickyLeftCount:i,stickyRightCount:Math.min(Math.max(0,t-i),Math.max(0,s))}}getRowKeyValue(t){return t?.[this.rowKey]}dedupeRowsByKey(t){const e=new Map;return t.forEach((t=>{e.set(this.getRowKeyValue(t),t)})),Array.from(e.values())}handleResize(t,e){if("undefined"==typeof document)return;const s=e.clientX,i=this.columnWidths[t],a=e=>{if(!this.columnWidths[t])return;const a=this.tableColumns[t],l=a?.minWidth||50,d=a?.maxWidth||9999,r=Math.min(Math.max(i+e.clientX-s,l),d);this.columnWidths=this.columnWidths.map(((e,s)=>s===t?r:e))},l=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",l)}getCellValue(t,e){const{field:s,format:i,name:a}=t,l="function"==typeof s?s(e):s?e[s]:e[a];return i?i(l,e):l}getColumnRenderedInOrder(){const{stickyLeftCount:t,stickyRightCount:e}=this.getNormalizedStickyCounts(),s=`${this.tableColumns.map((t=>t.name)).join("|")}-${t}-${e}-${this.useVirtualScroll.horizontal?`${this.virtualStartColIdx}-${this.virtualEndColIdx}`:"all"}`;if(this.cachedColumnOrder&&this.lastColumnOrderKey===s)return this.cachedColumnOrder;const i=this.tableColumns.slice(0,t),a=this.tableColumns.slice(this.tableColumns.length-e),l=this.useVirtualScroll.horizontal?this.tableColumns.slice(t,this.tableColumns.length-e).slice(this.virtualStartColIdx,this.virtualEndColIdx+1):this.tableColumns.slice(t,this.tableColumns.length-e);return this.cachedColumnOrder={stickyLeftCount:t,stickyRightCount:e,stickyLeftCols:i,middleCols:l,stickyRightCols:a},this.lastColumnOrderKey=s,this.cachedColumnOrder}renderHead(){const{stickyLeftCount:t,stickyRightCount:e,stickyLeftCols:s,middleCols:i,stickyRightCols:l}=this.getColumnRenderedInOrder();return a("thead",null,a("tr",null,this.selectable&&a("th",{class:{"sd-th":!0,"sd-th--selected":!0,"sticky-left":!0,"sticky-left-edge":!this.hasStickyLeftDataColumn},style:{"--sticky-left-offset":"0px"}},a("sd-checkbox",{value:this.isAllChecked,disabled:!this.paginatedRows.length,onSdUpdate:t=>this.toggleSelectAll(t.detail)})),s.map(((e,s)=>a("th",{key:e.name,class:{"sd-th":!0,[""+e.thClass]:!!e.thClass,"sticky-left":!0,"sticky-left-edge":s===t-1},style:{...e.thStyle,...this.getStickyStyle(s)}},a("div",{class:"sd-th__content sd-th__content--"+(e.align||"left")},a("slot",{name:"header-cell-"+e.name},a("div",{class:"sd-th__content--label"},e.label)),e.usePageMoveIcon&&a("sd-icon",{name:"pageMove",size:"12",color:"#006AC1"}),e.tooltip&&a("sd-tooltip",{...e.tooltipOptions},a("div",{slot:"content"},e.tooltip.map((t=>a("p",null,t)))))),this.resizable&&"undefined"!=typeof window&&a("div",{class:"sd-th__resizer",onMouseDown:t=>this.handleResize(s,t)})))),this.renderSpacerTh("left"),i.map(((e,s)=>{const i=t+this.virtualStartColIdx+s;return a("th",{key:e.name,class:{"sd-th":!0,[""+e.thClass]:!!e.thClass},style:{...e.thStyle,...this.getStickyStyle(i)}},a("div",{class:"sd-th__content sd-th__content--"+(e.align||"left")},a("slot",{name:"header-cell-"+e.name},a("div",{class:"sd-th__content--label"},e.label)),e.usePageMoveIcon&&a("sd-icon",{name:"pageMove",size:"12",color:"#006AC1"}),e.tooltip&&a("sd-tooltip",{...e.tooltipOptions},a("div",{slot:"content"},e.tooltip.map((t=>a("p",null,t)))))),this.resizable&&"undefined"!=typeof window&&a("div",{class:"sd-th__resizer",onMouseDown:t=>this.handleResize(i,t)}))})),this.renderSpacerTh("right"),l.map(((t,s)=>{const i=this.tableColumns.length-e+s;return a("th",{key:t.name,class:{"sd-th":!0,[""+t.thClass]:!!t.thClass,"sticky-right":!0,"sticky-right-edge":0===s},style:{...t.thStyle,...this.getStickyStyle(i)}},a("div",{class:"sd-th__content sd-th__content--"+(t.align||"left")},a("slot",{name:"header-cell-"+t.name},a("div",{class:"sd-th__content--label"},t.label)),t.usePageMoveIcon&&a("sd-icon",{name:"pageMove",size:"12",color:"#006AC1"}),t.tooltip&&a("sd-tooltip",{...t.tooltipOptions},a("div",{slot:"content"},t.tooltip.map((t=>a("p",null,t)))))),this.resizable&&"undefined"!=typeof window&&a("div",{class:"sd-th__resizer",onMouseDown:t=>this.handleResize(i,t)}))}))))}renderBody(){return a("tbody",{...!this.paginatedRows.length&&{part:"tbody-empty"},class:"sd-table-tbody "+(this.useVirtualScroll.vertical?"sd-table-tbody--virtual-scroll":""),style:{"--total-virtual-height":this.totalVirtualHeight+"px"}},this.useVirtualScroll.vertical&&this.topSpacerHeight>0&&this.renderSpacerRow("top"),this.paginatedRows.length>0&&this.virtualRows.map((({row:t,actualIndex:e})=>this.renderRow(t,e))),this.useVirtualScroll.vertical&&this.bottomSpacerHeight>0&&this.renderSpacerRow("bottom"))}renderRow(t,e){const{stickyLeftCount:s,stickyRightCount:i,stickyLeftCols:l,middleCols:d,stickyRightCols:r}=this.getColumnRenderedInOrder();return a("tr",{key:t[this.rowKey],class:"hover:bg-Grey_Lighten-6",style:this.useVirtualScroll.vertical?{height:this.virtualRowHeight+"px"}:{}},this.selectable&&a("td",{class:{"sd-td":!0,"sd-td--selected":!0,"sticky-left":!0,"sticky-left-edge":!this.hasStickyLeftDataColumn},style:{"--sticky-left-offset":"0px"}},a("sd-checkbox",{value:this.isRowSelected(t),disabled:!this.paginatedRows.length,onSdUpdate:()=>this.updateRowSelect(t)})),l.map(((i,l)=>a("td",{key:i.name,part:"td-"+i.name,class:{"sd-td":!0,["sd-td--"+(i.align||"left")]:!0,"sticky-left":!0,"sticky-left-edge":l===s-1,[""+i.tdClass]:!!i.tdClass},style:this.getStickyStyle(l)},a("slot",{name:`body-cell-${i.name}-${e}`},this.getCellValue(i,t))))),this.renderSpacerTd("left",e),d.map(((i,l)=>{const d=s+this.virtualStartColIdx+l;return a("td",{key:i.name,part:"td-"+i.name,class:{"sd-td":!0,["sd-td--"+(i.align||"left")]:!0,[""+i.tdClass]:!!i.tdClass},style:this.getStickyStyle(d)},a("slot",{name:`body-cell-${i.name}-${e}`},this.getCellValue(i,t)))})),this.renderSpacerTd("right",e),r.map(((s,l)=>{const d=this.tableColumns.length-i+l;return a("td",{key:s.name,part:"td-"+s.name,class:{"sd-td":!0,["sd-td--"+(s.align||"left")]:!0,"sticky-right":!0,"sticky-right-edge":0===l,[""+s.tdClass]:!!s.tdClass},style:this.getStickyStyle(d)},a("slot",{name:`body-cell-${s.name}-${e}`},this.getCellValue(s,t)))})))}renderSpacerRow(t){return a("tr",{key:`virtual-${t}-spacer`,class:"sd-table__virtual-row-spacer",style:{height:("top"===t?this.topSpacerHeight:this.bottomSpacerHeight)+"px"},"aria-hidden":"true"},a("td",{colSpan:this.tableColumns.length+(this.selectable?1:0)},a("div",{class:"sd-table__skeleton",style:{"--row-height":this.virtualRowHeight+"px"}})))}getSpacerCellStyle(t){return{width:t+"px",minWidth:t+"px",maxWidth:t+"px",padding:"0",border:"none"}}renderSpacerTh(t){return("left"===t?this.useVirtualScroll.horizontal&&this.leftSpacerWidth>0:this.useVirtualScroll.horizontal&&this.rightSpacerWidth>0)?a("th",{key:`virtual-${t}-spacer-header`,class:"sd-table__virtual-spacer",style:this.getSpacerCellStyle("left"===t?this.leftSpacerWidth:this.rightSpacerWidth),"aria-hidden":"true"},a("div",{class:"sd-table__skeleton-cell"})):null}renderSpacerTd(t,e){return("left"===t?this.useVirtualScroll.horizontal&&this.leftSpacerWidth>0:this.useVirtualScroll.horizontal&&this.rightSpacerWidth>0)?a("td",{key:`virtual-${t}-spacer-${e}`,class:"sd-table__virtual-spacer",style:this.getSpacerCellStyle("left"===t?this.leftSpacerWidth:this.rightSpacerWidth),"aria-hidden":"true"},a("div",{class:"sd-table__skeleton-cell"})):null}render(){return a(l,{key:"f3e4930d36d080fd546dddc1e80190b831e93012"},a("div",{key:"ad2f798951631319190d93f83e25b87f871e58de",class:"sd-table__wrapper",style:{"--table-width":this.width,"--table-height":this.height}},a("div",{key:"c4b6d4080f1416d1c88ab1413c66848bdafe9019",class:"sd-table__container",style:{"--table-container-height":`calc(${this.height} - ${this.pagination&&this.innerRows.length>0?48:0}px)`}},a("div",{key:"3aacc27970b0c6d8b700063c0af7c57175e2cb22",class:{"sd-table__middle":!0,"sd-table__middle--scrollable":this.paginatedRows.length>0,"sd-table__middle--loading":this.isLoading}},this.isLoading&&a("div",{key:"25fca304a4e8ebf43aeeff20de3e3446d25e1ffb",class:"sd-table__middle--loading__spinner"},a("sd-loading-spinner",{key:"48b0adad60cf422b884557b53097c28a4f0b8879"})),a("table",{key:"ec4328a1f43c865de642cc5814fbdef6a374b7e3",part:"table",class:this.sdTableClasses},this.renderHead(),this.renderBody())),!this.paginatedRows.length&&a("div",{key:"ba362ecb9fb8134a15ff3d0a3b8e6a523e94166a",class:"sd-table__bottom"},a("div",{key:"ca5c2e0b19a1e301ac159588436ef24eecfb6365",class:"sd-table__no-data"},a("slot",{key:"68564a60a05833ba87743212d7189eef6e179fb4",name:"no-data"},this.noDataLabel)))),this.pagination&&this.innerRows.length>0&&a("div",{key:"88c3c7362234c20a60f6437ecd79d4c75b2caa6e",class:"sd-table__pagination"},a("sd-pagination",{key:"c3c8c435fcb752f2b1139981bb764cf4dfb153ab",currentPage:this.useInternalPagination?this.currentPage:this.pagination.page,lastPage:this.useInternalPagination?this.lastPageNumber:this.pagination.lastPage,onSdPageChange:t=>this.changePage(t.detail)}),this.useRowsPerPageSelect&&a("sd-select",{key:"03801039397a31321e5af96c2bd2d2900151240e",value:this.pagination.rowsPerPage,options:this.rowsPerPageOption,width:"128px",onSdUpdate:t=>this.changeRowsPerPage(t.detail.value)}))))}static get watchers(){return{columns:[{handleColumnsChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],virtualColumnWidth:[{handleVirtualColumnWidthChange:0}],selectable:[{handleSelectableChange:0}],stickyColumn:[{handleStickyColumnChange:0}],columnWidths:[{handleColumnWidthsChange:0}],rows:[{handleRowsChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}}static get style(){return'.sd-table__wrapper{height:var(--table-height, auto);width:var(--table-width, 100%);color:#222222}.sd-table__wrapper .sd-table__container{width:100%;height:var(--table-container-height, auto);display:flex;flex-direction:column;position:relative;border:1px solid #E1E1E1;border-radius:8px;font-size:12px;overflow:hidden;background:#FFFFFF}.sd-table__wrapper .sd-table__container .sd-table__middle{overflow:auto;will-change:scroll-position;min-height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--scrollable{height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle--loading__spinner{position:absolute;top:0;left:0;width:100%;height:var(--table-container-height, 100%);min-height:var(--table-container-height, 100%);background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll{position:relative;height:var(--total-virtual-height, --table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]){width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]{padding:0;border:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]:not(.sd-table__virtual-row-spacer) td{display:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected{position:relative;width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected sd-checkbox label,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected sd-checkbox label{position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected sd-checkbox label:before,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead{position:sticky;top:0;z-index:120}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-right{position:sticky;background-color:#F5FAFF;z-index:110 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-right{position:sticky;background-color:white;z-index:100 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-left{left:var(--sticky-left-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-right{right:var(--sticky-right-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-cell{position:sticky;z-index:102;background-color:#F5FAFF}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-cell{position:sticky;z-index:101;background-color:white}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead{opacity:0.4}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead tr th.sd-th{border-bottom:1px solid rgba(225, 225, 225, 0.4) !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-td,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-th,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table .sd-th__content--label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead{height:36px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr{width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th{background:#F5FAFF;height:36px;padding:0 16px;font-weight:500;vertical-align:middle;border-bottom:1px solid #E1E1E1;-webkit-user-select:none;user-select:none;position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:4px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left{justify-content:flex-start}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center{justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right{justify-content:flex-end}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:16px;cursor:col-resize;z-index:3;border-left:1px solid #CCCCCC;border-right:1px solid #CCCCCC}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td{height:44px;padding:0 16px;border-bottom:1px solid #E1E1E1;background:white;vertical-align:middle}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left{text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center{text-align:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right{text-align:right}.sd-table__wrapper .sd-table__container .sd-table__bottom{background:transparent;text-align:center;display:flex;align-items:center;justify-content:center;flex:1;min-height:240px;translate:0 -10%;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data{font-size:12px;color:#888888}.sd-table__wrapper .sd-table__pagination{position:relative;background:#F9F9F9;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #E1E1E1;border-top:none;border-radius:8px}.sd-table__wrapper .sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.sd-table__wrapper .sd-table__virtual-spacer,.sd-table__wrapper .sd-table__virtual-row-spacer{padding:0 !important}.sd-table__wrapper .sd-table__virtual-spacer td,.sd-table__wrapper .sd-table__virtual-row-spacer td{padding:0 !important;border:none}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton{width:100%;height:100%;background-image:repeating-linear-gradient(0deg, rgba(246, 246, 246, 0.3) 0px, rgba(225, 225, 225, 0.5) calc(var(--row-height, 44px) / 2), rgba(246, 246, 246, 0.3) var(--row-height, 44px));background-size:100% 200%;animation:skeleton-loading 1.5s ease-in-out infinite;position:relative}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--row-height, 44px) - 1px), #E1E1E1 calc(var(--row-height, 44px) - 1px), #E1E1E1 var(--row-height, 44px));pointer-events:none}.sd-table__wrapper .sd-table__skeleton-cell{width:100%;height:20px;background:linear-gradient(90deg, rgba(246, 246, 246, 0.3) 0%, rgba(225, 225, 225, 0.5) 50%, rgba(246, 246, 246, 0.3) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}'}},[772,"sd-table",{columns:[16],rows:[1040],selected:[1040],rowKey:[1,"row-key"],selectable:[4],resizable:[4],width:[1],height:[1],stickyHeader:[4,"sticky-header"],stickyColumn:[16],noDataLabel:[1,"no-data-label"],isLoading:[4,"is-loading"],pagination:[16],useInternalPagination:[4,"use-internal-pagination"],useRowsPerPageSelect:[4,"use-rows-per-page-select"],rowsPerPageOption:[16],useVirtualScroll:[16],virtualRowHeight:[2,"virtual-row-height"],virtualColumnWidth:[2,"virtual-column-width"],virtualBufferSize:[16],currentPage:[32],innerRows:[32],innerSelected:[32],columnWidths:[32],scrolledLeft:[32],scrolledRight:[32],virtualStartIndex:[32],virtualEndIndex:[32],scrollTopPosition:[32],virtualStartColIdx:[32],virtualEndColIdx:[32],scrollLeftPosition:[32]},void 0,{columns:[{handleColumnsChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],virtualColumnWidth:[{handleVirtualColumnWidthChange:0}],selectable:[{handleSelectableChange:0}],stickyColumn:[{handleStickyColumnChange:0}],columnWidths:[{handleColumnWidthsChange:0}],rows:[{handleRowsChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}]),v=k,C=function(){"undefined"!=typeof customElements&&["sd-table","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-icon","sd-input","sd-loading-spinner","sd-pagination","sd-portal","sd-select","sd-select-dropdown","sd-select-option","sd-select-search-input","sd-tooltip"].forEach((t=>{switch(t){case"sd-table":customElements.get(d(t))||customElements.define(d(t),k);break;case"sd-button":customElements.get(d(t))||r();break;case"sd-checkbox":customElements.get(d(t))||n();break;case"sd-field":customElements.get(d(t))||h();break;case"sd-floating-portal":customElements.get(d(t))||o();break;case"sd-icon":customElements.get(d(t))||c();break;case"sd-input":customElements.get(d(t))||b();break;case"sd-loading-spinner":customElements.get(d(t))||_();break;case"sd-pagination":customElements.get(d(t))||p();break;case"sd-portal":customElements.get(d(t))||u();break;case"sd-select":customElements.get(d(t))||g();break;case"sd-select-dropdown":customElements.get(d(t))||m();break;case"sd-select-option":customElements.get(d(t))||f();break;case"sd-select-search-input":customElements.get(d(t))||y();break;case"sd-tooltip":customElements.get(d(t))||w()}}))};export{v as SdTable,C as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as s,H as t,c as e,h as a,t as b}from"./p-B1vJXa29.js";import{d as o}from"./p-BBYig1zV.js";import{d}from"./p-
|
|
1
|
+
import{p as s,H as t,c as e,h as a,t as b}from"./p-B1vJXa29.js";import{d as o}from"./p-BBYig1zV.js";import{d}from"./p-DdjivpAF.js";const i=s(class extends t{constructor(s){super(),!1!==s&&this.__registerHost(),this.update=e(this,"sdUpdate")}value;tabs=[];size="md";isSub=!1;update;componentWillLoad(){null!=this.value&&(this.value=this.value)}valueChanged(s){this.value=s}handleTabClick=s=>{this.value=s,this.value=s,this.update.emit(s)};isTabSelected(s){return this.value===s.value}getTabClasses(s){return["sd-tabs__tab",this.isTabSelected(s)?"sd-tabs__tab--selected":"sd-tabs__tab--unselected"].join(" ")}getContainerClasses(){const s=["sd-tabs","sd-tabs--"+this.size];return this.isSub&&s.push("sd-tabs--sub"),s.join(" ")}getBadgeName(s){const t=this.isTabSelected(s)?"blue":"grey";return`square_${this.size}_${t}`}render(){return a("div",{key:"c179db82ee130f4ccbdca7cb1af7b156ad174df8",class:this.getContainerClasses()},this.tabs.map(((s,t)=>{const e=this.getBadgeName(s);return a("div",{key:"tab-"+t,class:this.getTabClasses(s),"aria-label":s.label||"tab",onClick:()=>this.handleTabClick(s.value)},a("span",{"data-label":s.label,class:"sd-tabs__label"},s.label),s.badge&&a("sd-tag",{name:e,label:""+s.badge}))})))}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return'sd-tabs{display:inline-block;width:100%;border-bottom:1px solid #0075FF}sd-tabs .sd-tabs{display:flex;flex-direction:row;gap:4px}sd-tabs .sd-tabs__tab{display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:1px solid #CCCCCC;border-bottom:none;border-radius:4px 4px 0 0;background-color:#F6F6F6;color:#888888;font-weight:400;transition:all 0.2s ease;position:relative;user-select:none}sd-tabs .sd-tabs__tab::before{content:"";position:absolute;inset:0;opacity:0;transition:all 0.3s}sd-tabs .sd-tabs__tab--selected{border-color:#0075FF;color:#0075FF;background-color:white}sd-tabs .sd-tabs__tab--selected .sd-tabs__label::before{font-weight:700}sd-tabs .sd-tabs__tab--selected:hover::before{background-color:#0075FF;opacity:0.15}sd-tabs .sd-tabs__tab--unselected:hover::before{background-color:#888888;opacity:0.15}sd-tabs .sd-tabs__label{user-select:none;font-weight:700;visibility:hidden;position:relative}sd-tabs .sd-tabs__label::before{content:attr(data-label);visibility:visible;position:absolute;inset:0;font-weight:400;transition:font-weight 0.2s ease}sd-tabs .sd-tabs--md .sd-tabs__tab{padding:12px 32px;font-size:12px;line-height:20px}sd-tabs .sd-tabs--sm .sd-tabs__tab{padding:8px 20px;font-size:12px;line-height:16px}sd-tabs .sd-tabs--sub{gap:32px;border-bottom:none}sd-tabs .sd-tabs--sub .sd-tabs__tab{border:none;border-radius:0;background-color:transparent;color:#222222;font-weight:400;padding:0 0 2px 0;position:relative}sd-tabs .sd-tabs--sub .sd-tabs__tab::before{content:"";position:absolute;top:100%;left:0;right:0;height:1px;width:100%;background-color:#0075FF;opacity:0;transition:opacity 0.2s ease}sd-tabs .sd-tabs--sub .sd-tabs__tab::after{font-weight:400}sd-tabs .sd-tabs--sub .sd-tabs__tab--selected{color:#0075FF;background-color:transparent}sd-tabs .sd-tabs--sub .sd-tabs__tab--selected::before{opacity:1}sd-tabs .sd-tabs--sub .sd-tabs__tab--selected::after{font-weight:700}'}},[512,"sd-tabs",{value:[1537],tabs:[1040],size:[1],isSub:[4,"is-sub"]},void 0,{value:[{valueChanged:0}]}]),n=i,r=function(){"undefined"!=typeof customElements&&["sd-tabs","sd-icon","sd-tag"].forEach((s=>{switch(s){case"sd-tabs":customElements.get(b(s))||customElements.define(b(s),i);break;case"sd-icon":customElements.get(b(s))||o();break;case"sd-tag":customElements.get(b(s))||d()}}))};export{n as SdTabs,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as
|
|
1
|
+
import{S as o,d as p}from"./p-DdjivpAF.js";const s=o,r=p;export{s as SdTag,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as t,c as i,h as n,t as s}from"./p-B1vJXa29.js";import{d as l}from"./p-BBYig1zV.js";var o={textLink:{gap:"4",size:{icon:"16"},typography:{default:{fontSize:"12",fontWeight:"500",textDecoration:"none",lineHeight:"20"},underline:{fontSize:"12",fontWeight:"500",textDecoration:"underline",lineHeight:"22"}},content:{default:"#222222",disabled:"#888888"},icon:{default:"#006AC1",disabled:"#BBBBBB"}}};const d={gap:o.textLink.gap,iconSize:Number(o.textLink.size.icon),arrowFrame:16,arrowIconSize:12,arrowColor:"#888888"},a={default:o.textLink.typography.default,underline:o.textLink.typography.underline},
|
|
1
|
+
import{p as e,H as t,c as i,h as n,t as s}from"./p-B1vJXa29.js";import{d as l}from"./p-BBYig1zV.js";var o={textLink:{gap:"4",size:{icon:"16"},typography:{default:{fontSize:"12",fontWeight:"500",textDecoration:"none",lineHeight:"20"},underline:{fontSize:"12",fontWeight:"500",textDecoration:"underline",lineHeight:"22"}},content:{default:"#222222",disabled:"#888888"},icon:{default:"#006AC1",disabled:"#BBBBBB"}}};const d={gap:o.textLink.gap,iconSize:Number(o.textLink.size.icon),arrowFrame:16,arrowIconSize:12,arrowColor:"#888888"},a={default:o.textLink.typography.default,underline:o.textLink.typography.underline},c={content:o.textLink.content,icon:o.textLink.icon},r=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.click=i(this,"sdClick")}label="";icon="";iconColor="";useArrow=!1;underline=!1;disabled=!1;click;handleClick=()=>{this.disabled||this.click.emit()};render(){const e=this.underline?a.underline:a.default,t=this.disabled?c.icon.disabled:d.arrowColor;return n("span",{key:"e93a2744e49a267f4b775793e0e18f0c223a03dd",class:{"sd-text-link":!0,"sd-text-link--disabled":this.disabled},style:{"--sd-text-link-gap":d.gap+"px","--sd-text-link-font-size":e.fontSize+"px","--sd-text-link-font-weight":e.fontWeight,"--sd-text-link-line-height":e.lineHeight+"px","--sd-text-link-text-decoration":e.textDecoration,"--sd-text-link-color":this.disabled?c.content.disabled:c.content.default},onClick:this.handleClick},this.icon&&n("sd-icon",{key:"3f39510caef0cec81ba23340e25f920389886b69",name:this.icon,size:d.iconSize,color:this.disabled?c.icon.disabled:this.iconColor||c.icon.default,class:"sd-text-link__icon"}),n("span",{key:"ad0cac3fda5be82e5f0d2d9e7822b2bf82d2d4ee",class:"sd-text-link__label"},this.label),this.useArrow&&n("span",{key:"2ecdfdb83f62468ff36f6da1b96caf53b2302bbf",class:"sd-text-link__arrow",style:{width:d.arrowFrame+"px",height:d.arrowFrame+"px",display:"inline-flex",alignItems:"center",justifyContent:"center"}},n("sd-icon",{key:"92140c5c4fffc70af27894cd4f1a6bab80e6f64c",name:"chevronRight",size:d.arrowIconSize,color:t})))}static get style(){return"sd-text-link{display:inline-flex}sd-text-link .sd-text-link{display:inline-flex;align-items:center;gap:var(--sd-text-link-gap);cursor:pointer;user-select:none}sd-text-link .sd-text-link__label{font-size:var(--sd-text-link-font-size);font-weight:var(--sd-text-link-font-weight);line-height:var(--sd-text-link-line-height);text-decoration:var(--sd-text-link-text-decoration);color:var(--sd-text-link-color)}sd-text-link .sd-text-link:not(.sd-text-link--disabled):hover .sd-text-link__label{text-decoration:underline}sd-text-link .sd-text-link--disabled{cursor:not-allowed}"}},[512,"sd-text-link",{label:[1],icon:[1],iconColor:[1,"icon-color"],useArrow:[4,"use-arrow"],underline:[4],disabled:[4]}]),x=r,f=function(){"undefined"!=typeof customElements&&["sd-text-link","sd-icon"].forEach((e=>{switch(e){case"sd-text-link":customElements.get(s(e))||customElements.define(s(e),r);break;case"sd-icon":customElements.get(s(e))||l()}}))};export{x as SdTextLink,f as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as t,c as a,h as s,t as r}from"./p-B1vJXa29.js";const
|
|
1
|
+
import{p as e,H as t,c as a,h as s,t as r}from"./p-B1vJXa29.js";const d=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.input=a(this,"sdUpdate"),this.focus=a(this,"sdFocus"),this.blur=a(this,"sdBlur")}get host(){return this}value=null;name;disabled=!1;autoFocus=!1;textareaClass="";helpText;maxLength;placeholder="입력해 주세요.";internalValue=null;focused=!1;hovered=!1;nativeEl=void 0;input;focus;blur;valueChanged(e){this.internalValue=e}internalValueChanged(e){e!==this.value&&(this.value=e,this.input?.emit(this.value))}async sdFocus(){this.nativeEl?.focus()}async getNativeElement(){return this.nativeEl||null}componentWillLoad(){null!=this.value&&(this.internalValue=this.value)}componentDidLoad(){this.autoFocus&&this.nativeEl?.focus()}handleInput(e){this.internalValue=e.target.value}handleFocus(e,t){this.focused="focus"===e,"blur"===e?this.blur?.emit(t):this.focus?.emit(t)}getTextareaStatus(){return this.disabled?"sd-textarea--disabled":this.hovered?"sd-textarea--hovered":this.focused?"sd-textarea--focused":""}getMaxLengthCounter(){return void 0===this.maxLength?null:`${(this.internalValue||"").length}/${this.maxLength}`}hasFooter(){return void 0!==this.helpText||void 0!==this.maxLength}render(){const e=this.getMaxLengthCounter();return s("div",{key:"623b3d8085c36cc4ea9de4e5b7c775d1a83eb73c",class:{"sd-textarea":!0,[this.getTextareaStatus()]:!0},onMouseEnter:()=>this.hovered=!0,onMouseLeave:()=>this.hovered=!1},s("div",{key:"9947ecb8ddaede40977ab421603ac987853617f6",class:"sd-textarea__content"},s("textarea",{key:"8373ccc78b85abf84b09af3953b15a145bf5e747",name:this.name,ref:e=>this.nativeEl=e,class:"sd-textarea__native "+this.textareaClass,value:this.internalValue||"",placeholder:this.placeholder,disabled:this.disabled,autofocus:this.autoFocus,maxLength:this.maxLength,onInput:this.handleInput.bind(this),onFocus:e=>this.handleFocus("focus",e),onBlur:e=>this.handleFocus("blur",e)})),this.hasFooter()&&s("div",{key:"7392aabb95444be4f95605c6d342dcf68c2b09e2",class:"sd-textarea__footer"},void 0!==this.helpText&&s("span",{key:"0ace2ab4995f183184d6f1ed9f4c2ee77f30614c",class:"sd-textarea__help-text"},this.helpText),null!==e&&s("span",{key:"6b029c0b183d80ad3c838ef666ce2461679b3ce2",class:"sd-textarea__counter"},e)))}static get watchers(){return{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}}static get style(){return"sd-textarea{display:block}sd-textarea .sd-textarea{display:flex;flex-direction:column;color:#333333;font-size:12px;line-height:20px}sd-textarea .sd-textarea .sd-textarea__content{width:100%;display:flex;border:1px solid #AAAAAA;border-radius:4px;background:white}sd-textarea .sd-textarea .sd-textarea__content .sd-textarea__native{width:100%;min-height:100px;border:none;outline:none;background:transparent;padding:4px 8px;font-family:inherit;font-size:12px;line-height:20px;color:#333333;resize:vertical}sd-textarea .sd-textarea .sd-textarea__content .sd-textarea__native::placeholder{color:#AAAAAA}sd-textarea .sd-textarea--hovered .sd-textarea__content,sd-textarea .sd-textarea--focused .sd-textarea__content{border-color:#0075FF;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}sd-textarea .sd-textarea--disabled{cursor:not-allowed !important;box-shadow:none !important}sd-textarea .sd-textarea--disabled .sd-textarea__content{background:#EEEEEE !important;border:1px solid #CCCCCC !important;color:#888888 !important}sd-textarea .sd-textarea--disabled .sd-textarea__content .sd-textarea__native{cursor:not-allowed !important;color:#888888 !important}sd-textarea .sd-textarea .sd-textarea__footer{display:flex;justify-content:space-between;align-items:center;margin-top:4px;font-size:12px;line-height:20px}sd-textarea .sd-textarea .sd-textarea__help-text{font-size:12px;line-height:20px;font-weight:400;color:#222222}sd-textarea .sd-textarea .sd-textarea__counter{color:#CCCCCC;margin-left:auto}"}},[512,"sd-textarea",{value:[1025],name:[1],disabled:[4],autoFocus:[4,"auto-focus"],textareaClass:[1,"textarea-class"],helpText:[1,"help-text"],maxLength:[2,"max-length"],placeholder:[1],internalValue:[32],focused:[32],hovered:[32],sdFocus:[64],getNativeElement:[64]},void 0,{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}]),n=d,o=function(){"undefined"!=typeof customElements&&["sd-textarea"].forEach((e=>{"sd-textarea"===e&&(customElements.get(r(e))||customElements.define(r(e),d))}))};export{n as SdTextarea,o as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as
|
|
1
|
+
import{p as t,H as e,c as s,h as i,t as n}from"./p-B1vJXa29.js";import{d as o}from"./p-BBYig1zV.js";import{d as a}from"./p-7tPcjtqM.js";const r=4e3;let c=0;const m=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.toastShow=s(this,"sdToastShow"),this.toastDismiss=s(this,"sdToastDismiss")}get el(){return this}position="bottom-center";maxVisible=3;defaultDuration=r;zIndex=1e4;toasts=[];expanded=!1;toastRefs=new Map;toastShow;toastDismiss;async create(t){const e="toast-"+ ++c,s={id:e,options:t,state:"entering"},i=t.duration??this.defaultDuration??r;i>0&&(s.timerId=setTimeout((()=>this.startDismiss(e)),i));let n=[...this.toasts||[],s];const o=n.filter((t=>"exiting"!==t.state));if(o.length>(this.maxVisible??3)){const t=new Set(o.slice(0,o.length-(this.maxVisible??3)).map((t=>t.id)));n=n.map((e=>t.has(e.id)&&"exiting"!==e.state?(e.timerId&&clearTimeout(e.timerId),this.scheduleRemoval(e.id),{...e,state:"exiting",timerId:void 0}):e))}return this.toasts=n,this.toastShow.emit({id:e}),e}async dismiss(t){this.startDismiss(t)}async dismissAll(){(this.toasts||[]).forEach((t=>this.startDismiss(t.id)))}startDismiss(t){const e=(this.toasts||[]).find((e=>e.id===t));e&&"exiting"!==e.state&&(e.timerId&&clearTimeout(e.timerId),this.toasts=(this.toasts||[]).map((e=>e.id===t?{...e,state:"exiting",timerId:void 0}:e)),this.scheduleRemoval(t))}scheduleRemoval(t){setTimeout((()=>this.removeToast(t)),500)}removeToast(t){(this.toasts||[]).find((e=>e.id===t))&&(this.toasts=(this.toasts||[]).filter((e=>e.id!==t)),this.toastRefs.delete(t),this.toastDismiss.emit({id:t}))}handleTransitionEnd(t){const e=(this.toasts||[]).find((e=>e.id===t));"exiting"===e?.state&&this.removeToast(t)}measureHeights(){let t=!1;const e=(this.toasts||[]).map((e=>{const s=this.toastRefs.get(e.id);if(s){const i=s.offsetHeight;if(i>0&&i!==e.height)return t=!0,{...e,height:i}}return e}));t&&(this.toasts=e)}componentDidRender(){this.toasts?.length&&(this.toasts.some((t=>"entering"===t.state))&&requestAnimationFrame((()=>{this.toasts=(this.toasts||[]).map((t=>"entering"===t.state?{...t,state:"visible"}:t))})),this.measureHeights())}disconnectedCallback(){this.toasts?.forEach((t=>{t.timerId&&clearTimeout(t.timerId)})),this.toastRefs.clear()}pauseTimers(){this.toasts=(this.toasts||[]).map((t=>t.timerId?(clearTimeout(t.timerId),{...t,timerId:void 0}):t))}resumeTimers(){const t=this.defaultDuration??r;t<=0||(this.toasts=(this.toasts||[]).map((e=>{if("visible"===e.state&&!e.timerId&&(e.options.duration??t)>0){const s=setTimeout((()=>this.startDismiss(e.id)),e.options.duration??t);return{...e,timerId:s}}return e})))}getContainerStyles(){return{position:"fixed",zIndex:""+(this.zIndex??1e4),pointerEvents:"none",...{"top-left":{top:"20px",left:"20px"},"top-center":{top:"20px",left:"50%",transform:"translateX(-50%)"},"top-right":{top:"20px",right:"20px"},"bottom-left":{bottom:"20px",left:"20px"},"bottom-center":{bottom:"20px",left:"50%",transform:"translateX(-50%)"},"bottom-right":{bottom:"20px",right:"20px"}}[this.position||"bottom-center"]}}getToastItemStyle(t,e,s){const i=this.position||"bottom-center",n=i.startsWith("bottom"),o=i.split("-")[1],a=n?"bottom":"top",r=[];"center"===o&&r.push("translateX(-50%)");const c={position:"absolute",[a]:"0",..."center"===o?{left:"50%"}:"right"===o?{right:"0"}:{left:"0"}};if("entering"===t.state)return r.push(`translateY(${n?20:-20}px)`),{...c,opacity:"0",transform:r.join(" "),transition:"none"};if("exiting"===t.state)return r.push(`translateY(${n?20:-20}px)`),{...c,opacity:"0",transform:r.join(" "),pointerEvents:"none"};if(this.expanded){let t=0;for(let i=0;i<e;i++)t+=(s[i].height||0)+8;return r.push("translateY(0) scale(1)"),{...c,[a]:t+"px",opacity:"1",transform:r.join(" "),zIndex:""+(s.length-e)}}const m=8*e,d=[1,.8,.6],h=e<d.length?d[e]:0;return r.push(`translateY(${n?-m:m}px) scale(${1-.05*e})`),{...c,opacity:""+h,transform:r.join(" "),transformOrigin:n?"bottom center":"top center",zIndex:""+(s.length-e)}}render(){const t=this.toasts||[],e=t.filter((t=>"exiting"!==t.state)).reverse(),s=new Map;return e.forEach(((t,e)=>s.set(t.id,e))),i("div",{key:"5de5a655a8077dea7b691eaafb47a2fd9ebad6f0",class:"sd-toast-container",style:this.getContainerStyles(),onMouseEnter:()=>{this.expanded=!0,this.pauseTimers()},onMouseLeave:()=>{this.expanded=!1,this.resumeTimers()}},t.map((t=>{const n=s.get(t.id)??0;return i("div",{key:t.id,class:{"sd-toast-container__item":!0,"sd-toast-container__item--entering":"entering"===t.state,"sd-toast-container__item--visible":"visible"===t.state,"sd-toast-container__item--exiting":"exiting"===t.state},style:this.getToastItemStyle(t,n,e),ref:e=>{e&&this.toastRefs.set(t.id,e)},onTransitionEnd:()=>this.handleTransitionEnd(t.id)},i("sd-toast",{message:t.options.message,type:t.options.type||"default",icon:t.options.icon,link:t.options.link,linkLabel:t.options.linkLabel,useClose:t.options.useClose,onSdClose:()=>this.startDismiss(t.id)}))})))}static get style(){return'sd-toast-container{display:block}sd-toast-container .sd-toast-container__item{pointer-events:auto;transition:transform 0.4s ease, opacity 0.4s ease, bottom 0.4s ease, top 0.4s ease}sd-toast-container .sd-toast-container__item::before{content:"";position:absolute;left:0;right:0;top:-8px;bottom:-8px}sd-toast-container .sd-toast-container__item--entering{transition:none}sd-toast-container .sd-toast-container__item--exiting{pointer-events:none}'}},[512,"sd-toast-container",{position:[1],maxVisible:[2,"max-visible"],defaultDuration:[2,"default-duration"],zIndex:[2,"z-index"],toasts:[32],expanded:[32],create:[64],dismiss:[64],dismissAll:[64]}]),d=m,h=function(){"undefined"!=typeof customElements&&["sd-toast-container","sd-icon","sd-toast"].forEach((t=>{switch(t){case"sd-toast-container":customElements.get(n(t))||customElements.define(n(t),m);break;case"sd-icon":customElements.get(n(t))||o();break;case"sd-toast":customElements.get(n(t))||a()}}))};export{d as SdToastContainer,h as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as
|
|
1
|
+
import{S as t,d as o}from"./p-7tPcjtqM.js";const s=t,p=o;export{s as SdToast,p as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as
|
|
1
|
+
import{p as t,H as o,c as e,h as s,t as l}from"./p-B1vJXa29.js";const n=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.change=e(this,"sdUpdate")}value=!1;label="";disabled=!1;isActive=!1;change;componentWillLoad(){this.updateActiveState(this.value)}componentWillRender(){this.updateActiveState(this.value)}updateActiveState(t){this.isActive=t}get buttonClasses(){const t=["sd-toggle-button"];return this.isActive&&t.push("sd-toggle-button--active"),this.disabled&&t.push("sd-toggle-button--disabled"),t.join(" ")}handleChange=()=>{if(this.disabled)return;const t=!this.value;this.value=t,this.change.emit(t)};render(){return s("label",{key:"3f5747da955bf4838f95a11c52677c269e627513",class:this.buttonClasses,"aria-label":this.label||"toggle button"},this.label,s("input",{key:"3fcf184d64abec88674a999982aee09f8670c311",style:{display:"none"},type:"checkbox",onInput:this.handleChange}))}static get style(){return"sd-toggle-button{display:inline-block;line-height:0}.sd-toggle-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:4px 12px;gap:6px;border-radius:14px;border:1px solid #888888;background-color:#FFFFFF;color:#737373;font-size:12px;line-height:20px;font-weight:400;cursor:pointer;transition:border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;white-space:nowrap;user-select:none;box-sizing:border-box}.sd-toggle-button--active{border-color:#0075FF;color:#0075FF}.sd-toggle-button--disabled{background-color:#EEEEEE;border-color:#CCCCCC;color:#888888;cursor:not-allowed}.sd-toggle-button--disabled.sd-toggle-button--active{background-color:#EEEEEE;border-color:#CCCCCC;color:#888888}.sd-toggle-button:hover:not(.sd-toggle-button--disabled):not(.sd-toggle-button--active){border-color:#737373}.sd-toggle-button:hover:not(.sd-toggle-button--disabled).sd-toggle-button--active{border-color:#005CC9;color:#005CC9}"}},[512,"sd-toggle-button",{value:[1540],label:[1],disabled:[4],isActive:[32]}]),i=n,r=function(){"undefined"!=typeof customElements&&["sd-toggle-button"].forEach((t=>{"sd-toggle-button"===t&&(customElements.get(l(t))||customElements.define(l(t),n))}))};export{i as SdToggleButton,r as defineCustomElement}
|