@sellmate/design-system 1.0.72 → 1.0.74

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.
Files changed (90) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
  4. package/dist/cjs/sd-date-picker.cjs.entry.js +3 -4
  5. package/dist/cjs/sd-date-range-picker.cjs.entry.js +3 -4
  6. package/dist/cjs/sd-file-picker.cjs.entry.js +2 -1
  7. package/dist/cjs/sd-form.cjs.entry.js +15 -18
  8. package/dist/cjs/sd-input_2.cjs.entry.js +2 -2
  9. package/dist/cjs/sd-number-input.cjs.entry.js +3 -3
  10. package/dist/cjs/sd-pagination_2.cjs.entry.js +7 -8
  11. package/dist/cjs/sd-select-group.cjs.entry.js +1 -1
  12. package/dist/cjs/sd-select-v2-list-item_4.cjs.entry.js +3 -3
  13. package/dist/cjs/sd-select.cjs.entry.js +1 -1
  14. package/dist/cjs/sd-textarea.cjs.entry.js +1 -1
  15. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +21 -1
  16. package/dist/collection/components/sd-date-picker/sd-date-picker.js +23 -24
  17. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +23 -24
  18. package/dist/collection/components/sd-file-picker/sd-file-picker.js +3 -2
  19. package/dist/collection/components/sd-form/sd-form.js +17 -20
  20. package/dist/collection/components/sd-input/sd-input.js +22 -2
  21. package/dist/collection/components/sd-number-input/sd-number-input.js +23 -3
  22. package/dist/collection/components/sd-select/sd-select.js +21 -1
  23. package/dist/collection/components/sd-select-group/sd-select-group.js +21 -1
  24. package/dist/collection/components/sd-select-v2/sd-select-v2-listbox/sd-select-v2-listbox.js +9 -9
  25. package/dist/collection/components/sd-select-v2/sd-select-v2.js +33 -34
  26. package/dist/collection/components/sd-textarea/sd-textarea.js +21 -1
  27. package/dist/components/{p-DdPLfQ4q.js → p-CHFGWh0m.js} +1 -1
  28. package/dist/components/p-CgL8_FSD.js +1 -0
  29. package/dist/components/{p-BH5mLw-t.js → p-D8fG9Yt7.js} +1 -1
  30. package/dist/components/{p-BC1rdUkh.js → p-DEBakAhm.js} +1 -1
  31. package/dist/components/{p-DuyLeqsh.js → p-DuMkBStM.js} +1 -1
  32. package/dist/components/sd-barcode-input.js +1 -1
  33. package/dist/components/sd-date-picker.js +1 -1
  34. package/dist/components/sd-date-range-picker.js +1 -1
  35. package/dist/components/sd-file-picker.js +1 -1
  36. package/dist/components/sd-form.js +1 -1
  37. package/dist/components/sd-input.js +1 -1
  38. package/dist/components/sd-number-input.js +1 -1
  39. package/dist/components/sd-select-dropdown.js +1 -1
  40. package/dist/components/sd-select-group.js +1 -1
  41. package/dist/components/sd-select-multiple-group.js +1 -1
  42. package/dist/components/sd-select-multiple.js +1 -1
  43. package/dist/components/sd-select-search-input.js +1 -1
  44. package/dist/components/sd-select-v2-listbox.js +1 -1
  45. package/dist/components/sd-select-v2.js +1 -1
  46. package/dist/components/sd-select.js +1 -1
  47. package/dist/components/sd-table.js +1 -1
  48. package/dist/components/sd-textarea.js +1 -1
  49. package/dist/design-system/design-system.esm.js +1 -1
  50. package/dist/design-system/p-17cd3a33.entry.js +1 -0
  51. package/dist/design-system/{p-0883bb11.entry.js → p-1fa6c17f.entry.js} +1 -1
  52. package/dist/design-system/{p-4145b7cc.entry.js → p-2d154fe0.entry.js} +1 -1
  53. package/dist/design-system/{p-9349f176.entry.js → p-6a3f8588.entry.js} +1 -1
  54. package/dist/design-system/{p-0069c4f6.entry.js → p-6af9e663.entry.js} +1 -1
  55. package/dist/design-system/{p-f47fb87a.entry.js → p-6e90fb80.entry.js} +1 -1
  56. package/dist/design-system/p-850de8d4.entry.js +1 -0
  57. package/dist/design-system/{p-d788d842.entry.js → p-97ebf578.entry.js} +1 -1
  58. package/dist/design-system/p-b745cd95.entry.js +1 -0
  59. package/dist/design-system/{p-f637919e.entry.js → p-ce2210ad.entry.js} +1 -1
  60. package/dist/design-system/p-d6896893.entry.js +1 -0
  61. package/dist/design-system/{p-f503a1ef.entry.js → p-ef09409c.entry.js} +1 -1
  62. package/dist/esm/design-system.js +1 -1
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/sd-barcode-input.entry.js +1 -1
  65. package/dist/esm/sd-date-picker.entry.js +3 -4
  66. package/dist/esm/sd-date-range-picker.entry.js +3 -4
  67. package/dist/esm/sd-file-picker.entry.js +2 -1
  68. package/dist/esm/sd-form.entry.js +15 -18
  69. package/dist/esm/sd-input_2.entry.js +2 -2
  70. package/dist/esm/sd-number-input.entry.js +3 -3
  71. package/dist/esm/sd-pagination_2.entry.js +7 -8
  72. package/dist/esm/sd-select-group.entry.js +1 -1
  73. package/dist/esm/sd-select-v2-list-item_4.entry.js +3 -3
  74. package/dist/esm/sd-select.entry.js +1 -1
  75. package/dist/esm/sd-textarea.entry.js +1 -1
  76. package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +1 -2
  77. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +1 -2
  78. package/dist/types/components/sd-form/sd-form.d.ts +4 -1
  79. package/dist/types/components/sd-select-v2/sd-select-v2-listbox/sd-select-v2-listbox.d.ts +2 -2
  80. package/dist/types/components/sd-select-v2/sd-select-v2.config.d.ts +1 -1
  81. package/dist/types/components/sd-select-v2/sd-select-v2.d.ts +3 -4
  82. package/dist/types/components.d.ts +101 -47
  83. package/hydrate/index.js +52 -52
  84. package/hydrate/index.mjs +52 -52
  85. package/package.json +1 -1
  86. package/dist/components/p-CiSap3Ks.js +0 -1
  87. package/dist/design-system/p-4aeec574.entry.js +0 -1
  88. package/dist/design-system/p-5ef82428.entry.js +0 -1
  89. package/dist/design-system/p-8f66586f.entry.js +0 -1
  90. package/dist/design-system/p-a0cf8a1d.entry.js +0 -1
