@sdcorejs/angular 20.1.0 → 20.1.1
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.
- package/components/form-generic/index.d.ts +9 -1
- package/components/modal-resizable/index.d.ts +1 -1
- package/components/query-bar/index.d.ts +1 -0
- package/components/query-builder/index.d.ts +3 -3
- package/fesm2022/sdcorejs-angular-components-button.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-button.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs +102 -28
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-modal.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs +5 -2
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs +4 -3
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-section.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-section.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-table.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -757,6 +757,7 @@ interface ResizeState {
|
|
|
757
757
|
rowId: string;
|
|
758
758
|
columns: string;
|
|
759
759
|
}
|
|
760
|
+
type RowInsertionEdge = 'before' | 'after';
|
|
760
761
|
declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
761
762
|
#private;
|
|
762
763
|
readonly popupViewJSON: i0.Signal<SdModal | undefined>;
|
|
@@ -791,6 +792,9 @@ declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
|
791
792
|
* Trigger class `.fb-shell--dragging` để ẩn hover/actions/resize toàn diện, không phụ thuộc :has(). */
|
|
792
793
|
readonly isAnyDragging: i0.WritableSignal<boolean>;
|
|
793
794
|
readonly dragSource: i0.WritableSignal<"row" | "palette" | "canvas" | "resize" | undefined>;
|
|
795
|
+
readonly draggedPaletteItem: i0.WritableSignal<FormBuilderComponent | undefined>;
|
|
796
|
+
readonly rowInsertionEdge: i0.WritableSignal<RowInsertionEdge>;
|
|
797
|
+
readonly inlineDropTargetRow: i0.WritableSignal<DragDropRowItem | undefined>;
|
|
794
798
|
readonly resizeState: i0.WritableSignal<ResizeState | undefined>;
|
|
795
799
|
readonly isResizing: i0.Signal<boolean>;
|
|
796
800
|
expand: boolean;
|
|
@@ -800,7 +804,7 @@ declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
|
800
804
|
private lastDragPointer?;
|
|
801
805
|
/** Handler chung cho mọi cdkDragStarted — set signal global true. */
|
|
802
806
|
onAnyDragStarted: () => void;
|
|
803
|
-
onPaletteDragStarted: () => void;
|
|
807
|
+
onPaletteDragStarted: (item?: FormBuilderComponent) => void;
|
|
804
808
|
onRowDragStarted: () => void;
|
|
805
809
|
onAnyDragMoved: (event: CdkDragMove<any>) => void;
|
|
806
810
|
/** Handler chung cho mọi cdkDragEnded — set signal global false (dùng setTimeout 0
|
|
@@ -819,6 +823,7 @@ declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
|
819
823
|
placeholderSymbolFor: (item: FormBuilderComponent | SdFormGenericComponent | SdFormGenericGroup | DragDropRowItem | undefined) => string;
|
|
820
824
|
placeholderTitleFor: (item: FormBuilderComponent | SdFormGenericComponent | SdFormGenericGroup | DragDropRowItem | undefined) => string;
|
|
821
825
|
placeholderMetaFor: (item: FormBuilderComponent | SdFormGenericComponent | SdFormGenericGroup | DragDropRowItem | undefined) => string;
|
|
826
|
+
placeholderColumnsFor: (item: FormBuilderComponent | SdFormGenericComponent | SdFormGenericGroup | DragDropRowItem | undefined) => number;
|
|
822
827
|
/** True nếu component có expression điều kiện — drives the "conditional" status chip. */
|
|
823
828
|
hasConditional: (item: SdFormGenericComponent | SdFormGenericGroup) => boolean;
|
|
824
829
|
/** Map SdColor preset → 2 CSS var names cho header-bg và header-fg của group card. */
|
|
@@ -849,6 +854,9 @@ declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
|
849
854
|
onMouseover: (event: MouseEvent, rowItem: DragDropRowItem) => void;
|
|
850
855
|
isRowFull: (row: DragDropRowItem) => boolean;
|
|
851
856
|
isRowInlineDropLocked: (row: DragDropRowItem) => boolean;
|
|
857
|
+
shouldShowRowInsertionPlaceholder: (row: DragDropRowItem, edge?: RowInsertionEdge) => boolean;
|
|
858
|
+
onRowItemsDropEntered: (row: DragDropRowItem) => void;
|
|
859
|
+
onRowItemsDropExited: (row: DragDropRowItem) => void;
|
|
852
860
|
canEnterRowDropList: (drag: CdkDrag<FormBuilderComponent | SdFormGenericComponent | SdFormGenericGroup>, drop: CdkDropList<(SdFormGenericComponent | SdFormGenericGroup)[]>) => boolean;
|
|
853
861
|
onFocus: (event: FocusEvent) => void;
|
|
854
862
|
xuLyKeoCheo: (dragItem?: SdFormGenericComponent | SdFormGenericGroup) => void;
|
|
@@ -26,7 +26,7 @@ declare class SdModalResizable {
|
|
|
26
26
|
onFocus: () => void;
|
|
27
27
|
onBlur: () => void;
|
|
28
28
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdModalResizable, never>;
|
|
29
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdModalResizable, "sd-modal-resizable", never, { "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "editingChanged": "editingChanged"; }, never, ["[sdTitle]", "[sdBody]", "[
|
|
29
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdModalResizable, "sd-modal-resizable", never, { "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "editingChanged": "editingChanged"; }, never, ["[sdTitle]", "[sdBody]", "[sdFooterLeft]", "[sdFooterRight]"], true, never>;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export { SdModalResizable };
|
|
@@ -390,6 +390,7 @@ declare class SdQueryBar {
|
|
|
390
390
|
/** Swap the field of an existing chip — reset operator + value to the new field's defaults. */
|
|
391
391
|
changeFilterField(index: number, field: SdQueryField): void;
|
|
392
392
|
updateFilter(index: number, patch: Partial<Filter>): void;
|
|
393
|
+
updateFilterData(index: number, data: unknown): void;
|
|
393
394
|
removeFilter(index: number): void;
|
|
394
395
|
clearAll(): void;
|
|
395
396
|
setLogic(value: SdQueryLogic): void;
|
|
@@ -248,7 +248,7 @@ declare class SdQueryBuilder {
|
|
|
248
248
|
setBetweenFrom(rule: QbRule, raw: any): void;
|
|
249
249
|
/** Set the upper bound of a BETWEEN rule's `{ from, to }` value. */
|
|
250
250
|
setBetweenTo(rule: QbRule, raw: any): void;
|
|
251
|
-
setValueSource(rule: QbRule, source:
|
|
251
|
+
setValueSource(rule: QbRule, source: unknown): void;
|
|
252
252
|
setCompareField(rule: QbRule, key: any): void;
|
|
253
253
|
/** The field metadata for a rule's current `field` key (or undefined if unset). */
|
|
254
254
|
fieldOf(rule: QbRule): SdQueryBuilderField | undefined;
|
|
@@ -270,7 +270,7 @@ declare class SdQueryBuilder {
|
|
|
270
270
|
/** Current date-value mode of a rule, derived from its value (no separate state). */
|
|
271
271
|
dateMode(rule: QbRule): QbDateMode;
|
|
272
272
|
/** Switch a date/datetime rule's value mode, reseeding the value for the new mode. */
|
|
273
|
-
setDateMode(rule: QbRule, mode:
|
|
273
|
+
setDateMode(rule: QbRule, mode: unknown): void;
|
|
274
274
|
/** Read the offset amount of a relative rule (default 1). */
|
|
275
275
|
relativeAmount(rule: QbRule): number;
|
|
276
276
|
/** Set the offset amount (clamped to an integer >= 1). */
|
|
@@ -278,7 +278,7 @@ declare class SdQueryBuilder {
|
|
|
278
278
|
/** Read the `'unit:direction'` token of a relative rule (default `'day:previous'`). */
|
|
279
279
|
relativeUnitDirValue(rule: QbRule): string;
|
|
280
280
|
/** Set the offset unit + direction from a `'unit:direction'` token. */
|
|
281
|
-
setRelativeUnitDir(rule: QbRule, token:
|
|
281
|
+
setRelativeUnitDir(rule: QbRule, token: unknown): void;
|
|
282
282
|
/** Build a `data-autoid` for an inner control under this builder's `autoId` prefix. */
|
|
283
283
|
autoIdFor(suffix: string): string;
|
|
284
284
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdQueryBuilder, never>;
|
|
@@ -8,9 +8,9 @@ import * as i3 from '@angular/material/progress-spinner';
|
|
|
8
8
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
9
9
|
import * as i4 from '@angular/material/tooltip';
|
|
10
10
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
|
+
import { SdIcon } from '@sdcorejs/angular/modules/icon';
|
|
11
12
|
import { Subject, Subscription } from 'rxjs';
|
|
12
13
|
import { throttleTime, filter } from 'rxjs/operators';
|
|
13
|
-
import { SdIcon } from '@sdcorejs/angular/modules/icon';
|
|
14
14
|
|
|
15
15
|
class SdButton {
|
|
16
16
|
// ==========================================
|
|
@@ -94,16 +94,16 @@ class SdButton {
|
|
|
94
94
|
this.#subscription.unsubscribe();
|
|
95
95
|
}
|
|
96
96
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdButton, isStandalone: true, selector: "sd-button", inputs: { autoIdInput: { classPropertyName: "autoIdInput", publicName: "autoId", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", 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 }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: false, transformFunction: null }, htmlType: { classPropertyName: "htmlType", publicName: "htmlType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, host: { properties: { "class.sd-disabled": "disabled()", "class.sd-loading": "loading()", "class.sd-block": "block()", "attr.disabled": "disabled() ? \"true\" : null" } }, ngImport: i0, template: "@let _type = type();\n@let _loading = loading();\n@let _title = title();\n@let _prefixIcon = prefixIcon();\n@let _suffixIcon = suffixIcon();\n@let _fontSet = fontSet();\n@let _htmlType = htmlType();\n@let _disabled = disabled();\n@let _color = color();\n@let _autoId = autoId();\n@let _width = width();\n@let _tooltip = tooltip();\n\n@if (_type === 'fill') {\n <button\n mat-flat-button\n class=\"c-button c-fill\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'light') {\n <button\n mat-flat-button\n class=\"c-button c-light\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'outline') {\n <button\n mat-stroked-button\n class=\"c-button c-outline\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'text') {\n <button\n mat-button\n class=\"c-button c-text\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <div class=\"c-button-content-wrapper\">\n @if (_loading) {\n <mat-spinner mode=\"indeterminate\" diameter=\"18\" strokeWidth=\"2\" class=\"c-spinner\"></mat-spinner>\n } @else if (_prefixIcon) {\n <sd-icon [fontSet]=\"_fontSet\" class=\"c-icon-prefix\" [name]=\"_prefixIcon\"></sd-icon>\n }\n\n @if (_title) {\n <span class=\"c-title\" [class.ml-8]=\"_loading || _prefixIcon\" [class.mr-8]=\"_suffixIcon && !_loading\">\n {{ _title }}\n </span>\n }\n\n @if (_suffixIcon && !_loading) {\n <sd-icon [fontSet]=\"_fontSet\" class=\"c-icon-suffix\" [name]=\"_suffixIcon\"></sd-icon>\n }\n\n @if (!_title && !_prefixIcon && !_loading && _suffixIcon) {\n <sd-icon [fontSet]=\"_fontSet\" [name]=\"_suffixIcon\"></sd-icon>\n }\n </div>\n</ng-template>\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-primary-contrast{color:var(--sd-primary-contrast)!important}.bg-primary-contrast{background:var(--sd-primary-contrast)!important}.border-primary-contrast{border-color:var(--sd-primary-contrast)!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-secondary-contrast{color:var(--sd-secondary-contrast)!important}.bg-secondary-contrast{background:var(--sd-secondary-contrast)!important}.border-secondary-contrast{border-color:var(--sd-secondary-contrast)!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-info-contrast{color:var(--sd-info-contrast)!important}.bg-info-contrast{background:var(--sd-info-contrast)!important}.border-info-contrast{border-color:var(--sd-info-contrast)!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-success-contrast{color:var(--sd-success-contrast)!important}.bg-success-contrast{background:var(--sd-success-contrast)!important}.border-success-contrast{border-color:var(--sd-success-contrast)!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-warning-contrast{color:var(--sd-warning-contrast)!important}.bg-warning-contrast{background:var(--sd-warning-contrast)!important}.border-warning-contrast{border-color:var(--sd-warning-contrast)!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-error-contrast{color:var(--sd-error-contrast)!important}.bg-error-contrast{background:var(--sd-error-contrast)!important}.border-error-contrast{border-color:var(--sd-error-contrast)!important}.text-surface{color:var(--sd-surface)!important}.bg-surface{background:var(--sd-surface)!important}.border-surface{border-color:var(--sd-surface)!important}.text-surface-muted{color:var(--sd-surface-muted)!important}.bg-surface-muted{background:var(--sd-surface-muted)!important}.border-surface-muted{border-color:var(--sd-surface-muted)!important}.text-text{color:var(--sd-text)!important}.bg-text{background:var(--sd-text)!important}.border-text{border-color:var(--sd-text)!important}.text-text-secondary{color:var(--sd-text-secondary)!important}.bg-text-secondary{background:var(--sd-text-secondary)!important}.border-text-secondary{border-color:var(--sd-text-secondary)!important}.text-text-muted{color:var(--sd-text-muted)!important}.bg-text-muted{background:var(--sd-text-muted)!important}.border-text-muted{border-color:var(--sd-text-muted)!important}.text-border{color:var(--sd-border)!important}.bg-border{background:var(--sd-border)!important}.border-border{border-color:var(--sd-border)!important}.text-border-strong{color:var(--sd-border-strong)!important}.bg-border-strong{background:var(--sd-border-strong)!important}.border-border-strong{border-color:var(--sd-border-strong)!important}.text-disabled-bg{color:var(--sd-disabled-bg)!important}.bg-disabled-bg{background:var(--sd-disabled-bg)!important}.border-disabled-bg{border-color:var(--sd-disabled-bg)!important}.text-disabled-text{color:var(--sd-disabled-text)!important}.bg-disabled-text{background:var(--sd-disabled-text)!important}.border-disabled-text{border-color:var(--sd-disabled-text)!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}.text-secondary{color:var(--sd-text-secondary)!important}.text-muted{color:var(--sd-text-muted)!important}.text-body{color:var(--sd-text)!important}.bg-muted{background:var(--sd-surface-muted)!important}:host{display:inline-block;pointer-events:auto}:host.sd-disabled{cursor:not-allowed}:host.sd-loading{cursor:wait}:host.sd-block{display:block;width:100%}:host.sd-block button{width:100%}:host ::ng-deep button.c-button{pointer-events:auto;min-width:auto;white-space:nowrap}:host ::ng-deep button.c-button .mdc-button__label{display:flex;align-items:center;justify-content:center;width:100%;min-width:0}:host ::ng-deep button.c-button[disabled]{pointer-events:none;color:#a6a6a6!important;background-color:#e9e9e9!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;height:32px;padding:2px 12px!important}:host ::ng-deep button.c-button.c-sm sd-icon{height:16px!important;width:16px!important;font-size:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-md{font-size:16px;height:40px;padding:2px 16px!important}:host ::ng-deep button.c-button.c-md sd-icon{height:20px!important;width:20px!important;font-size:20px!important}:host ::ng-deep button.c-button.c-md.c-square{width:40px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;padding:2px 16px!important;height:48px}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button.c-lg sd-icon{height:24px!important;width:24px!important;font-size:24px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-disabled{opacity:.5}:host ::ng-deep button.c-button.c-block{width:100%!important}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.c-black{background-color:#000!important;color:#fff}:host ::ng-deep button.c-button.c-fill .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#fff!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary-light);color:var(--sd-primary)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info-light);color:var(--sd-info)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success-light);color:var(--sd-success)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning-light);color:var(--sd-warning)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error-light);color:var(--sd-error)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary-light);color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black{background-color:var(--sd-surface-muted);color:#000!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button[disabled]{background:transparent!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep .c-button-content-wrapper{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;pointer-events:none}:host ::ng-deep .c-title{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .c-spinner{display:inline-block}:host ::ng-deep sd-icon{display:inline-flex}:host.sd-loading ::ng-deep button.c-button{pointer-events:none;opacity:.85}\n"], dependencies: [{ kind: "component", type: SdIcon, selector: "sd-icon", inputs: ["name", "fontIcon", "color", "set", "fontSet", "size", "strokeWidth", "absoluteStrokeWidth", "ariaLabel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
97
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdButton, isStandalone: true, selector: "sd-button", inputs: { autoIdInput: { classPropertyName: "autoIdInput", publicName: "autoId", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", 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 }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: false, transformFunction: null }, htmlType: { classPropertyName: "htmlType", publicName: "htmlType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, host: { properties: { "class.sd-disabled": "disabled()", "class.sd-loading": "loading()", "class.sd-block": "block()", "attr.disabled": "disabled() ? \"true\" : null" } }, ngImport: i0, template: "@let _type = type();\n@let _loading = loading();\n@let _title = title();\n@let _prefixIcon = prefixIcon();\n@let _suffixIcon = suffixIcon();\n@let _fontSet = fontSet();\n@let _htmlType = htmlType();\n@let _disabled = disabled();\n@let _color = color();\n@let _autoId = autoId();\n@let _width = width();\n@let _tooltip = tooltip();\n\n@if (_type === 'fill') {\n <button\n mat-flat-button\n class=\"c-button c-fill\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'light') {\n <button\n mat-flat-button\n class=\"c-button c-light\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'outline') {\n <button\n mat-stroked-button\n class=\"c-button c-outline\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'text') {\n <button\n mat-button\n class=\"c-button c-text\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <div class=\"c-button-content-wrapper\">\n @if (_loading) {\n <mat-spinner mode=\"indeterminate\" diameter=\"18\" strokeWidth=\"2\" class=\"c-spinner\"></mat-spinner>\n } @else if (_prefixIcon) {\n <sd-icon [name]=\"_prefixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\" class=\"c-icon-prefix\"></sd-icon>\n }\n\n @if (_title) {\n <span class=\"c-title\" [class.ml-8]=\"_loading || _prefixIcon\" [class.mr-8]=\"_suffixIcon && !_loading\">\n {{ _title }}\n </span>\n }\n\n @if (_suffixIcon && !_loading) {\n <sd-icon [name]=\"_suffixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\" class=\"c-icon-suffix\"></sd-icon>\n }\n\n @if (!_title && !_prefixIcon && !_loading && _suffixIcon) {\n <sd-icon [name]=\"_suffixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\"></sd-icon>\n }\n </div>\n</ng-template>\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-primary-contrast{color:var(--sd-primary-contrast)!important}.bg-primary-contrast{background:var(--sd-primary-contrast)!important}.border-primary-contrast{border-color:var(--sd-primary-contrast)!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-secondary-contrast{color:var(--sd-secondary-contrast)!important}.bg-secondary-contrast{background:var(--sd-secondary-contrast)!important}.border-secondary-contrast{border-color:var(--sd-secondary-contrast)!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-info-contrast{color:var(--sd-info-contrast)!important}.bg-info-contrast{background:var(--sd-info-contrast)!important}.border-info-contrast{border-color:var(--sd-info-contrast)!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-success-contrast{color:var(--sd-success-contrast)!important}.bg-success-contrast{background:var(--sd-success-contrast)!important}.border-success-contrast{border-color:var(--sd-success-contrast)!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-warning-contrast{color:var(--sd-warning-contrast)!important}.bg-warning-contrast{background:var(--sd-warning-contrast)!important}.border-warning-contrast{border-color:var(--sd-warning-contrast)!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-error-contrast{color:var(--sd-error-contrast)!important}.bg-error-contrast{background:var(--sd-error-contrast)!important}.border-error-contrast{border-color:var(--sd-error-contrast)!important}.text-surface{color:var(--sd-surface)!important}.bg-surface{background:var(--sd-surface)!important}.border-surface{border-color:var(--sd-surface)!important}.text-surface-muted{color:var(--sd-surface-muted)!important}.bg-surface-muted{background:var(--sd-surface-muted)!important}.border-surface-muted{border-color:var(--sd-surface-muted)!important}.text-text{color:var(--sd-text)!important}.bg-text{background:var(--sd-text)!important}.border-text{border-color:var(--sd-text)!important}.text-text-secondary{color:var(--sd-text-secondary)!important}.bg-text-secondary{background:var(--sd-text-secondary)!important}.border-text-secondary{border-color:var(--sd-text-secondary)!important}.text-text-muted{color:var(--sd-text-muted)!important}.bg-text-muted{background:var(--sd-text-muted)!important}.border-text-muted{border-color:var(--sd-text-muted)!important}.text-border{color:var(--sd-border)!important}.bg-border{background:var(--sd-border)!important}.border-border{border-color:var(--sd-border)!important}.text-border-strong{color:var(--sd-border-strong)!important}.bg-border-strong{background:var(--sd-border-strong)!important}.border-border-strong{border-color:var(--sd-border-strong)!important}.text-disabled-bg{color:var(--sd-disabled-bg)!important}.bg-disabled-bg{background:var(--sd-disabled-bg)!important}.border-disabled-bg{border-color:var(--sd-disabled-bg)!important}.text-disabled-text{color:var(--sd-disabled-text)!important}.bg-disabled-text{background:var(--sd-disabled-text)!important}.border-disabled-text{border-color:var(--sd-disabled-text)!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}.text-secondary{color:var(--sd-text-secondary)!important}.text-muted{color:var(--sd-text-muted)!important}.text-body{color:var(--sd-text)!important}.bg-muted{background:var(--sd-surface-muted)!important}:host{display:inline-block;pointer-events:auto}:host.sd-disabled{cursor:not-allowed}:host.sd-loading{cursor:wait}:host.sd-block{display:block;width:100%}:host.sd-block button{width:100%}:host ::ng-deep button.c-button{pointer-events:auto;min-width:auto;white-space:nowrap}:host ::ng-deep button.c-button .mdc-button__label{display:flex;align-items:center;justify-content:center;width:100%;min-width:0}:host ::ng-deep button.c-button[disabled]{pointer-events:none;color:#a6a6a6!important;background-color:#e9e9e9!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;height:32px;padding:2px 12px!important}:host ::ng-deep button.c-button.c-sm sd-icon{height:16px!important;width:16px!important;font-size:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-md{font-size:16px;height:40px;padding:2px 16px!important}:host ::ng-deep button.c-button.c-md sd-icon{height:20px!important;width:20px!important;font-size:20px!important}:host ::ng-deep button.c-button.c-md.c-square{width:40px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;padding:2px 16px!important;height:48px}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button.c-lg sd-icon{height:24px!important;width:24px!important;font-size:24px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-disabled{opacity:.5}:host ::ng-deep button.c-button.c-block{width:100%!important}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.c-black{background-color:#000!important;color:#fff}:host ::ng-deep button.c-button.c-fill .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#fff!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary-light);color:var(--sd-primary)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info-light);color:var(--sd-info)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success-light);color:var(--sd-success)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning-light);color:var(--sd-warning)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error-light);color:var(--sd-error)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary-light);color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black{background-color:var(--sd-surface-muted);color:#000!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button[disabled]{background:transparent!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep .c-button-content-wrapper{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;pointer-events:none}:host ::ng-deep .c-title{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .c-spinner{display:inline-block}:host ::ng-deep sd-icon{display:inline-flex}:host.sd-loading ::ng-deep button.c-button{pointer-events:none;opacity:.85}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: SdIcon, selector: "sd-icon", inputs: ["name", "fontIcon", "color", "set", "fontSet", "size", "strokeWidth", "absoluteStrokeWidth", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
98
98
|
}
|
|
99
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdButton, decorators: [{
|
|
100
100
|
type: Component,
|
|
101
|
-
args: [{ selector: 'sd-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
101
|
+
args: [{ selector: 'sd-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, MatTooltipModule, SdIcon], host: {
|
|
102
102
|
'[class.sd-disabled]': 'disabled()',
|
|
103
103
|
'[class.sd-loading]': 'loading()',
|
|
104
104
|
'[class.sd-block]': 'block()',
|
|
105
105
|
'[attr.disabled]': 'disabled() ? "true" : null',
|
|
106
|
-
}, template: "@let _type = type();\n@let _loading = loading();\n@let _title = title();\n@let _prefixIcon = prefixIcon();\n@let _suffixIcon = suffixIcon();\n@let _fontSet = fontSet();\n@let _htmlType = htmlType();\n@let _disabled = disabled();\n@let _color = color();\n@let _autoId = autoId();\n@let _width = width();\n@let _tooltip = tooltip();\n\n@if (_type === 'fill') {\n <button\n mat-flat-button\n class=\"c-button c-fill\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'light') {\n <button\n mat-flat-button\n class=\"c-button c-light\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'outline') {\n <button\n mat-stroked-button\n class=\"c-button c-outline\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'text') {\n <button\n mat-button\n class=\"c-button c-text\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <div class=\"c-button-content-wrapper\">\n @if (_loading) {\n <mat-spinner mode=\"indeterminate\" diameter=\"18\" strokeWidth=\"2\" class=\"c-spinner\"></mat-spinner>\n } @else if (_prefixIcon) {\n <sd-icon [fontSet]=\"_fontSet\" class=\"c-icon-prefix\" [name]=\"_prefixIcon\"></sd-icon>\n }\n\n @if (_title) {\n <span class=\"c-title\" [class.ml-8]=\"_loading || _prefixIcon\" [class.mr-8]=\"_suffixIcon && !_loading\">\n {{ _title }}\n </span>\n }\n\n @if (_suffixIcon && !_loading) {\n <sd-icon [fontSet]=\"_fontSet\" class=\"c-icon-suffix\" [name]=\"_suffixIcon\"></sd-icon>\n }\n\n @if (!_title && !_prefixIcon && !_loading && _suffixIcon) {\n <sd-icon [fontSet]=\"_fontSet\" [name]=\"_suffixIcon\"></sd-icon>\n }\n </div>\n</ng-template>\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-primary-contrast{color:var(--sd-primary-contrast)!important}.bg-primary-contrast{background:var(--sd-primary-contrast)!important}.border-primary-contrast{border-color:var(--sd-primary-contrast)!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-secondary-contrast{color:var(--sd-secondary-contrast)!important}.bg-secondary-contrast{background:var(--sd-secondary-contrast)!important}.border-secondary-contrast{border-color:var(--sd-secondary-contrast)!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-info-contrast{color:var(--sd-info-contrast)!important}.bg-info-contrast{background:var(--sd-info-contrast)!important}.border-info-contrast{border-color:var(--sd-info-contrast)!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-success-contrast{color:var(--sd-success-contrast)!important}.bg-success-contrast{background:var(--sd-success-contrast)!important}.border-success-contrast{border-color:var(--sd-success-contrast)!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-warning-contrast{color:var(--sd-warning-contrast)!important}.bg-warning-contrast{background:var(--sd-warning-contrast)!important}.border-warning-contrast{border-color:var(--sd-warning-contrast)!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-error-contrast{color:var(--sd-error-contrast)!important}.bg-error-contrast{background:var(--sd-error-contrast)!important}.border-error-contrast{border-color:var(--sd-error-contrast)!important}.text-surface{color:var(--sd-surface)!important}.bg-surface{background:var(--sd-surface)!important}.border-surface{border-color:var(--sd-surface)!important}.text-surface-muted{color:var(--sd-surface-muted)!important}.bg-surface-muted{background:var(--sd-surface-muted)!important}.border-surface-muted{border-color:var(--sd-surface-muted)!important}.text-text{color:var(--sd-text)!important}.bg-text{background:var(--sd-text)!important}.border-text{border-color:var(--sd-text)!important}.text-text-secondary{color:var(--sd-text-secondary)!important}.bg-text-secondary{background:var(--sd-text-secondary)!important}.border-text-secondary{border-color:var(--sd-text-secondary)!important}.text-text-muted{color:var(--sd-text-muted)!important}.bg-text-muted{background:var(--sd-text-muted)!important}.border-text-muted{border-color:var(--sd-text-muted)!important}.text-border{color:var(--sd-border)!important}.bg-border{background:var(--sd-border)!important}.border-border{border-color:var(--sd-border)!important}.text-border-strong{color:var(--sd-border-strong)!important}.bg-border-strong{background:var(--sd-border-strong)!important}.border-border-strong{border-color:var(--sd-border-strong)!important}.text-disabled-bg{color:var(--sd-disabled-bg)!important}.bg-disabled-bg{background:var(--sd-disabled-bg)!important}.border-disabled-bg{border-color:var(--sd-disabled-bg)!important}.text-disabled-text{color:var(--sd-disabled-text)!important}.bg-disabled-text{background:var(--sd-disabled-text)!important}.border-disabled-text{border-color:var(--sd-disabled-text)!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}.text-secondary{color:var(--sd-text-secondary)!important}.text-muted{color:var(--sd-text-muted)!important}.text-body{color:var(--sd-text)!important}.bg-muted{background:var(--sd-surface-muted)!important}:host{display:inline-block;pointer-events:auto}:host.sd-disabled{cursor:not-allowed}:host.sd-loading{cursor:wait}:host.sd-block{display:block;width:100%}:host.sd-block button{width:100%}:host ::ng-deep button.c-button{pointer-events:auto;min-width:auto;white-space:nowrap}:host ::ng-deep button.c-button .mdc-button__label{display:flex;align-items:center;justify-content:center;width:100%;min-width:0}:host ::ng-deep button.c-button[disabled]{pointer-events:none;color:#a6a6a6!important;background-color:#e9e9e9!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;height:32px;padding:2px 12px!important}:host ::ng-deep button.c-button.c-sm sd-icon{height:16px!important;width:16px!important;font-size:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-md{font-size:16px;height:40px;padding:2px 16px!important}:host ::ng-deep button.c-button.c-md sd-icon{height:20px!important;width:20px!important;font-size:20px!important}:host ::ng-deep button.c-button.c-md.c-square{width:40px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;padding:2px 16px!important;height:48px}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button.c-lg sd-icon{height:24px!important;width:24px!important;font-size:24px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-disabled{opacity:.5}:host ::ng-deep button.c-button.c-block{width:100%!important}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.c-black{background-color:#000!important;color:#fff}:host ::ng-deep button.c-button.c-fill .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#fff!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary-light);color:var(--sd-primary)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info-light);color:var(--sd-info)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success-light);color:var(--sd-success)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning-light);color:var(--sd-warning)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error-light);color:var(--sd-error)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary-light);color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black{background-color:var(--sd-surface-muted);color:#000!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button[disabled]{background:transparent!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep .c-button-content-wrapper{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;pointer-events:none}:host ::ng-deep .c-title{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .c-spinner{display:inline-block}:host ::ng-deep sd-icon{display:inline-flex}:host.sd-loading ::ng-deep button.c-button{pointer-events:none;opacity:.85}\n"] }]
|
|
106
|
+
}, template: "@let _type = type();\n@let _loading = loading();\n@let _title = title();\n@let _prefixIcon = prefixIcon();\n@let _suffixIcon = suffixIcon();\n@let _fontSet = fontSet();\n@let _htmlType = htmlType();\n@let _disabled = disabled();\n@let _color = color();\n@let _autoId = autoId();\n@let _width = width();\n@let _tooltip = tooltip();\n\n@if (_type === 'fill') {\n <button\n mat-flat-button\n class=\"c-button c-fill\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'light') {\n <button\n mat-flat-button\n class=\"c-button c-light\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'outline') {\n <button\n mat-stroked-button\n class=\"c-button c-outline\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'text') {\n <button\n mat-button\n class=\"c-button c-text\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <div class=\"c-button-content-wrapper\">\n @if (_loading) {\n <mat-spinner mode=\"indeterminate\" diameter=\"18\" strokeWidth=\"2\" class=\"c-spinner\"></mat-spinner>\n } @else if (_prefixIcon) {\n <sd-icon [name]=\"_prefixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\" class=\"c-icon-prefix\"></sd-icon>\n }\n\n @if (_title) {\n <span class=\"c-title\" [class.ml-8]=\"_loading || _prefixIcon\" [class.mr-8]=\"_suffixIcon && !_loading\">\n {{ _title }}\n </span>\n }\n\n @if (_suffixIcon && !_loading) {\n <sd-icon [name]=\"_suffixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\" class=\"c-icon-suffix\"></sd-icon>\n }\n\n @if (!_title && !_prefixIcon && !_loading && _suffixIcon) {\n <sd-icon [name]=\"_suffixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\"></sd-icon>\n }\n </div>\n</ng-template>\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-primary-contrast{color:var(--sd-primary-contrast)!important}.bg-primary-contrast{background:var(--sd-primary-contrast)!important}.border-primary-contrast{border-color:var(--sd-primary-contrast)!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-secondary-contrast{color:var(--sd-secondary-contrast)!important}.bg-secondary-contrast{background:var(--sd-secondary-contrast)!important}.border-secondary-contrast{border-color:var(--sd-secondary-contrast)!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-info-contrast{color:var(--sd-info-contrast)!important}.bg-info-contrast{background:var(--sd-info-contrast)!important}.border-info-contrast{border-color:var(--sd-info-contrast)!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-success-contrast{color:var(--sd-success-contrast)!important}.bg-success-contrast{background:var(--sd-success-contrast)!important}.border-success-contrast{border-color:var(--sd-success-contrast)!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-warning-contrast{color:var(--sd-warning-contrast)!important}.bg-warning-contrast{background:var(--sd-warning-contrast)!important}.border-warning-contrast{border-color:var(--sd-warning-contrast)!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-error-contrast{color:var(--sd-error-contrast)!important}.bg-error-contrast{background:var(--sd-error-contrast)!important}.border-error-contrast{border-color:var(--sd-error-contrast)!important}.text-surface{color:var(--sd-surface)!important}.bg-surface{background:var(--sd-surface)!important}.border-surface{border-color:var(--sd-surface)!important}.text-surface-muted{color:var(--sd-surface-muted)!important}.bg-surface-muted{background:var(--sd-surface-muted)!important}.border-surface-muted{border-color:var(--sd-surface-muted)!important}.text-text{color:var(--sd-text)!important}.bg-text{background:var(--sd-text)!important}.border-text{border-color:var(--sd-text)!important}.text-text-secondary{color:var(--sd-text-secondary)!important}.bg-text-secondary{background:var(--sd-text-secondary)!important}.border-text-secondary{border-color:var(--sd-text-secondary)!important}.text-text-muted{color:var(--sd-text-muted)!important}.bg-text-muted{background:var(--sd-text-muted)!important}.border-text-muted{border-color:var(--sd-text-muted)!important}.text-border{color:var(--sd-border)!important}.bg-border{background:var(--sd-border)!important}.border-border{border-color:var(--sd-border)!important}.text-border-strong{color:var(--sd-border-strong)!important}.bg-border-strong{background:var(--sd-border-strong)!important}.border-border-strong{border-color:var(--sd-border-strong)!important}.text-disabled-bg{color:var(--sd-disabled-bg)!important}.bg-disabled-bg{background:var(--sd-disabled-bg)!important}.border-disabled-bg{border-color:var(--sd-disabled-bg)!important}.text-disabled-text{color:var(--sd-disabled-text)!important}.bg-disabled-text{background:var(--sd-disabled-text)!important}.border-disabled-text{border-color:var(--sd-disabled-text)!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}.text-secondary{color:var(--sd-text-secondary)!important}.text-muted{color:var(--sd-text-muted)!important}.text-body{color:var(--sd-text)!important}.bg-muted{background:var(--sd-surface-muted)!important}:host{display:inline-block;pointer-events:auto}:host.sd-disabled{cursor:not-allowed}:host.sd-loading{cursor:wait}:host.sd-block{display:block;width:100%}:host.sd-block button{width:100%}:host ::ng-deep button.c-button{pointer-events:auto;min-width:auto;white-space:nowrap}:host ::ng-deep button.c-button .mdc-button__label{display:flex;align-items:center;justify-content:center;width:100%;min-width:0}:host ::ng-deep button.c-button[disabled]{pointer-events:none;color:#a6a6a6!important;background-color:#e9e9e9!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;height:32px;padding:2px 12px!important}:host ::ng-deep button.c-button.c-sm sd-icon{height:16px!important;width:16px!important;font-size:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-md{font-size:16px;height:40px;padding:2px 16px!important}:host ::ng-deep button.c-button.c-md sd-icon{height:20px!important;width:20px!important;font-size:20px!important}:host ::ng-deep button.c-button.c-md.c-square{width:40px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;padding:2px 16px!important;height:48px}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button.c-lg sd-icon{height:24px!important;width:24px!important;font-size:24px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-disabled{opacity:.5}:host ::ng-deep button.c-button.c-block{width:100%!important}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary);color:#fff}:host ::ng-deep button.c-button.c-fill.mat-mdc-unelevated-button.c-black{background-color:#000!important;color:#fff}:host ::ng-deep button.c-button.c-fill .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#fff!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary{background-color:var(--sd-primary-light);color:var(--sd-primary)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info{background-color:var(--sd-info-light);color:var(--sd-info)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success{background-color:var(--sd-success-light);color:var(--sd-success)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning{background-color:var(--sd-warning-light);color:var(--sd-warning)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error{background-color:var(--sd-error-light);color:var(--sd-error)}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary{background-color:var(--sd-secondary-light);color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black{background-color:var(--sd-surface-muted);color:#000!important}:host ::ng-deep button.c-button.c-light.mat-mdc-unelevated-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep button.c-button.c-outline.mat-mdc-outlined-button[disabled]{background:transparent!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary{color:var(--sd-primary)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-primary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-primary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info{color:var(--sd-info)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-info .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-info)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success{color:var(--sd-success)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-success .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-success)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning{color:var(--sd-warning)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-warning .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-warning)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error{color:var(--sd-error)}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-error .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-error)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary{color:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.mat-secondary .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:var(--sd-secondary)!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black{color:#000!important}:host ::ng-deep button.c-button.c-text.mat-mdc-button.c-black .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic circle{stroke:#000!important}:host ::ng-deep .c-button-content-wrapper{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;pointer-events:none}:host ::ng-deep .c-title{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .c-spinner{display:inline-block}:host ::ng-deep sd-icon{display:inline-flex}:host.sd-loading ::ng-deep button.c-button{pointer-events:none;opacity:.85}\n"] }]
|
|
107
107
|
}], ctorParameters: () => [], propDecorators: { autoIdInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoId", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fontSet: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontSet", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], prefixIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefixIcon", required: false }] }], suffixIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffixIcon", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], block: [{ type: i0.Input, args: [{ isSignal: true, alias: "block", required: false }] }], htmlType: [{ type: i0.Input, args: [{ isSignal: true, alias: "htmlType", required: false }] }], click: [{ type: i0.Output, args: ["click"] }] } });
|
|
108
108
|
|
|
109
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdcorejs-angular-components-button.mjs","sources":["../../../projects/sdcorejs-angular/components/button/src/button.component.ts","../../../projects/sdcorejs-angular/components/button/src/button.component.html","../../../projects/sdcorejs-angular/components/button/sdcorejs-angular-components-button.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Color } from '@sdcorejs/utils/models';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, throttleTime } from 'rxjs/operators';\nimport { SdIcon, type SdIconSet } from '@sdcorejs/angular/modules/icon';\n\n// Export các Type ra ngoài để tái sử dụng ở file config/interface\nexport type SdButtonType = 'fill' | 'light' | 'outline' | 'text';\nexport type SdButtonSize = 'sm' | 'md' | 'lg';\nexport type SdButtonHtmlType = 'button' | 'submit' | 'reset';\nexport type SdButtonColor = Color | 'black';\n\n@Component({\n selector: 'sd-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SdIcon, CommonModule, MatButtonModule, MatProgressSpinnerModule, MatTooltipModule],\n host: {\n '[class.sd-disabled]': 'disabled()',\n '[class.sd-loading]': 'loading()',\n '[class.sd-block]': 'block()',\n '[attr.disabled]': 'disabled() ? \"true\" : null',\n },\n})\nexport class SdButton implements OnInit, OnDestroy {\n // ==========================================\n // 1. INJECTS\n // ==========================================\n private el = inject(ElementRef);\n\n // ==========================================\n // 2. SIGNAL INPUTS (Bảo mật 100% với Null/Undefined)\n // ==========================================\n autoIdInput = input<string | undefined | null>(undefined, { alias: 'autoId' });\n\n type = input<SdButtonType, SdButtonType | undefined | null>('light', {\n transform: value => value || 'light',\n });\n\n color = input<SdButtonColor, SdButtonColor | undefined | null>('secondary', {\n transform: value => value || 'secondary',\n });\n\n size = input<SdButtonSize, SdButtonSize | undefined | null>('sm', {\n transform: value => value || 'sm',\n });\n\n fontSet = input<SdIconSet | undefined, SdIconSet | undefined | null>(undefined, {\n transform: value => value ?? undefined,\n });\n\n title = input<string | undefined | null>(undefined);\n width = input<string | undefined | null>(undefined);\n tooltip = input<string | undefined | null>(undefined);\n prefixIcon = input<string | undefined | null>(undefined);\n suffixIcon = input<string | undefined | null>(undefined);\n\n disabled = input(false, { transform: booleanAttribute });\n loading = input(false, { transform: booleanAttribute });\n block = input(false, { transform: booleanAttribute });\n\n htmlType = input<SdButtonHtmlType, SdButtonHtmlType | undefined | null>('button', {\n transform: value => value || 'button',\n });\n\n // ==========================================\n // 3. COMPUTED STATE\n // ==========================================\n autoId = computed(() => (this.autoIdInput() ? `components-button-${this.autoIdInput()}` : undefined));\n\n buttonClasses = computed(() => ({\n 'c-square': (this.prefixIcon() || this.suffixIcon()) && !this.title(),\n 'c-sm': this.size() === 'sm',\n 'c-md': this.size() === 'md',\n 'c-lg': this.size() === 'lg',\n 'c-black': this.color() === 'black',\n 'c-disabled': this.disabled(),\n 'c-block': this.block(),\n }));\n\n // ==========================================\n // 4. OUTPUT & RXJS STREAMS\n // ==========================================\n click = output<Event>();\n\n #clickSubject = new Subject<Event>();\n #subscription = new Subscription();\n\n constructor() {\n // Kỹ thuật Đánh chặn sự kiện (Capture Phase)\n // Tóm sống mọi sự kiện click ngay khi nó vừa chạm vào component\n this.el.nativeElement.addEventListener(\n 'click',\n (event: Event) => {\n if (this.disabled() || this.loading()) {\n // Nghiền nát sự kiện, không cho Angular phát (click) ra component cha\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n },\n { capture: true }\n );\n }\n\n ngOnInit() {\n this.#subscription.add(\n this.#clickSubject\n .pipe(\n throttleTime(300, undefined, { leading: true, trailing: false }),\n filter(() => !this.disabled() && !this.loading())\n )\n .subscribe(event => {\n this.click.emit(event);\n })\n );\n }\n\n // Nhận click từ thẻ button con bên trong\n onInternalClick(event: Event) {\n event.stopPropagation();\n\n if (this.disabled() || this.loading()) {\n return;\n }\n\n this.#clickSubject.next(event);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}\n","@let _type = type();\n@let _loading = loading();\n@let _title = title();\n@let _prefixIcon = prefixIcon();\n@let _suffixIcon = suffixIcon();\n@let _fontSet = fontSet();\n@let _htmlType = htmlType();\n@let _disabled = disabled();\n@let _color = color();\n@let _autoId = autoId();\n@let _width = width();\n@let _tooltip = tooltip();\n\n@if (_type === 'fill') {\n <button\n mat-flat-button\n class=\"c-button c-fill\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'light') {\n <button\n mat-flat-button\n class=\"c-button c-light\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'outline') {\n <button\n mat-stroked-button\n class=\"c-button c-outline\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'text') {\n <button\n mat-button\n class=\"c-button c-text\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <div class=\"c-button-content-wrapper\">\n @if (_loading) {\n <mat-spinner mode=\"indeterminate\" diameter=\"18\" strokeWidth=\"2\" class=\"c-spinner\"></mat-spinner>\n } @else if (_prefixIcon) {\n <sd-icon [fontSet]=\"_fontSet\" class=\"c-icon-prefix\" [name]=\"_prefixIcon\"></sd-icon>\n }\n\n @if (_title) {\n <span class=\"c-title\" [class.ml-8]=\"_loading || _prefixIcon\" [class.mr-8]=\"_suffixIcon && !_loading\">\n {{ _title }}\n </span>\n }\n\n @if (_suffixIcon && !_loading) {\n <sd-icon [fontSet]=\"_fontSet\" class=\"c-icon-suffix\" [name]=\"_suffixIcon\"></sd-icon>\n }\n\n @if (!_title && !_prefixIcon && !_loading && _suffixIcon) {\n <sd-icon [fontSet]=\"_fontSet\" [name]=\"_suffixIcon\"></sd-icon>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAyCa,QAAQ,CAAA;;;;AAIX,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;;;;AAK/B,IAAA,WAAW,GAAG,KAAK,CAA4B,SAAS,+CAAI,KAAK,EAAE,QAAQ,EAAA,CAAA,GAAA,CAAjB,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAC;AAE9E,IAAA,IAAI,GAAG,KAAK,CAAgD,OAAO,wCACjE,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,OAAO,EAAA,CAAA,GAAA,CAD+B;AACnE,YAAA,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,OAAO;AACrC,SAAA,CAAA,CAAA,CAAC;AAEF,IAAA,KAAK,GAAG,KAAK,CAAkD,WAAW,yCACxE,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,WAAW,EAAA,CAAA,GAAA,CADkC;AAC1E,YAAA,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,WAAW;AACzC,SAAA,CAAA,CAAA,CAAC;AAEF,IAAA,IAAI,GAAG,KAAK,CAAgD,IAAI,wCAC9D,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,IAAI,EAAA,CAAA,GAAA,CAD+B;AAChE,YAAA,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,IAAI;AAClC,SAAA,CAAA,CAAA,CAAC;AAEF,IAAA,OAAO,GAAG,KAAK,CAAsD,SAAS,2CAC5E,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,SAAS,EAAA,CAAA,GAAA,CADwC;AAC9E,YAAA,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,SAAS;AACvC,SAAA,CAAA,CAAA,CAAC;AAEF,IAAA,KAAK,GAAG,KAAK,CAA4B,SAAS,iDAAC;AACnD,IAAA,KAAK,GAAG,KAAK,CAA4B,SAAS,iDAAC;AACnD,IAAA,OAAO,GAAG,KAAK,CAA4B,SAAS,mDAAC;AACrD,IAAA,UAAU,GAAG,KAAK,CAA4B,SAAS,sDAAC;AACxD,IAAA,UAAU,GAAG,KAAK,CAA4B,SAAS,sDAAC;AAExD,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,4CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AACxD,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,2CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AACvD,IAAA,KAAK,GAAG,KAAK,CAAC,KAAK,yCAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;AAErD,IAAA,QAAQ,GAAG,KAAK,CAAwD,QAAQ,4CAC9E,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,EAAA,CAAA,GAAA,CAD2C;AAChF,YAAA,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ;AACtC,SAAA,CAAA,CAAA,CAAC;;;;IAKF,MAAM,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA,kBAAA,EAAqB,IAAI,CAAC,WAAW,EAAE,CAAA,CAAE,GAAG,SAAS,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAErG,IAAA,aAAa,GAAG,QAAQ,CAAC,OAAO;AAC9B,QAAA,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;AACrE,QAAA,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI;AAC5B,QAAA,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI;AAC5B,QAAA,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI;AAC5B,QAAA,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,OAAO;AACnC,QAAA,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AACxB,KAAA,CAAC,yDAAC;;;;IAKH,KAAK,GAAG,MAAM,EAAS;AAEvB,IAAA,aAAa,GAAG,IAAI,OAAO,EAAS;AACpC,IAAA,aAAa,GAAG,IAAI,YAAY,EAAE;AAElC,IAAA,WAAA,GAAA;;;AAGE,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CACpC,OAAO,EACP,CAAC,KAAY,KAAI;YACf,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;;gBAErC,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,wBAAwB,EAAE;YAClC;AACF,QAAA,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB;IACH;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC;AACF,aAAA,IAAI,CACH,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAChE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aAElD,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC,CAAC,CACL;IACH;;AAGA,IAAA,eAAe,CAAC,KAAY,EAAA;QAC1B,KAAK,CAAC,eAAe,EAAE;QAEvB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YACrC;QACF;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;IAClC;wGA3GW,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzCrB,u8GA0GA,EAAA,MAAA,EAAA,CAAA,8lfAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDzEY,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAQhF,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAdpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,mBAGJ,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,WACP,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,EAAA,IAAA,EACtF;AACJ,wBAAA,qBAAqB,EAAE,YAAY;AACnC,wBAAA,oBAAoB,EAAE,WAAW;AACjC,wBAAA,kBAAkB,EAAE,SAAS;AAC7B,wBAAA,iBAAiB,EAAE,4BAA4B;AAChD,qBAAA,EAAA,QAAA,EAAA,u8GAAA,EAAA,MAAA,EAAA,CAAA,8lfAAA,CAAA,EAAA;;;AEvCH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"sdcorejs-angular-components-button.mjs","sources":["../../../projects/sdcorejs-angular/components/button/src/button.component.ts","../../../projects/sdcorejs-angular/components/button/src/button.component.html","../../../projects/sdcorejs-angular/components/button/sdcorejs-angular-components-button.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Color } from '@sdcorejs/utils/models';\nimport { SdIcon, type SdIconSet } from '@sdcorejs/angular/modules/icon';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, throttleTime } from 'rxjs/operators';\n\n// Export các Type ra ngoài để tái sử dụng ở file config/interface\nexport type SdButtonType = 'fill' | 'light' | 'outline' | 'text';\nexport type SdButtonSize = 'sm' | 'md' | 'lg';\nexport type SdButtonHtmlType = 'button' | 'submit' | 'reset';\nexport type SdButtonColor = Color | 'black';\n\n@Component({\n selector: 'sd-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, MatTooltipModule, SdIcon],\n host: {\n '[class.sd-disabled]': 'disabled()',\n '[class.sd-loading]': 'loading()',\n '[class.sd-block]': 'block()',\n '[attr.disabled]': 'disabled() ? \"true\" : null',\n },\n})\nexport class SdButton implements OnInit, OnDestroy {\n // ==========================================\n // 1. INJECTS\n // ==========================================\n private el = inject(ElementRef);\n\n // ==========================================\n // 2. SIGNAL INPUTS (Bảo mật 100% với Null/Undefined)\n // ==========================================\n autoIdInput = input<string | undefined | null>(undefined, { alias: 'autoId' });\n\n type = input<SdButtonType, SdButtonType | undefined | null>('light', {\n transform: value => value || 'light',\n });\n\n color = input<SdButtonColor, SdButtonColor | undefined | null>('secondary', {\n transform: value => value || 'secondary',\n });\n\n size = input<SdButtonSize, SdButtonSize | undefined | null>('sm', {\n transform: value => value || 'sm',\n });\n\n fontSet = input<SdIconSet | undefined, SdIconSet | undefined | null>(undefined, {\n transform: value => value ?? undefined,\n });\n\n title = input<string | undefined | null>(undefined);\n width = input<string | undefined | null>(undefined);\n tooltip = input<string | undefined | null>(undefined);\n prefixIcon = input<string | undefined | null>(undefined);\n suffixIcon = input<string | undefined | null>(undefined);\n\n disabled = input(false, { transform: booleanAttribute });\n loading = input(false, { transform: booleanAttribute });\n block = input(false, { transform: booleanAttribute });\n\n htmlType = input<SdButtonHtmlType, SdButtonHtmlType | undefined | null>('button', {\n transform: value => value || 'button',\n });\n\n // ==========================================\n // 3. COMPUTED STATE\n // ==========================================\n autoId = computed(() => (this.autoIdInput() ? `components-button-${this.autoIdInput()}` : undefined));\n\n buttonClasses = computed(() => ({\n 'c-square': (this.prefixIcon() || this.suffixIcon()) && !this.title(),\n 'c-sm': this.size() === 'sm',\n 'c-md': this.size() === 'md',\n 'c-lg': this.size() === 'lg',\n 'c-black': this.color() === 'black',\n 'c-disabled': this.disabled(),\n 'c-block': this.block(),\n }));\n\n // ==========================================\n // 4. OUTPUT & RXJS STREAMS\n // ==========================================\n click = output<Event>();\n\n #clickSubject = new Subject<Event>();\n #subscription = new Subscription();\n\n constructor() {\n // Kỹ thuật Đánh chặn sự kiện (Capture Phase)\n // Tóm sống mọi sự kiện click ngay khi nó vừa chạm vào component\n this.el.nativeElement.addEventListener(\n 'click',\n (event: Event) => {\n if (this.disabled() || this.loading()) {\n // Nghiền nát sự kiện, không cho Angular phát (click) ra component cha\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n },\n { capture: true }\n );\n }\n\n ngOnInit() {\n this.#subscription.add(\n this.#clickSubject\n .pipe(\n throttleTime(300, undefined, { leading: true, trailing: false }),\n filter(() => !this.disabled() && !this.loading())\n )\n .subscribe(event => {\n this.click.emit(event);\n })\n );\n }\n\n // Nhận click từ thẻ button con bên trong\n onInternalClick(event: Event) {\n event.stopPropagation();\n\n if (this.disabled() || this.loading()) {\n return;\n }\n\n this.#clickSubject.next(event);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}\n","@let _type = type();\n@let _loading = loading();\n@let _title = title();\n@let _prefixIcon = prefixIcon();\n@let _suffixIcon = suffixIcon();\n@let _fontSet = fontSet();\n@let _htmlType = htmlType();\n@let _disabled = disabled();\n@let _color = color();\n@let _autoId = autoId();\n@let _width = width();\n@let _tooltip = tooltip();\n\n@if (_type === 'fill') {\n <button\n mat-flat-button\n class=\"c-button c-fill\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'light') {\n <button\n mat-flat-button\n class=\"c-button c-light\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'outline') {\n <button\n mat-stroked-button\n class=\"c-button c-outline\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n} @else if (_type === 'text') {\n <button\n mat-button\n class=\"c-button c-text\"\n [type]=\"_htmlType\"\n [ngClass]=\"buttonClasses()\"\n [disabled]=\"_disabled\"\n [color]=\"_color\"\n [attr.data-autoId]=\"_autoId\"\n [attr.data-disabled]=\"_disabled ? 'true' : 'false'\"\n [attr.data-loading]=\"_loading ? 'true' : 'false'\"\n [style.width]=\"_width\"\n [matTooltip]=\"_tooltip || ''\"\n matTooltipPosition=\"above\"\n (click)=\"onInternalClick($event)\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n}\n\n<ng-template #contentTpl>\n <div class=\"c-button-content-wrapper\">\n @if (_loading) {\n <mat-spinner mode=\"indeterminate\" diameter=\"18\" strokeWidth=\"2\" class=\"c-spinner\"></mat-spinner>\n } @else if (_prefixIcon) {\n <sd-icon [name]=\"_prefixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\" class=\"c-icon-prefix\"></sd-icon>\n }\n\n @if (_title) {\n <span class=\"c-title\" [class.ml-8]=\"_loading || _prefixIcon\" [class.mr-8]=\"_suffixIcon && !_loading\">\n {{ _title }}\n </span>\n }\n\n @if (_suffixIcon && !_loading) {\n <sd-icon [name]=\"_suffixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\" class=\"c-icon-suffix\"></sd-icon>\n }\n\n @if (!_title && !_prefixIcon && !_loading && _suffixIcon) {\n <sd-icon [name]=\"_suffixIcon\" [fontSet]=\"_fontSet\" [size]=\"size()\"></sd-icon>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|