cmat 0.0.88 → 0.0.89
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/fesm2022/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-carousel.mjs +12 -12
- package/fesm2022/cmat-components-cascade.mjs +13 -11
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +3 -3
- package/fesm2022/cmat-components-code-editor.mjs +3 -3
- package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-color-picker.mjs +27 -27
- package/fesm2022/cmat-components-custom-formly.mjs +99 -98
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-data-picker.mjs +21 -18
- package/fesm2022/cmat-components-data-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +3 -3
- package/fesm2022/cmat-components-date-time-display.mjs +3 -3
- package/fesm2022/cmat-components-drawer.mjs +6 -6
- package/fesm2022/cmat-components-empty-state.mjs +3 -3
- package/fesm2022/cmat-components-file-preview.mjs +3 -3
- package/fesm2022/cmat-components-filter-toolbar.mjs +4 -4
- package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
- package/fesm2022/cmat-components-form-actions.mjs +3 -3
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-highlight.mjs +8 -7
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +3 -3
- package/fesm2022/cmat-components-inline-loading.mjs +3 -3
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-knob-input.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
- package/fesm2022/cmat-components-material-datetimepicker.mjs +44 -43
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +39 -39
- package/fesm2022/cmat-components-opt-input.mjs +3 -3
- package/fesm2022/cmat-components-org-chart.mjs +9 -9
- package/fesm2022/cmat-components-page-header.mjs +3 -3
- package/fesm2022/cmat-components-pagination.mjs +12 -12
- package/fesm2022/cmat-components-password-strength.mjs +9 -9
- package/fesm2022/cmat-components-popover.mjs +9 -9
- package/fesm2022/cmat-components-progress-bar.mjs +3 -3
- package/fesm2022/cmat-components-qrcode.mjs +5 -4
- package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +3 -3
- package/fesm2022/cmat-components-rich-text-editor.mjs +3 -3
- package/fesm2022/cmat-components-select-search.mjs +15 -14
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +5 -5
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +3 -3
- package/fesm2022/cmat-components-skeleton.mjs +3 -3
- package/fesm2022/cmat-components-speed-dial.mjs +11 -10
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-status-tag.mjs +3 -3
- package/fesm2022/cmat-components-table-toolbar.mjs +3 -3
- package/fesm2022/cmat-components-timeline.mjs +12 -12
- package/fesm2022/cmat-components-toast.mjs +9 -9
- package/fesm2022/cmat-components-transfer-picker.mjs +20 -19
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +6 -6
- package/fesm2022/cmat-components-upload.mjs +9 -9
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +5 -4
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +3 -3
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-confirmation.mjs +6 -6
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/fesm2022/cmat.mjs +588 -575
- package/fesm2022/cmat.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/overrides/angular-material.scss +10 -9
- package/types/cmat-components-code-editor.d.ts +1 -1
- package/types/cmat.d.ts +5 -5
|
@@ -10,10 +10,10 @@ import * as i2 from '@angular/material/table';
|
|
|
10
10
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
11
11
|
|
|
12
12
|
class CmatTreeTableColumnDirective {
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
14
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
14
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatTreeTableColumnDirective, isStandalone: true, selector: "ng-template[cmatTreeTableColumn]", ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableColumnDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'ng-template[cmatTreeTableColumn]'
|
|
@@ -94,10 +94,10 @@ class CmatTreeTableComponent {
|
|
|
94
94
|
}
|
|
95
95
|
return flattenedNodes;
|
|
96
96
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
98
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatTreeTableComponent, isStandalone: true, selector: "cmat-treetable", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, verticalSeparator: { classPropertyName: "verticalSeparator", publicName: "verticalSeparator", isSignal: true, isRequired: false, transformFunction: null }, initExpand: { classPropertyName: "initExpand", publicName: "initExpand", isSignal: true, isRequired: false, transformFunction: null }, tableClass: { classPropertyName: "tableClass", publicName: "tableClass", isSignal: true, isRequired: false, transformFunction: null }, showControlColumn: { classPropertyName: "showControlColumn", publicName: "showControlColumn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeClicked: "nodeClicked" }, queries: [{ propertyName: "customColumnTpl", first: true, predicate: CmatTreeTableColumnDirective, descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["cmatTreeTable"], usesOnChanges: true, ngImport: i0, template: "<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource()\" [ngClass]=\"tableClass()\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\"> \u64CD\u4F5C </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl() ? customColumnTpl() : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button matIconButton [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>\u8BF7\u5B9E\u73B0\u81EA\u5B9A\u4E49\u6A21\u677F</div>\r\n</ng-template>\r\n", styles: ["cmat-treetable .value-cell{display:flex;align-items:center}cmat-treetable .vertical-separator{border-left:1px solid var(--cmat-divider)}\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: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
99
99
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableComponent, decorators: [{
|
|
101
101
|
type: Component,
|
|
102
102
|
args: [{ selector: 'cmat-treetable', imports: [CommonModule, MatTableModule, MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'cmatTreeTable', template: "<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource()\" [ngClass]=\"tableClass()\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\"> \u64CD\u4F5C </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl() ? customColumnTpl() : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button matIconButton [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>\u8BF7\u5B9E\u73B0\u81EA\u5B9A\u4E49\u6A21\u677F</div>\r\n</ng-template>\r\n", styles: ["cmat-treetable .value-cell{display:flex;align-items:center}cmat-treetable .vertical-separator{border-left:1px solid var(--cmat-divider)}\n"] }]
|
|
103
103
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], verticalSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "verticalSeparator", required: false }] }], initExpand: [{ type: i0.Input, args: [{ isSignal: true, alias: "initExpand", required: false }] }], tableClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableClass", required: false }] }], showControlColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "showControlColumn", required: false }] }], nodeClicked: [{ type: i0.Output, args: ["nodeClicked"] }], customColumnTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CmatTreeTableColumnDirective), { ...{ read: TemplateRef }, isSignal: true }] }] } });
|
|
@@ -93,10 +93,10 @@ class CmatFilesUtilService {
|
|
|
93
93
|
.pipe(tap((res) => res), catchError(err => CmatUtilsService.handleError(err)));
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
97
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatFilesUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
97
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatFilesUtilService, providedIn: 'root' }); }
|
|
98
98
|
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatFilesUtilService, decorators: [{
|
|
100
100
|
type: Injectable,
|
|
101
101
|
args: [{
|
|
102
102
|
providedIn: 'root'
|
|
@@ -209,10 +209,10 @@ class CmatUploadComponent {
|
|
|
209
209
|
remove() {
|
|
210
210
|
this.removeEvent.emit(this);
|
|
211
211
|
}
|
|
212
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
213
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
212
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatUploadComponent, isStandalone: true, selector: "cmat-upload", inputs: { fileAlias: { classPropertyName: "fileAlias", publicName: "fileAlias", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, fileCategory: { classPropertyName: "fileCategory", publicName: "fileCategory", isSignal: true, isRequired: false, transformFunction: null }, isPublic: { classPropertyName: "isPublic", publicName: "isPublic", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "autoUpload", isSignal: true, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeEvent: "removeEvent", uploadEvent: "uploadEvent", file: "fileChange" }, exportAs: ["cmatUpload"], ngImport: i0, template: "<div class=\"flex flex-col\">\r\n <div class=\"flex flex-row items-center\">\r\n <span class=\"flex items-center px-1\">\r\n <mat-icon class=\"icon-size-6 text-hint\" [svgIcon]=\"fileType\"></mat-icon>\r\n </span>\r\n <span\r\n matTooltip=\"{{ file().name }}\"\r\n class=\"text-sm flex flex-auto whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n >{{ file().name }}({{ fileSize | cmatBytes }})</span\r\n >\r\n <span class=\"flex flex-row gap-1 print:hidden\">\r\n @if (id() === null) {\r\n <button\r\n matIconButton\r\n color=\"primary\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n [ngClass]=\"{ disabled: isUploading() }\"\r\n (click)=\"upload()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'mat_outline:file_upload'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n\r\n @if (id() !== null) {\r\n <button\r\n matIconButton\r\n color=\"primary\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n (click)=\"download()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'mat_outline:file_download'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n\r\n @if (editMode()) {\r\n <button\r\n matIconButton\r\n color=\"warn\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n (click)=\"remove()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'heroicons_solid:trash'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n </span>\r\n </div>\r\n @if (id() === null) {\r\n <mat-progress-bar [value]=\"progressPercentage()\"></mat-progress-bar>\r\n <div\r\n class=\"text-sm block whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n >\r\n <span>{{ progressPercentage() }}%</span\r\n ><span> {{ loaded() | cmatBytes }} of {{ total() | cmatBytes }}</span>\r\n </div>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i3$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: CmatBytesPipe, name: "cmatBytes" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
214
214
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadComponent, decorators: [{
|
|
216
216
|
type: Component,
|
|
217
217
|
args: [{ selector: 'cmat-upload', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatUpload', imports: [
|
|
218
218
|
MatButtonModule,
|
|
@@ -372,10 +372,10 @@ class CmatUploadQueueComponent {
|
|
|
372
372
|
return fileType === type;
|
|
373
373
|
});
|
|
374
374
|
}
|
|
375
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
376
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
375
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadQueueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
376
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatUploadQueueComponent, isStandalone: true, selector: "cmat-upload-queue", inputs: { fileAlias: { classPropertyName: "fileAlias", publicName: "fileAlias", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, fileCategory: { classPropertyName: "fileCategory", publicName: "fileCategory", isSignal: true, isRequired: false, transformFunction: null }, isPublic: { classPropertyName: "isPublic", publicName: "isPublic", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "autoUpload", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, filesData: { classPropertyName: "filesData", publicName: "filesData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outputRemoveIdEvent: "outputRemoveIdEvent", outputUploadIdEvent: "outputUploadIdEvent", outputFilesDataEvent: "outputFilesDataEvent", filesData: "filesDataChange" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDropOver($event)" } }, viewQueries: [{ propertyName: "fileUploads", predicate: CmatUploadComponent, descendants: true, isSignal: true }], exportAs: ["cmatUploadQueue"], ngImport: i0, template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <legend class=\"text-lg\">\r\n {{ title() }}\r\n @if (required()) {\r\n <span>*</span>\r\n }\r\n </legend>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <input\r\n type=\"file\"\r\n class=\"hidden\"\r\n [id]=\"id\"\r\n [multiple]=\"multiple()\"\r\n [accept]=\"accept()\"\r\n />\r\n\r\n @if (editMode()) {\r\n <mat-card-actions class=\"flex flex-row gap-1 print:hidden\">\r\n @if (!isHandSet()) {\r\n <button matButton=\"filled\" color=\"primary\" (click)=\"choose()\">\r\n @if (autoUpload()) {\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n } @else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n <span class=\"ml-2\">\u9009\u62E9</span>\r\n </button>\r\n @if (filesData() && multiple() && filesData().length > 0) {\r\n @if (!autoUpload()) {\r\n <button matButton=\"filled\" color=\"accent\" (click)=\"uploadAll()\">\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon\r\n ><span class=\"ml-2\">\u4E0A\u4F20\u5168\u90E8</span>\r\n </button>\r\n }\r\n\r\n <button matButton=\"filled\" color=\"warn\" (click)=\"removeAll()\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon\r\n ><span class=\"ml-2\">\u5220\u9664\u5168\u90E8</span>\r\n </button>\r\n }\r\n } @else {\r\n <button matIconButton color=\"primary\" (click)=\"choose()\">\r\n @if (autoUpload()) {\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n } @else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n </button>\r\n\r\n @if (filesData() && multiple() && filesData().length > 0) {\r\n @if (!autoUpload()) {\r\n <button matIconButton color=\"accent\" (click)=\"uploadAll()\">\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n <button matIconButton color=\"warn\" (click)=\"removeAll()\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n }\r\n }\r\n </mat-card-actions>\r\n }\r\n\r\n <mat-card-content>\r\n <mat-list class=\"border-t\">\r\n @for (file of filesData(); track $index) {\r\n <mat-list-item class=\"cmat-upload-file-item h-full\">\r\n <cmat-upload\r\n class=\"my-2\"\r\n [fileAlias]=\"fileAlias()\"\r\n [filePath]=\"filePath()\"\r\n [fileCategory]=\"fileCategory()\"\r\n [autoUpload]=\"autoUpload()\"\r\n [editMode]=\"editMode()\"\r\n [file]=\"file\"\r\n [id]=\"file.id || null\"\r\n [isPublic]=\"isPublic()\"\r\n (removeEvent)=\"remove($event)\"\r\n (uploadEvent)=\"upload($event)\"\r\n ></cmat-upload>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-card-content>\r\n</mat-card>\r\n", dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: CmatUploadComponent, selector: "cmat-upload", inputs: ["fileAlias", "filePath", "fileCategory", "isPublic", "editMode", "autoUpload", "file", "id"], outputs: ["removeEvent", "uploadEvent", "fileChange"], exportAs: ["cmatUpload"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
377
377
|
}
|
|
378
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
378
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadQueueComponent, decorators: [{
|
|
379
379
|
type: Component,
|
|
380
380
|
args: [{ selector: 'cmat-upload-queue', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatUploadQueue', imports: [
|
|
381
381
|
MatCardModule,
|
|
@@ -21,10 +21,10 @@ class ScrollService {
|
|
|
21
21
|
manageScrollPos() {
|
|
22
22
|
this.pos = typeof window !== 'undefined' ? window.scrollY : 0;
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
25
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ScrollService, decorators: [{
|
|
28
28
|
type: Injectable,
|
|
29
29
|
args: [{
|
|
30
30
|
providedIn: 'root'
|
|
@@ -120,10 +120,10 @@ class CmatAnimationOnScrollDirective {
|
|
|
120
120
|
this._offsetTop = 0;
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
124
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.
|
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAnimationOnScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
124
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: CmatAnimationOnScrollDirective, isStandalone: true, selector: "[cmatAnimateOnScroll]", inputs: { animationName: { classPropertyName: "animationName", publicName: "animationName", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, useScroll: { classPropertyName: "useScroll", publicName: "useScroll", isSignal: true, isRequired: false, transformFunction: null }, threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null } }, providers: [ScrollService], ngImport: i0 }); }
|
|
125
125
|
}
|
|
126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAnimationOnScrollDirective, decorators: [{
|
|
127
127
|
type: Directive,
|
|
128
128
|
args: [{
|
|
129
129
|
selector: '[cmatAnimateOnScroll]',
|
|
@@ -164,10 +164,10 @@ class CmatArrowCursorDirective {
|
|
|
164
164
|
this._cursorIcon.style.transform = transform;
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
168
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatArrowCursorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
168
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: CmatArrowCursorDirective, isStandalone: true, selector: "[cmatArrowCursor]", inputs: { animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, enabled: { classPropertyName: "enabled", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null }, selector: { classPropertyName: "selector", publicName: "selector", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "mousemove": "onMouseOver($event)", "click": "onClick($event)" } }, ngImport: i0 }); }
|
|
169
169
|
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatArrowCursorDirective, decorators: [{
|
|
171
171
|
type: Directive,
|
|
172
172
|
args: [{
|
|
173
173
|
selector: '[cmatArrowCursor]'
|
|
@@ -8,10 +8,10 @@ class CmatAutofocusDirective {
|
|
|
8
8
|
this.element.nativeElement.focus();
|
|
9
9
|
}, 0);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
12
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAutofocusDirective, decorators: [{
|
|
15
15
|
type: Directive,
|
|
16
16
|
args: [{
|
|
17
17
|
selector: '[cmatAutofocus]'
|
|
@@ -107,10 +107,10 @@ class CsvExporterService extends WorksheetExporter {
|
|
|
107
107
|
getMimeType() {
|
|
108
108
|
return MIME_CSV;
|
|
109
109
|
}
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
111
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CsvExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
111
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CsvExporterService, providedIn: 'root' }); }
|
|
112
112
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CsvExporterService, decorators: [{
|
|
114
114
|
type: Injectable,
|
|
115
115
|
args: [{
|
|
116
116
|
providedIn: 'root'
|
|
@@ -131,10 +131,10 @@ class JsonExporterService extends FileExporter {
|
|
|
131
131
|
getMimeType() {
|
|
132
132
|
return MIME_JSON;
|
|
133
133
|
}
|
|
134
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
135
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: JsonExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
135
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: JsonExporterService, providedIn: 'root' }); }
|
|
136
136
|
}
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: JsonExporterService, decorators: [{
|
|
138
138
|
type: Injectable,
|
|
139
139
|
args: [{
|
|
140
140
|
providedIn: 'root'
|
|
@@ -165,10 +165,10 @@ class TxtExporterService extends FileExporter {
|
|
|
165
165
|
return TAB;
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
169
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TxtExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
169
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TxtExporterService, providedIn: 'root' }); }
|
|
170
170
|
}
|
|
171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TxtExporterService, decorators: [{
|
|
172
172
|
type: Injectable,
|
|
173
173
|
args: [{
|
|
174
174
|
providedIn: 'root'
|
|
@@ -212,10 +212,10 @@ class XlsExporterService extends WorksheetExporter {
|
|
|
212
212
|
_convertToWch(columnWidths) {
|
|
213
213
|
return columnWidths.map(width => ({ wch: width }));
|
|
214
214
|
}
|
|
215
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
216
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: XlsExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
216
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: XlsExporterService, providedIn: 'root' }); }
|
|
217
217
|
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: XlsExporterService, decorators: [{
|
|
219
219
|
type: Injectable,
|
|
220
220
|
args: [{
|
|
221
221
|
providedIn: 'root'
|
|
@@ -229,10 +229,10 @@ class XlsxExporterService extends XlsExporterService {
|
|
|
229
229
|
getMimeType() {
|
|
230
230
|
return MIME_EXCEL_XLSX;
|
|
231
231
|
}
|
|
232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
233
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
232
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: XlsxExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
233
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: XlsxExporterService, providedIn: 'root' }); }
|
|
234
234
|
}
|
|
235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
235
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: XlsxExporterService, decorators: [{
|
|
236
236
|
type: Injectable,
|
|
237
237
|
args: [{
|
|
238
238
|
providedIn: 'root'
|
|
@@ -264,10 +264,10 @@ class ServiceLocatorService {
|
|
|
264
264
|
return this._injector.get(XlsxExporterService);
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
268
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
267
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ServiceLocatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
268
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ServiceLocatorService, providedIn: 'root' }); }
|
|
269
269
|
}
|
|
270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ServiceLocatorService, decorators: [{
|
|
271
271
|
type: Injectable,
|
|
272
272
|
args: [{
|
|
273
273
|
providedIn: 'root'
|
|
@@ -327,10 +327,10 @@ class CmatDataExporterDirective {
|
|
|
327
327
|
_loadExporter(exportType) {
|
|
328
328
|
this._exporterService = this._serviceLocator.getService(exportType);
|
|
329
329
|
}
|
|
330
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
331
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.
|
|
330
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDataExporterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
331
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: CmatDataExporterDirective, isStandalone: true, selector: "button[cmatDataExporter]", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, exportColumns: { classPropertyName: "exportColumns", publicName: "exportColumns", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, exportType: { classPropertyName: "exportType", publicName: "exportType", isSignal: true, isRequired: false, transformFunction: null }, transformBoolean: { classPropertyName: "transformBoolean", publicName: "transformBoolean", isSignal: true, isRequired: false, transformFunction: null }, transformDate: { classPropertyName: "transformDate", publicName: "transformDate", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }
|
|
332
332
|
}
|
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDataExporterDirective, decorators: [{
|
|
334
334
|
type: Directive,
|
|
335
335
|
args: [{
|
|
336
336
|
selector: 'button[cmatDataExporter]',
|
|
@@ -20,10 +20,10 @@ class AbstractDebounceDirective {
|
|
|
20
20
|
emitChange(value) {
|
|
21
21
|
this.emitChanged.emit(value);
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
24
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: AbstractDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: AbstractDebounceDirective, isStandalone: true, inputs: { debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { emitChanged: "emitChanged" }, ngImport: i0 }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: AbstractDebounceDirective, decorators: [{
|
|
27
27
|
type: Directive
|
|
28
28
|
}], ctorParameters: () => [], propDecorators: { emitChanged: [{ type: i0.Output, args: ["emitChanged"] }], debounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounceTime", required: false }] }] } });
|
|
29
29
|
|
|
@@ -35,10 +35,10 @@ class CmatDebounceClickDirective extends AbstractDebounceDirective {
|
|
|
35
35
|
event.preventDefault();
|
|
36
36
|
this.emitEvent$.next(event);
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
39
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDebounceClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
39
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatDebounceClickDirective, isStandalone: true, selector: "[cmatDebounceClick]", host: { listeners: { "click": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDebounceClickDirective, decorators: [{
|
|
42
42
|
type: Directive,
|
|
43
43
|
args: [{
|
|
44
44
|
selector: '[cmatDebounceClick]'
|
|
@@ -56,10 +56,10 @@ class CmatDebounceKeyupDirective extends AbstractDebounceDirective {
|
|
|
56
56
|
event.preventDefault();
|
|
57
57
|
this.emitEvent$.next(event);
|
|
58
58
|
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
60
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDebounceKeyupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
60
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatDebounceKeyupDirective, isStandalone: true, selector: "input,textarea[cmatDebounceKeyup]", host: { listeners: { "keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
|
|
61
61
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDebounceKeyupDirective, decorators: [{
|
|
63
63
|
type: Directive,
|
|
64
64
|
args: [{
|
|
65
65
|
selector: 'input,textarea[cmatDebounceKeyup]'
|
|
@@ -243,10 +243,10 @@ class CmatDigitOnlyDirective {
|
|
|
243
243
|
key +
|
|
244
244
|
oldValue.substring(selectionEnd));
|
|
245
245
|
}
|
|
246
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
247
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.
|
|
246
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDigitOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
247
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: CmatDigitOnlyDirective, isStandalone: true, selector: "[cmatDigitOnly]", inputs: { decimal: { classPropertyName: "decimal", publicName: "decimal", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, allowNegatives: { classPropertyName: "allowNegatives", publicName: "allowNegatives", isSignal: true, isRequired: false, transformFunction: null }, allowPaste: { classPropertyName: "allowPaste", publicName: "allowPaste", isSignal: true, isRequired: false, transformFunction: null }, negativeSign: { classPropertyName: "negativeSign", publicName: "negativeSign", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "beforeinput": "onBeforeInput($event)", "input": "onInputChange($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
248
248
|
}
|
|
249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatDigitOnlyDirective, decorators: [{
|
|
250
250
|
type: Directive,
|
|
251
251
|
args: [{
|
|
252
252
|
selector: '[cmatDigitOnly]',
|
|
@@ -333,10 +333,10 @@ class CmatMaskDirective {
|
|
|
333
333
|
key +
|
|
334
334
|
oldValue.substring(selectionStart);
|
|
335
335
|
}
|
|
336
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
337
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
336
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
337
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatMaskDirective, isStandalone: true, selector: "[cmatMask]", host: { listeners: { "input": "onInputChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
|
|
338
338
|
}
|
|
339
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMaskDirective, decorators: [{
|
|
340
340
|
type: Directive,
|
|
341
341
|
args: [{
|
|
342
342
|
selector: '[cmatMask]'
|
|
@@ -31,12 +31,12 @@ class CmatEqualValidatorDirective {
|
|
|
31
31
|
}
|
|
32
32
|
return this._reverse === 'true' ? CmatEqualValidatorDirective._validateReverse(c, other) : CmatEqualValidatorDirective._validateNoReverse(c, other);
|
|
33
33
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
35
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatEqualValidatorDirective, isStandalone: true, selector: "[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]", providers: [
|
|
36
36
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => CmatEqualValidatorDirective), multi: true }
|
|
37
37
|
], ngImport: i0 }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatEqualValidatorDirective, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: '[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]',
|
|
@@ -3,7 +3,8 @@ import { contentChild, TemplateRef, input, inject, ViewContainerRef, Directive }
|
|
|
3
3
|
|
|
4
4
|
class CmatSeamlessAutoScrollDirective {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.itemTemplate = contentChild.required(TemplateRef
|
|
6
|
+
this.itemTemplate = contentChild.required(TemplateRef, /* @ts-ignore */
|
|
7
|
+
...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
|
|
7
8
|
this.data = input([], /* @ts-ignore */
|
|
8
9
|
...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ [])); // 输入的数据数组
|
|
9
10
|
this.speed = input(10, /* @ts-ignore */
|
|
@@ -114,10 +115,10 @@ class CmatSeamlessAutoScrollDirective {
|
|
|
114
115
|
};
|
|
115
116
|
return map[this.direction()];
|
|
116
117
|
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
118
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatSeamlessAutoScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
119
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.6", type: CmatSeamlessAutoScrollDirective, isStandalone: true, selector: "[cmatSeamlessAutoScroll]", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, speed: { classPropertyName: "speed", publicName: "speed", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
119
120
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatSeamlessAutoScrollDirective, decorators: [{
|
|
121
122
|
type: Directive,
|
|
122
123
|
args: [{
|
|
123
124
|
selector: '[cmatSeamlessAutoScroll]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-directives-seamless-auto-scroll.mjs","sources":["../../../projects/cmat/directives/seamless-auto-scroll/seamless-auto-scroll.directive.ts","../../../projects/cmat/directives/seamless-auto-scroll/cmat-directives-seamless-auto-scroll.ts"],"sourcesContent":["import {\r\n Directive,\r\n OnInit,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n inject,\r\n AfterViewInit,\r\n input,\r\n contentChild,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatSeamlessAutoScroll]',\r\n})\r\nexport class CmatSeamlessAutoScrollDirective\r\n implements OnInit, AfterViewInit, OnDestroy {\r\n readonly itemTemplate = contentChild.required(TemplateRef);\r\n\r\n readonly data = input<unknown[]>([]); // 输入的数据数组\r\n readonly speed = input<number>(10); // 滚动速度(每秒动画距离)\r\n readonly direction = input<'up' | 'down' | 'left' | 'right'>('up'); // 滚动方向\r\n\r\n private _viewContainer = inject(ViewContainerRef);\r\n private _containerElement: HTMLElement | null = null;\r\n private _contentElement: HTMLElement | null = null;\r\n private _resizeObserver: ResizeObserver | null = null;\r\n private _isScrollEnabled = false;\r\n private _dataCopies = 1;\r\n\r\n ngOnInit(): void {\r\n this._renderContent();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this._checkScrollCondition();\r\n this._listenResize();\r\n }, 0);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._resizeObserver?.disconnect();\r\n }\r\n private _renderContent(): void {\r\n this._viewContainer.clear(); // 清空原有内容\r\n\r\n for (let i = 0; i < this._dataCopies; i++) {\r\n this.data().forEach((item) => {\r\n this._viewContainer.createEmbeddedView(this.itemTemplate(), {\r\n $implicit: item,\r\n });\r\n });\r\n }\r\n }\r\n\r\n private _checkScrollCondition(): void {\r\n const hostElement = this._viewContainer.element\r\n .nativeElement as HTMLElement;\r\n this._containerElement = hostElement.parentElement?.parentElement ?? null;\r\n this._contentElement = hostElement.parentElement ?? null;\r\n\r\n if (!this._containerElement || !this._contentElement) return;\r\n\r\n const direction = this.direction();\r\n const containerSize =\r\n direction === 'up' || direction === 'down'\r\n ? this._containerElement.offsetHeight\r\n : this._containerElement.offsetWidth;\r\n\r\n const directionValue = this.direction();\r\n const contentSize =\r\n directionValue === 'up' || directionValue === 'down'\r\n ? this._contentElement.offsetHeight\r\n : this._contentElement.offsetWidth;\r\n this._isScrollEnabled = contentSize > containerSize;\r\n\r\n if (this._isScrollEnabled) {\r\n const copiesNeeded = Math.ceil(containerSize / contentSize) + 1;\r\n\r\n if (copiesNeeded > this._dataCopies) {\r\n this._dataCopies = copiesNeeded;\r\n this._renderContent();\r\n setTimeout(() => {\r\n this._initAnimation();\r\n }, 0);\r\n } else {\r\n this._initAnimation();\r\n }\r\n } else {\r\n this._disableAnimation();\r\n }\r\n }\r\n\r\n private _initAnimation(): void {\r\n if (!this._containerElement || !this._contentElement) return;\r\n\r\n this._updateAnimationParams();\r\n\r\n this._contentElement.style.animation = `${this._getDirection()} var(--animation-duration) linear infinite`;\r\n this._contentElement.style.willChange = 'transform';\r\n this._contentElement.style.transform = 'translateZ(0)';\r\n }\r\n\r\n private _disableAnimation(): void {\r\n if (!this._contentElement) return;\r\n\r\n this._contentElement.style.animation = 'none';\r\n this._contentElement.style.transform = 'none';\r\n }\r\n\r\n private _updateAnimationParams(): void {\r\n if (!this._containerElement || !this._contentElement) return;\r\n\r\n const direction = this.direction();\r\n const contentSize =\r\n direction === 'up' || direction === 'down'\r\n ? this._contentElement.offsetHeight\r\n : this._contentElement.offsetWidth;\r\n const originalContentSize = contentSize / this._dataCopies;\r\n this._containerElement.style.setProperty(\r\n '--scroll-distance',\r\n `${originalContentSize}px`,\r\n );\r\n this._containerElement.style.setProperty(\r\n '--animation-duration',\r\n `${originalContentSize / this.speed()}s`,\r\n );\r\n }\r\n\r\n private _listenResize(): void {\r\n this._resizeObserver = new ResizeObserver(() => {\r\n this._updateAnimationParams();\r\n });\r\n\r\n if (this._containerElement) {\r\n this._resizeObserver.observe(this._containerElement);\r\n }\r\n }\r\n\r\n private _getDirection(): string {\r\n const map = {\r\n up: 'scroll-up',\r\n down: 'scroll-down',\r\n left: 'scroll-left',\r\n right: 'scroll-right',\r\n };\r\n return map[this.direction()];\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAea,+BAA+B,CAAA;AAH5C,IAAA,WAAA,GAAA;AAKW,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW
|
|
1
|
+
{"version":3,"file":"cmat-directives-seamless-auto-scroll.mjs","sources":["../../../projects/cmat/directives/seamless-auto-scroll/seamless-auto-scroll.directive.ts","../../../projects/cmat/directives/seamless-auto-scroll/cmat-directives-seamless-auto-scroll.ts"],"sourcesContent":["import {\r\n Directive,\r\n OnInit,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n inject,\r\n AfterViewInit,\r\n input,\r\n contentChild,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatSeamlessAutoScroll]',\r\n})\r\nexport class CmatSeamlessAutoScrollDirective\r\n implements OnInit, AfterViewInit, OnDestroy {\r\n readonly itemTemplate = contentChild.required(TemplateRef);\r\n\r\n readonly data = input<unknown[]>([]); // 输入的数据数组\r\n readonly speed = input<number>(10); // 滚动速度(每秒动画距离)\r\n readonly direction = input<'up' | 'down' | 'left' | 'right'>('up'); // 滚动方向\r\n\r\n private _viewContainer = inject(ViewContainerRef);\r\n private _containerElement: HTMLElement | null = null;\r\n private _contentElement: HTMLElement | null = null;\r\n private _resizeObserver: ResizeObserver | null = null;\r\n private _isScrollEnabled = false;\r\n private _dataCopies = 1;\r\n\r\n ngOnInit(): void {\r\n this._renderContent();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this._checkScrollCondition();\r\n this._listenResize();\r\n }, 0);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._resizeObserver?.disconnect();\r\n }\r\n private _renderContent(): void {\r\n this._viewContainer.clear(); // 清空原有内容\r\n\r\n for (let i = 0; i < this._dataCopies; i++) {\r\n this.data().forEach((item) => {\r\n this._viewContainer.createEmbeddedView(this.itemTemplate(), {\r\n $implicit: item,\r\n });\r\n });\r\n }\r\n }\r\n\r\n private _checkScrollCondition(): void {\r\n const hostElement = this._viewContainer.element\r\n .nativeElement as HTMLElement;\r\n this._containerElement = hostElement.parentElement?.parentElement ?? null;\r\n this._contentElement = hostElement.parentElement ?? null;\r\n\r\n if (!this._containerElement || !this._contentElement) return;\r\n\r\n const direction = this.direction();\r\n const containerSize =\r\n direction === 'up' || direction === 'down'\r\n ? this._containerElement.offsetHeight\r\n : this._containerElement.offsetWidth;\r\n\r\n const directionValue = this.direction();\r\n const contentSize =\r\n directionValue === 'up' || directionValue === 'down'\r\n ? this._contentElement.offsetHeight\r\n : this._contentElement.offsetWidth;\r\n this._isScrollEnabled = contentSize > containerSize;\r\n\r\n if (this._isScrollEnabled) {\r\n const copiesNeeded = Math.ceil(containerSize / contentSize) + 1;\r\n\r\n if (copiesNeeded > this._dataCopies) {\r\n this._dataCopies = copiesNeeded;\r\n this._renderContent();\r\n setTimeout(() => {\r\n this._initAnimation();\r\n }, 0);\r\n } else {\r\n this._initAnimation();\r\n }\r\n } else {\r\n this._disableAnimation();\r\n }\r\n }\r\n\r\n private _initAnimation(): void {\r\n if (!this._containerElement || !this._contentElement) return;\r\n\r\n this._updateAnimationParams();\r\n\r\n this._contentElement.style.animation = `${this._getDirection()} var(--animation-duration) linear infinite`;\r\n this._contentElement.style.willChange = 'transform';\r\n this._contentElement.style.transform = 'translateZ(0)';\r\n }\r\n\r\n private _disableAnimation(): void {\r\n if (!this._contentElement) return;\r\n\r\n this._contentElement.style.animation = 'none';\r\n this._contentElement.style.transform = 'none';\r\n }\r\n\r\n private _updateAnimationParams(): void {\r\n if (!this._containerElement || !this._contentElement) return;\r\n\r\n const direction = this.direction();\r\n const contentSize =\r\n direction === 'up' || direction === 'down'\r\n ? this._contentElement.offsetHeight\r\n : this._contentElement.offsetWidth;\r\n const originalContentSize = contentSize / this._dataCopies;\r\n this._containerElement.style.setProperty(\r\n '--scroll-distance',\r\n `${originalContentSize}px`,\r\n );\r\n this._containerElement.style.setProperty(\r\n '--animation-duration',\r\n `${originalContentSize / this.speed()}s`,\r\n );\r\n }\r\n\r\n private _listenResize(): void {\r\n this._resizeObserver = new ResizeObserver(() => {\r\n this._updateAnimationParams();\r\n });\r\n\r\n if (this._containerElement) {\r\n this._resizeObserver.observe(this._containerElement);\r\n }\r\n }\r\n\r\n private _getDirection(): string {\r\n const map = {\r\n up: 'scroll-up',\r\n down: 'scroll-down',\r\n left: 'scroll-left',\r\n right: 'scroll-right',\r\n };\r\n return map[this.direction()];\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAea,+BAA+B,CAAA;AAH5C,IAAA,WAAA,GAAA;AAKW,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW;yFAAC;QAEjD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAY,EAAE;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;QAC5B,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;QAC1B,IAAA,CAAA,SAAS,GAAG,KAAK,CAAmC,IAAI;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAE3D,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACzC,IAAA,CAAA,iBAAiB,GAAuB,IAAI;QAC5C,IAAA,CAAA,eAAe,GAAuB,IAAI;QAC1C,IAAA,CAAA,eAAe,GAA0B,IAAI;QAC7C,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,WAAW,GAAG,CAAC;AAyHxB,IAAA;IAvHC,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE;QACtB,CAAC,EAAE,CAAC,CAAC;IACP;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE;IACpC;IACQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAE5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC3B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AAC1D,oBAAA,SAAS,EAAE,IAAI;AAChB,iBAAA,CAAC;AACJ,YAAA,CAAC,CAAC;QACJ;IACF;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;AACrC,aAAA,aAA4B;QAC/B,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,aAAa,EAAE,aAAa,IAAI,IAAI;QACzE,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,aAAa,IAAI,IAAI;QAExD,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE;AAEtD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;QAClC,MAAM,aAAa,GACjB,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK;AAClC,cAAE,IAAI,CAAC,iBAAiB,CAAC;AACzB,cAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAExC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE;QACvC,MAAM,WAAW,GACf,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK;AAC5C,cAAE,IAAI,CAAC,eAAe,CAAC;AACvB,cAAE,IAAI,CAAC,eAAe,CAAC,WAAW;AACtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,GAAG,aAAa;AAEnD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC;AAE/D,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,gBAAA,IAAI,CAAC,WAAW,GAAG,YAAY;gBAC/B,IAAI,CAAC,cAAc,EAAE;gBACrB,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,cAAc,EAAE;gBACvB,CAAC,EAAE,CAAC,CAAC;YACP;iBAAO;gBACL,IAAI,CAAC,cAAc,EAAE;YACvB;QACF;aAAO;YACL,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;IAEQ,cAAc,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE;QAEtD,IAAI,CAAC,sBAAsB,EAAE;AAE7B,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,EAAE,4CAA4C;QAC1G,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW;QACnD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;IACxD;IAEQ,iBAAiB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE;QAE3B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;IAC/C;IAEQ,sBAAsB,GAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE;AAEtD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;QAClC,MAAM,WAAW,GACf,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK;AAClC,cAAE,IAAI,CAAC,eAAe,CAAC;AACvB,cAAE,IAAI,CAAC,eAAe,CAAC,WAAW;AACtC,QAAA,MAAM,mBAAmB,GAAG,WAAW,GAAG,IAAI,CAAC,WAAW;AAC1D,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CACtC,mBAAmB,EACnB,CAAA,EAAG,mBAAmB,CAAA,EAAA,CAAI,CAC3B;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CACtC,sBAAsB,EACtB,CAAA,EAAG,mBAAmB,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA,CAAA,CAAG,CACzC;IACH;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;YAC7C,IAAI,CAAC,sBAAsB,EAAE;AAC/B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACtD;IACF;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG;AACV,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE,cAAc;SACtB;AACD,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC9B;8GArIW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,2fAEI,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAF9C,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACrC,iBAAA;iGAG+C,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACjB3D;;AAEG;;;;"}
|
|
@@ -108,10 +108,10 @@ class CmatMockApiService {
|
|
|
108
108
|
this._handlers[method].set(url, cmatMockHttp);
|
|
109
109
|
return cmatMockHttp;
|
|
110
110
|
}
|
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
112
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMockApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
112
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMockApiService, providedIn: 'root' }); }
|
|
113
113
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMockApiService, decorators: [{
|
|
115
115
|
type: Injectable,
|
|
116
116
|
args: [{
|
|
117
117
|
providedIn: 'root'
|
|
@@ -173,10 +173,10 @@ class CmatMockApiInterceptor {
|
|
|
173
173
|
return throwError(() => errorResponse);
|
|
174
174
|
}));
|
|
175
175
|
}
|
|
176
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
177
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
176
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMockApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
177
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMockApiInterceptor, providedIn: 'root' }); }
|
|
178
178
|
}
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatMockApiInterceptor, decorators: [{
|
|
180
180
|
type: Injectable,
|
|
181
181
|
args: [{
|
|
182
182
|
providedIn: 'root'
|
|
@@ -13,10 +13,10 @@ class CmatBytesPipe {
|
|
|
13
13
|
const size = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
14
14
|
return (bytes / Math.pow(1024, Math.floor(size))).toFixed(1) + ' ' + units[size];
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: CmatBytesPipe, isStandalone: true, name: "cmatBytes" }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatBytesPipe, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
22
|
name: 'cmatBytes'
|