@sdcorejs/angular 19.1.2 → 19.1.4

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 (343) hide show
  1. package/README.md +127 -807
  2. package/components/anchor/src/index.d.ts +1 -1
  3. package/components/anchor/src/models/index.d.ts +1 -1
  4. package/components/audit-diff/index.d.ts +2 -0
  5. package/components/audit-diff/src/audit-diff.component.d.ts +30 -0
  6. package/components/audit-diff/src/audit-diff.engine.d.ts +40 -0
  7. package/components/badge/src/badge.component.d.ts +1 -1
  8. package/components/breadcrumb/index.d.ts +1 -0
  9. package/components/breadcrumb/src/breadcrumb.component.d.ts +50 -0
  10. package/components/data-state/index.d.ts +1 -0
  11. package/components/data-state/src/data-state.component.d.ts +40 -0
  12. package/components/document-builder/index.d.ts +2 -2
  13. package/components/document-builder/src/components/header-footer-builder/header-footer-builder.component.d.ts +1 -2
  14. package/components/document-builder/src/document-builder.component.d.ts +4 -4
  15. package/components/document-builder/src/plugins/index.d.ts +1 -1
  16. package/components/editor/index.d.ts +1 -1
  17. package/components/editor/src/models/index.d.ts +2 -2
  18. package/components/form-generic/src/components/form-builder/components/attribute-expression/attribute-expression.component.d.ts +7 -8
  19. package/components/form-generic/src/components/form-builder/components/attribute-input/attribute-input.component.d.ts +4 -5
  20. package/components/form-generic/src/components/form-builder/components/attribute-input-number/attribute-input-number.component.d.ts +1 -2
  21. package/components/form-generic/src/components/form-builder/components/attribute-parameter/attribute-parameter.component.d.ts +6 -5
  22. package/components/form-generic/src/components/form-builder/components/attribute-select/attribute-select.component.d.ts +4 -5
  23. package/components/form-generic/src/components/form-builder/components/attribute-selection/attribute-selection.component.d.ts +9 -9
  24. package/components/form-generic/src/components/form-builder/components/attribute-selection/components/build-queries/build-queries.component.d.ts +8 -7
  25. package/components/form-generic/src/components/form-builder/components/attribute-selection/components/build-variables/build-variables.component.d.ts +8 -7
  26. package/components/form-generic/src/components/form-builder/components/attribute-switch/attribute-switch.component.d.ts +3 -4
  27. package/components/form-generic/src/components/form-builder/components/attribute-table/attribute-table.component.d.ts +5 -6
  28. package/components/form-generic/src/components/form-builder/components/attribute-template/attribute-template.component.d.ts +1 -2
  29. package/components/form-generic/src/components/form-builder/components/attribute-textarea/attribute-textarea.component.d.ts +4 -5
  30. package/components/form-generic/src/components/form-builder/components/checkbox/attribute/checkbox-attribute.component.d.ts +6 -6
  31. package/components/form-generic/src/components/form-builder/components/chip-calendar/attribute/chip-calendar-attribute.component.d.ts +6 -6
  32. package/components/form-generic/src/components/form-builder/components/chip-calendar/control/chip-calendar-control.component.d.ts +3 -3
  33. package/components/form-generic/src/components/form-builder/components/chip-string/attribute/chip-string-attribute.component.d.ts +6 -6
  34. package/components/form-generic/src/components/form-builder/components/chip-string/control/chip-string-control.component.d.ts +3 -3
  35. package/components/form-generic/src/components/form-builder/components/configure-validation/configure-validation.component.d.ts +2 -2
  36. package/components/form-generic/src/components/form-builder/components/datetime/attribute/datetime-attribute.component.d.ts +6 -6
  37. package/components/form-generic/src/components/form-builder/components/datetime/control/datetime-control.component.d.ts +3 -3
  38. package/components/form-generic/src/components/form-builder/components/expression-builder/expression-builder.component.d.ts +6 -5
  39. package/components/form-generic/src/components/form-builder/components/html/attribute/components/build-queries/build-queries.component.d.ts +7 -6
  40. package/components/form-generic/src/components/form-builder/components/html/attribute/html-attribute.component.d.ts +7 -8
  41. package/components/form-generic/src/components/form-builder/components/html/control/html-control.component.d.ts +3 -4
  42. package/components/form-generic/src/components/form-builder/components/number/attribute/number-attribute.component.d.ts +6 -6
  43. package/components/form-generic/src/components/form-builder/components/number/control/number-control.component.d.ts +3 -3
  44. package/components/form-generic/src/components/form-builder/components/radio/attribute/radio-attribute.component.d.ts +6 -6
  45. package/components/form-generic/src/components/form-builder/components/radio/control/radio-control.component.d.ts +3 -3
  46. package/components/form-generic/src/components/form-builder/components/select/attribute/select-attribute.component.d.ts +6 -6
  47. package/components/form-generic/src/components/form-builder/components/select/control/select-control.component.d.ts +3 -3
  48. package/components/form-generic/src/components/form-builder/components/table/attribute/table-attribute.component.d.ts +6 -6
  49. package/components/form-generic/src/components/form-builder/components/table/control/table-control.component.d.ts +3 -3
  50. package/components/form-generic/src/components/form-builder/components/textarea/attribute/textarea-attribute.component.d.ts +6 -6
  51. package/components/form-generic/src/components/form-builder/components/textarea/control/textarea-control.component.d.ts +3 -3
  52. package/components/form-generic/src/components/form-builder/components/textfield/attribute/textfield-attribute.component.d.ts +6 -6
  53. package/components/form-generic/src/components/form-builder/components/textfield/control/textfield-control.component.d.ts +3 -3
  54. package/components/form-generic/src/components/form-builder/components/upload/attribute/upload-attribute.component.d.ts +6 -6
  55. package/components/form-generic/src/components/form-builder/components/upload/control/upload-control.component.d.ts +3 -3
  56. package/components/form-generic/src/components/form-builder/form-builder.component.d.ts +25 -2
  57. package/components/form-generic/src/components/form-render/components/item/components/chip-calendar/chip-calendar.component.d.ts +7 -6
  58. package/components/form-generic/src/components/form-render/components/item/components/chip-string/chip-string.component.d.ts +7 -6
  59. package/components/form-generic/src/components/form-render/components/item/components/datetime/datetime.component.d.ts +7 -7
  60. package/components/form-generic/src/components/form-render/components/item/components/html/html.component.d.ts +6 -6
  61. package/components/form-generic/src/components/form-render/components/item/components/number/number.component.d.ts +7 -6
  62. package/components/form-generic/src/components/form-render/components/item/components/radio/radio.component.d.ts +6 -7
  63. package/components/form-generic/src/components/form-render/components/item/components/select/select.component.d.ts +6 -7
  64. package/components/form-generic/src/components/form-render/components/item/components/table/table.component.d.ts +8 -8
  65. package/components/form-generic/src/components/form-render/components/item/components/textarea/textarea.component.d.ts +7 -6
  66. package/components/form-generic/src/components/form-render/components/item/components/textfield/textfield.component.d.ts +7 -6
  67. package/components/form-generic/src/components/form-render/components/item/components/upload/upload.component.d.ts +7 -6
  68. package/components/form-generic/src/components/form-render/components/item/item.component.d.ts +4 -4
  69. package/components/form-generic/src/components/sd-feel-expression/sd-feel-expression.component.d.ts +8 -9
  70. package/components/form-generic/src/configurations/index.d.ts +1 -1
  71. package/components/form-generic/src/models/form-render/index.d.ts +2 -2
  72. package/components/form-generic/src/models/index.d.ts +6 -6
  73. package/components/form-generic/src/pipes/component-viewed.pipe.d.ts +2 -3
  74. package/components/form-generic/src/pipes/html.pipe.d.ts +2 -2
  75. package/components/form-generic/src/services/form-render.service.d.ts +2 -2
  76. package/components/import-excel/index.d.ts +1 -1
  77. package/components/import-excel/src/import-excel.component.d.ts +4 -7
  78. package/components/import-excel/src/pipes/column-transform.pipe.d.ts +3 -2
  79. package/components/index.d.ts +4 -0
  80. package/components/job-progress/index.d.ts +1 -0
  81. package/components/job-progress/src/job-progress.component.d.ts +34 -0
  82. package/components/mini-editor/index.d.ts +1 -1
  83. package/components/mini-editor/src/mini-editor.component.d.ts +7 -7
  84. package/components/modal/src/modal.component.d.ts +6 -1
  85. package/components/org-chart/index.d.ts +1 -1
  86. package/components/preview/index.d.ts +5 -2
  87. package/components/preview/src/preview-pdf/preview-pdf.browser.d.ts +28 -0
  88. package/components/preview/src/preview-pdf/preview-pdf.component.d.ts +61 -23
  89. package/components/preview/src/preview-pdf/preview-pdf.pdfjs.d.ts +77 -0
  90. package/components/preview/src/preview-pdf/preview-pdf.print.d.ts +10 -0
  91. package/components/preview/src/preview-pdf/preview-pdf.types.d.ts +11 -9
  92. package/components/side-drawer/src/side-drawer.component.d.ts +6 -1
  93. package/components/tab/src/tab-group.component.d.ts +1 -0
  94. package/components/tab/src/tab.component.d.ts +7 -1
  95. package/components/tab-router/src/components/tab-router-item/tab-router-item.component.d.ts +3 -4
  96. package/components/tab-router/src/pipes/tab-info.pipe.d.ts +2 -2
  97. package/components/tab-router/src/services/tab-decorator.service.d.ts +2 -1
  98. package/components/table/index.d.ts +1 -1
  99. package/components/table/src/components/filter/column-filter/column-filter.component.d.ts +1 -1
  100. package/components/table/src/components/popup-export/popup-export.component.d.ts +6 -6
  101. package/components/table/src/models/index.d.ts +4 -4
  102. package/components/table/src/models/table-column.model.d.ts +1 -1
  103. package/components/table/src/services/config.service.d.ts +3 -2
  104. package/components/table/src/services/table-filter/table-filter.model.d.ts +1 -1
  105. package/components/table/src/services/table-filter/table-filter.service.d.ts +2 -2
  106. package/components/tree/index.d.ts +1 -1
  107. package/components/tree/src/tree.component.d.ts +13 -2
  108. package/components/tree/src/tree.model.d.ts +11 -0
  109. package/components/upload-file/src/components/preview/preview.component.d.ts +4 -4
  110. package/directives/src/sd-hover-copy.directive.d.ts +6 -5
  111. package/directives/src/sd-href.directive.d.ts +2 -2
  112. package/directives/src/sd-scroll.directive.d.ts +3 -2
  113. package/fesm2022/sdcorejs-angular-components-anchor.mjs +14 -14
  114. package/fesm2022/sdcorejs-angular-components-anchor.mjs.map +1 -1
  115. package/fesm2022/sdcorejs-angular-components-audit-diff.mjs +332 -0
  116. package/fesm2022/sdcorejs-angular-components-audit-diff.mjs.map +1 -0
  117. package/fesm2022/sdcorejs-angular-components-badge.mjs +1 -0
  118. package/fesm2022/sdcorejs-angular-components-badge.mjs.map +1 -1
  119. package/fesm2022/sdcorejs-angular-components-breadcrumb.mjs +121 -0
  120. package/fesm2022/sdcorejs-angular-components-breadcrumb.mjs.map +1 -0
  121. package/fesm2022/sdcorejs-angular-components-data-state.mjs +68 -0
  122. package/fesm2022/sdcorejs-angular-components-data-state.mjs.map +1 -0
  123. package/fesm2022/sdcorejs-angular-components-document-builder.mjs +16 -21
  124. package/fesm2022/sdcorejs-angular-components-document-builder.mjs.map +1 -1
  125. package/fesm2022/sdcorejs-angular-components-editor.mjs +6 -4
  126. package/fesm2022/sdcorejs-angular-components-editor.mjs.map +1 -1
  127. package/fesm2022/sdcorejs-angular-components-form-generic.mjs +600 -853
  128. package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
  129. package/fesm2022/sdcorejs-angular-components-import-excel.mjs +25 -40
  130. package/fesm2022/sdcorejs-angular-components-import-excel.mjs.map +1 -1
  131. package/fesm2022/sdcorejs-angular-components-job-progress.mjs +97 -0
  132. package/fesm2022/sdcorejs-angular-components-job-progress.mjs.map +1 -0
  133. package/fesm2022/sdcorejs-angular-components-mini-editor.mjs +9 -19
  134. package/fesm2022/sdcorejs-angular-components-mini-editor.mjs.map +1 -1
  135. package/fesm2022/sdcorejs-angular-components-modal.mjs +60 -3
  136. package/fesm2022/sdcorejs-angular-components-modal.mjs.map +1 -1
  137. package/fesm2022/sdcorejs-angular-components-preview.mjs +1437 -217
  138. package/fesm2022/sdcorejs-angular-components-preview.mjs.map +1 -1
  139. package/fesm2022/sdcorejs-angular-components-query-bar.mjs +9 -17
  140. package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
  141. package/fesm2022/sdcorejs-angular-components-query-builder.mjs +1 -1
  142. package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
  143. package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +38 -1
  144. package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
  145. package/fesm2022/sdcorejs-angular-components-tab-router.mjs +76 -52
  146. package/fesm2022/sdcorejs-angular-components-tab-router.mjs.map +1 -1
  147. package/fesm2022/sdcorejs-angular-components-tab.mjs +47 -3
  148. package/fesm2022/sdcorejs-angular-components-tab.mjs.map +1 -1
  149. package/fesm2022/sdcorejs-angular-components-table.mjs +121 -87
  150. package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
  151. package/fesm2022/sdcorejs-angular-components-tree.mjs +187 -17
  152. package/fesm2022/sdcorejs-angular-components-tree.mjs.map +1 -1
  153. package/fesm2022/sdcorejs-angular-components-upload-file.mjs +16 -22
  154. package/fesm2022/sdcorejs-angular-components-upload-file.mjs.map +1 -1
  155. package/fesm2022/sdcorejs-angular-components.mjs +4 -0
  156. package/fesm2022/sdcorejs-angular-components.mjs.map +1 -1
  157. package/fesm2022/sdcorejs-angular-directives.mjs +29 -41
  158. package/fesm2022/sdcorejs-angular-directives.mjs.map +1 -1
  159. package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +9 -8
  160. package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
  161. package/fesm2022/sdcorejs-angular-forms-checkbox.mjs +20 -73
  162. package/fesm2022/sdcorejs-angular-forms-checkbox.mjs.map +1 -1
  163. package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs +8 -4
  164. package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs.map +1 -1
  165. package/fesm2022/sdcorejs-angular-forms-chip.mjs +8 -4
  166. package/fesm2022/sdcorejs-angular-forms-chip.mjs.map +1 -1
  167. package/fesm2022/sdcorejs-angular-forms-date-range.mjs +18 -14
  168. package/fesm2022/sdcorejs-angular-forms-date-range.mjs.map +1 -1
  169. package/fesm2022/sdcorejs-angular-forms-date.mjs +48 -70
  170. package/fesm2022/sdcorejs-angular-forms-date.mjs.map +1 -1
  171. package/fesm2022/sdcorejs-angular-forms-datetime.mjs +63 -529
  172. package/fesm2022/sdcorejs-angular-forms-datetime.mjs.map +1 -1
  173. package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs +384 -0
  174. package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs.map +1 -0
  175. package/fesm2022/sdcorejs-angular-forms-input-color.mjs +4 -2
  176. package/fesm2022/sdcorejs-angular-forms-input-color.mjs.map +1 -1
  177. package/fesm2022/sdcorejs-angular-forms-input-number.mjs +15 -10
  178. package/fesm2022/sdcorejs-angular-forms-input-number.mjs.map +1 -1
  179. package/fesm2022/sdcorejs-angular-forms-input.mjs +296 -58
  180. package/fesm2022/sdcorejs-angular-forms-input.mjs.map +1 -1
  181. package/fesm2022/sdcorejs-angular-forms-models.mjs +155 -2
  182. package/fesm2022/sdcorejs-angular-forms-models.mjs.map +1 -1
  183. package/fesm2022/sdcorejs-angular-forms-radio.mjs +44 -68
  184. package/fesm2022/sdcorejs-angular-forms-radio.mjs.map +1 -1
  185. package/fesm2022/sdcorejs-angular-forms-select.mjs +8 -21
  186. package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
  187. package/fesm2022/sdcorejs-angular-forms-switch.mjs +19 -66
  188. package/fesm2022/sdcorejs-angular-forms-switch.mjs.map +1 -1
  189. package/fesm2022/sdcorejs-angular-forms-textarea.mjs +8 -6
  190. package/fesm2022/sdcorejs-angular-forms-textarea.mjs.map +1 -1
  191. package/fesm2022/sdcorejs-angular-forms-time-range.mjs +279 -0
  192. package/fesm2022/sdcorejs-angular-forms-time-range.mjs.map +1 -0
  193. package/fesm2022/sdcorejs-angular-forms-time.mjs +309 -0
  194. package/fesm2022/sdcorejs-angular-forms-time.mjs.map +1 -0
  195. package/fesm2022/sdcorejs-angular-forms-tree-select.mjs +210 -0
  196. package/fesm2022/sdcorejs-angular-forms-tree-select.mjs.map +1 -0
  197. package/fesm2022/sdcorejs-angular-forms.mjs +73 -4
  198. package/fesm2022/sdcorejs-angular-forms.mjs.map +1 -1
  199. package/fesm2022/sdcorejs-angular-i18n.mjs +355 -10
  200. package/fesm2022/sdcorejs-angular-i18n.mjs.map +1 -1
  201. package/fesm2022/sdcorejs-angular-interceptors.mjs +12 -17
  202. package/fesm2022/sdcorejs-angular-interceptors.mjs.map +1 -1
  203. package/fesm2022/sdcorejs-angular-modules-icon.mjs.map +1 -1
  204. package/fesm2022/sdcorejs-angular-modules-layout.mjs +859 -78
  205. package/fesm2022/sdcorejs-angular-modules-layout.mjs.map +1 -1
  206. package/fesm2022/sdcorejs-angular-modules.mjs +0 -1
  207. package/fesm2022/sdcorejs-angular-modules.mjs.map +1 -1
  208. package/fesm2022/sdcorejs-angular-pipes.mjs +5 -7
  209. package/fesm2022/sdcorejs-angular-pipes.mjs.map +1 -1
  210. package/fesm2022/sdcorejs-angular-services-api.mjs +407 -137
  211. package/fesm2022/sdcorejs-angular-services-api.mjs.map +1 -1
  212. package/fesm2022/sdcorejs-angular-services-cache.mjs +515 -105
  213. package/fesm2022/sdcorejs-angular-services-cache.mjs.map +1 -1
  214. package/fesm2022/sdcorejs-angular-services-confirm.mjs +5 -7
  215. package/fesm2022/sdcorejs-angular-services-confirm.mjs.map +1 -1
  216. package/fesm2022/sdcorejs-angular-services-docx.mjs +7 -10
  217. package/fesm2022/sdcorejs-angular-services-docx.mjs.map +1 -1
  218. package/fesm2022/sdcorejs-angular-services-loading.mjs +340 -66
  219. package/fesm2022/sdcorejs-angular-services-loading.mjs.map +1 -1
  220. package/fesm2022/sdcorejs-angular-services-notify.mjs +7 -10
  221. package/fesm2022/sdcorejs-angular-services-notify.mjs.map +1 -1
  222. package/fesm2022/sdcorejs-angular-services-persistence.mjs +899 -0
  223. package/fesm2022/sdcorejs-angular-services-persistence.mjs.map +1 -0
  224. package/fesm2022/sdcorejs-angular-services-storage.mjs +324 -122
  225. package/fesm2022/sdcorejs-angular-services-storage.mjs.map +1 -1
  226. package/fesm2022/sdcorejs-angular-services-task.mjs +389 -0
  227. package/fesm2022/sdcorejs-angular-services-task.mjs.map +1 -0
  228. package/fesm2022/sdcorejs-angular-services-unsaved-changes.mjs +255 -0
  229. package/fesm2022/sdcorejs-angular-services-unsaved-changes.mjs.map +1 -0
  230. package/fesm2022/sdcorejs-angular-services-viewport.mjs +76 -0
  231. package/fesm2022/sdcorejs-angular-services-viewport.mjs.map +1 -0
  232. package/fesm2022/sdcorejs-angular-services.mjs +4 -0
  233. package/fesm2022/sdcorejs-angular-services.mjs.map +1 -1
  234. package/forms/autocomplete/src/autocomplete.component.d.ts +3 -4
  235. package/forms/checkbox/src/checkbox.component.d.ts +4 -8
  236. package/forms/date/src/date.component.d.ts +4 -3
  237. package/forms/date-range/src/date-range.component.d.ts +5 -8
  238. package/forms/datetime/src/datetime.component.d.ts +4 -3
  239. package/forms/entity-picker/index.d.ts +1 -0
  240. package/forms/entity-picker/src/entity-picker.component.d.ts +123 -0
  241. package/forms/index.d.ts +6 -0
  242. package/forms/input/index.d.ts +1 -0
  243. package/forms/input/src/input-mask.d.ts +43 -0
  244. package/forms/input/src/input.component.d.ts +28 -9
  245. package/forms/input-color/src/input-color.component.d.ts +3 -1
  246. package/forms/input-number/src/input-number.component.d.ts +4 -2
  247. package/forms/models/index.d.ts +3 -2
  248. package/forms/models/src/sd-form-control-connector.d.ts +86 -0
  249. package/forms/radio/src/radio.component.d.ts +12 -8
  250. package/forms/src/forms.module.d.ts +9 -5
  251. package/forms/switch/src/switch.component.d.ts +4 -7
  252. package/forms/time/index.d.ts +3 -0
  253. package/forms/time/src/time-picker.adapter.d.ts +13 -0
  254. package/forms/time/src/time-value.d.ts +19 -0
  255. package/forms/time/src/time.component.d.ts +78 -0
  256. package/forms/time-range/index.d.ts +2 -0
  257. package/forms/time-range/src/time-range-value.d.ts +14 -0
  258. package/forms/time-range/src/time-range.component.d.ts +80 -0
  259. package/forms/tree-select/index.d.ts +1 -0
  260. package/forms/tree-select/src/tree-select.component.d.ts +71 -0
  261. package/i18n/src/en.d.ts +68 -2
  262. package/interceptors/no-internet/no-internet.interceptor.d.ts +2 -3
  263. package/interceptors/unauthorized/unauthorized.interceptor.d.ts +2 -2
  264. package/modules/auth/services/index.d.ts +1 -1
  265. package/modules/icon/src/icon.model.d.ts +1 -2
  266. package/modules/icon/src/icon.provider.d.ts +1 -1
  267. package/modules/index.d.ts +0 -1
  268. package/modules/layout/components/index.d.ts +6 -0
  269. package/modules/layout/components/layout-main/layout-main.component.d.ts +7 -2
  270. package/modules/layout/components/shared/menu-tree/menu-tree.component.d.ts +28 -0
  271. package/modules/layout/components/shared/user-menu/user-menu.component.d.ts +25 -0
  272. package/modules/layout/components/sidebar-mobile-v2/main.component.d.ts +27 -0
  273. package/modules/layout/components/sidebar-mobile-v3/main.component.d.ts +28 -0
  274. package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +3 -4
  275. package/modules/layout/components/sidebar-v1/main.component.d.ts +2 -2
  276. package/modules/layout/components/sidebar-v2/main.component.d.ts +36 -0
  277. package/modules/layout/components/sidebar-v3/main.component.d.ts +29 -0
  278. package/modules/layout/configurations/layout.configuration.d.ts +36 -2
  279. package/modules/layout/index.d.ts +1 -0
  280. package/modules/layout/pipes/menu.pipe.d.ts +2 -2
  281. package/modules/layout/services/index.d.ts +4 -1
  282. package/modules/layout/services/layout.service.d.ts +2 -2
  283. package/modules/layout/services/menu/menu.utils.d.ts +6 -0
  284. package/modules/layout/services/navigation-state/navigation-state.service.d.ts +18 -0
  285. package/modules/layout/services/responsive/responsive.service.d.ts +12 -0
  286. package/modules/layout/services/storage/storage.service.d.ts +21 -8
  287. package/package.json +50 -5
  288. package/pipes/src/safe-html.pipe.d.ts +2 -2
  289. package/services/api/src/api.model.d.ts +54 -15
  290. package/services/api/src/api.service.d.ts +13 -8
  291. package/services/api/src/interceptors/api.interceptor.d.ts +1 -1
  292. package/services/cache/src/cache.model.d.ts +46 -13
  293. package/services/cache/src/cache.service.d.ts +5 -2
  294. package/services/confirm/src/lib/confirm.service.d.ts +2 -2
  295. package/services/docx/src/lib/docx.service.d.ts +2 -3
  296. package/services/excel/src/public-api.d.ts +1 -1
  297. package/services/index.d.ts +4 -0
  298. package/services/loading/src/loading.service.d.ts +15 -8
  299. package/services/notify/src/components/toast/toast.component.d.ts +2 -3
  300. package/services/persistence/index.d.ts +5 -0
  301. package/services/persistence/src/graph-serializer.d.ts +16 -0
  302. package/services/persistence/src/persistence-envelope.d.ts +28 -0
  303. package/services/persistence/src/persistence-key.d.ts +17 -0
  304. package/services/persistence/src/persistence.model.d.ts +63 -0
  305. package/services/persistence/src/storage-adapter.d.ts +29 -0
  306. package/services/storage/src/storage.model.d.ts +20 -5
  307. package/services/storage/src/storage.service.d.ts +6 -3
  308. package/services/task/index.d.ts +3 -0
  309. package/services/task/src/task.model.d.ts +75 -0
  310. package/services/task/src/task.service.d.ts +14 -0
  311. package/services/task/src/task.tokens.d.ts +12 -0
  312. package/services/unsaved-changes/index.d.ts +4 -0
  313. package/services/unsaved-changes/src/unsaved-changes.adapters.d.ts +15 -0
  314. package/services/unsaved-changes/src/unsaved-changes.model.d.ts +41 -0
  315. package/services/unsaved-changes/src/unsaved-changes.service.d.ts +16 -0
  316. package/services/unsaved-changes/src/unsaved-changes.tokens.d.ts +9 -0
  317. package/services/viewport/index.d.ts +3 -0
  318. package/services/viewport/src/viewport.model.d.ts +12 -0
  319. package/services/viewport/src/viewport.service.d.ts +18 -0
  320. package/services/viewport/src/viewport.tokens.d.ts +6 -0
  321. package/utilities/models/index.d.ts +7 -7
  322. package/fesm2022/sdcorejs-angular-modules-authom.mjs +0 -360
  323. package/fesm2022/sdcorejs-angular-modules-authom.mjs.map +0 -1
  324. package/forms/datetime/src/material-datetime/index.d.ts +0 -14
  325. package/forms/datetime/src/material-datetime/lib/core/date-adapter.d.ts +0 -10
  326. package/forms/datetime/src/material-datetime/lib/core/date-formats.d.ts +0 -18
  327. package/forms/datetime/src/material-datetime/lib/core/default-options.d.ts +0 -13
  328. package/forms/datetime/src/material-datetime/lib/datetime-picker/datetime-picker-actions.component.d.ts +0 -5
  329. package/forms/datetime/src/material-datetime/lib/datetime-picker/datetime-picker-apply.directive.d.ts +0 -7
  330. package/forms/datetime/src/material-datetime/lib/datetime-picker/datetime-picker-cancel.directive.d.ts +0 -7
  331. package/forms/datetime/src/material-datetime/lib/datetime-picker/datetime-picker-input.directive.d.ts +0 -24
  332. package/forms/datetime/src/material-datetime/lib/datetime-picker/datetime-picker-now.directive.d.ts +0 -7
  333. package/forms/datetime/src/material-datetime/lib/datetime-picker/datetime-picker-toggle.directive.d.ts +0 -8
  334. package/forms/datetime/src/material-datetime/lib/datetime-picker/datetime-picker.component.d.ts +0 -39
  335. package/forms/datetime/src/material-datetime/lib/native/native-date-adapter.d.ts +0 -15
  336. package/forms/datetime/src/material-datetime/lib/native/native-date-formats.d.ts +0 -2
  337. package/forms/datetime/src/material-datetime/lib/native/provide-native.d.ts +0 -3
  338. package/forms/datetime/src/material-datetime/lib/time-spinner/time-spinner.component.d.ts +0 -31
  339. package/modules/authom/authom.configuration.d.ts +0 -17
  340. package/modules/authom/authom.interceptor.d.ts +0 -3
  341. package/modules/authom/authom.module.d.ts +0 -16
  342. package/modules/authom/authom.service.d.ts +0 -32
  343. package/modules/authom/index.d.ts +0 -35
