@simplysm/angular 14.0.26 → 14.0.28

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 (610) hide show
  1. package/dist/core/directives/{sd-events.directive.d.ts → sd-events.d.ts} +6 -6
  2. package/dist/core/directives/sd-events.d.ts.map +1 -0
  3. package/dist/core/directives/{sd-events.directive.js → sd-events.js} +4 -4
  4. package/dist/core/directives/sd-invalid.d.ts +8 -0
  5. package/dist/core/directives/sd-invalid.d.ts.map +1 -0
  6. package/dist/core/directives/{sd-invalid.directive.js → sd-invalid.js} +7 -7
  7. package/dist/core/directives/sd-item-of-template.d.ts +14 -0
  8. package/dist/core/directives/sd-item-of-template.d.ts.map +1 -0
  9. package/dist/core/directives/{sd-item-of-template.directive.js → sd-item-of-template.js} +4 -4
  10. package/dist/core/directives/sd-ripple.d.ts +8 -0
  11. package/dist/core/directives/sd-ripple.d.ts.map +1 -0
  12. package/dist/core/directives/{sd-ripple.directive.js → sd-ripple.js} +7 -7
  13. package/dist/core/directives/{sd-router-link.directive.d.ts → sd-router-link.d.ts} +4 -4
  14. package/dist/core/directives/sd-router-link.d.ts.map +1 -0
  15. package/dist/core/directives/{sd-router-link.directive.js → sd-router-link.js} +9 -9
  16. package/dist/core/directives/sd-show-effect.d.ts +9 -0
  17. package/dist/core/directives/sd-show-effect.d.ts.map +1 -0
  18. package/dist/core/directives/{sd-show-effect.directive.js → sd-show-effect.js} +7 -7
  19. package/dist/core/directives/sd-typed-template.d.ts +8 -0
  20. package/dist/core/directives/sd-typed-template.d.ts.map +1 -0
  21. package/dist/core/directives/{sd-typed-template.directive.js → sd-typed-template.js} +4 -4
  22. package/dist/core/plugins/events/sd-intersection-event.plugin.d.ts +2 -2
  23. package/dist/core/plugins/events/sd-intersection-event.plugin.d.ts.map +1 -1
  24. package/dist/core/plugins/events/sd-resize-event.plugin.d.ts +2 -2
  25. package/dist/core/plugins/events/sd-resize-event.plugin.d.ts.map +1 -1
  26. package/dist/core/providers/sd-activated-modal.provider.d.ts +2 -2
  27. package/dist/core/providers/sd-activated-modal.provider.d.ts.map +1 -1
  28. package/dist/core/providers/sd-app-structure.provider.d.ts +13 -10
  29. package/dist/core/providers/sd-app-structure.provider.d.ts.map +1 -1
  30. package/dist/core/providers/sd-app-structure.provider.js +20 -7
  31. package/dist/core/providers/sd-app-structure.types.d.ts +6 -37
  32. package/dist/core/providers/sd-app-structure.types.d.ts.map +1 -1
  33. package/dist/core/providers/sd-app-structure.utils.d.ts +8 -10
  34. package/dist/core/providers/sd-app-structure.utils.d.ts.map +1 -1
  35. package/dist/core/providers/sd-app-structure.utils.js +5 -86
  36. package/dist/core/providers/sd-busy.provider.d.ts +4 -4
  37. package/dist/core/providers/sd-busy.provider.d.ts.map +1 -1
  38. package/dist/core/providers/sd-busy.provider.js +2 -2
  39. package/dist/core/providers/sd-print.provider.d.ts +7 -7
  40. package/dist/core/providers/sd-print.provider.d.ts.map +1 -1
  41. package/dist/core/providers/sd-shared-data.provider.d.ts +5 -5
  42. package/dist/core/providers/sd-shared-data.provider.d.ts.map +1 -1
  43. package/dist/core/providers/sd-shared-data.provider.js +4 -2
  44. package/dist/core/providers/sd-toast.provider.d.ts +9 -9
  45. package/dist/core/providers/sd-toast.provider.d.ts.map +1 -1
  46. package/dist/core/providers/sd-toast.provider.js +5 -5
  47. package/dist/core/types/select-modal-output-result.d.ts +1 -1
  48. package/dist/core/types/select-modal-output-result.d.ts.map +1 -1
  49. package/dist/core/utils/{TDirectiveInputSignals.d.ts → directive-input-signals.d.ts} +5 -5
  50. package/dist/core/utils/directive-input-signals.d.ts.map +1 -0
  51. package/dist/core/utils/injectCurrentPageCodeSignal.d.ts +3 -0
  52. package/dist/core/utils/injectCurrentPageCodeSignal.d.ts.map +1 -0
  53. package/dist/core/utils/{useCurrentPageCodeSignal.js → injectCurrentPageCodeSignal.js} +1 -1
  54. package/dist/core/utils/injectFullPageCodeSignal.d.ts +3 -0
  55. package/dist/core/utils/injectFullPageCodeSignal.d.ts.map +1 -0
  56. package/dist/core/utils/{useFullPageCodeSignal.js → injectFullPageCodeSignal.js} +1 -1
  57. package/dist/core/utils/{useSdSystemConfigResource.d.ts → injectSdSystemConfigResource.d.ts} +2 -2
  58. package/dist/core/utils/injectSdSystemConfigResource.d.ts.map +1 -0
  59. package/dist/core/utils/{useSdSystemConfigResource.js → injectSdSystemConfigResource.js} +1 -1
  60. package/dist/core/utils/injectViewTitleSignal.d.ts +3 -0
  61. package/dist/core/utils/injectViewTitleSignal.d.ts.map +1 -0
  62. package/dist/core/utils/{useViewTitleSignal.js → injectViewTitleSignal.js} +11 -6
  63. package/dist/core/utils/injectViewTypeSignal.d.ts +4 -0
  64. package/dist/core/utils/injectViewTypeSignal.d.ts.map +1 -0
  65. package/dist/core/utils/{useViewTypeSignal.js → injectViewTypeSignal.js} +5 -5
  66. package/dist/core/utils/useExpandingManager.d.ts +3 -3
  67. package/dist/core/utils/useExpandingManager.d.ts.map +1 -1
  68. package/dist/core/utils/useSortingManager.d.ts +2 -2
  69. package/dist/core/utils/useSortingManager.d.ts.map +1 -1
  70. package/dist/features/address/sd-address-search.modal.d.ts +4 -4
  71. package/dist/features/address/sd-address-search.modal.d.ts.map +1 -1
  72. package/dist/features/address/sd-address-search.modal.js +3 -3
  73. package/dist/features/base/{sd-base-container.control.d.ts → sd-base-container.d.ts} +7 -7
  74. package/dist/features/base/sd-base-container.d.ts.map +1 -0
  75. package/dist/features/base/{sd-base-container.control.js → sd-base-container.js} +50 -43
  76. package/dist/features/data-view/{useDataSheetExcelManager.d.ts → injectDataSheetExcelManager.d.ts} +4 -4
  77. package/dist/features/data-view/injectDataSheetExcelManager.d.ts.map +1 -0
  78. package/dist/features/data-view/{useDataSheetExcelManager.js → injectDataSheetExcelManager.js} +1 -1
  79. package/dist/features/data-view/{useDataSheetInlineEditManager.d.ts → injectDataSheetInlineEditManager.d.ts} +4 -4
  80. package/dist/features/data-view/injectDataSheetInlineEditManager.d.ts.map +1 -0
  81. package/dist/features/data-view/{useDataSheetInlineEditManager.js → injectDataSheetInlineEditManager.js} +1 -1
  82. package/dist/features/data-view/{useDataSheetModalEditManager.d.ts → injectDataSheetModalEditManager.d.ts} +4 -4
  83. package/dist/features/data-view/injectDataSheetModalEditManager.d.ts.map +1 -0
  84. package/dist/features/data-view/{useDataSheetModalEditManager.js → injectDataSheetModalEditManager.js} +1 -1
  85. package/dist/features/data-view/{useDataSheetRefreshManager.d.ts → injectDataSheetRefreshManager.d.ts} +4 -4
  86. package/dist/features/data-view/injectDataSheetRefreshManager.d.ts.map +1 -0
  87. package/dist/features/data-view/{useDataSheetRefreshManager.js → injectDataSheetRefreshManager.js} +1 -1
  88. package/dist/features/data-view/sd-data-detail.base.d.ts +49 -0
  89. package/dist/features/data-view/sd-data-detail.base.d.ts.map +1 -0
  90. package/dist/features/data-view/sd-data-detail.base.js +122 -0
  91. package/dist/features/data-view/sd-data-detail.d.ts +29 -0
  92. package/dist/features/data-view/sd-data-detail.d.ts.map +1 -0
  93. package/dist/features/data-view/{sd-data-detail.control.js → sd-data-detail.js} +80 -202
  94. package/dist/features/data-view/sd-data-select-button.base.d.ts +24 -0
  95. package/dist/features/data-view/sd-data-select-button.base.d.ts.map +1 -0
  96. package/dist/features/data-view/sd-data-select-button.base.js +68 -0
  97. package/dist/features/data-view/sd-data-select-button.d.ts +15 -0
  98. package/dist/features/data-view/sd-data-select-button.d.ts.map +1 -0
  99. package/dist/features/data-view/sd-data-select-button.js +152 -0
  100. package/dist/features/data-view/sd-data-sheet-column.d.ts +8 -0
  101. package/dist/features/data-view/sd-data-sheet-column.d.ts.map +1 -0
  102. package/dist/features/data-view/{sd-data-sheet-column.directive.js → sd-data-sheet-column.js} +5 -5
  103. package/dist/features/data-view/sd-data-sheet.base.d.ts +76 -0
  104. package/dist/features/data-view/sd-data-sheet.base.d.ts.map +1 -0
  105. package/dist/features/data-view/sd-data-sheet.base.js +196 -0
  106. package/dist/features/data-view/sd-data-sheet.d.ts +48 -0
  107. package/dist/features/data-view/sd-data-sheet.d.ts.map +1 -0
  108. package/dist/features/data-view/{sd-data-sheet.control.js → sd-data-sheet.js} +135 -330
  109. package/dist/features/data-view/sd-data-sheet.types.d.ts +3 -3
  110. package/dist/features/data-view/sd-data-sheet.types.d.ts.map +1 -1
  111. package/dist/features/data-view/setupCloserWhenSingleSelectionChange.d.ts +2 -2
  112. package/dist/features/data-view/setupCloserWhenSingleSelectionChange.d.ts.map +1 -1
  113. package/dist/features/permission-table/sd-permission-table.d.ts +32 -0
  114. package/dist/features/permission-table/sd-permission-table.d.ts.map +1 -0
  115. package/dist/features/permission-table/{sd-permission-table.control.js → sd-permission-table.js} +45 -45
  116. package/dist/features/shared-data/sd-shared-data-select-button.d.ts +16 -0
  117. package/dist/features/shared-data/sd-shared-data-select-button.d.ts.map +1 -0
  118. package/dist/features/shared-data/{sd-shared-data-select-button.control.js → sd-shared-data-select-button.js} +18 -17
  119. package/dist/features/shared-data/{sd-shared-data-select-list.control.d.ts → sd-shared-data-select-list.d.ts} +8 -8
  120. package/dist/features/shared-data/sd-shared-data-select-list.d.ts.map +1 -0
  121. package/dist/features/shared-data/{sd-shared-data-select-list.control.js → sd-shared-data-select-list.js} +58 -58
  122. package/dist/features/shared-data/{sd-shared-data-select.control.d.ts → sd-shared-data-select.d.ts} +13 -13
  123. package/dist/features/shared-data/sd-shared-data-select.d.ts.map +1 -0
  124. package/dist/features/shared-data/{sd-shared-data-select.control.js → sd-shared-data-select.js} +51 -51
  125. package/dist/index.d.ts +101 -98
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +86 -83
  128. package/dist/ui/data/list/sd-list-item.d.ts +20 -0
  129. package/dist/ui/data/list/sd-list-item.d.ts.map +1 -0
  130. package/dist/ui/data/list/{sd-list-item.control.js → sd-list-item.js} +26 -26
  131. package/dist/ui/data/list/sd-list.d.ts +7 -0
  132. package/dist/ui/data/list/sd-list.d.ts.map +1 -0
  133. package/dist/ui/data/list/{sd-list.control.js → sd-list.js} +6 -6
  134. package/dist/ui/data/sheet/injectSheetColumnResizing.d.ts +17 -0
  135. package/dist/ui/data/sheet/injectSheetColumnResizing.d.ts.map +1 -0
  136. package/dist/ui/data/sheet/{useSheetColumnResizing.js → injectSheetColumnResizing.js} +1 -1
  137. package/dist/ui/data/sheet/{useSheetDomAccessor.d.ts → injectSheetDomAccessor.d.ts} +2 -2
  138. package/dist/ui/data/sheet/injectSheetDomAccessor.d.ts.map +1 -0
  139. package/dist/ui/data/sheet/{useSheetDomAccessor.js → injectSheetDomAccessor.js} +1 -1
  140. package/dist/ui/data/sheet/{sd-sheet-column.directive.d.ts → sd-sheet-column.d.ts} +4 -4
  141. package/dist/ui/data/sheet/sd-sheet-column.d.ts.map +1 -0
  142. package/dist/ui/data/sheet/{sd-sheet-column.directive.js → sd-sheet-column.js} +4 -4
  143. package/dist/ui/data/sheet/sd-sheet-config.modal.d.ts +9 -9
  144. package/dist/ui/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
  145. package/dist/ui/data/sheet/sd-sheet-config.modal.js +4 -4
  146. package/dist/ui/data/sheet/{sd-sheet.control.d.ts → sd-sheet.d.ts} +26 -26
  147. package/dist/ui/data/sheet/sd-sheet.d.ts.map +1 -0
  148. package/dist/ui/data/sheet/{sd-sheet.control.js → sd-sheet.js} +82 -82
  149. package/dist/ui/data/sheet/types.d.ts +6 -6
  150. package/dist/ui/data/sheet/types.d.ts.map +1 -1
  151. package/dist/ui/data/sheet/useSheetCellAgent.d.ts +2 -2
  152. package/dist/ui/data/sheet/useSheetCellAgent.d.ts.map +1 -1
  153. package/dist/ui/data/sheet/useSheetCellStyling.d.ts +9 -9
  154. package/dist/ui/data/sheet/useSheetCellStyling.d.ts.map +1 -1
  155. package/dist/ui/data/sheet/useSheetColumnFixing.d.ts +2 -2
  156. package/dist/ui/data/sheet/useSheetColumnFixing.d.ts.map +1 -1
  157. package/dist/ui/data/sheet/useSheetDisplayPipeline.d.ts +1 -1
  158. package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts +6 -6
  159. package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts.map +1 -1
  160. package/dist/ui/form/button/sd-additional-button.d.ts +8 -0
  161. package/dist/ui/form/button/sd-additional-button.d.ts.map +1 -0
  162. package/dist/ui/form/button/{sd-additional-button.control.js → sd-additional-button.js} +6 -6
  163. package/dist/ui/form/button/sd-anchor.d.ts +8 -0
  164. package/dist/ui/form/button/sd-anchor.d.ts.map +1 -0
  165. package/dist/ui/form/button/{sd-anchor.control.js → sd-anchor.js} +6 -6
  166. package/dist/ui/form/button/{sd-button.control.d.ts → sd-button.d.ts} +4 -4
  167. package/dist/ui/form/button/sd-button.d.ts.map +1 -0
  168. package/dist/ui/form/button/{sd-button.control.js → sd-button.js} +11 -11
  169. package/dist/ui/form/button/sd-modal-select-button.d.ts +38 -0
  170. package/dist/ui/form/button/sd-modal-select-button.d.ts.map +1 -0
  171. package/dist/ui/form/button/{sd-modal-select-button.control.js → sd-modal-select-button.js} +16 -16
  172. package/dist/ui/form/checkbox/{sd-checkbox-group-item.control.d.ts → sd-checkbox-group-item.d.ts} +4 -4
  173. package/dist/ui/form/checkbox/sd-checkbox-group-item.d.ts.map +1 -0
  174. package/dist/ui/form/checkbox/{sd-checkbox-group-item.control.js → sd-checkbox-group-item.js} +11 -11
  175. package/dist/ui/form/checkbox/sd-checkbox-group.d.ts +8 -0
  176. package/dist/ui/form/checkbox/sd-checkbox-group.d.ts.map +1 -0
  177. package/dist/ui/form/checkbox/{sd-checkbox-group.control.js → sd-checkbox-group.js} +5 -5
  178. package/dist/ui/form/checkbox/sd-checkbox.d.ts +19 -0
  179. package/dist/ui/form/checkbox/sd-checkbox.d.ts.map +1 -0
  180. package/dist/ui/form/checkbox/{sd-checkbox.control.js → sd-checkbox.js} +10 -10
  181. package/dist/ui/form/checkbox/sd-switch.d.ts +14 -0
  182. package/dist/ui/form/checkbox/sd-switch.d.ts.map +1 -0
  183. package/dist/ui/form/checkbox/{sd-switch.control.js → sd-switch.js} +7 -7
  184. package/dist/ui/form/choice/{sd-state-preset.control.d.ts → sd-state-preset.d.ts} +9 -9
  185. package/dist/ui/form/choice/sd-state-preset.d.ts.map +1 -0
  186. package/dist/ui/form/choice/{sd-state-preset.control.js → sd-state-preset.js} +21 -21
  187. package/dist/ui/form/editor/{sd-tiptap-editor.control.d.ts → sd-tiptap-editor.d.ts} +4 -4
  188. package/dist/ui/form/editor/sd-tiptap-editor.d.ts.map +1 -0
  189. package/dist/ui/form/editor/{sd-tiptap-editor.control.js → sd-tiptap-editor.js} +33 -33
  190. package/dist/ui/form/input/sd-date-range.picker.js +6 -6
  191. package/dist/ui/form/input/{sd-numpad.control.d.ts → sd-numpad.d.ts} +4 -4
  192. package/dist/ui/form/input/sd-numpad.d.ts.map +1 -0
  193. package/dist/ui/form/input/{sd-numpad.control.js → sd-numpad.js} +25 -25
  194. package/dist/ui/form/input/sd-range.d.ts +13 -0
  195. package/dist/ui/form/input/sd-range.d.ts.map +1 -0
  196. package/dist/ui/form/input/{sd-range.control.js → sd-range.js} +10 -10
  197. package/dist/ui/form/input/sd-textarea.d.ts +23 -0
  198. package/dist/ui/form/input/sd-textarea.d.ts.map +1 -0
  199. package/dist/ui/form/input/{sd-textarea.control.js → sd-textarea.js} +13 -13
  200. package/dist/ui/form/input/sd-textfield-type-handlers.d.ts +12 -12
  201. package/dist/ui/form/input/sd-textfield-type-handlers.d.ts.map +1 -1
  202. package/dist/ui/form/input/sd-textfield.d.ts +39 -0
  203. package/dist/ui/form/input/sd-textfield.d.ts.map +1 -0
  204. package/dist/ui/form/input/{sd-textfield.control.js → sd-textfield.js} +16 -16
  205. package/dist/ui/form/{sd-form.control.d.ts → sd-form.d.ts} +4 -4
  206. package/dist/ui/form/sd-form.d.ts.map +1 -0
  207. package/dist/ui/form/{sd-form.control.js → sd-form.js} +7 -7
  208. package/dist/ui/form/select/sd-select-button.d.ts +7 -0
  209. package/dist/ui/form/select/sd-select-button.d.ts.map +1 -0
  210. package/dist/ui/form/select/{sd-select-button.control.js → sd-select-button.js} +6 -6
  211. package/dist/ui/form/select/sd-select-item.d.ts +18 -0
  212. package/dist/ui/form/select/sd-select-item.d.ts.map +1 -0
  213. package/dist/ui/form/select/{sd-select-item.control.js → sd-select-item.js} +15 -15
  214. package/dist/ui/form/select/{sd-select.control.d.ts → sd-select.d.ts} +8 -8
  215. package/dist/ui/form/select/sd-select.d.ts.map +1 -0
  216. package/dist/ui/form/select/{sd-select.control.js → sd-select.js} +62 -62
  217. package/dist/ui/layout/dock/sd-dock-container.d.ts +12 -0
  218. package/dist/ui/layout/dock/sd-dock-container.d.ts.map +1 -0
  219. package/dist/ui/layout/dock/{sd-dock-container.control.js → sd-dock-container.js} +11 -11
  220. package/dist/ui/layout/dock/sd-dock.d.ts +19 -0
  221. package/dist/ui/layout/dock/sd-dock.d.ts.map +1 -0
  222. package/dist/ui/layout/dock/{sd-dock.control.js → sd-dock.js} +12 -12
  223. package/dist/ui/layout/kanban/sd-kanban-board.d.ts +24 -0
  224. package/dist/ui/layout/kanban/sd-kanban-board.d.ts.map +1 -0
  225. package/dist/ui/layout/kanban/{sd-kanban-board.control.js → sd-kanban-board.js} +7 -7
  226. package/dist/ui/layout/kanban/{sd-kanban-lane.control.d.ts → sd-kanban-lane.d.ts} +8 -8
  227. package/dist/ui/layout/kanban/sd-kanban-lane.d.ts.map +1 -0
  228. package/dist/ui/layout/kanban/{sd-kanban-lane.control.js → sd-kanban-lane.js} +37 -37
  229. package/dist/ui/layout/kanban/{sd-kanban.control.d.ts → sd-kanban.d.ts} +8 -8
  230. package/dist/ui/layout/kanban/sd-kanban.d.ts.map +1 -0
  231. package/dist/ui/layout/kanban/{sd-kanban.control.js → sd-kanban.js} +17 -17
  232. package/dist/ui/layout/sd-card.d.ts +6 -0
  233. package/dist/ui/layout/sd-card.d.ts.map +1 -0
  234. package/dist/ui/layout/{sd-card.directive.js → sd-card.js} +5 -5
  235. package/dist/ui/layout/sd-gap.d.ts +12 -0
  236. package/dist/ui/layout/sd-gap.d.ts.map +1 -0
  237. package/dist/ui/layout/{sd-gap.control.js → sd-gap.js} +6 -6
  238. package/dist/ui/layout/sd-pane.d.ts +6 -0
  239. package/dist/ui/layout/sd-pane.d.ts.map +1 -0
  240. package/dist/ui/layout/{sd-pane.directive.js → sd-pane.js} +5 -5
  241. package/dist/ui/layout/view/sd-view-item.d.ts +9 -0
  242. package/dist/ui/layout/view/sd-view-item.d.ts.map +1 -0
  243. package/dist/ui/layout/view/{sd-view-item.control.js → sd-view-item.js} +8 -8
  244. package/dist/ui/layout/view/sd-view.d.ts +8 -0
  245. package/dist/ui/layout/view/sd-view.d.ts.map +1 -0
  246. package/dist/ui/layout/view/{sd-view.control.js → sd-view.js} +6 -6
  247. package/dist/ui/navigation/collapse/sd-collapse-icon.d.ts +13 -0
  248. package/dist/ui/navigation/collapse/sd-collapse-icon.d.ts.map +1 -0
  249. package/dist/ui/navigation/collapse/{sd-collapse-icon.control.js → sd-collapse-icon.js} +6 -6
  250. package/dist/ui/navigation/collapse/sd-collapse.d.ts +14 -0
  251. package/dist/ui/navigation/collapse/sd-collapse.d.ts.map +1 -0
  252. package/dist/ui/navigation/collapse/{sd-collapse.control.js → sd-collapse.js} +7 -7
  253. package/dist/ui/navigation/menu-utils.d.ts +4 -4
  254. package/dist/ui/navigation/menu-utils.d.ts.map +1 -1
  255. package/dist/ui/navigation/pagination/{sd-pagination.control.d.ts → sd-pagination.d.ts} +4 -4
  256. package/dist/ui/navigation/pagination/sd-pagination.d.ts.map +1 -0
  257. package/dist/ui/navigation/pagination/{sd-pagination.control.js → sd-pagination.js} +15 -15
  258. package/dist/ui/navigation/sidebar/{sd-sidebar-container.control.d.ts → sd-sidebar-container.d.ts} +4 -4
  259. package/dist/ui/navigation/sidebar/sd-sidebar-container.d.ts.map +1 -0
  260. package/dist/ui/navigation/sidebar/{sd-sidebar-container.control.js → sd-sidebar-container.js} +7 -7
  261. package/dist/ui/navigation/sidebar/sd-sidebar-menu.d.ts +22 -0
  262. package/dist/ui/navigation/sidebar/sd-sidebar-menu.d.ts.map +1 -0
  263. package/dist/ui/navigation/sidebar/{sd-sidebar-menu.control.js → sd-sidebar-menu.js} +35 -35
  264. package/dist/ui/navigation/sidebar/sd-sidebar-user.d.ts +16 -0
  265. package/dist/ui/navigation/sidebar/sd-sidebar-user.d.ts.map +1 -0
  266. package/dist/ui/navigation/sidebar/{sd-sidebar-user.control.js → sd-sidebar-user.js} +30 -30
  267. package/dist/ui/navigation/sidebar/sd-sidebar.d.ts +8 -0
  268. package/dist/ui/navigation/sidebar/sd-sidebar.d.ts.map +1 -0
  269. package/dist/ui/navigation/sidebar/{sd-sidebar.control.js → sd-sidebar.js} +8 -8
  270. package/dist/ui/navigation/tab/sd-tab-item.d.ts +10 -0
  271. package/dist/ui/navigation/tab/sd-tab-item.d.ts.map +1 -0
  272. package/dist/ui/navigation/tab/{sd-tab-item.control.js → sd-tab-item.js} +9 -9
  273. package/dist/ui/navigation/tab/sd-tab.d.ts +7 -0
  274. package/dist/ui/navigation/tab/sd-tab.d.ts.map +1 -0
  275. package/dist/ui/navigation/tab/{sd-tab.control.js → sd-tab.js} +5 -5
  276. package/dist/ui/navigation/tab/sd-tabview-item.d.ts +10 -0
  277. package/dist/ui/navigation/tab/sd-tabview-item.d.ts.map +1 -0
  278. package/dist/ui/navigation/tab/{sd-tabview-item.control.js → sd-tabview-item.js} +8 -8
  279. package/dist/ui/navigation/tab/sd-tabview.d.ts +9 -0
  280. package/dist/ui/navigation/tab/sd-tabview.d.ts.map +1 -0
  281. package/dist/ui/navigation/tab/{sd-tabview.control.js → sd-tabview.js} +17 -17
  282. package/dist/ui/navigation/topbar/sd-topbar-container.d.ts +6 -0
  283. package/dist/ui/navigation/topbar/sd-topbar-container.d.ts.map +1 -0
  284. package/dist/ui/navigation/topbar/{sd-topbar-container.control.js → sd-topbar-container.js} +5 -5
  285. package/dist/ui/navigation/topbar/sd-topbar-menu.d.ts +23 -0
  286. package/dist/ui/navigation/topbar/sd-topbar-menu.d.ts.map +1 -0
  287. package/dist/ui/navigation/topbar/{sd-topbar-menu.control.js → sd-topbar-menu.js} +56 -56
  288. package/dist/ui/navigation/topbar/sd-topbar-user.d.ts +13 -0
  289. package/dist/ui/navigation/topbar/sd-topbar-user.d.ts.map +1 -0
  290. package/dist/ui/navigation/topbar/{sd-topbar-user.control.js → sd-topbar-user.js} +27 -27
  291. package/dist/ui/navigation/topbar/{sd-topbar.control.d.ts → sd-topbar.d.ts} +6 -6
  292. package/dist/ui/navigation/topbar/sd-topbar.d.ts.map +1 -0
  293. package/dist/ui/navigation/topbar/{sd-topbar.control.js → sd-topbar.js} +13 -13
  294. package/dist/ui/overlay/busy/sd-busy-container.d.ts +14 -0
  295. package/dist/ui/overlay/busy/sd-busy-container.d.ts.map +1 -0
  296. package/dist/ui/overlay/busy/{sd-busy-container.control.js → sd-busy-container.js} +16 -16
  297. package/dist/ui/overlay/dropdown/sd-dropdown-popup.d.ts +8 -0
  298. package/dist/ui/overlay/dropdown/sd-dropdown-popup.d.ts.map +1 -0
  299. package/dist/ui/overlay/dropdown/{sd-dropdown-popup.control.js → sd-dropdown-popup.js} +9 -9
  300. package/dist/ui/overlay/dropdown/{sd-dropdown.control.d.ts → sd-dropdown.d.ts} +4 -4
  301. package/dist/ui/overlay/dropdown/sd-dropdown.d.ts.map +1 -0
  302. package/dist/ui/overlay/dropdown/{sd-dropdown.control.js → sd-dropdown.js} +12 -12
  303. package/dist/ui/overlay/modal/sd-confirm-modal.d.ts +17 -0
  304. package/dist/ui/overlay/modal/sd-confirm-modal.d.ts.map +1 -0
  305. package/dist/ui/overlay/modal/{sd-confirm-modal.control.js → sd-confirm-modal.js} +11 -11
  306. package/dist/ui/overlay/modal/{sd-modal.control.d.ts → sd-modal.d.ts} +4 -4
  307. package/dist/ui/overlay/modal/sd-modal.d.ts.map +1 -0
  308. package/dist/ui/overlay/modal/{sd-modal.control.js → sd-modal.js} +28 -28
  309. package/dist/ui/overlay/modal/sd-modal.provider.d.ts +8 -8
  310. package/dist/ui/overlay/modal/sd-modal.provider.d.ts.map +1 -1
  311. package/dist/ui/overlay/modal/sd-modal.provider.js +4 -4
  312. package/dist/ui/overlay/modal/sd-prompt-modal.d.ts +19 -0
  313. package/dist/ui/overlay/modal/sd-prompt-modal.d.ts.map +1 -0
  314. package/dist/ui/overlay/modal/{sd-prompt-modal.control.js → sd-prompt-modal.js} +13 -13
  315. package/dist/ui/overlay/toast/sd-toast-container.d.ts +7 -0
  316. package/dist/ui/overlay/toast/sd-toast-container.d.ts.map +1 -0
  317. package/dist/ui/overlay/toast/{sd-toast-container.control.js → sd-toast-container.js} +6 -6
  318. package/dist/ui/overlay/toast/sd-toast.d.ts +14 -0
  319. package/dist/ui/overlay/toast/sd-toast.d.ts.map +1 -0
  320. package/dist/ui/overlay/toast/{sd-toast.control.js → sd-toast.js} +10 -10
  321. package/dist/ui/visual/sd-barcode.d.ts +11 -0
  322. package/dist/ui/visual/sd-barcode.d.ts.map +1 -0
  323. package/dist/ui/visual/{sd-barcode.control.js → sd-barcode.js} +5 -5
  324. package/dist/ui/visual/{sd-calendar.control.d.ts → sd-calendar.d.ts} +5 -5
  325. package/dist/ui/visual/sd-calendar.d.ts.map +1 -0
  326. package/dist/ui/visual/{sd-calendar.control.js → sd-calendar.js} +18 -18
  327. package/dist/ui/visual/sd-echarts.d.ts +13 -0
  328. package/dist/ui/visual/sd-echarts.d.ts.map +1 -0
  329. package/dist/ui/visual/{sd-echarts.control.js → sd-echarts.js} +7 -7
  330. package/dist/ui/visual/sd-label.d.ts +9 -0
  331. package/dist/ui/visual/sd-label.d.ts.map +1 -0
  332. package/dist/ui/visual/{sd-label.control.js → sd-label.js} +6 -6
  333. package/dist/ui/visual/sd-note.d.ts +9 -0
  334. package/dist/ui/visual/sd-note.d.ts.map +1 -0
  335. package/dist/ui/visual/{sd-note.control.js → sd-note.js} +6 -6
  336. package/dist/ui/visual/sd-progress.d.ts +11 -0
  337. package/dist/ui/visual/sd-progress.d.ts.map +1 -0
  338. package/dist/ui/visual/{sd-progress.control.js → sd-progress.js} +6 -6
  339. package/package.json +5 -5
  340. package/src/core/directives/{sd-events.directive.ts → sd-events.ts} +3 -3
  341. package/src/core/directives/{sd-invalid.directive.ts → sd-invalid.ts} +3 -3
  342. package/src/core/directives/{sd-item-of-template.directive.ts → sd-item-of-template.ts} +2 -2
  343. package/src/core/directives/{sd-ripple.directive.ts → sd-ripple.ts} +3 -3
  344. package/src/core/directives/{sd-router-link.directive.ts → sd-router-link.ts} +3 -3
  345. package/src/core/directives/{sd-show-effect.directive.ts → sd-show-effect.ts} +3 -3
  346. package/src/core/directives/{sd-typed-template.directive.ts → sd-typed-template.ts} +2 -2
  347. package/src/core/plugins/events/sd-intersection-event.plugin.ts +2 -2
  348. package/src/core/plugins/events/sd-resize-event.plugin.ts +2 -2
  349. package/src/core/providers/sd-activated-modal.provider.ts +2 -2
  350. package/src/core/providers/sd-app-structure.provider.ts +29 -14
  351. package/src/core/providers/sd-app-structure.types.ts +12 -43
  352. package/src/core/providers/sd-app-structure.utils.ts +29 -140
  353. package/src/core/providers/sd-busy.provider.ts +6 -6
  354. package/src/core/providers/sd-print.provider.ts +11 -11
  355. package/src/core/providers/sd-shared-data.provider.ts +14 -14
  356. package/src/core/providers/sd-toast.provider.ts +22 -22
  357. package/src/core/types/select-modal-output-result.ts +1 -1
  358. package/src/core/utils/{TDirectiveInputSignals.ts → directive-input-signals.ts} +4 -4
  359. package/src/core/utils/{useCurrentPageCodeSignal.ts → injectCurrentPageCodeSignal.ts} +1 -1
  360. package/src/core/utils/{useFullPageCodeSignal.ts → injectFullPageCodeSignal.ts} +1 -1
  361. package/src/core/utils/{useSdSystemConfigResource.ts → injectSdSystemConfigResource.ts} +1 -1
  362. package/src/core/utils/{useViewTitleSignal.ts → injectViewTitleSignal.ts} +10 -6
  363. package/src/core/utils/{useViewTypeSignal.ts → injectViewTypeSignal.ts} +7 -7
  364. package/src/core/utils/useExpandingManager.ts +8 -8
  365. package/src/core/utils/useSortingManager.ts +2 -2
  366. package/src/features/address/sd-address-search.modal.ts +9 -9
  367. package/src/features/base/{sd-base-container.control.ts → sd-base-container.ts} +27 -22
  368. package/src/features/data-view/{useDataSheetExcelManager.ts → injectDataSheetExcelManager.ts} +3 -3
  369. package/src/features/data-view/{useDataSheetInlineEditManager.ts → injectDataSheetInlineEditManager.ts} +3 -3
  370. package/src/features/data-view/{useDataSheetModalEditManager.ts → injectDataSheetModalEditManager.ts} +3 -3
  371. package/src/features/data-view/{useDataSheetRefreshManager.ts → injectDataSheetRefreshManager.ts} +3 -3
  372. package/src/features/data-view/sd-data-detail.base.ts +183 -0
  373. package/src/features/data-view/{sd-data-detail.control.ts → sd-data-detail.ts} +14 -198
  374. package/src/features/data-view/sd-data-select-button.base.ts +104 -0
  375. package/src/features/data-view/sd-data-select-button.ts +105 -0
  376. package/src/features/data-view/{sd-data-sheet-column.directive.ts → sd-data-sheet-column.ts} +2 -2
  377. package/src/features/data-view/sd-data-sheet.base.ts +305 -0
  378. package/src/features/data-view/{sd-data-sheet.control.ts → sd-data-sheet.ts} +19 -323
  379. package/src/features/data-view/sd-data-sheet.types.ts +3 -3
  380. package/src/features/data-view/setupCloserWhenSingleSelectionChange.ts +2 -2
  381. package/src/features/permission-table/{sd-permission-table.control.ts → sd-permission-table.ts} +26 -26
  382. package/src/features/shared-data/{sd-shared-data-select-button.control.ts → sd-shared-data-select-button.ts} +17 -19
  383. package/src/features/shared-data/{sd-shared-data-select-list.control.ts → sd-shared-data-select-list.ts} +21 -21
  384. package/src/features/shared-data/{sd-shared-data-select.control.ts → sd-shared-data-select.ts} +27 -27
  385. package/src/index.ts +139 -141
  386. package/src/ui/data/list/{sd-list-item.control.ts → sd-list-item.ts} +6 -6
  387. package/src/ui/data/list/{sd-list.control.ts → sd-list.ts} +1 -1
  388. package/src/ui/data/sheet/{useSheetColumnResizing.ts → injectSheetColumnResizing.ts} +9 -9
  389. package/src/ui/data/sheet/{useSheetDomAccessor.ts → injectSheetDomAccessor.ts} +1 -1
  390. package/src/ui/data/sheet/{sd-sheet-column.directive.ts → sd-sheet-column.ts} +1 -1
  391. package/src/ui/data/sheet/sd-sheet-config.modal.ts +15 -15
  392. package/src/ui/data/sheet/{sd-sheet.control.ts → sd-sheet.ts} +27 -27
  393. package/src/ui/data/sheet/types.ts +6 -6
  394. package/src/ui/data/sheet/useSheetCellAgent.ts +2 -2
  395. package/src/ui/data/sheet/useSheetCellStyling.ts +10 -10
  396. package/src/ui/data/sheet/useSheetColumnFixing.ts +2 -2
  397. package/src/ui/data/sheet/useSheetLayoutEngine.ts +8 -8
  398. package/src/ui/form/button/{sd-additional-button.control.ts → sd-additional-button.ts} +1 -1
  399. package/src/ui/form/button/{sd-anchor.control.ts → sd-anchor.ts} +1 -1
  400. package/src/ui/form/button/{sd-button.control.ts → sd-button.ts} +4 -4
  401. package/src/ui/form/button/{sd-modal-select-button.control.ts → sd-modal-select-button.ts} +16 -16
  402. package/src/ui/form/checkbox/{sd-checkbox-group-item.control.ts → sd-checkbox-group-item.ts} +6 -6
  403. package/src/ui/form/checkbox/{sd-checkbox-group.control.ts → sd-checkbox-group.ts} +1 -1
  404. package/src/ui/form/checkbox/{sd-checkbox.control.ts → sd-checkbox.ts} +1 -1
  405. package/src/ui/form/checkbox/{sd-switch.control.ts → sd-switch.ts} +1 -1
  406. package/src/ui/form/choice/{sd-state-preset.control.ts → sd-state-preset.ts} +14 -14
  407. package/src/ui/form/editor/{sd-tiptap-editor.control.ts → sd-tiptap-editor.ts} +1 -1
  408. package/src/ui/form/input/sd-date-range.picker.ts +5 -5
  409. package/src/ui/form/input/{sd-numpad.control.ts → sd-numpad.ts} +4 -4
  410. package/src/ui/form/input/{sd-range.control.ts → sd-range.ts} +6 -6
  411. package/src/ui/form/input/{sd-textarea.control.ts → sd-textarea.ts} +1 -1
  412. package/src/ui/form/input/sd-textfield-type-handlers.ts +18 -18
  413. package/src/ui/form/input/{sd-textfield.control.ts → sd-textfield.ts} +8 -8
  414. package/src/ui/form/{sd-form.control.ts → sd-form.ts} +1 -1
  415. package/src/ui/form/select/{sd-select-button.control.ts → sd-select-button.ts} +1 -1
  416. package/src/ui/form/select/{sd-select-item.control.ts → sd-select-item.ts} +7 -7
  417. package/src/ui/form/select/{sd-select.control.ts → sd-select.ts} +21 -21
  418. package/src/ui/layout/dock/{sd-dock-container.control.ts → sd-dock-container.ts} +3 -3
  419. package/src/ui/layout/dock/{sd-dock.control.ts → sd-dock.ts} +5 -5
  420. package/src/ui/layout/kanban/{sd-kanban-board.control.ts → sd-kanban-board.ts} +7 -7
  421. package/src/ui/layout/kanban/{sd-kanban-lane.control.ts → sd-kanban-lane.ts} +12 -12
  422. package/src/ui/layout/kanban/{sd-kanban.control.ts → sd-kanban.ts} +15 -15
  423. package/src/ui/layout/{sd-card.directive.ts → sd-card.ts} +2 -2
  424. package/src/ui/layout/{sd-gap.control.ts → sd-gap.ts} +1 -1
  425. package/src/ui/layout/{sd-pane.directive.ts → sd-pane.ts} +2 -2
  426. package/src/ui/layout/view/{sd-view-item.control.ts → sd-view-item.ts} +3 -3
  427. package/src/ui/layout/view/{sd-view.control.ts → sd-view.ts} +1 -1
  428. package/src/ui/navigation/collapse/{sd-collapse-icon.control.ts → sd-collapse-icon.ts} +1 -1
  429. package/src/ui/navigation/collapse/{sd-collapse.control.ts → sd-collapse.ts} +3 -3
  430. package/src/ui/navigation/menu-utils.ts +5 -5
  431. package/src/ui/navigation/pagination/{sd-pagination.control.ts → sd-pagination.ts} +3 -3
  432. package/src/ui/navigation/sidebar/{sd-sidebar-container.control.ts → sd-sidebar-container.ts} +1 -1
  433. package/src/ui/navigation/sidebar/{sd-sidebar-menu.control.ts → sd-sidebar-menu.ts} +19 -19
  434. package/src/ui/navigation/sidebar/{sd-sidebar-user.control.ts → sd-sidebar-user.ts} +14 -14
  435. package/src/ui/navigation/sidebar/{sd-sidebar.control.ts → sd-sidebar.ts} +4 -4
  436. package/src/ui/navigation/tab/{sd-tab-item.control.ts → sd-tab-item.ts} +3 -3
  437. package/src/ui/navigation/tab/{sd-tab.control.ts → sd-tab.ts} +1 -1
  438. package/src/ui/navigation/tab/{sd-tabview-item.control.ts → sd-tabview-item.ts} +4 -4
  439. package/src/ui/navigation/tab/{sd-tabview.control.ts → sd-tabview.ts} +6 -6
  440. package/src/ui/navigation/topbar/{sd-topbar-container.control.ts → sd-topbar-container.ts} +1 -1
  441. package/src/ui/navigation/topbar/{sd-topbar-menu.control.ts → sd-topbar-menu.ts} +26 -26
  442. package/src/ui/navigation/topbar/{sd-topbar-user.control.ts → sd-topbar-user.ts} +15 -15
  443. package/src/ui/navigation/topbar/{sd-topbar.control.ts → sd-topbar.ts} +6 -6
  444. package/src/ui/overlay/busy/{sd-busy-container.control.ts → sd-busy-container.ts} +3 -3
  445. package/src/ui/overlay/dropdown/{sd-dropdown-popup.control.ts → sd-dropdown-popup.ts} +4 -4
  446. package/src/ui/overlay/dropdown/{sd-dropdown.control.ts → sd-dropdown.ts} +4 -4
  447. package/src/ui/overlay/modal/{sd-confirm-modal.control.ts → sd-confirm-modal.ts} +5 -5
  448. package/src/ui/overlay/modal/sd-modal.provider.ts +18 -18
  449. package/src/ui/overlay/modal/{sd-modal.control.ts → sd-modal.ts} +1 -1
  450. package/src/ui/overlay/modal/{sd-prompt-modal.control.ts → sd-prompt-modal.ts} +6 -6
  451. package/src/ui/overlay/toast/{sd-toast-container.control.ts → sd-toast-container.ts} +1 -1
  452. package/src/ui/overlay/toast/{sd-toast.control.ts → sd-toast.ts} +3 -3
  453. package/src/ui/visual/{sd-barcode.control.ts → sd-barcode.ts} +3 -3
  454. package/src/ui/visual/{sd-calendar.control.ts → sd-calendar.ts} +4 -4
  455. package/src/ui/visual/{sd-echarts.control.ts → sd-echarts.ts} +1 -1
  456. package/src/ui/visual/{sd-label.control.ts → sd-label.ts} +1 -1
  457. package/src/ui/visual/{sd-note.control.ts → sd-note.ts} +1 -1
  458. package/src/ui/visual/{sd-progress.control.ts → sd-progress.ts} +1 -1
  459. package/dist/core/directives/sd-events.directive.d.ts.map +0 -1
  460. package/dist/core/directives/sd-invalid.directive.d.ts +0 -8
  461. package/dist/core/directives/sd-invalid.directive.d.ts.map +0 -1
  462. package/dist/core/directives/sd-item-of-template.directive.d.ts +0 -14
  463. package/dist/core/directives/sd-item-of-template.directive.d.ts.map +0 -1
  464. package/dist/core/directives/sd-ripple.directive.d.ts +0 -8
  465. package/dist/core/directives/sd-ripple.directive.d.ts.map +0 -1
  466. package/dist/core/directives/sd-router-link.directive.d.ts.map +0 -1
  467. package/dist/core/directives/sd-show-effect.directive.d.ts +0 -9
  468. package/dist/core/directives/sd-show-effect.directive.d.ts.map +0 -1
  469. package/dist/core/directives/sd-typed-template.directive.d.ts +0 -8
  470. package/dist/core/directives/sd-typed-template.directive.d.ts.map +0 -1
  471. package/dist/core/utils/TDirectiveInputSignals.d.ts.map +0 -1
  472. package/dist/core/utils/useCurrentPageCodeSignal.d.ts +0 -3
  473. package/dist/core/utils/useCurrentPageCodeSignal.d.ts.map +0 -1
  474. package/dist/core/utils/useFullPageCodeSignal.d.ts +0 -3
  475. package/dist/core/utils/useFullPageCodeSignal.d.ts.map +0 -1
  476. package/dist/core/utils/useSdSystemConfigResource.d.ts.map +0 -1
  477. package/dist/core/utils/useViewTitleSignal.d.ts +0 -3
  478. package/dist/core/utils/useViewTitleSignal.d.ts.map +0 -1
  479. package/dist/core/utils/useViewTypeSignal.d.ts +0 -4
  480. package/dist/core/utils/useViewTypeSignal.d.ts.map +0 -1
  481. package/dist/features/base/sd-base-container.control.d.ts.map +0 -1
  482. package/dist/features/data-view/sd-data-detail.control.d.ts +0 -73
  483. package/dist/features/data-view/sd-data-detail.control.d.ts.map +0 -1
  484. package/dist/features/data-view/sd-data-select-button.control.d.ts +0 -35
  485. package/dist/features/data-view/sd-data-select-button.control.d.ts.map +0 -1
  486. package/dist/features/data-view/sd-data-select-button.control.js +0 -219
  487. package/dist/features/data-view/sd-data-sheet-column.directive.d.ts +0 -8
  488. package/dist/features/data-view/sd-data-sheet-column.directive.d.ts.map +0 -1
  489. package/dist/features/data-view/sd-data-sheet.control.d.ts +0 -120
  490. package/dist/features/data-view/sd-data-sheet.control.d.ts.map +0 -1
  491. package/dist/features/data-view/useDataSheetExcelManager.d.ts.map +0 -1
  492. package/dist/features/data-view/useDataSheetInlineEditManager.d.ts.map +0 -1
  493. package/dist/features/data-view/useDataSheetModalEditManager.d.ts.map +0 -1
  494. package/dist/features/data-view/useDataSheetRefreshManager.d.ts.map +0 -1
  495. package/dist/features/permission-table/sd-permission-table.control.d.ts +0 -32
  496. package/dist/features/permission-table/sd-permission-table.control.d.ts.map +0 -1
  497. package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts +0 -16
  498. package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts.map +0 -1
  499. package/dist/features/shared-data/sd-shared-data-select-list.control.d.ts.map +0 -1
  500. package/dist/features/shared-data/sd-shared-data-select.control.d.ts.map +0 -1
  501. package/dist/ui/data/list/sd-list-item.control.d.ts +0 -20
  502. package/dist/ui/data/list/sd-list-item.control.d.ts.map +0 -1
  503. package/dist/ui/data/list/sd-list.control.d.ts +0 -7
  504. package/dist/ui/data/list/sd-list.control.d.ts.map +0 -1
  505. package/dist/ui/data/sheet/sd-sheet-column.directive.d.ts.map +0 -1
  506. package/dist/ui/data/sheet/sd-sheet.control.d.ts.map +0 -1
  507. package/dist/ui/data/sheet/useSheetColumnResizing.d.ts +0 -17
  508. package/dist/ui/data/sheet/useSheetColumnResizing.d.ts.map +0 -1
  509. package/dist/ui/data/sheet/useSheetDomAccessor.d.ts.map +0 -1
  510. package/dist/ui/form/button/sd-additional-button.control.d.ts +0 -8
  511. package/dist/ui/form/button/sd-additional-button.control.d.ts.map +0 -1
  512. package/dist/ui/form/button/sd-anchor.control.d.ts +0 -8
  513. package/dist/ui/form/button/sd-anchor.control.d.ts.map +0 -1
  514. package/dist/ui/form/button/sd-button.control.d.ts.map +0 -1
  515. package/dist/ui/form/button/sd-modal-select-button.control.d.ts +0 -38
  516. package/dist/ui/form/button/sd-modal-select-button.control.d.ts.map +0 -1
  517. package/dist/ui/form/checkbox/sd-checkbox-group-item.control.d.ts.map +0 -1
  518. package/dist/ui/form/checkbox/sd-checkbox-group.control.d.ts +0 -8
  519. package/dist/ui/form/checkbox/sd-checkbox-group.control.d.ts.map +0 -1
  520. package/dist/ui/form/checkbox/sd-checkbox.control.d.ts +0 -19
  521. package/dist/ui/form/checkbox/sd-checkbox.control.d.ts.map +0 -1
  522. package/dist/ui/form/checkbox/sd-switch.control.d.ts +0 -14
  523. package/dist/ui/form/checkbox/sd-switch.control.d.ts.map +0 -1
  524. package/dist/ui/form/choice/sd-state-preset.control.d.ts.map +0 -1
  525. package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts.map +0 -1
  526. package/dist/ui/form/input/sd-numpad.control.d.ts.map +0 -1
  527. package/dist/ui/form/input/sd-range.control.d.ts +0 -13
  528. package/dist/ui/form/input/sd-range.control.d.ts.map +0 -1
  529. package/dist/ui/form/input/sd-textarea.control.d.ts +0 -23
  530. package/dist/ui/form/input/sd-textarea.control.d.ts.map +0 -1
  531. package/dist/ui/form/input/sd-textfield.control.d.ts +0 -39
  532. package/dist/ui/form/input/sd-textfield.control.d.ts.map +0 -1
  533. package/dist/ui/form/sd-form.control.d.ts.map +0 -1
  534. package/dist/ui/form/select/sd-select-button.control.d.ts +0 -7
  535. package/dist/ui/form/select/sd-select-button.control.d.ts.map +0 -1
  536. package/dist/ui/form/select/sd-select-item.control.d.ts +0 -18
  537. package/dist/ui/form/select/sd-select-item.control.d.ts.map +0 -1
  538. package/dist/ui/form/select/sd-select.control.d.ts.map +0 -1
  539. package/dist/ui/layout/dock/sd-dock-container.control.d.ts +0 -12
  540. package/dist/ui/layout/dock/sd-dock-container.control.d.ts.map +0 -1
  541. package/dist/ui/layout/dock/sd-dock.control.d.ts +0 -19
  542. package/dist/ui/layout/dock/sd-dock.control.d.ts.map +0 -1
  543. package/dist/ui/layout/kanban/sd-kanban-board.control.d.ts +0 -24
  544. package/dist/ui/layout/kanban/sd-kanban-board.control.d.ts.map +0 -1
  545. package/dist/ui/layout/kanban/sd-kanban-lane.control.d.ts.map +0 -1
  546. package/dist/ui/layout/kanban/sd-kanban.control.d.ts.map +0 -1
  547. package/dist/ui/layout/sd-card.directive.d.ts +0 -6
  548. package/dist/ui/layout/sd-card.directive.d.ts.map +0 -1
  549. package/dist/ui/layout/sd-gap.control.d.ts +0 -12
  550. package/dist/ui/layout/sd-gap.control.d.ts.map +0 -1
  551. package/dist/ui/layout/sd-pane.directive.d.ts +0 -6
  552. package/dist/ui/layout/sd-pane.directive.d.ts.map +0 -1
  553. package/dist/ui/layout/view/sd-view-item.control.d.ts +0 -9
  554. package/dist/ui/layout/view/sd-view-item.control.d.ts.map +0 -1
  555. package/dist/ui/layout/view/sd-view.control.d.ts +0 -8
  556. package/dist/ui/layout/view/sd-view.control.d.ts.map +0 -1
  557. package/dist/ui/navigation/collapse/sd-collapse-icon.control.d.ts +0 -13
  558. package/dist/ui/navigation/collapse/sd-collapse-icon.control.d.ts.map +0 -1
  559. package/dist/ui/navigation/collapse/sd-collapse.control.d.ts +0 -14
  560. package/dist/ui/navigation/collapse/sd-collapse.control.d.ts.map +0 -1
  561. package/dist/ui/navigation/pagination/sd-pagination.control.d.ts.map +0 -1
  562. package/dist/ui/navigation/sidebar/sd-sidebar-container.control.d.ts.map +0 -1
  563. package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts +0 -22
  564. package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts.map +0 -1
  565. package/dist/ui/navigation/sidebar/sd-sidebar-user.control.d.ts +0 -16
  566. package/dist/ui/navigation/sidebar/sd-sidebar-user.control.d.ts.map +0 -1
  567. package/dist/ui/navigation/sidebar/sd-sidebar.control.d.ts +0 -8
  568. package/dist/ui/navigation/sidebar/sd-sidebar.control.d.ts.map +0 -1
  569. package/dist/ui/navigation/tab/sd-tab-item.control.d.ts +0 -10
  570. package/dist/ui/navigation/tab/sd-tab-item.control.d.ts.map +0 -1
  571. package/dist/ui/navigation/tab/sd-tab.control.d.ts +0 -7
  572. package/dist/ui/navigation/tab/sd-tab.control.d.ts.map +0 -1
  573. package/dist/ui/navigation/tab/sd-tabview-item.control.d.ts +0 -10
  574. package/dist/ui/navigation/tab/sd-tabview-item.control.d.ts.map +0 -1
  575. package/dist/ui/navigation/tab/sd-tabview.control.d.ts +0 -9
  576. package/dist/ui/navigation/tab/sd-tabview.control.d.ts.map +0 -1
  577. package/dist/ui/navigation/topbar/sd-topbar-container.control.d.ts +0 -6
  578. package/dist/ui/navigation/topbar/sd-topbar-container.control.d.ts.map +0 -1
  579. package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts +0 -23
  580. package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts.map +0 -1
  581. package/dist/ui/navigation/topbar/sd-topbar-user.control.d.ts +0 -13
  582. package/dist/ui/navigation/topbar/sd-topbar-user.control.d.ts.map +0 -1
  583. package/dist/ui/navigation/topbar/sd-topbar.control.d.ts.map +0 -1
  584. package/dist/ui/overlay/busy/sd-busy-container.control.d.ts +0 -14
  585. package/dist/ui/overlay/busy/sd-busy-container.control.d.ts.map +0 -1
  586. package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts +0 -8
  587. package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts.map +0 -1
  588. package/dist/ui/overlay/dropdown/sd-dropdown.control.d.ts.map +0 -1
  589. package/dist/ui/overlay/modal/sd-confirm-modal.control.d.ts +0 -17
  590. package/dist/ui/overlay/modal/sd-confirm-modal.control.d.ts.map +0 -1
  591. package/dist/ui/overlay/modal/sd-modal.control.d.ts.map +0 -1
  592. package/dist/ui/overlay/modal/sd-prompt-modal.control.d.ts +0 -19
  593. package/dist/ui/overlay/modal/sd-prompt-modal.control.d.ts.map +0 -1
  594. package/dist/ui/overlay/toast/sd-toast-container.control.d.ts +0 -7
  595. package/dist/ui/overlay/toast/sd-toast-container.control.d.ts.map +0 -1
  596. package/dist/ui/overlay/toast/sd-toast.control.d.ts +0 -14
  597. package/dist/ui/overlay/toast/sd-toast.control.d.ts.map +0 -1
  598. package/dist/ui/visual/sd-barcode.control.d.ts +0 -11
  599. package/dist/ui/visual/sd-barcode.control.d.ts.map +0 -1
  600. package/dist/ui/visual/sd-calendar.control.d.ts.map +0 -1
  601. package/dist/ui/visual/sd-echarts.control.d.ts +0 -13
  602. package/dist/ui/visual/sd-echarts.control.d.ts.map +0 -1
  603. package/dist/ui/visual/sd-label.control.d.ts +0 -9
  604. package/dist/ui/visual/sd-label.control.d.ts.map +0 -1
  605. package/dist/ui/visual/sd-note.control.d.ts +0 -9
  606. package/dist/ui/visual/sd-note.control.d.ts.map +0 -1
  607. package/dist/ui/visual/sd-progress.control.d.ts +0 -11
  608. package/dist/ui/visual/sd-progress.control.d.ts.map +0 -1
  609. package/src/features/data-view/sd-data-select-button.control.ts +0 -210
  610. /package/dist/core/utils/{TDirectiveInputSignals.js → directive-input-signals.js} +0 -0
