@sd-angular/core 19.0.0-beta.5 → 19.0.0-beta.50

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 (185) hide show
  1. package/README.md +686 -33
  2. package/assets/scss/ckeditor5.scss +60 -2
  3. package/assets/scss/core/bootstrap.scss +17 -0
  4. package/assets/scss/core/grid.scss +40 -0
  5. package/assets/scss/sd-core.scss +1 -0
  6. package/components/avatar/index.d.ts +1 -0
  7. package/components/avatar/src/avatar.component.d.ts +15 -0
  8. package/components/badge/src/badge.component.d.ts +77 -19
  9. package/components/button/src/button.component.d.ts +26 -28
  10. package/components/code-editor/index.d.ts +1 -0
  11. package/components/code-editor/src/code-editor.component.d.ts +25 -0
  12. package/components/document-builder/index.d.ts +1 -0
  13. package/components/document-builder/src/document-builder.component.d.ts +18 -36
  14. package/components/document-builder/src/document-builder.model.d.ts +10 -10
  15. package/components/document-builder/src/plugins/block-space/block-space.plugin.d.ts +9 -0
  16. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.d.ts +44 -0
  17. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.model.d.ts +56 -0
  18. package/components/document-builder/src/plugins/heading/heading.plugin.d.ts +1 -0
  19. package/components/document-builder/src/plugins/highlight-range/highlight-range.plugin.d.ts +4 -0
  20. package/components/document-builder/src/plugins/image-custom/image-custom.plugin.d.ts +31 -0
  21. package/components/document-builder/src/plugins/index.d.ts +7 -2
  22. package/components/document-builder/src/plugins/page-orientation/page-orientation.plugin.d.ts +2 -2
  23. package/components/document-builder/src/plugins/paste-handler/filters/bookmark.d.ts +14 -0
  24. package/components/document-builder/src/plugins/paste-handler/filters/br.d.ts +15 -0
  25. package/components/document-builder/src/plugins/paste-handler/filters/image.d.ts +25 -0
  26. package/components/document-builder/src/plugins/paste-handler/filters/list.d.ts +29 -0
  27. package/components/document-builder/src/plugins/paste-handler/filters/parse.d.ts +35 -0
  28. package/components/document-builder/src/plugins/paste-handler/filters/removeboldwrapper.d.ts +15 -0
  29. package/components/document-builder/src/plugins/paste-handler/filters/removegooglesheetstag.d.ts +15 -0
  30. package/components/document-builder/src/plugins/paste-handler/filters/removeinvalidtablewidth.d.ts +15 -0
  31. package/components/document-builder/src/plugins/paste-handler/filters/removemsattributes.d.ts +15 -0
  32. package/components/document-builder/src/plugins/paste-handler/filters/removestyleblock.d.ts +15 -0
  33. package/components/document-builder/src/plugins/paste-handler/filters/removexmlns.d.ts +15 -0
  34. package/components/document-builder/src/plugins/paste-handler/filters/replacemsfootnotes.d.ts +54 -0
  35. package/components/document-builder/src/plugins/paste-handler/filters/replacetabswithinprewithspaces.d.ts +24 -0
  36. package/components/document-builder/src/plugins/paste-handler/filters/space.d.ts +27 -0
  37. package/components/document-builder/src/plugins/paste-handler/filters/table.d.ts +16 -0
  38. package/components/document-builder/src/plugins/paste-handler/filters/utils.d.ts +25 -0
  39. package/components/document-builder/src/plugins/paste-handler/index.d.ts +35 -0
  40. package/components/document-builder/src/plugins/paste-handler/normalizers/googledocsnormalizer.d.ts +31 -0
  41. package/components/document-builder/src/plugins/paste-handler/normalizers/googlesheetsnormalizer.d.ts +31 -0
  42. package/components/document-builder/src/plugins/paste-handler/normalizers/mswordnormalizer.d.ts +29 -0
  43. package/components/document-builder/src/plugins/paste-handler/types.d.ts +30 -0
  44. package/components/document-builder/src/plugins/table-custom/index.d.ts +34 -0
  45. package/components/index.d.ts +4 -0
  46. package/components/mini-editor/index.d.ts +2 -0
  47. package/components/mini-editor/src/mini-editor.component.d.ts +90 -0
  48. package/components/mini-editor/src/mini-editor.model.d.ts +44 -0
  49. package/components/side-drawer/src/side-drawer.component.d.ts +1 -2
  50. package/components/tab-router/src/components/tab-router-item/tab-router-item.component.d.ts +4 -1
  51. package/components/tab-router/src/components/tab-router-outlet/tab-router-outlet.component.d.ts +3 -15
  52. package/components/table/src/components/selector-action/action-filter.pipe.d.ts +11 -10
  53. package/components/table/src/directives/index.d.ts +2 -0
  54. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +9 -0
  55. package/components/table/src/directives/sticky-shadow.directive.d.ts +17 -0
  56. package/components/table/src/models/table-column.model.d.ts +32 -32
  57. package/components/table/src/models/table-command.model.d.ts +7 -3
  58. package/components/table/src/models/table-item.model.d.ts +5 -4
  59. package/components/table/src/models/table-option-export.model.d.ts +3 -2
  60. package/components/table/src/models/table-option-selector.model.d.ts +11 -10
  61. package/components/table/src/models/table-option.model.d.ts +10 -8
  62. package/components/table/src/services/table-filter/table-filter.model.d.ts +2 -2
  63. package/components/table/src/table.component.d.ts +33 -35
  64. package/components/view/index.d.ts +1 -0
  65. package/components/view/src/view.component.d.ts +16 -0
  66. package/components/workflow/src/models/index.d.ts +1 -0
  67. package/directives/index.d.ts +1 -0
  68. package/directives/src/sd-href.directive.d.ts +9 -0
  69. package/fesm2022/sd-angular-core-components-avatar.mjs +90 -0
  70. package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -0
  71. package/fesm2022/sd-angular-core-components-badge.mjs +101 -91
  72. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  73. package/fesm2022/sd-angular-core-components-button.mjs +64 -96
  74. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  75. package/fesm2022/sd-angular-core-components-code-editor.mjs +129 -0
  76. package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -0
  77. package/fesm2022/sd-angular-core-components-document-builder.mjs +3635 -521
  78. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  79. package/fesm2022/sd-angular-core-components-history.mjs +1 -1
  80. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  81. package/fesm2022/sd-angular-core-components-import-excel.mjs +1 -1
  82. package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
  83. package/fesm2022/sd-angular-core-components-mini-editor.mjs +326 -0
  84. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -0
  85. package/fesm2022/sd-angular-core-components-preview.mjs +1 -1
  86. package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
  87. package/fesm2022/sd-angular-core-components-side-drawer.mjs +21 -8
  88. package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
  89. package/fesm2022/sd-angular-core-components-tab-router.mjs +152 -226
  90. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  91. package/fesm2022/sd-angular-core-components-table.mjs +646 -460
  92. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  93. package/fesm2022/sd-angular-core-components-upload-file.mjs +1 -1
  94. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  95. package/fesm2022/sd-angular-core-components-view.mjs +45 -0
  96. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -0
  97. package/fesm2022/sd-angular-core-components-workflow.mjs +33 -43
  98. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  99. package/fesm2022/sd-angular-core-components.mjs +4 -0
  100. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  101. package/fesm2022/sd-angular-core-directives.mjs +80 -27
  102. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  103. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +257 -363
  104. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  105. package/fesm2022/sd-angular-core-forms-date-range.mjs +145 -245
  106. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  107. package/fesm2022/sd-angular-core-forms-date.mjs +137 -273
  108. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  109. package/fesm2022/sd-angular-core-forms-datetime.mjs +136 -288
  110. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  111. package/fesm2022/sd-angular-core-forms-input-number.mjs +174 -337
  112. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  113. package/fesm2022/sd-angular-core-forms-input.mjs +130 -285
  114. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  115. package/fesm2022/sd-angular-core-forms-radio.mjs +3 -2
  116. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  117. package/fesm2022/sd-angular-core-forms-select.mjs +336 -421
  118. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  119. package/fesm2022/sd-angular-core-forms-textarea.mjs +121 -226
  120. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  121. package/fesm2022/sd-angular-core-modules-keycloak.mjs +126 -0
  122. package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -0
  123. package/fesm2022/sd-angular-core-modules-layout.mjs +440 -431
  124. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  125. package/fesm2022/sd-angular-core-modules.mjs +1 -1
  126. package/fesm2022/sd-angular-core-services-confirm.mjs +2 -2
  127. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  128. package/fesm2022/sd-angular-core-services-docx.mjs +173 -0
  129. package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -0
  130. package/fesm2022/sd-angular-core-services-notify.mjs +2 -2
  131. package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
  132. package/fesm2022/sd-angular-core-services.mjs +1 -0
  133. package/fesm2022/sd-angular-core-services.mjs.map +1 -1
  134. package/fesm2022/sd-angular-core-utilities-extensions.mjs +10 -6
  135. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  136. package/fesm2022/sd-angular-core-utilities-models.mjs +15 -1
  137. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  138. package/forms/autocomplete/src/autocomplete.component.d.ts +51 -56
  139. package/forms/date/src/date.component.d.ts +41 -45
  140. package/forms/date-range/src/date-range.component.d.ts +28 -33
  141. package/forms/datetime/src/datetime.component.d.ts +41 -48
  142. package/forms/input/src/input.component.d.ts +46 -56
  143. package/forms/input-number/src/input-number.component.d.ts +47 -54
  144. package/forms/select/src/select.component.d.ts +58 -58
  145. package/forms/textarea/src/textarea.component.d.ts +34 -41
  146. package/modules/index.d.ts +1 -1
  147. package/modules/keycloak/index.d.ts +4 -0
  148. package/modules/keycloak/keycloak.configuration.d.ts +11 -0
  149. package/modules/keycloak/keycloak.interceptor.d.ts +2 -0
  150. package/modules/keycloak/keycloak.module.d.ts +18 -0
  151. package/modules/keycloak/keycloak.service.d.ts +14 -0
  152. package/modules/layout/components/layout-main/layout-main.component.d.ts +7 -12
  153. package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +22 -29
  154. package/modules/layout/components/sidebar-v1/components/user/user.component.d.ts +11 -17
  155. package/modules/layout/components/sidebar-v1/main.component.d.ts +14 -14
  156. package/modules/layout/configurations/layout.configuration.d.ts +46 -3
  157. package/modules/layout/modules/forbidden/pages/root/root.component.d.ts +3 -8
  158. package/modules/layout/modules/home/components/home-page/home-page.component.d.ts +2 -5
  159. package/modules/layout/modules/not-found/pages/root/root.component.d.ts +3 -8
  160. package/modules/layout/services/index.d.ts +1 -0
  161. package/modules/layout/services/layout.service.d.ts +10 -0
  162. package/modules/layout/services/menu/menu.model.d.ts +2 -0
  163. package/modules/layout/services/storage/storage.service.d.ts +0 -3
  164. package/package.json +91 -68
  165. package/services/confirm/src/lib/confirm.service.d.ts +1 -0
  166. package/services/docx/index.d.ts +1 -0
  167. package/services/docx/src/lib/docx.model.d.ts +9 -0
  168. package/services/docx/src/lib/docx.service.d.ts +13 -0
  169. package/services/docx/src/public-api.d.ts +2 -0
  170. package/services/index.d.ts +1 -0
  171. package/utilities/extensions/src/string.extension.d.ts +2 -0
  172. package/utilities/models/index.d.ts +3 -0
  173. package/utilities/models/src/filter.model.d.ts +14 -2
  174. package/utilities/models/src/icon.model.d.ts +2 -0
  175. package/utilities/models/src/nested-key-of.model.d.ts +5 -0
  176. package/utilities/models/src/pattern.model.d.ts +1 -1
  177. package/utilities/models/src/unwrap-signal.model.d.ts +6 -0
  178. package/components/document-builder/src/plugins/comment/comment.plugin.d.ts +0 -4
  179. package/components/document-builder/src/plugins/table-fit/table-fit.plugin.d.ts +0 -4
  180. package/fesm2022/sd-angular-core-modules-oidc.mjs +0 -127
  181. package/fesm2022/sd-angular-core-modules-oidc.mjs.map +0 -1
  182. package/modules/oidc/dynamic-sts.loader.d.ts +0 -11
  183. package/modules/oidc/index.d.ts +0 -2
  184. package/modules/oidc/oidc.configuration.d.ts +0 -11
  185. package/modules/oidc/oidc.module.d.ts +0 -14
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit, QueryList } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator';
3
3
  import { MatSort } from '@angular/material/sort';
