cmat 0.0.9 → 0.0.10

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.
@@ -4,7 +4,7 @@ import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
4
4
  import { MatCheckboxModule } from '@angular/material/checkbox';
5
5
  import { MatIconModule } from '@angular/material/icon';
6
6
  import { FieldType } from '@ngx-formly/material/form-field';
7
- import { isArray } from 'lodash';
7
+ import { isArray } from 'lodash-es';
8
8
  import { Subject, takeUntil, BehaviorSubject } from 'rxjs';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/common/http";
@@ -146,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
146
146
  type: ViewChild,
147
147
  args: ['tagsPanel']
148
148
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY3VzdG9tLWZvcm1seS90eXBlcy90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQThDLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQW1CdkUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQXFDO0lBWTVFLFlBQW9CLEtBQWlCLEVBQVUsUUFBaUIsRUFBVSxpQkFBbUMsRUFBVSxrQkFBcUM7UUFDeEosS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBTHBKLG1CQUFjLEdB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QUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUM7b0tBR2hCLGdCQUFnQjtzQkFBckQsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0ksVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbnRlcmZhY2UgVGFnc1Byb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XHJcbiAgICBkb21haW4/OiB7XHJcbiAgICAgICAgdXJsPzogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICAgICAga2V5Pzogc3RyaW5nO1xyXG4gICAgICAgIHZhbHVlPzogc3RyaW5nO1xyXG4gICAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC10YWdzLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFncy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBBc3luY1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0VGFnc1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFRhZ3NQcm9wcz4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgndGFnc1BhbmVsT3JpZ2luJykgcHJpdmF0ZSBfdGFnc1BhbmVsT3JpZ2luOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgndGFnc1BhbmVsJykgcHJpdmF0ZSBfdGFnc1BhbmVsOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIHVybERhdGE6IFtdO1xyXG4gICAgb3B0aW9uc0RhdGE6IGFueVtdO1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbHRlcmVkSXRlbXM6IEJlaGF2aW9yU3ViamVjdDxhbnlbXSB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXSB8IG51bGw+KG51bGwpO1xyXG4gICAgcHJpdmF0ZSBfdGFnc1BhbmVsT3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZpbHRlcmVkSXRlbXMkKCk6IE9ic2VydmFibGU8YW55W10gfCBudWxsPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVkSXRlbXMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHRhZ3MoKTogYW55W10ge1xyXG4gICAgICAgIGlmIChpc0FycmF5KHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVybERhdGE/Lmxlbmd0aCA+IDAgPyB0aGlzLnVybERhdGEgOiB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVybERhdGE/Lmxlbmd0aCA+IDAgPyB0aGlzLnVybERhdGEgOiB0aGlzLm9wdGlvbnNEYXRhIHx8IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5maWVsZC5wcm9wcz8ub3B0aW9ucyAmJiAhaXNBcnJheSh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zKSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNEYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gZGF0YXNbMF1bdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybERhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtcy5uZXh0KHRoaXMudGFncyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuVGFnc1BhbmVsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcclxuICAgICAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX3RhZ3NQYW5lbE9yaWdpbi5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSlcclxuICAgICAgICAgICAgICAgIC53aXRoVmlld3BvcnRNYXJnaW4oNjQpXHJcbiAgICAgICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpXHJcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl90YWdzUGFuZWxPdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3RhZ3NQYW5lbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XHJcblxyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYXR0YWNoKHRlbXBsYXRlUG9ydGFsKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBiYWNrZHJvcCBjbGlja1xyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiBvdmVybGF5IGV4aXN0cyBhbmQgYXR0YWNoZWQuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYgJiYgdGhpcy5fdGFnc1BhbmVsT3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBEZXRhY2ggaXRcclxuICAgICAgICAgICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHRhZyBmaWx0ZXJcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0ZW1wbGF0ZSBwb3J0YWwgZXhpc3RzIGFuZCBhdHRhY2hlZC4uLlxyXG4gICAgICAgICAgICBpZiAodGVtcGxhdGVQb3J0YWwgJiYgdGVtcGxhdGVQb3J0YWwuaXNBdHRhY2hlZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gRGV0YWNoIGl0XHJcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVBvcnRhbC5kZXRhY2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlclRhZ3MoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MuZmlsdGVyKHRhZyA9PiB0YWcubGFiZWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSB8fCB0YWcudmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVRhZyh0YWc6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0YWcuZGlzYWJsZWQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgfHwgW107XHJcbiAgICAgICAgY29uc3QgZXhpc3RzVGFnID0gZGF0YS5maW5kSW5kZXgoKGk6IHsgdmFsdWU6IGFueTsgfSkgPT4gaS52YWx1ZSA9PT0gdGFnLnZhbHVlKTtcclxuICAgICAgICBpZiAoZXhpc3RzVGFnPi0xKSB7XHJcbiAgICAgICAgICAgIGRhdGEuc3BsaWNlKGV4aXN0c1RhZywgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhLnVuc2hpZnQodGFnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShkYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgaXNDaGVjayh0YWc6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sLnZhbHVlPy5maWx0ZXIoKGk6IHsgdmFsdWU6IGFueTsgfSkgPT4gaS52YWx1ZSA9PT0gdGFnLnZhbHVlKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWxnIG1iLTJcIj5cclxuICAgIHt7IHByb3BzLmxhYmVsIH19XHJcbiAgICBAaWYocHJvcHMucmVxdWlyZWQpe1xyXG4gICAgPHNwYW4+Kjwvc3Bhbj5cclxuICAgIH1cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgLW0tMlwiIFt0YWJJbmRleF09XCJwcm9wcy50YWJpbmRleFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICBAZm9yIChzZWxlY3RlZEl0ZW0gb2YgZm9ybUNvbnRyb2wudmFsdWU7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTQgbS0xLjUgcm91bmRlZC1mdWxsIGxlYWRpbmctOSB0ZXh0LWdyYXktNTAwIGJnLXNsYXRlLTEwMCBkYXJrOnRleHQtZ3JheS0zMDAgZGFyazpiZy1zbGF0ZS03MDBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+e3tzZWxlY3RlZEl0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC00IG0tMS41IHJvdW5kZWQtZnVsbCBsZWFkaW5nLTkgY3Vyc29yLXBvaW50ZXIgdGV4dC1ncmF5LTUwMCBiZy1zbGF0ZS0xMDAgZGFyazp0ZXh0LWdyYXktMzAwIGRhcms6Ymctc2xhdGUtNzAwIHByaW50OmhpZGRlblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuVGFnc1BhbmVsKClcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgI3RhZ3NQYW5lbE9yaWdpbj5cclxuXHJcbiAgICAgICAgICAgIEBpZihmb3JtQ29udHJvbC52YWx1ZT8ubGVuZ3RoJiYhZGlzYWJsZWQpe1xyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtNVwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6cGVuY2lsLXNxdWFyZSdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEuNSB0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+57yW6L6RPC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYoIWZvcm1Db250cm9sLnZhbHVlPy5sZW5ndGgmJiFkaXNhYmxlZCl7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS01XCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDpwbHVzLWNpcmNsZSdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEuNSB0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+5paw5aKePC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RhZ3NQYW5lbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTYwIHJvdW5kZWQgYm9yZGVyIHNoYWRvdy1tZCBiZy1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG0tMyBtci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1zaXplLTVcIiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX3NvbGlkOm1hZ25pZnlpbmctZ2xhc3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ3LWZ1bGwgbWluLXctMCBweS0xIGJvcmRlci0wXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIui+k+WFpeagh+etvuWQjVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJmaWx0ZXJUYWdzKCRldmVudClcIiBbbWF4TGVuZ3RoXT1cIjMwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWF4LWgtNjQgcHktMiBib3JkZXItdCBvdmVyZmxvdy15LWF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgoZmlsdGVyZWRJdGVtcyQgfCBhc3luYyk7IGFzIGZpbHRlcmVkSXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGZpbHRlcmVkSXRlbXMubGVuZ3RoPjApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yICh0YWcgb2YgZmlsdGVyZWRJdGVtczsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgaC0xMCBtaW4taC0xMCBwbC0xIHByLTQgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctaG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVRhZyh0YWcpXCIgbWF0UmlwcGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGgtMTAgbWluLWgtMTBcIiBbY29sb3JdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGFnLmRpc2FibGVkXCIgW2NoZWNrZWRdPVwiaXNDaGVjayh0YWcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWcubGFiZWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBweC00IGgtMTAgbWluLWgtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaXoOe7k+aenFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY3VzdG9tLWZvcm1seS90eXBlcy90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQThDLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQW1CdkUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQXFDO0lBWTVFLFlBQW9CLEtBQWlCLEVBQVUsUUFBaUIsRUFBVSxpQkFBbUMsRUFBVSxrQkFBcUM7UUFDeEosS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBTHBKLG1CQUFjLEdB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QUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUM7b0tBR2hCLGdCQUFnQjtzQkFBckQsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0ksVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbnRlcmZhY2UgVGFnc1Byb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XHJcbiAgICBkb21haW4/OiB7XHJcbiAgICAgICAgdXJsPzogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICAgICAga2V5Pzogc3RyaW5nO1xyXG4gICAgICAgIHZhbHVlPzogc3RyaW5nO1xyXG4gICAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC10YWdzLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFncy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBBc3luY1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0VGFnc1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFRhZ3NQcm9wcz4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgndGFnc1BhbmVsT3JpZ2luJykgcHJpdmF0ZSBfdGFnc1BhbmVsT3JpZ2luOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgndGFnc1BhbmVsJykgcHJpdmF0ZSBfdGFnc1BhbmVsOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIHVybERhdGE6IFtdO1xyXG4gICAgb3B0aW9uc0RhdGE6IGFueVtdO1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbHRlcmVkSXRlbXM6IEJlaGF2aW9yU3ViamVjdDxhbnlbXSB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXSB8IG51bGw+KG51bGwpO1xyXG4gICAgcHJpdmF0ZSBfdGFnc1BhbmVsT3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZpbHRlcmVkSXRlbXMkKCk6IE9ic2VydmFibGU8YW55W10gfCBudWxsPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVkSXRlbXMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHRhZ3MoKTogYW55W10ge1xyXG4gICAgICAgIGlmIChpc0FycmF5KHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVybERhdGE/Lmxlbmd0aCA+IDAgPyB0aGlzLnVybERhdGEgOiB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVybERhdGE/Lmxlbmd0aCA+IDAgPyB0aGlzLnVybERhdGEgOiB0aGlzLm9wdGlvbnNEYXRhIHx8IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5maWVsZC5wcm9wcz8ub3B0aW9ucyAmJiAhaXNBcnJheSh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zKSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNEYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gZGF0YXNbMF1bdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybERhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtcy5uZXh0KHRoaXMudGFncyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuVGFnc1BhbmVsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcclxuICAgICAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX3RhZ3NQYW5lbE9yaWdpbi5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSlcclxuICAgICAgICAgICAgICAgIC53aXRoVmlld3BvcnRNYXJnaW4oNjQpXHJcbiAgICAgICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpXHJcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl90YWdzUGFuZWxPdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3RhZ3NQYW5lbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XHJcblxyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYXR0YWNoKHRlbXBsYXRlUG9ydGFsKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBiYWNrZHJvcCBjbGlja1xyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiBvdmVybGF5IGV4aXN0cyBhbmQgYXR0YWNoZWQuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYgJiYgdGhpcy5fdGFnc1BhbmVsT3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBEZXRhY2ggaXRcclxuICAgICAgICAgICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHRhZyBmaWx0ZXJcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0ZW1wbGF0ZSBwb3J0YWwgZXhpc3RzIGFuZCBhdHRhY2hlZC4uLlxyXG4gICAgICAgICAgICBpZiAodGVtcGxhdGVQb3J0YWwgJiYgdGVtcGxhdGVQb3J0YWwuaXNBdHRhY2hlZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gRGV0YWNoIGl0XHJcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVBvcnRhbC5kZXRhY2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlclRhZ3MoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MuZmlsdGVyKHRhZyA9PiB0YWcubGFiZWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSB8fCB0YWcudmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVRhZyh0YWc6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0YWcuZGlzYWJsZWQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgfHwgW107XHJcbiAgICAgICAgY29uc3QgZXhpc3RzVGFnID0gZGF0YS5maW5kSW5kZXgoKGk6IHsgdmFsdWU6IGFueTsgfSkgPT4gaS52YWx1ZSA9PT0gdGFnLnZhbHVlKTtcclxuICAgICAgICBpZiAoZXhpc3RzVGFnPi0xKSB7XHJcbiAgICAgICAgICAgIGRhdGEuc3BsaWNlKGV4aXN0c1RhZywgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhLnVuc2hpZnQodGFnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShkYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgaXNDaGVjayh0YWc6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sLnZhbHVlPy5maWx0ZXIoKGk6IHsgdmFsdWU6IGFueTsgfSkgPT4gaS52YWx1ZSA9PT0gdGFnLnZhbHVlKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWxnIG1iLTJcIj5cclxuICAgIHt7IHByb3BzLmxhYmVsIH19XHJcbiAgICBAaWYocHJvcHMucmVxdWlyZWQpe1xyXG4gICAgPHNwYW4+Kjwvc3Bhbj5cclxuICAgIH1cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgLW0tMlwiIFt0YWJJbmRleF09XCJwcm9wcy50YWJpbmRleFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICBAZm9yIChzZWxlY3RlZEl0ZW0gb2YgZm9ybUNvbnRyb2wudmFsdWU7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTQgbS0xLjUgcm91bmRlZC1mdWxsIGxlYWRpbmctOSB0ZXh0LWdyYXktNTAwIGJnLXNsYXRlLTEwMCBkYXJrOnRleHQtZ3JheS0zMDAgZGFyazpiZy1zbGF0ZS03MDBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+e3tzZWxlY3RlZEl0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC00IG0tMS41IHJvdW5kZWQtZnVsbCBsZWFkaW5nLTkgY3Vyc29yLXBvaW50ZXIgdGV4dC1ncmF5LTUwMCBiZy1zbGF0ZS0xMDAgZGFyazp0ZXh0LWdyYXktMzAwIGRhcms6Ymctc2xhdGUtNzAwIHByaW50OmhpZGRlblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuVGFnc1BhbmVsKClcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgI3RhZ3NQYW5lbE9yaWdpbj5cclxuXHJcbiAgICAgICAgICAgIEBpZihmb3JtQ29udHJvbC52YWx1ZT8ubGVuZ3RoJiYhZGlzYWJsZWQpe1xyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtNVwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6cGVuY2lsLXNxdWFyZSdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEuNSB0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+57yW6L6RPC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYoIWZvcm1Db250cm9sLnZhbHVlPy5sZW5ndGgmJiFkaXNhYmxlZCl7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS01XCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDpwbHVzLWNpcmNsZSdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEuNSB0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+5paw5aKePC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RhZ3NQYW5lbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTYwIHJvdW5kZWQgYm9yZGVyIHNoYWRvdy1tZCBiZy1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG0tMyBtci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1zaXplLTVcIiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX3NvbGlkOm1hZ25pZnlpbmctZ2xhc3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ3LWZ1bGwgbWluLXctMCBweS0xIGJvcmRlci0wXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIui+k+WFpeagh+etvuWQjVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJmaWx0ZXJUYWdzKCRldmVudClcIiBbbWF4TGVuZ3RoXT1cIjMwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWF4LWgtNjQgcHktMiBib3JkZXItdCBvdmVyZmxvdy15LWF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgoZmlsdGVyZWRJdGVtcyQgfCBhc3luYyk7IGFzIGZpbHRlcmVkSXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGZpbHRlcmVkSXRlbXMubGVuZ3RoPjApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yICh0YWcgb2YgZmlsdGVyZWRJdGVtczsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgaC0xMCBtaW4taC0xMCBwbC0xIHByLTQgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctaG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVRhZyh0YWcpXCIgbWF0UmlwcGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGgtMTAgbWluLWgtMTBcIiBbY29sb3JdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGFnLmRpc2FibGVkXCIgW2NoZWNrZWRdPVwiaXNDaGVjayh0YWcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWcubGFiZWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBweC00IGgtMTAgbWluLWgtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaXoOe7k+aenFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
@@ -55,7 +55,6 @@ import { MatTooltipModule } from '@angular/material/tooltip';
55
55
  import * as i1$5 from '@angular/material/tabs';
