@simplysm/angular 14.0.42 → 14.0.43

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,5 +1,5 @@
1
1
  import { type SdKanbanDragRef, type SdKanbanDropTarget } from "./sd-kanban-board";
2
- import type { SdResizeEvent } from "../../core/events/sd-resize-event.plugin";
2
+ import { type SdResizeEvent } from "../../core/events/sd-resize";
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SdKanban<L, T> implements SdKanbanDragRef<L, T>, SdKanbanDropTarget<L, T> {
5
5
  private readonly _boardControl;
@@ -1 +1 @@
1
- {"version":3,"file":"sd-kanban.d.ts","sourceRoot":"","sources":["../../../src/data/kanban/sd-kanban.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;;AAE9E,qBA4Fa,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IACF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAEtE,QAAQ,CAAC,OAAO,OAAQ;IAExB,KAAK,qDAAc;IAEnB,SAAS,gDAA6C;IAEtD,UAAU,qEAAiD;IAC3D,SAAS,qEAAiD;IAE1D,QAAQ,0CAEN;IACF,UAAU,oEAAmD;IAE7D,YAAY,0DAAmB;IAE/B,UAAU,kDAAiB;IAE3B,YAAY,iDAAa;IAEzB,UAAU,iDAAa;;IAYvB,eAAe;IAIf,iBAAiB;IAIjB,WAAW,CAAC,KAAK,EAAE,UAAU;IAoB7B,cAAc;IAId,YAAY,CAAC,KAAK,EAAE,aAAa;IAOjC,eAAe;IAOf,UAAU,CAAC,KAAK,EAAE,SAAS;IAS3B,WAAW,CAAC,KAAK,EAAE,SAAS;IAO5B,UAAU,CAAC,KAAK,EAAE,SAAS;yCAvGhB,QAAQ;2CAAR,QAAQ;CAgHpB"}
1
+ {"version":3,"file":"sd-kanban.d.ts","sourceRoot":"","sources":["../../../src/data/kanban/sd-kanban.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;;AAEpF,qBA4Fa,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IACF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAEtE,QAAQ,CAAC,OAAO,OAAQ;IAExB,KAAK,qDAAc;IAEnB,SAAS,gDAA6C;IAEtD,UAAU,qEAAiD;IAC3D,SAAS,qEAAiD;IAE1D,QAAQ,0CAEN;IACF,UAAU,oEAAmD;IAE7D,YAAY,0DAAmB;IAE/B,UAAU,kDAAiB;IAE3B,YAAY,iDAAa;IAEzB,UAAU,iDAAa;;IAYvB,eAAe;IAIf,iBAAiB;IAIjB,WAAW,CAAC,KAAK,EAAE,UAAU;IAoB7B,cAAc;IAId,YAAY,CAAC,KAAK,EAAE,aAAa;IAOjC,eAAe;IAOf,UAAU,CAAC,KAAK,EAAE,SAAS;IAS3B,WAAW,CAAC,KAAK,EAAE,SAAS;IAO5B,UAAU,CAAC,KAAK,EAAE,SAAS;yCAvGhB,QAAQ;2CAAR,QAAQ;CAgHpB"}
@@ -1,7 +1,7 @@
1
1
  import { afterNextRender, booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, inject, input, signal, ViewEncapsulation, } from "@angular/core";
2
2
  import { SdKanbanBoard, } from "./sd-kanban-board";
3
3
  import { SdKanbanLane } from "./sd-kanban-lane";
4
- import { SdEvents } from "../../core/events/sd-events";
4
+ import { SdResizeDirective } from "../../core/events/sd-resize";
5
5
  import * as i0 from "@angular/core";
6
6
  const _c0 = ["*"];
7
7
  export class SdKanban {
@@ -110,11 +110,11 @@ export class SdKanban {
110
110
  i0.ɵɵadvance();
111
111
  i0.ɵɵclassMap(ctx.contentClass());
112
112
  i0.ɵɵproperty("draggable", ctx.draggable());
113
- } }, dependencies: [SdEvents], styles: ["sd-kanban {\n position: relative;\n display: block;\n}\nsd-kanban[data-sd-dragging-this=true] {\n display: none;\n}\nsd-kanban > ._drag-position {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n}\nsd-kanban[data-sd-dragging=true] > ._drag-position {\n pointer-events: auto;\n}\nsd-kanban[data-sd-dragging=true] > .card {\n pointer-events: none;\n cursor: pointer;\n}\nsd-kanban > ._drop-position {\n border-radius: var(--border-radius-default);\n background: var(--trans-light);\n height: 0;\n margin-bottom: 0;\n visibility: hidden;\n transition: 0.1s linear;\n transition-property: height, margin-bottom, visibility;\n}\nsd-kanban[data-sd-drag-over=true] > ._drop-position {\n margin-bottom: var(--gap-lg);\n visibility: visible;\n}\nsd-kanban > .card {\n white-space: normal;\n user-select: none;\n margin-bottom: var(--gap-lg);\n}"], encapsulation: 2, changeDetection: 0 });
113
+ } }, dependencies: [SdResizeDirective], styles: ["sd-kanban {\n position: relative;\n display: block;\n}\nsd-kanban[data-sd-dragging-this=true] {\n display: none;\n}\nsd-kanban > ._drag-position {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n}\nsd-kanban[data-sd-dragging=true] > ._drag-position {\n pointer-events: auto;\n}\nsd-kanban[data-sd-dragging=true] > .card {\n pointer-events: none;\n cursor: pointer;\n}\nsd-kanban > ._drop-position {\n border-radius: var(--border-radius-default);\n background: var(--trans-light);\n height: 0;\n margin-bottom: 0;\n visibility: hidden;\n transition: 0.1s linear;\n transition-property: height, margin-bottom, visibility;\n}\nsd-kanban[data-sd-drag-over=true] > ._drop-position {\n margin-bottom: var(--gap-lg);\n visibility: visible;\n}\nsd-kanban > .card {\n white-space: normal;\n user-select: none;\n margin-bottom: var(--gap-lg);\n}"], encapsulation: 2, changeDetection: 0 });
114
114
  }
