@simplysm/angular 14.0.42 → 14.0.44

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 (241) hide show
  1. package/dist/controls/button/sd-additional-button.js +1 -1
  2. package/dist/controls/button/sd-anchor.js +1 -1
  3. package/dist/controls/button/sd-button.js +1 -1
  4. package/dist/controls/button/sd-modal-select-button.d.ts +1 -1
  5. package/dist/controls/button/sd-modal-select-button.d.ts.map +1 -1
  6. package/dist/controls/button/sd-modal-select-button.js +8 -6
  7. package/dist/controls/checkbox/sd-checkbox-group-item.js +1 -1
  8. package/dist/controls/checkbox/sd-checkbox-group.js +1 -1
  9. package/dist/controls/checkbox/sd-checkbox.js +1 -1
  10. package/dist/controls/checkbox/sd-switch.js +1 -1
  11. package/dist/controls/collapse/sd-collapse-icon.d.ts.map +1 -1
  12. package/dist/controls/collapse/sd-collapse-icon.js +3 -3
  13. package/dist/controls/collapse/sd-collapse.d.ts +1 -1
  14. package/dist/controls/collapse/sd-collapse.d.ts.map +1 -1
  15. package/dist/controls/collapse/sd-collapse.js +8 -7
  16. package/dist/controls/dropdown/sd-dropdown-popup.d.ts +2 -0
  17. package/dist/controls/dropdown/sd-dropdown-popup.d.ts.map +1 -1
  18. package/dist/controls/dropdown/sd-dropdown-popup.js +21 -8
  19. package/dist/controls/dropdown/sd-dropdown.d.ts.map +1 -1
  20. package/dist/controls/dropdown/sd-dropdown.js +5 -16
  21. package/dist/controls/form/sd-form.js +1 -1
  22. package/dist/controls/gap/sd-gap.js +5 -5
  23. package/dist/controls/input/sd-date-range-picker.d.ts +1 -0
  24. package/dist/controls/input/sd-date-range-picker.d.ts.map +1 -1
  25. package/dist/controls/input/sd-date-range-picker.js +14 -19
  26. package/dist/controls/input/sd-numpad.js +3 -3
  27. package/dist/controls/input/sd-range.js +1 -1
  28. package/dist/controls/input/sd-textarea.js +2 -2
  29. package/dist/controls/input/sd-textfield-type-handlers.js +2 -2
  30. package/dist/controls/input/sd-textfield.js +9 -9
  31. package/dist/controls/list/sd-list-item.d.ts +0 -1
  32. package/dist/controls/list/sd-list-item.d.ts.map +1 -1
  33. package/dist/controls/list/sd-list-item.js +38 -38
  34. package/dist/controls/list/sd-list.d.ts.map +1 -1
  35. package/dist/controls/list/sd-list.js +3 -3
  36. package/dist/controls/pagination/sd-pagination.js +1 -1
  37. package/dist/controls/select/sd-select-button.d.ts.map +1 -1
  38. package/dist/controls/select/sd-select-button.js +4 -8
  39. package/dist/controls/select/sd-select-item.d.ts +3 -3
  40. package/dist/controls/select/sd-select-item.d.ts.map +1 -1
  41. package/dist/controls/select/sd-select-item.js +27 -20
  42. package/dist/controls/select/sd-select.d.ts +5 -4
  43. package/dist/controls/select/sd-select.d.ts.map +1 -1
  44. package/dist/controls/select/sd-select.js +20 -17
  45. package/dist/controls/tab/sd-tab-item.js +1 -1
  46. package/dist/controls/tab/sd-tab.js +1 -1
  47. package/dist/core/app-structure/sd-app-structure.utils.js +1 -1
  48. package/dist/core/busy/sd-busy-container.d.ts.map +1 -1
  49. package/dist/core/busy/sd-busy-container.js +62 -68
  50. package/dist/core/busy/sd-busy.provider.js +1 -1
  51. package/dist/core/commands/sd-command.d.ts +13 -0
  52. package/dist/core/commands/sd-command.d.ts.map +1 -0
  53. package/dist/core/commands/sd-command.js +52 -0
  54. package/dist/core/error-handler/sd-global-error-handler.plugin.js +1 -1
  55. package/dist/core/events/sd-events.d.ts +1 -6
  56. package/dist/core/events/sd-events.d.ts.map +1 -1
  57. package/dist/core/events/sd-events.js +3 -11
  58. package/dist/core/events/sd-intersection.d.ts +13 -0
  59. package/dist/core/events/sd-intersection.d.ts.map +1 -0
  60. package/dist/core/events/sd-intersection.js +27 -0
  61. package/dist/core/events/sd-resize.d.ts +16 -0
  62. package/dist/core/events/sd-resize.d.ts.map +1 -0
  63. package/dist/core/events/{sd-resize-event.plugin.js → sd-resize.js} +18 -20
  64. package/dist/core/file-dialog/sd-file-dialog.provider.js +1 -1
  65. package/dist/core/modal/injectDragResize.js +9 -9
  66. package/dist/core/modal/injectFocusTrap.js +1 -1
  67. package/dist/core/modal/sd-confirm-modal.js +1 -1
  68. package/dist/core/modal/sd-modal.d.ts +8 -1
  69. package/dist/core/modal/sd-modal.d.ts.map +1 -1
  70. package/dist/core/modal/sd-modal.js +135 -39
  71. package/dist/core/modal/sd-modal.provider.js +5 -5
  72. package/dist/core/modal/sd-prompt-modal.js +1 -1
  73. package/dist/core/provideSdAngular.d.ts.map +1 -1
  74. package/dist/core/provideSdAngular.js +0 -10
  75. package/dist/core/ripple/setupRipple.js +5 -5
  76. package/dist/core/routing/menu-utils.js +1 -1
  77. package/dist/core/routing/sd-navigate-window.provider.js +1 -1
  78. package/dist/core/routing/sd-router-link.js +1 -1
  79. package/dist/core/selection/setupCumulateSelectedKeys.js +3 -3
  80. package/dist/core/setupModelHook.js +1 -1
  81. package/dist/core/toast/sd-toast-container.d.ts +1 -1
  82. package/dist/core/toast/sd-toast-container.js +3 -7
  83. package/dist/core/toast/sd-toast.d.ts.map +1 -1
  84. package/dist/core/toast/sd-toast.js +27 -24
  85. package/dist/core/toast/sd-toast.provider.js +6 -6
  86. package/dist/core/validation/setupInvalid.js +2 -1
  87. package/dist/data/data-detail/sd-data-detail.d.ts +2 -1
  88. package/dist/data/data-detail/sd-data-detail.d.ts.map +1 -1
  89. package/dist/data/data-detail/sd-data-detail.js +37 -33
  90. package/dist/data/data-select-button/sd-data-select-button.js +1 -1
  91. package/dist/data/data-sheet/sd-data-sheet.d.ts +2 -1
  92. package/dist/data/data-sheet/sd-data-sheet.d.ts.map +1 -1
  93. package/dist/data/data-sheet/sd-data-sheet.js +30 -22
  94. package/dist/data/kanban/sd-kanban-board.js +1 -1
  95. package/dist/data/kanban/sd-kanban-lane.js +1 -1
  96. package/dist/data/kanban/sd-kanban.d.ts +1 -1
  97. package/dist/data/kanban/sd-kanban.d.ts.map +1 -1
  98. package/dist/data/kanban/sd-kanban.js +4 -4
  99. package/dist/data/permission-table/sd-permission-table.js +6 -6
  100. package/dist/data/shared-data/sd-shared-data-select-button.js +1 -1
  101. package/dist/data/shared-data/sd-shared-data-select-list.js +3 -3
  102. package/dist/data/shared-data/sd-shared-data-select.d.ts +1 -1
  103. package/dist/data/shared-data/sd-shared-data-select.d.ts.map +1 -1
  104. package/dist/data/shared-data/sd-shared-data-select.js +29 -54
  105. package/dist/data/sheet/injectSheetDomAccessor.d.ts +6 -2
  106. package/dist/data/sheet/injectSheetDomAccessor.d.ts.map +1 -1
  107. package/dist/data/sheet/injectSheetDomAccessor.js +27 -22
  108. package/dist/data/sheet/injectSheetSelectRowIndicator.d.ts +10 -0
  109. package/dist/data/sheet/injectSheetSelectRowIndicator.d.ts.map +1 -0
  110. package/dist/data/sheet/injectSheetSelectRowIndicator.js +55 -0
  111. package/dist/data/sheet/sd-sheet-config.modal.d.ts +18 -19
  112. package/dist/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
  113. package/dist/data/sheet/sd-sheet-config.modal.js +357 -217
  114. package/dist/data/sheet/sd-sheet.d.ts +27 -13
  115. package/dist/data/sheet/sd-sheet.d.ts.map +1 -1
  116. package/dist/data/sheet/sd-sheet.js +609 -291
  117. package/dist/data/sheet/useSheetCellAgent.js +6 -6
  118. package/dist/data/sheet/useSheetCellStyling.d.ts.map +1 -1
  119. package/dist/data/sheet/useSheetCellStyling.js +4 -4
  120. package/dist/data/sheet/useSheetFocusIndicator.d.ts +7 -0
  121. package/dist/data/sheet/useSheetFocusIndicator.d.ts.map +1 -0
  122. package/dist/data/sheet/useSheetFocusIndicator.js +53 -0
  123. package/dist/data/sheet/useSheetLayoutEngine.js +1 -1
  124. package/dist/data/state-preset/sd-state-preset.d.ts.map +1 -1
  125. package/dist/data/state-preset/sd-state-preset.js +14 -14
  126. package/dist/features/address/sd-address-search.modal.js +3 -3
  127. package/dist/features/editor/sd-tiptap-editor.js +6 -6
  128. package/dist/features/editor/useTiptapToolbar.js +2 -2
  129. package/dist/features/theme/sd-theme-selector.js +1 -1
  130. package/dist/features/visual/sd-barcode.js +1 -1
  131. package/dist/features/visual/sd-calendar.js +2 -2
  132. package/dist/features/visual/sd-echarts.d.ts +2 -1
  133. package/dist/features/visual/sd-echarts.d.ts.map +1 -1
  134. package/dist/features/visual/sd-echarts.js +5 -3
  135. package/dist/features/visual/sd-label.js +1 -1
  136. package/dist/features/visual/sd-note.js +1 -1
  137. package/dist/features/visual/sd-progress.js +1 -1
  138. package/dist/index.d.ts +3 -5
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +3 -5
  141. package/dist/layout/base-container/sd-base-container.js +3 -3
  142. package/dist/layout/dock/sd-dock-container.js +1 -1
  143. package/dist/layout/dock/sd-dock.d.ts +3 -2
  144. package/dist/layout/dock/sd-dock.d.ts.map +1 -1
  145. package/dist/layout/dock/sd-dock.js +6 -4
  146. package/dist/layout/sidebar/sd-sidebar-container.js +5 -5
  147. package/dist/layout/sidebar/sd-sidebar-menu.d.ts.map +1 -1
  148. package/dist/layout/sidebar/sd-sidebar-menu.js +7 -6
  149. package/dist/layout/sidebar/sd-sidebar-user.js +1 -1
  150. package/dist/layout/sidebar/sd-sidebar.js +1 -1
  151. package/dist/layout/topbar/sd-topbar-container.js +1 -1
  152. package/dist/layout/topbar/sd-topbar-menu.d.ts.map +1 -1
  153. package/dist/layout/topbar/sd-topbar-menu.js +7 -7
  154. package/dist/layout/topbar/sd-topbar-user.js +1 -1
  155. package/dist/layout/topbar/sd-topbar.js +3 -3
  156. package/package.json +5 -5
  157. package/src/controls/button/sd-modal-select-button.ts +7 -2
  158. package/src/controls/collapse/sd-collapse-icon.ts +2 -2
  159. package/src/controls/collapse/sd-collapse.ts +4 -5
  160. package/src/controls/dropdown/sd-dropdown-popup.ts +15 -2
  161. package/src/controls/dropdown/sd-dropdown.ts +4 -16
  162. package/src/controls/gap/sd-gap.ts +4 -4
  163. package/src/controls/input/sd-date-range-picker.ts +13 -16
  164. package/src/controls/input/sd-numpad.ts +1 -1
  165. package/src/controls/input/sd-textarea.ts +1 -1
  166. package/src/controls/input/sd-textfield-type-handlers.ts +2 -2
  167. package/src/controls/input/sd-textfield.ts +6 -6
  168. package/src/controls/list/sd-list-item.ts +40 -26
  169. package/src/controls/list/sd-list.ts +2 -1
  170. package/src/controls/select/sd-select-button.ts +8 -11
  171. package/src/controls/select/sd-select-item.ts +35 -27
  172. package/src/controls/select/sd-select.ts +111 -41
  173. package/src/core/app-structure/sd-app-structure.utils.ts +1 -1
  174. package/src/core/busy/sd-busy-container.ts +235 -123
  175. package/src/core/busy/sd-busy.provider.ts +1 -1
  176. package/src/core/commands/sd-command.ts +46 -0
  177. package/src/core/error-handler/sd-global-error-handler.plugin.ts +1 -1
  178. package/src/core/events/sd-events.ts +1 -12
  179. package/src/core/events/sd-intersection.ts +29 -0
  180. package/src/core/events/{sd-resize-event.plugin.ts → sd-resize.ts} +17 -24
  181. package/src/core/file-dialog/sd-file-dialog.provider.ts +1 -1
  182. package/src/core/modal/injectDragResize.ts +9 -9
  183. package/src/core/modal/injectFocusTrap.ts +1 -1
  184. package/src/core/modal/sd-modal.provider.ts +5 -5
  185. package/src/core/modal/sd-modal.ts +119 -41
  186. package/src/core/provideSdAngular.ts +0 -10
  187. package/src/core/ripple/setupRipple.ts +5 -5
  188. package/src/core/routing/menu-utils.ts +1 -1
  189. package/src/core/routing/sd-navigate-window.provider.ts +1 -1
  190. package/src/core/routing/sd-router-link.ts +1 -1
  191. package/src/core/selection/setupCumulateSelectedKeys.ts +3 -3
  192. package/src/core/setupModelHook.ts +1 -1
  193. package/src/core/toast/sd-toast-container.ts +1 -1
  194. package/src/core/toast/sd-toast.provider.ts +6 -6
  195. package/src/core/toast/sd-toast.ts +25 -22
  196. package/src/core/validation/setupInvalid.ts +2 -1
  197. package/src/data/data-detail/sd-data-detail.ts +15 -11
  198. package/src/data/data-sheet/sd-data-sheet.ts +13 -15
  199. package/src/data/kanban/sd-kanban.ts +4 -5
  200. package/src/data/permission-table/sd-permission-table.ts +4 -4
  201. package/src/data/shared-data/sd-shared-data-select-list.ts +1 -1
  202. package/src/data/shared-data/sd-shared-data-select.ts +8 -27
  203. package/src/data/sheet/injectSheetDomAccessor.ts +37 -25
  204. package/src/data/sheet/injectSheetSelectRowIndicator.ts +69 -0
  205. package/src/data/sheet/sd-sheet-config.modal.ts +215 -191
  206. package/src/data/sheet/sd-sheet.ts +529 -209
  207. package/src/data/sheet/useSheetCellAgent.ts +8 -8
  208. package/src/data/sheet/useSheetCellStyling.ts +4 -8
  209. package/src/data/sheet/useSheetFocusIndicator.ts +66 -0
  210. package/src/data/sheet/useSheetLayoutEngine.ts +1 -1
  211. package/src/data/state-preset/sd-state-preset.ts +26 -13
  212. package/src/features/address/sd-address-search.modal.ts +1 -1
  213. package/src/features/editor/sd-tiptap-editor.ts +4 -4
  214. package/src/features/editor/useTiptapToolbar.ts +2 -2
  215. package/src/features/visual/sd-calendar.ts +1 -1
  216. package/src/features/visual/sd-echarts.ts +2 -0
  217. package/src/index.ts +4 -6
  218. package/src/layout/base-container/sd-base-container.ts +1 -1
  219. package/src/layout/dock/sd-dock.ts +3 -2
  220. package/src/layout/sidebar/sd-sidebar-container.ts +2 -2
  221. package/src/layout/sidebar/sd-sidebar-menu.ts +1 -3
  222. package/src/layout/topbar/sd-topbar-menu.ts +11 -15
  223. package/src/layout/topbar/sd-topbar.ts +1 -1
  224. package/dist/core/commands/sd-insert-command-event.plugin.d.ts +0 -11
  225. package/dist/core/commands/sd-insert-command-event.plugin.d.ts.map +0 -1
  226. package/dist/core/commands/sd-insert-command-event.plugin.js +0 -35
  227. package/dist/core/commands/sd-refresh-command-event.plugin.d.ts +0 -11
  228. package/dist/core/commands/sd-refresh-command-event.plugin.d.ts.map +0 -1
  229. package/dist/core/commands/sd-refresh-command-event.plugin.js +0 -38
  230. package/dist/core/commands/sd-save-command-event.plugin.d.ts +0 -11
  231. package/dist/core/commands/sd-save-command-event.plugin.d.ts.map +0 -1
  232. package/dist/core/commands/sd-save-command-event.plugin.js +0 -38
  233. package/dist/core/events/sd-intersection-event.plugin.d.ts +0 -13
  234. package/dist/core/events/sd-intersection-event.plugin.d.ts.map +0 -1
  235. package/dist/core/events/sd-intersection-event.plugin.js +0 -29
  236. package/dist/core/events/sd-resize-event.plugin.d.ts +0 -16
  237. package/dist/core/events/sd-resize-event.plugin.d.ts.map +0 -1
  238. package/src/core/commands/sd-insert-command-event.plugin.ts +0 -39
  239. package/src/core/commands/sd-refresh-command-event.plugin.ts +0 -44
  240. package/src/core/commands/sd-save-command-event.plugin.ts +0 -44
  241. package/src/core/events/sd-intersection-event.plugin.ts +0 -35