4
4
  import { MatTable } from '@angular/material/table';
@@ -43,53 +43,51 @@ export declare class SdTable<T = unknown> extends SdBaseSecureComponent implemen
43
43
  private excelService;
44
44
  private notifyService;
45
45
  private gridFilterService;
46
- autoId?: string;
47
- set _autoId(val: string | undefined | null);
48
- table?: MatTable<any>;
49
- configComponent?: ConfigComponent;
50
- sdPopupExport?: SdPopupExport;
51
- scroll?: SdScrollDirective;
46
+ autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
47
+ autoId: import("@angular/core").Signal<string | undefined>;
48
+ option: import("@angular/core").InputSignal<SdTableOption<T>>;
49
+ table: import("@angular/core").Signal<MatTable<any> | undefined>;
50
+ configComponent: import("@angular/core").Signal<ConfigComponent | undefined>;
51
+ sdPopupExport: import("@angular/core").Signal<SdPopupExport | undefined>;
52
+ scroll: import("@angular/core").Signal<SdScrollDirective | undefined>;
53
+ quickAction: import("@angular/core").Signal<SdQuickAction | undefined>;
54
+ externalFilter: import("@angular/core").Signal<ExternalFilterComponent | undefined>;
55
+ paginator: import("@angular/core").Signal<MatPaginator | undefined>;
56
+ sort: import("@angular/core").Signal<MatSort | undefined>;
57
+ sdSubInformation: import("@angular/core").Signal<SdMaterialSubInformationDefDirective | undefined>;
58
+ sdCellDefs: import("@angular/core").Signal<readonly SdTabelCellDefDirective[]>;
59
+ sdFooterDefs: import("@angular/core").Signal<readonly SdMaterialFooterDefDirective[]>;
60
+ sdFilterDefs: import("@angular/core").Signal<readonly SdTableFilterDefDirective[]>;
61
+ cellDef: import("@angular/core").Signal<Record<string, SdTabelCellDefDirective>>;
62
+ footerDef: import("@angular/core").Signal<Record<string, SdMaterialFooterDefDirective>>;
63
+ hasFooter: import("@angular/core").Signal<boolean>;
64
+ tableOption: import("@angular/core").WritableSignal<SdTableOption<T> | undefined>;
65
+ configuration: import("@angular/core").WritableSignal<ConfiguredTableResult | undefined>;
66
+ items: import("@angular/core").WritableSignal<SdTableItem<T>[]>;
67
+ selectedTableItems: import("@angular/core").WritableSignal<SdTableItem<T>[]>;
68
+ total: import("@angular/core").WritableSignal<number | undefined>;
69
+ loading: import("@angular/core").WritableSignal<boolean>;
70
+ exporting: import("@angular/core").WritableSignal<boolean>;
71
+ isSelectAll: import("@angular/core").WritableSignal<boolean>;
72
+ exportTitle: import("@angular/core").WritableSignal<string>;
73
+ isFiltered: import("@angular/core").WritableSignal<boolean>;
74
+ requireFiltered: import("@angular/core").WritableSignal<boolean>;
52
75
  filterRegister: TableFilterRegister;
