@sd-angular/core 19.0.0-beta.1 → 19.0.0-beta.10

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 (82) hide show
  1. package/assets/scss/core/bootstrap.scss +25 -0
  2. package/assets/scss/core/form.scss +4 -10
  3. package/components/document-builder/src/document-builder.component.d.ts +23 -6
  4. package/components/document-builder/src/document-builder.config.d.ts +21 -0
  5. package/components/document-builder/src/document-builder.model.d.ts +1 -0
  6. package/components/document-builder/src/document-builder.utils.d.ts +10 -0
  7. package/components/document-builder/src/plugins/heading/heading.plugin.d.ts +4 -0
  8. package/components/document-builder/src/plugins/{image-upload.plugin.d.ts → image-upload/image-upload.plugin.d.ts} +0 -4
  9. package/components/document-builder/src/plugins/index.d.ts +6 -5
  10. package/components/table/src/models/table-item.model.d.ts +2 -1
  11. package/components/table/src/models/table-option.model.d.ts +2 -1
  12. package/components/workflow/src/models/index.d.ts +1 -0
  13. package/fesm2022/sd-angular-core-components-badge.mjs +2 -2
  14. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  15. package/fesm2022/sd-angular-core-components-document-builder.mjs +721 -513
  16. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  17. package/fesm2022/sd-angular-core-components-table.mjs +366 -77
  18. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  19. package/fesm2022/sd-angular-core-components-workflow.mjs +23 -23
  20. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  21. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +24 -2
  22. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  23. package/fesm2022/sd-angular-core-forms-date.mjs +15 -3
  24. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  25. package/fesm2022/sd-angular-core-forms-datetime.mjs +17 -3
  26. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  27. package/fesm2022/sd-angular-core-forms-input-number.mjs +18 -3
  28. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  29. package/fesm2022/sd-angular-core-forms-input.mjs +20 -6
  30. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  31. package/fesm2022/sd-angular-core-forms-radio.mjs +17 -2
  32. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  33. package/fesm2022/sd-angular-core-forms-select.mjs +15 -2
  34. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  35. package/fesm2022/sd-angular-core-forms-textarea.mjs +21 -2
  36. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  37. package/fesm2022/sd-angular-core-modules-auth.mjs +137 -0
  38. package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -0
  39. package/fesm2022/sd-angular-core-modules-layout.mjs +1 -1
  40. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  41. package/fesm2022/sd-angular-core-modules.mjs +1 -0
  42. package/fesm2022/sd-angular-core-modules.mjs.map +1 -1
  43. package/fesm2022/sd-angular-core-pipes.mjs +21 -1
  44. package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
  45. package/fesm2022/sd-angular-core-services-confirm.mjs +60 -25
  46. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  47. package/fesm2022/sd-angular-core-utilities-extensions.mjs +66 -1
  48. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  49. package/fesm2022/sd-angular-core-utilities-models.mjs +12 -3
  50. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  51. package/forms/autocomplete/src/autocomplete.component.d.ts +5 -1
  52. package/forms/date/src/date.component.d.ts +4 -1
  53. package/forms/datetime/src/datetime.component.d.ts +4 -1
  54. package/forms/input/src/input.component.d.ts +6 -4
  55. package/forms/input-number/src/input-number.component.d.ts +4 -1
  56. package/forms/radio/src/radio.component.d.ts +5 -1
  57. package/forms/select/src/select.component.d.ts +5 -1
  58. package/forms/textarea/src/textarea.component.d.ts +3 -1
  59. package/modules/auth/configurations/auth.configuration.d.ts +19 -0
  60. package/modules/auth/configurations/index.d.ts +1 -0
  61. package/modules/auth/guards/auth.guard.d.ts +11 -0
  62. package/modules/auth/guards/index.d.ts +2 -0
  63. package/modules/auth/guards/portal.guard.d.ts +11 -0
  64. package/modules/auth/index.d.ts +3 -0
  65. package/modules/auth/services/auth.model.d.ts +8 -0
  66. package/modules/auth/services/auth.service.d.ts +17 -0
  67. package/modules/auth/services/index.d.ts +2 -0
  68. package/modules/index.d.ts +1 -0
  69. package/package.json +56 -52
  70. package/pipes/index.d.ts +1 -0
  71. package/pipes/src/empty.pipe.d.ts +7 -0
  72. package/sd-angular-core-19.0.0-beta.10.tgz +0 -0
  73. package/services/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.d.ts +8 -0
  74. package/services/confirm/src/lib/confirm.service.d.ts +14 -0
  75. package/utilities/extensions/index.d.ts +1 -0
  76. package/utilities/extensions/src/color.extension.d.ts +20 -0
  77. package/utilities/models/src/maybe-async.model.d.ts +1 -0
  78. package/utilities/models/src/pattern.model.d.ts +2 -2
  79. /package/components/document-builder/src/plugins/{comment.plugin.d.ts → comment/comment.plugin.d.ts} +0 -0
  80. /package/components/document-builder/src/plugins/{page-orientation.plugin.d.ts → page-orientation/page-orientation.plugin.d.ts} +0 -0
  81. /package/components/document-builder/src/plugins/{table-fit.plugin.d.ts → table-fit/table-fit.plugin.d.ts} +0 -0
  82. /package/components/document-builder/src/plugins/{variable.plugin.d.ts → variable/variable.plugin.d.ts} +0 -0