@@ -1,255 +1,395 @@
1
- import { ChangeDetectionStrategy, Component, computed, input, linkedSignal, output, signal, ViewEncapsulation, } from "@angular/core";
1
+ import { ChangeDetectionStrategy, Component, effect, forwardRef, input, output, signal, ViewEncapsulation, } from "@angular/core";
2
+ import { SdSheet } from "./sd-sheet";
3
+ import { SdSheetColumn as SdSheetColumnDir } from "./sd-sheet-column";
4
+ import { SdSheetColumnCellTemplate } from "./sd-sheet-column-cell-template";
2
5
  import { SdButton } from "../../controls/button/sd-button";
3
6
  import { SdCheckbox } from "../../controls/checkbox/sd-checkbox";
7
+ import { SdTextfield } from "../../controls/input/sd-textfield";
8
+ import { SdAnchor } from "../../controls/button/sd-anchor";
9
+ import { SdBusyContainer } from "../../core/busy/sd-busy-container";
4
10
  import { NgIcon } from "@ng-icons/core";
5
- import { tablerArrowUp, tablerArrowDown } from "@ng-icons/tabler-icons";
11
+ import { tablerChevronUp, tablerChevronDown, tablerX } from "@ng-icons/tabler-icons";
12
+ import { mark } from "../../core/mark";
6
13
  import * as i0 from "@angular/core";