53
76
  key: string;
54
- quickAction?: SdQuickAction;
55
- externalFilter?: ExternalFilterComponent;
56
- tableOption: SdTableOption<T>;
57
- configuration?: ConfiguredTableResult;
58
- set option(option: SdTableOption);
59
- items: SdTableItem<T>[];
60
- selectedTableItems: SdTableItem<T>[];
61
- total?: number;
62
- loading: boolean;
63
- isHiddenPaginator: boolean;
64
- set paginator(paginator: MatPaginator);
65
- set sort(sort: MatSort);
66
- sdSubInformation?: SdMaterialSubInformationDefDirective;
67
- sdCellDefs: QueryList<SdTabelCellDefDirective>;
68
- cellDef: Record<string, SdTabelCellDefDirective>;
69
- sdFooterDefs: QueryList<SdMaterialFooterDefDirective>;
70
- footerDef: Record<string, SdMaterialFooterDefDirective>;
71
- hasFooter: boolean;
72
- sdFilterDefs: QueryList<SdTableFilterDefDirective>;
73
- filterDefs: SdTableFilterDefDirective[];
74
77
  columnOperator: Record<string, SdOperator>;
75
78
  columnFilter?: Record<string, any>;
76
- exporting: boolean;
77
- isSelectAll: boolean;
78
- exportTitle: string;
79
79
  cacheValues: Record<string, any[]>;
