@simplysm/angular 14.1.2 → 14.1.6

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 (131) hide show
  1. package/dist/controls/button/sd-additional-button.js +3 -2
  2. package/dist/controls/button/sd-anchor.js +3 -2
  3. package/dist/controls/button/sd-button.js +11 -6
  4. package/dist/controls/button/sd-modal-select-button.js +15 -8
  5. package/dist/controls/checkbox/sd-checkbox-group-item.js +7 -4
  6. package/dist/controls/checkbox/sd-checkbox-group.js +3 -2
  7. package/dist/controls/checkbox/sd-checkbox.js +13 -7
  8. package/dist/controls/checkbox/sd-switch.js +9 -5
  9. package/dist/controls/collapse/sd-collapse-icon.js +7 -4
  10. package/dist/controls/collapse/sd-collapse.js +9 -5
  11. package/dist/controls/dropdown/sd-dropdown-popup.js +1 -1
  12. package/dist/controls/dropdown/sd-dropdown.js +5 -3
  13. package/dist/controls/form/sd-form.js +1 -1
  14. package/dist/controls/gap/sd-gap.js +13 -7
  15. package/dist/controls/input/sd-date-range-picker.js +7 -4
  16. package/dist/controls/input/sd-numpad.js +7 -4
  17. package/dist/controls/input/sd-range.js +9 -5
  18. package/dist/controls/input/sd-textarea.js +21 -11
  19. package/dist/controls/input/sd-textfield-type-handlers.d.ts.map +1 -1
  20. package/dist/controls/input/sd-textfield-type-handlers.js +5 -8
  21. package/dist/controls/input/sd-textfield.d.ts.map +1 -1
  22. package/dist/controls/input/sd-textfield.js +54 -26
  23. package/dist/controls/list/sd-list-item.js +19 -10
  24. package/dist/controls/list/sd-list.js +1 -1
  25. package/dist/controls/pagination/sd-pagination.js +11 -6
  26. package/dist/controls/select/sd-select-button.js +1 -1
  27. package/dist/controls/select/sd-select-item.js +7 -4
  28. package/dist/controls/select/sd-select.js +35 -18
  29. package/dist/controls/tab/sd-tab-item.d.ts +4 -4
  30. package/dist/controls/tab/sd-tab-item.d.ts.map +1 -1
  31. package/dist/controls/tab/sd-tab-item.js +6 -4
  32. package/dist/controls/tab/sd-tab.d.ts +4 -4
  33. package/dist/controls/tab/sd-tab.d.ts.map +1 -1
  34. package/dist/controls/tab/sd-tab.js +3 -2
  35. package/dist/core/app-structure/sd-app-structure.provider.js +10 -5
  36. package/dist/core/busy/sd-busy-container.js +9 -5
  37. package/dist/core/busy/sd-busy.provider.js +4 -2
  38. package/dist/core/config/injectSdSystemConfigResource.js +1 -1
  39. package/dist/core/config/sd-system-config.provider.d.ts +1 -1
  40. package/dist/core/config/sd-system-config.provider.d.ts.map +1 -1
  41. package/dist/core/config/sd-system-config.provider.js +1 -1
  42. package/dist/core/mark.d.ts +1 -1
  43. package/dist/core/mark.d.ts.map +1 -1
  44. package/dist/core/modal/sd-activated-modal.provider.js +4 -2
  45. package/dist/core/modal/sd-confirm-modal.js +5 -3
  46. package/dist/core/modal/sd-modal.js +37 -19
  47. package/dist/core/modal/sd-modal.provider.js +2 -1
  48. package/dist/core/modal/sd-prompt-modal.js +7 -4
  49. package/dist/core/selection/useExpandingManager.js +14 -7
  50. package/dist/core/selection/useSelectionManager.js +8 -4
  51. package/dist/core/selection/useSortingManager.js +2 -1
  52. package/dist/core/setupModelHook.d.ts +1 -1
  53. package/dist/core/setupModelHook.d.ts.map +1 -1
  54. package/dist/core/shared-data/sd-shared-data.provider.js +6 -3
  55. package/dist/core/show-effect/sd-show-effect.js +2 -1
  56. package/dist/core/show-effect/setupRevealOnShow.js +2 -1
  57. package/dist/core/template/sd-item-of-template.js +2 -1
  58. package/dist/core/template/sd-typed-template.js +2 -1
  59. package/dist/core/toast/sd-toast-container.js +1 -1
  60. package/dist/core/toast/sd-toast.js +13 -7
  61. package/dist/core/toast/sd-toast.provider.js +4 -2
  62. package/dist/data/crud/sd-base-container.js +19 -10
  63. package/dist/data/crud/sd-crud-detail.js +22 -12
  64. package/dist/data/crud/sd-crud-list.d.ts +1 -1
  65. package/dist/data/crud/sd-crud-list.d.ts.map +1 -1
  66. package/dist/data/crud/sd-crud-list.js +66 -34
  67. package/dist/data/kanban/sd-kanban-board.js +5 -3
  68. package/dist/data/kanban/sd-kanban-lane.js +14 -9
  69. package/dist/data/kanban/sd-kanban.js +18 -11
  70. package/dist/data/permission-table/sd-permission-table.js +15 -8
  71. package/dist/data/shared-data/sd-shared-data-select-button.d.ts +2 -2
  72. package/dist/data/shared-data/sd-shared-data-select-button.d.ts.map +1 -1
  73. package/dist/data/shared-data/sd-shared-data-select-button.js +13 -7
  74. package/dist/data/shared-data/sd-shared-data-select-list.js +27 -14
  75. package/dist/data/shared-data/sd-shared-data-select.js +45 -23
  76. package/dist/data/sheet/injectSheetColumnResizing.js +6 -3
  77. package/dist/data/sheet/sd-sheet-column-cell-template.js +2 -1
  78. package/dist/data/sheet/sd-sheet-column.d.ts +4 -4
  79. package/dist/data/sheet/sd-sheet-column.d.ts.map +1 -1
  80. package/dist/data/sheet/sd-sheet-column.js +16 -8
  81. package/dist/data/sheet/sd-sheet-config.modal.d.ts +1 -1
  82. package/dist/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
  83. package/dist/data/sheet/sd-sheet-config.modal.js +11 -6
  84. package/dist/data/sheet/sd-sheet.d.ts +2 -2
  85. package/dist/data/sheet/sd-sheet.d.ts.map +1 -1
  86. package/dist/data/sheet/sd-sheet.js +57 -32
  87. package/dist/data/sheet/useSheetCellAgent.js +2 -1
  88. package/dist/data/sheet/useSheetCellStyling.js +2 -1
  89. package/dist/data/sheet/useSheetColumnFixing.js +2 -1
  90. package/dist/data/sheet/useSheetDisplayPipeline.js +8 -4
  91. package/dist/data/sheet/useSheetLayoutEngine.js +10 -5
  92. package/dist/data/state-preset/sd-state-preset.js +9 -5
  93. package/dist/features/address/sd-address-search.modal.js +5 -3
  94. package/dist/features/editor/sd-markdown-editor.d.ts +2 -1
  95. package/dist/features/editor/sd-markdown-editor.d.ts.map +1 -1
  96. package/dist/features/editor/sd-markdown-editor.js +11 -6
  97. package/dist/features/editor/sd-tiptap-editor.d.ts +1 -1
  98. package/dist/features/editor/sd-tiptap-editor.d.ts.map +1 -1
  99. package/dist/features/editor/sd-tiptap-editor.js +13 -7
  100. package/dist/features/editor/useTiptapToolbar.d.ts +2 -1
  101. package/dist/features/editor/useTiptapToolbar.d.ts.map +1 -1
  102. package/dist/features/editor/useTiptapToolbar.js +8 -4
  103. package/dist/features/theme/sd-theme-provider.js +6 -3
  104. package/dist/features/theme/sd-theme-selector.js +5 -3
  105. package/dist/features/visual/sd-barcode.js +7 -4
  106. package/dist/features/visual/sd-calendar.js +13 -7
  107. package/dist/features/visual/sd-echarts.js +9 -5
  108. package/dist/features/visual/sd-label.js +5 -3
  109. package/dist/features/visual/sd-note.js +5 -3
  110. package/dist/features/visual/sd-progress.js +9 -5
  111. package/dist/layout/sidebar/sd-sidebar-container.js +3 -2
  112. package/dist/layout/sidebar/sd-sidebar-menu.js +11 -6
  113. package/dist/layout/sidebar/sd-sidebar-user.js +5 -3
  114. package/dist/layout/sidebar/sd-sidebar.js +3 -2
  115. package/dist/layout/topbar/sd-topbar-container.js +1 -1
  116. package/dist/layout/topbar/sd-topbar-menu.js +7 -4
  117. package/dist/layout/topbar/sd-topbar-user.js +5 -3
  118. package/dist/layout/topbar/sd-topbar.js +5 -3
  119. package/package.json +11 -13
  120. package/src/controls/input/sd-textfield-type-handlers.ts +5 -7
  121. package/src/controls/input/sd-textfield.ts +5 -1
  122. package/src/controls/tab/sd-tab-item.ts +3 -3
  123. package/src/controls/tab/sd-tab.ts +2 -2
  124. package/src/core/config/injectSdSystemConfigResource.ts +1 -1
  125. package/src/core/config/sd-system-config.provider.ts +2 -2
  126. package/src/core/mark.ts +2 -2
  127. package/src/core/setupModelHook.ts +2 -2
  128. package/src/data/shared-data/sd-shared-data-select-button.ts +2 -2
  129. package/src/data/sheet/sd-sheet-column.ts +2 -2
  130. package/src/features/editor/sd-markdown-editor.ts +2 -2
  131. package/src/features/editor/useTiptapToolbar.ts +21 -2