7
- const _forTrack0 = ($index, $item) => $item.key;
8
- function SdSheetConfigModal_For_16_Template(rf, ctx) { if (rf & 1) {
9
- const _r1 = i0.ɵɵgetCurrentView();
10
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "sd-checkbox", 5);
11
- i0.ɵɵlistener("click", function SdSheetConfigModal_For_16_Template_sd_checkbox_click_2_listener() { const ɵ$index_26_r2 = i0.ɵɵrestoreView(_r1).$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFixedToggle(ɵ$index_26_r2)); });
14
+ function SdSheetConfigModal_Conditional_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
15
+ const _r2 = i0.ɵɵgetCurrentView();
16
+ i0.ɵɵelementStart(0, "div", 12)(1, "sd-checkbox", 13);
17
+ i0.ɵɵtwoWayListener("valueChange", function SdSheetConfigModal_Conditional_1_ng_template_3_Template_sd_checkbox_valueChange_1_listener($event) { const item_r3 = i0.ɵɵrestoreView(_r2).item; i0.ɵɵtwoWayBindingSet(item_r3.fixed, $event) || (item_r3.fixed = $event); return i0.ɵɵresetView($event); });
18
+ i0.ɵɵlistener("valueChange", function SdSheetConfigModal_Conditional_1_ng_template_3_Template_sd_checkbox_valueChange_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.mark(ctx_r3.items)); });
12
19
  i0.ɵɵelementEnd()();