80
80
  constructor(ref: ChangeDetectorRef, formatNumberPipe: SdFormatNumberPipe, tableConfiguration: ISdTableConfiguration | undefined, configService: ConfigService, excelService: SdExcelService, notifyService: SdNotifyService, gridFilterService: SdTableFilterService);
81
81
  ngOnInit(): void;
82
82
  ngAfterViewInit(): void;
83
83
  ngOnDestroy(): void;
84
- isFiltered: boolean;
85
- requireFiltered: boolean;
86
84
  reload: (force?: boolean, scrollTop?: boolean) => Promise<void>;
87
85
  onExport: (args?: {
88
86
  columns?: SdExcelColumn[];
89
87
  isCSV?: boolean;
90
88
  }) => Promise<void>;
91
- exportExcel: () => void;
92
- exportCSV: () => void;
89
+ exportExcel: () => Promise<void>;
90
+ exportCSV: () => Promise<void>;
93
91
  exportCustom: () => void;
94
92
  onFilterChange: () => void;
95
93
  onExpand: (rowData: SdTableItem<T>) => Promise<void>;
@@ -107,5 +105,5 @@ export declare class SdTable<T = unknown> extends SdBaseSecureComponent implemen
107
105
  onOperatorChange: (column: SdTableColumn, operator: SdOperator) => void;
108
106
  trackBy: (index: number, item: SdTableItem) => string;
109
107
  static ɵfac: i0.ɵɵFactoryDeclaration<SdTable<any>, [null, null, { optional: true; }, null, null, null, null]>;
110
- static ɵcmp: i0.ɵɵComponentDeclaration<SdTable<any>, "sd-table", never, { "_autoId": { "alias": "autoId"; "required": false; }; "option": { "alias": "option"; "required": false; }; }, {}, ["sdSubInformation", "sdCellDefs", "sdFooterDefs", "sdFilterDefs"], ["[sdTableTop]"], true, never>;
108
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdTable<any>, "sd-table", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "option": { "alias": "option"; "required": true; "isSignal": true; }; }, {}, ["sdSubInformation", "sdCellDefs", "sdFooterDefs", "sdFilterDefs"], ["[sdTableTop]"], true, never>;
111
109
  }