@@ -18,7 +18,8 @@ const _c1 = ["beforeTpl"];
18
18
  const _c2 = [[["sd-select-button"]], "*"];
19
19
  const _c3 = ["sd-select-button", "*"];
20
20
  const _c4 = (a0, a1, a2, a3) => ({ $implicit: a0, item: a1, index: a2, depth: a3 });
21
- function _forTrack0($index, $item) { return this.trackByFn()($item.data, $item.index); }
21
+ function _forTrack0($index, $item) { /* @ts-ignore */
22
+ return this.trackByFn()($item.data, $item.index); }
22
23
  function SdSelect_Conditional_4_Template(rf, ctx) { if (rf & 1) {
23
24
  i0.ɵɵelement(0, "div", 4);
24
25
  } if (rf & 2) {
@@ -98,28 +99,42 @@ function SdSelect_Conditional_14_Template(rf, ctx) { if (rf & 1) {
98
99
  i0.ɵɵprojection(0, 1);
99
100
  } }
100
101
  export class SdSelect {
101
- selectMode = input("single", ...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
102
- value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
103
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
102
+ selectMode = input("single", /* @ts-ignore */
103
+ ...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
104
+ value = model(/* @ts-ignore */
105
+ ...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
106
+ placeholder = input(/* @ts-ignore */
107
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
104
108
  disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
105
109
  inline = input(false, { ...(ngDevMode ? { debugName: "inline" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
106
110
  inset = input(false, { ...(ngDevMode ? { debugName: "inset" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
107
- size = input(...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
111
+ size = input(/* @ts-ignore */
112
+ ...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
108
113
  required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
109
114
  hideSelectAll = input(false, { ...(ngDevMode ? { debugName: "hideSelectAll" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
110
- multiSelectionDisplayDirection = input(...(ngDevMode ? [undefined, { debugName: "multiSelectionDisplayDirection" }] : /* istanbul ignore next */ []));
111
- items = input(...(ngDevMode ? [undefined, { debugName: "items" }] : /* istanbul ignore next */ []));
112
- trackByFn = input((item) => item, ...(ngDevMode ? [{ debugName: "trackByFn" }] : /* istanbul ignore next */ []));
113
- getChildrenFn = input(...(ngDevMode ? [undefined, { debugName: "getChildrenFn" }] : /* istanbul ignore next */ []));
114
- contentClass = input(...(ngDevMode ? [undefined, { debugName: "contentClass" }] : /* istanbul ignore next */ []));
115
- contentStyle = input(...(ngDevMode ? [undefined, { debugName: "contentStyle" }] : /* istanbul ignore next */ []));
116
- dropdownOpen = model(false, ...(ngDevMode ? [{ debugName: "dropdownOpen" }] : /* istanbul ignore next */ []));
115
+ multiSelectionDisplayDirection = input(/* @ts-ignore */
116
+ ...(ngDevMode ? [undefined, { debugName: "multiSelectionDisplayDirection" }] : /* istanbul ignore next */ []));
117
+ items = input(/* @ts-ignore */
118
+ ...(ngDevMode ? [undefined, { debugName: "items" }] : /* istanbul ignore next */ []));
119
+ trackByFn = input((item) => item, /* @ts-ignore */
120
+ ...(ngDevMode ? [{ debugName: "trackByFn" }] : /* istanbul ignore next */ []));
121
+ getChildrenFn = input(/* @ts-ignore */
122
+ ...(ngDevMode ? [undefined, { debugName: "getChildrenFn" }] : /* istanbul ignore next */ []));
123
+ contentClass = input(/* @ts-ignore */
124
+ ...(ngDevMode ? [undefined, { debugName: "contentClass" }] : /* istanbul ignore next */ []));
125
+ contentStyle = input(/* @ts-ignore */
126
+ ...(ngDevMode ? [undefined, { debugName: "contentStyle" }] : /* istanbul ignore next */ []));
127
+ dropdownOpen = model(false, /* @ts-ignore */
128
+ ...(ngDevMode ? [{ debugName: "dropdownOpen" }] : /* istanbul ignore next */ []));
117
129
  tablerCaretDown = tablerCaretDown;
118
- _itemControls = contentChildren(SdSelectItem, ...(ngDevMode ? [{ debugName: "_itemControls" }] : /* istanbul ignore next */ []));
130
+ _itemControls = contentChildren(SdSelectItem, /* @ts-ignore */
131
+ ...(ngDevMode ? [{ debugName: "_itemControls" }] : /* istanbul ignore next */ []));
119
132
  _dropdownControl = viewChild.required(SdDropdown);
120
133
  _dropdownElRef = viewChild.required(SdDropdown, { read: ElementRef });
121
- _headerTpl = contentChild("headerTpl", ...(ngDevMode ? [{ debugName: "_headerTpl" }] : /* istanbul ignore next */ []));
122
- _beforeTpl = contentChild("beforeTpl", ...(ngDevMode ? [{ debugName: "_beforeTpl" }] : /* istanbul ignore next */ []));
134
+ _headerTpl = contentChild("headerTpl", /* @ts-ignore */
135
+ ...(ngDevMode ? [{ debugName: "_headerTpl" }] : /* istanbul ignore next */ []));
136
+ _beforeTpl = contentChild("beforeTpl", /* @ts-ignore */
137
+ ...(ngDevMode ? [{ debugName: "_beforeTpl" }] : /* istanbul ignore next */ []));
123
138
  _itemOfTpl = contentChild(SdItemOfTemplate, { ...(ngDevMode ? { debugName: "_itemOfTpl" } : /* istanbul ignore next */ {}), read: TemplateRef });
124
139
  _sanitizer = inject(DomSanitizer);
125
140
  _selectedItemContentHTML = computed(() => {
@@ -149,7 +164,8 @@ export class SdSelect {
149
164
  if (html === "")
150
165
  return undefined;
151
166
  return this._sanitizer.bypassSecurityTrustHtml(html);
152
- }, ...(ngDevMode ? [{ debugName: "_selectedItemContentHTML" }] : /* istanbul ignore next */ []));
167
+ }, /* @ts-ignore */
168
+ ...(ngDevMode ? [{ debugName: "_selectedItemContentHTML" }] : /* istanbul ignore next */ []));
153
169
  _flatItems = computed(() => {
154
170
  const items = this.items();
155
171
  if (items == null)
@@ -170,7 +186,8 @@ export class SdSelect {
170
186
  };
171
187
  walk(items, 0);
172
188
  return flat;
173
- }, ...(ngDevMode ? [{ debugName: "_flatItems" }] : /* istanbul ignore next */ []));
189
+ }, /* @ts-ignore */
190
+ ...(ngDevMode ? [{ debugName: "_flatItems" }] : /* istanbul ignore next */ []));
174
191
  constructor() {
175
192
  // Required validation
176
193
  setupInvalid(() => {
@@ -318,7 +335,7 @@ export class SdSelect {
318
335
  SdGap,
319
336
  NgTemplateOutlet,
320
337
  SdRipple,
321
- NgIcon], styles: ["sd-select {\n display: block;\n position: relative;\n width: 100%;\n min-width: 10em;\n}\nsd-select > sd-dropdown {\n display: flex;\n overflow: hidden;\n border: 1px solid var(--border-color-light);\n border-radius: var(--border-radius-default);\n background: var(--theme-secondary-lightest);\n}\nsd-select > sd-dropdown:focus, sd-select > sd-dropdown:focus-within {\n border-color: var(--theme-primary-default);\n}\nsd-select > sd-dropdown > ._sd-select-control {\n display: flex;\n position: relative;\n gap: var(--gap-default);\n flex-grow: 1;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n font-family: var(--font-family-field);\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-content {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n opacity: 0.3;\n}\nsd-select > sd-dropdown > ._sd-select-control:hover > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:focus > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:active > ._sd-select-control-icon {\n opacity: 1;\n}\nsd-select > sd-dropdown > sd-select-button {\n padding: var(--gap-sm);\n border-left: 1px solid var(--theme-gray-lightest);\n}\nsd-select > sd-dropdown > sd-select-button:last-of-type {\n border-top-right-radius: var(--border-radius-default);\n border-bottom-right-radius: var(--border-radius-default);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown {\n background: var(--theme-gray-lightest);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-light);\n cursor: default;\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n display: none;\n}\nsd-select[data-sd-inline=true] {\n display: inline-block;\n width: auto;\n vertical-align: top;\n}\nsd-select[data-sd-size=sm] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-xs) var(--gap-sm);\n gap: var(--gap-sm);\n}\nsd-select[data-sd-size=sm] > sd-dropdown > sd-select-button {\n padding: var(--gap-xs);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-default) var(--gap-lg);\n gap: var(--gap-lg);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > sd-select-button {\n padding: var(--gap-default);\n}\nsd-select[data-sd-inset=true] {\n min-width: auto;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown {\n border: none;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown > sd-select-button {\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus, sd-select[data-sd-inset=true] > sd-dropdown:focus-within {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus > sd-select-button, sd-select[data-sd-inset=true] > sd-dropdown:focus-within > sd-select-button {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown {\n background: var(--control-color);\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-default);\n}\n\n._sd-select-all-bar {\n display: flex;\n padding: var(--gap-sm) var(--gap-default);\n border-bottom: 1px solid var(--border-color-light);\n}"], encapsulation: 2, changeDetection: 0 });
338
+ NgIcon], styles: ["sd-select {\n display: block;\n position: relative;\n width: 100%;\n min-width: 10em;\n}\nsd-select > sd-dropdown {\n display: flex;\n overflow: hidden;\n border: 1px solid var(--border-color-light);\n border-radius: var(--border-radius-default);\n background: var(--theme-secondary-lightest);\n}\nsd-select > sd-dropdown:focus, sd-select > sd-dropdown:focus-within {\n border-color: var(--theme-primary-default);\n}\nsd-select > sd-dropdown > ._sd-select-control {\n display: flex;\n position: relative;\n gap: var(--gap-default);\n flex-grow: 1;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n font-family: var(--font-family-field);\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-content {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n opacity: 0.3;\n}\nsd-select > sd-dropdown > ._sd-select-control:hover > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:focus > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:active > ._sd-select-control-icon {\n opacity: 1;\n}\nsd-select > sd-dropdown > sd-select-button {\n padding: var(--gap-sm);\n border-left: 1px solid var(--theme-gray-lightest);\n}\nsd-select > sd-dropdown > sd-select-button:last-of-type {\n border-top-right-radius: var(--border-radius-default);\n border-bottom-right-radius: var(--border-radius-default);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown {\n background: var(--theme-gray-lightest);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-light);\n cursor: default;\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n display: none;\n}\nsd-select[data-sd-inline=true] {\n display: inline-block;\n width: auto;\n vertical-align: top;\n}\nsd-select[data-sd-size=sm] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-xs) var(--gap-sm);\n gap: var(--gap-sm);\n}\nsd-select[data-sd-size=sm] > sd-dropdown > sd-select-button {\n padding: var(--gap-xs);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-default) var(--gap-lg);\n gap: var(--gap-lg);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > sd-select-button {\n padding: var(--gap-default);\n}\nsd-select[data-sd-inset=true] {\n min-width: auto;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown {\n border: none;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown > sd-select-button {\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus, sd-select[data-sd-inset=true] > sd-dropdown:focus-within {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus > sd-select-button, sd-select[data-sd-inset=true] > sd-dropdown:focus-within > sd-select-button {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown {\n background: var(--control-color);\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-default);\n}\n\n._sd-select-all-bar {\n display: flex;\n padding: var(--gap-sm) var(--gap-default);\n border-bottom: 1px solid var(--border-color-light);\n}"], encapsulation: 2 });
322
339
  }
323
340
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSelect, [{
324
341
  type: Component,
@@ -1,10 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
- export declare class SdTabItem {
2
+ export declare class SdTabItem<T> {
3
3
  private readonly _parentControl;
4
- value: import("@angular/core").InputSignal<any>;
4
+ value: import("@angular/core").InputSignal<T>;
5
5
  isSelected: import("@angular/core").Signal<boolean>;
6
6
  onClick(): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<SdTabItem, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<SdTabItem, "sd-tab-item", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTabItem<any>, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdTabItem<any>, "sd-tab-item", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
9
  }
10
10
  //# sourceMappingURL=sd-tab-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sd-tab-item.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab-item.ts"],"names":[],"mappings":";AAWA,qBAiCa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IAEzE,KAAK,2CAAgB;IAErB,UAAU,0CAAgE;IAE1E,OAAO;yCAPI,SAAS;2CAAT,SAAS;CAUrB"}
1
+ {"version":3,"file":"sd-tab-item.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab-item.ts"],"names":[],"mappings":";AAWA,qBAiCa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E,KAAK,yCAAuB;IAE5B,UAAU,0CAAgE;IAE1E,OAAO;yCAPI,SAAS;2CAAT,SAAS;CAUrB"}
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
4
4
  const _c0 = ["*"];
5
5
  export class SdTabItem {
6
6
  _parentControl = inject(forwardRef(() => SdTab));
7
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
8
- isSelected = computed(() => this._parentControl.value() === this.value(), ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
7
+ value = input.required(/* @ts-ignore */
8
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
9
+ isSelected = computed(() => this._parentControl.value() === this.value(), /* @ts-ignore */
10
+ ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
9
11
  onClick() {
10
12
  this._parentControl.value.set(this.value());
11
13
  }
@@ -17,7 +19,7 @@ export class SdTabItem {
17
19
  } }, inputs: { value: [1, "value"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdTabItem_Template(rf, ctx) { if (rf & 1) {
18
20
  i0.ɵɵprojectionDef();
19
21
  i0.ɵɵprojection(0);
20
- } }, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"], encapsulation: 2, changeDetection: 0 });
22
+ } }, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"], encapsulation: 2 });
21
23
  }
22
24
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTabItem, [{
23
25
  type: Component,
@@ -27,5 +29,5 @@ export class SdTabItem {
27
29
  }, template: `
28
30
  <ng-content></ng-content>
29
31
  `, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"] }]
30
- }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] }); })();
32
+ }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] }); })();
31
33
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdTabItem, { className: "SdTabItem", filePath: "packages/angular/src/controls/tab/sd-tab-item.ts", lineNumber: 45 }); })();
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
- export declare class SdTab {
3
- value: import("@angular/core").ModelSignal<any>;
4
- static ɵfac: i0.ɵɵFactoryDeclaration<SdTab, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<SdTab, "sd-tab", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, ["*"], true, never>;
2
+ export declare class SdTab<T> {
3
+ value: import("@angular/core").ModelSignal<T | undefined>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTab<any>, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdTab<any>, "sd-tab", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, ["*"], true, never>;
6
6
  }
7
7
  //# sourceMappingURL=sd-tab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sd-tab.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab.ts"],"names":[],"mappings":";AAEA,qBAoBa,KAAK;IAChB,KAAK,2CAAgB;yCADV,KAAK;2CAAL,KAAK;CAEjB"}
1
+ {"version":3,"file":"sd-tab.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab.ts"],"names":[],"mappings":";AAEA,qBAoBa,KAAK,CAAC,CAAC;IAClB,KAAK,qDAAc;yCADR,KAAK;2CAAL,KAAK;CAEjB"}
@@ -2,12 +2,13 @@ import { ChangeDetectionStrategy, Component, model, ViewEncapsulation } from "@a
2
2
  import * as i0 from "@angular/core";
3
3
  const _c0 = ["*"];
4
4
  export class SdTab {
5
- value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
5
+ value = model(/* @ts-ignore */
6
+ ...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
6
7
  static ɵfac = function SdTab_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdTab)(); };
7
8
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdTab, selectors: [["sd-tab"]], inputs: { value: [1, "value"] }, outputs: { value: "valueChange" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdTab_Template(rf, ctx) { if (rf & 1) {
8
9
  i0.ɵɵprojectionDef();
9
10
  i0.ɵɵprojection(0);
10
- } }, styles: ["sd-tab {\n display: block;\n border-bottom: 2px solid var(--theme-gray-lighter);\n padding: 0 calc(var(--gap-default) + 1px) 0 calc(var(--gap-default) - 1px);\n}"], encapsulation: 2, changeDetection: 0 });
11
+ } }, styles: ["sd-tab {\n display: block;\n border-bottom: 2px solid var(--theme-gray-lighter);\n padding: 0 calc(var(--gap-default) + 1px) 0 calc(var(--gap-default) - 1px);\n}"], encapsulation: 2 });
11
12
  }