@@ -1 +1 @@
1
- {"version":3,"file":"sdcorejs-angular-forms-date.mjs","sources":["../../../projects/sdcorejs-angular/forms/date/src/date.component.ts","../../../projects/sdcorejs-angular/forms/date/src/date.component.html","../../../projects/sdcorejs-angular/forms/date/sdcorejs-angular-forms-date.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n input,\n model,\n computed,\n effect,\n untracked,\n OnDestroy,\n OnInit,\n output,\n TemplateRef,\n viewChild,\n contentChild,\n} from '@angular/core';\nimport { AbstractControl, FormGroup, FormsModule, NgForm, ReactiveFormsModule, ValidatorFn, Validators } from '@angular/forms';\nimport { provideDateFnsAdapter } from '@angular/material-date-fns-adapter';\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatDatepicker, MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { FloatLabelType, MatFormFieldAppearance, MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { SdView } from '@sdcorejs/angular/components/view';\nimport { SdLabelDefDirective, SdViewDefDirective } from '@sdcorejs/angular/forms/directives';\nimport { SdLabel } from '@sdcorejs/angular/forms/label';\nimport {\n SD_FORM_CONFIGURATION,\n SdFormControl,\n SdInlineErrorValidator,\n SdViewed,\n SdViewedInput,\n sdViewedInline,\n sdViewedTransform,\n} from '@sdcorejs/angular/forms/models';\nimport { sdSerializeDataValue, sdIsEmpty } from '@sdcorejs/angular/utilities/data-state';\nimport { sdFormControlState } from '@sdcorejs/angular/forms/models';\nimport { I18nService } from '@sdcorejs/angular/i18n';\nimport { Size } from '@sdcorejs/utils/models';\nimport { DateUtilities } from '@sdcorejs/angular/utilities/extensions';\nimport { BrowserUtilities, Utilities } from '@sdcorejs/utils/fns';\nimport { parse as parseDate } from 'date-fns';\nimport { enUS as dfEnUS } from 'date-fns/locale';\nimport { Subscription } from 'rxjs';\nimport { SdIcon } from '@sdcorejs/angular/modules/icon';\n\n@Component({\n selector: 'sd-date',\n templateUrl: './date.component.html',\n styleUrl: './date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class.sd-bare]': 'isInline()', '[class.sd-viewed]': 'isViewed() || isInline()', '[class.sd-has-label]': '!!label()' },\n providers: [\n // DateFnsAdapter inject MAT_DATE_LOCALE; nếu undefined sẽ throw khi format/parse.\n // Provide locale en-US tại scope component để hành vi giống Moment cũ (English default).\n { provide: MAT_DATE_LOCALE, useValue: dfEnUS },\n provideDateFnsAdapter({\n parse: { dateInput: 'dd/MM/yyyy' },\n display: {\n dateInput: 'dd/MM/yyyy',\n monthYearLabel: 'MMM yyyy',\n dateA11yLabel: 'PP',\n monthYearA11yLabel: 'MMMM yyyy',\n },\n }),\n ],\n standalone: true,\n imports: [SdIcon,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatTooltipModule,\n MatFormFieldModule,\n MatDatepickerModule,\n SdLabel,\n SdView,\n ],\n})\nexport class SdDate implements OnDestroy, OnInit {\n id = `I${Utilities.generateUuid()}`;\n\n // ==========================================\n // 1. SIGNAL QUERIES\n // ==========================================\n inputRef = viewChild<ElementRef<HTMLInputElement>>('input');\n datePicker = viewChild<MatDatepicker<Date>>(MatDatepicker);\n\n sdLabelTemplate = contentChild<TemplateRef<any>>('sdLabel');\n sdValueTemplate = contentChild<TemplateRef<any>>('sdValue');\n sdViewDef = contentChild(SdViewDefDirective);\n sdLabelDef = contentChild(SdLabelDefDirective);\n\n // ==========================================\n // 2. INJECTS\n // ==========================================\n private ref = inject(ChangeDetectorRef);\n private formConfig = inject(SD_FORM_CONFIGURATION, { optional: true });\n readonly #i18n = inject(I18nService);\n\n // ==========================================\n // 3. SIGNAL INPUTS & MODEL\n // ==========================================\n autoIdInput = input<string | undefined | null>(undefined, { alias: 'autoId' });\n autoId = computed(() => (this.autoIdInput() ? `forms-date-${this.autoIdInput()}` : undefined));\n\n readonly #state = sdFormControlState(computed(() => this.formControl));\n readonly dataDisabled = computed(() => (this.#state().disabled ? 'true' : 'false'));\n readonly dataInvalid = computed(() => (this.#state().invalid ? 'true' : 'false'));\n readonly dataEmpty = computed(() => (sdIsEmpty(this.#state().value) ? 'true' : 'false'));\n readonly dataValue = computed(() => sdSerializeDataValue(this.#state().value));\n\n readonly dataRequired = computed(() => (this.required() ? 'true' : 'false'));\n readonly dataErrorMessage = computed(() => {\n void this.#state();\n const msg = this.errorMessage();\n return msg && msg.length > 0 ? msg : null;\n });\n\n name = input<string>(Utilities.generateUuid());\n\n size = input<Size>('md');\n // Ghi (TransformT): any (để không bị lỗi typing khi cha truyền vào)\n form = input<FormGroup | undefined, any>(undefined, {\n transform: (val: any): FormGroup | undefined => {\n if (!val) return undefined;\n // Nếu cha truyền vào NgForm (template-driven) -> Bóc lấy FormGroup bên trong\n if (val instanceof NgForm) return val.form;\n // Nếu cha truyền sẵn FormGroup (reactive) -> Lấy luôn\n if (val instanceof FormGroup) return val;\n // Fallback an toàn phòng trường hợp cha truyền 1 object chứa form\n if (val?.form instanceof FormGroup) return val.form;\n return undefined;\n },\n });\n label = input<string | undefined>();\n helperText = input<string | undefined>();\n placeholder = input<string | undefined>();\n\n hideInlineError = input(false, { transform: booleanAttribute });\n required = input(false, { transform: booleanAttribute });\n disabled = input(false, { transform: booleanAttribute });\n /** Display mode: `false` edit · `true` static view · `'inline'` view + click-to-edit (calendar). */\n viewed = input<SdViewed, SdViewedInput>(false, { transform: sdViewedTransform });\n /** In `viewed='inline'`, show a hover clear-× on the text face. Set `false` when the host owns removal (chips). */\n clearable = input(true, { transform: booleanAttribute });\n\n // Tri-state `viewed` — shared primitive. In `'inline'` the calendar editor is always mounted\n // (chrome hidden via CSS); the sd-view text face opens the calendar on click.\n readonly #viewedState = sdViewedInline(this.viewed, () => this.open(), this.disabled);\n /** `true` when `viewed === 'inline'`. */\n readonly isInline = this.#viewedState.isInline;\n /** `true` when `viewed === true` (static view, no editor). */\n readonly isViewed = this.#viewedState.isViewed;\n /** Open the calendar from the inline text face. No-op unless `viewed='inline'`. */\n enterInlineEdit = (): void => this.#viewedState.enterInlineEdit();\n /** View display template: `sdViewDef` overrides the projected `#sdValue` (unified). */\n readonly viewTemplate = computed<TemplateRef<any> | undefined>(() => this.sdViewDef()?.templateRef ?? this.sdValueTemplate());\n\n inlineError = input<string | undefined>();\n\n /**\n * Tổng hợp error message để hiển thị trong tooltip khi hideInlineError = true.\n */\n readonly errorMessage = computed<string | undefined>(() => {\n void this.#state();\n const errors = this.formControl.errors;\n if (!errors) return undefined;\n\n if (errors['required']) return this.#i18n.t('core.form.date.required');\n if (errors['matDatepickerMin']) {\n const d = this.resolvedMin();\n return this.#i18n.t('core.form.date.min-date', { date: d ? new Date(d).toLocaleDateString('vi-VN') : '' });\n }\n if (errors['matDatepickerMax']) {\n const d = this.resolvedMax();\n return this.#i18n.t('core.form.date.max-date', { date: d ? new Date(d).toLocaleDateString('vi-VN') : '' });\n }\n if (errors['matDatetimePickerParse'])\n return this.#i18n.t('core.form.date.parse-error', { text: errors['matDatetimePickerParse']?.text ?? '' });\n if (errors['date']) return errors['date'] as string;\n if (errors['customValidator']) return errors['customValidator'] as string;\n if (errors['inlineError']) return this.inlineError();\n return undefined;\n });\n\n hyperlink = input<string | null | undefined>();\n\n appearanceInput = input<MatFormFieldAppearance | undefined>(undefined, { alias: 'appearance' });\n appearance = computed(() => this.appearanceInput() ?? this.formConfig?.appearance ?? 'outline');\n\n floatLabel = input<FloatLabelType>('auto');\n\n // Xử lý thông minh Gom min/minDate và max/maxDate\n minInput = input<any>(undefined, { alias: 'min' });\n minDateInput = input<any>(undefined, { alias: 'minDate' });\n resolvedMin = computed(() => this.#parseDateBoundary(this.minInput() ?? this.minDateInput()));\n\n maxInput = input<any>(undefined, { alias: 'max' });\n maxDateInput = input<any>(undefined, { alias: 'maxDate' });\n resolvedMax = computed(() => this.#parseDateBoundary(this.maxInput() ?? this.maxDateInput()));\n\n valueModel = model<string | number | Date | undefined | null>(undefined, { alias: 'model' });\n\n // ==========================================\n // 4. SIGNAL OUTPUTS\n // ==========================================\n sdChange = output<any>();\n sdFocus = output<void>();\n\n // ==========================================\n // 5. INTERNAL STATE & STREAMS\n // ==========================================\n isMobileOrTablet = BrowserUtilities.isMobile();\n formControl = new SdFormControl();\n isFocused = false;\n isValid?: boolean;\n\n #date: string | undefined | null;\n #subscription = new Subscription();\n\n constructor() {\n // EFFECT 1: Sync model thay đổi từ bên ngoài (String/Date -> Date)\n // Material date-fns adapter dùng native Date làm internal type cho FormControl.\n effect(() => {\n let val = this.valueModel();\n untracked(() => {\n if (!DateUtilities.isDate(val)) {\n val = null;\n }\n val = DateUtilities.toFormat(val, 'yyyy/MM/dd');\n if (this.#date !== val) {\n this.#date = val;\n const dateObj = DateUtilities.isDate(this.#date)\n ? parseDate(DateUtilities.toFormat(this.#date, 'yyyy/MM/dd'), 'yyyy/MM/dd', new Date())\n : null;\n this.formControl.setValue(dateObj, { emitEvent: false });\n }\n });\n });\n\n // EFFECT 2: Sync Disable\n effect(() => {\n if (this.disabled()) this.formControl.disable({ emitEvent: false });\n else this.formControl.enable({ emitEvent: false });\n });\n\n // EFFECT 3: Update Validators\n effect(() => {\n const req = this.required();\n const inl = this.inlineError();\n\n untracked(() => {\n const validators: ValidatorFn[] = [];\n if (req) validators.push(Validators.required);\n if (inl) validators.push(SdInlineErrorValidator);\n\n this.formControl.setValidators(validators.length ? validators : null);\n this.formControl.updateValueAndValidity({ emitEvent: false });\n });\n });\n }\n\n ngOnInit() {\n this.#subscription.add(\n this.formControl.sdChanges.subscribe(() => {\n this.ref.markForCheck();\n })\n );\n const formGroup = this.form();\n formGroup?.addControl(this.name(), this.formControl);\n }\n\n ngOnDestroy() {\n const formGroup = this.form();\n formGroup?.removeControl(this.name());\n this.#subscription.unsubscribe();\n }\n\n // Hàm private tái sử dụng cho parse Min/Max Date\n #parseDateBoundary(val: any): Date | null {\n if (val === 'TODAY') return new Date();\n if (val && DateUtilities.isDate(val)) return new Date(val);\n return null;\n }\n\n onFocus = () => {\n this.isFocused = true;\n this.sdFocus.emit();\n };\n\n onBlur = () => {\n this.isFocused = false;\n };\n\n onClick = () => {\n if (this.sdViewDef()?.templateRef) {\n if (!this.formControl.disabled && !this.isFocused) {\n this.focus();\n }\n }\n };\n\n blur = () => {\n this.inputRef()?.nativeElement?.blur();\n };\n\n focus = () => {\n this.isFocused = true;\n setTimeout(() => {\n this.inputRef()?.nativeElement?.focus();\n this.datePicker()?.open();\n }, 100);\n };\n\n /** Open the datepicker calendar programmatically (anchors to the field input). */\n open = () => {\n if (this.formControl.disabled) return;\n this.datePicker()?.open();\n };\n\n focusInputElement() {\n this.inputRef()?.nativeElement?.focus();\n }\n\n onKeyDown = (event: KeyboardEvent) => {\n const key = event.keyCode || event.charCode;\n const isShift = key === 16;\n\n if (event.ctrlKey && (key === 67 || key === 86)) return true;\n\n if (\n ((key >= 48 && key <= 57) ||\n key === 8 ||\n key <= 37 ||\n key <= 39 ||\n (key >= 96 && key <= 105) ||\n key === 191 ||\n key === 186 ||\n key === 59) &&\n !isShift\n ) {\n return true;\n }\n return false;\n };\n\n onKeyup = (event: any) => {\n const currentVal: string = event.target.value;\n const formControl: AbstractControl = this.formControl;\n const regex = /^([1-9]|([012][0-9])|(3[01]))\\/([0]{0,1}[1-9]|1[012])\\/\\d\\d\\d\\d$/g;\n\n if (currentVal && !regex.test(currentVal)) {\n setTimeout(() => {\n this.isValid = true;\n formControl.markAsDirty();\n formControl.markAsTouched();\n formControl.setErrors({ ...formControl.errors, date: this.#i18n.t('core.form.date.invalid-format') });\n }, 0);\n } else {\n setTimeout(() => {\n this.isValid = false;\n formControl.setErrors({ ...formControl.errors, date: null });\n this.formControl.updateValueAndValidity();\n }, 0);\n }\n };\n\n onChange = (event: MatDatepickerInputEvent<Date>) => {\n // event.value giờ là native Date (date-fns adapter), không cần .toDate() như Moment.\n const value = DateUtilities.toFormat(event.value, 'yyyy/MM/dd');\n this.inputRef()?.nativeElement?.focus();\n\n if (!this.isValid) {\n if (this.#date !== value) {\n this.valueModel.set(value);\n this.sdChange.emit(value);\n }\n } else {\n this.isValid = false;\n this.formControl.setValue(null);\n this.valueModel.set(null);\n this.sdChange.emit(null);\n }\n };\n\n clear = ($event: any) => {\n $event?.stopPropagation();\n if (this.formControl.value) {\n this.formControl.setValue(null);\n this.valueModel.set(null);\n this.sdChange.emit(null);\n }\n };\n}\n","@let _label = label();\n@let _appearance = appearance();\n@let _hideInlineError = hideInlineError();\n@let _errorMessage = errorMessage();\n@let _helperText = helperText();\n@let _required = required();\n@let _isInline = isInline();\n@let _bare = _isInline;\n@let _hasValue = !!formControl.value;\n\n@let _resolvedMin = resolvedMin();\n@let _resolvedMax = resolvedMax();\n\n@if (isViewed()) {\n <sd-view\n [label]=\"_label\"\n [labelTemplate]=\"sdLabelTemplate()\"\n [value]=\"formControl.value\"\n [display]=\"formControl.value | date: 'dd/MM/yyyy'\"\n [hyperlink]=\"hyperlink()\"\n [valueTemplate]=\"viewTemplate()\">\n </sd-view>\n} @else {\n @if (_isInline) {\n <!-- why: inline — sd-view là \"mặt\" + trigger; calendar editor render ẩn (.sd-inline-editor) chỉ để mở panel. -->\n <span class=\"sd-inline-view\" role=\"button\" tabindex=\"0\" (click)=\"enterInlineEdit()\" (keydown.enter)=\"enterInlineEdit()\">\n <sd-view\n [label]=\"_label\"\n [labelTemplate]=\"sdLabelTemplate()\"\n [value]=\"formControl.value\"\n [display]=\"formControl.value | date: 'dd/MM/yyyy'\"\n [hyperlink]=\"hyperlink()\"\n [valueTemplate]=\"viewTemplate()\">\n </sd-view>\n @if (clearable() && _hasValue && !_required && !formControl.disabled) {\n <button type=\"button\" class=\"sd-inline-clear\" (click)=\"clear($event)\" title=\"Xóa\" aria-label=\"Xóa\">\n <sd-icon name=\"close\"></sd-icon>\n </button>\n }\n </span>\n }\n @if (!_appearance) {\n <ng-content select=\"[sdLabel]\">\n @if (_label) {\n <sd-label [label]=\"_label\" [required]=\"_required\"></sd-label>\n }\n </ng-content>\n }\n\n <div\n class=\"d-flex align-items-center\"\n [class.sd-inline-editor]=\"_isInline\"\n [class.c-focused]=\"isFocused\"\n [class.c-disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n aria-hidden=\"true\">\n <mat-form-field\n class=\"c-form-field-date-input\"\n [class.sd-md]=\"size() === 'md'\"\n [class.sd-sm]=\"size() === 'sm'\"\n [class.hide-inline-error]=\"_hideInlineError\"\n [appearance]=\"_appearance!\"\n [floatLabel]=\"floatLabel()\">\n @if (_appearance && _label) {\n <mat-label class=\"sd-form-field-label\">\n <span>{{ _label }}</span>\n @if (_helperText) {\n <sd-icon [matTooltip]=\"_helperText\" matTooltipPosition=\"below\" name=\"info\"></sd-icon>\n }\n </mat-label>\n }\n\n <input\n aria-hidden=\"true\"\n [id]=\"id\"\n matInput\n (keyup)=\"onKeyup($event)\"\n (keydown)=\"onKeyDown($event)\"\n (dateChange)=\"onChange($event)\"\n [autocomplete]=\"id\"\n autocorrect=\"off\"\n [formControl]=\"formControl\"\n [required]=\"_required\"\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeholder() || _label || ''\"\n [min]=\"_resolvedMin\"\n [max]=\"_resolvedMax\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.data-autoId]=\"autoId()\"\n [attr.data-disabled]=\"dataDisabled()\"\n [attr.data-invalid]=\"dataInvalid()\"\n [attr.data-empty]=\"dataEmpty()\"\n [attr.data-value]=\"dataValue()\"\n [attr.data-required]=\"dataRequired()\"\n [attr.data-error-message]=\"dataErrorMessage()\"\n #input\n [maxLength]=\"10\" />\n\n <mat-datepicker #picker [touchUi]=\"isMobileOrTablet\"></mat-datepicker>\n\n @if (_hideInlineError && _errorMessage && formControl.touched) {\n <sd-icon matSuffix class=\"sd-error-icon\" [matTooltip]=\"_errorMessage\" matTooltipPosition=\"above\" name=\"error\"></sd-icon>\n }\n\n @if (!_hideInlineError && _errorMessage && formControl.touched) {\n <mat-error>{{ _errorMessage }}</mat-error>\n }\n\n @if (formControl.value && !_required && !formControl.disabled && !_bare) {\n <button type=\"button\" class=\"sd-clear-btn sd-hover\" matSuffix (click)=\"clear($event)\" title=\"Xóa\" aria-label=\"Xóa\">\n <sd-icon name=\"close\"></sd-icon>\n </button>\n }\n\n <sd-icon class=\"cursor-pointer sd-suffix-icon\" (click)=\"!formControl.disabled && picker.open()\" #btn matSuffix name=\"today\"></sd-icon>\n </mat-form-field>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["parseDate","dfEnUS"],"mappings":"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"}
1
+ {"version":3,"file":"sdcorejs-angular-forms-date.mjs","sources":["../../../projects/sdcorejs-angular/forms/date/src/date.component.ts","../../../projects/sdcorejs-angular/forms/date/src/date.component.html","../../../projects/sdcorejs-angular/forms/date/sdcorejs-angular-forms-date.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n input,\n model,\n computed,\n OnDestroy,\n OnInit,\n output,\n TemplateRef,\n viewChild,\n contentChild,\n} from '@angular/core';\nimport { AbstractControl, FormGroup, FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { provideDateFnsAdapter } from '@angular/material-date-fns-adapter';\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatDatepicker, MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { FloatLabelType, MatFormFieldAppearance, MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { SdView } from '@sdcorejs/angular/components/view';\nimport { SdLabelDefDirective, SdViewDefDirective } from '@sdcorejs/angular/forms/directives';\nimport { SdLabel } from '@sdcorejs/angular/forms/label';\nimport {\n SD_FORM_CONFIGURATION,\n SdFormControl,\n SdInlineErrorValidator,\n SdViewed,\n SdViewedInput,\n sdViewedInline,\n sdViewedTransform,\n ɵsdFormControlConnector,\n} from '@sdcorejs/angular/forms/models';\nimport { sdSerializeDataValue, sdIsEmpty } from '@sdcorejs/angular/utilities/data-state';\nimport { sdFormControlState } from '@sdcorejs/angular/forms/models';\nimport { I18nService } from '@sdcorejs/angular/i18n';\nimport { Size } from '@sdcorejs/utils/models';\nimport { DateUtilities } from '@sdcorejs/angular/utilities/extensions';\nimport { BrowserUtilities, Utilities } from '@sdcorejs/utils/fns';\nimport { parse as parseDate } from 'date-fns';\nimport { enUS as dfEnUS } from 'date-fns/locale';\nimport { Subscription } from 'rxjs';\nimport { SdIcon } from '@sdcorejs/angular/modules/icon';\n\ntype SdDateModelValue = string | number | Date | undefined | null;\n\nfunction normalizeDateModel(value: SdDateModelValue): string | null {\n if (!DateUtilities.isDate(value)) return null;\n return DateUtilities.toFormat(value, 'yyyy/MM/dd') || null;\n}\n\nfunction dateModelToControl(value: SdDateModelValue): Date | null {\n const normalized = normalizeDateModel(value);\n return normalized ? parseDate(normalized, 'yyyy/MM/dd', new Date()) : null;\n}\n\nfunction dateControlToModel(value: Date | null): SdDateModelValue {\n return value ? normalizeDateModel(value) : null;\n}\n\nfunction dateControlsEqual(left: Date | null, right: Date | null): boolean {\n return left === right || normalizeDateModel(left) === normalizeDateModel(right);\n}\n\n@Component({\n selector: 'sd-date',\n templateUrl: './date.component.html',\n styleUrl: './date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class.sd-bare]': 'isInline()', '[class.sd-viewed]': 'isViewed() || isInline()', '[class.sd-has-label]': '!!label()' },\n providers: [\n // DateFnsAdapter inject MAT_DATE_LOCALE; nếu undefined sẽ throw khi format/parse.\n // Provide locale en-US tại scope component để hành vi giống Moment cũ (English default).\n { provide: MAT_DATE_LOCALE, useValue: dfEnUS },\n provideDateFnsAdapter({\n parse: { dateInput: 'dd/MM/yyyy' },\n display: {\n dateInput: 'dd/MM/yyyy',\n monthYearLabel: 'MMM yyyy',\n dateA11yLabel: 'PP',\n monthYearA11yLabel: 'MMMM yyyy',\n },\n }),\n ],\n standalone: true,\n imports: [\n SdIcon,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatTooltipModule,\n MatFormFieldModule,\n MatDatepickerModule,\n SdLabel,\n SdView,\n ],\n})\nexport class SdDate implements OnDestroy, OnInit {\n id = `I${Utilities.generateUuid()}`;\n\n // ==========================================\n // 1. SIGNAL QUERIES\n // ==========================================\n inputRef = viewChild<ElementRef<HTMLInputElement>>('input');\n datePicker = viewChild<MatDatepicker<Date>>(MatDatepicker);\n\n sdLabelTemplate = contentChild<TemplateRef<any>>('sdLabel');\n sdValueTemplate = contentChild<TemplateRef<any>>('sdValue');\n sdViewDef = contentChild(SdViewDefDirective);\n sdLabelDef = contentChild(SdLabelDefDirective);\n\n // ==========================================\n // 2. INJECTS\n // ==========================================\n private ref = inject(ChangeDetectorRef);\n private formConfig = inject(SD_FORM_CONFIGURATION, { optional: true });\n readonly #i18n = inject(I18nService);\n\n // ==========================================\n // 3. SIGNAL INPUTS & MODEL\n // ==========================================\n autoIdInput = input<string | undefined | null>(undefined, { alias: 'autoId' });\n autoId = computed(() => (this.autoIdInput() ? `forms-date-${this.autoIdInput()}` : undefined));\n\n readonly #state = sdFormControlState(computed(() => this.formControl));\n readonly dataDisabled = computed(() => (this.#state().disabled ? 'true' : 'false'));\n readonly dataInvalid = computed(() => (this.#state().invalid ? 'true' : 'false'));\n readonly dataEmpty = computed(() => (sdIsEmpty(this.#state().value) ? 'true' : 'false'));\n readonly dataValue = computed(() => sdSerializeDataValue(this.#state().value));\n\n readonly dataRequired = computed(() => (this.required() ? 'true' : 'false'));\n readonly dataErrorMessage = computed(() => {\n void this.#state();\n const msg = this.errorMessage();\n return msg && msg.length > 0 ? msg : null;\n });\n\n name = input<string>(Utilities.generateUuid());\n\n size = input<Size>('md');\n // Ghi (TransformT): any (để không bị lỗi typing khi cha truyền vào)\n form = input<FormGroup | undefined, any>(undefined, {\n transform: (val: any): FormGroup | undefined => {\n if (!val) return undefined;\n // Nếu cha truyền vào NgForm (template-driven) -> Bóc lấy FormGroup bên trong\n if (val instanceof NgForm) return val.form;\n // Nếu cha truyền sẵn FormGroup (reactive) -> Lấy luôn\n if (val instanceof FormGroup) return val;\n // Fallback an toàn phòng trường hợp cha truyền 1 object chứa form\n if (val?.form instanceof FormGroup) return val.form;\n return undefined;\n },\n });\n label = input<string | undefined>();\n helperText = input<string | undefined>();\n placeholder = input<string | undefined>();\n\n hideInlineError = input(false, { transform: booleanAttribute });\n required = input(false, { transform: booleanAttribute });\n disabled = input(false, { transform: booleanAttribute });\n /** Display mode: `false` edit · `true` static view · `'inline'` view + click-to-edit (calendar). */\n viewed = input<SdViewed, SdViewedInput>(false, { transform: sdViewedTransform });\n /** Whether to show the value-gated clear button in edit and inline modes. */\n clearable = input(false, { transform: booleanAttribute });\n\n // Tri-state `viewed` — shared primitive. In `'inline'` the calendar editor is always mounted\n // (chrome hidden via CSS); the sd-view text face opens the calendar on click.\n readonly #viewedState = sdViewedInline(this.viewed, () => this.open(), this.disabled);\n /** `true` when `viewed === 'inline'`. */\n readonly isInline = this.#viewedState.isInline;\n /** `true` when `viewed === true` (static view, no editor). */\n readonly isViewed = this.#viewedState.isViewed;\n /** Open the calendar from the inline text face. No-op unless `viewed='inline'`. */\n enterInlineEdit = (): void => this.#viewedState.enterInlineEdit();\n /** View display template: `sdViewDef` overrides the projected `#sdValue` (unified). */\n readonly viewTemplate = computed<TemplateRef<any> | undefined>(() => this.sdViewDef()?.templateRef ?? this.sdValueTemplate());\n\n inlineError = input<string | undefined>();\n\n /**\n * Tổng hợp error message để hiển thị trong tooltip khi hideInlineError = true.\n */\n readonly errorMessage = computed<string | undefined>(() => {\n void this.#state();\n const errors = this.formControl.errors;\n if (!errors) return undefined;\n\n if (errors['required']) return this.#i18n.t('core.form.date.required');\n if (errors['matDatepickerMin']) {\n const d = this.resolvedMin();\n return this.#i18n.t('core.form.date.min-date', { date: d ? new Date(d).toLocaleDateString('vi-VN') : '' });\n }\n if (errors['matDatepickerMax']) {\n const d = this.resolvedMax();\n return this.#i18n.t('core.form.date.max-date', { date: d ? new Date(d).toLocaleDateString('vi-VN') : '' });\n }\n if (errors['matDatetimePickerParse'])\n return this.#i18n.t('core.form.date.parse-error', { text: errors['matDatetimePickerParse']?.text ?? '' });\n if (errors['date']) return errors['date'] as string;\n if (errors['customValidator']) return errors['customValidator'] as string;\n if (errors['inlineError']) return this.inlineError();\n return undefined;\n });\n\n hyperlink = input<string | null | undefined>();\n\n appearanceInput = input<MatFormFieldAppearance | undefined>(undefined, { alias: 'appearance' });\n appearance = computed(() => this.appearanceInput() ?? this.formConfig?.appearance ?? 'outline');\n\n floatLabel = input<FloatLabelType>('auto');\n\n // Xử lý thông minh Gom min/minDate và max/maxDate\n minInput = input<any>(undefined, { alias: 'min' });\n minDateInput = input<any>(undefined, { alias: 'minDate' });\n resolvedMin = computed(() => this.#parseDateBoundary(this.minInput() ?? this.minDateInput()));\n\n maxInput = input<any>(undefined, { alias: 'max' });\n maxDateInput = input<any>(undefined, { alias: 'maxDate' });\n resolvedMax = computed(() => this.#parseDateBoundary(this.maxInput() ?? this.maxDateInput()));\n\n valueModel = model<SdDateModelValue>(undefined, { alias: 'model' });\n\n // ==========================================\n // 4. SIGNAL OUTPUTS\n // ==========================================\n sdChange = output<any>();\n sdFocus = output<void>();\n\n // ==========================================\n // 5. INTERNAL STATE & STREAMS\n // ==========================================\n isMobileOrTablet = BrowserUtilities.isMobile();\n formControl = new SdFormControl();\n readonly #formConnector = ɵsdFormControlConnector<SdDateModelValue, Date | null>({\n form: this.form,\n name: this.name,\n control: computed<AbstractControl<Date | null>>(() => this.formControl),\n model: this.valueModel,\n writeModel: value => {\n this.valueModel.set(value);\n this.sdChange.emit(value);\n },\n modelToControl: dateModelToControl,\n controlToModel: dateControlToModel,\n modelEquals: (left, right) => normalizeDateModel(left) === normalizeDateModel(right),\n controlEquals: dateControlsEqual,\n validators: computed(() => (this.inlineError() ? SdInlineErrorValidator : null)),\n required: this.required,\n disabled: this.disabled,\n viewed: this.viewed,\n validationError: computed(() => this.errorMessage()),\n });\n isFocused = false;\n isValid?: boolean;\n\n #subscription = new Subscription();\n\n ngOnInit() {\n this.#subscription.add(\n this.formControl.sdChanges.subscribe(() => {\n this.ref.markForCheck();\n })\n );\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n\n // Hàm private tái sử dụng cho parse Min/Max Date\n #parseDateBoundary(val: any): Date | null {\n if (val === 'TODAY') return new Date();\n if (val && DateUtilities.isDate(val)) return new Date(val);\n return null;\n }\n\n onFocus = () => {\n this.isFocused = true;\n this.sdFocus.emit();\n };\n\n onBlur = () => {\n this.isFocused = false;\n };\n\n onClick = () => {\n if (this.sdViewDef()?.templateRef) {\n if (!this.formControl.disabled && !this.isFocused) {\n this.focus();\n }\n }\n };\n\n blur = () => {\n this.inputRef()?.nativeElement?.blur();\n };\n\n focus = () => {\n this.isFocused = true;\n setTimeout(() => {\n this.inputRef()?.nativeElement?.focus();\n this.datePicker()?.open();\n }, 100);\n };\n\n /** Open the datepicker calendar programmatically (anchors to the field input). */\n open = () => {\n if (this.formControl.disabled) return;\n this.datePicker()?.open();\n };\n\n focusInputElement() {\n this.inputRef()?.nativeElement?.focus();\n }\n\n onKeyDown = (event: KeyboardEvent) => {\n const key = event.keyCode || event.charCode;\n const isShift = key === 16;\n\n if (event.ctrlKey && (key === 67 || key === 86)) return true;\n\n if (\n ((key >= 48 && key <= 57) ||\n key === 8 ||\n key <= 37 ||\n key <= 39 ||\n (key >= 96 && key <= 105) ||\n key === 191 ||\n key === 186 ||\n key === 59) &&\n !isShift\n ) {\n return true;\n }\n return false;\n };\n\n onKeyup = (event: any) => {\n const currentVal: string = event.target.value;\n const formControl: AbstractControl = this.formControl;\n const regex = /^([1-9]|([012][0-9])|(3[01]))\\/([0]{0,1}[1-9]|1[012])\\/\\d\\d\\d\\d$/g;\n\n if (currentVal && !regex.test(currentVal)) {\n setTimeout(() => {\n this.isValid = true;\n formControl.markAsDirty();\n formControl.markAsTouched();\n formControl.setErrors({ ...formControl.errors, date: this.#i18n.t('core.form.date.invalid-format') });\n }, 0);\n } else {\n setTimeout(() => {\n this.isValid = false;\n formControl.setErrors({ ...formControl.errors, date: null });\n this.formControl.updateValueAndValidity();\n }, 0);\n }\n };\n\n onChange = (event: MatDatepickerInputEvent<Date>) => {\n this.inputRef()?.nativeElement?.focus();\n const value = this.isValid ? null : event.value;\n this.isValid = false;\n\n if (!dateControlsEqual(this.formControl.value as Date | null, value)) {\n this.formControl.setValue(value);\n }\n };\n\n clear = ($event: any) => {\n $event?.stopPropagation();\n if (this.formControl.value) {\n this.formControl.setValue(null);\n }\n };\n}\n","@let _label = label();\n@let _appearance = appearance();\n@let _hideInlineError = hideInlineError();\n@let _errorMessage = errorMessage();\n@let _helperText = helperText();\n@let _required = required();\n@let _isInline = isInline();\n@let _bare = _isInline;\n@let _hasValue = !!formControl.value;\n\n@let _resolvedMin = resolvedMin();\n@let _resolvedMax = resolvedMax();\n\n@if (isViewed()) {\n <sd-view\n [label]=\"_label\"\n [labelTemplate]=\"sdLabelTemplate()\"\n [value]=\"formControl.value\"\n [display]=\"formControl.value | date: 'dd/MM/yyyy'\"\n [hyperlink]=\"hyperlink()\"\n [valueTemplate]=\"viewTemplate()\">\n </sd-view>\n} @else {\n @if (_isInline) {\n <!-- why: inline — sd-view là \"mặt\" + trigger; calendar editor render ẩn (.sd-inline-editor) chỉ để mở panel. -->\n <span class=\"sd-inline-view\" role=\"button\" tabindex=\"0\" (click)=\"enterInlineEdit()\" (keydown.enter)=\"enterInlineEdit()\">\n <sd-view\n [label]=\"_label\"\n [labelTemplate]=\"sdLabelTemplate()\"\n [value]=\"formControl.value\"\n [display]=\"formControl.value | date: 'dd/MM/yyyy'\"\n [hyperlink]=\"hyperlink()\"\n [valueTemplate]=\"viewTemplate()\">\n </sd-view>\n @if (clearable() && _hasValue && !_required && !formControl.disabled) {\n <button type=\"button\" class=\"sd-inline-clear\" (click)=\"clear($event)\" title=\"Xóa\" aria-label=\"Xóa\">\n <sd-icon name=\"close\"></sd-icon>\n </button>\n }\n </span>\n }\n @if (!_appearance) {\n <ng-content select=\"[sdLabel]\">\n @if (_label) {\n <sd-label [label]=\"_label\" [required]=\"_required\"></sd-label>\n }\n </ng-content>\n }\n\n <div\n class=\"d-flex align-items-center\"\n [class.sd-inline-editor]=\"_isInline\"\n [class.c-focused]=\"isFocused\"\n [class.c-disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n aria-hidden=\"true\">\n <mat-form-field\n class=\"c-form-field-date-input\"\n [class.sd-md]=\"size() === 'md'\"\n [class.sd-sm]=\"size() === 'sm'\"\n [class.hide-inline-error]=\"_hideInlineError\"\n [appearance]=\"_appearance!\"\n [floatLabel]=\"floatLabel()\">\n @if (_appearance && _label) {\n <mat-label class=\"sd-form-field-label\">\n <span>{{ _label }}</span>\n @if (_helperText) {\n <sd-icon [matTooltip]=\"_helperText\" matTooltipPosition=\"below\" name=\"info\"></sd-icon>\n }\n </mat-label>\n }\n\n <input\n aria-hidden=\"true\"\n [id]=\"id\"\n matInput\n (keyup)=\"onKeyup($event)\"\n (keydown)=\"onKeyDown($event)\"\n (dateChange)=\"onChange($event)\"\n [autocomplete]=\"id\"\n autocorrect=\"off\"\n [formControl]=\"formControl\"\n [required]=\"_required\"\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeholder() || _label || ''\"\n [min]=\"_resolvedMin\"\n [max]=\"_resolvedMax\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.data-autoId]=\"autoId()\"\n [attr.data-disabled]=\"dataDisabled()\"\n [attr.data-invalid]=\"dataInvalid()\"\n [attr.data-empty]=\"dataEmpty()\"\n [attr.data-value]=\"dataValue()\"\n [attr.data-required]=\"dataRequired()\"\n [attr.data-error-message]=\"dataErrorMessage()\"\n #input\n [maxLength]=\"10\" />\n\n <mat-datepicker #picker [touchUi]=\"isMobileOrTablet\"></mat-datepicker>\n\n @if (_hideInlineError && _errorMessage && formControl.touched) {\n <sd-icon matSuffix class=\"sd-error-icon\" [matTooltip]=\"_errorMessage\" matTooltipPosition=\"above\" name=\"error\"></sd-icon>\n }\n\n @if (!_hideInlineError && _errorMessage && formControl.touched) {\n <mat-error>{{ _errorMessage }}</mat-error>\n }\n\n @if (clearable() && formControl.value && !_required && !formControl.disabled && !_bare) {\n <button type=\"button\" class=\"sd-clear-btn sd-hover\" matSuffix (click)=\"clear($event)\" title=\"Xóa\" aria-label=\"Xóa\">\n <sd-icon name=\"close\"></sd-icon>\n </button>\n }\n\n <sd-icon class=\"cursor-pointer sd-suffix-icon\" (click)=\"!formControl.disabled && picker.open()\" #btn matSuffix name=\"today\"></sd-icon>\n </mat-form-field>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["parseDate","ɵsdFormControlConnector","dfEnUS"],"mappings":"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"}