ngx-techlify-core 18.48.0 → 18.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2022/lib/base-model/techlify-listing-component.class.mjs +41 -1
  2. package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.mjs +28 -27
  3. package/esm2022/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.mjs +5 -6
  4. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.mjs +92 -0
  5. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.mjs +32 -0
  6. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.mjs +18 -0
  7. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +96 -0
  8. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.module.mjs +39 -0
  9. package/esm2022/lib/techlify-view/techlify-view.service.mjs +18 -0
  10. package/esm2022/public-api.mjs +8 -1
  11. package/fesm2022/ngx-techlify-core.mjs +304 -20
  12. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  13. package/lib/base-model/techlify-listing-component.class.d.ts +18 -0
  14. package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.d.ts +8 -7
  15. package/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.d.ts +1 -1
  16. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.d.ts +23 -0
  17. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.d.ts +11 -0
  18. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.d.ts +8 -0
  19. package/lib/techlify-view/techlify-view-form/techlify-view-form.component.d.ts +30 -0
  20. package/lib/techlify-view/techlify-view-form/techlify-view-form.module.d.ts +12 -0
  21. package/lib/techlify-view/techlify-view.service.d.ts +8 -0
  22. package/package.json +1 -1
  23. package/public-api.d.ts +6 -0
@@ -539,6 +539,8 @@ let TechlifyListingControllerInterface = class TechlifyListingControllerInterfac
539
539
  this.perPage = 25;
540
540
  this.lastPage = 0;
541
541
  this.isWorking = false;
542
+ this.isViewLoaded = false;
543
+ this.columnConfigs = [];
542
544
  /**
543
545
  * Boolean to turn off, if we don't want to patch filters from route.
544
546
  * This can be overriden in child classes if need
@@ -694,6 +696,44 @@ let TechlifyListingControllerInterface = class TechlifyListingControllerInterfac
694
696
  this.models = [];
695
697
  this.filterForm.get('sort_by').setValue(`${event?.active}|${direction}`);
696
698
  }
699
+ /**
700
+ * It should be overrided in child class to reset a filter form instance.
701
+ * Used by setView method.
702
+ */
703
+ resetFilterForm() {
704
+ //If filterForm exists, then reset
705
+ if (this.filterForm) {
706
+ this.filterForm.reset();
707
+ }
708
+ }
709
+ /**
710
+ * It should be overrided in child class to reset column configs.
711
+ * Used by setView method.
712
+ */
713
+ resetColumnConfigs() {
714
+ this.columnConfigs = [];
715
+ }
716
+ /**
717
+ * Hook method used to set the selected view
718
+ * @param view optional used by my-view-list
719
+ */
720
+ setView(view) {
721
+ this.isViewLoaded = false;
722
+ this.resetColumnConfigs();
723
+ this.resetFilterForm();
724
+ if (view) {
725
+ //If there is a view, then set it.
726
+ //Setup view filters
727
+ this.filterForm.patchValue(view?.filters);
728
+ //Setup view columns
729
+ this.columnConfigs.forEach(column => {
730
+ column.isSelected = (view?.columns).some(col => col === column.def);
731
+ });
732
+ }
733
+ setTimeout(() => {
734
+ this.isViewLoaded = true;
735
+ }, 500);
736
+ }
697
737
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyListingControllerInterface, deps: [{ token: TechlifyServiceBaseClass, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
698
738
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyListingControllerInterface, ngImport: i0 }); }
699
739
  };
@@ -15363,34 +15403,37 @@ class FormConfigurationUtilityService {
15363
15403
  }
15364
15404
 
