@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
@@ -0,0 +1,137 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input, model, numberAttribute, ViewEncapsulation, } from "@angular/core";
2
+ import { SdAnchorControl } from "../../form/button/sd-anchor.control";
3
+ import { NgIcon } from "@ng-icons/core";
4
+ import { tablerChevronLeft, tablerChevronRight, tablerChevronsLeft, tablerChevronsRight, } from "@ng-icons/tabler-icons";
5
+ import * as i0 from "@angular/core";
6
+ function SdPaginationControl_For_5_Template(rf, ctx) { if (rf & 1) {
7
+ const _r1 = i0.ɵɵgetCurrentView();
8
+ i0.ɵɵelementStart(0, "sd-anchor", 6);
9
+ i0.ɵɵlistener("click", function SdPaginationControl_For_5_Template_sd_anchor_click_0_listener() { const page_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.goToPage(page_r2 - 1)); });
10
+ i0.ɵɵtext(1);
11
+ i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ const page_r2 = ctx.$implicit;
14
+ const ctx_r2 = i0.ɵɵnextContext();
15
+ i0.ɵɵstyleProp("text-decoration", page_r2 === ctx_r2.currentPage() + 1 ? "underline" : "");
16
+ i0.ɵɵadvance();
17
+ i0.ɵɵtextInterpolate(page_r2);
18
+ } }
19
+ export class SdPaginationControl {
20
+ icons = { tablerChevronsLeft, tablerChevronLeft, tablerChevronRight, tablerChevronsRight };
21
+ currentPage = model(0, ...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
22
+ totalPageCount = input(0, { ...(ngDevMode ? { debugName: "totalPageCount" } : /* istanbul ignore next */ {}), transform: numberAttribute });
23
+ visiblePageCount = input(10, { ...(ngDevMode ? { debugName: "visiblePageCount" } : /* istanbul ignore next */ {}), transform: numberAttribute });
24
+ groupIndex = computed(() => {
25
+ return Math.floor(this.currentPage() / this.visiblePageCount());
26
+ }, ...(ngDevMode ? [{ debugName: "groupIndex" }] : /* istanbul ignore next */ []));
27
+ hasPrev = computed(() => {
28
+ if (this.totalPageCount() === 0) {
29
+ return false;
30
+ }
31
+ return this.groupIndex() > 0;
32
+ }, ...(ngDevMode ? [{ debugName: "hasPrev" }] : /* istanbul ignore next */ []));
33
+ hasNext = computed(() => {
34
+ const totalPageCount = this.totalPageCount();
35
+ if (totalPageCount === 0) {
36
+ return false;
37
+ }
38
+ const lastGroupIndex = Math.floor((totalPageCount - 1) / this.visiblePageCount());
39
+ return this.groupIndex() < lastGroupIndex;
40
+ }, ...(ngDevMode ? [{ debugName: "hasNext" }] : /* istanbul ignore next */ []));
41
+ displayPages = computed(() => {
42
+ const totalPageCount = this.totalPageCount();
43
+ if (totalPageCount === 0) {
44
+ return [];
45
+ }
46
+ const visiblePageCount = this.visiblePageCount();
47
+ const startPage = this.groupIndex() * visiblePageCount + 1;
48
+ const endPage = Math.min(startPage + visiblePageCount - 1, totalPageCount);
49
+ const pages = [];
50
+ for (let i = startPage; i <= endPage; i++) {
51
+ pages.push(i);
52
+ }
53
+ return pages;
54
+ }, ...(ngDevMode ? [{ debugName: "displayPages" }] : /* istanbul ignore next */ []));
55
+ goToPage(page) {
56
+ this.currentPage.set(page);
57
+ }
58
+ goToNextGroup() {
59
+ this.currentPage.set((this.groupIndex() + 1) * this.visiblePageCount());
60
+ }
61
+ goToPrevGroup() {
62
+ this.currentPage.set((this.groupIndex() - 1) * this.visiblePageCount());
63
+ }
64
+ goToFirst() {
65
+ this.currentPage.set(0);
66
+ }
67
+ goToLast() {
68
+ this.currentPage.set(this.totalPageCount() - 1);
69
+ }
70
+ static ɵfac = function SdPaginationControl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdPaginationControl)(); };
71
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdPaginationControl, selectors: [["sd-pagination"]], hostAttrs: [1, "flex-row", "gap-xs"], inputs: { currentPage: [1, "currentPage"], totalPageCount: [1, "totalPageCount"], visiblePageCount: [1, "visiblePageCount"] }, outputs: { currentPage: "currentPageChange" }, decls: 10, vars: 8, consts: [[1, "nav-first", 3, "click", "disabled"], [3, "svg"], [1, "nav-prev-group", 3, "click", "disabled"], [1, "page-anchor", 3, "text-decoration"], [1, "nav-next-group", 3, "click", "disabled"], [1, "nav-last", 3, "click", "disabled"], [1, "page-anchor", 3, "click"]], template: function SdPaginationControl_Template(rf, ctx) { if (rf & 1) {
72
+ i0.ɵɵelementStart(0, "sd-anchor", 0);
73
+ i0.ɵɵlistener("click", function SdPaginationControl_Template_sd_anchor_click_0_listener() { return ctx.goToFirst(); });
74
+ i0.ɵɵelement(1, "ng-icon", 1);
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelementStart(2, "sd-anchor", 2);
77
+ i0.ɵɵlistener("click", function SdPaginationControl_Template_sd_anchor_click_2_listener() { return ctx.goToPrevGroup(); });
78
+ i0.ɵɵelement(3, "ng-icon", 1);
79
+ i0.ɵɵelementEnd();
80
+ i0.ɵɵrepeaterCreate(4, SdPaginationControl_For_5_Template, 2, 3, "sd-anchor", 3, i0.ɵɵrepeaterTrackByIdentity);
81
+ i0.ɵɵelementStart(6, "sd-anchor", 4);
82
+ i0.ɵɵlistener("click", function SdPaginationControl_Template_sd_anchor_click_6_listener() { return ctx.goToNextGroup(); });
83
+ i0.ɵɵelement(7, "ng-icon", 1);
84
+ i0.ɵɵelementEnd();
85
+ i0.ɵɵelementStart(8, "sd-anchor", 5);
86
+ i0.ɵɵlistener("click", function SdPaginationControl_Template_sd_anchor_click_8_listener() { return ctx.goToLast(); });
87
+ i0.ɵɵelement(9, "ng-icon", 1);
88
+ i0.ɵɵelementEnd();
89
+ } if (rf & 2) {
90
+ i0.ɵɵproperty("disabled", !ctx.hasPrev());
91
+ i0.ɵɵadvance();
92
+ i0.ɵɵproperty("svg", ctx.icons.tablerChevronsLeft);
93
+ i0.ɵɵadvance();
94
+ i0.ɵɵproperty("disabled", !ctx.hasPrev());
95
+ i0.ɵɵadvance();
96
+ i0.ɵɵproperty("svg", ctx.icons.tablerChevronLeft);
97
+ i0.ɵɵadvance();
98
+ i0.ɵɵrepeater(ctx.displayPages());
99
+ i0.ɵɵadvance(2);
100
+ i0.ɵɵproperty("disabled", !ctx.hasNext());
101
+ i0.ɵɵadvance();
102
+ i0.ɵɵproperty("svg", ctx.icons.tablerChevronRight);
103
+ i0.ɵɵadvance();
104
+ i0.ɵɵproperty("disabled", !ctx.hasNext());
105
+ i0.ɵɵadvance();
106
+ i0.ɵɵproperty("svg", ctx.icons.tablerChevronsRight);
107
+ } }, dependencies: [SdAnchorControl, NgIcon], styles: ["sd-pagination > sd-anchor {\n display: inline-block;\n padding: var(--gap-xs);\n}"], encapsulation: 2, changeDetection: 0 });
108
+ }
109
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdPaginationControl, [{
110
+ type: Component,
111
+ args: [{ selector: "sd-pagination", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [SdAnchorControl, NgIcon], template: `
112
+ <sd-anchor class="nav-first" [disabled]="!hasPrev()" (click)="goToFirst()">
113
+ <ng-icon [svg]="icons.tablerChevronsLeft" />
114
+ </sd-anchor>
115
+ <sd-anchor class="nav-prev-group" [disabled]="!hasPrev()" (click)="goToPrevGroup()">
116
+ <ng-icon [svg]="icons.tablerChevronLeft" />
117
+ </sd-anchor>
118
+
119
+ @for (page of displayPages(); track page) {
120
+ <sd-anchor
121
+ class="page-anchor"
122
+ [style.text-decoration]="page === currentPage() + 1 ? 'underline' : ''"
123
+ (click)="goToPage(page - 1)"
124
+ >{{ page }}</sd-anchor>
125
+ }
126
+
127
+ <sd-anchor class="nav-next-group" [disabled]="!hasNext()" (click)="goToNextGroup()">
128
+ <ng-icon [svg]="icons.tablerChevronRight" />
129
+ </sd-anchor>
130
+ <sd-anchor class="nav-last" [disabled]="!hasNext()" (click)="goToLast()">
131
+ <ng-icon [svg]="icons.tablerChevronsRight" />
132
+ </sd-anchor>
133
+ `, host: {
134
+ class: "flex-row gap-xs",
135
+ }, styles: ["sd-pagination > sd-anchor {\n display: inline-block;\n padding: var(--gap-xs);\n}"] }]
136
+ }], null, { currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], totalPageCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPageCount", required: false }] }], visiblePageCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "visiblePageCount", required: false }] }] }); })();
137
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdPaginationControl, { className: "SdPaginationControl", filePath: "packages/angular/src/ui/navigation/pagination/sd-pagination.control.ts", lineNumber: 62 }); })();
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdSidebarContainerControl {
3
+ private readonly _router;
4
+ toggle: import("@angular/core").WritableSignal<boolean>;
5
+ private readonly _navStart;
6
+ constructor();
7
+ onBackdropClick(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdSidebarContainerControl, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSidebarContainerControl, "sd-sidebar-container", never, {}, {}, never, ["*"], true, never>;
10
+ }
11
+ //# sourceMappingURL=sd-sidebar-container.control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-sidebar-container.control.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\ui\\navigation\\sidebar\\sd-sidebar-container.control.ts"],"names":[],"mappings":";AAKA,qBA+Da,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAE9D,MAAM,kDAAiB;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAEZ;;IAad,eAAe,IAAI,IAAI;yCApBZ,yBAAyB;2CAAzB,yBAAyB;CAuBrC"}
@@ -0,0 +1,46 @@
1
+ import { ChangeDetectionStrategy, Component, effect, inject, signal, ViewEncapsulation } from "@angular/core";
2
+ import { toSignal } from "@angular/core/rxjs-interop";
3
+ import { NavigationStart, Router } from "@angular/router";
4
+ import { filter } from "rxjs";
5
+ import * as i0 from "@angular/core";
6
+ const _c0 = ["*"];
7
+ export class SdSidebarContainerControl {
8
+ _router = inject(Router, { optional: true });
9
+ toggle = signal(false, ...(ngDevMode ? [{ debugName: "toggle" }] : /* istanbul ignore next */ []));
10
+ _navStart = this._router
11
+ ? toSignal(this._router.events.pipe(filter((e) => e instanceof NavigationStart)))
12
+ : undefined;
13
+ constructor() {
14
+ const navStart = this._navStart;
15
+ if (navStart) {
16
+ effect(() => {
17
+ if (navStart()) {
18
+ this.toggle.set(false);
19
+ }
20
+ });
21
+ }
22
+ }
23
+ onBackdropClick() {
24
+ this.toggle.update((v) => !v);
25
+ }
26
+ static ɵfac = function SdSidebarContainerControl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdSidebarContainerControl)(); };
27
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdSidebarContainerControl, selectors: [["sd-sidebar-container"]], hostVars: 1, hostBindings: function SdSidebarContainerControl_HostBindings(rf, ctx) { if (rf & 2) {
28
+ i0.ɵɵattribute("data-sd-toggle", ctx.toggle());
29
+ } }, ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, "_backdrop", 3, "mousedown"]], template: function SdSidebarContainerControl_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵprojectionDef();
31
+ i0.ɵɵprojection(0);
32
+ i0.ɵɵdomElementStart(1, "div", 0);
33
+ i0.ɵɵdomListener("mousedown", function SdSidebarContainerControl_Template_div_mousedown_1_listener() { return ctx.onBackdropClick(); });
34
+ i0.ɵɵdomElementEnd();
35
+ } }, styles: ["sd-sidebar-container {\n display: block;\n position: relative;\n height: 100%;\n padding-left: var(--sidebar-width);\n transition: padding-left 0.1s ease-out;\n}\nsd-sidebar-container[data-sd-toggle=true] {\n padding-left: 0;\n transition: padding-left 0.1s ease-in;\n}\nsd-sidebar-container > ._backdrop {\n display: none;\n}\n\n@media all and (max-width: 520px) {\n sd-sidebar-container {\n padding-left: 0;\n }\n sd-sidebar-container > ._backdrop {\n position: absolute;\n display: block;\n z-index: calc(var(--z-index-sidebar) - 1);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--background-rev-color);\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s ease-in-out;\n }\n sd-sidebar-container[data-sd-toggle=true] > ._backdrop {\n opacity: 0.6;\n pointer-events: auto;\n }\n}"], encapsulation: 2, changeDetection: 0 });
36
+ }
37
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSidebarContainerControl, [{
38
+ type: Component,
39
+ args: [{ selector: "sd-sidebar-container", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [], host: {
40
+ "[attr.data-sd-toggle]": "toggle()",
41
+ }, template: `
42
+ <ng-content />
43
+ <div class="_backdrop" (mousedown)="onBackdropClick()"></div>
44
+ `, styles: ["sd-sidebar-container {\n display: block;\n position: relative;\n height: 100%;\n padding-left: var(--sidebar-width);\n transition: padding-left 0.1s ease-out;\n}\nsd-sidebar-container[data-sd-toggle=true] {\n padding-left: 0;\n transition: padding-left 0.1s ease-in;\n}\nsd-sidebar-container > ._backdrop {\n display: none;\n}\n\n@media all and (max-width: 520px) {\n sd-sidebar-container {\n padding-left: 0;\n }\n sd-sidebar-container > ._backdrop {\n position: absolute;\n display: block;\n z-index: calc(var(--z-index-sidebar) - 1);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--background-rev-color);\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s ease-in-out;\n }\n sd-sidebar-container[data-sd-toggle=true] > ._backdrop {\n opacity: 0.6;\n pointer-events: auto;\n }\n}"] }]
45
+ }], () => [], null); })();
46
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSidebarContainerControl, { className: "SdSidebarContainerControl", filePath: "packages/angular/src/ui/navigation/sidebar/sd-sidebar-container.control.ts", lineNumber: 69 }); })();
@@ -0,0 +1,28 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdSidebarMenuControl {
3
+ menus: import("@angular/core").InputSignal<ISdSidebarMenu[]>;
4
+ layout: import("@angular/core").InputSignal<"flat" | "accordion" | undefined>;
5
+ getMenuIsSelectedFn: import("@angular/core").InputSignal<((menu: ISdSidebarMenu) => boolean) | undefined>;
6
+ fullPageCode: import("@angular/core").Signal<string>;
7
+ rootLayout: import("@angular/core").Signal<"flat" | "accordion">;
8
+ getMenuRouterLinkOption(menu: ISdSidebarMenu): {
9
+ link: string;
10
+ queryParams: Record<string, string> | undefined;
11
+ } | undefined;
12
+ getIsMenuSelected(menu: ISdSidebarMenu): boolean;
13
+ onMenuClick(menu: ISdSidebarMenu): void;
14
+ protected readonly itemTemplateType: {
15
+ menus: ISdSidebarMenu[];
16
+ depth: number;
17
+ };
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdSidebarMenuControl, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSidebarMenuControl, "sd-sidebar-menu", never, { "menus": { "alias": "menus"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "getMenuIsSelectedFn": { "alias": "getMenuIsSelectedFn"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
+ }
21
+ export interface ISdSidebarMenu {
22
+ title: string;
23
+ codeChain: string[];
24
+ url?: string;
25
+ icon?: string;
26
+ children?: ISdSidebarMenu[];
27
+ }
28
+ //# sourceMappingURL=sd-sidebar-menu.control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-sidebar-menu.control.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\ui\\navigation\\sidebar\\sd-sidebar-menu.control.ts"],"names":[],"mappings":";AAaA,qBA8Ea,oBAAoB;IAC/B,KAAK,wDAA+B;IACpC,MAAM,wEAAiC;IACvC,mBAAmB,8CAAgB,cAAc,KAAK,OAAO,eAAI;IAEjE,YAAY,yCAA2B;IAEvC,UAAU,uDAAsF;IAEhG,uBAAuB,CACrB,IAAI,EAAE,cAAc,GACnB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS;IAIhF,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAIhD,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAMvC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAG;QACpC,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;yCA5BS,oBAAoB;2CAApB,oBAAoB;CA6BhC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B"}
@@ -0,0 +1,159 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from "@angular/core";
2
+ import { useFullPageCodeSignal } from "../../../core/utils/useFullPageCodeSignal";
3
+ import { getMenuRouterLinkOption as menuRouterLinkOption, getIsMenuSelected as menuIsSelected, } from "../menu-utils";
4
+ import { NgTemplateOutlet } from "@angular/common";
5
+ import { SdTypedTemplateDirective } from "../../../core/directives/sd-typed-template.directive";
6
+ import { SdRouterLinkDirective } from "../../../core/directives/sd-router-link.directive";
7
+ import { SdListControl } from "../../data/list/sd-list.control";
8
+ import { SdListItemControl } from "../../data/list/sd-list-item.control";
9
+ import { NgIcon } from "@ng-icons/core";
10
+ import * as i0 from "@angular/core";
11
+ const _c0 = a0 => ({ menus: a0, depth: 0 });
12
+ const _c1 = (a0, a1) => ({ menus: a0, depth: a1 });
13
+ const _forTrack0 = ($index, $item) => $item.codeChain.join(".");
14
+ function SdSidebarMenuControl_ng_template_3_Template(rf, ctx) { }
15
+ function SdSidebarMenuControl_ng_template_4_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
16
+ i0.ɵɵelement(0, "ng-icon", 8);
17
+ i0.ɵɵtext(1, " \u00A0 ");
18
+ } if (rf & 2) {
19
+ const menu_r2 = i0.ɵɵnextContext().$implicit;
20
+ i0.ɵɵproperty("svg", menu_r2.icon);
21
+ } }
22
+ function SdSidebarMenuControl_ng_template_4_For_1_Conditional_3_ng_template_1_Template(rf, ctx) { }
23
+ function SdSidebarMenuControl_ng_template_4_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelementStart(0, "sd-list", 7);
25
+ i0.ɵɵtemplate(1, SdSidebarMenuControl_ng_template_4_For_1_Conditional_3_ng_template_1_Template, 0, 0, "ng-template", 3);
26
+ i0.ɵɵelementEnd();
27
+ } if (rf & 2) {
28
+ const menu_r2 = i0.ɵɵnextContext().$implicit;
29
+ const depth_r4 = i0.ɵɵnextContext().depth;
30
+ i0.ɵɵnextContext();
31
+ const itemTpl_r5 = i0.ɵɵreference(5);
32
+ i0.ɵɵproperty("inset", true);
33
+ i0.ɵɵadvance();
34
+ i0.ɵɵproperty("ngTemplateOutlet", itemTpl_r5)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c1, menu_r2.children, depth_r4 + 1));
35
+ } }
36
+ function SdSidebarMenuControl_ng_template_4_For_1_Template(rf, ctx) { if (rf & 1) {
37
+ const _r1 = i0.ɵɵgetCurrentView();
38
+ i0.ɵɵelementStart(0, "sd-list-item", 6);
39
+ i0.ɵɵlistener("click", function SdSidebarMenuControl_ng_template_4_For_1_Template_sd_list_item_click_0_listener() { const menu_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onMenuClick(menu_r2)); });
40
+ i0.ɵɵconditionalCreate(1, SdSidebarMenuControl_ng_template_4_For_1_Conditional_1_Template, 2, 1);
41
+ i0.ɵɵtext(2);
42
+ i0.ɵɵconditionalCreate(3, SdSidebarMenuControl_ng_template_4_For_1_Conditional_3_Template, 2, 6, "sd-list", 7);
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ const menu_r2 = ctx.$implicit;
46
+ const depth_r4 = i0.ɵɵnextContext().depth;
47
+ const ctx_r2 = i0.ɵɵnextContext();
48
+ i0.ɵɵstyleProp("padding-left", depth_r4 > 0 ? (depth_r4 + 1) * 0.5 : undefined, "em");
49
+ i0.ɵɵproperty("sd-router-link", ctx_r2.getMenuRouterLinkOption(menu_r2))("selected", ctx_r2.getIsMenuSelected(menu_r2))("layout", depth_r4 === 0 ? ctx_r2.rootLayout() : "accordion");
50
+ i0.ɵɵadvance();
51
+ i0.ɵɵconditional(menu_r2.icon ? 1 : -1);
52
+ i0.ɵɵadvance();
53
+ i0.ɵɵtextInterpolate1(" ", menu_r2.title, " ");
54
+ i0.ɵɵadvance();
55
+ i0.ɵɵconditional(menu_r2.children ? 3 : -1);
56
+ } }
57
+ function SdSidebarMenuControl_ng_template_4_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵrepeaterCreate(0, SdSidebarMenuControl_ng_template_4_For_1_Template, 4, 8, "sd-list-item", 5, _forTrack0);
59
+ } if (rf & 2) {
60
+ const currMenus_r6 = ctx.menus;
61
+ i0.ɵɵrepeater(currMenus_r6);
62
+ } }
63
+ export class SdSidebarMenuControl {
64
+ menus = input([], ...(ngDevMode ? [{ debugName: "menus" }] : /* istanbul ignore next */ []));
65
+ layout = input(...(ngDevMode ? [undefined, { debugName: "layout" }] : /* istanbul ignore next */ []));
66
+ getMenuIsSelectedFn = input(...(ngDevMode ? [undefined, { debugName: "getMenuIsSelectedFn" }] : /* istanbul ignore next */ []));
67
+ fullPageCode = useFullPageCodeSignal();
68
+ rootLayout = computed(() => this.layout() ?? (this.menus().length <= 3 ? "flat" : "accordion"), ...(ngDevMode ? [{ debugName: "rootLayout" }] : /* istanbul ignore next */ []));
69
+ getMenuRouterLinkOption(menu) {
70
+ return menuRouterLinkOption(menu);
71
+ }
72
+ getIsMenuSelected(menu) {
73
+ return menuIsSelected(menu, this.fullPageCode(), this.getMenuIsSelectedFn());
74
+ }
75
+ onMenuClick(menu) {
76
+ if (menu.url != null) {
77
+ window.open(menu.url, "_blank");
78
+ }
79
+ }
80
+ itemTemplateType;
81
+ static ɵfac = function SdSidebarMenuControl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdSidebarMenuControl)(); };
82
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdSidebarMenuControl, selectors: [["sd-sidebar-menu"]], hostAttrs: [1, "flex-column", "fill"], hostVars: 1, hostBindings: function SdSidebarMenuControl_HostBindings(rf, ctx) { if (rf & 2) {
83
+ i0.ɵɵattribute("data-sd-root-layout", ctx.rootLayout());
84
+ } }, inputs: { menus: [1, "menus"], layout: [1, "layout"], getMenuIsSelectedFn: [1, "getMenuIsSelectedFn"] }, decls: 6, vars: 6, consts: [["itemTpl", ""], [1, "control-header", "p-default"], [1, "flex-fill", 3, "inset"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "typed"], [3, "padding-left", "sd-router-link", "selected", "layout"], [3, "click", "sd-router-link", "selected", "layout"], [3, "inset"], [3, "svg"]], template: function SdSidebarMenuControl_Template(rf, ctx) { if (rf & 1) {
85
+ i0.ɵɵelementStart(0, "div", 1);
86
+ i0.ɵɵtext(1, "MENU");
87
+ i0.ɵɵelementEnd();
88
+ i0.ɵɵelementStart(2, "sd-list", 2);
89
+ i0.ɵɵtemplate(3, SdSidebarMenuControl_ng_template_3_Template, 0, 0, "ng-template", 3);
90
+ i0.ɵɵelementEnd();
91
+ i0.ɵɵtemplate(4, SdSidebarMenuControl_ng_template_4_Template, 2, 0, "ng-template", 4, 0, i0.ɵɵtemplateRefExtractor);
92
+ } if (rf & 2) {
93
+ const itemTpl_r5 = i0.ɵɵreference(5);
94
+ i0.ɵɵadvance(2);
95
+ i0.ɵɵproperty("inset", true);
96
+ i0.ɵɵadvance();
97
+ i0.ɵɵproperty("ngTemplateOutlet", itemTpl_r5)("ngTemplateOutletContext", i0.ɵɵpureFunction1(4, _c0, ctx.menus()));
98
+ i0.ɵɵadvance();
99
+ i0.ɵɵproperty("typed", ctx.itemTemplateType);
100
+ } }, dependencies: [NgTemplateOutlet,
101
+ SdTypedTemplateDirective,
102
+ SdRouterLinkDirective,
103
+ SdListControl,
104
+ SdListItemControl,
105
+ NgIcon], styles: ["sd-sidebar-menu > sd-list[data-sd-inset=true] sd-list {\n background: var(--trans-lightest);\n}\nsd-sidebar-menu > sd-list[data-sd-inset=true] > sd-list-item > ._content {\n padding-block: var(--gap-default);\n}\nsd-sidebar-menu:not([data-sd-root-layout=accordion]) > sd-list[data-sd-inset=true] > sd-list-item > sd-collapse > ._content > sd-list {\n background: transparent;\n}"], encapsulation: 2, changeDetection: 0 });
106
+ }
107
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSidebarMenuControl, [{
108
+ type: Component,
109
+ args: [{ selector: "sd-sidebar-menu", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
110
+ NgTemplateOutlet,
111
+ SdTypedTemplateDirective,
112
+ SdRouterLinkDirective,
113
+ SdListControl,
114
+ SdListItemControl,
115
+ NgIcon,
116
+ ], host: {
117
+ "class": "flex-column fill",
118
+ "[attr.data-sd-root-layout]": "rootLayout()",
119
+ }, template: `
120
+ <div class="control-header p-default">MENU</div>
121
+
122
+ <sd-list class="flex-fill" [inset]="true">
123
+ <ng-template
124
+ [ngTemplateOutlet]="itemTpl"
125
+ [ngTemplateOutletContext]="{ menus: menus(), depth: 0 }"
126
+ ></ng-template>
127
+ </sd-list>
128
+
129
+ <ng-template #itemTpl [typed]="itemTemplateType" let-currMenus="menus" let-depth="depth">
130
+ @for (menu of currMenus; track menu.codeChain.join(".")) {
131
+ <sd-list-item
132
+ [style.padding-left.em]="depth > 0 ? (depth + 1) * 0.5 : undefined"
133
+ [sd-router-link]="getMenuRouterLinkOption(menu)"
134
+ (click)="onMenuClick(menu)"
135
+ [selected]="getIsMenuSelected(menu)"
136
+ [layout]="depth === 0 ? rootLayout() : 'accordion'"
137
+ >
138
+ @if (menu.icon) {
139
+ <ng-icon [svg]="menu.icon" />
140
+ &nbsp;
141
+ }
142
+ {{ menu.title }}
143
+ @if (menu.children) {
144
+ <sd-list [inset]="true">
145
+ <ng-template
146
+ [ngTemplateOutlet]="itemTpl"
147
+ [ngTemplateOutletContext]="{
148
+ menus: menu.children,
149
+ depth: depth + 1,
150
+ }"
151
+ ></ng-template>
152
+ </sd-list>
153
+ }
154
+ </sd-list-item>
155
+ }
156
+ </ng-template>
157
+ `, styles: ["sd-sidebar-menu > sd-list[data-sd-inset=true] sd-list {\n background: var(--trans-lightest);\n}\nsd-sidebar-menu > sd-list[data-sd-inset=true] > sd-list-item > ._content {\n padding-block: var(--gap-default);\n}\nsd-sidebar-menu:not([data-sd-root-layout=accordion]) > sd-list[data-sd-inset=true] > sd-list-item > sd-collapse > ._content > sd-list {\n background: transparent;\n}"] }]
158
+ }], null, { menus: [{ type: i0.Input, args: [{ isSignal: true, alias: "menus", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], getMenuIsSelectedFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getMenuIsSelectedFn", required: false }] }] }); })();
159
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSidebarMenuControl, { className: "SdSidebarMenuControl", filePath: "packages/angular/src/ui/navigation/sidebar/sd-sidebar-menu.control.ts", lineNumber: 92 }); })();
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdSidebarUserControl {
3
+ userMenu: import("@angular/core").InputSignal<ISidebarUserMenu | undefined>;
4
+ menuOpen: import("@angular/core").WritableSignal<boolean>;
5
+ onMenuOpenButtonClick(): void;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdSidebarUserControl, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSidebarUserControl, "sd-sidebar-user", never, { "userMenu": { "alias": "userMenu"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8
+ }
9
+ export interface ISidebarUserMenu {
10
+ title: string;
11
+ menus: {
12
+ title: string;
13
+ onClick: () => void;
14
+ }[];
15
+ }
16
+ //# sourceMappingURL=sd-sidebar-user.control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-sidebar-user.control.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\ui\\navigation\\sidebar\\sd-sidebar-user.control.ts"],"names":[],"mappings":";AAOA,qBA4Da,oBAAoB;IAC/B,QAAQ,oEAA6B;IAErC,QAAQ,kDAAiB;IAEzB,qBAAqB,IAAI,IAAI;yCALlB,oBAAoB;2CAApB,oBAAoB;CAQhC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,EAAE,CAAC;CACL"}
@@ -0,0 +1,109 @@
1
+ import { ChangeDetectionStrategy, Component, input, signal, ViewEncapsulation } from "@angular/core";
2
+ import { SdCollapseIconControl } from "../collapse/sd-collapse-icon.control";
3
+ import { SdCollapseControl } from "../collapse/sd-collapse.control";
4
+ import { SdRippleDirective } from "../../../core/directives/sd-ripple.directive";
5
+ import { SdListControl } from "../../data/list/sd-list.control";
6
+ import { SdListItemControl } from "../../data/list/sd-list-item.control";
7
+ import * as i0 from "@angular/core";
8
+ const _c0 = ["*"];
9
+ const _forTrack0 = ($index, $item) => $item.title;
10
+ function SdSidebarUserControl_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11
+ const _r1 = i0.ɵɵgetCurrentView();
12
+ i0.ɵɵelementStart(0, "div", 3);
13
+ i0.ɵɵlistener("click", function SdSidebarUserControl_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMenuOpenButtonClick()); })("keydown.enter", function SdSidebarUserControl_Conditional_2_Template_div_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMenuOpenButtonClick()); });
14
+ i0.ɵɵtext(1);
15
+ i0.ɵɵelement(2, "sd-collapse-icon", 4);
16
+ i0.ɵɵelementEnd();
17
+ } if (rf & 2) {
18
+ let tmp_2_0;
19
+ const ctx_r1 = i0.ɵɵnextContext();
20
+ i0.ɵɵproperty("sd-ripple", true);
21
+ i0.ɵɵadvance();
22
+ i0.ɵɵtextInterpolate1(" ", (tmp_2_0 = ctx_r1.userMenu()) == null ? null : tmp_2_0.title, " ");
23
+ i0.ɵɵadvance();
24
+ i0.ɵɵproperty("open", ctx_r1.menuOpen())("openRotate", 180);
25
+ } }
26
+ function SdSidebarUserControl_Conditional_3_For_3_Template(rf, ctx) { if (rf & 1) {
27
+ const _r3 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "sd-list-item", 6);
29
+ i0.ɵɵlistener("click", function SdSidebarUserControl_Conditional_3_For_3_Template_sd_list_item_click_0_listener() { const menu_r4 = i0.ɵɵrestoreView(_r3).$implicit; return i0.ɵɵresetView(menu_r4.onClick()); });
30
+ i0.ɵɵtext(1);
31
+ i0.ɵɵelementEnd();
32
+ } if (rf & 2) {
33
+ const menu_r4 = ctx.$implicit;
34
+ i0.ɵɵadvance();
35
+ i0.ɵɵtextInterpolate1(" ", menu_r4.title, " ");
36
+ } }
37
+ function SdSidebarUserControl_Conditional_3_Template(rf, ctx) { if (rf & 1) {
38
+ i0.ɵɵelementStart(0, "sd-collapse", 2)(1, "sd-list", 5);
39
+ i0.ɵɵrepeaterCreate(2, SdSidebarUserControl_Conditional_3_For_3_Template, 2, 1, "sd-list-item", null, _forTrack0);
40
+ i0.ɵɵelementEnd()();
41
+ } if (rf & 2) {
42
+ let tmp_3_0;
43
+ const ctx_r1 = i0.ɵɵnextContext();
44
+ i0.ɵɵproperty("open", ctx_r1.menuOpen());
45
+ i0.ɵɵadvance();
46
+ i0.ɵɵproperty("inset", true);
47
+ i0.ɵɵadvance();
48
+ i0.ɵɵrepeater((tmp_3_0 = ctx_r1.userMenu()) == null ? null : tmp_3_0.menus);
49
+ } }
50
+ export class SdSidebarUserControl {
51
+ userMenu = input(...(ngDevMode ? [undefined, { debugName: "userMenu" }] : /* istanbul ignore next */ []));
52
+ menuOpen = signal(false, ...(ngDevMode ? [{ debugName: "menuOpen" }] : /* istanbul ignore next */ []));
53
+ onMenuOpenButtonClick() {
54
+ this.menuOpen.update((v) => !v);
55
+ }
56
+ static ɵfac = function SdSidebarUserControl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdSidebarUserControl)(); };
57
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdSidebarUserControl, selectors: [["sd-sidebar-user"]], inputs: { userMenu: [1, "userMenu"] }, ngContentSelectors: _c0, decls: 4, vars: 2, consts: [[1, "p-lg"], ["tabindex", "0", 1, "_menu-button", 3, "sd-ripple"], [3, "open"], ["tabindex", "0", 1, "_menu-button", 3, "click", "keydown.enter", "sd-ripple"], [2, "float", "right", 3, "open", "openRotate"], [3, "inset"], [3, "click"]], template: function SdSidebarUserControl_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵprojectionDef();
59
+ i0.ɵɵelementStart(0, "div", 0);
60
+ i0.ɵɵprojection(1);
61
+ i0.ɵɵelementEnd();
62
+ i0.ɵɵconditionalCreate(2, SdSidebarUserControl_Conditional_2_Template, 3, 4, "div", 1);
63
+ i0.ɵɵconditionalCreate(3, SdSidebarUserControl_Conditional_3_Template, 4, 2, "sd-collapse", 2);
64
+ } if (rf & 2) {
65
+ let tmp_0_0;
66
+ let tmp_1_0;
67
+ i0.ɵɵadvance(2);
68
+ i0.ɵɵconditional(((tmp_0_0 = ctx.userMenu()) == null ? null : tmp_0_0.title) ? 2 : -1);
69
+ i0.ɵɵadvance();
70
+ i0.ɵɵconditional(((tmp_1_0 = ctx.userMenu()) == null ? null : tmp_1_0.title) ? 3 : -1);
71
+ } }, dependencies: [SdCollapseIconControl,
72
+ SdCollapseControl,
73
+ SdRippleDirective,
74
+ SdListControl,
75
+ SdListItemControl], styles: ["sd-sidebar-user {\n display: block;\n}\nsd-sidebar-user > ._menu-button {\n display: block;\n cursor: pointer;\n user-select: none;\n padding: var(--gap-default);\n}\nsd-sidebar-user > ._menu-button:hover {\n background: var(--trans-lighter);\n}\nsd-sidebar-user > sd-collapse > ._content > sd-list {\n background: var(--trans-lightest);\n padding: var(--gap-xs) 0;\n}"], encapsulation: 2, changeDetection: 0 });
76
+ }
77
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSidebarUserControl, [{
78
+ type: Component,
79
+ args: [{ selector: "sd-sidebar-user", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
80
+ SdCollapseIconControl,
81
+ SdCollapseControl,
82
+ SdRippleDirective,
83
+ SdListControl,
84
+ SdListItemControl,
85
+ ], template: `
86
+ <div class="p-lg">
87
+ <ng-content />
88
+ </div>
89
+ @if (userMenu()?.title) {
90
+ <div class="_menu-button" tabindex="0" (click)="onMenuOpenButtonClick()" (keydown.enter)="onMenuOpenButtonClick()" [sd-ripple]="true">
91
+ {{ userMenu()?.title }}
92
+ <sd-collapse-icon [open]="menuOpen()" style="float: right;" [openRotate]="180" />
93
+ </div>
94
+ }
95
+
96
+ @if (userMenu()?.title) {
97
+ <sd-collapse [open]="menuOpen()">
98
+ <sd-list [inset]="true">
99
+ @for (menu of userMenu()?.menus; track menu.title) {
100
+ <sd-list-item (click)="menu.onClick()">
101
+ {{ menu.title }}
102
+ </sd-list-item>
103
+ }
104
+ </sd-list>
105
+ </sd-collapse>
106
+ }
107
+ `, styles: ["sd-sidebar-user {\n display: block;\n}\nsd-sidebar-user > ._menu-button {\n display: block;\n cursor: pointer;\n user-select: none;\n padding: var(--gap-default);\n}\nsd-sidebar-user > ._menu-button:hover {\n background: var(--trans-lighter);\n}\nsd-sidebar-user > sd-collapse > ._content > sd-list {\n background: var(--trans-lightest);\n padding: var(--gap-xs) 0;\n}"] }]
108
+ }], null, { userMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "userMenu", required: false }] }] }); })();
109
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSidebarUserControl, { className: "SdSidebarUserControl", filePath: "packages/angular/src/ui/navigation/sidebar/sd-sidebar-user.control.ts", lineNumber: 68 }); })();
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdSidebarControl {
3
+ private readonly _parentControl;
4
+ toggle: import("@angular/core").Signal<boolean>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdSidebarControl, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSidebarControl, "sd-sidebar", never, {}, {}, never, ["*"], true, never>;
7
+ }
8
+ //# sourceMappingURL=sd-sidebar.control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-sidebar.control.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\ui\\navigation\\sidebar\\sd-sidebar.control.ts"],"names":[],"mappings":";AAUA,qBAkDa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,MAAM,0CAAgD;yCAL3C,gBAAgB;2CAAhB,gBAAgB;CAM5B"}
@@ -0,0 +1,24 @@
1
+ import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, ViewEncapsulation, } from "@angular/core";
2
+ import { SdSidebarContainerControl } from "./sd-sidebar-container.control";
3
+ import * as i0 from "@angular/core";
4
+ const _c0 = ["*"];
5
+ export class SdSidebarControl {
6
+ _parentControl = inject(forwardRef(() => SdSidebarContainerControl));
7
+ toggle = computed(() => this._parentControl.toggle(), ...(ngDevMode ? [{ debugName: "toggle" }] : /* istanbul ignore next */ []));
8
+ static ɵfac = function SdSidebarControl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdSidebarControl)(); };
9
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdSidebarControl, selectors: [["sd-sidebar"]], hostVars: 1, hostBindings: function SdSidebarControl_HostBindings(rf, ctx) { if (rf & 2) {
10
+ i0.ɵɵattribute("data-sd-toggle", ctx.toggle());
11
+ } }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdSidebarControl_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵprojectionDef();
13
+ i0.ɵɵprojection(0);
14
+ } }, styles: ["sd-sidebar {\n position: absolute;\n z-index: var(--z-index-sidebar);\n top: 0;\n left: 0;\n width: var(--sidebar-width);\n height: 100%;\n background: var(--control-color);\n border-right: 1px solid var(--border-color-lighter);\n}\n@media not all and (max-width: 520px) {\n sd-sidebar {\n transition: transform 0.1s ease-out;\n }\n sd-sidebar[data-sd-toggle=true] {\n transform: translateX(-100%);\n transition: transform 0.1s ease-in;\n }\n}\n@media all and (max-width: 520px) {\n sd-sidebar {\n transition: transform 0.3s ease-in;\n transform: translateX(-100%);\n }\n sd-sidebar[data-sd-toggle=true] {\n transform: none;\n transition: transform 0.3s ease-out;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n }\n}"], encapsulation: 2, changeDetection: 0 });
15
+ }
16
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSidebarControl, [{
17
+ type: Component,
18
+ args: [{ selector: "sd-sidebar", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [], host: {
19
+ "[attr.data-sd-toggle]": "toggle()",
20
+ }, template: `
21
+ <ng-content />
22
+ `, styles: ["sd-sidebar {\n position: absolute;\n z-index: var(--z-index-sidebar);\n top: 0;\n left: 0;\n width: var(--sidebar-width);\n height: 100%;\n background: var(--control-color);\n border-right: 1px solid var(--border-color-lighter);\n}\n@media not all and (max-width: 520px) {\n sd-sidebar {\n transition: transform 0.1s ease-out;\n }\n sd-sidebar[data-sd-toggle=true] {\n transform: translateX(-100%);\n transition: transform 0.1s ease-in;\n }\n}\n@media all and (max-width: 520px) {\n sd-sidebar {\n transition: transform 0.3s ease-in;\n transform: translateX(-100%);\n }\n sd-sidebar[data-sd-toggle=true] {\n transform: none;\n transition: transform 0.3s ease-out;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n }\n}"] }]
23
+ }], null, null); })();
24
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSidebarControl, { className: "SdSidebarControl", filePath: "packages/angular/src/ui/navigation/sidebar/sd-sidebar.control.ts", lineNumber: 61 }); })();
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdTabItemControl {
3
+ private readonly _parentControl;
4
+ value: import("@angular/core").InputSignal<any>;
5
+ isSelected: import("@angular/core").Signal<boolean>;
6
+ onClick(): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTabItemControl, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdTabItemControl, "sd-tab-item", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
+ }
10
+ //# sourceMappingURL=sd-tab-item.control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-tab-item.control.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\ui\\navigation\\tab\\sd-tab-item.control.ts"],"names":[],"mappings":";AAWA,qBAiCa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwD;IAEvF,KAAK,2CAAgB;IAErB,UAAU,0CAAgE;IAE1E,OAAO;yCAPI,gBAAgB;2CAAhB,gBAAgB;CAU5B"}
@@ -0,0 +1,31 @@
1
+ import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, ViewEncapsulation, } from "@angular/core";
2
+ import { SdTabControl } from "./sd-tab.control";
3
+ import * as i0 from "@angular/core";
4
+ const _c0 = ["*"];
5
+ export class SdTabItemControl {
6
+ _parentControl = inject(forwardRef(() => SdTabControl));
7
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
8
+ isSelected = computed(() => this._parentControl.value() === this.value(), ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
9
+ onClick() {
10
+ this._parentControl.value.set(this.value());
11
+ }
12
+ static ɵfac = function SdTabItemControl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdTabItemControl)(); };
13
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdTabItemControl, selectors: [["sd-tab-item"]], hostVars: 1, hostBindings: function SdTabItemControl_HostBindings(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵlistener("click", function SdTabItemControl_click_HostBindingHandler() { return ctx.onClick(); });
15
+ } if (rf & 2) {
16
+ i0.ɵɵattribute("data-sd-selected", ctx.isSelected());
17
+ } }, inputs: { value: [1, "value"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdTabItemControl_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵprojectionDef();
19
+ i0.ɵɵprojection(0);
20
+ } }, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"], encapsulation: 2, changeDetection: 0 });
21
+ }
22
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTabItemControl, [{
23
+ type: Component,
24
+ args: [{ selector: "sd-tab-item", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [], host: {
25
+ "[attr.data-sd-selected]": "isSelected()",
26
+ "(click)": "onClick()",
27
+ }, template: `
28
+ <ng-content></ng-content>
29
+ `, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"] }]
30
+ }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] }); })();
31
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdTabItemControl, { className: "SdTabItemControl", filePath: "packages/angular/src/ui/navigation/tab/sd-tab-item.control.ts", lineNumber: 45 }); })();