@simplysm/angular 14.0.1 → 14.0.5

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 (456) hide show
  1. package/README.md +318 -0
  2. package/dist/core/commons.d.ts +2 -0
  3. package/dist/core/commons.d.ts.map +1 -0
  4. package/dist/core/commons.js +4 -0
  5. package/dist/core/directives/sd-events.directive.js +7 -7
  6. package/dist/core/directives/sd-item-of-template.directive.d.ts +14 -0
  7. package/dist/core/directives/sd-item-of-template.directive.d.ts.map +1 -0
  8. package/dist/core/directives/sd-item-of-template.directive.js +17 -0
  9. package/dist/core/directives/sd-router-link.directive.d.ts +19 -0
  10. package/dist/core/directives/sd-router-link.directive.d.ts.map +1 -0
  11. package/dist/core/directives/sd-router-link.directive.js +64 -0
  12. package/dist/core/directives/sd-typed-template.directive.d.ts +8 -0
  13. package/dist/core/directives/sd-typed-template.directive.d.ts.map +1 -0
  14. package/dist/core/directives/sd-typed-template.directive.js +17 -0
  15. package/dist/core/pipes/format.pipe.d.ts +9 -0
  16. package/dist/core/pipes/format.pipe.d.ts.map +1 -0
  17. package/dist/core/pipes/format.pipe.js +43 -0
  18. package/dist/core/plugins/commands/findTopOpenModalEl.d.ts +8 -0
  19. package/dist/core/plugins/commands/findTopOpenModalEl.d.ts.map +1 -0
  20. package/dist/core/plugins/commands/findTopOpenModalEl.js +21 -0
  21. package/dist/core/plugins/commands/sd-insert-command-event.plugin.d.ts.map +1 -1
  22. package/dist/core/plugins/commands/sd-insert-command-event.plugin.js +4 -0
  23. package/dist/core/plugins/commands/sd-refresh-command-event.plugin.d.ts.map +1 -1
  24. package/dist/core/plugins/commands/sd-refresh-command-event.plugin.js +4 -0
  25. package/dist/core/plugins/commands/sd-save-command-event.plugin.d.ts.map +1 -1
  26. package/dist/core/plugins/commands/sd-save-command-event.plugin.js +4 -0
  27. package/dist/core/plugins/events/sd-resize-event.plugin.d.ts.map +1 -1
  28. package/dist/core/plugins/events/sd-resize-event.plugin.js +0 -18
  29. package/dist/core/plugins/sd-global-error-handler.plugin.d.ts +1 -0
  30. package/dist/core/plugins/sd-global-error-handler.plugin.d.ts.map +1 -1
  31. package/dist/core/plugins/sd-global-error-handler.plugin.js +23 -13
  32. package/dist/core/provideSdAngular.d.ts +5 -0
  33. package/dist/core/provideSdAngular.d.ts.map +1 -0
  34. package/dist/core/provideSdAngular.js +127 -0
  35. package/dist/core/providers/sd-angular-config.provider.d.ts +7 -0
  36. package/dist/core/providers/sd-angular-config.provider.d.ts.map +1 -0
  37. package/dist/core/providers/sd-angular-config.provider.js +11 -0
  38. package/dist/core/providers/sd-app-structure.provider.d.ts +79 -0
  39. package/dist/core/providers/sd-app-structure.provider.d.ts.map +1 -0
  40. package/dist/core/providers/sd-app-structure.provider.js +278 -0
  41. package/dist/core/providers/sd-file-dialog.provider.d.ts +8 -0
  42. package/dist/core/providers/sd-file-dialog.provider.d.ts.map +1 -0
  43. package/dist/core/providers/sd-file-dialog.provider.js +49 -0
  44. package/dist/core/providers/sd-local-storage.provider.d.ts +10 -0
  45. package/dist/core/providers/sd-local-storage.provider.d.ts.map +1 -0
  46. package/dist/core/providers/sd-local-storage.provider.js +24 -0
  47. package/dist/core/providers/sd-navigate-window.provider.d.ts +9 -0
  48. package/dist/core/providers/sd-navigate-window.provider.d.ts.map +1 -0
  49. package/dist/core/providers/sd-navigate-window.provider.js +33 -0
  50. package/dist/core/providers/sd-print.provider.d.ts +26 -0
  51. package/dist/core/providers/sd-print.provider.d.ts.map +1 -0
  52. package/dist/core/providers/sd-print.provider.js +142 -0
  53. package/dist/core/providers/sd-service-client-factory.provider.d.ts +19 -0
  54. package/dist/core/providers/sd-service-client-factory.provider.d.ts.map +1 -0
  55. package/dist/core/providers/sd-service-client-factory.provider.js +86 -0
  56. package/dist/core/providers/sd-shared-data.provider.d.ts +36 -0
  57. package/dist/core/providers/sd-shared-data.provider.d.ts.map +1 -0
  58. package/dist/core/providers/sd-shared-data.provider.js +119 -0
  59. package/dist/core/providers/sd-system-config.provider.d.ts +13 -0
  60. package/dist/core/providers/sd-system-config.provider.d.ts.map +1 -0
  61. package/dist/core/providers/sd-system-config.provider.js +29 -0
  62. package/dist/core/providers/sd-system-log.provider.d.ts +8 -0
  63. package/dist/core/providers/sd-system-log.provider.d.ts.map +1 -0
  64. package/dist/core/providers/sd-system-log.provider.js +23 -0
  65. package/dist/core/providers/sd-theme-provider.js +1 -1
  66. package/dist/core/utils/TDirectiveInputSignals.d.ts +29 -0
  67. package/dist/core/utils/TDirectiveInputSignals.d.ts.map +1 -0
  68. package/dist/core/utils/TDirectiveInputSignals.js +1 -0
  69. package/dist/core/utils/setups/setupCanDeactivate.d.ts +2 -0
  70. package/dist/core/utils/setups/setupCanDeactivate.d.ts.map +1 -0
  71. package/dist/core/utils/setups/setupCanDeactivate.js +28 -0
  72. package/dist/core/utils/setups/setupModelHook.d.ts +3 -0
  73. package/dist/core/utils/setups/setupModelHook.d.ts.map +1 -0
  74. package/dist/core/utils/setups/setupModelHook.js +18 -0
  75. package/dist/core/utils/useCurrentPageCodeSignal.d.ts +3 -0
  76. package/dist/core/utils/useCurrentPageCodeSignal.d.ts.map +1 -0
  77. package/dist/core/utils/useCurrentPageCodeSignal.js +13 -0
  78. package/dist/core/utils/useExpandingManager.d.ts +23 -0
  79. package/dist/core/utils/useExpandingManager.d.ts.map +1 -0
  80. package/dist/core/utils/useExpandingManager.js +86 -0
  81. package/dist/core/utils/useFullPageCodeSignal.d.ts +3 -0
  82. package/dist/core/utils/useFullPageCodeSignal.d.ts.map +1 -0
  83. package/dist/core/utils/useFullPageCodeSignal.js +13 -0
  84. package/dist/core/utils/useSdSystemConfigResource.d.ts +13 -0
  85. package/dist/core/utils/useSdSystemConfigResource.d.ts.map +1 -0
  86. package/dist/core/utils/useSdSystemConfigResource.js +31 -0
  87. package/dist/core/utils/useSelectionManager.d.ts +18 -0
  88. package/dist/core/utils/useSelectionManager.d.ts.map +1 -0
  89. package/dist/core/utils/useSelectionManager.js +89 -0
  90. package/dist/core/utils/useSortingManager.d.ts +17 -0
  91. package/dist/core/utils/useSortingManager.d.ts.map +1 -0
  92. package/dist/core/utils/useSortingManager.js +81 -0
  93. package/dist/core/utils/useViewTitleSignal.d.ts +3 -0
  94. package/dist/core/utils/useViewTitleSignal.d.ts.map +1 -0
  95. package/dist/core/utils/useViewTitleSignal.js +17 -0
  96. package/dist/core/utils/useViewTypeSignal.d.ts +4 -0
  97. package/dist/core/utils/useViewTypeSignal.d.ts.map +1 -0
  98. package/dist/core/utils/useViewTypeSignal.js +23 -0
  99. package/dist/index.d.ts +95 -0
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +115 -0
  102. package/dist/styles.css +1462 -722
  103. package/dist/ui/data/list/sd-list-item.control.d.ts +18 -0
  104. package/dist/ui/data/list/sd-list-item.control.d.ts.map +1 -0
  105. package/dist/ui/data/list/sd-list-item.control.js +130 -0
  106. package/dist/ui/data/list/sd-list.control.d.ts +7 -0
  107. package/dist/ui/data/list/sd-list.control.d.ts.map +1 -0
  108. package/dist/ui/data/list/sd-list.control.js +22 -0
  109. package/dist/ui/data/sheet/sd-sheet-column.directive.d.ts +18 -0
  110. package/dist/ui/data/sheet/sd-sheet-column.directive.d.ts.map +1 -0
  111. package/dist/ui/data/sheet/sd-sheet-column.directive.js +30 -0
  112. package/dist/ui/data/sheet/sd-sheet-config.modal.d.ts +39 -0
  113. package/dist/ui/data/sheet/sd-sheet-config.modal.d.ts.map +1 -0
  114. package/dist/ui/data/sheet/sd-sheet-config.modal.js +258 -0
  115. package/dist/ui/data/sheet/sd-sheet.control.d.ts +154 -0
  116. package/dist/ui/data/sheet/sd-sheet.control.d.ts.map +1 -0
  117. package/dist/ui/data/sheet/sd-sheet.control.js +846 -0
  118. package/dist/ui/data/sheet/types.d.ts +32 -0
  119. package/dist/ui/data/sheet/types.d.ts.map +1 -0
  120. package/dist/ui/data/sheet/types.js +1 -0
  121. package/dist/ui/data/sheet/useSheetCellAgent.d.ts +21 -0
  122. package/dist/ui/data/sheet/useSheetCellAgent.d.ts.map +1 -0
  123. package/dist/ui/data/sheet/useSheetCellAgent.js +245 -0
  124. package/dist/ui/data/sheet/useSheetColumnFixing.d.ts +9 -0
  125. package/dist/ui/data/sheet/useSheetColumnFixing.d.ts.map +1 -0
  126. package/dist/ui/data/sheet/useSheetColumnFixing.js +29 -0
  127. package/dist/ui/data/sheet/useSheetDomAccessor.d.ts +11 -0
  128. package/dist/ui/data/sheet/useSheetDomAccessor.d.ts.map +1 -0
  129. package/dist/ui/data/sheet/useSheetDomAccessor.js +55 -0
  130. package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts +14 -0
  131. package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts.map +1 -0
  132. package/dist/ui/data/sheet/useSheetLayoutEngine.js +126 -0
  133. package/dist/ui/form/button/sd-additional-button.control.d.ts +8 -0
  134. package/dist/ui/form/button/sd-additional-button.control.d.ts.map +1 -0
  135. package/dist/ui/form/button/sd-additional-button.control.js +38 -0
  136. package/dist/ui/form/button/sd-anchor.control.d.ts +8 -0
  137. package/dist/ui/form/button/sd-anchor.control.d.ts.map +1 -0
  138. package/dist/ui/form/button/sd-anchor.control.js +25 -0
  139. package/dist/ui/form/button/sd-button.control.d.ts +14 -0
  140. package/dist/ui/form/button/sd-button.control.d.ts.map +1 -0
  141. package/dist/ui/form/button/sd-button.control.js +49 -0
  142. package/dist/ui/form/button/sd-modal-select-button.control.d.ts +46 -0
  143. package/dist/ui/form/button/sd-modal-select-button.control.d.ts.map +1 -0
  144. package/dist/ui/form/button/sd-modal-select-button.control.js +149 -0
  145. package/dist/ui/form/checkbox/sd-checkbox-group-item.control.d.ts +12 -0
  146. package/dist/ui/form/checkbox/sd-checkbox-group-item.control.d.ts.map +1 -0
  147. package/dist/ui/form/checkbox/sd-checkbox-group-item.control.js +53 -0
  148. package/dist/ui/form/checkbox/sd-checkbox-group.control.d.ts +8 -0
  149. package/dist/ui/form/checkbox/sd-checkbox-group.control.d.ts.map +1 -0
  150. package/dist/ui/form/checkbox/sd-checkbox-group.control.js +26 -0
  151. package/dist/ui/form/checkbox/sd-checkbox.control.d.ts +19 -0
  152. package/dist/ui/form/checkbox/sd-checkbox.control.d.ts.map +1 -0
  153. package/dist/ui/form/checkbox/sd-checkbox.control.js +103 -0
  154. package/dist/ui/form/checkbox/sd-switch.control.d.ts +14 -0
  155. package/dist/ui/form/checkbox/sd-switch.control.d.ts.map +1 -0
  156. package/dist/ui/form/checkbox/sd-switch.control.js +54 -0
  157. package/dist/ui/form/choice/sd-state-preset.control.d.ts +24 -0
  158. package/dist/ui/form/choice/sd-state-preset.control.d.ts.map +1 -0
  159. package/dist/ui/form/choice/sd-state-preset.control.js +134 -0
  160. package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts +35 -0
  161. package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts.map +1 -0
  162. package/dist/ui/form/editor/sd-tiptap-editor.control.js +480 -0
  163. package/dist/ui/form/input/sd-date-range.picker.d.ts +13 -0
  164. package/dist/ui/form/input/sd-date-range.picker.d.ts.map +1 -0
  165. package/dist/ui/form/input/sd-date-range.picker.js +125 -0
  166. package/dist/ui/form/input/sd-numpad.control.d.ts +18 -0
  167. package/dist/ui/form/input/sd-numpad.control.d.ts.map +1 -0
  168. package/dist/ui/form/input/sd-numpad.control.js +241 -0
  169. package/dist/ui/form/input/sd-range.control.d.ts +13 -0
  170. package/dist/ui/form/input/sd-range.control.d.ts.map +1 -0
  171. package/dist/ui/form/input/sd-range.control.js +53 -0
  172. package/dist/ui/form/input/sd-textarea.control.d.ts +23 -0
  173. package/dist/ui/form/input/sd-textarea.control.d.ts.map +1 -0
  174. package/dist/ui/form/input/sd-textarea.control.js +132 -0
  175. package/dist/ui/form/input/sd-textfield-type-handlers.d.ts +46 -0
  176. package/dist/ui/form/input/sd-textfield-type-handlers.d.ts.map +1 -0
  177. package/dist/ui/form/input/sd-textfield-type-handlers.js +336 -0
  178. package/dist/ui/form/input/sd-textfield.control.d.ts +39 -0
  179. package/dist/ui/form/input/sd-textfield.control.d.ts.map +1 -0
  180. package/dist/ui/form/input/sd-textfield.control.js +211 -0
  181. package/dist/ui/form/sd-form.control.d.ts +13 -0
  182. package/dist/ui/form/sd-form.control.d.ts.map +1 -0
  183. package/dist/ui/form/sd-form.control.js +60 -0
  184. package/dist/ui/form/select/sd-select-button.control.d.ts +7 -0
  185. package/dist/ui/form/select/sd-select-button.control.d.ts.map +1 -0
  186. package/dist/ui/form/select/sd-select-button.control.js +25 -0
  187. package/dist/ui/form/select/sd-select-item.control.d.ts +18 -0
  188. package/dist/ui/form/select/sd-select-item.control.d.ts.map +1 -0
  189. package/dist/ui/form/select/sd-select-item.control.js +103 -0
  190. package/dist/ui/form/select/sd-select.control.d.ts +45 -0
  191. package/dist/ui/form/select/sd-select.control.d.ts.map +1 -0
  192. package/dist/ui/form/select/sd-select.control.js +430 -0
  193. package/dist/ui/layout/dock/sd-dock-container.control.d.ts +12 -0
  194. package/dist/ui/layout/dock/sd-dock-container.control.d.ts.map +1 -0
  195. package/dist/ui/layout/dock/sd-dock-container.control.js +96 -0
  196. package/dist/ui/layout/dock/sd-dock.control.d.ts +17 -0
  197. package/dist/ui/layout/dock/sd-dock.control.d.ts.map +1 -0
  198. package/dist/ui/layout/dock/sd-dock.control.js +111 -0
  199. package/dist/ui/layout/kanban/sd-kanban-board.control.d.ts +24 -0
  200. package/dist/ui/layout/kanban/sd-kanban-board.control.d.ts.map +1 -0
  201. package/dist/ui/layout/kanban/sd-kanban-board.control.js +37 -0
  202. package/dist/ui/layout/kanban/sd-kanban-lane.control.d.ts +29 -0
  203. package/dist/ui/layout/kanban/sd-kanban-lane.control.d.ts.map +1 -0
  204. package/dist/ui/layout/kanban/sd-kanban-lane.control.js +223 -0
  205. package/dist/ui/layout/kanban/sd-kanban.control.d.ts +32 -0
  206. package/dist/ui/layout/kanban/sd-kanban.control.d.ts.map +1 -0
  207. package/dist/ui/layout/kanban/sd-kanban.control.js +147 -0
  208. package/dist/ui/layout/sd-card.directive.d.ts +6 -0
  209. package/dist/ui/layout/sd-card.directive.d.ts.map +1 -0
  210. package/dist/ui/layout/sd-card.directive.js +16 -0
  211. package/dist/ui/layout/sd-gap.control.d.ts +13 -0
  212. package/dist/ui/layout/sd-gap.control.d.ts.map +1 -0
  213. package/dist/ui/layout/sd-gap.control.js +44 -0
  214. package/dist/ui/layout/sd-pane.directive.d.ts +6 -0
  215. package/dist/ui/layout/sd-pane.directive.d.ts.map +1 -0
  216. package/dist/ui/layout/sd-pane.directive.js +17 -0
  217. package/dist/ui/layout/view/sd-view-item.control.d.ts +9 -0
  218. package/dist/ui/layout/view/sd-view-item.control.d.ts.map +1 -0
  219. package/dist/ui/layout/view/sd-view-item.control.js +25 -0
  220. package/dist/ui/layout/view/sd-view.control.d.ts +8 -0
  221. package/dist/ui/layout/view/sd-view.control.d.ts.map +1 -0
  222. package/dist/ui/layout/view/sd-view.control.js +23 -0
  223. package/dist/ui/navigation/collapse/sd-collapse-icon.control.d.ts +13 -0
  224. package/dist/ui/navigation/collapse/sd-collapse-icon.control.d.ts.map +1 -0
  225. package/dist/ui/navigation/collapse/sd-collapse-icon.control.js +33 -0
  226. package/dist/ui/navigation/collapse/sd-collapse.control.d.ts +14 -0
  227. package/dist/ui/navigation/collapse/sd-collapse.control.d.ts.map +1 -0
  228. package/dist/ui/navigation/collapse/sd-collapse.control.js +59 -0
  229. package/dist/ui/navigation/menu-utils.d.ts +13 -0
  230. package/dist/ui/navigation/menu-utils.d.ts.map +1 -0
  231. package/dist/ui/navigation/menu-utils.js +18 -0
  232. package/dist/ui/navigation/pagination/sd-pagination.control.d.ts +24 -0
  233. package/dist/ui/navigation/pagination/sd-pagination.control.d.ts.map +1 -0
  234. package/dist/ui/navigation/pagination/sd-pagination.control.js +137 -0
  235. package/dist/ui/navigation/sidebar/sd-sidebar-container.control.d.ts +11 -0
  236. package/dist/ui/navigation/sidebar/sd-sidebar-container.control.d.ts.map +1 -0
  237. package/dist/ui/navigation/sidebar/sd-sidebar-container.control.js +46 -0
  238. package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts +28 -0
  239. package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts.map +1 -0
  240. package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.js +159 -0
  241. package/dist/ui/navigation/sidebar/sd-sidebar-user.control.d.ts +16 -0
  242. package/dist/ui/navigation/sidebar/sd-sidebar-user.control.d.ts.map +1 -0
  243. package/dist/ui/navigation/sidebar/sd-sidebar-user.control.js +109 -0
  244. package/dist/ui/navigation/sidebar/sd-sidebar.control.d.ts +8 -0
  245. package/dist/ui/navigation/sidebar/sd-sidebar.control.d.ts.map +1 -0
  246. package/dist/ui/navigation/sidebar/sd-sidebar.control.js +24 -0
  247. package/dist/ui/navigation/tab/sd-tab-item.control.d.ts +10 -0
  248. package/dist/ui/navigation/tab/sd-tab-item.control.d.ts.map +1 -0
  249. package/dist/ui/navigation/tab/sd-tab-item.control.js +31 -0
  250. package/dist/ui/navigation/tab/sd-tab.control.d.ts +7 -0
  251. package/dist/ui/navigation/tab/sd-tab.control.d.ts.map +1 -0
  252. package/dist/ui/navigation/tab/sd-tab.control.js +18 -0
  253. package/dist/ui/navigation/tab/sd-tabview-item.control.d.ts +10 -0
  254. package/dist/ui/navigation/tab/sd-tabview-item.control.d.ts.map +1 -0
  255. package/dist/ui/navigation/tab/sd-tabview-item.control.js +26 -0
  256. package/dist/ui/navigation/tab/sd-tabview.control.d.ts +9 -0
  257. package/dist/ui/navigation/tab/sd-tabview.control.d.ts.map +1 -0
  258. package/dist/ui/navigation/tab/sd-tabview.control.js +67 -0
  259. package/dist/ui/navigation/topbar/sd-topbar-container.control.d.ts +6 -0
  260. package/dist/ui/navigation/topbar/sd-topbar-container.control.d.ts.map +1 -0
  261. package/dist/ui/navigation/topbar/sd-topbar-container.control.js +17 -0
  262. package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts +29 -0
  263. package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts.map +1 -0
  264. package/dist/ui/navigation/topbar/sd-topbar-menu.control.js +245 -0
  265. package/dist/ui/navigation/topbar/sd-topbar-user.control.d.ts +13 -0
  266. package/dist/ui/navigation/topbar/sd-topbar-user.control.d.ts.map +1 -0
  267. package/dist/ui/navigation/topbar/sd-topbar-user.control.js +77 -0
  268. package/dist/ui/navigation/topbar/sd-topbar.control.d.ts +12 -0
  269. package/dist/ui/navigation/topbar/sd-topbar.control.d.ts.map +1 -0
  270. package/dist/ui/navigation/topbar/sd-topbar.control.js +59 -0
  271. package/dist/ui/overlay/busy/sd-busy-container.control.d.ts +14 -0
  272. package/dist/ui/overlay/busy/sd-busy-container.control.d.ts.map +1 -0
  273. package/dist/ui/overlay/busy/sd-busy-container.control.js +119 -0
  274. package/dist/ui/overlay/busy/sd-busy.provider.d.ts +16 -0
  275. package/dist/ui/overlay/busy/sd-busy.provider.d.ts.map +1 -0
  276. package/dist/ui/overlay/busy/sd-busy.provider.js +43 -0
  277. package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts +11 -0
  278. package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts.map +1 -0
  279. package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.js +43 -0
  280. package/dist/ui/overlay/dropdown/sd-dropdown.control.d.ts +27 -0
  281. package/dist/ui/overlay/dropdown/sd-dropdown.control.d.ts.map +1 -0
  282. package/dist/ui/overlay/dropdown/sd-dropdown.control.js +284 -0
  283. package/dist/ui/overlay/modal/sd-confirm-modal.control.d.ts +17 -0
  284. package/dist/ui/overlay/modal/sd-confirm-modal.control.d.ts.map +1 -0
  285. package/dist/ui/overlay/modal/sd-confirm-modal.control.js +51 -0
  286. package/dist/ui/overlay/modal/sd-modal.control.d.ts +51 -0
  287. package/dist/ui/overlay/modal/sd-modal.control.d.ts.map +1 -0
  288. package/dist/ui/overlay/modal/sd-modal.control.js +411 -0
  289. package/dist/ui/overlay/modal/sd-modal.provider.d.ts +65 -0
  290. package/dist/ui/overlay/modal/sd-modal.provider.d.ts.map +1 -0
  291. package/dist/ui/overlay/modal/sd-modal.provider.js +146 -0
  292. package/dist/ui/overlay/modal/sd-prompt-modal.control.d.ts +19 -0
  293. package/dist/ui/overlay/modal/sd-prompt-modal.control.d.ts.map +1 -0
  294. package/dist/ui/overlay/modal/sd-prompt-modal.control.js +71 -0
  295. package/dist/ui/overlay/toast/sd-toast-container.control.d.ts +7 -0
  296. package/dist/ui/overlay/toast/sd-toast-container.control.d.ts.map +1 -0
  297. package/dist/ui/overlay/toast/sd-toast-container.control.js +20 -0
  298. package/dist/ui/overlay/toast/sd-toast.control.d.ts +14 -0
  299. package/dist/ui/overlay/toast/sd-toast.control.d.ts.map +1 -0
  300. package/dist/ui/overlay/toast/sd-toast.control.js +79 -0
  301. package/dist/ui/overlay/toast/sd-toast.provider.d.ts +45 -0
  302. package/dist/ui/overlay/toast/sd-toast.provider.d.ts.map +1 -0
  303. package/dist/ui/overlay/toast/sd-toast.provider.js +219 -0
  304. package/dist/ui/visual/sd-barcode.control.d.ts +11 -0
  305. package/dist/ui/visual/sd-barcode.control.d.ts.map +1 -0
  306. package/dist/ui/visual/sd-barcode.control.js +35 -0
  307. package/dist/ui/visual/sd-calendar.control.d.ts +20 -0
  308. package/dist/ui/visual/sd-calendar.control.d.ts.map +1 -0
  309. package/dist/ui/visual/sd-calendar.control.js +189 -0
  310. package/dist/ui/visual/sd-echarts.control.d.ts +13 -0
  311. package/dist/ui/visual/sd-echarts.control.d.ts.map +1 -0
  312. package/dist/ui/visual/sd-echarts.control.js +55 -0
  313. package/dist/ui/visual/sd-label.control.d.ts +9 -0
  314. package/dist/ui/visual/sd-label.control.d.ts.map +1 -0
  315. package/dist/ui/visual/sd-label.control.js +27 -0
  316. package/dist/ui/visual/sd-note.control.d.ts +9 -0
  317. package/dist/ui/visual/sd-note.control.d.ts.map +1 -0
  318. package/dist/ui/visual/sd-note.control.js +26 -0
  319. package/dist/ui/visual/sd-progress.control.d.ts +10 -0
  320. package/dist/ui/visual/sd-progress.control.d.ts.map +1 -0
  321. package/dist/ui/visual/sd-progress.control.js +38 -0
  322. package/docs/commons-and-configuration.md +34 -0
  323. package/docs/data-display-components.md +146 -0
  324. package/docs/directives.md +158 -0
  325. package/docs/event-plugins.md +109 -0
  326. package/docs/form-components.md +362 -0
  327. package/docs/hooks-and-utilities.md +175 -0
  328. package/docs/layout-components.md +140 -0
  329. package/docs/navigation-components.md +200 -0
  330. package/docs/overlay-components.md +193 -0
  331. package/docs/pipes.md +25 -0
  332. package/docs/providers.md +448 -0
  333. package/docs/setup-functions.md +66 -0
  334. package/docs/visual-components.md +89 -0
  335. package/package.json +37 -18
  336. package/scss/commons/_mixins.scss +34 -0
  337. package/scss/commons/_styles.scss +27 -68
  338. package/scss/commons/_variables.scss +7 -0
  339. package/scss/controls/_card.scss +29 -0
  340. package/scss/controls/_flex.scss +38 -0
  341. package/scss/controls/_form-box.scss +49 -0
  342. package/scss/controls/_form-table.scss +45 -0
  343. package/scss/controls/_grid.scss +36 -0
  344. package/scss/controls/_table.scss +99 -0
  345. package/scss/styles.scss +7 -0
  346. package/scss/themes/_variables-dark.scss +2 -0
  347. package/src/core/commons.ts +4 -0
  348. package/src/core/directives/sd-events.directive.ts +7 -7
  349. package/src/core/directives/sd-item-of-template.directive.ts +23 -0
  350. package/src/core/directives/sd-router-link.directive.ts +81 -0
  351. package/src/core/directives/sd-typed-template.directive.ts +16 -0
  352. package/src/core/pipes/format.pipe.ts +37 -0
  353. package/src/core/plugins/commands/findTopOpenModalEl.ts +23 -0
  354. package/src/core/plugins/commands/sd-insert-command-event.plugin.ts +4 -0
  355. package/src/core/plugins/commands/sd-refresh-command-event.plugin.ts +4 -0
  356. package/src/core/plugins/commands/sd-save-command-event.plugin.ts +4 -0
  357. package/src/core/plugins/events/sd-resize-event.plugin.ts +0 -22
  358. package/src/core/plugins/sd-global-error-handler.plugin.ts +22 -13
  359. package/src/core/provideSdAngular.ts +154 -0
  360. package/src/core/providers/sd-angular-config.provider.ts +6 -0
  361. package/src/core/providers/sd-app-structure.provider.ts +446 -0
  362. package/src/core/providers/sd-file-dialog.provider.ts +49 -0
  363. package/src/core/providers/sd-local-storage.provider.ts +21 -0
  364. package/src/core/providers/sd-navigate-window.provider.ts +44 -0
  365. package/src/core/providers/sd-print.provider.ts +189 -0
  366. package/src/core/providers/sd-service-client-factory.provider.ts +98 -0
  367. package/src/core/providers/sd-shared-data.provider.ts +179 -0
  368. package/src/core/providers/sd-system-config.provider.ts +28 -0
  369. package/src/core/providers/sd-system-log.provider.ts +19 -0
  370. package/src/core/providers/sd-theme-provider.ts +1 -1
  371. package/src/core/utils/TDirectiveInputSignals.ts +34 -0
  372. package/src/core/utils/setups/setupCanDeactivate.ts +34 -0
  373. package/src/core/utils/setups/setupModelHook.ts +26 -0
  374. package/src/core/utils/useCurrentPageCodeSignal.ts +16 -0
  375. package/src/core/utils/useExpandingManager.ts +117 -0
  376. package/src/core/utils/useFullPageCodeSignal.ts +24 -0
  377. package/src/core/utils/useSdSystemConfigResource.ts +36 -0
  378. package/src/core/utils/useSelectionManager.ts +104 -0
  379. package/src/core/utils/useSortingManager.ts +89 -0
  380. package/src/core/utils/useViewTitleSignal.ts +21 -0
  381. package/src/core/utils/useViewTypeSignal.ts +33 -0
  382. package/src/index.ts +209 -0
  383. package/src/scss.d.ts +1 -0
  384. package/src/ui/data/list/sd-list-item.control.ts +143 -0
  385. package/src/ui/data/list/sd-list.control.ts +41 -0
  386. package/src/ui/data/sheet/sd-sheet-column.directive.ts +26 -0
  387. package/src/ui/data/sheet/sd-sheet-config.modal.ts +252 -0
  388. package/src/ui/data/sheet/sd-sheet.control.ts +766 -0
  389. package/src/ui/data/sheet/types.ts +37 -0
  390. package/src/ui/data/sheet/useSheetCellAgent.ts +267 -0
  391. package/src/ui/data/sheet/useSheetColumnFixing.ts +37 -0
  392. package/src/ui/data/sheet/useSheetDomAccessor.ts +62 -0
  393. package/src/ui/data/sheet/useSheetLayoutEngine.ts +143 -0
  394. package/src/ui/form/button/sd-additional-button.control.ts +100 -0
  395. package/src/ui/form/button/sd-anchor.control.ts +67 -0
  396. package/src/ui/form/button/sd-button.control.ts +209 -0
  397. package/src/ui/form/button/sd-modal-select-button.control.ts +237 -0
  398. package/src/ui/form/checkbox/sd-checkbox-group-item.control.ts +51 -0
  399. package/src/ui/form/checkbox/sd-checkbox-group.control.ts +24 -0
  400. package/src/ui/form/checkbox/sd-checkbox.control.ts +305 -0
  401. package/src/ui/form/checkbox/sd-switch.control.ts +145 -0
  402. package/src/ui/form/choice/sd-state-preset.control.ts +173 -0
  403. package/src/ui/form/editor/sd-tiptap-editor.control.ts +474 -0
  404. package/src/ui/form/input/sd-date-range.picker.ts +98 -0
  405. package/src/ui/form/input/sd-numpad.control.ts +178 -0
  406. package/src/ui/form/input/sd-range.control.ts +59 -0
  407. package/src/ui/form/input/sd-textarea.control.ts +221 -0
  408. package/src/ui/form/input/sd-textfield-type-handlers.ts +445 -0
  409. package/src/ui/form/input/sd-textfield.control.ts +395 -0
  410. package/src/ui/form/sd-form.control.ts +52 -0
  411. package/src/ui/form/select/sd-select-button.control.ts +43 -0
  412. package/src/ui/form/select/sd-select-item.control.ts +143 -0
  413. package/src/ui/form/select/sd-select.control.ts +412 -0
  414. package/src/ui/layout/dock/sd-dock-container.control.ts +100 -0
  415. package/src/ui/layout/dock/sd-dock.control.ts +171 -0
  416. package/src/ui/layout/kanban/sd-kanban-board.control.ts +74 -0
  417. package/src/ui/layout/kanban/sd-kanban-lane.control.ts +210 -0
  418. package/src/ui/layout/kanban/sd-kanban.control.ts +227 -0
  419. package/src/ui/layout/sd-card.directive.ts +10 -0
  420. package/src/ui/layout/sd-gap.control.ts +63 -0
  421. package/src/ui/layout/sd-pane.directive.ts +11 -0
  422. package/src/ui/layout/view/sd-view-item.control.ts +45 -0
  423. package/src/ui/layout/view/sd-view.control.ts +31 -0
  424. package/src/ui/navigation/collapse/sd-collapse-icon.control.ts +51 -0
  425. package/src/ui/navigation/collapse/sd-collapse.control.ts +75 -0
  426. package/src/ui/navigation/menu-utils.ts +36 -0
  427. package/src/ui/navigation/pagination/sd-pagination.control.ts +125 -0
  428. package/src/ui/navigation/sidebar/sd-sidebar-container.control.ts +92 -0
  429. package/src/ui/navigation/sidebar/sd-sidebar-menu.control.ts +129 -0
  430. package/src/ui/navigation/sidebar/sd-sidebar-user.control.ts +84 -0
  431. package/src/ui/navigation/sidebar/sd-sidebar.control.ts +67 -0
  432. package/src/ui/navigation/tab/sd-tab-item.control.ts +55 -0
  433. package/src/ui/navigation/tab/sd-tab.control.ts +25 -0
  434. package/src/ui/navigation/tab/sd-tabview-item.control.ts +48 -0
  435. package/src/ui/navigation/tab/sd-tabview.control.ts +39 -0
  436. package/src/ui/navigation/topbar/sd-topbar-container.control.ts +22 -0
  437. package/src/ui/navigation/topbar/sd-topbar-menu.control.ts +165 -0
  438. package/src/ui/navigation/topbar/sd-topbar-user.control.ts +58 -0
  439. package/src/ui/navigation/topbar/sd-topbar.control.ts +94 -0
  440. package/src/ui/overlay/busy/sd-busy-container.control.ts +243 -0
  441. package/src/ui/overlay/busy/sd-busy.provider.ts +55 -0
  442. package/src/ui/overlay/dropdown/sd-dropdown-popup.control.ts +110 -0
  443. package/src/ui/overlay/dropdown/sd-dropdown.control.ts +310 -0
  444. package/src/ui/overlay/modal/sd-confirm-modal.control.ts +66 -0
  445. package/src/ui/overlay/modal/sd-modal.control.ts +362 -0
  446. package/src/ui/overlay/modal/sd-modal.provider.ts +216 -0
  447. package/src/ui/overlay/modal/sd-prompt-modal.control.ts +92 -0
  448. package/src/ui/overlay/toast/sd-toast-container.control.ts +58 -0
  449. package/src/ui/overlay/toast/sd-toast.control.ts +123 -0
  450. package/src/ui/overlay/toast/sd-toast.provider.ts +302 -0
  451. package/src/ui/visual/sd-barcode.control.ts +62 -0
  452. package/src/ui/visual/sd-calendar.control.ts +188 -0
  453. package/src/ui/visual/sd-echarts.control.ts +73 -0
  454. package/src/ui/visual/sd-label.control.ts +66 -0
  455. package/src/ui/visual/sd-note.control.ts +66 -0
  456. package/src/ui/visual/sd-progress.control.ts +88 -0