@@ -1 +1 @@
1
- import{p as t,H as e,c as s,h as i,t as n}from"./p-CNAzAL53.js";import{n as r}from"./p-CCwNgVmC.js";import{d}from"./p-BZm6KN1s.js";import{d as u}from"./p-Bp0B8tcl.js";import{d as a}from"./p-BM0sVq5Z.js";import{d as o}from"./p-DaAhgdib.js";import{d as l}from"./p-CTwEbxRN.js";var h={numberInput:{sm:{height:"28",paddingX:"6",radius:"4",typography:{fontWeight:"400",fontSize:"12",lineHeight:"20"}},md:{height:"36",paddingX:"8",radius:"6",typography:{fontWeight:"400",fontSize:"14",lineHeight:"24"}},contents:{gap:"4"},border:{default:"#AAAAAA",focus:"#0075FF",danger:"#FB4444"},bg:{default:"#FFFFFF"},text:{default:"#222222",placeholder:"#AAAAAA",disabled:"#888888"},hint:{color:"#555555",typography:{fontSize:"12",lineHeight:"20"}},errorMessage:{color:"#E30000",typography:{fontSize:"12",lineHeight:"20"}},stepper:{sm:{size:"20"},md:{size:"24"},radius:"4",bg:{default:"#EFF6FF",disabled:"#EEEEEE"},icon:{default:"#0075FF",disabled:"#BBBBBB"}}}};const p=h.numberInput.sm,c=h.numberInput.md,b={sm:{height:p.height,paddingX:p.paddingX,radius:p.radius,fontSize:p.typography.fontSize,lineHeight:p.typography.lineHeight,fontWeight:p.typography.fontWeight},md:{height:c.height,paddingX:c.paddingX,radius:c.radius,fontSize:c.typography.fontSize,lineHeight:c.typography.lineHeight,fontWeight:c.typography.fontWeight}},m={border:h.numberInput.border,bg:h.numberInput.bg,text:h.numberInput.text},f={sm:{size:h.numberInput.stepper.sm.size},md:{size:h.numberInput.stepper.md.size},radius:h.numberInput.stepper.radius,bg:h.numberInput.stepper.bg,icon:h.numberInput.stepper.icon},g=h.numberInput.hint,y=h.numberInput.errorMessage,x=h.numberInput.contents.gap,_=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.update=s(this,"sdUpdate",7),this.focus=s(this,"sdFocus",7),this.blur=s(this,"sdBlur",7)}get el(){return this}size="sm";min=-1/0;max=1/0;step=1;useButton=!1;useDecimal=!1;value=null;label;labelWidth="";addonLabel="";addonAlign="start";placeholder="입력해 주세요.";disabled=!1;width;rules=[];autoFocus=!1;status;hint="";errorMessage="";inputPrefix="";inputSuffix="";inputClass="";readonly=!1;inputStyle={};error=!1;focused=!1;hovered=!1;internalValue=null;displayValue="";nativeEl=void 0;formField;name=r();update;focus;blur;toNumber(t){if(null==t||""===t)return null;if("number"==typeof t)return isNaN(t)?null:t;if("string"==typeof t)return this.parseInput(t);const e=Number(t);return isNaN(e)?null:e}formatWithCommas(t){if(null==t||isNaN(t))return"";const e=t<0,s=Math.abs(t),[i,n]=(""+s).split("."),r=(+i).toLocaleString(),d=e?"-"+r:r;return n?d+"."+n:d+""}parseInput(t){if(!t||""===t.trim())return null;const e=t.replace(/,/g,"").trim();if(!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(e))return null;const s=parseFloat(e);return isNaN(s)||!this.useDecimal&&e.includes(".")?null:s}clampMinMax(t){return isNaN(t)?0:Math.min(Math.max(t,this.min),this.max)}updateDisplay(){this.displayValue=this.formatWithCommas(this.internalValue)}isIncrementDisabled(){return!(!this.disabled&&!this.readonly)||null!==this.internalValue&&this.internalValue>=this.max}isDecrementDisabled(){return!(!this.disabled&&!this.readonly)||null!==this.internalValue&&this.internalValue<=this.min}valueChanged(t){const e=this.toNumber(t);this.internalValue=null!==e?this.clampMinMax(e):null,this.updateDisplay()}internalValueChanged(t){this.updateDisplay(),t!==this.value&&(this.value=t,this.update?.emit(t))}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}async sdGetNativeElement(){return this.nativeEl||null}componentWillLoad(){const t=this.toNumber(this.value);null!==t&&(this.internalValue=this.clampMinMax(t)),this.updateDisplay()}componentDidLoad(){this.autoFocus&&this.nativeEl?.focus()}handleInput=t=>{const e=t.target,s=e.value;if(""===s)return this.internalValue=null,void(this.displayValue="");const i=s.replace(/,/g,""),n=(i.match(/\./g)||[]).length;if(n>1)return void(e.value=this.displayValue);if("-"===i||"."===i||"-."===i)return void(e.value=i);if(i.endsWith(".")&&1===n){const t=i.slice(0,-1),s=this.parseInput(t);if(null!==s){const t=this.formatWithCommas(s);return void(e.value=t+".")}}const r=this.parseInput(i);if(null!==r){if(r<this.min)return void(e.value=this.displayValue);if(r>this.max)return void(e.value=this.displayValue);this.internalValue=r,this.displayValue=this.formatWithCommas(r),e.value=this.displayValue}else e.value=this.displayValue};handleFocus=t=>{this.focused=!0,this.focus?.emit(t)};handleBlur=async t=>{this.updateDisplay(),this.nativeEl&&(this.nativeEl.value=this.displayValue),this.rules&&this.rules.length>0&&await(this.formField?.sdValidate()),this.focused=!1,this.blur?.emit(t)};handleKeyDown=t=>{"ArrowUp"===t.key?(t.preventDefault(),this.handleIncrement()):"ArrowDown"===t.key&&(t.preventDefault(),this.handleDecrement())};handleIncrement=()=>{if(this.isIncrementDisabled())return;const t=this.internalValue??this.min??0;let e=t+this.step;e>this.max&&(e=this.max),e!==t&&(this.internalValue=e)};handleDecrement=()=>{if(this.isDecrementDisabled())return;const t=this.internalValue??this.min??0;let e=t-this.step;e<this.min&&(e=this.min),e!==t&&(this.internalValue=e)};render(){const t=b[this.size]??b.sm,e="md"===this.size?14:12;return i("sd-field",{key:"04aea42c0e7ae2c81a50d0fbb106d5834d42f7c3",name:this.name,label:this.label,labelWidth:this.labelWidth,addonLabel:this.addonLabel,addonAlign:this.addonAlign,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,size:this.size,ref:t=>this.formField=t,onMouseEnter:()=>this.hovered=!0,onMouseLeave:()=>this.hovered=!1,style:{"--sd-number-input-font-size":t.fontSize+"px","--sd-number-input-line-height":t.lineHeight+"px","--sd-number-input-font-weight":t.fontWeight,"--sd-number-input-padding-x":t.paddingX+"px","--sd-number-input-text-color":m.text.default,"--sd-number-input-placeholder-color":m.text.placeholder,"--sd-number-input-disabled-color":m.text.disabled,"--sd-number-input-stepper-size":(f[this.size]?.size??f.sm.size)+"px","--sd-number-input-stepper-radius":f.radius+"px","--sd-number-input-stepper-bg":f.bg.default,"--sd-number-input-stepper-bg-disabled":f.bg.disabled,"--sd-number-input-stepper-icon-color":f.icon.default,"--sd-number-input-stepper-icon-disabled":f.icon.disabled,"--sd-system-size-field-sm-height":t.height+"px","--sd-system-radius-field-sm":t.radius+"px","--sd-system-color-field-border-default":m.border.default,"--sd-system-color-field-border-focus":m.border.focus,"--sd-system-color-field-border-danger":m.border.danger,"--sd-system-color-field-bg-default":m.bg.default,"--sd-textinput-input-text-error-message":y.color,"--sd-textinput-input-error-message-typography-font-size":y.typography.fontSize+"px","--sd-textinput-input-error-message-typography-line-height":y.typography.lineHeight+"px","--sd-textinput-input-text-hint":g.color,"--sd-textinput-input-hint-typography-font-size":g.typography.fontSize+"px","--sd-textinput-input-hint-typography-line-height":g.typography.lineHeight+"px","--sd-textinput-input-contents-gap":x+"px"}},i("div",{key:"8089ebd24ce12922d73c5f7909d3ef1d944e99d3",class:"sd-number-input__content"},this.useButton&&i("button",{key:"27b630b4e12ba8f107b8c1053ab89f39b5df966f",type:"button",class:"sd-number-input__stepper sd-number-input__stepper--decrement",disabled:this.isDecrementDisabled(),onClick:this.handleDecrement,tabindex:-1},i("sd-icon",{key:"b916a9f5f4c2579b9d3c3365790b29eb98f55c84",name:"minus",size:e,color:this.isDecrementDisabled()?f.icon.disabled:f.icon.default})),this.inputPrefix&&i("span",{key:"6e669bfdd4cf68d9ca6182748cd9e60db9ae36f2",class:"sd-number-input__prefix"},this.inputPrefix),i("input",{key:"0fe251f87da94d35d50986ec8381b8e9df85d70e",name:this.name,ref:t=>this.nativeEl=t,class:"sd-number-input__native "+this.inputClass,type:"text",inputMode:"numeric",value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,readonly:this.readonly,autofocus:this.autoFocus,onInput:this.handleInput,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur,style:{textAlign:this.useButton?"center":"right",...this.inputStyle}}),this.inputSuffix&&i("span",{key:"0842beeb5d5834909909b5120af69cdbe3fac299",class:"sd-number-input__suffix"},this.inputSuffix),this.useButton&&i("button",{key:"dd2706a9882164812d65fe35e05e5865bb4fc4c8",type:"button",class:"sd-number-input__stepper sd-number-input__stepper--increment",disabled:this.isIncrementDisabled(),onClick:this.handleIncrement,tabindex:-1},i("sd-icon",{key:"578b0030421db07da89717039ae9773d537db5e6",name:"add",size:e,color:this.isIncrementDisabled()?f.icon.disabled:f.icon.default}))))}static get watchers(){return{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}}static get style(){return"sd-number-input{display:inline-flex}sd-number-input .sd-number-input__content{width:100%;height:100%;display:flex;flex-flow:row nowrap;align-items:center;color:var(--sd-number-input-text-color);font-size:var(--sd-number-input-font-size);line-height:var(--sd-number-input-line-height);font-weight:var(--sd-number-input-font-weight);padding:0 var(--sd-number-input-padding-x)}sd-number-input .sd-number-input__content .sd-number-input__native{width:100%;height:100%;min-width:0;border:none;outline:none;background:transparent;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;padding-block:0;padding-inline:0}sd-number-input .sd-number-input__content .sd-number-input__native[disabled]{cursor:not-allowed;color:var(--sd-number-input-disabled-color)}sd-number-input .sd-number-input__content .sd-number-input__native::placeholder{color:var(--sd-number-input-placeholder-color)}sd-number-input .sd-number-input__content .sd-number-input__prefix,sd-number-input .sd-number-input__content .sd-number-input__suffix{flex-shrink:0;white-space:nowrap;color:var(--sd-number-input-placeholder-color);font-size:inherit;line-height:inherit}sd-number-input .sd-number-input__content .sd-number-input__stepper{flex-shrink:0;width:var(--sd-number-input-stepper-size);height:var(--sd-number-input-stepper-size);border:none;border-radius:var(--sd-number-input-stepper-radius);background-color:var(--sd-number-input-stepper-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;transition:background-color 0.15s ease}sd-number-input .sd-number-input__content .sd-number-input__stepper:hover:not(:disabled){filter:brightness(0.95)}sd-number-input .sd-number-input__content .sd-number-input__stepper:disabled{background-color:var(--sd-number-input-stepper-bg-disabled);cursor:not-allowed}"}},[512,"sd-number-input",{size:[1],min:[2],max:[2],step:[2],useButton:[4,"use-button"],useDecimal:[4,"use-decimal"],value:[1032],label:[1],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],placeholder:[1],disabled:[4],width:[8],rules:[16],autoFocus:[4,"auto-focus"],status:[1],hint:[1],errorMessage:[1,"error-message"],inputPrefix:[1,"input-prefix"],inputSuffix:[1,"input-suffix"],inputClass:[1,"input-class"],readonly:[4],inputStyle:[16],error:[1028],focused:[1028],hovered:[1028],internalValue:[32],displayValue:[32],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64],sdGetNativeElement:[64]},void 0,{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}]),v=_,w=function(){"undefined"!=typeof customElements&&["sd-number-input","sd-button","sd-field","sd-floating-portal","sd-icon","sd-tooltip"].forEach((t=>{switch(t){case"sd-number-input":customElements.get(n(t))||customElements.define(n(t),_);break;case"sd-button":customElements.get(n(t))||d();break;case"sd-field":customElements.get(n(t))||u();break;case"sd-floating-portal":customElements.get(n(t))||a();break;case"sd-icon":customElements.get(n(t))||o();break;case"sd-tooltip":customElements.get(n(t))||l()}}))};export{v as SdNumberInput,w as defineCustomElement}
1
+ import{p as t,H as e,c as s,h as i,t as n}from"./p-CNAzAL53.js";import{n as r}from"./p-CCwNgVmC.js";import{d}from"./p-BZm6KN1s.js";import{d as u}from"./p-Bp0B8tcl.js";import{d as a}from"./p-BM0sVq5Z.js";import{d as o}from"./p-DaAhgdib.js";import{d as l}from"./p-CTwEbxRN.js";var h={numberInput:{sm:{height:"28",paddingX:"6",radius:"4",typography:{fontWeight:"400",fontSize:"12",lineHeight:"20"}},md:{height:"36",paddingX:"8",radius:"6",typography:{fontWeight:"400",fontSize:"14",lineHeight:"24"}},contents:{gap:"4"},border:{default:"#AAAAAA",focus:"#0075FF",danger:"#FB4444"},bg:{default:"#FFFFFF"},text:{default:"#222222",placeholder:"#AAAAAA",disabled:"#888888"},hint:{color:"#555555",typography:{fontSize:"12",lineHeight:"20"}},errorMessage:{color:"#E30000",typography:{fontSize:"12",lineHeight:"20"}},stepper:{sm:{size:"20"},md:{size:"24"},radius:"4",bg:{default:"#EFF6FF",disabled:"#EEEEEE"},icon:{default:"#0075FF",disabled:"#BBBBBB"}}}};const p=h.numberInput.sm,c=h.numberInput.md,b={sm:{height:p.height,paddingX:p.paddingX,radius:p.radius,fontSize:p.typography.fontSize,lineHeight:p.typography.lineHeight,fontWeight:p.typography.fontWeight},md:{height:c.height,paddingX:c.paddingX,radius:c.radius,fontSize:c.typography.fontSize,lineHeight:c.typography.lineHeight,fontWeight:c.typography.fontWeight}},m={border:h.numberInput.border,bg:h.numberInput.bg,text:h.numberInput.text},f={sm:{size:h.numberInput.stepper.sm.size},md:{size:h.numberInput.stepper.md.size},radius:h.numberInput.stepper.radius,bg:h.numberInput.stepper.bg,icon:h.numberInput.stepper.icon},g=h.numberInput.hint,y=h.numberInput.errorMessage,x=h.numberInput.contents.gap,_=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.update=s(this,"sdUpdate",7),this.focus=s(this,"sdFocus",7),this.blur=s(this,"sdBlur",7)}get el(){return this}size="sm";min=-1/0;max=1/0;step=1;useButton=!1;useDecimal=!1;value=null;label;labelWidth="";addonLabel="";addonAlign="start";placeholder="입력해 주세요.";disabled=!1;width;rules=[];autoFocus=!1;status;hint="";errorMessage="";inputPrefix="";inputSuffix="";inputClass="";readonly=!1;inputStyle={};error=!1;focused=!1;hovered=!1;internalValue=null;displayValue="";nativeEl=void 0;formField;name=r();update;focus;blur;toNumber(t){if(null==t||""===t)return null;if("number"==typeof t)return isNaN(t)?null:t;if("string"==typeof t)return this.parseInput(t);const e=Number(t);return isNaN(e)?null:e}formatWithCommas(t){if(null==t||isNaN(t))return"";const e=t<0,s=Math.abs(t),[i,n]=(""+s).split("."),r=(+i).toLocaleString(),d=e?"-"+r:r;return n?d+"."+n:d+""}parseInput(t){if(!t||""===t.trim())return null;const e=t.replace(/,/g,"").trim();if(!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(e))return null;const s=parseFloat(e);return isNaN(s)||!this.useDecimal&&e.includes(".")?null:s}clampMinMax(t){return isNaN(t)?0:Math.min(Math.max(t,this.min),this.max)}updateDisplay(){this.displayValue=this.formatWithCommas(this.internalValue)}isIncrementDisabled(){return!(!this.disabled&&!this.readonly)||null!==this.internalValue&&this.internalValue>=this.max}isDecrementDisabled(){return!(!this.disabled&&!this.readonly)||null!==this.internalValue&&this.internalValue<=this.min}valueChanged(t){const e=this.toNumber(t);this.internalValue=null!==e?this.clampMinMax(e):null,this.updateDisplay()}internalValueChanged(t){this.updateDisplay(),t!==this.value&&(this.value=t,this.update?.emit(t))}async sdValidate(){this.formField?.sdValidate()}async sdReset(){this.formField?.sdReset()}async sdResetValidate(){this.formField?.sdResetValidation()}async sdFocus(){this.formField?.sdFocus()}async sdGetNativeElement(){return this.nativeEl||null}componentWillLoad(){const t=this.toNumber(this.value);null!==t&&(this.internalValue=this.clampMinMax(t)),this.updateDisplay()}componentDidLoad(){this.autoFocus&&this.nativeEl?.focus()}handleInput=t=>{const e=t.target,s=e.value;if(""===s)return this.internalValue=null,void(this.displayValue="");const i=s.replace(/,/g,""),n=(i.match(/\./g)||[]).length;if(n>1)return void(e.value=this.displayValue);if("-"===i||"."===i||"-."===i)return void(e.value=i);if(i.endsWith(".")&&1===n){const t=i.slice(0,-1),s=this.parseInput(t);if(null!==s){const t=this.formatWithCommas(s);return void(e.value=t+".")}}const r=this.parseInput(i);if(null!==r){if(r<this.min)return void(e.value=this.displayValue);if(r>this.max)return void(e.value=this.displayValue);this.internalValue=r,this.displayValue=this.formatWithCommas(r),e.value=this.displayValue}else e.value=this.displayValue};handleFocus=t=>{this.focused=!0,this.focus?.emit(t)};handleBlur=async t=>{this.updateDisplay(),this.nativeEl&&(this.nativeEl.value=this.displayValue),this.rules&&this.rules.length>0&&await(this.formField?.sdValidate()),this.focused=!1,this.blur?.emit(t)};handleKeyDown=t=>{"ArrowUp"===t.key?(t.preventDefault(),this.handleIncrement()):"ArrowDown"===t.key&&(t.preventDefault(),this.handleDecrement())};handleIncrement=()=>{if(this.isIncrementDisabled())return;const t=this.internalValue??this.min??0;let e=t+this.step;e>this.max&&(e=this.max),e!==t&&(this.internalValue=e)};handleDecrement=()=>{if(this.isDecrementDisabled())return;const t=this.internalValue??this.min??0;let e=t-this.step;e<this.min&&(e=this.min),e!==t&&(this.internalValue=e)};render(){const t=b[this.size]??b.sm,e="md"===this.size?14:12;return i("sd-field",{key:"a62a0abbef4e817173d3e627d61c36523c2db81a",name:this.name,label:this.label,labelWidth:this.labelWidth,addonLabel:this.addonLabel,addonAlign:this.addonAlign,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,size:this.size,ref:t=>this.formField=t,onMouseEnter:()=>this.hovered=!0,onMouseLeave:()=>this.hovered=!1,style:{"--sd-number-input-font-size":t.fontSize+"px","--sd-number-input-line-height":t.lineHeight+"px","--sd-number-input-font-weight":t.fontWeight,"--sd-number-input-padding-x":t.paddingX+"px","--sd-number-input-text-color":m.text.default,"--sd-number-input-placeholder-color":m.text.placeholder,"--sd-number-input-disabled-color":m.text.disabled,"--sd-number-input-stepper-size":(f[this.size]?.size??f.sm.size)+"px","--sd-number-input-stepper-radius":f.radius+"px","--sd-number-input-stepper-bg":f.bg.default,"--sd-number-input-stepper-bg-disabled":f.bg.disabled,"--sd-number-input-stepper-icon-color":f.icon.default,"--sd-number-input-stepper-icon-disabled":f.icon.disabled,"--sd-system-size-field-sm-height":t.height+"px","--sd-system-radius-field-sm":t.radius+"px","--sd-system-color-field-border-default":m.border.default,"--sd-system-color-field-border-focus":m.border.focus,"--sd-system-color-field-border-danger":m.border.danger,"--sd-system-color-field-bg-default":m.bg.default,"--sd-textinput-input-text-error-message":y.color,"--sd-textinput-input-error-message-typography-font-size":y.typography.fontSize+"px","--sd-textinput-input-error-message-typography-line-height":y.typography.lineHeight+"px","--sd-textinput-input-text-hint":g.color,"--sd-textinput-input-hint-typography-font-size":g.typography.fontSize+"px","--sd-textinput-input-hint-typography-line-height":g.typography.lineHeight+"px","--sd-textinput-input-contents-gap":x+"px"}},i("div",{key:"d395366da25ef5ab333e4b314093a89e41519786",class:"sd-number-input__content"},this.useButton&&i("button",{key:"eb97c4c29165e6237064bbce54ea2031c756fe12",type:"button",class:"sd-number-input__stepper sd-number-input__stepper--decrement",disabled:this.isDecrementDisabled(),onClick:this.handleDecrement,tabindex:-1},i("sd-icon",{key:"7cd260e4356d320825a75350982174446b40e15c",name:"minus",size:e,color:this.isDecrementDisabled()?f.icon.disabled:f.icon.default})),this.inputPrefix&&i("span",{key:"a25c707b127f63239dbb92be5e9d569e1be58005",class:"sd-number-input__prefix"},this.inputPrefix),i("input",{key:"0dc0864a4434122a717041028c732aa5d370f65c",name:this.name,ref:t=>this.nativeEl=t,class:"sd-number-input__native "+this.inputClass,type:"text",inputMode:"numeric",value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,readonly:this.readonly,autofocus:this.autoFocus,onInput:this.handleInput,onKeyDown:this.handleKeyDown,onFocus:this.handleFocus,onBlur:this.handleBlur,style:{textAlign:this.useButton?"center":"right",...this.inputStyle}}),this.inputSuffix&&i("span",{key:"d31337cdacceb84ee6347a2c38210ad491667d2c",class:"sd-number-input__suffix"},this.inputSuffix),this.useButton&&i("button",{key:"217fcbc2b75e76adb0ed969a719e632b5eb74b27",type:"button",class:"sd-number-input__stepper sd-number-input__stepper--increment",disabled:this.isIncrementDisabled(),onClick:this.handleIncrement,tabindex:-1},i("sd-icon",{key:"48ff6d0417aadcd975a6863a0003e63ca525cdfd",name:"add",size:e,color:this.isIncrementDisabled()?f.icon.disabled:f.icon.default}))))}static get watchers(){return{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}}static get style(){return"sd-number-input{display:inline-flex}sd-number-input .sd-number-input__content{width:100%;height:100%;display:flex;flex-flow:row nowrap;align-items:center;color:var(--sd-number-input-text-color);font-size:var(--sd-number-input-font-size);line-height:var(--sd-number-input-line-height);font-weight:var(--sd-number-input-font-weight);padding:0 var(--sd-number-input-padding-x)}sd-number-input .sd-number-input__content .sd-number-input__native{width:100%;height:100%;min-width:0;border:none;outline:none;background:transparent;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;padding-block:0;padding-inline:0}sd-number-input .sd-number-input__content .sd-number-input__native[disabled]{cursor:not-allowed;color:var(--sd-number-input-disabled-color)}sd-number-input .sd-number-input__content .sd-number-input__native::placeholder{color:var(--sd-number-input-placeholder-color)}sd-number-input .sd-number-input__content .sd-number-input__prefix,sd-number-input .sd-number-input__content .sd-number-input__suffix{flex-shrink:0;white-space:nowrap;color:var(--sd-number-input-placeholder-color);font-size:inherit;line-height:inherit}sd-number-input .sd-number-input__content .sd-number-input__stepper{flex-shrink:0;width:var(--sd-number-input-stepper-size);height:var(--sd-number-input-stepper-size);border:none;border-radius:var(--sd-number-input-stepper-radius);background-color:var(--sd-number-input-stepper-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;transition:background-color 0.15s ease}sd-number-input .sd-number-input__content .sd-number-input__stepper:hover:not(:disabled){filter:brightness(0.95)}sd-number-input .sd-number-input__content .sd-number-input__stepper:disabled{background-color:var(--sd-number-input-stepper-bg-disabled);cursor:not-allowed}"}},[512,"sd-number-input",{size:[1],min:[2],max:[2],step:[2],useButton:[4,"use-button"],useDecimal:[4,"use-decimal"],value:[1032],label:[1],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],placeholder:[1],disabled:[4],width:[8],rules:[16],autoFocus:[4,"auto-focus"],status:[1],hint:[1],errorMessage:[1,"error-message"],inputPrefix:[1,"input-prefix"],inputSuffix:[1,"input-suffix"],inputClass:[1,"input-class"],readonly:[4],inputStyle:[16],error:[1028],focused:[1028],hovered:[1028],name:[1],internalValue:[32],displayValue:[32],sdValidate:[64],sdReset:[64],sdResetValidate:[64],sdFocus:[64],sdGetNativeElement:[64]},void 0,{value:[{valueChanged:0}],internalValue:[{internalValueChanged:0}]}]),v=_,w=function(){"undefined"!=typeof customElements&&["sd-number-input","sd-button","sd-field","sd-floating-portal","sd-icon","sd-tooltip"].forEach((t=>{switch(t){case"sd-number-input":customElements.get(n(t))||customElements.define(n(t),_);break;case"sd-button":customElements.get(n(t))||d();break;case"sd-field":customElements.get(n(t))||u();break;case"sd-floating-portal":customElements.get(n(t))||a();break;case"sd-icon":customElements.get(n(t))||o();break;case"sd-tooltip":customElements.get(n(t))||l()}}))};export{v as SdNumberInput,w as defineCustomElement}
@@ -1 +1 @@
1
- import{S as o,d as s}from"./p-DdPLfQ4q.js";const p=o,r=s;export{p as SdSelectDropdown,r as defineCustomElement}
1
+ import{S as o,d as s}from"./p-CHFGWh0m.js";const m=o,p=s;export{m as SdSelectDropdown,p as defineCustomElement}
@@ -1 +1 @@
1
- import{p as e,c as t,h as s,F as o,t as i}from"./p-CNAzAL53.js";import{n as r}from"./p-CCwNgVmC.js";import{B as n}from"./p-Btx5sC7s.js";import{S as l}from"./p-Cy6HMEsK.js";import{d}from"./p-BZm6KN1s.js";import{d as a}from"./p-BZc6lwGD.js";import{d as p}from"./p-Bp0B8tcl.js";import{d as h}from"./p-BM0sVq5Z.js";import{d as c}from"./p-Bbs5Ws0k.js";import{d as u}from"./p-DaAhgdib.js";import{d as g}from"./p-BC1rdUkh.js";import{d as m}from"./p-iAWNMLXh.js";import{d as w}from"./p-DBex-RJU.js";import{d as f}from"./p-BH5mLw-t.js";import{d as b}from"./p-CTwEbxRN.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="";labelWidth="";addonLabel="";addonAlign="start";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,d=r-l,a=i+r;s<i+l?t.scrollTo({top:s-l,behavior:"instant"}):s+o>a&&t.scrollTo({top:s+o-d-l,behavior:"instant"})}))}render(){return s("sd-field",{key:"d4d80ad428cc1eb5a1d6878354c213bd25ea944a",label:this.label,labelWidth:this.labelWidth,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,addonLabel:this.addonLabel,addonAlign:this.addonAlign,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e,style:{"--field-width":this.width||"200px"}},s("div",{key:"1f9a8c1c9e34635ce7c1f91fc8d456b84a668c63",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;cursor:pointer}.sd-field--disabled sd-select-group .sd-select-group .sd-select-group__trigger{cursor:not-allowed}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],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],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))||d();break;case"sd-checkbox":customElements.get(i(e))||a();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))||w();break;case"sd-select-search-input":customElements.get(i(e))||f();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-CNAzAL53.js";import{n as r}from"./p-CCwNgVmC.js";import{B as n}from"./p-Btx5sC7s.js";import{S as l}from"./p-Cy6HMEsK.js";import{d}from"./p-BZm6KN1s.js";import{d as a}from"./p-BZc6lwGD.js";import{d as p}from"./p-Bp0B8tcl.js";import{d as h}from"./p-BM0sVq5Z.js";import{d as c}from"./p-Bbs5Ws0k.js";import{d as u}from"./p-DaAhgdib.js";import{d as g}from"./p-DEBakAhm.js";import{d as m}from"./p-iAWNMLXh.js";import{d as w}from"./p-DBex-RJU.js";import{d as f}from"./p-D8fG9Yt7.js";import{d as b}from"./p-CTwEbxRN.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="";labelWidth="";addonLabel="";addonAlign="start";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,d=r-l,a=i+r;s<i+l?t.scrollTo({top:s-l,behavior:"instant"}):s+o>a&&t.scrollTo({top:s+o-d-l,behavior:"instant"})}))}render(){return s("sd-field",{key:"aa5470eaba6489d6eb380996eeb0c0c985e20fbf",label:this.label,labelWidth:this.labelWidth,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,addonLabel:this.addonLabel,addonAlign:this.addonAlign,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:e=>this.formField=e,style:{"--field-width":this.width||"200px"}},s("div",{key:"90d4cc0bde3240be6a8406c9ea6c82c2fdad3482",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;cursor:pointer}.sd-field--disabled sd-select-group .sd-select-group .sd-select-group__trigger{cursor:not-allowed}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],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[4],containerStyle:[16],triggerStyle:[16],dropdownStyle:[16],optionStyle:[16],labelStyle:[16],optionRenderer:[16],name:[1],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))||d();break;case"sd-checkbox":customElements.get(i(e))||a();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))||w();break;case"sd-select-search-input":customElements.get(i(e))||f();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-CNAzAL53.js";import{n as l}from"./p-CCwNgVmC.js";import{B as r}from"./p-Btx5sC7s.js";import{S as n}from"./p-Cy6HMEsK.js";import{d as p}from"./p-BZm6KN1s.js";import{d as h}from"./p-BZc6lwGD.js";import{d as a}from"./p-Bp0B8tcl.js";import{d}from"./p-BM0sVq5Z.js";import{d as c}from"./p-Bbs5Ws0k.js";import{d as u}from"./p-DaAhgdib.js";import{d as m}from"./p-BC1rdUkh.js";import{d as g}from"./p-iAWNMLXh.js";import{d as b}from"./p-DBex-RJU.js";import{d as w}from"./p-BH5mLw-t.js";import{d as f}from"./p-CTwEbxRN.js";const x=t(class extends r{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="";labelWidth="";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 n(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,r=e.querySelector(".sd-select-multiple-group__search-container"),n=r?r.offsetHeight:0,p=l-n,h=o+l;s<o+n?e.scrollTo({top:s-n,behavior:"instant"}):s+i>h&&e.scrollTo({top:s+i-p-n,behavior:"instant"})}))}render(){return s("sd-field",{key:"4140b6529565f97fa65d81ae1462108476d52bcc",label:this.label,labelWidth:this.labelWidth,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:"2dab2697f3e375d214b66464b0f57aa32e77757b",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;cursor:pointer}.sd-field--disabled sd-select-multiple-group .sd-select-multiple-group .sd-select-multiple-group__trigger{cursor:not-allowed}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],labelWidth:[8,"label-width"],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))||b();break;case"sd-select-search-input":customElements.get(o(t))||w();break;case"sd-tooltip":customElements.get(o(t))||f()}}))};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-CNAzAL53.js";import{n as l}from"./p-CCwNgVmC.js";import{B as r}from"./p-Btx5sC7s.js";import{S as n}from"./p-Cy6HMEsK.js";import{d as p}from"./p-BZm6KN1s.js";import{d as h}from"./p-BZc6lwGD.js";import{d as a}from"./p-Bp0B8tcl.js";import{d}from"./p-BM0sVq5Z.js";import{d as c}from"./p-Bbs5Ws0k.js";import{d as u}from"./p-DaAhgdib.js";import{d as m}from"./p-DEBakAhm.js";import{d as g}from"./p-iAWNMLXh.js";import{d as b}from"./p-DBex-RJU.js";import{d as f}from"./p-D8fG9Yt7.js";import{d as w}from"./p-CTwEbxRN.js";const x=t(class extends r{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="";labelWidth="";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 n(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,r=e.querySelector(".sd-select-multiple-group__search-container"),n=r?r.offsetHeight:0,p=l-n,h=o+l;s<o+n?e.scrollTo({top:s-n,behavior:"instant"}):s+i>h&&e.scrollTo({top:s+i-p-n,behavior:"instant"})}))}render(){return s("sd-field",{key:"4140b6529565f97fa65d81ae1462108476d52bcc",label:this.label,labelWidth:this.labelWidth,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:"2dab2697f3e375d214b66464b0f57aa32e77757b",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;cursor:pointer}.sd-field--disabled sd-select-multiple-group .sd-select-multiple-group .sd-select-multiple-group__trigger{cursor:not-allowed}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],labelWidth:[8,"label-width"],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))||b();break;case"sd-select-search-input":customElements.get(o(t))||f();break;case"sd-tooltip":customElements.get(o(t))||w()}}))};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-CNAzAL53.js";import{S as l}from"./p-Cy6HMEsK.js";import{B as o}from"./p-Btx5sC7s.js";import{n as r}from"./p-CCwNgVmC.js";import{d}from"./p-BZm6KN1s.js";import{d as n}from"./p-BZc6lwGD.js";import{d as c}from"./p-Bp0B8tcl.js";import{d as a}from"./p-BM0sVq5Z.js";import{d as p}from"./p-Bbs5Ws0k.js";import{d as h}from"./p-DaAhgdib.js";import{d as m}from"./p-BC1rdUkh.js";import{d as u}from"./p-iAWNMLXh.js";import{d as b}from"./p-DdPLfQ4q.js";import{d as f}from"./p-CqghR1aS.js";import{d as w}from"./p-BH5mLw-t.js";import{d as g}from"./p-CTwEbxRN.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="";labelWidth="";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:"6fc9d0059e91044ef8e40881276bbef857ef1225",label:this.label,labelWidth:this.labelWidth,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:"b2591c655dc27b1db16e8f40c0a33997acbee35b",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;cursor:pointer}.sd-field--disabled sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger{cursor:not-allowed}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],labelWidth:[8,"label-width"],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))||c();break;case"sd-floating-portal":customElements.get(i(e))||a();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
+ import{p as e,c as s,h as t,t as i}from"./p-CNAzAL53.js";import{S as l}from"./p-Cy6HMEsK.js";import{B as o}from"./p-Btx5sC7s.js";import{n as r}from"./p-CCwNgVmC.js";import{d}from"./p-BZm6KN1s.js";import{d as n}from"./p-BZc6lwGD.js";import{d as a}from"./p-Bp0B8tcl.js";import{d as c}from"./p-BM0sVq5Z.js";import{d as p}from"./p-Bbs5Ws0k.js";import{d as h}from"./p-DaAhgdib.js";import{d as m}from"./p-DEBakAhm.js";import{d as u}from"./p-iAWNMLXh.js";import{d as b}from"./p-CHFGWh0m.js";import{d as f}from"./p-CqghR1aS.js";import{d as w}from"./p-D8fG9Yt7.js";import{d as g}from"./p-CTwEbxRN.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="";labelWidth="";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:"6fc9d0059e91044ef8e40881276bbef857ef1225",label:this.label,labelWidth:this.labelWidth,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:"b2591c655dc27b1db16e8f40c0a33997acbee35b",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;cursor:pointer}.sd-field--disabled sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger{cursor:not-allowed}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],labelWidth:[8,"label-width"],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 o,d as s}from"./p-BH5mLw-t.js";const t=o,m=s;export{t as SdSelectSearchInput,m as defineCustomElement}
1
+ import{S as o,d as s}from"./p-D8fG9Yt7.js";const t=o,p=s;export{t as SdSelectSearchInput,p as defineCustomElement}
@@ -1 +1 @@
1
- import{S as s,d as o}from"./p-DuyLeqsh.js";const p=s,r=o;export{p as SdSelectV2Listbox,r as defineCustomElement}
1
+ import{S as o,d as s}from"./p-DuMkBStM.js";const t=o,p=s;export{t as SdSelectV2Listbox,p as defineCustomElement}
@@ -1 +1 @@
1
- import{S as s,d as o}from"./p-CiSap3Ks.js";const p=s,a=o;export{p as SdSelectV2,a as defineCustomElement}
1
+ import{S as o,d as s}from"./p-CgL8_FSD.js";const p=o,r=s;export{p as SdSelectV2,r as defineCustomElement}
@@ -1 +1 @@
1
- import{p as s,c as e,h as t,t as i}from"./p-CNAzAL53.js";import{B as o}from"./p-Btx5sC7s.js";import{S as l}from"./p-Cy6HMEsK.js";import{n as d}from"./p-CCwNgVmC.js";import{d as n}from"./p-BZm6KN1s.js";import{d as r}from"./p-BZc6lwGD.js";import{d as a}from"./p-Bp0B8tcl.js";import{d as c}from"./p-BM0sVq5Z.js";import{d as h}from"./p-Bbs5Ws0k.js";import{d as p}from"./p-DaAhgdib.js";import{d as m}from"./p-BC1rdUkh.js";import{d as u}from"./p-iAWNMLXh.js";import{d as b}from"./p-DdPLfQ4q.js";import{d as f}from"./p-CqghR1aS.js";import{d as w}from"./p-BH5mLw-t.js";import{d as g}from"./p-CTwEbxRN.js";const x=s(class extends o{constructor(s){super(!1),!1!==s&&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";autoFocus=!1;disabled=!1;clearable=!1;searchable=!1;label="";labelWidth="";addonLabel="";addonAlign="start";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=d();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 s=this.triggerRef,e=s?.getBoundingClientRect();this.dropDownWidth=e?.width?e.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(s){this.selectRef?.contains(s.target)||(this.isOpen=!1)}handleDocumentKeydown(s){if(s.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(s.key))switch(s.preventDefault(),s.key){case"ArrowDown":case"ArrowUp":const e=new l(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,s.key);this.itemIndex=e;break;case"Enter":const t=this.filteredOptions[this.itemIndex];t&&!t.disabled&&(this.value=t.value,this.isOpen=!1);break;case"Escape":this.isOpen=!1}}getSelectedOption(){return this.options.find((s=>s.value===this.value))}closeDropdown(){this.isOpen=!1}handleTriggerClick=s=>{s.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleOptionClick=s=>{const{option:e,event:t}=s;if(t.stopPropagation(),!e.disabled){this.value=e.value,this.isOpen=!1;const s=this.getSelectedOption();this.update?.emit({value:s?.value||null,option:s||null})}};render(){return t("sd-field",{key:"6939161d0edb5eabca307b3883e02a53a29e66c4",label:this.label,labelWidth:this.labelWidth,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,addonLabel:this.addonLabel,addonAlign:this.addonAlign,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:s=>this.formField=s},t("div",{key:"a57d17cb3ff775c724f3a6c13025c04e031de45f",class:{"sd-select":!0,"sd-select--disabled":this.disabled,"sd-select--error":!!this.error,"sd-select--label":!!this.label},ref:s=>this.selectRef=s},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const s=this.getSelectedOption();return t("div",{class:"sd-select__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,ref:s=>this.triggerRef=s},t("span",{class:"sd-select__value"},s?s.label:this.placeholder),this.clearable&&s&&!this.disabled&&t("sd-icon",{key:"clear-icon",name:"close",size:10,color:"#888",class:"sd-select__clear",onClick:async s=>{s.stopPropagation(),this.value=null,await(this.formField?.sdValidate())}}),t("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"#888",class:{"sd-select__arrow":!0,"sd-select__arrow--open":this.isOpen}}))}renderDropdown(){if(!1===this.isOpen)return null;const s=this.selectRef?.querySelector(".sd-select__trigger")||this.selectRef;return t("sd-portal",{open:this.isOpen,parentRef:s,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,onSdOptionClick:({detail:s})=>this.handleOptionClick(s),onSdOptionFiltered:({detail:s})=>this.filteredOptions=s}))}static get watchers(){return{isOpen:[{isOpenChanged:0}]}}static get style(){return"sd-select{display:inline-flex;flex-flow:column nowrap;height:fit-content}sd-select *:focus,sd-select *:focus-visible,sd-select *:focus-within{outline:none !important}sd-select .sd-select{width:100%}sd-select .sd-select .sd-select__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;height:100%;align-items:center;cursor:pointer}.sd-field--disabled sd-select .sd-select .sd-select__trigger{cursor:not-allowed}sd-select .sd-select .sd-select__trigger .sd-select__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 .sd-select .sd-select__trigger .sd-select__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select .sd-select .sd-select__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease;margin-left:8px}sd-select .sd-select .sd-select__arrow--open{transform:rotate(180deg)}"}},[512,"sd-select",{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],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],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","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((s=>{switch(s){case"sd-select":customElements.get(i(s))||customElements.define(i(s),x);break;case"sd-button":customElements.get(i(s))||n();break;case"sd-checkbox":customElements.get(i(s))||r();break;case"sd-field":customElements.get(i(s))||a();break;case"sd-floating-portal":customElements.get(i(s))||c();break;case"sd-ghost-button":customElements.get(i(s))||h();break;case"sd-icon":customElements.get(i(s))||p();break;case"sd-input":customElements.get(i(s))||m();break;case"sd-portal":customElements.get(i(s))||u();break;case"sd-select-dropdown":customElements.get(i(s))||b();break;case"sd-select-option":customElements.get(i(s))||f();break;case"sd-select-search-input":customElements.get(i(s))||w();break;case"sd-tooltip":customElements.get(i(s))||g()}}))};export{k as SdSelect,_ as defineCustomElement}
1
+ import{p as s,c as e,h as t,t as i}from"./p-CNAzAL53.js";import{B as o}from"./p-Btx5sC7s.js";import{S as l}from"./p-Cy6HMEsK.js";import{n as d}from"./p-CCwNgVmC.js";import{d as n}from"./p-BZm6KN1s.js";import{d as r}from"./p-BZc6lwGD.js";import{d as a}from"./p-Bp0B8tcl.js";import{d as c}from"./p-BM0sVq5Z.js";import{d as h}from"./p-Bbs5Ws0k.js";import{d as p}from"./p-DaAhgdib.js";import{d as m}from"./p-DEBakAhm.js";import{d as u}from"./p-iAWNMLXh.js";import{d as b}from"./p-CHFGWh0m.js";import{d as f}from"./p-CqghR1aS.js";import{d as g}from"./p-D8fG9Yt7.js";import{d as w}from"./p-CTwEbxRN.js";const x=s(class extends o{constructor(s){super(!1),!1!==s&&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";autoFocus=!1;disabled=!1;clearable=!1;searchable=!1;label="";labelWidth="";addonLabel="";addonAlign="start";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=d();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 s=this.triggerRef,e=s?.getBoundingClientRect();this.dropDownWidth=e?.width?e.width+"px":this.width}disconnectedCallback(){this.cleanupEvent()}handleDocumentClick(s){this.selectRef?.contains(s.target)||(this.isOpen=!1)}handleDocumentKeydown(s){if(s.stopPropagation(),["ArrowDown","ArrowUp","Enter","Escape"].includes(s.key))switch(s.preventDefault(),s.key){case"ArrowDown":case"ArrowUp":const e=new l(this.searchable,this.filteredOptions).getNextIndex(this.itemIndex,s.key);this.itemIndex=e;break;case"Enter":const t=this.filteredOptions[this.itemIndex];t&&!t.disabled&&(this.value=t.value,this.isOpen=!1);break;case"Escape":this.isOpen=!1}}getSelectedOption(){return this.options.find((s=>s.value===this.value))}closeDropdown(){this.isOpen=!1}handleTriggerClick=s=>{s.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen,this.dropDownShow?.emit({isOpen:this.isOpen}))};handleOptionClick=s=>{const{option:e,event:t}=s;if(t.stopPropagation(),!e.disabled){this.value=e.value,this.isOpen=!1;const s=this.getSelectedOption();this.update?.emit({value:s?.value||null,option:s||null})}};render(){return t("sd-field",{key:"28b4667a386236c2486af08f636ede3dc6c41f91",label:this.label,labelWidth:this.labelWidth,name:this.name,rules:this.rules,error:this.error,disabled:this.disabled,icon:this.icon,addonLabel:this.addonLabel,addonAlign:this.addonAlign,labelTooltip:this.labelTooltip,labelTooltipProps:this.labelTooltipProps,ref:s=>this.formField=s},t("div",{key:"ccee78ca4a773c521634e4054ce3b3d8e9713362",class:{"sd-select":!0,"sd-select--disabled":this.disabled,"sd-select--error":!!this.error,"sd-select--label":!!this.label},ref:s=>this.selectRef=s},this.renderTrigger(),this.renderDropdown()))}renderTrigger(){const s=this.getSelectedOption();return t("div",{class:"sd-select__trigger",tabindex:this.disabled?-1:0,onClick:this.handleTriggerClick,ref:s=>this.triggerRef=s},t("span",{class:"sd-select__value"},s?s.label:this.placeholder),this.clearable&&s&&!this.disabled&&t("sd-icon",{key:"clear-icon",name:"close",size:10,color:"#888",class:"sd-select__clear",onClick:async s=>{s.stopPropagation(),this.value=null,await(this.formField?.sdValidate())}}),t("sd-icon",{key:"arrow-icon",name:"arrowDown",color:"#888",class:{"sd-select__arrow":!0,"sd-select__arrow--open":this.isOpen}}))}renderDropdown(){if(!1===this.isOpen)return null;const s=this.selectRef?.querySelector(".sd-select__trigger")||this.selectRef;return t("sd-portal",{open:this.isOpen,parentRef:s,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,onSdOptionClick:({detail:s})=>this.handleOptionClick(s),onSdOptionFiltered:({detail:s})=>this.filteredOptions=s}))}static get watchers(){return{isOpen:[{isOpenChanged:0}]}}static get style(){return"sd-select{display:inline-flex;flex-flow:column nowrap;height:fit-content}sd-select *:focus,sd-select *:focus-visible,sd-select *:focus-within{outline:none !important}sd-select .sd-select{width:100%}sd-select .sd-select .sd-select__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;height:100%;align-items:center;cursor:pointer}.sd-field--disabled sd-select .sd-select .sd-select__trigger{cursor:not-allowed}sd-select .sd-select .sd-select__trigger .sd-select__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 .sd-select .sd-select__trigger .sd-select__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select .sd-select .sd-select__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease;margin-left:8px}sd-select .sd-select .sd-select__arrow--open{transform:rotate(180deg)}"}},[512,"sd-select",{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],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[4],optionRenderer:[16],name:[1],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","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((s=>{switch(s){case"sd-select":customElements.get(i(s))||customElements.define(i(s),x);break;case"sd-button":customElements.get(i(s))||n();break;case"sd-checkbox":customElements.get(i(s))||r();break;case"sd-field":customElements.get(i(s))||a();break;case"sd-floating-portal":customElements.get(i(s))||c();break;case"sd-ghost-button":customElements.get(i(s))||h();break;case"sd-icon":customElements.get(i(s))||p();break;case"sd-input":customElements.get(i(s))||m();break;case"sd-portal":customElements.get(i(s))||u();break;case"sd-select-dropdown":customElements.get(i(s))||b();break;case"sd-select-option":customElements.get(i(s))||f();break;case"sd-select-search-input":customElements.get(i(s))||g();break;case"sd-tooltip":customElements.get(i(s))||w()}}))};export{k as SdSelect,_ as defineCustomElement}
@@ -1 +1 @@
1
- import{p as t,H as e,c as s,e as i,h as a,d as h,t as n}from"./p-CNAzAL53.js";import{T as l}from"./p-sZMi_32I.js";import{d as o}from"./p-BZm6KN1s.js";import{d as r}from"./p-BZc6lwGD.js";import{d}from"./p-BXdEjuI_.js";import{d as c}from"./p-Bp0B8tcl.js";import{d as u}from"./p-BM0sVq5Z.js";import{d as b}from"./p-DaAhgdib.js";import{d as g}from"./p-BLwIhCdO.js";import{d as p}from"./p-iAWNMLXh.js";import{d as m}from"./p-CiSap3Ks.js";import{d as f}from"./p-DWMY9O2B.js";import{d as y}from"./p-9ZtJl4s6.js";import{d as w}from"./p-DuyLeqsh.js";import{d as C}from"./p-BALOEavB.js";import{d as k}from"./p-CTwEbxRN.js";let S=(t=21)=>{let e="",s=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&s[t]];return e};const v=t(class t extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.sdSelectChange=s(this,"sdSelectChange",7),this.sdPageChange=s(this,"sdPageChange",7),this.sdRowsPerPageChange=s(this,"sdRowsPerPageChange",7),this.sdVirtualUpdate=s(this,"sdVirtualUpdate",7),this.sdVirtualReachEnd=s(this,"sdVirtualReachEnd",7)}static DEFAULT_NO_DATA_LABEL="데이터가 없습니다.";get el(){return this}tableId=S(8);fallbackTableId=S(8);columns=[];rows;selected=[];rowKey="id";selectable=!1;resizable=!1;width;height;stickyHeader=!1;stickyColumn={left:0,right:0};noDataLabel=t.DEFAULT_NO_DATA_LABEL;resolvedNoDataLabel=t.DEFAULT_NO_DATA_LABEL;isLoading=!1;pagination;useInternalPagination=!1;useRowsPerPageSelect=!1;useVirtualScroll=!1;rowHeight=40;virtualBuffer=5;virtualEndThreshold=10;rowsPerPageOption=[{label:"10개씩 보기",value:10},{label:"25개씩 보기",value:25},{label:"50개씩 보기",value:50},{label:"100개씩 보기",value:100}];sdSelectChange;sdPageChange;sdRowsPerPageChange;sdVirtualUpdate;sdVirtualReachEnd;currentPage=1;innerRowsPerPage=10;innerSelected=new Set;columnWidths=[];scrolledLeft=!1;scrolledRight=!1;rowCount=0;loadingScrollTop=0;vsStart=0;vsEnd=0;lastReachEndNotifiedRowCount=-1;scrollContainer=null;onScroll;toFiniteNumber(t,e){const s="number"==typeof t?t:Number(t);return Number.isFinite(s)?s:e}isRowsPerPageValue(t){return null===t||"string"==typeof t||"number"==typeof t}isValidTableId(t){return"string"==typeof t&&t.trim().length>0&&"undefined"!==t&&"null"!==t}getResolvedTableId(){if(this.isValidTableId(this.tableId))return this.tableId;const t=this.el?.getAttribute(l);return this.isValidTableId(t)?t:this.fallbackTableId}syncTableIdAttribute(){const t=this.getResolvedTableId();this.el?.getAttribute(l)!==t&&this.el.setAttribute(l,t)}handleIsLoadingChange(t){t&&(this.loadingScrollTop=this.scrollContainer?.scrollTop??0)}handleUseVirtualScrollChange(t){t&&i((()=>this.propagateVirtualUpdate()))}handleColumnsChange(t){this.columnWidths=t.map((t=>parseInt(t.width||"120",10))),this.refreshChildrenConfig()}handleRowsChange(t){Array.isArray(t)&&(this.rowCount=t.length,this.useVirtualScroll&&this.propagateVirtualUpdate(!0),this.pushRowsToChildren(t))}handleTableIdChange(){this.syncTableIdAttribute()}handleNoDataLabelChange(e){this.resolvedNoDataLabel="string"==typeof e&&e.trim().length>0&&"undefined"!==e&&"null"!==e?e:t.DEFAULT_NO_DATA_LABEL}handleConfigChange(){this.refreshChildrenConfig()}handleSelectedChange(t){this.innerSelected=new Set(t)}handlePaginationChange(t){t?.page&&t.page!==this.currentPage&&(this.currentPage=t.page),t?.rowsPerPage&&t.rowsPerPage!==this.innerRowsPerPage&&(this.innerRowsPerPage=t.rowsPerPage)}componentWillLoad(){this.syncTableIdAttribute(),this.handleNoDataLabelChange(this.noDataLabel),this.innerSelected=new Set(this.selected||[]),this.columnWidths=(this.columns||[]).map((t=>parseInt(t.width||"120",10))),this.pagination?.page&&(this.currentPage=this.pagination.page),this.pagination?.rowsPerPage&&(this.innerRowsPerPage=this.pagination.rowsPerPage);const t=this.el;t.isRowSelectedSync=this.isRowSelectedSync.bind(this),t.updateRowSelectSync=this.updateRowSelectSync.bind(this),t.toggleSelectAllSync=this.toggleSelectAllSync.bind(this),t.getIsAllCheckedSync=this.getIsAllCheckedSync.bind(this),t.getStickyStyleSync=this.getStickyStyleSync.bind(this),t.setRowCountSync=this.setRowCountSync.bind(this),t.handleResize=this.handleResize.bind(this),t.getPaginationInfoSync=this.getPaginationInfoSync.bind(this),t.getVirtualScrollRangeSync=this.getVirtualScrollRangeSync.bind(this),t.getConfigSync=this.getConfigSync.bind(this),t.getTableIdSync=()=>this.getResolvedTableId(),t.getVirtualScrollConfigSync=this.getVirtualScrollConfigSync.bind(this),t.calculateVisibleRange=this.calculateVisibleRange.bind(this),Array.isArray(this.rows)&&(this.rowCount=this.rows.length,this.pushRowsToChildren(this.rows))}componentDidLoad(){Array.isArray(this.rows)&&this.pushRowsToChildren(this.rows),i((()=>{const t=this.el.shadowRoot?.querySelector(".sd-table__wrapper");if(!t)return;let e=!1;this.onScroll=()=>{const s=t.scrollLeft,i=s>0,a=s+t.clientWidth<t.scrollWidth;this.scrolledLeft===i&&this.scrolledRight===a||(this.scrolledLeft=i,this.scrolledRight=a,this.refreshChildrenConfig()),this.useVirtualScroll&&!e&&(e=!0,requestAnimationFrame((()=>{e=!1,this.propagateVirtualUpdate()})))},this.scrollContainer=t,t.addEventListener("scroll",this.onScroll,{passive:!0}),this.onScroll(),this.useVirtualScroll&&this.propagateVirtualUpdate()}))}disconnectedCallback(){this.scrollContainer&&this.onScroll&&this.scrollContainer.removeEventListener("scroll",this.onScroll)}pushRowsToChildren(t){const e=this.el.querySelector("sd-tbody");e&&(e.rows=t);const s=this.el.querySelector("sd-thead");s&&(s.rows=t)}handleStructureSlotChange=()=>{Array.isArray(this.rows)&&this.pushRowsToChildren(this.rows),this.refreshChildrenConfig()};refreshChildrenSelection(){const t=this.el.querySelector("sd-thead"),e=this.el.querySelectorAll("sd-tr");t?.refreshSelection?.(),e.forEach((t=>t?.refreshSelection?.()))}refreshChildrenConfig(){const t=this.el.querySelector("sd-thead"),e=this.el.querySelectorAll("sd-tr");t?.refreshConfig?.(),e.forEach((t=>t?.refreshConfig?.()))}maybeEmitVirtualReachEnd(t,e){const s=Math.max(1,this.virtualEndThreshold);e>=Math.max(0,this.rowCount-s)&&this.lastReachEndNotifiedRowCount!==this.rowCount&&(this.lastReachEndNotifiedRowCount=this.rowCount,this.sdVirtualReachEnd.emit({from:t,to:e,rowCount:this.rowCount,threshold:s}))}propagateVirtualUpdate(t=!1){if(!this.scrollContainer||!this.useVirtualScroll)return;const e=this.toFiniteNumber(this.scrollContainer.scrollTop,0),s=this.toFiniteNumber(this.scrollContainer.clientHeight,0),{start:i,end:a}=this.calculateVisibleRange(e,s);if(!Number.isFinite(i)||!Number.isFinite(a))return;const h=this.vsStart!==i||this.vsEnd!==a;if(!h&&!t)return;this.vsStart=i,this.vsEnd=a;const n=i*this.rowHeight,l=Math.max(0,(this.rowCount-a)*this.rowHeight),o=this.el.querySelector("sd-tbody");o?.setSpacersSync?.(n,l),h&&this.sdVirtualUpdate.emit({from:i,to:a}),this.maybeEmitVirtualReachEnd(i,a)}getVirtualScrollConfigSync(){return{useVirtualScroll:this.useVirtualScroll,rowHeight:this.rowHeight,virtualBuffer:this.virtualBuffer,vsStart:this.vsStart,vsEnd:this.vsEnd,rowCount:this.rowCount}}getConfigSync(){return{columns:this.columns,selectable:this.selectable,resizable:this.resizable,stickyColumn:this.stickyColumn,stickyHeader:this.stickyHeader,scrolledLeft:this.scrolledLeft,scrolledRight:this.scrolledRight,columnWidths:this.columnWidths}}isRowSelectedSync(t){return Array.from(this.innerSelected).some((e=>e[this.rowKey]===t[this.rowKey]))}async isRowSelected(t){return this.isRowSelectedSync(t)}updateRowSelectSync(t){const e=Array.from(this.innerSelected),s=this.isRowSelectedSync(t)?e.filter((e=>e[this.rowKey]!==t[this.rowKey])):[...e,t];s.length!==e.length&&(this.innerSelected=new Set(s),this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected)),this.refreshChildrenSelection())}async updateRowSelect(t){this.updateRowSelectSync(t)}toggleSelectAllSync(t,e){if(t){const t=new Set([...e]);this.innerSelected=new Set([...this.innerSelected,...t])}else{const t=e.map((t=>t[this.rowKey]));this.innerSelected=new Set([...this.innerSelected].filter((e=>!t.includes(e[this.rowKey]))))}this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected)),this.refreshChildrenSelection()}async toggleSelectAll(t,e){this.toggleSelectAllSync(t,e)}getIsAllCheckedSync(t){const e=t.length,s=t.filter((t=>Array.from(this.innerSelected).some((e=>e[this.rowKey]===t[this.rowKey])))).length;return 0!==s&&(s===e||null)}async getIsAllChecked(t){return this.getIsAllCheckedSync(t)}changePage(t){this.useInternalPagination?(this.currentPage=t,this.sdPageChange.emit(this.currentPage),this.updateRowsVisibility()):this.sdPageChange.emit(t)}updateRowsVisibility(){this.el.querySelectorAll("sd-tr").forEach((t=>t?.updateVisibility?.()))}changeRowsPerPage(t){const e=t?Number(t):0;if(!this.useInternalPagination)return void this.sdRowsPerPageChange.emit(e);this.innerRowsPerPage=e;const s=Math.max(1,Math.ceil(this.rowCount/e));this.currentPage>s&&(this.currentPage=s),this.sdRowsPerPageChange.emit(e),this.updateRowsVisibility()}get lastPageNumber(){if(this.useInternalPagination)return Math.max(1,Math.ceil(this.rowCount/this.innerRowsPerPage));const{lastPage:t,rowsPerPage:e=10}=this.pagination||{};return t??Math.max(1,Math.ceil(this.rowCount/e))}handleResize(t,e,s=!1){if("undefined"==typeof document)return;const i=e.clientX,a=this.columnWidths[t],h=e=>{const h=this.columns[t];if(!h)return;const n=h.maxWidth||9999,l=e.clientX-i,o=Math.min(Math.max(a+(s?-l:l),h.minWidth||50),n);this.columnWidths=this.columnWidths.map(((e,s)=>s===t?o:e));const r=this.el.querySelector("sd-thead"),d=this.el.querySelectorAll("sd-tr");r?.setColumnWidths?.(this.columnWidths),d.forEach((t=>t?.setColumnWidths?.(this.columnWidths)));const c=this.stickyColumn?.right||0,u=this.columns.filter((t=>!1!==t.visible)).length;c>0&&t===u-c&&requestAnimationFrame((()=>{this.onScroll?.()}))},n=()=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",n)};document.addEventListener("mousemove",h),document.addEventListener("mouseup",n)}getStickyStyleSync(t){return{"--sticky-left-offset":this.columnWidths.slice(0,t).reduce(((t,e)=>t+e),this.selectable?52:0)+"px","--sticky-right-offset":this.columnWidths.filter(((e,s)=>s>=this.columns.filter((t=>!1!==t.visible)).length-(this.stickyColumn?.right||0)&&s>t)).reduce(((t,e)=>t+e),0)+"px",width:this.columnWidths[t]+"px",minWidth:this.columnWidths[t]+"px",maxWidth:this.columnWidths[t]+"px"}}async getStickyStyle(t){return this.getStickyStyleSync(t)}setRowCountSync(t){const e=Math.max(0,Math.floor(this.toFiniteNumber(t,0)));e!==this.rowCount&&(this.lastReachEndNotifiedRowCount=-1),this.rowCount=e,this.useVirtualScroll&&this.propagateVirtualUpdate(!0)}async setRowCount(t){this.setRowCountSync(t)}calculateVisibleRange(t,e){const s=Math.max(1,this.toFiniteNumber(this.rowHeight,40)),i=Math.max(0,Math.floor(this.toFiniteNumber(this.virtualBuffer,5))),a=Math.max(0,this.toFiniteNumber(t,0)),h=Math.max(0,this.toFiniteNumber(e,0)),n=Math.max(0,Math.floor(this.toFiniteNumber(this.rowCount,0))),l=Math.floor(a/s),o=Math.ceil(h/s);return{start:Math.max(0,l-i),end:Math.min(n,l+o+i)}}getPaginationInfoSync(){if(!this.useInternalPagination||!this.pagination)return null;const t=(this.currentPage-1)*this.innerRowsPerPage;return{startIndex:t,endIndex:t+this.innerRowsPerPage,currentPage:this.currentPage,rowsPerPage:this.innerRowsPerPage}}async getPaginationInfo(){return this.getPaginationInfoSync()}getVirtualScrollRangeSync(){return this.useVirtualScroll&&this.vsEnd>0?{from:this.vsStart,to:this.vsEnd}:null}get tableClasses(){return["sd-table",this.stickyHeader&&"sd-table--sticky-header",this.selectable&&"sd-table--selectable",this.resizable&&"sd-table--resizable",(this.selectable||(this.stickyColumn?.left??0)>0||(this.stickyColumn?.right??0)>0)&&"sd-table--sticky-column",this.scrolledLeft&&"sd-table--scrolled-left",this.scrolledRight&&"sd-table--scrolled-right",0===this.rowCount&&!this.isLoading&&"sd-table--no-data"].filter(Boolean).join(" ")}render(){const t=this.getResolvedTableId();return a(h,{key:"0b90643721a90b7bb59a6c31f6edeb313849b973"},a("div",{key:"e55fe4f476dbea4888a168861e7e6d6951d7d489",class:"sd-table__container",style:{"--table-width":this.width,"--table-height":this.height,"--table-container-height":`calc(${this.height||"100%"} - ${this.pagination&&this.rowCount>0&&!this.useVirtualScroll?48:0}px)`}},a("div",{key:"de18a900037a7b2f619dd22981c30ed76f5a8111",class:{"sd-table__clip":!0,"sd-table__clip--has-pagination":!(!(this.pagination&&this.pagination.rowsPerPage>0&&this.rowCount>0)||this.useVirtualScroll)}},a("div",{key:"028e0982d415033adaf420ee6b953241c8f3dbec",class:{"sd-table__wrapper":!0,"sd-table__wrapper--loading":this.isLoading,"sd-table__wrapper--no-data":0===this.rowCount&&!this.isLoading}},this.isLoading&&a("div",{key:"8c9110c9c2c26cddbbed8e1f2782ecfaafd3679c",class:"sd-table__loading",style:{top:this.loadingScrollTop+"px"}},a("sd-circle-progress",{key:"51b61f91b0ecebf63fe3e65b94012963f0375e5c",indeterminate:!0})),0===this.rowCount&&!this.isLoading&&a("div",{key:"0a7a45049014869b8164b081a251218d3c814e87",class:"sd-table__no-data"},a("slot",{key:"d4b6219e5dcaaa22be3360f7f0f05a8b32533890",name:"no-data"},a("span",{key:"c76848aad8a1d3967f3cd239090e97266e46ab3e"},this.resolvedNoDataLabel))),a("table",{key:"2b560d112402549c7043b337d944b0de88c3ba0e",class:this.tableClasses},a("slot",{key:"1c4583148df6a585f389c1bed0426fa4a3cb4899",name:t+"-head",onSlotchange:this.handleStructureSlotChange}),a("slot",{key:"a5d983106de61c829f9cbeb541d1908fee48468c",name:t+"-body",onSlotchange:this.handleStructureSlotChange})))),this.pagination&&this.pagination.rowsPerPage>0&&this.rowCount>0&&!this.useVirtualScroll&&a("div",{key:"004355d84e2cfc2fd38a9d4811f14fd66dc5c21b",class:"sd-table__pagination"},a("sd-pagination",{key:"463586c7e57782a7989962f73cb3d4e8c04f5bce",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-v2",{key:"1f26de447da63ef0c4a24ffb49666a0687db9991",value:this.useInternalPagination?this.innerRowsPerPage:this.pagination.rowsPerPage,options:this.rowsPerPageOption,width:"128px",emitValue:!0,onSdUpdate:t=>{this.isRowsPerPageValue(t.detail)&&this.changeRowsPerPage(t.detail)}}))))}static get watchers(){return{isLoading:[{handleIsLoadingChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],columns:[{handleColumnsChange:0}],rows:[{handleRowsChange:0}],tableId:[{handleTableIdChange:0}],noDataLabel:[{handleNoDataLabelChange:0}],selectable:[{handleConfigChange:0}],resizable:[{handleConfigChange:0}],stickyColumn:[{handleConfigChange:0}],stickyHeader:[{handleConfigChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}}static get style(){return"sd-table,:host{display:block;width:100%;max-width:100%;min-width:0}sd-table *,:host *{box-sizing:border-box}.sd-table__container{height:var(--table-height, auto);width:var(--table-width, 100%);max-width:100%;min-width:0;color:#222222;display:flex;flex-direction:column}.sd-table__clip{width:100%;min-width:0;height:var(--table-container-height, 400px);border:1px solid #E1E1E1;border-radius:8px;overflow:hidden}.sd-table__clip--has-pagination{border-radius:8px 8px 0 0}.sd-table__wrapper{width:100%;height:100%;display:flex;flex-direction:column;position:relative;font-size:12px;overflow:auto;background:#FFFFFF}.sd-table__wrapper--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper--no-data{overflow:hidden;pointer-events:none}.sd-table__no-data{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#888888;pointer-events:none;z-index:200;background:rgba(255, 255, 255, 0.6)}.sd-table__loading{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none}.sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table--selectable sd-thead,.sd-table--selectable sd-tbody{--selectable:true}.sd-table--sticky-header sd-thead thead{position:sticky;top:0;z-index:120}.sd-table--sticky-column sd-thead,.sd-table--sticky-column sd-tbody{--sticky-column:true}.sd-table--scrolled-left sd-thead,.sd-table--scrolled-left sd-tbody{--scrolled-left:true}.sd-table--scrolled-right sd-thead,.sd-table--scrolled-right sd-tbody{--scrolled-right:true}.sd-table--resizable sd-thead{--resizable:true}.sd-table--no-data sd-thead{opacity:0.4}.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:0 0 8px 8px}.sd-table__pagination sd-select-v2{position:absolute;right:10px;top:50%;transform:translateY(-50%)}"}},[769,"sd-table",{tableId:[513,"table-id"],columns:[16],rows:[16],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"],useVirtualScroll:[4,"use-virtual-scroll"],rowHeight:[2,"row-height"],virtualBuffer:[2,"virtual-buffer"],virtualEndThreshold:[2,"virtual-end-threshold"],rowsPerPageOption:[16],resolvedNoDataLabel:[32],currentPage:[32],innerRowsPerPage:[32],innerSelected:[32],columnWidths:[32],scrolledLeft:[32],scrolledRight:[32],rowCount:[32],loadingScrollTop:[32],isRowSelected:[64],updateRowSelect:[64],toggleSelectAll:[64],getIsAllChecked:[64],getStickyStyle:[64],setRowCount:[64],getPaginationInfo:[64]},void 0,{isLoading:[{handleIsLoadingChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],columns:[{handleColumnsChange:0}],rows:[{handleRowsChange:0}],tableId:[{handleTableIdChange:0}],noDataLabel:[{handleNoDataLabelChange:0}],selectable:[{handleConfigChange:0}],resizable:[{handleConfigChange:0}],stickyColumn:[{handleConfigChange:0}],stickyHeader:[{handleConfigChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}]),x=v,_=function(){"undefined"!=typeof customElements&&["sd-table","sd-button","sd-checkbox","sd-circle-progress","sd-field","sd-floating-portal","sd-icon","sd-pagination","sd-portal","sd-select-v2","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-table":customElements.get(n(t))||customElements.define(n(t),v);break;case"sd-button":customElements.get(n(t))||o();break;case"sd-checkbox":customElements.get(n(t))||r();break;case"sd-circle-progress":customElements.get(n(t))||d();break;case"sd-field":customElements.get(n(t))||c();break;case"sd-floating-portal":customElements.get(n(t))||u();break;case"sd-icon":customElements.get(n(t))||b();break;case"sd-pagination":customElements.get(n(t))||g();break;case"sd-portal":customElements.get(n(t))||p();break;case"sd-select-v2":customElements.get(n(t))||m();break;case"sd-select-v2-list-item":customElements.get(n(t))||f();break;case"sd-select-v2-list-item-search":customElements.get(n(t))||y();break;case"sd-select-v2-listbox":customElements.get(n(t))||w();break;case"sd-select-v2-trigger":customElements.get(n(t))||C();break;case"sd-tooltip":customElements.get(n(t))||k()}}))};export{x as SdTable,_ as defineCustomElement}
1
+ import{p as t,H as e,c as s,e as i,h as a,d as h,t as n}from"./p-CNAzAL53.js";import{T as l}from"./p-sZMi_32I.js";import{d as o}from"./p-BZm6KN1s.js";import{d as r}from"./p-BZc6lwGD.js";import{d}from"./p-BXdEjuI_.js";import{d as c}from"./p-Bp0B8tcl.js";import{d as u}from"./p-BM0sVq5Z.js";import{d as b}from"./p-DaAhgdib.js";import{d as g}from"./p-BLwIhCdO.js";import{d as p}from"./p-iAWNMLXh.js";import{d as m}from"./p-CgL8_FSD.js";import{d as f}from"./p-DWMY9O2B.js";import{d as y}from"./p-9ZtJl4s6.js";import{d as w}from"./p-DuMkBStM.js";import{d as C}from"./p-BALOEavB.js";import{d as k}from"./p-CTwEbxRN.js";let S=(t=21)=>{let e="",s=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&s[t]];return e};const v=t(class t extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.sdSelectChange=s(this,"sdSelectChange",7),this.sdPageChange=s(this,"sdPageChange",7),this.sdRowsPerPageChange=s(this,"sdRowsPerPageChange",7),this.sdVirtualUpdate=s(this,"sdVirtualUpdate",7),this.sdVirtualReachEnd=s(this,"sdVirtualReachEnd",7)}static DEFAULT_NO_DATA_LABEL="데이터가 없습니다.";get el(){return this}tableId=S(8);fallbackTableId=S(8);columns=[];rows;selected=[];rowKey="id";selectable=!1;resizable=!1;width;height;stickyHeader=!1;stickyColumn={left:0,right:0};noDataLabel=t.DEFAULT_NO_DATA_LABEL;resolvedNoDataLabel=t.DEFAULT_NO_DATA_LABEL;isLoading=!1;pagination;useInternalPagination=!1;useRowsPerPageSelect=!1;useVirtualScroll=!1;rowHeight=40;virtualBuffer=5;virtualEndThreshold=10;rowsPerPageOption=[{label:"10개씩 보기",value:10},{label:"25개씩 보기",value:25},{label:"50개씩 보기",value:50},{label:"100개씩 보기",value:100}];sdSelectChange;sdPageChange;sdRowsPerPageChange;sdVirtualUpdate;sdVirtualReachEnd;currentPage=1;innerRowsPerPage=10;innerSelected=new Set;columnWidths=[];scrolledLeft=!1;scrolledRight=!1;rowCount=0;loadingScrollTop=0;vsStart=0;vsEnd=0;lastReachEndNotifiedRowCount=-1;scrollContainer=null;onScroll;toFiniteNumber(t,e){const s="number"==typeof t?t:Number(t);return Number.isFinite(s)?s:e}isRowsPerPageValue(t){return null===t||"string"==typeof t||"number"==typeof t}isValidTableId(t){return"string"==typeof t&&t.trim().length>0&&"undefined"!==t&&"null"!==t}getResolvedTableId(){if(this.isValidTableId(this.tableId))return this.tableId;const t=this.el?.getAttribute(l);return this.isValidTableId(t)?t:this.fallbackTableId}syncTableIdAttribute(){const t=this.getResolvedTableId();this.el?.getAttribute(l)!==t&&this.el.setAttribute(l,t)}handleIsLoadingChange(t){t&&(this.loadingScrollTop=this.scrollContainer?.scrollTop??0)}handleUseVirtualScrollChange(t){t&&i((()=>this.propagateVirtualUpdate()))}handleColumnsChange(t){this.columnWidths=t.map((t=>parseInt(t.width||"120",10))),this.refreshChildrenConfig()}handleRowsChange(t){Array.isArray(t)&&(this.rowCount=t.length,this.useVirtualScroll&&this.propagateVirtualUpdate(!0),this.pushRowsToChildren(t))}handleTableIdChange(){this.syncTableIdAttribute()}handleNoDataLabelChange(e){this.resolvedNoDataLabel="string"==typeof e&&e.trim().length>0&&"undefined"!==e&&"null"!==e?e:t.DEFAULT_NO_DATA_LABEL}handleConfigChange(){this.refreshChildrenConfig()}handleSelectedChange(t){this.innerSelected=new Set(t)}handlePaginationChange(t){t?.page&&t.page!==this.currentPage&&(this.currentPage=t.page),t?.rowsPerPage&&t.rowsPerPage!==this.innerRowsPerPage&&(this.innerRowsPerPage=t.rowsPerPage)}componentWillLoad(){this.syncTableIdAttribute(),this.handleNoDataLabelChange(this.noDataLabel),this.innerSelected=new Set(this.selected||[]),this.columnWidths=(this.columns||[]).map((t=>parseInt(t.width||"120",10))),this.pagination?.page&&(this.currentPage=this.pagination.page),this.pagination?.rowsPerPage&&(this.innerRowsPerPage=this.pagination.rowsPerPage);const t=this.el;t.isRowSelectedSync=this.isRowSelectedSync.bind(this),t.updateRowSelectSync=this.updateRowSelectSync.bind(this),t.toggleSelectAllSync=this.toggleSelectAllSync.bind(this),t.getIsAllCheckedSync=this.getIsAllCheckedSync.bind(this),t.getStickyStyleSync=this.getStickyStyleSync.bind(this),t.setRowCountSync=this.setRowCountSync.bind(this),t.handleResize=this.handleResize.bind(this),t.getPaginationInfoSync=this.getPaginationInfoSync.bind(this),t.getVirtualScrollRangeSync=this.getVirtualScrollRangeSync.bind(this),t.getConfigSync=this.getConfigSync.bind(this),t.getTableIdSync=()=>this.getResolvedTableId(),t.getVirtualScrollConfigSync=this.getVirtualScrollConfigSync.bind(this),t.calculateVisibleRange=this.calculateVisibleRange.bind(this),Array.isArray(this.rows)&&(this.rowCount=this.rows.length,this.pushRowsToChildren(this.rows))}componentDidLoad(){Array.isArray(this.rows)&&this.pushRowsToChildren(this.rows),i((()=>{const t=this.el.shadowRoot?.querySelector(".sd-table__wrapper");if(!t)return;let e=!1;this.onScroll=()=>{const s=t.scrollLeft,i=s>0,a=s+t.clientWidth<t.scrollWidth;this.scrolledLeft===i&&this.scrolledRight===a||(this.scrolledLeft=i,this.scrolledRight=a,this.refreshChildrenConfig()),this.useVirtualScroll&&!e&&(e=!0,requestAnimationFrame((()=>{e=!1,this.propagateVirtualUpdate()})))},this.scrollContainer=t,t.addEventListener("scroll",this.onScroll,{passive:!0}),this.onScroll(),this.useVirtualScroll&&this.propagateVirtualUpdate()}))}disconnectedCallback(){this.scrollContainer&&this.onScroll&&this.scrollContainer.removeEventListener("scroll",this.onScroll)}pushRowsToChildren(t){const e=this.el.querySelector("sd-tbody");e&&(e.rows=t);const s=this.el.querySelector("sd-thead");s&&(s.rows=t)}handleStructureSlotChange=()=>{Array.isArray(this.rows)&&this.pushRowsToChildren(this.rows),this.refreshChildrenConfig()};refreshChildrenSelection(){const t=this.el.querySelector("sd-thead"),e=this.el.querySelectorAll("sd-tr");t?.refreshSelection?.(),e.forEach((t=>t?.refreshSelection?.()))}refreshChildrenConfig(){const t=this.el.querySelector("sd-thead"),e=this.el.querySelectorAll("sd-tr");t?.refreshConfig?.(),e.forEach((t=>t?.refreshConfig?.()))}maybeEmitVirtualReachEnd(t,e){const s=Math.max(1,this.virtualEndThreshold);e>=Math.max(0,this.rowCount-s)&&this.lastReachEndNotifiedRowCount!==this.rowCount&&(this.lastReachEndNotifiedRowCount=this.rowCount,this.sdVirtualReachEnd.emit({from:t,to:e,rowCount:this.rowCount,threshold:s}))}propagateVirtualUpdate(t=!1){if(!this.scrollContainer||!this.useVirtualScroll)return;const e=this.toFiniteNumber(this.scrollContainer.scrollTop,0),s=this.toFiniteNumber(this.scrollContainer.clientHeight,0),{start:i,end:a}=this.calculateVisibleRange(e,s);if(!Number.isFinite(i)||!Number.isFinite(a))return;const h=this.vsStart!==i||this.vsEnd!==a;if(!h&&!t)return;this.vsStart=i,this.vsEnd=a;const n=i*this.rowHeight,l=Math.max(0,(this.rowCount-a)*this.rowHeight),o=this.el.querySelector("sd-tbody");o?.setSpacersSync?.(n,l),h&&this.sdVirtualUpdate.emit({from:i,to:a}),this.maybeEmitVirtualReachEnd(i,a)}getVirtualScrollConfigSync(){return{useVirtualScroll:this.useVirtualScroll,rowHeight:this.rowHeight,virtualBuffer:this.virtualBuffer,vsStart:this.vsStart,vsEnd:this.vsEnd,rowCount:this.rowCount}}getConfigSync(){return{columns:this.columns,selectable:this.selectable,resizable:this.resizable,stickyColumn:this.stickyColumn,stickyHeader:this.stickyHeader,scrolledLeft:this.scrolledLeft,scrolledRight:this.scrolledRight,columnWidths:this.columnWidths}}isRowSelectedSync(t){return Array.from(this.innerSelected).some((e=>e[this.rowKey]===t[this.rowKey]))}async isRowSelected(t){return this.isRowSelectedSync(t)}updateRowSelectSync(t){const e=Array.from(this.innerSelected),s=this.isRowSelectedSync(t)?e.filter((e=>e[this.rowKey]!==t[this.rowKey])):[...e,t];s.length!==e.length&&(this.innerSelected=new Set(s),this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected)),this.refreshChildrenSelection())}async updateRowSelect(t){this.updateRowSelectSync(t)}toggleSelectAllSync(t,e){if(t){const t=new Set([...e]);this.innerSelected=new Set([...this.innerSelected,...t])}else{const t=e.map((t=>t[this.rowKey]));this.innerSelected=new Set([...this.innerSelected].filter((e=>!t.includes(e[this.rowKey]))))}this.selected=Array.from(this.innerSelected),this.sdSelectChange.emit(Array.from(this.innerSelected)),this.refreshChildrenSelection()}async toggleSelectAll(t,e){this.toggleSelectAllSync(t,e)}getIsAllCheckedSync(t){const e=t.length,s=t.filter((t=>Array.from(this.innerSelected).some((e=>e[this.rowKey]===t[this.rowKey])))).length;return 0!==s&&(s===e||null)}async getIsAllChecked(t){return this.getIsAllCheckedSync(t)}changePage(t){this.useInternalPagination?(this.currentPage=t,this.sdPageChange.emit(this.currentPage),this.updateRowsVisibility()):this.sdPageChange.emit(t)}updateRowsVisibility(){this.el.querySelectorAll("sd-tr").forEach((t=>t?.updateVisibility?.()))}changeRowsPerPage(t){const e=t?Number(t):0;if(!this.useInternalPagination)return void this.sdRowsPerPageChange.emit(e);this.innerRowsPerPage=e;const s=Math.max(1,Math.ceil(this.rowCount/e));this.currentPage>s&&(this.currentPage=s),this.sdRowsPerPageChange.emit(e),this.updateRowsVisibility()}get lastPageNumber(){if(this.useInternalPagination)return Math.max(1,Math.ceil(this.rowCount/this.innerRowsPerPage));const{lastPage:t,rowsPerPage:e=10}=this.pagination||{};return t??Math.max(1,Math.ceil(this.rowCount/e))}handleResize(t,e,s=!1){if("undefined"==typeof document)return;const i=e.clientX,a=this.columnWidths[t],h=e=>{const h=this.columns[t];if(!h)return;const n=h.maxWidth||9999,l=e.clientX-i,o=Math.min(Math.max(a+(s?-l:l),h.minWidth||50),n);this.columnWidths=this.columnWidths.map(((e,s)=>s===t?o:e));const r=this.el.querySelector("sd-thead"),d=this.el.querySelectorAll("sd-tr");r?.setColumnWidths?.(this.columnWidths),d.forEach((t=>t?.setColumnWidths?.(this.columnWidths)));const c=this.stickyColumn?.right||0,u=this.columns.filter((t=>!1!==t.visible)).length;c>0&&t===u-c&&requestAnimationFrame((()=>{this.onScroll?.()}))},n=()=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",n)};document.addEventListener("mousemove",h),document.addEventListener("mouseup",n)}getStickyStyleSync(t){return{"--sticky-left-offset":this.columnWidths.slice(0,t).reduce(((t,e)=>t+e),this.selectable?52:0)+"px","--sticky-right-offset":this.columnWidths.filter(((e,s)=>s>=this.columns.filter((t=>!1!==t.visible)).length-(this.stickyColumn?.right||0)&&s>t)).reduce(((t,e)=>t+e),0)+"px",width:this.columnWidths[t]+"px",minWidth:this.columnWidths[t]+"px",maxWidth:this.columnWidths[t]+"px"}}async getStickyStyle(t){return this.getStickyStyleSync(t)}setRowCountSync(t){const e=Math.max(0,Math.floor(this.toFiniteNumber(t,0)));e!==this.rowCount&&(this.lastReachEndNotifiedRowCount=-1),this.rowCount=e,this.useVirtualScroll&&this.propagateVirtualUpdate(!0)}async setRowCount(t){this.setRowCountSync(t)}calculateVisibleRange(t,e){const s=Math.max(1,this.toFiniteNumber(this.rowHeight,40)),i=Math.max(0,Math.floor(this.toFiniteNumber(this.virtualBuffer,5))),a=Math.max(0,this.toFiniteNumber(t,0)),h=Math.max(0,this.toFiniteNumber(e,0)),n=Math.max(0,Math.floor(this.toFiniteNumber(this.rowCount,0))),l=Math.floor(a/s),o=Math.ceil(h/s);return{start:Math.max(0,l-i),end:Math.min(n,l+o+i)}}getPaginationInfoSync(){if(!this.useInternalPagination||!this.pagination)return null;const t=(this.currentPage-1)*this.innerRowsPerPage;return{startIndex:t,endIndex:t+this.innerRowsPerPage,currentPage:this.currentPage,rowsPerPage:this.innerRowsPerPage}}async getPaginationInfo(){return this.getPaginationInfoSync()}getVirtualScrollRangeSync(){return this.useVirtualScroll&&this.vsEnd>0?{from:this.vsStart,to:this.vsEnd}:null}get tableClasses(){return["sd-table",this.stickyHeader&&"sd-table--sticky-header",this.selectable&&"sd-table--selectable",this.resizable&&"sd-table--resizable",(this.selectable||(this.stickyColumn?.left??0)>0||(this.stickyColumn?.right??0)>0)&&"sd-table--sticky-column",this.scrolledLeft&&"sd-table--scrolled-left",this.scrolledRight&&"sd-table--scrolled-right",0===this.rowCount&&!this.isLoading&&"sd-table--no-data"].filter(Boolean).join(" ")}render(){const t=this.getResolvedTableId();return a(h,{key:"0b90643721a90b7bb59a6c31f6edeb313849b973"},a("div",{key:"e55fe4f476dbea4888a168861e7e6d6951d7d489",class:"sd-table__container",style:{"--table-width":this.width,"--table-height":this.height,"--table-container-height":`calc(${this.height||"100%"} - ${this.pagination&&this.rowCount>0&&!this.useVirtualScroll?48:0}px)`}},a("div",{key:"de18a900037a7b2f619dd22981c30ed76f5a8111",class:{"sd-table__clip":!0,"sd-table__clip--has-pagination":!(!(this.pagination&&this.pagination.rowsPerPage>0&&this.rowCount>0)||this.useVirtualScroll)}},a("div",{key:"028e0982d415033adaf420ee6b953241c8f3dbec",class:{"sd-table__wrapper":!0,"sd-table__wrapper--loading":this.isLoading,"sd-table__wrapper--no-data":0===this.rowCount&&!this.isLoading}},this.isLoading&&a("div",{key:"8c9110c9c2c26cddbbed8e1f2782ecfaafd3679c",class:"sd-table__loading",style:{top:this.loadingScrollTop+"px"}},a("sd-circle-progress",{key:"51b61f91b0ecebf63fe3e65b94012963f0375e5c",indeterminate:!0})),0===this.rowCount&&!this.isLoading&&a("div",{key:"0a7a45049014869b8164b081a251218d3c814e87",class:"sd-table__no-data"},a("slot",{key:"d4b6219e5dcaaa22be3360f7f0f05a8b32533890",name:"no-data"},a("span",{key:"c76848aad8a1d3967f3cd239090e97266e46ab3e"},this.resolvedNoDataLabel))),a("table",{key:"2b560d112402549c7043b337d944b0de88c3ba0e",class:this.tableClasses},a("slot",{key:"1c4583148df6a585f389c1bed0426fa4a3cb4899",name:t+"-head",onSlotchange:this.handleStructureSlotChange}),a("slot",{key:"a5d983106de61c829f9cbeb541d1908fee48468c",name:t+"-body",onSlotchange:this.handleStructureSlotChange})))),this.pagination&&this.pagination.rowsPerPage>0&&this.rowCount>0&&!this.useVirtualScroll&&a("div",{key:"004355d84e2cfc2fd38a9d4811f14fd66dc5c21b",class:"sd-table__pagination"},a("sd-pagination",{key:"463586c7e57782a7989962f73cb3d4e8c04f5bce",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-v2",{key:"1f26de447da63ef0c4a24ffb49666a0687db9991",value:this.useInternalPagination?this.innerRowsPerPage:this.pagination.rowsPerPage,options:this.rowsPerPageOption,width:"128px",emitValue:!0,onSdUpdate:t=>{this.isRowsPerPageValue(t.detail)&&this.changeRowsPerPage(t.detail)}}))))}static get watchers(){return{isLoading:[{handleIsLoadingChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],columns:[{handleColumnsChange:0}],rows:[{handleRowsChange:0}],tableId:[{handleTableIdChange:0}],noDataLabel:[{handleNoDataLabelChange:0}],selectable:[{handleConfigChange:0}],resizable:[{handleConfigChange:0}],stickyColumn:[{handleConfigChange:0}],stickyHeader:[{handleConfigChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}}static get style(){return"sd-table,:host{display:block;width:100%;max-width:100%;min-width:0}sd-table *,:host *{box-sizing:border-box}.sd-table__container{height:var(--table-height, auto);width:var(--table-width, 100%);max-width:100%;min-width:0;color:#222222;display:flex;flex-direction:column}.sd-table__clip{width:100%;min-width:0;height:var(--table-container-height, 400px);border:1px solid #E1E1E1;border-radius:8px;overflow:hidden}.sd-table__clip--has-pagination{border-radius:8px 8px 0 0}.sd-table__wrapper{width:100%;height:100%;display:flex;flex-direction:column;position:relative;font-size:12px;overflow:auto;background:#FFFFFF}.sd-table__wrapper--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper--no-data{overflow:hidden;pointer-events:none}.sd-table__no-data{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#888888;pointer-events:none;z-index:200;background:rgba(255, 255, 255, 0.6)}.sd-table__loading{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none}.sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table--selectable sd-thead,.sd-table--selectable sd-tbody{--selectable:true}.sd-table--sticky-header sd-thead thead{position:sticky;top:0;z-index:120}.sd-table--sticky-column sd-thead,.sd-table--sticky-column sd-tbody{--sticky-column:true}.sd-table--scrolled-left sd-thead,.sd-table--scrolled-left sd-tbody{--scrolled-left:true}.sd-table--scrolled-right sd-thead,.sd-table--scrolled-right sd-tbody{--scrolled-right:true}.sd-table--resizable sd-thead{--resizable:true}.sd-table--no-data sd-thead{opacity:0.4}.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:0 0 8px 8px}.sd-table__pagination sd-select-v2{position:absolute;right:10px;top:50%;transform:translateY(-50%)}"}},[769,"sd-table",{tableId:[513,"table-id"],columns:[16],rows:[16],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"],useVirtualScroll:[4,"use-virtual-scroll"],rowHeight:[2,"row-height"],virtualBuffer:[2,"virtual-buffer"],virtualEndThreshold:[2,"virtual-end-threshold"],rowsPerPageOption:[16],resolvedNoDataLabel:[32],currentPage:[32],innerRowsPerPage:[32],innerSelected:[32],columnWidths:[32],scrolledLeft:[32],scrolledRight:[32],rowCount:[32],loadingScrollTop:[32],isRowSelected:[64],updateRowSelect:[64],toggleSelectAll:[64],getIsAllChecked:[64],getStickyStyle:[64],setRowCount:[64],getPaginationInfo:[64]},void 0,{isLoading:[{handleIsLoadingChange:0}],useVirtualScroll:[{handleUseVirtualScrollChange:0}],columns:[{handleColumnsChange:0}],rows:[{handleRowsChange:0}],tableId:[{handleTableIdChange:0}],noDataLabel:[{handleNoDataLabelChange:0}],selectable:[{handleConfigChange:0}],resizable:[{handleConfigChange:0}],stickyColumn:[{handleConfigChange:0}],stickyHeader:[{handleConfigChange:0}],selected:[{handleSelectedChange:0}],pagination:[{handlePaginationChange:0}]}]),_=v,x=function(){"undefined"!=typeof customElements&&["sd-table","sd-button","sd-checkbox","sd-circle-progress","sd-field","sd-floating-portal","sd-icon","sd-pagination","sd-portal","sd-select-v2","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-table":customElements.get(n(t))||customElements.define(n(t),v);break;case"sd-button":customElements.get(n(t))||o();break;case"sd-checkbox":customElements.get(n(t))||r();break;case"sd-circle-progress":customElements.get(n(t))||d();break;case"sd-field":customElements.get(n(t))||c();break;case"sd-floating-portal":customElements.get(n(t))||u();break;case"sd-icon":customElements.get(n(t))||b();break;case"sd-pagination":customElements.get(n(t))||g();break;case"sd-portal":customElements.get(n(t))||p();break;case"sd-select-v2":customElements.get(n(t))||m();break;case"sd-select-v2-list-item":customElements.get(n(t))||f();break;case"sd-select-v2-list-item-search":customElements.get(n(t))||y();break;case"sd-select-v2-listbox":customElements.get(n(t))||w();break;case"sd-select-v2-trigger":customElements.get(n(t))||C();break;case"sd-tooltip":customElements.get(n(t))||k()}}))};export{_ as SdTable,x as defineCustomElement}
@@ -1 +1 @@
1
- import{p as e,H as t,c as s,h as a,t as i}from"./p-CNAzAL53.js";import{n as r}from"./p-CCwNgVmC.js";import{i as d}from"./p-ByhWX2NK.js";import{d as l}from"./p-BZm6KN1s.js";import{d as o}from"./p-Bp0B8tcl.js";import{d as n}from"./p-BM0sVq5Z.js";import{d as h}from"./p-DaAhgdib.js";import{d as c}from"./p-CTwEbxRN.js";const u={paddingX:d.textinput.sm.paddingX,paddingY:d.textinput.sm.paddingY,radius:d.textinput.sm.radius,fontSize:d.textinput.sm.typography.fontSize,lineHeight:d.textinput.sm.typography.lineHeight,fontWeight:d.textinput.sm.typography.fontWeight},p={text:d.textinput.text,bg:d.textinput.bg,border:d.textinput.border,resizer:d.textinput.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="";labelWidth="";addonLabel="";addonAlign="start";hint="";errorMessage="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;status;focused=!1;hovered=!1;internalValue=null;nativeEl=void 0;formField;name=r();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:"1f0a9119fae56ef1fc7c558635e042239644ec22",name:this.name,label:this.label,labelWidth:this.labelWidth,addonLabel:this.addonLabel,addonAlign:this.addonAlign,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:"8ef4635e280dd8dc2c0b7c0e7c3feef5b1c66c40",class:"sd-textarea__content"},a("textarea",{key:"d9e2a569cbe36cb8f4c812eec19f375e41f70108",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],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],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,f=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(i(e))||customElements.define(i(e),x);break;case"sd-button":customElements.get(i(e))||l();break;case"sd-field":customElements.get(i(e))||o();break;case"sd-floating-portal":customElements.get(i(e))||n();break;case"sd-icon":customElements.get(i(e))||h();break;case"sd-tooltip":customElements.get(i(e))||c()}}))};export{m as SdTextarea,f as defineCustomElement}
1
+ import{p as e,H as t,c as s,h as a,t as i}from"./p-CNAzAL53.js";import{n as d}from"./p-CCwNgVmC.js";import{i as r}from"./p-ByhWX2NK.js";import{d as l}from"./p-BZm6KN1s.js";import{d as o}from"./p-Bp0B8tcl.js";import{d as n}from"./p-BM0sVq5Z.js";import{d as h}from"./p-DaAhgdib.js";import{d as c}from"./p-CTwEbxRN.js";const u={paddingX:r.textinput.sm.paddingX,paddingY:r.textinput.sm.paddingY,radius:r.textinput.sm.radius,fontSize:r.textinput.sm.typography.fontSize,lineHeight:r.textinput.sm.typography.lineHeight,fontWeight:r.textinput.sm.typography.fontWeight},p={text:r.textinput.text,bg:r.textinput.bg,border:r.textinput.border,resizer:r.textinput.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="";labelWidth="";addonLabel="";addonAlign="start";hint="";errorMessage="";icon=void 0;labelTooltip="";labelTooltipProps=null;rules=[];error=!1;status;focused=!1;hovered=!1;internalValue=null;nativeEl=void 0;formField;name=d();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:"345a70f335ee103a4e45c75e17559359beec01c9",name:this.name,label:this.label,labelWidth:this.labelWidth,addonLabel:this.addonLabel,addonAlign:this.addonAlign,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:"dc09d61d06f3cefb15dce980e293a266fdf3d79d",class:"sd-textarea__content"},a("textarea",{key:"085de248d7376e0d19d3588bc836bd5ad17cb335",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],labelWidth:[8,"label-width"],addonLabel:[1,"addon-label"],addonAlign:[1,"addon-align"],hint:[1],errorMessage:[1,"error-message"],icon:[16],labelTooltip:[1,"label-tooltip"],labelTooltipProps:[16],rules:[16],error:[1028],status:[1],focused:[1028],hovered:[1028],name:[1],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(i(e))||customElements.define(i(e),x);break;case"sd-button":customElements.get(i(e))||l();break;case"sd-field":customElements.get(i(e))||o();break;case"sd-floating-portal":customElements.get(i(e))||n();break;case"sd-icon":customElements.get(i(e))||h();break;case"sd-tooltip":customElements.get(i(e))||c()}}))};export{m as SdTextarea,b as defineCustomElement}