15365
15405
  class FormConfigurationFieldFormComponent {
15366
- constructor(activatedRoute, formConfigurationFormService, formConfigurationFormFieldService) {
15367
- this.activatedRoute = activatedRoute;
15406
+ constructor(formConfigurationFormService, activatedRoute, formConfigurationFormFieldService) {
15368
15407
  this.formConfigurationFormService = formConfigurationFormService;
15408
+ this.activatedRoute = activatedRoute;
15369
15409
  this.formConfigurationFormFieldService = formConfigurationFormFieldService;
15410
+ this.isWorking = false;
15370
15411
  }
15371
15412
  ngOnInit() {
15372
- this.activatedRoute.params.subscribe(params => {
15373
- this.formConfigurationFormService.show(params['formCode']).subscribe(res => {
15374
- this.formConfigForm = res.item;
15375
- });
15413
+ this.isWorking = true;
15414
+ this.activatedRoute.paramMap.pipe(switchMap$1((paramMap) => this.formConfigurationFormService
15415
+ .show(paramMap.get('formCode'))
15416
+ .pipe(finalize(() => this.isWorking = false)))).subscribe((res) => {
15417
+ this.formConfiguration = res?.item;
15376
15418
  });
15377
15419
  }
15378
- onToggle(field) {
15379
- this.formConfigurationFormFieldService.update(field).subscribe(res => {
15380
- let index = this.formConfigForm.fields.indexOf(field);
15381
- this.formConfigForm.fields[index] = res.item;
15420
+ updateField(fieldCode, field, value) {
15421
+ field[fieldCode] = value.checked;
15422
+ field.is_working = true;
15423
+ this.formConfigurationFormFieldService.update(field)
15424
+ .pipe(finalize(() => field.is_working = false))
15425
+ .subscribe((res) => {
15426
+ field.id = res?.item?.id;
15427
+ field[fieldCode] = res?.item[fieldCode];
15382
15428
  });
15383
15429
  }
15384
- goBack() {
15385
- window.history.back();
15386
- }
15387
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: FormConfigurationFormService }, { token: FormConfigurationFormFieldService }], target: i0.ɵɵFactoryTarget.Component }); }
15388
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormConfigurationFieldFormComponent, selector: "techlify-form-configuration-field-form", ngImport: i0, template: "<div style=\"padding: 16px;\">\n <button mat-icon-button (click)=\"goBack()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <h2 *ngIf=\"formConfigForm\">{{ formConfigForm.form_name }} - Field Configuration</h2>\n\n <mat-progress-bar *ngIf=\"!formConfigForm\" mode=\"indeterminate\"></mat-progress-bar>\n\n <div *ngIf=\"formConfigForm\" fxLayout=\"row wrap\" fxLayoutGap=\"16px\">\n <mat-card *ngFor=\"let field of formConfigForm.fields\" fxFlex=\"30\" style=\"margin-bottom: 16px;\">\n <mat-card-header>\n <mat-card-title>{{ field.field_code }}</mat-card-title>\n <mat-card-subtitle>{{ field.description }}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <div fxLayout=\"column\" fxLayoutGap=\"8px\">\n <mat-slide-toggle [(ngModel)]=\"field.is_required\" (change)=\"onToggle(field)\">\n Is Required\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"field.is_enabled\" (change)=\"onToggle(field)\">\n Is Enabled\n </mat-slide-toggle>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
15430
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormComponent, deps: [{ token: FormConfigurationFormService }, { token: i1$2.ActivatedRoute }, { token: FormConfigurationFormFieldService }], target: i0.ɵɵFactoryTarget.Component }); }
15431
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormConfigurationFieldFormComponent, selector: "app-form-configuration-field-form", ngImport: i0, template: "<div fxLayout=\"column\" class=\"mt-2 container\" fxLayoutGap=\"0.5rem\">\n <mat-card appearance=\"outlined\" class=\"p-0\">\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <h5 class=\"p-4\">\n Form Configuration: {{formConfiguration?.form_name}}\n </h5>\n <div *ngFor=\"let field of formConfiguration?.fields\" fxLayout=\"column\" class=\"px-4 py-2\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div fxFlex>\n {{field?.description}}\n </div>\n <div fxFlex fxLayout=\"row\">\n <mat-slide-toggle fxFlex [checked]=\"field?.is_required\" color=\"primary\"\n (change)=\"updateField('is_required',field,$event)\" [disabled]=\"field?.is_working || !field?.is_enabled\">Is\n Required</mat-slide-toggle>\n <mat-slide-toggle fxFlex [checked]=\"field?.is_enabled\" color=\"primary\"\n (change)=\"updateField('is_enabled',field,$event)\" [disabled]=\"field?.is_working\">Is\n Enabled</mat-slide-toggle>\n </div>\n </div>\n </div>\n </mat-card>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
15389
15432
  }