56
56
  import { MatTabsModule } from '@angular/material/tabs';
57
57
  import { TemplatePortal } from '@angular/cdk/portal';
58
- import { isArray as isArray$1 } from 'lodash';
59
58
  import * as i2$6 from '@angular/cdk/overlay';
60
59
  import { CmatUploadQueueComponent } from 'cmat/components/upload';
61
60
 
@@ -1130,7 +1129,7 @@ class CmatTagsTypeComponent extends FieldType {
1130
1129
  return this._filteredItems.asObservable();
1131
1130
  }
1132
1131
  get tags() {
1133
- if (isArray$1(this.field.props?.options)) {
1132
+ if (isArray(this.field.props?.options)) {
1134
1133
  return this.urlData?.length > 0 ? this.urlData : this.field.props?.options || [];
1135
1134
  }
1136
1135
  else {
@@ -1138,7 +1137,7 @@ class CmatTagsTypeComponent extends FieldType {
1138
1137
  }
1139
1138
  }
1140
1139
  ngOnInit() {
1141
- if (this.field.props?.options && !isArray$1(this.field.props?.options)) {
1140
+ if (this.field.props?.options && !isArray(this.field.props?.options)) {
1142
1141
  this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe((data) => {
1143
1142
  this.optionsData = data;
1144
1143
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-custom-formly.mjs","sources":["../../../projects/cmat/components/custom-formly/extension/addons.extension.ts","../../../projects/cmat/components/custom-formly/wrappers/addons/addons.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.html","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.ts","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.html","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.ts","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.html","../../../projects/cmat/components/custom-formly/types/button/button.component.ts","../../../projects/cmat/components/custom-formly/types/button/button.component.html","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.ts","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.html","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.ts","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.html","../../../projects/cmat/components/custom-formly/types/chips/chips.component.ts","../../../projects/cmat/components/custom-formly/types/chips/chips.component.html","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.ts","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.html","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.ts","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.html","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.ts","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.html","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.ts","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.html","../../../projects/cmat/components/custom-formly/types/number/number.component.ts","../../../projects/cmat/components/custom-formly/types/number/number.component.html","../../../projects/cmat/components/custom-formly/types/rating/rating.component.ts","../../../projects/cmat/components/custom-formly/types/rating/rating.component.html","../../../projects/cmat/components/custom-formly/types/radio/radio.component.ts","../../../projects/cmat/components/custom-formly/types/radio/radio.component.html","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.ts","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.html","../../../projects/cmat/components/custom-formly/types/select/select.component.ts","../../../projects/cmat/components/custom-formly/types/select/select.component.html","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.ts","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.html","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.html","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.html","../../../projects/cmat/components/custom-formly/types/table/table.component.ts","../../../projects/cmat/components/custom-formly/types/table/table.component.html","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.ts","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.html","../../../projects/cmat/components/custom-formly/types/tags/tags.component.ts","../../../projects/cmat/components/custom-formly/types/tags/tags.component.html","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.ts","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.html","../../../projects/cmat/components/custom-formly/types/upload/upload.component.ts","../../../projects/cmat/components/custom-formly/types/upload/upload.component.html","../../../projects/cmat/components/custom-formly/cmat-components-custom-formly.ts"],"sourcesContent":["import { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { isNil } from 'lodash-es';\r\n\r\nexport function addonsExtension(field: FormlyFieldConfig): void {\r\n if (!field.props || (field.wrappers && field.wrappers.indexOf('addons') !== -1)) {\r\n return;\r\n }\r\n\r\n if ((field.props.addonLeft && ((!isNil(field.props.addonLeft.icon) && field.props.addonLeft.icon !== '')\r\n || (!isNil(field.props.addonLeft.text)) && field.props.addonLeft.text !== ''))\r\n || (field.props.addonRight && ((!isNil(field.props.addonRight.icon) && field.props.addonRight.icon !== '')\r\n || (!isNil(field.props.addonRight.text)) && field.props.addonRight.text !== ''))) {\r\n field.wrappers = [...(field.wrappers || []), 'addons'];\r\n }\r\n}","import { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { FormlyMaterialModule } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-addons-wrapper',\r\n template: `\r\n <ng-template #matPrefix>\r\n @if(props.addonLeft){\r\n <span>\r\n @if(props.addonLeft.icon){\r\n <mat-icon [svgIcon]=\"props.addonLeft.icon\"></mat-icon>\r\n }\r\n @if(props.addonLeft.text){\r\n <span>{{ props.addonLeft.text }}</span>\r\n } \r\n \r\n </span>\r\n } \r\n </ng-template>\r\n\r\n <ng-container #fieldComponent></ng-container>\r\n\r\n <ng-template #matSuffix>\r\n @if(props.addonRight){\r\n <span>\r\n @if(props.addonRight.icon){\r\n <mat-icon [svgIcon]=\"props.addonRight.icon\"></mat-icon>\r\n }\r\n @if(props.addonRight.text) {\r\n <span>{{ props.addonRight.text }}</span>\r\n }\r\n </span>\r\n }\r\n </ng-template>\r\n `,\r\n standalone: true,\r\n imports: [MatIconModule,FormlyMaterialModule]\r\n})\r\nexport class CmatAddonsWrapperComponent extends FieldWrapper implements AfterViewInit {\r\n @ViewChild('matPrefix', { static: true }) matPrefix!: TemplateRef<any>;\r\n @ViewChild('matSuffix', { static: true }) matSuffix!: TemplateRef<any>;\r\n\r\n ngAfterViewInit(): void {\r\n if (this.matPrefix) {\r\n this.props.prefix = this.matPrefix;\r\n }\r\n\r\n if (this.matSuffix) {\r\n this.props.suffix = this.matSuffix;\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-card-wrapper',\r\n templateUrl: './card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[MatCardModule]\r\n})\r\nexport class CmatCardWrapperComponent extends FieldWrapper {}\r\n","<mat-card class=\"dark:bg-white dark:bg-opacity-5\">\r\n @if(props.label){\r\n <mat-card-title class=\"p-4\">{{ props.label }}</mat-card-title>\r\n }\r\n \r\n <mat-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </mat-card-content> \r\n</mat-card>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-expansion-wrapper',\r\n templateUrl: './expansion.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[MatExpansionModule]\r\n})\r\nexport class CmatExpansionWrapperComponent extends FieldWrapper {}\r\n","<mat-expansion-panel [expanded]=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ to.label }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ to.description }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent #fieldComponent></ng-template>\r\n</mat-expansion-panel>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-panel-wrapper',\r\n templateUrl: './panel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[]\r\n})\r\nexport class CmatPanelWrapperComponent extends FieldWrapper {}\r\n","<h3 class=\"px-2\">{{ to.label }}</h3>\r\n<div>\r\n <ng-container #fieldComponent></ng-container>\r\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isString } from 'lodash-es';\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst evilFn = (fn: string) => {\r\n const fnc = Function;\r\n return new fnc(`return ${fn}`)();\r\n};\r\n\r\ninterface ButtonProps extends FormlyFieldProps {\r\n color?: 'primary' | 'accent' | 'warn';\r\n onClick?: any;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-button-type',\r\n templateUrl: './button.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatButtonModule]\r\n})\r\nexport class CmatButtonTypeComponent extends FieldType<FieldTypeConfig<ButtonProps>> {\r\n override defaultOptions = {\r\n props: {\r\n color: 'primary' as const\r\n }\r\n };\r\n\r\n onClick($event: Event): void {\r\n if (this.props.onClick) {\r\n if (isString(this.props.onClick)) {\r\n const func = evilFn(this.props.onClick);\r\n func();\r\n }\r\n else {\r\n this.props.onClick($event);\r\n }\r\n }\r\n }\r\n}","<button class=\"print:hidden\" mat-raised-button [type]=\"props.type\" [color]=\"props.color\" [disabled]=\"disabled\" (click)=\"onClick($event)\">\r\n {{ to.label }}\r\n</button>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCascadeListComponent } from 'cmat/components/cascade';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\n\r\ninterface ChipsCascadeProps extends FormlyFieldProps {\r\n clearable: boolean;\r\n fullLevels: boolean;\r\n changeOnSelect: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-cascade-type',\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule, CmatCascadeListComponent]\r\n})\r\nexport class CmatCascadeTypeComponent extends FieldType<FieldTypeConfig<ChipsCascadeProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n clearable: false,\r\n fullLevels: true,\r\n changeOnSelect: false\r\n },\r\n };\r\n urlData: [] = [];\r\n isHandSet: boolean;\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient, private _changeDetectorRef: ChangeDetectorRef, private _cmatMediaWatcherService: CmatMediaWatcherService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-cascade-list [formControl]=\"formControl\" [clearable]=\"props.clearable\" [fullLevels]=\"props.fullLevels\"\r\n [changeOnSelect]=\"props.changeOnSelect\" [placeholder]=\"placeholder\" [options]=\"urlData\" [tabIndex]=\"props.tabindex\"\r\n [required]=\"required\" [touchUi]=\"isHandSet\"></cmat-cascade-list>","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n Component, OnInit, OnDestroy, ChangeDetectionStrategy, ViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CmatSecurePipe } from 'cmat/pipes/secure';\r\n\r\ninterface CheckListProps extends FormlyFieldProps {\r\n showAllCheck: boolean;\r\n controlMaxHeight: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-checklist-type',\r\n templateUrl: './checklist.component.html',\r\n styleUrls: ['./checklist.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatCheckboxModule, MatIconModule, NgClass, MatRippleModule, AsyncPipe, CmatSecurePipe]\r\n})\r\nexport class CmatCheckListTypeComponent extends FieldType<FieldTypeConfig<CheckListProps>> implements OnInit, OnDestroy {\r\n isIndeterminate = false;\r\n isChecked = false;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n checklist: any[] = [];\r\n filteredData: any[] = [];\r\n\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options || [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n\r\n this.formControl.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (value) => {\r\n this.checklist = value||[];\r\n\r\n this._getAllCheckCountState();\r\n }\r\n );\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id || index;\r\n }\r\n\r\n filterByQuery(event: any): void {\r\n this.filteredData = this.datas.filter(data => data.value.toString().toLowerCase().includes(event) || data.label.toLowerCase().includes(event));\r\n this._filteredItems.next(this.filteredData);\r\n\r\n this._getAllCheckCountState();\r\n }\r\n\r\n toggleCheckList(data: any, event: any): void {\r\n event.preventDefault();\r\n\r\n if (data.disabled || this.props.disabled)\r\n return;\r\n\r\n const index = this.checklist.findIndex(item => item.value === data.value);\r\n if (index > -1) {\r\n this.checklist.splice(index, 1);\r\n } else {\r\n this.checklist.push(data);\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n allCheckChange(check: boolean): void {\r\n if (check) {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value);\r\n if (index < 0 && !t.disabled) {\r\n this.checklist.push(t);\r\n }\r\n\r\n });\r\n } else {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value);\r\n if (index > -1) {\r\n this.checklist.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n isCheck(data: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === data.value).length > 0;\r\n }\r\n\r\n private _getAllCheckCountState(): void {\r\n if (this.props.showAllCheck && !this.props.disabled) {\r\n let allCheckCount = 0;\r\n\r\n if (this.checklist?.length > 0) {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value && !t.disabled);\r\n if (index > -1) {\r\n allCheckCount += 1;\r\n }\r\n });\r\n\r\n if (this.filteredData.filter(i => !i.disabled).length === allCheckCount) {\r\n this.isChecked = true;\r\n this.isIndeterminate = false;\r\n } else if (allCheckCount === 0) {\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n } else {\r\n this.isChecked = false;\r\n this.isIndeterminate = true;\r\n }\r\n } else {\r\n this.checklist = [];\r\n\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n }\r\n }\r\n }\r\n}\r\n\r\n","<div class=\"flex flex-col\">\r\n <div class=\"p-2\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n <div class=\"w-full h-full rounded border shadow bg-card\" [tabIndex]=\"props.tabindex\">\r\n <div class=\"flex items-center m-1 mr-2 min-h-12 print:hidden\">\r\n @if (props.showAllCheck&&!props.disabled) {\r\n <div>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 m-1\" [color]=\"'primary'\" [checked]=\"isChecked\"\r\n [indeterminate]=\"isIndeterminate\" (change)=\"allCheckChange($event.checked)\">\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <div class=\"flex items-center w-full\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\"></mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-0\" type=\"text\" placeholder=\"输入过滤信息\"\r\n (input)=\"filterByQuery(query.value)\" #query>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"border-t overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [ngClass]=\"props.controlMaxHeight?'max-h-64 sm:max-h-128 lg:max-h-64':''\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (data of filteredItems; track trackByFn($index, data)) {\r\n <div role=\"presentation\" class=\"flex items-center pl-2 pr-4 py-2 cursor-pointer hover:bg-hover\" matRipple\r\n (click)=\"toggleCheckList(data,$event)\">\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 pointer-events-none\" [color]=\"'primary'\" disableRipple\r\n [checked]=\"isCheck(data)\" [value]=\"data\" [disabled]=\"data.disabled||props.disabled\">\r\n <div class=\"flex flex-col flex-auto\">\r\n <div class=\"font-medium leading-5 truncate\">{{data.label}}</div>\r\n </div>\r\n </mat-checkbox>\r\n </div>\r\n }\r\n } @else {\r\n <div\r\n class=\"flex flex-auto flex-col items-center justify-center bg-slate-100 dark:bg-transparent h-64 sm:h-128 lg:h-64\">\r\n <mat-icon class=\"icon-size-24\" [svgIcon]=\"'heroicons_outline:document-magnifying-glass'\"></mat-icon>\r\n <div class=\"mt-4 text-2xl font-bold tracking-tight text-secondary\">没有数据!</div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatChipInputComponent } from 'cmat/components/chip-input';\r\n\r\ninterface ChipsInputProps extends FormlyFieldProps {\r\n hasAutocomplete?: boolean;\r\n autocompleteText?: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-chips-input-type',\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule,CmatChipInputComponent]\r\n})\r\nexport class CmatChipsInputTypeComponent extends FieldType<FieldTypeConfig<ChipsInputProps>> implements OnInit, OnDestroy {\r\n autocompleteUrlData: [];\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get autocompleteText(): string[] {\r\n return this.autocompleteUrlData?.length > 0 ? this.autocompleteUrlData : this.props?.autocompleteText?.split(',') || [];\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.autocompleteUrlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n );\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-chip-input [hasAutocomplete]=\"props.hasAutocomplete??false\" [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\" [selectableOptions]=\"autocompleteText\" [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-chip-input>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { CmatMaterialColorPickerComponent } from 'cmat/components/material-color-picker';\r\n\r\n@Component({\r\n selector: 'cmat-color-picker-type',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls:['./color-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule,CmatMaterialColorPickerComponent]\r\n})\r\nexport class CmatColorPickerTypeComponent extends FieldType<FieldTypeConfig> {\r\n}","<cmat-material-color-picker [title]=\"props.label??''\" [formControl]=\"formControl\" [readonly]=\"disabled\"\r\n [tabindex]=\"props.tabindex\"></cmat-material-color-picker>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatDateRangeComponent } from 'cmat/components/date-range';\r\n\r\ninterface DateRangeProps extends FormlyFieldProps {\r\n dateFormat: string;\r\n timeFormat: string;\r\n timeRange: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-date-range-type',\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatDateRangeComponent,ReactiveFormsModule]\r\n})\r\nexport class CmatDateRangeTypeComponent extends FieldType<FieldTypeConfig<DateRangeProps>>{\r\n override defaultOptions = {\r\n props: {\r\n dateFormat: 'YYYY/MM/DD',\r\n timeFormat: '24',\r\n timeRange: true\r\n },\r\n };\r\n}","<cmat-date-range [dateFormat]=\"props.dateFormat\" [timeFormat]=\"props.timeFormat\" [timeRange]=\"props.timeRange\" \r\n[formControl]=\"formControl\" [tabindex]=\"props.tabindex\" [readonly]=\"disabled\">\r\n</cmat-date-range>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCalendarView, CmatDatetimepickerComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerMode, CmatDatetimepickerToggleComponent, CmatDatetimepickerType } from 'cmat/components/material-datetimepicker';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\n\r\ninterface DatepickerProps extends FormlyFieldProps {\r\n startView: CmatCalendarView;\r\n mode: CmatDatetimepickerMode;\r\n togglePosition: 'left' | 'right';\r\n timeInterval: number;\r\n type: CmatDatetimepickerType;\r\n multiYearSelector: boolean;\r\n twelvehour: boolean;\r\n timeInput: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-datepicker-type',\r\n templateUrl: './datepicker.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatDatetimepickerToggleComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerComponent, MatInputModule, FormsModule, ReactiveFormsModule]\r\n})\r\nexport class CmatDatepickerTypeComponent extends FieldType<FieldTypeConfig<DatepickerProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n startView: 'month' as const,\r\n mode: 'auto' as const,\r\n togglePosition: 'left' as const,\r\n timeInterval: 5,\r\n type: 'datetime' as const,\r\n multiYearSelector: false,\r\n disabled: false,\r\n timeInput: true,\r\n twelvehour: false\r\n }\r\n };\r\n\r\n isHandSet: boolean;\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _cmatMediaWatcherService: CmatMediaWatcherService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","@if(props.togglePosition==='left'){\r\n<cmat-datetimepicker-toggle [for]=\"datetimePicker\" [disabled]=\"disabled\" matPrefix></cmat-datetimepicker-toggle>\r\n}\r\n\r\n<cmat-datetimepicker #datetimePicker openOnFocus=\"true\" [startView]=\"props.startView\" [mode]=\"props.mode\"\r\n [timeInterval]=\"props.timeInterval\" [twelvehour]=\"props.twelvehour\" [type]=\"props.type\"\r\n [multiYearSelector]=\"props.multiYearSelector\" [timeInput]=\"props.timeInput\" [touchUi]=\"isHandSet\"\r\n [disabled]=\"disabled\"></cmat-datetimepicker>\r\n\r\n<input [cmatDatetimepicker]=\"datetimePicker\" [required]=\"required\" [formControl]=\"formControl\" autocomplete=\"false\"\r\n [placeholder]=\"placeholder\" matInput />\r\n\r\n@if(props.togglePosition==='right'){\r\n<cmat-datetimepicker-toggle [for]=\"datetimePicker\" [disabled]=\"disabled\" matSuffix></cmat-datetimepicker-toggle>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChildren, QueryList, Type, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\n\r\ninterface MultiCheckboxProps extends FormlyFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyMultiCheckboxFieldConfig extends FormlyFieldConfig<MultiCheckboxProps> {\r\n type: 'multicheckbox' | Type<CmatMultiCheckboxTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-multicheckbox-type',\r\n templateUrl: './multicheckbox.component.html',\r\n styleUrls:['./multicheckbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatCheckboxModule, AsyncPipe, FormlySelectModule]\r\n})\r\nexport class CmatMultiCheckboxTypeComponent extends FieldType<FieldTypeConfig<MultiCheckboxProps>> implements OnInit, OnDestroy {\r\n @ViewChildren(MatCheckbox) checkboxes!: QueryList<MatCheckbox>;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n color: 'accent' as const,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get urlData$(): Observable<any[] > {\r\n return this._urlData.asObservable();\r\n }\r\n\r\n onChange(value: any, checked: boolean): void {\r\n this.formControl.markAsDirty();\r\n if (this.props.type === 'array') {\r\n this.formControl.patchValue(\r\n checked\r\n ? [...(this.formControl.value || []), value]\r\n : [...(this.formControl.value || [])].filter(o => o !== value),\r\n );\r\n } else {\r\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\r\n }\r\n this.formControl.markAsTouched();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n override onContainerClick(): void { }\r\n\r\n isChecked(option: any): any {\r\n const value = this.formControl.value;\r\n\r\n return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","@if ((urlData$ | async); as urlData) {\r\n@for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\ntrackByFn($index)) {\r\n<mat-checkbox [tabIndex]=\"props.tabindex\" [color]=\"props.color\" [labelPosition]=\"props.labelPosition\"\r\n [checked]=\"isChecked(option)\" [disabled]=\"formControl.disabled || option.disabled\"\r\n (change)=\"onChange(option.value, $event.checked)\">\r\n {{ option.label }}\r\n</mat-checkbox>\r\n}\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatDigitOnlyDirective } from 'cmat/directives/digit-only';\r\n\r\ninterface NumberProps extends FormlyFieldProps {\r\n decimal: boolean;\r\n min: number;\r\n max: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-number-type',\r\n templateUrl: './number.component.html',\r\n styleUrls: ['./number.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatDigitOnlyDirective, MatInputModule,ReactiveFormsModule]\r\n})\r\nexport class CmatNumberTypeComponent extends FieldType<FieldTypeConfig<NumberProps>>{\r\n override defaultOptions = {\r\n props: {\r\n decimal: false,\r\n min: -Infinity,\r\n max: Infinity\r\n },\r\n };\r\n}","<input matInput [formControl]=\"formControl\" [readonly]=\"props.readonly\" [placeholder]=\"placeholder\" [tabIndex]=\"props.tabindex\" [required]=\"required\" [decimal]=\"props.decimal\" [allowNegatives]=\"true\" [allowPaste]=\"true\" [min]=\"props.min\"\r\n [max]=\"props.max\" [errorStateMatcher]=\"errorStateMatcher\" cmatDigitOnly>\r\n\r\n","import { NgStyle } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatRatingComponent } from 'cmat/components/rating';\r\n\r\ninterface RatingProps extends FormlyFieldProps {\r\n stars: number;\r\n readonly: boolean;\r\n hover: boolean;\r\n half: boolean;\r\n customColor?: string;\r\n showMode?: 'horizontal' | 'vertical';\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-rating-type',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatRatingComponent, ReactiveFormsModule,NgStyle]\r\n})\r\nexport class CmatRatingTypeComponent extends FieldType<FieldTypeConfig<RatingProps>>{\r\n override defaultOptions = {\r\n props: {\r\n stars: 5,\r\n readonly: false,\r\n hover: true,\r\n half: true\r\n },\r\n };\r\n\r\n}","@if(props.customColor&&props.customColor.indexOf('#')>-1){\r\n<div [ngStyle]=\"{'color': props.customColor}\">\r\n <cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\"\r\n [readonly]=\"props.readonly\" [hover]=\"props.hover\" [half]=\"props.half\" [showMode]=\"props.showMode\"></cmat-rating>\r\n</div>\r\n}@else{\r\n<cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\" [readonly]=\"props.readonly\"\r\n [hover]=\"props.hover\" [half]=\"props.half\" [color]=\"props.customColor\" [showMode]=\"props.showMode\"></cmat-rating>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChild, AfterViewInit, OnDestroy, Type, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatRadioGroup, MatRadioModule } from '@angular/material/radio';\r\nimport { FieldTypeConfig, FormlyFieldConfig , ɵobserve as observe } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\n\r\ninterface RadioProps extends FormlyFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyRadioFieldConfig extends FormlyFieldConfig<RadioProps> {\r\n type: 'radio' | Type<CmatRadioTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-radio-type',\r\n templateUrl: './radio.component.html',\r\n styleUrls:['./radio.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatRadioModule, AsyncPipe, FormlySelectModule,ReactiveFormsModule]\r\n})\r\nexport class CmatRadioTypeComponent extends FieldType<FieldTypeConfig<RadioProps>> implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatRadioGroup, { static: true }) radioGroup!: MatRadioGroup;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n tabindex: -1,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n\r\n private focusObserver!: ReturnType<typeof observe>;\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n get urlData$(): Observable<any[] > {\r\n return this._urlData.asObservable();\r\n }\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.focusObserver = observe(this.field, ['focus'], ({ currentValue }) => {\r\n if (this.props.tabindex === -1 && currentValue && this.radioGroup._radios.length > 0) {\r\n setTimeout(() => {\r\n const radio = this.radioGroup.selected ? this.radioGroup.selected : this.radioGroup._radios.first;\r\n radio.focus();\r\n });\r\n }\r\n });\r\n }\r\n\r\n override onContainerClick(): void { }\r\n\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.focusObserver && this.focusObserver.unsubscribe();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-radio-group [formControl]=\"formControl\" [required]=\"required\" [tabindex]=\"props.tabindex\">\r\n @if ((urlData$ | async); as urlData) {\r\n @for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\n trackByFn($index)) {\r\n <mat-radio-button [color]=\"props.color\" [labelPosition]=\"props.labelPosition\" [disabled]=\"option.disabled\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-radio-button>\r\n }\r\n }\r\n</mat-radio-group>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyFieldProps, FormlyModule } from '@ngx-formly/core';\r\n\r\ninterface RepeatProps extends FormlyFieldProps {\r\n addText: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-repeat-type',\r\n templateUrl: './repeat.component.html',\r\n styleUrls: ['./repeat.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [FormlyModule, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatRepeatTypeComponent extends FieldArrayType<FieldTypeConfig<RepeatProps>> {\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track trackByFn($index)) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field [field]=\"field\" class=\"repeat-field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button mat-icon-button color=\"warn\" (click)=\"remove($index)\" matTooltip=\"删除\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button mat-raised-button color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { ReplaySubject, Subject, of, take, takeUntil } from 'rxjs';\r\nimport { CmatSelectSearchComponent } from 'cmat/components/select-search';\r\n\r\ninterface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\r\n multiple?: boolean;\r\n disableOptionCentering?: boolean;\r\n typeaheadDebounceInterval?: number;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-search-type',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatCheckboxModule, MatSelectModule, CmatSelectSearchComponent, ReactiveFormsModule, AsyncPipe]\r\n})\r\nexport class CmatSelectTypeComponent extends FieldType<FieldTypeConfig<SelectProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false\r\n },\r\n };\r\n\r\n optionsData: any[];\r\n\r\n filteredCustomDetails: ReplaySubject<any[]> = new ReplaySubject<any[]>(1);\r\n filteredCache: any[] = [];\r\n isIndeterminate = false;\r\n isChecked = false;\r\n multiFilterCtrl: FormControl = new FormControl<string>('');\r\n\r\n private _urlData: [] = [];\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this._urlData?.length > 0 ? this._urlData : this.field.props?.options || [];\r\n } else {\r\n return this._urlData?.length > 0 ? this._urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData = datas[0][this.field.props?.domain?.value];\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n );\r\n } else {\r\n this._urlData = [];\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n of(this.props.multiple).pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n if (!isArray(this.formControl.value)) {\r\n const value = [this.formControl.value];\r\n\r\n this.formControl.setValue(value);\r\n }\r\n });\r\n\r\n this.multiFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n this.filterMulti();\r\n\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n\r\n this.formControl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n getAriaLabelledby(): string {\r\n if (this.props.attributes?.['aria-labelledby']) {\r\n return this.props.attributes['aria-labelledby'] as string;\r\n }\r\n\r\n return this.formField?._labelId;\r\n }\r\n\r\n getAriaLabel(): string {\r\n return this.props.attributes?.['aria-label'] as string;\r\n }\r\n\r\n toggleSelectAll(selectAllValue: boolean): void {\r\n this.filteredCustomDetails.pipe(\r\n take(1),\r\n takeUntil(this._unsubscribeAll)\r\n )\r\n .subscribe((val) => {\r\n if (selectAllValue) {\r\n this.formControl.setValue(val.filter(o => !o.disabled));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.formControl.markAsDirty();\r\n });\r\n }\r\n\r\n filterMulti(): void {\r\n if (!this.datas) {\r\n return;\r\n }\r\n\r\n let search = this.multiFilterCtrl.value;\r\n if (!search) {\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n\r\n this.filteredCache = this.datas.filter(items => items.value.toString().toLowerCase().indexOf(search) > -1 || items.label.toString().toLowerCase().indexOf(search) > -1);\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n setToggleAllCheckboxState(): void {\r\n let filteredLength = 0;\r\n if (this.formControl.value && this.props.search) {\r\n const cache = this.filteredCache.filter(o => !o.disabled);\r\n\r\n const v = isArray(this.formControl.value) ? this.formControl.value : [this.formControl.value];\r\n\r\n cache.forEach((el) => {\r\n if (v.findIndex((t: { value: any; label: any; }) => t.value === el.value && t.label === el.label) > -1) {\r\n filteredLength++;\r\n }\r\n });\r\n\r\n this.isIndeterminate = filteredLength > 0 && filteredLength < cache.length;\r\n this.isChecked = filteredLength > 0 && filteredLength === cache.length;\r\n }else{\r\n this.isIndeterminate =false;\r\n this.isChecked =false;\r\n }\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n\r\n compareWithFn(o1: any, o2: any): boolean {\r\n return o1 && o2 ? o1?.label === o2?.label && o1?.value === o2?.value : o1 === o2;\r\n }\r\n}\r\n","@if(props.multiple){\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\" multiple\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) { \r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatSelectTreeComponent } from 'cmat/components/select-tree';\r\n\r\ninterface SelectTreeProps extends FormlyFieldProps, FormlyFieldSelectProps {\r\n multiple: boolean;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n expandable: boolean;\r\n customTriggerLabelTemplate: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-tree-type',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule, CmatSelectTreeComponent]\r\n})\r\nexport class CmatSelectTreeTypeComponent extends FieldType<FieldTypeConfig<SelectTreeProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n multiple: false,\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false,\r\n expandable: true,\r\n customTriggerLabelTemplate: '${name}'\r\n },\r\n };\r\n urlData: [] = [];\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n constructor(private _http: HttpClient, private _changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-select-tree [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\" [expandable]=\"props.expandable\" [placeholder]=\"placeholder\"\r\n [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-tree>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-horizontal-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls:['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [FormlyModule, MatStepperModule, MatButtonModule,ReactiveFormsModule,MatIconModule]\r\n})\r\nexport class CmatStepperHorizontalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-horizontal-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index !== 0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n\r\n</mat-horizontal-stepper>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-vertical-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls:['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[FormlyModule, MatStepperModule, MatButtonModule,ReactiveFormsModule,MatIconModule]\r\n})\r\nexport class CmatStepperVerticalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-vertical-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index!==0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n</mat-vertical-stepper>","import {CdkDrag} from '@angular/cdk/drag-drop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ChangeDetectionStrategy, OnInit, TemplateRef, ViewChild, ViewContainerRef, inject, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTable, MatTableModule } from '@angular/material/table';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyFieldConfig, FormlyFieldProps, FormlyModule } from '@ngx-formly/core';\r\n\r\ninterface TableProps extends FormlyFieldProps {\r\n addText: string;\r\n showColumn?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-table-type',\r\n templateUrl: 'table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatButtonModule, MatIconModule, MatTableModule, FormsModule, FormlyModule,CdkDrag,\r\n ReactiveFormsModule, MatDialogModule, NgTemplateOutlet,MatTooltipModule]\r\n})\r\nexport class CmatTableTypeComponent extends FieldArrayType<FieldTypeConfig<TableProps>> implements OnInit {\r\n @ViewChild('dialogRef') dialogRef: TemplateRef<any>;\r\n @ViewChild('table') table: MatTable<any>;\r\n\r\n inlineform = new FormGroup({});\r\n currentMode: any = {};\r\n currentIndex: number;\r\n\r\n columns: Array<{ key: string, label: string }>;\r\n displayedColumns: string[] = [];\r\n\r\n dialogType: 'add' | 'edit' | '' = '';\r\n\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n\r\n private readonly _dialog = inject(MatDialog);\r\n private readonly _viewContainerRef = inject(ViewContainerRef);\r\n private _dialogRef: MatDialogRef<any>;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n get fieldArray(): FormlyFieldConfig[] {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup!;\r\n }\r\n\r\n get key(): string {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].id!;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.columns = (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].fieldGroup!.\r\n filter(field => field.props?.showColumn).map(field => ({\r\n key: field.key as string,\r\n label: field.props?.label ?? '',\r\n }));\r\n\r\n if (this.props.disabled) {\r\n this.displayedColumns = [...this.columns.map(column => column.key)];\r\n } else {\r\n this.displayedColumns = [...this.columns.map(column => column.key), '_actions_'];\r\n }\r\n }\r\n\r\n addRow(): void {\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n\r\n this.dialogType = 'add';\r\n this.currentMode = {};\r\n this.inlineform.reset();\r\n }\r\n\r\n editRow(item: any, index: number): void {\r\n this.currentIndex = index;\r\n\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n this.dialogType = 'edit';\r\n this.currentMode = {\r\n [this.key]: item\r\n };\r\n }\r\n\r\n deleteRow(id: number): void {\r\n this.remove(id);\r\n\r\n this.table.renderRows();\r\n }\r\n\r\n confirm(): void {\r\n if (this.inlineform.invalid) {\r\n this.inlineform.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.dialogType == 'add' && this.currentMode[this.key]) {\r\n this.add(this.model?.length ?? 0, this.currentMode[this.key]);\r\n } else if (this.dialogType == 'edit' && this.currentMode[this.key]) {\r\n this.model![this.currentIndex] = this.currentMode[this.key];\r\n }\r\n this.table.renderRows();\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this._dialogRef.close();\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}","<div class=\"relative flex flex-col sm:flex-row flex-0 sm:items-center sm:justify-between p-2 border-b mb-1\">\r\n <div>\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"flex flex-shrink-0 items-center mt-6 sm:mt-0 sm:ml-4 print:hidden\">\r\n <button class=\"ml-4\" mat-flat-button [color]=\"'primary'\" (click)=\"addRow()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:plus'\"></mat-icon>\r\n <span class=\"ml-2\">{{props.addText}}</span>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<table mat-table [dataSource]=\"model||[]\" class=\"mat-elevation-z w-full\" [tabIndex]=\"props.tabindex\" #table>\r\n @for (column of columns; track trackByFn($index)) {\r\n <ng-container [matColumnDef]=\"column.key\">\r\n <th mat-header-cell *matHeaderCellDef> {{ column.label }} </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{element[column.key]}}</td>\r\n </ng-container>\r\n }\r\n\r\n <ng-container matColumnDef=\"_actions_\">\r\n <th mat-header-cell *matHeaderCellDef class=\"print:hidden\">操作</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\" class=\"print:hidden\">\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"editRow(element,i)\" [matTooltip]=\"'编辑'\">\r\n <mat-icon class=\"icon-size-5\" color=\"primary\" [svgIcon]=\"'heroicons_solid:pencil-square'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"deleteRow(i)\" [matTooltip]=\"'移除'\">\r\n <mat-icon class=\"icon-size-5\" color=\"warn\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"group\"></tr>\r\n</table>\r\n\r\n\r\n<ng-template #inlineTable>\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom w-full\">\r\n <form [formGroup]=\"inlineform\">\r\n <formly-form [fields]=\"fieldArray\" [model]=\"currentMode\" [form]=\"inlineform\"></formly-form>\r\n </form>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dialogRef>\r\n <div mat-dialog-title cdkDrag class=\"-mt-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\r\n <h2 class=\"pointer-events-none text-xl\">{{ props.label +'详细页'}}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <ng-container *ngTemplateOutlet=\"inlineTable\"></ng-container>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions>\r\n <div class=\"w-full flex justify-end items-center\">\r\n <button mat-raised-button color=\"primary\" cdkFocusInitial (click)=\"confirm()\">\r\n 确定\r\n </button>\r\n <button mat-button mat-dialog-close>\r\n 取消\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n</ng-template>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-tab-type',\r\n templateUrl: './tab.component.html',\r\n styleUrls:['./tab.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatTabsModule, FormlyModule]\r\n})\r\nexport class CmatTabTypeComponent extends FieldType<FieldTypeConfig> {\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n\r\n}\r\n","<mat-tab-group [tabIndex]=\"props.tabindex\">\r\n @for (tab of field.fieldGroup; track trackByFn($index)) {\r\n <mat-tab [label]=\"tab.props?.label||''\" [disabled]=\"tab.props?.disabled\">\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"tab\"></formly-field>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash';\r\nimport { Observable, Subject, takeUntil, BehaviorSubject } from 'rxjs';\r\n\r\ninterface TagsProps extends FormlyFieldProps {\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-tags-type',\r\n templateUrl: './tags.component.html',\r\n styleUrls: ['./tags.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatIconModule, MatCheckboxModule, AsyncPipe]\r\n})\r\nexport class CmatTagsTypeComponent extends FieldType<FieldTypeConfig<TagsProps>> implements OnInit, OnDestroy {\r\n @ViewChild('tagsPanelOrigin') private _tagsPanelOrigin: ElementRef;\r\n @ViewChild('tagsPanel') private _tagsPanel: TemplateRef<any>;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n private _tagsPanelOverlayRef: OverlayRef;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n\r\n constructor(private _http: HttpClient, private _overlay: Overlay, private _viewContainerRef: ViewContainerRef, private _changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get tags(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options || [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._filteredItems.next(this.tags);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this._filteredItems.next(this.tags);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n openTagsPanel(): void {\r\n this._tagsPanelOverlayRef = this._overlay.create({\r\n backdropClass: '',\r\n hasBackdrop: true,\r\n scrollStrategy: this._overlay.scrollStrategies.block(),\r\n positionStrategy: this._overlay.position()\r\n .flexibleConnectedTo(this._tagsPanelOrigin.nativeElement)\r\n .withFlexibleDimensions(true)\r\n .withViewportMargin(64)\r\n .withLockedPosition(true)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n }\r\n ])\r\n });\r\n\r\n this._tagsPanelOverlayRef.attachments().subscribe(() => {\r\n this._tagsPanelOverlayRef.overlayElement.querySelector('input')?.focus();\r\n });\r\n\r\n const templatePortal = new TemplatePortal(this._tagsPanel, this._viewContainerRef);\r\n\r\n this._tagsPanelOverlayRef.attach(templatePortal);\r\n\r\n // Subscribe to the backdrop click\r\n this._tagsPanelOverlayRef.backdropClick().subscribe(() => {\r\n\r\n // If overlay exists and attached...\r\n if (this._tagsPanelOverlayRef && this._tagsPanelOverlayRef.hasAttached()) {\r\n // Detach it\r\n this._tagsPanelOverlayRef.detach();\r\n\r\n // Reset the tag filter\r\n this._filteredItems.next(this.tags);\r\n }\r\n\r\n // If template portal exists and attached...\r\n if (templatePortal && templatePortal.isAttached) {\r\n // Detach it\r\n templatePortal.detach();\r\n }\r\n });\r\n }\r\n\r\n filterTags(event: any): void {\r\n const value = event.target.value.toLowerCase();\r\n\r\n this._filteredItems.next(this.tags.filter(tag => tag.label.toString().toLowerCase().includes(value) || tag.value.toString().toLowerCase().includes(value)));\r\n }\r\n\r\n toggleTag(tag: any): void {\r\n if (tag.disabled)\r\n return;\r\n\r\n const data = this.formControl.value || [];\r\n const existsTag = data.findIndex((i: { value: any; }) => i.value === tag.value);\r\n if (existsTag>-1) {\r\n data.splice(existsTag, 1);\r\n }\r\n else {\r\n data.unshift(tag);\r\n }\r\n this.formControl.setValue(data);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n\r\n isCheck(tag: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === tag.value).length > 0;\r\n }\r\n}\r\n","<div class=\"text-lg mb-2\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n</div>\r\n<div class=\"flex flex-wrap items-center -m-2\" [tabIndex]=\"props.tabindex\">\r\n <ng-container>\r\n @for (selectedItem of formControl.value; track trackByFn($index)) {\r\n <div\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700\">\r\n <span class=\"text-md font-medium whitespace-nowrap\">{{selectedItem.label}}</span>\r\n </div>\r\n }\r\n\r\n <div class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 cursor-pointer text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700 print:hidden\"\r\n (click)=\"openTagsPanel()\" role=\"presentation\" #tagsPanelOrigin>\r\n\r\n @if(formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:pencil-square'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">编辑</span>\r\n }\r\n\r\n @if(!formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:plus-circle'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">新增</span>\r\n }\r\n\r\n <ng-template #tagsPanel>\r\n <div class=\"w-60 rounded border shadow-md bg-card\">\r\n <div class=\"flex items-center m-3 mr-2\">\r\n <div class=\"flex items-center\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\">\r\n </mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-0\" type=\"text\" placeholder=\"输入标签名\"\r\n (input)=\"filterTags($event)\" [maxLength]=\"30\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col max-h-64 py-2 border-t overflow-y-auto\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (tag of filteredItems; track trackByFn($index)) {\r\n <div role=\"presentation\"\r\n class=\"flex items-center h-10 min-h-10 pl-1 pr-4 cursor-pointer hover:bg-hover\"\r\n (click)=\"toggleTag(tag)\" matRipple>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10\" [color]=\"'primary'\"\r\n [disabled]=\"tag.disabled\" [checked]=\"isCheck(tag)\">\r\n {{tag.label}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n }@else {\r\n <div class=\"flex flex-auto flex-col justify-center px-4 h-10 min-h-10\">\r\n 无结果\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-textarea-type',\r\n templateUrl: './textarea.component.html',\r\n styleUrls:['./textarea.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatInputModule,ReactiveFormsModule]\r\n})\r\nexport class CmatTextareaTypeComponent extends FieldType<FieldTypeConfig> {\r\n override defaultOptions = {\r\n props: {\r\n cols: 1,\r\n rows: 3,\r\n },\r\n };\r\n}","<textarea matInput [placeholder]=\"placeholder\" \r\n [readonly]=\"props.readonly\" [errorStateMatcher]=\"errorStateMatcher\"\r\n [cols]=\"props.cols\"\r\n [rows]=\"props.rows\"\r\n [tabindex]=\"props.tabindex\"\r\n [formControl]=\"formControl\" [required]=\"required\">\r\n</textarea>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatUploadQueueComponent } from 'cmat/components/upload';\r\n\r\ninterface UploadProps extends FormlyFieldProps {\r\n fileAlias: string;\r\n filePath: string;\r\n fileCategory: string;\r\n multiple: boolean;\r\n accept: string;\r\n editMode: boolean;\r\n autoUpload: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-upload-type',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatUploadQueueComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatUploadTypeComponent extends FieldType<FieldTypeConfig<UploadProps>> {\r\n override defaultOptions = {\r\n props: {\r\n fileAlias: 'fileData',\r\n filePath: 'path',\r\n fileCategory: '分类',\r\n multiple: true,\r\n accept: '',\r\n editMode: true,\r\n autoUpload: true\r\n }\r\n };\r\n\r\n upload(id: string): void {\r\n if (this.model['uploadId']) {\r\n this.model['uploadId'].push(id);\r\n } else {\r\n this.model['uploadId'] = [id];\r\n }\r\n }\r\n\r\n remove(id: string): void {\r\n if (this.model['removeId']) {\r\n this.model['removeId'].push(id);\r\n } else {\r\n this.model['removeId'] = [id];\r\n }\r\n }\r\n\r\n updateData(i: any): void {\r\n const data = Array.isArray(i) ? i : [];\r\n this.formControl.setValue(data.map((j) => {\r\n if (j.id)\r\n return {\r\n id: j.id,\r\n name: j.name,\r\n type: j.type,\r\n size: j.size\r\n };\r\n else\r\n return j;\r\n }));\r\n }\r\n}","<cmat-upload-queue [tabindex]=\"props.tabindex\" [fileAlias]=\"props.fileAlias\"\r\n [filePath]=\"props.filePath\" [required]=\"required\" [fileCategory]=\"props.fileCategory\" [multiple]=\"props.multiple\"\r\n [accept]=\"props.accept\" [title]=\"props.label??'附件'\" [editMode]=\"props.editMode&&!disabled\" [filesData]=\"formControl.value\"\r\n [autoUpload]=\"props.autoUpload\" (outputUploadIdEvent)=\"upload($event)\" (outputRemoveIdEvent)=\"remove($event)\" (outputFilesDataEvent)=\"updateData($event)\">\r\n</cmat-upload-queue>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","takeUntil","i2","i3","i4","FieldType","observe","i5","isArray"],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-custom-formly.mjs","sources":["../../../projects/cmat/components/custom-formly/extension/addons.extension.ts","../../../projects/cmat/components/custom-formly/wrappers/addons/addons.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.html","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.ts","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.html","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.ts","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.html","../../../projects/cmat/components/custom-formly/types/button/button.component.ts","../../../projects/cmat/components/custom-formly/types/button/button.component.html","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.ts","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.html","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.ts","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.html","../../../projects/cmat/components/custom-formly/types/chips/chips.component.ts","../../../projects/cmat/components/custom-formly/types/chips/chips.component.html","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.ts","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.html","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.ts","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.html","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.ts","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.html","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.ts","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.html","../../../projects/cmat/components/custom-formly/types/number/number.component.ts","../../../projects/cmat/components/custom-formly/types/number/number.component.html","../../../projects/cmat/components/custom-formly/types/rating/rating.component.ts","../../../projects/cmat/components/custom-formly/types/rating/rating.component.html","../../../projects/cmat/components/custom-formly/types/radio/radio.component.ts","../../../projects/cmat/components/custom-formly/types/radio/radio.component.html","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.ts","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.html","../../../projects/cmat/components/custom-formly/types/select/select.component.ts","../../../projects/cmat/components/custom-formly/types/select/select.component.html","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.ts","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.html","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.html","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.html","../../../projects/cmat/components/custom-formly/types/table/table.component.ts","../../../projects/cmat/components/custom-formly/types/table/table.component.html","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.ts","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.html","../../../projects/cmat/components/custom-formly/types/tags/tags.component.ts","../../../projects/cmat/components/custom-formly/types/tags/tags.component.html","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.ts","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.html","../../../projects/cmat/components/custom-formly/types/upload/upload.component.ts","../../../projects/cmat/components/custom-formly/types/upload/upload.component.html","../../../projects/cmat/components/custom-formly/cmat-components-custom-formly.ts"],"sourcesContent":["import { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { isNil } from 'lodash-es';\r\n\r\nexport function addonsExtension(field: FormlyFieldConfig): void {\r\n if (!field.props || (field.wrappers && field.wrappers.indexOf('addons') !== -1)) {\r\n return;\r\n }\r\n\r\n if ((field.props.addonLeft && ((!isNil(field.props.addonLeft.icon) && field.props.addonLeft.icon !== '')\r\n || (!isNil(field.props.addonLeft.text)) && field.props.addonLeft.text !== ''))\r\n || (field.props.addonRight && ((!isNil(field.props.addonRight.icon) && field.props.addonRight.icon !== '')\r\n || (!isNil(field.props.addonRight.text)) && field.props.addonRight.text !== ''))) {\r\n field.wrappers = [...(field.wrappers || []), 'addons'];\r\n }\r\n}","import { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { FormlyMaterialModule } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-addons-wrapper',\r\n template: `\r\n <ng-template #matPrefix>\r\n @if(props.addonLeft){\r\n <span>\r\n @if(props.addonLeft.icon){\r\n <mat-icon [svgIcon]=\"props.addonLeft.icon\"></mat-icon>\r\n }\r\n @if(props.addonLeft.text){\r\n <span>{{ props.addonLeft.text }}</span>\r\n } \r\n \r\n </span>\r\n } \r\n </ng-template>\r\n\r\n <ng-container #fieldComponent></ng-container>\r\n\r\n <ng-template #matSuffix>\r\n @if(props.addonRight){\r\n <span>\r\n @if(props.addonRight.icon){\r\n <mat-icon [svgIcon]=\"props.addonRight.icon\"></mat-icon>\r\n }\r\n @if(props.addonRight.text) {\r\n <span>{{ props.addonRight.text }}</span>\r\n }\r\n </span>\r\n }\r\n </ng-template>\r\n `,\r\n standalone: true,\r\n imports: [MatIconModule,FormlyMaterialModule]\r\n})\r\nexport class CmatAddonsWrapperComponent extends FieldWrapper implements AfterViewInit {\r\n @ViewChild('matPrefix', { static: true }) matPrefix!: TemplateRef<any>;\r\n @ViewChild('matSuffix', { static: true }) matSuffix!: TemplateRef<any>;\r\n\r\n ngAfterViewInit(): void {\r\n if (this.matPrefix) {\r\n this.props.prefix = this.matPrefix;\r\n }\r\n\r\n if (this.matSuffix) {\r\n this.props.suffix = this.matSuffix;\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-card-wrapper',\r\n templateUrl: './card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[MatCardModule]\r\n})\r\nexport class CmatCardWrapperComponent extends FieldWrapper {}\r\n","<mat-card class=\"dark:bg-white dark:bg-opacity-5\">\r\n @if(props.label){\r\n <mat-card-title class=\"p-4\">{{ props.label }}</mat-card-title>\r\n }\r\n \r\n <mat-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </mat-card-content> \r\n</mat-card>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-expansion-wrapper',\r\n templateUrl: './expansion.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[MatExpansionModule]\r\n})\r\nexport class CmatExpansionWrapperComponent extends FieldWrapper {}\r\n","<mat-expansion-panel [expanded]=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ to.label }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ to.description }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent #fieldComponent></ng-template>\r\n</mat-expansion-panel>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-panel-wrapper',\r\n templateUrl: './panel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[]\r\n})\r\nexport class CmatPanelWrapperComponent extends FieldWrapper {}\r\n","<h3 class=\"px-2\">{{ to.label }}</h3>\r\n<div>\r\n <ng-container #fieldComponent></ng-container>\r\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isString } from 'lodash-es';\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst evilFn = (fn: string) => {\r\n const fnc = Function;\r\n return new fnc(`return ${fn}`)();\r\n};\r\n\r\ninterface ButtonProps extends FormlyFieldProps {\r\n color?: 'primary' | 'accent' | 'warn';\r\n onClick?: any;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-button-type',\r\n templateUrl: './button.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatButtonModule]\r\n})\r\nexport class CmatButtonTypeComponent extends FieldType<FieldTypeConfig<ButtonProps>> {\r\n override defaultOptions = {\r\n props: {\r\n color: 'primary' as const\r\n }\r\n };\r\n\r\n onClick($event: Event): void {\r\n if (this.props.onClick) {\r\n if (isString(this.props.onClick)) {\r\n const func = evilFn(this.props.onClick);\r\n func();\r\n }\r\n else {\r\n this.props.onClick($event);\r\n }\r\n }\r\n }\r\n}","<button class=\"print:hidden\" mat-raised-button [type]=\"props.type\" [color]=\"props.color\" [disabled]=\"disabled\" (click)=\"onClick($event)\">\r\n {{ to.label }}\r\n</button>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCascadeListComponent } from 'cmat/components/cascade';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\n\r\ninterface ChipsCascadeProps extends FormlyFieldProps {\r\n clearable: boolean;\r\n fullLevels: boolean;\r\n changeOnSelect: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-cascade-type',\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule, CmatCascadeListComponent]\r\n})\r\nexport class CmatCascadeTypeComponent extends FieldType<FieldTypeConfig<ChipsCascadeProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n clearable: false,\r\n fullLevels: true,\r\n changeOnSelect: false\r\n },\r\n };\r\n urlData: [] = [];\r\n isHandSet: boolean;\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient, private _changeDetectorRef: ChangeDetectorRef, private _cmatMediaWatcherService: CmatMediaWatcherService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-cascade-list [formControl]=\"formControl\" [clearable]=\"props.clearable\" [fullLevels]=\"props.fullLevels\"\r\n [changeOnSelect]=\"props.changeOnSelect\" [placeholder]=\"placeholder\" [options]=\"urlData\" [tabIndex]=\"props.tabindex\"\r\n [required]=\"required\" [touchUi]=\"isHandSet\"></cmat-cascade-list>","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n Component, OnInit, OnDestroy, ChangeDetectionStrategy, ViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CmatSecurePipe } from 'cmat/pipes/secure';\r\n\r\ninterface CheckListProps extends FormlyFieldProps {\r\n showAllCheck: boolean;\r\n controlMaxHeight: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-checklist-type',\r\n templateUrl: './checklist.component.html',\r\n styleUrls: ['./checklist.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatCheckboxModule, MatIconModule, NgClass, MatRippleModule, AsyncPipe, CmatSecurePipe]\r\n})\r\nexport class CmatCheckListTypeComponent extends FieldType<FieldTypeConfig<CheckListProps>> implements OnInit, OnDestroy {\r\n isIndeterminate = false;\r\n isChecked = false;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n checklist: any[] = [];\r\n filteredData: any[] = [];\r\n\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options || [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n\r\n this.formControl.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (value) => {\r\n this.checklist = value||[];\r\n\r\n this._getAllCheckCountState();\r\n }\r\n );\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id || index;\r\n }\r\n\r\n filterByQuery(event: any): void {\r\n this.filteredData = this.datas.filter(data => data.value.toString().toLowerCase().includes(event) || data.label.toLowerCase().includes(event));\r\n this._filteredItems.next(this.filteredData);\r\n\r\n this._getAllCheckCountState();\r\n }\r\n\r\n toggleCheckList(data: any, event: any): void {\r\n event.preventDefault();\r\n\r\n if (data.disabled || this.props.disabled)\r\n return;\r\n\r\n const index = this.checklist.findIndex(item => item.value === data.value);\r\n if (index > -1) {\r\n this.checklist.splice(index, 1);\r\n } else {\r\n this.checklist.push(data);\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n allCheckChange(check: boolean): void {\r\n if (check) {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value);\r\n if (index < 0 && !t.disabled) {\r\n this.checklist.push(t);\r\n }\r\n\r\n });\r\n } else {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value);\r\n if (index > -1) {\r\n this.checklist.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n isCheck(data: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === data.value).length > 0;\r\n }\r\n\r\n private _getAllCheckCountState(): void {\r\n if (this.props.showAllCheck && !this.props.disabled) {\r\n let allCheckCount = 0;\r\n\r\n if (this.checklist?.length > 0) {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value && !t.disabled);\r\n if (index > -1) {\r\n allCheckCount += 1;\r\n }\r\n });\r\n\r\n if (this.filteredData.filter(i => !i.disabled).length === allCheckCount) {\r\n this.isChecked = true;\r\n this.isIndeterminate = false;\r\n } else if (allCheckCount === 0) {\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n } else {\r\n this.isChecked = false;\r\n this.isIndeterminate = true;\r\n }\r\n } else {\r\n this.checklist = [];\r\n\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n }\r\n }\r\n }\r\n}\r\n\r\n","<div class=\"flex flex-col\">\r\n <div class=\"p-2\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n <div class=\"w-full h-full rounded border shadow bg-card\" [tabIndex]=\"props.tabindex\">\r\n <div class=\"flex items-center m-1 mr-2 min-h-12 print:hidden\">\r\n @if (props.showAllCheck&&!props.disabled) {\r\n <div>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 m-1\" [color]=\"'primary'\" [checked]=\"isChecked\"\r\n [indeterminate]=\"isIndeterminate\" (change)=\"allCheckChange($event.checked)\">\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <div class=\"flex items-center w-full\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\"></mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-0\" type=\"text\" placeholder=\"输入过滤信息\"\r\n (input)=\"filterByQuery(query.value)\" #query>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"border-t overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [ngClass]=\"props.controlMaxHeight?'max-h-64 sm:max-h-128 lg:max-h-64':''\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (data of filteredItems; track trackByFn($index, data)) {\r\n <div role=\"presentation\" class=\"flex items-center pl-2 pr-4 py-2 cursor-pointer hover:bg-hover\" matRipple\r\n (click)=\"toggleCheckList(data,$event)\">\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 pointer-events-none\" [color]=\"'primary'\" disableRipple\r\n [checked]=\"isCheck(data)\" [value]=\"data\" [disabled]=\"data.disabled||props.disabled\">\r\n <div class=\"flex flex-col flex-auto\">\r\n <div class=\"font-medium leading-5 truncate\">{{data.label}}</div>\r\n </div>\r\n </mat-checkbox>\r\n </div>\r\n }\r\n } @else {\r\n <div\r\n class=\"flex flex-auto flex-col items-center justify-center bg-slate-100 dark:bg-transparent h-64 sm:h-128 lg:h-64\">\r\n <mat-icon class=\"icon-size-24\" [svgIcon]=\"'heroicons_outline:document-magnifying-glass'\"></mat-icon>\r\n <div class=\"mt-4 text-2xl font-bold tracking-tight text-secondary\">没有数据!</div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatChipInputComponent } from 'cmat/components/chip-input';\r\n\r\ninterface ChipsInputProps extends FormlyFieldProps {\r\n hasAutocomplete?: boolean;\r\n autocompleteText?: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-chips-input-type',\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule,CmatChipInputComponent]\r\n})\r\nexport class CmatChipsInputTypeComponent extends FieldType<FieldTypeConfig<ChipsInputProps>> implements OnInit, OnDestroy {\r\n autocompleteUrlData: [];\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get autocompleteText(): string[] {\r\n return this.autocompleteUrlData?.length > 0 ? this.autocompleteUrlData : this.props?.autocompleteText?.split(',') || [];\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.autocompleteUrlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n );\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-chip-input [hasAutocomplete]=\"props.hasAutocomplete??false\" [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\" [selectableOptions]=\"autocompleteText\" [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-chip-input>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { CmatMaterialColorPickerComponent } from 'cmat/components/material-color-picker';\r\n\r\n@Component({\r\n selector: 'cmat-color-picker-type',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls:['./color-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule,CmatMaterialColorPickerComponent]\r\n})\r\nexport class CmatColorPickerTypeComponent extends FieldType<FieldTypeConfig> {\r\n}","<cmat-material-color-picker [title]=\"props.label??''\" [formControl]=\"formControl\" [readonly]=\"disabled\"\r\n [tabindex]=\"props.tabindex\"></cmat-material-color-picker>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatDateRangeComponent } from 'cmat/components/date-range';\r\n\r\ninterface DateRangeProps extends FormlyFieldProps {\r\n dateFormat: string;\r\n timeFormat: string;\r\n timeRange: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-date-range-type',\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatDateRangeComponent,ReactiveFormsModule]\r\n})\r\nexport class CmatDateRangeTypeComponent extends FieldType<FieldTypeConfig<DateRangeProps>>{\r\n override defaultOptions = {\r\n props: {\r\n dateFormat: 'YYYY/MM/DD',\r\n timeFormat: '24',\r\n timeRange: true\r\n },\r\n };\r\n}","<cmat-date-range [dateFormat]=\"props.dateFormat\" [timeFormat]=\"props.timeFormat\" [timeRange]=\"props.timeRange\" \r\n[formControl]=\"formControl\" [tabindex]=\"props.tabindex\" [readonly]=\"disabled\">\r\n</cmat-date-range>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCalendarView, CmatDatetimepickerComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerMode, CmatDatetimepickerToggleComponent, CmatDatetimepickerType } from 'cmat/components/material-datetimepicker';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\n\r\ninterface DatepickerProps extends FormlyFieldProps {\r\n startView: CmatCalendarView;\r\n mode: CmatDatetimepickerMode;\r\n togglePosition: 'left' | 'right';\r\n timeInterval: number;\r\n type: CmatDatetimepickerType;\r\n multiYearSelector: boolean;\r\n twelvehour: boolean;\r\n timeInput: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-datepicker-type',\r\n templateUrl: './datepicker.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatDatetimepickerToggleComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerComponent, MatInputModule, FormsModule, ReactiveFormsModule]\r\n})\r\nexport class CmatDatepickerTypeComponent extends FieldType<FieldTypeConfig<DatepickerProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n startView: 'month' as const,\r\n mode: 'auto' as const,\r\n togglePosition: 'left' as const,\r\n timeInterval: 5,\r\n type: 'datetime' as const,\r\n multiYearSelector: false,\r\n disabled: false,\r\n timeInput: true,\r\n twelvehour: false\r\n }\r\n };\r\n\r\n isHandSet: boolean;\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _cmatMediaWatcherService: CmatMediaWatcherService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","@if(props.togglePosition==='left'){\r\n<cmat-datetimepicker-toggle [for]=\"datetimePicker\" [disabled]=\"disabled\" matPrefix></cmat-datetimepicker-toggle>\r\n}\r\n\r\n<cmat-datetimepicker #datetimePicker openOnFocus=\"true\" [startView]=\"props.startView\" [mode]=\"props.mode\"\r\n [timeInterval]=\"props.timeInterval\" [twelvehour]=\"props.twelvehour\" [type]=\"props.type\"\r\n [multiYearSelector]=\"props.multiYearSelector\" [timeInput]=\"props.timeInput\" [touchUi]=\"isHandSet\"\r\n [disabled]=\"disabled\"></cmat-datetimepicker>\r\n\r\n<input [cmatDatetimepicker]=\"datetimePicker\" [required]=\"required\" [formControl]=\"formControl\" autocomplete=\"false\"\r\n [placeholder]=\"placeholder\" matInput />\r\n\r\n@if(props.togglePosition==='right'){\r\n<cmat-datetimepicker-toggle [for]=\"datetimePicker\" [disabled]=\"disabled\" matSuffix></cmat-datetimepicker-toggle>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChildren, QueryList, Type, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\n\r\ninterface MultiCheckboxProps extends FormlyFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyMultiCheckboxFieldConfig extends FormlyFieldConfig<MultiCheckboxProps> {\r\n type: 'multicheckbox' | Type<CmatMultiCheckboxTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-multicheckbox-type',\r\n templateUrl: './multicheckbox.component.html',\r\n styleUrls:['./multicheckbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatCheckboxModule, AsyncPipe, FormlySelectModule]\r\n})\r\nexport class CmatMultiCheckboxTypeComponent extends FieldType<FieldTypeConfig<MultiCheckboxProps>> implements OnInit, OnDestroy {\r\n @ViewChildren(MatCheckbox) checkboxes!: QueryList<MatCheckbox>;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n color: 'accent' as const,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get urlData$(): Observable<any[] > {\r\n return this._urlData.asObservable();\r\n }\r\n\r\n onChange(value: any, checked: boolean): void {\r\n this.formControl.markAsDirty();\r\n if (this.props.type === 'array') {\r\n this.formControl.patchValue(\r\n checked\r\n ? [...(this.formControl.value || []), value]\r\n : [...(this.formControl.value || [])].filter(o => o !== value),\r\n );\r\n } else {\r\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\r\n }\r\n this.formControl.markAsTouched();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n override onContainerClick(): void { }\r\n\r\n isChecked(option: any): any {\r\n const value = this.formControl.value;\r\n\r\n return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","@if ((urlData$ | async); as urlData) {\r\n@for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\ntrackByFn($index)) {\r\n<mat-checkbox [tabIndex]=\"props.tabindex\" [color]=\"props.color\" [labelPosition]=\"props.labelPosition\"\r\n [checked]=\"isChecked(option)\" [disabled]=\"formControl.disabled || option.disabled\"\r\n (change)=\"onChange(option.value, $event.checked)\">\r\n {{ option.label }}\r\n</mat-checkbox>\r\n}\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatDigitOnlyDirective } from 'cmat/directives/digit-only';\r\n\r\ninterface NumberProps extends FormlyFieldProps {\r\n decimal: boolean;\r\n min: number;\r\n max: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-number-type',\r\n templateUrl: './number.component.html',\r\n styleUrls: ['./number.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatDigitOnlyDirective, MatInputModule,ReactiveFormsModule]\r\n})\r\nexport class CmatNumberTypeComponent extends FieldType<FieldTypeConfig<NumberProps>>{\r\n override defaultOptions = {\r\n props: {\r\n decimal: false,\r\n min: -Infinity,\r\n max: Infinity\r\n },\r\n };\r\n}","<input matInput [formControl]=\"formControl\" [readonly]=\"props.readonly\" [placeholder]=\"placeholder\" [tabIndex]=\"props.tabindex\" [required]=\"required\" [decimal]=\"props.decimal\" [allowNegatives]=\"true\" [allowPaste]=\"true\" [min]=\"props.min\"\r\n [max]=\"props.max\" [errorStateMatcher]=\"errorStateMatcher\" cmatDigitOnly>\r\n\r\n","import { NgStyle } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatRatingComponent } from 'cmat/components/rating';\r\n\r\ninterface RatingProps extends FormlyFieldProps {\r\n stars: number;\r\n readonly: boolean;\r\n hover: boolean;\r\n half: boolean;\r\n customColor?: string;\r\n showMode?: 'horizontal' | 'vertical';\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-rating-type',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatRatingComponent, ReactiveFormsModule,NgStyle]\r\n})\r\nexport class CmatRatingTypeComponent extends FieldType<FieldTypeConfig<RatingProps>>{\r\n override defaultOptions = {\r\n props: {\r\n stars: 5,\r\n readonly: false,\r\n hover: true,\r\n half: true\r\n },\r\n };\r\n\r\n}","@if(props.customColor&&props.customColor.indexOf('#')>-1){\r\n<div [ngStyle]=\"{'color': props.customColor}\">\r\n <cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\"\r\n [readonly]=\"props.readonly\" [hover]=\"props.hover\" [half]=\"props.half\" [showMode]=\"props.showMode\"></cmat-rating>\r\n</div>\r\n}@else{\r\n<cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\" [readonly]=\"props.readonly\"\r\n [hover]=\"props.hover\" [half]=\"props.half\" [color]=\"props.customColor\" [showMode]=\"props.showMode\"></cmat-rating>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChild, AfterViewInit, OnDestroy, Type, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatRadioGroup, MatRadioModule } from '@angular/material/radio';\r\nimport { FieldTypeConfig, FormlyFieldConfig , ɵobserve as observe } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\n\r\ninterface RadioProps extends FormlyFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyRadioFieldConfig extends FormlyFieldConfig<RadioProps> {\r\n type: 'radio' | Type<CmatRadioTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-radio-type',\r\n templateUrl: './radio.component.html',\r\n styleUrls:['./radio.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatRadioModule, AsyncPipe, FormlySelectModule,ReactiveFormsModule]\r\n})\r\nexport class CmatRadioTypeComponent extends FieldType<FieldTypeConfig<RadioProps>> implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatRadioGroup, { static: true }) radioGroup!: MatRadioGroup;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n tabindex: -1,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n\r\n private focusObserver!: ReturnType<typeof observe>;\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n get urlData$(): Observable<any[] > {\r\n return this._urlData.asObservable();\r\n }\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.focusObserver = observe(this.field, ['focus'], ({ currentValue }) => {\r\n if (this.props.tabindex === -1 && currentValue && this.radioGroup._radios.length > 0) {\r\n setTimeout(() => {\r\n const radio = this.radioGroup.selected ? this.radioGroup.selected : this.radioGroup._radios.first;\r\n radio.focus();\r\n });\r\n }\r\n });\r\n }\r\n\r\n override onContainerClick(): void { }\r\n\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.focusObserver && this.focusObserver.unsubscribe();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-radio-group [formControl]=\"formControl\" [required]=\"required\" [tabindex]=\"props.tabindex\">\r\n @if ((urlData$ | async); as urlData) {\r\n @for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\n trackByFn($index)) {\r\n <mat-radio-button [color]=\"props.color\" [labelPosition]=\"props.labelPosition\" [disabled]=\"option.disabled\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-radio-button>\r\n }\r\n }\r\n</mat-radio-group>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyFieldProps, FormlyModule } from '@ngx-formly/core';\r\n\r\ninterface RepeatProps extends FormlyFieldProps {\r\n addText: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-repeat-type',\r\n templateUrl: './repeat.component.html',\r\n styleUrls: ['./repeat.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [FormlyModule, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatRepeatTypeComponent extends FieldArrayType<FieldTypeConfig<RepeatProps>> {\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track trackByFn($index)) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field [field]=\"field\" class=\"repeat-field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button mat-icon-button color=\"warn\" (click)=\"remove($index)\" matTooltip=\"删除\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button mat-raised-button color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { ReplaySubject, Subject, of, take, takeUntil } from 'rxjs';\r\nimport { CmatSelectSearchComponent } from 'cmat/components/select-search';\r\n\r\ninterface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\r\n multiple?: boolean;\r\n disableOptionCentering?: boolean;\r\n typeaheadDebounceInterval?: number;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-search-type',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatCheckboxModule, MatSelectModule, CmatSelectSearchComponent, ReactiveFormsModule, AsyncPipe]\r\n})\r\nexport class CmatSelectTypeComponent extends FieldType<FieldTypeConfig<SelectProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false\r\n },\r\n };\r\n\r\n optionsData: any[];\r\n\r\n filteredCustomDetails: ReplaySubject<any[]> = new ReplaySubject<any[]>(1);\r\n filteredCache: any[] = [];\r\n isIndeterminate = false;\r\n isChecked = false;\r\n multiFilterCtrl: FormControl = new FormControl<string>('');\r\n\r\n private _urlData: [] = [];\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n constructor(private _http: HttpClient) {\r\n super();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this._urlData?.length > 0 ? this._urlData : this.field.props?.options || [];\r\n } else {\r\n return this._urlData?.length > 0 ? this._urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData = datas[0][this.field.props?.domain?.value];\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n );\r\n } else {\r\n this._urlData = [];\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n of(this.props.multiple).pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n if (!isArray(this.formControl.value)) {\r\n const value = [this.formControl.value];\r\n\r\n this.formControl.setValue(value);\r\n }\r\n });\r\n\r\n this.multiFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n this.filterMulti();\r\n\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n\r\n this.formControl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n getAriaLabelledby(): string {\r\n if (this.props.attributes?.['aria-labelledby']) {\r\n return this.props.attributes['aria-labelledby'] as string;\r\n }\r\n\r\n return this.formField?._labelId;\r\n }\r\n\r\n getAriaLabel(): string {\r\n return this.props.attributes?.['aria-label'] as string;\r\n }\r\n\r\n toggleSelectAll(selectAllValue: boolean): void {\r\n this.filteredCustomDetails.pipe(\r\n take(1),\r\n takeUntil(this._unsubscribeAll)\r\n )\r\n .subscribe((val) => {\r\n if (selectAllValue) {\r\n this.formControl.setValue(val.filter(o => !o.disabled));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.formControl.markAsDirty();\r\n });\r\n }\r\n\r\n filterMulti(): void {\r\n if (!this.datas) {\r\n return;\r\n }\r\n\r\n let search = this.multiFilterCtrl.value;\r\n if (!search) {\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n\r\n this.filteredCache = this.datas.filter(items => items.value.toString().toLowerCase().indexOf(search) > -1 || items.label.toString().toLowerCase().indexOf(search) > -1);\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n setToggleAllCheckboxState(): void {\r\n let filteredLength = 0;\r\n if (this.formControl.value && this.props.search) {\r\n const cache = this.filteredCache.filter(o => !o.disabled);\r\n\r\n const v = isArray(this.formControl.value) ? this.formControl.value : [this.formControl.value];\r\n\r\n cache.forEach((el) => {\r\n if (v.findIndex((t: { value: any; label: any; }) => t.value === el.value && t.label === el.label) > -1) {\r\n filteredLength++;\r\n }\r\n });\r\n\r\n this.isIndeterminate = filteredLength > 0 && filteredLength < cache.length;\r\n this.isChecked = filteredLength > 0 && filteredLength === cache.length;\r\n }else{\r\n this.isIndeterminate =false;\r\n this.isChecked =false;\r\n }\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n\r\n compareWithFn(o1: any, o2: any): boolean {\r\n return o1 && o2 ? o1?.label === o2?.label && o1?.value === o2?.value : o1 === o2;\r\n }\r\n}\r\n","@if(props.multiple){\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\" multiple\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) { \r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatSelectTreeComponent } from 'cmat/components/select-tree';\r\n\r\ninterface SelectTreeProps extends FormlyFieldProps, FormlyFieldSelectProps {\r\n multiple: boolean;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n expandable: boolean;\r\n customTriggerLabelTemplate: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-tree-type',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [ReactiveFormsModule, CmatSelectTreeComponent]\r\n})\r\nexport class CmatSelectTreeTypeComponent extends FieldType<FieldTypeConfig<SelectTreeProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n multiple: false,\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false,\r\n expandable: true,\r\n customTriggerLabelTemplate: '${name}'\r\n },\r\n };\r\n urlData: [] = [];\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n constructor(private _http: HttpClient, private _changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-select-tree [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\" [expandable]=\"props.expandable\" [placeholder]=\"placeholder\"\r\n [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-tree>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-horizontal-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls:['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [FormlyModule, MatStepperModule, MatButtonModule,ReactiveFormsModule,MatIconModule]\r\n})\r\nexport class CmatStepperHorizontalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-horizontal-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index !== 0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n\r\n</mat-horizontal-stepper>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-vertical-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls:['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[FormlyModule, MatStepperModule, MatButtonModule,ReactiveFormsModule,MatIconModule]\r\n})\r\nexport class CmatStepperVerticalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-vertical-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index!==0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n</mat-vertical-stepper>","import {CdkDrag} from '@angular/cdk/drag-drop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ChangeDetectionStrategy, OnInit, TemplateRef, ViewChild, ViewContainerRef, inject, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTable, MatTableModule } from '@angular/material/table';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyFieldConfig, FormlyFieldProps, FormlyModule } from '@ngx-formly/core';\r\n\r\ninterface TableProps extends FormlyFieldProps {\r\n addText: string;\r\n showColumn?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-table-type',\r\n templateUrl: 'table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatButtonModule, MatIconModule, MatTableModule, FormsModule, FormlyModule,CdkDrag,\r\n ReactiveFormsModule, MatDialogModule, NgTemplateOutlet,MatTooltipModule]\r\n})\r\nexport class CmatTableTypeComponent extends FieldArrayType<FieldTypeConfig<TableProps>> implements OnInit {\r\n @ViewChild('dialogRef') dialogRef: TemplateRef<any>;\r\n @ViewChild('table') table: MatTable<any>;\r\n\r\n inlineform = new FormGroup({});\r\n currentMode: any = {};\r\n currentIndex: number;\r\n\r\n columns: Array<{ key: string, label: string }>;\r\n displayedColumns: string[] = [];\r\n\r\n dialogType: 'add' | 'edit' | '' = '';\r\n\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n\r\n private readonly _dialog = inject(MatDialog);\r\n private readonly _viewContainerRef = inject(ViewContainerRef);\r\n private _dialogRef: MatDialogRef<any>;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n get fieldArray(): FormlyFieldConfig[] {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup!;\r\n }\r\n\r\n get key(): string {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].id!;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.columns = (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].fieldGroup!.\r\n filter(field => field.props?.showColumn).map(field => ({\r\n key: field.key as string,\r\n label: field.props?.label ?? '',\r\n }));\r\n\r\n if (this.props.disabled) {\r\n this.displayedColumns = [...this.columns.map(column => column.key)];\r\n } else {\r\n this.displayedColumns = [...this.columns.map(column => column.key), '_actions_'];\r\n }\r\n }\r\n\r\n addRow(): void {\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n\r\n this.dialogType = 'add';\r\n this.currentMode = {};\r\n this.inlineform.reset();\r\n }\r\n\r\n editRow(item: any, index: number): void {\r\n this.currentIndex = index;\r\n\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n this.dialogType = 'edit';\r\n this.currentMode = {\r\n [this.key]: item\r\n };\r\n }\r\n\r\n deleteRow(id: number): void {\r\n this.remove(id);\r\n\r\n this.table.renderRows();\r\n }\r\n\r\n confirm(): void {\r\n if (this.inlineform.invalid) {\r\n this.inlineform.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.dialogType == 'add' && this.currentMode[this.key]) {\r\n this.add(this.model?.length ?? 0, this.currentMode[this.key]);\r\n } else if (this.dialogType == 'edit' && this.currentMode[this.key]) {\r\n this.model![this.currentIndex] = this.currentMode[this.key];\r\n }\r\n this.table.renderRows();\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this._dialogRef.close();\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}","<div class=\"relative flex flex-col sm:flex-row flex-0 sm:items-center sm:justify-between p-2 border-b mb-1\">\r\n <div>\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"flex flex-shrink-0 items-center mt-6 sm:mt-0 sm:ml-4 print:hidden\">\r\n <button class=\"ml-4\" mat-flat-button [color]=\"'primary'\" (click)=\"addRow()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:plus'\"></mat-icon>\r\n <span class=\"ml-2\">{{props.addText}}</span>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<table mat-table [dataSource]=\"model||[]\" class=\"mat-elevation-z w-full\" [tabIndex]=\"props.tabindex\" #table>\r\n @for (column of columns; track trackByFn($index)) {\r\n <ng-container [matColumnDef]=\"column.key\">\r\n <th mat-header-cell *matHeaderCellDef> {{ column.label }} </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{element[column.key]}}</td>\r\n </ng-container>\r\n }\r\n\r\n <ng-container matColumnDef=\"_actions_\">\r\n <th mat-header-cell *matHeaderCellDef class=\"print:hidden\">操作</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\" class=\"print:hidden\">\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"editRow(element,i)\" [matTooltip]=\"'编辑'\">\r\n <mat-icon class=\"icon-size-5\" color=\"primary\" [svgIcon]=\"'heroicons_solid:pencil-square'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"deleteRow(i)\" [matTooltip]=\"'移除'\">\r\n <mat-icon class=\"icon-size-5\" color=\"warn\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"group\"></tr>\r\n</table>\r\n\r\n\r\n<ng-template #inlineTable>\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom w-full\">\r\n <form [formGroup]=\"inlineform\">\r\n <formly-form [fields]=\"fieldArray\" [model]=\"currentMode\" [form]=\"inlineform\"></formly-form>\r\n </form>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dialogRef>\r\n <div mat-dialog-title cdkDrag class=\"-mt-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\r\n <h2 class=\"pointer-events-none text-xl\">{{ props.label +'详细页'}}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <ng-container *ngTemplateOutlet=\"inlineTable\"></ng-container>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions>\r\n <div class=\"w-full flex justify-end items-center\">\r\n <button mat-raised-button color=\"primary\" cdkFocusInitial (click)=\"confirm()\">\r\n 确定\r\n </button>\r\n <button mat-button mat-dialog-close>\r\n 取消\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n</ng-template>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-tab-type',\r\n templateUrl: './tab.component.html',\r\n styleUrls:['./tab.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatTabsModule, FormlyModule]\r\n})\r\nexport class CmatTabTypeComponent extends FieldType<FieldTypeConfig> {\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n\r\n}\r\n","<mat-tab-group [tabIndex]=\"props.tabindex\">\r\n @for (tab of field.fieldGroup; track trackByFn($index)) {\r\n <mat-tab [label]=\"tab.props?.label||''\" [disabled]=\"tab.props?.disabled\">\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"tab\"></formly-field>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { Observable, Subject, takeUntil, BehaviorSubject } from 'rxjs';\r\n\r\ninterface TagsProps extends FormlyFieldProps {\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-tags-type',\r\n templateUrl: './tags.component.html',\r\n styleUrls: ['./tags.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatIconModule, MatCheckboxModule, AsyncPipe]\r\n})\r\nexport class CmatTagsTypeComponent extends FieldType<FieldTypeConfig<TagsProps>> implements OnInit, OnDestroy {\r\n @ViewChild('tagsPanelOrigin') private _tagsPanelOrigin: ElementRef;\r\n @ViewChild('tagsPanel') private _tagsPanel: TemplateRef<any>;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n private _tagsPanelOverlayRef: OverlayRef;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n\r\n constructor(private _http: HttpClient, private _overlay: Overlay, private _viewContainerRef: ViewContainerRef, private _changeDetectorRef: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get tags(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options || [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._filteredItems.next(this.tags);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this._filteredItems.next(this.tags);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n openTagsPanel(): void {\r\n this._tagsPanelOverlayRef = this._overlay.create({\r\n backdropClass: '',\r\n hasBackdrop: true,\r\n scrollStrategy: this._overlay.scrollStrategies.block(),\r\n positionStrategy: this._overlay.position()\r\n .flexibleConnectedTo(this._tagsPanelOrigin.nativeElement)\r\n .withFlexibleDimensions(true)\r\n .withViewportMargin(64)\r\n .withLockedPosition(true)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n }\r\n ])\r\n });\r\n\r\n this._tagsPanelOverlayRef.attachments().subscribe(() => {\r\n this._tagsPanelOverlayRef.overlayElement.querySelector('input')?.focus();\r\n });\r\n\r\n const templatePortal = new TemplatePortal(this._tagsPanel, this._viewContainerRef);\r\n\r\n this._tagsPanelOverlayRef.attach(templatePortal);\r\n\r\n // Subscribe to the backdrop click\r\n this._tagsPanelOverlayRef.backdropClick().subscribe(() => {\r\n\r\n // If overlay exists and attached...\r\n if (this._tagsPanelOverlayRef && this._tagsPanelOverlayRef.hasAttached()) {\r\n // Detach it\r\n this._tagsPanelOverlayRef.detach();\r\n\r\n // Reset the tag filter\r\n this._filteredItems.next(this.tags);\r\n }\r\n\r\n // If template portal exists and attached...\r\n if (templatePortal && templatePortal.isAttached) {\r\n // Detach it\r\n templatePortal.detach();\r\n }\r\n });\r\n }\r\n\r\n filterTags(event: any): void {\r\n const value = event.target.value.toLowerCase();\r\n\r\n this._filteredItems.next(this.tags.filter(tag => tag.label.toString().toLowerCase().includes(value) || tag.value.toString().toLowerCase().includes(value)));\r\n }\r\n\r\n toggleTag(tag: any): void {\r\n if (tag.disabled)\r\n return;\r\n\r\n const data = this.formControl.value || [];\r\n const existsTag = data.findIndex((i: { value: any; }) => i.value === tag.value);\r\n if (existsTag>-1) {\r\n data.splice(existsTag, 1);\r\n }\r\n else {\r\n data.unshift(tag);\r\n }\r\n this.formControl.setValue(data);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n\r\n isCheck(tag: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === tag.value).length > 0;\r\n }\r\n}\r\n","<div class=\"text-lg mb-2\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n</div>\r\n<div class=\"flex flex-wrap items-center -m-2\" [tabIndex]=\"props.tabindex\">\r\n <ng-container>\r\n @for (selectedItem of formControl.value; track trackByFn($index)) {\r\n <div\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700\">\r\n <span class=\"text-md font-medium whitespace-nowrap\">{{selectedItem.label}}</span>\r\n </div>\r\n }\r\n\r\n <div class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 cursor-pointer text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700 print:hidden\"\r\n (click)=\"openTagsPanel()\" role=\"presentation\" #tagsPanelOrigin>\r\n\r\n @if(formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:pencil-square'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">编辑</span>\r\n }\r\n\r\n @if(!formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:plus-circle'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">新增</span>\r\n }\r\n\r\n <ng-template #tagsPanel>\r\n <div class=\"w-60 rounded border shadow-md bg-card\">\r\n <div class=\"flex items-center m-3 mr-2\">\r\n <div class=\"flex items-center\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\">\r\n </mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-0\" type=\"text\" placeholder=\"输入标签名\"\r\n (input)=\"filterTags($event)\" [maxLength]=\"30\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col max-h-64 py-2 border-t overflow-y-auto\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (tag of filteredItems; track trackByFn($index)) {\r\n <div role=\"presentation\"\r\n class=\"flex items-center h-10 min-h-10 pl-1 pr-4 cursor-pointer hover:bg-hover\"\r\n (click)=\"toggleTag(tag)\" matRipple>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10\" [color]=\"'primary'\"\r\n [disabled]=\"tag.disabled\" [checked]=\"isCheck(tag)\">\r\n {{tag.label}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n }@else {\r\n <div class=\"flex flex-auto flex-col justify-center px-4 h-10 min-h-10\">\r\n 无结果\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-textarea-type',\r\n templateUrl: './textarea.component.html',\r\n styleUrls:['./textarea.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [MatInputModule,ReactiveFormsModule]\r\n})\r\nexport class CmatTextareaTypeComponent extends FieldType<FieldTypeConfig> {\r\n override defaultOptions = {\r\n props: {\r\n cols: 1,\r\n rows: 3,\r\n },\r\n };\r\n}","<textarea matInput [placeholder]=\"placeholder\" \r\n [readonly]=\"props.readonly\" [errorStateMatcher]=\"errorStateMatcher\"\r\n [cols]=\"props.cols\"\r\n [rows]=\"props.rows\"\r\n [tabindex]=\"props.tabindex\"\r\n [formControl]=\"formControl\" [required]=\"required\">\r\n</textarea>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';\r\nimport { CmatUploadQueueComponent } from 'cmat/components/upload';\r\n\r\ninterface UploadProps extends FormlyFieldProps {\r\n fileAlias: string;\r\n filePath: string;\r\n fileCategory: string;\r\n multiple: boolean;\r\n accept: string;\r\n editMode: boolean;\r\n autoUpload: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-upload-type',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CmatUploadQueueComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatUploadTypeComponent extends FieldType<FieldTypeConfig<UploadProps>> {\r\n override defaultOptions = {\r\n props: {\r\n fileAlias: 'fileData',\r\n filePath: 'path',\r\n fileCategory: '分类',\r\n multiple: true,\r\n accept: '',\r\n editMode: true,\r\n autoUpload: true\r\n }\r\n };\r\n\r\n upload(id: string): void {\r\n if (this.model['uploadId']) {\r\n this.model['uploadId'].push(id);\r\n } else {\r\n this.model['uploadId'] = [id];\r\n }\r\n }\r\n\r\n remove(id: string): void {\r\n if (this.model['removeId']) {\r\n this.model['removeId'].push(id);\r\n } else {\r\n this.model['removeId'] = [id];\r\n }\r\n }\r\n\r\n updateData(i: any): void {\r\n const data = Array.isArray(i) ? i : [];\r\n this.formControl.setValue(data.map((j) => {\r\n if (j.id)\r\n return {\r\n id: j.id,\r\n name: j.name,\r\n type: j.type,\r\n size: j.size\r\n };\r\n else\r\n return j;\r\n }));\r\n }\r\n}","<cmat-upload-queue [tabindex]=\"props.tabindex\" [fileAlias]=\"props.fileAlias\"\r\n [filePath]=\"props.filePath\" [required]=\"required\" [fileCategory]=\"props.fileCategory\" [multiple]=\"props.multiple\"\r\n [accept]=\"props.accept\" [title]=\"props.label??'附件'\" [editMode]=\"props.editMode&&!disabled\" [filesData]=\"formControl.value\"\r\n [autoUpload]=\"props.autoUpload\" (outputUploadIdEvent)=\"upload($event)\" (outputRemoveIdEvent)=\"remove($event)\" (outputFilesDataEvent)=\"updateData($event)\">\r\n</cmat-upload-queue>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","takeUntil","i2","i3","i4","FieldType","observe","i5"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmat",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "author": {
5
5
  "name": "Yu Tao",
6
6
  "email": "916426364@qq.com"
@@ -56,36 +56,6 @@
56
56
  "esm": "./esm2022/version/cmat-version.mjs",
57
57
  "default": "./fesm2022/cmat-version.mjs"
58
58
  },
59
- "./directives/animate-on-scroll": {
60
- "types": "./directives/animate-on-scroll/index.d.ts",
61
- "esm2022": "./esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs",
62
- "esm": "./esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs",
63
- "default": "./fesm2022/cmat-directives-animate-on-scroll.mjs"
64
- },
65
- "./directives/autofocus": {
66
- "types": "./directives/autofocus/index.d.ts",
67
- "esm2022": "./esm2022/directives/autofocus/cmat-directives-autofocus.mjs",
68
- "esm": "./esm2022/directives/autofocus/cmat-directives-autofocus.mjs",
69
- "default": "./fesm2022/cmat-directives-autofocus.mjs"
70
- },
71
- "./directives/debounce": {
72
- "types": "./directives/debounce/index.d.ts",
73
- "esm2022": "./esm2022/directives/debounce/cmat-directives-debounce.mjs",
74
- "esm": "./esm2022/directives/debounce/cmat-directives-debounce.mjs",
75
- "default": "./fesm2022/cmat-directives-debounce.mjs"
76
- },
77
- "./directives/digit-only": {
78
- "types": "./directives/digit-only/index.d.ts",
79
- "esm2022": "./esm2022/directives/digit-only/cmat-directives-digit-only.mjs",
80
- "esm": "./esm2022/directives/digit-only/cmat-directives-digit-only.mjs",
81
- "default": "./fesm2022/cmat-directives-digit-only.mjs"
82
- },
83
- "./directives/equal-validator": {
84
- "types": "./directives/equal-validator/index.d.ts",
85
- "esm2022": "./esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs",
86
- "esm": "./esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs",
87
- "default": "./fesm2022/cmat-directives-equal-validator.mjs"
88
- },
89
59
  "./components/adapter": {
90
60
  "types": "./components/adapter/index.d.ts",
91
61
  "esm2022": "./esm2022/components/adapter/cmat-components-adapter.mjs",
@@ -164,18 +134,18 @@
164
134
  "esm": "./esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs",
165
135
  "default": "./fesm2022/cmat-components-material-color-picker.mjs"
166
136
  },
167
- "./components/navigation": {
168
- "types": "./components/navigation/index.d.ts",
169
- "esm2022": "./esm2022/components/navigation/cmat-components-navigation.mjs",
170
- "esm": "./esm2022/components/navigation/cmat-components-navigation.mjs",
171
- "default": "./fesm2022/cmat-components-navigation.mjs"
172
- },
173
137
  "./components/material-datetimepicker": {
174
138
  "types": "./components/material-datetimepicker/index.d.ts",
175
139
  "esm2022": "./esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs",
176
140
  "esm": "./esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs",
177
141
  "default": "./fesm2022/cmat-components-material-datetimepicker.mjs"
178
142
  },
143
+ "./components/navigation": {
144
+ "types": "./components/navigation/index.d.ts",
145
+ "esm2022": "./esm2022/components/navigation/cmat-components-navigation.mjs",
146
+ "esm": "./esm2022/components/navigation/cmat-components-navigation.mjs",
147
+ "default": "./fesm2022/cmat-components-navigation.mjs"
148
+ },
179
149
  "./components/pagination": {
180
150
  "types": "./components/pagination/index.d.ts",
181
151
  "esm2022": "./esm2022/components/pagination/cmat-components-pagination.mjs",
@@ -218,18 +188,18 @@
218
188
  "esm": "./esm2022/components/select-tree/cmat-components-select-tree.mjs",
219
189
  "default": "./fesm2022/cmat-components-select-tree.mjs"
220
190
  },
221
- "./components/toast": {
222
- "types": "./components/toast/index.d.ts",
223
- "esm2022": "./esm2022/components/toast/cmat-components-toast.mjs",
224
- "esm": "./esm2022/components/toast/cmat-components-toast.mjs",
225
- "default": "./fesm2022/cmat-components-toast.mjs"
226
- },
227
191
  "./components/timeline": {
228
192
  "types": "./components/timeline/index.d.ts",
229
193
  "esm2022": "./esm2022/components/timeline/cmat-components-timeline.mjs",
230
194
  "esm": "./esm2022/components/timeline/cmat-components-timeline.mjs",
231
195
  "default": "./fesm2022/cmat-components-timeline.mjs"
232
196
  },
197
+ "./components/toast": {
198
+ "types": "./components/toast/index.d.ts",
199
+ "esm2022": "./esm2022/components/toast/cmat-components-toast.mjs",
200
+ "esm": "./esm2022/components/toast/cmat-components-toast.mjs",
201
+ "default": "./fesm2022/cmat-components-toast.mjs"
202
+ },
233
203
  "./components/transfer-picker": {
234
204
  "types": "./components/transfer-picker/index.d.ts",
235
205
  "esm2022": "./esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs",
@@ -242,11 +212,35 @@
242
212
  "esm": "./esm2022/components/upload/cmat-components-upload.mjs",
243
213
  "default": "./fesm2022/cmat-components-upload.mjs"
244
214
  },
245
- "./pipes/bytes": {
246
- "types": "./pipes/bytes/index.d.ts",
247
- "esm2022": "./esm2022/pipes/bytes/cmat-pipes-bytes.mjs",
248
- "esm": "./esm2022/pipes/bytes/cmat-pipes-bytes.mjs",
249
- "default": "./fesm2022/cmat-pipes-bytes.mjs"
215
+ "./directives/animate-on-scroll": {
216
+ "types": "./directives/animate-on-scroll/index.d.ts",
217
+ "esm2022": "./esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs",
218
+ "esm": "./esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs",
219
+ "default": "./fesm2022/cmat-directives-animate-on-scroll.mjs"
220
+ },
221
+ "./directives/autofocus": {
222
+ "types": "./directives/autofocus/index.d.ts",
223
+ "esm2022": "./esm2022/directives/autofocus/cmat-directives-autofocus.mjs",
224
+ "esm": "./esm2022/directives/autofocus/cmat-directives-autofocus.mjs",
225
+ "default": "./fesm2022/cmat-directives-autofocus.mjs"
226
+ },
227
+ "./directives/debounce": {
228
+ "types": "./directives/debounce/index.d.ts",
229
+ "esm2022": "./esm2022/directives/debounce/cmat-directives-debounce.mjs",
230
+ "esm": "./esm2022/directives/debounce/cmat-directives-debounce.mjs",
231
+ "default": "./fesm2022/cmat-directives-debounce.mjs"
232
+ },
233
+ "./directives/digit-only": {
234
+ "types": "./directives/digit-only/index.d.ts",
235
+ "esm2022": "./esm2022/directives/digit-only/cmat-directives-digit-only.mjs",
236
+ "esm": "./esm2022/directives/digit-only/cmat-directives-digit-only.mjs",
237
+ "default": "./fesm2022/cmat-directives-digit-only.mjs"
238
+ },
239
+ "./directives/equal-validator": {
240
+ "types": "./directives/equal-validator/index.d.ts",
241
+ "esm2022": "./esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs",
242
+ "esm": "./esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs",
243
+ "default": "./fesm2022/cmat-directives-equal-validator.mjs"
250
244
  },
251
245
  "./lib/mock-api": {
252
246
  "types": "./lib/mock-api/index.d.ts",
@@ -254,24 +248,30 @@
254
248
  "esm": "./esm2022/lib/mock-api/cmat-lib-mock-api.mjs",
255
249
  "default": "./fesm2022/cmat-lib-mock-api.mjs"
256
250
  },
251
+ "./pipes/bytes": {
252
+ "types": "./pipes/bytes/index.d.ts",
253
+ "esm2022": "./esm2022/pipes/bytes/cmat-pipes-bytes.mjs",
254
+ "esm": "./esm2022/pipes/bytes/cmat-pipes-bytes.mjs",
255
+ "default": "./fesm2022/cmat-pipes-bytes.mjs"
256
+ },
257
257
  "./pipes/date-format": {
258
258
  "types": "./pipes/date-format/index.d.ts",
259
259
  "esm2022": "./esm2022/pipes/date-format/cmat-pipes-date-format.mjs",
260
260
  "esm": "./esm2022/pipes/date-format/cmat-pipes-date-format.mjs",
261
261
  "default": "./fesm2022/cmat-pipes-date-format.mjs"
262
262
  },
263
- "./pipes/find-by-key": {
264
- "types": "./pipes/find-by-key/index.d.ts",
265
- "esm2022": "./esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs",
266
- "esm": "./esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs",
267
- "default": "./fesm2022/cmat-pipes-find-by-key.mjs"
268
- },
269
263
  "./pipes/group-by": {
270
264
  "types": "./pipes/group-by/index.d.ts",
271
265
  "esm2022": "./esm2022/pipes/group-by/cmat-pipes-group-by.mjs",
272
266
  "esm": "./esm2022/pipes/group-by/cmat-pipes-group-by.mjs",
273
267
  "default": "./fesm2022/cmat-pipes-group-by.mjs"
274
268
  },
269
+ "./pipes/find-by-key": {
270
+ "types": "./pipes/find-by-key/index.d.ts",
271
+ "esm2022": "./esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs",
272
+ "esm": "./esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs",
273
+ "default": "./fesm2022/cmat-pipes-find-by-key.mjs"
274
+ },
275
275
  "./pipes/keys": {
276
276
  "types": "./pipes/keys/index.d.ts",
277
277
  "esm2022": "./esm2022/pipes/keys/cmat-pipes-keys.mjs",