115
115
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdKanban, [{
116
116
  type: Component,
117
- args: [{ selector: "sd-kanban", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [SdEvents], host: {
117
+ args: [{ selector: "sd-kanban", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [SdResizeDirective], host: {
118
118
  "[attr.data-sd-dragging-this]": "dragKanban() === thisRef",
119
119
  "[attr.data-sd-dragging]": "dragKanban() != null",
120
120
  "[attr.data-sd-drag-over]": "dragOvered()",
@@ -144,4 +144,4 @@ export class SdKanban {
144
144
  </div>
145
145
  `, styles: ["sd-kanban {\n position: relative;\n display: block;\n}\nsd-kanban[data-sd-dragging-this=true] {\n display: none;\n}\nsd-kanban > ._drag-position {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n}\nsd-kanban[data-sd-dragging=true] > ._drag-position {\n pointer-events: auto;\n}\nsd-kanban[data-sd-dragging=true] > .card {\n pointer-events: none;\n cursor: pointer;\n}\nsd-kanban > ._drop-position {\n border-radius: var(--border-radius-default);\n background: var(--trans-light);\n height: 0;\n margin-bottom: 0;\n visibility: hidden;\n transition: 0.1s linear;\n transition-property: height, margin-bottom, visibility;\n}\nsd-kanban[data-sd-drag-over=true] > ._drop-position {\n margin-bottom: var(--gap-lg);\n visibility: visible;\n}\nsd-kanban > .card {\n white-space: normal;\n user-select: none;\n margin-bottom: var(--gap-lg);\n}"] }]
146
146
  }], () => [], { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], contentClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentClass", required: false }] }] }); })();
147
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdKanban, { className: "SdKanban", filePath: "packages/angular/src/data/kanban/sd-kanban.ts", lineNumber: 115, forbidOrphanRendering: true }); })();
147
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdKanban, { className: "SdKanban", filePath: "packages/angular/src/data/kanban/sd-kanban.ts", lineNumber: 114 }); })();
@@ -34,7 +34,7 @@ function SdPermissionTable_ng_template_4_Conditional_0_Conditional_4_Template(rf
34
34
  const item_r4 = i0.ɵɵnextContext(2).item;
35
35
  const ctx_r4 = i0.ɵɵnextContext();
36
36
  i0.ɵɵadvance();
37
- i0.ɵɵproperty("open", !ctx_r4.getIsPermCollapsed(item_r4));
37
+ i0.ɵɵproperty("open", ctx_r4.getIsPermCollapsed(item_r4));
38
38
  i0.ɵɵadvance();
39
39
  i0.ɵɵtextInterpolate1(" ", item_r4.title, " ");
40
40
  } }
@@ -146,7 +146,7 @@ export class SdPermissionTable {
146
146
  const walk = (item, type) => {
147
147
  const key = item.codeChain.join(".") + "." + type;
148
148
  const cached = cache.get(key);
149
- if (cached !== undefined)
149
+ if (cached != null)
150
150
  return cached;
151
151
  if (item.perms) {
152
152
  const result = item.perms.includes(type);
@@ -176,7 +176,7 @@ export class SdPermissionTable {
176
176
  const walk = (item, type) => {
177
177
  const key = item.codeChain.join(".") + "." + type;
178
178
  const cached = cache.get(key);
179
- if (cached !== undefined)
179
+ if (cached != null)
180
180
  return cached;
181
181
  if (item.perms) {
182
182
  const permCode = item.codeChain.join(".");
@@ -209,7 +209,7 @@ export class SdPermissionTable {
209
209
  const walk = (item) => {
210
210
  const key = item.codeChain.join(".");
211
211
  const cached = cache.get(key);
212
- if (cached !== undefined)
212
+ if (cached != null)
213
213
  return cached;
214
214
  if (isDisabled) {
215
215
  cache.set(key, true);
@@ -408,7 +408,7 @@ export class SdPermissionTable {
408
408
  <td class="_title">
409
409
  @if (item.children && item.children.length > 0) {
410
410
  <sd-anchor (click)="onPermCollapseToggle(item)">
411
- <sd-collapse-icon [open]="!getIsPermCollapsed(item)" />
411
+ <sd-collapse-icon [open]="getIsPermCollapsed(item)" />
412
412
  {{ item.title }}
413
413
  </sd-anchor>
414
414
  } @else {
@@ -465,4 +465,4 @@ export class SdPermissionTable {
465
465
  </ng-template>
466
466
  `, styles: ["sd-permission-table table {\n border-collapse: collapse;\n}\nsd-permission-table table > * > tr > * {\n padding: var(--gap-sm) var(--gap-lg);\n position: sticky;\n top: 0;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n color: var(--text-trans-default);\n}\nsd-permission-table table > * > tr > * > * {\n color: var(--text-trans-default) !important;\n}\nsd-permission-table table > * > tr > *._title {\n border-top-left-radius: 14px;\n border-bottom-left-radius: 14px;\n padding-left: var(--gap-lg);\n}\nsd-permission-table table > * > tr[data-sd-collapse=true] {\n display: none;\n}\nsd-permission-table table > * > tr[data-sd-theme=first] > *._title, sd-permission-table table > * > tr[data-sd-theme=first] > *._after {\n background: var(--theme-info-default);\n color: var(--text-trans-rev-default);\n}\nsd-permission-table table > * > tr[data-sd-theme=first] > *._title > *, sd-permission-table table > * > tr[data-sd-theme=first] > *._after > * {\n color: var(--text-trans-rev-default) !important;\n}\nsd-permission-table table > * > tr[data-sd-theme=info] > *._title, sd-permission-table table > * > tr[data-sd-theme=info] > *._after {\n background: var(--theme-info-lightest);\n}\nsd-permission-table table > * > tr[data-sd-theme=warning] > *._title, sd-permission-table table > * > tr[data-sd-theme=warning] > *._after {\n background: var(--theme-warning-lightest);\n}\nsd-permission-table table > * > tr[data-sd-theme=success] > *._title, sd-permission-table table > * > tr[data-sd-theme=success] > *._after {\n background: var(--theme-success-lightest);\n}"] }]
467
467
  }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] }); })();
468
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdPermissionTable, { className: "SdPermissionTable", filePath: "packages/angular/src/data/permission-table/sd-permission-table.ts", lineNumber: 212, forbidOrphanRendering: true }); })();
468
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdPermissionTable, { className: "SdPermissionTable", filePath: "packages/angular/src/data/permission-table/sd-permission-table.ts", lineNumber: 212 }); })();
@@ -64,4 +64,4 @@ export class SdSharedDataSelectButton extends SdDataSelectButtonBase {
64
64
  `,
65
65
  }]
66
66
  }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], modal: [{ type: i0.Input, args: [{ isSignal: true, alias: "modal", required: true }] }], itemTplRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdItemOfTemplate), { ...{ read: TemplateRef }, isSignal: true }] }] }); })();
67
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelectButton, { className: "SdSharedDataSelectButton", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select-button.ts", lineNumber: 46, forbidOrphanRendering: true }); })();
67
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelectButton, { className: "SdSharedDataSelectButton", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select-button.ts", lineNumber: 46 }); })();
@@ -108,7 +108,7 @@ function SdSharedDataSelectList_Conditional_9_Template(rf, ctx) { if (rf & 1) {
108
108
  i0.ɵɵelementEnd();
109
109
  } if (rf & 2) {
110
110
  const ctx_r0 = i0.ɵɵnextContext();
111
- i0.ɵɵproperty("selected", ctx_r0.selectedItem() === undefined)("selectedIcon", ctx_r0.selectedIcon());
111
+ i0.ɵɵproperty("selected", ctx_r0.selectedItem() == null)("selectedIcon", ctx_r0.selectedIcon());
112
112
  i0.ɵɵadvance();
113
113
  i0.ɵɵconditional(ctx_r0.undefinedTplRef() ? 1 : 2);
114
114
  } }
@@ -308,7 +308,7 @@ export class SdSharedDataSelectList {
308
308
  <sd-list [inset]="true" class="flex-fill">
309
309
  @if (useUndefined()) {
310
310
  <sd-list-item
311
- [selected]="selectedItem() === undefined"
311
+ [selected]="selectedItem() == null"
312
312
  (click)="select(undefined)"
313
313
  [selectedIcon]="selectedIcon()"
314
314
  >
@@ -348,4 +348,4 @@ export class SdSharedDataSelectList {
348
348
  }, isSignal: true }] }], itemTplRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdItemOfTemplate), { ...{ read: TemplateRef }, isSignal: true }] }], undefinedTplRef: [{ type: i0.ContentChild, args: ["undefinedTpl", { ...{
349
349
  read: TemplateRef,
350
350
  }, isSignal: true }] }], pageItemCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageItemCount", required: false }] }] }); })();
351
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelectList, { className: "SdSharedDataSelectList", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select-list.ts", lineNumber: 129, forbidOrphanRendering: true }); })();
351
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelectList, { className: "SdSharedDataSelectList", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select-list.ts", lineNumber: 129 }); })();
@@ -28,6 +28,7 @@ export declare class SdSharedDataSelect<TItem extends SharedDataBase<string | nu
28
28
  displayOrderKeyProp: import("@angular/core").InputSignal<string | undefined>;
29
29
  itemTplRef: import("@angular/core").Signal<TemplateRef<SdItemOfTemplateContext<TItem>> | undefined>;
30
30
  undefinedTplRef: import("@angular/core").Signal<TemplateRef<void> | undefined>;
31
+ trackByFn: (item: TItem) => TItem["__valueKey"];
31
32
  searchText: import("@angular/core").WritableSignal<string | undefined>;
32
33
  isDropdownOpen: import("@angular/core").Signal<boolean>;
33
34
  hasParentKey: import("@angular/core").Signal<boolean>;
@@ -41,7 +42,6 @@ export declare class SdSharedDataSelect<TItem extends SharedDataBase<string | nu
41
42
  isIncludeSearchText(item: TItem, _index: number): boolean;
42
43
  private readonly _sortedChildrenMap;
43
44
  getChildren: (item: SharedDataBase<string | number>) => TItem[];
44
- onUndefinedClick(): void;
45
45
  onModalButtonClick(event: MouseEvent): Promise<void>;
46
46
  onEditModalButtonClick(event: MouseEvent): Promise<void>;
47
47
  protected readonly tablerSearch = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"stroke-width:var(--ng-icon__stroke-width, 2)\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\"></path><path d=\"M21 21l-6 -6\"></path></svg>";
@@ -1 +1 @@
1
- {"version":3,"file":"sd-shared-data-select.d.ts","sourceRoot":"","sources":["../../../src/data/shared-data/sd-shared-data-select.ts"],"names":[],"mappings":"AACA,OAAO,EAWL,WAAW,EAIZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIjF,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,8CAA8C,CAAC;;AAKtD,qBAwGa,kBAAkB,CAC7B,KAAK,SAAS,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAC7C,KAAK,SAAS,MAAM,eAAe,CAAC,KAAK,CAAC,EAC1C,MAAM,SAAS,aAAa,CAAC,GAAG,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD,KAAK,2GAAoE;IAEzE,KAAK,+CAA6B;IAElC,QAAQ,qEAAiD;IACzD,QAAQ,qEAAiD;IACzD,YAAY,qEAAiD;IAC7D,KAAK,qEAAiD;IACtD,MAAM,qEAAiD;IAEvD,IAAI,+DAAwB;IAC5B,UAAU,6CAA4B;IACtC,QAAQ,8CAAgB,KAAK,SAAS,MAAM,aAAa,GAAG,EAAE,KAAK,OAAO,eAAI;IAC9E,cAAc,yDAAkB;IAEhC,KAAK,6EAAsC;IAC3C,SAAS,+FAAoD;IAE7D,WAAW,0DAAmB;IAC9B,8BAA8B,8DAAuB;IACrD,aAAa,6CAAgB,KAAK,SAAS,MAAM,KAAK,OAAO,EAE3D;IACF,eAAe,6CAAgB,KAAK,SAAS,MAAM,KAAK,MAAM,EAE5D;IACF,mBAAmB,0DAAmB;IAEtC,UAAU,0FAGR;IACF,eAAe,gEAEZ;IAEH,UAAU,6DAAyC;IAEnD,cAAc,0CAA+D;IAE7E,YAAY,0CAEV;IAEF,kBAAkB,4FAcf;IAEH,gBAAgB,0CAyBb;IAEH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAsCnC;IAEH,YAAY,wCAKT;;IAgBH,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAMtE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAcnD,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAqBhC;IAEH,WAAW,GAAI,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,KAAK,EAAE,CAK5D;IAEF,gBAAgB,IAAI,IAAI;IAIlB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpD,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,SAAS,CAAC,QAAQ,CAAC,YAAY,yXAAgB;IAC/C,SAAS,CAAC,QAAQ,CAAC,UAAU,geAAc;yCA1PhC,kBAAkB;2CAAlB,kBAAkB;CA2P9B"}
1
+ {"version":3,"file":"sd-shared-data-select.d.ts","sourceRoot":"","sources":["../../../src/data/shared-data/sd-shared-data-select.ts"],"names":[],"mappings":"AACA,OAAO,EAWL,WAAW,EAIZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIjF,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,8CAA8C,CAAC;;AAKtD,qBAmGa,kBAAkB,CAC7B,KAAK,SAAS,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAC7C,KAAK,SAAS,MAAM,eAAe,CAAC,KAAK,CAAC,EAC1C,MAAM,SAAS,aAAa,CAAC,GAAG,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD,KAAK,2GAAoE;IAEzE,KAAK,+CAA6B;IAElC,QAAQ,qEAAiD;IACzD,QAAQ,qEAAiD;IACzD,YAAY,qEAAiD;IAC7D,KAAK,qEAAiD;IACtD,MAAM,qEAAiD;IAEvD,IAAI,+DAAwB;IAC5B,UAAU,6CAA4B;IACtC,QAAQ,8CAAgB,KAAK,SAAS,MAAM,aAAa,GAAG,EAAE,KAAK,OAAO,eAAI;IAC9E,cAAc,yDAAkB;IAEhC,KAAK,6EAAsC;IAC3C,SAAS,+FAAoD;IAE7D,WAAW,0DAAmB;IAC9B,8BAA8B,8DAAuB;IACrD,aAAa,6CAAgB,KAAK,SAAS,MAAM,KAAK,OAAO,EAE3D;IACF,eAAe,6CAAgB,KAAK,SAAS,MAAM,KAAK,MAAM,EAE5D;IACF,mBAAmB,0DAAmB;IAEtC,UAAU,0FAGR;IACF,eAAe,gEAEZ;IAEH,SAAS,GAAI,MAAM,KAAK,KAAG,KAAK,CAAC,YAAY,CAAC,CAAoB;IAElE,UAAU,6DAAyC;IAEnD,cAAc,0CAA+D;IAE7E,YAAY,0CAEV;IAEF,kBAAkB,4FAcf;IAEH,gBAAgB,0CAmBb;IAEH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAsCnC;IAEH,YAAY,wCAKT;;IAgBH,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAMtE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAcnD,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAehC;IAEH,WAAW,GAAI,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,KAAK,EAAE,CAK5D;IAEI,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpD,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,SAAS,CAAC,QAAQ,CAAC,YAAY,yXAAgB;IAC/C,SAAS,CAAC,QAAQ,CAAC,UAAU,geAAc;yCA5OhC,kBAAkB;2CAAlB,kBAAkB;CA6O9B"}
@@ -48,21 +48,19 @@ function SdSharedDataSelect_ng_template_3_Template(rf, ctx) { if (rf & 1) {
48
48
  } }
49
49
  function SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_1_ng_template_0_Template(rf, ctx) { }
50
50
  function SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵtemplate(0, SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_1_ng_template_0_Template, 0, 0, "ng-template", 10);
51
+ i0.ɵɵtemplate(0, SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_1_ng_template_0_Template, 0, 0, "ng-template", 8);
52
52
  } if (rf & 2) {
53
53
  const ctx_r1 = i0.ɵɵnextContext(3);
54
54
  i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.undefinedTplRef());
55
55
  } }
56
56
  function SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
57
- i0.ɵɵelementStart(0, "span", 11);
57
+ i0.ɵɵelementStart(0, "span", 9);
58
58
  i0.ɵɵtext(1, "\uBBF8\uC9C0\uC815");
59
59
  i0.ɵɵelementEnd();
60
60
  } }
61
61
  function SdSharedDataSelect_ng_template_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
62
- const _r5 = i0.ɵɵgetCurrentView();
63
- i0.ɵɵelementStart(0, "div", 9);
64
- i0.ɵɵlistener("click", function SdSharedDataSelect_ng_template_5_Conditional_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onUndefinedClick()); })("keydown.enter", function SdSharedDataSelect_ng_template_5_Conditional_0_Template_div_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onUndefinedClick()); })("keydown.space", function SdSharedDataSelect_ng_template_5_Conditional_0_Template_div_keydown_space_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.onUndefinedClick(); return i0.ɵɵresetView($event.preventDefault()); });
65
- i0.ɵɵconditionalCreate(1, SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_1_Template, 1, 1, null, 10)(2, SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_2_Template, 2, 0, "span", 11);
62
+ i0.ɵɵelementStart(0, "sd-select-item");
63
+ i0.ɵɵconditionalCreate(1, SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_1_Template, 1, 1, null, 8)(2, SdSharedDataSelect_ng_template_5_Conditional_0_Conditional_2_Template, 2, 0, "span", 9);
66
64
  i0.ɵɵelementEnd();
67
65
  } if (rf & 2) {
68
66
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -70,36 +68,36 @@ function SdSharedDataSelect_ng_template_5_Conditional_0_Template(rf, ctx) { if (
70
68
  i0.ɵɵconditional(ctx_r1.undefinedTplRef() ? 1 : 2);
71
69
  } }
72
70
  function SdSharedDataSelect_ng_template_5_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵconditionalCreate(0, SdSharedDataSelect_ng_template_5_Conditional_0_Template, 3, 1, "div", 8);
71
+ i0.ɵɵconditionalCreate(0, SdSharedDataSelect_ng_template_5_Conditional_0_Template, 3, 1, "sd-select-item");
74
72
  } if (rf & 2) {
75
73
  const ctx_r1 = i0.ɵɵnextContext();
76
74
  i0.ɵɵconditional(!ctx_r1.required() && ctx_r1.selectMode() === "single" || ctx_r1.useUndefined() && ctx_r1.selectMode() === "multi" ? 0 : -1);
77
75
  } }
78
76
  function SdSharedDataSelect_ng_template_7_Conditional_0_ng_template_2_Template(rf, ctx) { }
79
77
  function SdSharedDataSelect_ng_template_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵelementStart(0, "sd-select-item", 12)(1, "span");
81
- i0.ɵɵtemplate(2, SdSharedDataSelect_ng_template_7_Conditional_0_ng_template_2_Template, 0, 0, "ng-template", 13);
78
+ i0.ɵɵelementStart(0, "sd-select-item", 10)(1, "span");
79
+ i0.ɵɵtemplate(2, SdSharedDataSelect_ng_template_7_Conditional_0_ng_template_2_Template, 0, 0, "ng-template", 11);
82
80
  i0.ɵɵelementEnd()();
83
81
  } if (rf & 2) {
84
- const ctx_r5 = i0.ɵɵnextContext();
85
- const item_r7 = ctx_r5.item;
86
- const index_r8 = ctx_r5.index;
87
- const depth_r9 = ctx_r5.depth;
82
+ const ctx_r4 = i0.ɵɵnextContext();
83
+ const item_r6 = ctx_r4.item;
84
+ const index_r7 = ctx_r4.index;
85
+ const depth_r8 = ctx_r4.depth;
88
86
  const ctx_r1 = i0.ɵɵnextContext();
89
- i0.ɵɵproperty("value", item_r7.__valueKey)("hidden", !ctx_r1.getItemVisible(item_r7, index_r8));
87
+ i0.ɵɵproperty("value", item_r6.__valueKey)("hidden", !ctx_r1.getItemVisible(item_r6, index_r7));
90
88
  i0.ɵɵadvance();
91
- i0.ɵɵstyleProp("text-decoration", ctx_r1.getIsHiddenFn()(item_r7, index_r8) ? "line-through" : undefined);
89
+ i0.ɵɵstyleProp("text-decoration", ctx_r1.getIsHiddenFn()(item_r6, index_r7) ? "line-through" : undefined);
92
90
  i0.ɵɵadvance();
93
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.itemTplRef() ?? null)("ngTemplateOutletContext", i0.ɵɵpureFunction4(6, _c1, item_r7, item_r7, index_r8, depth_r9));
91
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.itemTplRef() ?? null)("ngTemplateOutletContext", i0.ɵɵpureFunction4(6, _c1, item_r6, item_r6, index_r7, depth_r8));
94
92
  } }
95
93
  function SdSharedDataSelect_ng_template_7_Template(rf, ctx) { if (rf & 1) {
96
- i0.ɵɵconditionalCreate(0, SdSharedDataSelect_ng_template_7_Conditional_0_Template, 3, 11, "sd-select-item", 12);
94
+ i0.ɵɵconditionalCreate(0, SdSharedDataSelect_ng_template_7_Conditional_0_Template, 3, 11, "sd-select-item", 10);
97
95
  } if (rf & 2) {
98
- const item_r7 = ctx.item;
99
- const index_r8 = ctx.index;
100
- const depth_r9 = ctx.depth;
96
+ const item_r6 = ctx.item;
97
+ const index_r7 = ctx.index;
98
+ const depth_r8 = ctx.depth;
101
99
  const ctx_r1 = i0.ɵɵnextContext();
102
- i0.ɵɵconditional(ctx_r1.getItemSelectable(item_r7, index_r8, depth_r9) && (ctx_r1.isDropdownOpen() || ctx_r1.selectedKeys().includes(item_r7.__valueKey)) ? 0 : -1);
100
+ i0.ɵɵconditional(ctx_r1.getItemSelectable(item_r6, index_r7, depth_r8) && (ctx_r1.isDropdownOpen() || ctx_r1.selectedKeys().includes(item_r6.__valueKey)) ? 0 : -1);
103
101
  } }
104
102
  export class SdSharedDataSelect {
105
103
  _sdModal = inject(SdModalProvider);
@@ -124,6 +122,7 @@ export class SdSharedDataSelect {
124
122
  displayOrderKeyProp = input(...(ngDevMode ? [undefined, { debugName: "displayOrderKeyProp" }] : /* istanbul ignore next */ []));
125
123
  itemTplRef = contentChild(SdItemOfTemplate, { ...(ngDevMode ? { debugName: "itemTplRef" } : /* istanbul ignore next */ {}), read: TemplateRef });
126
124
  undefinedTplRef = contentChild("undefinedTpl", { ...(ngDevMode ? { debugName: "undefinedTplRef" } : /* istanbul ignore next */ {}), read: TemplateRef });
125
+ trackByFn = (item) => item.__valueKey;
127
126
  searchText = signal(undefined, ...(ngDevMode ? [{ debugName: "searchText" }] : /* istanbul ignore next */ []));
128
127
  isDropdownOpen = computed(() => this._selectCtrl()?.dropdownOpen() ?? false, ...(ngDevMode ? [{ debugName: "isDropdownOpen" }] : /* istanbul ignore next */ []));
129
128
  hasParentKey = computed(() => this.items().some((item) => item.__parentKey != null), ...(ngDevMode ? [{ debugName: "hasParentKey" }] : /* istanbul ignore next */ []));
@@ -157,15 +156,7 @@ export class SdSharedDataSelect {
157
156
  });
158
157
  const orderProp = this.displayOrderKeyProp();
159
158
  if (orderProp != null) {
160
- result = [...result].sort((a, b) => {
161
- const aVal = a[orderProp];
162
- const bVal = b[orderProp];
163
- if (aVal < bVal)
164
- return -1;
165
- if (aVal > bVal)
166
- return 1;
167
- return 0;
168
- });
159
+ result = result.orderBy((item) => item[orderProp]);
169
160
  }
170
161
  return result;
171
162
  }, ...(ngDevMode ? [{ debugName: "rootDisplayItems" }] : /* istanbul ignore next */ []));
@@ -179,7 +170,7 @@ export class SdSharedDataSelect {
179
170
  const check = (item, index) => {
180
171
  const key = item.__valueKey;
181
172
  const cached = cache.get(key);
182
- if (cached !== undefined)
173
+ if (cached != null)
183
174
  return cached;
184
175
  const itemText = getSearchTextFn(item, index);
185
176
  if (matchesSearchText(itemText, searchText)) {
@@ -254,15 +245,7 @@ export class SdSharedDataSelect {
254
245
  return parentMap;
255
246
  const sorted = new Map();
256
247
  for (const [key, children] of parentMap) {
257
- sorted.set(key, [...children].sort((a, b) => {
258
- const aVal = a[orderProp];
259
- const bVal = b[orderProp];
260
- if (aVal < bVal)
261
- return -1;
262
- if (aVal > bVal)
263
- return 1;
264
- return 0;
265
- }));
248
+ sorted.set(key, children.orderBy((item) => item[orderProp]));
266
249
  }
267
250
  return sorted;
268
251
  }, ...(ngDevMode ? [{ debugName: "_sortedChildrenMap" }] : /* istanbul ignore next */ []));
@@ -270,9 +253,6 @@ export class SdSharedDataSelect {
270
253
  return (this._sortedChildrenMap()?.get(item.__valueKey) ??
271
254
  []);
272
255
  };
273
- onUndefinedClick() {
274
- this.value.set(undefined);
275
- }
276
256
  async onModalButtonClick(event) {
277
257
  event.preventDefault();
278
258
  event.stopPropagation();
@@ -313,7 +293,7 @@ export class SdSharedDataSelect {
313
293
  i0.ɵɵviewQuerySignal(ctx._selectCtrl, SdSelect, 5);
314
294
  } if (rf & 2) {
315
295
  i0.ɵɵqueryAdvance();
316
- } }, inputs: { value: [1, "value"], items: [1, "items"], disabled: [1, "disabled"], required: [1, "required"], useUndefined: [1, "useUndefined"], inset: [1, "inset"], inline: [1, "inline"], size: [1, "size"], selectMode: [1, "selectMode"], filterFn: [1, "filterFn"], filterFnParams: [1, "filterFnParams"], modal: [1, "modal"], editModal: [1, "editModal"], selectClass: [1, "selectClass"], multiSelectionDisplayDirection: [1, "multiSelectionDisplayDirection"], getIsHiddenFn: [1, "getIsHiddenFn"], getSearchTextFn: [1, "getSearchTextFn"], displayOrderKeyProp: [1, "displayOrderKeyProp"] }, outputs: { value: "valueChange" }, decls: 8, vars: 14, consts: [["headerTpl", ""], ["beforeTpl", ""], [3, "valueChange", "value", "disabled", "required", "inset", "inline", "size", "items", "selectMode", "contentClass", "multiSelectionDisplayDirection", "getChildrenFn"], [3, "itemOf"], [3, "click"], [3, "svg"], [1, "p-xs"], [3, "valueChange", "type", "value", "placeholder", "size"], ["tabindex", "0", 1, "_sd-shared-data-select-undefined"], ["tabindex", "0", 1, "_sd-shared-data-select-undefined", 3, "click", "keydown.enter", "keydown.space"], [3, "ngTemplateOutlet"], [1, "tx-theme-gray-default"], [3, "value", "hidden"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function SdSharedDataSelect_Template(rf, ctx) { if (rf & 1) {
296
+ } }, inputs: { value: [1, "value"], items: [1, "items"], disabled: [1, "disabled"], required: [1, "required"], useUndefined: [1, "useUndefined"], inset: [1, "inset"], inline: [1, "inline"], size: [1, "size"], selectMode: [1, "selectMode"], filterFn: [1, "filterFn"], filterFnParams: [1, "filterFnParams"], modal: [1, "modal"], editModal: [1, "editModal"], selectClass: [1, "selectClass"], multiSelectionDisplayDirection: [1, "multiSelectionDisplayDirection"], getIsHiddenFn: [1, "getIsHiddenFn"], getSearchTextFn: [1, "getSearchTextFn"], displayOrderKeyProp: [1, "displayOrderKeyProp"] }, outputs: { value: "valueChange" }, decls: 8, vars: 15, consts: [["headerTpl", ""], ["beforeTpl", ""], [3, "valueChange", "value", "disabled", "required", "inset", "inline", "size", "items", "trackByFn", "selectMode", "contentClass", "multiSelectionDisplayDirection", "getChildrenFn"], [3, "itemOf"], [3, "click"], [3, "svg"], [1, "p-xs"], [3, "valueChange", "type", "value", "placeholder", "size"], [3, "ngTemplateOutlet"], [1, "tx-theme-gray-default"], [3, "value", "hidden"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function SdSharedDataSelect_Template(rf, ctx) { if (rf & 1) {
317
297
  i0.ɵɵelementStart(0, "sd-select", 2);
318
298
  i0.ɵɵlistener("valueChange", function SdSharedDataSelect_Template_sd_select_valueChange_0_listener($event) { return ctx.value.set($event); });
319
299
  i0.ɵɵconditionalCreate(1, SdSharedDataSelect_Conditional_1_Template, 2, 1, "sd-select-button");
@@ -321,7 +301,7 @@ export class SdSharedDataSelect {
321
301
  i0.ɵɵtemplate(3, SdSharedDataSelect_ng_template_3_Template, 2, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(5, SdSharedDataSelect_ng_template_5_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(7, SdSharedDataSelect_ng_template_7_Template, 1, 1, "ng-template", 3);
322
302
  i0.ɵɵelementEnd();
323
303
  } if (rf & 2) {
324
- i0.ɵɵproperty("value", ctx.value())("disabled", ctx.disabled())("required", ctx.required())("inset", ctx.inset())("inline", ctx.inline())("size", ctx.size())("items", ctx.rootDisplayItems())("selectMode", ctx.selectMode())("contentClass", ctx.selectClass())("multiSelectionDisplayDirection", ctx.multiSelectionDisplayDirection())("getChildrenFn", ctx.hasParentKey() ? ctx.getChildren : undefined);
304
+ i0.ɵɵproperty("value", ctx.value())("disabled", ctx.disabled())("required", ctx.required())("inset", ctx.inset())("inline", ctx.inline())("size", ctx.size())("items", ctx.rootDisplayItems())("trackByFn", ctx.trackByFn)("selectMode", ctx.selectMode())("contentClass", ctx.selectClass())("multiSelectionDisplayDirection", ctx.multiSelectionDisplayDirection())("getChildrenFn", ctx.hasParentKey() ? ctx.getChildren : undefined);
325
305
  i0.ɵɵadvance();
326
306
  i0.ɵɵconditional(ctx.modal() ? 1 : -1);
327
307
  i0.ɵɵadvance();
@@ -362,6 +342,7 @@ export class SdSharedDataSelect {
362
342
  [inline]="inline()"
363
343
  [size]="size()"
364
344
  [items]="rootDisplayItems()"
345
+ [trackByFn]="trackByFn"
365
346
  [selectMode]="selectMode()"
366
347
  [contentClass]="selectClass()"
367
348
  [multiSelectionDisplayDirection]="multiSelectionDisplayDirection()"
@@ -394,19 +375,13 @@ export class SdSharedDataSelect {
394
375
  (!required() && selectMode() === "single") ||
395
376
  (useUndefined() && selectMode() === "multi")
396
377
  ) {
397
- <div
398
- class="_sd-shared-data-select-undefined"
399
- tabindex="0"
400
- (click)="onUndefinedClick()"
401
- (keydown.enter)="onUndefinedClick()"
402
- (keydown.space)="onUndefinedClick(); $event.preventDefault()"
403
- >
378
+ <sd-select-item>
404
379
  @if (undefinedTplRef()) {
405
380
  <ng-template [ngTemplateOutlet]="undefinedTplRef()!" />
406
381
  } @else {
407
382
  <span class="tx-theme-gray-default">미지정</span>
408
383
  }
409
- </div>
384
+ </sd-select-item>
410
385
  }
411
386
  </ng-template>
412
387
 
@@ -445,4 +420,4 @@ export class SdSharedDataSelect {
445
420
  }], () => [], { _selectCtrl: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SdSelect), { isSignal: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], useUndefined: [{ type: i0.Input, args: [{ isSignal: true, alias: "useUndefined", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], selectMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectMode", required: false }] }], filterFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterFn", required: false }] }], filterFnParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterFnParams", required: false }] }], modal: [{ type: i0.Input, args: [{ isSignal: true, alias: "modal", required: false }] }], editModal: [{ type: i0.Input, args: [{ isSignal: true, alias: "editModal", required: false }] }], selectClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectClass", required: false }] }], multiSelectionDisplayDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelectionDisplayDirection", required: false }] }], getIsHiddenFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getIsHiddenFn", required: false }] }], getSearchTextFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getSearchTextFn", required: false }] }], displayOrderKeyProp: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayOrderKeyProp", required: false }] }], itemTplRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdItemOfTemplate), { ...{ read: TemplateRef }, isSignal: true }] }], undefinedTplRef: [{ type: i0.ContentChild, args: ["undefinedTpl", { ...{
446
421
  read: TemplateRef,
447
422
  }, isSignal: true }] }] }); })();
448
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelect, { className: "SdSharedDataSelect", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select.ts", lineNumber: 144, forbidOrphanRendering: true }); })();
423
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelect, { className: "SdSharedDataSelect", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select.ts", lineNumber: 139 }); })();
@@ -3,9 +3,13 @@ export declare function injectSheetDomAccessor(): {
3
3
  getContainer: () => HTMLElement;
4
4
  getTable: () => HTMLTableElement;
5
5
  getTHead: () => HTMLTableSectionElement;
6
+ getLastDepthFixedHeaders: () => HTMLElement[];
7
+ getFocusRowIndicator: () => HTMLElement;
8
+ getFocusCellIndicator: () => HTMLElement;
9
+ getSelectRowIndicatorContainer: () => HTMLElement;
10
+ getSelectRowIndicators: () => HTMLElement[];
11
+ getColumnResizeIndicator: () => HTMLElement;
6
12
  getRow: (r: number) => HTMLTableRowElement | null;
7
13
  getCell: (r: number, c: number) => HTMLTableCellElement | null;
8
- getColumnResizeIndicator: () => HTMLElement;
9
- getLastDepthFixedHeaders: () => HTMLElement[];
10
14
  };
11
15
  //# sourceMappingURL=injectSheetDomAccessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"injectSheetDomAccessor.d.ts","sourceRoot":"","sources":["../../../src/data/sheet/injectSheetDomAccessor.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB;qBAGd,WAAW;wBAIR,WAAW;oBAIf,gBAAgB;oBAIhB,uBAAuB;gBAIzB,MAAM,KAAG,mBAAmB,GAAG,IAAI;iBAOlC,MAAM,KAAK,MAAM,KAAG,oBAAoB,GAAG,IAAI;oCAY9B,WAAW;oCAIX,WAAW,EAAE;EAiBnD"}
1
+ {"version":3,"file":"injectSheetDomAccessor.d.ts","sourceRoot":"","sources":["../../../src/data/sheet/injectSheetDomAccessor.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB;qBAGd,WAAW;wBAIR,WAAW;oBAIf,gBAAgB;oBAIhB,uBAAuB;oCAIP,WAAW,EAAE;gCAIjB,WAAW;iCAIV,WAAW;0CAIF,WAAW;kCAInB,WAAW,EAAE;oCAMX,WAAW;gBAI7B,MAAM,KAAG,mBAAmB,GAAG,IAAI;iBAMlC,MAAM,KAAK,MAAM,KAAG,oBAAoB,GAAG,IAAI;EAoBpE"}
@@ -5,7 +5,7 @@ export function injectSheetDomAccessor() {
5
5
  return elRef.nativeElement;
6
6
  }
7
7
  function getContainer() {
8
- return elRef.nativeElement.querySelector("._container");
8
+ return elRef.nativeElement.querySelector("._sheet-container");
9
9
  }
10
10
  function getTable() {
11
11
  return elRef.nativeElement.querySelector("table");
@@ -13,43 +13,48 @@ export function injectSheetDomAccessor() {
13
13
  function getTHead() {
14
14
  return getTable().querySelector("thead");
15
15
  }
16
+ function getLastDepthFixedHeaders() {
17
+ return Array.from(getTHead().querySelectorAll("tr > th._last-depth._fixed"));
18
+ }
19
+ function getFocusRowIndicator() {
20
+ return getContainer().querySelector("._focus-row-indicator");
21
+ }
22
+ function getFocusCellIndicator() {
23
+ return getFocusRowIndicator().firstElementChild;
24
+ }
25
+ function getSelectRowIndicatorContainer() {
26
+ return getContainer().querySelector("._select-row-indicator-container");
27
+ }
28
+ function getSelectRowIndicators() {
29
+ return Array.from(getSelectRowIndicatorContainer().querySelectorAll("._select-row-indicator"));
30
+ }
31
+ function getColumnResizeIndicator() {
32
+ return getContainer().querySelector("._resize-indicator");
33
+ }
16
34
  function getRow(r) {
17
35
  const tbody = getTable().querySelector("tbody");
18
36
  if (tbody == null)
19
37
  return null;
20
- const rows = tbody.querySelectorAll("tr");
21
- return rows[r] ?? null;
38
+ return tbody.querySelector(`tr[data-r='${r}']`);
22
39
  }
23
40
  function getCell(r, c) {
24
41
  const row = getRow(r);
25
42
  if (row == null)
26
43
  return null;
27
- const cells = row.querySelectorAll("td[data-c]");
28
- for (const cell of cells) {
29
- if (cell.getAttribute("data-c") === String(c)) {
30
- return cell;
31
- }
32
- }
33
- return null;
34
- }
35
- function getColumnResizeIndicator() {
36
- return elRef.nativeElement.querySelector("._resize-indicator");
37
- }
38
- function getLastDepthFixedHeaders() {
39
- const thead = getTHead();
40
- const lastRow = thead.querySelector("tr:last-child");
41
- if (lastRow == null)
42
- return [];
43
- return Array.from(lastRow.querySelectorAll("th[style*='sticky']"));
44
+ return row.querySelector(`td[data-c='${c}']`);
44
45
  }
45
46
  return {
46
47
  getHostEl,
47
48
  getContainer,
48
49
  getTable,
49
50
  getTHead,
51
+ getLastDepthFixedHeaders,
52
+ getFocusRowIndicator,
53
+ getFocusCellIndicator,
54
+ getSelectRowIndicatorContainer,
55
+ getSelectRowIndicators,
56
+ getColumnResizeIndicator,
50
57
  getRow,
51
58
  getCell,
52
- getColumnResizeIndicator,
53
- getLastDepthFixedHeaders,
54
59
  };
55
60
  }
@@ -0,0 +1,10 @@
1
+ import { type Signal } from "@angular/core";
2
+ import type { injectSheetDomAccessor } from "./injectSheetDomAccessor";
3
+ export declare function injectSheetSelectRowIndicator<T>(options: {
4
+ domAccessor: ReturnType<typeof injectSheetDomAccessor>;
5
+ selectedItems: Signal<T[]>;
6
+ displayItems: Signal<T[]>;
7
+ }): {
8
+ redraw: () => void;
9
+ };
10
+ //# sourceMappingURL=injectSheetSelectRowIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectSheetSelectRowIndicator.d.ts","sourceRoot":"","sources":["../../../src/data/sheet/injectSheetSelectRowIndicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,OAAO,EAAE;IACxD,WAAW,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACvD,aAAa,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;CAC3B;kBAwCoB,IAAI;EAqBxB"}
@@ -0,0 +1,55 @@
1
+ import { afterEveryRender } from "@angular/core";
2
+ export function injectSheetSelectRowIndicator(options) {
3
+ afterEveryRender(() => {
4
+ const containerEl = options.domAccessor.getSelectRowIndicatorContainer();
5
+ if (options.selectedItems().length <= 0) {
6
+ containerEl.innerHTML = "";
7
+ containerEl.style.display = "none";
8
+ return;
9
+ }
10
+ const selectedTrInfos = options.selectedItems()
11
+ .map((item) => {
12
+ const r = options.displayItems().indexOf(item);
13
+ return getTrInfo(r);
14
+ })
15
+ .filter((info) => info != null);
16
+ let indicatorHtml = "";
17
+ for (const info of selectedTrInfos) {
18
+ const style = `top: ${info.top}px; height: ${info.height - 1}px; width: ${info.width - 1}px;`;
19
+ indicatorHtml += `<div class="_select-row-indicator" style="${style}" data-r="${info.r}"></div>`;
20
+ }
21
+ containerEl.innerHTML = indicatorHtml;
22
+ containerEl.style.display = "block";
23
+ });
24
+ function getTrInfo(r) {
25
+ const trEl = options.domAccessor.getRow(r);
26
+ if (trEl == null)
27
+ return undefined;
28
+ return {
29
+ r,
30
+ top: trEl.offsetTop,
31
+ width: trEl.offsetWidth,
32
+ height: trEl.offsetHeight,
33
+ };
34
+ }
35
+ function redraw() {
36
+ const selectRowIndicatorEls = options.domAccessor.getSelectRowIndicators();
37
+ for (const el of selectRowIndicatorEls) {
38
+ const rAttr = el.getAttribute("data-r");
39
+ if (rAttr == null)
40
+ continue;
41
+ const r = parseInt(rAttr, 10);
42
+ if (Number.isNaN(r))
43
+ continue;
44
+ const trInfo = getTrInfo(r);
45
+ if (trInfo == null)
46
+ continue;
47
+ Object.assign(el.style, {
48
+ top: trInfo.top + "px",
49
+ width: trInfo.width + "px",
50
+ height: trInfo.height + "px",
51
+ });
52
+ }
53
+ }
54
+ return { redraw };
55
+ }
@@ -1,38 +1,37 @@
1
1
  import type { SdModalContentDef } from "../../core/modal/sd-modal.provider";
2
2
  import type { SdSheetConfig } from "./types";
3
3
  import type { SdSheetColumn } from "./sd-sheet-column";
4
+ import { mark } from "../../core/mark";
4
5
  import * as i0 from "@angular/core";
5
6
  interface ConfigItem {
6
7
  key: string;
7
8
  header: string;
9
+ disableResizing: boolean;
8
10
  fixed: boolean;
9
11
  hidden: boolean;
10
- width: string;
11
- ordering: number;
12
+ width: string | undefined;
13
+ ordering: number | undefined;
12
14
  }
13
15
  export declare class SdSheetConfigModal implements SdModalContentDef<SdSheetConfig | undefined> {
14
16
  initialized: import("@angular/core").WritableSignal<boolean>;
15
17
  close: import("@angular/core").OutputEmitterRef<SdSheetConfig | undefined>;
18
+ sheetKey: import("@angular/core").InputSignal<string>;
16
19
  controls: import("@angular/core").InputSignal<readonly SdSheetColumn<unknown>[]>;
17
20
  config: import("@angular/core").InputSignal<SdSheetConfig | undefined>;
18
- _icons: {
19
- tablerArrowUp: string;
20
- tablerArrowDown: string;
21
- };
22
- private readonly _initialItems;
23
- _items: import("@angular/core").WritableSignal<ConfigItem[]>;
24
- onFixedToggle(idx: number): void;
25
- onHiddenToggle(idx: number): void;
26
- onWidthChange(idx: number, event: Event): void;
27
- canMoveUp(idx: number): boolean;
28
- canMoveDown(idx: number): boolean;
29
- onMoveUp(idx: number): void;
30
- onMoveDown(idx: number): void;
31
- onOk(): void;
32
- onCancel(): void;
33
- onReset(): void;
21
+ items: import("@angular/core").WritableSignal<ConfigItem[]>;
22
+ trackByFn: (item: ConfigItem) => string;
23
+ protected readonly tablerChevronUp = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"stroke-width:var(--ng-icon__stroke-width, 2)\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M6 15l6 -6l6 6\"></path></svg>";
24
+ protected readonly tablerChevronDown = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"stroke-width:var(--ng-icon__stroke-width, 2)\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M6 9l6 6l6 -6\"></path></svg>";
25
+ protected readonly tablerX = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"stroke-width:var(--ng-icon__stroke-width, 2)\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M18 6l-12 12\"></path><path d=\"M6 6l12 12\"></path></svg>";
26
+ protected readonly mark: typeof mark;
27
+ constructor();
28
+ onMoveUp(item: ConfigItem): void;
29
+ onMoveDown(item: ConfigItem): void;
30
+ onOkClick(): void;
31
+ onCancelClick(): void;
32
+ onResetClick(): void;
34
33
  static ɵfac: i0.ɵɵFactoryDeclaration<SdSheetConfigModal, never>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<SdSheetConfigModal, "sd-sheet-config-modal", never, { "controls": { "alias": "controls"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSheetConfigModal, "sd-sheet-config-modal", never, { "sheetKey": { "alias": "sheetKey"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
36
35
  }
37
36
  export {};
38
37
  //# sourceMappingURL=sd-sheet-config.modal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sd-sheet-config.modal.d.ts","sourceRoot":"","sources":["../../../src/data/sheet/sd-sheet-config.modal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;;AAMvD,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAmHa,kBAAmB,YAAW,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAAC;IACrF,WAAW,kDAAgB;IAC3B,KAAK,sEAAuC;IAE5C,QAAQ,yEAA8C;IACtD,MAAM,iEAA+C;IAErD,MAAM;;;MAAsC;IAE5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAiB3B;IAEH,MAAM,uDAA0D;IAEhE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMhC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMjC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAO9C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAU/B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAO3B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAO7B,IAAI,IAAI,IAAI;IAeZ,QAAQ,IAAI,IAAI;IAIhB,OAAO,IAAI,IAAI;yCAtGJ,kBAAkB;2CAAlB,kBAAkB;CAyG9B"}
1
+ {"version":3,"file":"sd-sheet-config.modal.d.ts","sourceRoot":"","sources":["../../../src/data/sheet/sd-sheet-config.modal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWvD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;;AAEvC,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,qBAgJa,kBAAmB,YAAW,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAAC;IACrF,WAAW,kDAAiB;IAC5B,KAAK,sEAAuC;IAE5C,QAAQ,8CAA4B;IACpC,QAAQ,yEAA8C;IACtD,MAAM,iEAA+C;IAErD,KAAK,uDAA4B;IAEjC,SAAS,GAAI,MAAM,UAAU,KAAG,MAAM,CAAa;IAEnD,SAAS,CAAC,QAAQ,CAAC,eAAe,6TAAmB;IACrD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,4TAAqB;IACzD,SAAS,CAAC,QAAQ,CAAC,OAAO,yVAAW;IACrC,SAAS,CAAC,QAAQ,CAAC,IAAI,cAAQ;;IA6B/B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAahC,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAalC,SAAS,IAAI,IAAI;IAajB,aAAa,IAAI,IAAI;IAIrB,YAAY,IAAI,IAAI;yCAvFT,kBAAkB;2CAAlB,kBAAkB;CA4F9B"}