13
- i0.ɵɵelementStart(3, "td", 6)(4, "sd-button", 7);
14
- i0.ɵɵlistener("click", function SdSheetConfigModal_For_16_Template_sd_button_click_4_listener() { const ɵ$index_26_r2 = i0.ɵɵrestoreView(_r1).$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onMoveUp(ɵ$index_26_r2)); });
15
- i0.ɵɵelement(5, "ng-icon", 8);
20
+ } if (rf & 2) {
21
+ const item_r3 = ctx.item;
22
+ i0.ɵɵadvance();
23
+ i0.ɵɵproperty("size", "sm")("inset", true);
24
+ i0.ɵɵtwoWayProperty("value", item_r3.fixed);
25
+ } }
26
+ function SdSheetConfigModal_Conditional_1_ng_template_5_Template(rf, ctx) { if (rf & 1) {
27
+ const _r5 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "div", 14)(1, "sd-anchor", 15);
29
+ i0.ɵɵlistener("click", function SdSheetConfigModal_Conditional_1_ng_template_5_Template_sd_anchor_click_1_listener() { const item_r6 = i0.ɵɵrestoreView(_r5).item; const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onMoveUp(item_r6)); });
30
+ i0.ɵɵelement(2, "ng-icon", 16);
16
31
  i0.ɵɵelementEnd();
17
- i0.ɵɵelementStart(6, "sd-button", 7);
18
- i0.ɵɵlistener("click", function SdSheetConfigModal_For_16_Template_sd_button_click_6_listener() { const ɵ$index_26_r2 = i0.ɵɵrestoreView(_r1).$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onMoveDown(ɵ$index_26_r2)); });
19
- i0.ɵɵelement(7, "ng-icon", 8);
32
+ i0.ɵɵelementStart(3, "sd-anchor", 15);
33
+ i0.ɵɵlistener("click", function SdSheetConfigModal_Conditional_1_ng_template_5_Template_sd_anchor_click_3_listener() { const item_r6 = i0.ɵɵrestoreView(_r5).item; const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onMoveDown(item_r6)); });
34
+ i0.ɵɵelement(4, "ng-icon", 16);
20
35
  i0.ɵɵelementEnd()();
21
- i0.ɵɵelementStart(8, "td");
22
- i0.ɵɵtext(9);
36
+ } if (rf & 2) {
37
+ const item_r6 = ctx.item;
38
+ const index_r7 = ctx.index;
39
+ const ctx_r3 = i0.ɵɵnextContext(2);
40
+ i0.ɵɵadvance();
41
+ i0.ɵɵproperty("disabled", index_r7 === 0 || !item_r6.fixed && ctx_r3.items()[index_r7 - 1].fixed);
42
+ i0.ɵɵadvance();
43
+ i0.ɵɵproperty("svg", ctx_r3.tablerChevronUp);
44
+ i0.ɵɵadvance();
45
+ i0.ɵɵproperty("disabled", index_r7 === ctx_r3.items().length - 1 || item_r6.fixed && !ctx_r3.items()[index_r7 + 1].fixed);
46
+ i0.ɵɵadvance();
47
+ i0.ɵɵproperty("svg", ctx_r3.tablerChevronDown);
48
+ } }
49
+ function SdSheetConfigModal_Conditional_1_ng_template_7_Template(rf, ctx) { if (rf & 1) {
50
+ i0.ɵɵelementStart(0, "div", 17);
51
+ i0.ɵɵtext(1);
52
+ i0.ɵɵelementEnd();
53
+ } if (rf & 2) {
54
+ const item_r8 = ctx.item;
55
+ i0.ɵɵadvance();
56
+ i0.ɵɵtextInterpolate1(" ", item_r8.header, " ");
57
+ } }
58
+ function SdSheetConfigModal_Conditional_1_ng_template_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
59
+ const _r9 = i0.ɵɵgetCurrentView();
60
+ i0.ɵɵelementStart(0, "sd-textfield", 19);
61
+ i0.ɵɵtwoWayListener("valueChange", function SdSheetConfigModal_Conditional_1_ng_template_9_Conditional_0_Template_sd_textfield_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const item_r10 = i0.ɵɵnextContext().item; i0.ɵɵtwoWayBindingSet(item_r10.width, $event) || (item_r10.width = $event); return i0.ɵɵresetView($event); });
62
+ i0.ɵɵlistener("valueChange", function SdSheetConfigModal_Conditional_1_ng_template_9_Conditional_0_Template_sd_textfield_valueChange_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.mark(ctx_r3.items)); });
23
63
  i0.ɵɵelementEnd();
24
- i0.ɵɵelementStart(10, "td")(11, "input", 9);
25
- i0.ɵɵlistener("input", function SdSheetConfigModal_For_16_Template_input_input_11_listener($event) { const ɵ$index_26_r2 = i0.ɵɵrestoreView(_r1).$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onWidthChange(ɵ$index_26_r2, $event)); });
64
+ } if (rf & 2) {
65
+ const item_r10 = i0.ɵɵnextContext().item;
66
+ i0.ɵɵproperty("type", "text")("size", "sm")("inset", true);
67
+ i0.ɵɵtwoWayProperty("value", item_r10.width);
68
+ } }
69
+ function SdSheetConfigModal_Conditional_1_ng_template_9_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵconditionalCreate(0, SdSheetConfigModal_Conditional_1_ng_template_9_Conditional_0_Template, 1, 4, "sd-textfield", 18);
71
+ } if (rf & 2) {
72
+ const item_r10 = ctx.item;
73
+ i0.ɵɵconditional(!item_r10.disableResizing ? 0 : -1);
74
+ } }
75
+ function SdSheetConfigModal_Conditional_1_ng_template_11_Template(rf, ctx) { if (rf & 1) {
76
+ const _r11 = i0.ɵɵgetCurrentView();
77
+ i0.ɵɵelementStart(0, "div", 12)(1, "sd-checkbox", 20);
78
+ i0.ɵɵtwoWayListener("valueChange", function SdSheetConfigModal_Conditional_1_ng_template_11_Template_sd_checkbox_valueChange_1_listener($event) { const item_r12 = i0.ɵɵrestoreView(_r11).item; i0.ɵɵtwoWayBindingSet(item_r12.hidden, $event) || (item_r12.hidden = $event); return i0.ɵɵresetView($event); });
79
+ i0.ɵɵlistener("valueChange", function SdSheetConfigModal_Conditional_1_ng_template_11_Template_sd_checkbox_valueChange_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.mark(ctx_r3.items)); });
26
80
  i0.ɵɵelementEnd()();
