ngx-techlify-core 11.3.0-beta.2 → 11.3.0-beta.6

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 (30) hide show
  1. package/bundles/ngx-techlify-core.umd.js +628 -47
  2. package/bundles/ngx-techlify-core.umd.js.map +1 -1
  3. package/bundles/ngx-techlify-core.umd.min.js +2 -2
  4. package/bundles/ngx-techlify-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.js +7 -1
  6. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.js +9 -1
  7. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.js +10 -2
  8. package/esm2015/lib/image-for-model/image-for-model.module.js +4 -4
  9. package/esm2015/lib/material.module.js +24 -56
  10. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.js +15 -0
  11. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.js +269 -0
  12. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.js +25 -0
  13. package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.js +168 -0
  14. package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.js +29 -0
  15. package/esm2015/lib/timeline-filter/timeline-filter.component.js +21 -5
  16. package/esm2015/public-api.js +6 -1
  17. package/fesm2015/ngx-techlify-core.js +525 -60
  18. package/fesm2015/ngx-techlify-core.js.map +1 -1
  19. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +5 -0
  20. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +7 -0
  21. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +7 -0
  22. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +12 -0
  23. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +76 -0
  24. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +2 -0
  25. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +58 -0
  26. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +2 -0
  27. package/lib/timeline-filter/timeline-filter.component.d.ts +4 -2
  28. package/ngx-techlify-core.metadata.json +1 -1
  29. package/package.json +1 -1
  30. package/public-api.d.ts +5 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/material/dialog'), require('@angular/material/table'), require('@angular/material/sort'), require('@ngneat/until-destroy'), require('@angular/common'), require('@angular/forms'), require('@angular/common/http'), require('rxjs'), require('rxjs/operators'), require('@angular/material/snack-bar'), require('@angular/cdk/a11y'), require('@angular/cdk/coercion'), require('@angular/material/form-field'), require('@angular/material/select'), require('@angular/material/icon'), require('@angular/router'), require('@angular/material/core'), require('@angular/material/autocomplete'), require('@angular/material/badge'), require('@angular/material/button'), require('@angular/material/button-toggle'), require('@angular/material/card'), require('@angular/material/checkbox'), require('@angular/material/chips'), require('@angular/material/datepicker'), require('@angular/material/divider'), require('@angular/material/expansion'), require('@angular/material/grid-list'), require('@angular/material/input'), require('@angular/material/list'), require('@angular/material/menu'), require('@angular/material/paginator'), require('@angular/material/progress-bar'), require('@angular/material/progress-spinner'), require('@angular/material/radio'), require('@angular/material/sidenav'), require('@angular/material/slide-toggle'), require('@angular/material/slider'), require('@angular/material/stepper'), require('@angular/material/tabs'), require('@angular/material/toolbar'), require('@angular/material/tooltip'), require('@angular/material/tree'), require('@angular/flex-layout'), require('ngx-infinite-scroll'), require('ngx-doc-viewer'), require('ngx-editor'), require('xlsx'), require('@angular/platform-browser'), require('jsondiffpatch')) :
