@sd-angular/core 19.0.0-beta.5 → 19.0.0-beta.51

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 (195) 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/grid.scss +40 -0
  5. package/assets/scss/sd-core.scss +1 -0
  6. package/components/avatar/index.d.ts +1 -0
  7. package/components/avatar/src/avatar.component.d.ts +15 -0
  8. package/components/badge/src/badge.component.d.ts +77 -19
  9. package/components/button/src/button.component.d.ts +26 -28
  10. package/components/code-editor/index.d.ts +1 -0
  11. package/components/code-editor/src/code-editor.component.d.ts +25 -0
  12. package/components/document-builder/index.d.ts +1 -0
  13. package/components/document-builder/src/document-builder.component.d.ts +18 -36
  14. package/components/document-builder/src/document-builder.model.d.ts +10 -10
  15. package/components/document-builder/src/plugins/block-space/block-space.plugin.d.ts +9 -0
  16. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.d.ts +44 -0
  17. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.model.d.ts +56 -0
  18. package/components/document-builder/src/plugins/heading/heading.plugin.d.ts +1 -0
  19. package/components/document-builder/src/plugins/highlight-range/highlight-range.plugin.d.ts +4 -0
  20. package/components/document-builder/src/plugins/image-custom/image-custom.plugin.d.ts +31 -0
  21. package/components/document-builder/src/plugins/index.d.ts +7 -2
  22. package/components/document-builder/src/plugins/page-orientation/page-orientation.plugin.d.ts +2 -2
  23. package/components/document-builder/src/plugins/paste-handler/filters/bookmark.d.ts +14 -0
  24. package/components/document-builder/src/plugins/paste-handler/filters/br.d.ts +15 -0
  25. package/components/document-builder/src/plugins/paste-handler/filters/image.d.ts +25 -0
  26. package/components/document-builder/src/plugins/paste-handler/filters/list.d.ts +29 -0
  27. package/components/document-builder/src/plugins/paste-handler/filters/parse.d.ts +35 -0
  28. package/components/document-builder/src/plugins/paste-handler/filters/removeboldwrapper.d.ts +15 -0
  29. package/components/document-builder/src/plugins/paste-handler/filters/removegooglesheetstag.d.ts +15 -0
  30. package/components/document-builder/src/plugins/paste-handler/filters/removeinvalidtablewidth.d.ts +15 -0
  31. package/components/document-builder/src/plugins/paste-handler/filters/removemsattributes.d.ts +15 -0
  32. package/components/document-builder/src/plugins/paste-handler/filters/removestyleblock.d.ts +15 -0
  33. package/components/document-builder/src/plugins/paste-handler/filters/removexmlns.d.ts +15 -0
  34. package/components/document-builder/src/plugins/paste-handler/filters/replacemsfootnotes.d.ts +54 -0
  35. package/components/document-builder/src/plugins/paste-handler/filters/replacetabswithinprewithspaces.d.ts +24 -0
  36. package/components/document-builder/src/plugins/paste-handler/filters/space.d.ts +27 -0
  37. package/components/document-builder/src/plugins/paste-handler/filters/table.d.ts +16 -0
  38. package/components/document-builder/src/plugins/paste-handler/filters/utils.d.ts +25 -0
  39. package/components/document-builder/src/plugins/paste-handler/index.d.ts +35 -0
  40. package/components/document-builder/src/plugins/paste-handler/normalizers/googledocsnormalizer.d.ts +31 -0
  41. package/components/document-builder/src/plugins/paste-handler/normalizers/googlesheetsnormalizer.d.ts +31 -0
  42. package/components/document-builder/src/plugins/paste-handler/normalizers/mswordnormalizer.d.ts +29 -0
  43. package/components/document-builder/src/plugins/paste-handler/types.d.ts +30 -0
  44. package/components/document-builder/src/plugins/table-custom/index.d.ts +34 -0
  45. package/components/index.d.ts +4 -0
  46. package/components/mini-editor/index.d.ts +2 -0
  47. package/components/mini-editor/src/mini-editor.component.d.ts +90 -0
  48. package/components/mini-editor/src/mini-editor.model.d.ts +44 -0
  49. package/components/side-drawer/src/side-drawer.component.d.ts +1 -2
  50. package/components/tab-router/src/components/tab-router-item/tab-router-item.component.d.ts +4 -1
  51. package/components/tab-router/src/components/tab-router-outlet/tab-router-outlet.component.d.ts +3 -15
  52. package/components/table/src/components/column-filter/column-filter.component.d.ts +3 -3
  53. package/components/table/src/components/external-filter/external-filter.component.d.ts +1 -1
  54. package/components/table/src/components/selector-action/action-filter.pipe.d.ts +11 -10
  55. package/components/table/src/directives/index.d.ts +2 -0
  56. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +9 -0
  57. package/components/table/src/directives/sticky-shadow.directive.d.ts +17 -0
  58. package/components/table/src/models/table-column.model.d.ts +33 -34
  59. package/components/table/src/models/table-command.model.d.ts +7 -3
  60. package/components/table/src/models/table-item.model.d.ts +5 -4
  61. package/components/table/src/models/table-option-export.model.d.ts +3 -2
  62. package/components/table/src/models/table-option-selector.model.d.ts +11 -10
  63. package/components/table/src/models/table-option.model.d.ts +10 -8
  64. package/components/table/src/services/index.d.ts +3 -0
  65. package/components/table/src/services/table-export/table-export.service.d.ts +26 -0
  66. package/components/table/src/services/table-filter/table-filter.model.d.ts +5 -4
  67. package/components/table/src/services/table-format/table-format.service.d.ts +16 -0
  68. package/components/table/src/table.component.d.ts +39 -53
  69. package/components/view/index.d.ts +1 -0
  70. package/components/view/src/view.component.d.ts +16 -0
  71. package/components/workflow/src/models/index.d.ts +1 -0
  72. package/directives/index.d.ts +1 -0
  73. package/directives/src/sd-href.directive.d.ts +9 -0
  74. package/fesm2022/sd-angular-core-components-avatar.mjs +90 -0
  75. package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -0
  76. package/fesm2022/sd-angular-core-components-badge.mjs +101 -91
  77. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  78. package/fesm2022/sd-angular-core-components-button.mjs +64 -96
  79. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  80. package/fesm2022/sd-angular-core-components-code-editor.mjs +129 -0
  81. package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -0
  82. package/fesm2022/sd-angular-core-components-document-builder.mjs +3635 -521
  83. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  84. package/fesm2022/sd-angular-core-components-history.mjs +1 -1
  85. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  86. package/fesm2022/sd-angular-core-components-import-excel.mjs +1 -1
  87. package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
  88. package/fesm2022/sd-angular-core-components-mini-editor.mjs +326 -0
  89. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -0
  90. package/fesm2022/sd-angular-core-components-preview.mjs +1 -1
  91. package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
  92. package/fesm2022/sd-angular-core-components-side-drawer.mjs +21 -8
  93. package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
  94. package/fesm2022/sd-angular-core-components-tab-router.mjs +152 -226
  95. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  96. package/fesm2022/sd-angular-core-components-table.mjs +1234 -1076
  97. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  98. package/fesm2022/sd-angular-core-components-upload-file.mjs +1 -1
  99. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  100. package/fesm2022/sd-angular-core-components-view.mjs +45 -0
  101. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -0
  102. package/fesm2022/sd-angular-core-components-workflow.mjs +33 -43
  103. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  104. package/fesm2022/sd-angular-core-components.mjs +4 -0
  105. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  106. package/fesm2022/sd-angular-core-directives.mjs +80 -27
  107. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  108. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +257 -363
  109. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  110. package/fesm2022/sd-angular-core-forms-date-range.mjs +145 -245
  111. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  112. package/fesm2022/sd-angular-core-forms-date.mjs +137 -273
  113. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  114. package/fesm2022/sd-angular-core-forms-datetime.mjs +136 -288
  115. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  116. package/fesm2022/sd-angular-core-forms-input-number.mjs +174 -337
  117. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  118. package/fesm2022/sd-angular-core-forms-input.mjs +130 -285
  119. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  120. package/fesm2022/sd-angular-core-forms-radio.mjs +3 -2
  121. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  122. package/fesm2022/sd-angular-core-forms-select.mjs +337 -420
  123. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  124. package/fesm2022/sd-angular-core-forms-textarea.mjs +121 -226
  125. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  126. package/fesm2022/sd-angular-core-modules-keycloak.mjs +126 -0
  127. package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -0
  128. package/fesm2022/sd-angular-core-modules-layout.mjs +440 -431
  129. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  130. package/fesm2022/sd-angular-core-modules.mjs +1 -1
  131. package/fesm2022/sd-angular-core-services-api.mjs +5 -10
  132. package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
  133. package/fesm2022/sd-angular-core-services-confirm.mjs +2 -2
  134. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  135. package/fesm2022/sd-angular-core-services-docx.mjs +173 -0
  136. package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -0
  137. package/fesm2022/sd-angular-core-services-notify.mjs +2 -2
  138. package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
  139. package/fesm2022/sd-angular-core-services.mjs +1 -0
  140. package/fesm2022/sd-angular-core-services.mjs.map +1 -1
  141. package/fesm2022/sd-angular-core-utilities-extensions.mjs +21 -45
  142. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  143. package/fesm2022/sd-angular-core-utilities-models.mjs +15 -1
  144. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  145. package/forms/autocomplete/src/autocomplete.component.d.ts +51 -56
  146. package/forms/date/src/date.component.d.ts +41 -45
  147. package/forms/date-range/src/date-range.component.d.ts +28 -33
  148. package/forms/datetime/src/datetime.component.d.ts +41 -48
  149. package/forms/input/src/input.component.d.ts +46 -56
  150. package/forms/input-number/src/input-number.component.d.ts +47 -54
  151. package/forms/select/src/select.component.d.ts +60 -58
  152. package/forms/textarea/src/textarea.component.d.ts +34 -41
  153. package/modules/index.d.ts +1 -1
  154. package/modules/keycloak/index.d.ts +4 -0
  155. package/modules/keycloak/keycloak.configuration.d.ts +11 -0
  156. package/modules/keycloak/keycloak.interceptor.d.ts +2 -0
  157. package/modules/keycloak/keycloak.module.d.ts +18 -0
  158. package/modules/keycloak/keycloak.service.d.ts +14 -0
  159. package/modules/layout/components/layout-main/layout-main.component.d.ts +7 -12
  160. package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +22 -29
  161. package/modules/layout/components/sidebar-v1/components/user/user.component.d.ts +11 -17
  162. package/modules/layout/components/sidebar-v1/main.component.d.ts +14 -14
  163. package/modules/layout/configurations/layout.configuration.d.ts +46 -3
  164. package/modules/layout/modules/forbidden/pages/root/root.component.d.ts +3 -8
  165. package/modules/layout/modules/home/components/home-page/home-page.component.d.ts +2 -5
  166. package/modules/layout/modules/not-found/pages/root/root.component.d.ts +3 -8
  167. package/modules/layout/services/index.d.ts +1 -0
  168. package/modules/layout/services/layout.service.d.ts +10 -0
  169. package/modules/layout/services/menu/menu.model.d.ts +2 -0
  170. package/modules/layout/services/storage/storage.service.d.ts +0 -3
  171. package/package.json +90 -67
  172. package/sd-angular-core-19.0.0-beta.51.tgz +0 -0
  173. package/services/api/src/api.model.d.ts +6 -1
  174. package/services/confirm/src/lib/confirm.service.d.ts +1 -0
  175. package/services/docx/index.d.ts +1 -0
  176. package/services/docx/src/lib/docx.model.d.ts +9 -0
  177. package/services/docx/src/lib/docx.service.d.ts +13 -0
  178. package/services/docx/src/public-api.d.ts +2 -0
  179. package/services/index.d.ts +1 -0
  180. package/utilities/extensions/src/string.extension.d.ts +2 -0
  181. package/utilities/extensions/src/utility.extension.d.ts +1 -0
  182. package/utilities/models/index.d.ts +3 -0
  183. package/utilities/models/src/filter.model.d.ts +14 -2
  184. package/utilities/models/src/icon.model.d.ts +2 -0
  185. package/utilities/models/src/nested-key-of.model.d.ts +5 -0
  186. package/utilities/models/src/pattern.model.d.ts +1 -1
  187. package/utilities/models/src/unwrap-signal.model.d.ts +6 -0
  188. package/components/document-builder/src/plugins/comment/comment.plugin.d.ts +0 -4
  189. package/components/document-builder/src/plugins/table-fit/table-fit.plugin.d.ts +0 -4
  190. package/fesm2022/sd-angular-core-modules-oidc.mjs +0 -127
  191. package/fesm2022/sd-angular-core-modules-oidc.mjs.map +0 -1
  192. package/modules/oidc/dynamic-sts.loader.d.ts +0 -11
  193. package/modules/oidc/index.d.ts +0 -2
  194. package/modules/oidc/oidc.configuration.d.ts +0 -11
  195. package/modules/oidc/oidc.module.d.ts +0 -14