27
- i0.ɵɵelementStart(12, "td")(13, "sd-checkbox", 5);
28
- i0.ɵɵlistener("click", function SdSheetConfigModal_For_16_Template_sd_checkbox_click_13_listener() { const ɵ$index_26_r2 = i0.ɵɵrestoreView(_r1).$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onHiddenToggle(ɵ$index_26_r2)); });
81
+ } if (rf & 2) {
82
+ const item_r12 = ctx.item;
83
+ const ctx_r3 = i0.ɵɵnextContext(2);
84
+ i0.ɵɵadvance();
85
+ i0.ɵɵproperty("size", "sm")("inset", true);
86
+ i0.ɵɵtwoWayProperty("value", item_r12.hidden);
87
+ i0.ɵɵproperty("icon", ctx_r3.tablerX)("theme", "danger");
88
+ } }
89
+ function SdSheetConfigModal_Conditional_1_Template(rf, ctx) { if (rf & 1) {
90
+ const _r1 = i0.ɵɵgetCurrentView();
91
+ i0.ɵɵelementStart(0, "div", 1)(1, "sd-sheet", 2)(2, "sd-sheet-column", 3);
92
+ i0.ɵɵtemplate(3, SdSheetConfigModal_Conditional_1_ng_template_3_Template, 2, 3, "ng-template", 4);
93
+ i0.ɵɵelementEnd();
94
+ i0.ɵɵelementStart(4, "sd-sheet-column", 3);
95
+ i0.ɵɵtemplate(5, SdSheetConfigModal_Conditional_1_ng_template_5_Template, 5, 4, "ng-template", 4);
96
+ i0.ɵɵelementEnd();
97
+ i0.ɵɵelementStart(6, "sd-sheet-column", 5);
98
+ i0.ɵɵtemplate(7, SdSheetConfigModal_Conditional_1_ng_template_7_Template, 2, 1, "ng-template", 4);
99
+ i0.ɵɵelementEnd();
100
+ i0.ɵɵelementStart(8, "sd-sheet-column", 6);
101
+ i0.ɵɵtemplate(9, SdSheetConfigModal_Conditional_1_ng_template_9_Template, 1, 1, "ng-template", 4);
102
+ i0.ɵɵelementEnd();
103
+ i0.ɵɵelementStart(10, "sd-sheet-column", 3);
104
+ i0.ɵɵtemplate(11, SdSheetConfigModal_Conditional_1_ng_template_11_Template, 2, 5, "ng-template", 4);
29
105
  i0.ɵɵelementEnd()()();
106
+ i0.ɵɵelementStart(12, "div", 7)(13, "div", 8)(14, "sd-button", 9);
107
+ i0.ɵɵlistener("click", function SdSheetConfigModal_Conditional_1_Template_sd_button_click_14_listener() { i0.ɵɵrestoreView(_r1); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onResetClick()); });
108
+ i0.ɵɵtext(15, " Reset ");
109
+ i0.ɵɵelementEnd()();
110
+ i0.ɵɵelementStart(16, "sd-button", 10);
111
+ i0.ɵɵlistener("click", function SdSheetConfigModal_Conditional_1_Template_sd_button_click_16_listener() { i0.ɵɵrestoreView(_r1); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onOkClick()); });
112
+ i0.ɵɵtext(17, " OK ");
113
+ i0.ɵɵelementEnd();
114
+ i0.ɵɵelementStart(18, "sd-button", 11);
115
+ i0.ɵɵlistener("click", function SdSheetConfigModal_Conditional_1_Template_sd_button_click_18_listener() { i0.ɵɵrestoreView(_r1); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onCancelClick()); });
116
+ i0.ɵɵtext(19, " Cancel ");
117
+ i0.ɵɵelementEnd()();
30
118
  } if (rf & 2) {
31
- const item_r4 = ctx.$implicit;
32
- const ɵ$index_26_r2 = ctx.$index;
33
- const ctx_r2 = i0.ɵɵnextContext();
34
- i0.ɵɵadvance(2);
35
- i0.ɵɵproperty("value", item_r4.fixed)("inline", true)("inset", true);
36
- i0.ɵɵadvance(2);
37
- i0.ɵɵproperty("disabled", !ctx_r2.canMoveUp(ɵ$index_26_r2));
119
+ const ctx_r3 = i0.ɵɵnextContext();
38
120
  i0.ɵɵadvance();
39
- i0.ɵɵproperty("svg", ctx_r2._icons.tablerArrowUp);
121
+ i0.ɵɵproperty("key", ctx_r3.sheetKey() + "-config")("items", ctx_r3.items())("trackByFn", ctx_r3.trackByFn)("hideConfigBar", true);
40
122
  i0.ɵɵadvance();
41
- i0.ɵɵproperty("disabled", !ctx_r2.canMoveDown(ɵ$index_26_r2));
123
+ i0.ɵɵproperty("key", "fixed")("header", "Fix")("disableSorting", true)("disableResizing", true);
42
124
  i0.ɵɵadvance();
43
- i0.ɵɵproperty("svg", ctx_r2._icons.tablerArrowDown);
44
- i0.ɵɵadvance(2);
45
- i0.ɵɵtextInterpolate(item_r4.header);
125
+ i0.ɵɵproperty("cell", ctx_r3.items());
126
+ i0.ɵɵadvance();
127
+ i0.ɵɵproperty("key", "ordering")("header", "Order")("disableSorting", true)("disableResizing", true);
128
+ i0.ɵɵadvance();
129
+ i0.ɵɵproperty("cell", ctx_r3.items());
130
+ i0.ɵɵadvance();
131
+ i0.ɵɵproperty("key", "header")("header", "Header")("disableSorting", true);
132
+ i0.ɵɵadvance();
133
+ i0.ɵɵproperty("cell", ctx_r3.items());
134
+ i0.ɵɵadvance();
135
+ i0.ɵɵproperty("key", "width")("header", "Width")("disableSorting", true)("width", "60px");
136
+ i0.ɵɵadvance();
137
+ i0.ɵɵproperty("cell", ctx_r3.items());
138
+ i0.ɵɵadvance();
139
+ i0.ɵɵproperty("key", "hidden")("header", "Hidden")("disableSorting", true)("disableResizing", true);
140
+ i0.ɵɵadvance();
141
+ i0.ɵɵproperty("cell", ctx_r3.items());
142
+ i0.ɵɵadvance(3);
143
+ i0.ɵɵproperty("size", "sm")("inline", true)("theme", "warning")("buttonStyle", "min-width: 60px;");
46
144
  i0.ɵɵadvance(2);
47
- i0.ɵɵproperty("value", item_r4.width);
145
+ i0.ɵɵproperty("size", "sm")("theme", "success")("buttonStyle", "min-width: 60px;");
48
146
  i0.ɵɵadvance(2);
49
- i0.ɵɵproperty("value", item_r4.hidden)("inline", true)("inset", true);
147
+ i0.ɵɵproperty("size", "sm")("buttonStyle", "min-width: 60px;");
50
148
  } }
