@sd-angular/core 19.0.0-beta.99 → 19.0.3

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 (400) hide show
  1. package/README.md +9 -11
  2. package/assets/images/coming-soon.svg +23 -0
  3. package/assets/images/data-empty.svg +21 -0
  4. package/assets/images/expired.svg +22 -0
  5. package/assets/images/file-error.svg +28 -0
  6. package/assets/images/filter-empty.svg +20 -0
  7. package/assets/images/filter-required.svg +21 -0
  8. package/assets/images/forbidden.svg +15 -0
  9. package/assets/images/image-error.svg +27 -0
  10. package/assets/images/maintenance.svg +23 -0
  11. package/assets/images/not-found.svg +20 -0
  12. package/assets/images/offline.svg +20 -0
  13. package/assets/images/submitted.svg +18 -0
  14. package/assets/images/success.svg +18 -0
  15. package/assets/images/unauthorized.svg +22 -0
  16. package/assets/images/unknown-error.svg +18 -0
  17. package/assets/scss/README.md +433 -353
  18. package/assets/scss/core/_inline-edit.scss +105 -0
  19. package/assets/scss/core/form.scss +58 -1
  20. package/assets/scss/core/image.scss +35 -0
  21. package/assets/scss/core/utilities/_base.scss +6 -6
  22. package/assets/scss/core/utilities/_grid.scss +4 -3
  23. package/assets/scss/core/utilities/_index.scss +1 -1
  24. package/assets/scss/core/utilities/_sizing.scss +2 -2
  25. package/assets/scss/sd-core.scss +1 -2
  26. package/components/autoid-inspector/src/autoid-inspector.component.d.ts +18 -0
  27. package/components/autoid-inspector/src/models/autoid-element.model.d.ts +45 -1
  28. package/components/autoid-inspector/src/models/autoid-export-format.model.d.ts +19 -0
  29. package/components/autoid-inspector/src/services/autoid-export.service.d.ts +10 -2
  30. package/components/autoid-inspector/src/services/autoid-scanner.service.d.ts +26 -3
  31. package/components/badge/src/badge.component.d.ts +20 -3
  32. package/components/button/src/button.component.d.ts +2 -1
  33. package/components/ckeditor-styles/index.d.ts +1 -0
  34. package/components/ckeditor-styles/src/ckeditor-styles.component.d.ts +25 -0
  35. package/components/form-generic/src/components/form-builder/form-builder.component.d.ts +12 -13
  36. package/components/form-generic/src/models/form-generic-component.model.d.ts +5 -6
  37. package/components/form-generic/src/models/form-generic-expression.model.d.ts +1 -1
  38. package/components/history/models/history.model.d.ts +2 -2
  39. package/components/index.d.ts +2 -0
  40. package/components/inform/index.d.ts +2 -0
  41. package/components/inform/src/inform-action.directive.d.ts +9 -0
  42. package/components/inform/src/inform.component.d.ts +59 -0
  43. package/components/modal/src/modal.component.d.ts +2 -1
  44. package/components/modal-resizable/index.d.ts +1 -0
  45. package/components/modal-resizable/src/modal-resizable.component.d.ts +29 -0
  46. package/components/operator/index.d.ts +1 -0
  47. package/components/operator/src/operator.component.d.ts +34 -0
  48. package/components/query-bar/index.d.ts +2 -0
  49. package/components/query-bar/src/components/actions-bar/actions-bar.component.d.ts +28 -0
  50. package/components/query-bar/src/components/build-chip/build-chip.component.d.ts +67 -0
  51. package/components/query-bar/src/components/chip-popover/chip-popover.component.d.ts +73 -0
  52. package/components/query-bar/src/components/field-picker/field-picker.component.d.ts +37 -0
  53. package/components/query-bar/src/components/inline-chip/inline-chip.component.d.ts +76 -0
  54. package/components/query-bar/src/components/inline-value-chip/inline-value-chip.component.d.ts +67 -0
  55. package/components/query-bar/src/components/popover-chip/popover-chip.component.d.ts +35 -0
  56. package/components/query-bar/src/components/saved-filters-menu/saved-filters-menu.component.d.ts +39 -0
  57. package/components/query-bar/src/query-bar.component.d.ts +137 -0
  58. package/components/query-bar/src/query-bar.model.d.ts +136 -0
  59. package/components/section/src/section.component.d.ts +2 -1
  60. package/components/stepper/index.d.ts +2 -0
  61. package/components/stepper/src/step.component.d.ts +17 -0
  62. package/components/stepper/src/stepper.component.d.ts +33 -0
  63. package/components/tab/index.d.ts +2 -0
  64. package/components/tab/src/tab-group.component.d.ts +37 -0
  65. package/components/tab/src/tab.component.d.ts +13 -0
  66. package/components/tab-router/src/decorators/tab.decorator.d.ts +2 -2
  67. package/components/tab-router/src/models/tab-router.model.d.ts +2 -2
  68. package/components/table/index.d.ts +1 -0
  69. package/components/table/src/components/column-title/column-title.component.d.ts +1 -1
  70. package/components/table/src/components/config/config.component.d.ts +3 -1
  71. package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts +3 -3
  72. package/components/table/src/components/filter/column-filter/column-filter.component.d.ts +3 -7
  73. package/components/table/src/components/selector-action/selector-action.component.d.ts +3 -1
  74. package/components/table/src/configurations/table.configuration.d.ts +3 -3
  75. package/components/table/src/directives/index.d.ts +1 -0
  76. package/components/table/src/directives/sd-table-cell-def.directive.d.ts +12 -4
  77. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +12 -4
  78. package/components/table/src/directives/sd-table-expand-def.directive.d.ts +10 -4
  79. package/components/table/src/directives/sd-table-filter-def.directive.d.ts +3 -3
  80. package/components/table/src/directives/sd-table-footer-def.directive.d.ts +12 -4
  81. package/components/table/src/directives/sd-table-group-def.directive.d.ts +44 -0
  82. package/components/table/src/directives/sd-table-title-def.directive.d.ts +10 -4
  83. package/components/table/src/models/index.d.ts +1 -0
  84. package/components/table/src/models/table-column.model.d.ts +13 -13
  85. package/components/table/src/models/table-command.model.d.ts +3 -2
  86. package/components/table/src/models/table-item.model.d.ts +19 -4
  87. package/components/table/src/models/table-option-export.model.d.ts +3 -3
  88. package/components/table/src/models/table-option-group.model.d.ts +19 -2
  89. package/components/table/src/models/table-option-selector.model.d.ts +17 -1
  90. package/components/table/src/models/table-option-tree.model.d.ts +96 -8
  91. package/components/table/src/models/table-option.model.d.ts +11 -2
  92. package/components/table/src/pipes/sd-group.pipe.d.ts +15 -1
  93. package/components/table/src/services/table-filter/table-filter.model.d.ts +9 -9
  94. package/components/table/src/services/table-filter/table-filter.service.d.ts +2 -2
  95. package/components/table/src/services/tree/tree.util.d.ts +43 -2
  96. package/components/table/src/table.component.d.ts +36 -11
  97. package/components/view/src/view.component.d.ts +35 -1
  98. package/directives/src/sd-desktop.directive.d.ts +2 -4
  99. package/directives/src/sd-mobile.directive.d.ts +2 -4
  100. package/fesm2022/sd-angular-core-components-anchor.mjs +75 -49
  101. package/fesm2022/sd-angular-core-components-anchor.mjs.map +1 -1
  102. package/fesm2022/sd-angular-core-components-autoid-inspector.mjs +254 -29
  103. package/fesm2022/sd-angular-core-components-autoid-inspector.mjs.map +1 -1
  104. package/fesm2022/sd-angular-core-components-avatar.mjs +2 -2
  105. package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -1
  106. package/fesm2022/sd-angular-core-components-badge.mjs +18 -3
  107. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  108. package/fesm2022/sd-angular-core-components-button.mjs +2 -2
  109. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  110. package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs +38 -0
  111. package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs.map +1 -0
  112. package/fesm2022/sd-angular-core-components-document-builder.mjs +10 -8
  113. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  114. package/fesm2022/sd-angular-core-components-editor.mjs +3 -2
  115. package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
  116. package/fesm2022/sd-angular-core-components-form-generic.mjs +149 -235
  117. package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
  118. package/fesm2022/sd-angular-core-components-history.mjs +3 -2
  119. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  120. package/fesm2022/sd-angular-core-components-inform.mjs +190 -0
  121. package/fesm2022/sd-angular-core-components-inform.mjs.map +1 -0
  122. package/fesm2022/sd-angular-core-components-mini-editor.mjs +4 -3
  123. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -1
  124. package/fesm2022/sd-angular-core-components-modal-resizable.mjs +158 -0
  125. package/fesm2022/sd-angular-core-components-modal-resizable.mjs.map +1 -0
  126. package/fesm2022/sd-angular-core-components-modal.mjs +2 -2
  127. package/fesm2022/sd-angular-core-components-modal.mjs.map +1 -1
  128. package/fesm2022/sd-angular-core-components-operator.mjs +77 -0
  129. package/fesm2022/sd-angular-core-components-operator.mjs.map +1 -0
  130. package/fesm2022/sd-angular-core-components-preview.mjs +4 -4
  131. package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
  132. package/fesm2022/sd-angular-core-components-query-bar.mjs +1384 -0
  133. package/fesm2022/sd-angular-core-components-query-bar.mjs.map +1 -0
  134. package/fesm2022/sd-angular-core-components-quick-action.mjs +2 -2
  135. package/fesm2022/sd-angular-core-components-quick-action.mjs.map +1 -1
  136. package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
  137. package/fesm2022/sd-angular-core-components-side-drawer.mjs +2 -2
  138. package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
  139. package/fesm2022/sd-angular-core-components-splitter.mjs +5 -2
  140. package/fesm2022/sd-angular-core-components-splitter.mjs.map +1 -1
  141. package/fesm2022/sd-angular-core-components-stepper.mjs +140 -0
  142. package/fesm2022/sd-angular-core-components-stepper.mjs.map +1 -0
  143. package/fesm2022/sd-angular-core-components-tab-router.mjs +3 -3
  144. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  145. package/fesm2022/sd-angular-core-components-tab.mjs +145 -0
  146. package/fesm2022/sd-angular-core-components-tab.mjs.map +1 -0
  147. package/fesm2022/sd-angular-core-components-table.mjs +576 -222
  148. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  149. package/fesm2022/sd-angular-core-components-upload-file.mjs +23 -23
  150. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  151. package/fesm2022/sd-angular-core-components-view.mjs +44 -9
  152. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -1
  153. package/fesm2022/sd-angular-core-components.mjs +2 -0
  154. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  155. package/fesm2022/sd-angular-core-directives.mjs +19 -21
  156. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  157. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +38 -14
  158. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  159. package/fesm2022/sd-angular-core-forms-checkbox.mjs +97 -87
  160. package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
  161. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +92 -61
  162. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
  163. package/fesm2022/sd-angular-core-forms-chip.mjs +89 -52
  164. package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
  165. package/fesm2022/sd-angular-core-forms-date-range.mjs +63 -10
  166. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  167. package/fesm2022/sd-angular-core-forms-date.mjs +39 -15
  168. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  169. package/fesm2022/sd-angular-core-forms-datetime.mjs +33 -14
  170. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  171. package/fesm2022/sd-angular-core-forms-directives.mjs +18 -24
  172. package/fesm2022/sd-angular-core-forms-directives.mjs.map +1 -1
  173. package/fesm2022/sd-angular-core-forms-inline-text.mjs +167 -0
  174. package/fesm2022/sd-angular-core-forms-inline-text.mjs.map +1 -0
  175. package/fesm2022/sd-angular-core-forms-input-color.mjs +119 -0
  176. package/fesm2022/sd-angular-core-forms-input-color.mjs.map +1 -0
  177. package/fesm2022/sd-angular-core-forms-input-number.mjs +66 -14
  178. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  179. package/fesm2022/sd-angular-core-forms-input.mjs +86 -29
  180. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  181. package/fesm2022/sd-angular-core-forms-models.mjs +44 -2
  182. package/fesm2022/sd-angular-core-forms-models.mjs.map +1 -1
  183. package/fesm2022/sd-angular-core-forms-radio.mjs +130 -175
  184. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  185. package/fesm2022/sd-angular-core-forms-select.mjs +66 -23
  186. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  187. package/fesm2022/sd-angular-core-forms-switch.mjs +95 -98
  188. package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
  189. package/fesm2022/sd-angular-core-forms-textarea.mjs +33 -12
  190. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  191. package/fesm2022/sd-angular-core-i18n.mjs +65 -0
  192. package/fesm2022/sd-angular-core-i18n.mjs.map +1 -1
  193. package/fesm2022/sd-angular-core-modules-auth.mjs +4 -4
  194. package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -1
  195. package/fesm2022/sd-angular-core-modules-authom.mjs +1 -1
  196. package/fesm2022/sd-angular-core-modules-authom.mjs.map +1 -1
  197. package/fesm2022/sd-angular-core-modules-layout.mjs +23 -23
  198. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  199. package/fesm2022/sd-angular-core-modules-permission.mjs +3 -3
  200. package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
  201. package/fesm2022/sd-angular-core-pipes.mjs +2 -2
  202. package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
  203. package/fesm2022/sd-angular-core-services-api.mjs +3 -3
  204. package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
  205. package/fesm2022/sd-angular-core-services-cache.mjs +3 -2
  206. package/fesm2022/sd-angular-core-services-cache.mjs.map +1 -1
  207. package/fesm2022/sd-angular-core-services-confirm.mjs +1 -1
  208. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  209. package/fesm2022/sd-angular-core-services-excel.mjs +6 -5
  210. package/fesm2022/sd-angular-core-services-excel.mjs.map +1 -1
  211. package/fesm2022/sd-angular-core-services-notify.mjs +18 -5
  212. package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
  213. package/fesm2022/sd-angular-core-services-storage.mjs +2 -2
  214. package/fesm2022/sd-angular-core-services-storage.mjs.map +1 -1
  215. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  216. package/forms/autocomplete/src/autocomplete.component.d.ts +24 -10
  217. package/forms/checkbox/src/checkbox.component.d.ts +21 -20
  218. package/forms/chip/src/chip.component.d.ts +25 -20
  219. package/forms/chip-calendar/src/chip-calendar.component.d.ts +27 -22
  220. package/forms/date/src/date.component.d.ts +23 -9
  221. package/forms/date-range/src/date-range.component.d.ts +28 -5
  222. package/forms/datetime/src/datetime.component.d.ts +21 -8
  223. package/forms/directives/src/item-def.directive.d.ts +10 -5
  224. package/forms/directives/src/label-def.directive.d.ts +3 -2
  225. package/forms/directives/src/suffix-def.directive.d.ts +3 -2
  226. package/forms/directives/src/view-def.directive.d.ts +9 -9
  227. package/forms/inline-text/index.d.ts +1 -0
  228. package/forms/inline-text/src/inline-text.component.d.ts +76 -0
  229. package/forms/input/src/input.component.d.ts +31 -13
  230. package/forms/input-color/index.d.ts +1 -0
  231. package/forms/input-color/src/input-color.component.d.ts +34 -0
  232. package/forms/input-number/src/input-number.component.d.ts +25 -9
  233. package/forms/models/index.d.ts +1 -0
  234. package/forms/models/src/sd-custom-validator.model.d.ts +13 -1
  235. package/forms/models/src/sd-viewed.d.ts +38 -0
  236. package/forms/radio/src/radio.component.d.ts +37 -38
  237. package/forms/select/src/select.component.d.ts +36 -14
  238. package/forms/switch/src/switch.component.d.ts +22 -23
  239. package/forms/textarea/src/textarea.component.d.ts +18 -8
  240. package/i18n/src/en.d.ts +11 -0
  241. package/modules/auth/configurations/auth.configuration.d.ts +4 -4
  242. package/modules/layout/configurations/layout.configuration.d.ts +3 -3
  243. package/modules/permission/src/configurations/permission.configuration.d.ts +3 -3
  244. package/package.json +92 -56
  245. package/sd-angular-core-19.0.3.tgz +0 -0
  246. package/services/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.d.ts +3 -3
  247. package/services/confirm/src/lib/confirm.service.d.ts +9 -9
  248. package/services/notify/src/components/toast/toast.component.d.ts +4 -0
  249. package/utilities/models/src/icon.model.d.ts +1 -1
  250. package/assets/scss/bootstrap-4.6.2/_alert.scss +0 -52
  251. package/assets/scss/bootstrap-4.6.2/_badge.scss +0 -54
  252. package/assets/scss/bootstrap-4.6.2/_breadcrumb.scss +0 -42
  253. package/assets/scss/bootstrap-4.6.2/_button-group.scss +0 -163
  254. package/assets/scss/bootstrap-4.6.2/_buttons.scss +0 -142
  255. package/assets/scss/bootstrap-4.6.2/_card.scss +0 -286
  256. package/assets/scss/bootstrap-4.6.2/_carousel.scss +0 -200
  257. package/assets/scss/bootstrap-4.6.2/_close.scss +0 -40
  258. package/assets/scss/bootstrap-4.6.2/_code.scss +0 -48
  259. package/assets/scss/bootstrap-4.6.2/_custom-forms.scss +0 -526
  260. package/assets/scss/bootstrap-4.6.2/_dropdown.scss +0 -192
  261. package/assets/scss/bootstrap-4.6.2/_forms.scss +0 -347
  262. package/assets/scss/bootstrap-4.6.2/_functions.scss +0 -190
  263. package/assets/scss/bootstrap-4.6.2/_grid.scss +0 -73
  264. package/assets/scss/bootstrap-4.6.2/_images.scss +0 -42
  265. package/assets/scss/bootstrap-4.6.2/_input-group.scss +0 -211
  266. package/assets/scss/bootstrap-4.6.2/_jumbotron.scss +0 -17
  267. package/assets/scss/bootstrap-4.6.2/_list-group.scss +0 -154
  268. package/assets/scss/bootstrap-4.6.2/_media.scss +0 -8
  269. package/assets/scss/bootstrap-4.6.2/_mixins.scss +0 -47
  270. package/assets/scss/bootstrap-4.6.2/_modal.scss +0 -240
  271. package/assets/scss/bootstrap-4.6.2/_nav.scss +0 -125
  272. package/assets/scss/bootstrap-4.6.2/_navbar.scss +0 -332
  273. package/assets/scss/bootstrap-4.6.2/_pagination.scss +0 -74
  274. package/assets/scss/bootstrap-4.6.2/_popover.scss +0 -170
  275. package/assets/scss/bootstrap-4.6.2/_print.scss +0 -132
  276. package/assets/scss/bootstrap-4.6.2/_progress.scss +0 -47
  277. package/assets/scss/bootstrap-4.6.2/_reboot.scss +0 -484
  278. package/assets/scss/bootstrap-4.6.2/_root.scss +0 -19
  279. package/assets/scss/bootstrap-4.6.2/_spinners.scss +0 -65
  280. package/assets/scss/bootstrap-4.6.2/_tables.scss +0 -185
  281. package/assets/scss/bootstrap-4.6.2/_toasts.scss +0 -46
  282. package/assets/scss/bootstrap-4.6.2/_tooltip.scss +0 -115
  283. package/assets/scss/bootstrap-4.6.2/_transitions.scss +0 -26
  284. package/assets/scss/bootstrap-4.6.2/_type.scss +0 -125
  285. package/assets/scss/bootstrap-4.6.2/_utilities.scss +0 -18
  286. package/assets/scss/bootstrap-4.6.2/_variables.scss +0 -1150
  287. package/assets/scss/bootstrap-4.6.2/bootstrap-grid.scss +0 -30
  288. package/assets/scss/bootstrap-4.6.2/bootstrap-reboot.scss +0 -12
  289. package/assets/scss/bootstrap-4.6.2/bootstrap.scss +0 -44
  290. package/assets/scss/bootstrap-4.6.2/mixins/_alert.scss +0 -13
  291. package/assets/scss/bootstrap-4.6.2/mixins/_background-variant.scss +0 -23
  292. package/assets/scss/bootstrap-4.6.2/mixins/_badge.scss +0 -17
  293. package/assets/scss/bootstrap-4.6.2/mixins/_border-radius.scss +0 -76
  294. package/assets/scss/bootstrap-4.6.2/mixins/_box-shadow.scss +0 -20
  295. package/assets/scss/bootstrap-4.6.2/mixins/_breakpoints.scss +0 -123
  296. package/assets/scss/bootstrap-4.6.2/mixins/_buttons.scss +0 -110
  297. package/assets/scss/bootstrap-4.6.2/mixins/_caret.scss +0 -62
  298. package/assets/scss/bootstrap-4.6.2/mixins/_clearfix.scss +0 -7
  299. package/assets/scss/bootstrap-4.6.2/mixins/_deprecate.scss +0 -10
  300. package/assets/scss/bootstrap-4.6.2/mixins/_float.scss +0 -14
  301. package/assets/scss/bootstrap-4.6.2/mixins/_forms.scss +0 -195
  302. package/assets/scss/bootstrap-4.6.2/mixins/_gradients.scss +0 -45
  303. package/assets/scss/bootstrap-4.6.2/mixins/_grid-framework.scss +0 -80
  304. package/assets/scss/bootstrap-4.6.2/mixins/_grid.scss +0 -69
  305. package/assets/scss/bootstrap-4.6.2/mixins/_hover.scss +0 -37
  306. package/assets/scss/bootstrap-4.6.2/mixins/_image.scss +0 -36
  307. package/assets/scss/bootstrap-4.6.2/mixins/_list-group.scss +0 -21
  308. package/assets/scss/bootstrap-4.6.2/mixins/_lists.scss +0 -7
  309. package/assets/scss/bootstrap-4.6.2/mixins/_nav-divider.scss +0 -11
  310. package/assets/scss/bootstrap-4.6.2/mixins/_pagination.scss +0 -22
  311. package/assets/scss/bootstrap-4.6.2/mixins/_reset-text.scss +0 -17
  312. package/assets/scss/bootstrap-4.6.2/mixins/_resize.scss +0 -6
  313. package/assets/scss/bootstrap-4.6.2/mixins/_screen-reader.scss +0 -34
  314. package/assets/scss/bootstrap-4.6.2/mixins/_size.scss +0 -7
  315. package/assets/scss/bootstrap-4.6.2/mixins/_table-row.scss +0 -39
  316. package/assets/scss/bootstrap-4.6.2/mixins/_text-emphasis.scss +0 -17
  317. package/assets/scss/bootstrap-4.6.2/mixins/_text-hide.scss +0 -11
  318. package/assets/scss/bootstrap-4.6.2/mixins/_text-truncate.scss +0 -8
  319. package/assets/scss/bootstrap-4.6.2/mixins/_transition.scss +0 -26
  320. package/assets/scss/bootstrap-4.6.2/mixins/_visibility.scss +0 -8
  321. package/assets/scss/bootstrap-4.6.2/utilities/_align.scss +0 -8
  322. package/assets/scss/bootstrap-4.6.2/utilities/_background.scss +0 -19
  323. package/assets/scss/bootstrap-4.6.2/utilities/_borders.scss +0 -75
  324. package/assets/scss/bootstrap-4.6.2/utilities/_clearfix.scss +0 -3
  325. package/assets/scss/bootstrap-4.6.2/utilities/_display.scss +0 -26
  326. package/assets/scss/bootstrap-4.6.2/utilities/_embed.scss +0 -39
  327. package/assets/scss/bootstrap-4.6.2/utilities/_flex.scss +0 -51
  328. package/assets/scss/bootstrap-4.6.2/utilities/_float.scss +0 -11
  329. package/assets/scss/bootstrap-4.6.2/utilities/_interactions.scss +0 -5
  330. package/assets/scss/bootstrap-4.6.2/utilities/_overflow.scss +0 -5
  331. package/assets/scss/bootstrap-4.6.2/utilities/_position.scss +0 -32
  332. package/assets/scss/bootstrap-4.6.2/utilities/_screenreaders.scss +0 -11
  333. package/assets/scss/bootstrap-4.6.2/utilities/_shadows.scss +0 -6
  334. package/assets/scss/bootstrap-4.6.2/utilities/_sizing.scss +0 -20
  335. package/assets/scss/bootstrap-4.6.2/utilities/_spacing.scss +0 -73
  336. package/assets/scss/bootstrap-4.6.2/utilities/_stretched-link.scss +0 -19
  337. package/assets/scss/bootstrap-4.6.2/utilities/_text.scss +0 -72
  338. package/assets/scss/bootstrap-4.6.2/utilities/_visibility.scss +0 -13
  339. package/assets/scss/bootstrap-4.6.2/vendor/_rfs.scss +0 -228
  340. package/assets/scss/core/bootstrap.scss +0 -13
  341. package/components/table/index.d.ts.map +0 -1
  342. package/components/table/sd-angular-core-components-table.d.ts.map +0 -1
  343. package/components/table/src/components/column-title/column-title.component.d.ts.map +0 -1
  344. package/components/table/src/components/command/desktop-command.component.d.ts.map +0 -1
  345. package/components/table/src/components/command/pipes/command.pipe.d.ts.map +0 -1
  346. package/components/table/src/components/command/pipes/filter.pipe.d.ts.map +0 -1
  347. package/components/table/src/components/config/config.component.d.ts.map +0 -1
  348. package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts.map +0 -1
  349. package/components/table/src/components/desktop-cell/view/view.component.d.ts.map +0 -1
  350. package/components/table/src/components/filter/column-filter/column-filter.component.d.ts.map +0 -1
  351. package/components/table/src/components/filter/external-filter/external-filter.component.d.ts.map +0 -1
  352. package/components/table/src/components/filter/index.d.ts.map +0 -1
  353. package/components/table/src/components/filter/mobile-filter/mobile-filter.component.d.ts.map +0 -1
  354. package/components/table/src/components/index.d.ts.map +0 -1
  355. package/components/table/src/components/popup-export/popup-export.component.d.ts.map +0 -1
  356. package/components/table/src/components/selector-action/action-filter.pipe.d.ts.map +0 -1
  357. package/components/table/src/components/selector-action/selector-action.component.d.ts.map +0 -1
  358. package/components/table/src/configurations/index.d.ts.map +0 -1
  359. package/components/table/src/configurations/table.configuration.d.ts.map +0 -1
  360. package/components/table/src/directives/index.d.ts.map +0 -1
  361. package/components/table/src/directives/sd-column-resize.directive.d.ts.map +0 -1
  362. package/components/table/src/directives/sd-table-cell-def.directive.d.ts.map +0 -1
  363. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts.map +0 -1
  364. package/components/table/src/directives/sd-table-expand-def.directive.d.ts.map +0 -1
  365. package/components/table/src/directives/sd-table-filter-def.directive.d.ts.map +0 -1
  366. package/components/table/src/directives/sd-table-footer-def.directive.d.ts.map +0 -1
  367. package/components/table/src/directives/sd-table-title-def.directive.d.ts.map +0 -1
  368. package/components/table/src/directives/sticky-shadow.directive.d.ts.map +0 -1
  369. package/components/table/src/models/index.d.ts.map +0 -1
  370. package/components/table/src/models/table-column.model.d.ts.map +0 -1
  371. package/components/table/src/models/table-command.model.d.ts.map +0 -1
  372. package/components/table/src/models/table-item.model.d.ts.map +0 -1
  373. package/components/table/src/models/table-option-config.model.d.ts.map +0 -1
  374. package/components/table/src/models/table-option-expand.model.d.ts.map +0 -1
  375. package/components/table/src/models/table-option-export.model.d.ts.map +0 -1
  376. package/components/table/src/models/table-option-group.model.d.ts.map +0 -1
  377. package/components/table/src/models/table-option-paginate.model.d.ts.map +0 -1
  378. package/components/table/src/models/table-option-reload.model.d.ts.map +0 -1
  379. package/components/table/src/models/table-option-selector.model.d.ts.map +0 -1
  380. package/components/table/src/models/table-option-sort.model.d.ts.map +0 -1
  381. package/components/table/src/models/table-option-style.model.d.ts.map +0 -1
  382. package/components/table/src/models/table-option-tree.model.d.ts.map +0 -1
  383. package/components/table/src/models/table-option.model.d.ts.map +0 -1
  384. package/components/table/src/pipes/filter-values.pipe.d.ts.map +0 -1
  385. package/components/table/src/pipes/index.d.ts.map +0 -1
  386. package/components/table/src/pipes/sd-group.pipe.d.ts.map +0 -1
  387. package/components/table/src/pipes/sd-tree.pipe.d.ts.map +0 -1
  388. package/components/table/src/pipes/selection-disabled.pipe.d.ts.map +0 -1
  389. package/components/table/src/pipes/selection-visible-select-all.pipe.d.ts.map +0 -1
  390. package/components/table/src/pipes/selection-visible.pipe.d.ts.map +0 -1
  391. package/components/table/src/services/column-width.util.d.ts.map +0 -1
  392. package/components/table/src/services/config.service.d.ts.map +0 -1
  393. package/components/table/src/services/index.d.ts.map +0 -1
  394. package/components/table/src/services/table-export/table-export.service.d.ts.map +0 -1
  395. package/components/table/src/services/table-filter/table-filter.model.d.ts.map +0 -1
  396. package/components/table/src/services/table-filter/table-filter.service.d.ts.map +0 -1
  397. package/components/table/src/services/table-format/table-format.service.d.ts.map +0 -1
  398. package/components/table/src/services/tree/tree.util.d.ts.map +0 -1
  399. package/components/table/src/table.component.d.ts.map +0 -1
  400. package/sd-angular-core-19.0.0-beta.99.tgz +0 -0