@@ -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.5",
3
+ "version": "19.0.0-beta.51",
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",
@@ -31,26 +34,26 @@
31
34
  "types": "./directives/index.d.ts",
32
35
  "default": "./fesm2022/sd-angular-core-directives.mjs"
33
36
  },
34
- "./components": {
35
- "types": "./components/index.d.ts",
36
- "default": "./fesm2022/sd-angular-core-components.mjs"
37
- },
38
37
  "./configurations": {
39
38
  "types": "./configurations/index.d.ts",
40
39
  "default": "./fesm2022/sd-angular-core-configurations.mjs"
41
40
  },
41
+ "./components": {
42
+ "types": "./components/index.d.ts",
43
+ "default": "./fesm2022/sd-angular-core-components.mjs"
44
+ },
42
45
  "./guards": {
43
46
  "types": "./guards/index.d.ts",
44
47
  "default": "./fesm2022/sd-angular-core-guards.mjs"
45
48
  },
46
- "./handlers": {
47
- "types": "./handlers/index.d.ts",
48
- "default": "./fesm2022/sd-angular-core-handlers.mjs"
49
- },
50
49
  "./forms": {
51
50
  "types": "./forms/index.d.ts",
52
51
  "default": "./fesm2022/sd-angular-core-forms.mjs"
53
52
  },
