ngx-techlify-core 18.89.0 → 18.91.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/esm2022/lib/base-model/index.mjs +3 -1
- package/esm2022/lib/base-model/techlify-list/contract/techlify-list.contract.mjs +2 -2
- package/esm2022/lib/base-model/techlify-show/contract/techlify-show.contract.mjs +84 -0
- package/esm2022/lib/base-model/techlify-show/techlify-show.component.mjs +120 -0
- package/esm2022/lib/detail-layout/techlify-detail-layout.component.mjs +11 -0
- package/esm2022/lib/locked-date/locked-date-lock-unlock-button/locked-date-lock-unlock-button.component.mjs +5 -5
- package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +31 -36
- package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-techlify-core.mjs +231 -33
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/base-model/index.d.ts +2 -0
- package/lib/base-model/techlify-show/contract/techlify-show.contract.d.ts +17 -0
- package/lib/base-model/techlify-show/techlify-show.component.d.ts +71 -0
- package/lib/detail-layout/techlify-detail-layout.component.d.ts +5 -0
- package/lib/locked-date/locked-dates-list/locked-date-list.component.d.ts +4 -4
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -13,7 +13,7 @@ import { debounceTime, filter, map, startWith, distinctUntilChanged, skip, final
|
|
|
13
13
|
import * as i1$5 from '@angular/platform-browser';
|
|
14
14
|
import { Title } from '@angular/platform-browser';
|
|
15
15
|
import * as i1$2 from '@angular/router';
|
|
16
|
-
import { RouteReuseStrategy, RouterModule, RouterLink } from '@angular/router';
|
|
16
|
+
import { ActivatedRoute, convertToParamMap, RouteReuseStrategy, RouterModule, RouterLink } from '@angular/router';
|
|
17
17
|
import * as i2 from '@angular/common';
|
|
18
18
|
import { DatePipe, CommonModule, NgIf, NgTemplateOutlet, NgOptimizedImage, CurrencyPipe } from '@angular/common';
|
|
19
19
|
import { fakeAsync, tick } from '@angular/core/testing';
|
|
@@ -1078,7 +1078,7 @@ function techlifyListContract(options) {
|
|
|
1078
1078
|
it('should reload when filter changes', fakeAsync(() => {
|
|
1079
1079
|
const component = options.getComponent();
|
|
1080
1080
|
const filterField = options.filterField ?? 'search';
|
|
1081
|
-
if (!component.filterForm?.
|
|
1081
|
+
if (!component.filterForm?.get(filterField)) {
|
|
1082
1082
|
pending(`Filter '${filterField}' does not exist.`);
|
|
1083
1083
|
return;
|
|
1084
1084
|
}
|
|
@@ -1121,6 +1121,201 @@ function techlifyListContract(options) {
|
|
|
1121
1121
|
});
|
|
1122
1122
|
}
|
|
1123
1123
|
|
|
1124
|
+
/**
|
|
1125
|
+
* Interface used to ensure we have a consistent structure across our view (show) pages
|
|
1126
|
+
*
|
|
1127
|
+
* Every view page follows the same workflow:
|
|
1128
|
+
* route param -> id -> service.show(id) -> model
|
|
1129
|
+
*/
|
|
1130
|
+
class TechlifyShowComponent {
|
|
1131
|
+
/**
|
|
1132
|
+
* Child classes can override this.
|
|
1133
|
+
* If left undefined/empty, falls back to environment.appTitle
|
|
1134
|
+
*/
|
|
1135
|
+
get pageTitle() {
|
|
1136
|
+
return undefined; // default
|
|
1137
|
+
}
|
|
1138
|
+
constructor(service) {
|
|
1139
|
+
this.service = service;
|
|
1140
|
+
//Boolean to denote the page is in API progress
|
|
1141
|
+
this.isWorking = false;
|
|
1142
|
+
/**
|
|
1143
|
+
* Name of the route param holding the model id.
|
|
1144
|
+
* Override in child class if the route uses a different name, eg: 'memoId'
|
|
1145
|
+
*/
|
|
1146
|
+
this.routeParamName = 'id';
|
|
1147
|
+
this.titleService = inject(Title, { optional: true });
|
|
1148
|
+
this.environmentService = inject(EnvironmentService, { optional: true });
|
|
1149
|
+
//Activated route to be inherited and used if needed
|
|
1150
|
+
this.route = inject(ActivatedRoute, { optional: true });
|
|
1151
|
+
const resolvedTitle = this.pageTitle && this.pageTitle.trim().length > 0
|
|
1152
|
+
? this.pageTitle
|
|
1153
|
+
: this.environmentService?.get().appTitle;
|
|
1154
|
+
this.titleService?.setTitle(resolvedTitle);
|
|
1155
|
+
}
|
|
1156
|
+
/**
|
|
1157
|
+
* Function that listens for route param changes
|
|
1158
|
+
* Sets the id and reloads the model whenever it changes,
|
|
1159
|
+
* so navigating between two records on the same page works
|
|
1160
|
+
*/
|
|
1161
|
+
listenRouteChanges() {
|
|
1162
|
+
this.route?.paramMap.subscribe((params) => {
|
|
1163
|
+
this.id = this.getIdFromRoute(params);
|
|
1164
|
+
this.loadData();
|
|
1165
|
+
});
|
|
1166
|
+
}
|
|
1167
|
+
/**
|
|
1168
|
+
* Reads the model id from the route params
|
|
1169
|
+
* Uses the current route snapshot when params are not given
|
|
1170
|
+
*
|
|
1171
|
+
* @param params optional route params
|
|
1172
|
+
*/
|
|
1173
|
+
getIdFromRoute(params) {
|
|
1174
|
+
const routeParams = params ?? this.route?.snapshot?.paramMap;
|
|
1175
|
+
return routeParams?.get(this.routeParamName) ?? null;
|
|
1176
|
+
}
|
|
1177
|
+
/**
|
|
1178
|
+
* Query params passed to the show request, eg: relations to load
|
|
1179
|
+
* Override in child class if needed
|
|
1180
|
+
*/
|
|
1181
|
+
getShowParams() {
|
|
1182
|
+
return {};
|
|
1183
|
+
}
|
|
1184
|
+
/**
|
|
1185
|
+
* Function that loads the main model of the page
|
|
1186
|
+
*/
|
|
1187
|
+
loadData() {
|
|
1188
|
+
if (!this.service) {
|
|
1189
|
+
throw new Error(`${this.constructor.name}: Service is required to load the data`);
|
|
1190
|
+
}
|
|
1191
|
+
if (!this.id) {
|
|
1192
|
+
return;
|
|
1193
|
+
}
|
|
1194
|
+
this.loadSubscription?.unsubscribe();
|
|
1195
|
+
this.isWorking = true;
|
|
1196
|
+
this.loadSubscription = this.service.show(this.id, this.getShowParams())
|
|
1197
|
+
.pipe(finalize(() => this.isWorking = false))
|
|
1198
|
+
.subscribe((result) => {
|
|
1199
|
+
this.model = result?.item;
|
|
1200
|
+
this.modelLoaded(this.model);
|
|
1201
|
+
});
|
|
1202
|
+
}
|
|
1203
|
+
/**
|
|
1204
|
+
* Reload the model of the page
|
|
1205
|
+
*/
|
|
1206
|
+
reload() {
|
|
1207
|
+
this.loadData();
|
|
1208
|
+
}
|
|
1209
|
+
/**
|
|
1210
|
+
* Hook called once the model is loaded
|
|
1211
|
+
* Override in child class to compute derived data from the model
|
|
1212
|
+
*
|
|
1213
|
+
* @param model The loaded model
|
|
1214
|
+
*/
|
|
1215
|
+
modelLoaded(model) {
|
|
1216
|
+
}
|
|
1217
|
+
/**
|
|
1218
|
+
* Replaces the model of the page, eg: after an update form or status change
|
|
1219
|
+
*
|
|
1220
|
+
* @param model The updated model
|
|
1221
|
+
*/
|
|
1222
|
+
modelUpdated(model) {
|
|
1223
|
+
if (model) {
|
|
1224
|
+
this.model = model;
|
|
1225
|
+
this.modelLoaded(this.model);
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyShowComponent, deps: [{ token: TechlifyService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1229
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyShowComponent, ngImport: i0 }); }
|
|
1230
|
+
}
|
|
1231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyShowComponent, decorators: [{
|
|
1232
|
+
type: Directive
|
|
1233
|
+
}], ctorParameters: () => [{ type: TechlifyService, decorators: [{
|
|
1234
|
+
type: Optional
|
|
1235
|
+
}] }] });
|
|
1236
|
+
|
|
1237
|
+
/**
|
|
1238
|
+
* Reusable test contract for components extending TechlifyShowComponent.
|
|
1239
|
+
*
|
|
1240
|
+
* Ensures all view components follow the same base behaviour:
|
|
1241
|
+
* - Service injection
|
|
1242
|
+
* - Default state initialization
|
|
1243
|
+
* - Reading the id from the route
|
|
1244
|
+
* - Loading the model through service.show()
|
|
1245
|
+
* - Model update handling
|
|
1246
|
+
*/
|
|
1247
|
+
function techlifyShowContract(options) {
|
|
1248
|
+
describe('TechlifyShowComponent Contract', () => {
|
|
1249
|
+
/**
|
|
1250
|
+
* Ensures child components correctly pass their service
|
|
1251
|
+
* to the base view component.
|
|
1252
|
+
*/
|
|
1253
|
+
it('should pass a service to the base class', () => {
|
|
1254
|
+
const component = options.getComponent();
|
|
1255
|
+
expect(component.service)
|
|
1256
|
+
.toBe(options.getService());
|
|
1257
|
+
});
|
|
1258
|
+
/**
|
|
1259
|
+
* Ensures route listening is started on init.
|
|
1260
|
+
*/
|
|
1261
|
+
it('should listen route changes on init', () => {
|
|
1262
|
+
const component = options.getComponent();
|
|
1263
|
+
spyOn(component, 'listenRouteChanges');
|
|
1264
|
+
component.ngOnInit();
|
|
1265
|
+
expect(component.listenRouteChanges)
|
|
1266
|
+
.toHaveBeenCalled();
|
|
1267
|
+
});
|
|
1268
|
+
/**
|
|
1269
|
+
* Ensures the id is read from the configured route param.
|
|
1270
|
+
*/
|
|
1271
|
+
it('should get id from route params', () => {
|
|
1272
|
+
const component = options.getComponent();
|
|
1273
|
+
const routeParamName = options.routeParamName ?? 'id';
|
|
1274
|
+
const params = convertToParamMap({ [routeParamName]: '5' });
|
|
1275
|
+
expect(component.getIdFromRoute(params))
|
|
1276
|
+
.toBe('5');
|
|
1277
|
+
});
|
|
1278
|
+
/**
|
|
1279
|
+
* Ensures the model is loaded using the show service.
|
|
1280
|
+
*/
|
|
1281
|
+
it('should load the model using show', () => {
|
|
1282
|
+
const component = options.getComponent();
|
|
1283
|
+
options.getService().show
|
|
1284
|
+
.and.returnValue(of({
|
|
1285
|
+
item: { id: 5 }
|
|
1286
|
+
}));
|
|
1287
|
+
component.id = 5;
|
|
1288
|
+
component.loadData();
|
|
1289
|
+
expect(options.getService().show)
|
|
1290
|
+
.toHaveBeenCalledWith(5, jasmine.anything());
|
|
1291
|
+
expect(component.model)
|
|
1292
|
+
.toEqual({ id: 5 });
|
|
1293
|
+
expect(component.isWorking)
|
|
1294
|
+
.toBeFalse();
|
|
1295
|
+
});
|
|
1296
|
+
/**
|
|
1297
|
+
* Ensures no request is made without an id.
|
|
1298
|
+
*/
|
|
1299
|
+
it('should not load without an id', () => {
|
|
1300
|
+
const component = options.getComponent();
|
|
1301
|
+
options.getService().show.calls.reset();
|
|
1302
|
+
component.id = null;
|
|
1303
|
+
component.loadData();
|
|
1304
|
+
expect(options.getService().show)
|
|
1305
|
+
.not.toHaveBeenCalled();
|
|
1306
|
+
});
|
|
1307
|
+
/**
|
|
1308
|
+
* Ensures the model is replaced on update.
|
|
1309
|
+
*/
|
|
1310
|
+
it('should replace the model on modelUpdated', () => {
|
|
1311
|
+
const component = options.getComponent();
|
|
1312
|
+
component.modelUpdated({ id: 7 });
|
|
1313
|
+
expect(component.model)
|
|
1314
|
+
.toEqual({ id: 7 });
|
|
1315
|
+
});
|
|
1316
|
+
});
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1124
1319
|
var DataTableComponent_1;
|
|
1125
1320
|
let DataTableComponent = class DataTableComponent {
|
|
1126
1321
|
static { DataTableComponent_1 = this; }
|
|
@@ -4580,7 +4775,7 @@ class SearchableSelectorComponent {
|
|
|
4580
4775
|
this.search(value);
|
|
4581
4776
|
}));
|
|
4582
4777
|
this.filters = {
|
|
4583
|
-
|
|
4778
|
+
per_page: this.perPage,
|
|
4584
4779
|
search: '',
|
|
4585
4780
|
page: 1,
|
|
4586
4781
|
lastPage: 1
|
|
@@ -15256,6 +15451,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15256
15451
|
}]
|
|
15257
15452
|
}] });
|
|
15258
15453
|
|
|
15454
|
+
class TechlifyDetailLayoutComponent {
|
|
15455
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyDetailLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15456
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyDetailLayoutComponent, isStandalone: true, selector: "app-techlify-detail-layout", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["app-techlify-detail-layout{display:flex;flex-direction:column;width:100%}app-techlify-detail-layout .detail-row{display:flex;align-items:center;margin-top:.5rem}app-techlify-detail-layout .detail-row.detail-row-start{align-items:flex-start}app-techlify-detail-layout .detail-row-head{min-width:var(--detail-row-head-width, 100px);flex-shrink:0;font-size:.875em;color:var(--bs-secondary-color, #6c757d)}app-techlify-detail-layout .detail-row-data{min-width:0}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
15457
|
+
}
|
|
15458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyDetailLayoutComponent, decorators: [{
|
|
15459
|
+
type: Component,
|
|
15460
|
+
args: [{ selector: 'app-techlify-detail-layout', standalone: true, encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: ["app-techlify-detail-layout{display:flex;flex-direction:column;width:100%}app-techlify-detail-layout .detail-row{display:flex;align-items:center;margin-top:.5rem}app-techlify-detail-layout .detail-row.detail-row-start{align-items:flex-start}app-techlify-detail-layout .detail-row-head{min-width:var(--detail-row-head-width, 100px);flex-shrink:0;font-size:.875em;color:var(--bs-secondary-color, #6c757d)}app-techlify-detail-layout .detail-row-data{min-width:0}\n"] }]
|
|
15461
|
+
}] });
|
|
15462
|
+
|
|
15259
15463
|
class FormConfigurationFormFieldService extends TechlifyService {
|
|
15260
15464
|
constructor(http) {
|
|
15261
15465
|
super(http, 'form-configuration-form-fields');
|
|
@@ -15431,15 +15635,15 @@ class LockedDateLockUnlockButtonComponent {
|
|
|
15431
15635
|
}
|
|
15432
15636
|
lock() {
|
|
15433
15637
|
this.lockedDateService.lock(this.lockedDate).subscribe({
|
|
15434
|
-
next: () => {
|
|
15435
|
-
this.onSave.emit();
|
|
15638
|
+
next: (response) => {
|
|
15639
|
+
this.onSave.emit(response.item);
|
|
15436
15640
|
}
|
|
15437
15641
|
});
|
|
15438
15642
|
}
|
|
15439
15643
|
unlock() {
|
|
15440
15644
|
this.lockedDateService.unlock(this.lockedDate).subscribe({
|
|
15441
|
-
next: () => {
|
|
15442
|
-
this.onSave.emit();
|
|
15645
|
+
next: (response) => {
|
|
15646
|
+
this.onSave.emit(response.item);
|
|
15443
15647
|
}
|
|
15444
15648
|
});
|
|
15445
15649
|
}
|
|
@@ -15456,12 +15660,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15456
15660
|
}] } });
|
|
15457
15661
|
|
|
15458
15662
|
class LockedDateListComponent extends TechlifyListComponent {
|
|
15459
|
-
constructor(service, fb,
|
|
15460
|
-
super();
|
|
15663
|
+
constructor(service, fb, userConfigService) {
|
|
15664
|
+
super(service);
|
|
15461
15665
|
this.service = service;
|
|
15462
15666
|
this.fb = fb;
|
|
15463
|
-
this.
|
|
15667
|
+
this.userConfigService = userConfigService;
|
|
15464
15668
|
this.formComponent = signal(LockedDateFormComponent);
|
|
15669
|
+
this.scrollContainer = '.mat-sidenav-content';
|
|
15465
15670
|
this.displayedColumns = [
|
|
15466
15671
|
'index',
|
|
15467
15672
|
'date',
|
|
@@ -15470,6 +15675,16 @@ class LockedDateListComponent extends TechlifyListComponent {
|
|
|
15470
15675
|
'locked_by',
|
|
15471
15676
|
'actions'
|
|
15472
15677
|
];
|
|
15678
|
+
const config = this.userConfigService.getConfig();
|
|
15679
|
+
if (config?.scrollContainer) {
|
|
15680
|
+
this.scrollContainer = config.scrollContainer === 'root'
|
|
15681
|
+
? null
|
|
15682
|
+
: config.scrollContainer;
|
|
15683
|
+
}
|
|
15684
|
+
this.filterFormConfiguration = {
|
|
15685
|
+
date_from: { date: true },
|
|
15686
|
+
date_to: { date: true },
|
|
15687
|
+
};
|
|
15473
15688
|
this.filterForm = this.fb.group({
|
|
15474
15689
|
date_from: [''],
|
|
15475
15690
|
date_to: [''],
|
|
@@ -15477,34 +15692,17 @@ class LockedDateListComponent extends TechlifyListComponent {
|
|
|
15477
15692
|
});
|
|
15478
15693
|
}
|
|
15479
15694
|
ngOnInit() {
|
|
15695
|
+
this.patchFiltersFromRoute();
|
|
15480
15696
|
this.listenFilterChanges();
|
|
15481
15697
|
this.loadData();
|
|
15482
15698
|
}
|
|
15483
|
-
|
|
15484
|
-
|
|
15485
|
-
let filters = this.filterForm.value;
|
|
15486
|
-
filters.page = this.page;
|
|
15487
|
-
filters.date_from = filters.date_from
|
|
15488
|
-
? this.datePipe.transform(filters.date_from, 'yyyy-MM-dd')
|
|
15489
|
-
: '';
|
|
15490
|
-
filters.date_to = filters.date_to
|
|
15491
|
-
? this.datePipe.transform(filters.date_to, 'yyyy-MM-dd')
|
|
15492
|
-
: '';
|
|
15493
|
-
this.service.index(filters).subscribe({
|
|
15494
|
-
next: (response) => {
|
|
15495
|
-
this.models = this.models.concat(response.data);
|
|
15496
|
-
this.lastPage = response.last_page;
|
|
15497
|
-
this.isWorking = false;
|
|
15498
|
-
}
|
|
15499
|
-
});
|
|
15500
|
-
}
|
|
15501
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateListComponent, deps: [{ token: LockedDateService }, { token: i3.FormBuilder }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15502
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LockedDateListComponent, selector: "app-locked-date-list", providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card appearance=\"outlined\" class=\"d-print-none\">\n <mat-card-content class=\"d-flex flex-row align-items-center justify-content-between\">\n <div class=\"d-flex flex-row gap-2 align-items-center justify-content-between\">\n <h5 class=\"mb-0\">Locked Dates</h5>\n <app-techlify-form-button [component]=\"formComponent()\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n\n <form [formGroup]=\"filterForm\" class='d-flex flex-row gap-2'>\n <app-timeline-filter labelText=\"Period\" [form]='filterForm'></app-timeline-filter>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table class='w-100' mat-table [dataSource]=\"models\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\"\n [infiniteScrollContainer]=\"'.mat-sidenav-content'\" [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Date </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.date | date: 'longDate'}}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_on\">\n <th mat-header-cell *matHeaderCellDef> Locked On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_by\">\n <th mat-header-cell *matHeaderCellDef> Locked By </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-2 text-secondary\">\n <app-locked-date-lock-unlock-button [lockedDate]='element'\n (onSave)='reload()'></app-locked-date-lock-unlock-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{type: 'Locked Date', title: element?.date | date:'longDate'}\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i13.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4$1.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "component", type: TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: LockedDateLockUnlockButtonComponent, selector: "app-locked-date-lock-unlock-button", inputs: ["lockedDate"], outputs: ["onSave"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] }); }
|
|
15699
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateListComponent, deps: [{ token: LockedDateService }, { token: i3.FormBuilder }, { token: UserConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15700
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LockedDateListComponent, selector: "app-locked-date-list", usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card appearance=\"outlined\" class=\"d-print-none\">\n <mat-card-content class=\"d-flex flex-row align-items-center justify-content-between\">\n <div class=\"d-flex flex-row gap-2 align-items-center justify-content-between\">\n <h5 class=\"mb-0\">Locked Dates</h5>\n <app-techlify-form-button [component]=\"formComponent()\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n\n <form [formGroup]=\"filterForm\" class='d-flex flex-row gap-2'>\n <app-timeline-filter labelText=\"Period\" [form]='filterForm'></app-timeline-filter>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table class='w-100' mat-table [dataSource]=\"models\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\"\n [infiniteScrollContainer]=\"scrollContainer\" [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Date </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row align-items-center gap-2\">\n <span>{{element?.date | date: 'longDate'}}</span>\n <span>\n <i class=\"fa-solid fa-lock text-danger\" *ngIf=\"element?.status_id == 1\" matTooltip=\"Locked\"></i>\n <i class=\"fa-solid fa-lock-open text-success\" *ngIf=\"element?.status_id == 2\" matTooltip=\"Unlocked\"></i>\n </span>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_on\">\n <th mat-header-cell *matHeaderCellDef> Locked On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_by\">\n <th mat-header-cell *matHeaderCellDef> Locked By </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-2 text-secondary\">\n <app-locked-date-lock-unlock-button [lockedDate]='element'\n (onSave)='modelsUpdatedById($event)'></app-locked-date-lock-unlock-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{type: 'Locked Date', title: element?.date | date:'longDate'}\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i13.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4$1.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "component", type: TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: LockedDateLockUnlockButtonComponent, selector: "app-locked-date-lock-unlock-button", inputs: ["lockedDate"], outputs: ["onSave"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] }); }
|
|
15503
15701
|
}
|
|
15504
15702
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateListComponent, decorators: [{
|
|
15505
15703
|
type: Component,
|
|
15506
|
-
args: [{ selector: 'app-locked-date-list',
|
|
15507
|
-
}], ctorParameters: () => [{ type: LockedDateService }, { type: i3.FormBuilder }, { type:
|
|
15704
|
+
args: [{ selector: 'app-locked-date-list', template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card appearance=\"outlined\" class=\"d-print-none\">\n <mat-card-content class=\"d-flex flex-row align-items-center justify-content-between\">\n <div class=\"d-flex flex-row gap-2 align-items-center justify-content-between\">\n <h5 class=\"mb-0\">Locked Dates</h5>\n <app-techlify-form-button [component]=\"formComponent()\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n\n <form [formGroup]=\"filterForm\" class='d-flex flex-row gap-2'>\n <app-timeline-filter labelText=\"Period\" [form]='filterForm'></app-timeline-filter>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table class='w-100' mat-table [dataSource]=\"models\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\"\n [infiniteScrollContainer]=\"scrollContainer\" [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Date </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row align-items-center gap-2\">\n <span>{{element?.date | date: 'longDate'}}</span>\n <span>\n <i class=\"fa-solid fa-lock text-danger\" *ngIf=\"element?.status_id == 1\" matTooltip=\"Locked\"></i>\n <i class=\"fa-solid fa-lock-open text-success\" *ngIf=\"element?.status_id == 2\" matTooltip=\"Unlocked\"></i>\n </span>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_on\">\n <th mat-header-cell *matHeaderCellDef> Locked On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_by\">\n <th mat-header-cell *matHeaderCellDef> Locked By </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-2 text-secondary\">\n <app-locked-date-lock-unlock-button [lockedDate]='element'\n (onSave)='modelsUpdatedById($event)'></app-locked-date-lock-unlock-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{type: 'Locked Date', title: element?.date | date:'longDate'}\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n</div>" }]
|
|
15705
|
+
}], ctorParameters: () => [{ type: LockedDateService }, { type: i3.FormBuilder }, { type: UserConfigService }] });
|
|
15508
15706
|
|
|
15509
15707
|
class LockedDateModule {
|
|
15510
15708
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -16115,5 +16313,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16115
16313
|
* Generated bundle index. Do not edit.
|
|
16116
16314
|
*/
|
|
16117
16315
|
|
|
16118
|
-
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AdminRoleListComponent, AdminRoleListModule, AdminRolePermissionFormComponent, AdminRolePermissionFormModule, AdminRoleService, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserList, AppAdminUserViewComponent, AppAdminUserViewModule, AppUpdateService, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CountryService, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataTable, DataTableComponent, DataTableModule, DateUtils, 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, EntityFileListComponent, EntityFileListModule, EntityFileListWidgetComponent, EntityFileService, EntityFileListModule as EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormConfigurationFieldFormComponent, FormConfigurationFieldFormModule, FormConfigurationFieldFormRoutingModule, FormConfigurationForFormComponent, FormConfigurationForFormModule, FormConfigurationFormFieldService, FormConfigurationFormService, FormConfigurationUtilityService, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LockedDate, LockedDateFormComponent, LockedDateListComponent, LockedDateLockUnlockButtonComponent, LockedDateModule, LockedDateService, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, MyTechlifyViewListingComponent, MyTechlifyViewListingModule, MyTechlifyViewService, NgxTechlifyUsersModule, NoteCommentListComponent, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelectorComponent, OrdinalPipe, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, PhoneNumberSelectorComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleListComponent, RoleModule, RoleRoutingProvider, RoleService, RoleViewComponent, RoleViewModule, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TagService, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyAutoCompleteSelectComponent, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyCurrencyPipe, TechlifyDeleteButtonComponent, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormButtonComponent, TechlifyFormComponent, TechlifyIconComponent, TechlifyIconModule, TechlifyListComponent, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyService, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormComponent, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagListComponent, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TechlifyViewFormComponent, TechlifyViewFormModule, TechlifyViewService, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineActivityListComponent, TimelineActivityListModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, dateValidator, esfur, estlr, esulr, parseLocalDate, techlifyFormContract, techlifyListContract };
|
|
16316
|
+
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AdminRoleListComponent, AdminRoleListModule, AdminRolePermissionFormComponent, AdminRolePermissionFormModule, AdminRoleService, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserList, AppAdminUserViewComponent, AppAdminUserViewModule, AppUpdateService, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CountryService, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataTable, DataTableComponent, DataTableModule, DateUtils, 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, EntityFileListComponent, EntityFileListModule, EntityFileListWidgetComponent, EntityFileService, EntityFileListModule as EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormConfigurationFieldFormComponent, FormConfigurationFieldFormModule, FormConfigurationFieldFormRoutingModule, FormConfigurationForFormComponent, FormConfigurationForFormModule, FormConfigurationFormFieldService, FormConfigurationFormService, FormConfigurationUtilityService, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LockedDate, LockedDateFormComponent, LockedDateListComponent, LockedDateLockUnlockButtonComponent, LockedDateModule, LockedDateService, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, MyTechlifyViewListingComponent, MyTechlifyViewListingModule, MyTechlifyViewService, NgxTechlifyUsersModule, NoteCommentListComponent, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelectorComponent, OrdinalPipe, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, PhoneNumberSelectorComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleListComponent, RoleModule, RoleRoutingProvider, RoleService, RoleViewComponent, RoleViewModule, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TagService, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyAutoCompleteSelectComponent, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyCurrencyPipe, TechlifyDeleteButtonComponent, TechlifyDetailLayoutComponent, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormButtonComponent, TechlifyFormComponent, TechlifyIconComponent, TechlifyIconModule, TechlifyListComponent, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyService, TechlifyShowComponent, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormComponent, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagListComponent, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TechlifyViewFormComponent, TechlifyViewFormModule, TechlifyViewService, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineActivityListComponent, TimelineActivityListModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, dateValidator, esfur, estlr, esulr, parseLocalDate, techlifyFormContract, techlifyListContract, techlifyShowContract };
|
|
16119
16317
|
//# sourceMappingURL=ngx-techlify-core.mjs.map
|