cmat 0.0.88 → 0.0.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
  3. package/fesm2022/cmat-components-card.mjs +3 -3
  4. package/fesm2022/cmat-components-carousel.mjs +12 -12
  5. package/fesm2022/cmat-components-cascade.mjs +13 -11
  6. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  7. package/fesm2022/cmat-components-chip-input.mjs +3 -3
  8. package/fesm2022/cmat-components-code-editor.mjs +3 -3
  9. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  10. package/fesm2022/cmat-components-color-picker.mjs +27 -27
  11. package/fesm2022/cmat-components-custom-formly.mjs +99 -98
  12. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  13. package/fesm2022/cmat-components-data-picker.mjs +21 -18
  14. package/fesm2022/cmat-components-data-picker.mjs.map +1 -1
  15. package/fesm2022/cmat-components-date-range.mjs +3 -3
  16. package/fesm2022/cmat-components-date-time-display.mjs +3 -3
  17. package/fesm2022/cmat-components-drawer.mjs +6 -6
  18. package/fesm2022/cmat-components-empty-state.mjs +3 -3
  19. package/fesm2022/cmat-components-file-preview.mjs +3 -3
  20. package/fesm2022/cmat-components-filter-toolbar.mjs +4 -4
  21. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  22. package/fesm2022/cmat-components-form-actions.mjs +3 -3
  23. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  24. package/fesm2022/cmat-components-highlight.mjs +8 -7
  25. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  26. package/fesm2022/cmat-components-image-viewer.mjs +3 -3
  27. package/fesm2022/cmat-components-inline-loading.mjs +3 -3
  28. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  29. package/fesm2022/cmat-components-knob-input.mjs +3 -3
  30. package/fesm2022/cmat-components-masonry.mjs +3 -3
  31. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  32. package/fesm2022/cmat-components-material-datetimepicker.mjs +44 -43
  33. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  34. package/fesm2022/cmat-components-navigation.mjs +39 -39
  35. package/fesm2022/cmat-components-opt-input.mjs +3 -3
  36. package/fesm2022/cmat-components-org-chart.mjs +9 -9
  37. package/fesm2022/cmat-components-page-header.mjs +3 -3
  38. package/fesm2022/cmat-components-pagination.mjs +12 -12
  39. package/fesm2022/cmat-components-password-strength.mjs +9 -9
  40. package/fesm2022/cmat-components-popover.mjs +9 -9
  41. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  42. package/fesm2022/cmat-components-qrcode.mjs +5 -4
  43. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  44. package/fesm2022/cmat-components-rating.mjs +3 -3
  45. package/fesm2022/cmat-components-rich-text-editor.mjs +3 -3
  46. package/fesm2022/cmat-components-select-search.mjs +15 -14
  47. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  48. package/fesm2022/cmat-components-select-table.mjs +5 -5
  49. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  50. package/fesm2022/cmat-components-select-tree.mjs +3 -3
  51. package/fesm2022/cmat-components-skeleton.mjs +3 -3
  52. package/fesm2022/cmat-components-speed-dial.mjs +11 -10
  53. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  54. package/fesm2022/cmat-components-status-tag.mjs +3 -3
  55. package/fesm2022/cmat-components-table-toolbar.mjs +3 -3
  56. package/fesm2022/cmat-components-timeline.mjs +12 -12
  57. package/fesm2022/cmat-components-toast.mjs +11 -10
  58. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  59. package/fesm2022/cmat-components-transfer-picker.mjs +20 -19
  60. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  61. package/fesm2022/cmat-components-treetable.mjs +6 -6
  62. package/fesm2022/cmat-components-upload.mjs +9 -9
  63. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  64. package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
  65. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  66. package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
  67. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  68. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  69. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  70. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +5 -4
  71. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  72. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  73. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  74. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  75. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  76. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  77. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  78. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  79. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  80. package/fesm2022/cmat-services-alert.mjs +17 -6
  81. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  82. package/fesm2022/cmat-services-config.mjs +6 -6
  83. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  84. package/fesm2022/cmat-services-data.mjs +3 -3
  85. package/fesm2022/cmat-services-export-as.mjs +3 -3
  86. package/fesm2022/cmat-services-loading.mjs +6 -6
  87. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  88. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  89. package/fesm2022/cmat-services-platform.mjs +3 -3
  90. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  91. package/fesm2022/cmat-services-title.mjs +3 -3
  92. package/fesm2022/cmat-services-translation.mjs +3 -3
  93. package/fesm2022/cmat-services-utils.mjs +3 -3
  94. package/fesm2022/cmat.mjs +604 -579
  95. package/fesm2022/cmat.mjs.map +1 -1
  96. package/package.json +1 -3
  97. package/styles/overrides/angular-material.scss +10 -9
  98. package/styles/user-themes.scss +1 -1
  99. package/types/cmat-components-code-editor.d.ts +1 -1
  100. package/types/cmat-components-material-datetimepicker.d.ts +5 -5
  101. package/types/cmat-components-toast.d.ts +1 -1
  102. package/types/cmat-services-alert.d.ts +3 -0
  103. package/types/cmat.d.ts +14 -11
  104. package/styles/overrides/fullcalendar.scss +0 -552
