ngx-techlify-core 18.89.0 → 18.90.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.
@@ -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';
@@ -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
- perPage: this.perPage,
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');
@@ -16115,5 +16319,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
16115
16319
  * Generated bundle index. Do not edit.
16116
16320
  */
16117
16321
 
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 };
16322
+ 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
16323
  //# sourceMappingURL=ngx-techlify-core.mjs.map