12
13
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTab, [{
13
14
  type: Component,
@@ -8,14 +8,19 @@ export function injectPermsSignal(viewCodes, keys) {
8
8
  // 권한은 모듈만 체크하고
9
9
  // 메뉴는 모듈/권한 모두 체크함
10
10
  export class SdAppStructureProvider {
11
- usableModules = signal(undefined, ...(ngDevMode ? [{ debugName: "usableModules" }] : /* istanbul ignore next */ []));
12
- permRecord = signal(undefined, ...(ngDevMode ? [{ debugName: "permRecord" }] : /* istanbul ignore next */ []));
13
- items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
11
+ usableModules = signal(undefined, /* @ts-ignore */
12
+ ...(ngDevMode ? [{ debugName: "usableModules" }] : /* istanbul ignore next */ []));
13
+ permRecord = signal(undefined, /* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "permRecord" }] : /* istanbul ignore next */ []));
15
+ items = signal([], /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
14
17
  initialize(items) {
15
18
  this.items.set(items);
16
19
  }
17
- usableMenus = computed(() => SdAppStructureUtils.getMenus(this.items(), [], this.usableModules(), this.permRecord()), ...(ngDevMode ? [{ debugName: "usableMenus" }] : /* istanbul ignore next */ []));
18
- usableFlatMenus = computed(() => SdAppStructureUtils.getFlatMenus(this.items(), this.usableModules(), this.permRecord()), ...(ngDevMode ? [{ debugName: "usableFlatMenus" }] : /* istanbul ignore next */ []));
20
+ usableMenus = computed(() => SdAppStructureUtils.getMenus(this.items(), [], this.usableModules(), this.permRecord()), /* @ts-ignore */
21
+ ...(ngDevMode ? [{ debugName: "usableMenus" }] : /* istanbul ignore next */ []));
22
+ usableFlatMenus = computed(() => SdAppStructureUtils.getFlatMenus(this.items(), this.usableModules(), this.permRecord()), /* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "usableFlatMenus" }] : /* istanbul ignore next */ []));
19
24
  getPermissionsByStructure(items, codeChain = []) {
20
25
  return SdAppStructureUtils.getPermissions(items, codeChain, this.usableModules());
21
26
  }
@@ -32,10 +32,14 @@ function SdBusyContainer_Conditional_7_Template(rf, ctx) { if (rf & 1) {
32
32
  export class SdBusyContainer {
33
33
  _sdBusy = inject(SdBusyProvider);
34
34
  busy = input(false, { ...(ngDevMode ? { debugName: "busy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
35
- message = input(undefined, ...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
36
- type = input(undefined, ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
37
- progressPercent = input(undefined, ...(ngDevMode ? [{ debugName: "progressPercent" }] : /* istanbul ignore next */ []));
38
- currType = computed(() => this.type() ?? this._sdBusy.type(), ...(ngDevMode ? [{ debugName: "currType" }] : /* istanbul ignore next */ []));
35
+ message = input(undefined, /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
37
+ type = input(undefined, /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
39
+ progressPercent = input(undefined, /* @ts-ignore */
40
+ ...(ngDevMode ? [{ debugName: "progressPercent" }] : /* istanbul ignore next */ []));
41
+ currType = computed(() => this.type() ?? this._sdBusy.type(), /* @ts-ignore */
42
+ ...(ngDevMode ? [{ debugName: "currType" }] : /* istanbul ignore next */ []));
39
43
  onKeydownCapture(event) {
40
44
  if (this.busy()) {
41
45
  event.preventDefault();
@@ -65,7 +69,7 @@ export class SdBusyContainer {
65
69
  i0.ɵɵconditional(ctx.message() != undefined ? 6 : -1);
66
70
  i0.ɵɵadvance();
67
71
  i0.ɵɵconditional(ctx.progressPercent() != null ? 7 : -1);
68
- } }, styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-busy-container {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 70px;\n min-height: 70px;\n overflow: auto;\n}\nsd-busy-container > ._screen {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9998;\n visibility: hidden;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--animation-duration);\n transition-timing-function: linear;\n}\nsd-busy-container > ._screen > ._progress {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container > ._screen > ._progress > ._progress-bar {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n transform-origin: left;\n transform: scaleX(0);\n background-color: var(--theme-primary-default);\n}\nsd-busy-container[data-sd-busy=true] > ._screen {\n visibility: visible;\n pointer-events: auto;\n opacity: 1;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect {\n transform: translateY(-100%);\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator {\n top: 0;\n width: 30px;\n height: 30px;\n margin: 20px auto 0 auto;\n border: 6px solid var(--background-color);\n border-radius: 100%;\n border-bottom-color: var(--theme-primary-default);\n animation: sd-busy-spin 1s linear infinite;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._message {\n position: absolute;\n top: 55px;\n width: 100%;\n color: var(--background-color);\n font-weight: bold;\n text-align: center;\n text-shadow: 0 0 2px var(--background-rev-color);\n}\nsd-busy-container[data-sd-type=spinner][data-sd-busy=true] > ._screen > ._rect {\n transform: none;\n transition: var(--animation-duration) ease-out;\n}\nsd-busy-container[data-sd-type=bar] {\n min-height: 4px;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before, sd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transform-origin: left;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before {\n background-color: var(--theme-primary-default);\n animation: sd-busy-bar-indicator-before 2s infinite ease-in;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n background-color: var(--background-color);\n animation: sd-busy-bar-indicator-after 2s infinite ease-out;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: calc(50% - 20px);\n left: calc(50% - 20px);\n width: 40px;\n height: 40px;\n transform: rotateZ(45deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n float: left;\n width: 50%;\n height: 50%;\n position: relative;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--trans-light);\n animation: sd-busy-cube 2.4s infinite linear both;\n transform-origin: 100% 100%;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2 {\n transform: rotateZ(90deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before {\n animation-delay: 0.3s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3 {\n transform: rotateZ(180deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before {\n animation-delay: 0.6s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n transform: rotateZ(270deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n animation-delay: 0.9s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\n\n@keyframes sd-busy-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes sd-busy-bar-indicator-before {\n 0% {\n transform: scaleX(0);\n }\n 60%, 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-bar-indicator-after {\n 0%, 50% {\n transform: scaleX(0);\n }\n 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-cube {\n 0%, 10% {\n transform: perspective(140px) rotateX(-180deg);\n opacity: 0;\n }\n 25%, 75% {\n transform: perspective(140px) rotateX(0deg);\n opacity: 1;\n }\n 90%, 100% {\n transform: perspective(140px) rotateY(180deg);\n opacity: 0;\n }\n}"], encapsulation: 2, changeDetection: 0 });
72
+ } }, styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-busy-container {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 70px;\n min-height: 70px;\n overflow: auto;\n}\nsd-busy-container > ._screen {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9998;\n visibility: hidden;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--animation-duration);\n transition-timing-function: linear;\n}\nsd-busy-container > ._screen > ._progress {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container > ._screen > ._progress > ._progress-bar {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n transform-origin: left;\n transform: scaleX(0);\n background-color: var(--theme-primary-default);\n}\nsd-busy-container[data-sd-busy=true] > ._screen {\n visibility: visible;\n pointer-events: auto;\n opacity: 1;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect {\n transform: translateY(-100%);\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator {\n top: 0;\n width: 30px;\n height: 30px;\n margin: 20px auto 0 auto;\n border: 6px solid var(--background-color);\n border-radius: 100%;\n border-bottom-color: var(--theme-primary-default);\n animation: sd-busy-spin 1s linear infinite;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._message {\n position: absolute;\n top: 55px;\n width: 100%;\n color: var(--background-color);\n font-weight: bold;\n text-align: center;\n text-shadow: 0 0 2px var(--background-rev-color);\n}\nsd-busy-container[data-sd-type=spinner][data-sd-busy=true] > ._screen > ._rect {\n transform: none;\n transition: var(--animation-duration) ease-out;\n}\nsd-busy-container[data-sd-type=bar] {\n min-height: 4px;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before, sd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transform-origin: left;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before {\n background-color: var(--theme-primary-default);\n animation: sd-busy-bar-indicator-before 2s infinite ease-in;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n background-color: var(--background-color);\n animation: sd-busy-bar-indicator-after 2s infinite ease-out;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: calc(50% - 20px);\n left: calc(50% - 20px);\n width: 40px;\n height: 40px;\n transform: rotateZ(45deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n float: left;\n width: 50%;\n height: 50%;\n position: relative;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--trans-light);\n animation: sd-busy-cube 2.4s infinite linear both;\n transform-origin: 100% 100%;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2 {\n transform: rotateZ(90deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before {\n animation-delay: 0.3s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3 {\n transform: rotateZ(180deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before {\n animation-delay: 0.6s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n transform: rotateZ(270deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n animation-delay: 0.9s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\n\n@keyframes sd-busy-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes sd-busy-bar-indicator-before {\n 0% {\n transform: scaleX(0);\n }\n 60%, 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-bar-indicator-after {\n 0%, 50% {\n transform: scaleX(0);\n }\n 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-cube {\n 0%, 10% {\n transform: perspective(140px) rotateX(-180deg);\n opacity: 0;\n }\n 25%, 75% {\n transform: perspective(140px) rotateX(0deg);\n opacity: 1;\n }\n 90%, 100% {\n transform: perspective(140px) rotateY(180deg);\n opacity: 0;\n }\n}"], encapsulation: 2 });
69
73
  }
70
74
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdBusyContainer, [{
71
75
  type: Component,
@@ -5,8 +5,10 @@ import * as i0 from "@angular/core";
5
5
  export class SdBusyProvider {
6
6
  _appRef = inject(ApplicationRef);
7
7
  _envInjector = inject(EnvironmentInjector);
8
- type = signal("bar", ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
9
- globalBusyCount = signal(0, ...(ngDevMode ? [{ debugName: "globalBusyCount" }] : /* istanbul ignore next */ []));
8
+ type = signal("bar", /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
10
+ globalBusyCount = signal(0, /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "globalBusyCount" }] : /* istanbul ignore next */ []));
10
12
  _containerRef;
11
13
  get containerRef() {
12
14
  if (this._containerRef == null) {
@@ -7,7 +7,7 @@ export function injectSdSystemConfigResource(options) {
7
7
  const elTag = elRef.nativeElement.tagName.toLowerCase();
8
8
  const res = resource({ ...(ngDevMode ? { debugName: "res" } : /* istanbul ignore next */ {}), params: () => options.key(),
9
9
  loader: async ({ params: key }) => {
10
- return (await sdSystemConfig.getAsync(`${elTag}.${key}`));
10
+ return sdSystemConfig.getAsync(`${elTag}.${key}`);
11
11
  } });
12
12
  function set(value) {
13
13
  res.set(value);
@@ -6,7 +6,7 @@ export declare class SdSystemConfigProvider<T> {
6
6
  get(key: keyof T & string): PromiseLike<unknown>;
7
7
  };
8
8
  setAsync<K extends keyof T & string>(key: K, data: T[K] | undefined): Promise<void>;
9
- getAsync(key: keyof T & string): Promise<unknown>;
9
+ getAsync<K extends keyof T & string>(key: K): Promise<T[K] | undefined>;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<SdSystemConfigProvider<any>, never>;
11
11
  static ɵprov: i0.ɵɵInjectableDeclaration<SdSystemConfigProvider<any>>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sd-system-config.provider.d.ts","sourceRoot":"","sources":["../../../src/core/config/sd-system-config.provider.ts"],"names":[],"mappings":";AAGA,qBACa,sBAAsB,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;IAE7F,EAAE,CAAC,EAAE;QACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtF,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;KAClD,CAAC;IAEI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;IAUnE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM;yCAlBzB,sBAAsB;6CAAtB,sBAAsB;CAyBlC"}
1
+ {"version":3,"file":"sd-system-config.provider.d.ts","sourceRoot":"","sources":["../../../src/core/config/sd-system-config.provider.ts"],"names":[],"mappings":";AAGA,qBACa,sBAAsB,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;IAE7F,EAAE,CAAC,EAAE;QACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtF,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;KAClD,CAAC;IAEI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;IAUnE,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;yCAlBlE,sBAAsB;6CAAtB,sBAAsB;CAyBlC"}
@@ -17,7 +17,7 @@ export class SdSystemConfigProvider {
17
17
  }
18
18
  async getAsync(key) {
19
19
  if (this.fn) {
20
- return this.fn.get(key);
20
+ return (await this.fn.get(key));
21
21
  }
22
22
  else {
23
23
  return this._sdLocalStorage.get(key);
@@ -3,5 +3,5 @@ import type { WritableSignal } from "@angular/core";
3
3
  * WritableSignal의 값이 in-place mutation된 후 소비자에게 변경을 알린다.
4
4
  * shallow copy로 새 참조를 생성하여 signal을 업데이트한다.
5
5
  */
6
- export declare function mark(sig: WritableSignal<any>): void;
6
+ export declare function mark<T extends object>(sig: WritableSignal<T>): void;
7
7
  //# sourceMappingURL=mark.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../src/core/mark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAEnD"}
1
+ {"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../src/core/mark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAEnE"}
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
4
4
  * 모달 내부에서 inject하여 사용하는 프로바이더
5
5
  */
6
6
  export class SdActivatedModalProvider {
7
- modalComponent = signal(undefined, ...(ngDevMode ? [{ debugName: "modalComponent" }] : /* istanbul ignore next */ []));
8
- contentComponent = signal(undefined, ...(ngDevMode ? [{ debugName: "contentComponent" }] : /* istanbul ignore next */ []));
7
+ modalComponent = signal(undefined, /* @ts-ignore */
8
+ ...(ngDevMode ? [{ debugName: "modalComponent" }] : /* istanbul ignore next */ []));
9
+ contentComponent = signal(undefined, /* @ts-ignore */
10
+ ...(ngDevMode ? [{ debugName: "contentComponent" }] : /* istanbul ignore next */ []));
9
11
  canDeactivateFn = () => true;
10
12
  static ɵfac = function SdActivatedModalProvider_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdActivatedModalProvider)(); };
11
13
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SdActivatedModalProvider, factory: SdActivatedModalProvider.ɵfac });
@@ -7,9 +7,11 @@ import * as i0 from "@angular/core";
7
7
  * 확인 시 true emit, 취소 시 undefined emit.
8
8
  */
9
9
  export class SdConfirmModal {
10
- initialized = signal(true, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
10
+ initialized = signal(true, /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
11
12
  close = output();
12
- message = input.required(...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
13
+ message = input.required(/* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
13
15
  onConfirm() {
14
16
  this.close.emit(true);
15
17
  }
@@ -31,7 +33,7 @@ export class SdConfirmModal {
31
33
  i0.ɵɵproperty("innerHTML", ctx.message(), i0.ɵɵsanitizeHtml);
32
34
  i0.ɵɵadvance(2);
33
35
  i0.ɵɵproperty("theme", "primary");
34
- } }, dependencies: [SdButton], encapsulation: 2, changeDetection: 0 });
36
+ } }, dependencies: [SdButton], encapsulation: 2 });
35
37
  }
36
38
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdConfirmModal, [{
37
39
  type: Component,
@@ -87,24 +87,42 @@ export class SdModal {
87
87
  _errorHandler = inject(ErrorHandler);
88
88
  _focusTrap = injectFocusTrap();
89
89
  tablerX = tablerX;
90
- open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
91
- key = input(undefined, ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
92
- title = input("", ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
93
- hideHeader = input(false, ...(ngDevMode ? [{ debugName: "hideHeader" }] : /* istanbul ignore next */ []));
94
- hideCloseButton = input(false, ...(ngDevMode ? [{ debugName: "hideCloseButton" }] : /* istanbul ignore next */ []));
95
- headerStyle = input(undefined, ...(ngDevMode ? [{ debugName: "headerStyle" }] : /* istanbul ignore next */ []));
96
- useCloseByBackdrop = input(true, ...(ngDevMode ? [{ debugName: "useCloseByBackdrop" }] : /* istanbul ignore next */ []));
97
- useCloseByEscapeKey = input(true, ...(ngDevMode ? [{ debugName: "useCloseByEscapeKey" }] : /* istanbul ignore next */ []));
98
- float = input(false, ...(ngDevMode ? [{ debugName: "float" }] : /* istanbul ignore next */ []));
99
- fill = input(false, ...(ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []));
100
- resizable = input(false, ...(ngDevMode ? [{ debugName: "resizable" }] : /* istanbul ignore next */ []));
101
- movable = input(false, ...(ngDevMode ? [{ debugName: "movable" }] : /* istanbul ignore next */ []));
102
- position = input(undefined, ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
103
- minHeightPx = input(undefined, ...(ngDevMode ? [{ debugName: "minHeightPx" }] : /* istanbul ignore next */ []));
104
- minWidthPx = input(undefined, ...(ngDevMode ? [{ debugName: "minWidthPx" }] : /* istanbul ignore next */ []));
105
- heightPx = input(undefined, ...(ngDevMode ? [{ debugName: "heightPx" }] : /* istanbul ignore next */ []));
106
- widthPx = input(undefined, ...(ngDevMode ? [{ debugName: "widthPx" }] : /* istanbul ignore next */ []));
107
- actionTplRef = input(undefined, ...(ngDevMode ? [{ debugName: "actionTplRef" }] : /* istanbul ignore next */ []));
90
+ open = model(false, /* @ts-ignore */
91
+ ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
92
+ key = input(undefined, /* @ts-ignore */
93
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
94
+ title = input("", /* @ts-ignore */
95
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
96
+ hideHeader = input(false, /* @ts-ignore */
97
+ ...(ngDevMode ? [{ debugName: "hideHeader" }] : /* istanbul ignore next */ []));
98
+ hideCloseButton = input(false, /* @ts-ignore */
99
+ ...(ngDevMode ? [{ debugName: "hideCloseButton" }] : /* istanbul ignore next */ []));
100
+ headerStyle = input(undefined, /* @ts-ignore */
101
+ ...(ngDevMode ? [{ debugName: "headerStyle" }] : /* istanbul ignore next */ []));
102
+ useCloseByBackdrop = input(true, /* @ts-ignore */
103
+ ...(ngDevMode ? [{ debugName: "useCloseByBackdrop" }] : /* istanbul ignore next */ []));
104
+ useCloseByEscapeKey = input(true, /* @ts-ignore */
105
+ ...(ngDevMode ? [{ debugName: "useCloseByEscapeKey" }] : /* istanbul ignore next */ []));
106
+ float = input(false, /* @ts-ignore */
107
+ ...(ngDevMode ? [{ debugName: "float" }] : /* istanbul ignore next */ []));
108
+ fill = input(false, /* @ts-ignore */
109
+ ...(ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []));
110
+ resizable = input(false, /* @ts-ignore */
111
+ ...(ngDevMode ? [{ debugName: "resizable" }] : /* istanbul ignore next */ []));
112
+ movable = input(false, /* @ts-ignore */
113
+ ...(ngDevMode ? [{ debugName: "movable" }] : /* istanbul ignore next */ []));
114
+ position = input(undefined, /* @ts-ignore */
115
+ ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
116
+ minHeightPx = input(undefined, /* @ts-ignore */
117
+ ...(ngDevMode ? [{ debugName: "minHeightPx" }] : /* istanbul ignore next */ []));
118
+ minWidthPx = input(undefined, /* @ts-ignore */
119
+ ...(ngDevMode ? [{ debugName: "minWidthPx" }] : /* istanbul ignore next */ []));
120
+ heightPx = input(undefined, /* @ts-ignore */
121
+ ...(ngDevMode ? [{ debugName: "heightPx" }] : /* istanbul ignore next */ []));
122
+ widthPx = input(undefined, /* @ts-ignore */
123
+ ...(ngDevMode ? [{ debugName: "widthPx" }] : /* istanbul ignore next */ []));
124
+ actionTplRef = input(undefined, /* @ts-ignore */
125
+ ...(ngDevMode ? [{ debugName: "actionTplRef" }] : /* istanbul ignore next */ []));
108
126
  closeRequest = output();
109
127
  _dragResize = injectDragResize({
110
128
  getDialogEl: () => this._getDialogEl(),
@@ -308,7 +326,7 @@ export class SdModal {
308
326
  i0.ɵɵconditional(!ctx.hideHeader() ? 2 : -1);
309
327
  i0.ɵɵadvance(3);
310
328
  i0.ɵɵconditional(ctx.resizable() ? 5 : -1);
311
- } }, dependencies: [NgTemplateOutlet, NgIcon, SdAnchor, SdResizeDirective], styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-modal {\n display: block;\n position: fixed;\n z-index: var(--z-index-modal);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding-top: calc(var(--topbar-height) + var(--gap-sm));\n opacity: 0;\n transition: opacity var(--animation-duration) ease-in-out;\n pointer-events: none;\n}\nsd-modal > ._backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--trans-default);\n}\nsd-modal > ._dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n width: fit-content;\n min-width: 200px;\n background: var(--control-color);\n overflow: hidden;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter);\n border-radius: var(--border-radius-default);\n transform: translateY(-25px);\n transition: transform var(--animation-duration) ease-in-out;\n}\nsd-modal > ._dialog:focus {\n outline: none;\n}\nsd-modal > ._dialog > ._header {\n display: flex;\n align-items: center;\n user-select: none;\n border-bottom: 1px solid var(--theme-gray-lighter);\n background: var(--theme-gray-lightest);\n}\nsd-modal > ._dialog > ._header > ._title {\n flex: 1;\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._header > ._close-btn {\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._content {\n flex: 1;\n overflow: auto;\n}\nsd-modal > ._dialog > ._resize-handle {\n position: absolute;\n}\nsd-modal > ._dialog > ._resize-handle._resize-left {\n top: 0;\n left: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-right {\n top: 0;\n right: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top {\n top: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-right {\n right: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nesw-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-left {\n left: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nwse-resize;\n z-index: 1;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom {\n bottom: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-right {\n right: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nwse-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-left {\n left: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nesw-resize;\n z-index: 1;\n}\nsd-modal[data-sd-open][data-sd-init] {\n opacity: 1;\n pointer-events: auto;\n}\nsd-modal[data-sd-open][data-sd-init] > ._dialog {\n transform: none;\n}\nsd-modal[data-sd-float] {\n pointer-events: none;\n}\nsd-modal[data-sd-float] > ._backdrop {\n display: none;\n}\nsd-modal[data-sd-float] > ._dialog {\n pointer-events: auto;\n opacity: 0;\n box-shadow: 0 calc(4 * var(--elevation-size)) calc(4 * 4 * var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter);\n border: 1px solid var(--theme-gray-lighter);\n}\nsd-modal[data-sd-float] > ._dialog:focus {\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter);\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] {\n pointer-events: none;\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] > ._dialog {\n pointer-events: auto;\n opacity: 1;\n}\nsd-modal[data-sd-position=bottom-right] > ._dialog {\n position: absolute;\n right: calc(var(--gap-xxl) * 2);\n bottom: var(--gap-xxl);\n}\nsd-modal[data-sd-position=top-right] > ._dialog {\n position: absolute;\n right: var(--gap-xxl);\n top: var(--gap-xxl);\n}\nsd-modal[data-sd-fill] {\n padding-top: 0;\n}\nsd-modal[data-sd-fill] > ._dialog {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\nsd-modal[data-sd-fill] > ._dialog > ._header {\n background: transparent;\n color: var(--text-trans-lighter);\n}"], encapsulation: 2, changeDetection: 0 });
329
+ } }, dependencies: [NgTemplateOutlet, NgIcon, SdAnchor, SdResizeDirective], styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-modal {\n display: block;\n position: fixed;\n z-index: var(--z-index-modal);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding-top: calc(var(--topbar-height) + var(--gap-sm));\n opacity: 0;\n transition: opacity var(--animation-duration) ease-in-out;\n pointer-events: none;\n}\nsd-modal > ._backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--trans-default);\n}\nsd-modal > ._dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n width: fit-content;\n min-width: 200px;\n background: var(--control-color);\n overflow: hidden;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter);\n border-radius: var(--border-radius-default);\n transform: translateY(-25px);\n transition: transform var(--animation-duration) ease-in-out;\n}\nsd-modal > ._dialog:focus {\n outline: none;\n}\nsd-modal > ._dialog > ._header {\n display: flex;\n align-items: center;\n user-select: none;\n border-bottom: 1px solid var(--theme-gray-lighter);\n background: var(--theme-gray-lightest);\n}\nsd-modal > ._dialog > ._header > ._title {\n flex: 1;\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._header > ._close-btn {\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._content {\n flex: 1;\n overflow: auto;\n}\nsd-modal > ._dialog > ._resize-handle {\n position: absolute;\n}\nsd-modal > ._dialog > ._resize-handle._resize-left {\n top: 0;\n left: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-right {\n top: 0;\n right: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top {\n top: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-right {\n right: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nesw-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-left {\n left: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nwse-resize;\n z-index: 1;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom {\n bottom: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-right {\n right: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nwse-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-left {\n left: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nesw-resize;\n z-index: 1;\n}\nsd-modal[data-sd-open][data-sd-init] {\n opacity: 1;\n pointer-events: auto;\n}\nsd-modal[data-sd-open][data-sd-init] > ._dialog {\n transform: none;\n}\nsd-modal[data-sd-float] {\n pointer-events: none;\n}\nsd-modal[data-sd-float] > ._backdrop {\n display: none;\n}\nsd-modal[data-sd-float] > ._dialog {\n pointer-events: auto;\n opacity: 0;\n box-shadow: 0 calc(4 * var(--elevation-size)) calc(4 * 4 * var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter);\n border: 1px solid var(--theme-gray-lighter);\n}\nsd-modal[data-sd-float] > ._dialog:focus {\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) var(--trans-lighter);\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] {\n pointer-events: none;\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] > ._dialog {\n pointer-events: auto;\n opacity: 1;\n}\nsd-modal[data-sd-position=bottom-right] > ._dialog {\n position: absolute;\n right: calc(var(--gap-xxl) * 2);\n bottom: var(--gap-xxl);\n}\nsd-modal[data-sd-position=top-right] > ._dialog {\n position: absolute;\n right: var(--gap-xxl);\n top: var(--gap-xxl);\n}\nsd-modal[data-sd-fill] {\n padding-top: 0;\n}\nsd-modal[data-sd-fill] > ._dialog {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\nsd-modal[data-sd-fill] > ._dialog > ._header {\n background: transparent;\n color: var(--text-trans-lighter);\n}"], encapsulation: 2 });
312
330
  }
313
331
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdModal, [{
314
332
  type: Component,
@@ -12,7 +12,8 @@ export class SdModalProvider {
12
12
  _appRef = inject(ApplicationRef);
13
13
  _envInjector = inject(EnvironmentInjector);
14
14
  _injector = inject(Injector);
15
- modalCount = signal(0, ...(ngDevMode ? [{ debugName: "modalCount" }] : /* istanbul ignore next */ []));
15
+ modalCount = signal(0, /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "modalCount" }] : /* istanbul ignore next */ []));
16
17
  async showAsync(modal, options) {
17
18
  return new Promise((resolve, reject) => {
18
19
  // 1. modalCount 증가
@@ -10,10 +10,13 @@ import * as i0 from "@angular/core";
10
10
  * 입력값은 필수(required)이며, 빈 값으로 확인 시 sd-form 네이티브 검증으로 차단된다.
11
11
  */
12
12
  export class SdPromptModal {
13
- initialized = signal(true, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
13
+ initialized = signal(true, /* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
14
15
  close = output();
15
- message = input.required(...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
16
- _inputValue = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputValue" }] : /* istanbul ignore next */ []));
16
+ message = input.required(/* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
18
+ _inputValue = signal(undefined, /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "_inputValue" }] : /* istanbul ignore next */ []));
17
20
  onConfirm() {
18
21
  this.close.emit(this._inputValue());
19
22
  }
@@ -44,7 +47,7 @@ export class SdPromptModal {
44
47
  i0.ɵɵproperty("required", true);
45
48
  i0.ɵɵadvance(2);
46
49
  i0.ɵɵproperty("type", "submit")("theme", "primary");
47
- } }, dependencies: [SdForm, SdButton, SdTextfield], encapsulation: 2, changeDetection: 0 });
50
+ } }, dependencies: [SdForm, SdButton, SdTextfield], encapsulation: 2 });
48
51
  }
49
52
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdPromptModal, [{
50
53
  type: Component,
@@ -19,25 +19,32 @@ export function useExpandingManager(binding) {
19
19
  }
20
20
  walk(binding.items(), undefined, 0);
21
21
  return defs;
22
- }, ...(ngDevMode ? [{ debugName: "allDefs" }] : /* istanbul ignore next */ []));
23
- const displayItems = computed(() => allDefs().map((d) => d.item), ...(ngDevMode ? [{ debugName: "displayItems" }] : /* istanbul ignore next */ []));
24
- const expandableDefs = computed(() => allDefs().filter((d) => d.hasChildren), ...(ngDevMode ? [{ debugName: "expandableDefs" }] : /* istanbul ignore next */ []));
25
- const hasExpandable = computed(() => expandableDefs().length > 0, ...(ngDevMode ? [{ debugName: "hasExpandable" }] : /* istanbul ignore next */ []));
26
- const _expandedSet = computed(() => new Set(binding.expandedItems()), ...(ngDevMode ? [{ debugName: "_expandedSet" }] : /* istanbul ignore next */ []));
22
+ }, /* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "allDefs" }] : /* istanbul ignore next */ []));
24
+ const displayItems = computed(() => allDefs().map((d) => d.item), /* @ts-ignore */
25
+ ...(ngDevMode ? [{ debugName: "displayItems" }] : /* istanbul ignore next */ []));
26
+ const expandableDefs = computed(() => allDefs().filter((d) => d.hasChildren), /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "expandableDefs" }] : /* istanbul ignore next */ []));
28
+ const hasExpandable = computed(() => expandableDefs().length > 0, /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "hasExpandable" }] : /* istanbul ignore next */ []));
30
+ const _expandedSet = computed(() => new Set(binding.expandedItems()), /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "_expandedSet" }] : /* istanbul ignore next */ []));
27
32
  const isAllExpanded = computed(() => {
28
33
  const expandable = expandableDefs();
29
34
  if (expandable.length === 0)
30
35
  return false;
31
36
  const expandedSet = _expandedSet();
32
37
  return expandable.every((d) => expandedSet.has(d.item));
33
- }, ...(ngDevMode ? [{ debugName: "isAllExpanded" }] : /* istanbul ignore next */ []));
38
+ }, /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "isAllExpanded" }] : /* istanbul ignore next */ []));
34
40
  const defMap = computed(() => {
35
41
  const map = new Map();
36
42
  for (const d of allDefs()) {
37
43
  map.set(d.item, d);
38
44
  }
39
45
  return map;
40
- }, ...(ngDevMode ? [{ debugName: "defMap" }] : /* istanbul ignore next */ []));
46
+ }, /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "defMap" }] : /* istanbul ignore next */ []));
41
48
  function toggle(item) {
42
49
  binding.expandedItems.update((arr) => {
43
50
  const next = [...arr];