@@ -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.2", ngImport: i0, type: CmatTreeTableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatTreeTableColumnDirective, isStandalone: true, selector: "ng-template[cmatTreeTableColumn]", ngImport: i0 }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTreeTableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: CmatTreeTableColumnDirective, isStandalone: true, selector: "ng-template[cmatTreeTableColumn]", ngImport: i0 }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatTreeTableColumnDirective, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatTreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", 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 }); }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatTreeTableComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatFilesUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
97
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatFilesUtilService, providedIn: 'root' }); }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatFilesUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
97
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatFilesUtilService, providedIn: 'root' }); }
98
98
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatFilesUtilService, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", 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 }); }
212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
213
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatUploadComponent, decorators: [{
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatUploadQueueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
376
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", 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 }); }
375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatUploadQueueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
376
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatUploadQueueComponent, decorators: [{
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ScrollService, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatAnimationOnScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
124
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", 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 }); }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatAnimationOnScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
124
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatAnimationOnScrollDirective, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatArrowCursorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
168
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", 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 }); }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatArrowCursorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
168
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatArrowCursorDirective, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatAutofocusDirective, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CsvExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
111
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CsvExporterService, providedIn: 'root' }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CsvExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
111
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CsvExporterService, providedIn: 'root' }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CsvExporterService, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: JsonExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
135
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: JsonExporterService, providedIn: 'root' }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: JsonExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
135
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: JsonExporterService, providedIn: 'root' }); }
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: JsonExporterService, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: TxtExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
169
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: TxtExporterService, providedIn: 'root' }); }
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TxtExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
169
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TxtExporterService, providedIn: 'root' }); }
170
170
  }
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: TxtExporterService, decorators: [{
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: XlsExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
216
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: XlsExporterService, providedIn: 'root' }); }
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XlsExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
216
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XlsExporterService, providedIn: 'root' }); }
217
217
  }
218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: XlsExporterService, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: XlsxExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
233
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: XlsxExporterService, providedIn: 'root' }); }
232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XlsxExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
233
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XlsxExporterService, providedIn: 'root' }); }
234
234
  }
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: XlsxExporterService, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: ServiceLocatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
268
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ServiceLocatorService, providedIn: 'root' }); }
267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ServiceLocatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
268
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ServiceLocatorService, providedIn: 'root' }); }
269
269
  }
270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ServiceLocatorService, decorators: [{
270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDataExporterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
331
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", 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 }); }
330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatDataExporterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
331
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDataExporterDirective, decorators: [{
333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: AbstractDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: AbstractDebounceDirective, isStandalone: true, inputs: { debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { emitChanged: "emitChanged" }, ngImport: i0 }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AbstractDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", 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.2", ngImport: i0, type: AbstractDebounceDirective, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDebounceClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatDebounceClickDirective, isStandalone: true, selector: "[cmatDebounceClick]", host: { listeners: { "click": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatDebounceClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDebounceClickDirective, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDebounceKeyupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatDebounceKeyupDirective, isStandalone: true, selector: "input,textarea[cmatDebounceKeyup]", host: { listeners: { "keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatDebounceKeyupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDebounceKeyupDirective, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDigitOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
247
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", 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 }); }
246
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatDigitOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
247
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatDigitOnlyDirective, decorators: [{
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
337
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatMaskDirective, isStandalone: true, selector: "[cmatMask]", host: { listeners: { "input": "onInputChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
336
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
337
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatMaskDirective, decorators: [{
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatEqualValidatorDirective, isStandalone: true, selector: "[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]", providers: [
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatEqualValidatorDirective, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatSeamlessAutoScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
118
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.2", 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 }); }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatSeamlessAutoScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
119
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatSeamlessAutoScrollDirective, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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":"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"}
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":"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"}
@@ -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.2", ngImport: i0, type: CmatMockApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
112
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatMockApiService, providedIn: 'root' }); }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatMockApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
112
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatMockApiService, providedIn: 'root' }); }
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatMockApiService, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatMockApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
177
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatMockApiInterceptor, providedIn: 'root' }); }
176
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatMockApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
177
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatMockApiInterceptor, providedIn: 'root' }); }
178
178
  }
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatMockApiInterceptor, decorators: [{
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", 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.2", ngImport: i0, type: CmatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.2", ngImport: i0, type: CmatBytesPipe, isStandalone: true, name: "cmatBytes" }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: CmatBytesPipe, isStandalone: true, name: "cmatBytes" }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatBytesPipe, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatBytesPipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{
22
22
  name: 'cmatBytes'