15390
15433
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormComponent, decorators: [{
15391
15434
  type: Component,
15392
- args: [{ selector: 'techlify-form-configuration-field-form', template: "<div style=\"padding: 16px;\">\n <button mat-icon-button (click)=\"goBack()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <h2 *ngIf=\"formConfigForm\">{{ formConfigForm.form_name }} - Field Configuration</h2>\n\n <mat-progress-bar *ngIf=\"!formConfigForm\" mode=\"indeterminate\"></mat-progress-bar>\n\n <div *ngIf=\"formConfigForm\" fxLayout=\"row wrap\" fxLayoutGap=\"16px\">\n <mat-card *ngFor=\"let field of formConfigForm.fields\" fxFlex=\"30\" style=\"margin-bottom: 16px;\">\n <mat-card-header>\n <mat-card-title>{{ field.field_code }}</mat-card-title>\n <mat-card-subtitle>{{ field.description }}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <div fxLayout=\"column\" fxLayoutGap=\"8px\">\n <mat-slide-toggle [(ngModel)]=\"field.is_required\" (change)=\"onToggle(field)\">\n Is Required\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"field.is_enabled\" (change)=\"onToggle(field)\">\n Is Enabled\n </mat-slide-toggle>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n</div>\n" }]
15393
- }], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: FormConfigurationFormService }, { type: FormConfigurationFormFieldService }] });
15435
+ args: [{ selector: 'app-form-configuration-field-form', template: "<div fxLayout=\"column\" class=\"mt-2 container\" fxLayoutGap=\"0.5rem\">\n <mat-card appearance=\"outlined\" class=\"p-0\">\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <h5 class=\"p-4\">\n Form Configuration: {{formConfiguration?.form_name}}\n </h5>\n <div *ngFor=\"let field of formConfiguration?.fields\" fxLayout=\"column\" class=\"px-4 py-2\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div fxFlex>\n {{field?.description}}\n </div>\n <div fxFlex fxLayout=\"row\">\n <mat-slide-toggle fxFlex [checked]=\"field?.is_required\" color=\"primary\"\n (change)=\"updateField('is_required',field,$event)\" [disabled]=\"field?.is_working || !field?.is_enabled\">Is\n Required</mat-slide-toggle>\n <mat-slide-toggle fxFlex [checked]=\"field?.is_enabled\" color=\"primary\"\n (change)=\"updateField('is_enabled',field,$event)\" [disabled]=\"field?.is_working\">Is\n Enabled</mat-slide-toggle>\n </div>\n </div>\n </div>\n </mat-card>\n</div>" }]
15436
+ }], ctorParameters: () => [{ type: FormConfigurationFormService }, { type: i1$2.ActivatedRoute }, { type: FormConfigurationFormFieldService }] });
15394
15437
 
15395
15438
  const routes = [
15396
15439
  {
@@ -15451,11 +15494,11 @@ class FormConfigurationForFormComponent {
15451
15494
  this.router.navigate(['/form-configuration-field-form', this.formCode]);
15452
15495
  }
15453
15496
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormComponent, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
15454
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormConfigurationForFormComponent, selector: "techlify-form-configuration-for-form", inputs: { formCode: "formCode" }, ngImport: i0, template: "<button mat-icon-button matTooltip=\"Form Configuration\" (click)=\"openForm()\">\n <mat-icon>settings</mat-icon>\n</button>\n", dependencies: [{ kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
15497
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormConfigurationForFormComponent, selector: "app-form-configuration-for-form", inputs: { formCode: "formCode" }, ngImport: i0, template: "<mat-icon role='button' matTooltip=\"Form Configuration\" (click)=\"openForm()\">settings</mat-icon>", dependencies: [{ kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
15455
15498
  }
15456
15499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormComponent, decorators: [{
15457
15500
  type: Component,
15458
- args: [{ selector: 'techlify-form-configuration-for-form', template: "<button mat-icon-button matTooltip=\"Form Configuration\" (click)=\"openForm()\">\n <mat-icon>settings</mat-icon>\n</button>\n" }]
15501
+ args: [{ selector: 'app-form-configuration-for-form', template: "<mat-icon role='button' matTooltip=\"Form Configuration\" (click)=\"openForm()\">settings</mat-icon>" }]
15459
15502
  }], ctorParameters: () => [{ type: i1$2.Router }], propDecorators: { formCode: [{
15460
15503
  type: Input
15461
15504
  }] } });
@@ -15482,6 +15525,247 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
15482
15525
  }]
15483
15526
  }] });
