@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
@@ -94,3 +94,28 @@
94
94
  .font-weight-medium {
95
95
  font-weight: 500 !important;
96
96
  }
97
+
98
+ // Custom grid
99
+ .row-md {
100
+ @include make-row(16px);
101
+
102
+ > * {
103
+ @include make-col-ready(16px);
104
+ }
105
+ }
106
+
107
+ .row-sm {
108
+ @include make-row(8px);
109
+
110
+ > * {
111
+ @include make-col-ready(8px);
112
+ }
113
+ }
114
+
115
+ .row-xs {
116
+ @include make-row(4px);
117
+
118
+ > * {
119
+ @include make-col-ready(4px);
120
+ }
121
+ }
@@ -62,13 +62,11 @@
62
62
  .mat-mdc-form-field-infix {
63
63
  mat-select.mat-mdc-select,
64
64
  mat-date-range-input.mat-mdc-date-range-input,
65
- input.mat-mdc-input-element {
65
+ input.mat-mdc-input-element,
66
+ textarea.mat-mdc-input-element {
66
67
  font-size: 14px;
67
68
  margin-top: 10px; // Text hiển thị trong auto complete
68
69
  }
69
- textarea.mat-mdc-input-element {
70
- font-size: 14px; // Font-size hiển thị trong text-area outline
71
- }
72
70
  }
73
71
 
74
72
  .mat-mdc-form-field-suffix {
@@ -158,14 +156,10 @@
158
156
 
159
157
  mat-select.mat-mdc-select,
160
158
  mat-date-range-input.mat-mdc-date-range-input,
161
- input.mat-mdc-input-element {
162
- margin-top: 2px; // Text hiển thị trong auto complete
163
- font-size: 14px;
164
- }
165
-
159
+ input.mat-mdc-input-element,
166
160
  textarea.mat-mdc-input-element {
161
+ margin-top: 2px; // Text hiển thị trong auto complete
167
162
  font-size: 14px;
168
- margin-top: 2px;
169
163
  }
170
164
  }
171
165
 
@@ -7,23 +7,28 @@ export declare class SdDocumentBuilder {
7
7
  option: SdDocumentBuilderOption;
8
8
  disabled: boolean;
9
9
  set _disabled(val: boolean | '' | undefined | null);
10
+ contentChange: EventEmitter<string>;
10
11
  Editor: typeof ClassicEditor;
11
12
  config: SdEditorConfig;
12
- contentChange: EventEmitter<string>;
13
13
  ngOnInit(): void;
14
14
  ngOnDestroy(): void;
15
15
  onReady(editor: ClassicEditor): void;
16
- scrollToComment: (markerId: string) => void;
17
16
  setContent: (html: string) => void;
18
17
  getContent: () => string;
19
18
  setOrientation: (orientation: "PORTRAIT" | "LANDSCAPE") => void;
20
19
  getOrientation: () => "PORTRAIT" | "LANDSCAPE";
21
- getVariables: () => SdDocumentBuilderVariable[];
22
- getComments(): SdDocumentBuilderComment[];
23
20
  scrollToTop(): void;
24
21
  heading: {
25
- getHeadings: () => SdDocumentBuilderHeading[];
26
- scrollToHeading: (id: string) => void;
22
+ /**
23
+ * Lấy tất cả headings trong document
24
+ * @returns Danh sách tất cả headings
25
+ */
26
+ all: () => SdDocumentBuilderHeading[];
27
+ /**
28
+ * Scroll tới vị trí của heading
29
+ * @param id - ID của heading cần scroll tới
30
+ */
31
+ scroll: (id: string) => void;
27
32
  };
28
33
  comment: {
29
34
  /**
@@ -63,6 +68,18 @@ export declare class SdDocumentBuilder {
63
68
  */
64
69
  scroll: (markerId: string) => void;
65
70
  };
71
+ variable: {
72
+ /**
73
+ * Lấy tất cả variabes trong document
74
+ * @returns Danh sách tất cả variables
75
+ */
76
+ all: () => SdDocumentBuilderVariable[];
77
+ /**
78
+ * Scroll tới vị trí của variable
79
+ * @param uuid - uuid của variable FE sẽ tự sinh sau mỗi lần drop vào editor
80
+ */
81
+ scroll: (uuid: string) => void;
82
+ };
66
83
  /**
67
84
  * Xuất file Word có Header/Footer
68
85
  * @param fileName Tên file
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Cấu hình màu cho Document Builder
3
+ * Bảng màu tập trung và cấu hình cho việc lựa chọn màu nhất quán
4
+ */
5
+ import { ColorPickerConfig, FontColorConfig, FontSizeConfig, HeadingConfig } from 'ckeditor5';
6
+ /**
7
+ * Trả về bảng màu chung được sử dụng trong tất cả tính năng của document builder
8
+ * @returns Mảng các tùy chọn màu được định sẵn với giá trị hex và label
9
+ */
10
+ export declare function getPresetColors(): FontColorConfig['colors'];
11
+ /**
12
+ * Trả về cấu hình bộ chọn màu với định dạng hex
13
+ * @returns Đối tượng cấu hình bộ chọn màu
14
+ */
15
+ export declare function getColorPickerConfig(): ColorPickerConfig;
16
+ /**
17
+ * Trả về cấu hình kích thước font cho document builder
18
+ * @returns Mảng các tùy chọn kích thước font được định sẵn
19
+ */
20
+ export declare function getFontSizeOptions(): FontSizeConfig['options'];
21
+ export declare function getHeadingOptions(): HeadingConfig['options'];
@@ -12,6 +12,7 @@ export interface SdDocumentBuilderOption {
12
12
  }
13
13
  export interface SdDocumentBuilderVariable<T = any> {
14
14
  id: string;
15
+ uuid?: string;
15
16
  value: string;
16
17
  display: string;
17
18
  data?: T;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Document Builder Utilities
3
+ * Các hàm tiện ích cho document builder
4
+ */
5
+ /**
6
+ * Chuẩn hóa nội dung bằng cách chuyển đổi tất cả màu HSL và RGB sang hex
7
+ * @param content - Nội dung HTML cần chuẩn hóa
8
+ * @returns Nội dung đã được chuẩn hóa với màu hex
9
+ */
10
+ export declare function normalize(content: string): string;
@@ -0,0 +1,4 @@
1
+ import { Plugin } from 'ckeditor5';
2
+ export declare class HeadingPlugin extends Plugin {
3
+ init(): void;
4
+ }
@@ -1,8 +1,4 @@
1
1
  import { Plugin } from 'ckeditor5';
2
- /**
3
- * Custom base64 upload adapter plugin for CKEditor 5.
4
- * Converts uploaded images to base64 data URLs instead of uploading to a server.
5
- */
6
2
  export declare class ImageUploadPlugin extends Plugin {
7
3
  static get pluginName(): "ImageUploadPlugin";
8
4
  init(): void;
@@ -1,5 +1,6 @@
1
- export * from './page-orientation.plugin';
2
- export * from './comment.plugin';
3
- export * from './variable.plugin';
4
- export * from './table-fit.plugin';
5
- export * from './image-upload.plugin';
1
+ export * from './heading/heading.plugin';
2
+ export * from './comment/comment.plugin';
3
+ export * from './variable/variable.plugin';
4
+ export * from './table-fit/table-fit.plugin';
5
+ export * from './image-upload/image-upload.plugin';
6
+ export * from './page-orientation/page-orientation.plugin';
@@ -14,7 +14,8 @@ export interface SdTableDisplay {
14
14
  badge?: {
15
15
  type: SdBadge['type'] | undefined | null;
16
16
  color: SdBadge['color'] | undefined | null;
17
- icon: string | undefined | null;
17
+ icon?: string | undefined | null;
18
+ title?: string | number | null | undefined;
18
19
  };
19
20
  cellStyle?: Record<string, string>;
20
21
  data: string | number | undefined | null;
@@ -10,6 +10,7 @@ import { SdTableOptionGroup } from './table-option-group.model';
10
10
  import { SdTableOptionSort } from './table-option-sort.model';
11
11
  import { SdTableOptionPaginate } from './table-option-paginate.model';
12
12
  import { TableOptionConfig } from './table-option-config.model';
13
+ import { SdPagingReq } from '@sd-angular/core/utilities';
13
14
  export type SdTableOption<T = any> = SdTableLocalOption<T> | SdTableServerOption<T>;
14
15
  interface SdTableBaseOption<T = any> {
15
16
  key?: string;
@@ -32,7 +33,7 @@ interface SdTableLocalOption<T = any> extends SdTableBaseOption<T> {
32
33
  }
33
34
  interface SdTableServerOption<T = any> extends SdTableBaseOption<T> {
34
35
  type: 'server';
35
- items: (filterRequest: SdTableFilterRequest<T>) => Promise<{
36
+ items: (filterRequest: SdTableFilterRequest<T>, pagingReq: SdPagingReq<T>) => Promise<{
36
37
  items: T[];
37
38
  total: number;
38
39
  }>;
@@ -1,4 +1,5 @@
1
1
  export * from './form-render';
2
+ export * from './form-generic.model';
2
3
  export * from './form-generic-component.model';
3
4
  export * from './form-generic-template.model';
4
5
  export * from './form-generic-definition-selection.model';
@@ -66,11 +66,11 @@ class SdBadge {
66
66
  this.sdClick.emit(event);
67
67
  };
68
68
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SdBadge, isStandalone: true, selector: "sd-badge", inputs: { _type: ["type", "_type"], _color: ["color", "_color"], primary: "primary", secondary: "secondary", success: "success", info: "info", warning: "warning", error: "error", _fontSet: ["fontSet", "_fontSet"], title: "title", description: "description", tooltip: "tooltip", icon: "icon", size: "size" }, outputs: { sdClick: "sdClick" }, ngImport: i0, template: "@if (type === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ title }}\r\n </div>\r\n} @else if (type === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n @if (icon) {\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n} @else {\r\n <div\r\n class=\"d-flex\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"type === 'icon'\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-badge{border-radius:20px;padding:2px 10px;display:inline-block;text-align:center;overflow-wrap:break-word}.c-badge.c-primary{background:var(--sd-primary-light);color:var(--sd-primary)}.c-badge.c-primary.c-badge--tag{border:1px solid var(--sd-primary)}.c-badge.c-secondary{background:var(--sd-secondary-light);color:var(--sd-secondary)}.c-badge.c-secondary.c-badge--tag{border:1px solid var(--sd-secondary)}.c-badge.c-info{background:var(--sd-info-light);color:var(--sd-info)}.c-badge.c-info.c-badge--tag{border:1px solid var(--sd-info)}.c-badge.c-warning{background:var(--sd-warning-light);color:var(--sd-warning)}.c-badge.c-warning.c-badge--tag{border:1px solid var(--sd-warning)}.c-badge.c-success{background:var(--sd-success-light);color:var(--sd-success)}.c-badge.c-success.c-badge--tag{border:1px solid var(--sd-success)}.c-badge.c-error{background:var(--sd-error-light);color:var(--sd-error)}.c-badge.c-error.c-badge--tag{border:1px solid var(--sd-error)}.c-badge.c-badge--tag{border-radius:4px;padding:1px 7px}.c-badge.c-badge--tag .c-material-icon{padding:0}.c-badge.c-badge--tag .c-material-icon.c-xs,.c-badge.c-badge--tag .c-material-icon.c-sm,.c-badge.c-badge--tag .c-material-icon.c-md,.c-badge.c-badge--tag .c-material-icon.c-lg{line-height:20px}.c-badge-icon{min-width:50px}.c-badge-icon .c-material-icon{border-radius:50%;padding:2px 2px 2px 0}.c-badge-icon .c-material-icon.c-xs{width:18px;height:18px;font-size:14px}.c-badge-icon .c-material-icon.c-sm{width:20px;height:20px;font-size:16px}.c-badge-icon .c-material-icon.c-md{width:22px;height:22px;font-size:18px}.c-badge-icon .c-material-icon.c-lg{width:28px;height:28px;font-size:24px}.c-badge-icon .c-material-icon.c-primary{color:var(--sd-primary)}.c-badge-icon .c-material-icon.c-secondary{color:var(--sd-secondary)}.c-badge-icon .c-material-icon.c-info{color:var(--sd-info)}.c-badge-icon .c-material-icon.c-success{color:var(--sd-success)}.c-badge-icon .c-material-icon.c-error{color:var(--sd-error)}.c-badge-icon .c-material-icon.c-warning{color:var(--sd-warning)}.c-badge-description{color:var(--sd-secondary)}::ng-deep .sd-multiline-tooltip{white-space:pre-line}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SdBadge, isStandalone: true, selector: "sd-badge", inputs: { _type: ["type", "_type"], _color: ["color", "_color"], primary: "primary", secondary: "secondary", success: "success", info: "info", warning: "warning", error: "error", _fontSet: ["fontSet", "_fontSet"], title: "title", description: "description", tooltip: "tooltip", icon: "icon", size: "size" }, outputs: { sdClick: "sdClick" }, ngImport: i0, template: "@if (type === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ title }}\r\n </div>\r\n} @else if (type === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n @if (icon) {\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n} @else {\r\n <!-- \u0110\u1ED1i v\u1EDBi badge icon th\u00EC secondary s\u1EBD ch\u1EC9 d\u00F9ng m\u00E0u black400 -->\r\n <div\r\n class=\"d-flex\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"type === 'icon'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-black400]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T10R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-badge{border-radius:20px;padding:2px 10px;display:inline-block;text-align:center;overflow-wrap:break-word}.c-badge.c-primary{background:var(--sd-primary-light);color:var(--sd-primary)}.c-badge.c-primary.c-badge--tag{border:1px solid var(--sd-primary)}.c-badge.c-secondary{background:var(--sd-secondary-light);color:var(--sd-secondary)}.c-badge.c-secondary.c-badge--tag{border:1px solid var(--sd-secondary)}.c-badge.c-info{background:var(--sd-info-light);color:var(--sd-info)}.c-badge.c-info.c-badge--tag{border:1px solid var(--sd-info)}.c-badge.c-warning{background:var(--sd-warning-light);color:var(--sd-warning)}.c-badge.c-warning.c-badge--tag{border:1px solid var(--sd-warning)}.c-badge.c-success{background:var(--sd-success-light);color:var(--sd-success)}.c-badge.c-success.c-badge--tag{border:1px solid var(--sd-success)}.c-badge.c-error{background:var(--sd-error-light);color:var(--sd-error)}.c-badge.c-error.c-badge--tag{border:1px solid var(--sd-error)}.c-badge.c-badge--tag{border-radius:4px;padding:1px 7px}.c-badge.c-badge--tag .c-material-icon{padding:0}.c-badge.c-badge--tag .c-material-icon.c-xs,.c-badge.c-badge--tag .c-material-icon.c-sm,.c-badge.c-badge--tag .c-material-icon.c-md,.c-badge.c-badge--tag .c-material-icon.c-lg{line-height:20px}.c-badge-icon{min-width:50px}.c-badge-icon .c-material-icon{border-radius:50%;padding:2px 2px 2px 0}.c-badge-icon .c-material-icon.c-xs{width:18px;height:18px;font-size:14px}.c-badge-icon .c-material-icon.c-sm{width:20px;height:20px;font-size:16px}.c-badge-icon .c-material-icon.c-md{width:22px;height:22px;font-size:18px}.c-badge-icon .c-material-icon.c-lg{width:28px;height:28px;font-size:24px}.c-badge-icon .c-material-icon.c-primary{color:var(--sd-primary)}.c-badge-icon .c-material-icon.c-secondary{color:var(--sd-secondary)}.c-badge-icon .c-material-icon.c-black400{color:var(--sd-black400)}.c-badge-icon .c-material-icon.c-info{color:var(--sd-info)}.c-badge-icon .c-material-icon.c-success{color:var(--sd-success)}.c-badge-icon .c-material-icon.c-error{color:var(--sd-error)}.c-badge-icon .c-material-icon.c-warning{color:var(--sd-warning)}.c-badge-description{color:var(--sd-black400)}::ng-deep .sd-multiline-tooltip{white-space:pre-line}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
70
  }
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdBadge, decorators: [{
72
72
  type: Component,
73
- args: [{ selector: 'sd-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, MatTooltipModule], template: "@if (type === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ title }}\r\n </div>\r\n} @else if (type === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n @if (icon) {\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n} @else {\r\n <div\r\n class=\"d-flex\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"type === 'icon'\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-badge{border-radius:20px;padding:2px 10px;display:inline-block;text-align:center;overflow-wrap:break-word}.c-badge.c-primary{background:var(--sd-primary-light);color:var(--sd-primary)}.c-badge.c-primary.c-badge--tag{border:1px solid var(--sd-primary)}.c-badge.c-secondary{background:var(--sd-secondary-light);color:var(--sd-secondary)}.c-badge.c-secondary.c-badge--tag{border:1px solid var(--sd-secondary)}.c-badge.c-info{background:var(--sd-info-light);color:var(--sd-info)}.c-badge.c-info.c-badge--tag{border:1px solid var(--sd-info)}.c-badge.c-warning{background:var(--sd-warning-light);color:var(--sd-warning)}.c-badge.c-warning.c-badge--tag{border:1px solid var(--sd-warning)}.c-badge.c-success{background:var(--sd-success-light);color:var(--sd-success)}.c-badge.c-success.c-badge--tag{border:1px solid var(--sd-success)}.c-badge.c-error{background:var(--sd-error-light);color:var(--sd-error)}.c-badge.c-error.c-badge--tag{border:1px solid var(--sd-error)}.c-badge.c-badge--tag{border-radius:4px;padding:1px 7px}.c-badge.c-badge--tag .c-material-icon{padding:0}.c-badge.c-badge--tag .c-material-icon.c-xs,.c-badge.c-badge--tag .c-material-icon.c-sm,.c-badge.c-badge--tag .c-material-icon.c-md,.c-badge.c-badge--tag .c-material-icon.c-lg{line-height:20px}.c-badge-icon{min-width:50px}.c-badge-icon .c-material-icon{border-radius:50%;padding:2px 2px 2px 0}.c-badge-icon .c-material-icon.c-xs{width:18px;height:18px;font-size:14px}.c-badge-icon .c-material-icon.c-sm{width:20px;height:20px;font-size:16px}.c-badge-icon .c-material-icon.c-md{width:22px;height:22px;font-size:18px}.c-badge-icon .c-material-icon.c-lg{width:28px;height:28px;font-size:24px}.c-badge-icon .c-material-icon.c-primary{color:var(--sd-primary)}.c-badge-icon .c-material-icon.c-secondary{color:var(--sd-secondary)}.c-badge-icon .c-material-icon.c-info{color:var(--sd-info)}.c-badge-icon .c-material-icon.c-success{color:var(--sd-success)}.c-badge-icon .c-material-icon.c-error{color:var(--sd-error)}.c-badge-icon .c-material-icon.c-warning{color:var(--sd-warning)}.c-badge-description{color:var(--sd-secondary)}::ng-deep .sd-multiline-tooltip{white-space:pre-line}\n"] }]
73
+ args: [{ selector: 'sd-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, MatTooltipModule], template: "@if (type === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ title }}\r\n </div>\r\n} @else if (type === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n @if (icon) {\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n} @else {\r\n <!-- \u0110\u1ED1i v\u1EDBi badge icon th\u00EC secondary s\u1EBD ch\u1EC9 d\u00F9ng m\u00E0u black400 -->\r\n <div\r\n class=\"d-flex\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"type === 'icon'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-black400]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T10R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-badge{border-radius:20px;padding:2px 10px;display:inline-block;text-align:center;overflow-wrap:break-word}.c-badge.c-primary{background:var(--sd-primary-light);color:var(--sd-primary)}.c-badge.c-primary.c-badge--tag{border:1px solid var(--sd-primary)}.c-badge.c-secondary{background:var(--sd-secondary-light);color:var(--sd-secondary)}.c-badge.c-secondary.c-badge--tag{border:1px solid var(--sd-secondary)}.c-badge.c-info{background:var(--sd-info-light);color:var(--sd-info)}.c-badge.c-info.c-badge--tag{border:1px solid var(--sd-info)}.c-badge.c-warning{background:var(--sd-warning-light);color:var(--sd-warning)}.c-badge.c-warning.c-badge--tag{border:1px solid var(--sd-warning)}.c-badge.c-success{background:var(--sd-success-light);color:var(--sd-success)}.c-badge.c-success.c-badge--tag{border:1px solid var(--sd-success)}.c-badge.c-error{background:var(--sd-error-light);color:var(--sd-error)}.c-badge.c-error.c-badge--tag{border:1px solid var(--sd-error)}.c-badge.c-badge--tag{border-radius:4px;padding:1px 7px}.c-badge.c-badge--tag .c-material-icon{padding:0}.c-badge.c-badge--tag .c-material-icon.c-xs,.c-badge.c-badge--tag .c-material-icon.c-sm,.c-badge.c-badge--tag .c-material-icon.c-md,.c-badge.c-badge--tag .c-material-icon.c-lg{line-height:20px}.c-badge-icon{min-width:50px}.c-badge-icon .c-material-icon{border-radius:50%;padding:2px 2px 2px 0}.c-badge-icon .c-material-icon.c-xs{width:18px;height:18px;font-size:14px}.c-badge-icon .c-material-icon.c-sm{width:20px;height:20px;font-size:16px}.c-badge-icon .c-material-icon.c-md{width:22px;height:22px;font-size:18px}.c-badge-icon .c-material-icon.c-lg{width:28px;height:28px;font-size:24px}.c-badge-icon .c-material-icon.c-primary{color:var(--sd-primary)}.c-badge-icon .c-material-icon.c-secondary{color:var(--sd-secondary)}.c-badge-icon .c-material-icon.c-black400{color:var(--sd-black400)}.c-badge-icon .c-material-icon.c-info{color:var(--sd-info)}.c-badge-icon .c-material-icon.c-success{color:var(--sd-success)}.c-badge-icon .c-material-icon.c-error{color:var(--sd-error)}.c-badge-icon .c-material-icon.c-warning{color:var(--sd-warning)}.c-badge-description{color:var(--sd-black400)}::ng-deep .sd-multiline-tooltip{white-space:pre-line}\n"] }]
74
74
  }], propDecorators: { _type: [{
75
75
  type: Input,
76
76
  args: ['type']
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-components-badge.mjs","sources":["../../../projects/sd-angular/components/badge/src/badge.component.ts","../../../projects/sd-angular/components/badge/src/badge.component.html","../../../projects/sd-angular/components/badge/sd-angular-core-components-badge.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SdColor, SdSize } from '@sd-angular/core/utilities/models';\r\n\r\n@Component({\r\n selector: 'sd-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule, MatIconModule, MatTooltipModule],\r\n})\r\nexport class SdBadge {\r\n defaultIcon = 'fiber_manual_record';\r\n\r\n type: 'tag' | 'round' | 'icon' = 'icon';\r\n @Input('type') set _type(type: 'tag' | 'round' | 'icon' | undefined | null) {\r\n this.type = type || 'icon';\r\n }\r\n\r\n color: SdColor = 'secondary';\r\n @Input('color') set _color(color: SdColor | undefined | null) {\r\n this.color = color || 'secondary';\r\n }\r\n\r\n // Hỗ trợ: <sd-button secondary> hoặc <sd-button [secondary]=\"condition\">\r\n @Input() set primary(value: boolean | '') {\r\n if (value === '' || value) {\r\n this.color = 'primary';\r\n }\r\n }\r\n\r\n @Input() set secondary(value: boolean | '') {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'secondary';\r\n }\r\n }\r\n\r\n @Input() set success(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'success';\r\n }\r\n }\r\n\r\n @Input() set info(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'info';\r\n }\r\n }\r\n\r\n @Input() set warning(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'warning';\r\n }\r\n }\r\n\r\n @Input() set error(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'error';\r\n }\r\n }\r\n\r\n fontSet: 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' = 'material-icons';\r\n @Input('fontSet') set _fontSet(\r\n fontSet: 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' | undefined | null\r\n ) {\r\n this.fontSet = fontSet || 'material-icons';\r\n }\r\n @Input() title: string | number | undefined | null;\r\n @Input() description: string | undefined | null;\r\n @Input() tooltip: string | undefined | null;\r\n @Input() icon: string | undefined | null;\r\n\r\n @Input() size: SdSize = 'sm';\r\n @Output() sdClick = new EventEmitter();\r\n onClick = (event: Event) => {\r\n this.sdClick.emit(event);\r\n };\r\n}\r\n","@if (type === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ title }}\r\n </div>\r\n} @else if (type === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n @if (icon) {\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n} @else {\r\n <div\r\n class=\"d-flex\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"type === 'icon'\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-components-badge.mjs","sources":["../../../projects/sd-angular/components/badge/src/badge.component.ts","../../../projects/sd-angular/components/badge/src/badge.component.html","../../../projects/sd-angular/components/badge/sd-angular-core-components-badge.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SdColor, SdSize } from '@sd-angular/core/utilities/models';\r\n\r\n@Component({\r\n selector: 'sd-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule, MatIconModule, MatTooltipModule],\r\n})\r\nexport class SdBadge {\r\n defaultIcon = 'fiber_manual_record';\r\n\r\n type: 'tag' | 'round' | 'icon' = 'icon';\r\n @Input('type') set _type(type: 'tag' | 'round' | 'icon' | undefined | null) {\r\n this.type = type || 'icon';\r\n }\r\n\r\n color: SdColor = 'secondary';\r\n @Input('color') set _color(color: SdColor | undefined | null) {\r\n this.color = color || 'secondary';\r\n }\r\n\r\n // Hỗ trợ: <sd-button secondary> hoặc <sd-button [secondary]=\"condition\">\r\n @Input() set primary(value: boolean | '') {\r\n if (value === '' || value) {\r\n this.color = 'primary';\r\n }\r\n }\r\n\r\n @Input() set secondary(value: boolean | '') {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'secondary';\r\n }\r\n }\r\n\r\n @Input() set success(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'success';\r\n }\r\n }\r\n\r\n @Input() set info(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'info';\r\n }\r\n }\r\n\r\n @Input() set warning(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'warning';\r\n }\r\n }\r\n\r\n @Input() set error(value: boolean | '' | undefined | null) {\r\n // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true\r\n if (value === '' || value) {\r\n this.color = 'error';\r\n }\r\n }\r\n\r\n fontSet: 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' = 'material-icons';\r\n @Input('fontSet') set _fontSet(\r\n fontSet: 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' | undefined | null\r\n ) {\r\n this.fontSet = fontSet || 'material-icons';\r\n }\r\n @Input() title: string | number | undefined | null;\r\n @Input() description: string | undefined | null;\r\n @Input() tooltip: string | undefined | null;\r\n @Input() icon: string | undefined | null;\r\n\r\n @Input() size: SdSize = 'sm';\r\n @Output() sdClick = new EventEmitter();\r\n onClick = (event: Event) => {\r\n this.sdClick.emit(event);\r\n };\r\n}\r\n","@if (type === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ title }}\r\n </div>\r\n} @else if (type === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n @if (icon) {\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-secondary]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T12R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n} @else {\r\n <!-- Đối với badge icon thì secondary sẽ chỉ dùng màu black400 -->\r\n <div\r\n class=\"d-flex\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tooltip\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"type === 'icon'\"\r\n [class.pointer]=\"!!sdClick.observers.length\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span\r\n class=\"c-material-icon mr-4\"\r\n [class]=\"{\r\n 'c-xs': size === 'xs',\r\n 'c-sm': size === 'sm',\r\n 'c-md': size === 'md',\r\n 'c-lg': size === 'lg',\r\n 'material-icons': fontSet === 'material-icons',\r\n 'material-icons-outlined': fontSet === 'material-icons-outlined',\r\n 'material-icons-round': fontSet === 'material-icons-round',\r\n 'material-icons-sharp': fontSet === 'material-icons-sharp'\r\n }\"\r\n [class.c-primary]=\"color === 'primary'\"\r\n [class.c-black400]=\"color === 'secondary'\"\r\n [class.c-info]=\"color === 'info'\"\r\n [class.c-success]=\"color === 'success'\"\r\n [class.c-warning]=\"color === 'warning'\"\r\n [class.c-error]=\"color === 'error'\">\r\n {{ icon || defaultIcon }}\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ title }}</span>\r\n @if (description) {\r\n <span class=\"T10R c-badge-description\">{{ description }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}