@sd-angular/core 19.0.0-beta.2 → 19.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/components/document-builder/src/document-builder.config.d.ts +21 -0
  2. package/components/document-builder/src/document-builder.utils.d.ts +10 -0
  3. package/fesm2022/sd-angular-core-components-document-builder.mjs +426 -154
  4. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  5. package/fesm2022/sd-angular-core-components-table.mjs +5 -5
  6. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  7. package/fesm2022/sd-angular-core-components-workflow.mjs +23 -23
  8. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  9. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +22 -2
  10. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  11. package/fesm2022/sd-angular-core-forms-date.mjs +13 -3
  12. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  13. package/fesm2022/sd-angular-core-forms-input-number.mjs +17 -3
  14. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  15. package/fesm2022/sd-angular-core-forms-input.mjs +18 -6
  16. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  17. package/fesm2022/sd-angular-core-forms-radio.mjs +15 -2
  18. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  19. package/fesm2022/sd-angular-core-forms-select.mjs +13 -2
  20. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  21. package/fesm2022/sd-angular-core-forms-textarea.mjs +9 -2
  22. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  23. package/fesm2022/sd-angular-core-modules-auth.mjs +137 -0
  24. package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -0
  25. package/fesm2022/sd-angular-core-modules-layout.mjs +1 -1
  26. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  27. package/fesm2022/sd-angular-core-modules.mjs +1 -0
  28. package/fesm2022/sd-angular-core-modules.mjs.map +1 -1
  29. package/fesm2022/sd-angular-core-services-confirm.mjs +5 -8
  30. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  31. package/fesm2022/sd-angular-core-utilities-extensions.mjs +66 -1
  32. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  33. package/fesm2022/sd-angular-core-utilities-models.mjs +12 -3
  34. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  35. package/forms/autocomplete/src/autocomplete.component.d.ts +5 -1
  36. package/forms/date/src/date.component.d.ts +4 -1
  37. package/forms/input/src/input.component.d.ts +6 -4
  38. package/forms/input-number/src/input-number.component.d.ts +4 -1
  39. package/forms/radio/src/radio.component.d.ts +5 -1
  40. package/forms/select/src/select.component.d.ts +5 -1
  41. package/forms/textarea/src/textarea.component.d.ts +3 -1
  42. package/modules/auth/configurations/auth.configuration.d.ts +19 -0
  43. package/modules/auth/configurations/index.d.ts +1 -0
  44. package/modules/auth/guards/auth.guard.d.ts +11 -0
  45. package/modules/auth/guards/index.d.ts +2 -0
  46. package/modules/auth/guards/portal.guard.d.ts +11 -0
  47. package/modules/auth/index.d.ts +3 -0
  48. package/modules/auth/services/auth.model.d.ts +8 -0
  49. package/modules/auth/services/auth.service.d.ts +17 -0
  50. package/modules/auth/services/index.d.ts +2 -0
  51. package/modules/index.d.ts +1 -0
  52. package/package.json +78 -74
  53. package/utilities/extensions/index.d.ts +1 -0
  54. package/utilities/extensions/src/color.extension.d.ts +20 -0
  55. package/utilities/models/src/maybe-async.model.d.ts +1 -0
  56. package/utilities/models/src/pattern.model.d.ts +2 -2
@@ -26,6 +26,9 @@ export declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
26
26
  inlineError?: string;
27
27
  set _inlineError(val: string);
28
28
  set disabled(val: boolean | '' | undefined | null);
29
+ viewed: boolean;
30
+ set _viewed(val: boolean | '' | undefined | null);
31
+ hyperlink?: string | null;
29
32
  sdSuffixDef?: SdSuffixDefDirective;
30
33
  sdLabelDef?: SdLabelDefDirective;
31
34
  sdViewDef?: SdViewDefDirective;
@@ -36,11 +39,12 @@ export declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
36
39
  item?: any;
37
40
  }>;
