@sd-angular/core 19.0.0-beta.7 → 19.0.0-beta.70

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 (232) hide show
  1. package/README.md +686 -33
  2. package/assets/scss/ckeditor5.scss +60 -2
  3. package/assets/scss/core/bootstrap.scss +17 -0
  4. package/assets/scss/core/form.scss +32 -6
  5. package/assets/scss/core/grid.scss +40 -0
  6. package/assets/scss/sd-core.scss +1 -0
  7. package/assets/scss/themes/material-theme.scss +82 -40
  8. package/components/anchor-v2/src/components/anchor-item-v2/anchor-item-v2.component.d.ts +5 -5
  9. package/components/anchor-v2/src/models/sd-anchor-v2.model.d.ts +3 -3
  10. package/components/avatar/index.d.ts +1 -0
  11. package/components/avatar/src/avatar.component.d.ts +19 -0
  12. package/components/badge/src/badge.component.d.ts +77 -19
  13. package/components/button/src/button.component.d.ts +30 -28
  14. package/components/code-editor/index.d.ts +1 -0
  15. package/components/code-editor/src/code-editor.component.d.ts +25 -0
  16. package/components/document-builder/index.d.ts +1 -0
  17. package/components/document-builder/src/document-builder.component.d.ts +12 -41
  18. package/components/document-builder/src/document-builder.model.d.ts +14 -11
  19. package/components/document-builder/src/plugins/block-space/block-space.plugin.d.ts +9 -0
  20. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.d.ts +44 -0
  21. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.model.d.ts +57 -0
  22. package/components/document-builder/src/plugins/heading/heading.plugin.d.ts +1 -0
  23. package/components/document-builder/src/plugins/highlight-range/highlight-range.plugin.d.ts +4 -0
  24. package/components/document-builder/src/plugins/image-custom/image-custom.plugin.d.ts +31 -0
  25. package/components/document-builder/src/plugins/index.d.ts +7 -2
  26. package/components/document-builder/src/plugins/page-orientation/page-orientation.plugin.d.ts +2 -2
  27. package/components/document-builder/src/plugins/paste-handler/filters/bookmark.d.ts +14 -0
  28. package/components/document-builder/src/plugins/paste-handler/filters/br.d.ts +15 -0
  29. package/components/document-builder/src/plugins/paste-handler/filters/image.d.ts +25 -0
  30. package/components/document-builder/src/plugins/paste-handler/filters/list.d.ts +29 -0
  31. package/components/document-builder/src/plugins/paste-handler/filters/parse.d.ts +35 -0
  32. package/components/document-builder/src/plugins/paste-handler/filters/removeboldwrapper.d.ts +15 -0
  33. package/components/document-builder/src/plugins/paste-handler/filters/removegooglesheetstag.d.ts +15 -0
  34. package/components/document-builder/src/plugins/paste-handler/filters/removeinvalidtablewidth.d.ts +15 -0
  35. package/components/document-builder/src/plugins/paste-handler/filters/removemsattributes.d.ts +15 -0
  36. package/components/document-builder/src/plugins/paste-handler/filters/removestyleblock.d.ts +15 -0
  37. package/components/document-builder/src/plugins/paste-handler/filters/removexmlns.d.ts +15 -0
  38. package/components/document-builder/src/plugins/paste-handler/filters/replacemsfootnotes.d.ts +54 -0
  39. package/components/document-builder/src/plugins/paste-handler/filters/replacetabswithinprewithspaces.d.ts +24 -0
  40. package/components/document-builder/src/plugins/paste-handler/filters/space.d.ts +27 -0
  41. package/components/document-builder/src/plugins/paste-handler/filters/table.d.ts +16 -0
  42. package/components/document-builder/src/plugins/paste-handler/filters/utils.d.ts +25 -0
  43. package/components/document-builder/src/plugins/paste-handler/index.d.ts +35 -0
  44. package/components/document-builder/src/plugins/paste-handler/normalizers/googledocsnormalizer.d.ts +31 -0
  45. package/components/document-builder/src/plugins/paste-handler/normalizers/googlesheetsnormalizer.d.ts +31 -0
  46. package/components/document-builder/src/plugins/paste-handler/normalizers/mswordnormalizer.d.ts +29 -0
  47. package/components/document-builder/src/plugins/paste-handler/types.d.ts +30 -0
  48. package/components/document-builder/src/plugins/table-custom/index.d.ts +34 -0
  49. package/components/document-builder/src/plugins/variable/variable.plugin.d.ts +39 -0
  50. package/components/index.d.ts +4 -0
  51. package/components/mini-editor/index.d.ts +2 -0
  52. package/components/mini-editor/src/mini-editor.component.d.ts +90 -0
  53. package/components/mini-editor/src/mini-editor.model.d.ts +44 -0
  54. package/components/section/index.d.ts +1 -0
  55. package/components/section/src/section-item/section-item.component.d.ts +7 -0
  56. package/components/section/src/section.component.d.ts +11 -11
  57. package/components/side-drawer/src/side-drawer.component.d.ts +11 -24
  58. package/components/tab-router/src/components/tab-router-item/tab-router-item.component.d.ts +4 -1
  59. package/components/tab-router/src/components/tab-router-outlet/tab-router-outlet.component.d.ts +3 -15
  60. package/components/table/src/components/column-filter/column-filter.component.d.ts +3 -3
  61. package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts +21 -9
  62. package/components/table/src/components/desktop-cell-view/desktop-cell-view.component.d.ts +21 -7
  63. package/components/table/src/components/external-filter/external-filter.component.d.ts +1 -1
  64. package/components/table/src/components/selector-action/action-filter.pipe.d.ts +11 -10
  65. package/components/table/src/components/selector-action/selector-action.component.d.ts +5 -3
  66. package/components/table/src/directives/index.d.ts +2 -0
  67. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +9 -0
  68. package/components/table/src/directives/sticky-shadow.directive.d.ts +17 -0
  69. package/components/table/src/models/table-column.model.d.ts +38 -34
  70. package/components/table/src/models/table-command.model.d.ts +7 -3
  71. package/components/table/src/models/table-item.model.d.ts +5 -4
  72. package/components/table/src/models/table-option-config.model.d.ts +5 -0
  73. package/components/table/src/models/table-option-export.model.d.ts +3 -2
  74. package/components/table/src/models/table-option-selector.model.d.ts +11 -10
  75. package/components/table/src/models/table-option.model.d.ts +9 -8
  76. package/components/table/src/services/index.d.ts +3 -0
  77. package/components/table/src/services/table-export/table-export.service.d.ts +26 -0
  78. package/components/table/src/services/table-filter/table-filter.model.d.ts +6 -5
  79. package/components/table/src/services/table-format/table-format.service.d.ts +16 -0
  80. package/components/table/src/table.component.d.ts +39 -53
  81. package/components/upload-file/src/configurations/upload-file.configuration.d.ts +1 -1
  82. package/components/upload-file/src/services/upload-file.service.d.ts +0 -1
  83. package/components/upload-file/src/upload-file.component.d.ts +49 -54
  84. package/components/view/index.d.ts +1 -0
  85. package/components/view/src/view.component.d.ts +16 -0
  86. package/components/workflow/src/models/form-generic-component.model.d.ts +5 -4
  87. package/components/workflow/src/models/index.d.ts +1 -0
  88. package/directives/index.d.ts +2 -0
  89. package/directives/src/sd-href.directive.d.ts +9 -0
  90. package/directives/src/sd-tooltip.directive.d.ts +26 -0
  91. package/fesm2022/sd-angular-core-components-anchor-v2.mjs +15 -15
  92. package/fesm2022/sd-angular-core-components-anchor-v2.mjs.map +1 -1
  93. package/fesm2022/sd-angular-core-components-avatar.mjs +103 -0
  94. package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -0
  95. package/fesm2022/sd-angular-core-components-badge.mjs +101 -91
  96. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  97. package/fesm2022/sd-angular-core-components-button.mjs +70 -96
  98. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  99. package/fesm2022/sd-angular-core-components-code-editor.mjs +127 -0
  100. package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -0
  101. package/fesm2022/sd-angular-core-components-document-builder.mjs +4006 -611
  102. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  103. package/fesm2022/sd-angular-core-components-history.mjs +1 -1
  104. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  105. package/fesm2022/sd-angular-core-components-import-excel.mjs +1 -1
  106. package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
  107. package/fesm2022/sd-angular-core-components-mini-editor.mjs +326 -0
  108. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -0
  109. package/fesm2022/sd-angular-core-components-preview.mjs +1 -1
  110. package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
  111. package/fesm2022/sd-angular-core-components-quick-action.mjs +2 -2
  112. package/fesm2022/sd-angular-core-components-quick-action.mjs.map +1 -1
  113. package/fesm2022/sd-angular-core-components-section.mjs +41 -43
  114. package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
  115. package/fesm2022/sd-angular-core-components-side-drawer.mjs +78 -84
  116. package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
  117. package/fesm2022/sd-angular-core-components-tab-router.mjs +152 -226
  118. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  119. package/fesm2022/sd-angular-core-components-table.mjs +1188 -1185
  120. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  121. package/fesm2022/sd-angular-core-components-upload-file.mjs +339 -444
  122. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  123. package/fesm2022/sd-angular-core-components-view.mjs +45 -0
  124. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -0
  125. package/fesm2022/sd-angular-core-components-workflow.mjs +47 -57
  126. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  127. package/fesm2022/sd-angular-core-components.mjs +4 -0
  128. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  129. package/fesm2022/sd-angular-core-directives.mjs +286 -27
  130. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  131. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +289 -363
  132. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  133. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +26 -6
  134. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
  135. package/fesm2022/sd-angular-core-forms-chip.mjs +24 -4
  136. package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
  137. package/fesm2022/sd-angular-core-forms-date-range.mjs +180 -242
  138. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  139. package/fesm2022/sd-angular-core-forms-date.mjs +178 -270
  140. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  141. package/fesm2022/sd-angular-core-forms-datetime.mjs +177 -285
  142. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  143. package/fesm2022/sd-angular-core-forms-input-number.mjs +210 -337
  144. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  145. package/fesm2022/sd-angular-core-forms-input.mjs +169 -286
  146. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  147. package/fesm2022/sd-angular-core-forms-radio.mjs +3 -2
  148. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  149. package/fesm2022/sd-angular-core-forms-select.mjs +390 -447
  150. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  151. package/fesm2022/sd-angular-core-forms-textarea.mjs +167 -226
  152. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  153. package/fesm2022/sd-angular-core-modules-keycloak.mjs +126 -0
  154. package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -0
  155. package/fesm2022/sd-angular-core-modules-layout.mjs +454 -453
  156. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  157. package/fesm2022/sd-angular-core-modules.mjs +1 -1
  158. package/fesm2022/sd-angular-core-services-api.mjs +5 -10
  159. package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
  160. package/fesm2022/sd-angular-core-services-confirm.mjs +5 -7
  161. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  162. package/fesm2022/sd-angular-core-services-docx.mjs +173 -0
  163. package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -0
  164. package/fesm2022/sd-angular-core-services-notify.mjs +2 -2
  165. package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
  166. package/fesm2022/sd-angular-core-services.mjs +1 -0
  167. package/fesm2022/sd-angular-core-services.mjs.map +1 -1
  168. package/fesm2022/sd-angular-core-utilities-extensions.mjs +21 -45
  169. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  170. package/fesm2022/sd-angular-core-utilities-models.mjs +15 -1
  171. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  172. package/forms/autocomplete/src/autocomplete.component.d.ts +55 -55
  173. package/forms/chip/src/chip.component.d.ts +8 -2
  174. package/forms/chip-calendar/src/chip-calendar.component.d.ts +8 -2
  175. package/forms/date/src/date.component.d.ts +48 -46
  176. package/forms/date-range/src/date-range.component.d.ts +35 -34
  177. package/forms/datetime/src/datetime.component.d.ts +48 -49
  178. package/forms/input/src/input.component.d.ts +54 -57
  179. package/forms/input-number/src/input-number.component.d.ts +53 -54
  180. package/forms/select/src/select.component.d.ts +67 -64
  181. package/forms/textarea/src/textarea.component.d.ts +40 -43
  182. package/modules/index.d.ts +1 -1
  183. package/modules/keycloak/index.d.ts +4 -0
  184. package/modules/keycloak/keycloak.configuration.d.ts +11 -0
  185. package/modules/keycloak/keycloak.interceptor.d.ts +2 -0
  186. package/modules/keycloak/keycloak.module.d.ts +18 -0
  187. package/modules/keycloak/keycloak.service.d.ts +14 -0
  188. package/modules/layout/components/layout-main/layout-main.component.d.ts +7 -12
  189. package/modules/layout/components/page/page.component.d.ts +5 -7
  190. package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +22 -29
  191. package/modules/layout/components/sidebar-v1/components/user/user.component.d.ts +11 -17
  192. package/modules/layout/components/sidebar-v1/main.component.d.ts +14 -14
  193. package/modules/layout/configurations/layout.configuration.d.ts +46 -3
  194. package/modules/layout/modules/forbidden/pages/root/root.component.d.ts +3 -8
  195. package/modules/layout/modules/home/components/home-page/home-page.component.d.ts +2 -5
  196. package/modules/layout/modules/not-found/pages/root/root.component.d.ts +3 -8
  197. package/modules/layout/pipes/high-light-search.pipe.d.ts +1 -1
  198. package/modules/layout/services/index.d.ts +1 -0
  199. package/modules/layout/services/layout.service.d.ts +10 -0
  200. package/modules/layout/services/menu/menu.model.d.ts +2 -0
  201. package/modules/layout/services/storage/storage.service.d.ts +0 -3
  202. package/package.json +66 -43
  203. package/sd-angular-core-19.0.0-beta.70.tgz +0 -0
  204. package/services/api/src/api.model.d.ts +6 -1
  205. package/services/confirm/src/lib/confirm.service.d.ts +1 -0
  206. package/services/docx/index.d.ts +1 -0
  207. package/services/docx/src/lib/docx.model.d.ts +9 -0
  208. package/services/docx/src/lib/docx.service.d.ts +13 -0
  209. package/services/docx/src/public-api.d.ts +2 -0
  210. package/services/index.d.ts +1 -0
  211. package/services/notify/index.d.ts +1 -0
  212. package/services/notify/src/notify.model.d.ts +1 -1
  213. package/services/notify/src/notify.service.d.ts +5 -5
  214. package/utilities/extensions/src/string.extension.d.ts +2 -0
  215. package/utilities/extensions/src/utility.extension.d.ts +1 -0
  216. package/utilities/models/index.d.ts +3 -0
  217. package/utilities/models/src/filter.model.d.ts +17 -4
  218. package/utilities/models/src/icon.model.d.ts +2 -0
  219. package/utilities/models/src/nested-key-of.model.d.ts +5 -0
  220. package/utilities/models/src/order.model.d.ts +2 -1
  221. package/utilities/models/src/paging.model.d.ts +2 -1
  222. package/utilities/models/src/pattern.model.d.ts +1 -1
  223. package/utilities/models/src/unwrap-signal.model.d.ts +6 -0
  224. package/components/document-builder/src/plugins/comment/comment.plugin.d.ts +0 -4
  225. package/components/document-builder/src/plugins/table-fit/table-fit.plugin.d.ts +0 -4
  226. package/fesm2022/sd-angular-core-modules-oidc.mjs +0 -127
  227. package/fesm2022/sd-angular-core-modules-oidc.mjs.map +0 -1
  228. package/modules/oidc/dynamic-sts.loader.d.ts +0 -11
  229. package/modules/oidc/index.d.ts +0 -2
  230. package/modules/oidc/oidc.configuration.d.ts +0 -11
  231. package/modules/oidc/oidc.module.d.ts +0 -14
  232. package/sd-angular-core-19.0.0-beta.7.tgz +0 -0
