@sellmate/design-system 1.0.54 → 1.0.55
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.textinput-DIDZPtYE.js → component.textinput-BWW8c3OY.js} +10 -1
- package/dist/cjs/design-system.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
- package/dist/cjs/{sd-button_5.cjs.entry.js → sd-button_4.cjs.entry.js} +2 -146
- package/dist/cjs/sd-ghost-button.cjs.entry.js +148 -0
- package/dist/cjs/sd-input_2.cjs.entry.js +1 -1
- package/dist/cjs/sd-textarea.cjs.entry.js +76 -37
- 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-textarea/sd-textarea.config.js +16 -0
- package/dist/collection/components/sd-textarea/sd-textarea.css +13 -53
- package/dist/collection/components/sd-textarea/sd-textarea.js +445 -60
- 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-hWm-Llzv.js → p-BM4qDFZj.js} +1 -1
- package/dist/components/{p-Bbl5852O.js → p-BR0LWoJL.js} +1 -1
- package/dist/components/p-C8kA64_1.js +1 -0
- package/dist/components/{p-DJdigrkS.js → p-Cbtpfl9F.js} +1 -1
- package/dist/components/{p-CYppNuFU.js → p-CmXAKr-2.js} +1 -1
- package/dist/components/p-DSNs8RRn.js +1 -0
- package/dist/components/{p-CpGiSLY_.js → p-DxzIjbQJ.js} +1 -1
- package/dist/components/{p-CSrbKcYv.js → p-w3CsjVGg.js} +1 -1
- package/dist/components/sd-barcode-input.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-field.js +1 -1
- package/dist/components/sd-file-picker.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-number-input.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-search-input.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-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.esm.js +1 -1
- package/dist/design-system/{p-47931c26.entry.js → p-184649a9.entry.js} +1 -1
- package/dist/design-system/{p-64f2a188.entry.js → p-266ff86b.entry.js} +1 -1
- package/dist/design-system/{p-cebaca7c.entry.js → p-391cf704.entry.js} +1 -1
- package/dist/design-system/{p-a59c0cab.entry.js → p-4e9413c0.entry.js} +1 -1
- package/dist/design-system/p-5213773b.entry.js +1 -0
- package/dist/design-system/{p-4487b2ec.entry.js → p-99b6157f.entry.js} +1 -1
- package/dist/design-system/p-DSNs8RRn.js +1 -0
- package/dist/design-system/p-c2a0f10d.entry.js +1 -0
- package/dist/design-system/{p-c9af0fc9.entry.js → p-efe684e6.entry.js} +1 -1
- package/dist/design-system/{p-ea768c2e.entry.js → p-fdf7ed87.entry.js} +1 -1
- package/dist/esm/{component.textinput-BGovA1BG.js → component.textinput-DSNs8RRn.js} +10 -1
- package/dist/esm/design-system.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sd-barcode-input.entry.js +1 -1
- package/dist/esm/{sd-button_5.entry.js → sd-button_4.entry.js} +3 -146
- package/dist/esm/sd-ghost-button.entry.js +146 -0
- package/dist/esm/sd-input_2.entry.js +1 -1
- package/dist/esm/sd-textarea.entry.js +76 -37
- 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-textarea/sd-textarea.config.d.ts +34 -0
- package/dist/types/components/sd-textarea/sd-textarea.d.ts +28 -9
- package/dist/types/components.d.ts +142 -8
- package/hydrate/index.js +114 -52
- package/hydrate/index.mjs +114 -52
- package/package.json +1 -1
- package/dist/components/p-BGovA1BG.js +0 -1
- package/dist/components/p-Ck-2jtzb.js +0 -1
- package/dist/design-system/p-52d6d7b5.entry.js +0 -1
- package/dist/design-system/p-BGovA1BG.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,c as t,h as s,F as o,t as i}from"./p-D-pFdq6g.js";import{n as r}from"./p-CCwNgVmC.js";import{B as n}from"./p-lKwhftf9.js";import{S as l}from"./p-Cy6HMEsK.js";import{d as a}from"./p-CDR-4auv.js";import{d}from"./p-DXAB0k9r.js";import{d as p}from"./p-hWm-Llzv.js";import{d as h}from"./p-tR70yRjm.js";import{d as c}from"./p-B3CfLqLu.js";import{d as u}from"./p-DSYw-7RA.js";import{d as g}from"./p-Bbl5852O.js";import{d as m}from"./p-DB_gU4hh.js";import{d as f}from"./p-mnDAufNv.js";import{d as w}from"./p-CSrbKcYv.js";import{d as b}from"./p-CpGiSLY_.js";const x=e(class extends n{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=t(this,"sdUpdate",7),this.dropDownShow=t(this,"sdDropDownShow",7)}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:"a0269e6ebfce2363c451fdb6afbe3979265ffb52",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:"55c8f062080befa65986e29d3b7835146150302a",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}]}]),y=x,_=function(){"undefined"!=typeof customElements&&["sd-select-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-ghost-button","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-ghost-button":customElements.get(i(e))||c();break;case"sd-icon":customElements.get(i(e))||u();break;case"sd-input":customElements.get(i(e))||g();break;case"sd-portal":customElements.get(i(e))||m();break;case"sd-select-option-group":customElements.get(i(e))||f();break;case"sd-select-search-input":customElements.get(i(e))||w();break;case"sd-tooltip":customElements.get(i(e))||b()}}))};export{y as SdSelectGroup,_ as defineCustomElement}
|
|
1
|
+
import{p as e,c as t,h as s,F as o,t as i}from"./p-D-pFdq6g.js";import{n as r}from"./p-CCwNgVmC.js";import{B as n}from"./p-lKwhftf9.js";import{S as l}from"./p-Cy6HMEsK.js";import{d as a}from"./p-CDR-4auv.js";import{d}from"./p-DXAB0k9r.js";import{d as p}from"./p-BM4qDFZj.js";import{d as h}from"./p-tR70yRjm.js";import{d as c}from"./p-B3CfLqLu.js";import{d as u}from"./p-DSYw-7RA.js";import{d as g}from"./p-BR0LWoJL.js";import{d as m}from"./p-DB_gU4hh.js";import{d as f}from"./p-mnDAufNv.js";import{d as w}from"./p-w3CsjVGg.js";import{d as b}from"./p-DxzIjbQJ.js";const x=e(class extends n{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=t(this,"sdUpdate",7),this.dropDownShow=t(this,"sdDropDownShow",7)}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:"a0269e6ebfce2363c451fdb6afbe3979265ffb52",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:"55c8f062080befa65986e29d3b7835146150302a",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}]}]),y=x,_=function(){"undefined"!=typeof customElements&&["sd-select-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-ghost-button","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-ghost-button":customElements.get(i(e))||c();break;case"sd-icon":customElements.get(i(e))||u();break;case"sd-input":customElements.get(i(e))||g();break;case"sd-portal":customElements.get(i(e))||m();break;case"sd-select-option-group":customElements.get(i(e))||f();break;case"sd-select-search-input":customElements.get(i(e))||w();break;case"sd-tooltip":customElements.get(i(e))||b()}}))};export{y as SdSelectGroup,_ as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,c as e,h as s,F as i,t as o}from"./p-D-pFdq6g.js";import{n as l}from"./p-CCwNgVmC.js";import{B as n}from"./p-lKwhftf9.js";import{S as r}from"./p-Cy6HMEsK.js";import{d as p}from"./p-CDR-4auv.js";import{d as h}from"./p-DXAB0k9r.js";import{d as a}from"./p-hWm-Llzv.js";import{d}from"./p-tR70yRjm.js";import{d as c}from"./p-B3CfLqLu.js";import{d as u}from"./p-DSYw-7RA.js";import{d as m}from"./p-Bbl5852O.js";import{d as g}from"./p-DB_gU4hh.js";import{d as f}from"./p-mnDAufNv.js";import{d as w}from"./p-CSrbKcYv.js";import{d as b}from"./p-CpGiSLY_.js";const x=t(class extends n{constructor(t){super(!1),!1!==t&&this.__registerHost(),this.update=e(this,"sdUpdate",7),this.dropDownShow=e(this,"sdDropDownShow",7)}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((t=>setTimeout(t,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(t,e){if(this.searchable){const t=await this.getNativeInputElement();if(-1===this.itemIndex)return void t?.focus({preventScroll:!0});t?.matches(":focus")&&t?.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()?t>e?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 t=this.getSelectedOption();if(t&&t.length>0){const e=this.options.indexOf(t[0]),s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),i=Math.min((this.useAll?e+1:e)+4,s.length-1),o=s?.[i];o&&this.scrollToOption(o)}if(this.isDropdownReady=!0,this.searchable){const t=await this.getNativeInputElement();t&&requestAnimationFrame((()=>{t.focus({preventScroll:!0})}))}}))})):await(this.formField?.sdValidate())}componentWillLoad(){this.filteredOptions=this.options,this.dropDownWidth=this.width,this.initializeEvent()}componentDidRender(){const t=this.triggerRef,e=t?.getBoundingClientRect();this.dropDownWidth=e?.width?e.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(t){this.selectRef?.contains(t.target)||(this.isOpen=!1)}handleDocumentKeydown(t){if(t.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(t.key))switch(t.preventDefault(),t.key){case"ArrowDown":case"ArrowUp":const e=new r(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,t.key);this.itemIndex=e;break;case"Enter":const s=this.filteredOptions[this.itemIndex];s&&!s.disabled&&this.handleOptionSelection(s);break;case"Escape":this.isOpen=!1}}handleTriggerClick=t=>{t.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleAllOptionClick=t=>{if(t.isSelected){const t=this.filteredOptions.filter((t=>"item"===t.type&&!t.disabled));this.value=this.value?.filter((e=>!t.some((t=>t.value===e.value))))||this.value}else{const t=new Set([...this.value||[],...this.filteredOptions.filter((t=>"item"===t.type&&!t.disabled))]);this.value=Array.from(t)}};handleOptionClick=t=>{const{option:e,event:s}=t;s.stopPropagation(),"group"===e.type&&this.handleGroupOptionClick(t),"subgroup"===e.type&&this.handleSubGroupOptionClick(t),"item"===e.type&&this.handleOptionSelection(e)};handleGroupOptionClick=t=>{const{option:e,isSelected:s}=t;this.filteredOptions.filter((t=>t.parent===e.value&&!t.disabled)).forEach((t=>{this.handleSubGroupOptionClick({option:t,isSelected:s||null===s})}))};handleSubGroupOptionClick=t=>{const{option:e,isSelected:s}=t,i=this.filteredOptions.filter((t=>t.parent===e.value&&!t.disabled));if(s||null===s)this.value=this.value?.filter((t=>!i.some((e=>e.value===t.value))))||null;else{const t=i.filter((t=>!this.value?.some((e=>e.value===t.value))));this.value=[...this.value||[],...t]}};filterOptions(){if(!this.searchText||""===this.searchText.trim())return void(this.filteredOptions=this.options);const t=this.searchText.toLowerCase(),e=new Set;this.options.forEach((s=>{s.label.toLowerCase().includes(t)&&(e.add(s),this.addParentGroups(s,e))})),this.filteredOptions=this.options.filter((t=>e.has(t)))}addParentGroups(t,e){if(!t.parent)return;const s=this.options.find((e=>e.value===t.parent));s&&!e.has(s)&&(e.add(s),this.addParentGroups(s,e))}getSelectedOption(){return this.options.filter((t=>this.value?.includes(t)))}handleDropdownScroll=t=>{this.isScrolled=t.target.scrollTop>0};async getNativeInputElement(){return this.searchRef?this.searchRef.sdGetNativeElement():null}handleOptionSelection=t=>{if(!t||t.disabled)return;const e=this.value?.some((e=>e.value===t.value));this.value=e?this.value?.filter((e=>e.value!==t.value))||null:[...this.value||[],t]};getAllItemsUnderOption(t,e=!1){const s=s=>s.parent===t.value&&(e||!s.disabled);if("subgroup"===t.type)return this.filteredOptions.filter((t=>s(t)&&"item"===t.type));const i=[],o=this.filteredOptions.filter(s);o.filter((t=>"subgroup"===t.type)).forEach((t=>{const s=this.filteredOptions.filter((s=>!(s.parent!==t.value||"item"!==s.type||!e&&s.disabled)));i.push(...s)}));const l=o.filter((t=>"item"===t.type));return i.push(...l),i}isAllChildrenSelected(t){const e=this.getAllItemsUnderOption(t);if(0===e.length)return!1;const s=e.filter((t=>this.value?.some((e=>e.value===t.value))));return s.length===e.length||s.length>0&&null}getChildrenOptions(t){const e=this.getAllItemsUnderOption(t,!0);return{selectedCount:e.filter((t=>this.value?.some((e=>e.value===t.value)))).length,totalCount:e.length}}isAllOptionsSelected(){if(!this.value||0===this.value.length)return!1;const t=this.options.filter((t=>"item"===t.type&&!t.disabled));if(0===t.length)return!1;const e=new Set(this.value.map((t=>t.value)));return t.every((t=>e.has(t.value)))}getTriggerLabel(){const t=this.getSelectedOption();return t?0===t.length?this.placeholder:this.isAllOptionsSelected()?this.allCheckedLabel:t.map((t=>t.label)).join(", "):"선택"}closeDropdown(){this.isOpen=!1}async scrollToOption(t){this.dropdownRef&&t&&requestAnimationFrame((()=>{const e=this.dropdownRef,s=t.offsetTop,i=t.offsetHeight,o=e.scrollTop,l=e.clientHeight,n=e.querySelector(".sd-select-multiple-group__search-container"),r=n?n.offsetHeight:0,p=l-r,h=o+l;s<o+r?e.scrollTo({top:s-r,behavior:"instant"}):s+i>h&&e.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:t=>this.formField=t,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:t=>this.selectRef=t},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const t=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&&t?.length>0&&!this.disabled&&s("sd-icon",{key:"close-icon",name:"close",size:10,color:"#888",class:"sd-select-multiple-group__clear",onClick:async t=>{t.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:t=>this.dropdownRef=t},this.searchable&&s("sd-select-search-input",{ref:t=>this.searchRef=t,isScrolled:this.isScrolled,searchText:this.searchText,onSdSearchInput:t=>this.searchText=t.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:t})=>this.handleAllOptionClick(t),useCheckbox:this.useCheckbox,useIndicator:!1}),this.filteredOptions.map(((t,e)=>s("slot",{name:"option-"+t.value},s("sd-select-option-group",{option:t,index:e,isSelected:"item"===t.type?this.value?.some((e=>e.value===t.value)):this.isAllChildrenSelected(t),isFocused:e===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:e})=>{("item"===t.type||this.useCheckbox)&&this.handleOptionClick(e)},useCheckbox:this.useCheckbox,..."item"!==t.type&&{countInfo:this.getChildrenOptions(t)}}))))):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}]}]),y=x,C=function(){"undefined"!=typeof customElements&&["sd-select-multiple-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-ghost-button","sd-icon","sd-input","sd-portal","sd-select-option-group","sd-select-search-input","sd-tooltip"].forEach((t=>{switch(t){case"sd-select-multiple-group":customElements.get(o(t))||customElements.define(o(t),x);break;case"sd-button":customElements.get(o(t))||p();break;case"sd-checkbox":customElements.get(o(t))||h();break;case"sd-field":customElements.get(o(t))||a();break;case"sd-floating-portal":customElements.get(o(t))||d();break;case"sd-ghost-button":customElements.get(o(t))||c();break;case"sd-icon":customElements.get(o(t))||u();break;case"sd-input":customElements.get(o(t))||m();break;case"sd-portal":customElements.get(o(t))||g();break;case"sd-select-option-group":customElements.get(o(t))||f();break;case"sd-select-search-input":customElements.get(o(t))||w();break;case"sd-tooltip":customElements.get(o(t))||b()}}))};export{y as SdSelectMultipleGroup,C as defineCustomElement}
|
|
1
|
+
import{p as t,c as e,h as s,F as i,t as o}from"./p-D-pFdq6g.js";import{n as l}from"./p-CCwNgVmC.js";import{B as n}from"./p-lKwhftf9.js";import{S as r}from"./p-Cy6HMEsK.js";import{d as p}from"./p-CDR-4auv.js";import{d as h}from"./p-DXAB0k9r.js";import{d as a}from"./p-BM4qDFZj.js";import{d}from"./p-tR70yRjm.js";import{d as c}from"./p-B3CfLqLu.js";import{d as u}from"./p-DSYw-7RA.js";import{d as m}from"./p-BR0LWoJL.js";import{d as g}from"./p-DB_gU4hh.js";import{d as f}from"./p-mnDAufNv.js";import{d as w}from"./p-w3CsjVGg.js";import{d as b}from"./p-DxzIjbQJ.js";const x=t(class extends n{constructor(t){super(!1),!1!==t&&this.__registerHost(),this.update=e(this,"sdUpdate",7),this.dropDownShow=e(this,"sdDropDownShow",7)}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((t=>setTimeout(t,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(t,e){if(this.searchable){const t=await this.getNativeInputElement();if(-1===this.itemIndex)return void t?.focus({preventScroll:!0});t?.matches(":focus")&&t?.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()?t>e?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 t=this.getSelectedOption();if(t&&t.length>0){const e=this.options.indexOf(t[0]),s=Array.from(this.dropdownRef?.querySelectorAll("sd-select-option-group")||[]),i=Math.min((this.useAll?e+1:e)+4,s.length-1),o=s?.[i];o&&this.scrollToOption(o)}if(this.isDropdownReady=!0,this.searchable){const t=await this.getNativeInputElement();t&&requestAnimationFrame((()=>{t.focus({preventScroll:!0})}))}}))})):await(this.formField?.sdValidate())}componentWillLoad(){this.filteredOptions=this.options,this.dropDownWidth=this.width,this.initializeEvent()}componentDidRender(){const t=this.triggerRef,e=t?.getBoundingClientRect();this.dropDownWidth=e?.width?e.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(t){this.selectRef?.contains(t.target)||(this.isOpen=!1)}handleDocumentKeydown(t){if(t.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(t.key))switch(t.preventDefault(),t.key){case"ArrowDown":case"ArrowUp":const e=new r(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,t.key);this.itemIndex=e;break;case"Enter":const s=this.filteredOptions[this.itemIndex];s&&!s.disabled&&this.handleOptionSelection(s);break;case"Escape":this.isOpen=!1}}handleTriggerClick=t=>{t.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleAllOptionClick=t=>{if(t.isSelected){const t=this.filteredOptions.filter((t=>"item"===t.type&&!t.disabled));this.value=this.value?.filter((e=>!t.some((t=>t.value===e.value))))||this.value}else{const t=new Set([...this.value||[],...this.filteredOptions.filter((t=>"item"===t.type&&!t.disabled))]);this.value=Array.from(t)}};handleOptionClick=t=>{const{option:e,event:s}=t;s.stopPropagation(),"group"===e.type&&this.handleGroupOptionClick(t),"subgroup"===e.type&&this.handleSubGroupOptionClick(t),"item"===e.type&&this.handleOptionSelection(e)};handleGroupOptionClick=t=>{const{option:e,isSelected:s}=t;this.filteredOptions.filter((t=>t.parent===e.value&&!t.disabled)).forEach((t=>{this.handleSubGroupOptionClick({option:t,isSelected:s||null===s})}))};handleSubGroupOptionClick=t=>{const{option:e,isSelected:s}=t,i=this.filteredOptions.filter((t=>t.parent===e.value&&!t.disabled));if(s||null===s)this.value=this.value?.filter((t=>!i.some((e=>e.value===t.value))))||null;else{const t=i.filter((t=>!this.value?.some((e=>e.value===t.value))));this.value=[...this.value||[],...t]}};filterOptions(){if(!this.searchText||""===this.searchText.trim())return void(this.filteredOptions=this.options);const t=this.searchText.toLowerCase(),e=new Set;this.options.forEach((s=>{s.label.toLowerCase().includes(t)&&(e.add(s),this.addParentGroups(s,e))})),this.filteredOptions=this.options.filter((t=>e.has(t)))}addParentGroups(t,e){if(!t.parent)return;const s=this.options.find((e=>e.value===t.parent));s&&!e.has(s)&&(e.add(s),this.addParentGroups(s,e))}getSelectedOption(){return this.options.filter((t=>this.value?.includes(t)))}handleDropdownScroll=t=>{this.isScrolled=t.target.scrollTop>0};async getNativeInputElement(){return this.searchRef?this.searchRef.sdGetNativeElement():null}handleOptionSelection=t=>{if(!t||t.disabled)return;const e=this.value?.some((e=>e.value===t.value));this.value=e?this.value?.filter((e=>e.value!==t.value))||null:[...this.value||[],t]};getAllItemsUnderOption(t,e=!1){const s=s=>s.parent===t.value&&(e||!s.disabled);if("subgroup"===t.type)return this.filteredOptions.filter((t=>s(t)&&"item"===t.type));const i=[],o=this.filteredOptions.filter(s);o.filter((t=>"subgroup"===t.type)).forEach((t=>{const s=this.filteredOptions.filter((s=>!(s.parent!==t.value||"item"!==s.type||!e&&s.disabled)));i.push(...s)}));const l=o.filter((t=>"item"===t.type));return i.push(...l),i}isAllChildrenSelected(t){const e=this.getAllItemsUnderOption(t);if(0===e.length)return!1;const s=e.filter((t=>this.value?.some((e=>e.value===t.value))));return s.length===e.length||s.length>0&&null}getChildrenOptions(t){const e=this.getAllItemsUnderOption(t,!0);return{selectedCount:e.filter((t=>this.value?.some((e=>e.value===t.value)))).length,totalCount:e.length}}isAllOptionsSelected(){if(!this.value||0===this.value.length)return!1;const t=this.options.filter((t=>"item"===t.type&&!t.disabled));if(0===t.length)return!1;const e=new Set(this.value.map((t=>t.value)));return t.every((t=>e.has(t.value)))}getTriggerLabel(){const t=this.getSelectedOption();return t?0===t.length?this.placeholder:this.isAllOptionsSelected()?this.allCheckedLabel:t.map((t=>t.label)).join(", "):"선택"}closeDropdown(){this.isOpen=!1}async scrollToOption(t){this.dropdownRef&&t&&requestAnimationFrame((()=>{const e=this.dropdownRef,s=t.offsetTop,i=t.offsetHeight,o=e.scrollTop,l=e.clientHeight,n=e.querySelector(".sd-select-multiple-group__search-container"),r=n?n.offsetHeight:0,p=l-r,h=o+l;s<o+r?e.scrollTo({top:s-r,behavior:"instant"}):s+i>h&&e.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:t=>this.formField=t,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:t=>this.selectRef=t},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const t=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&&t?.length>0&&!this.disabled&&s("sd-icon",{key:"close-icon",name:"close",size:10,color:"#888",class:"sd-select-multiple-group__clear",onClick:async t=>{t.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:t=>this.dropdownRef=t},this.searchable&&s("sd-select-search-input",{ref:t=>this.searchRef=t,isScrolled:this.isScrolled,searchText:this.searchText,onSdSearchInput:t=>this.searchText=t.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:t})=>this.handleAllOptionClick(t),useCheckbox:this.useCheckbox,useIndicator:!1}),this.filteredOptions.map(((t,e)=>s("slot",{name:"option-"+t.value},s("sd-select-option-group",{option:t,index:e,isSelected:"item"===t.type?this.value?.some((e=>e.value===t.value)):this.isAllChildrenSelected(t),isFocused:e===this.itemIndex,optionStyle:this.optionStyle,onOptionClick:({detail:e})=>{("item"===t.type||this.useCheckbox)&&this.handleOptionClick(e)},useCheckbox:this.useCheckbox,..."item"!==t.type&&{countInfo:this.getChildrenOptions(t)}}))))):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}]}]),y=x,C=function(){"undefined"!=typeof customElements&&["sd-select-multiple-group","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-ghost-button","sd-icon","sd-input","sd-portal","sd-select-option-group","sd-select-search-input","sd-tooltip"].forEach((t=>{switch(t){case"sd-select-multiple-group":customElements.get(o(t))||customElements.define(o(t),x);break;case"sd-button":customElements.get(o(t))||p();break;case"sd-checkbox":customElements.get(o(t))||h();break;case"sd-field":customElements.get(o(t))||a();break;case"sd-floating-portal":customElements.get(o(t))||d();break;case"sd-ghost-button":customElements.get(o(t))||c();break;case"sd-icon":customElements.get(o(t))||u();break;case"sd-input":customElements.get(o(t))||m();break;case"sd-portal":customElements.get(o(t))||g();break;case"sd-select-option-group":customElements.get(o(t))||f();break;case"sd-select-search-input":customElements.get(o(t))||w();break;case"sd-tooltip":customElements.get(o(t))||b()}}))};export{y as SdSelectMultipleGroup,C as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,c as s,h as t,t as i}from"./p-D-pFdq6g.js";import{S as l}from"./p-Cy6HMEsK.js";import{B as o}from"./p-lKwhftf9.js";import{n as r}from"./p-CCwNgVmC.js";import{d}from"./p-CDR-4auv.js";import{d as n}from"./p-DXAB0k9r.js";import{d as a}from"./p-
|
|
1
|
+
import{p as e,c as s,h as t,t as i}from"./p-D-pFdq6g.js";import{S as l}from"./p-Cy6HMEsK.js";import{B as o}from"./p-lKwhftf9.js";import{n as r}from"./p-CCwNgVmC.js";import{d}from"./p-CDR-4auv.js";import{d as n}from"./p-DXAB0k9r.js";import{d as a}from"./p-BM4qDFZj.js";import{d as c}from"./p-tR70yRjm.js";import{d as p}from"./p-B3CfLqLu.js";import{d as h}from"./p-DSYw-7RA.js";import{d as m}from"./p-BR0LWoJL.js";import{d as u}from"./p-DB_gU4hh.js";import{d as b}from"./p-Cbtpfl9F.js";import{d as f}from"./p-IRd25v7v.js";import{d as w}from"./p-w3CsjVGg.js";import{d as g}from"./p-DxzIjbQJ.js";const x=e(class extends o{constructor(e){super(!1),!1!==e&&this.__registerHost(),this.update=s(this,"sdUpdate",7),this.dropDownShow=s(this,"sdDropDownShow",7)}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:"c2509aa07a6d69bd24bca0afd708d92db47e8084",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:"d0e5ac84ad2aeb947b02b5a2cd4fbb66bf6e9419",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}]}]),k=x,_=function(){"undefined"!=typeof customElements&&["sd-select-multiple","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-ghost-button","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),x);break;case"sd-button":customElements.get(i(e))||d();break;case"sd-checkbox":customElements.get(i(e))||n();break;case"sd-field":customElements.get(i(e))||a();break;case"sd-floating-portal":customElements.get(i(e))||c();break;case"sd-ghost-button":customElements.get(i(e))||p();break;case"sd-icon":customElements.get(i(e))||h();break;case"sd-input":customElements.get(i(e))||m();break;case"sd-portal":customElements.get(i(e))||u();break;case"sd-select-dropdown":customElements.get(i(e))||b();break;case"sd-select-option":customElements.get(i(e))||f();break;case"sd-select-search-input":customElements.get(i(e))||w();break;case"sd-tooltip":customElements.get(i(e))||g()}}))};export{k as SdSelectMultiple,_ as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as
|
|
1
|
+
import{S as s,d as o}from"./p-w3CsjVGg.js";const p=s,r=o;export{p as SdSelectSearchInput,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as e,c as s,h as i,t as o}from"./p-D-pFdq6g.js";import{n as r}from"./p-CCwNgVmC.js";import{d as a}from"./p-CDR-4auv.js";import{d as h}from"./p-DXAB0k9r.js";import{d as l}from"./p-
|
|
1
|
+
import{p as t,H as e,c as s,h as i,t as o}from"./p-D-pFdq6g.js";import{n as r}from"./p-CCwNgVmC.js";import{d as a}from"./p-CDR-4auv.js";import{d as h}from"./p-DXAB0k9r.js";import{d as l}from"./p-BM4qDFZj.js";import{d}from"./p-tR70yRjm.js";import{d as n}from"./p-DSYw-7RA.js";import{d as c}from"./p-DB_gU4hh.js";import{d as p}from"./p-B9t9pwo_.js";import{d as m}from"./p-5aLT6ILZ.js";import{d as u}from"./p-iZSyoiHU.js";import{d as f}from"./p-BZwAZpfW.js";import{d as b}from"./p-DxzIjbQJ.js";const g=t(class t extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.update=s(this,"sdUpdate",7),this.dropDownShow=s(this,"sdDropDownShow",7)}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),h=Math.max(a,Math.max(e.top-s-i,0)),l=Math.max(window.innerWidth-2*s,0);this.resolvedDropdownHeight=Math.min(o,h)+"px",this.resolvedMaxDropdownWidth=Math.min(r,l)+"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:"85614fb127c63bec86a17e73ac1942aefbc62ad1",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:"4231e75590fec54915d580d7a4f6248232bca365",class:"sd-select-v2",ref:t=>{this.triggerRef=t}},i("sd-select-v2-trigger",{key:"4e75ec1af0ba09ba8cd63c795e527035114037a9",displayText:this.displayText,placeholder:this.placeholder,disabled:this.disabled,isOpen:this.isOpen,onSdTriggerClick:this.handleTriggerClick})),(this.isOpen||this.isAnimatingOut)&&i("sd-portal",{key:"de609975a56d52e542fc46a4d367b74bdcaa7e7b",...e},i("sd-select-v2-listbox",{key:"7d2fff4a3877701a68e422aa29e4f5a18e1d033c",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))||h();break;case"sd-field":customElements.get(o(t))||l();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
|
|
1
|
+
import{S as o,d as r}from"./p-CmXAKr-2.js";const s=o,m=r;export{s as SdSelect,m 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-D-pFdq6g.js";import{d as r}from"./p-CDR-4auv.js";import{d as n}from"./p-DXAB0k9r.js";import{d as h}from"./p-hWm-Llzv.js";import{d as o}from"./p-tR70yRjm.js";import{d as c}from"./p-B3CfLqLu.js";import{d as b}from"./p-DSYw-7RA.js";import{d as _}from"./p-Bbl5852O.js";import{d as p}from"./p-DuqfYDrU.js";import{d as u}from"./p-BIpitpaB.js";import{d as g}from"./p-DB_gU4hh.js";import{d as m}from"./p-CYppNuFU.js";import{d as f}from"./p-DJdigrkS.js";import{d as y}from"./p-IRd25v7v.js";import{d as w}from"./p-CSrbKcYv.js";import{d as k}from"./p-CpGiSLY_.js";const v=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.sdSelectChange=s(this,"sdSelectChange",7),this.sdPageChange=s(this,"sdPageChange",7),this.sdRowsPerPageChange=s(this,"sdRowsPerPageChange",7)}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}]}]),C=v,x=function(){"undefined"!=typeof customElements&&["sd-table","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-ghost-button","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),v);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-ghost-button":customElements.get(d(t))||c();break;case"sd-icon":customElements.get(d(t))||b();break;case"sd-input":customElements.get(d(t))||_();break;case"sd-loading-spinner":customElements.get(d(t))||p();break;case"sd-pagination":customElements.get(d(t))||u();break;case"sd-portal":customElements.get(d(t))||g();break;case"sd-select":customElements.get(d(t))||m();break;case"sd-select-dropdown":customElements.get(d(t))||f();break;case"sd-select-option":customElements.get(d(t))||y();break;case"sd-select-search-input":customElements.get(d(t))||w();break;case"sd-tooltip":customElements.get(d(t))||k()}}))};export{C as SdTable,x 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-D-pFdq6g.js";import{d as r}from"./p-CDR-4auv.js";import{d as n}from"./p-DXAB0k9r.js";import{d as h}from"./p-BM4qDFZj.js";import{d as o}from"./p-tR70yRjm.js";import{d as c}from"./p-B3CfLqLu.js";import{d as b}from"./p-DSYw-7RA.js";import{d as _}from"./p-BR0LWoJL.js";import{d as p}from"./p-DuqfYDrU.js";import{d as u}from"./p-BIpitpaB.js";import{d as g}from"./p-DB_gU4hh.js";import{d as m}from"./p-CmXAKr-2.js";import{d as f}from"./p-Cbtpfl9F.js";import{d as y}from"./p-IRd25v7v.js";import{d as w}from"./p-w3CsjVGg.js";import{d as k}from"./p-DxzIjbQJ.js";const v=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.sdSelectChange=s(this,"sdSelectChange",7),this.sdPageChange=s(this,"sdPageChange",7),this.sdRowsPerPageChange=s(this,"sdRowsPerPageChange",7)}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}]}]),C=v,x=function(){"undefined"!=typeof customElements&&["sd-table","sd-button","sd-checkbox","sd-field","sd-floating-portal","sd-ghost-button","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),v);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-ghost-button":customElements.get(d(t))||c();break;case"sd-icon":customElements.get(d(t))||b();break;case"sd-input":customElements.get(d(t))||_();break;case"sd-loading-spinner":customElements.get(d(t))||p();break;case"sd-pagination":customElements.get(d(t))||u();break;case"sd-portal":customElements.get(d(t))||g();break;case"sd-select":customElements.get(d(t))||m();break;case"sd-select-dropdown":customElements.get(d(t))||f();break;case"sd-select-option":customElements.get(d(t))||y();break;case"sd-select-search-input":customElements.get(d(t))||w();break;case"sd-tooltip":customElements.get(d(t))||k()}}))};export{C as SdTable,x as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as t,c as
|
|
1
|
+
import{p as e,H as t,c as s,h as a,t as r}from"./p-D-pFdq6g.js";import{n as i}from"./p-CCwNgVmC.js";import{i as o}from"./p-DSNs8RRn.js";import{d}from"./p-CDR-4auv.js";import{d as l}from"./p-BM4qDFZj.js";import{d as n}from"./p-tR70yRjm.js";import{d as h}from"./p-DSYw-7RA.js";import{d as c}from"./p-DxzIjbQJ.js";const u={paddingX:o.input.sm.paddingX,paddingY:o.input.sm.paddingY,radius:o.input.sm.radius,fontSize:o.input.sm.typography.fontSize,lineHeight:o.input.sm.typography.lineHeight,fontWeight:o.input.sm.typography.fontWeight},p={text:o.input.text,bg:o.input.bg,border:o.input.border,resizer:o.input.resizer},x=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.input=s(this,"sdUpdate",7),this.focus=s(this,"sdFocus",7),this.blur=s(this,"sdBlur",7)}get host(){return this}value=null;placeholder="입력해 주세요.";disabled=!1;readonly=!1;autoFocus=!1;textareaClass="";textareaStyle={};maxLength;rows;spellcheck=!1;width="";label="";addonLabel="";hint="";errorMessage="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;status;focused=!1;hovered=!1;internalValue=null;nativeEl=void 0;formField;name=i();input;focus;blur;valueChanged(e){this.internalValue=e}internalValueChanged(e){e!==this.value&&(this.value=e,this.input?.emit(this.value))}async sdGetNativeElement(){return this.nativeEl||null}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}componentWillLoad(){null!=this.value&&(this.internalValue=this.value)}componentDidLoad(){this.autoFocus&&this.nativeEl?.focus()}handleInput=e=>{this.internalValue=e.target.value};handleFocus=async(e,t)=>{this.focused="focus"===e,"blur"===e?(this.rules&&this.rules.length>0&&await(this.formField?.sdValidate()),this.blur?.emit(t)):this.focus?.emit(t)};render(){return a("sd-field",{key:"390028112d84c22766c6e00fa3625312b8096629",name:this.name,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,status:this.status,icon:this.icon,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e,onMouseEnter:()=>this.hovered=!0,onMouseLeave:()=>this.hovered=!1,style:{"--sd-textarea-font-size":u.fontSize+"px","--sd-textarea-line-height":u.lineHeight+"px","--sd-textarea-font-weight":u.fontWeight,"--sd-textarea-padding-x":u.paddingX+"px","--sd-textarea-padding-y":u.paddingY+"px","--sd-textarea-radius":u.radius+"px","--sd-textarea-text-color":p.text.default,"--sd-textarea-placeholder-color":p.text.placeholder,"--sd-textarea-disabled-color":p.text.disabled,"--sd-textarea-bg-color":p.bg.default,"--sd-textarea-disabled-bg-color":p.bg.disabled,"--sd-textarea-border-color":p.border.default,"--sd-textarea-resizer-color":p.resizer.color,"--sd-system-size-field-sm-height":"auto","--sd-system-radius-field-sm":u.radius+"px"}},a("div",{key:"026ec0293049da167e7dbab5d3a28593d5e6b291",class:"sd-textarea__content"},a("textarea",{key:"d30b5e1bc61535c1c350f09bf2ea289f0b09001b",name:this.name,ref:e=>this.nativeEl=e,class:"sd-textarea__native "+this.textareaClass,value:this.internalValue||"",placeholder:this.placeholder,disabled:this.disabled,readOnly:this.readonly,autofocus:this.autoFocus,maxLength:this.maxLength,rows:this.rows,spellcheck:this.spellcheck,onInput:this.handleInput,onFocus:e=>this.handleFocus("focus",e),onBlur:e=>this.handleFocus("blur",e),style:this.textareaStyle})))}static get watchers(){return{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}}static get style(){return"sd-textarea{display:inline-flex}sd-textarea .sd-textarea__content{width:100%;display:flex}sd-textarea .sd-textarea__content .sd-textarea__native{width:100%;min-height:100px;border:none;outline:none;background:transparent;padding:var(--sd-textarea-padding-y) var(--sd-textarea-padding-x);font-family:inherit;font-size:var(--sd-textarea-font-size);line-height:var(--sd-textarea-line-height);font-weight:var(--sd-textarea-font-weight);color:var(--sd-textarea-text-color);resize:vertical}sd-textarea .sd-textarea__content .sd-textarea__native::placeholder{color:var(--sd-textarea-placeholder-color)}sd-textarea .sd-textarea__content .sd-textarea__native:disabled{cursor:not-allowed;color:var(--sd-textarea-disabled-color)}"}},[512,"sd-textarea",{value:[1025],placeholder:[1],disabled:[4],readonly:[4],autoFocus:[4,"auto-focus"],textareaClass:[1,"textarea-class"],textareaStyle:[16],maxLength:[2,"max-length"],rows:[2],spellcheck:[4],width:[8],label:[1],addonLabel:[1,"addon-label"],hint:[1],errorMessage:[1,"error-message"],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[1028],status:[1],focused:[1028],hovered:[1028],internalValue:[32],sdGetNativeElement:[64],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64]},void 0,{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}]),m=x,b=function(){"undefined"!=typeof customElements&&["sd-textarea","sd-button","sd-field","sd-floating-portal","sd-icon","sd-tooltip"].forEach((e=>{switch(e){case"sd-textarea":customElements.get(r(e))||customElements.define(r(e),x);break;case"sd-button":customElements.get(r(e))||d();break;case"sd-field":customElements.get(r(e))||l();break;case"sd-floating-portal":customElements.get(r(e))||n();break;case"sd-icon":customElements.get(r(e))||h();break;case"sd-tooltip":customElements.get(r(e))||c()}}))};export{m as SdTextarea,b as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as s,c as e,h as i,t as n}from"./p-D-pFdq6g.js";import{d as o}from"./p-B3CfLqLu.js";import{d as a}from"./p-DSYw-7RA.js";import{d as r}from"./p-
|
|
1
|
+
import{p as t,H as s,c as e,h as i,t as n}from"./p-D-pFdq6g.js";import{d as o}from"./p-B3CfLqLu.js";import{d as a}from"./p-DSYw-7RA.js";import{d as r}from"./p-C8kA64_1.js";const c=4e3;let m=0;const d=t(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.toastShow=e(this,"sdToastShow",7),this.toastDismiss=e(this,"sdToastDismiss",7)}get el(){return this}position="bottom-center";maxVisible=3;defaultDuration=c;zIndex=1e4;toasts=[];expanded=!1;toastRefs=new Map;toastShow;toastDismiss;async create(t){const s="toast-"+ ++m,e={id:s,options:t,state:"entering"},i=t.duration??this.defaultDuration??c;i>0&&(e.timerId=setTimeout((()=>this.startDismiss(s)),i));let n=[...this.toasts||[],e];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((s=>t.has(s.id)&&"exiting"!==s.state?(s.timerId&&clearTimeout(s.timerId),this.scheduleRemoval(s.id),{...s,state:"exiting",timerId:void 0}):s))}return this.toasts=n,this.toastShow.emit({id:s}),s}async dismiss(t){this.startDismiss(t)}async dismissAll(){(this.toasts||[]).forEach((t=>this.startDismiss(t.id)))}startDismiss(t){const s=(this.toasts||[]).find((s=>s.id===t));s&&"exiting"!==s.state&&(s.timerId&&clearTimeout(s.timerId),this.toasts=(this.toasts||[]).map((s=>s.id===t?{...s,state:"exiting",timerId:void 0}:s)),this.scheduleRemoval(t))}scheduleRemoval(t){setTimeout((()=>this.removeToast(t)),500)}removeToast(t){(this.toasts||[]).find((s=>s.id===t))&&(this.toasts=(this.toasts||[]).filter((s=>s.id!==t)),this.toastRefs.delete(t),this.toastDismiss.emit({id:t}))}handleTransitionEnd(t){const s=(this.toasts||[]).find((s=>s.id===t));"exiting"===s?.state&&this.removeToast(t)}measureHeights(){let t=!1;const s=(this.toasts||[]).map((s=>{const e=this.toastRefs.get(s.id);if(e){const i=e.offsetHeight;if(i>0&&i!==s.height)return t=!0,{...s,height:i}}return s}));t&&(this.toasts=s)}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??c;t<=0||(this.toasts=(this.toasts||[]).map((s=>{if("visible"===s.state&&!s.timerId&&(s.options.duration??t)>0){const e=setTimeout((()=>this.startDismiss(s.id)),s.options.duration??t);return{...s,timerId:e}}return s})))}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,s,e){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<s;i++)t+=(e[i].height||0)+8;return r.push("translateY(0) scale(1)"),{...c,[a]:t+"px",opacity:"1",transform:r.join(" "),zIndex:""+(e.length-s)}}const m=8*s,d=[1,.8,.6],h=s<d.length?d[s]:0;return r.push(`translateY(${n?-m:m}px) scale(${1-.05*s})`),{...c,opacity:""+h,transform:r.join(" "),transformOrigin:n?"bottom center":"top center",zIndex:""+(e.length-s)}}render(){const t=this.toasts||[],s=t.filter((t=>"exiting"!==t.state)).reverse(),e=new Map;return s.forEach(((t,s)=>e.set(t.id,s))),i("div",{key:"7d2c4a095a0762710024c4c102ce49c7c7163368",class:"sd-toast-container",style:this.getContainerStyles(),onMouseEnter:()=>{this.expanded=!0,this.pauseTimers()},onMouseLeave:()=>{this.expanded=!1,this.resumeTimers()}},t.map((t=>{const n=e.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,s),ref:s=>{s&&this.toastRefs.set(t.id,s)},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]}]),h=d,l=function(){"undefined"!=typeof customElements&&["sd-toast-container","sd-ghost-button","sd-icon","sd-toast"].forEach((t=>{switch(t){case"sd-toast-container":customElements.get(n(t))||customElements.define(n(t),d);break;case"sd-ghost-button":customElements.get(n(t))||o();break;case"sd-icon":customElements.get(n(t))||a();break;case"sd-toast":customElements.get(n(t))||r()}}))};export{h as SdToastContainer,l as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-C8kA64_1.js";const p=o,r=s;export{p as SdToast,r 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-D-pFdq6g.js";const n=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.change=e(this,"sdUpdate",7)}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:"9d98201d5ab361d0d2d5c8c61ce1e5b129f4d588",class:this.buttonClasses,"aria-label":this.label||"toggle button"},this.label,s("input",{key:"a745715a752bf99a94ab01d8c07c87d0f507a8ef",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]}]),d=n,i=function(){"undefined"!=typeof customElements&&["sd-toggle-button"].forEach((t=>{"sd-toggle-button"===t&&(customElements.get(l(t))||customElements.define(l(t),n))}))};export{d as SdToggleButton,i as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as t,c as s,h as
|
|
1
|
+
import{p as e,H as t,c as s,h as g,t as d}from"./p-D-pFdq6g.js";const l=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.change=s(this,"sdUpdate",7)}value=!1;label="";disabled=!1;change;componentWillLoad(){this.updateCheckedState(this.value)}componentWillRender(){this.updateCheckedState(this.value)}updateCheckedState(e){this.value=e}get toggleClasses(){const e=["sd-toggle",this.value?"sd-toggle--checked":"sd-toggle--unchecked"];return this.disabled&&e.push("sd-toggle--disabled"),e.join(" ")}handleChange=()=>{if(this.disabled)return;const e=!this.value;this.value=e,this.change.emit(e)};render(){return g("label",{key:"9f4cf71a2aab588deb68d8e6908f0988ddbacb90","aria-label":this.label||"toggle",class:this.toggleClasses},g("input",{key:"6d1279761ea384a233bff234c549030709fd4ea3",type:"checkbox",checked:this.value,disabled:this.disabled,onInput:this.handleChange}),this.label&&g("span",{key:"7ecd96f5e2c48fda17ed0086ab3cc8bc1caab458",class:"sd-toggle__label"},this.label),g("div",{key:"26f4d468e4ff0c4473e2ce00b7e69a855a249a96",class:"sd-toggle__track"},g("div",{key:"3a7f4019197cfa23dc268ee95308e60d7159ba28",class:"sd-toggle__thumb"})))}static get style(){return"sd-toggle{display:inline-block;height:20px;line-height:0}sd-toggle .sd-toggle{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px}sd-toggle .sd-toggle>input{display:none}sd-toggle .sd-toggle__label{font-size:12px;color:#333333;line-height:20px}sd-toggle .sd-toggle__track{width:36px;height:20px;border-radius:12px;background:#CCCCCC;position:relative;transition:background-color 0.2s ease}sd-toggle .sd-toggle__thumb{width:16px;height:16px;border-radius:50%;background:white;position:absolute;top:2px;left:2px;transition:transform 0.2s ease}sd-toggle .sd-toggle--checked .sd-toggle__track{background:#0075FF}sd-toggle .sd-toggle--checked .sd-toggle__thumb{transform:translateX(16px)}sd-toggle .sd-toggle--disabled{cursor:not-allowed}sd-toggle .sd-toggle--disabled.sd-toggle--checked .sd-toggle__track{background:#BBDAFF}sd-toggle .sd-toggle--disabled.sd-toggle--unchecked .sd-toggle__track{background:#EEEEEE}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--checked .sd-toggle__track{background:#005CC9}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--unchecked .sd-toggle__track{background:#BBBBBB}"}},[512,"sd-toggle",{value:[1028],label:[1],disabled:[4]}]),o=l,a=function(){"undefined"!=typeof customElements&&["sd-toggle"].forEach((e=>{"sd-toggle"===e&&(customElements.get(d(e))||customElements.define(d(e),l))}))};export{o as SdToggle,a as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as o,d as
|
|
1
|
+
import{S as o,d as s}from"./p-DxzIjbQJ.js";const p=o,r=s;export{p as SdTooltip,r as defineCustomElement}
|