15484
15527
 
15528
+ class MyTechlifyViewService extends TechlifyServiceBaseClass {
15529
+ constructor(http) {
15530
+ super(http, 'my-techlify-views');
15531
+ }
15532
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewService, deps: [{ token: HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
15533
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewService, providedIn: 'root' }); }
15534
+ }
15535
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewService, decorators: [{
15536
+ type: Injectable,
15537
+ args: [{
15538
+ providedIn: 'root'
15539
+ }]
15540
+ }], ctorParameters: () => [{ type: HttpService }] });
15541
+
15542
+ class TechlifyViewService extends TechlifyServiceBaseClass {
15543
+ constructor(http) {
15544
+ super(http, 'techlify-views');
15545
+ }
15546
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewService, deps: [{ token: HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
15547
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewService, providedIn: 'root' }); }
15548
+ }
15549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewService, decorators: [{
15550
+ type: Injectable,
15551
+ args: [{
15552
+ providedIn: 'root'
15553
+ }]
15554
+ }], ctorParameters: () => [{ type: HttpService }] });
15555
+
15556
+ class TechlifyViewFormComponent extends TechlifyFormComponentInterface {
15557
+ get viewInfo() {
15558
+ return this._viewInfo;
15559
+ }
15560
+ set viewInfo(value) {
15561
+ this.isUpdate = true;
15562
+ this._viewInfo = value;
15563
+ }
15564
+ constructor(formValidatorService, dialog, fb, techlifyViewService) {
15565
+ super(formValidatorService);
15566
+ this.dialog = dialog;
15567
+ this.fb = fb;
15568
+ this.techlifyViewService = techlifyViewService;
15569
+ this.isUpdate = false;
15570
+ this.success = new EventEmitter();
15571
+ this.isWorking = false;
15572
+ this.errorMessages = {
15573
+ title: {
15574
+ required: 'Title is required',
15575
+ }
15576
+ };
15577
+ }
15578
+ ngOnInit() {
15579
+ }
15580
+ initialize() {
15581
+ this.form = this.fb.group({
15582
+ id: [''],
15583
+ title: ['', Validators.required],
15584
+ description: [''],
15585
+ });
15586
+ }
15587
+ formDialog(templateRef) {
15588
+ this.initialize();
15589
+ if (this.isUpdate) {
15590
+ this.form.patchValue(this.viewInfo);
15591
+ }
15592
+ this.dialogRef = this.dialog.open(templateRef, {
15593
+ width: '400px',
15594
+ autoFocus: false,
15595
+ });
15596
+ }
15597
+ submit() {
15598
+ this.form.markAllAsTouched();
15599
+ if (this.form.valid) {
15600
+ const model = this.form.value;
15601
+ model.columns = this.columns;
15602
+ model.filters = this.filters;
15603
+ model.page_code = this.pageCode;
15604
+ this.isWorking = true;
15605
+ (this.isUpdate ?
15606
+ this.techlifyViewService.update(model) :
15607
+ this.techlifyViewService.store(model))
15608
+ .pipe(finalize(() => this.isWorking = false))
15609
+ .subscribe((res) => {
15610
+ this.success.emit(res?.item);
15611
+ this.dialogRef.close();
15612
+ });
15613
+ }
15614
+ }
15615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewFormComponent, deps: [{ token: FormValidatorService }, { token: i1.MatDialog }, { token: i1$5.UntypedFormBuilder }, { token: TechlifyViewService }], target: i0.ɵɵFactoryTarget.Component }); }
15616
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyViewFormComponent, selector: "app-techlify-view-form", inputs: { isUpdate: "isUpdate", columns: "columns", filters: "filters", pageCode: "pageCode", viewInfo: "viewInfo" }, outputs: { success: "success" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!isUpdate\" matTooltip=\"Add View\" class=\"clickable\" (click)=\"formDialog(formTemplate)\"\n fxLayoutAlign=\"start center\">\n <mat-icon class=\"mr-1 small-icon \">add</mat-icon>\n <div>View</div>\n</div>\n<button *ngIf=\"isUpdate\" matTooltip=\"Edit View\" type=\"button\" mat-icon-button (click)=\"formDialog(formTemplate)\">\n <mat-icon>edit</mat-icon>\n</button>\n\n\n<ng-template #formTemplate>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>View Form</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"column\" fxLayoutGap=\"0.25rem\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Title</mat-label>\n <input matInput formControlName=\"title\" placeholder=\"Title\" required />\n <mat-error *ngIf=\"isFieldValid('title')\">{{getErrorMessage('title')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\">\n <mat-label>Description</mat-label>\n <input matInput formControlName=\"description\" placeholder=\"Description\" />\n </mat-form-field>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button fxFlex mat-raised-button type=\"button\" matDialogClose class=\"white-bg-button\">\n Cancel\n </button>\n <button fxFlex mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n </div>\n </form>\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
15617
+ }
15618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewFormComponent, decorators: [{
15619
+ type: Component,
15620
+ args: [{ selector: 'app-techlify-view-form', template: "<div *ngIf=\"!isUpdate\" matTooltip=\"Add View\" class=\"clickable\" (click)=\"formDialog(formTemplate)\"\n fxLayoutAlign=\"start center\">\n <mat-icon class=\"mr-1 small-icon \">add</mat-icon>\n <div>View</div>\n</div>\n<button *ngIf=\"isUpdate\" matTooltip=\"Edit View\" type=\"button\" mat-icon-button (click)=\"formDialog(formTemplate)\">\n <mat-icon>edit</mat-icon>\n</button>\n\n\n<ng-template #formTemplate>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>View Form</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"column\" fxLayoutGap=\"0.25rem\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Title</mat-label>\n <input matInput formControlName=\"title\" placeholder=\"Title\" required />\n <mat-error *ngIf=\"isFieldValid('title')\">{{getErrorMessage('title')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\">\n <mat-label>Description</mat-label>\n <input matInput formControlName=\"description\" placeholder=\"Description\" />\n </mat-form-field>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button fxFlex mat-raised-button type=\"button\" matDialogClose class=\"white-bg-button\">\n Cancel\n </button>\n <button fxFlex mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n </div>\n </form>\n</ng-template>" }]
15621
+ }], ctorParameters: () => [{ type: FormValidatorService }, { type: i1.MatDialog }, { type: i1$5.UntypedFormBuilder }, { type: TechlifyViewService }], propDecorators: { isUpdate: [{
15622
+ type: Input
15623
+ }], success: [{
15624
+ type: Output
15625
+ }], columns: [{
15626
+ type: Input
15627
+ }], filters: [{
15628
+ type: Input
15629
+ }], pageCode: [{
15630
+ type: Input
15631
+ }], viewInfo: [{
15632
+ type: Input
15633
+ }] } });
15634
+
15635
+ class MyTechlifyViewListingComponent extends TechlifyListingControllerInterface {
15636
+ //Used to expose public observable API in case of custom event implementation
15637
+ get viewChangedObservable() {
15638
+ return this.viewChanged;
15639
+ }
15640
+ constructor(myTechlifyViewService, dialog) {
15641
+ super();
15642
+ this.myTechlifyViewService = myTechlifyViewService;
15643
+ this.dialog = dialog;
15644
+ this.defaultViewTitle = 'All';
15645
+ this.activeView = '';
15646
+ this.viewChanged = new EventEmitter();
15647
+ }
15648
+ ngOnInit() {
15649
+ this.loadData();
15650
+ }
15651
+ loadData() {
15652
+ this.isWorking = true;
15653
+ this.myTechlifyViewService.index({ 'page_code': this.pageCode })
15654
+ .pipe(finalize(() => this.isWorking = false))
15655
+ .subscribe((res) => {
15656
+ this.models = this.models.concat(res?.data || []);
15657
+ });
15658
+ }
15659
+ deleteView(event, model) {
15660
+ event.stopPropagation();
15661
+ const dialogRef = this.dialog.open(ActionPopupComponent, {
15662
+ width: "400px",
15663
+ data: {
15664
+ title: "Delete View",
15665
+ message: `Are you sure to delete the view?`
15666
+ },
15667
+ autoFocus: false
15668
+ });
15669
+ dialogRef.afterClosed().subscribe(async (result) => {
15670
+ if (result) {
15671
+ //Action confirmed
15672
+ this.isWorking = true;
15673
+ this.myTechlifyViewService
15674
+ .delete(model)
15675
+ .pipe(finalize(() => this.isWorking = false)).subscribe((_) => {
15676
+ this.models = this.models.filter(x => x.id !== model.id);
15677
+ //select the default if view is selected
15678
+ this.viewSelected(null);
15679
+ });
15680
+ }
15681
+ });
15682
+ }
15683
+ viewSelected(view) {
15684
+ if (!view) {
15685
+ //Default view selected
15686
+ this.activeView = '';
15687
+ this.viewChanged.emit(null);
15688
+ return;
15689
+ }
15690
+ this.activeView = view?.title;
15691
+ this.viewChanged.emit(view);
15692
+ }
15693
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewListingComponent, deps: [{ token: MyTechlifyViewService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
15694
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MyTechlifyViewListingComponent, selector: "app-my-techlify-view-listing", inputs: { pageCode: "pageCode", columns: "columns", filters: "filters", defaultViewTitle: "defaultViewTitle", activeView: "activeView" }, outputs: { viewChanged: "viewChanged" }, usesInheritance: true, ngImport: i0, template: "<div fxLayoutAlign=\"start center\" class=\"views-container w-100\">\n <div fxLayoutAlign=\"start center\" class=\"view-chip clickable\" (click)=\"viewSelected()\"\n [ngClass]=\"{'active-chip':!activeView}\">\n <div>\n {{defaultViewTitle}}\n </div>\n <mat-divider [vertical]=\"true\" style=\"height:80%\"></mat-divider>\n </div>\n <div fxFlex fxLayout=\"row wrap\">\n <div *ngFor=\"let model of models\" fxLayoutAlign=\"start center\">\n <div class=\"view-chip clickable\" fxLayoutAlign=\"start center\" (click)=\"viewSelected(model)\"\n [ngClass]=\"{'active-chip':activeView === model?.title}\">\n <div> {{model?.title}}</div>\n <mat-icon class=\"ml-2 clickable small-icon text-black text-bold\"\n (click)=\"deleteView($event,model)\">close</mat-icon>\n </div>\n <mat-divider [vertical]=\"true\" style=\"height:80%\"></mat-divider>\n </div>\n </div>\n <div class=\"view-chip text-black text-bold\">\n <app-techlify-view-form [pageCode]=\"pageCode\" [columns]=\"columns\" [filters]=\"filters\"\n (success)=\"modelCreated($event); viewSelected($event)\"></app-techlify-view-form>\n </div>\n</div>\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>", styles: [".views-container{background-color:#f4f5fa}.view-chip{padding:4px 8px!important;color:#78797b}.active-chip{background-color:#cfd0d4;color:#000;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TechlifyViewFormComponent, selector: "app-techlify-view-form", inputs: ["isUpdate", "columns", "filters", "pageCode", "viewInfo"], outputs: ["success"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] }); }
15695
+ }
15696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewListingComponent, decorators: [{
15697
+ type: Component,
15698
+ args: [{ selector: 'app-my-techlify-view-listing', template: "<div fxLayoutAlign=\"start center\" class=\"views-container w-100\">\n <div fxLayoutAlign=\"start center\" class=\"view-chip clickable\" (click)=\"viewSelected()\"\n [ngClass]=\"{'active-chip':!activeView}\">\n <div>\n {{defaultViewTitle}}\n </div>\n <mat-divider [vertical]=\"true\" style=\"height:80%\"></mat-divider>\n </div>\n <div fxFlex fxLayout=\"row wrap\">\n <div *ngFor=\"let model of models\" fxLayoutAlign=\"start center\">\n <div class=\"view-chip clickable\" fxLayoutAlign=\"start center\" (click)=\"viewSelected(model)\"\n [ngClass]=\"{'active-chip':activeView === model?.title}\">\n <div> {{model?.title}}</div>\n <mat-icon class=\"ml-2 clickable small-icon text-black text-bold\"\n (click)=\"deleteView($event,model)\">close</mat-icon>\n </div>\n <mat-divider [vertical]=\"true\" style=\"height:80%\"></mat-divider>\n </div>\n </div>\n <div class=\"view-chip text-black text-bold\">\n <app-techlify-view-form [pageCode]=\"pageCode\" [columns]=\"columns\" [filters]=\"filters\"\n (success)=\"modelCreated($event); viewSelected($event)\"></app-techlify-view-form>\n </div>\n</div>\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>", styles: [".views-container{background-color:#f4f5fa}.view-chip{padding:4px 8px!important;color:#78797b}.active-chip{background-color:#cfd0d4;color:#000;font-weight:700}\n"] }]
15699
+ }], ctorParameters: () => [{ type: MyTechlifyViewService }, { type: i1.MatDialog }], propDecorators: { pageCode: [{
15700
+ type: Input
15701
+ }], columns: [{
15702
+ type: Input
15703
+ }], filters: [{
15704
+ type: Input
15705
+ }], defaultViewTitle: [{
15706
+ type: Input
15707
+ }], activeView: [{
15708
+ type: Input
15709
+ }], viewChanged: [{
15710
+ type: Output
15711
+ }] } });
15712
+
15713
+ class TechlifyViewFormModule {
15714
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15715
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewFormModule, declarations: [TechlifyViewFormComponent], imports: [CommonModule,
15716
+ MaterialModule,
15717
+ FlexLayoutModule,
15718
+ FormsModule,
15719
+ ReactiveFormsModule,
15720
+ MatProgressBarModule], exports: [TechlifyViewFormComponent] }); }
15721
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewFormModule, imports: [CommonModule,
15722
+ MaterialModule,
15723
+ FlexLayoutModule,
15724
+ FormsModule,
15725
+ ReactiveFormsModule,
15726
+ MatProgressBarModule] }); }
15727
+ }
15728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyViewFormModule, decorators: [{
15729
+ type: NgModule,
15730
+ args: [{
15731
+ declarations: [TechlifyViewFormComponent],
15732
+ imports: [
15733
+ CommonModule,
15734
+ MaterialModule,
15735
+ FlexLayoutModule,
15736
+ FormsModule,
15737
+ ReactiveFormsModule,
15738
+ MatProgressBarModule,
15739
+ ],
15740
+ exports: [TechlifyViewFormComponent]
15741
+ }]
15742
+ }] });
15743
+
15744
+ class MyTechlifyViewListingModule {
15745
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewListingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15746
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewListingModule, declarations: [MyTechlifyViewListingComponent], imports: [CommonModule,
15747
+ TechlifyViewFormModule,
15748
+ MaterialModule,
15749
+ FlexLayoutModule], exports: [MyTechlifyViewListingComponent] }); }
15750
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewListingModule, imports: [CommonModule,
15751
+ TechlifyViewFormModule,
15752
+ MaterialModule,
15753
+ FlexLayoutModule] }); }
15754
+ }
15755
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MyTechlifyViewListingModule, decorators: [{
15756
+ type: NgModule,
15757
+ args: [{
15758
+ declarations: [MyTechlifyViewListingComponent],
15759
+ imports: [
15760
+ CommonModule,
15761
+ TechlifyViewFormModule,
15762
+ MaterialModule,
15763
+ FlexLayoutModule
15764
+ ],
15765
+ exports: [MyTechlifyViewListingComponent]
15766
+ }]
15767
+ }] });
15768
+
15485
15769
  /*
15486
15770
  * Public API Surface of ngx-techlify-core
15487
15771
  */