package/README.md ADDED
@@ -0,0 +1,318 @@
1
+ # @simplysm/angular
2
+
3
+ Simplysm Angular 21 UI component library. Provides configuration, providers, directives, pipes, setup functions, hooks, layout components, form controls, navigation, data display, overlays, and visual components -- all designed for zoneless Angular with signal-based APIs.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @simplysm/angular
9
+ ```
10
+
11
+ ## API Overview
12
+
13
+ ### Commons & Configuration
14
+
15
+ | API | Type | Description |
16
+ |-----|------|-------------|
17
+ | `provideSdAngular` | function | Bootstrap function that registers all core providers, event plugins, error handler, and zoneless change detection |
18
+ | `TXT_CHANGE_IGNORE_CONFIRM` | const string | Confirmation message text for discarding unsaved changes |
19
+
20
+ -> See [docs/commons-and-configuration.md](./docs/commons-and-configuration.md) for details.
21
+
22
+ ### Providers / Services
23
+
24
+ | API | Type | Description |
25
+ |-----|------|-------------|
26
+ | `SdThemeProvider` | Injectable | Manages dark/light theme toggle via signal |
27
+ | `SdAngularConfigProvider` | Injectable | Holds client application name |
28
+ | `SdSystemLogProvider` | Injectable | Writes log messages to console and optional custom handler |
29
+ | `SdNavigateWindowProvider` | Injectable | Opens navigation links in new windows/tabs |
30
+ | `SdLocalStorageProvider` | Injectable | Typed localStorage wrapper scoped by client name |
31
+ | `SdSystemConfigProvider` | Injectable | Persists/retrieves system configuration (localStorage or custom backend) |
32
+ | `SdFileDialogProvider` | Injectable | Opens native file picker dialogs |
33
+ | `SdServiceClientFactoryProvider` | Injectable | Manages WebSocket service client connections |
34
+ | `SdAppStructureProvider` | Injectable (abstract) | Provides app menu/permission structure |
35
+ | `SdAppStructureUtils` | abstract class | Static utilities for menu/permission computation |
36
+ | `SdSharedDataProvider` | Injectable (abstract) | Real-time shared data with event-driven partial updates |
37
+ | `SdModalProvider` | Injectable | Programmatically creates and shows modal dialogs |
38
+ | `SdActivatedModalProvider` | Injectable | Injected inside a modal to access modal context |
39
+ | `SdToastProvider` | Injectable | Shows toast notifications with severity levels |
40
+ | `SdBusyProvider` | Injectable | Manages global busy/loading overlay |
41
+ | `SdPrintProvider` | Injectable | Prints components or generates PDF buffers |
42
+
43
+ -> See [docs/providers.md](./docs/providers.md) for details.
44
+
45
+ ### Event Plugins
46
+
47
+ | API | Type | Description |
48
+ |-----|------|-------------|
49
+ | `SdOptionEventPlugin` | EventManagerPlugin | Adds `.capture`, `.passive`, `.once` modifiers to native events |
50
+ | `SdResizeEventPlugin` | EventManagerPlugin | Provides `(sdResize)` event via ResizeObserver |
51
+ | `ISdResizeEvent` | interface | Payload for sdResize event |
52
+ | `SdIntersectionEventPlugin` | EventManagerPlugin | Provides `(sdIntersection)` event via IntersectionObserver |
53
+ | `ISdIntersectionEvent` | interface | Payload for sdIntersection event |
54
+ | `SdSaveCommandEventPlugin` | EventManagerPlugin | Provides `(sdSaveCommand)` event (Ctrl+S) |
55
+ | `SdRefreshCommandEventPlugin` | EventManagerPlugin | Provides `(sdRefreshCommand)` event (Ctrl+Alt+L) |
56
+ | `SdInsertCommandEventPlugin` | EventManagerPlugin | Provides `(sdInsertCommand)` event (Ctrl+Insert) |
57
+ | `SdGlobalErrorHandlerPlugin` | ErrorHandler | Global error handler that displays errors and logs them |
58
+
59
+ -> See [docs/event-plugins.md](./docs/event-plugins.md) for details.
60
+
61
+ ### Directives
62
+
63
+ | API | Type | Description |
64
+ |-----|------|-------------|
65
+ | `SdEventsDirective` | Directive | Exposes capture/passive/once event outputs for template binding |
66
+ | `SdRippleDirective` | Directive | Adds material-style ripple effect on pointer interaction |
67
+ | `SdShowEffectDirective` | Directive | Animates element reveal on intersection |
68
+ | `SdInvalidDirective` | Directive | Shows validation indicator with custom message |
69
+ | `SdTypedTemplateDirective` | Directive | Provides type-safe ng-template context guard |
70
+ | `SdItemOfTemplateDirective` | Directive | Provides typed iteration context for ng-template |
71
+ | `SdItemOfTemplateContext` | interface | Context type for SdItemOfTemplateDirective |
72
+ | `SdRouterLinkDirective` | Directive | Navigation directive with window/tab/outlet support |
73
+ | `SdCardDirective` | Directive | Applies card styling class |
74
+ | `SdPaneDirective` | Directive | Applies fill pane styling |
75
+
76
+ -> See [docs/directives.md](./docs/directives.md) for details.
77
+
78
+ ### Pipes
79
+
80
+ | API | Type | Description |
81
+ |-----|------|-------------|
82
+ | `FormatPipe` | Pipe | Formats DateTime, DateOnly, or string values using pattern |
83
+
84
+ -> See [docs/pipes.md](./docs/pipes.md) for details.
85
+
86
+ ### Setup Functions
87
+
88
+ | API | Type | Description |
89
+ |-----|------|-------------|
90
+ | `setupBgTheme` | function | Sets body background CSS variable based on theme |
91
+ | `setupRipple` | function | Adds ripple effect to host element |
92
+ | `setupRevealOnShow` | function | Animates element visibility on intersection |
93
+ | `setupInvalid` | function | Adds form validation indicator to host element |
94
+ | `setupModelHook` | function | Intercepts model signal set with async guard |
95
+ | `setupCanDeactivate` | function | Registers route/modal can-deactivate guard |
96
+
97
+ -> See [docs/setup-functions.md](./docs/setup-functions.md) for details.
98
+
99
+ ### Hooks & Utilities
100
+
101
+ | API | Type | Description |
102
+ |-----|------|-------------|
103
+ | `usePermsSignal` | function | Returns signal of permitted keys for given view codes |
104
+ | `useSdSystemConfigResource` | function | Creates a resource for reading/writing system config |
105
+ | `useCurrentPageCodeSignal` | function | Returns signal of current page code from activated route |
106
+ | `useFullPageCodeSignal` | function | Returns signal of full page code from router URL |
107
+ | `useViewTitleSignal` | function | Returns signal of current view title |
108
+ | `useViewTypeSignal` | function | Returns signal of view type (page/modal/control) |
109
+ | `TSdViewType` | type | `"page" \| "modal" \| "control"` |
110
+ | `useExpandingManager` | function | Manages tree expand/collapse state |
111
+ | `IExpandItemDef` | interface | Tree item definition with depth and parent |
112
+ | `useSelectionManager` | function | Manages item selection state (single/multi) |
113
+ | `useSortingManager` | function | Manages column sorting state |
114
+ | `ISortingDef` | interface | Sort definition with key and direction |
115
+ | `setSafeStyle` | function | Safely sets multiple CSS styles via Renderer2 |
116
+ | `TDirectiveInputSignals` | type | Extracts InputSignal value types from component |
117
+ | `TUndefToOptional` | type | Converts undefined-containing properties to optional |
118
+
119
+ -> See [docs/hooks-and-utilities.md](./docs/hooks-and-utilities.md) for details.
120
+
121
+ ### App Structure Types
122
+
123
+ | API | Type | Description |
124
+ |-----|------|-------------|
125
+ | `TSdAppStructureItem` | type | Union of group and leaf structure items |
126
+ | `ISdMenu` | interface | Menu tree node |
127
+ | `ISdFlatMenu` | interface | Flattened menu entry |
128
+ | `ISdPermission` | interface | Permission tree node |
129
+ | `ISdFlatPermission` | interface | Flattened permission entry |
130
+
131
+ -> See [docs/providers.md](./docs/providers.md) for details (under SdAppStructureProvider).
132
+
133
+ ### Layout Components
134
+
135
+ | API | Type | Description |
136
+ |-----|------|-------------|
137
+ | `SdDockContainerControl` | Component | Container for docked panels |
138
+ | `SdDockControl` | Component | Dockable panel (top/bottom/left/right) with optional resize |
139
+ | `SdPaneDirective` | Directive | Fill-area pane |
140
+ | `SdGapControl` | Component | Spacing element with preset or pixel sizes |
141
+ | `SdViewControl` | Component | View container for tab-like content switching |
142
+ | `SdViewItemControl` | Component | Individual view item, shown when value matches parent |
143
+ | `SdCardDirective` | Directive | Card styling |
144
+ | `SdKanbanBoardControl` | Component | Kanban board with drag-and-drop support |
145
+ | `SdKanbanLaneControl` | Component | Kanban lane (column) |
146
+ | `SdKanbanControl` | Component | Kanban card item |
147
+
148
+ -> See [docs/layout-components.md](./docs/layout-components.md) for details.
149
+
150
+ ### Form Components
151
+
152
+ | API | Type | Description |
153
+ |-----|------|-------------|
154
+ | `SdButtonControl` | Component | Themed button with ripple effect |
155
+ | `SdAnchorControl` | Component | Inline clickable anchor element |
156
+ | `SdAdditionalButtonControl` | Component | Content with adjacent action buttons |
157
+ | `SdModalSelectButtonControl` | Component | Button that opens a modal for selection |
158
+ | `SdTextfieldControl` | Component | Text/number/date/time input field |
159
+ | `SdTextareaControl` | Component | Multi-line text input |
160
+ | `SdNumpadControl` | Component | On-screen numeric keypad |
161
+ | `SdRangeControl` | Component | From-to range input pair |
162
+ | `SdDateRangePicker` | Component | Date range picker with period type selector |
163
+ | `SdCheckboxControl` | Component | Checkbox with optional radio mode |
164
+ | `SdSwitchControl` | Component | Toggle switch |
165
+ | `SdCheckboxGroupControl` | Component | Group container for checkbox items |
166
+ | `SdCheckboxGroupItemControl` | Component | Individual item in checkbox group |
167
+ | `SdSelectControl` | Component | Dropdown select (single/multi) |
168
+ | `SdSelectItemControl` | Component | Item inside SdSelectControl |
169
+ | `SdSelectButtonControl` | Component | Additional button slot inside SdSelectControl |
170
+ | `SdTiptapEditorControl` | Component | Rich text editor powered by Tiptap |
171
+ | `SdStatePresetControl` | Component | Save/load named state presets |
172
+ | `SdFormControl` | Component | Form wrapper with submit/validation |
173
+
174
+ -> See [docs/form-components.md](./docs/form-components.md) for details.
175
+
176
+ ### Navigation Components
177
+
178
+ | API | Type | Description |
179
+ |-----|------|-------------|
180
+ | `SdCollapseControl` | Component | Animated collapsible content |
181
+ | `SdCollapseIconControl` | Component | Rotating chevron icon for collapse state |
182
+ | `SdTabControl` | Component | Tab header container |
183
+ | `SdTabItemControl` | Component | Individual tab header item |
184
+ | `SdTabviewControl` | Component | Combined tab header + content view |
185
+ | `SdTabviewItemControl` | Component | Tab content panel |
186
+ | `SdPaginationControl` | Component | Page navigation with group support |
187
+ | `SdSidebarContainerControl` | Component | Layout container with sidebar toggle |
188
+ | `SdSidebarControl` | Component | Sidebar panel |
189
+ | `SdSidebarMenuControl` | Component | Menu renderer for sidebar |
190
+ | `ISdSidebarMenu` | interface | Sidebar menu item definition |
191
+ | `SdSidebarUserControl` | Component | User info section in sidebar |
192
+ | `ISidebarUserMenu` | interface | User menu definition |
193
+ | `SdTopbarContainerControl` | Component | Layout container for topbar |
194
+ | `SdTopbarControl` | Component | Top navigation bar |
195
+ | `SdTopbarMenuControl` | Component | Menu renderer for topbar with dropdowns |
196
+ | `ISdTopbarMenu` | interface | Topbar menu item definition |
197
+ | `SdTopbarUserControl` | Component | User dropdown in topbar |
198
+ | `ISdTopbarUserMenu` | interface | Topbar user menu definition |
199
+
200
+ -> See [docs/navigation-components.md](./docs/navigation-components.md) for details.
201
+
202
+ ### Data Display Components
203
+
204
+ | API | Type | Description |
205
+ |-----|------|-------------|
206
+ | `SdListControl` | Component | List container |
207
+ | `SdListItemControl` | Component | List item with accordion/flat layout |
208
+ | `SdSheetControl` | Component | Data grid with sorting, selection, expanding, pagination |
209
+ | `SdSheetColumnDirective` | Directive | Column definition for SdSheetControl |
210
+ | `SdSheetConfigModal` | Component | Sheet column configuration modal |
211
+ | `ISdSheetColumnDef` | interface | Column definition fields |
212
+ | `ISdSheetConfig` | interface | Sheet configuration (column widths, ordering, visibility) |
213
+ | `ISdSheetHeaderDef` | interface | Header cell definition |
214
+ | `ISdSheetItemKeydownEventParam` | interface | Keydown event parameter for sheet items |
215
+
216
+ -> See [docs/data-display-components.md](./docs/data-display-components.md) for details.
217
+
218
+ ### Overlay Components
219
+
220
+ | API | Type | Description |
221
+ |-----|------|-------------|
222
+ | `SdDropdownControl` | Component | Dropdown trigger container |
223
+ | `SdDropdownPopupControl` | Component | Dropdown popup content |
224
+ | `SdModalControl` | Component | Modal dialog with header, close, resize, drag |
225
+ | `SdPromptModalControl` | Component | Built-in prompt modal (text input + confirm/cancel) |
226
+ | `SdConfirmModalControl` | Component | Built-in confirm modal (confirm/cancel) |
227
+ | `ISdModal` | interface | Interface for modal content components |
228
+ | `ISdModalInfo` | interface | Modal creation info (title, type, inputs) |
229
+ | `ISdModalOptions` | interface | Modal display options |
230
+ | `SdToastControl` | Component | Individual toast notification |
231
+ | `SdToastContainerControl` | Component | Toast container (fixed position) |
232
+ | `ISdToast` | interface | Interface for custom toast content components |
233
+ | `ISdToastInput` | interface | Toast creation info |
234
+ | `TSdToastSeverity` | type | `"info" \| "success" \| "warning" \| "danger"` |
235
+ | `TSdToastTheme` | type | Toast theme including severity and color themes |
236
+ | `SdBusyContainerControl` | Component | Busy/loading overlay container |
237
+ | `TSdBusyType` | type | `"spinner" \| "bar" \| "cube"` |
238
+
239
+ -> See [docs/overlay-components.md](./docs/overlay-components.md) for details.
240
+
241
+ ### Visual Components
242
+
243
+ | API | Type | Description |
244
+ |-----|------|-------------|
245
+ | `SdLabelControl` | Component | Colored label/badge |
246
+ | `SdNoteControl` | Component | Note/callout block |
247
+ | `SdProgressControl` | Component | Progress bar with percentage display |
248
+ | `SdCalendarControl` | Component | Monthly calendar grid with item slots |
249
+ | `SdBarcodeControl` | Component | Barcode/QR code renderer (bwip-js) |
250
+ | `TBarcodeType` | type | Barcode type identifier |
251
+ | `SdEchartsControl` | Component | ECharts wrapper component |
252
+
253
+ -> See [docs/visual-components.md](./docs/visual-components.md) for details.
254
+
255
+ ### Shared Data Types
256
+
257
+ | API | Type | Description |
258
+ |-----|------|-------------|
259
+ | `ISharedDataBase` | interface | Base interface for shared data items |
260
+ | `ISharedDataInfo` | interface | Registration info for shared data |
261
+ | `SharedDataHandle` | interface | Handle for accessing shared data items signal |
262
+ | `SdSharedDataChangeEvent` | const | Event definition for shared data change notifications |
263
+ | `ISdSelectModal` | interface | Interface for select modal components |
264
+ | `ISelectModalOutputResult` | interface | Result from modal select |
265
+ | `TSdSelectModalInfo` | type | Modal info type excluding select-specific inputs |
266
+ | `TSelectModeValue` | type | `T \| T[] \| undefined` |
267
+ | `TSdTextfieldTypes` | type | Map of textfield type names to value types |
268
+ | `sdTextfieldTypes` | const | Array of all textfield type names |
269
+ | `ISdStatePreset` | interface | Named state preset |
270
+
271
+ -> See [docs/form-components.md](./docs/form-components.md) for details.
272
+
273
+ ## Usage Examples
274
+
275
+ ### Bootstrap Application
276
+
277
+ ```typescript
278
+ import { provideSdAngular } from "@simplysm/angular";
279
+
280
+ bootstrapApplication(AppComponent, {
281
+ providers: [
282
+ provideSdAngular({ clientName: "my-app" }),
283
+ provideRouter(routes),
284
+ ],
285
+ });
286
+ ```
287
+
288
+ ### Modal Dialog
289
+
290
+ ```typescript
291
+ import { SdModalProvider, SdConfirmModalControl } from "@simplysm/angular";
292
+
293
+ const modal = inject(SdModalProvider);
294
+
295
+ const confirmed = await modal.showAsync(
296
+ {
297
+ title: "Confirm Action",
298
+ type: SdConfirmModalControl,
299
+ inputs: { message: "Are you sure?" },
300
+ },
301
+ { useCloseByBackdrop: false },
302
+ );
303
+ ```
304
+
305
+ ### Toast Notification
306
+
307
+ ```typescript
308
+ import { SdToastProvider } from "@simplysm/angular";
309
+
310
+ const toast = inject(SdToastProvider);
311
+ toast.success("Operation completed successfully");
312
+ toast.danger("An error occurred");
313
+
314
+ // With progress
315
+ const progress = toast.info("Uploading...", true);
316
+ progress.set(50); // 50%
317
+ progress.set(100); // auto-dismiss after 1s
318
+ ```
@@ -0,0 +1,2 @@
1
+ export declare const TXT_CHANGE_IGNORE_CONFIRM: string;
2
+ //# sourceMappingURL=commons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commons.d.ts","sourceRoot":"","sources":["..\\..\\src\\core\\commons.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,QAGC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const TXT_CHANGE_IGNORE_CONFIRM = `
2
+ 변경사항이 있습니다. 모든 변경사항을 무시하시겠습니까?
3
+ - 확인: 변경사항을 무시하고, 현재 요청한 작업을 수행
4
+ - 취소: 현재 요청한 작업을 취소하고, 변경사항 재검토`.trim();
@@ -1,22 +1,22 @@
1
1
  import { Directive, output } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class SdEventsDirective {
4
- // Click
4
+ // 클릭
5
5
  "click.capture" = output();
6
6
  "click.once" = output();
7
7
  "click.capture.once" = output();
8
- // Mouse
8
+ // 마우스
9
9
  "mousedown.capture" = output();
10
10
  "mouseup.capture" = output();
11
11
  "mouseover.capture" = output();
12
12
  "mouseout.capture" = output();
13
- // Keyboard
13
+ // 키보드
14
14
  "keydown.capture" = output();
15
15
  "keyup.capture" = output();
16
16
  // Focus (버블링 안 되므로 capture 필수)
17
17
  "focus.capture" = output();
18
18
  "blur.capture" = output();
19
- // Form
19
+ //
20
20
  "invalid.capture" = output();
21
21
  // Scroll (passive로 성능 최적화)
22
22
  "scroll.capture" = output();
@@ -31,7 +31,7 @@ export class SdEventsDirective {
31
31
  "touchmove.passive" = output();
32
32
  "touchmove.capture.passive" = output();
33
33
  "touchend.passive" = output();
34
- // Drag & Drop
34
+ // 드래그 드롭
35
35
  "dragover.capture" = output();
36
36
  "dragenter.capture" = output();
37
37
  "dragleave.capture" = output();
@@ -39,9 +39,9 @@ export class SdEventsDirective {
39
39
  // Animation/Transition (once로 한 번만)
40
40
  "transitionend.once" = output();
41
41
  "animationend.once" = output();
42
- // Custom events
42
+ // 커스텀 이벤트
43
43
  "sdResize" = output();
44
- // Command events
44
+ // 커맨드 이벤트
45
45
  "sdRefreshCommand" = output();
46
46
  "sdSaveCommand" = output();
47
47
  "sdInsertCommand" = output();
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdItemOfTemplateDirective<TItem> {
3
+ itemOf: import("@angular/core").InputSignal<TItem[]>;
4
+ static ngTemplateContextGuard<TContextItem>(_dir: SdItemOfTemplateDirective<TContextItem>, _ctx: unknown): _ctx is SdItemOfTemplateContext<TContextItem>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdItemOfTemplateDirective<any>, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdItemOfTemplateDirective<any>, "ng-template[itemOf]", never, { "itemOf": { "alias": "itemOf"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
7
+ }
8
+ export interface SdItemOfTemplateContext<TItem> {
9
+ $implicit: TItem;
10
+ item: TItem;
11
+ index: number;
12
+ depth: number;
13
+ }
14
+ //# sourceMappingURL=sd-item-of-template.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-item-of-template.directive.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\directives\\sd-item-of-template.directive.ts"],"names":[],"mappings":";AAEA,qBAIa,yBAAyB,CAAC,KAAK;IAC1C,MAAM,+CAA6B;IAEnC,MAAM,CAAC,sBAAsB,CAAC,YAAY,EACxC,IAAI,EAAE,yBAAyB,CAAC,YAAY,CAAC,EAC7C,IAAI,EAAE,OAAO,GACZ,IAAI,IAAI,uBAAuB,CAAC,YAAY,CAAC;yCANrC,yBAAyB;2CAAzB,yBAAyB;CASrC;AAED,MAAM,WAAW,uBAAuB,CAAC,KAAK;IAC5C,SAAS,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,17 @@
1
+ import { Directive, input } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class SdItemOfTemplateDirective {
4
+ itemOf = input.required(...(ngDevMode ? [{ debugName: "itemOf" }] : /* istanbul ignore next */ []));
5
+ static ngTemplateContextGuard(_dir, _ctx) {
6
+ return true;
7
+ }
8
+ static ɵfac = function SdItemOfTemplateDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdItemOfTemplateDirective)(); };
9
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SdItemOfTemplateDirective, selectors: [["ng-template", "itemOf", ""]], inputs: { itemOf: [1, "itemOf"] } });
10
+ }
11
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdItemOfTemplateDirective, [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: "ng-template[itemOf]",
15
+ standalone: true,
16
+ }]
17
+ }], null, { itemOf: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemOf", required: true }] }] }); })();
@@ -0,0 +1,19 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdRouterLinkDirective {
3
+ private readonly _router;
4
+ private readonly _navWindow;
5
+ option: import("@angular/core").InputSignal<{
6
+ link: string;
7
+ params?: Record<string, string>;
8
+ window?: {
9
+ width?: number;
10
+ height?: number;
11
+ };
12
+ outletName?: string;
13
+ queryParams?: Record<string, string>;
14
+ } | undefined>;
15
+ onClick(event: MouseEvent): Promise<void>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdRouterLinkDirective, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdRouterLinkDirective, "[sd-router-link]", never, { "option": { "alias": "sd-router-link"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ }
19
+ //# sourceMappingURL=sd-router-link.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-router-link.directive.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\directives\\sd-router-link.directive.ts"],"names":[],"mappings":";AAIA,qBAQa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAE/D,MAAM;cAEM,MAAM;iBACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;iBACtB;YACP,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB;qBACY,MAAM;sBACL,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mBAGA;IAEpC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;yCAlBpC,qBAAqB;2CAArB,qBAAqB;CAoEjC"}
@@ -0,0 +1,64 @@
1
+ import { Directive, inject, input } from "@angular/core";
2
+ import { Router } from "@angular/router";
3
+ import { SdNavigateWindowProvider } from "../providers/sd-navigate-window.provider";
4
+ import * as i0 from "@angular/core";
5
+ export class SdRouterLinkDirective {
6
+ _router = inject(Router);
7
+ _navWindow = inject(SdNavigateWindowProvider);
8
+ option = input(undefined, { ...(ngDevMode ? { debugName: "option" } : /* istanbul ignore next */ {}), alias: "sd-router-link" });
9
+ async onClick(event) {
10
+ const option = this.option();
11
+ if (!option)
12
+ return;
13
+ event.preventDefault();
14
+ event.stopPropagation();
15
+ if (this._navWindow.isWindow) {
16
+ const width = option.window?.width ?? 800;
17
+ const height = option.window?.height ?? 800;
18
+ const qp = option.queryParams
19
+ ? "?" + new URLSearchParams(option.queryParams).toString()
20
+ : "";
21
+ this._navWindow.open(option.link + qp, option.params, `width=${width},height=${height}`);
22
+ }
23
+ else if (event.ctrlKey || event.altKey) {
24
+ const qp = option.queryParams
25
+ ? "?" + new URLSearchParams(option.queryParams).toString()
26
+ : "";
27
+ this._navWindow.open(option.link + qp, option.params, "_blank");
28
+ }
29
+ else if (event.shiftKey) {
30
+ const width = option.window?.width ?? 800;
31
+ const height = option.window?.height ?? 800;
32
+ const qp = option.queryParams
33
+ ? "?" + new URLSearchParams(option.queryParams).toString()
34
+ : "";
35
+ this._navWindow.open(option.link + qp, option.params, `width=${width},height=${height}`);
36
+ }
37
+ else if (option.outletName === undefined) {
38
+ await this._router.navigate([option.link, ...(option.params ? [option.params] : [])], option.queryParams ? { queryParams: option.queryParams } : undefined);
39
+ }
40
+ else {
41
+ await this._router.navigate([
42
+ { outlets: { [option.outletName]: option.link } },
43
+ ...(option.params ? [option.params] : []),
44
+ ], option.queryParams ? { queryParams: option.queryParams } : undefined);
45
+ }
46
+ }
47
+ static ɵfac = function SdRouterLinkDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdRouterLinkDirective)(); };
48
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SdRouterLinkDirective, selectors: [["", "sd-router-link", ""]], hostVars: 2, hostBindings: function SdRouterLinkDirective_HostBindings(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵlistener("click", function SdRouterLinkDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });
50
+ } if (rf & 2) {
51
+ i0.ɵɵstyleProp("cursor", "pointer");
52
+ } }, inputs: { option: [1, "sd-router-link", "option"] } });
53
+ }
54
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdRouterLinkDirective, [{
55
+ type: Directive,
56
+ args: [{
57
+ selector: "[sd-router-link]",
58
+ standalone: true,
59
+ host: {
60
+ "[style.cursor]": "'pointer'",
61
+ "(click)": "onClick($event)",
62
+ },
63
+ }]
64
+ }], null, { option: [{ type: i0.Input, args: [{ isSignal: true, alias: "sd-router-link", required: false }] }] }); })();
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdTypedTemplateDirective<T> {
3
+ typed: import("@angular/core").InputSignal<T>;
4
+ static ngTemplateContextGuard<TypeToken>(_dir: SdTypedTemplateDirective<TypeToken>, _ctx: unknown): _ctx is TypeToken;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTypedTemplateDirective<any>, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdTypedTemplateDirective<any>, "ng-template[typed]", never, { "typed": { "alias": "typed"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
7
+ }
8
+ //# sourceMappingURL=sd-typed-template.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-typed-template.directive.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\directives\\sd-typed-template.directive.ts"],"names":[],"mappings":";AAEA,qBAIa,wBAAwB,CAAC,CAAC;IACrC,KAAK,yCAAuB;IAE5B,MAAM,CAAC,sBAAsB,CAAC,SAAS,EACrC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,EACzC,IAAI,EAAE,OAAO,GACZ,IAAI,IAAI,SAAS;yCANT,wBAAwB;2CAAxB,wBAAwB;CASpC"}
@@ -0,0 +1,17 @@
1
+ import { Directive, input } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class SdTypedTemplateDirective {
4
+ typed = input.required(...(ngDevMode ? [{ debugName: "typed" }] : /* istanbul ignore next */ []));
5
+ static ngTemplateContextGuard(_dir, _ctx) {
6
+ return true;
7
+ }
8
+ static ɵfac = function SdTypedTemplateDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdTypedTemplateDirective)(); };
9
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SdTypedTemplateDirective, selectors: [["ng-template", "typed", ""]], inputs: { typed: [1, "typed"] } });
10
+ }
11
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTypedTemplateDirective, [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: "ng-template[typed]",
15
+ standalone: true,
16
+ }]
17
+ }], null, { typed: [{ type: i0.Input, args: [{ isSignal: true, alias: "typed", required: true }] }] }); })();
@@ -0,0 +1,9 @@
1
+ import { type PipeTransform } from "@angular/core";
2
+ import { DateOnly, DateTime } from "@simplysm/core-common";
3
+ import * as i0 from "@angular/core";
4
+ export declare class FormatPipe implements PipeTransform {
5
+ transform(value: string | DateTime | DateOnly | undefined, format: string): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormatPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<FormatPipe, "format", true>;
8
+ }
9
+ //# sourceMappingURL=format.pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.pipe.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\pipes\\format.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;;AAE3D,qBAIa,UAAW,YAAW,aAAa;IAC9C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;yCADvE,UAAU;uCAAV,UAAU;CA6BtB"}
@@ -0,0 +1,43 @@
1
+ import { Pipe } from "@angular/core";
2
+ import { DateOnly, DateTime } from "@simplysm/core-common";
3
+ import * as i0 from "@angular/core";
4
+ export class FormatPipe {
5
+ transform(value, format) {
6
+ if (value == null) {
7
+ return "";
8
+ }
9
+ else if (value instanceof DateTime || value instanceof DateOnly) {
10
+ return value.toFormatString(format);
11
+ }
12
+ else {
13
+ const formatItems = format.split("|");
14
+ for (const formatItem of formatItems) {
15
+ const fullLength = formatItem.match(/X/g)?.length;
16
+ if (fullLength === value.length) {
17
+ let result = "";
18
+ let valCur = 0;
19
+ for (const formatItemChar of formatItem) {
20
+ if (formatItemChar === "X") {
21
+ result += value[valCur];
22
+ valCur++;
23
+ }
24
+ else {
25
+ result += formatItemChar;
26
+ }
27
+ }
28
+ return result;
29
+ }
30
+ }
31
+ return value;
32
+ }
33
+ }
34
+ static ɵfac = function FormatPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormatPipe)(); };
35
+ static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "format", type: FormatPipe, pure: true });
36
+ }
37
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormatPipe, [{
38
+ type: Pipe,
39
+ args: [{
40
+ standalone: true,
41
+ name: "format",
42
+ }]
43
+ }], null, null); })();
@@ -0,0 +1,8 @@
1
+ /**
2
+ * DOM에서 열린 모달 중 z-index가 가장 큰 모달 요소를 반환한다.
3
+ * 열린 모달이 없으면 null을 반환한다.
4
+ *
5
+ * SdModalProvider를 import하지 않아 순환 의존을 회피한다.
6
+ */
7
+ export declare function findTopOpenModalEl(): HTMLElement | null;
8
+ //# sourceMappingURL=findTopOpenModalEl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findTopOpenModalEl.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\plugins\\commands\\findTopOpenModalEl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAgBvD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * DOM에서 열린 모달 중 z-index가 가장 큰 모달 요소를 반환한다.
3
+ * 열린 모달이 없으면 null을 반환한다.
4
+ *
5
+ * SdModalProvider를 import하지 않아 순환 의존을 회피한다.
6
+ */
7
+ export function findTopOpenModalEl() {
8
+ const openModals = document.querySelectorAll("sd-modal[data-sd-open]");
9
+ if (openModals.length === 0)
10
+ return null;
11
+ let topModal = openModals[0];
12
+ let maxZ = parseInt(topModal.style.zIndex || "0", 10);
13
+ for (let i = 1; i < openModals.length; i++) {
14
+ const z = parseInt(openModals[i].style.zIndex || "0", 10);
15
+ if (z > maxZ) {
16
+ maxZ = z;
17
+ topModal = openModals[i];
18
+ }
19
+ }
20
+ return topModal;
21
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"sd-insert-command-event.plugin.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\plugins\\commands\\sd-insert-command-event.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;;AAG/D,qBACa,0BAA2B,SAAQ,kBAAkB;;IAKvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,gBAAgB,CACvB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC9B,MAAM,IAAI;yCAbF,0BAA0B;6CAA1B,0BAA0B;CA4BtC"}
1
+ {"version":3,"file":"sd-insert-command-event.plugin.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\plugins\\commands\\sd-insert-command-event.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;;AAI/D,qBACa,0BAA2B,SAAQ,kBAAkB;;IAKvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,gBAAgB,CACvB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC9B,MAAM,IAAI;yCAbF,0BAA0B;6CAA1B,0BAA0B;CA+BtC"}