@@ -1,9 +1,12 @@
1
- import { computed, inject, Injectable } from "@angular/core";
1
+ import { computed, inject, Injectable, signal } from "@angular/core";
2
2
  import type { Signal } from "@angular/core";
3
- import type { TSdAppStructureItem, ISdFlatMenu } from "./sd-app-structure.types";
3
+ import type { AppStructureService } from "@simplysm/service-common";
4
+ import type { AppStructureItem, SdFlatMenu } from "./sd-app-structure.types";
4
5
  import { SdAppStructureUtils } from "./sd-app-structure.utils";
6
+ import { SdServiceClientFactoryProvider } from "./sd-service-client-factory.provider";
7
+ import { SdAngularConfigProvider } from "./sd-angular-config.provider";
5
8
 
6
- export function usePermsSignal<K extends string>(viewCodes: string[], keys: K[]): Signal<K[]> {
9
+ export function injectPermsSignal<K extends string>(viewCodes: string[], keys: K[]): Signal<K[]> {
7
10
  const sdAppStructure = inject(SdAppStructureProvider);
8
11
  return computed(() => sdAppStructure.getPermsByFullCode(viewCodes, keys));
9
12
  }
@@ -11,33 +14,45 @@ export function usePermsSignal<K extends string>(viewCodes: string[], keys: K[])
11
14
  // 권한은 모듈만 체크하고
12
15
  // 메뉴는 모듈/권한 모두 체크함
13
16
  @Injectable({ providedIn: "root" })
14
- export abstract class SdAppStructureProvider<TModule = unknown> {
15
- abstract items: TSdAppStructureItem<TModule>[];
16
- abstract usableModules: Signal<TModule[] | undefined>;
17
- abstract permRecord: Signal<Record<string, boolean> | undefined>;
17
+ export class SdAppStructureProvider<TModule = unknown> {
18
+ private readonly _clientFactory = inject(SdServiceClientFactoryProvider);
19
+ private readonly _config = inject(SdAngularConfigProvider);
20
+
21
+ readonly usableModules = signal<TModule[] | undefined>(undefined);
22
+ readonly permRecord = signal<Record<string, boolean> | undefined>(undefined);
23
+ readonly items = signal<AppStructureItem<TModule>[]>([]);
24
+
25
+ async initialize(serviceKey: string): Promise<void> {
26
+ const client = this._clientFactory.get(serviceKey);
27
+ const svc = client.getService<AppStructureService>("AppStructure");
28
+ const itemsMap = await svc.getItems();
29
+ this.items.set(
30
+ (itemsMap[this._config.clientName] ?? []) as AppStructureItem<TModule>[],
31
+ );
32
+ }
18
33
 
19
34
  usableMenus = computed(() =>
20
- SdAppStructureUtils.getMenus(this.items, [], this.usableModules(), this.permRecord()),
35
+ SdAppStructureUtils.getMenus(this.items(), [], this.usableModules(), this.permRecord()),
21
36
  );
22
- usableFlatMenus = computed<ISdFlatMenu<TModule>[]>(() =>
23
- SdAppStructureUtils.getFlatMenus(this.items, this.usableModules(), this.permRecord()),
37
+ usableFlatMenus = computed<SdFlatMenu<TModule>[]>(() =>
38
+ SdAppStructureUtils.getFlatMenus(this.items(), this.usableModules(), this.permRecord()),
24
39
  );
25
40
 
26
- getPermissionsByStructure(items: TSdAppStructureItem<TModule>[], codeChain: string[] = []) {
41
+ getPermissionsByStructure(items: AppStructureItem<TModule>[], codeChain: string[] = []) {
27
42
  return SdAppStructureUtils.getPermissions(items, codeChain, this.usableModules());
28
43
  }
29
44
 
30
45
  getTitleByFullCode(fullCode: string) {
31
- return SdAppStructureUtils.getTitleByFullCode(this.items, fullCode);
46
+ return SdAppStructureUtils.getTitleByFullCode(this.items(), fullCode);
32
47
  }
33
48
 
34
49
  getItemChainByFullCode(fullCode: string) {
35
- return SdAppStructureUtils.getItemChainByFullCode(this.items, fullCode);
50
+ return SdAppStructureUtils.getItemChainByFullCode(this.items(), fullCode);
36
51
  }
37
52
 
38
53
  getPermsByFullCode<K extends string>(fullCodes: string[], permKeys: K[]): K[] {
39
54
  return SdAppStructureUtils.getPermsByFullCode(
40
- this.items,
55
+ this.items(),
41
56
  fullCodes,
42
57
  permKeys,
43
58
  this.permRecord(),
@@ -1,60 +1,29 @@
1
- export type TSdAppStructureItem<TModule = unknown> =
2
- | ISdAppStructureGroupItem<TModule>
3
- | ISdAppStructureLeafItem<TModule>;
1
+ export type {
2
+ AppStructureItem,
3
+ AppStructureGroupItem,
4
+ AppStructureLeafItem,
5
+ AppStructureSubPermission,
6
+ FlatPermission,
7
+ } from "@simplysm/service-common";
4
8
 
5
- export interface ISdAppStructureGroupItem<TModule> {
6
- code: string;
7
- title: string;
8
- modules?: TModule[];
9
- requiredModules?: TModule[];
10
- icon?: string;
11
- children: TSdAppStructureItem<TModule>[];
12
- }
13
-
14
- export interface ISdAppStructureLeafItem<TModule> {
15
- code: string;
16
- title: string;
17
- modules?: TModule[];
18
- requiredModules?: TModule[];
19
- perms?: ("use" | "edit")[];
20
- subPerms?: ISdAppStructureSubPermission<TModule>[];
21
- icon?: string;
22
- url?: string;
23
- isNotMenu?: boolean;
24
- }
25
-
26
- export interface ISdAppStructureSubPermission<TModule> {
27
- code: string;
28
- title: string;
29
- modules?: TModule[];
30
- requiredModules?: TModule[];
31
- perms: ("use" | "edit")[];
32
- }
33
-
34
- export interface ISdMenu {
9
+ export interface SdMenu {
35
10
  title: string;
36
11
  codeChain: string[];
37
12
  url?: string;
38
13
  icon?: string;
39
- children?: ISdMenu[];
14
+ children?: SdMenu[];
40
15
  }
41
16
 
42
- export interface ISdFlatMenu<TModule = unknown> {
17
+ export interface SdFlatMenu<TModule = unknown> {
43
18
  titleChain: string[];
44
19
  codeChain: string[];
45
20
  modulesChain: TModule[][];
46
21
  }
47
22
 
48
- export interface ISdPermission<TModule = unknown> {
23
+ export interface SdPermission<TModule = unknown> {
49
24
  title: string;
50
25
  codeChain: string[];
51
26
  modules: TModule[] | undefined;
52
27
  perms: ("use" | "edit")[] | undefined;
53
- children: ISdPermission<TModule>[] | undefined;
54
- }
55
-
56
- export interface ISdFlatPermission<TModule = unknown> {
57
- titleChain: string[];
58
- codeChain: string[];
59
- modulesChain: TModule[][];
28
+ children: SdPermission<TModule>[] | undefined;
60
29
  }
@@ -1,15 +1,19 @@
1
+ import {
2
+ getFlatPermissions,
3
+ isUsableModules,
4
+ isUsableModulesChain,
5
+ } from "@simplysm/service-common";
1
6
  import type {
2
- TSdAppStructureItem,
3
- ISdMenu,
4
- ISdFlatMenu,
5
- ISdPermission,
6
- ISdFlatPermission,
7
+ AppStructureItem,
8
+ SdMenu,
9
+ SdFlatMenu,
10
+ SdPermission,
7
11
  } from "./sd-app-structure.types";
8
12
 
9
13
  export abstract class SdAppStructureUtils {
10
14
  //---------- Info
11
15
 
12
- static getTitleByFullCode<TModule>(items: TSdAppStructureItem<TModule>[], fullCode: string) {
16
+ static getTitleByFullCode<TModule>(items: AppStructureItem<TModule>[], fullCode: string) {
13
17
  const itemChain = this.getItemChainByFullCode(items, fullCode);
14
18
  if (itemChain.length === 0) {
15
19
  throw new Error(`Item not found for fullCode: ${fullCode}`);
@@ -23,7 +27,7 @@ export abstract class SdAppStructureUtils {
23
27
  }
24
28
 
25
29
  static getPermsByFullCode<TModule, K extends string>(
26
- items: TSdAppStructureItem<TModule>[],
30
+ items: AppStructureItem<TModule>[],
27
31
  fullCodes: string[],
28
32
  permKeys: K[],
29
33
  permRecord: Record<string, boolean> | undefined,
@@ -51,12 +55,12 @@ export abstract class SdAppStructureUtils {
51
55
  }
52
56
 
53
57
  static getItemChainByFullCode<TModule>(
54
- items: TSdAppStructureItem<TModule>[],
58
+ items: AppStructureItem<TModule>[],
55
59
  fullCode: string,
56
- ): TSdAppStructureItem<TModule>[] {
60
+ ): AppStructureItem<TModule>[] {
57
61
  const codeChain = fullCode.split(".");
58
62
 
59
- const result: TSdAppStructureItem<TModule>[] = [];
63
+ const result: AppStructureItem<TModule>[] = [];
60
64
 
61
65
  let cursorChildren = items;
62
66
  for (const currCode of codeChain) {
@@ -72,12 +76,12 @@ export abstract class SdAppStructureUtils {
72
76
  //---------- Menus
73
77
 
74
78
  static getMenus<TModule>(
75
- items: TSdAppStructureItem<TModule>[],
79
+ items: AppStructureItem<TModule>[],
76
80
  codeChain: string[],
77
81
  usableModules: TModule[] | undefined,
78
82
  permRecord: Record<string, boolean> | undefined,
79
- ): ISdMenu[] {
80
- const resultMenus: ISdMenu[] = [];
83
+ ): SdMenu[] {
84
+ const resultMenus: SdMenu[] = [];
81
85
 
82
86
  for (const item of items) {
83
87
  if ("isNotMenu" in item && item.isNotMenu) continue;
@@ -85,7 +89,7 @@ export abstract class SdAppStructureUtils {
85
89
  const currCodeChain = [...codeChain, item.code];
86
90
 
87
91
  // 모듈 활성화 여부 확인
88
- if (!this._isUsableModules(item.modules, item.requiredModules, usableModules)) continue;
92
+ if (!isUsableModules(item.modules, item.requiredModules, usableModules)) continue;
89
93
 
90
94
  // 그룹 메뉴
91
95
  if ("children" in item) {
@@ -120,14 +124,14 @@ export abstract class SdAppStructureUtils {
120
124
  }
121
125
 
122
126
  static getFlatMenus<TModule>(
123
- items: TSdAppStructureItem<TModule>[],
127
+ items: AppStructureItem<TModule>[],
124
128
  usableModules: TModule[] | undefined,
125
129
  permRecord: Record<string, boolean> | undefined,
126
- ): ISdFlatMenu<TModule>[] {
127
- const resultFlatMenus: ISdFlatMenu<TModule>[] = [];
130
+ ): SdFlatMenu<TModule>[] {
131
+ const resultFlatMenus: SdFlatMenu<TModule>[] = [];
128
132
 
129
133
  type QueueItem = {
130
- item: TSdAppStructureItem<TModule>;
134
+ item: AppStructureItem<TModule>;
131
135
  titleChain: string[];
132
136
  codeChain: string[];
133
137
  modulesChain: TModule[][];
@@ -154,7 +158,7 @@ export abstract class SdAppStructureUtils {
154
158
  ? [...requiredModulesChain, item.requiredModules]
155
159
  : requiredModulesChain;
156
160
 
157
- if (!this._isUsableModulesChain(currModulesChain, currRequiredModulesChain, usableModules))
161
+ if (!isUsableModulesChain(currModulesChain, currRequiredModulesChain, usableModules))
158
162
  continue;
159
163
 
160
164
  if ("children" in item) {
@@ -182,16 +186,16 @@ export abstract class SdAppStructureUtils {
182
186
  //---------- Perms
183
187
 
184
188
  static getPermissions<TModule>(
185
- items: TSdAppStructureItem<TModule>[],
189
+ items: AppStructureItem<TModule>[],
186
190
  codeChain: string[],
187
191
  usableModules: TModule[] | undefined,
188
- ): ISdPermission<TModule>[] {
189
- const results: ISdPermission<TModule>[] = [];
192
+ ): SdPermission<TModule>[] {
193
+ const results: SdPermission<TModule>[] = [];
190
194
  for (const item of items) {
191
195
  const currCodeChain = [...codeChain, item.code];
192
196
 
193
197
  // 모듈 활성화 여부 확인
194
- if (!this._isUsableModules(item.modules, item.requiredModules, usableModules)) continue;
198
+ if (!isUsableModules(item.modules, item.requiredModules, usableModules)) continue;
195
199
 
196
200
  // 그룹
197
201
  if ("children" in item) {
@@ -227,124 +231,9 @@ export abstract class SdAppStructureUtils {
227
231
  }
228
232
 
229
233
  static getFlatPermissions<TModule>(
230
- items: TSdAppStructureItem<TModule>[],
234
+ items: AppStructureItem<TModule>[],
231
235
  usableModules: TModule[] | undefined,
232
236
  ) {
233
- const results: ISdFlatPermission<TModule>[] = [];
234
-
235
- type QueueItem = {
236
- item: TSdAppStructureItem<TModule>;
237
- titleChain: string[];
238
- codeChain: string[];
239
- modulesChain: TModule[][];
240
- requiredModulesChain: TModule[][];
241
- };
242
-
243
- const queue: QueueItem[] = items.map((item) => ({
244
- item,
245
- titleChain: [],
246
- codeChain: [],
247
- modulesChain: [],
248
- requiredModulesChain: [],
249
- }));
250
-
251
- while (queue.length > 0) {
252
- const { item, titleChain, codeChain, modulesChain, requiredModulesChain } = queue.shift()!;
253
-
254
- const currTitleChain = [...titleChain, item.title];
255
- const currCodeChain = [...codeChain, item.code];
256
- const currModulesChain = item.modules ? [...modulesChain, item.modules] : modulesChain;
257
- const currRequiredModulesChain = item.requiredModules
258
- ? [...requiredModulesChain, item.requiredModules]
259
- : requiredModulesChain;
260
-
261
- if (!this._isUsableModulesChain(currModulesChain, currRequiredModulesChain, usableModules))
262
- continue;
263
-
264
- // 1. 자식 enqueue
265
- if ("children" in item) {
266
- for (const child of item.children) {
267
- queue.push({
268
- item: child,
269
- titleChain: currTitleChain,
270
- codeChain: currCodeChain,
271
- modulesChain: currModulesChain,
272
- requiredModulesChain: currRequiredModulesChain,
273
- });
274
- }
275
- }
276
-
277
- // 1. 직접 perms 처리
278
- if ("perms" in item) {
279
- for (const perm of item.perms ?? []) {
280
- results.push({
281
- titleChain: currTitleChain,
282
- codeChain: [...currCodeChain, perm],
283
- modulesChain: currModulesChain,
284
- });
285
- }
286
- }
287
-
288
- // 2. subPerms 처리
289
- if ("subPerms" in item) {
290
- for (const subPerm of item.subPerms ?? []) {
291
- // subPerm도 모듈 체크
292
- if (!this._isUsableModules(subPerm.modules, subPerm.requiredModules, usableModules))
293
- continue;
294
-
295
- for (const perm of subPerm.perms) {
296
- results.push({
297
- titleChain: currTitleChain,
298
- codeChain: [...currCodeChain, subPerm.code, perm],
299
- modulesChain: [...currModulesChain, subPerm.modules ?? []],
300
- });
301
- }
302
- }
303
- }
304
- }
305
-
306
- return results;
307
- }
308
-
309
- //-- Modules (private)
310
-
311
- private static _isUsableModulesChain<TModule>(
312
- modulesChain: TModule[][],
313
- requiredModulesChain: TModule[][],
314
- usableModules: TModule[] | undefined,
315
- ) {
316
- // 각 레벨의 modules (OR) 체크
317
- for (const modules of modulesChain) {
318
- if (!this._isUsableModules(modules, undefined, usableModules)) {
319
- return false;
320
- }
321
- }
322
-
323
- // 각 레벨의 requiredModules (AND) 체크
324
- for (const requiredModules of requiredModulesChain) {
325
- if (!this._isUsableModules(undefined, requiredModules, usableModules)) {
326
- return false;
327
- }
328
- }
329
-
330
- return true;
331
- }
332
-
333
- private static _isUsableModules<TModule>(
334
- modules: TModule[] | undefined,
335
- requiredModules: TModule[] | undefined,
336
- usableModules: TModule[] | undefined,
337
- ): boolean {
338
- // 1. requiredModules: 모두 있어야 함 (AND)
339
- if (requiredModules && requiredModules.length > 0) {
340
- if (!requiredModules.every((m) => usableModules?.includes(m))) {
341
- return false;
342
- }
343
- }
344
-
345
- // 2. modules: 하나라도 있으면 됨 (OR)
346
- return (
347
- modules == null || modules.length === 0 || modules.some((m) => usableModules?.includes(m))
348
- );
237
+ return getFlatPermissions(items, usableModules);
349
238
  }
350
239
  }
@@ -8,23 +8,23 @@ import {
8
8
  signal,
9
9
  type ComponentRef,
10
10
  } from "@angular/core";
11
- import { SdBusyContainerControl } from "../../ui/overlay/busy/sd-busy-container.control";
11
+ import { SdBusyContainer } from "../../ui/overlay/busy/sd-busy-container";
12
12
 
13
- export type TSdBusyType = "spinner" | "bar" | "cube";
13
+ export type SdBusyType = "spinner" | "bar" | "cube";
14
14
 
15
15
  @Injectable({ providedIn: "root" })
16
16
  export class SdBusyProvider {
17
17
  private readonly _appRef = inject(ApplicationRef);
18
18
  private readonly _envInjector = inject(EnvironmentInjector);
19
19
 
20
- type = signal<TSdBusyType>("bar");
20
+ type = signal<SdBusyType>("bar");
21
21
  globalBusyCount = signal(0);
22
22
 
23
- private _containerRef: ComponentRef<SdBusyContainerControl> | undefined;
23
+ private _containerRef: ComponentRef<SdBusyContainer> | undefined;
24
24
 
25
- get containerRef(): ComponentRef<SdBusyContainerControl> {
25
+ get containerRef(): ComponentRef<SdBusyContainer> {
26
26
  if (this._containerRef === undefined) {
27
- this._containerRef = createComponent(SdBusyContainerControl, {
27
+ this._containerRef = createComponent(SdBusyContainer, {
28
28
  environmentInjector: this._envInjector,
29
29
  });
30
30
  this._appRef.attachView(this._containerRef.hostView);
@@ -7,26 +7,26 @@ import {
7
7
  type Signal,
8
8
  type Type,
9
9
  } from "@angular/core";
10
- import type { TDirectiveInputSignals, TWithOptional } from "../utils/TDirectiveInputSignals";
10
+ import type { DirectiveInputSignals, WithOptional } from "../utils/directive-input-signals";
11
11
  import { SdBusyProvider } from "./sd-busy.provider";
12
12
  import { wait } from "@simplysm/core-common";
13
13
  import { jsPDF } from "jspdf";
14
14
  import * as htmlToImage from "html-to-image";
15
15
 
16
- export interface ISdPrint {
16
+ export interface SdPrint {
17
17
  initialized: Signal<boolean>;
18
18
  readonly _optionalPrintInputs?: string;
19
19
  }
20
20
 
21
- type TSdPrintOptionalKeys<T> = T extends { _optionalPrintInputs?: infer K extends string }
21
+ type SdPrintOptionalKeys<T> = T extends { _optionalPrintInputs?: infer K extends string }
22
22
  ? K
23
23
  : never;
24
24
 
25
- export interface ISdPrintInput<T, X extends keyof any = ""> {
25
+ export interface SdPrintInput<T, X extends keyof any = ""> {
26
26
  type: Type<T>;
27
- inputs: TWithOptional<
28
- Omit<TDirectiveInputSignals<T>, "_optionalPrintInputs" | X>,
29
- TSdPrintOptionalKeys<T> & keyof Omit<TDirectiveInputSignals<T>, "_optionalPrintInputs" | X>
27
+ inputs: WithOptional<
28
+ Omit<DirectiveInputSignals<T>, "_optionalPrintInputs" | X>,
29
+ SdPrintOptionalKeys<T> & keyof Omit<DirectiveInputSignals<T>, "_optionalPrintInputs" | X>
30
30
  >;
31
31
  }
32
32
 
@@ -35,8 +35,8 @@ export class SdPrintProvider {
35
35
  private readonly _appRef = inject(ApplicationRef);
36
36
  private readonly _sdBusy = inject(SdBusyProvider);
37
37
 
38
- async printAsync<T extends ISdPrint>(
39
- template: ISdPrintInput<T>,
38
+ async printAsync<T extends SdPrint>(
39
+ template: SdPrintInput<T>,
40
40
  options?: {
41
41
  size?: string;
42
42
  margin?: string;
@@ -90,8 +90,8 @@ export class SdPrintProvider {
90
90
  }
91
91
  }
92
92
 
93
- async getPdfBufferAsync<T extends ISdPrint>(
94
- template: ISdPrintInput<T>,
93
+ async getPdfBufferAsync<T extends SdPrint>(
94
+ template: SdPrintInput<T>,
95
95
  options?: {
96
96
  orientation?: "portrait" | "landscape";
97
97
  pageSize?: string;
@@ -4,21 +4,21 @@ import { obj, wait as waitUtil } from "@simplysm/core-common";
4
4
  import { SdServiceClientFactoryProvider } from "./sd-service-client-factory.provider";
5
5
  import "@simplysm/core-common";
6
6
 
7
- export interface ISharedDataBase<TKey extends string | number> {
7
+ export interface SharedDataBase<TKey extends string | number> {
8
8
  __valueKey: TKey;
9
9
  __searchText: string;
10
10
  __isHidden: boolean;
11
11
  __parentKey?: TKey;
12
12
  }
13
13
 
14
- export interface ISharedDataInfo<T extends ISharedDataBase<string | number>> {
14
+ export interface SharedDataInfo<T extends SharedDataBase<string | number>> {
15
15
  serviceKey: string;
16
16
  getter: (changeKeys?: (string | number)[]) => Promise<T[]>;
17
17
  filter?: unknown;
18
18
  orderBy?: (a: T, b: T) => number;
19
19
  }
20
20
 
21
- export interface SharedDataHandle<T extends ISharedDataBase<string | number>> {
21
+ export interface SharedDataHandle<T extends SharedDataBase<string | number>> {
22
22
  items: Signal<T[]>;
23
23
  get(key: T["__valueKey"] | undefined): T | undefined;
24
24
  }
@@ -28,8 +28,8 @@ export const SdSharedDataChangeEvent = defineEvent<
28
28
  (string | number)[] | undefined
29
29
  >("SdSharedDataChange");
30
30
 
31
- interface ISharedDataEntry<T extends ISharedDataBase<string | number>> {
32
- info: ISharedDataInfo<T>;
31
+ interface SharedDataEntry<T extends SharedDataBase<string | number>> {
32
+ info: SharedDataInfo<T>;
33
33
  itemsSignal: WritableSignal<T[]>;
34
34
  handle: SharedDataHandle<T>;
35
35
  listenerKey?: string;
@@ -38,17 +38,17 @@ interface ISharedDataEntry<T extends ISharedDataBase<string | number>> {
38
38
  }
39
39
 
40
40
  @Injectable()
41
- export abstract class SdSharedDataProvider<T extends Record<string, ISharedDataBase<string | number>>> {
41
+ export abstract class SdSharedDataProvider<T extends Record<string, SharedDataBase<string | number>>> {
42
42
  private readonly _clientFactory = inject(SdServiceClientFactoryProvider);
43
43
  private readonly _errorHandler = inject(ErrorHandler);
44
44
 
45
45
  readonly loadingCount: WritableSignal<number> = signal(0);
46
46
 
47
- private readonly _entries = new Map<string, ISharedDataEntry<any>>();
47
+ private readonly _entries = new Map<string, SharedDataEntry<any>>();
48
48
 
49
49
  abstract initialize(): void;
50
50
 
51
- register<K extends string & keyof T>(name: K, info: ISharedDataInfo<T[K]>): void {
51
+ register<K extends string & keyof T>(name: K, info: SharedDataInfo<T[K]>): void {
52
52
  const existing = this._entries.get(name as string);
53
53
  if (existing != null) {
54
54
  // 기존 리스너 키 초기화
@@ -107,8 +107,8 @@ export abstract class SdSharedDataProvider<T extends Record<string, ISharedDataB
107
107
  }
108
108
 
109
109
  const client = this._clientFactory.get(entry.info.serviceKey);
110
- await client.emitEvent(
111
- SdSharedDataChangeEvent,
110
+ const event = client.getEvent<typeof SdSharedDataChangeEvent>("SdSharedDataChange");
111
+ await event.emit(
112
112
  (item) => item.name === (name as string) && obj.equal(item.filter, entry.info.filter),
113
113
  changeKeys,
114
114
  );
@@ -118,7 +118,7 @@ export abstract class SdSharedDataProvider<T extends Record<string, ISharedDataB
118
118
  await waitUtil.until(() => this.loadingCount() <= 0);
119
119
  }
120
120
 
121
- private _loadAndListen(name: string, entry: ISharedDataEntry<any>): void {
121
+ private _loadAndListen(name: string, entry: SharedDataEntry<any>): void {
122
122
  entry.isLoading = true;
123
123
  this.loadingCount.update((v) => v + 1);
124
124
 
@@ -131,8 +131,8 @@ export abstract class SdSharedDataProvider<T extends Record<string, ISharedDataB
131
131
  // 이벤트 리스너 등록
132
132
  if (entry.listenerKey == null) {
133
133
  const client = this._clientFactory.get(entry.info.serviceKey);
134
- entry.listenerKey = await client.addListener(
135
- SdSharedDataChangeEvent,
134
+ const event = client.getEvent<typeof SdSharedDataChangeEvent>("SdSharedDataChange");
135
+ entry.listenerKey = await event.addListener(
136
136
  { name, filter: entry.info.filter },
137
137
  async (changeKeys) => {
138
138
  await this._onEvent(name, entry, changeKeys);
@@ -155,7 +155,7 @@ export abstract class SdSharedDataProvider<T extends Record<string, ISharedDataB
155
155
 
156
156
  private async _onEvent(
157
157
  name: string,
158
- entry: ISharedDataEntry<any>,
158
+ entry: SharedDataEntry<any>,
159
159
  changeKeys: (string | number)[] | undefined,
160
160
  ): Promise<void> {
161
161
  this.loadingCount.update((v) => v + 1);