@@ -15490,5 +15774,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
15490
15774
  * Generated bundle index. Do not edit.
15491
15775
  */
15492
15776
 
15493
- export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AdminRoleListComponent, AdminRoleListModule, AdminRolePermissionFormComponent, AdminRolePermissionFormModule, AdminRoleService, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserViewComponent, AppAdminUserViewModule, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataManager, DataTable, DataTableComponent, DataTableModule, DateUtils, DateValidator, DocumentViewerComponent, DocumentViewerModule, EmailSubscriptionForUserComponent, EmailSubscriptionForUserModule, EmailSubscriptionForUserRoutingModule, EmailSubscriptionModule, EmailSubscriptionRoutingModule, EmailSubscriptionTypeFormComponent, EmailSubscriptionTypeFormModule, EmailSubscriptionTypeFormRoutingModule, EmailSubscriptionTypeListComponent, EmailSubscriptionTypeListModule, EmailSubscriptionTypeListRoutingModule, EmailSubscriptionTypeModule, EmailSubscriptionTypeRoutingModule, EmailSubscriptionUserFormComponent, EmailSubscriptionUserFormModule, EmailSubscriptionUserFormRoutingModule, EmailSubscriptionUserListComponent, EmailSubscriptionUserListFilterComponent, EmailSubscriptionUserListFilterModule, EmailSubscriptionUserListFilterRoutingModule, EmailSubscriptionUserListModule, EmailSubscriptionUserListRoutingModule, EmailSubscriptionUserModule, EmailSubscriptionUserRoutingModule, EntityFileFormComponent, EntityFileService, EntityFilesViewAllComponent, EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormConfigurationFieldFormComponent, FormConfigurationFieldFormModule, FormConfigurationFieldFormRoutingModule, FormConfigurationForFormComponent, FormConfigurationForFormModule, FormConfigurationFormFieldService, FormConfigurationFormService, FormConfigurationUtilityService, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RoleViewComponent, RoleViewModule, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyDeleteButtonComponent, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormComponentInterface, TechlifyIconComponent, TechlifyIconModule, TechlifyListingControllerInterface, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyServiceBaseClass, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineActivityListComponent, TimelineActivityListModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UsersViewAllComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, esfur, estlr, esulr };
15777
+ export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AdminRoleListComponent, AdminRoleListModule, AdminRolePermissionFormComponent, AdminRolePermissionFormModule, AdminRoleService, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserViewComponent, AppAdminUserViewModule, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataManager, DataTable, DataTableComponent, DataTableModule, DateUtils, DateValidator, DocumentViewerComponent, DocumentViewerModule, EmailSubscriptionForUserComponent, EmailSubscriptionForUserModule, EmailSubscriptionForUserRoutingModule, EmailSubscriptionModule, EmailSubscriptionRoutingModule, EmailSubscriptionTypeFormComponent, EmailSubscriptionTypeFormModule, EmailSubscriptionTypeFormRoutingModule, EmailSubscriptionTypeListComponent, EmailSubscriptionTypeListModule, EmailSubscriptionTypeListRoutingModule, EmailSubscriptionTypeModule, EmailSubscriptionTypeRoutingModule, EmailSubscriptionUserFormComponent, EmailSubscriptionUserFormModule, EmailSubscriptionUserFormRoutingModule, EmailSubscriptionUserListComponent, EmailSubscriptionUserListFilterComponent, EmailSubscriptionUserListFilterModule, EmailSubscriptionUserListFilterRoutingModule, EmailSubscriptionUserListModule, EmailSubscriptionUserListRoutingModule, EmailSubscriptionUserModule, EmailSubscriptionUserRoutingModule, EntityFileFormComponent, EntityFileService, EntityFilesViewAllComponent, EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormConfigurationFieldFormComponent, FormConfigurationFieldFormModule, FormConfigurationFieldFormRoutingModule, FormConfigurationForFormComponent, FormConfigurationForFormModule, FormConfigurationFormFieldService, FormConfigurationFormService, FormConfigurationUtilityService, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, MyTechlifyViewListingComponent, MyTechlifyViewListingModule, MyTechlifyViewService, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RoleViewComponent, RoleViewModule, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyDeleteButtonComponent, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormComponentInterface, TechlifyIconComponent, TechlifyIconModule, TechlifyListingControllerInterface, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyServiceBaseClass, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TechlifyViewFormComponent, TechlifyViewFormModule, TechlifyViewService, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineActivityListComponent, TimelineActivityListModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UsersViewAllComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, esfur, estlr, esulr };
15494
15778
  //# sourceMappingURL=ngx-techlify-core.mjs.map