@@ -1,7 +1,7 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { SdTableOptionPaginate } from '../models/table-option-paginate.model';
3
3
  import { SdTableOptionFilter } from '../services/table-filter/table-filter.model';
4
- import { SdOperator } from '@sd-angular/core/utilities';
4
+ import { Operator } from '@sdcorejs/utils/models';
5
5
  import { SdTableColumn } from '../models';
6
6
  export interface ISdTableConfiguration {
7
7
  paginate?: {
@@ -21,8 +21,8 @@ export interface ISdTableConfiguration {
21
21
  /** Ẩn toolbar (xóa bộ lọc, thiết lập) của external filter, khi có ít external filter user không cần chức năng này, mặc định là false */
22
22
  hideExternalFilterToolbar?: SdTableOptionFilter['hideExternalFilterToolbar'];
23
23
  operator?: {
24
- list?: Partial<Record<SdTableColumn['type'], SdOperator[]>>;
25
- default?: Partial<Record<SdTableColumn['type'], SdOperator>>;
24
+ list?: Partial<Record<SdTableColumn['type'], Operator[]>>;
25
+ default?: Partial<Record<SdTableColumn['type'], Operator>>;
26
26
  };
27
27
  };
28
28
  images?: {
@@ -2,4 +2,5 @@ export * from './sd-table-column-filter-def.directive';
2
2
  export * from './sticky-shadow.directive';
3
3
  export * from './sd-table-title-def.directive';
4
4
  export * from './sd-table-cell-def.directive';
5
+ export * from './sd-table-group-def.directive';
5
6
  export * from './sd-column-resize.directive';
@@ -1,8 +1,16 @@
1
1
  import { TemplateRef } from '@angular/core';
2
+ import { SdTableColumn } from '../models/table-column.model';
2
3
  import * as i0 from "@angular/core";
3
- export declare class SdTableCellDefDirective {
4
+ interface Context<T = any> {
5
+ item: T;
6
+ column: SdTableColumn<T>;
7
+ autoId: string;
8
+ }
9
+ export declare class SdTableCellDefDirective<T = any> {
10
+ static ngTemplateContextGuard<T>(_dir: SdTableCellDefDirective<T>, _ctx: unknown): _ctx is Context<T>;
4
11
  sdTableCellDef: import("@angular/core").InputSignal<string>;
5
- templateRef: TemplateRef<any>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<SdTableCellDefDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableCellDefDirective, "[sdTableCellDef]", never, { "sdTableCellDef": { "alias": "sdTableCellDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ templateRef: TemplateRef<Context<T>>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTableCellDefDirective<any>, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableCellDefDirective<any>, "[sdTableCellDef]", never, { "sdTableCellDef": { "alias": "sdTableCellDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
15
  }
16
+ export {};
@@ -1,8 +1,16 @@
1
1
  import { TemplateRef } from '@angular/core';
2
+ import { SdTableColumn } from '../models/table-column.model';
2
3
  import * as i0 from "@angular/core";
3
- export declare class SdTableColumnFilterDefDirective {
4
+ interface Context<T = any> {
5
+ column: SdTableColumn<T>;
6
+ field: string;
7
+ disabled?: boolean;
8
+ }
9
+ export declare class SdTableColumnFilterDefDirective<T = any> {
10
+ static ngTemplateContextGuard<T>(_dir: SdTableColumnFilterDefDirective<T>, _ctx: unknown): _ctx is Context<T>;
4
11
  sdTableColumnFilterDef: import("@angular/core").InputSignal<string>;
5
- templateRef: TemplateRef<any>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<SdTableColumnFilterDefDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableColumnFilterDefDirective, "[sdTableColumnFilterDef]", never, { "sdTableColumnFilterDef": { "alias": "sdTableColumnFilterDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ templateRef: TemplateRef<Context<T>>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTableColumnFilterDefDirective<any>, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableColumnFilterDefDirective<any>, "[sdTableColumnFilterDef]", never, { "sdTableColumnFilterDef": { "alias": "sdTableColumnFilterDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
15
  }
16
+ export {};
@@ -1,7 +1,13 @@
1
1
  import { TemplateRef } from '@angular/core';
2
+ import { SdTableItem } from '../models/table-item.model';
2
3
  import * as i0 from "@angular/core";
3
- export declare class SdTableExpandDefDirective {
4
- templateRef: TemplateRef<any>;
5
- static ɵfac: i0.ɵɵFactoryDeclaration<SdTableExpandDefDirective, never>;
6
- static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableExpandDefDirective, "[sdTableExpandDef]", never, {}, {}, never, never, true, never>;
4
+ interface Context<T = any> {
5
+ item: SdTableItem<T>;
7
6
  }
7
+ export declare class SdTableExpandDefDirective<T = any> {
8
+ static ngTemplateContextGuard<T>(_dir: SdTableExpandDefDirective<T>, _ctx: unknown): _ctx is Context<T>;
9
+ templateRef: TemplateRef<Context<T>>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTableExpandDefDirective<any>, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableExpandDefDirective<any>, "[sdTableExpandDef]", never, {}, {}, never, never, true, never>;
12
+ }
13
+ export {};
@@ -1,13 +1,13 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  interface Context {
4
- externalFilter?: Record<string, any>;
4
+ externalFilter?: Record<string, unknown>;
5
5
  }
6
6
  export declare class SdTableFilterDefDirective {
7
- static ngTemplateContextGuard(dir: Context, ctx: unknown): ctx is Context;
7
+ static ngTemplateContextGuard(_dir: SdTableFilterDefDirective, _ctx: unknown): _ctx is Context;
8
8
  sdTableFilterDef: import("@angular/core").InputSignal<string>;
9
9
  defaultShowing: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
10
- templateRef: TemplateRef<any> | null;
10
+ templateRef: TemplateRef<Context> | null;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SdTableFilterDefDirective, never>;
12
12
  static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableFilterDefDirective, "[sdTableFilterDef]", never, { "sdTableFilterDef": { "alias": "sdTableFilterDef"; "required": true; "isSignal": true; }; "defaultShowing": { "alias": "defaultShowing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
13
  }
@@ -1,8 +1,16 @@
1
1
  import { TemplateRef } from '@angular/core';
2
+ import { SdTableColumn } from '../models/table-column.model';
3
+ import { SdTableItem } from '../models/table-item.model';
2
4
  import * as i0 from "@angular/core";
3
- export declare class SdMaterialFooterDefDirective {
5
+ interface Context<T = any> {
6
+ items: SdTableItem<T>[];
7
+ column: SdTableColumn<T>;
8
+ }
9
+ export declare class SdMaterialFooterDefDirective<T = any> {
10
+ static ngTemplateContextGuard<T>(_dir: SdMaterialFooterDefDirective<T>, _ctx: unknown): _ctx is Context<T>;
4
11
  sdTableFooterDef: import("@angular/core").InputSignal<string>;
5
- templateRef: TemplateRef<any>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<SdMaterialFooterDefDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<SdMaterialFooterDefDirective, "[sdTableFooterDef]", never, { "sdTableFooterDef": { "alias": "sdTableFooterDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ templateRef: TemplateRef<Context<T>>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdMaterialFooterDefDirective<any>, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdMaterialFooterDefDirective<any>, "[sdTableFooterDef]", never, { "sdTableFooterDef": { "alias": "sdTableFooterDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
15
  }
16
+ export {};
@@ -0,0 +1,44 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import { SdTableItem } from '../models/table-item.model';
3
+ import * as i0 from "@angular/core";
4
+ export interface SdTableGroupDefContext<T = any> {
5
+ /** Children items thuộc group hiện tại (kèm wrapper SdTableItem). */
6
+ items: SdTableItem<T>[];
7
+ /** Children raw data (đã unwrap khỏi SdTableItem) — tiện dùng trong template. */
8
+ data: T[];
9
+ /** Hash key của group (Utilities.hash(values)). */
10
+ key: string;
11
+ /** Resolved giá trị các field group — vd `{ customerId: 1, customerName: 'A' }`. */
12
+ values: Record<string, any>;
13
+ /** true nếu group đang expand, false nếu collapse (chỉ ý nghĩa khi option.group.collapsible). */
14
+ isExpanded: boolean;
15
+ /** true nếu mọi children selectable đều selected. */
16
+ isSelected: boolean;
17
+ /** true nếu một phần children selected (partial). */
18
+ indeterminate: boolean;
19
+ /** Toggle expand/collapse (chỉ chạy nếu collapsible). */
20
+ toggleExpand: () => void;
21
+ /** Toggle select-all cho cả group (chỉ chạy nếu selector visible). */
22
+ toggleSelect: () => void;
23
+ }
24
+ /**
25
+ * Directive cung cấp custom template render group header row trong sd-table.
26
+ * Thay thế cho htmlTemplate callback cũ — cho phép Angular template binding,
27
+ * pipes, components con (sd-badge, sd-button, …) bên trong.
28
+ *
29
+ * Ví dụ:
30
+ * ```html
31
+ * <sd-table [option]="opt">
32
+ * <ng-template sdTableGroupDef let-values="values" let-items="items" let-indeterminate="indeterminate">
33
+ * <b>Khách hàng: {{ values.customerName }}</b>
34
+ * <span>{{ items.length }} đơn hàng</span>
35
+ * </ng-template>
36
+ * </sd-table>
37
+ * ```
38
+ */
39
+ export declare class SdTableGroupDefDirective<T = any> {
40
+ static ngTemplateContextGuard<T>(_dir: SdTableGroupDefDirective<T>, _ctx: unknown): _ctx is SdTableGroupDefContext<T>;
41
+ templateRef: TemplateRef<SdTableGroupDefContext<T>>;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTableGroupDefDirective<any>, never>;
43
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableGroupDefDirective<any>, "[sdTableGroupDef]", never, {}, {}, never, never, true, never>;
44
+ }
@@ -1,8 +1,14 @@
1
1
  import { TemplateRef } from '@angular/core';
2
+ import { SdTableColumn } from '../models/table-column.model';
2
3
  import * as i0 from "@angular/core";
3
- export declare class SdTableTitleDefDirective {
4
+ interface Context<T = any> {
5
+ column: SdTableColumn<T>;
6
+ }
7
+ export declare class SdTableTitleDefDirective<T = any> {
8
+ static ngTemplateContextGuard<T>(_dir: SdTableTitleDefDirective<T>, _ctx: unknown): _ctx is Context<T>;
4
9
  sdTableTitleDef: import("@angular/core").InputSignal<string>;
5
- templateRef: TemplateRef<any>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<SdTableTitleDefDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableTitleDefDirective, "[sdTableTitleDef]", never, { "sdTableTitleDef": { "alias": "sdTableTitleDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
10
+ templateRef: TemplateRef<Context<T>>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTableTitleDefDirective<any>, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableTitleDefDirective<any>, "[sdTableTitleDef]", never, { "sdTableTitleDef": { "alias": "sdTableTitleDef"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
13
  }
14
+ export {};
@@ -2,3 +2,4 @@ export * from './table-option.model';
2
2
  export * from './table-column.model';
3
3
  export * from './table-command.model';
4
4
  export * from './table-option-tree.model';
5
+ export type { SdTableItem, SdTableMeta, SdTableDisplay } from './table-item.model';
@@ -1,7 +1,7 @@
1
1
  import { Signal, TemplateRef } from '@angular/core';
2
2
  import { SdBadge } from '@sd-angular/core/components/badge';
3
3
  import { SdSearch } from '@sd-angular/core/forms';
4
- import { SdNestedKeyOf, SdOperator } from '@sd-angular/core/utilities';
4
+ import { NestedKeyOf, Operator } from '@sdcorejs/utils/models';
5
5
  import { SdUnwrapSignal } from '@sd-angular/core/utilities/models';
6
6
  export type SdTableColumn<T = any> = SdTableColumnText<T> | SdTableColumnNumber<T> | SdTableColumnBool<T> | SdTableColumnDate<T> | SdTableColumnValues<T> | SdTableColumnLazyValues<T> | SdTableColumnChildren<T>;
7
7
  export type SdTableColumnTransformFunc<T = any> = (value: any, rowData: T, args?: {
@@ -46,9 +46,9 @@ interface SdTableColumnBase<T = any> {
46
46
  disabled?: boolean;
47
47
  default?: any;
48
48
  operator?: {
49
- default?: SdOperator;
49
+ default?: Operator;
50
50
  enable?: boolean;
51
- list?: SdOperator[];
51
+ list?: Operator[];
52
52
  };
53
53
  filterDef?: TemplateRef<any>;
54
54
  };
@@ -58,12 +58,12 @@ interface SdTableColumnBase<T = any> {
58
58
  };
59
59
  }
60
60
  interface SdTableColumnText<T = any> extends SdTableColumnBase<T> {
61
- field: SdNestedKeyOf<T>;
61
+ field: NestedKeyOf<T>;
62
62
  type: 'string';
63
63
  useBadge?: UseBadgeFunc<T>;
64
64
  }
65
65
  interface SdTableColumnNumber<T = any> extends SdTableColumnBase<T> {
66
- field: SdNestedKeyOf<T>;
66
+ field: NestedKeyOf<T>;
67
67
  type: 'number';
68
68
  useBadge?: UseBadgeFunc<T>;
69
69
  filter?: SdTableColumnBase['filter'] & {
@@ -71,7 +71,7 @@ interface SdTableColumnNumber<T = any> extends SdTableColumnBase<T> {
71
71
  };
72
72
  }
73
73
  interface SdTableColumnBool<T = any> extends SdTableColumnBase<T> {
74
- field: SdNestedKeyOf<T>;
74
+ field: NestedKeyOf<T>;
75
75
  type: 'boolean';
76
76
  useBadge?: UseBadgeFunc<T>;
77
77
  option?: {
@@ -80,7 +80,7 @@ interface SdTableColumnBool<T = any> extends SdTableColumnBase<T> {
80
80
  };
81
81
  }
82
82
  interface SdTableColumnDate<T = any> extends SdTableColumnBase<T> {
83
- field: SdNestedKeyOf<T>;
83
+ field: NestedKeyOf<T>;
84
84
  type: 'date' | 'datetime' | 'time';
85
85
  useBadge?: UseBadgeFunc<T>;
86
86
  filter?: SdTableColumnBase['filter'] & {
@@ -88,24 +88,24 @@ interface SdTableColumnDate<T = any> extends SdTableColumnBase<T> {
88
88
  };
89
89
  }
90
90
  export interface SdTableColumnValues<T = any, K = Record<string, any>> extends SdTableColumnBase<T> {
91
- field: SdNestedKeyOf<T>;
91
+ field: NestedKeyOf<T>;
92
92
  type: 'values';
93
93
  useBadge?: UseBadgeValuesFunc<T, K>;
94
94
  option: {
95
95
  items: K[] | Signal<K[]> | (() => Promise<K[]>);
96
- valueField: SdNestedKeyOf<K>;
97
- displayField: SdNestedKeyOf<K>;
96
+ valueField: NestedKeyOf<K>;
97
+ displayField: NestedKeyOf<K>;
98
98
  selection?: 'MULTIPLE';
99
99
  };
100
100
  }
101
101
  export interface SdTableColumnLazyValues<T = any, K = Record<string, any>> extends SdTableColumnBase<T> {
102
- field: SdNestedKeyOf<T>;
102
+ field: NestedKeyOf<T>;
103
103
  type: 'lazy-values';
104
104
  useBadge?: UseBadgeFunc<T>;
105
105
  option: {
106
106
  items: SdSearch<K>;
107
- valueField: SdNestedKeyOf<K>;
108
- displayField: SdNestedKeyOf<K>;
107
+ valueField: NestedKeyOf<K>;
108
+ displayField: NestedKeyOf<K>;
109
109
  views?: (values: string[]) => Promise<K[]>;
110
110
  selection?: 'MULTIPLE';
111
111
  };
@@ -1,11 +1,12 @@
1
- import { MaterialIconFontSet, SdColor } from '@sd-angular/core/utilities/models';
1
+ import { MaterialIconFontSet } from '@sd-angular/core/utilities/models';
2
+ import { Color } from '@sdcorejs/utils/models';
2
3
  export interface SdTableCommandOption<T = any> {
3
4
  align?: 'left' | 'right';
4
5
  commands?: SdTableCommand<T>[];
5
6
  }
6
7
  export type SdTableCommand<T = any> = SdTableCommandNormal<T> | SdTableCommandChildren<T>;
7
8
  export interface SdTableCommandNormal<T = any> {
8
- color?: SdColor;
9
+ color?: Color;
9
10
  icon?: string | ((rowData: T) => string);
10
11
  fontSet?: MaterialIconFontSet;
11
12
  title?: string | ((rowData: T) => string);
@@ -18,6 +18,12 @@ export interface SdTableMetaTree<T = any> {
18
18
  parentId?: string;
19
19
  /** Cached formatted child SdTableItem[] — populated on first expand/format */
20
20
  childItems?: SdTableItem<T>[];
21
+ /**
22
+ * Hierarchical index path từ root tới row hiện tại — sibling-index (1-based) per level.
23
+ * Vd root thứ nhất = [1], child thứ 2 của root đó = [1, 2], grandchild thứ 1 = [1, 2, 1].
24
+ * Template STT join('.') → "1", "1.2", "1.2.1". Populate trong `flattenTree`.
25
+ */
26
+ indexPath?: number[];
21
27
  }
22
28
  export interface SdTableDisplay {
23
29
  tooltip?: string;
@@ -32,15 +38,24 @@ export interface SdTableDisplay {
32
38
  isHtml: boolean;
33
39
  click?: () => void;
34
40
  }
41
+ export interface SdTableMetaGroup<T = any> {
42
+ /** Children items thuộc group này (chỉ set trên group header row). */
43
+ items?: SdTableItem<T>[];
44
+ /** true = row này là synthetic group header (sinh bởi SdGroupPipe). */
45
+ isGroupHeader?: boolean;
46
+ /** Hash key của group (= Utilities.hash(values)). */
47
+ key?: string;
48
+ /** Resolved group-field values (vd `{ customerId: 1, customerName: 'A' }`). */
49
+ values?: Record<string, any>;
50
+ /** Trạng thái expand. Chỉ ý nghĩa khi `option.group.collapsible = true`. */
51
+ isExpanded?: boolean;
52
+ }
35
53
  export interface SdTableMeta<T> {
36
54
  id: string;
37
55
  display: Record<string, SdTableDisplay>;
38
56
  selector?: SdTableMetaSelector;
39
57
  expand?: SdTableMetaExpand;
40
- group?: {
41
- htmlTemplate?: string;
42
- items?: SdTableItem<T>[];
43
- };
58
+ group?: SdTableMetaGroup<T>;
44
59
  tree?: SdTableMetaTree<T>;
45
60
  }
46
61
  export interface SdTableItem<T = any> {
@@ -1,4 +1,4 @@
1
- import { SdNestedKeyOf } from '@sd-angular/core/utilities';
1
+ import { NestedKeyOf } from '@sdcorejs/utils/models';
2
2
  import { SdTableFilterRequest } from '../services/table-filter/table-filter.model';
3
3
  export type SdTableOptionExport<T = any> = SdTableOptionExportDefault<T> | SdTableOptionExportCustom;
4
4
  export interface SdTableOptionExportDefault<T = any> {
@@ -23,7 +23,7 @@ export interface SdTableOptionExportCustom {
23
23
  onExport: (filterRequest: SdTableFilterRequest) => Promise<void>;
24
24
  }
25
25
  export interface SdTableOptionExportColumn<T = any> {
26
- field: SdNestedKeyOf<T>;
26
+ field: NestedKeyOf<T>;
27
27
  title: string;
28
28
  description?: string;
29
29
  width?: string;
@@ -36,7 +36,7 @@ export interface SdTableOptionExportSheet<T = any> {
36
36
  name: string;
37
37
  items: T[] | (() => T[] | Promise<T[]>);
38
38
  headers: {
39
- value: SdNestedKeyOf<T>;
39
+ value: NestedKeyOf<T>;
40
40
  display: string;
41
41
  }[];
42
42
  }
@@ -1,4 +1,21 @@
1
+ import { NestedKeyOf } from '@sdcorejs/utils/models';
1
2
  export interface SdTableOptionGroup<T = any> {
2
- fields: string[];
3
- htmlTemplate: (rowDatas: T[]) => string;
3
+ /**
4
+ * Danh sách field dùng để nhóm. Item có cùng giá trị tất cả `fields` sẽ vào cùng group.
5
+ * Ví dụ `['customerId']` group orders theo khách hàng.
6
+ * Type-safe qua `NestedKeyOf<T>` — hỗ trợ dot-notation cho nested object (vd `'customer.id'`).
7
+ */
8
+ fields: NestedKeyOf<T>[];
9
+ /**
10
+ * Mặc định group có collapse được không. true = render với UI có thể expand/collapse;
11
+ * false = luôn show toàn bộ children (mặc định).
12
+ */
13
+ collapsible?: boolean;
14
+ /** Nếu collapsible, mặc định trạng thái ban đầu: true = collapsed, false = expanded (default). */
15
+ defaultCollapsed?: boolean;
16
+ /**
17
+ * Predicate tùy chọn cho selection. Khi check `selectable` của group header.
18
+ * Mặc định: chỉ nhóm có >=1 child `selectable` mới hiển thị checkbox.
19
+ */
20
+ selectable?: (children: T[]) => boolean;
4
21
  }
@@ -21,6 +21,22 @@ export interface SdTableOptionSelector<T = any> {
21
21
  * Dùng khi cần programmatically set selected items từ bên ngoài.
22
22
  */
23
23
  defaultSelected?: (rowData: T) => boolean;
24
+ /**
25
+ * Giữ lại selection khi user chuyển trang / filter / sort / reload.
26
+ * Selection chỉ bị clear khi user bấm nút X (onClearSelection) hoặc bỏ chọn từng item.
27
+ *
28
+ * - Default (false): selection bị mất khi data items được re-fetch (server-side) hoặc
29
+ * item references thay đổi. Action bar chỉ hiển thị số item selected ở page hiện tại.
30
+ * - Enabled (true): table giữ map nội bộ selectedItems theo `meta.id` (hash của data).
31
+ * Sau mỗi #render, restore `isSelected` cho item nào id đã có trong map.
32
+ * `selectedTableItems()` trả về TOÀN BỘ item đã chọn xuyên trang (kể cả off-page),
33
+ * nên action bar + callback `click(items)` nhận đầy đủ data đang được chọn.
34
+ *
35
+ * Lưu ý: matching dựa trên `Utilities.hash(data)` — hai item có cùng data shape sẽ
36
+ * trùng id (mong muốn). Nếu data có timestamp/random field thay đổi giữa các lần fetch,
37
+ * id sẽ khác và selection không restore được.
38
+ */
39
+ preserveSelection?: boolean;
24
40
  }
25
41
  export type SdTableAction<T = any> = SdTableActionNormal<T> | SdTableActionChildren<T>;
26
42
  export interface SdTableActionNormal<T = any> {
@@ -34,7 +50,7 @@ export interface SdTableActionNormal<T = any> {
34
50
  * Font set của Material icon.
35
51
  * Kiểu thực tế lấy từ `SdButton['fontSet']` và chỉ hỗ trợ các giá trị thuộc `MaterialIconFontSet`,
36
52
  * ví dụ: `material-icons`, `material-icons-outlined`, `material-icons-round`,
37
- * `material-icons-sharp`, `material-symbols-outlined`.
53
+ * `material-icons-sharp`.
38
54
  * Nếu không truyền, `SdButton` sẽ dùng font set mặc định của nó.
39
55
  */
40
56
  fontSet?: SdUnwrapSignal<SdButton['fontSet']>;
@@ -1,12 +1,100 @@
1
- export interface SdTableOptionTree<T = any> {
2
- /** Key trên object row chứa mảng children. Mặc định: 'children' */
3
- childrenKey?: string;
4
- /** Giới hạn độ sâu cây. undefined = không giới hạn. */
1
+ import { NestedKeyOf } from '@sdcorejs/utils/models';
2
+ /**
3
+ * Cấu hình tree-rows cho `<sd-table>` — render dòng con inline dưới dòng cha
4
+ * kèm expand/collapse.
5
+ *
6
+ * Đây là discriminated union theo `loadType`:
7
+ * - `'static'` ({@link TableOptionTreeStatic}) — children đã nằm sẵn trong data
8
+ * (embedded array tại `childrenKey`). Không gọi API khi bung.
9
+ * - `'lazy'` ({@link TableOptionTreeLazy}) — children nạp theo yêu cầu qua
10
+ * `onExpandChildren` khi người dùng bung dòng lần đầu.
11
+ *
12
+ * `loadType` là discriminant: TypeScript dựa vào nó để narrow union (vd chỉ
13
+ * `static` mới có `childrenKey`/`defaultExpanded`, chỉ `lazy` mới có
14
+ * `onExpandChildren`). Dùng type-guard `isLazyTree()` trong `tree.util.ts` để
15
+ * narrow an toàn thay vì truy cập field trực tiếp trên union.
16
+ *
17
+ * @example Static (children embedded)
18
+ * ```ts
19
+ * tree: { loadType: 'static', childrenKey: 'children', defaultExpanded: 1 }
20
+ * ```
21
+ * @example Lazy (nạp theo yêu cầu)
22
+ * ```ts
23
+ * tree: { loadType: 'lazy', onExpandChildren: row => api.getChildren(row.id) }
24
+ * ```
25
+ */
26
+ export type SdTableOptionTree<T = any> = TableOptionTreeStatic<T> | TableOptionTreeLazy<T>;
27
+ /**
28
+ * Tree với dữ liệu children **embedded** sẵn trong mỗi row.
29
+ *
30
+ * Table đọc mảng con tại `childrenKey` ngay trên object data; không có lời gọi
31
+ * bất đồng bộ nào khi bung dòng. Đây cũng là chế độ hỗ trợ **search ở cấp con**
32
+ * cho table `type: 'local'` (xem `tree.util.ts#subtreeMatches` /
33
+ * `filterMatchingChildren`): khi lọc, một nhánh được giữ lại nếu chính nó hoặc
34
+ * bất kỳ hậu duệ nào khớp từ khoá, và nhánh khớp sẽ tự bung.
35
+ */
36
+ export interface TableOptionTreeStatic<T = any> {
37
+ /** Chế độ nạp children: dữ liệu đã embedded sẵn trong row. */
38
+ loadType: 'static';
39
+ /**
40
+ * Key trên object row chứa mảng children.
41
+ * Mặc định: `'children'`.
42
+ */
43
+ childrenKey?: NestedKeyOf<T> | 'children';
44
+ /**
45
+ * Giới hạn độ sâu cây (level gốc = 0).
46
+ * `undefined` = không giới hạn.
47
+ */
5
48
  maxDepth?: number;
6
- /** false | true | number (mở tới cấp N) */
49
+ /**
50
+ * Trạng thái bung mặc định khi load:
51
+ * - `false` — thu gọn hết (mặc định)
52
+ * - `true` — bung toàn bộ
53
+ * - `number N` — bung tới cấp `N` (row có `level < N` được bung)
54
+ */
7
55
  defaultExpanded?: boolean | number;
8
- /** Lazy load khi row chưa có children embedded */
9
- onExpandChildren?: (rowData: T) => Promise<T[]> | T[];
10
- /** Pixel indent mỗi cấp. Mặc định: 20 */
56
+ /**
57
+ * Số pixel thụt lề (indent) cho mỗi cấp sâu.
58
+ * Mặc định: `20`.
59
+ */
60
+ indentSize?: number;
61
+ }
62
+ /**
63
+ * Tree với children **nạp lười (lazy)** theo yêu cầu.
64
+ *
65
+ * Khi người dùng bung một dòng lần đầu mà dòng đó chưa có children embedded,
66
+ * table gọi `onExpandChildren(row)` để nạp; kết quả được cache lại trên row
67
+ * (ghi vào key `'children'`) nên các lần bung sau không gọi lại.
68
+ *
69
+ * Lazy tree **không hỗ trợ** `childrenKey` tuỳ biến (luôn dùng `'children'` làm
70
+ * nơi lưu kết quả) và **không hỗ trợ** `defaultExpanded` (không thể bung mặc
71
+ * định nhánh chưa nạp).
72
+ */
73
+ export interface TableOptionTreeLazy<T = any> {
74
+ /** Chế độ nạp children: nạp lười theo yêu cầu khi bung. */
75
+ loadType: 'lazy';
76
+ /**
77
+ * Giới hạn độ sâu cây (level gốc = 0).
78
+ * `undefined` = không giới hạn.
79
+ */
80
+ maxDepth?: number;
81
+ /**
82
+ * Hàm nạp children khi bung dòng chưa có children embedded.
83
+ * Trả về `Promise<T[]>`; kết quả được ghi vào key `'children'` của row data
84
+ * và cache cho các lần bung sau.
85
+ */
86
+ onExpandChildren: (rowData: T) => Promise<T[]>;
87
+ /**
88
+ * Xác định một row có con hay không — để quyết định có hiển thị icon expand.
89
+ * - Không truyền: MỌI lazy node đều hiện icon expand (không biết trước được).
90
+ * - Truyền: chỉ hiện icon khi trả `true`; trả `false` ⇒ row là lá (ẩn icon,
91
+ * không gọi `onExpandChildren`).
92
+ * Lưu ý: nếu row đã có children embedded sẵn thì luôn coi là có con (bỏ qua hàm này).
93
+ */
94
+ hasChildren?: (rowData: T) => boolean;
95
+ /**
96
+ * Số pixel thụt lề (indent) cho mỗi cấp sâu.
97
+ * Mặc định: `20`.
98
+ */
11
99
  indentSize?: number;
12
100
  }
@@ -1,4 +1,4 @@
1
- import { SdPagingReq } from '@sd-angular/core/utilities';
1
+ import { PagingReq } from '@sdcorejs/utils/models';
2
2
  import { SdTableFilterRequest, SdTableOptionFilter } from '../services/table-filter/table-filter.model';
3
3
  import { SdTableColumn } from './table-column.model';
4
4
  import { SdTableCommand, SdTableCommandOption } from './table-command.model';
@@ -86,6 +86,15 @@ interface SdTableBaseOption<T = any> {
86
86
  /** Width của cột (mặc định '50px'). */
87
87
  width?: string;
88
88
  };
89
+ /**
90
+ * Bật cột filler ở cuối row để hấp thụ leftover width khi tổng width các cột data < container.
91
+ * Khi enabled = true, các cột utility (selection / STT / command) không bị browser stretch trên màn rộng.
92
+ * Mặc định off — table tự stretch cột data theo `width: 100%` như cũ.
93
+ */
94
+ filler?: {
95
+ /** Bật/tắt cột filler. */
96
+ enabled?: boolean;
97
+ };
89
98
  /**
90
99
  * Cấu hình kéo-thả đổi thứ tự dòng.
91
100
  * Chỉ bật khi table cho phép reorder dữ liệu phía client.
@@ -155,7 +164,7 @@ interface SdTableServerOption<T = any> extends SdTableBaseOption<T> {
155
164
  * `pagingReq` là dữ liệu paging đã được chuẩn hóa để dễ map sang API backend.
156
165
  * Hàm cần trả về `{ items, total }` để table render và tính phân trang.
157
166
  */
158
- items: (filterRequest: SdTableFilterRequest<T>, pagingReq: SdPagingReq<T>) => Promise<{
167
+ items: (filterRequest: SdTableFilterRequest<T>, pagingReq: PagingReq<T>) => Promise<{
159
168
  items: T[];
160
169
  total: number;
161
170
  }>;
@@ -3,7 +3,21 @@ import { SdTableOption } from '../models/table-option.model';
3
3
  import { SdTableItem } from '../models/table-item.model';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class SdGroupPipe implements PipeTransform {
6
- transform(items: SdTableItem[], gridOption: SdTableOption): SdTableItem[];
6
+ /**
7
+ * Nhóm items theo `option.group.fields`. Mỗi group sinh ra 1 synthetic SdTableItem
8
+ * (group header) đặt trước children. Header có `meta.group.isGroupHeader = true` + `key`
9
+ * + `values` + `items` + `isExpanded` để template + table consume.
10
+ *
11
+ * Khi `option.group.collapsible = true` + group đang collapse → children bị lọc khỏi output.
12
+ *
13
+ * `expandState` (optional, owned by component) — Map<key, expanded> giữ trạng thái
14
+ * expand/collapse qua các lần transform. Pipe đọc state từ Map; nếu key chưa tồn tại,
15
+ * dùng `!option.group.defaultCollapsed`. Pipe ghi state về Map cho lần read sau.
16
+ *
17
+ * @example
18
+ * `_items | sdGroup: _tableOption : groupExpandState`
19
+ */
20
+ transform(items: SdTableItem[], gridOption: SdTableOption, expandState?: Map<string, boolean>): SdTableItem[];
7
21
  static ɵfac: i0.ɵɵFactoryDeclaration<SdGroupPipe, never>;
8
22
  static ɵpipe: i0.ɵɵPipeDeclaration<SdGroupPipe, "sdGroup", true>;
9
23
  }