@@ -1,22 +1,16 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { SdLayoutStorageService } from '../../../../services';
3
- import { ISdLayoutConfiguration } from '../../../../configurations';
1
+ import { SdLayoutUserInfo } from '../../../../configurations';
4
2
  import * as i0 from "@angular/core";
5
3
  export declare class LayoutUserComponent {
6
- private layoutConfig;
7
- private layoutStorageService;
8
- isMobileOrTablet: boolean;
9
- isMenuLock: boolean;
10
- isShowSidebar: boolean;
11
- menuClosed: EventEmitter<boolean>;
12
- menuOpened: EventEmitter<boolean>;
13
- toggleMenuLock: EventEmitter<Event>;
14
- email: string;
15
- username: string;
16
- fullName: string;
4
+ #private;
5
+ isMobileOrTablet: import("@angular/core").InputSignal<boolean>;
6
+ isMenuLock: import("@angular/core").InputSignal<boolean>;
7
+ isShowSidebar: import("@angular/core").InputSignal<boolean>;
8
+ userInfo: import("@angular/core").InputSignal<SdLayoutUserInfo>;
9
+ menuClosed: import("@angular/core").OutputEmitterRef<void>;
10
+ menuOpened: import("@angular/core").OutputEmitterRef<void>;
11
+ toggleMenuLock: import("@angular/core").OutputEmitterRef<Event>;
17
12
  singoutLayoutConfig: () => void | Promise<void>;
18
- changePasswordLayoutConfig?: () => void | Promise<void>;
19
- constructor(layoutConfig: ISdLayoutConfiguration, layoutStorageService: SdLayoutStorageService);
13
+ changePasswordLayoutConfig: (() => void | Promise<void>) | undefined;
20
14
  onMenuOpened: () => void;
21
15
  onMenuClosed: () => void;
22
16
  keepOpenWhenClickInsideMenu: (event: Event) => void;
@@ -24,5 +18,5 @@ export declare class LayoutUserComponent {
24
18
  changePassword: () => void;
25
19
  onToggleMenuLock: (event: Event) => void;
26
20
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutUserComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<LayoutUserComponent, "lib-layout-user", never, { "isMobileOrTablet": { "alias": "isMobileOrTablet"; "required": false; }; "isMenuLock": { "alias": "isMenuLock"; "required": false; }; "isShowSidebar": { "alias": "isShowSidebar"; "required": false; }; }, { "menuClosed": "menuClosed"; "menuOpened": "menuOpened"; "toggleMenuLock": "toggleMenuLock"; }, never, never, true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutUserComponent, "lib-layout-user", never, { "isMobileOrTablet": { "alias": "isMobileOrTablet"; "required": false; "isSignal": true; }; "isMenuLock": { "alias": "isMenuLock"; "required": false; "isSignal": true; }; "isShowSidebar": { "alias": "isShowSidebar"; "required": false; "isSignal": true; }; "userInfo": { "alias": "userInfo"; "required": true; "isSignal": true; }; }, { "menuClosed": "menuClosed"; "menuOpened": "menuOpened"; "toggleMenuLock": "toggleMenuLock"; }, never, never, true, never>;
28
22
  }
@@ -1,24 +1,24 @@
1
1
  import { MatSidenav } from '@angular/material/sidenav';
2
- import { SdLayoutStorageService, SdLayoutMenu } from '../../services';
2
+ import { SdLayoutUserInfo, SidebarConfigurationV1 } from '../../configurations';
3
+ import { SdLayoutMenu } from '../../services';
3
4
  import * as i0 from "@angular/core";
4
- export declare class LayoutSideBarMainV1Component {
5
+ export declare class SidebarV1Component {
5
6
  #private;
6
- private layoutStorageService;
7
- constructor(layoutStorageService: SdLayoutStorageService);
8
- sidenav: MatSidenav;
9
- menus: SdLayoutMenu[];
10
- onhover: boolean;
11
- isMenuLock: boolean;
12
- isShowSidebar: boolean;
13
- isMobileOrTablet: boolean;
14
- timerMouseInMenu: ReturnType<typeof setTimeout> | null;
15
- timerMouseOutMenu: ReturnType<typeof setTimeout> | null;
7
+ sidenav: import("@angular/core").Signal<MatSidenav>;
8
+ menus: import("@angular/core").InputSignal<SdLayoutMenu[]>;
9
+ userInfo: import("@angular/core").InputSignal<SdLayoutUserInfo>;
10
+ sidebar: import("@angular/core").InputSignal<SidebarConfigurationV1>;
11
+ isMobileOrTablet: import("@angular/core").WritableSignal<boolean>;
12
+ isMenuLock: import("@angular/core").WritableSignal<boolean>;
13
+ isShowSidebar: import("@angular/core").WritableSignal<boolean>;
14
+ onhover: import("@angular/core").WritableSignal<boolean>;
15
+ constructor();
16
16
  openSidebar: () => void;
17
17
  onPopupOfSideBarOpened: () => void;
18
18
  onPopupOfSideBarClosed: () => void;
19
19
  onExpandSideBar: () => void;
20
20
  onMouseleaveSideBar: () => void;
21
21
  onToggle: (data: boolean | null) => void;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<LayoutSideBarMainV1Component, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<LayoutSideBarMainV1Component, "lib-layout-sidebar-main-v1", never, { "menus": { "alias": "menus"; "required": false; }; }, {}, never, ["*"], true, never>;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarV1Component, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarV1Component, "sidebar-v1", never, { "menus": { "alias": "menus"; "required": false; "isSignal": true; }; "userInfo": { "alias": "userInfo"; "required": true; "isSignal": true; }; "sidebar": { "alias": "sidebar"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
24
24
  }
@@ -1,16 +1,59 @@
1
1
  import { InjectionToken } from '@angular/core';
2
+ import { SdMaybeAsync } from '@sd-angular/core/utilities/models';
2
3
  export interface ISdLayoutConfiguration {
3
4
  homeUrl?: string;
4
- sidebar: ISdSidebarConfiguration | (() => ISdSidebarConfiguration | Promise<ISdSidebarConfiguration>);
5
+ sidebar: ISdSidebarConfiguration | (() => SdMaybeAsync<ISdSidebarConfiguration>);
6
+ userInfo: SdLayoutUserInfo | (() => SdMaybeAsync<SdLayoutUserInfo>);
5
7
  signout: () => void | Promise<void>;
6
8
  changePassword?: () => void | Promise<void>;
7
9
  }
8
- export type ISdSidebarConfiguration = ISidebarConfigurationV1;
9
- export interface ISidebarConfigurationV1 {
10
+ export interface SdLayoutUserInfo {
11
+ /**
12
+ * Tên đăng nhập hoặc tên định danh của người dùng.
13
+ * Thường dùng làm định danh rút gọn hoặc fallback hiển thị nếu user chưa cập nhật fullName.
14
+ */
15
+ username?: string;
16
+ /**
17
+ * Địa chỉ thư điện tử của người dùng.
18
+ * Thường được hiển thị bên dưới tên người dùng trong popup/menu thông tin tài khoản.
19
+ */
20
+ email?: string;
21
+ /**
22
+ * Họ và tên đầy đủ của người dùng.
23
+ * Đây là thông tin được ưu tiên hiển thị chính trên giao diện (VD: góc phải màn hình, lời chào).
24
+ */
25
+ fullName?: string;
26
+ /**
27
+ * Hình đại diện (avatar) của người dùng.
28
+ * Nếu để trống, hệ thống sẽ tự động lấy ký tự đầu tiên của fullName hoặc username để tạo avatar mặc định.
29
+ * Hỗ trợ các định dạng: URL (http/https), chuỗi base64 (data:image), hoặc đường dẫn nội bộ.
30
+ */
31
+ avatar?: string;
32
+ }
33
+ export type ISdSidebarConfiguration = SidebarConfigurationV1;
34
+ export interface SidebarConfigurationV1 {
10
35
  version: 1;
36
+ /**
37
+ * Màu brand chính.
38
+ * Nên sử dụng mã màu #HEX hoặc rgb để hỗ trợ opacity khi hover.
39
+ * Ví dụ: #1890ff, rgb(24,144,255)
40
+ */
11
41
  brandColor?: string;
42
+ /**
43
+ * Màu brand nhạt (light).
44
+ * Dùng cho background, hover nhẹ.
45
+ */
12
46
  brandLightColor?: string;
47
+ /**
48
+ * URL logo hiển thị ở sidebar.
49
+ * Nên đặt trong thư mục public hoặc dùng URL CDN.
50
+ */
13
51
  logoUrl?: string;
52
+ /**
53
+ * Title mặc định của hệ thống.
54
+ * Nếu menu không truyền title thì sẽ dùng giá trị này.
55
+ * @default "Back Office"
56
+ */
14
57
  defaultTitle?: string;
15
58
  }
16
59
  export declare const SD_LAYOUT_CONFIGURATION: InjectionToken<ISdLayoutConfiguration>;
@@ -1,14 +1,9 @@
1
- import { ActivatedRoute } from '@angular/router';
2
- import { SdLayoutStorageService } from '../../../../services';
3
1
  import * as i0 from "@angular/core";
4
2
  export declare class RootComponent {
5
3
  #private;
6
- private route;
7
- private layoutStorageService;
8
- url: string;
9
- email: string;
10
- constructor(route: ActivatedRoute, layoutStorageService: SdLayoutStorageService);
11
- todayInfo: string;
4
+ readonly url: import("@angular/core").WritableSignal<string>;
5
+ readonly todayInfo: import("@angular/core").WritableSignal<string>;
6
+ userInfo: import("@angular/core").WritableSignal<import("@sd-angular/core/modules/layout").SdLayoutUserInfo | undefined>;
12
7
  reload(): void;
13
8
  static ɵfac: i0.ɵɵFactoryDeclaration<RootComponent, never>;
14
9
  static ɵcmp: i0.ɵɵComponentDeclaration<RootComponent, "ng-component", never, {}, {}, never, never, true, never>;
@@ -1,11 +1,8 @@
1
- import { SdLayoutStorageService } from '../../../../services';
2
1
  import * as i0 from "@angular/core";
3
2
  export declare class HomePageComponent {
4
3
  #private;
5
- private layoutStorageService;
6
- fullName: string;
7
- constructor(layoutStorageService: SdLayoutStorageService);
8
- todayInfo: string;
4
+ readonly todayInfo: import("@angular/core").WritableSignal<string>;
5
+ userInfo: import("@angular/core").WritableSignal<import("@sd-angular/core/modules/layout").SdLayoutUserInfo | undefined>;
9
6
  static ɵfac: i0.ɵɵFactoryDeclaration<HomePageComponent, never>;
10
7
  static ɵcmp: i0.ɵɵComponentDeclaration<HomePageComponent, "app-home-page", never, {}, {}, never, never, true, never>;
11
8
  }
@@ -1,14 +1,9 @@
1
- import { ActivatedRoute } from '@angular/router';
2
- import { SdLayoutStorageService } from '../../../../services';
3
1
  import * as i0 from "@angular/core";
4
2
  export declare class RootComponent {
5
3
  #private;
6
- private route;
7
- private layoutStorageService;
8
- url: string;
9
- email: string;
10
- constructor(route: ActivatedRoute, layoutStorageService: SdLayoutStorageService);
11
- todayInfo: string;
4
+ readonly url: import("@angular/core").WritableSignal<string>;
5
+ readonly todayInfo: import("@angular/core").WritableSignal<string>;
6
+ userInfo: import("@angular/core").WritableSignal<import("@sd-angular/core/modules/layout").SdLayoutUserInfo | undefined>;
12
7
  reload(): void;
13
8
  static ɵfac: i0.ɵɵFactoryDeclaration<RootComponent, never>;
14
9
  static ɵcmp: i0.ɵɵComponentDeclaration<RootComponent, "ng-component", never, {}, {}, never, never, true, never>;
@@ -2,7 +2,7 @@ import { PipeTransform } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class HighlightSearchPipe implements PipeTransform {
4
4
  #private;
5
- transform(value: string, keyword: string, agrs?: {
5
+ transform(value: string, keyword: string, args?: {
6
6
  color?: string;
7
7
  }): string;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<HighlightSearchPipe, never>;
@@ -1,2 +1,3 @@
1
1
  export * from './menu/menu.model';
2
2
  export * from './storage/storage.service';
3
+ export * from './layout.service';
@@ -0,0 +1,10 @@
1
+ import { SdLayoutUserInfo } from '../configurations';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SdLayoutService {
4
+ #private;
5
+ userInfo: import("@angular/core").WritableSignal<SdLayoutUserInfo | undefined>;
6
+ sidebar: import("@angular/core").WritableSignal<import("@sd-angular/core/modules/layout").SidebarConfigurationV1 | undefined>;
7
+ constructor();
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdLayoutService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<SdLayoutService>;
10
+ }
@@ -6,6 +6,7 @@ export interface SdLayoutRootMenu {
6
6
  path: string;
7
7
  queryParams?: Params;
8
8
  icon: string;
9
+ iconUrl?: string;
9
10
  title: string;
10
11
  permission: string | string[] | boolean | (() => boolean);
11
12
  level?: number;
@@ -14,6 +15,7 @@ export interface SdLayoutRootMenu {
14
15
  export interface SdLayoutChildrenMenu {
15
16
  id?: string;
16
17
  icon?: string;
18
+ iconUrl?: string;
17
19
  title?: string;
18
20
  children?: (SdLayoutRootMenu | SdLayoutChildrenMenu)[];
19
21
  level?: number;
@@ -2,9 +2,6 @@ import { SdStorage, SdStorageService } from '@sd-angular/core/services';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class SdLayoutStorageService {
4
4
  private sdStorageService;
5
- email: SdStorage<string>;
6
- username: SdStorage<string>;
7
- fullName: SdStorage<string>;
8
5
  isShowSidebar: SdStorage<boolean>;
9
6
  menuLockStatus: SdStorage<boolean>;
10
7
  lastActiveMenuGroupId: SdStorage<string>;
package/package.json CHANGED
@@ -1,20 +1,23 @@
1
1
  {
2
2
  "name": "@sd-angular/core",
3
- "version": "19.0.0-beta.7",
3
+ "version": "19.0.0-beta.70",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0",
6
6
  "@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0",
7
7
  "@angular/material": "^19.0.0 || ^20.0.0 || ^21.0.0",
8
- "@angular/material-moment-adapter": "^19.0.0 || ^20.0.0 || ^21.0.0",
9
- "angular-auth-oidc-client": "^19.0.0 || ^20.0.0 || ^21.0.0"
8
+ "@angular/material-moment-adapter": "^19.0.0 || ^20.0.0 || ^21.0.0"
10
9
  },
11
10
  "dependencies": {
12
- "tslib": "^2.8.0",
13
11
  "@ckeditor/ckeditor5-angular": "^11.0.0",
12
+ "@omer-go/docx-parser-converter-ts": "^1.0.0",
14
13
  "ckeditor5": "^47.3.0",
15
- "moment": "^2.30.1",
16
14
  "exceljs": "^4.4.0",
17
- "export-to-csv": "^1.4.0"
15
+ "export-to-csv": "^1.4.0",
16
+ "mammoth": "^1.11.0",
17
+ "moment": "^2.30.1",
18
+ "keycloak-js": "^26.0.0",
19
+ "prismjs": "^1.30.0",
20
+ "tslib": "^2.8.0"
18
21
  },
19
22
  "sideEffects": false,
20
23
  "module": "fesm2022/sd-angular-core.mjs",
@@ -27,17 +30,21 @@
27
30
  "types": "./index.d.ts",
28
31
  "default": "./fesm2022/sd-angular-core.mjs"
29
32
  },
30
- "./configurations": {
31
- "types": "./configurations/index.d.ts",
32
- "default": "./fesm2022/sd-angular-core-configurations.mjs"
33
+ "./components": {
34
+ "types": "./components/index.d.ts",
35
+ "default": "./fesm2022/sd-angular-core-components.mjs"
33
36
  },
34
37
  "./directives": {
35
38
  "types": "./directives/index.d.ts",
36
39
  "default": "./fesm2022/sd-angular-core-directives.mjs"
37
40
  },
38
- "./components": {
39
- "types": "./components/index.d.ts",
40
- "default": "./fesm2022/sd-angular-core-components.mjs"
41
+ "./configurations": {
42
+ "types": "./configurations/index.d.ts",
43
+ "default": "./fesm2022/sd-angular-core-configurations.mjs"
44
+ },
45
+ "./forms": {
46
+ "types": "./forms/index.d.ts",
47
+ "default": "./fesm2022/sd-angular-core-forms.mjs"
41
48
  },
42
49
  "./guards": {
43
50
  "types": "./guards/index.d.ts",
@@ -47,10 +54,6 @@
47
54
  "types": "./handlers/index.d.ts",
48
55
  "default": "./fesm2022/sd-angular-core-handlers.mjs"
49
56
  },
50
- "./forms": {
51
- "types": "./forms/index.d.ts",
52
- "default": "./fesm2022/sd-angular-core-forms.mjs"
53
- },
54
57
  "./interceptors": {
55
58
  "types": "./interceptors/index.d.ts",
56
59
  "default": "./fesm2022/sd-angular-core-interceptors.mjs"
@@ -71,30 +74,38 @@
71
74
  "types": "./utilities/index.d.ts",
72
75
  "default": "./fesm2022/sd-angular-core-utilities.mjs"
73
76
  },
74
- "./components/badge": {
75
- "types": "./components/badge/index.d.ts",
76
- "default": "./fesm2022/sd-angular-core-components-badge.mjs"
77
+ "./components/anchor": {
78
+ "types": "./components/anchor/index.d.ts",
79
+ "default": "./fesm2022/sd-angular-core-components-anchor.mjs"
77
80
  },
78
81
  "./components/anchor-v2": {
79
82
  "types": "./components/anchor-v2/index.d.ts",
80
83
  "default": "./fesm2022/sd-angular-core-components-anchor-v2.mjs"
81
84
  },
82
- "./components/anchor": {
83
- "types": "./components/anchor/index.d.ts",
84
- "default": "./fesm2022/sd-angular-core-components-anchor.mjs"
85
+ "./components/avatar": {
86
+ "types": "./components/avatar/index.d.ts",
87
+ "default": "./fesm2022/sd-angular-core-components-avatar.mjs"
85
88
  },
86
89
  "./components/base": {
87
90
  "types": "./components/base/index.d.ts",
88
91
  "default": "./fesm2022/sd-angular-core-components-base.mjs"
89
92
  },
90
- "./components/document-builder": {
91
- "types": "./components/document-builder/index.d.ts",
92
- "default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
93
+ "./components/badge": {
94
+ "types": "./components/badge/index.d.ts",
95
+ "default": "./fesm2022/sd-angular-core-components-badge.mjs"
93
96
  },
94
97
  "./components/button": {
95
98
  "types": "./components/button/index.d.ts",
96
99
  "default": "./fesm2022/sd-angular-core-components-button.mjs"
97
100
  },
101
+ "./components/code-editor": {
102
+ "types": "./components/code-editor/index.d.ts",
103
+ "default": "./fesm2022/sd-angular-core-components-code-editor.mjs"
104
+ },
105
+ "./components/document-builder": {
106
+ "types": "./components/document-builder/index.d.ts",
107
+ "default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
108
+ },
98
109
  "./components/history": {
99
110
  "types": "./components/history/index.d.ts",
100
111
  "default": "./fesm2022/sd-angular-core-components-history.mjs"
@@ -107,14 +118,18 @@
107
118
  "types": "./components/import-excel/index.d.ts",
108
119
  "default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
109
120
  },
110
- "./components/preview": {
111
- "types": "./components/preview/index.d.ts",
112
- "default": "./fesm2022/sd-angular-core-components-preview.mjs"
121
+ "./components/mini-editor": {
122
+ "types": "./components/mini-editor/index.d.ts",
123
+ "default": "./fesm2022/sd-angular-core-components-mini-editor.mjs"
113
124
  },
114
125
  "./components/query-builder": {
115
126
  "types": "./components/query-builder/index.d.ts",
116
127
  "default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
117
128
  },
129
+ "./components/preview": {
130
+ "types": "./components/preview/index.d.ts",
131
+ "default": "./fesm2022/sd-angular-core-components-preview.mjs"
132
+ },
118
133
  "./components/quick-action": {
119
134
  "types": "./components/quick-action/index.d.ts",
120
135
  "default": "./fesm2022/sd-angular-core-components-quick-action.mjs"
@@ -127,14 +142,14 @@
127
142
  "types": "./components/side-drawer/index.d.ts",
128
143
  "default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
129
144
  },
130
- "./components/table": {
131
- "types": "./components/table/index.d.ts",
132
- "default": "./fesm2022/sd-angular-core-components-table.mjs"
133
- },
134
145
  "./components/tab-router": {
135
146
  "types": "./components/tab-router/index.d.ts",
136
147
  "default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
137
148
  },
149
+ "./components/table": {
150
+ "types": "./components/table/index.d.ts",
151
+ "default": "./fesm2022/sd-angular-core-components-table.mjs"
152
+ },
138
153
  "./components/upload-file": {
139
154
  "types": "./components/upload-file/index.d.ts",
140
155
  "default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
@@ -143,6 +158,10 @@
143
158
  "types": "./components/workflow/index.d.ts",
144
159
  "default": "./fesm2022/sd-angular-core-components-workflow.mjs"
145
160
  },
161
+ "./forms/autocomplete": {
162
+ "types": "./forms/autocomplete/index.d.ts",
163
+ "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
164
+ },
146
165
  "./forms/checkbox": {
147
166
  "types": "./forms/checkbox/index.d.ts",
148
167
  "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
@@ -155,10 +174,6 @@
155
174
  "types": "./forms/chip-calendar/index.d.ts",
156
175
  "default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
157
176
  },
158
- "./guards/permission": {
159
- "types": "./guards/permission/index.d.ts",
160
- "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
161
- },
162
177
  "./forms/date": {
163
178
  "types": "./forms/date/index.d.ts",
164
179
  "default": "./fesm2022/sd-angular-core-forms-date.mjs"
@@ -207,18 +222,22 @@
207
222
  "types": "./forms/textarea/index.d.ts",
208
223
  "default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
209
224
  },
225
+ "./guards/permission": {
226
+ "types": "./guards/permission/index.d.ts",
227
+ "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
228
+ },
210
229
  "./modules/auth": {
211
230
  "types": "./modules/auth/index.d.ts",
212
231
  "default": "./fesm2022/sd-angular-core-modules-auth.mjs"
213
232
  },
233
+ "./modules/keycloak": {
234
+ "types": "./modules/keycloak/index.d.ts",
235
+ "default": "./fesm2022/sd-angular-core-modules-keycloak.mjs"
236
+ },
214
237
  "./modules/layout": {
215
238
  "types": "./modules/layout/index.d.ts",
216
239
  "default": "./fesm2022/sd-angular-core-modules-layout.mjs"
217
240
  },
218
- "./modules/oidc": {
219
- "types": "./modules/oidc/index.d.ts",
220
- "default": "./fesm2022/sd-angular-core-modules-oidc.mjs"
221
- },
222
241
  "./modules/permission": {
223
242
  "types": "./modules/permission/index.d.ts",
224
243
  "default": "./fesm2022/sd-angular-core-modules-permission.mjs"
@@ -235,6 +254,10 @@
235
254
  "types": "./services/confirm/index.d.ts",
236
255
  "default": "./fesm2022/sd-angular-core-services-confirm.mjs"
237
256
  },
257
+ "./services/docx": {
258
+ "types": "./services/docx/index.d.ts",
259
+ "default": "./fesm2022/sd-angular-core-services-docx.mjs"
260
+ },
238
261
  "./services/excel": {
239
262
  "types": "./services/excel/index.d.ts",
240
263
  "default": "./fesm2022/sd-angular-core-services-excel.mjs"
@@ -267,9 +290,9 @@
267
290
  "types": "./utilities/models/index.d.ts",
268
291
  "default": "./fesm2022/sd-angular-core-utilities-models.mjs"
269
292
  },
270
- "./forms/autocomplete": {
271
- "types": "./forms/autocomplete/index.d.ts",
272
- "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
293
+ "./components/view": {
294
+ "types": "./components/view/index.d.ts",
295
+ "default": "./fesm2022/sd-angular-core-components-view.mjs"
273
296
  }
274
297
  }
275
298
  }
@@ -15,16 +15,21 @@ export type SdPutOption = HttpPutOption & SdApiOption;
15
15
  type HttpDeleteOption = Parameters<HttpClient['delete']>[1];
16
16
  export type SdDeleteOption = HttpDeleteOption & SdApiOption;
17
17
  export interface SdApiHandler {
18
+ /** Danh sách host URL mà handler này sẽ xử lý */
18
19
  hosts: string[];
20
+ /** Can thiệp request: gắn header, token, transform body... */
19
21
  intercept?: (request: HttpRequest<any>) => HttpRequest<any>;
22
+ /** Hook chạy TRƯỚC khi gửi request (dùng để log, tracking...) */
20
23
  beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;
24
+ /** Hook chạy SAU khi nhận response (xử lý lỗi, notify...) */
21
25
  afterRemote?: (response: HttpResponse<any> | HttpErrorResponse | Error) => void | Promise<void>;
26
+ /** Transform response body thành kiểu dữ liệu mong muốn */
22
27
  mapResponse?: <Tres = any, Tdata = any>(response: Tres) => Tdata;
28
+ /** Timeout tính bằng milliseconds. Mặc định: 30000 (30 giây) */
23
29
  timeout?: number;
24
30
  }
25
31
  export interface ISdApiConfiguration {
26
32
  handlers: SdApiHandler[];
27
33
  }
28
34
  export declare const SD_API_CONFIG: InjectionToken<ISdApiConfiguration>;
29
- export declare const TOKEN: string;
30
35
  export {};
@@ -10,6 +10,7 @@ export declare class SdConfirmService {
10
10
  noTitle?: string;
11
11
  yesButtonColor?: SdColor;
12
12
  noButtonColor?: SdColor;
13
+ width?: string;
13
14
  }) => Promise<unknown>;
14
15
  withInput: (message?: string, option?: {
15
16
  title?: string;
@@ -0,0 +1 @@
1
+ export * from './src/public-api';
@@ -0,0 +1,9 @@
1
+ export interface SdDocxConvertOptions {
2
+ validateFormat?: boolean;
3
+ validateSize?: boolean;
4
+ maxSizeInMb?: number;
5
+ }
6
+ export interface SdDocxConvertResult {
7
+ html: string;
8
+ messages: string[];
9
+ }
@@ -0,0 +1,13 @@
1
+ import { SdDocxConvertOptions, SdDocxConvertResult } from './docx.model';
2
+ import { SdNotifyService } from '@sd-angular/core/services/notify';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SdDocxService {
5
+ #private;
6
+ private notifyService;
7
+ constructor(notifyService: SdNotifyService);
8
+ open(options?: SdDocxConvertOptions): Promise<SdDocxConvertResult | null>;
9
+ convertToHtml(input: File | Blob | ArrayBuffer, options?: SdDocxConvertOptions): Promise<SdDocxConvertResult | null>;
10
+ convertToHtmlString(input: File | Blob | ArrayBuffer, options?: SdDocxConvertOptions): Promise<string | null>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdDocxService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<SdDocxService>;
13
+ }
@@ -0,0 +1,2 @@
1
+ export { SdDocxService } from './lib/docx.service';
2
+ export type { SdDocxConvertOptions, SdDocxConvertResult } from './lib/docx.model';
@@ -5,3 +5,4 @@ export * from '@sd-angular/core/services/confirm';
5
5
  export * from '@sd-angular/core/services/api';
6
6
  export * from '@sd-angular/core/services/loading';
7
7
  export * from '@sd-angular/core/services/excel';
8
+ export * from '@sd-angular/core/services/docx';
@@ -1 +1,2 @@
1
+ export { type SdNotifyOption } from './src/notify.model';
1
2
  export * from './src/notify.service';
@@ -8,7 +8,7 @@ export interface ToastData {
8
8
  actionLabel?: string;
9
9
  onAction?: () => void;
10
10
  }
11
- export interface NotifyOption {
11
+ export interface SdNotifyOption {
12
12
  duration?: number;
13
13
  title?: string;
14
14
  actionLabel?: string;
@@ -1,5 +1,5 @@
1
1
  import { ApplicationRef, EnvironmentInjector } from '@angular/core';
2
- import { NotifyOption, ToastData, ToastType } from './notify.model';
2
+ import { SdNotifyOption, ToastData, ToastType } from './notify.model';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SdNotifyService {
5
5
  #private;
@@ -8,10 +8,10 @@ export declare class SdNotifyService {
8
8
  private document;
9
9
  readonly toasts: import("@angular/core").WritableSignal<ToastData[]>;
10
10
  constructor(appRef: ApplicationRef, injector: EnvironmentInjector, document: Document);
11
- success(message: string, option?: NotifyOption): void;
12
- info(message: string, option?: NotifyOption): void;
13
- warning(message: string | string[], option?: NotifyOption): void;
14
- error(message: string | string[], option?: NotifyOption): void;
11
+ success(message: string, option?: SdNotifyOption): void;
12
+ info(message: string, option?: SdNotifyOption): void;
13
+ warning(message: string | string[], option?: SdNotifyOption): void;
14
+ error(message: string | string[], option?: SdNotifyOption): void;
15
15
  remove(id: string): void;
16
16
  clearAll(): void;
17
17
  clearByType(type: ToastType): void;
@@ -2,6 +2,8 @@ export declare const StringUtilities: {
2
2
  REGEX_EMAIL: string;
3
3
  REGEX_PHONE: string;
4
4
  REGEX_PHONE_VN: string;
5
+ REGEX_IDVN_OR_PASSPORT: string;
6
+ REGEX_TIME: string;
5
7
  isValidEmail: (value: any) => boolean;
6
8
  isValidPhone: (value: any) => boolean;
7
9
  isValidCode: (value: any) => boolean;
@@ -20,5 +20,6 @@ declare const SdUtilities: {
20
20
  parseQueryParams: (queryString?: string) => Record<string, string>;
21
21
  getClientPublicIp: () => Promise<string | null>;
22
22
  generateUuid: () => string;
23
+ getNestedValue: (obj: any, path: string) => any;
23
24
  };
24
25
  export { SdUtilities };
@@ -1,8 +1,11 @@
1
1
  export * from './src/color.model';
2
2
  export * from './src/size.model';
3
+ export * from './src/icon.model';
3
4
  export * from './src/pattern.model';
4
5
  export * from './src/empty.model';
5
6
  export * from './src/maybe-async.model';
7
+ export * from './src/nested-key-of.model';
8
+ export * from './src/unwrap-signal.model';
6
9
  export * from './src/operator.model';
7
10
  export * from './src/filter.model';
8
11
  export * from './src/order.model';