53
+ "./handlers": {
54
+ "types": "./handlers/index.d.ts",
55
+ "default": "./fesm2022/sd-angular-core-handlers.mjs"
56
+ },
54
57
  "./interceptors": {
55
58
  "types": "./interceptors/index.d.ts",
56
59
  "default": "./fesm2022/sd-angular-core-interceptors.mjs"
@@ -79,26 +82,38 @@
79
82
  "types": "./components/anchor-v2/index.d.ts",
80
83
  "default": "./fesm2022/sd-angular-core-components-anchor-v2.mjs"
81
84
  },
82
- "./components/badge": {
83
- "types": "./components/badge/index.d.ts",
84
- "default": "./fesm2022/sd-angular-core-components-badge.mjs"
85
- },
86
85
  "./components/base": {
87
86
  "types": "./components/base/index.d.ts",
88
87
  "default": "./fesm2022/sd-angular-core-components-base.mjs"
89
88
  },
90
- "./components/document-builder": {
91
- "types": "./components/document-builder/index.d.ts",
92
- "default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
89
+ "./components/avatar": {
90
+ "types": "./components/avatar/index.d.ts",
91
+ "default": "./fesm2022/sd-angular-core-components-avatar.mjs"
92
+ },
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"
101
112
  },
113
+ "./components/mini-editor": {
114
+ "types": "./components/mini-editor/index.d.ts",
115
+ "default": "./fesm2022/sd-angular-core-components-mini-editor.mjs"
116
+ },
102
117
  "./components/import-excel": {
103
118
  "types": "./components/import-excel/index.d.ts",
104
119
  "default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
@@ -107,21 +122,21 @@
107
122
  "types": "./components/modal/index.d.ts",
108
123
  "default": "./fesm2022/sd-angular-core-components-modal.mjs"
109
124
  },