@@ -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.1",
3
+ "version": "19.0.0-beta.10",
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",
@@ -31,25 +31,25 @@
31
31
  "types": "./components/index.d.ts",
32
32
  "default": "./fesm2022/sd-angular-core-components.mjs"
33
33
  },
34
- "./configurations": {
35
- "types": "./configurations/index.d.ts",
36
- "default": "./fesm2022/sd-angular-core-configurations.mjs"
37
- },
38
34
  "./directives": {
39
35
  "types": "./directives/index.d.ts",
40
36
  "default": "./fesm2022/sd-angular-core-directives.mjs"
41
37
  },
42
- "./forms": {
43
- "types": "./forms/index.d.ts",
44
- "default": "./fesm2022/sd-angular-core-forms.mjs"
38
+ "./configurations": {
39
+ "types": "./configurations/index.d.ts",
40
+ "default": "./fesm2022/sd-angular-core-configurations.mjs"
41
+ },
42
+ "./guards": {
43
+ "types": "./guards/index.d.ts",
44
+ "default": "./fesm2022/sd-angular-core-guards.mjs"
45
45
  },
46
46
  "./handlers": {
47
47
  "types": "./handlers/index.d.ts",
48
48
  "default": "./fesm2022/sd-angular-core-handlers.mjs"
49
49
  },
50
- "./guards": {
51
- "types": "./guards/index.d.ts",
52
- "default": "./fesm2022/sd-angular-core-guards.mjs"
50
+ "./forms": {
51
+ "types": "./forms/index.d.ts",
52
+ "default": "./fesm2022/sd-angular-core-forms.mjs"
53
53
  },
54
54
  "./interceptors": {
55
55
  "types": "./interceptors/index.d.ts",
@@ -95,25 +95,21 @@
95
95
  "types": "./components/document-builder/index.d.ts",
96
96
  "default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
97
97
  },
98
- "./components/import-excel": {
99
- "types": "./components/import-excel/index.d.ts",
100
- "default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
101
- },
102
98
  "./components/history": {
103
99
  "types": "./components/history/index.d.ts",
104
100
  "default": "./fesm2022/sd-angular-core-components-history.mjs"
105
101
  },
106
- "./components/preview": {
107
- "types": "./components/preview/index.d.ts",
108
- "default": "./fesm2022/sd-angular-core-components-preview.mjs"
109
- },
110
102
  "./components/modal": {
111
103
  "types": "./components/modal/index.d.ts",
112
104
  "default": "./fesm2022/sd-angular-core-components-modal.mjs"
113
105
  },
114
- "./components/section": {
115
- "types": "./components/section/index.d.ts",
116
- "default": "./fesm2022/sd-angular-core-components-section.mjs"
106
+ "./components/import-excel": {
107
+ "types": "./components/import-excel/index.d.ts",
108
+ "default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
109
+ },
110
+ "./components/preview": {
111
+ "types": "./components/preview/index.d.ts",
112
+ "default": "./fesm2022/sd-angular-core-components-preview.mjs"
117
113
  },
118
114
  "./components/query-builder": {
119
115
  "types": "./components/query-builder/index.d.ts",
@@ -127,41 +123,45 @@
127
123
  "types": "./components/side-drawer/index.d.ts",
128
124
  "default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
129
125
  },
126
+ "./components/section": {
127
+ "types": "./components/section/index.d.ts",
128
+ "default": "./fesm2022/sd-angular-core-components-section.mjs"
129
+ },
130
130
  "./components/tab-router": {
131
131
  "types": "./components/tab-router/index.d.ts",
132
132
  "default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
133
133
  },
134
- "./components/table": {
135
- "types": "./components/table/index.d.ts",
136
- "default": "./fesm2022/sd-angular-core-components-table.mjs"
134
+ "./components/upload-file": {
135
+ "types": "./components/upload-file/index.d.ts",
136
+ "default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
137
137
  },
138
138
  "./components/workflow": {
139
139
  "types": "./components/workflow/index.d.ts",
140
140
  "default": "./fesm2022/sd-angular-core-components-workflow.mjs"
141
141
  },
142
- "./components/upload-file": {
143
- "types": "./components/upload-file/index.d.ts",
144
- "default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
142
+ "./components/table": {
143
+ "types": "./components/table/index.d.ts",
144
+ "default": "./fesm2022/sd-angular-core-components-table.mjs"
145
+ },
146
+ "./forms/autocomplete": {
147
+ "types": "./forms/autocomplete/index.d.ts",
148
+ "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
145
149
  },
146
150
  "./forms/chip": {
147
151
  "types": "./forms/chip/index.d.ts",
148
152
  "default": "./fesm2022/sd-angular-core-forms-chip.mjs"
149
153
  },
150
- "./forms/checkbox": {
151
- "types": "./forms/checkbox/index.d.ts",
152
- "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
154
+ "./forms/date": {
155
+ "types": "./forms/date/index.d.ts",
156
+ "default": "./fesm2022/sd-angular-core-forms-date.mjs"
153
157
  },
154
158
  "./forms/chip-calendar": {
155
159
  "types": "./forms/chip-calendar/index.d.ts",
156
160
  "default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
157
161
  },
158
- "./forms/autocomplete": {
159
- "types": "./forms/autocomplete/index.d.ts",
160
- "default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
161
- },
162
- "./forms/date": {
163
- "types": "./forms/date/index.d.ts",
164
- "default": "./fesm2022/sd-angular-core-forms-date.mjs"
162
+ "./forms/checkbox": {
163
+ "types": "./forms/checkbox/index.d.ts",
164
+ "default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
165
165
  },
166
166
  "./forms/date-range": {
167
167
  "types": "./forms/date-range/index.d.ts",
@@ -207,22 +207,22 @@
207
207
  "types": "./forms/switch/index.d.ts",
208
208
  "default": "./fesm2022/sd-angular-core-forms-switch.mjs"
209
209
  },
210
- "./guards/permission": {
211
- "types": "./guards/permission/index.d.ts",
212
- "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
210
+ "./modules/auth": {
211
+ "types": "./modules/auth/index.d.ts",
212
+ "default": "./fesm2022/sd-angular-core-modules-auth.mjs"
213
213
  },
214
214
  "./modules/layout": {
215
215
  "types": "./modules/layout/index.d.ts",
216
216
  "default": "./fesm2022/sd-angular-core-modules-layout.mjs"
217
217
  },
218
- "./modules/oidc": {
219
- "types": "./modules/oidc/index.d.ts",
220
- "default": "./fesm2022/sd-angular-core-modules-oidc.mjs"
221
- },
222
218
  "./modules/permission": {
223
219
  "types": "./modules/permission/index.d.ts",
224
220
  "default": "./fesm2022/sd-angular-core-modules-permission.mjs"
225
221
  },
222
+ "./modules/oidc": {
223
+ "types": "./modules/oidc/index.d.ts",
224
+ "default": "./fesm2022/sd-angular-core-modules-oidc.mjs"
225
+ },
226
226
  "./services/api": {
227
227
  "types": "./services/api/index.d.ts",
228
228
  "default": "./fesm2022/sd-angular-core-services-api.mjs"
@@ -231,22 +231,22 @@
231
231
  "types": "./services/cache/index.d.ts",
232
232
  "default": "./fesm2022/sd-angular-core-services-cache.mjs"
233
233
  },
234
- "./services/confirm": {
235
- "types": "./services/confirm/index.d.ts",
236
- "default": "./fesm2022/sd-angular-core-services-confirm.mjs"
237
- },
238
234
  "./services/excel": {
239
235
  "types": "./services/excel/index.d.ts",
240
236
  "default": "./fesm2022/sd-angular-core-services-excel.mjs"
241
237
  },
242
- "./services/license": {
243
- "types": "./services/license/index.d.ts",
244
- "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"
245
241
  },
246
242
  "./services/firebase": {
247
243
  "types": "./services/firebase/index.d.ts",
248
244
  "default": "./fesm2022/sd-angular-core-services-firebase.mjs"
249
245
  },
246
+ "./services/license": {
247
+ "types": "./services/license/index.d.ts",
248
+ "default": "./fesm2022/sd-angular-core-services-license.mjs"
249
+ },
250
250
  "./services/notify": {
251
251
  "types": "./services/notify/index.d.ts",
252
252
  "default": "./fesm2022/sd-angular-core-services-notify.mjs"
@@ -266,6 +266,10 @@
266
266
  "./utilities/models": {
267
267
  "types": "./utilities/models/index.d.ts",
268
268
  "default": "./fesm2022/sd-angular-core-utilities-models.mjs"
269
+ },
270
+ "./guards/permission": {
271
+ "types": "./guards/permission/index.d.ts",
272
+ "default": "./fesm2022/sd-angular-core-guards-permission.mjs"
269
273
  }
270
274
  }
271
275
  }
package/pipes/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './src/format-number.pipe';
2
2
  export * from './src/safe-html.pipe';
3
3
  export * from './src/time-different.pipe';
4
+ export * from './src/empty.pipe';
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SdEmptyPipe implements PipeTransform {
4
+ transform(value: any): string;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdEmptyPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<SdEmptyPipe, "sdEmpty", true>;
7
+ }
@@ -23,6 +23,14 @@ export interface DialogData {
23
23
  min?: string | Date;
24
24
  max?: string | Date;
25
25
  };
26
+ radio?: {
27
+ required?: boolean;
28
+ defaultValue?: string | number;
29
+ items: any[];
30
+ valueField: string;
31
+ displayField: string;
32
+ display?: 'row' | 'column';
33
+ };
26
34
  }
27
35
  export declare class DialogConfirmComponent {
28
36
  dialogRef: MatDialogRef<DialogConfirmComponent>;
@@ -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;
@@ -21,6 +22,19 @@ export declare class SdConfirmService {
21
22
  noButtonColor?: SdColor;
22
23
  defaultValue?: string;
23
24
  }) => Promise<string>;
25
+ withRadio: (message?: string, option?: {
26
+ title?: string;
27
+ yesTitle?: string;
28
+ noTitle?: string;
29
+ required?: boolean;
30
+ yesButtonColor?: SdColor;
31
+ noButtonColor?: SdColor;
32
+ defaultValue?: string | number;
33
+ items: any[];
34
+ valueField: string;
35
+ displayField: string;
36
+ display?: "row" | "column";
37
+ }) => Promise<string>;
24
38
  withDate: (message?: string, option?: {
25
39
  title?: string;
26
40
  yesTitle?: string;
@@ -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[];