38
41
  constructor(ref: ChangeDetectorRef);
42
+ get viewedText(): any;
39
43
  ngOnInit(): void;
40
44
  ngAfterViewInit(): void;
41
45
  ngOnDestroy(): void;
42
46
  customInlineErrorValidator(): ValidatorFn;
43
47
  reValidate: () => void;
44
48
  static ɵfac: i0.ɵɵFactoryDeclaration<SdRadio, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "_display": { "alias": "display"; "required": false; }; "model": { "alias": "model"; "required": false; }; "pItems": { "alias": "items"; "required": false; }; "valueField": { "alias": "valueField"; "required": true; }; "displayField": { "alias": "displayField"; "required": true; }; "_required": { "alias": "required"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdSuffixDef", "sdLabelDef", "sdViewDef"], never, true, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "_display": { "alias": "display"; "required": false; }; "model": { "alias": "model"; "required": false; }; "pItems": { "alias": "items"; "required": false; }; "valueField": { "alias": "valueField"; "required": true; }; "displayField": { "alias": "displayField"; "required": true; }; "_required": { "alias": "required"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "hyperlink": { "alias": "hyperlink"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdSuffixDef", "sdLabelDef", "sdViewDef"], never, true, never>;
46
50
  }
@@ -44,6 +44,10 @@ export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
44
44
  inlineError?: string;
45
45
  set _inlineError(val: string);
46
46
  set disabled(val: boolean | '' | undefined | null);
47
+ viewed: boolean;
48
+ set _viewed(val: boolean | '' | undefined | null);
49
+ viewedText?: Observable<string>;
50
+ hyperlink?: string | null;
47
51
  multiple: boolean;
48
52
  set _multiple(val: boolean | '' | undefined | null);
49
53
  limit: number;
@@ -73,5 +77,5 @@ export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
73
77
  onOptionChange: (tooltip: MatTooltip) => void;
74
78
  trackBy: (index: number, item: any) => any;