3
- typeof define === 'function' && define.amd ? define('ngx-techlify-core', ['exports', '@angular/core', '@angular/material/dialog', '@angular/material/table', '@angular/material/sort', '@ngneat/until-destroy', '@angular/common', '@angular/forms', '@angular/common/http', 'rxjs', 'rxjs/operators', '@angular/material/snack-bar', '@angular/cdk/a11y', '@angular/cdk/coercion', '@angular/material/form-field', '@angular/material/select', '@angular/material/icon', '@angular/router', '@angular/material/core', '@angular/material/autocomplete', '@angular/material/badge', '@angular/material/button', '@angular/material/button-toggle', '@angular/material/card', '@angular/material/checkbox', '@angular/material/chips', '@angular/material/datepicker', '@angular/material/divider', '@angular/material/expansion', '@angular/material/grid-list', '@angular/material/input', '@angular/material/list', '@angular/material/menu', '@angular/material/paginator', '@angular/material/progress-bar', '@angular/material/progress-spinner', '@angular/material/radio', '@angular/material/sidenav', '@angular/material/slide-toggle', '@angular/material/slider', '@angular/material/stepper', '@angular/material/tabs', '@angular/material/toolbar', '@angular/material/tooltip', '@angular/material/tree', '@angular/flex-layout', 'ngx-infinite-scroll', 'ngx-doc-viewer', 'ngx-editor', 'xlsx', '@angular/platform-browser', 'jsondiffpatch'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['ngx-techlify-core'] = {}, global.ng.core, global.ng.material.dialog, global.ng.material.table, global.ng.material.sort, global['@ngneat/until-destroy'], global.ng.common, global.ng.forms, global.ng.common.http, global.rxjs, global.rxjs.operators, global.ng.material.snackBar, global.ng.cdk.a11y, global.ng.cdk.coercion, global.ng.material.formField, global.ng.material.select, global.ng.material.icon, global.ng.router, global.ng.material.core, global.ng.material.autocomplete, global.ng.material.badge, global.ng.material.button, global.ng.material.buttonToggle, global.ng.material.card, global.ng.material.checkbox, global.ng.material.chips, global.ng.material.datepicker, global.ng.material.divider, global.ng.material.expansion, global.ng.material.gridList, global.ng.material.input, global.ng.material.list, global.ng.material.menu, global.ng.material.paginator, global.ng.material.progressBar, global.ng.material.progressSpinner, global.ng.material.radio, global.ng.material.sidenav, global.ng.material.slideToggle, global.ng.material.slider, global.ng.material.stepper, global.ng.material.tabs, global.ng.material.toolbar, global.ng.material.tooltip, global.ng.material.tree, global.ng.flexLayout, global['ngx-infinite-scroll'], global['ngx-doc-viewer'], global['ngx-editor'], global.xlsx, global.ng.platformBrowser, global.jsondiffpatch));
5
- }(this, (function (exports, i0, dialog, table, sort, untilDestroy, common, forms, i1$1, rxjs, operators, i1, a11y, coercion, formField, select, icon, i1$2, core, autocomplete, badge, button, buttonToggle, card, checkbox, chips, datepicker, divider, expansion, gridList, input, list, menu, paginator, progressBar, progressSpinner, radio, sidenav, slideToggle, slider, stepper, tabs, toolbar, tooltip, tree, flexLayout, ngxInfiniteScroll, ngxDocViewer, ngxEditor, XLSX, platformBrowser, jsondiffpatch) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/material/dialog'), require('@angular/material/table'), require('@angular/material/sort'), require('@ngneat/until-destroy'), require('@angular/common'), require('@angular/forms'), require('@angular/common/http'), require('rxjs'), require('rxjs/operators'), require('@angular/material/snack-bar'), require('@angular/cdk/a11y'), require('@angular/cdk/coercion'), require('@angular/material/form-field'), require('@angular/material/select'), require('@angular/material/icon'), require('@angular/router'), require('@angular/material/tooltip'), require('@angular/material/core'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/input'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/card'), require('@angular/material/divider'), require('@angular/material/chips'), require('@angular/material/datepicker'), require('@angular/material/list'), require('@angular/flex-layout'), require('ngx-infinite-scroll'), require('ngx-doc-viewer'), require('ngx-editor'), require('xlsx'), require('@angular/platform-browser'), require('jsondiffpatch'), require('@angular/cdk/keycodes'), require('@angular/material/autocomplete'), require('@angular/material/button-toggle')) :
3
+ typeof define === 'function' && define.amd ? define('ngx-techlify-core', ['exports', '@angular/core', '@angular/material/dialog', '@angular/material/table', '@angular/material/sort', '@ngneat/until-destroy', '@angular/common', '@angular/forms', '@angular/common/http', 'rxjs', 'rxjs/operators', '@angular/material/snack-bar', '@angular/cdk/a11y', '@angular/cdk/coercion', '@angular/material/form-field', '@angular/material/select', '@angular/material/icon', '@angular/router', '@angular/material/tooltip', '@angular/material/core', '@angular/material/button', '@angular/material/checkbox', '@angular/material/input', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/card', '@angular/material/divider', '@angular/material/chips', '@angular/material/datepicker', '@angular/material/list', '@angular/flex-layout', 'ngx-infinite-scroll', 'ngx-doc-viewer', 'ngx-editor', 'xlsx', '@angular/platform-browser', 'jsondiffpatch', '@angular/cdk/keycodes', '@angular/material/autocomplete', '@angular/material/button-toggle'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['ngx-techlify-core'] = {}, global.ng.core, global.ng.material.dialog, global.ng.material.table, global.ng.material.sort, global['@ngneat/until-destroy'], global.ng.common, global.ng.forms, global.ng.common.http, global.rxjs, global.rxjs.operators, global.ng.material.snackBar, global.ng.cdk.a11y, global.ng.cdk.coercion, global.ng.material.formField, global.ng.material.select, global.ng.material.icon, global.ng.router, global.ng.material.tooltip, global.ng.material.core, global.ng.material.button, global.ng.material.checkbox, global.ng.material.input, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.card, global.ng.material.divider, global.ng.material.chips, global.ng.material.datepicker, global.ng.material.list, global.ng.flexLayout, global['ngx-infinite-scroll'], global['ngx-doc-viewer'], global['ngx-editor'], global.xlsx, global.ng.platformBrowser, global.jsondiffpatch, global.ng.cdk.keycodes, global.ng.material.autocomplete, global.ng.material.buttonToggle));
5
+ }(this, (function (exports, i0, dialog, table, sort, untilDestroy, common, forms, i1$1, rxjs, operators, i1, a11y, coercion, formField, select, icon, i1$2, tooltip, core, button, checkbox, input, menu, progressSpinner, card, divider, chips, datepicker, list, flexLayout, ngxInfiniteScroll, ngxDocViewer, ngxEditor, XLSX, platformBrowser, jsondiffpatch, keycodes, autocomplete, buttonToggle) { 'use strict';
6
6
 
7
7
  var ActionPopup = /** @class */ (function () {
8
8
  function ActionPopup() {
@@ -2738,8 +2738,9 @@
2738
2738
  Timeline.LAST_YEAR = 11;
2739
2739
  Timeline.ALL = 12;
2740
2740
 
2741
- var TimelineFilterComponent = /** @class */ (function () {
2741
+ exports.ɵx = /** @class */ (function () {
2742
2742
  function TimelineFilterComponent() {
2743
+ this.timelineValue = new forms.FormControl('');
2743
2744
  this.timelines = [
2744
2745
  { value: 1, viewValue: 'Custom' },
2745
2746
  { value: 2, viewValue: 'Today' },
@@ -2757,17 +2758,22 @@
2757
2758
  this.labelText = 'Select Timeline';
2758
2759
  this.dateFrom = 'date_from';
2759
2760
  this.dateTo = 'date_to';
2761
+ this.appearance = "legacy";
2762
+ this.showClearbutton = false;
2760
2763
  this.showCustomDateFields = false;
2761
2764
  }
2762
2765
  Object.defineProperty(TimelineFilterComponent.prototype, "defaultValue", {
2763
2766
  set: function (value) {
2764
- this.timelineValue = value;
2767
+ this.timelineValue.setValue(value);
2765
2768
  this.changeTimeline(value);
2766
2769
  },
2767
2770
  enumerable: false,
2768
2771
  configurable: true
2769
2772
  });
2770
2773
  TimelineFilterComponent.prototype.ngOnInit = function () {
2774
+ var _this = this;
2775
+ this.timelineValue.valueChanges.
2776
+ pipe(operators.debounceTime(100), operators.distinctUntilChanged(), untilDestroy.untilDestroyed(this)).subscribe(function (value) { return _this.changeTimeline(value); });
2771
2777
  };
2772
2778
  TimelineFilterComponent.prototype.resetFieldValue = function (field) {
2773
2779
  this.form.get(field).setValue('');
@@ -2788,22 +2794,28 @@
2788
2794
  };
2789
2795
  return TimelineFilterComponent;
2790
2796
  }());
2791
- TimelineFilterComponent.decorators = [
2797
+ exports.ɵx.decorators = [
2792
2798
  { type: i0.Component, args: [{
2793
2799
  selector: 'app-timeline-filter',
2794
- template: "<ng-container [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>{{labelText}}</mat-label>\n <mat-select (selectionChange)=\"changeTimeline($event.value)\" [value]=\"timelineValue\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline.value\">\n {{timeline.viewValue}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container *ngIf=\"showCustomDateFields\">\n <mat-form-field>\n <input matInput formControlName=\"{{dateFrom}}\" [matDatepicker]=\"fromPicker\" (click)=\"fromPicker.open()\"\n placeholder=\"From Date\" readonly />\n <mat-datepicker-toggle matSuffix [for]=\"fromPicker\"></mat-datepicker-toggle>\n <mat-datepicker #fromPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue(dateFrom)\" matSuffix mat-icon-button\n (click)=\"resetFieldValue(dateFrom)\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <input matInput formControlName=\"{{dateTo}}\" [matDatepicker]=\"toPicker\" (click)=\"toPicker.open()\"\n placeholder=\"To Date\" readonly />\n <mat-datepicker-toggle matSuffix [for]=\"\"></mat-datepicker-toggle>\n <mat-datepicker #toPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue(dateTo)\" matSuffix mat-icon-button\n (click)=\"resetFieldValue(dateTo)\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n </ng-container>\n</ng-container>",
2800
+ template: "<ng-container [formGroup]=\"form\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>{{labelText}}</mat-label>\n <mat-select [formControl]=\"timelineValue\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline.value\">\n {{timeline.viewValue}}\n </mat-option>\n </mat-select>\n <button mat-button *ngIf=\"showClearbutton && timelineValue.value\" matSuffix mat-icon-button\n (click)=\"timelineValue.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"showCustomDateFields\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>From Date</mat-label>\n <input matInput formControlName=\"{{dateFrom}}\" [matDatepicker]=\"fromPicker\" (click)=\"fromPicker.open()\"\n placeholder=\"From Date\" readonly />\n <mat-datepicker-toggle matSuffix [for]=\"fromPicker\"></mat-datepicker-toggle>\n <mat-datepicker #fromPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue(dateFrom)\" matSuffix mat-icon-button\n (click)=\"resetFieldValue(dateFrom)\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>To Date</mat-label>\n <input matInput formControlName=\"{{dateTo}}\" [matDatepicker]=\"toPicker\" (click)=\"toPicker.open()\"\n placeholder=\"To Date\" readonly />\n <mat-datepicker-toggle matSuffix [for]=\"\"></mat-datepicker-toggle>\n <mat-datepicker #toPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue(dateTo)\" matSuffix mat-icon-button\n (click)=\"resetFieldValue(dateTo)\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n </ng-container>\n</ng-container>",
2795
2801
  styles: [""]
2796
2802
  },] }
2797
2803
  ];
2798
- TimelineFilterComponent.ctorParameters = function () { return []; };
2799
- TimelineFilterComponent.propDecorators = {
2804
+ exports.ɵx.ctorParameters = function () { return []; };
2805
+ exports.ɵx.propDecorators = {
2806
+ timelineValue: [{ type: i0.Input }],
2800
2807
  timelines: [{ type: i0.Input }],
2801
2808
  labelText: [{ type: i0.Input }],
2802
2809
  dateFrom: [{ type: i0.Input }],
2803
2810
  dateTo: [{ type: i0.Input }],
2811
+ appearance: [{ type: i0.Input }],
2812
+ showClearbutton: [{ type: i0.Input }],
2804
2813
  form: [{ type: i0.Input }],
2805
2814
  defaultValue: [{ type: i0.Input }]
2806
2815
  };
2816
+ exports.ɵx = __decorate([
2817
+ untilDestroy.UntilDestroy()
2818
+ ], exports.ɵx);
2807
2819
 
2808
2820
  var LoaderComponent = /** @class */ (function () {
2809
2821
  function LoaderComponent() {
@@ -3134,13 +3146,6 @@
3134
3146
  { type: HttpService }
3135
3147
  ]; };
3136
3148
 
3137
- /*
3138
- * This module imports and re-exports all Angular Material modules for convenience,
3139
- * so only 1 module import is needed in your feature modules.
3140
- * See https://material.angular.io/guide/getting-started#step-3-import-the-component-modules.
3141
- *
3142
- * To optimize your production builds, you should only import the components used in your app.
3143
- */
3144
3149
  var MaterialModule = /** @class */ (function () {
3145
3150
  function MaterialModule() {
3146
3151
  }
@@ -3149,45 +3154,29 @@
3149
3154
  MaterialModule.decorators = [
3150
3155
  { type: i0.NgModule, args: [{
3151
3156
  exports: [
3152
- autocomplete.MatAutocompleteModule,
3153
- badge.MatBadgeModule,
3154
3157
  button.MatButtonModule,
3155
- buttonToggle.MatButtonToggleModule,
3156
- card.MatCardModule,
3157
3158
  checkbox.MatCheckboxModule,
3158
- chips.MatChipsModule,
3159
3159
  core.MatCommonModule,
3160
- datepicker.MatDatepickerModule,
3161
3160
  dialog.MatDialogModule,
3162
- divider.MatDividerModule,
3163
- expansion.MatExpansionModule,
3164
3161
  formField.MatFormFieldModule,
3165
- gridList.MatGridListModule,
3166
3162
  icon.MatIconModule,
3167
3163
  input.MatInputModule,
3168
3164
  core.MatLineModule,
3169
- list.MatListModule,
3170
3165
  menu.MatMenuModule,
3171
3166
  core.MatNativeDateModule,
3172
3167
  core.MatOptionModule,
3173
- paginator.MatPaginatorModule,
3174
- progressBar.MatProgressBarModule,
3175
3168
  progressSpinner.MatProgressSpinnerModule,
3176
3169
  core.MatPseudoCheckboxModule,
3177
- radio.MatRadioModule,
3178
3170
  core.MatRippleModule,
3179
3171
  select.MatSelectModule,
3180
- sidenav.MatSidenavModule,
3181
- slideToggle.MatSlideToggleModule,
3182
- slider.MatSliderModule,
3183
- i1.MatSnackBarModule,
3184
3172
  sort.MatSortModule,
3185
- stepper.MatStepperModule,
3186
3173
  table.MatTableModule,
3187
- tabs.MatTabsModule,
3188
- toolbar.MatToolbarModule,
3189
- tooltip.MatTooltipModule,
3190
- tree.MatTreeModule
3174
+ card.MatCardModule,
3175
+ divider.MatDividerModule,
3176
+ chips.MatChipsModule,
3177
+ datepicker.MatDatepickerModule,
3178
+ list.MatListModule,
3179
+ tooltip.MatTooltipModule
3191
3180
  ]
3192
3181
  },] }
3193
3182
  ];
@@ -3429,7 +3418,7 @@
3429
3418
  }());
3430
3419
  TimelineFilterModule.decorators = [
3431
3420
  { type: i0.NgModule, args: [{
3432
- declarations: [TimelineFilterComponent],
3421
+ declarations: [exports.ɵx],
3433
3422
  imports: [
3434
3423
  common.CommonModule,
3435
3424
  TimelineFilterRoutingModule,
@@ -3437,7 +3426,7 @@
3437
3426
  MaterialModule,
3438
3427
  forms.ReactiveFormsModule
3439
3428
  ],
3440
- exports: [TimelineFilterComponent]
3429
+ exports: [exports.ɵx]
3441
3430
  },] }
3442
3431
  ];
3443
3432
 
@@ -3795,11 +3784,19 @@
3795
3784
  untilDestroy.UntilDestroy()
3796
3785
  ], exports.ɵbb);
3797
3786
 
3787
+ var esulr = {
3788
+ title: 'Email Subscription Users',
3789
+ permissions: {
3790
+ only: ['app_admin'],
3791
+ redirectTo: '/'
3792
+ }
3793
+ };
3798
3794
  var routes$4 = [
3799
3795
  {
3800
3796
  path: '',
3801
3797
  component: exports.ɵbb,
3802
- canActivate: [AuthenticationGuard]
3798
+ canActivate: [AuthenticationGuard],
3799
+ data: esulr
3803
3800
  },
3804
3801
  ];
3805
3802
  var EmailSubscriptionUserListRoutingModule = /** @class */ (function () {
@@ -4225,11 +4222,19 @@
4225
4222
  untilDestroy.UntilDestroy()
4226
4223
  ], exports.ɵbi);
4227
4224
 
4225
+ var estlr = {
4226
+ title: 'Email Subscription Type',
4227
+ permissions: {
4228
+ only: ['client_admin'],
4229
+ redirectTo: '/'
4230
+ }
4231
+ };
4228
4232
  var routes$8 = [
4229
4233
  {
4230
4234
  path: '',
4231
4235
  component: exports.ɵbi,
4232
4236
  canActivate: [AuthenticationGuard],
4237
+ data: estlr
4233
4238
  },
4234
4239
  ];
4235
4240
  var EmailSubscriptionTypeListRoutingModule = /** @class */ (function () {
@@ -4334,11 +4339,17 @@
4334
4339
  untilDestroy.UntilDestroy()
4335
4340
  ], exports.ɵbj);
4336
4341
 
4342
+ var esfur = {
4343
+ permissions: {
4344
+ only: ['client_admin']
4345
+ }
4346
+ };
4337
4347
  var routes$9 = [
4338
4348
  {
4339
4349
  path: '',
4340
4350
  component: exports.ɵbj,
4341
4351
  canActivate: [AuthenticationGuard],
4352
+ data: esfur
4342
4353
  },
4343
4354
  ];
4344
4355
  var EmailSubscriptionForUserRoutingModule = /** @class */ (function () {
@@ -6453,6 +6464,571 @@
6453
6464
  },] }
6454
6465
  ];
6455
6466
 
6467
+ var TechlifyTaggerTagFormConfigModel = /** @class */ (function () {
6468
+ function TechlifyTaggerTagFormConfigModel() {
6469
+ this.selectable = true;
6470
+ this.removable = true;
6471
+ this.separatorKeysCodes = [keycodes.ENTER, keycodes.COMMA];
6472
+ this.placeholder = 'New Tag..';
6473
+ this.apiUrl = 'api/techlify-tagger-tags';
6474
+ this.createApiUrl = 'api/techlify-tagger-tags';
6475
+ this.isCreateable = true;
6476
+ this.isCacheTags = false;
6477
+ this.isSingle = false;
6478
+ }
6479
+ return TechlifyTaggerTagFormConfigModel;
6480
+ }());
6481
+
6482
+ var TechlifyTaggerTagFormFieldComponent_1;
6483
+ exports.TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = /** @class */ (function () {
6484
+ function TechlifyTaggerTagFormFieldComponent(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
6485
+ var _this = this;
6486
+ this._focusMonitor = _focusMonitor;
6487
+ this._elementRef = _elementRef;
6488
+ this.httpService = httpService;
6489
+ this._formField = _formField;
6490
+ this.ngControl = ngControl;
6491
+ this.stateChanges = new rxjs.Subject();
6492
+ this.focused = false;
6493
+ this.controlType = 'techlify-tagger-form-field';
6494
+ this.id = "techlify-tagger-form-field-" + TechlifyTaggerTagFormFieldComponent_1.nextId++;
6495
+ this.onChange = function (_) { };
6496
+ this.onTouched = function () { };
6497
+ this.tagInputCtrl = new forms.FormControl();
6498
+ /**Pass the configuration for Techlify Tagger */
6499
+ this.config = new TechlifyTaggerTagFormConfigModel();
6500
+ /**Pass the default list of tags */
6501
+ this._allTags = [];
6502
+ /**Pass the Categories to filter for a model */
6503
+ this.categories = [];
6504
+ this._required = false;
6505
+ this._disabled = false;
6506
+ this._value = [];
6507
+ this.tagInputCtrl.valueChanges
6508
+ .subscribe(function (filterValue) {
6509
+ _this.filterString = filterValue;
6510
+ });
6511
+ //Set Focus Monitor
6512
+ _focusMonitor.monitor(_elementRef, true).subscribe(function (origin) {
6513
+ if (_this.focused && !origin) {
6514
+ _this.onTouched();
6515
+ }
6516
+ _this.focused = !!origin;
6517
+ _this.stateChanges.next();
6518
+ });
6519
+ if (this.ngControl != null) {
6520
+ this.ngControl.valueAccessor = this;
6521
+ }
6522
+ }
6523
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "allTags", {
6524
+ get: function () {
6525
+ return this._allTags;
6526
+ },
6527
+ set: function (value) {
6528
+ this._allTags = value;
6529
+ },
6530
+ enumerable: false,
6531
+ configurable: true
6532
+ });
6533
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "tags", {
6534
+ get: function () {
6535
+ var _this = this;
6536
+ return this.allTags.filter(function (x) { return _this.value.some(function (y) { return y == x.id; }); });
6537
+ },
6538
+ enumerable: false,
6539
+ configurable: true
6540
+ });
6541
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "empty", {
6542
+ //Default Getter and Setters for a Form Field Implementation
6543
+ get: function () {
6544
+ return this.value.length == 0;
6545
+ },
6546
+ enumerable: false,
6547
+ configurable: true
6548
+ });
6549
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "shouldLabelFloat", {
6550
+ get: function () {
6551
+ return this.focused || !this.empty || this.tagInputCtrl.value;
6552
+ },
6553
+ enumerable: false,
6554
+ configurable: true
6555
+ });
6556
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "required", {
6557
+ get: function () {
6558
+ return this._required;
6559
+ },
6560
+ set: function (value) {
6561
+ this._required = coercion.coerceBooleanProperty(value);
6562
+ this.stateChanges.next();
6563
+ },
6564
+ enumerable: false,
6565
+ configurable: true
6566
+ });
6567
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "disabled", {
6568
+ get: function () {
6569
+ return this._disabled;
6570
+ },
6571
+ set: function (value) {
6572
+ this._disabled = coercion.coerceBooleanProperty(value);
6573
+ this._disabled ? this.tagInputCtrl.disable() : this.tagInputCtrl.enable();
6574
+ this.stateChanges.next();
6575
+ },
6576
+ enumerable: false,
6577
+ configurable: true
6578
+ });
6579
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "value", {
6580
+ get: function () {
6581
+ return this._value;
6582
+ },
6583
+ set: function (tagIds) {
6584
+ this._value = tagIds || [];
6585
+ this.stateChanges.next();
6586
+ },
6587
+ enumerable: false,
6588
+ configurable: true
6589
+ });
6590
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "errorState", {
6591
+ get: function () {
6592
+ return this.tagInputCtrl.dirty && this.required && (this.value.length == 0);
6593
+ },
6594
+ enumerable: false,
6595
+ configurable: true
6596
+ });
6597
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "placeholder", {
6598
+ get: function () {
6599
+ return this._placeholder;
6600
+ },
6601
+ set: function (value) {
6602
+ this._placeholder = value;
6603
+ this.stateChanges.next();
6604
+ },
6605
+ enumerable: false,
6606
+ configurable: true
6607
+ });
6608
+ TechlifyTaggerTagFormFieldComponent.prototype.ngOnInit = function () {
6609
+ };
6610
+ TechlifyTaggerTagFormFieldComponent.prototype.ngOnChanges = function (changes) {
6611
+ var _this = this;
6612
+ //API to load all tags for the model type
6613
+ if (this.allTags.length == 0) {
6614
+ this.httpService
6615
+ .cache(!this.config.isCacheTags)
6616
+ .get(this.config.apiUrl, {
6617
+ params: {
6618
+ categories: this.categories.join(','),
6619
+ perPage: '1000'
6620
+ }
6621
+ }).pipe(operators.debounceTime(500), untilDestroy.untilDestroyed(this)).subscribe(function (result) {
6622
+ _this.allTags = result.data;
6623
+ });
6624
+ }
6625
+ //API to load only the selected tags for the model
6626
+ if (this.modelId && this.value.length == 0) {
6627
+ //Model Id is passed and no tags are present, so we query db for the avilable tags for the model ID.
6628
+ this.httpService
6629
+ .cache(!this.config.isCacheTags)
6630
+ .get(this.config.apiUrl, {
6631
+ params: {
6632
+ categories: this.categories.join(','),
6633
+ model_type: this.modelType,
6634
+ model_id: this.modelId,
6635
+ perPage: '1000'
6636
+ }
6637
+ }).pipe(operators.debounceTime(500), untilDestroy.untilDestroyed(this)).subscribe(function (result) {
6638
+ _this.value = ((result === null || result === void 0 ? void 0 : result.data) || []).map(function (x) { return x.id; });
6639
+ _this._handleInput();
6640
+ });
6641
+ }
6642
+ };
6643
+ TechlifyTaggerTagFormFieldComponent.prototype.init = function () {
6644
+ var _this = this;
6645
+ if (this.modelId && this.allTags.length == 0) {
6646
+ //Model Id is passed and no tags are passed, so we query db for the avilable tags for the model ID.
6647
+ this.httpService
6648
+ .cache(!this.config.isCacheTags)
6649
+ .get(this.config.apiUrl, {
6650
+ params: {
6651
+ categories: this.categories.join(','),
6652
+ model_type: this.modelType,
6653
+ model_id: this.modelId
6654
+ }
6655
+ }).pipe(untilDestroy.untilDestroyed(this)).subscribe(function (result) {
6656
+ _this.allTags = result.data;
6657
+ });
6658
+ }
6659
+ };
6660
+ Object.defineProperty(TechlifyTaggerTagFormFieldComponent.prototype, "filteredTags", {
6661
+ get: function () {
6662
+ return this._filter();
6663
+ },
6664
+ enumerable: false,
6665
+ configurable: true
6666
+ });
6667
+ TechlifyTaggerTagFormFieldComponent.prototype.setDescribedByIds = function (ids) {
6668
+ // Just a empty implementation for Mat Form Field Interface
6669
+ };
6670
+ TechlifyTaggerTagFormFieldComponent.prototype.onContainerClick = function () {
6671
+ // Just a empty implementation for Mat Form Field Interface
6672
+ };
6673
+ TechlifyTaggerTagFormFieldComponent.prototype.add = function (event) {
6674
+ return __awaiter(this, void 0, void 0, function () {
6675
+ var value, tags, tag, result, error_1;
6676
+ return __generator(this, function (_a) {
6677
+ switch (_a.label) {
6678
+ case 0:
6679
+ value = (event.value || '').trim();
6680
+ if (!(!this.config.isSingle || (this.value.length === 0))) return [3 /*break*/, 7];
6681
+ if (!(value && this.config.isCreateable)) return [3 /*break*/, 7];
6682
+ tags = this.allTags;
6683
+ tag = tags.find(function (item) { return item.title.toLowerCase() == value.toLowerCase(); });
6684
+ if (!!tag) return [3 /*break*/, 5];
6685
+ _a.label = 1;
6686
+ case 1:
6687
+ _a.trys.push([1, 3, , 4]);
6688
+ return [4 /*yield*/, this.httpService.post(this.config.createApiUrl, {
6689
+ title: value,
6690
+ description: value,
6691
+ category_title: (this.categories.length > 0) ? (this.defaultCreateCategory ? this.defaultCreateCategory : this.categories[0]) : ''
6692
+ }).toPromise()];
6693
+ case 2:
6694
+ result = _a.sent();
6695
+ tag = result.item;
6696
+ return [3 /*break*/, 4];
6697
+ case 3:
6698
+ error_1 = _a.sent();
6699
+ return [2 /*return*/];
6700
+ case 4:
6701
+ this.allTags.push(tag);
6702
+ return [3 /*break*/, 6];
6703
+ case 5:
6704
+ //Optionally clean the existing value, to avoid duplicate
6705
+ this.remove(tag);
6706
+ _a.label = 6;
6707
+ case 6:
6708
+ this.value.push(tag.id);
6709
+ this._handleInput();
6710
+ _a.label = 7;
6711
+ case 7:
6712
+ // Clear the input value
6713
+ event.input.value = '';
6714
+ this.tagInputCtrl.setValue(null);
6715
+ return [2 /*return*/];
6716
+ }
6717
+ });
6718
+ });
6719
+ };
6720
+ TechlifyTaggerTagFormFieldComponent.prototype.remove = function (tag) {
6721
+ this.value = this.value.filter(function (x) { return x !== tag.id; });
6722
+ this._handleInput();
6723
+ };
6724
+ TechlifyTaggerTagFormFieldComponent.prototype.selected = function (event) {
6725
+ // Validate for single mode
6726
+ if (!this.config.isSingle || (this.value.length === 0)) {
6727
+ //Clean the existing value, to avoid duplicate
6728
+ this.remove({ id: event.option.value });
6729
+ this.value.push(event.option.value);
6730
+ this._handleInput();
6731
+ }
6732
+ this.tagInput.nativeElement.value = '';
6733
+ this.tagInputCtrl.setValue(null);
6734
+ };
6735
+ TechlifyTaggerTagFormFieldComponent.prototype._filter = function () {
6736
+ var _this = this;
6737
+ var filterValue = this.filterString ? this.filterString.toString().toLowerCase() : null;
6738
+ var availableTags = this.allTags.filter(function (tag) { return !_this.value.some(function (item) { return item == tag.id; }); });
6739
+ return filterValue ? availableTags.filter(function (tag) { return tag.title.toLowerCase().includes(filterValue); }) : availableTags;
6740
+ };
6741
+ TechlifyTaggerTagFormFieldComponent.prototype.writeValue = function (tagIds) {
6742
+ this.value = tagIds || [];
6743
+ };
6744
+ TechlifyTaggerTagFormFieldComponent.prototype.registerOnChange = function (fn) {
6745
+ this.onChange = fn;
6746
+ };
6747
+ TechlifyTaggerTagFormFieldComponent.prototype.registerOnTouched = function (fn) {
6748
+ this.onTouched = fn;
6749
+ };
6750
+ TechlifyTaggerTagFormFieldComponent.prototype.setDisabledState = function (isDisabled) {
6751
+ this.disabled = isDisabled;
6752
+ };
6753
+ TechlifyTaggerTagFormFieldComponent.prototype._handleInput = function () {
6754
+ this.onChange(this.value);
6755
+ };
6756
+ TechlifyTaggerTagFormFieldComponent.prototype.ngOnDestroy = function () {
6757
+ this.stateChanges.complete();
6758
+ this._focusMonitor.stopMonitoring(this._elementRef);
6759
+ };
6760
+ return TechlifyTaggerTagFormFieldComponent;
6761
+ }());
6762
+ exports.TechlifyTaggerTagFormFieldComponent.nextId = 0;
6763
+ exports.TechlifyTaggerTagFormFieldComponent.decorators = [
6764
+ { type: i0.Component, args: [{
6765
+ selector: 'app-techlify-tagger-tag-form-field',
6766
+ template: "<mat-chip-list #chipList aria-label=\"Tag Selection\">\n <mat-chip *ngFor=\"let tag of tags\" [selectable]=\"config.selectable\" [removable]=\"config.removable\"\n (removed)=\"remove(tag)\">\n {{tag.title}}\n <button matChipRemove *ngIf=\"config.removable\" class=\"border-0\">\n <mat-icon class=\"mat-relative-icon\">cancel</mat-icon>\n </button>\n </mat-chip>\n <input placeholder=\"{{config.isCreateable? config.placeholder:''}}\" #tagInput [formControl]=\"tagInputCtrl\"\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\n #trigger=\"matAutocompleteTrigger\" (click)=\"trigger.openPanel()\">\n</mat-chip-list>\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let tag of filteredTags\" [value]=\"tag.id\">\n {{tag.title}}\n </mat-option>\n</mat-autocomplete>",
6767
+ providers: [{ provide: formField.MatFormFieldControl, useExisting: TechlifyTaggerTagFormFieldComponent_1 }],
6768
+ styles: [".mat-relative-icon{font-size:20px;position:relative;right:7px;top:-3px}"]
6769
+ },] }
6770
+ ];
6771
+ exports.TechlifyTaggerTagFormFieldComponent.ctorParameters = function () { return [
6772
+ { type: a11y.FocusMonitor },
6773
+ { type: i0.ElementRef },
6774
+ { type: HttpService },
6775
+ { type: formField.MatFormField, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [formField.MAT_FORM_FIELD,] }] },
6776
+ { type: forms.NgControl, decorators: [{ type: i0.Optional }, { type: i0.Self }] }
6777
+ ]; };
6778
+ exports.TechlifyTaggerTagFormFieldComponent.propDecorators = {
6779
+ tagInput: [{ type: i0.ViewChild, args: ['tagInput',] }],
6780
+ config: [{ type: i0.Input }],
6781
+ modelType: [{ type: i0.Input }],
6782
+ modelId: [{ type: i0.Input }],
6783
+ allTags: [{ type: i0.Input }],
6784
+ categories: [{ type: i0.Input }],
6785
+ defaultCreateCategory: [{ type: i0.Input }],
6786
+ required: [{ type: i0.Input }],
6787
+ disabled: [{ type: i0.Input }],
6788
+ value: [{ type: i0.Input }],
6789
+ placeholder: [{ type: i0.Input }]
6790
+ };
6791
+ exports.TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = __decorate([
6792
+ untilDestroy.UntilDestroy()
6793
+ ], exports.TechlifyTaggerTagFormFieldComponent);
6794
+
6795
+ var TechlifyTaggerTagFormFieldModule = /** @class */ (function () {
6796
+ function TechlifyTaggerTagFormFieldModule() {
6797
+ }
6798
+ return TechlifyTaggerTagFormFieldModule;
6799
+ }());
6800
+ TechlifyTaggerTagFormFieldModule.decorators = [
6801
+ { type: i0.NgModule, args: [{
6802
+ declarations: [
6803
+ exports.TechlifyTaggerTagFormFieldComponent
6804
+ ],
6805
+ imports: [
6806
+ common.CommonModule,
6807
+ MaterialModule,
6808
+ flexLayout.FlexLayoutModule,
6809
+ autocomplete.MatAutocompleteModule,
6810
+ forms.ReactiveFormsModule
6811
+ ],
6812
+ exports: [exports.TechlifyTaggerTagFormFieldComponent]
6813
+ },] }
6814
+ ];
6815
+
6816
+ var TechlifyTaggerTagSelectorComponent_1;
6817
+ exports.TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = /** @class */ (function () {
6818
+ function TechlifyTaggerTagSelectorComponent(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
6819
+ var _this = this;
6820
+ this._focusMonitor = _focusMonitor;
6821
+ this._elementRef = _elementRef;
6822
+ this.httpService = httpService;
6823
+ this._formField = _formField;
6824
+ this.ngControl = ngControl;
6825
+ /**Pass the Categories to filter for a model */
6826
+ this.categories = [];
6827
+ this.multiple = false;
6828
+ this.enableSearch = true;
6829
+ this.tagSelectorCtrl = new forms.FormControl();
6830
+ this.showAllTags = false;
6831
+ this.useSelectButtonStyle = false;
6832
+ this.tags = [];
6833
+ this.stateChanges = new rxjs.Subject();
6834
+ this.focused = false;
6835
+ this.controlType = 'techlify-tagger-selector';
6836
+ this.id = "techlify-tagger-selector-" + TechlifyTaggerTagSelectorComponent_1.nextId++;
6837
+ this.onChange = function (_) { };
6838
+ this.onTouched = function () { };
6839
+ this._required = false;
6840
+ this._disabled = false;
6841
+ //Set Focus Monitor
6842
+ _focusMonitor.monitor(_elementRef, true).subscribe(function (origin) {
6843
+ if (_this.focused && !origin) {
6844
+ _this.onTouched();
6845
+ }
6846
+ _this.focused = !!origin;
6847
+ _this.stateChanges.next();
6848
+ });
6849
+ if (this.ngControl != null) {
6850
+ this.ngControl.valueAccessor = this;
6851
+ }
6852
+ }
6853
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "apiUrl", {
6854
+ get: function () {
6855
+ var _a;
6856
+ if (this.showAllTags) {
6857
+ return 'api/techlify-tagger-tags';
6858
+ }
6859
+ else if (((_a = this.categories) === null || _a === void 0 ? void 0 : _a.length) > 0) {
6860
+ return 'api/techlify-tagger-tags?categories=' + this.categories.join(',');
6861
+ }
6862
+ else {
6863
+ return '';
6864
+ }
6865
+ },
6866
+ enumerable: false,
6867
+ configurable: true
6868
+ });
6869
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "empty", {
6870
+ //Default Getter and Setters for a Form Field Implementation
6871
+ get: function () {
6872
+ return this.value.length == 0;
6873
+ },
6874
+ enumerable: false,
6875
+ configurable: true
6876
+ });
6877
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "shouldLabelFloat", {
6878
+ get: function () {
6879
+ return this.focused || !this.empty;
6880
+ },
6881
+ enumerable: false,
6882
+ configurable: true
6883
+ });
6884
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "required", {
6885
+ get: function () {
6886
+ return this._required;
6887
+ },
6888
+ set: function (value) {
6889
+ this._required = coercion.coerceBooleanProperty(value);
6890
+ this.stateChanges.next();
6891
+ },
6892
+ enumerable: false,
6893
+ configurable: true
6894
+ });
6895
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "disabled", {
6896
+ get: function () {
6897
+ return this._disabled;
6898
+ },
6899
+ set: function (value) {
6900
+ this._disabled = coercion.coerceBooleanProperty(value);
6901
+ this._disabled ? this.tagSelectorCtrl.disable() : this.tagSelectorCtrl.enable();
6902
+ this.stateChanges.next();
6903
+ },
6904
+ enumerable: false,
6905
+ configurable: true
6906
+ });
6907
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "value", {
6908
+ get: function () {
6909
+ return this._value;
6910
+ },
6911
+ set: function (val) {
6912
+ this._value = val;
6913
+ this.tagSelectorCtrl.setValue(val);
6914
+ this.stateChanges.next();
6915
+ },
6916
+ enumerable: false,
6917
+ configurable: true
6918
+ });
6919
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "errorState", {
6920
+ get: function () {
6921
+ return this.tagSelectorCtrl.dirty && this.required && (this.value.length == 0);
6922
+ },
6923
+ enumerable: false,
6924
+ configurable: true
6925
+ });
6926
+ Object.defineProperty(TechlifyTaggerTagSelectorComponent.prototype, "placeholder", {
6927
+ get: function () {
6928
+ return this._placeholder;
6929
+ },
6930
+ set: function (value) {
6931
+ this._placeholder = value;
6932
+ this.stateChanges.next();
6933
+ },
6934
+ enumerable: false,
6935
+ configurable: true
6936
+ });
6937
+ TechlifyTaggerTagSelectorComponent.prototype.ngOnInit = function () {
6938
+ var _this = this;
6939
+ if (this.useSelectButtonStyle) {
6940
+ this.httpService.get(this.apiUrl)
6941
+ .pipe(untilDestroy.untilDestroyed(this))
6942
+ .subscribe(function (res) {
6943
+ _this.tags = res.data;
6944
+ });
6945
+ }
6946
+ };
6947
+ TechlifyTaggerTagSelectorComponent.prototype.selectionChange = function (value) {
6948
+ this.value = value;
6949
+ this._handleInput();
6950
+ };
6951
+ TechlifyTaggerTagSelectorComponent.prototype.setDescribedByIds = function (ids) {
6952
+ // Just a empty implementation for Mat Form Field Interface
6953
+ };
6954
+ TechlifyTaggerTagSelectorComponent.prototype.onContainerClick = function () {
6955
+ // Just a empty implementation for Mat Form Field Interface
6956
+ };
6957
+ TechlifyTaggerTagSelectorComponent.prototype.writeValue = function (val) {
6958
+ this.value = val;
6959
+ };
6960
+ TechlifyTaggerTagSelectorComponent.prototype.registerOnChange = function (fn) {
6961
+ this.onChange = fn;
6962
+ };
6963
+ TechlifyTaggerTagSelectorComponent.prototype.registerOnTouched = function (fn) {
6964
+ this.onTouched = fn;
6965
+ };
6966
+ TechlifyTaggerTagSelectorComponent.prototype.setDisabledState = function (isDisabled) {
6967
+ this.disabled = isDisabled;
6968
+ };
6969
+ TechlifyTaggerTagSelectorComponent.prototype._handleInput = function () {
6970
+ this.onChange(this.value);
6971
+ };
6972
+ TechlifyTaggerTagSelectorComponent.prototype.ngOnDestroy = function () {
6973
+ this.stateChanges.complete();
6974
+ this._focusMonitor.stopMonitoring(this._elementRef);
6975
+ };
6976
+ return TechlifyTaggerTagSelectorComponent;
6977
+ }());
6978
+ exports.TechlifyTaggerTagSelectorComponent.nextId = 0;
6979
+ exports.TechlifyTaggerTagSelectorComponent.decorators = [
6980
+ { type: i0.Component, args: [{
6981
+ selector: 'app-techlify-tagger-tag-selector',
6982
+ template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\n</app-searchable-selector>\n\n<mat-button-toggle-group *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\n (change)=\"selectionChange($event.value)\">\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\n</mat-button-toggle-group>",
6983
+ providers: [{ provide: formField.MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent_1 }],
6984
+ styles: [""]
6985
+ },] }
6986
+ ];
6987
+ exports.TechlifyTaggerTagSelectorComponent.ctorParameters = function () { return [
6988
+ { type: a11y.FocusMonitor },
6989
+ { type: i0.ElementRef },
6990
+ { type: HttpService },
6991
+ { type: formField.MatFormField, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [formField.MAT_FORM_FIELD,] }] },
6992
+ { type: forms.NgControl, decorators: [{ type: i0.Optional }, { type: i0.Self }] }
6993
+ ]; };
6994
+ exports.TechlifyTaggerTagSelectorComponent.propDecorators = {
6995
+ categories: [{ type: i0.Input }],
6996
+ multiple: [{ type: i0.Input }],
6997
+ enableSearch: [{ type: i0.Input }],
6998
+ showAllTags: [{ type: i0.Input }],
6999
+ useSelectButtonStyle: [{ type: i0.Input }],
7000
+ required: [{ type: i0.Input }],
7001
+ disabled: [{ type: i0.Input }],
7002
+ value: [{ type: i0.Input }],
7003
+ placeholder: [{ type: i0.Input }]
7004
+ };
7005
+ exports.TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = __decorate([
7006
+ untilDestroy.UntilDestroy()
7007
+ ], exports.TechlifyTaggerTagSelectorComponent);
7008
+
7009
+ var TechlifyTaggerTagSelectorModule = /** @class */ (function () {
7010
+ function TechlifyTaggerTagSelectorModule() {
7011
+ }
7012
+ return TechlifyTaggerTagSelectorModule;
7013
+ }());
7014
+ TechlifyTaggerTagSelectorModule.decorators = [
7015
+ { type: i0.NgModule, args: [{
7016
+ declarations: [
7017
+ exports.TechlifyTaggerTagSelectorComponent
7018
+ ],
7019
+ imports: [
7020
+ common.CommonModule,
7021
+ MaterialModule,
7022
+ flexLayout.FlexLayoutModule,
7023
+ autocomplete.MatAutocompleteModule,
7024
+ forms.ReactiveFormsModule,
7025
+ SearchableSelectorModule,
7026
+ buttonToggle.MatButtonToggleModule
7027
+ ],
7028
+ exports: [exports.TechlifyTaggerTagSelectorComponent]
7029
+ },] }
7030
+ ];
7031
+
6456
7032
  var routes$n = [];