125
+ "./components/query-builder": {
126
+ "types": "./components/query-builder/index.d.ts",
127
+ "default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
128
+ },
110
129
  "./components/preview": {
111
130
  "types": "./components/preview/index.d.ts",
112
131
  "default": "./fesm2022/sd-angular-core-components-preview.mjs"
113
132
  },
114
- "./components/section": {
115
- "types": "./components/section/index.d.ts",
116
- "default": "./fesm2022/sd-angular-core-components-section.mjs"
117
- },
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"
121
136
  },
122
- "./components/query-builder": {
123
- "types": "./components/query-builder/index.d.ts",
124
- "default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
137
+ "./components/section": {
138
+ "types": "./components/section/index.d.ts",
139
+ "default": "./fesm2022/sd-angular-core-components-section.mjs"
125
140
  },
126
141
  "./components/side-drawer": {
127
142
  "types": "./components/side-drawer/index.d.ts",
@@ -131,53 +146,61 @@
131
146
  "types": "./components/tab-router/index.d.ts",
132
147
  "default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
133
148
  },
134
- "./components/table": {
135
- "types": "./components/table/index.d.ts",
136
- "default": "./fesm2022/sd-angular-core-components-table.mjs"
137
- },
138
149
  "./components/upload-file": {
139
150
  "types": "./components/upload-file/index.d.ts",
140
151
  "default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
141
152
  },
142
- "./components/workflow": {
143
- "types": "./components/workflow/index.d.ts",
144
- "default": "./fesm2022/sd-angular-core-components-workflow.mjs"
153
+ "./guards/permission": {
154
+ "types": "./guards/permission/index.d.ts",
155
+ "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
156
+ },
157
+ "./components/view": {
158
+ "types": "./components/view/index.d.ts",
159
+ "default": "./fesm2022/sd-angular-core-components-view.mjs"
145
160
  },
146
161
  "./forms/autocomplete": {
147
162
  "types": "./forms/autocomplete/index.d.ts",
148
163
  "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
149
164
  },
150
- "./forms/chip-calendar": {
151
- "types": "./forms/chip-calendar/index.d.ts",
152
- "default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
165
+ "./components/workflow": {
166
+ "types": "./components/workflow/index.d.ts",
167
+ "default": "./fesm2022/sd-angular-core-components-workflow.mjs"
168
+ },
169
+ "./forms/chip": {
170
+ "types": "./forms/chip/index.d.ts",
171
+ "default": "./fesm2022/sd-angular-core-forms-chip.mjs"
153
172
  },
154
173
  "./forms/checkbox": {
155
174
  "types": "./forms/checkbox/index.d.ts",
156
175
  "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
157
176
  },
158
- "./forms/chip": {
159
- "types": "./forms/chip/index.d.ts",
160
- "default": "./fesm2022/sd-angular-core-forms-chip.mjs"
177
+ "./forms/chip-calendar": {
178
+ "types": "./forms/chip-calendar/index.d.ts",
179
+ "default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
161
180
  },
162
181
  "./forms/date": {
163
182
  "types": "./forms/date/index.d.ts",
164
183
  "default": "./fesm2022/sd-angular-core-forms-date.mjs"
165
184
  },
185
+ "./forms/datetime": {
186
+ "types": "./forms/datetime/index.d.ts",
187
+ "default": "./fesm2022/sd-angular-core-forms-datetime.mjs"
188
+ },
166
189
  "./forms/date-range": {
167
190
  "types": "./forms/date-range/index.d.ts",
168
191
  "default": "./fesm2022/sd-angular-core-forms-date-range.mjs"
169
192
  },
170
- "./forms/datetime": {
171
- "types": "./forms/datetime/index.d.ts",
172
- "default": "./fesm2022/sd-angular-core-forms-datetime.mjs"
193
+ "./forms/input": {
194
+ "types": "./forms/input/index.d.ts",
195
+ "default": "./fesm2022/sd-angular-core-forms-input.mjs"
173
196
  },
174
197
  "./forms/directives": {
175
198
  "types": "./forms/directives/index.d.ts",
176
199
  "default": "./fesm2022/sd-angular-core-forms-directives.mjs"
177
200
  },
178
- "./forms/input": {
179
- "types": "./forms/input/index.d.ts",
180
- "default": "./fesm2022/sd-angular-core-forms-input.mjs"
201
+ "./forms/input-number": {
202
+ "types": "./forms/input-number/index.d.ts",
203
+ "default": "./fesm2022/sd-angular-core-forms-input-number.mjs"
181
204
  },
182
205
  "./forms/label": {
183
206
  "types": "./forms/label/index.d.ts",
@@ -187,18 +210,14 @@
187
210
  "types": "./forms/models/index.d.ts",
188
211
  "default": "./fesm2022/sd-angular-core-forms-models.mjs"
189
212
  },
190
- "./forms/input-number": {
191
- "types": "./forms/input-number/index.d.ts",
192
- "default": "./fesm2022/sd-angular-core-forms-input-number.mjs"
213
+ "./forms/radio": {
214
+ "types": "./forms/radio/index.d.ts",
215
+ "default": "./fesm2022/sd-angular-core-forms-radio.mjs"
193
216
  },
194
217
  "./forms/select": {
195
218
  "types": "./forms/select/index.d.ts",
196
219
  "default": "./fesm2022/sd-angular-core-forms-select.mjs"
197
220
  },
198
- "./forms/radio": {
199
- "types": "./forms/radio/index.d.ts",
200
- "default": "./fesm2022/sd-angular-core-forms-radio.mjs"
201
- },
202
221
  "./forms/textarea": {
203
222
  "types": "./forms/textarea/index.d.ts",
204
223
  "default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
@@ -211,14 +230,14 @@
211
230
  "types": "./modules/auth/index.d.ts",
212
231
  "default": "./fesm2022/sd-angular-core-modules-auth.mjs"
213
232
  },
214
- "./modules/oidc": {
215
- "types": "./modules/oidc/index.d.ts",
216
- "default": "./fesm2022/sd-angular-core-modules-oidc.mjs"
217
- },
218
233
  "./modules/layout": {
219
234
  "types": "./modules/layout/index.d.ts",
220
235
  "default": "./fesm2022/sd-angular-core-modules-layout.mjs"
221
236
  },
237
+ "./modules/keycloak": {
238
+ "types": "./modules/keycloak/index.d.ts",
239
+ "default": "./fesm2022/sd-angular-core-modules-keycloak.mjs"
240
+ },
222
241
  "./modules/permission": {
223
242
  "types": "./modules/permission/index.d.ts",
224
243
  "default": "./fesm2022/sd-angular-core-modules-permission.mjs"
@@ -235,9 +254,9 @@
235
254
  "types": "./services/confirm/index.d.ts",
236
255
  "default": "./fesm2022/sd-angular-core-services-confirm.mjs"
237
256
  },
238
- "./services/license": {
239
- "types": "./services/license/index.d.ts",
240
- "default": "./fesm2022/sd-angular-core-services-license.mjs"
257
+ "./services/docx": {
258
+ "types": "./services/docx/index.d.ts",
259
+ "default": "./fesm2022/sd-angular-core-services-docx.mjs"
241
260
  },
242
261
  "./services/excel": {
243
262
  "types": "./services/excel/index.d.ts",
@@ -251,14 +270,18 @@
251
270
  "types": "./services/loading/index.d.ts",
252
271
  "default": "./fesm2022/sd-angular-core-services-loading.mjs"
253
272
  },
254
- "./services/storage": {
255
- "types": "./services/storage/index.d.ts",
256
- "default": "./fesm2022/sd-angular-core-services-storage.mjs"
273
+ "./services/license": {
274
+ "types": "./services/license/index.d.ts",
275
+ "default": "./fesm2022/sd-angular-core-services-license.mjs"
257
276
  },
258
277
  "./services/notify": {
259
278
  "types": "./services/notify/index.d.ts",
260
279
  "default": "./fesm2022/sd-angular-core-services-notify.mjs"
261
280
  },
281
+ "./services/storage": {
282
+ "types": "./services/storage/index.d.ts",
283
+ "default": "./fesm2022/sd-angular-core-services-storage.mjs"
284
+ },
262
285
  "./utilities/extensions": {
263
286
  "types": "./utilities/extensions/index.d.ts",
264
287
  "default": "./fesm2022/sd-angular-core-utilities-extensions.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
- "./guards/permission": {
271
- "types": "./guards/permission/index.d.ts",
272
- "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
293
+ "./components/table": {
294
+ "types": "./components/table/index.d.ts",
295
+ "default": "./fesm2022/sd-angular-core-components-table.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';
@@ -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';
@@ -1,11 +1,23 @@
1
1
  import { SdOperatorHasData, SdOperatorNoData } from './operator.model';
2
- export type SdFilter<T = any> = SdFilterHasData<T> | SdFilterNoData<T>;
2
+ export type SdFilter<T = any> = SdFilterHasData<T> | SdFilterBetween<T> | SdFilterNoData<T> | SdFilterAndOr<T>;
3
3
  export interface SdFilterHasData<T = any> {
4
4
  field: Extract<keyof T, string>;
5
- operator: SdOperatorHasData;
5
+ operator: Exclude<SdOperatorHasData, 'BETWEEN'>;
6
6
  data: any;
7
7
  }
8
+ export interface SdFilterBetween<T = any> {
9
+ field: Extract<keyof T, string>;
10
+ operator: 'BETWEEN';
11
+ data: {
12
+ from: string | number;
13
+ to: string | number;
14
+ };
15
+ }
8
16
  export interface SdFilterNoData<T = any> {
9
17
  field: Extract<keyof T, string>;
10
18
  operator: SdOperatorNoData;
11
19
  }
20
+ export interface SdFilterAndOr<T = any> {
21
+ operator: 'AND' | 'OR';
22
+ data: SdFilter<T>[];
23
+ }
@@ -0,0 +1,2 @@
1
+ export type MaterialIconFontSet = 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' | 'material-symbols-outlined';
2
+ export declare const DefaultMaterialIconFontSet: MaterialIconFontSet;
@@ -0,0 +1,5 @@
1
+ type Primitive = string | number | boolean | null | undefined | Date | Function;
2
+ export type SdNestedKeyOf<ObjectType, Depth extends number[] = []> = Depth['length'] extends 5 ? never : ObjectType extends object ? {
3
+ [Key in keyof ObjectType & string]: ObjectType[Key] extends Primitive ? Key : ObjectType[Key] extends Array<any> ? Key : ObjectType[Key] extends object ? Key | `${Key}.${SdNestedKeyOf<ObjectType[Key], [...Depth, 1]>}` : Key;
4
+ }[keyof ObjectType & string] : string;
5
+ export {};
@@ -1,4 +1,4 @@
1
- export type SdPatternType = 'EMAIL' | 'PHONE' | 'PHONE_VN';
1
+ export type SdPatternType = 'EMAIL' | 'PHONE' | 'PHONE_VN' | 'IDVN_OR_PASSPORT' | 'TIME';
2
2
  export interface SdPatternCommon {
3
3
  type: SdPatternType;
4
4
  name: string;
@@ -0,0 +1,6 @@
1
+ import { InputSignal, InputSignalWithTransform, ModelSignal } from '@angular/core';
2
+ /**
3
+ * Utility Type: Bóc tách kiểu dữ liệu gốc từ Angular Signal Inputs & Models
4
+ */
5
+ export type SdUnwrapSignal<T> = T extends InputSignalWithTransform<any, infer WriteT> ? WriteT : T extends InputSignal<infer ReadT> ? ReadT : T extends ModelSignal<infer ModelT> ? ModelT : T;
6
+ export type SdUnwrapSafe<T> = SdUnwrapSignal<NonNullable<T>>;
@@ -1,4 +0,0 @@
1
- import { Plugin } from 'ckeditor5';
2
- export declare class CommentPlugin extends Plugin {
3
- init(): void;
4
- }
@@ -1,4 +0,0 @@
1
- import { Plugin } from 'ckeditor5';
2
- export declare class TableFitPlugin extends Plugin {
3
- init(): void;
4
- }
@@ -1,127 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, Inject, Injectable, NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { StsConfigLoader, LogLevel, provideAuth, authInterceptor } from 'angular-auth-oidc-client';
5
- import { from, map } from 'rxjs';
6
- import { provideHttpClient, withInterceptors } from '@angular/common/http';
7
-
8
- const SD_OIDC_CONFIGURATION = new InjectionToken('sd-oidc.configuration');
9
-
10
- class DynamicStsLoader extends StsConfigLoader {
11
- oidcConfiguration;
12
- constructor(oidcConfiguration) {
13
- super();
14
- this.oidcConfiguration = oidcConfiguration;
15
- }
16
- // SỬA LỖI TYPE: Trả về Observable<OpenIdConfiguration[]>
17
- loadConfigs() {
18
- const loaderPromise = this.oidcConfiguration.loadTenantConfig();
19
- // Dùng 'from' chuyển Promise -> Observable
20
- return from(loaderPromise).pipe(map(tenantConfig => {
21
- const authority = `${tenantConfig.url}/realms/${tenantConfig.realm}`;
22
- console.log('Authority:', authority);
23
- console.log('SecureRoutes:', tenantConfig.secureRoutes);
24
- const config = {
25
- authority,
26
- redirectUrl: window.location.origin,
27
- postLogoutRedirectUri: window.location.origin,
28
- clientId: tenantConfig.clientId,
29
- scope: 'openid profile email offline_access',
30
- responseType: 'code',
31
- silentRenew: true, // Tự động Refresh Token
32
- useRefreshToken: true,
33
- ignoreNonceAfterRefresh: true,
34
- renewTimeBeforeTokenExpiresInSeconds: 10,
35
- logLevel: LogLevel.Warn,
36
- // Cập nhật domain API của bạn vào đây để Interceptor tự đính Token
37
- secureRoutes: tenantConfig.secureRoutes?.filter(route => !!route)?.map(route => route.trim()),
38
- };
39
- // Trả về mảng (bắt buộc với bản mới)
40
- return [config];
41
- }));
42
- }
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DynamicStsLoader, deps: [{ token: SD_OIDC_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
44
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DynamicStsLoader });
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DynamicStsLoader, decorators: [{
47
- type: Injectable
48
- }], ctorParameters: () => [{ type: undefined, decorators: [{
49
- type: Inject,
50
- args: [SD_OIDC_CONFIGURATION]
51
- }] }] });
52
-
53
- // 5. Module Wrapper
54
- class SdOidcModule {
55
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
- static forRoot(options) {
57
- if (options.useFactory) {
58
- return {
59
- ngModule: SdOidcModule,
60
- providers: [
61
- {
62
- provide: SD_OIDC_CONFIGURATION,
63
- useFactory: options.useFactory,
64
- deps: options.deps,
65
- },
66
- // B. Provide Auth Logic (Dùng cú pháp provideAuth mới ngay trong NgModule)
67
- provideAuth({
68
- loader: {
69
- provide: StsConfigLoader,
70
- useClass: DynamicStsLoader,
71
- },
72
- }),
73
- provideHttpClient(withInterceptors([authInterceptor()])),
74
- ],
75
- };
76
- }
77
- if (options.useClass) {
78
- return {
79
- ngModule: SdOidcModule,
80
- providers: [
81
- {
82
- provide: SD_OIDC_CONFIGURATION,
83
- useClass: options.useClass,
84
- },
85
- // B. Provide Auth Logic (Dùng cú pháp provideAuth mới ngay trong NgModule)
86
- provideAuth({
87
- loader: {
88
- provide: StsConfigLoader,
89
- useClass: DynamicStsLoader,
90
- },
91
- }),
92
- provideHttpClient(withInterceptors([authInterceptor()])),
93
- ],
94
- };
95
- }
96
- return {
97
- ngModule: SdOidcModule,
98
- providers: [
99
- // B. Provide Auth Logic (Dùng cú pháp provideAuth mới ngay trong NgModule)
100
- provideAuth({
101
- loader: {
102
- provide: StsConfigLoader,
103
- useClass: DynamicStsLoader,
104
- },
105
- }),
106
- provideHttpClient(withInterceptors([authInterceptor()])),
107
- ],
108
- };
109
- }
110
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdOidcModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
111
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SdOidcModule, imports: [CommonModule] });
112
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdOidcModule, imports: [CommonModule] });
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdOidcModule, decorators: [{
115
- type: NgModule,
116
- args: [{
117
- imports: [CommonModule],
118
- exports: [],
119
- }]
120
- }] });
121
-
122
- /**
123
- * Generated bundle index. Do not edit.
124
- */
125
-
126
- export { SD_OIDC_CONFIGURATION, SdOidcModule };
127
- //# sourceMappingURL=sd-angular-core-modules-oidc.mjs.map