51
149
  export class SdSheetConfigModal {
52
- initialized = signal(true, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
150
+ initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
53
151
  close = output();
152
+ sheetKey = input.required(...(ngDevMode ? [{ debugName: "sheetKey" }] : /* istanbul ignore next */ []));
54
153
  controls = input.required(...(ngDevMode ? [{ debugName: "controls" }] : /* istanbul ignore next */ []));
55
154
  config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
56
- _icons = { tablerArrowUp, tablerArrowDown };
57
- _initialItems = computed(() => {
58
- const cfg = this.config();
59
- const controls = this.controls();
60
- return controls
61
- .map((ctrl) => {
62
- const key = ctrl.key();
63
- const cfgCol = cfg?.columnRecord[key];
64
- return {
65
- key,
66
- header: Array.isArray(ctrl.header()) ? ctrl.header().join(" > ") : ctrl.header(),
67
- fixed: cfgCol?.fixed ?? ctrl.fixed(),
68
- hidden: cfgCol?.hidden ?? ctrl.hidden(),
69
- width: cfgCol?.width ?? ctrl.width() ?? "",
70
- ordering: cfgCol?.ordering ?? ctrl.ordering(),
71
- };
72
- })
73
- .sort((a, b) => a.ordering - b.ordering);
74
- }, ...(ngDevMode ? [{ debugName: "_initialItems" }] : /* istanbul ignore next */ []));
75
- _items = linkedSignal(() => this._initialItems(), ...(ngDevMode ? [{ debugName: "_items" }] : /* istanbul ignore next */ []));
76
- onFixedToggle(idx) {
77
- const items = [...this._items()];
78
- items[idx] = { ...items[idx], fixed: !items[idx].fixed };
79
- this._items.set(items);
80
- }
81
- onHiddenToggle(idx) {
82
- const items = [...this._items()];
83
- items[idx] = { ...items[idx], hidden: !items[idx].hidden };
84
- this._items.set(items);
85
- }
86
- onWidthChange(idx, event) {
87
- const inputEl = event.target;
88
- const items = [...this._items()];
89
- items[idx] = { ...items[idx], width: inputEl.value };
90
- this._items.set(items);
91
- }
92
- canMoveUp(idx) {
93
- if (idx <= 0)
94
- return false;
95
- const items = this._items();
96
- const current = items[idx];
97
- const above = items[idx - 1];
98
- // Cannot move non-fixed above fixed
99
- if (!current.fixed && above.fixed)
100
- return false;
101
- return true;
102
- }
103
- canMoveDown(idx) {
104
- const items = this._items();
105
- if (idx >= items.length - 1)
106
- return false;
107
- const current = items[idx];
108
- const below = items[idx + 1];
109
- // Cannot move fixed below non-fixed
110
- if (current.fixed && !below.fixed)
111
- return false;
112
- return true;
155
+ items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
156
+ trackByFn = (item) => item.key;
157
+ tablerChevronUp = tablerChevronUp;
158
+ tablerChevronDown = tablerChevronDown;
159
+ tablerX = tablerX;
160
+ mark = mark;
161
+ constructor() {
162
+ effect(() => {
163
+ const cfg = this.config();
164
+ const items = this.controls()
165
+ .map((ctrl) => {
166
+ const key = ctrl.key();
167
+ const cfgCol = cfg?.columnRecord[key];
168
+ return {
169
+ key,
170
+ header: Array.isArray(ctrl.header())
171
+ ? ctrl.header().join(" > ")
172
+ : ctrl.header(),
173
+ disableResizing: ctrl.disableResizing(),
174
+ fixed: cfgCol?.fixed ?? ctrl.fixed(),
175
+ hidden: cfgCol?.hidden ?? ctrl.hidden(),
176
+ width: cfgCol?.width ?? ctrl.width(),
177
+ ordering: cfgCol?.ordering ?? ctrl.ordering(),
178
+ };
179
+ })
180
+ .orderBy((i) => i.ordering ?? 0)
181
+ .orderBy((i) => (i.fixed ? 0 : 1));
182
+ this.items.set(items);
183
+ this.initialized.set(true);
184
+ });
113
185
  }
114
- onMoveUp(idx) {
115
- if (!this.canMoveUp(idx))
116
- return;
117
- const items = [...this._items()];
118
- [items[idx - 1], items[idx]] = [items[idx], items[idx - 1]];
119
- this._items.set(items);
186
+ onMoveUp(item) {
187
+ this.items.update((v) => {
188
+ const r = [...v];
189
+ const index = r.indexOf(item);
190
+ r.splice(index, 1);
191
+ r.splice(index - 1, 0, item);
192
+ for (let i = 0; i < r.length; i++) {
193
+ r[i].ordering = i;
194
+ }
195
+ return r;
196
+ });
120
197
  }
121
- onMoveDown(idx) {
122
- if (!this.canMoveDown(idx))
123
- return;
124
- const items = [...this._items()];
125
- [items[idx], items[idx + 1]] = [items[idx + 1], items[idx]];
126
- this._items.set(items);
198
+ onMoveDown(item) {
199
+ this.items.update((v) => {
200
+ const r = [...v];
201
+ const index = r.indexOf(item);
202
+ r.splice(index, 1);
203
+ r.splice(index + 1, 0, item);
204
+ for (let i = 0; i < r.length; i++) {
205
+ r[i].ordering = i;
206
+ }
207
+ return r;
208
+ });
127
209
  }
128
- onOk() {
129
- const items = this._items();
130
- const columnRecord = {};
131
- for (let i = 0; i < items.length; i++) {
132
- const item = items[i];
133
- columnRecord[item.key] = {
210
+ onOkClick() {
211
+ const result = { columnRecord: {} };
212
+ for (const item of this.items()) {
213
+ result.columnRecord[item.key] = {
134
214
  fixed: item.fixed,
215
+ width: item.width,
216
+ ordering: item.ordering,
135
217
  hidden: item.hidden,
136
- width: item.width !== "" ? item.width : undefined,
137
- ordering: i,
138
218
  };
139
219
  }
140
- this.close.emit({ columnRecord });
220
+ this.close.emit(result);
141
221
  }
142
- onCancel() {
222
+ onCancelClick() {
143
223
  this.close.emit(undefined);
144
224
  }
145
- onReset() {
146
- this.close.emit({ columnRecord: {} });
225
+ onResetClick() {
226
+ if (confirm("설정값이 모두 초기화 됩니다.")) {
227
+ this.close.emit({ columnRecord: {} });
228
+ }
147
229
  }
148
230
  static ɵfac = function SdSheetConfigModal_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdSheetConfigModal)(); };
149
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdSheetConfigModal, selectors: [["sd-sheet-config-modal"]], inputs: { controls: [1, "controls"], config: [1, "config"] }, outputs: { close: "close" }, decls: 24, vars: 1, consts: [[1, "_sd-sheet-config-modal"], [1, "_config-table"], [1, "_actions"], [3, "click", "theme"], [3, "click"], [3, "click", "value", "inline", "inset"], [1, "_order-col"], [3, "click", "disabled"], [3, "svg"], ["type", "text", 1, "_width-input", 3, "input", "value"]], template: function SdSheetConfigModal_Template(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵelementStart(0, "div", 0)(1, "table", 1)(2, "thead")(3, "tr")(4, "th");
151
- i0.ɵɵtext(5, "Fix");
152
- i0.ɵɵelementEnd();
153
- i0.ɵɵelementStart(6, "th");
154
- i0.ɵɵtext(7, "Order");
155
- i0.ɵɵelementEnd();
156
- i0.ɵɵelementStart(8, "th");
157
- i0.ɵɵtext(9, "Header");
158
- i0.ɵɵelementEnd();
159
- i0.ɵɵelementStart(10, "th");
160
- i0.ɵɵtext(11, "Width");
161
- i0.ɵɵelementEnd();
162
- i0.ɵɵelementStart(12, "th");
163
- i0.ɵɵtext(13, "Hidden");
164
- i0.ɵɵelementEnd()()();
165
- i0.ɵɵelementStart(14, "tbody");
166
- i0.ɵɵrepeaterCreate(15, SdSheetConfigModal_For_16_Template, 14, 12, "tr", null, _forTrack0);
167
- i0.ɵɵelementEnd()();
168
- i0.ɵɵelementStart(17, "div", 2)(18, "sd-button", 3);
169
- i0.ɵɵlistener("click", function SdSheetConfigModal_Template_sd_button_click_18_listener() { return ctx.onOk(); });
170
- i0.ɵɵtext(19, "OK");
171
- i0.ɵɵelementEnd();
172
- i0.ɵɵelementStart(20, "sd-button", 4);
173
- i0.ɵɵlistener("click", function SdSheetConfigModal_Template_sd_button_click_20_listener() { return ctx.onCancel(); });
174
- i0.ɵɵtext(21, "Cancel");
231
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdSheetConfigModal, selectors: [["sd-sheet-config-modal"]], inputs: { sheetKey: [1, "sheetKey"], controls: [1, "controls"], config: [1, "config"] }, outputs: { close: "close" }, decls: 2, vars: 2, consts: [[3, "busy"], [1, "flex-fill", "p-default"], [3, "key", "items", "trackByFn", "hideConfigBar"], [3, "key", "header", "disableSorting", "disableResizing"], [3, "cell"], [3, "key", "header", "disableSorting"], [3, "key", "header", "disableSorting", "width"], [1, "p-sm-default", "flex-row", "gap-sm", "bdt", "bdt-theme-gray-lightest"], [1, "flex-fill", "align-start"], [3, "click", "size", "inline", "theme", "buttonStyle"], [3, "click", "size", "theme", "buttonStyle"], [3, "click", "size", "buttonStyle"], [2, "text-align", "center"], [3, "valueChange", "size", "inset", "value"], [1, "p-xs-sm", 2, "text-align", "center"], [3, "click", "disabled"], [3, "svg"], [1, "p-xs-sm"], [3, "type", "size", "inset", "value"], [3, "valueChange", "type", "size", "inset", "value"], [3, "valueChange", "size", "inset", "value", "icon", "theme"]], template: function SdSheetConfigModal_Template(rf, ctx) { if (rf & 1) {
232
+ i0.ɵɵelementStart(0, "sd-busy-container", 0);
233
+ i0.ɵɵconditionalCreate(1, SdSheetConfigModal_Conditional_1_Template, 20, 37);
175
234
  i0.ɵɵelementEnd();
176
- i0.ɵɵelementStart(22, "sd-button", 4);
177
- i0.ɵɵlistener("click", function SdSheetConfigModal_Template_sd_button_click_22_listener() { return ctx.onReset(); });
178
- i0.ɵɵtext(23, "Reset");
179
- i0.ɵɵelementEnd()()();
180
235
  } if (rf & 2) {
181
- i0.ɵɵadvance(15);
182
- i0.ɵɵrepeater(ctx._items());
183
- i0.ɵɵadvance(3);
184
- i0.ɵɵproperty("theme", "primary");
185
- } }, dependencies: [SdButton, SdCheckbox, NgIcon], styles: ["sd-sheet-config-modal {\n display: block;\n padding: var(--gap-default);\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: var(--gap-default);\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table th,\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table td {\n border: 1px solid var(--trans-lighter);\n padding: var(--gap-sm) var(--gap-default);\n text-align: left;\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table th {\n background: var(--theme-secondary-lightest);\n font-weight: bold;\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table ._order-col {\n white-space: nowrap;\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table ._width-input {\n width: 80px;\n padding: 2px 4px;\n border: 1px solid var(--trans-lighter);\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._actions {\n display: flex;\n justify-content: flex-end;\n gap: var(--gap-sm);\n}"], encapsulation: 2, changeDetection: 0 });
236
+ i0.ɵɵproperty("busy", !ctx.initialized());
237
+ i0.ɵɵadvance();
238
+ i0.ɵɵconditional(ctx.initialized() ? 1 : -1);
239
+ } }, dependencies: () => [SdSheet, SdSheetColumnDir,
240
+ SdSheetColumnCellTemplate,
241
+ SdButton,
242
+ SdCheckbox,
243
+ SdTextfield,
244
+ SdAnchor,
245
+ SdBusyContainer,
246
+ NgIcon], encapsulation: 2, changeDetection: 0 });
186
247
  }
187
248
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSheetConfigModal, [{
188
249
  type: Component,
189
- args: [{ selector: "sd-sheet-config-modal", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [SdButton, SdCheckbox, NgIcon], template: `
190
- <div class="_sd-sheet-config-modal">
191
- <table class="_config-table">
192
- <thead>
193
- <tr>
194
- <th>Fix</th>
195
- <th>Order</th>
196
- <th>Header</th>
197
- <th>Width</th>
198
- <th>Hidden</th>
199
- </tr>
200
- </thead>
201
- <tbody>
202
- @for (item of _items(); track item.key; let idx = $index) {
203
- <tr>
204
- <td>
205
- <sd-checkbox
206
- [value]="item.fixed"
207
- (click)="onFixedToggle(idx)"
208
- [inline]="true"
209
- [inset]="true"
210
- />
211
- </td>
212
- <td class="_order-col">
213
- <sd-button
214
- [disabled]="!canMoveUp(idx)"
215
- (click)="onMoveUp(idx)"
216
- >
217
- <ng-icon [svg]="_icons.tablerArrowUp" />
218
- </sd-button>
219
- <sd-button
220
- [disabled]="!canMoveDown(idx)"
221
- (click)="onMoveDown(idx)"
222
- >
223
- <ng-icon [svg]="_icons.tablerArrowDown" />
224
- </sd-button>
225
- </td>
226
- <td>{{ item.header }}</td>
227
- <td>
228
- <input
229
- type="text"
230
- class="_width-input"
231
- [value]="item.width"
232
- (input)="onWidthChange(idx, $event)"
233
- />
234
- </td>
235
- <td>
236
- <sd-checkbox
237
- [value]="item.hidden"
238
- (click)="onHiddenToggle(idx)"
239
- [inline]="true"
240
- [inset]="true"
241
- />
242
- </td>
243
- </tr>
244
- }
245
- </tbody>
246
- </table>
247
- <div class="_actions">
248
- <sd-button [theme]="'primary'" (click)="onOk()">OK</sd-button>
249
- <sd-button (click)="onCancel()">Cancel</sd-button>
250
- <sd-button (click)="onReset()">Reset</sd-button>
251
- </div>
252
- </div>
253
- `, styles: ["sd-sheet-config-modal {\n display: block;\n padding: var(--gap-default);\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: var(--gap-default);\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table th,\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table td {\n border: 1px solid var(--trans-lighter);\n padding: var(--gap-sm) var(--gap-default);\n text-align: left;\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table th {\n background: var(--theme-secondary-lightest);\n font-weight: bold;\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table ._order-col {\n white-space: nowrap;\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._config-table ._width-input {\n width: 80px;\n padding: 2px 4px;\n border: 1px solid var(--trans-lighter);\n}\nsd-sheet-config-modal > ._sd-sheet-config-modal > ._actions {\n display: flex;\n justify-content: flex-end;\n gap: var(--gap-sm);\n}"] }]
254
- }], null, { close: [{ type: i0.Output, args: ["close"] }], controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }] }); })();
255
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSheetConfigModal, { className: "SdSheetConfigModal", filePath: "packages/angular/src/data/sheet/sd-sheet-config.modal.ts", lineNumber: 143, forbidOrphanRendering: true }); })();
250
+ args: [{
251
+ selector: "sd-sheet-config-modal",
252
+ changeDetection: ChangeDetectionStrategy.OnPush,
253
+ encapsulation: ViewEncapsulation.None,
254
+ imports: [
255
+ forwardRef(() => SdSheet),
256
+ SdSheetColumnDir,
257
+ SdSheetColumnCellTemplate,
258
+ SdButton,
259
+ SdCheckbox,
260
+ SdTextfield,
261
+ SdAnchor,
262
+ SdBusyContainer,
263
+ NgIcon,
264
+ ],
265
+ template: `
266
+ <sd-busy-container [busy]="!initialized()">
267
+ @if (initialized()) {
268
+ <div class="flex-fill p-default">
269
+ <sd-sheet
270
+ [key]="sheetKey() + '-config'"
271
+ [items]="items()"
272
+ [trackByFn]="trackByFn"
273
+ [hideConfigBar]="true"
274
+ >
275
+ <sd-sheet-column
276
+ [key]="'fixed'"
277
+ [header]="'Fix'"
278
+ [disableSorting]="true"
279
+ [disableResizing]="true"
280
+ >
281
+ <ng-template [cell]="items()" let-item="item">
282
+ <div style="text-align: center">
283
+ <sd-checkbox
284
+ [size]="'sm'"
285
+ [inset]="true"
286
+ [(value)]="item.fixed"
287
+ (valueChange)="mark(items)"
288
+ />
289
+ </div>
290
+ </ng-template>
291
+ </sd-sheet-column>
292
+ <sd-sheet-column
293
+ [key]="'ordering'"
294
+ [header]="'Order'"
295
+ [disableSorting]="true"
296
+ [disableResizing]="true"
297
+ >
298
+ <ng-template [cell]="items()" let-item="item" let-index="index">
299
+ <div class="p-xs-sm" style="text-align: center">
300
+ <sd-anchor
301
+ [disabled]="index === 0 || (!item.fixed && items()[index - 1].fixed)"
302
+ (click)="onMoveUp(item)"
303
+ >
304
+ <ng-icon [svg]="tablerChevronUp" />
305
+ </sd-anchor>
306
+ <sd-anchor
307
+ [disabled]="index === items().length - 1 || (item.fixed && !items()[index + 1].fixed)"
308
+ (click)="onMoveDown(item)"
309
+ >
310
+ <ng-icon [svg]="tablerChevronDown" />
311
+ </sd-anchor>
312
+ </div>
313
+ </ng-template>
314
+ </sd-sheet-column>
315
+ <sd-sheet-column [key]="'header'" [header]="'Header'" [disableSorting]="true">
316
+ <ng-template [cell]="items()" let-item="item">
317
+ <div class="p-xs-sm">
318
+ {{ item.header }}
319
+ </div>
320
+ </ng-template>
321
+ </sd-sheet-column>
322
+ <sd-sheet-column
323
+ [key]="'width'"
324
+ [header]="'Width'"
325
+ [disableSorting]="true"
326
+ [width]="'60px'"
327
+ >
328
+ <ng-template [cell]="items()" let-item="item">
329
+ @if (!item.disableResizing) {
330
+ <sd-textfield
331
+ [type]="'text'"
332
+ [size]="'sm'"
333
+ [inset]="true"
334
+ [(value)]="item.width"
335
+ (valueChange)="mark(items)"
336
+ />
337
+ }
338
+ </ng-template>
339
+ </sd-sheet-column>
340
+ <sd-sheet-column
341
+ [key]="'hidden'"
342
+ [header]="'Hidden'"
343
+ [disableSorting]="true"
344
+ [disableResizing]="true"
345
+ >
346
+ <ng-template [cell]="items()" let-item="item">
347
+ <div style="text-align: center">
348
+ <sd-checkbox
349
+ [size]="'sm'"
350
+ [inset]="true"
351
+ [(value)]="item.hidden"
352
+ (valueChange)="mark(items)"
353
+ [icon]="tablerX"
354
+ [theme]="'danger'"
355
+ />
356
+ </div>
357
+ </ng-template>
358
+ </sd-sheet-column>
359
+ </sd-sheet>
360
+ </div>
361
+
362
+ <div class="p-sm-default flex-row gap-sm bdt bdt-theme-gray-lightest">
363
+ <div class="flex-fill align-start">
364
+ <sd-button
365
+ [size]="'sm'"
366
+ [inline]="true"
367
+ [theme]="'warning'"
368
+ [buttonStyle]="'min-width: 60px;'"
369
+ (click)="onResetClick()"
370
+ >
371
+ Reset
372
+ </sd-button>
373
+ </div>
374
+ <sd-button
375
+ [size]="'sm'"
376
+ [theme]="'success'"
377
+ [buttonStyle]="'min-width: 60px;'"
378
+ (click)="onOkClick()"
379
+ >
380
+ OK
381
+ </sd-button>
382
+ <sd-button
383
+ [size]="'sm'"
384
+ [buttonStyle]="'min-width: 60px;'"
385
+ (click)="onCancelClick()"
386
+ >
387
+ Cancel
388
+ </sd-button>
389
+ </div>
390
+ }
391
+ </sd-busy-container>
392
+ `,
393
+ }]
394
+ }], () => [], { close: [{ type: i0.Output, args: ["close"] }], sheetKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "sheetKey", required: true }] }], controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }] }); })();
395
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSheetConfigModal, { className: "SdSheetConfigModal", filePath: "packages/angular/src/data/sheet/sd-sheet-config.modal.ts", lineNumber: 180 }); })();