6457
7033
  var ImageForModelRoutingModule = /** @class */ (function () {
6458
7034
  function ImageForModelRoutingModule() {
@@ -6564,15 +7140,15 @@
6564
7140
  }());
6565
7141
  ImageForModelModule.decorators = [
6566
7142
  { type: i0.NgModule, args: [{
7143
+ declarations: [exports.ImageForModelComponent],
6567
7144
  imports: [
6568
7145
  common.CommonModule,
6569
- ImageForModelRoutingModule,
6570
7146
  MaterialModule,
6571
7147
  flexLayout.FlexLayoutModule,
6572
7148
  forms.ReactiveFormsModule,
7149
+ ImageForModelRoutingModule
6573
7150
  ],
6574
- declarations: [exports.ImageForModelComponent],
6575
- exports: [exports.ImageForModelComponent],
7151
+ exports: [exports.ImageForModelComponent]
6576
7152
  },] }
6577
7153
  ];
6578
7154
 
@@ -6688,10 +7264,13 @@
6688
7264
  exports.StorageService = StorageService;
6689
7265
  exports.SuccessSnackComponent = SuccessSnackComponent;
6690
7266
  exports.TechlifyConfig = TechlifyConfig;
7267
+ exports.TechlifyTaggerTagFormConfigModel = TechlifyTaggerTagFormConfigModel;
7268
+ exports.TechlifyTaggerTagFormFieldModule = TechlifyTaggerTagFormFieldModule;
7269
+ exports.TechlifyTaggerTagSelectorModule = TechlifyTaggerTagSelectorModule;
6691
7270
  exports.TechlifyUpdateHistoryModule = TechlifyUpdateHistoryModule;
6692
7271
  exports.TechlifyUpdateModule = TechlifyUpdateModule;
6693
7272
  exports.Timeline = Timeline;
6694
- exports.TimelineFilterComponent = TimelineFilterComponent;
7273
+ exports.TimelineFilterComponent = exports.ɵx;
6695
7274
  exports.TimelineFilterModule = TimelineFilterModule;
6696
7275
  exports.TokenInterceptor = TokenInterceptor;
6697
7276
  exports.UpdateNotifierComponent = UpdateNotifierComponent;
@@ -6699,6 +7278,9 @@
6699
7278
  exports.UtilityModule = UtilityModule;
6700
7279
  exports.ViewerConfig = ViewerConfig;
6701
7280
  exports.calculateTimeline = calculateTimeline;
7281
+ exports.esfur = esfur;
7282
+ exports.estlr = estlr;
7283
+ exports.esulr = esulr;
6702
7284
  exports.ɵa = SnackModule;
6703
7285
  exports.ɵb = SuccessSnackComponent;
6704
7286
  exports.ɵbc = AuthenticationGuard;
@@ -6735,7 +7317,6 @@
6735
7317
  exports.ɵu = MatSelectInfiniteScrollDirective;
6736
7318
  exports.ɵv = NumItemsSelector;
6737
7319
  exports.ɵw = NumberSelector;
6738
- exports.ɵx = TimelineFilterComponent;
6739
7320
  exports.ɵy = TimelineFilterRoutingModule;
6740
7321
  exports.ɵz = LoaderComponent;
6741
7322