@sd-angular/core 19.0.0-beta.71 → 19.0.0-beta.73

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 (57) hide show
  1. package/components/chart/index.d.ts +4 -0
  2. package/components/chart/src/bar-chart.component.d.ts +19 -0
  3. package/components/chart/src/doughnut-chart.component.d.ts +16 -0
  4. package/components/chart/src/line-chart.component.d.ts +16 -0
  5. package/components/chart/src/pie-chart.component.d.ts +16 -0
  6. package/components/index.d.ts +1 -0
  7. package/components/modal/src/modal.component.d.ts +1 -1
  8. package/components/section/src/section.component.d.ts +3 -3
  9. package/components/upload-file/src/configurations/upload-file.configuration.d.ts +33 -0
  10. package/components/upload-file/src/upload-file.component.d.ts +5 -2
  11. package/components/workflow/src/models/form-generic-expression.model.d.ts +1 -0
  12. package/components/workflow/src/pipes/html.pipe.d.ts +4 -4
  13. package/fesm2022/sd-angular-core-components-chart.mjs +284 -0
  14. package/fesm2022/sd-angular-core-components-chart.mjs.map +1 -0
  15. package/fesm2022/sd-angular-core-components-section.mjs +5 -5
  16. package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
  17. package/fesm2022/sd-angular-core-components-side-drawer.mjs +2 -2
  18. package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
  19. package/fesm2022/sd-angular-core-components-table.mjs +7 -5
  20. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  21. package/fesm2022/sd-angular-core-components-upload-file.mjs +61 -9
  22. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  23. package/fesm2022/sd-angular-core-components-workflow.mjs +125 -118
  24. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  25. package/fesm2022/sd-angular-core-components.mjs +1 -0
  26. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  27. package/fesm2022/sd-angular-core-modules-layout.mjs +2 -3
  28. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  29. package/fesm2022/sd-angular-core-modules-permission.mjs +160 -74
  30. package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
  31. package/fesm2022/sd-angular-core-utilities-extensions.mjs +27 -35
  32. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  33. package/fesm2022/sd-angular-core.mjs +0 -1
  34. package/fesm2022/sd-angular-core.mjs.map +1 -1
  35. package/modules/layout/services/menu/menu.model.d.ts +1 -0
  36. package/modules/permission/src/configurations/permission.configuration.d.ts +56 -2
  37. package/modules/permission/src/directives/permission.directive.d.ts +5 -8
  38. package/modules/permission/src/guards/permission.guard.d.ts +2 -1
  39. package/modules/permission/src/services/permission.service.d.ts +6 -9
  40. package/package.json +88 -91
  41. package/public-api.d.ts +0 -1
  42. package/sd-angular-core-19.0.0-beta.73.tgz +0 -0
  43. package/fesm2022/sd-angular-core-guards-permission.mjs +0 -155
  44. package/fesm2022/sd-angular-core-guards-permission.mjs.map +0 -1
  45. package/fesm2022/sd-angular-core-guards.mjs +0 -6
  46. package/fesm2022/sd-angular-core-guards.mjs.map +0 -1
  47. package/guards/index.d.ts +0 -1
  48. package/guards/permission/index.d.ts +0 -4
  49. package/guards/permission/src/configurations/index.d.ts +0 -1
  50. package/guards/permission/src/configurations/permission.configuration.d.ts +0 -8
  51. package/guards/permission/src/directives/index.d.ts +0 -1
  52. package/guards/permission/src/directives/permission.directive.d.ts +0 -12
  53. package/guards/permission/src/guards/index.d.ts +0 -1
  54. package/guards/permission/src/guards/permission.guard.d.ts +0 -13
  55. package/guards/permission/src/services/index.d.ts +0 -1
  56. package/guards/permission/src/services/permission.service.d.ts +0 -15
  57. package/sd-angular-core-19.0.0-beta.71.tgz +0 -0