@@ -0,0 +1 @@
1
+ export * from './src/view.component';
@@ -0,0 +1,16 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SdView {
4
+ label: import("@angular/core").InputSignal<string | null | undefined>;
5
+ value: import("@angular/core").InputSignal<any>;
6
+ display: import("@angular/core").InputSignal<string | null | undefined>;
7
+ hyperlink: import("@angular/core").InputSignal<string | null | undefined>;
8
+ labelTemplate: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
9
+ valueTemplate: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
10
+ contentLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
11
+ contentValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
12
+ activeLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
13
+ activeValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdView, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdView, "sd-view", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": true; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "labelTemplate": { "alias": "labelTemplate"; "required": false; "isSignal": true; }; "valueTemplate": { "alias": "valueTemplate"; "required": false; "isSignal": true; }; }, {}, ["contentLabelTemplate", "contentValueTemplate"], never, true, never>;
16
+ }
@@ -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';
@@ -2,3 +2,4 @@ export * from './src/sd-scroll.directive';
2
2
  export * from './src/sd-desktop.directive';
3
3
  export * from './src/sd-mobile.directive';
4
4
  export * from './src/sd-hover-copy.directive';
5
+ export * from './src/sd-href.directive';
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SdHrefDirective {
3
+ #private;
4
+ url: string;
5
+ get href(): string;
6
+ onClick(event: Event): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdHrefDirective, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdHrefDirective, "a[sdHref]", never, { "url": { "alias": "sdHref"; "required": false; }; }, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,90 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
4
+
5
+ class SdAvatar {
6
+ src;
7
+ size = 32;
8
+ name = '';
9
+ isUrl = false;
10
+ initials = '';
11
+ bgColor = '#ccc';
12
+ ngOnInit() {
13
+ this.#init();
14
+ }
15
+ #init = () => {
16
+ // Kiểm tra xem src có phải là URL (http, https, data:image, hoặc path /)
17
+ const urlPattern = /^(http|https|data:image|\/)/;
18
+ this.isUrl = urlPattern.test(this.src || '');
19
+ if (this.name || !this.isUrl) {
20
+ this.bgColor = this.#generateColor(this.name || this.src || '');
21
+ this.initials = this.#getInitials(this.name || this.src || '');
22
+ }
23
+ else {
24
+ this.bgColor = '#bdc3c7';
25
+ this.initials = '?';
26
+ }
27
+ };
28
+ handleError() {
29
+ this.src = undefined; // Nếu ảnh lỗi, chuyển sang hiển thị initials
30
+ this.#init();
31
+ }
32
+ #getInitials = (name) => {
33
+ return (name
34
+ .trim()
35
+ .split(' ')
36
+ .filter(Boolean)
37
+ .map(n => n[0])
38
+ .join('')
39
+ .toUpperCase()
40
+ .substring(0, 2) || '');
41
+ };
42
+ #generateColor = (name) => {
43
+ const colors = [
44
+ '#1abc9c',
45
+ '#2ecc71',
46
+ '#3498db',
47
+ '#9b59b6',
48
+ '#34495e',
49
+ '#16a085',
50
+ '#27ae60',
51
+ '#2980b9',
52
+ '#8e44ad',
53
+ '#2c3e50',
54
+ '#f1c40f',
55
+ '#e67e22',
56
+ '#e74c3c',
57
+ '#95a5a6',
58
+ '#f39c12',
59
+ '#d35400',
60
+ '#c0392b',
61
+ '#bdc3c7',
62
+ '#7f8c8d',
63
+ ];
64
+ let hash = 0;
65
+ for (let i = 0; i < name.length; i++) {
66
+ hash = name.charCodeAt(i) + ((hash << 5) - hash);
67
+ }
68
+ return colors[Math.abs(hash) % colors.length];
69
+ };
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SdAvatar, isStandalone: true, selector: "sd-avatar", inputs: { src: "src", size: "size", name: "name" }, ngImport: i0, template: "<div class=\"sd-avatar\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.line-height.px]=\"size\" [style.backgroundColor]=\"bgColor\">\r\n @if (isUrl) {\r\n <img [src]=\"src\" (error)=\"handleError()\" alt=\"avatar\" />\r\n } @else {\r\n <span class=\"sd-avatar-text\" [style.fontSize.px]=\"size / 2.5\">\r\n {{ initials }}\r\n </span>\r\n }\r\n</div>\r\n", styles: [".sd-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;color:#fff;font-weight:500;-webkit-user-select:none;user-select:none;background-size:cover}.sd-avatar img{width:100%;height:100%;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdAvatar, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'sd-avatar', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sd-avatar\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.line-height.px]=\"size\" [style.backgroundColor]=\"bgColor\">\r\n @if (isUrl) {\r\n <img [src]=\"src\" (error)=\"handleError()\" alt=\"avatar\" />\r\n } @else {\r\n <span class=\"sd-avatar-text\" [style.fontSize.px]=\"size / 2.5\">\r\n {{ initials }}\r\n </span>\r\n }\r\n</div>\r\n", styles: [".sd-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;color:#fff;font-weight:500;-webkit-user-select:none;user-select:none;background-size:cover}.sd-avatar img{width:100%;height:100%;object-fit:cover}\n"] }]
76
+ }], propDecorators: { src: [{
77
+ type: Input,
78
+ args: [{ required: true }]
79
+ }], size: [{
80
+ type: Input
81
+ }], name: [{
82
+ type: Input
83
+ }] } });
84
+
85
+ /**
86
+ * Generated bundle index. Do not edit.
87
+ */
88
+
89
+ export { SdAvatar };
90
+ //# sourceMappingURL=sd-angular-core-components-avatar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-angular-core-components-avatar.mjs","sources":["../../../projects/sd-angular/components/avatar/src/avatar.component.ts","../../../projects/sd-angular/components/avatar/src/avatar.component.html","../../../projects/sd-angular/components/avatar/sd-angular-core-components-avatar.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sd-avatar',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdAvatar implements OnInit {\r\n @Input({ required: true }) src: string | undefined | null;\r\n @Input() size: number = 32;\r\n @Input() name: string = '';\r\n\r\n isUrl: boolean = false;\r\n initials: string = '';\r\n bgColor: string = '#ccc';\r\n\r\n ngOnInit(): void {\r\n this.#init();\r\n }\r\n\r\n #init = () => {\r\n // Kiểm tra xem src có phải là URL (http, https, data:image, hoặc path /)\r\n const urlPattern = /^(http|https|data:image|\\/)/;\r\n this.isUrl = urlPattern.test(this.src || '');\r\n if (this.name || !this.isUrl) {\r\n this.bgColor = this.#generateColor(this.name || this.src || '');\r\n this.initials = this.#getInitials(this.name || this.src || '');\r\n } else {\r\n this.bgColor = '#bdc3c7';\r\n this.initials = '?';\r\n }\r\n };\r\n\r\n handleError() {\r\n this.src = undefined; // Nếu ảnh lỗi, chuyển sang hiển thị initials\r\n this.#init();\r\n }\r\n\r\n #getInitials = (name: string): string => {\r\n return (\r\n name\r\n .trim()\r\n .split(' ')\r\n .filter(Boolean)\r\n .map(n => n[0])\r\n .join('')\r\n .toUpperCase()\r\n .substring(0, 2) || ''\r\n );\r\n };\r\n\r\n #generateColor = (name: string): string => {\r\n const colors = [\r\n '#1abc9c',\r\n '#2ecc71',\r\n '#3498db',\r\n '#9b59b6',\r\n '#34495e',\r\n '#16a085',\r\n '#27ae60',\r\n '#2980b9',\r\n '#8e44ad',\r\n '#2c3e50',\r\n '#f1c40f',\r\n '#e67e22',\r\n '#e74c3c',\r\n '#95a5a6',\r\n '#f39c12',\r\n '#d35400',\r\n '#c0392b',\r\n '#bdc3c7',\r\n '#7f8c8d',\r\n ];\r\n let hash = 0;\r\n for (let i = 0; i < name.length; i++) {\r\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\r\n }\r\n return colors[Math.abs(hash) % colors.length];\r\n };\r\n}\r\n","<div class=\"sd-avatar\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.line-height.px]=\"size\" [style.backgroundColor]=\"bgColor\">\r\n @if (isUrl) {\r\n <img [src]=\"src\" (error)=\"handleError()\" alt=\"avatar\" />\r\n } @else {\r\n <span class=\"sd-avatar-text\" [style.fontSize.px]=\"size / 2.5\">\r\n {{ initials }}\r\n </span>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAWa,QAAQ,CAAA;AACQ,IAAA,GAAG;IACrB,IAAI,GAAW,EAAE;IACjB,IAAI,GAAW,EAAE;IAE1B,KAAK,GAAY,KAAK;IACtB,QAAQ,GAAW,EAAE;IACrB,OAAO,GAAW,MAAM;IAExB,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,EAAE;IACd;IAEA,KAAK,GAAG,MAAK;;QAEX,MAAM,UAAU,GAAG,6BAA6B;AAChD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AAC/D,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;QAChE;aAAO;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;QACrB;AACF,IAAA,CAAC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE;IACd;AAEA,IAAA,YAAY,GAAG,CAAC,IAAY,KAAY;AACtC,QAAA,QACE;AACG,aAAA,IAAI;aACJ,KAAK,CAAC,GAAG;aACT,MAAM,CAAC,OAAO;aACd,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,IAAI,CAAC,EAAE;AACP,aAAA,WAAW;aACX,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AAE5B,IAAA,CAAC;AAED,IAAA,cAAc,GAAG,CAAC,IAAY,KAAY;AACxC,QAAA,MAAM,MAAM,GAAG;YACb,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACV;QACD,IAAI,IAAI,GAAG,CAAC;AACZ,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;QAClD;AACA,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAC/C,IAAA,CAAC;wGAvEU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXrB,kYASA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKX,QAAQ,EAAA,UAAA,EAAA,CAAA;kBARpB,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kYAAA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA;8BAGpB,GAAG,EAAA,CAAA;sBAA7B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;AEdH;;AAEG;;;;"}
@@ -1,108 +1,118 @@
1
+ import * as i1 from '@angular/common';
1
2
  import { CommonModule } from '@angular/common';
