ngx-techlify-core 11.3.6 → 11.4.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.
- package/bundles/ngx-techlify-core.umd.js +268 -96
- package/bundles/ngx-techlify-core.umd.js.map +1 -1
- package/bundles/ngx-techlify-core.umd.min.js +2 -2
- package/bundles/ngx-techlify-core.umd.min.js.map +1 -1
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view.component.js +7 -9
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.component.js +7 -9
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.js +2 -2
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.js +2 -2
- package/esm2015/lib/login-history-for-user/login-history-for-user.component.js +11 -2
- package/esm2015/lib/searchable-selector/searchable-selector.component.js +34 -4
- package/esm2015/lib/techlify-feature/on-off-switch/on-off-switch.component.js +27 -0
- package/esm2015/lib/techlify-feature/techlify-feature-enabled.directive.js +78 -0
- package/esm2015/lib/techlify-feature/techlify-feature-listing.component.js +177 -0
- package/esm2015/lib/techlify-feature/techlify-feature.module.js +30 -0
- package/esm2015/lib/techlify-feature/techlify-feature.routing.js +12 -0
- package/esm2015/lib/techlify-feature/techlify-feature.service.js +28 -0
- package/esm2015/lib/timeline-filter/calculate-timeline.js +2 -2
- package/esm2015/lib/timeline-filter/timeline-filter.component.js +145 -16
- package/esm2015/ngx-techlify-core.js +6 -3
- package/esm2015/public-api.js +5 -6
- package/fesm2015/ngx-techlify-core.js +221 -61
- package/fesm2015/ngx-techlify-core.js.map +1 -1
- package/lib/login-history-for-user/login-history-for-user.component.d.ts +2 -0
- package/lib/searchable-selector/searchable-selector.component.d.ts +5 -0
- package/lib/{company-feature → techlify-feature}/on-off-switch/on-off-switch.component.d.ts +0 -0
- package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +17 -0
- package/lib/{company-feature/company-feature.component.d.ts → techlify-feature/techlify-feature-listing.component.d.ts} +7 -4
- package/lib/techlify-feature/techlify-feature.module.d.ts +2 -0
- package/lib/techlify-feature/techlify-feature.routing.d.ts +2 -0
- package/lib/{company-feature/company-feature.service.d.ts → techlify-feature/techlify-feature.service.d.ts} +1 -1
- package/lib/timeline-filter/calculate-timeline.d.ts +5 -0
- package/lib/timeline-filter/timeline-filter.component.d.ts +47 -6
- package/ngx-techlify-core.d.ts +5 -2
- package/ngx-techlify-core.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -5
- package/esm2015/lib/company-feature/company-feature.component.js +0 -174
- package/esm2015/lib/company-feature/company-feature.module.js +0 -30
- package/esm2015/lib/company-feature/company-feature.routing.js +0 -12
- package/esm2015/lib/company-feature/company-feature.service.js +0 -28
- package/esm2015/lib/company-feature/ngx-feature-enabled.directive.js +0 -77
- package/esm2015/lib/company-feature/on-off-switch/on-off-switch.component.js +0 -27
- package/lib/company-feature/company-feature.module.d.ts +0 -2
- package/lib/company-feature/company-feature.routing.d.ts +0 -2
- package/lib/company-feature/ngx-feature-enabled.directive.d.ts +0 -16
|
@@ -4,7 +4,7 @@ import { __decorate, __awaiter } from 'tslib';
|
|
|
4
4
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
5
5
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
6
6
|
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
|
7
|
-
import { Location, CommonModule } from '@angular/common';
|
|
7
|
+
import { Location, DatePipe, CommonModule } from '@angular/common';
|
|
8
8
|
import { Validators, FormBuilder, FormControl, NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
import { HttpResponse, HttpClient, HttpHandler, HttpClientModule } from '@angular/common/http';
|
|
10
10
|
import { throwError, Observable, Subject, of, from, fromEvent } from 'rxjs';
|
|
@@ -1829,6 +1829,9 @@ let SearchableSelectorComponent = SearchableSelectorComponent_1 = class Searchab
|
|
|
1829
1829
|
this.edit = false;
|
|
1830
1830
|
this.sort = true;
|
|
1831
1831
|
this.items = [];
|
|
1832
|
+
this.cache = false;
|
|
1833
|
+
this.perPage = 25;
|
|
1834
|
+
this.inDataSearch = false;
|
|
1832
1835
|
this.selectionChange = new EventEmitter();
|
|
1833
1836
|
this.itemsChange = new EventEmitter();
|
|
1834
1837
|
this.isLoading = false;
|
|
@@ -1839,6 +1842,7 @@ let SearchableSelectorComponent = SearchableSelectorComponent_1 = class Searchab
|
|
|
1839
1842
|
this.controlType = 'searchable-selctor';
|
|
1840
1843
|
this.id = `searchable-selctor-${SearchableSelectorComponent_1.nextId++}`;
|
|
1841
1844
|
this.describedBy = '';
|
|
1845
|
+
this.cachedItems = [];
|
|
1842
1846
|
this._required = false;
|
|
1843
1847
|
this._disabled = false;
|
|
1844
1848
|
this.selectorForm = formBuilder.group({
|
|
@@ -1908,7 +1912,7 @@ let SearchableSelectorComponent = SearchableSelectorComponent_1 = class Searchab
|
|
|
1908
1912
|
this.search(value);
|
|
1909
1913
|
});
|
|
1910
1914
|
this.filters = {
|
|
1911
|
-
perPage:
|
|
1915
|
+
perPage: this.perPage,
|
|
1912
1916
|
search: '',
|
|
1913
1917
|
page: 1,
|
|
1914
1918
|
lastPage: 1
|
|
@@ -1923,8 +1927,15 @@ let SearchableSelectorComponent = SearchableSelectorComponent_1 = class Searchab
|
|
|
1923
1927
|
}
|
|
1924
1928
|
fetchItemList() {
|
|
1925
1929
|
this.isLoading = true;
|
|
1926
|
-
|
|
1930
|
+
let request = this.http.get(this.apiUrl, { params: this.filters });
|
|
1931
|
+
if (this.cache) {
|
|
1932
|
+
request = this.http.cache().get(this.apiUrl, { params: this.filters });
|
|
1933
|
+
}
|
|
1934
|
+
of().pipe(startWith(true), switchMap((_) => from(request)), finalize(() => this.isLoading = false), untilDestroyed(this)).subscribe((result) => {
|
|
1927
1935
|
this.items = this.items.concat(result.data);
|
|
1936
|
+
if (this.cache) {
|
|
1937
|
+
this.cachedItems = this.items;
|
|
1938
|
+
}
|
|
1928
1939
|
this.filters.page = result.current_page;
|
|
1929
1940
|
this.filters.lastPage = result.last_page;
|
|
1930
1941
|
});
|
|
@@ -1993,7 +2004,23 @@ let SearchableSelectorComponent = SearchableSelectorComponent_1 = class Searchab
|
|
|
1993
2004
|
else {
|
|
1994
2005
|
this.filters.search = event;
|
|
1995
2006
|
}
|
|
1996
|
-
|
|
2007
|
+
// we need search field to search in data
|
|
2008
|
+
if (this.inDataSearch && this.searchField) {
|
|
2009
|
+
this.filterItems(event);
|
|
2010
|
+
}
|
|
2011
|
+
else {
|
|
2012
|
+
this.reloadData();
|
|
2013
|
+
}
|
|
2014
|
+
}
|
|
2015
|
+
filterItems(event) {
|
|
2016
|
+
if (event) {
|
|
2017
|
+
this.items = this.cachedItems.filter((value) => {
|
|
2018
|
+
return value[this.searchField].toLowerCase().search(event.toLowerCase()) != -1;
|
|
2019
|
+
});
|
|
2020
|
+
}
|
|
2021
|
+
else {
|
|
2022
|
+
this.items = this.cachedItems;
|
|
2023
|
+
}
|
|
1997
2024
|
}
|
|
1998
2025
|
addItem(event) {
|
|
1999
2026
|
const dialogRef = this.dialog.open(this.itemComponent, Object.assign({ width: '400px', autoFocus: false, data: {} }, this.addConfig));
|
|
@@ -2065,6 +2092,9 @@ SearchableSelectorComponent.propDecorators = {
|
|
|
2065
2092
|
searchField: [{ type: Input }],
|
|
2066
2093
|
itemComponent: [{ type: Input }],
|
|
2067
2094
|
items: [{ type: Input }],
|
|
2095
|
+
cache: [{ type: Input }],
|
|
2096
|
+
perPage: [{ type: Input }],
|
|
2097
|
+
inDataSearch: [{ type: Input }],
|
|
2068
2098
|
selectionChange: [{ type: Output }],
|
|
2069
2099
|
itemsChange: [{ type: Output }],
|
|
2070
2100
|
required: [{ type: Input }],
|
|
@@ -2290,7 +2320,7 @@ function calculateTimeline(value) {
|
|
|
2290
2320
|
}
|
|
2291
2321
|
case 4: { // This Week
|
|
2292
2322
|
var first = date.getDate() - date.getDay() + 1; // First day is the day of the month - the day of the week
|
|
2293
|
-
var last = first + 6; // last day is the first day + 6
|
|
2323
|
+
var last = first + 6; // last day is the first day + 6
|
|
2294
2324
|
data.date_from = new Date(date.setDate(first));
|
|
2295
2325
|
data.date_to = new Date(date.setDate(last));
|
|
2296
2326
|
break;
|
|
@@ -2369,8 +2399,11 @@ Timeline.THIS_YEAR = 10;
|
|
|
2369
2399
|
Timeline.LAST_YEAR = 11;
|
|
2370
2400
|
Timeline.ALL = 12;
|
|
2371
2401
|
|
|
2372
|
-
|
|
2373
|
-
|
|
2402
|
+
var TimelineFilterComponent_1;
|
|
2403
|
+
let TimelineFilterComponent = TimelineFilterComponent_1 = class TimelineFilterComponent {
|
|
2404
|
+
constructor(formBuilder, ngControl, datePipe) {
|
|
2405
|
+
this.ngControl = ngControl;
|
|
2406
|
+
this.datePipe = datePipe;
|
|
2374
2407
|
this.timelineValue = new FormControl('');
|
|
2375
2408
|
this.timelines = [
|
|
2376
2409
|
{ value: 1, viewValue: 'Custom' },
|
|
@@ -2386,20 +2419,73 @@ let TimelineFilterComponent = class TimelineFilterComponent {
|
|
|
2386
2419
|
{ value: 11, viewValue: 'Last Year' },
|
|
2387
2420
|
{ value: 12, viewValue: 'All dates' },
|
|
2388
2421
|
];
|
|
2389
|
-
this.labelText = 'Select Timeline';
|
|
2390
2422
|
this.dateFrom = 'date_from';
|
|
2391
2423
|
this.dateTo = 'date_to';
|
|
2392
2424
|
this.appearance = "legacy";
|
|
2393
2425
|
this.showClearbutton = false;
|
|
2426
|
+
/**
|
|
2427
|
+
* @deprecated The form input is deprated
|
|
2428
|
+
*/
|
|
2429
|
+
this.form = null;
|
|
2430
|
+
this.labelText = 'Select Timeline';
|
|
2431
|
+
this.touchUi = true;
|
|
2432
|
+
this.selectedValueChange = new EventEmitter();
|
|
2433
|
+
this.selectionChange = new EventEmitter();
|
|
2434
|
+
this.onChange = () => { };
|
|
2435
|
+
this.onTouched = () => { };
|
|
2436
|
+
this.stateChanges = new Subject();
|
|
2437
|
+
this.controlType = 'timeline-filter';
|
|
2438
|
+
this.id = `timeline-filter-${TimelineFilterComponent_1.nextId++}`;
|
|
2439
|
+
this.describedBy = '';
|
|
2394
2440
|
this.showCustomDateFields = false;
|
|
2441
|
+
this._required = false;
|
|
2442
|
+
this._disabled = false;
|
|
2443
|
+
this.selectorForm = formBuilder.group({
|
|
2444
|
+
select_value: [null],
|
|
2445
|
+
});
|
|
2446
|
+
if (this.ngControl != null) {
|
|
2447
|
+
this.ngControl.valueAccessor = this;
|
|
2448
|
+
}
|
|
2395
2449
|
}
|
|
2396
2450
|
set defaultValue(value) {
|
|
2397
2451
|
this.timelineValue.setValue(value);
|
|
2398
2452
|
this.changeTimeline(value);
|
|
2399
2453
|
}
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2454
|
+
get required() { return this._required; }
|
|
2455
|
+
set required(value) {
|
|
2456
|
+
this.selectorForm.get('select_value').setValidators(Validators.required);
|
|
2457
|
+
this._required = coerceBooleanProperty(value);
|
|
2458
|
+
this.stateChanges.next();
|
|
2459
|
+
}
|
|
2460
|
+
get disabled() { return this._disabled; }
|
|
2461
|
+
set disabled(value) {
|
|
2462
|
+
this._disabled = coerceBooleanProperty(value);
|
|
2463
|
+
this._disabled ? this.selectorForm.disable() : this.selectorForm.enable();
|
|
2464
|
+
this.stateChanges.next();
|
|
2465
|
+
}
|
|
2466
|
+
get value() {
|
|
2467
|
+
if (this.selectorForm.valid) {
|
|
2468
|
+
return this.selectorForm.value.select_value;
|
|
2469
|
+
}
|
|
2470
|
+
return '';
|
|
2471
|
+
}
|
|
2472
|
+
set value(data) {
|
|
2473
|
+
this.selectorForm.patchValue({ select_value: data || '' });
|
|
2474
|
+
this._handleInput();
|
|
2475
|
+
this.stateChanges.next();
|
|
2476
|
+
}
|
|
2477
|
+
getDateRangeString() {
|
|
2478
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
2479
|
+
let str = "";
|
|
2480
|
+
if ((_a = this.selectedRange) === null || _a === void 0 ? void 0 : _a.show_custom_field) {
|
|
2481
|
+
if (((_b = this.selectedRange) === null || _b === void 0 ? void 0 : _b.date_from.toUTCString()) != 'Invalid Date') {
|
|
2482
|
+
str += ' - ' + this.datePipe.transform((_d = (_c = this.selectedRange) === null || _c === void 0 ? void 0 : _c.date_from) === null || _d === void 0 ? void 0 : _d.toUTCString());
|
|
2483
|
+
}
|
|
2484
|
+
if (((_e = this.selectedRange) === null || _e === void 0 ? void 0 : _e.date_to.toUTCString()) != 'Invalid Date') {
|
|
2485
|
+
str += ' - ' + this.datePipe.transform((_g = (_f = this.selectedRange) === null || _f === void 0 ? void 0 : _f.date_to) === null || _g === void 0 ? void 0 : _g.toUTCString());
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
return str;
|
|
2403
2489
|
}
|
|
2404
2490
|
resetFieldValue(field) {
|
|
2405
2491
|
this.form.get(field).setValue('');
|
|
@@ -2418,27 +2504,96 @@ let TimelineFilterComponent = class TimelineFilterComponent {
|
|
|
2418
2504
|
this.showCustomDateFields = timeline.show_custom_field;
|
|
2419
2505
|
}
|
|
2420
2506
|
}
|
|
2507
|
+
_handleInput() {
|
|
2508
|
+
if (this.value == 1) {
|
|
2509
|
+
this.picker.open();
|
|
2510
|
+
return;
|
|
2511
|
+
}
|
|
2512
|
+
const range = calculateTimeline(this.value);
|
|
2513
|
+
this.selectedRange = range;
|
|
2514
|
+
this.onChange(this.value);
|
|
2515
|
+
this.selectedValueChange.emit(this.selectedValue);
|
|
2516
|
+
this.selectionChange.emit(range);
|
|
2517
|
+
}
|
|
2518
|
+
dateRangeChange(dateRangeStart, dateRangeEnd) {
|
|
2519
|
+
const range = {
|
|
2520
|
+
date_from: new Date(dateRangeStart.value),
|
|
2521
|
+
date_to: new Date(dateRangeEnd.value),
|
|
2522
|
+
show_custom_field: true
|
|
2523
|
+
};
|
|
2524
|
+
this.selectedRange = range;
|
|
2525
|
+
this.onChange(this.value);
|
|
2526
|
+
this.selectedValueChange.emit(this.selectedValue);
|
|
2527
|
+
this.selectionChange.emit(range);
|
|
2528
|
+
}
|
|
2529
|
+
onCustomDateChange(event) {
|
|
2530
|
+
}
|
|
2531
|
+
setDescribedByIds(ids) {
|
|
2532
|
+
this.describedBy = ids.join(' ');
|
|
2533
|
+
}
|
|
2534
|
+
onContainerClick(event) {
|
|
2535
|
+
event.stopPropagation();
|
|
2536
|
+
}
|
|
2537
|
+
writeValue(data) {
|
|
2538
|
+
this.value = data;
|
|
2539
|
+
}
|
|
2540
|
+
registerOnChange(fn) {
|
|
2541
|
+
this.onChange = fn;
|
|
2542
|
+
}
|
|
2543
|
+
registerOnTouched(fn) {
|
|
2544
|
+
this.onTouched = fn;
|
|
2545
|
+
}
|
|
2546
|
+
setDisabledState(isDisabled) {
|
|
2547
|
+
this.disabled = isDisabled;
|
|
2548
|
+
}
|
|
2549
|
+
ngOnInit() {
|
|
2550
|
+
console.log(this.form);
|
|
2551
|
+
this.timelineValue.valueChanges.
|
|
2552
|
+
pipe(debounceTime(100), distinctUntilChanged(), untilDestroyed(this)).subscribe(value => this.changeTimeline(value));
|
|
2553
|
+
}
|
|
2554
|
+
ngOnDestroy() {
|
|
2555
|
+
this.stateChanges.complete();
|
|
2556
|
+
}
|
|
2421
2557
|
};
|
|
2558
|
+
TimelineFilterComponent.nextId = 0;
|
|
2422
2559
|
TimelineFilterComponent.decorators = [
|
|
2423
2560
|
{ type: Component, args: [{
|
|
2424
2561
|
selector: 'app-timeline-filter',
|
|
2425
|
-
template: "<ng-container [formGroup]=\"form\">\n
|
|
2562
|
+
template: "<ng-container *ngIf=\"form\" [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>\n<div *ngIf=\"!form\" [formGroup]=\"selectorForm\">\n <mat-select formControlName=\"select_value\" focused=\"false\" [required]=\"required\"\n autocomplete=\"off\" (selectionChange)=\"_handleInput()\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline?.value\">\n {{ timeline?.viewValue }} {{ selectedRange?.show_custom_field && timeline?.value == 1 ? getDateRangeString() : '' }}\n </mat-option>\n </mat-select>\n <mat-date-range-input hidden (dateChange)=\"onCustomDateChange($event)\" [rangePicker]=\"picker\">\n <input matStartDate #customStartDate>\n <input matEndDate (dateChange)=\"dateRangeChange(customStartDate, customEndDate)\" #customEndDate>\n </mat-date-range-input>\n <mat-date-range-picker #picker [touchUi]=\"touchUi\"></mat-date-range-picker>\n</div>\n",
|
|
2563
|
+
providers: [
|
|
2564
|
+
{
|
|
2565
|
+
provide: MatFormFieldControl,
|
|
2566
|
+
useExisting: TimelineFilterComponent_1
|
|
2567
|
+
}
|
|
2568
|
+
],
|
|
2426
2569
|
styles: [""]
|
|
2427
2570
|
},] }
|
|
2428
2571
|
];
|
|
2429
|
-
TimelineFilterComponent.ctorParameters = () => [
|
|
2572
|
+
TimelineFilterComponent.ctorParameters = () => [
|
|
2573
|
+
{ type: FormBuilder },
|
|
2574
|
+
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }] },
|
|
2575
|
+
{ type: DatePipe }
|
|
2576
|
+
];
|
|
2430
2577
|
TimelineFilterComponent.propDecorators = {
|
|
2578
|
+
picker: [{ type: ViewChild, args: ['picker',] }],
|
|
2431
2579
|
timelineValue: [{ type: Input }],
|
|
2432
2580
|
timelines: [{ type: Input }],
|
|
2433
|
-
labelText: [{ type: Input }],
|
|
2434
2581
|
dateFrom: [{ type: Input }],
|
|
2435
2582
|
dateTo: [{ type: Input }],
|
|
2436
2583
|
appearance: [{ type: Input }],
|
|
2437
2584
|
showClearbutton: [{ type: Input }],
|
|
2438
2585
|
form: [{ type: Input }],
|
|
2439
|
-
|
|
2586
|
+
labelText: [{ type: Input }],
|
|
2587
|
+
selectedValue: [{ type: Input }],
|
|
2588
|
+
touchUi: [{ type: Input }],
|
|
2589
|
+
selectedValueChange: [{ type: Output }],
|
|
2590
|
+
selectionChange: [{ type: Output }],
|
|
2591
|
+
defaultValue: [{ type: Input }],
|
|
2592
|
+
required: [{ type: Input }],
|
|
2593
|
+
disabled: [{ type: Input }],
|
|
2594
|
+
value: [{ type: Input }]
|
|
2440
2595
|
};
|
|
2441
|
-
TimelineFilterComponent = __decorate([
|
|
2596
|
+
TimelineFilterComponent = TimelineFilterComponent_1 = __decorate([
|
|
2442
2597
|
UntilDestroy()
|
|
2443
2598
|
], TimelineFilterComponent);
|
|
2444
2599
|
|
|
@@ -3442,7 +3597,7 @@ let EmailSubscriptionUserListFilterComponent = class EmailSubscriptionUserListFi
|
|
|
3442
3597
|
EmailSubscriptionUserListFilterComponent.decorators = [
|
|
3443
3598
|
{ type: Component, args: [{
|
|
3444
3599
|
selector: 'app-email-subscription-user-list-filter',
|
|
3445
|
-
template: "<form [formGroup]=\"esUserFilterForm\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" fxLayoutAlign=\"start center\">\n <mat-form-field class=\"ml-3\">\n <mat-label>User</mat-label>\n <app-searchable-selector formControlName=\"user_id\" apiUrl=\"api/users\" titleField=\"name\">\n </app-searchable-selector>\n <button mat-button *ngIf=\"getFieldValue('user_id')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('user_id')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class=\"ml-3\">\n <mat-label>Email Type</mat-label>\n <app-searchable-selector formControlName=\"email_type_id\" apiUrl=\"api/email-subscription-types\">\n </app-searchable-selector>\n <button mat-button *ngIf=\"getFieldValue('
|
|
3600
|
+
template: "<form [formGroup]=\"esUserFilterForm\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" fxLayoutAlign=\"start center\">\n <mat-form-field class=\"ml-3\">\n <mat-label>User</mat-label>\n <app-searchable-selector formControlName=\"user_id\" apiUrl=\"api/users\" titleField=\"name\">\n </app-searchable-selector>\n <button mat-button *ngIf=\"getFieldValue('user_id')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('user_id')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class=\"ml-3\">\n <mat-label>Email Type</mat-label>\n <app-searchable-selector formControlName=\"email_type_id\" apiUrl=\"api/email-subscription-types\">\n </app-searchable-selector>\n <button mat-button *ngIf=\"getFieldValue('email_type_id')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('email_type_id')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</form>",
|
|
3446
3601
|
styles: [""]
|
|
3447
3602
|
},] }
|
|
3448
3603
|
];
|
|
@@ -3762,7 +3917,7 @@ let EmailSubscriptionTypeListComponent = class EmailSubscriptionTypeListComponen
|
|
|
3762
3917
|
EmailSubscriptionTypeListComponent.decorators = [
|
|
3763
3918
|
{ type: Component, args: [{
|
|
3764
3919
|
selector: 'app-email-subscription-type-list',
|
|
3765
|
-
template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <mat-form-field>\n <input matInput [formControl]=\"search\" placeholder=\"Email Type\" autocomplete=\"off\" />\n <button mat-button matSuffix mat-icon-button>\n <mat-icon>search</mat-icon>\n </button>\n <button mat-button *ngIf=\"search.value\" matSuffix mat-icon-button (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addEmailSubscriptionType()\">+ Email\n Type</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"emailSubscriptionTypeList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"email-subscription-type-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Title </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.title }} </td>\n </ng-container>\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Code </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.code }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"frequency.title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>
|
|
3920
|
+
template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <mat-form-field>\n <input matInput [formControl]=\"search\" placeholder=\"Email Type\" autocomplete=\"off\" />\n <button mat-button matSuffix mat-icon-button>\n <mat-icon>search</mat-icon>\n </button>\n <button mat-button *ngIf=\"search.value\" matSuffix mat-icon-button (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addEmailSubscriptionType()\">+ Email\n Type</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"emailSubscriptionTypeList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"email-subscription-type-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Title </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.title }} </td>\n </ng-container>\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Code </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.code }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"frequency.title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Frequency </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.frequency?.title }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType\">\n <button type=\"button\" mat-icon-button\n (click)=\"deleteEmailSubscriptionType($event,emailSubscriptionType)\">\n <mat-icon>delete</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button\n (click)=\"editEmailSubscriptionType($event,emailSubscriptionType)\">\n <mat-icon>edit</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n </section>\n</div>",
|
|
3766
3921
|
styles: [".scroll-container{max-height:800px;overflow-y:auto}"]
|
|
3767
3922
|
},] }
|
|
3768
3923
|
];
|
|
@@ -4713,14 +4868,12 @@ let AuditLogViewModelComponent = class AuditLogViewModelComponent {
|
|
|
4713
4868
|
}
|
|
4714
4869
|
getTransformedChanges() {
|
|
4715
4870
|
var _a, _b, _c, _d;
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
});
|
|
4723
|
-
}
|
|
4871
|
+
const changes = ((((_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.action) === 'deleted') ? Object.keys((_b = this.logInfo) === null || _b === void 0 ? void 0 : _b.object) : Object.keys((_d = (_c = this.logInfo) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.changes)) || [];
|
|
4872
|
+
changes.forEach((key) => {
|
|
4873
|
+
var _a, _b, _c, _d, _e;
|
|
4874
|
+
const displayAttribute = key.split('_').map(x => x.charAt(0).toUpperCase() + x.slice(1)).join(' ');
|
|
4875
|
+
this.changeList.push({ displayAttribute: displayAttribute, attribute: key, newValue: (((_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.action) === 'deleted') ? '' : ((_c = (_b = this.logInfo) === null || _b === void 0 ? void 0 : _b.object[key]) !== null && _c !== void 0 ? _c : ''), oldValue: (_e = (_d = this.logInfo) === null || _d === void 0 ? void 0 : _d.pre_object[key]) !== null && _e !== void 0 ? _e : '' });
|
|
4876
|
+
});
|
|
4724
4877
|
}
|
|
4725
4878
|
close() {
|
|
4726
4879
|
this.dialogRef.close();
|
|
@@ -5161,14 +5314,12 @@ class AuditLogViewComponent {
|
|
|
5161
5314
|
}
|
|
5162
5315
|
getTransformedChanges() {
|
|
5163
5316
|
var _a, _b, _c, _d;
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
});
|
|
5171
|
-
}
|
|
5317
|
+
const changes = ((((_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.action) === 'deleted') ? Object.keys((_b = this.logInfo) === null || _b === void 0 ? void 0 : _b.object) : Object.keys((_d = (_c = this.logInfo) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.changes)) || [];
|
|
5318
|
+
changes.forEach((key) => {
|
|
5319
|
+
var _a, _b, _c, _d, _e;
|
|
5320
|
+
const displayAttribute = key.split('_').map(x => x.charAt(0).toUpperCase() + x.slice(1)).join(' ');
|
|
5321
|
+
this.changeList.push({ displayAttribute: displayAttribute, attribute: key, newValue: (((_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.action) === 'deleted') ? '' : ((_c = (_b = this.logInfo) === null || _b === void 0 ? void 0 : _b.object[key]) !== null && _c !== void 0 ? _c : ''), oldValue: (_e = (_d = this.logInfo) === null || _d === void 0 ? void 0 : _d.pre_object[key]) !== null && _e !== void 0 ? _e : '' });
|
|
5322
|
+
});
|
|
5172
5323
|
}
|
|
5173
5324
|
fetchLogDetail(logId) {
|
|
5174
5325
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -5605,6 +5756,7 @@ let LoginHistoryForUserComponent = class LoginHistoryForUserComponent {
|
|
|
5605
5756
|
};
|
|
5606
5757
|
this.displayedColumns = ['index', 'created_at'];
|
|
5607
5758
|
this.historyFilterForm = this.fb.group({
|
|
5759
|
+
'duration': [''],
|
|
5608
5760
|
'date_from': [''],
|
|
5609
5761
|
'date_to': ['']
|
|
5610
5762
|
});
|
|
@@ -5620,6 +5772,14 @@ let LoginHistoryForUserComponent = class LoginHistoryForUserComponent {
|
|
|
5620
5772
|
});
|
|
5621
5773
|
this.initializeData();
|
|
5622
5774
|
}
|
|
5775
|
+
onTimelineChange(range) {
|
|
5776
|
+
let date_from = (range === null || range === void 0 ? void 0 : range.date_from) ? new Date(range.date_from) : '';
|
|
5777
|
+
let date_to = (range === null || range === void 0 ? void 0 : range.date_to) ? new Date(range.date_to) : '';
|
|
5778
|
+
this.historyFilterForm.patchValue({
|
|
5779
|
+
date_from,
|
|
5780
|
+
date_to
|
|
5781
|
+
});
|
|
5782
|
+
}
|
|
5623
5783
|
initializeData() {
|
|
5624
5784
|
this.http.get(`api/user-login-history`, { params: Object.assign(Object.assign({}, this.filters), this.pageEvent) })
|
|
5625
5785
|
.pipe(untilDestroyed(this))
|
|
@@ -5651,7 +5811,7 @@ let LoginHistoryForUserComponent = class LoginHistoryForUserComponent {
|
|
|
5651
5811
|
LoginHistoryForUserComponent.decorators = [
|
|
5652
5812
|
{ type: Component, args: [{
|
|
5653
5813
|
selector: 'app-login-history-for-user',
|
|
5654
|
-
template: "<div class=\"mat-typography m-4\">\n <form fxLayoutAlign=\" start center\">\n <app-timeline-filter
|
|
5814
|
+
template: "<div class=\"mat-typography m-4\">\n <form [formGroup]=\"historyFilterForm\" fxLayoutAlign=\" start center\">\n <app-timeline-filter formControlName=\"duration\" (selectionChange)=\"onTimelineChange($event)\"></app-timeline-filter>\n </form>\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"loginHistoryList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"login-history-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let loginHistory; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Last Login</th>\n <td mat-cell *matCellDef=\"let loginHistory;\">\n {{loginHistory?.created_at | date:'medium' }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n </section>\n</div>\n",
|
|
5655
5815
|
styles: [".scroll-container{max-height:800px;overflow-y:auto}"]
|
|
5656
5816
|
},] }
|
|
5657
5817
|
];
|
|
@@ -6167,7 +6327,7 @@ TechlifyTaggerTagSelectorModule.decorators = [
|
|
|
6167
6327
|
},] }
|
|
6168
6328
|
];
|
|
6169
6329
|
|
|
6170
|
-
class
|
|
6330
|
+
class TechlifyFeatureService {
|
|
6171
6331
|
constructor(dataManager) {
|
|
6172
6332
|
this.dataManager = dataManager;
|
|
6173
6333
|
}
|
|
@@ -6181,17 +6341,17 @@ class CompanyFeatureService {
|
|
|
6181
6341
|
return this.dataManager.GET(`api/feature/${id}/enable`);
|
|
6182
6342
|
}
|
|
6183
6343
|
}
|
|
6184
|
-
|
|
6185
|
-
|
|
6344
|
+
TechlifyFeatureService.ɵprov = ɵɵdefineInjectable({ factory: function TechlifyFeatureService_Factory() { return new TechlifyFeatureService(ɵɵinject(DataManager)); }, token: TechlifyFeatureService, providedIn: "root" });
|
|
6345
|
+
TechlifyFeatureService.decorators = [
|
|
6186
6346
|
{ type: Injectable, args: [{
|
|
6187
6347
|
providedIn: 'root'
|
|
6188
6348
|
},] }
|
|
6189
6349
|
];
|
|
6190
|
-
|
|
6350
|
+
TechlifyFeatureService.ctorParameters = () => [
|
|
6191
6351
|
{ type: DataManager }
|
|
6192
6352
|
];
|
|
6193
6353
|
|
|
6194
|
-
let
|
|
6354
|
+
let TechlifyFeatureListingComponent = class TechlifyFeatureListingComponent {
|
|
6195
6355
|
constructor(dataManager, errorHandler, fb, alertService, dialog, storage, featureService) {
|
|
6196
6356
|
this.dataManager = dataManager;
|
|
6197
6357
|
this.errorHandler = errorHandler;
|
|
@@ -6334,34 +6494,34 @@ let CompanyFeatureComponent = class CompanyFeatureComponent {
|
|
|
6334
6494
|
}
|
|
6335
6495
|
}
|
|
6336
6496
|
};
|
|
6337
|
-
|
|
6497
|
+
TechlifyFeatureListingComponent.decorators = [
|
|
6338
6498
|
{ type: Component, args: [{
|
|
6339
|
-
selector: 'app-
|
|
6499
|
+
selector: 'app-techlify-listing-feature',
|
|
6340
6500
|
template: "<div fxLayout=\"column\" fxLayoutGap=\"3rem\" class=\"p-3\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"primary-color mt-3\">\n <h3>Features Configuration</h3>\n <mat-hint>\n <i> Here you can specify which optional features you'd like to have available to your team </i>\n </mat-hint>\n </div>\n\n\n <div>\n <mat-card>\n <mat-card-content fxlayout=\"column\" style=\"overflow: auto; height: 700px\" class=\"classifications-card\">\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [fromRoot]=\"true\" [infiniteScrollContainer]=\"'.classifications-card'\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"feature\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Feature\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Descriptions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Actions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"!element?.client_feature\">\n <app-on-off-switch [value]=\"element?.is_enabled_default\"\n (click)=\"toggeleFeature(element?.is_enabled_default, element)\"></app-on-off-switch>\n </div>\n <div *ngIf=\"element?.client_feature\">\n <app-on-off-switch [value]=\"element?.client_feature?.is_enabled\"\n (click)=\"toggeleFeature(element?.client_feature?.is_enabled, element)\"></app-on-off-switch>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n </div>\n</div>\n",
|
|
6341
6501
|
styles: [""]
|
|
6342
6502
|
},] }
|
|
6343
6503
|
];
|
|
6344
|
-
|
|
6504
|
+
TechlifyFeatureListingComponent.ctorParameters = () => [
|
|
6345
6505
|
{ type: DataManager },
|
|
6346
6506
|
{ type: ErrorHandlerService },
|
|
6347
6507
|
{ type: FormBuilder },
|
|
6348
6508
|
{ type: AlertService },
|
|
6349
6509
|
{ type: MatDialog },
|
|
6350
6510
|
{ type: StorageService },
|
|
6351
|
-
{ type:
|
|
6511
|
+
{ type: TechlifyFeatureService }
|
|
6352
6512
|
];
|
|
6353
|
-
|
|
6513
|
+
TechlifyFeatureListingComponent = __decorate([
|
|
6354
6514
|
UntilDestroy()
|
|
6355
|
-
],
|
|
6515
|
+
], TechlifyFeatureListingComponent);
|
|
6356
6516
|
|
|
6357
6517
|
const routes$n = [
|
|
6358
6518
|
{
|
|
6359
6519
|
path: '',
|
|
6360
|
-
component:
|
|
6520
|
+
component: TechlifyFeatureListingComponent,
|
|
6361
6521
|
canActivate: [AuthenticationGuard]
|
|
6362
6522
|
},
|
|
6363
6523
|
];
|
|
6364
|
-
const
|
|
6524
|
+
const TechlifyFeatureRoutes = RouterModule.forChild(routes$n);
|
|
6365
6525
|
|
|
6366
6526
|
class OnOffSwitchComponent {
|
|
6367
6527
|
constructor(fb) {
|
|
@@ -6388,7 +6548,7 @@ OnOffSwitchComponent.propDecorators = {
|
|
|
6388
6548
|
value: [{ type: Input }]
|
|
6389
6549
|
};
|
|
6390
6550
|
|
|
6391
|
-
class
|
|
6551
|
+
class TechlifyFeatureEnabledDirective {
|
|
6392
6552
|
constructor(el, featureService, errorHandler, storage) {
|
|
6393
6553
|
this.el = el;
|
|
6394
6554
|
this.featureService = featureService;
|
|
@@ -6446,37 +6606,37 @@ class NgxFeatureEnabledDirective {
|
|
|
6446
6606
|
}
|
|
6447
6607
|
}
|
|
6448
6608
|
}
|
|
6449
|
-
|
|
6609
|
+
TechlifyFeatureEnabledDirective.decorators = [
|
|
6450
6610
|
{ type: Directive, args: [{
|
|
6451
|
-
selector: '[
|
|
6611
|
+
selector: '[techlifyFeatureEnabled]'
|
|
6452
6612
|
},] }
|
|
6453
6613
|
];
|
|
6454
|
-
|
|
6614
|
+
TechlifyFeatureEnabledDirective.ctorParameters = () => [
|
|
6455
6615
|
{ type: ElementRef },
|
|
6456
|
-
{ type:
|
|
6616
|
+
{ type: TechlifyFeatureService },
|
|
6457
6617
|
{ type: ErrorHandlerService },
|
|
6458
6618
|
{ type: StorageService }
|
|
6459
6619
|
];
|
|
6460
|
-
|
|
6461
|
-
enabledFeature: [{ type: Input, args: ['
|
|
6620
|
+
TechlifyFeatureEnabledDirective.propDecorators = {
|
|
6621
|
+
enabledFeature: [{ type: Input, args: ['techlifyFeatureEnabled',] }]
|
|
6462
6622
|
};
|
|
6463
6623
|
|
|
6464
|
-
class
|
|
6624
|
+
class TechlifyFeatureModule {
|
|
6465
6625
|
}
|
|
6466
|
-
|
|
6626
|
+
TechlifyFeatureModule.decorators = [
|
|
6467
6627
|
{ type: NgModule, args: [{
|
|
6468
6628
|
imports: [
|
|
6469
6629
|
CommonModule,
|
|
6470
6630
|
MaterialModule,
|
|
6471
6631
|
FlexLayoutModule,
|
|
6472
|
-
|
|
6632
|
+
TechlifyFeatureRoutes,
|
|
6473
6633
|
MatSlideToggleModule,
|
|
6474
6634
|
FormsModule,
|
|
6475
6635
|
ReactiveFormsModule,
|
|
6476
6636
|
InfiniteScrollModule
|
|
6477
6637
|
],
|
|
6478
|
-
declarations: [
|
|
6479
|
-
exports: [
|
|
6638
|
+
declarations: [TechlifyFeatureListingComponent, OnOffSwitchComponent, TechlifyFeatureEnabledDirective],
|
|
6639
|
+
exports: [TechlifyFeatureListingComponent, TechlifyFeatureEnabledDirective]
|
|
6480
6640
|
},] }
|
|
6481
6641
|
];
|
|
6482
6642
|
|
|
@@ -6488,5 +6648,5 @@ CompanyFeatureModule.decorators = [
|
|
|
6488
6648
|
* Generated bundle index. Do not edit.
|
|
6489
6649
|
*/
|
|
6490
6650
|
|
|
6491
|
-
export { ActionPopup, ActionPopupComponent, ActionPopupModule, AlertService, ApiPrefixInterceptor, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, CommentFormComponent,
|
|
6651
|
+
export { ActionPopup, ActionPopupComponent, ActionPopupModule, AlertService, ApiPrefixInterceptor, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, CommentFormComponent, ConfigService, CoreModule, CredentialsService, 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, EntityFilesViewAllComponent, EntityFilesViewAllModule, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FailedItemsComponent, FailedItemsModule, FailedItemsRoutingModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportConfig, ImportCsvComponent, ImportCsvModule, ImportCsvRoutingModule, ImportItemsComponent, ImportItemsModule, ImportItemsRoutingModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, MatSelectInfiniteScrollDirective, MaterialModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberSelector, PageEvent, ReadMoreComponent, ReadMoreModule, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SnackModule, StorageService, SuccessSnackComponent, TechlifyConfig, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, Timeline, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, UtilityModule, ViewerConfig, calculateTimeline, esfur, estlr, esulr, SnackModule as ɵa, SuccessSnackComponent as ɵb, NumberSelector as ɵba, TimelineFilterComponent as ɵbb, TimelineFilterRoutingModule as ɵbc, LoaderComponent as ɵbd, EmailSubscriptionUserFormComponent as ɵbe, EmailSubscriptionUserListComponent as ɵbf, AuthenticationGuard as ɵbg, EmailSubscriptionUserListFilterComponent as ɵbh, EmailSubscriptionTypeFormComponent as ɵbi, EmailSubscriptionTypeListComponent as ɵbj, EmailSubscriptionForUserComponent as ɵbk, TechlifyUpdatesListComponent as ɵbl, TechlifyUpdateService as ɵbm, TechlifyUpdateRoutingModule as ɵbn, TechlifyUpdateFormModule as ɵbo, TechlifyUpdateFormComponent as ɵbp, TechlifyUpdateHistoryRoutingModule as ɵbq, TechlifyUpdateHistoryComponent as ɵbr, UpdateNotifierSnackComponent as ɵbs, UpdateViewModule as ɵbt, UpdateViewComponent as ɵbu, DataManager as ɵbv, ErrorHandlerService as ɵbw, StorageService as ɵbx, TechlifyFeatureService as ɵby, DataManager as ɵbz, ErrorSnackComponent as ɵc, AuthenticationGuard as ɵca, OnOffSwitchComponent as ɵcb, HTTP_DYNAMIC_INTERCEPTORS as ɵd, HttpService as ɵe, RouteReusableStrategy as ɵf, ActionPopupComponent as ɵg, ActionPopup as ɵh, DataTableComponent as ɵi, DocumentViewerComponent as ɵj, EntityFileFormComponent as ɵk, FormValidatorService as ɵl, EntityFileService as ɵm, AlertService as ɵn, EntityFilesViewAllComponent as ɵo, FileDropperComponent as ɵp, NoteListComponent as ɵq, NoteService as ɵr, NoteFormComponent as ɵs, CommentFormComponent as ɵt, CredentialsService as ɵu, ConfigService as ɵv, TechlifyConfig as ɵw, SearchableSelectorComponent as ɵx, MatSelectInfiniteScrollDirective as ɵy, NumItemsSelector as ɵz };
|
|
6492
6652
|
//# sourceMappingURL=ngx-techlify-core.js.map
|