@@ -0,0 +1,4 @@
1
+ export * from './src/bar-chart.component';
2
+ export * from './src/line-chart.component';
3
+ export * from './src/pie-chart.component';
4
+ export * from './src/doughnut-chart.component';
@@ -0,0 +1,19 @@
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { Chart, ChartData, Plugin } from 'chart.js';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SdBarChartComponent implements OnInit, OnDestroy {
5
+ canvas: ElementRef<HTMLCanvasElement>;
6
+ data: import("@angular/core").InputSignal<ChartData<"bar", (number | [number, number] | null)[], unknown>>;
7
+ options: import("@angular/core").InputSignal<import("node_modules/chart.js/dist/types/utils")._DeepPartialObject<import("chart.js").CoreChartOptions<"bar"> & import("chart.js").ElementChartOptions<"bar"> & import("chart.js").PluginChartOptions<"bar"> & import("chart.js").DatasetChartOptions<"bar"> & import("chart.js").ScaleChartOptions<"bar"> & import("chart.js").BarControllerChartOptions> | undefined>;
8
+ plugins: import("@angular/core").InputSignal<Plugin<"bar", import("node_modules/chart.js/dist/types/basic").AnyObject>[]>;
9
+ scrollable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
10
+ minWidth: import("@angular/core").InputSignalWithTransform<number, unknown>;
11
+ chart: Chart<'bar'> | undefined;
12
+ constructor();
13
+ ngOnInit(): void;
14
+ ngOnDestroy(): void;
15
+ getMinWidth(): number;
16
+ private initChart;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdBarChartComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdBarChartComponent, "sd-bar-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
19
+ }
@@ -0,0 +1,16 @@
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { Chart, ChartData, Plugin } from 'chart.js';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SdDoughnutChartComponent implements OnInit, OnDestroy {
5
+ canvas: ElementRef<HTMLCanvasElement>;
6
+ data: import("@angular/core").InputSignal<ChartData<"doughnut", number[], unknown>>;
7
+ options: import("@angular/core").InputSignal<import("node_modules/chart.js/dist/types/utils")._DeepPartialObject<import("chart.js").CoreChartOptions<"doughnut"> & import("chart.js").ElementChartOptions<"doughnut"> & import("chart.js").PluginChartOptions<"doughnut"> & import("chart.js").DatasetChartOptions<"doughnut"> & import("chart.js").ScaleChartOptions<"doughnut"> & import("chart.js").DoughnutControllerChartOptions> | undefined>;
8
+ plugins: import("@angular/core").InputSignal<Plugin<"doughnut", import("node_modules/chart.js/dist/types/basic").AnyObject>[]>;
9
+ chart: Chart<'doughnut'> | undefined;
10
+ constructor();
11
+ ngOnInit(): void;
12
+ ngOnDestroy(): void;
13
+ private initChart;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdDoughnutChartComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdDoughnutChartComponent, "sd-doughnut-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,16 @@
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { Chart, ChartData, Plugin } from 'chart.js';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SdLineChartComponent implements OnInit, OnDestroy {
5
+ canvas: ElementRef<HTMLCanvasElement>;
6
+ data: import("@angular/core").InputSignal<ChartData<"line", (number | import("chart.js").Point | null)[], unknown>>;
7
+ options: import("@angular/core").InputSignal<import("node_modules/chart.js/dist/types/utils")._DeepPartialObject<import("chart.js").CoreChartOptions<"line"> & import("chart.js").ElementChartOptions<"line"> & import("chart.js").PluginChartOptions<"line"> & import("chart.js").DatasetChartOptions<"line"> & import("chart.js").ScaleChartOptions<"line"> & import("chart.js").LineControllerChartOptions> | undefined>;
8
+ plugins: import("@angular/core").InputSignal<Plugin<"line", import("node_modules/chart.js/dist/types/basic").AnyObject>[]>;
9
+ chart: Chart<'line'> | undefined;
10
+ constructor();
11
+ ngOnInit(): void;
12
+ ngOnDestroy(): void;
13
+ private initChart;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdLineChartComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdLineChartComponent, "sd-line-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,16 @@
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { Chart, ChartData, Plugin } from 'chart.js';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SdPieChartComponent implements OnInit, OnDestroy {
5
+ canvas: ElementRef<HTMLCanvasElement>;
6
+ data: import("@angular/core").InputSignal<ChartData<"pie", number[], unknown>>;
7
+ options: import("@angular/core").InputSignal<import("node_modules/chart.js/dist/types/utils")._DeepPartialObject<import("chart.js").CoreChartOptions<"pie"> & import("chart.js").ElementChartOptions<"pie"> & import("chart.js").PluginChartOptions<"pie"> & import("chart.js").DatasetChartOptions<"pie"> & import("chart.js").ScaleChartOptions<"pie"> & import("chart.js").DoughnutControllerChartOptions> | undefined>;
8
+ plugins: import("@angular/core").InputSignal<Plugin<"pie", import("node_modules/chart.js/dist/types/basic").AnyObject>[]>;
9
+ chart: Chart<'pie'> | undefined;
10
+ constructor();
11
+ ngOnInit(): void;
12
+ ngOnDestroy(): void;
13
+ private initChart;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdPieChartComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdPieChartComponent, "sd-pie-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16
+ }
@@ -17,3 +17,4 @@ export * from '@sd-angular/core/components/document-builder';
17
17
  export * from '@sd-angular/core/components/mini-editor';
18
18
  export * from '@sd-angular/core/components/view';
19
19
  export * from '@sd-angular/core/components/code-editor';
20
+ export * from '@sd-angular/core/components/chart';
@@ -11,7 +11,7 @@ export declare class SdModal {
11
11
  width: import("@angular/core").InputSignalWithTransform<string, string | null | undefined>;
12
12
  height: import("@angular/core").InputSignalWithTransform<string, string | null | undefined>;
13
13
  view: import("@angular/core").InputSignalWithTransform<"dialog" | "bottom-sheet" | undefined, "dialog" | "bottom-sheet" | null | undefined>;
14
- modalClass: import("@angular/core").InputSignalWithTransform<string | Record<string, boolean> | string[], string | Record<string, boolean> | string[] | null | undefined>;
14
+ modalClass: import("@angular/core").InputSignalWithTransform<string | string[] | Record<string, boolean>, string | string[] | Record<string, boolean> | null | undefined>;
15
15
  lazyLoadContent: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
16
  sdClosed: import("@angular/core").OutputEmitterRef<void>;
17
17
  isOpened: import("@angular/core").WritableSignal<boolean>;
@@ -3,9 +3,9 @@ import { SdColor } from '@sd-angular/core/utilities';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SdSection extends SdBaseSecureComponent {
5
5
  #private;
6
- title: import("@angular/core").InputSignal<string | null>;
7
- subTitle: import("@angular/core").InputSignal<string>;
8
- icon: import("@angular/core").InputSignal<string | null>;
6
+ title: import("@angular/core").InputSignal<string | null | undefined>;
7
+ subTitle: import("@angular/core").InputSignal<string | null | undefined>;
8
+ icon: import("@angular/core").InputSignal<string | null | undefined>;
9
9
  iconColor: import("@angular/core").InputSignal<SdColor>;
10
10
  collapsed: import("@angular/core").ModelSignal<boolean>;
11
11
  collapsable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -1,17 +1,50 @@
1
1
  import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Contract cấu hình cho cơ chế upload file của sd-angular.
4
+ *
5
+ * Cách dùng phổ biến:
6
+ * - Portal có thể provide cấu hình mặc định ở tầng global.
7
+ * - Mỗi module có thể provide thêm cấu hình riêng (thường với `multi: true`).
8
+ * - Khi có nhiều cấu hình cùng lúc, dùng `key` để chọn đúng provider.
9
+ *
10
+ * Luồng xử lý:
11
+ * 1) `upload`: upload file mới, trả về danh sách id/key.
12
+ * 2) `details`: lấy metadata để render danh sách file từ id/key.
13
+ * 3) `download` (optional): tải file theo id/key.
14
+ */
2
15
  export interface ISdUploadFileConfiguration<TArgs = any> {
16
+ /**
17
+ * Định danh cấu hình upload.
18
+ * Bắt buộc khi app có nhiều provider upload để tránh mapping nhầm.
19
+ */
20
+ key?: string;
21
+ /** Upload file và trả về danh sách id/key dùng cho lưu trữ. */
3
22
  upload: SdUploadFileFuncUpload<TArgs>;
23
+ /** Nhận danh sách id/key và trả về dữ liệu hiển thị file trong UI. */
4
24
  details: SdUploadFileFuncDetails<TArgs>;
25
+ /** Tùy chọn: tải file về theo id/key. */
5
26
  download?: SdUploadFileFuncDownload<TArgs>;
6
27
  }
28
+ /**
29
+ * Token DI cho upload configuration.
30
+ * Khuyến nghị provide dạng `multi: true` để hỗ trợ nhiều nguồn upload trong cùng app/module.
31
+ */
7
32
  export declare const SD_UPLOAD_FILE_CONFIGURATION: InjectionToken<ISdUploadFileConfiguration<any>>;
33
+ /** Hàm upload file và trả về danh sách id/key tương ứng. */
8
34
  export type SdUploadFileFuncUpload<TArgs> = (files: File[], args?: TArgs) => Promise<string[]>;
35
+ /** Hàm lấy thông tin file phục vụ hiển thị từ danh sách id/key. */
9
36
  export type SdUploadFileFuncDetails<TArgs> = (idOrKey: (string | number)[], args?: TArgs) => Promise<SdUploadFileDetail[]>;
37
+ /** Hàm tải file theo id/key. */
10
38
  export type SdUploadFileFuncDownload<TArgs> = (idOrKey: string | number, args?: TArgs) => Promise<void>;
11
39
  export interface SdUploadFileDetail {
40
+ /** Định danh file được backend trả về sau upload. */
12
41
  idOrKey: string;
42
+ /** URL truy cập file (CDN hoặc direct URL). */
13
43
  cdn: string;
44
+ /** Tên hiển thị file. */
14
45
  name?: string;
46
+ /** Đuôi file: png, jpg, pdf... */
15
47
  extension?: string;
48
+ /** Dung lượng file tính theo MB (nếu backend có trả về). */
16
49
  size?: number;
17
50
  }
@@ -4,7 +4,7 @@ import { FormGroup } from '@angular/forms';
4
4
  import { SdLabelDefDirective } from '@sd-angular/core/forms/directives';
5
5
  import { SdFormControl } from '@sd-angular/core/forms/models';
6
6
  import { PreviewComponent } from './components/preview/preview.component';
7
- import { SdUploadFileFuncDetails } from './configurations';
7
+ import { SdUploadFileFuncDownload, SdUploadFileFuncDetails, SdUploadFileFuncUpload } from './configurations';
8
8
  import { PreviewFile } from './services';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class SdUploadFile<TArgs = any> {
@@ -18,11 +18,14 @@ export declare class SdUploadFile<TArgs = any> {
18
18
  readonly sdLabelDef: import("@angular/core").Signal<SdLabelDefDirective | undefined>;
19
19
  readonly args: import("@angular/core").InputSignal<TArgs | undefined>;
20
20
  readonly label: import("@angular/core").InputSignal<string | undefined>;
21
+ readonly key: import("@angular/core").InputSignal<string | undefined>;
21
22
  readonly description: import("@angular/core").InputSignal<string | undefined>;
22
23
  readonly previewWidth: import("@angular/core").InputSignal<string>;
23
24
  readonly previewHeight: import("@angular/core").InputSignal<string>;
24
25
  readonly align: import("@angular/core").InputSignal<"left" | "center">;
26
+ readonly uploadInput: import("@angular/core").InputSignal<SdUploadFileFuncUpload<any> | undefined>;
25
27
  readonly details: import("@angular/core").InputSignal<SdUploadFileFuncDetails<any> | undefined>;
28
+ readonly downloadInput: import("@angular/core").InputSignal<SdUploadFileFuncDownload<any> | undefined>;
26
29
  readonly imageValidator: import("@angular/core").InputSignal<((image: HTMLImageElement) => string) | undefined>;
27
30
  readonly maxSize: import("@angular/core").InputSignal<number | undefined>;
28
31
  readonly maxWidth: import("@angular/core").InputSignal<number | undefined>;
@@ -72,5 +75,5 @@ export declare class SdUploadFile<TArgs = any> {
72
75
  onDownload: (previewFile: PreviewFile) => void;
73
76
  isLastVisibleOverlay(fileIndex: number): boolean;
74
77
  static ɵfac: i0.ɵɵFactoryDeclaration<SdUploadFile<any>, never>;
75
- static ɵcmp: i0.ɵɵComponentDeclaration<SdUploadFile<any>, "sd-upload-file", never, { "args": { "alias": "args"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "previewWidth": { "alias": "previewWidth"; "required": false; "isSignal": true; }; "previewHeight": { "alias": "previewHeight"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "details": { "alias": "details"; "required": false; "isSignal": true; }; "imageValidator": { "alias": "imageValidator"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "scaleToPixel": { "alias": "scaleToPixel"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "nameInput": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "maxOfImage": { "alias": "maxOfImage"; "required": false; "isSignal": true; }; "extensions": { "alias": "extensions"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "loaded": "loaded"; "filesChanged": "filesChanged"; "model": "modelChange"; }, ["sdLabelDef"], never, true, never>;
78
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdUploadFile<any>, "sd-upload-file", never, { "args": { "alias": "args"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "key": { "alias": "key"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "previewWidth": { "alias": "previewWidth"; "required": false; "isSignal": true; }; "previewHeight": { "alias": "previewHeight"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "uploadInput": { "alias": "upload"; "required": false; "isSignal": true; }; "details": { "alias": "details"; "required": false; "isSignal": true; }; "downloadInput": { "alias": "download"; "required": false; "isSignal": true; }; "imageValidator": { "alias": "imageValidator"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "scaleToPixel": { "alias": "scaleToPixel"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "nameInput": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "maxOfImage": { "alias": "maxOfImage"; "required": false; "isSignal": true; }; "extensions": { "alias": "extensions"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "loaded": "loaded"; "filesChanged": "filesChanged"; "model": "modelChange"; }, ["sdLabelDef"], never, true, never>;
76
79
  }
@@ -69,5 +69,6 @@ export declare const AttributeOperators: Record<Attribute['type'], {
69
69
  }[]>;
70
70
  export declare const GetAttributes: (components: (SdFormGenericComponent | SdFormGenericGroup)[]) => Attribute[];
71
71
  export declare const TemplateToCondition: (template: string | undefined | null, entity: Record<string, any>) => string | undefined;
72
+ export declare const EvaluateExpression: (condition: SdFormGenericExpression | SdFormGenericExpressionCondition, entity: Record<string, any>) => boolean | undefined;
72
73
  export declare const ExpressionToJavascriptExpression: (condition: SdFormGenericExpression | SdFormGenericExpressionCondition) => string | undefined;
73
74
  export {};
@@ -1,11 +1,11 @@
1
1
  import { PipeTransform } from '@angular/core';
2
- import { SdSafeHtmlPipe } from '@sd-angular/core/pipes';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
3
  import { SdFormGenericHtml } from '../models';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class HtmlPipe implements PipeTransform {
6
- private readonly htmlSafePipe;
7
- constructor(htmlSafePipe: SdSafeHtmlPipe);
8
- transform: (hashed: string | undefined | null, content: string, component: SdFormGenericHtml) => import("@angular/platform-browser").SafeHtml | undefined;
6
+ private readonly sanitizer;
7
+ constructor(sanitizer: DomSanitizer);
8
+ transform: (hashed: string | undefined | null, content: string, component: SdFormGenericHtml) => string;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<HtmlPipe, never>;
10
10
  static ɵpipe: i0.ɵɵPipeDeclaration<HtmlPipe, "htmlPipe", true>;
11
11
  }
@@ -0,0 +1,284 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, booleanAttribute, numberAttribute, effect, ViewChild, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { Chart, registerables } from 'chart.js';
4
+
5
+ Chart.register(...registerables);
6
+ class SdBarChartComponent {
7
+ canvas;
8
+ data = input.required();
9
+ options = input();
10
+ plugins = input([]);
11
+ scrollable = input(false, { transform: booleanAttribute });
12
+ minWidth = input(800, { transform: numberAttribute });
13
+ chart;
14
+ constructor() {
15
+ effect(() => {
16
+ const currentData = this.data();
17
+ const currentOptions = this.options();
18
+ if (this.chart) {
19
+ this.chart.data = currentData;
20
+ if (currentOptions) {
21
+ this.chart.options = currentOptions;
22
+ }
23
+ this.chart.update();
24
+ }
25
+ });
26
+ }
27
+ ngOnInit() {
28
+ this.initChart();
29
+ }
30
+ ngOnDestroy() {
31
+ if (this.chart) {
32
+ this.chart.destroy();
33
+ }
34
+ }
35
+ getMinWidth() {
36
+ return this.minWidth();
37
+ }
38
+ initChart() {
39
+ if (this.chart) {
40
+ this.chart.destroy();
41
+ }
42
+ const ctx = this.canvas.nativeElement.getContext('2d');
43
+ if (ctx) {
44
+ this.chart = new Chart(ctx, {
45
+ type: 'bar',
46
+ data: this.data(),
47
+ options: this.options() || {},
48
+ plugins: this.plugins(),
49
+ });
50
+ }
51
+ }
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdBarChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.17", type: SdBarChartComponent, isStandalone: true, selector: "sd-bar-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, plugins: { classPropertyName: "plugins", publicName: "plugins", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], ngImport: i0, template: `
54
+ <div [style.overflow-x]="scrollable() ? 'auto' : 'visible'" style="width: 100%; height: 100%;">
55
+ <div [style.height]="'100%'" [style.min-width.px]="scrollable() ? getMinWidth() : null" style="position: relative;">
56
+ <canvas #canvas></canvas>
57
+ </div>
58
+ </div>
59
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdBarChartComponent, decorators: [{
62
+ type: Component,
63
+ args: [{
64
+ selector: 'sd-bar-chart',
65
+ template: `
66
+ <div [style.overflow-x]="scrollable() ? 'auto' : 'visible'" style="width: 100%; height: 100%;">
67
+ <div [style.height]="'100%'" [style.min-width.px]="scrollable() ? getMinWidth() : null" style="position: relative;">
68
+ <canvas #canvas></canvas>
69
+ </div>
70
+ </div>
71
+ `,
72
+ changeDetection: ChangeDetectionStrategy.OnPush,
73
+ standalone: true,
74
+ }]
75
+ }], ctorParameters: () => [], propDecorators: { canvas: [{
76
+ type: ViewChild,
77
+ args: ['canvas', { static: true }]
78
+ }] } });
79
+
80
+ Chart.register(...registerables);
81
+ 2;
82
+ class SdLineChartComponent {
83
+ canvas;
84
+ data = input.required();
85
+ options = input();
86
+ plugins = input([]);
87
+ chart;
88
+ constructor() {
89
+ effect(() => {
90
+ const currentData = this.data();
91
+ const currentOptions = this.options();
92
+ if (this.chart) {
93
+ this.chart.data = currentData;
94
+ if (currentOptions) {
95
+ this.chart.options = currentOptions;
96
+ }
97
+ this.chart.update();
98
+ }
99
+ });
100
+ }
101
+ ngOnInit() {
102
+ this.initChart();
103
+ }
104
+ ngOnDestroy() {
105
+ if (this.chart) {
106
+ this.chart.destroy();
107
+ }
108
+ }
109
+ initChart() {
110
+ if (this.chart) {
111
+ this.chart.destroy();
112
+ }
113
+ const ctx = this.canvas.nativeElement.getContext('2d');
114
+ if (ctx) {
115
+ this.chart = new Chart(ctx, {
116
+ type: 'line',
117
+ data: this.data(),
118
+ options: this.options() || {},
119
+ plugins: this.plugins(),
120
+ });
121
+ }
122
+ }
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdLineChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.17", type: SdLineChartComponent, isStandalone: true, selector: "sd-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, plugins: { classPropertyName: "plugins", publicName: "plugins", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], ngImport: i0, template: `
125
+ <div style="position: relative; height: 100%; width: 100%;">
126
+ <canvas #canvas></canvas>
127
+ </div>
128
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdLineChartComponent, decorators: [{
131
+ type: Component,
132
+ args: [{
133
+ selector: 'sd-line-chart',
134
+ template: `
135
+ <div style="position: relative; height: 100%; width: 100%;">
136
+ <canvas #canvas></canvas>
137
+ </div>
138
+ `,
139
+ changeDetection: ChangeDetectionStrategy.OnPush,
140
+ standalone: true,
141
+ }]
142
+ }], ctorParameters: () => [], propDecorators: { canvas: [{
143
+ type: ViewChild,
144
+ args: ['canvas', { static: true }]
145
+ }] } });
146
+
147
+ Chart.register(...registerables);
148
+ class SdPieChartComponent {
149
+ canvas;
150
+ data = input.required();
151
+ options = input();
152
+ plugins = input([]);
153
+ chart;
154
+ constructor() {
155
+ effect(() => {
156
+ const currentData = this.data();
157
+ const currentOptions = this.options();
158
+ if (this.chart) {
159
+ this.chart.data = currentData;
160
+ if (currentOptions) {
161
+ this.chart.options = currentOptions;
162
+ }
163
+ this.chart.update();
164
+ }
165
+ });
166
+ }
167
+ ngOnInit() {
168
+ this.initChart();
169
+ }
170
+ ngOnDestroy() {
171
+ if (this.chart) {
172
+ this.chart.destroy();
173
+ }
174
+ }
175
+ initChart() {
176
+ if (this.chart) {
177
+ this.chart.destroy();
178
+ }
179
+ const ctx = this.canvas.nativeElement.getContext('2d');
180
+ if (ctx) {
181
+ this.chart = new Chart(ctx, {
182
+ type: 'pie',
183
+ data: this.data(),
184
+ options: this.options() || {},
185
+ plugins: this.plugins(),
186
+ });
187
+ }
188
+ }
189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPieChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.17", type: SdPieChartComponent, isStandalone: true, selector: "sd-pie-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, plugins: { classPropertyName: "plugins", publicName: "plugins", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], ngImport: i0, template: `
191
+ <div style="position: relative; height: 100%; width: 100%;">
192
+ <canvas #canvas></canvas>
193
+ </div>
194
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
195
+ }
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPieChartComponent, decorators: [{
197
+ type: Component,
198
+ args: [{
199
+ selector: 'sd-pie-chart',
200
+ template: `
201
+ <div style="position: relative; height: 100%; width: 100%;">
202
+ <canvas #canvas></canvas>
203
+ </div>
204
+ `,
205
+ changeDetection: ChangeDetectionStrategy.OnPush,
206
+ standalone: true,
207
+ }]
208
+ }], ctorParameters: () => [], propDecorators: { canvas: [{
209
+ type: ViewChild,
210
+ args: ['canvas', { static: true }]
211
+ }] } });
212
+
213
+ Chart.register(...registerables);
214
+ class SdDoughnutChartComponent {
215
+ canvas;
216
+ data = input.required();
217
+ options = input();
218
+ plugins = input([]);
219
+ chart;
220
+ constructor() {
221
+ effect(() => {
222
+ const currentData = this.data();
223
+ const currentOptions = this.options();
224
+ if (this.chart) {
225
+ this.chart.data = currentData;
226
+ if (currentOptions) {
227
+ this.chart.options = currentOptions;
228
+ }
229
+ this.chart.update();
230
+ }
231
+ });
232
+ }
233
+ ngOnInit() {
234
+ this.initChart();
235
+ }
236
+ ngOnDestroy() {
237
+ if (this.chart) {
238
+ this.chart.destroy();
239
+ }
240
+ }
241
+ initChart() {
242
+ if (this.chart) {
243
+ this.chart.destroy();
244
+ }
245
+ const ctx = this.canvas.nativeElement.getContext('2d');
246
+ if (ctx) {
247
+ this.chart = new Chart(ctx, {
248
+ type: 'doughnut',
249
+ data: this.data(),
250
+ options: this.options() || {},
251
+ plugins: this.plugins(),
252
+ });
253
+ }
254
+ }
255
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdDoughnutChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
256
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.17", type: SdDoughnutChartComponent, isStandalone: true, selector: "sd-doughnut-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, plugins: { classPropertyName: "plugins", publicName: "plugins", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], ngImport: i0, template: `
257
+ <div style="position: relative; height: 100%; width: 100%;">
258
+ <canvas #canvas></canvas>
259
+ </div>
260
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
261
+ }
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdDoughnutChartComponent, decorators: [{
263
+ type: Component,
264
+ args: [{
265
+ selector: 'sd-doughnut-chart',
266
+ template: `
267
+ <div style="position: relative; height: 100%; width: 100%;">
268
+ <canvas #canvas></canvas>
269
+ </div>
270
+ `,
271
+ changeDetection: ChangeDetectionStrategy.OnPush,
272
+ standalone: true,
273
+ }]
274
+ }], ctorParameters: () => [], propDecorators: { canvas: [{
275
+ type: ViewChild,
276
+ args: ['canvas', { static: true }]
277
+ }] } });
278
+
279
+ /**
280
+ * Generated bundle index. Do not edit.
281
+ */
282
+
283
+ export { SdBarChartComponent, SdDoughnutChartComponent, SdLineChartComponent, SdPieChartComponent };
284
+ //# sourceMappingURL=sd-angular-core-components-chart.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-angular-core-components-chart.mjs","sources":["../../../projects/sd-angular/components/chart/src/bar-chart.component.ts","../../../projects/sd-angular/components/chart/src/line-chart.component.ts","../../../projects/sd-angular/components/chart/src/pie-chart.component.ts","../../../projects/sd-angular/components/chart/src/doughnut-chart.component.ts","../../../projects/sd-angular/components/chart/sd-angular-core-components-chart.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, ViewChild, booleanAttribute, effect, input, numberAttribute } from '@angular/core';\r\nimport { Chart, ChartData, ChartOptions, Plugin, registerables } from 'chart.js';\r\n\r\nChart.register(...registerables);\r\n\r\n@Component({\r\n selector: 'sd-bar-chart',\r\n template: `\r\n <div [style.overflow-x]=\"scrollable() ? 'auto' : 'visible'\" style=\"width: 100%; height: 100%;\">\r\n <div [style.height]=\"'100%'\" [style.min-width.px]=\"scrollable() ? getMinWidth() : null\" style=\"position: relative;\">\r\n <canvas #canvas></canvas>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class SdBarChartComponent implements OnInit, OnDestroy {\r\n @ViewChild('canvas', { static: true }) canvas!: ElementRef<HTMLCanvasElement>;\r\n\r\n data = input.required<ChartData<'bar'>>();\r\n options = input<ChartOptions<'bar'>>();\r\n plugins = input<Plugin<'bar'>[]>([]);\r\n\r\n scrollable = input(false, { transform: booleanAttribute });\r\n minWidth = input(800, { transform: numberAttribute });\r\n\r\n chart: Chart<'bar'> | undefined;\r\n\r\n constructor() {\r\n effect(() => {\r\n const currentData = this.data();\r\n const currentOptions = this.options();\r\n \r\n if (this.chart) {\r\n this.chart.data = currentData as any;\r\n if (currentOptions) {\r\n this.chart.options = currentOptions;\r\n }\r\n this.chart.update();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initChart();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n }\r\n\r\n getMinWidth(): number {\r\n return this.minWidth();\r\n }\r\n\r\n private initChart() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n const ctx = this.canvas.nativeElement.getContext('2d');\r\n if (ctx) {\r\n this.chart = new Chart(ctx, {\r\n type: 'bar',\r\n data: this.data() as any,\r\n options: this.options() || {},\r\n plugins: this.plugins(),\r\n });\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, ViewChild, effect, input } from '@angular/core';\r\nimport { Chart, ChartData, ChartOptions, Plugin, registerables } from 'chart.js';\r\n\r\nChart.register(...registerables);\r\n2\r\n@Component({\r\n selector: 'sd-line-chart',\r\n template: `\r\n <div style=\"position: relative; height: 100%; width: 100%;\">\r\n <canvas #canvas></canvas>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class SdLineChartComponent implements OnInit, OnDestroy {\r\n @ViewChild('canvas', { static: true }) canvas!: ElementRef<HTMLCanvasElement>;\r\n\r\n data = input.required<ChartData<'line'>>();\r\n options = input<ChartOptions<'line'>>();\r\n plugins = input<Plugin<'line'>[]>([]);\r\n\r\n chart: Chart<'line'> | undefined;\r\n\r\n constructor() {\r\n effect(() => {\r\n const currentData = this.data();\r\n const currentOptions = this.options();\r\n \r\n if (this.chart) {\r\n this.chart.data = currentData;\r\n if (currentOptions) {\r\n this.chart.options = currentOptions;\r\n }\r\n this.chart.update();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initChart();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n }\r\n\r\n private initChart() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n const ctx = this.canvas.nativeElement.getContext('2d');\r\n if (ctx) {\r\n this.chart = new Chart(ctx, {\r\n type: 'line',\r\n data: this.data(),\r\n options: this.options() || {},\r\n plugins: this.plugins(),\r\n });\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, ViewChild, effect, input } from '@angular/core';\r\nimport { Chart, ChartData, ChartOptions, Plugin, registerables } from 'chart.js';\r\n\r\nChart.register(...registerables);\r\n\r\n@Component({\r\n selector: 'sd-pie-chart',\r\n template: `\r\n <div style=\"position: relative; height: 100%; width: 100%;\">\r\n <canvas #canvas></canvas>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class SdPieChartComponent implements OnInit, OnDestroy {\r\n @ViewChild('canvas', { static: true }) canvas!: ElementRef<HTMLCanvasElement>;\r\n\r\n data = input.required<ChartData<'pie'>>();\r\n options = input<ChartOptions<'pie'>>();\r\n plugins = input<Plugin<'pie'>[]>([]);\r\n\r\n chart: Chart<'pie'> | undefined;\r\n\r\n constructor() {\r\n effect(() => {\r\n const currentData = this.data();\r\n const currentOptions = this.options();\r\n \r\n if (this.chart) {\r\n this.chart.data = currentData;\r\n if (currentOptions) {\r\n this.chart.options = currentOptions;\r\n }\r\n this.chart.update();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initChart();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n }\r\n\r\n private initChart() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n const ctx = this.canvas.nativeElement.getContext('2d');\r\n if (ctx) {\r\n this.chart = new Chart(ctx, {\r\n type: 'pie',\r\n data: this.data(),\r\n options: this.options() || {},\r\n plugins: this.plugins(),\r\n });\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, ViewChild, effect, input } from '@angular/core';\r\nimport { Chart, ChartData, ChartOptions, Plugin, registerables } from 'chart.js';\r\n\r\nChart.register(...registerables);\r\n\r\n@Component({\r\n selector: 'sd-doughnut-chart',\r\n template: `\r\n <div style=\"position: relative; height: 100%; width: 100%;\">\r\n <canvas #canvas></canvas>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class SdDoughnutChartComponent implements OnInit, OnDestroy {\r\n @ViewChild('canvas', { static: true }) canvas!: ElementRef<HTMLCanvasElement>;\r\n\r\n data = input.required<ChartData<'doughnut'>>();\r\n options = input<ChartOptions<'doughnut'>>();\r\n plugins = input<Plugin<'doughnut'>[]>([]);\r\n\r\n chart: Chart<'doughnut'> | undefined;\r\n\r\n constructor() {\r\n effect(() => {\r\n const currentData = this.data();\r\n const currentOptions = this.options();\r\n \r\n if (this.chart) {\r\n this.chart.data = currentData;\r\n if (currentOptions) {\r\n this.chart.options = currentOptions;\r\n }\r\n this.chart.update();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initChart();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n }\r\n\r\n private initChart() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n const ctx = this.canvas.nativeElement.getContext('2d');\r\n if (ctx) {\r\n this.chart = new Chart(ctx, {\r\n type: 'doughnut',\r\n data: this.data(),\r\n options: this.options() || {},\r\n plugins: this.plugins(),\r\n });\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -7,13 +7,13 @@ import { SdBaseSecureComponent } from '@sd-angular/core/components/base';
7
7
  /* eslint-disable @angular-eslint/no-input-rename */
8
8
  class SdSection extends SdBaseSecureComponent {
9
9
  #el = inject(ElementRef);
10
- title = input('', { alias: 'title' });
11
- subTitle = input('', { alias: 'subTitle' });
12
- icon = input(null, { alias: 'icon' });
10
+ title = input(undefined);
11
+ subTitle = input(undefined);
12
+ icon = input(undefined);
13
13
  iconColor = input('primary', { alias: 'iconColor' });
14
14
  collapsed = model(false, { alias: 'collapsed' });
15
- collapsable = input(false, { transform: booleanAttribute, alias: 'collapsable' });
16
- hideHeader = input(false, { transform: booleanAttribute, alias: 'hideHeader' });
15
+ collapsable = input(false, { transform: booleanAttribute });
16
+ hideHeader = input(false, { transform: booleanAttribute });
17
17
  noPaddingBody = input(false, { transform: booleanAttribute });
18
18
  constructor() {
19
19
  super();