@acorex/platform 19.2.12 → 19.2.15
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/auth/lib/session.service.d.ts +8 -2
- package/common/index.d.ts +0 -1
- package/common/lib/app/application.types.d.ts +2 -2
- package/common/lib/common.module.d.ts +1 -2
- package/common/lib/data/index.d.ts +0 -4
- package/common/lib/file-type/file-type.provider.d.ts +3 -3
- package/common/lib/file-type/file-type.types.d.ts +12 -0
- package/common/lib/layout/menu/menu.types.d.ts +3 -2
- package/common/lib/layout/theme/components/slots/navbar-slot.component.d.ts +2 -4
- package/common/lib/search/search.types.d.ts +3 -5
- package/common/lib/settings/settings.service.d.ts +1 -1
- package/common/lib/utils/index.d.ts +0 -1
- package/common/lib/utils/regional-util.service.d.ts +2 -2
- package/core/index.d.ts +1 -5
- package/core/lib/data/data-generator.d.ts +26 -0
- package/core/lib/data/index.d.ts +1 -0
- package/core/lib/directives/element-data.directive.d.ts +20 -0
- package/core/lib/directives/index.d.ts +1 -0
- package/core/lib/event-service/event.service.d.ts +43 -0
- package/core/lib/event-service/index.d.ts +1 -0
- package/{common/lib/utils → core/lib/expression-evaluator}/expression-evaluator.service.d.ts +1 -1
- package/core/lib/expression-evaluator/index.d.ts +1 -0
- package/core/lib/index.d.ts +6 -0
- package/core/lib/types.d.ts +17 -0
- package/core/lib/utils/data-conditioner.d.ts +5 -0
- package/core/lib/utils/index.d.ts +4 -0
- package/fesm2022/acorex-platform-auth.mjs +53 -17
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +606 -869
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +364 -12
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +14 -3
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +99 -52
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +673 -34
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-search.mjs +4 -3
- package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-setting.mjs +4 -3
- package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DrHsaotw.mjs → acorex-platform-themes-default-entity-master-list-view.component-ewOei4ta.mjs} +11 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-ewOei4ta.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BGUrwL2P.mjs → acorex-platform-themes-default-entity-master-single-view.component-DcSk0ia4.mjs} +2 -2
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BGUrwL2P.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-DcSk0ia4.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-search-popup.component-Ccouaqp4.mjs → acorex-platform-themes-default-search-popup.component-DfeNmpS9.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-search-popup.component-Ccouaqp4.mjs.map → acorex-platform-themes-default-search-popup.component-DfeNmpS9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-setting-page.component-CJoBVXTl.mjs → acorex-platform-themes-default-setting-page.component-DtJmPSFo.mjs} +5 -4
- package/fesm2022/acorex-platform-themes-default-setting-page.component-DtJmPSFo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-setting-view.component-CsCug3Vu.mjs → acorex-platform-themes-default-setting-view.component-fuHM7W6Y.mjs} +2 -2
- package/fesm2022/{acorex-platform-themes-default-setting-view.component-CsCug3Vu.mjs.map → acorex-platform-themes-default-setting-view.component-fuHM7W6Y.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-theme-palette-preview.page-D-yzbISw.mjs → acorex-platform-themes-default-theme-palette-preview.page-DkjAgWLn.mjs} +2 -2
- package/fesm2022/{acorex-platform-themes-default-theme-palette-preview.page-D-yzbISw.mjs.map → acorex-platform-themes-default-theme-palette-preview.page-DkjAgWLn.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +36 -24
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +27 -4
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-Ba_DdBAl.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-Emh145xN.mjs} +3 -3
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-Ba_DdBAl.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-Emh145xN.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +1083 -98
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +17 -8
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/lib/builder/datasource-provider.service.d.ts +2 -2
- package/layout/builder/lib/builder/metadata/metadata.types.d.ts +2 -1
- package/layout/builder/lib/builder/widget-map.d.ts +5 -0
- package/layout/builder/lib/builder/widget.types.d.ts +1 -1
- package/layout/designer/lib/designer/designer.component.d.ts +2 -1
- package/layout/designer/lib/designer/shared/designer.service.d.ts +8 -4
- package/layout/designer/lib/designer/shared/designer.types.d.ts +24 -0
- package/layout/designer/lib/preview/preview-viewer.component.d.ts +5 -1
- package/layout/designer/lib/preview/preview.component.d.ts +2 -1
- package/layout/entity/lib/entity-master-create.viewmodel.d.ts +1 -0
- package/{common/lib/data → layout/entity/lib}/entity-storage-service.d.ts +1 -0
- package/layout/entity/lib/index.d.ts +4 -0
- package/layout/entity/lib/widgets/tagable-box/index.d.ts +6 -0
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.d.ts +11 -0
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.d.ts +19 -0
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.d.ts +6 -0
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.d.ts +11 -0
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.d.ts +11 -0
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget.config.d.ts +7 -0
- package/package.json +1 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +2 -0
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +5 -0
- package/themes/shared/lib/components/layout-elements/index.d.ts +1 -0
- package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +1 -1
- package/themes/shared/lib/components/layout-elements/layout-tool-bar.component.d.ts +5 -0
- package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +2 -1
- package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +4 -2
- package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget-edit.component.d.ts +8 -0
- package/widgets/lib/widgets/editors/meta-data/index.d.ts +6 -0
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-column.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-edit.component.d.ts +13 -0
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-filter.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-view.component.d.ts +8 -0
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/number-unit/index.d.ts +6 -0
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-column.component.d.ts +9 -0
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-edit.component.d.ts +24 -0
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-filter.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-view.component.d.ts +12 -0
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
- package/widgets/lib/widgets/editors/single-file-box/index.d.ts +6 -0
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-column.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-edit.component.d.ts +19 -0
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-filter.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-view.component.d.ts +8 -0
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/index.d.ts +1 -0
- package/workflow/lib/actions/decide.action.d.ts +7 -0
- package/workflow/lib/workflow.service.d.ts +0 -1
- package/common/lib/store/common.actions.d.ts +0 -2
- package/common/lib/store/index.d.ts +0 -1
- package/core/utils/data-conditioner.d.ts +0 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DrHsaotw.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-setting-page.component-CJoBVXTl.mjs.map +0 -1
- /package/core/{utils → lib/utils}/countdown-timer.d.ts +0 -0
- /package/core/{utils → lib/utils}/highlighter.d.ts +0 -0
- /package/core/{utils → lib/utils}/html-utils.d.ts +0 -0
- /package/{common/lib/data → layout/entity/lib}/data.types.d.ts +0 -0
- /package/{common/lib/data → layout/entity/lib}/dexie-storage.service.d.ts +0 -0
- /package/{common/lib/data → layout/entity/lib}/entity-data-seeder.d.ts +0 -0
|
@@ -1,39 +1,37 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, provideAppInitializer, inject, InjectionToken,
|
|
2
|
+
import { Injectable, provideAppInitializer, inject, InjectionToken, Injector, ErrorHandler, Directive, Input, EventEmitter, Output, runInInjectionContext, NgModule, Optional, Inject, Component, ViewEncapsulation, signal, model, linkedSignal, afterNextRender } from '@angular/core';
|
|
3
3
|
import { kebabCase, sortBy, omit, merge, cloneDeep, get } from 'lodash-es';
|
|
4
|
-
import {
|
|
4
|
+
import { AXPopupModule, AXPopupService } from '@acorex/components/popup';
|
|
5
5
|
import { AXToastService, AXToastModule } from '@acorex/components/toast';
|
|
6
6
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i3 from '@acorex/platform/workflow';
|
|
8
8
|
import { AXPWorkflowService, createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowError, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
9
9
|
import { Router, RouterModule } from '@angular/router';
|
|
10
|
-
import
|
|
11
|
-
import
|
|
10
|
+
import * as i4 from '@acorex/components/decorators';
|
|
11
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
12
|
+
import * as i2 from '@acorex/components/image';
|
|
13
|
+
import { AXImageModule } from '@acorex/components/image';
|
|
14
|
+
import * as i1 from '@angular/common';
|
|
15
|
+
import { CommonModule } from '@angular/common';
|
|
16
|
+
import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
17
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
18
|
+
import { AXFormatService } from '@acorex/core/format';
|
|
19
|
+
import { Subject } from 'rxjs';
|
|
20
|
+
import { AXPBroadcastEventService } from '@acorex/platform/core';
|
|
21
|
+
import { AXDialogService } from '@acorex/components/dialog';
|
|
12
22
|
import * as i5 from '@acorex/components/button';
|
|
13
23
|
import { AXButtonModule } from '@acorex/components/button';
|
|
14
24
|
import { AXCheckBoxModule } from '@acorex/components/check-box';
|
|
15
25
|
import * as i6 from '@acorex/components/color-box';
|
|
16
26
|
import { AXColorBoxModule } from '@acorex/components/color-box';
|
|
17
|
-
import * as
|
|
18
|
-
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
19
|
-
import * as i3 from '@acorex/components/label';
|
|
27
|
+
import * as i3$1 from '@acorex/components/label';
|
|
20
28
|
import { AXLabelModule } from '@acorex/components/label';
|
|
21
|
-
import * as i2 from '@acorex/components/number-box';
|
|
29
|
+
import * as i2$1 from '@acorex/components/number-box';
|
|
22
30
|
import { AXNumberBoxModule } from '@acorex/components/number-box';
|
|
23
31
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
24
32
|
import { AXTextBoxModule } from '@acorex/components/text-box';
|
|
25
|
-
import * as i1 from '@angular/forms';
|
|
33
|
+
import * as i1$1 from '@angular/forms';
|
|
26
34
|
import { FormsModule } from '@angular/forms';
|
|
27
|
-
import * as i2$1 from '@acorex/components/image';
|
|
28
|
-
import { AXImageModule } from '@acorex/components/image';
|
|
29
|
-
import * as i1$1 from '@angular/common';
|
|
30
|
-
import { CommonModule } from '@angular/common';
|
|
31
|
-
import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
32
|
-
import { AXTranslationService } from '@acorex/core/translation';
|
|
33
|
-
import { Store, createAction } from '@ngrx/store';
|
|
34
|
-
import { AXFormatService } from '@acorex/core/format';
|
|
35
|
-
import { Subject } from 'rxjs';
|
|
36
|
-
import { AXDialogService } from '@acorex/components/dialog';
|
|
37
35
|
|
|
38
36
|
class AXPAppStartUpService {
|
|
39
37
|
constructor() {
|
|
@@ -243,788 +241,146 @@ const ALL_DEFAULT_OPERATORS = [
|
|
|
243
241
|
class AXPDataProvider {
|
|
244
242
|
}
|
|
245
243
|
|
|
246
|
-
class
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
const copyText = document.createElement('input');
|
|
252
|
-
copyText.type = 'text';
|
|
253
|
-
copyText.select();
|
|
254
|
-
copyText.setSelectionRange(0, 99999); // For mobile devices
|
|
255
|
-
copyText.remove();
|
|
256
|
-
navigator.clipboard.writeText(value);
|
|
257
|
-
this.toast.success(`${title} copied!`);
|
|
244
|
+
class AXPCustomOperatorService {
|
|
245
|
+
}
|
|
246
|
+
class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
|
|
247
|
+
getCustomOperators() {
|
|
248
|
+
return {};
|
|
258
249
|
}
|
|
259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
260
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
251
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }
|
|
261
252
|
}
|
|
262
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
263
|
-
type: Injectable
|
|
264
|
-
args: [{
|
|
265
|
-
providedIn: 'root',
|
|
266
|
-
}]
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{
|
|
254
|
+
type: Injectable
|
|
267
255
|
}] });
|
|
268
256
|
|
|
269
|
-
class
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
let max = 100;
|
|
280
|
-
if (args.length == 1)
|
|
281
|
-
max = args[0];
|
|
282
|
-
if (args.length == 2) {
|
|
283
|
-
min = args[0];
|
|
284
|
-
max = args[1];
|
|
285
|
-
}
|
|
286
|
-
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
287
|
-
}
|
|
288
|
-
static date(...args) {
|
|
289
|
-
let start = new Date(2000, 0, 1);
|
|
290
|
-
let end = new Date();
|
|
291
|
-
if (args.length === 1) {
|
|
292
|
-
start = args[0];
|
|
293
|
-
}
|
|
294
|
-
else if (args.length === 2) {
|
|
295
|
-
start = args[0];
|
|
296
|
-
end = args[1];
|
|
297
|
-
}
|
|
298
|
-
const startTime = start.getTime();
|
|
299
|
-
const endTime = end.getTime();
|
|
300
|
-
return new Date(startTime + Math.random() * (endTime - startTime));
|
|
257
|
+
class AXPFilterOperatorMiddlewareService {
|
|
258
|
+
}
|
|
259
|
+
class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {
|
|
260
|
+
constructor() {
|
|
261
|
+
super(...arguments);
|
|
262
|
+
this.customOperatorService = inject(AXPCustomOperatorService);
|
|
263
|
+
this.operators = {
|
|
264
|
+
...this.getDefaultOperators(),
|
|
265
|
+
...this.customOperatorService.getCustomOperators(),
|
|
266
|
+
};
|
|
301
267
|
}
|
|
302
|
-
|
|
303
|
-
return
|
|
268
|
+
transformFilters(filters) {
|
|
269
|
+
return filters.map((filter) => this.transformFilter(filter));
|
|
304
270
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
const
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
// If the
|
|
315
|
-
if (
|
|
316
|
-
|
|
317
|
-
}
|
|
318
|
-
// Shuffle the array and slice the first 'count' elements
|
|
319
|
-
const shuffled = items.slice();
|
|
320
|
-
for (let i = shuffled.length - 1; i > 0; i--) {
|
|
321
|
-
const j = Math.floor(Math.random() * (i + 1));
|
|
322
|
-
[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements
|
|
271
|
+
transformFilter(filter) {
|
|
272
|
+
const { operator, value, filters, field } = filter;
|
|
273
|
+
// Find the operator (either default or custom)
|
|
274
|
+
const filterOperator = this.operators[operator?.type ?? ''] || null;
|
|
275
|
+
// Start by transforming the filter itself
|
|
276
|
+
const transformedFilter = {
|
|
277
|
+
...filter, // Keep the original filter structure
|
|
278
|
+
operator: filterOperator ? filterOperator : operator, // Add operator name
|
|
279
|
+
};
|
|
280
|
+
// If the filter contains nested filters, recursively transform them
|
|
281
|
+
if (filters && filters.length > 0) {
|
|
282
|
+
transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters
|
|
323
283
|
}
|
|
324
|
-
return
|
|
325
|
-
}
|
|
326
|
-
static string(length = 10) {
|
|
327
|
-
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
328
|
-
return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
|
|
284
|
+
return transformedFilter;
|
|
329
285
|
}
|
|
330
|
-
|
|
331
|
-
return
|
|
286
|
+
getOperator(key) {
|
|
287
|
+
return this.operators[key];
|
|
332
288
|
}
|
|
333
|
-
|
|
334
|
-
|
|
289
|
+
// Helper function to return the default operators
|
|
290
|
+
getDefaultOperators() {
|
|
291
|
+
return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {
|
|
292
|
+
acc[operator.name] = {
|
|
293
|
+
type: operator.name,
|
|
294
|
+
};
|
|
295
|
+
return acc;
|
|
296
|
+
}, {});
|
|
335
297
|
}
|
|
336
|
-
static
|
|
337
|
-
|
|
338
|
-
|
|
298
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
299
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }
|
|
300
|
+
}
|
|
301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{
|
|
302
|
+
type: Injectable
|
|
303
|
+
}] });
|
|
304
|
+
|
|
305
|
+
class AXPErrorHandlerRegistryService {
|
|
306
|
+
constructor(injector) {
|
|
307
|
+
this.injector = injector;
|
|
308
|
+
this.errorHandlers = [];
|
|
339
309
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
310
|
+
register(...plugins) {
|
|
311
|
+
plugins.forEach(t => {
|
|
312
|
+
const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });
|
|
313
|
+
const handler = childInjector.get(t);
|
|
314
|
+
if (handler) {
|
|
315
|
+
this.errorHandlers.push(handler);
|
|
316
|
+
}
|
|
317
|
+
});
|
|
343
318
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
|
|
319
|
+
get handlers() {
|
|
320
|
+
return this.errorHandlers;
|
|
347
321
|
}
|
|
348
|
-
static
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
322
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPErrorHandlerRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
323
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPErrorHandlerRegistryService, providedIn: 'root' }); }
|
|
324
|
+
}
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{
|
|
326
|
+
type: Injectable,
|
|
327
|
+
args: [{
|
|
328
|
+
providedIn: 'root'
|
|
329
|
+
}]
|
|
330
|
+
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
331
|
+
|
|
332
|
+
class AXPGlobalErrorHandler extends ErrorHandler {
|
|
333
|
+
constructor(injector, registry) {
|
|
334
|
+
super();
|
|
335
|
+
this.injector = injector;
|
|
336
|
+
this.registry = registry;
|
|
353
337
|
}
|
|
354
|
-
|
|
355
|
-
const
|
|
356
|
-
|
|
338
|
+
handleError(error) {
|
|
339
|
+
const handleErrorRecursively = (index, error) => {
|
|
340
|
+
const errorHandlers = this.registry.handlers;
|
|
341
|
+
if (index < errorHandlers.length) {
|
|
342
|
+
errorHandlers[index].handleError(error, (err) => {
|
|
343
|
+
handleErrorRecursively(index + 1, err);
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
super.handleError(error); // Fallback to default handler
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
if (error.message?.startsWith('NG0100')) {
|
|
351
|
+
//ignore it
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
handleErrorRecursively(0, error);
|
|
357
355
|
}
|
|
358
|
-
static
|
|
359
|
-
|
|
360
|
-
|
|
356
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalErrorHandler, deps: [{ token: i0.Injector }, { token: AXPErrorHandlerRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
357
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalErrorHandler, providedIn: 'root' }); }
|
|
358
|
+
}
|
|
359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{
|
|
360
|
+
type: Injectable,
|
|
361
|
+
args: [{ providedIn: 'root' }]
|
|
362
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: AXPErrorHandlerRegistryService }] });
|
|
363
|
+
|
|
364
|
+
// src/app/directives/grid-layout.directive.ts
|
|
365
|
+
class AXPGridLayoutDirective {
|
|
366
|
+
constructor(el, renderer) {
|
|
367
|
+
this.el = el;
|
|
368
|
+
this.renderer = renderer;
|
|
361
369
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
const separator = this.pick(['.', '_', '']);
|
|
366
|
-
const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';
|
|
367
|
-
if (args.length === 2) {
|
|
368
|
-
const firstName = args[0].toLowerCase();
|
|
369
|
-
const lastName = args[1].toLowerCase();
|
|
370
|
-
return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;
|
|
371
|
-
}
|
|
372
|
-
else {
|
|
373
|
-
const firstName = this.firstName().toLowerCase();
|
|
374
|
-
const lastName = this.lastName().toLowerCase();
|
|
375
|
-
return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;
|
|
370
|
+
ngOnChanges(changes) {
|
|
371
|
+
if (changes['options']) {
|
|
372
|
+
this.applyTailwindClasses();
|
|
376
373
|
}
|
|
377
374
|
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];
|
|
388
|
-
return this.pick(states);
|
|
389
|
-
}
|
|
390
|
-
static address() {
|
|
391
|
-
const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];
|
|
392
|
-
const streetNumber = this.number(100, 9999);
|
|
393
|
-
const street = this.pick(streets);
|
|
394
|
-
const city = this.city();
|
|
395
|
-
const state = this.state();
|
|
396
|
-
const zip = this.number(10000, 99999);
|
|
397
|
-
const country = this.country();
|
|
398
|
-
return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
403
|
-
constructor() {
|
|
404
|
-
super(...arguments);
|
|
405
|
-
this.ratio = signal(false);
|
|
406
|
-
this.baseWidth = signal(undefined);
|
|
407
|
-
this.baseHeight = signal(undefined);
|
|
408
|
-
this.bgcolor = model();
|
|
409
|
-
this.width = model();
|
|
410
|
-
this.height = model();
|
|
411
|
-
this.quality = model();
|
|
412
|
-
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100);
|
|
413
|
-
this.scale = model();
|
|
414
|
-
this.#init = afterNextRender(() => {
|
|
415
|
-
this.bgcolor.set(this.data.bgcolor);
|
|
416
|
-
this.width.set(this.data.width);
|
|
417
|
-
this.baseWidth.set(this.data.width);
|
|
418
|
-
this.height.set(this.data.height);
|
|
419
|
-
this.baseHeight.set(this.data.height);
|
|
420
|
-
this.quality.set(this.data.quality);
|
|
421
|
-
this.scale.set(this.data.scale);
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
|
-
#init;
|
|
425
|
-
calculateRatio(event, type) {
|
|
426
|
-
if (!this.ratio() || !event.isUserInteraction)
|
|
427
|
-
return;
|
|
428
|
-
const value = event.value;
|
|
429
|
-
if (type === 'width') {
|
|
430
|
-
const newHeight = Math.round((value / this.baseWidth()) * this.baseHeight() * 100) / 100;
|
|
431
|
-
this.height.set(newHeight);
|
|
432
|
-
this.width.set(value);
|
|
433
|
-
}
|
|
434
|
-
else {
|
|
435
|
-
const newWidth = Math.round((value / this.baseHeight()) * this.baseWidth() * 100) / 100;
|
|
436
|
-
this.width.set(newWidth);
|
|
437
|
-
this.height.set(value);
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
async handleClose(isCanceled = false) {
|
|
441
|
-
this.close({
|
|
442
|
-
bgcolor: this.bgcolor(),
|
|
443
|
-
width: this.width(),
|
|
444
|
-
height: this.height(),
|
|
445
|
-
quality: this.qualityComputed() / 100,
|
|
446
|
-
scale: this.scale(),
|
|
447
|
-
isCanceled,
|
|
448
|
-
});
|
|
449
|
-
}
|
|
450
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
451
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXMOrgChartPrintPage, isStandalone: true, selector: "ng-component", inputs: { bgcolor: { classPropertyName: "bgcolor", publicName: "bgcolor", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: "quality", publicName: "quality", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bgcolor: "bgcolorChange", width: "widthChange", height: "heightChange", quality: "qualityChange", scale: "scaleChange" }, usesInheritance: true, ngImport: i0, template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
452
|
-
<ax-label>Resolution (px)</ax-label>
|
|
453
|
-
<div class="ax-flex ax-gap-2 ax-items-center">
|
|
454
|
-
<ax-number-box
|
|
455
|
-
[changeOnScroll]="true"
|
|
456
|
-
[decimals]="4"
|
|
457
|
-
[value]="width()"
|
|
458
|
-
(onValueChanged)="calculateRatio($event, 'width')"
|
|
459
|
-
name="Width"
|
|
460
|
-
>
|
|
461
|
-
</ax-number-box>
|
|
462
|
-
<ax-button [toggleable]="true" [(selected)]="ratio"
|
|
463
|
-
><ax-icon><i class="fa-solid fa-vector-square"></i></ax-icon
|
|
464
|
-
></ax-button>
|
|
465
|
-
<ax-number-box
|
|
466
|
-
[changeOnScroll]="true"
|
|
467
|
-
[decimals]="4"
|
|
468
|
-
[value]="height()"
|
|
469
|
-
(onValueChanged)="calculateRatio($event, 'height')"
|
|
470
|
-
name="Height"
|
|
471
|
-
>
|
|
472
|
-
</ax-number-box>
|
|
473
|
-
</div>
|
|
474
|
-
|
|
475
|
-
<ax-label>Background color</ax-label>
|
|
476
|
-
<ax-color-box [(ngModel)]="bgcolor"></ax-color-box>
|
|
477
|
-
|
|
478
|
-
<ax-label>Quality of image (50-100%)</ax-label>
|
|
479
|
-
<ax-number-box
|
|
480
|
-
[changeOnScroll]="true"
|
|
481
|
-
[minValue]="50"
|
|
482
|
-
[maxValue]="100"
|
|
483
|
-
[(ngModel)]="qualityComputed"
|
|
484
|
-
name="Quality"
|
|
485
|
-
>
|
|
486
|
-
</ax-number-box>
|
|
487
|
-
|
|
488
|
-
<ax-label>Scale</ax-label>
|
|
489
|
-
<ax-number-box [changeOnScroll]="true" [minValue]="1" [(ngModel)]="scale" name="scale"> </ax-number-box>
|
|
490
|
-
</div>
|
|
491
|
-
|
|
492
|
-
<ax-footer>
|
|
493
|
-
<ax-prefix>
|
|
494
|
-
</ax-prefix>
|
|
495
|
-
<ax-suffix>
|
|
496
|
-
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
|
497
|
-
<ax-button text="Print" look="solid" color="primary" (onClick)="handleClose()">
|
|
498
|
-
<ax-icon class="fa-solid fa-print"> </ax-icon>
|
|
499
|
-
</ax-button>
|
|
500
|
-
</ax-suffix>
|
|
501
|
-
</ax-footer>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i2.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i6.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }] }); }
|
|
502
|
-
}
|
|
503
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{
|
|
504
|
-
type: Component,
|
|
505
|
-
args: [{
|
|
506
|
-
template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
507
|
-
<ax-label>Resolution (px)</ax-label>
|
|
508
|
-
<div class="ax-flex ax-gap-2 ax-items-center">
|
|
509
|
-
<ax-number-box
|
|
510
|
-
[changeOnScroll]="true"
|
|
511
|
-
[decimals]="4"
|
|
512
|
-
[value]="width()"
|
|
513
|
-
(onValueChanged)="calculateRatio($event, 'width')"
|
|
514
|
-
name="Width"
|
|
515
|
-
>
|
|
516
|
-
</ax-number-box>
|
|
517
|
-
<ax-button [toggleable]="true" [(selected)]="ratio"
|
|
518
|
-
><ax-icon><i class="fa-solid fa-vector-square"></i></ax-icon
|
|
519
|
-
></ax-button>
|
|
520
|
-
<ax-number-box
|
|
521
|
-
[changeOnScroll]="true"
|
|
522
|
-
[decimals]="4"
|
|
523
|
-
[value]="height()"
|
|
524
|
-
(onValueChanged)="calculateRatio($event, 'height')"
|
|
525
|
-
name="Height"
|
|
526
|
-
>
|
|
527
|
-
</ax-number-box>
|
|
528
|
-
</div>
|
|
529
|
-
|
|
530
|
-
<ax-label>Background color</ax-label>
|
|
531
|
-
<ax-color-box [(ngModel)]="bgcolor"></ax-color-box>
|
|
532
|
-
|
|
533
|
-
<ax-label>Quality of image (50-100%)</ax-label>
|
|
534
|
-
<ax-number-box
|
|
535
|
-
[changeOnScroll]="true"
|
|
536
|
-
[minValue]="50"
|
|
537
|
-
[maxValue]="100"
|
|
538
|
-
[(ngModel)]="qualityComputed"
|
|
539
|
-
name="Quality"
|
|
540
|
-
>
|
|
541
|
-
</ax-number-box>
|
|
542
|
-
|
|
543
|
-
<ax-label>Scale</ax-label>
|
|
544
|
-
<ax-number-box [changeOnScroll]="true" [minValue]="1" [(ngModel)]="scale" name="scale"> </ax-number-box>
|
|
545
|
-
</div>
|
|
546
|
-
|
|
547
|
-
<ax-footer>
|
|
548
|
-
<ax-prefix>
|
|
549
|
-
</ax-prefix>
|
|
550
|
-
<ax-suffix>
|
|
551
|
-
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
|
552
|
-
<ax-button text="Print" look="solid" color="primary" (onClick)="handleClose()">
|
|
553
|
-
<ax-icon class="fa-solid fa-print"> </ax-icon>
|
|
554
|
-
</ax-button>
|
|
555
|
-
</ax-suffix>
|
|
556
|
-
</ax-footer>`,
|
|
557
|
-
imports: [
|
|
558
|
-
FormsModule,
|
|
559
|
-
AXCheckBoxModule,
|
|
560
|
-
AXNumberBoxModule,
|
|
561
|
-
AXTextBoxModule,
|
|
562
|
-
AXLabelModule,
|
|
563
|
-
AXDecoratorModule,
|
|
564
|
-
AXButtonModule,
|
|
565
|
-
AXColorBoxModule,
|
|
566
|
-
],
|
|
567
|
-
}]
|
|
568
|
-
}] });
|
|
569
|
-
|
|
570
|
-
// AXPPdfService
|
|
571
|
-
class AXPExportService {
|
|
572
|
-
constructor() {
|
|
573
|
-
this.popupService = inject(AXPopupService);
|
|
574
|
-
}
|
|
575
|
-
async generateBlobFromElement(element, blobOptions) {
|
|
576
|
-
const domtoimage = (await import('dom-to-image')).default;
|
|
577
|
-
const originalWidth = element.scrollWidth;
|
|
578
|
-
const originalHeight = element.scrollHeight;
|
|
579
|
-
let popup, options = {}, newOptions = {};
|
|
580
|
-
if (blobOptions) {
|
|
581
|
-
({ popup, ...options } = blobOptions);
|
|
582
|
-
}
|
|
583
|
-
if (popup) {
|
|
584
|
-
const result = await this.popupService.open(AXMOrgChartPrintPage, {
|
|
585
|
-
header: true,
|
|
586
|
-
size: 'fit',
|
|
587
|
-
draggable: true,
|
|
588
|
-
hasBackdrop: true,
|
|
589
|
-
title: 'Export Options',
|
|
590
|
-
data: { data: options },
|
|
591
|
-
});
|
|
592
|
-
if (result.data.isCanceled) {
|
|
593
|
-
throw new Error('Process is Canceled by User!');
|
|
594
|
-
}
|
|
595
|
-
else {
|
|
596
|
-
newOptions = { ...options, ...result.data };
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
return domtoimage.toBlob(element, {
|
|
600
|
-
...newOptions,
|
|
601
|
-
width: (newOptions.width ?? originalWidth) * (newOptions?.scale ?? 1),
|
|
602
|
-
height: (newOptions.height ?? originalHeight) * (newOptions?.scale ?? 1),
|
|
603
|
-
style: {
|
|
604
|
-
transform: `scale(${newOptions?.scale ?? 1})`,
|
|
605
|
-
transformOrigin: 'top left',
|
|
606
|
-
},
|
|
607
|
-
});
|
|
608
|
-
}
|
|
609
|
-
download(blob, filename) {
|
|
610
|
-
const link = document.createElement('a');
|
|
611
|
-
link.href = URL.createObjectURL(blob);
|
|
612
|
-
link.download = filename;
|
|
613
|
-
document.body.appendChild(link);
|
|
614
|
-
link.click();
|
|
615
|
-
document.body.removeChild(link);
|
|
616
|
-
URL.revokeObjectURL(link.href);
|
|
617
|
-
}
|
|
618
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
619
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }
|
|
620
|
-
}
|
|
621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExportService, decorators: [{
|
|
622
|
-
type: Injectable,
|
|
623
|
-
args: [{
|
|
624
|
-
providedIn: 'root',
|
|
625
|
-
}]
|
|
626
|
-
}] });
|
|
627
|
-
|
|
628
|
-
class AXPExpressionEvaluatorService {
|
|
629
|
-
async evaluateExpression(obj, templateExpression, scope) {
|
|
630
|
-
try {
|
|
631
|
-
if (typeof templateExpression === 'string' && templateExpression.includes('{{')) {
|
|
632
|
-
return await this.evaluateStringExpression(templateExpression, scope);
|
|
633
|
-
}
|
|
634
|
-
else if (typeof templateExpression === 'object') {
|
|
635
|
-
const evaluatedObject = {};
|
|
636
|
-
for (const key in templateExpression) {
|
|
637
|
-
if (templateExpression.hasOwnProperty(key)) {
|
|
638
|
-
evaluatedObject[key] = await this.evaluateExpression(obj, templateExpression[key], scope);
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
return evaluatedObject;
|
|
642
|
-
}
|
|
643
|
-
else {
|
|
644
|
-
return templateExpression;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
catch (error) {
|
|
648
|
-
console.error('Error evaluating expression:', error);
|
|
649
|
-
return false;
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
async evaluateStringExpression(templateExpression, scope) {
|
|
653
|
-
const expressionMatch = templateExpression.match(/\{\{\s*(.*?)\s*\}\}/);
|
|
654
|
-
if (!expressionMatch) {
|
|
655
|
-
throw Error(`No valid expression found in "${templateExpression}"`);
|
|
656
|
-
}
|
|
657
|
-
const expression = expressionMatch[1];
|
|
658
|
-
const evaluationFunction = async () => {
|
|
659
|
-
const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);
|
|
660
|
-
return await sandbox(scope);
|
|
661
|
-
};
|
|
662
|
-
return await evaluationFunction();
|
|
663
|
-
}
|
|
664
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
665
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExpressionEvaluatorService, providedIn: 'root' }); }
|
|
666
|
-
}
|
|
667
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExpressionEvaluatorService, decorators: [{
|
|
668
|
-
type: Injectable,
|
|
669
|
-
args: [{ providedIn: 'root' }]
|
|
670
|
-
}] });
|
|
671
|
-
|
|
672
|
-
class AXPRegionalService {
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
class AXPDexieEntityStorageService extends Dexie {
|
|
676
|
-
constructor() {
|
|
677
|
-
super('ACoreXPlatform');
|
|
678
|
-
this.version(1).stores({
|
|
679
|
-
'entity-store': '++id, entityName, [entityName+id]',
|
|
680
|
-
});
|
|
681
|
-
}
|
|
682
|
-
get dbName() {
|
|
683
|
-
return 'ACoreXPlatform';
|
|
684
|
-
}
|
|
685
|
-
async initial(entityName, collection) {
|
|
686
|
-
const exists = await this.table('entity-store').where({ entityName }).count();
|
|
687
|
-
if (exists === 0) {
|
|
688
|
-
await this.table('entity-store').bulkAdd(collection.map((item) => ({ ...item, entityName })));
|
|
689
|
-
}
|
|
690
|
-
return collection;
|
|
691
|
-
}
|
|
692
|
-
async getOne(entityName, id) {
|
|
693
|
-
return await this.table('entity-store').where({ entityName, id: id }).first();
|
|
694
|
-
}
|
|
695
|
-
async updateOne(entityName, id, keyValue) {
|
|
696
|
-
await this.table('entity-store').where({ entityName, id: id }).modify(keyValue);
|
|
697
|
-
return await this.getOne(entityName, id);
|
|
698
|
-
}
|
|
699
|
-
async deleteOne(entityName, id) {
|
|
700
|
-
await this.table('entity-store').where({ entityName, id: id }).delete();
|
|
701
|
-
}
|
|
702
|
-
async insertOne(entityName, entity) {
|
|
703
|
-
const uuid = AXPDataGenerator.uuid();
|
|
704
|
-
await this.table('entity-store').add({ ...entity, id: uuid, entityName });
|
|
705
|
-
return uuid;
|
|
706
|
-
}
|
|
707
|
-
async getAll(entityName) {
|
|
708
|
-
return await this.table('entity-store').where({ entityName }).toArray();
|
|
709
|
-
}
|
|
710
|
-
async query(entityName, request) {
|
|
711
|
-
let result = await this.table('entity-store').where({ entityName }).toArray();
|
|
712
|
-
if (request.sort && request.sort.length) {
|
|
713
|
-
result = applySortArray(result, request.sort);
|
|
714
|
-
}
|
|
715
|
-
result = applyFilterArray(result, request.filter ? [request.filter] : []);
|
|
716
|
-
return Promise.resolve({
|
|
717
|
-
total: result.length,
|
|
718
|
-
items: result.slice(request.skip, (request.skip ?? 0) + (request.take ?? 0)),
|
|
719
|
-
});
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
// export class AXPDexieTableStorageService extends Dexie implements AXPEntityStorageService {
|
|
723
|
-
// private schemaUpdateLock: Promise<void> = Promise.resolve();
|
|
724
|
-
// constructor() {
|
|
725
|
-
// super('ACoreXPlatform');
|
|
726
|
-
// // Initial empty version
|
|
727
|
-
// //this.version(1).stores({});
|
|
728
|
-
// }
|
|
729
|
-
// // Function to change the schema dynamically
|
|
730
|
-
// private async changeSchema(schemaChanges: { [tableName: string]: string | null }): Promise<void> {
|
|
731
|
-
// // Acquire schema update lock to ensure no other operations are performed while schema is changing
|
|
732
|
-
// this.schemaUpdateLock = this.schemaUpdateLock.then(async () => {
|
|
733
|
-
// console.log('Attempting schema change with:', schemaChanges);
|
|
734
|
-
// try {
|
|
735
|
-
// this.close();
|
|
736
|
-
// const newDb = new Dexie(this.name);
|
|
737
|
-
// // Extract current schema in Dexie format
|
|
738
|
-
// const currentSchema = this.tables.reduce((result, { name, schema }) => {
|
|
739
|
-
// result[name] = [schema.primKey.src, ...schema.indexes.map((idx) => idx.src)].join(',');
|
|
740
|
-
// return result;
|
|
741
|
-
// }, {} as { [tableName: string]: string });
|
|
742
|
-
// console.log('Current Schema:', currentSchema);
|
|
743
|
-
// // Define current schema version
|
|
744
|
-
// newDb.version(this.verno + 10).stores(currentSchema);
|
|
745
|
-
// // Define new schema version with schema changes
|
|
746
|
-
// const nextVersion = this.verno + 1;
|
|
747
|
-
// newDb.version(nextVersion).stores(schemaChanges);
|
|
748
|
-
// await newDb.open();
|
|
749
|
-
// // Reassign updated db instance
|
|
750
|
-
// Object.assign(this, newDb);
|
|
751
|
-
// console.log(`Schema updated. Current version: ${this.verno}`);
|
|
752
|
-
// } catch (error) {
|
|
753
|
-
// console.error('Error during schema change:', error);
|
|
754
|
-
// throw error;
|
|
755
|
-
// }
|
|
756
|
-
// });
|
|
757
|
-
// // Wait for schema change lock to complete
|
|
758
|
-
// await this.schemaUpdateLock;
|
|
759
|
-
// }
|
|
760
|
-
// private async ensureInitialized(entityName: string): Promise<void> {
|
|
761
|
-
// if (this.tables.findIndex((table) => table.name === entityName) == -1) {
|
|
762
|
-
// const schemaChanges: { [tableName: string]: string } = {};
|
|
763
|
-
// schemaChanges[entityName] = '++id';
|
|
764
|
-
// await this.changeSchema(schemaChanges);
|
|
765
|
-
// }
|
|
766
|
-
// }
|
|
767
|
-
// get dbName(): string {
|
|
768
|
-
// return 'ACoreXPlatform';
|
|
769
|
-
// }
|
|
770
|
-
// private async getTable<T>(entityName: string) {
|
|
771
|
-
// await this.ensureInitialized(entityName);
|
|
772
|
-
// return this.table<T, number>(entityName);
|
|
773
|
-
// }
|
|
774
|
-
// async initial<T = any>(entityName: string, collection: T[]): Promise<void> {
|
|
775
|
-
// const table = await this.getTable<T>(entityName);
|
|
776
|
-
// const exists = await table.count();
|
|
777
|
-
// if (exists === 0) {
|
|
778
|
-
// await table.bulkAdd(collection);
|
|
779
|
-
// }
|
|
780
|
-
// }
|
|
781
|
-
// async getOne<T = any>(entityName: string, id: string): Promise<T> {
|
|
782
|
-
// const table = await this.getTable<T>(entityName);
|
|
783
|
-
// return (await table.where({ id: parseInt(id) }).first()) as T;
|
|
784
|
-
// }
|
|
785
|
-
// async updateOne(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<void> {
|
|
786
|
-
// const table = await this.getTable(entityName);
|
|
787
|
-
// await table.update(parseInt(id), keyValue);
|
|
788
|
-
// }
|
|
789
|
-
// async deleteOne(entityName: string, id: string): Promise<void> {
|
|
790
|
-
// const table = await this.getTable(entityName);
|
|
791
|
-
// await table.delete(parseInt(id));
|
|
792
|
-
// }
|
|
793
|
-
// async insertOne<T = any>(entityName: string, entity: T): Promise<void> {
|
|
794
|
-
// const table = await this.getTable<T>(entityName);
|
|
795
|
-
// await table.add(entity);
|
|
796
|
-
// }
|
|
797
|
-
// async getAll<T = any>(entityName: string): Promise<T[]> {
|
|
798
|
-
// const table = await this.getTable<T>(entityName);
|
|
799
|
-
// return await table.toArray();
|
|
800
|
-
// }
|
|
801
|
-
// }
|
|
802
|
-
|
|
803
|
-
const AXP_DATA_SEEDER_TOKEN = new InjectionToken('AXP_DATA_SEEDER_TOKEN');
|
|
804
|
-
class AXPDataSeederService {
|
|
805
|
-
constructor() {
|
|
806
|
-
this.loader = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });
|
|
807
|
-
}
|
|
808
|
-
async seed() {
|
|
809
|
-
if (Array.isArray(this.loader)) {
|
|
810
|
-
for (const loader of this.loader) {
|
|
811
|
-
await loader.seed();
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
else {
|
|
815
|
-
await this.loader?.seed();
|
|
816
|
-
}
|
|
817
|
-
}
|
|
818
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
819
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }
|
|
820
|
-
}
|
|
821
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDataSeederService, decorators: [{
|
|
822
|
-
type: Injectable,
|
|
823
|
-
args: [{ providedIn: 'root' }]
|
|
824
|
-
}] });
|
|
825
|
-
|
|
826
|
-
class AXPEntityStorageService {
|
|
827
|
-
}
|
|
828
|
-
class AXPEntityDataProvider {
|
|
829
|
-
}
|
|
830
|
-
class AXPEntityDataProviderImpl {
|
|
831
|
-
constructor(storageService, entityName) {
|
|
832
|
-
this.storageService = storageService;
|
|
833
|
-
this.entityName = entityName;
|
|
834
|
-
}
|
|
835
|
-
async initial(collection) {
|
|
836
|
-
await this.storageService.initial(this.entityName, collection);
|
|
837
|
-
}
|
|
838
|
-
getOne(id) {
|
|
839
|
-
return this.storageService.getOne(this.entityName, id);
|
|
840
|
-
}
|
|
841
|
-
getAll() {
|
|
842
|
-
return this.storageService.getAll(this.entityName);
|
|
843
|
-
}
|
|
844
|
-
query(request) {
|
|
845
|
-
return this.storageService.query(this.entityName, request);
|
|
846
|
-
}
|
|
847
|
-
updateOne(id, keyValue) {
|
|
848
|
-
return this.storageService.updateOne(this.entityName, id, keyValue);
|
|
849
|
-
}
|
|
850
|
-
deleteOne(id) {
|
|
851
|
-
return this.storageService.deleteOne(this.entityName, id);
|
|
852
|
-
}
|
|
853
|
-
insertOne(entity) {
|
|
854
|
-
return this.storageService.insertOne(this.entityName, entity);
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
class AXMEntityCrudService {
|
|
858
|
-
}
|
|
859
|
-
class AXMEntityCrudServiceImpl {
|
|
860
|
-
constructor(entityName) {
|
|
861
|
-
this.entityName = entityName;
|
|
862
|
-
this._storageService = inject(AXPEntityStorageService);
|
|
863
|
-
this._entityDataProvider = new AXPEntityDataProviderImpl(this._storageService, this.entityName);
|
|
864
|
-
}
|
|
865
|
-
async insertOne(request) {
|
|
866
|
-
return this._entityDataProvider.insertOne(request);
|
|
867
|
-
}
|
|
868
|
-
async getOne(id) {
|
|
869
|
-
return this._entityDataProvider.getOne(id);
|
|
870
|
-
}
|
|
871
|
-
async deleteOne(id) {
|
|
872
|
-
return this._entityDataProvider.deleteOne(id);
|
|
873
|
-
}
|
|
874
|
-
async updateOne(id, values) {
|
|
875
|
-
return this._entityDataProvider.updateOne(id, values);
|
|
876
|
-
}
|
|
877
|
-
async query(request = { skip: 0, take: 100 }) {
|
|
878
|
-
return this._entityDataProvider.query(request);
|
|
879
|
-
}
|
|
880
|
-
// get entityDataProvider() {
|
|
881
|
-
// return this._entityDataProvider;
|
|
882
|
-
// }
|
|
883
|
-
get storageService() {
|
|
884
|
-
return this._storageService;
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
class AXPCustomOperatorService {
|
|
889
|
-
}
|
|
890
|
-
class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
|
|
891
|
-
getCustomOperators() {
|
|
892
|
-
return {};
|
|
893
|
-
}
|
|
894
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
895
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }
|
|
896
|
-
}
|
|
897
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{
|
|
898
|
-
type: Injectable
|
|
899
|
-
}] });
|
|
900
|
-
|
|
901
|
-
class AXPFilterOperatorMiddlewareService {
|
|
902
|
-
}
|
|
903
|
-
class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {
|
|
904
|
-
constructor() {
|
|
905
|
-
super(...arguments);
|
|
906
|
-
this.customOperatorService = inject(AXPCustomOperatorService);
|
|
907
|
-
this.operators = {
|
|
908
|
-
...this.getDefaultOperators(),
|
|
909
|
-
...this.customOperatorService.getCustomOperators(),
|
|
910
|
-
};
|
|
911
|
-
}
|
|
912
|
-
transformFilters(filters) {
|
|
913
|
-
return filters.map((filter) => this.transformFilter(filter));
|
|
914
|
-
}
|
|
915
|
-
transformFilter(filter) {
|
|
916
|
-
const { operator, value, filters, field } = filter;
|
|
917
|
-
// Find the operator (either default or custom)
|
|
918
|
-
const filterOperator = this.operators[operator?.type] || null;
|
|
919
|
-
// Start by transforming the filter itself
|
|
920
|
-
const transformedFilter = {
|
|
921
|
-
...filter, // Keep the original filter structure
|
|
922
|
-
operator: filterOperator ? filterOperator : operator, // Add operator name
|
|
923
|
-
};
|
|
924
|
-
// If the filter contains nested filters, recursively transform them
|
|
925
|
-
if (filters && filters.length > 0) {
|
|
926
|
-
transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters
|
|
927
|
-
}
|
|
928
|
-
return transformedFilter;
|
|
929
|
-
}
|
|
930
|
-
getOperator(key) {
|
|
931
|
-
return this.operators[key];
|
|
932
|
-
}
|
|
933
|
-
// Helper function to return the default operators
|
|
934
|
-
getDefaultOperators() {
|
|
935
|
-
return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {
|
|
936
|
-
acc[operator.name] = {
|
|
937
|
-
type: operator.name,
|
|
938
|
-
};
|
|
939
|
-
return acc;
|
|
940
|
-
}, {});
|
|
941
|
-
}
|
|
942
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
943
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }
|
|
944
|
-
}
|
|
945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{
|
|
946
|
-
type: Injectable
|
|
947
|
-
}] });
|
|
948
|
-
|
|
949
|
-
class AXPErrorHandlerRegistryService {
|
|
950
|
-
constructor(injector) {
|
|
951
|
-
this.injector = injector;
|
|
952
|
-
this.errorHandlers = [];
|
|
953
|
-
}
|
|
954
|
-
register(...plugins) {
|
|
955
|
-
plugins.forEach(t => {
|
|
956
|
-
const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });
|
|
957
|
-
const handler = childInjector.get(t);
|
|
958
|
-
if (handler) {
|
|
959
|
-
this.errorHandlers.push(handler);
|
|
960
|
-
}
|
|
961
|
-
});
|
|
962
|
-
}
|
|
963
|
-
get handlers() {
|
|
964
|
-
return this.errorHandlers;
|
|
965
|
-
}
|
|
966
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPErrorHandlerRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
967
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPErrorHandlerRegistryService, providedIn: 'root' }); }
|
|
968
|
-
}
|
|
969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{
|
|
970
|
-
type: Injectable,
|
|
971
|
-
args: [{
|
|
972
|
-
providedIn: 'root'
|
|
973
|
-
}]
|
|
974
|
-
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
975
|
-
|
|
976
|
-
class AXPGlobalErrorHandler extends ErrorHandler {
|
|
977
|
-
constructor(injector, registry) {
|
|
978
|
-
super();
|
|
979
|
-
this.injector = injector;
|
|
980
|
-
this.registry = registry;
|
|
981
|
-
}
|
|
982
|
-
handleError(error) {
|
|
983
|
-
const handleErrorRecursively = (index, error) => {
|
|
984
|
-
const errorHandlers = this.registry.handlers;
|
|
985
|
-
if (index < errorHandlers.length) {
|
|
986
|
-
errorHandlers[index].handleError(error, (err) => {
|
|
987
|
-
handleErrorRecursively(index + 1, err);
|
|
988
|
-
});
|
|
989
|
-
}
|
|
990
|
-
else {
|
|
991
|
-
super.handleError(error); // Fallback to default handler
|
|
992
|
-
}
|
|
993
|
-
};
|
|
994
|
-
if (error.message?.startsWith('NG0100')) {
|
|
995
|
-
//ignore it
|
|
996
|
-
return;
|
|
997
|
-
}
|
|
998
|
-
handleErrorRecursively(0, error);
|
|
999
|
-
}
|
|
1000
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalErrorHandler, deps: [{ token: i0.Injector }, { token: AXPErrorHandlerRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1001
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalErrorHandler, providedIn: 'root' }); }
|
|
1002
|
-
}
|
|
1003
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{
|
|
1004
|
-
type: Injectable,
|
|
1005
|
-
args: [{ providedIn: 'root' }]
|
|
1006
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: AXPErrorHandlerRegistryService }] });
|
|
1007
|
-
|
|
1008
|
-
// src/app/directives/grid-layout.directive.ts
|
|
1009
|
-
class AXPGridLayoutDirective {
|
|
1010
|
-
constructor(el, renderer) {
|
|
1011
|
-
this.el = el;
|
|
1012
|
-
this.renderer = renderer;
|
|
1013
|
-
}
|
|
1014
|
-
ngOnChanges(changes) {
|
|
1015
|
-
if (changes['options']) {
|
|
1016
|
-
this.applyTailwindClasses();
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
|
-
applyTailwindClasses() {
|
|
1020
|
-
// Clear existing grid classes
|
|
1021
|
-
this.clearClasses();
|
|
1022
|
-
// Apply new grid classes based on the input options
|
|
1023
|
-
this.setClasses(this.options.positions?.default, '');
|
|
1024
|
-
this.setClasses(this.options.positions?.md, 'md:');
|
|
1025
|
-
this.setClasses(this.options.positions?.lg, 'lg:');
|
|
1026
|
-
this.setClasses(this.options.positions?.xl, 'xl:');
|
|
1027
|
-
this.setClasses(this.options.positions?.xxl, '2xl:');
|
|
375
|
+
applyTailwindClasses() {
|
|
376
|
+
// Clear existing grid classes
|
|
377
|
+
this.clearClasses();
|
|
378
|
+
// Apply new grid classes based on the input options
|
|
379
|
+
this.setClasses(this.options.positions?.default, '');
|
|
380
|
+
this.setClasses(this.options.positions?.md, 'md:');
|
|
381
|
+
this.setClasses(this.options.positions?.lg, 'lg:');
|
|
382
|
+
this.setClasses(this.options.positions?.xl, 'xl:');
|
|
383
|
+
this.setClasses(this.options.positions?.xxl, '2xl:');
|
|
1028
384
|
}
|
|
1029
385
|
setClasses(positions, prefix) {
|
|
1030
386
|
if (positions == null)
|
|
@@ -1381,7 +737,7 @@ class AXPLogoComponent {
|
|
|
1381
737
|
}
|
|
1382
738
|
}
|
|
1383
739
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1384
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLogoComponent, isStandalone: true, selector: "axp-logo", inputs: { source: "source" }, host: { classAttribute: "ax-flex ax-justify-center" }, ngImport: i0, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1
|
|
740
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLogoComponent, isStandalone: true, selector: "axp-logo", inputs: { source: "source" }, host: { classAttribute: "ax-flex ax-justify-center" }, ngImport: i0, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
|
|
1385
741
|
}
|
|
1386
742
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLogoComponent, decorators: [{
|
|
1387
743
|
type: Component,
|
|
@@ -1602,11 +958,12 @@ withMethods((store, router = inject(Router), workflow = inject(AXPWorkflowServic
|
|
|
1602
958
|
executeCommand(item) {
|
|
1603
959
|
if (item.path) {
|
|
1604
960
|
workflow.execute('navigate', { type: 'router', options: { path: item.path } });
|
|
961
|
+
patchState(store, { selectedMenuItem: { item, isFullMatch: true } });
|
|
1605
962
|
}
|
|
1606
963
|
if (item.command) {
|
|
1607
|
-
|
|
964
|
+
const command = item.command;
|
|
965
|
+
workflow.execute(command.name, command.options);
|
|
1608
966
|
}
|
|
1609
|
-
patchState(store, { selectedMenuItem: { item, isFullMatch: true } });
|
|
1610
967
|
},
|
|
1611
968
|
isItemOpen(item) {
|
|
1612
969
|
const selectedItem = store.selectedMenuItem();
|
|
@@ -1662,16 +1019,15 @@ class AXPMenuSearchProvider {
|
|
|
1662
1019
|
title: item.text, // Use `text` for the `title`
|
|
1663
1020
|
icon: item.icon, // Include the `icon` if present
|
|
1664
1021
|
data: omit(item, ['parent', 'children']), // Include all data except `parent` and `children`
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
},
|
|
1022
|
+
command: item.path ? {
|
|
1023
|
+
name: 'navigate',
|
|
1024
|
+
options: {
|
|
1025
|
+
type: 'router',
|
|
1026
|
+
options: {
|
|
1027
|
+
path: item.path,
|
|
1028
|
+
},
|
|
1029
|
+
}
|
|
1030
|
+
} : item.command,
|
|
1675
1031
|
parent: item.parent
|
|
1676
1032
|
? {
|
|
1677
1033
|
title: item.parent.text,
|
|
@@ -1724,19 +1080,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
1724
1080
|
}] } });
|
|
1725
1081
|
|
|
1726
1082
|
class AXPNavBarSlotComponent {
|
|
1727
|
-
constructor() {
|
|
1728
|
-
this.store = inject(Store);
|
|
1729
|
-
}
|
|
1730
1083
|
handleCommand(action) {
|
|
1731
|
-
if (action)
|
|
1732
|
-
|
|
1084
|
+
// if (action)
|
|
1085
|
+
// this.store.dispatch(action)
|
|
1733
1086
|
}
|
|
1734
1087
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1735
1088
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPNavBarSlotComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, ngImport: i0, template: `
|
|
1736
1089
|
<div class="ax-flex ax-items-center ax-justify-between ax-gap-5">
|
|
1737
1090
|
<a *ngFor="let link of items" (click)="handleCommand(link.command)" >{{ link.text }}</a>
|
|
1738
1091
|
</div>
|
|
1739
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1
|
|
1092
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1740
1093
|
}
|
|
1741
1094
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{
|
|
1742
1095
|
type: Component,
|
|
@@ -1929,7 +1282,7 @@ class AXPSearchService {
|
|
|
1929
1282
|
? this.formatService.format(definition.format.icon, 'string', result.data)
|
|
1930
1283
|
: definition.icon),
|
|
1931
1284
|
data: result.data,
|
|
1932
|
-
|
|
1285
|
+
command: result.command,
|
|
1933
1286
|
actions: definition.actions,
|
|
1934
1287
|
parent: result.parent,
|
|
1935
1288
|
order: definition.order,
|
|
@@ -2283,9 +1636,9 @@ class AXPSettingService {
|
|
|
2283
1636
|
this.providers = inject(AXP_SETTING_VALUE_PROVIDER);
|
|
2284
1637
|
//private readonly definitionService = inject(AXPSettingDefinitionProviderService);
|
|
2285
1638
|
this.injector = inject(Injector);
|
|
1639
|
+
this.eventService = inject(AXPBroadcastEventService);
|
|
2286
1640
|
this.scopedSettingsCache = new Map();
|
|
2287
1641
|
this.onChanged = new Subject();
|
|
2288
|
-
this.broadcastChannel = new BroadcastChannel('AXPSettingChannel'); // BroadcastChannel for sync
|
|
2289
1642
|
// Initialize scoped caches for dynamic scopes
|
|
2290
1643
|
const staticScopes = [
|
|
2291
1644
|
AXPSettingScope.Environment,
|
|
@@ -2299,13 +1652,13 @@ class AXPSettingService {
|
|
|
2299
1652
|
}
|
|
2300
1653
|
});
|
|
2301
1654
|
// Listen for setting changes from other tabs
|
|
2302
|
-
this.
|
|
1655
|
+
this.eventService.listen('AXPSettingChangedEvent').subscribe((event) => {
|
|
2303
1656
|
const data = event.data;
|
|
2304
1657
|
data.keys.forEach((key) => {
|
|
2305
1658
|
this.scopedSettingsCache.get(data.scope)?.set(key, data.values[key]);
|
|
2306
1659
|
});
|
|
2307
1660
|
this.onChanged.next(data); // Notify subscribers in the current tab
|
|
2308
|
-
};
|
|
1661
|
+
});
|
|
2309
1662
|
}
|
|
2310
1663
|
async load() {
|
|
2311
1664
|
try {
|
|
@@ -2387,7 +1740,7 @@ class AXPSettingService {
|
|
|
2387
1740
|
}
|
|
2388
1741
|
invokeChangeEvent(event) {
|
|
2389
1742
|
this.onChanged.next(event);
|
|
2390
|
-
this.
|
|
1743
|
+
this.eventService.publish("AXPSettingChangedEvent", event);
|
|
2391
1744
|
}
|
|
2392
1745
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2393
1746
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingService, providedIn: 'root' }); }
|
|
@@ -2627,7 +1980,9 @@ class AXPCommonModule {
|
|
|
2627
1980
|
/**
|
|
2628
1981
|
* @ignore
|
|
2629
1982
|
*/
|
|
2630
|
-
constructor(instances, appInitService, settingsService
|
|
1983
|
+
constructor(instances, appInitService, settingsService
|
|
1984
|
+
// seederService: AXPDataSeederService
|
|
1985
|
+
) {
|
|
2631
1986
|
instances.forEach((f) => {
|
|
2632
1987
|
f();
|
|
2633
1988
|
});
|
|
@@ -2640,16 +1995,16 @@ class AXPCommonModule {
|
|
|
2640
1995
|
});
|
|
2641
1996
|
//
|
|
2642
1997
|
//
|
|
2643
|
-
appInitService.registerTask({
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
});
|
|
2650
|
-
}
|
|
2651
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: AXPAppStartUpService }, { token: AXPSettingService }
|
|
2652
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, imports: [
|
|
1998
|
+
// appInitService.registerTask({
|
|
1999
|
+
// name: 'Seeder',
|
|
2000
|
+
// statusText: 'Seed Data ...',
|
|
2001
|
+
// run: async () => {
|
|
2002
|
+
// await seederService.seed();
|
|
2003
|
+
// },
|
|
2004
|
+
// });
|
|
2005
|
+
}
|
|
2006
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: AXPAppStartUpService }, { token: AXPSettingService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2007
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, imports: [i3.AXPWorkflowModule, AXPopupModule,
|
|
2653
2008
|
AXDateTimeModule,
|
|
2654
2009
|
AXToastModule], exports: [RouterModule] }); }
|
|
2655
2010
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, providers: [
|
|
@@ -2738,7 +2093,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2738
2093
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2739
2094
|
type: Inject,
|
|
2740
2095
|
args: ['AXPCommonModuleFactory']
|
|
2741
|
-
}] }, { type: AXPAppStartUpService }, { type: AXPSettingService }
|
|
2096
|
+
}] }, { type: AXPAppStartUpService }, { type: AXPSettingService }] });
|
|
2742
2097
|
|
|
2743
2098
|
const ENVIRONMENT = new InjectionToken('ENVIRONMENT');
|
|
2744
2099
|
const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN', {
|
|
@@ -2758,78 +2113,460 @@ const AXPPlatformDefaultConfigs = {
|
|
|
2758
2113
|
network: {
|
|
2759
2114
|
timeOut: 5000,
|
|
2760
2115
|
}
|
|
2761
|
-
};
|
|
2762
|
-
function configPlatform(config = AXPPlatformDefaultConfigs) {
|
|
2763
|
-
return merge(AXPPlatformDefaultConfigs, config);
|
|
2116
|
+
};
|
|
2117
|
+
function configPlatform(config = AXPPlatformDefaultConfigs) {
|
|
2118
|
+
return merge(AXPPlatformDefaultConfigs, config);
|
|
2119
|
+
}
|
|
2120
|
+
|
|
2121
|
+
const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');
|
|
2122
|
+
|
|
2123
|
+
class AXPFileStorageService {
|
|
2124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2125
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService }); }
|
|
2126
|
+
}
|
|
2127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService, decorators: [{
|
|
2128
|
+
type: Injectable
|
|
2129
|
+
}] });
|
|
2130
|
+
|
|
2131
|
+
var AXPFileStorageStatus;
|
|
2132
|
+
(function (AXPFileStorageStatus) {
|
|
2133
|
+
AXPFileStorageStatus["Temporary"] = "temporary";
|
|
2134
|
+
AXPFileStorageStatus["Committed"] = "committed";
|
|
2135
|
+
AXPFileStorageStatus["PendingDeletion"] = "pendingDeletion";
|
|
2136
|
+
AXPFileStorageStatus["Archived"] = "archived";
|
|
2137
|
+
AXPFileStorageStatus["Error"] = "error";
|
|
2138
|
+
})(AXPFileStorageStatus || (AXPFileStorageStatus = {}));
|
|
2139
|
+
|
|
2140
|
+
class AXPFiltersProviderService {
|
|
2141
|
+
async getAll() {
|
|
2142
|
+
return Promise.resolve('');
|
|
2143
|
+
}
|
|
2144
|
+
async execute() {
|
|
2145
|
+
return Promise.resolve('');
|
|
2146
|
+
}
|
|
2147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFiltersProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2148
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFiltersProviderService, providedIn: 'root' }); }
|
|
2149
|
+
}
|
|
2150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFiltersProviderService, decorators: [{
|
|
2151
|
+
type: Injectable,
|
|
2152
|
+
args: [{
|
|
2153
|
+
providedIn: 'root',
|
|
2154
|
+
}]
|
|
2155
|
+
}] });
|
|
2156
|
+
|
|
2157
|
+
const AXP_FILE_TYPE_INFO_PROVIDER = new InjectionToken('AXP_FILE_TYPE_INFO_PROVIDER');
|
|
2158
|
+
class AXPFileTypeProviderService {
|
|
2159
|
+
constructor() {
|
|
2160
|
+
this.providers = inject(AXP_FILE_TYPE_INFO_PROVIDER, { optional: true });
|
|
2161
|
+
}
|
|
2162
|
+
async items() {
|
|
2163
|
+
const items = [];
|
|
2164
|
+
if (Array.isArray(this.providers)) {
|
|
2165
|
+
for (const provider of this.providers) {
|
|
2166
|
+
items.push(...(await provider.items()));
|
|
2167
|
+
}
|
|
2168
|
+
}
|
|
2169
|
+
return items;
|
|
2170
|
+
}
|
|
2171
|
+
async get(name) {
|
|
2172
|
+
return (await this.items()).find((c) => c.name == name);
|
|
2173
|
+
}
|
|
2174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileTypeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2175
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileTypeProviderService, providedIn: 'root' }); }
|
|
2176
|
+
}
|
|
2177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileTypeProviderService, decorators: [{
|
|
2178
|
+
type: Injectable,
|
|
2179
|
+
args: [{ providedIn: 'root' }]
|
|
2180
|
+
}] });
|
|
2181
|
+
|
|
2182
|
+
class AXPClipBoardService {
|
|
2183
|
+
constructor() {
|
|
2184
|
+
this.toast = inject(AXToastService);
|
|
2185
|
+
}
|
|
2186
|
+
copy(title, value) {
|
|
2187
|
+
const copyText = document.createElement('input');
|
|
2188
|
+
copyText.type = 'text';
|
|
2189
|
+
copyText.select();
|
|
2190
|
+
copyText.setSelectionRange(0, 99999); // For mobile devices
|
|
2191
|
+
copyText.remove();
|
|
2192
|
+
navigator.clipboard.writeText(value);
|
|
2193
|
+
this.toast.success(`${title} copied!`);
|
|
2194
|
+
}
|
|
2195
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPClipBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2196
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPClipBoardService, providedIn: 'root' }); }
|
|
2197
|
+
}
|
|
2198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPClipBoardService, decorators: [{
|
|
2199
|
+
type: Injectable,
|
|
2200
|
+
args: [{
|
|
2201
|
+
providedIn: 'root',
|
|
2202
|
+
}]
|
|
2203
|
+
}] });
|
|
2204
|
+
|
|
2205
|
+
class AXPDataGenerator {
|
|
2206
|
+
static uuid() {
|
|
2207
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {
|
|
2208
|
+
const random = (Math.random() * 16) | 0;
|
|
2209
|
+
const value = char === 'x' ? random : (random & 0x3) | 0x8;
|
|
2210
|
+
return value.toString(16);
|
|
2211
|
+
});
|
|
2212
|
+
}
|
|
2213
|
+
static number(...args) {
|
|
2214
|
+
let min = 0;
|
|
2215
|
+
let max = 100;
|
|
2216
|
+
if (args.length == 1)
|
|
2217
|
+
max = args[0];
|
|
2218
|
+
if (args.length == 2) {
|
|
2219
|
+
min = args[0];
|
|
2220
|
+
max = args[1];
|
|
2221
|
+
}
|
|
2222
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
2223
|
+
}
|
|
2224
|
+
static date(...args) {
|
|
2225
|
+
let start = new Date(2000, 0, 1);
|
|
2226
|
+
let end = new Date();
|
|
2227
|
+
if (args.length === 1) {
|
|
2228
|
+
start = args[0];
|
|
2229
|
+
}
|
|
2230
|
+
else if (args.length === 2) {
|
|
2231
|
+
start = args[0];
|
|
2232
|
+
end = args[1];
|
|
2233
|
+
}
|
|
2234
|
+
const startTime = start.getTime();
|
|
2235
|
+
const endTime = end.getTime();
|
|
2236
|
+
return new Date(startTime + Math.random() * (endTime - startTime));
|
|
2237
|
+
}
|
|
2238
|
+
static array(length = 5, generator) {
|
|
2239
|
+
return Array.from({ length }, generator);
|
|
2240
|
+
}
|
|
2241
|
+
static pick(...args) {
|
|
2242
|
+
if (args.length < 1) {
|
|
2243
|
+
throw new Error('Invalid parameters');
|
|
2244
|
+
}
|
|
2245
|
+
const items = args[0];
|
|
2246
|
+
const count = args[1] ?? 1;
|
|
2247
|
+
if (count < 1) {
|
|
2248
|
+
throw new Error('Count must be at least 1');
|
|
2249
|
+
}
|
|
2250
|
+
// If the count is greater than the number of items, just return a shuffled copy of the array
|
|
2251
|
+
if (count >= items.length) {
|
|
2252
|
+
return [...items].sort(() => Math.random() - 0.5);
|
|
2253
|
+
}
|
|
2254
|
+
// Shuffle the array and slice the first 'count' elements
|
|
2255
|
+
const shuffled = items.slice();
|
|
2256
|
+
for (let i = shuffled.length - 1; i > 0; i--) {
|
|
2257
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
2258
|
+
[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements
|
|
2259
|
+
}
|
|
2260
|
+
return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);
|
|
2261
|
+
}
|
|
2262
|
+
static string(length = 10) {
|
|
2263
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
2264
|
+
return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
|
|
2265
|
+
}
|
|
2266
|
+
static boolean() {
|
|
2267
|
+
return Math.random() >= 0.5;
|
|
2268
|
+
}
|
|
2269
|
+
static item(array = []) {
|
|
2270
|
+
return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;
|
|
2271
|
+
}
|
|
2272
|
+
static color() {
|
|
2273
|
+
const color = Math.floor(Math.random() * 16777215).toString(16);
|
|
2274
|
+
return `#${color.padStart(6, '0')}`;
|
|
2275
|
+
}
|
|
2276
|
+
static alphanumeric(length = 10) {
|
|
2277
|
+
const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
|
|
2278
|
+
return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
|
|
2279
|
+
}
|
|
2280
|
+
static alphabet(length = 10) {
|
|
2281
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
|
|
2282
|
+
return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
|
|
2283
|
+
}
|
|
2284
|
+
static phone() {
|
|
2285
|
+
const areaCode = this.number(100, 999);
|
|
2286
|
+
const exchangeCode = this.number(100, 999);
|
|
2287
|
+
const lineNumber = this.number(1000, 9999);
|
|
2288
|
+
return `${areaCode}-${exchangeCode}-${lineNumber}`;
|
|
2289
|
+
}
|
|
2290
|
+
static firstName() {
|
|
2291
|
+
const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];
|
|
2292
|
+
return this.pick(firstNames);
|
|
2293
|
+
}
|
|
2294
|
+
static lastName() {
|
|
2295
|
+
const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];
|
|
2296
|
+
return this.pick(lastNames);
|
|
2297
|
+
}
|
|
2298
|
+
static email(...args) {
|
|
2299
|
+
const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];
|
|
2300
|
+
const domain = this.pick(domains);
|
|
2301
|
+
const separator = this.pick(['.', '_', '']);
|
|
2302
|
+
const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';
|
|
2303
|
+
if (args.length === 2) {
|
|
2304
|
+
const firstName = args[0].toLowerCase();
|
|
2305
|
+
const lastName = args[1].toLowerCase();
|
|
2306
|
+
return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;
|
|
2307
|
+
}
|
|
2308
|
+
else {
|
|
2309
|
+
const firstName = this.firstName().toLowerCase();
|
|
2310
|
+
const lastName = this.lastName().toLowerCase();
|
|
2311
|
+
return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;
|
|
2312
|
+
}
|
|
2313
|
+
}
|
|
2314
|
+
static country() {
|
|
2315
|
+
const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];
|
|
2316
|
+
return this.pick(countries);
|
|
2317
|
+
}
|
|
2318
|
+
static city() {
|
|
2319
|
+
const cities = ['New York', 'Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];
|
|
2320
|
+
return this.pick(cities);
|
|
2321
|
+
}
|
|
2322
|
+
static state() {
|
|
2323
|
+
const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];
|
|
2324
|
+
return this.pick(states);
|
|
2325
|
+
}
|
|
2326
|
+
static address() {
|
|
2327
|
+
const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];
|
|
2328
|
+
const streetNumber = this.number(100, 9999);
|
|
2329
|
+
const street = this.pick(streets);
|
|
2330
|
+
const city = this.city();
|
|
2331
|
+
const state = this.state();
|
|
2332
|
+
const zip = this.number(10000, 99999);
|
|
2333
|
+
const country = this.country();
|
|
2334
|
+
return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;
|
|
2335
|
+
}
|
|
2764
2336
|
}
|
|
2765
2337
|
|
|
2766
|
-
|
|
2338
|
+
class AXMOrgChartPrintPage extends AXBasePageComponent {
|
|
2339
|
+
constructor() {
|
|
2340
|
+
super(...arguments);
|
|
2341
|
+
this.ratio = signal(false);
|
|
2342
|
+
this.baseWidth = signal(undefined);
|
|
2343
|
+
this.baseHeight = signal(undefined);
|
|
2344
|
+
this.bgcolor = model();
|
|
2345
|
+
this.width = model();
|
|
2346
|
+
this.height = model();
|
|
2347
|
+
this.quality = model();
|
|
2348
|
+
this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100);
|
|
2349
|
+
this.scale = model();
|
|
2350
|
+
this.#init = afterNextRender(() => {
|
|
2351
|
+
this.bgcolor.set(this.data.bgcolor);
|
|
2352
|
+
this.width.set(this.data.width);
|
|
2353
|
+
this.baseWidth.set(this.data.width);
|
|
2354
|
+
this.height.set(this.data.height);
|
|
2355
|
+
this.baseHeight.set(this.data.height);
|
|
2356
|
+
this.quality.set(this.data.quality);
|
|
2357
|
+
this.scale.set(this.data.scale);
|
|
2358
|
+
});
|
|
2359
|
+
}
|
|
2360
|
+
#init;
|
|
2361
|
+
calculateRatio(event, type) {
|
|
2362
|
+
if (!this.ratio() || !event.isUserInteraction)
|
|
2363
|
+
return;
|
|
2364
|
+
const value = event.value;
|
|
2365
|
+
if (type === 'width') {
|
|
2366
|
+
const newHeight = Math.round((value / this.baseWidth()) * this.baseHeight() * 100) / 100;
|
|
2367
|
+
this.height.set(newHeight);
|
|
2368
|
+
this.width.set(value);
|
|
2369
|
+
}
|
|
2370
|
+
else {
|
|
2371
|
+
const newWidth = Math.round((value / this.baseHeight()) * this.baseWidth() * 100) / 100;
|
|
2372
|
+
this.width.set(newWidth);
|
|
2373
|
+
this.height.set(value);
|
|
2374
|
+
}
|
|
2375
|
+
}
|
|
2376
|
+
async handleClose(isCanceled = false) {
|
|
2377
|
+
this.close({
|
|
2378
|
+
bgcolor: this.bgcolor(),
|
|
2379
|
+
width: this.width(),
|
|
2380
|
+
height: this.height(),
|
|
2381
|
+
quality: this.qualityComputed() / 100,
|
|
2382
|
+
scale: this.scale(),
|
|
2383
|
+
isCanceled,
|
|
2384
|
+
});
|
|
2385
|
+
}
|
|
2386
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2387
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXMOrgChartPrintPage, isStandalone: true, selector: "ng-component", inputs: { bgcolor: { classPropertyName: "bgcolor", publicName: "bgcolor", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: "quality", publicName: "quality", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bgcolor: "bgcolorChange", width: "widthChange", height: "heightChange", quality: "qualityChange", scale: "scaleChange" }, usesInheritance: true, ngImport: i0, template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
2388
|
+
<ax-label>Resolution (px)</ax-label>
|
|
2389
|
+
<div class="ax-flex ax-gap-2 ax-items-center">
|
|
2390
|
+
<ax-number-box
|
|
2391
|
+
[changeOnScroll]="true"
|
|
2392
|
+
[decimals]="4"
|
|
2393
|
+
[value]="width()"
|
|
2394
|
+
(onValueChanged)="calculateRatio($event, 'width')"
|
|
2395
|
+
name="Width"
|
|
2396
|
+
>
|
|
2397
|
+
</ax-number-box>
|
|
2398
|
+
<ax-button [toggleable]="true" [(selected)]="ratio"
|
|
2399
|
+
><ax-icon><i class="fa-solid fa-vector-square"></i></ax-icon
|
|
2400
|
+
></ax-button>
|
|
2401
|
+
<ax-number-box
|
|
2402
|
+
[changeOnScroll]="true"
|
|
2403
|
+
[decimals]="4"
|
|
2404
|
+
[value]="height()"
|
|
2405
|
+
(onValueChanged)="calculateRatio($event, 'height')"
|
|
2406
|
+
name="Height"
|
|
2407
|
+
>
|
|
2408
|
+
</ax-number-box>
|
|
2409
|
+
</div>
|
|
2767
2410
|
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService }); }
|
|
2771
|
-
}
|
|
2772
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileStorageService, decorators: [{
|
|
2773
|
-
type: Injectable
|
|
2774
|
-
}] });
|
|
2411
|
+
<ax-label>Background color</ax-label>
|
|
2412
|
+
<ax-color-box [(ngModel)]="bgcolor"></ax-color-box>
|
|
2775
2413
|
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2414
|
+
<ax-label>Quality of image (50-100%)</ax-label>
|
|
2415
|
+
<ax-number-box
|
|
2416
|
+
[changeOnScroll]="true"
|
|
2417
|
+
[minValue]="50"
|
|
2418
|
+
[maxValue]="100"
|
|
2419
|
+
[(ngModel)]="qualityComputed"
|
|
2420
|
+
name="Quality"
|
|
2421
|
+
>
|
|
2422
|
+
</ax-number-box>
|
|
2784
2423
|
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2424
|
+
<ax-label>Scale</ax-label>
|
|
2425
|
+
<ax-number-box [changeOnScroll]="true" [minValue]="1" [(ngModel)]="scale" name="scale"> </ax-number-box>
|
|
2426
|
+
</div>
|
|
2427
|
+
|
|
2428
|
+
<ax-footer>
|
|
2429
|
+
<ax-prefix>
|
|
2430
|
+
</ax-prefix>
|
|
2431
|
+
<ax-suffix>
|
|
2432
|
+
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
|
2433
|
+
<ax-button text="Print" look="solid" color="primary" (onClick)="handleClose()">
|
|
2434
|
+
<ax-icon class="fa-solid fa-print"> </ax-icon>
|
|
2435
|
+
</ax-button>
|
|
2436
|
+
</ax-suffix>
|
|
2437
|
+
</ax-footer>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i2$1.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i6.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }] }); }
|
|
2794
2438
|
}
|
|
2795
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
2796
|
-
type:
|
|
2439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{
|
|
2440
|
+
type: Component,
|
|
2797
2441
|
args: [{
|
|
2798
|
-
|
|
2442
|
+
template: ` <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
|
2443
|
+
<ax-label>Resolution (px)</ax-label>
|
|
2444
|
+
<div class="ax-flex ax-gap-2 ax-items-center">
|
|
2445
|
+
<ax-number-box
|
|
2446
|
+
[changeOnScroll]="true"
|
|
2447
|
+
[decimals]="4"
|
|
2448
|
+
[value]="width()"
|
|
2449
|
+
(onValueChanged)="calculateRatio($event, 'width')"
|
|
2450
|
+
name="Width"
|
|
2451
|
+
>
|
|
2452
|
+
</ax-number-box>
|
|
2453
|
+
<ax-button [toggleable]="true" [(selected)]="ratio"
|
|
2454
|
+
><ax-icon><i class="fa-solid fa-vector-square"></i></ax-icon
|
|
2455
|
+
></ax-button>
|
|
2456
|
+
<ax-number-box
|
|
2457
|
+
[changeOnScroll]="true"
|
|
2458
|
+
[decimals]="4"
|
|
2459
|
+
[value]="height()"
|
|
2460
|
+
(onValueChanged)="calculateRatio($event, 'height')"
|
|
2461
|
+
name="Height"
|
|
2462
|
+
>
|
|
2463
|
+
</ax-number-box>
|
|
2464
|
+
</div>
|
|
2465
|
+
|
|
2466
|
+
<ax-label>Background color</ax-label>
|
|
2467
|
+
<ax-color-box [(ngModel)]="bgcolor"></ax-color-box>
|
|
2468
|
+
|
|
2469
|
+
<ax-label>Quality of image (50-100%)</ax-label>
|
|
2470
|
+
<ax-number-box
|
|
2471
|
+
[changeOnScroll]="true"
|
|
2472
|
+
[minValue]="50"
|
|
2473
|
+
[maxValue]="100"
|
|
2474
|
+
[(ngModel)]="qualityComputed"
|
|
2475
|
+
name="Quality"
|
|
2476
|
+
>
|
|
2477
|
+
</ax-number-box>
|
|
2478
|
+
|
|
2479
|
+
<ax-label>Scale</ax-label>
|
|
2480
|
+
<ax-number-box [changeOnScroll]="true" [minValue]="1" [(ngModel)]="scale" name="scale"> </ax-number-box>
|
|
2481
|
+
</div>
|
|
2482
|
+
|
|
2483
|
+
<ax-footer>
|
|
2484
|
+
<ax-prefix>
|
|
2485
|
+
</ax-prefix>
|
|
2486
|
+
<ax-suffix>
|
|
2487
|
+
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
|
2488
|
+
<ax-button text="Print" look="solid" color="primary" (onClick)="handleClose()">
|
|
2489
|
+
<ax-icon class="fa-solid fa-print"> </ax-icon>
|
|
2490
|
+
</ax-button>
|
|
2491
|
+
</ax-suffix>
|
|
2492
|
+
</ax-footer>`,
|
|
2493
|
+
imports: [
|
|
2494
|
+
FormsModule,
|
|
2495
|
+
AXCheckBoxModule,
|
|
2496
|
+
AXNumberBoxModule,
|
|
2497
|
+
AXTextBoxModule,
|
|
2498
|
+
AXLabelModule,
|
|
2499
|
+
AXDecoratorModule,
|
|
2500
|
+
AXButtonModule,
|
|
2501
|
+
AXColorBoxModule,
|
|
2502
|
+
],
|
|
2799
2503
|
}]
|
|
2800
2504
|
}] });
|
|
2801
2505
|
|
|
2802
|
-
|
|
2803
|
-
class
|
|
2506
|
+
// AXPPdfService
|
|
2507
|
+
class AXPExportService {
|
|
2804
2508
|
constructor() {
|
|
2805
|
-
this.
|
|
2509
|
+
this.popupService = inject(AXPopupService);
|
|
2806
2510
|
}
|
|
2807
|
-
async
|
|
2808
|
-
const
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2511
|
+
async generateBlobFromElement(element, blobOptions) {
|
|
2512
|
+
const domtoimage = (await import('dom-to-image')).default;
|
|
2513
|
+
const originalWidth = element.scrollWidth;
|
|
2514
|
+
const originalHeight = element.scrollHeight;
|
|
2515
|
+
let popup, options = {}, newOptions = {};
|
|
2516
|
+
if (blobOptions) {
|
|
2517
|
+
({ popup, ...options } = blobOptions);
|
|
2518
|
+
}
|
|
2519
|
+
if (popup) {
|
|
2520
|
+
const result = await this.popupService.open(AXMOrgChartPrintPage, {
|
|
2521
|
+
header: true,
|
|
2522
|
+
size: 'fit',
|
|
2523
|
+
draggable: true,
|
|
2524
|
+
hasBackdrop: true,
|
|
2525
|
+
title: 'Export Options',
|
|
2526
|
+
data: { data: options },
|
|
2527
|
+
});
|
|
2528
|
+
if (result.data.isCanceled) {
|
|
2529
|
+
throw new Error('Process is Canceled by User!');
|
|
2530
|
+
}
|
|
2531
|
+
else {
|
|
2532
|
+
newOptions = { ...options, ...result.data };
|
|
2812
2533
|
}
|
|
2813
2534
|
}
|
|
2814
|
-
return
|
|
2535
|
+
return domtoimage.toBlob(element, {
|
|
2536
|
+
...newOptions,
|
|
2537
|
+
width: (newOptions.width ?? originalWidth) * (newOptions?.scale ?? 1),
|
|
2538
|
+
height: (newOptions.height ?? originalHeight) * (newOptions?.scale ?? 1),
|
|
2539
|
+
style: {
|
|
2540
|
+
transform: `scale(${newOptions?.scale ?? 1})`,
|
|
2541
|
+
transformOrigin: 'top left',
|
|
2542
|
+
},
|
|
2543
|
+
});
|
|
2815
2544
|
}
|
|
2816
|
-
|
|
2817
|
-
|
|
2545
|
+
download(blob, filename) {
|
|
2546
|
+
const link = document.createElement('a');
|
|
2547
|
+
link.href = URL.createObjectURL(blob);
|
|
2548
|
+
link.download = filename;
|
|
2549
|
+
document.body.appendChild(link);
|
|
2550
|
+
link.click();
|
|
2551
|
+
document.body.removeChild(link);
|
|
2552
|
+
URL.revokeObjectURL(link.href);
|
|
2818
2553
|
}
|
|
2819
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
2820
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
2554
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2555
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }
|
|
2821
2556
|
}
|
|
2822
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
2557
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPExportService, decorators: [{
|
|
2823
2558
|
type: Injectable,
|
|
2824
|
-
args: [{
|
|
2559
|
+
args: [{
|
|
2560
|
+
providedIn: 'root',
|
|
2561
|
+
}]
|
|
2825
2562
|
}] });
|
|
2826
2563
|
|
|
2827
|
-
|
|
2828
|
-
|
|
2564
|
+
class AXPRegionalService {
|
|
2565
|
+
}
|
|
2829
2566
|
|
|
2830
2567
|
/**
|
|
2831
2568
|
* Generated bundle index. Do not edit.
|
|
2832
2569
|
*/
|
|
2833
2570
|
|
|
2834
|
-
export { ALL_DEFAULT_OPERATORS,
|
|
2571
|
+
export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppStartUpProvider, AXPAppStartUpService, AXPClipBoardService, AXPCommonModule, AXPComponentLogoConfig, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataGenerator, AXPDataProvider, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFiltersProviderService, AXPFontIconLogoConfig, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPGridLayoutDirective, AXPImageUrlLogoConfig, AXPLogoComponent, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalService, AXPRelationshipCardinality, AXPRelationshipKind, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValueProvider, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingScope, AXPSettingService, AXPStickyDirective, AXPTextLogoConfig, AXPToastAction, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, configPlatform, createAllQueryView, createQueryView, getEntityInfo, resolveActionLook };
|
|
2835
2572
|
//# sourceMappingURL=acorex-platform-common.mjs.map
|