75
79
  static ɵfac: i0.ɵɵFactoryDeclaration<SdSelect, [null, { optional: true; }]>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<SdSelect, "sd-select", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "size": { "alias": "size"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_helperText": { "alias": "helperText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "model": { "alias": "model"; "required": false; }; "items": { "alias": "items"; "required": false; }; "valueField": { "alias": "valueField"; "required": true; }; "displayField": { "alias": "displayField"; "required": true; }; "disabledField": { "alias": "disabledField"; "required": false; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_validator": { "alias": "validator"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_multiple": { "alias": "multiple"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["itemDef", "sdLabelDef", "sdViewDef"], never, true, never>;
80
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSelect, "sd-select", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "size": { "alias": "size"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_helperText": { "alias": "helperText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "model": { "alias": "model"; "required": false; }; "items": { "alias": "items"; "required": false; }; "valueField": { "alias": "valueField"; "required": true; }; "displayField": { "alias": "displayField"; "required": true; }; "disabledField": { "alias": "disabledField"; "required": false; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_validator": { "alias": "validator"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "hyperlink": { "alias": "hyperlink"; "required": false; }; "_multiple": { "alias": "multiple"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["itemDef", "sdLabelDef", "sdViewDef"], never, true, never>;
77
81
  }
@@ -36,6 +36,8 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
36
36
  inlineError?: string;
37
37
  set _inlineError(val: string);
38
38
  set disabled(val: boolean | '' | undefined | null);
39
+ viewed: boolean;
40
+ set _viewed(val: boolean | '' | undefined | null);
39
41
  set _autoHeight(val: boolean | '');
40
42
  textarea: ElementRef;
41
43
  sdViewDef?: SdViewDefDirective;
@@ -54,5 +56,5 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
54
56
  focus: () => void;
55
57
  customInlineErrorValidator(): ValidatorFn;
56
58
  static ɵfac: i0.ɵɵFactoryDeclaration<SdTextarea, [null, { optional: true; }]>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<SdTextarea, "sd-textarea", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_helperText": { "alias": "helperText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_maxlength": { "alias": "maxlength"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "validator": { "alias": "validator"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_autoHeight": { "alias": "autoHeight"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdViewDef", "sdLabelDef", "sdSuffixDef"], never, true, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdTextarea, "sd-textarea", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_helperText": { "alias": "helperText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_maxlength": { "alias": "maxlength"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "validator": { "alias": "validator"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "_autoHeight": { "alias": "autoHeight"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdViewDef", "sdLabelDef", "sdSuffixDef"], never, true, never>;
58
60
  }
@@ -0,0 +1,19 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { CanActivate } from '@angular/router';
3
+ import { SdMaybeAsync } from '@sd-angular/core/utilities';
4
+ import { SdAuthInfo } from '../services';
5
+ export interface ISdAuthConfiguration {
6
+ action?: IAuthConfigurationAction;
7
+ guard?: IAuthConfigurationGuard;
8
+ }
9
+ export declare const SD_AUTH_CONFIGURATION: InjectionToken<ISdAuthConfiguration>;
10
+ interface IAuthConfigurationAction {
11
+ signout: () => SdMaybeAsync<void>;
12
+ changePassword?: () => SdMaybeAsync<void>;
13
+ }
14
+ interface IAuthConfigurationGuard {
15
+ auth?: CanActivate['canActivate'];
16
+ portal?: CanActivate['canActivate'];
17
+ authInfo: () => SdMaybeAsync<SdAuthInfo>;
18
+ }
19
+ export {};
@@ -0,0 +1 @@
1
+ export * from './auth.configuration';
@@ -0,0 +1,11 @@
1
+ import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
2
+ import { ISdAuthConfiguration } from '../configurations';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SdAuthGuard implements CanActivate {
5
+ private authConfiguration;
6
+ protected readonly router: Router;
7
+ constructor(authConfiguration: ISdAuthConfiguration, router: Router);
8
+ canActivate: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => import("@angular/router").MaybeAsync<import("@angular/router").GuardResult>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdAuthGuard, [{ optional: true; }, null]>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<SdAuthGuard>;
11
+ }
@@ -0,0 +1,2 @@
1
+ export * from './auth.guard';
2
+ export * from './portal.guard';
@@ -0,0 +1,11 @@
1
+ import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
2
+ import { ISdAuthConfiguration } from '../configurations';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SdPortalGuard implements CanActivate {
5
+ private authConfiguration;
6
+ protected readonly router: Router;
7
+ constructor(authConfiguration: ISdAuthConfiguration, router: Router);
8
+ canActivate: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => import("@angular/router").MaybeAsync<import("@angular/router").GuardResult>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdPortalGuard, [{ optional: true; }, null]>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<SdPortalGuard>;
11
+ }
@@ -0,0 +1,3 @@
1
+ export * from './configurations';
2
+ export * from './services';
3
+ export * from './guards';
@@ -0,0 +1,8 @@
1
+ export interface SdAuthInfo<T = any> {
2
+ id?: string;
3
+ username?: string;
4
+ firstName?: string;
5
+ lastName?: string;
6
+ email?: string;
7
+ data?: T;
8
+ }
@@ -0,0 +1,17 @@
1
+ import { Signal } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { ISdAuthConfiguration } from '../configurations';
4
+ import { SdAuthInfo } from './auth.model';
5
+ import * as i0 from "@angular/core";
6
+ export declare class SdAuthService {
7
+ #private;
8
+ private authConfiguration;
9
+ getAuthInfo?: Signal<SdAuthInfo | undefined>;
10
+ signout$?: Observable<void>;
11
+ changePassword$?: Observable<void>;
12
+ constructor(authConfiguration: ISdAuthConfiguration);
13
+ signout: () => void;
14
+ changePassword: () => void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdAuthService, [{ optional: true; }]>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<SdAuthService>;
17
+ }
@@ -0,0 +1,2 @@
1
+ export * from './auth.model';
2
+ export * from './auth.service';
@@ -1,3 +1,4 @@
1
1
  export * from '@sd-angular/core/modules/oidc';
2
2
  export * from '@sd-angular/core/modules/permission';
3
+ export * from '@sd-angular/core/modules/auth';
3
4
  export * from '@sd-angular/core/modules/layout';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sd-angular/core",
3
- "version": "19.0.0-beta.2",
3
+ "version": "19.0.0-beta.4",
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",
@@ -27,6 +27,10 @@
27
27
  "types": "./index.d.ts",
28
28
  "default": "./fesm2022/sd-angular-core.mjs"
29
29
  },
30
+ "./directives": {
31
+ "types": "./directives/index.d.ts",
32
+ "default": "./fesm2022/sd-angular-core-directives.mjs"
33
+ },
30
34
  "./components": {
31
35
  "types": "./components/index.d.ts",
32
36
  "default": "./fesm2022/sd-angular-core-components.mjs"
@@ -35,9 +39,9 @@
35
39
  "types": "./configurations/index.d.ts",
36
40
  "default": "./fesm2022/sd-angular-core-configurations.mjs"
37
41
  },
38
- "./directives": {
39
- "types": "./directives/index.d.ts",
40
- "default": "./fesm2022/sd-angular-core-directives.mjs"
42
+ "./guards": {
43
+ "types": "./guards/index.d.ts",
44
+ "default": "./fesm2022/sd-angular-core-guards.mjs"
41
45
  },
42
46
  "./forms": {
43
47
  "types": "./forms/index.d.ts",
@@ -47,10 +51,6 @@
47
51
  "types": "./handlers/index.d.ts",
48
52
  "default": "./fesm2022/sd-angular-core-handlers.mjs"
49
53
  },
50
- "./guards": {
51
- "types": "./guards/index.d.ts",
52
- "default": "./fesm2022/sd-angular-core-guards.mjs"
53
- },
54
54
  "./interceptors": {
55
55
  "types": "./interceptors/index.d.ts",
56
56
  "default": "./fesm2022/sd-angular-core-interceptors.mjs"
@@ -71,6 +71,10 @@
71
71
  "types": "./utilities/index.d.ts",
72
72
  "default": "./fesm2022/sd-angular-core-utilities.mjs"
73
73
  },
74
+ "./components/badge": {
75
+ "types": "./components/badge/index.d.ts",
76
+ "default": "./fesm2022/sd-angular-core-components-badge.mjs"
77
+ },
74
78
  "./components/anchor": {
75
79
  "types": "./components/anchor/index.d.ts",
76
80
  "default": "./fesm2022/sd-angular-core-components-anchor.mjs"
@@ -79,50 +83,42 @@
79
83
  "types": "./components/anchor-v2/index.d.ts",
80
84
  "default": "./fesm2022/sd-angular-core-components-anchor-v2.mjs"
81
85
  },
82
- "./components/badge": {
83
- "types": "./components/badge/index.d.ts",
84
- "default": "./fesm2022/sd-angular-core-components-badge.mjs"
86
+ "./components/button": {
87
+ "types": "./components/button/index.d.ts",
88
+ "default": "./fesm2022/sd-angular-core-components-button.mjs"
85
89
  },
86
90
  "./components/base": {
87
91
  "types": "./components/base/index.d.ts",
88
92
  "default": "./fesm2022/sd-angular-core-components-base.mjs"
89
93
  },
90
- "./components/button": {
91
- "types": "./components/button/index.d.ts",
92
- "default": "./fesm2022/sd-angular-core-components-button.mjs"
93
- },
94
94
  "./components/document-builder": {
95
95
  "types": "./components/document-builder/index.d.ts",
96
96
  "default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
97
97
  },
98
- "./components/history": {
99
- "types": "./components/history/index.d.ts",
100
- "default": "./fesm2022/sd-angular-core-components-history.mjs"
98
+ "./components/modal": {
99
+ "types": "./components/modal/index.d.ts",
100
+ "default": "./fesm2022/sd-angular-core-components-modal.mjs"
101
101
  },
102
102
  "./components/import-excel": {
103
103
  "types": "./components/import-excel/index.d.ts",
104
104
  "default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
105
105
  },
106
- "./components/modal": {
107
- "types": "./components/modal/index.d.ts",
108
- "default": "./fesm2022/sd-angular-core-components-modal.mjs"
109
- },
110
- "./components/query-builder": {
111
- "types": "./components/query-builder/index.d.ts",
112
- "default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
106
+ "./components/history": {
107
+ "types": "./components/history/index.d.ts",
108
+ "default": "./fesm2022/sd-angular-core-components-history.mjs"
113
109
  },
114
110
  "./components/preview": {
115
111
  "types": "./components/preview/index.d.ts",
116
112
  "default": "./fesm2022/sd-angular-core-components-preview.mjs"
117
113
  },
114
+ "./components/query-builder": {
115
+ "types": "./components/query-builder/index.d.ts",
116
+ "default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
117
+ },
118
118
  "./components/quick-action": {
119
119
  "types": "./components/quick-action/index.d.ts",
120
120
  "default": "./fesm2022/sd-angular-core-components-quick-action.mjs"
121
121
  },
122
- "./components/side-drawer": {
123
- "types": "./components/side-drawer/index.d.ts",
124
- "default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
125
- },
126
122
  "./components/section": {
127
123
  "types": "./components/section/index.d.ts",
128
124
  "default": "./fesm2022/sd-angular-core-components-section.mjs"
@@ -131,62 +127,74 @@
131
127
  "types": "./components/tab-router/index.d.ts",
132
128
  "default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
133
129
  },
130
+ "./components/side-drawer": {
131
+ "types": "./components/side-drawer/index.d.ts",
132
+ "default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
133
+ },
134
134
  "./components/table": {
135
135
  "types": "./components/table/index.d.ts",
136
136
  "default": "./fesm2022/sd-angular-core-components-table.mjs"
137
137
  },
138
+ "./components/workflow": {
139
+ "types": "./components/workflow/index.d.ts",
140
+ "default": "./fesm2022/sd-angular-core-components-workflow.mjs"
141
+ },
138
142
  "./components/upload-file": {
139
143
  "types": "./components/upload-file/index.d.ts",
140
144
  "default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
141
145
  },
142
- "./components/workflow": {
143
- "types": "./components/workflow/index.d.ts",
144
- "default": "./fesm2022/sd-angular-core-components-workflow.mjs"
146
+ "./guards/permission": {
147
+ "types": "./guards/permission/index.d.ts",
148
+ "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
145
149
  },
146
- "./forms/checkbox": {
147
- "types": "./forms/checkbox/index.d.ts",
148
- "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
150
+ "./forms/autocomplete": {
151
+ "types": "./forms/autocomplete/index.d.ts",
152
+ "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
149
153
  },
150
- "./forms/chip-calendar": {
151
- "types": "./forms/chip-calendar/index.d.ts",
152
- "default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
154
+ "./forms/chip": {
155
+ "types": "./forms/chip/index.d.ts",
156
+ "default": "./fesm2022/sd-angular-core-forms-chip.mjs"
153
157
  },
154
158
  "./forms/date": {
155
159
  "types": "./forms/date/index.d.ts",
156
160
  "default": "./fesm2022/sd-angular-core-forms-date.mjs"
157
161
  },
162
+ "./forms/chip-calendar": {
163
+ "types": "./forms/chip-calendar/index.d.ts",
164
+ "default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
165
+ },
166
+ "./forms/checkbox": {
167
+ "types": "./forms/checkbox/index.d.ts",
168
+ "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
169
+ },
158
170
  "./forms/date-range": {
159
171
  "types": "./forms/date-range/index.d.ts",
160
172
  "default": "./fesm2022/sd-angular-core-forms-date-range.mjs"
161
173
  },
162
- "./forms/chip": {
163
- "types": "./forms/chip/index.d.ts",
164
- "default": "./fesm2022/sd-angular-core-forms-chip.mjs"
165
- },
166
174
  "./forms/datetime": {
167
175
  "types": "./forms/datetime/index.d.ts",
168
176
  "default": "./fesm2022/sd-angular-core-forms-datetime.mjs"
169
177
  },
170
- "./forms/directives": {
171
- "types": "./forms/directives/index.d.ts",
172
- "default": "./fesm2022/sd-angular-core-forms-directives.mjs"
173
- },
174
178
  "./forms/input": {
175
179
  "types": "./forms/input/index.d.ts",
176
180
  "default": "./fesm2022/sd-angular-core-forms-input.mjs"
177
181
  },
182
+ "./forms/directives": {
183
+ "types": "./forms/directives/index.d.ts",
184
+ "default": "./fesm2022/sd-angular-core-forms-directives.mjs"
185
+ },
178
186
  "./forms/input-number": {
179
187
  "types": "./forms/input-number/index.d.ts",
180
188
  "default": "./fesm2022/sd-angular-core-forms-input-number.mjs"
181
189
  },
182
- "./forms/models": {
183
- "types": "./forms/models/index.d.ts",
184
- "default": "./fesm2022/sd-angular-core-forms-models.mjs"
185
- },
186
190
  "./forms/label": {
187
191
  "types": "./forms/label/index.d.ts",
188
192
  "default": "./fesm2022/sd-angular-core-forms-label.mjs"
189
193
  },
194
+ "./forms/models": {
195
+ "types": "./forms/models/index.d.ts",
196
+ "default": "./fesm2022/sd-angular-core-forms-models.mjs"
197
+ },
190
198
  "./forms/select": {
191
199
  "types": "./forms/select/index.d.ts",
192
200
  "default": "./fesm2022/sd-angular-core-forms-select.mjs"
@@ -203,9 +211,9 @@
203
211
  "types": "./forms/textarea/index.d.ts",
204
212
  "default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
205
213
  },
206
- "./guards/permission": {
207
- "types": "./guards/permission/index.d.ts",
208
- "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
214
+ "./modules/auth": {
215
+ "types": "./modules/auth/index.d.ts",
216
+ "default": "./fesm2022/sd-angular-core-modules-auth.mjs"
209
217
  },
210
218
  "./modules/layout": {
211
219
  "types": "./modules/layout/index.d.ts",
@@ -219,42 +227,38 @@
219
227
  "types": "./modules/oidc/index.d.ts",
220
228
  "default": "./fesm2022/sd-angular-core-modules-oidc.mjs"
221
229
  },
222
- "./services/cache": {
223
- "types": "./services/cache/index.d.ts",
224
- "default": "./fesm2022/sd-angular-core-services-cache.mjs"
225
- },
226
230
  "./services/api": {
227
231
  "types": "./services/api/index.d.ts",
228
232
  "default": "./fesm2022/sd-angular-core-services-api.mjs"
229
233
  },
230
- "./services/firebase": {
231
- "types": "./services/firebase/index.d.ts",
232
- "default": "./fesm2022/sd-angular-core-services-firebase.mjs"
233
- },
234
234
  "./services/excel": {
235
235
  "types": "./services/excel/index.d.ts",
236
236
  "default": "./fesm2022/sd-angular-core-services-excel.mjs"
237
237
  },
238
- "./services/license": {
239
- "types": "./services/license/index.d.ts",
240
- "default": "./fesm2022/sd-angular-core-services-license.mjs"
238
+ "./services/confirm": {
239
+ "types": "./services/confirm/index.d.ts",
240
+ "default": "./fesm2022/sd-angular-core-services-confirm.mjs"
241
+ },
242
+ "./services/cache": {
243
+ "types": "./services/cache/index.d.ts",
244
+ "default": "./fesm2022/sd-angular-core-services-cache.mjs"
245
+ },
246
+ "./services/firebase": {
247
+ "types": "./services/firebase/index.d.ts",
248
+ "default": "./fesm2022/sd-angular-core-services-firebase.mjs"
241
249
  },
242
250
  "./services/loading": {
243
251
  "types": "./services/loading/index.d.ts",
244
252
  "default": "./fesm2022/sd-angular-core-services-loading.mjs"
245
253
  },
246
- "./services/confirm": {
247
- "types": "./services/confirm/index.d.ts",
248
- "default": "./fesm2022/sd-angular-core-services-confirm.mjs"
254
+ "./services/license": {
255
+ "types": "./services/license/index.d.ts",
256
+ "default": "./fesm2022/sd-angular-core-services-license.mjs"
249
257
  },
250
258
  "./services/notify": {
251
259
  "types": "./services/notify/index.d.ts",
252
260
  "default": "./fesm2022/sd-angular-core-services-notify.mjs"
253
261
  },
254
- "./utilities/models": {
255
- "types": "./utilities/models/index.d.ts",
256
- "default": "./fesm2022/sd-angular-core-utilities-models.mjs"
257
- },
258
262
  "./services/storage": {
259
263
  "types": "./services/storage/index.d.ts",
260
264
  "default": "./fesm2022/sd-angular-core-services-storage.mjs"
@@ -263,9 +267,9 @@
263
267
  "types": "./utilities/extensions/index.d.ts",
264
268
  "default": "./fesm2022/sd-angular-core-utilities-extensions.mjs"
265
269
  },
266
- "./forms/autocomplete": {
267
- "types": "./forms/autocomplete/index.d.ts",
268
- "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
270
+ "./utilities/models": {
271
+ "types": "./utilities/models/index.d.ts",
272
+ "default": "./fesm2022/sd-angular-core-utilities-models.mjs"
269
273
  }
270
274
  }
271
275
  }
@@ -3,3 +3,4 @@ export * from './src/string.extension';
3
3
  export * from './src/number.extension';
4
4
  export * from './src/date.extension';
5
5
  export * from './src/utility.extension';
6
+ export * from './src/color.extension';
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Color Utilities Extension
3
+ * Các tiện ích xử lý màu
4
+ */
5
+ /**
6
+ * Chuyển đổi màu HSL sang định dạng hex
7
+ * @param h - Hue (0-360)
8
+ * @param s - Saturation (0-100)
9
+ * @param l - Lightness (0-100)
10
+ * @returns Mã màu hex
11
+ */
12
+ export declare function hslToHex(h: number, s: number, l: number): string;
13
+ /**
14
+ * Chuyển đổi màu RGB sang hex
15
+ * @param r - Red (0-255)
16
+ * @param g - Green (0-255)
17
+ * @param b - Blue (0-255)
18
+ * @returns Mã màu hex
19
+ */
20
+ export declare function rgbToHex(r: number, g: number, b: number): string;
@@ -1,3 +1,4 @@
1
1
  import { Observable } from 'rxjs';
2
2
  export type SdMaybeAsync<T> = T | Promise<T> | Observable<T>;
3
3
  export declare const SdResolveMaybeAsync: <T>(value: SdMaybeAsync<T>) => Promise<T>;
4
+ export declare const SdNormalizeAsync: <T>(value: SdMaybeAsync<T>) => Observable<T>;
@@ -1,8 +1,8 @@
1
1
  export type SdPatternType = 'EMAIL' | 'PHONE' | 'PHONE_VN';
2
- export interface SdPattern {
2
+ export interface SdPatternCommon {
3
3
  type: SdPatternType;
4
4
  name: string;
5
5
  regex: string;
6
6
  errorMessage: string;
7
7
  }
8
- export declare const SdPatterns: SdPattern[];
8
+ export declare const SdPatternCommons: SdPatternCommon[];