2
3
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import { input, booleanAttribute, EventEmitter, computed, Output, ChangeDetectionStrategy, Component } from '@angular/core';
4
5
  import { MatIconModule } from '@angular/material/icon';
5
- import * as i1 from '@angular/material/tooltip';
6
+ import * as i2 from '@angular/material/tooltip';
6
7
  import { MatTooltipModule } from '@angular/material/tooltip';
7
8
 
8
9
  /* eslint-disable @angular-eslint/no-input-rename */
9
10
  class SdBadge {
10
11
  defaultIcon = 'fiber_manual_record';
11
- type = 'icon';
12
- set _type(type) {
13
- this.type = type || 'icon';
14
- }
15
- color = 'secondary';
16
- set _color(color) {
17
- this.color = color || 'secondary';
18
- }
19
- // Hỗ trợ: <sd-button secondary> hoặc <sd-button [secondary]="condition">
20
- set primary(value) {
21
- if (value === '' || value) {
22
- this.color = 'primary';
23
- }
24
- }
25
- set secondary(value) {
26
- // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true
27
- if (value === '' || value) {
28
- this.color = 'secondary';
29
- }
30
- }
31
- set success(value) {
32
- // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true
33
- if (value === '' || value) {
34
- this.color = 'success';
35
- }
36
- }
37
- set info(value) {
38
- // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true
39
- if (value === '' || value) {
40
- this.color = 'info';
41
- }
42
- }
43
- set warning(value) {
44
- // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true
45
- if (value === '' || value) {
46
- this.color = 'warning';
47
- }
48
- }
49
- set error(value) {
50
- // Nếu value là '' (viết tắt <sd-button secondary>) hoặc true
51
- if (value === '' || value) {
52
- this.color = 'error';
53
- }
54
- }
55
- fontSet = 'material-icons';
56
- set _fontSet(fontSet) {
57
- this.fontSet = fontSet || 'material-icons';
58
- }
59
- title;
60
- description;
61
- tooltip;
62
- icon;
63
- size = 'sm';
64
- sdClick = new EventEmitter();
12
+ // ==========================================
13
+ // 1. SIGNAL INPUTS
14
+ // ==========================================
15
+ type = input('icon', {
16
+ transform: (value) => value || 'icon'
17
+ });
18
+ color = input('secondary', {
19
+ transform: (value) => value || 'secondary'
20
+ });
21
+ primary = input(false, { transform: booleanAttribute });
22
+ secondary = input(false, { transform: booleanAttribute });
23
+ success = input(false, { transform: booleanAttribute });
24
+ info = input(false, { transform: booleanAttribute });
25
+ warning = input(false, { transform: booleanAttribute });
26
+ error = input(false, { transform: booleanAttribute });
27
+ fontSet = input('material-icons', {
28
+ transform: (value) => value || 'material-icons'
29
+ });
30
+ title = input();
31
+ description = input();
32
+ tooltip = input();
33
+ icon = input();
34
+ size = input('sm', {
35
+ transform: (value) => value || 'sm'
36
+ });
37
+ // ==========================================
38
+ // 2. OUTPUT
39
+ // ==========================================
40
+ click = new EventEmitter();
65
41
  onClick = (event) => {
66
- this.sdClick.emit(event);
42
+ event.stopPropagation();
43
+ this.click.emit(event);
67
44
  };
45
+ // ==========================================
46
+ // 3. COMPUTED STATE
47
+ // ==========================================
48
+ effectiveColor = computed(() => {
49
+ if (this.primary())
50
+ return 'primary';
51
+ if (this.secondary())
52
+ return 'secondary';
53
+ if (this.success())
54
+ return 'success';
55
+ if (this.info())
56
+ return 'info';
57
+ if (this.warning())
58
+ return 'warning';
59
+ if (this.error())
60
+ return 'error';
61
+ return this.color();
62
+ });
63
+ baseColorClasses = computed(() => {
64
+ const c = this.effectiveColor();
65
+ return {
66
+ 'c-primary': c === 'primary',
67
+ 'c-secondary': c === 'secondary',
68
+ 'c-info': c === 'info',
69
+ 'c-success': c === 'success',
70
+ 'c-warning': c === 'warning',
71
+ 'c-error': c === 'error',
72
+ };
73
+ });
74
+ iconColorClasses = computed(() => {
75
+ const c = this.effectiveColor();
76
+ return {
77
+ 'c-primary': c === 'primary',
78
+ 'c-black400': c === 'secondary',
79
+ 'c-info': c === 'info',
80
+ 'c-success': c === 'success',
81
+ 'c-warning': c === 'warning',
82
+ 'c-error': c === 'error',
83
+ };
84
+ });
85
+ iconSizeAndFontClasses = computed(() => {
86
+ const s = this.size();
87
+ const f = this.fontSet();
88
+ return {
89
+ 'c-xs': s === 'xs',
90
+ 'c-sm': s === 'sm',
91
+ 'c-md': s === 'md',
92
+ 'c-lg': s === 'lg',
93
+ 'material-icons': f === 'material-icons',
94
+ 'material-icons-outlined': f === 'material-icons-outlined',
95
+ 'material-icons-round': f === 'material-icons-round',
96
+ 'material-icons-sharp': f === 'material-icons-sharp'
97
+ };
98
+ });
99
+ // GỘP CLASS CHO BADGE TYPE = 'TAG'
100
+ tagIconCombinedClasses = computed(() => ({
101
+ ...this.iconSizeAndFontClasses(),
102
+ ...this.baseColorClasses()
103
+ }));
104
+ // GỘP CLASS CHO BADGE TYPE = 'ICON'
105
+ iconCombinedClasses = computed(() => ({
106
+ ...this.iconSizeAndFontClasses(),
107
+ ...this.iconColorClasses()
108
+ }));
68
109
  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 });
