@sd-angular/core 19.0.0-beta.91 → 19.0.0-beta.92

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.
@@ -39,7 +39,6 @@ export declare class SdBadge {
39
39
  'c-error': boolean;
40
40
  }>;
41
41
  iconSizeAndFontClasses: import("@angular/core").Signal<{
42
- 'c-xs': boolean;
43
42
  'c-sm': boolean;
44
43
  'c-md': boolean;
45
44
  'c-lg': boolean;
@@ -55,7 +54,6 @@ export declare class SdBadge {
55
54
  'c-success': boolean;
56
55
  'c-warning': boolean;
57
56
  'c-error': boolean;
58
- 'c-xs': boolean;
59
57
  'c-sm': boolean;
60
58
  'c-md': boolean;
61
59
  'c-lg': boolean;
@@ -71,7 +69,6 @@ export declare class SdBadge {
71
69
  'c-success': boolean;
72
70
  'c-warning': boolean;
73
71
  'c-error': boolean;
74
- 'c-xs': boolean;
75
72
  'c-sm': boolean;
76
73
  'c-md': boolean;
77
74
  'c-lg': boolean;
@@ -2,3 +2,4 @@ export * from './sd-table-column-filter-def.directive';
2
2
  export * from './sticky-shadow.directive';
3
3
  export * from './sd-table-title-def.directive';
4
4
  export * from './sd-table-cell-def.directive';
5
+ export * from './sd-column-resize.directive';
@@ -0,0 +1,13 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SdColumnResizeDirective implements OnDestroy {
4
+ #private;
5
+ sdColumnResize: import("@angular/core").InputSignal<boolean>;
6
+ minWidth: import("@angular/core").InputSignal<string | undefined>;
7
+ maxWidth: import("@angular/core").InputSignal<string | undefined>;
8
+ resizeEnd: import("@angular/core").OutputEmitterRef<string>;
9
+ constructor();
10
+ ngOnDestroy(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdColumnResizeDirective, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdColumnResizeDirective, "[sdColumnResize]", never, { "sdColumnResize": { "alias": "sdColumnResize"; "required": true; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, { "resizeEnd": "resizeEnd"; }, never, never, true, never>;
13
+ }
@@ -1,6 +1,7 @@
1
1
  import { SdTableColumn } from './table-column.model';
2
2
  export interface TableOptionConfig {
3
3
  visible?: boolean;
4
+ resizable?: boolean;
4
5
  }
5
6
  export interface OriginColumn {
6
7
  field: string;
@@ -7,10 +7,15 @@ export declare class ConfigService {
7
7
  #private;
8
8
  private storageService;
9
9
  tableConfiguration: ISdTableConfiguration;
10
+ widthChange$: import("rxjs").Observable<{
11
+ field: string;
12
+ width: string;
13
+ }>;
10
14
  constructor(storageService: SdStorageService, tableConfiguration: ISdTableConfiguration);
11
15
  loadConfiguredTable: (option: SdTableOption) => ConfiguredTable;
12
16
  loadConfigurationResult: (option: SdTableOption, configuration: ConfiguredTable) => ConfiguredTableResult;
13
17
  init: (tableOption: SdTableOption) => SdStorage<ConfiguredTable>;
18
+ persistColumnWidth: (field: string, width: string) => void;
14
19
  static ɵfac: i0.ɵɵFactoryDeclaration<ConfigService, [null, { optional: true; }]>;
15
20
  static ɵprov: i0.ɵɵInjectableDeclaration<ConfigService>;
16
21
  }
@@ -94,6 +94,7 @@ export declare class SdTable<T = unknown> extends SdBaseSecureComponent implemen
94
94
  get dataItems(): T[];
95
95
  get selectedItems(): T[];
96
96
  detectChanges: () => void;
97
+ onColumnResize: (field: string, width: string) => void;
97
98
  onOperatorChange: (column: SdTableColumn, operator: SdOperator) => void;
98
99
  trackBy: (index: number, item: SdTableItem) => string;
99
100
  isReorderDisabled(item: SdTableItem<T>): boolean;
@@ -86,7 +86,6 @@ class SdBadge {
86
86
  const s = this.size();
87
87
  const f = this.fontSet();
88
88
  return {
89
- 'c-xs': s === 'xs',
90
89
  'c-sm': s === 'sm',
91
90
  'c-md': s === 'md',
92
91
  'c-lg': s === 'lg',
@@ -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, Output, booleanAttribute, computed, input } 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\nimport { MaterialIconFontSet, DefaultMaterialIconFontSet } from '@sd-angular/core/utilities/models';\r\n\r\n// Export các Type để dùng chung\r\nexport type SdBadgeType = 'tag' | 'round' | 'icon';\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 // ==========================================\r\n // 1. SIGNAL INPUTS\r\n // ==========================================\r\n type = input<SdBadgeType, SdBadgeType | undefined | null>('icon', {\r\n transform: value => value || 'icon',\r\n });\r\n\r\n color = input<SdColor, SdColor | undefined | null>('secondary', {\r\n transform: value => value || 'secondary',\r\n });\r\n\r\n primary = input(false, { transform: booleanAttribute });\r\n secondary = input(false, { transform: booleanAttribute });\r\n success = input(false, { transform: booleanAttribute });\r\n info = input(false, { transform: booleanAttribute });\r\n warning = input(false, { transform: booleanAttribute });\r\n error = input(false, { transform: booleanAttribute });\r\n\r\n fontSet = input<MaterialIconFontSet, MaterialIconFontSet | undefined | null>('material-icons', {\r\n transform: value => value || 'material-icons',\r\n });\r\n\r\n title = input<string | number | undefined | null>();\r\n description = input<string | undefined | null>();\r\n tooltip = input<string | undefined | null>();\r\n icon = input<string | undefined | null>();\r\n\r\n size = input<SdSize, SdSize | undefined | null>('sm', {\r\n transform: value => value || 'sm',\r\n });\r\n\r\n // ==========================================\r\n // 2. OUTPUT\r\n // ==========================================\r\n @Output() click = new EventEmitter<Event>();\r\n\r\n onClick = (event: Event) => {\r\n event.stopPropagation();\r\n this.click.emit(event);\r\n };\r\n\r\n // ==========================================\r\n // 3. COMPUTED STATE\r\n // ==========================================\r\n\r\n effectiveColor = computed(() => {\r\n if (this.primary()) return 'primary';\r\n if (this.secondary()) return 'secondary';\r\n if (this.success()) return 'success';\r\n if (this.info()) return 'info';\r\n if (this.warning()) return 'warning';\r\n if (this.error()) return 'error';\r\n return this.color();\r\n });\r\n\r\n baseColorClasses = computed(() => {\r\n const c = this.effectiveColor();\r\n return {\r\n 'c-primary': c === 'primary',\r\n 'c-secondary': c === 'secondary',\r\n 'c-info': c === 'info',\r\n 'c-success': c === 'success',\r\n 'c-warning': c === 'warning',\r\n 'c-error': c === 'error',\r\n };\r\n });\r\n\r\n iconColorClasses = computed(() => {\r\n const c = this.effectiveColor();\r\n return {\r\n 'c-primary': c === 'primary',\r\n 'c-black400': c === 'secondary',\r\n 'c-info': c === 'info',\r\n 'c-success': c === 'success',\r\n 'c-warning': c === 'warning',\r\n 'c-error': c === 'error',\r\n };\r\n });\r\n\r\n iconSizeAndFontClasses = computed(() => {\r\n const s = this.size();\r\n const f = this.fontSet();\r\n return {\r\n 'c-xs': s === 'xs',\r\n 'c-sm': s === 'sm',\r\n 'c-md': s === 'md',\r\n 'c-lg': s === 'lg',\r\n 'material-icons': f === 'material-icons',\r\n 'material-icons-outlined': f === 'material-icons-outlined',\r\n 'material-icons-round': f === 'material-icons-round',\r\n 'material-icons-sharp': f === 'material-icons-sharp',\r\n };\r\n });\r\n\r\n // GỘP CLASS CHO BADGE TYPE = 'TAG'\r\n tagIconCombinedClasses = computed(() => ({\r\n ...this.iconSizeAndFontClasses(),\r\n ...this.baseColorClasses(),\r\n }));\r\n\r\n // GỘP CLASS CHO BADGE TYPE = 'ICON'\r\n iconCombinedClasses = computed(() => ({\r\n ...this.iconSizeAndFontClasses(),\r\n ...this.iconColorClasses(),\r\n }));\r\n}\r\n","@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}\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, Output, booleanAttribute, computed, input } 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\nimport { MaterialIconFontSet, DefaultMaterialIconFontSet } from '@sd-angular/core/utilities/models';\r\n\r\n// Export các Type để dùng chung\r\nexport type SdBadgeType = 'tag' | 'round' | 'icon';\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 // ==========================================\r\n // 1. SIGNAL INPUTS\r\n // ==========================================\r\n type = input<SdBadgeType, SdBadgeType | undefined | null>('icon', {\r\n transform: value => value || 'icon',\r\n });\r\n\r\n color = input<SdColor, SdColor | undefined | null>('secondary', {\r\n transform: value => value || 'secondary',\r\n });\r\n\r\n primary = input(false, { transform: booleanAttribute });\r\n secondary = input(false, { transform: booleanAttribute });\r\n success = input(false, { transform: booleanAttribute });\r\n info = input(false, { transform: booleanAttribute });\r\n warning = input(false, { transform: booleanAttribute });\r\n error = input(false, { transform: booleanAttribute });\r\n\r\n fontSet = input<MaterialIconFontSet, MaterialIconFontSet | undefined | null>('material-icons', {\r\n transform: value => value || 'material-icons',\r\n });\r\n\r\n title = input<string | number | undefined | null>();\r\n description = input<string | undefined | null>();\r\n tooltip = input<string | undefined | null>();\r\n icon = input<string | undefined | null>();\r\n\r\n size = input<SdSize, SdSize | undefined | null>('sm', {\r\n transform: value => value || 'sm',\r\n });\r\n\r\n // ==========================================\r\n // 2. OUTPUT\r\n // ==========================================\r\n @Output() click = new EventEmitter<Event>();\r\n\r\n onClick = (event: Event) => {\r\n event.stopPropagation();\r\n this.click.emit(event);\r\n };\r\n\r\n // ==========================================\r\n // 3. COMPUTED STATE\r\n // ==========================================\r\n\r\n effectiveColor = computed(() => {\r\n if (this.primary()) return 'primary';\r\n if (this.secondary()) return 'secondary';\r\n if (this.success()) return 'success';\r\n if (this.info()) return 'info';\r\n if (this.warning()) return 'warning';\r\n if (this.error()) return 'error';\r\n return this.color();\r\n });\r\n\r\n baseColorClasses = computed(() => {\r\n const c = this.effectiveColor();\r\n return {\r\n 'c-primary': c === 'primary',\r\n 'c-secondary': c === 'secondary',\r\n 'c-info': c === 'info',\r\n 'c-success': c === 'success',\r\n 'c-warning': c === 'warning',\r\n 'c-error': c === 'error',\r\n };\r\n });\r\n\r\n iconColorClasses = computed(() => {\r\n const c = this.effectiveColor();\r\n return {\r\n 'c-primary': c === 'primary',\r\n 'c-black400': c === 'secondary',\r\n 'c-info': c === 'info',\r\n 'c-success': c === 'success',\r\n 'c-warning': c === 'warning',\r\n 'c-error': c === 'error',\r\n };\r\n });\r\n\r\n iconSizeAndFontClasses = computed(() => {\r\n const s = this.size();\r\n const f = this.fontSet();\r\n return {\r\n 'c-sm': s === 'sm',\r\n 'c-md': s === 'md',\r\n 'c-lg': s === 'lg',\r\n 'material-icons': f === 'material-icons',\r\n 'material-icons-outlined': f === 'material-icons-outlined',\r\n 'material-icons-round': f === 'material-icons-round',\r\n 'material-icons-sharp': f === 'material-icons-sharp',\r\n };\r\n });\r\n\r\n // GỘP CLASS CHO BADGE TYPE = 'TAG'\r\n tagIconCombinedClasses = computed(() => ({\r\n ...this.iconSizeAndFontClasses(),\r\n ...this.baseColorClasses(),\r\n }));\r\n\r\n // GỘP CLASS CHO BADGE TYPE = 'ICON'\r\n iconCombinedClasses = computed(() => ({\r\n ...this.iconSizeAndFontClasses(),\r\n ...this.iconColorClasses(),\r\n }));\r\n}\r\n","@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}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}