@sd-angular/core 19.0.0-beta.96 → 19.0.0-beta.97

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 (31) hide show
  1. package/components/document-builder/src/components/header-footer-builder/header-footer-builder.component.d.ts +2 -2
  2. package/components/document-builder/src/document-builder.model.d.ts +6 -2
  3. package/components/editor/src/editor.component.d.ts +8 -0
  4. package/components/editor/src/models/image-upload.plugin.model.d.ts +33 -0
  5. package/components/editor/src/plugins/image-upload/utils/style.utils.d.ts +1 -0
  6. package/components/table/index.d.ts +1 -0
  7. package/components/table/src/models/index.d.ts +1 -0
  8. package/components/table/src/models/table-item.model.d.ts +10 -0
  9. package/components/table/src/models/table-option-style.model.d.ts +6 -1
  10. package/components/table/src/models/table-option-tree.model.d.ts +12 -0
  11. package/components/table/src/models/table-option.model.d.ts +6 -0
  12. package/components/table/src/pipes/index.d.ts +1 -0
  13. package/components/table/src/pipes/sd-tree.pipe.d.ts +9 -0
  14. package/components/table/src/services/tree/tree.util.d.ts +14 -0
  15. package/components/table/src/table.component.d.ts +3 -0
  16. package/fesm2022/sd-angular-core-components-document-builder.mjs +9 -4
  17. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  18. package/fesm2022/sd-angular-core-components-editor.mjs +222 -97
  19. package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
  20. package/fesm2022/sd-angular-core-components-tab-router.mjs +57 -15
  21. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  22. package/fesm2022/sd-angular-core-components-table.mjs +325 -41
  23. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  24. package/fesm2022/sd-angular-core-modules-layout.mjs +172 -37
  25. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  26. package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +8 -1
  27. package/modules/layout/configurations/layout.configuration.d.ts +8 -0
  28. package/modules/layout/services/storage/storage.service.d.ts +2 -0
  29. package/package.json +70 -70
  30. package/sd-angular-core-19.0.0-beta.97.tgz +0 -0
  31. package/sd-angular-core-19.0.0-beta.96.tgz +0 -0
@@ -2,7 +2,7 @@ import { NestedTreeControl } from '@angular/cdk/tree';
2
2
  import { MatTreeNestedDataSource } from '@angular/material/tree';
3
3
  import { Params } from '@angular/router';
4
4
  import { SdLayoutUserInfo, SidebarConfigurationV1 } from '../../../../configurations';