110
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SdBadge, isStandalone: true, selector: "sd-badge", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, primary: { classPropertyName: "primary", publicName: "primary", isSignal: true, isRequired: false, transformFunction: null }, secondary: { classPropertyName: "secondary", publicName: "secondary", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, warning: { classPropertyName: "warning", publicName: "warning", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, fontSet: { classPropertyName: "fontSet", publicName: "fontSet", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: "@let badgeType = type();\r\n@let tt = tooltip();\r\n@let titleText = title();\r\n@let descText = description();\r\n@let iconName = icon() || defaultIcon;\r\n@let isPointer = click.observed;\r\n\r\n@if (badgeType === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tt || ''\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [ngClass]=\"baseColorClasses()\"\r\n [class.pointer]=\"isPointer\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ titleText }}\r\n </div>\r\n} @else if (badgeType === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tt || ''\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [ngClass]=\"baseColorClasses()\"\r\n [class.pointer]=\"isPointer\"\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 class=\"c-material-icon mr-4\" [ngClass]=\"tagIconCombinedClasses()\">\r\n {{ iconName }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ titleText }}</span>\r\n @if (descText) {\r\n <span class=\"T12R c-badge-description\">{{ descText }}</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]=\"tt || ''\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"badgeType === 'icon'\"\r\n [class.pointer]=\"isPointer\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span class=\"c-material-icon mr-4\" [ngClass]=\"iconCombinedClasses()\"> \r\n {{ iconName }} \r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ titleText }}</span>\r\n @if (descText) {\r\n <span class=\"T10R c-badge-description\">{{ descText }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\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: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
111
  }
71
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdBadge, decorators: [{
72
113
  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"] }]
74
- }], propDecorators: { _type: [{
75
- type: Input,
76
- args: ['type']
77
- }], _color: [{
78
- type: Input,
79
- args: ['color']
80
- }], primary: [{
81
- type: Input
82
- }], secondary: [{
83
- type: Input
84
- }], success: [{
85
- type: Input
86
- }], info: [{
87
- type: Input
88
- }], warning: [{
89
- type: Input
90
- }], error: [{
91
- type: Input
92
- }], _fontSet: [{
93
- type: Input,
94
- args: ['fontSet']
95
- }], title: [{
96
- type: Input
97
- }], description: [{
98
- type: Input
99
- }], tooltip: [{
100
- type: Input
101
- }], icon: [{
102
- type: Input
103
- }], size: [{
104
- type: Input
105
- }], sdClick: [{
114
+ args: [{ selector: 'sd-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, MatTooltipModule], template: "@let badgeType = type();\r\n@let tt = tooltip();\r\n@let titleText = title();\r\n@let descText = description();\r\n@let iconName = icon() || defaultIcon;\r\n@let isPointer = click.observed;\r\n\r\n@if (badgeType === 'round') {\r\n <div\r\n class=\"c-badge\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tt || ''\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [ngClass]=\"baseColorClasses()\"\r\n [class.pointer]=\"isPointer\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n {{ titleText }}\r\n </div>\r\n} @else if (badgeType === 'tag') {\r\n <div\r\n class=\"c-badge c-badge--tag\"\r\n matTooltipPosition=\"above\"\r\n [matTooltip]=\"tt || ''\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [ngClass]=\"baseColorClasses()\"\r\n [class.pointer]=\"isPointer\"\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 class=\"c-material-icon mr-4\" [ngClass]=\"tagIconCombinedClasses()\">\r\n {{ iconName }}\r\n </span>\r\n }\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <span class=\"T14R c-badge-title\">{{ titleText }}</span>\r\n @if (descText) {\r\n <span class=\"T12R c-badge-description\">{{ descText }}</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]=\"tt || ''\"\r\n matTooltipClass=\"sd-multiline-tooltip\"\r\n [class.c-badge-icon]=\"badgeType === 'icon'\"\r\n [class.pointer]=\"isPointer\"\r\n (click)=\"onClick($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-icon d-flex align-items-center\">\r\n <span class=\"c-material-icon mr-4\" [ngClass]=\"iconCombinedClasses()\"> \r\n {{ iconName }} \r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"T14R c-badge-title\">{{ titleText }}</span>\r\n @if (descText) {\r\n <span class=\"T10R c-badge-description\">{{ descText }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\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"] }]
115
+ }], propDecorators: { click: [{
106
116
  type: Output
107
117
  }] } });
108
118