5
- import { SdLayoutMenu } from '../../../../services';
5
+ import { SdLayoutChildrenMenu, SdLayoutMenu } from '../../../../services';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class SidebarComponent {
8
8
  #private;
@@ -22,12 +22,19 @@ export declare class SidebarComponent {
22
22
  titleMenuGroup: import("@angular/core").WritableSignal<string | undefined>;
23
23
  idMenuGroupActive: import("@angular/core").WritableSignal<string | undefined>;
24
24
  menusByGroup: import("@angular/core").WritableSignal<SdLayoutMenu[]>;
25
+ pinnedMenuGroup: import("@angular/core").WritableSignal<SdLayoutChildrenMenu>;
25
26
  totalMenuInMenusByGroup: import("@angular/core").Signal<number>;
27
+ pinnedNodeKeys: import("@angular/core").Signal<Set<string>>;
28
+ isPinnedMenuGroupActive: import("@angular/core").Signal<boolean>;
26
29
  dataSource: MatTreeNestedDataSource<SdLayoutMenu>;
27
30
  treeControl: NestedTreeControl<SdLayoutMenu, SdLayoutMenu>;
28
31
  constructor();
29
32
  hasChild: (_: number, node: SdLayoutMenu) => boolean;
30
33
  onToggleMenuNode: (menu: SdLayoutMenu) => void;
34
+ isPinnedNode: (node: SdLayoutMenu) => boolean;
35
+ isHoveredNode: (node: SdLayoutMenu) => boolean;
36
+ expandPinnedGroup: () => void;
37
+ onTogglePin: (event: MouseEvent, node: SdLayoutMenu) => void;
31
38
  toggleMenuLock(event: Event): void;
32
39
  openHomePage: () => void;
33
40
  onUserMenuClosed: () => void;
@@ -55,5 +55,13 @@ export interface SidebarConfigurationV1 {
55
55
  * @default "Back Office"
56
56
  */
57
57
  defaultTitle?: string;
58
+ /**
59
+ * Cấu hình tính năng ghim menu.
60
+ * - `enabled`: bật/tắt tính năng ghim.
61
+ * Hệ thống mặc định là false
62
+ */
63
+ pin?: {
64
+ enabled?: boolean;
65
+ };
58
66
  }
59
67
  export declare const SD_LAYOUT_CONFIGURATION: InjectionToken<ISdLayoutConfiguration>;
@@ -1,10 +1,12 @@
1
1
  import { SdStorage, SdStorageService } from '@sd-angular/core/services';
2
+ import { SdLayoutChildrenMenu } from '../menu/menu.model';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class SdLayoutStorageService {
4
5
  private sdStorageService;
5
6
  isShowSidebar: SdStorage<boolean>;
6
7
  menuLockStatus: SdStorage<boolean>;
7
8
  lastActiveMenuGroupId: SdStorage<string>;
9
+ pinnedMenuGroup: SdStorage<SdLayoutChildrenMenu>;
8
10
  constructor(sdStorageService: SdStorageService);
9
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SdLayoutStorageService, never>;
10
12
  static ɵprov: i0.ɵɵInjectableDeclaration<SdLayoutStorageService>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sd-angular/core",
3
- "version": "19.0.0-beta.96",
3
+ "version": "19.0.0-beta.97",
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",
@@ -44,10 +44,6 @@
44
44
  "types": "./configurations/index.d.ts",
45
45
  "default": "./fesm2022/sd-angular-core-configurations.mjs"
46
46
  },
47
- "./handlers": {
48
- "types": "./handlers/index.d.ts",
49
- "default": "./fesm2022/sd-angular-core-handlers.mjs"
50
- },
51
47
  "./forms": {
52
48
  "types": "./forms/index.d.ts",
53
49
  "default": "./fesm2022/sd-angular-core-forms.mjs"
@@ -56,6 +52,10 @@
56
52
  "types": "./i18n/index.d.ts",
57
53
  "default": "./fesm2022/sd-angular-core-i18n.mjs"
58
54
  },
55
+ "./handlers": {
56
+ "types": "./handlers/index.d.ts",
57
+ "default": "./fesm2022/sd-angular-core-handlers.mjs"
58
+ },
59
59
  "./interceptors": {
60
60
  "types": "./interceptors/index.d.ts",
61
61
  "default": "./fesm2022/sd-angular-core-interceptors.mjs"
@@ -68,37 +68,37 @@
68
68
  "types": "./modules/index.d.ts",
69
69
  "default": "./fesm2022/sd-angular-core-modules.mjs"
70
70
  },
71
- "./services": {
72
- "types": "./services/index.d.ts",
73
- "default": "./fesm2022/sd-angular-core-services.mjs"
74
- },
75
71
  "./pipes": {
76
72
  "types": "./pipes/index.d.ts",
77
73
  "default": "./fesm2022/sd-angular-core-pipes.mjs"
78
74
  },
75
+ "./services": {
76
+ "types": "./services/index.d.ts",
77
+ "default": "./fesm2022/sd-angular-core-services.mjs"
78
+ },
79
79
  "./utilities": {
80
80
  "types": "./utilities/index.d.ts",
81
81
  "default": "./fesm2022/sd-angular-core-utilities.mjs"
82
82
  },
83
- "./components/badge": {
84
- "types": "./components/badge/index.d.ts",
85
- "default": "./fesm2022/sd-angular-core-components-badge.mjs"
83
+ "./components/anchor": {
84
+ "types": "./components/anchor/index.d.ts",
85
+ "default": "./fesm2022/sd-angular-core-components-anchor.mjs"
86
86
  },
87
87
  "./components/avatar": {
88
88
  "types": "./components/avatar/index.d.ts",
89
89
  "default": "./fesm2022/sd-angular-core-components-avatar.mjs"
90
90
  },
91
- "./components/anchor": {
92
- "types": "./components/anchor/index.d.ts",
93
- "default": "./fesm2022/sd-angular-core-components-anchor.mjs"
91
+ "./components/base": {
92
+ "types": "./components/base/index.d.ts",
93
+ "default": "./fesm2022/sd-angular-core-components-base.mjs"
94
94
  },
95
95
  "./components/button": {
96
96
  "types": "./components/button/index.d.ts",
97
97
  "default": "./fesm2022/sd-angular-core-components-button.mjs"
98
98
  },
99
- "./components/base": {
100
- "types": "./components/base/index.d.ts",
101
- "default": "./fesm2022/sd-angular-core-components-base.mjs"
99
+ "./components/badge": {
100
+ "types": "./components/badge/index.d.ts",
101
+ "default": "./fesm2022/sd-angular-core-components-badge.mjs"
102
102
  },
103
103
  "./components/chart": {
104
104
  "types": "./components/chart/index.d.ts",
@@ -112,6 +112,10 @@
112
112
  "types": "./components/document-builder/index.d.ts",
113
113
  "default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
114
114
  },
115
+ "./components/editor": {
116
+ "types": "./components/editor/index.d.ts",
117
+ "default": "./fesm2022/sd-angular-core-components-editor.mjs"
118
+ },
115
119
  "./components/form-generic": {
116
120
  "types": "./components/form-generic/index.d.ts",
117
121
  "default": "./fesm2022/sd-angular-core-components-form-generic.mjs"
@@ -120,17 +124,17 @@
120
124
  "types": "./components/history/index.d.ts",
121
125
  "default": "./fesm2022/sd-angular-core-components-history.mjs"
122
126
  },
123
- "./components/editor": {
124
- "types": "./components/editor/index.d.ts",
125
- "default": "./fesm2022/sd-angular-core-components-editor.mjs"
127
+ "./components/import-excel": {
128
+ "types": "./components/import-excel/index.d.ts",
129
+ "default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
126
130
  },
127
131
  "./components/mini-editor": {
128
132
  "types": "./components/mini-editor/index.d.ts",
129
133
  "default": "./fesm2022/sd-angular-core-components-mini-editor.mjs"
130
134
  },
131
- "./components/import-excel": {
132
- "types": "./components/import-excel/index.d.ts",
133
- "default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
135
+ "./components/preview": {
136
+ "types": "./components/preview/index.d.ts",
137
+ "default": "./fesm2022/sd-angular-core-components-preview.mjs"
134
138
  },
135
139
  "./components/modal": {
136
140
  "types": "./components/modal/index.d.ts",
@@ -140,53 +144,49 @@
140
144
  "types": "./components/query-builder/index.d.ts",
141
145
  "default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
142
146
  },
143
- "./components/preview": {
144
- "types": "./components/preview/index.d.ts",
145
- "default": "./fesm2022/sd-angular-core-components-preview.mjs"
147
+ "./components/quick-action": {
148
+ "types": "./components/quick-action/index.d.ts",
149
+ "default": "./fesm2022/sd-angular-core-components-quick-action.mjs"
146
150
  },
147
151
  "./components/section": {
148
152
  "types": "./components/section/index.d.ts",
149
153
  "default": "./fesm2022/sd-angular-core-components-section.mjs"
150
154
  },
151
- "./components/quick-action": {
152
- "types": "./components/quick-action/index.d.ts",
153
- "default": "./fesm2022/sd-angular-core-components-quick-action.mjs"
154
- },
155
155
  "./components/side-drawer": {
156
156
  "types": "./components/side-drawer/index.d.ts",
157
157
  "default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
158
158
  },
159
- "./components/table": {
160
- "types": "./components/table/index.d.ts",
161
- "default": "./fesm2022/sd-angular-core-components-table.mjs"
159
+ "./components/tab-router": {
160
+ "types": "./components/tab-router/index.d.ts",
161
+ "default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
162
+ },
163
+ "./components/upload-file": {
164
+ "types": "./components/upload-file/index.d.ts",
165
+ "default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
162
166
  },
163
167
  "./components/view": {
164
168
  "types": "./components/view/index.d.ts",
165
169
  "default": "./fesm2022/sd-angular-core-components-view.mjs"
166
170
  },
167
- "./components/splitter": {
168
- "types": "./components/splitter/index.d.ts",
169
- "default": "./fesm2022/sd-angular-core-components-splitter.mjs"
170
- },
171
- "./components/upload-file": {
172
- "types": "./components/upload-file/index.d.ts",
173
- "default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
171
+ "./components/table": {
172
+ "types": "./components/table/index.d.ts",
173
+ "default": "./fesm2022/sd-angular-core-components-table.mjs"
174
174
  },
175
175
  "./forms/autocomplete": {
176
176
  "types": "./forms/autocomplete/index.d.ts",
177
177
  "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
178
178
  },
179
- "./forms/checkbox": {
180
- "types": "./forms/checkbox/index.d.ts",
181
- "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
179
+ "./forms/chip": {
180
+ "types": "./forms/chip/index.d.ts",
181
+ "default": "./fesm2022/sd-angular-core-forms-chip.mjs"
182
182
  },
183
183
  "./forms/chip-calendar": {
184
184
  "types": "./forms/chip-calendar/index.d.ts",
185
185
  "default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
186
186
  },
187
- "./forms/chip": {
188
- "types": "./forms/chip/index.d.ts",
189
- "default": "./fesm2022/sd-angular-core-forms-chip.mjs"
187
+ "./forms/checkbox": {
188
+ "types": "./forms/checkbox/index.d.ts",
189
+ "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
190
190
  },
191
191
  "./forms/date": {
192
192
  "types": "./forms/date/index.d.ts",
@@ -212,14 +212,14 @@
212
212
  "types": "./forms/input-number/index.d.ts",
213
213
  "default": "./fesm2022/sd-angular-core-forms-input-number.mjs"
214
214
  },
215
- "./forms/label": {
216
- "types": "./forms/label/index.d.ts",
217
- "default": "./fesm2022/sd-angular-core-forms-label.mjs"
218
- },
219
215
  "./forms/models": {
220
216
  "types": "./forms/models/index.d.ts",
221
217
  "default": "./fesm2022/sd-angular-core-forms-models.mjs"
222
218
  },
219
+ "./forms/label": {
220
+ "types": "./forms/label/index.d.ts",
221
+ "default": "./fesm2022/sd-angular-core-forms-label.mjs"
222
+ },
223
223
  "./forms/radio": {
224
224
  "types": "./forms/radio/index.d.ts",
225
225
  "default": "./fesm2022/sd-angular-core-forms-radio.mjs"
@@ -236,34 +236,34 @@
236
236
  "types": "./forms/textarea/index.d.ts",
237
237
  "default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
238
238
  },
239
- "./modules/authom": {
240
- "types": "./modules/authom/index.d.ts",
241
- "default": "./fesm2022/sd-angular-core-modules-authom.mjs"
242
- },
243
239
  "./modules/auth": {
244
240
  "types": "./modules/auth/index.d.ts",
245
241
  "default": "./fesm2022/sd-angular-core-modules-auth.mjs"
246
242
  },
243
+ "./modules/authom": {
244
+ "types": "./modules/authom/index.d.ts",
245
+ "default": "./fesm2022/sd-angular-core-modules-authom.mjs"
246
+ },
247
247
  "./modules/keycloak": {
248
248
  "types": "./modules/keycloak/index.d.ts",
249
249
  "default": "./fesm2022/sd-angular-core-modules-keycloak.mjs"
250
250
  },
251
- "./modules/permission": {
252
- "types": "./modules/permission/index.d.ts",
253
- "default": "./fesm2022/sd-angular-core-modules-permission.mjs"
254
- },
255
251
  "./modules/layout": {
256
252
  "types": "./modules/layout/index.d.ts",
257
253
  "default": "./fesm2022/sd-angular-core-modules-layout.mjs"
258
254
  },
259
- "./services/cache": {
260
- "types": "./services/cache/index.d.ts",
261
- "default": "./fesm2022/sd-angular-core-services-cache.mjs"
255
+ "./modules/permission": {
256
+ "types": "./modules/permission/index.d.ts",
257
+ "default": "./fesm2022/sd-angular-core-modules-permission.mjs"
262
258
  },
263
259
  "./services/api": {
264
260
  "types": "./services/api/index.d.ts",
265
261
  "default": "./fesm2022/sd-angular-core-services-api.mjs"
266
262
  },
263
+ "./services/cache": {
264
+ "types": "./services/cache/index.d.ts",
265
+ "default": "./fesm2022/sd-angular-core-services-cache.mjs"
266
+ },
267
267
  "./services/confirm": {
268
268
  "types": "./services/confirm/index.d.ts",
269
269
  "default": "./fesm2022/sd-angular-core-services-confirm.mjs"
@@ -272,18 +272,22 @@
272
272
  "types": "./services/docx/index.d.ts",
273
273
  "default": "./fesm2022/sd-angular-core-services-docx.mjs"
274
274
  },
275
- "./services/excel": {
276
- "types": "./services/excel/index.d.ts",
277
- "default": "./fesm2022/sd-angular-core-services-excel.mjs"
278
- },
279
275
  "./services/license": {
280
276
  "types": "./services/license/index.d.ts",
281
277
  "default": "./fesm2022/sd-angular-core-services-license.mjs"
282
278
  },
279
+ "./services/excel": {
280
+ "types": "./services/excel/index.d.ts",
281
+ "default": "./fesm2022/sd-angular-core-services-excel.mjs"
282
+ },
283
283
  "./services/loading": {
284
284
  "types": "./services/loading/index.d.ts",
285
285
  "default": "./fesm2022/sd-angular-core-services-loading.mjs"
286
286
  },
287
+ "./components/splitter": {
288
+ "types": "./components/splitter/index.d.ts",
289
+ "default": "./fesm2022/sd-angular-core-components-splitter.mjs"
290
+ },
287
291
  "./services/notify": {
288
292
  "types": "./services/notify/index.d.ts",
289
293
  "default": "./fesm2022/sd-angular-core-services-notify.mjs"
@@ -299,10 +303,6 @@
299
303
  "./utilities/models": {
300
304
  "types": "./utilities/models/index.d.ts",
301
305
  "default": "./fesm2022/sd-angular-core-utilities-models.mjs"
302
- },
303
- "./components/tab-router": {
304
- "types": "./components/tab-router/index.d.ts",
305
- "default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
306
306
  }
307
307
  }
308
308
  }
Binary file