@acorex/platform 19.1.15 → 19.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/common/lib/app/app-version.provider.d.ts +10 -0
  2. package/common/lib/app/application.types.d.ts +11 -1
  3. package/common/lib/app/index.d.ts +1 -0
  4. package/common/lib/common.module.d.ts +1 -2
  5. package/common/lib/data/dexie-storage.service.d.ts +1 -1
  6. package/common/lib/data/entity-storage-service.d.ts +1 -1
  7. package/common/lib/layout/menu/menu.types.d.ts +2 -1
  8. package/fesm2022/acorex-platform-common.mjs +56 -27
  9. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +4 -4
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-designer.mjs +18 -18
  14. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-entity.mjs +63 -28
  16. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-search.mjs +21 -6
  18. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-setting.mjs +2 -1
  20. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  21. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-DpWOMxW9.mjs → acorex-platform-themes-default-entity-master-create-view.component-Yq3pzh9K.mjs} +3 -3
  22. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-DpWOMxW9.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Yq3pzh9K.mjs.map} +1 -1
  23. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DarhCaO1.mjs +369 -0
  24. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DarhCaO1.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-C1kGZwYp.mjs → acorex-platform-themes-default-entity-master-modify-view.component-CPG4i72f.mjs} +3 -3
  26. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-C1kGZwYp.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-CPG4i72f.mjs.map} +1 -1
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-CAgt5S3B.mjs → acorex-platform-themes-default-entity-master-single-view.component-Bwgawuvl.mjs} +5 -5
  28. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bwgawuvl.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-themes-default-error-401.component-CRMYVnTw.mjs → acorex-platform-themes-default-error-401.component-BPQ1z42t.mjs} +2 -2
  30. package/fesm2022/{acorex-platform-themes-default-error-401.component-CRMYVnTw.mjs.map → acorex-platform-themes-default-error-401.component-BPQ1z42t.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-themes-default-error-404.component-Dc_IGKXu.mjs → acorex-platform-themes-default-error-404.component-CGgD5C7q.mjs} +2 -2
  32. package/fesm2022/{acorex-platform-themes-default-error-404.component-Dc_IGKXu.mjs.map → acorex-platform-themes-default-error-404.component-CGgD5C7q.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-themes-default-error-offline.component-C6raiMLq.mjs → acorex-platform-themes-default-error-offline.component-CkVGS1HQ.mjs} +2 -2
  34. package/fesm2022/{acorex-platform-themes-default-error-offline.component-C6raiMLq.mjs.map → acorex-platform-themes-default-error-offline.component-CkVGS1HQ.mjs.map} +1 -1
  35. package/fesm2022/acorex-platform-themes-default-search-popup.component-ChZHzvG4.mjs +122 -0
  36. package/fesm2022/acorex-platform-themes-default-search-popup.component-ChZHzvG4.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-themes-default-setting-page.component-CGjDwlvq.mjs +74 -0
  38. package/fesm2022/acorex-platform-themes-default-setting-page.component-CGjDwlvq.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-themes-default-setting-view.component-DK9j13yV.mjs +71 -0
  40. package/fesm2022/acorex-platform-themes-default-setting-view.component-DK9j13yV.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-D7Y93deN.mjs +118 -0
  42. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-D7Y93deN.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-themes-default.mjs +47 -37
  44. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-themes-shared.mjs +6 -5
  46. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  47. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BQe1zP7P.mjs → acorex-platform-widgets-button-widget-designer.component-B53z9A_A.mjs} +2 -2
  48. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BQe1zP7P.mjs.map → acorex-platform-widgets-button-widget-designer.component-B53z9A_A.mjs.map} +1 -1
  49. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-jeZBOEhl.mjs → acorex-platform-widgets-checkbox-widget-column.component-C8NRF4BO.mjs} +9 -9
  50. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-C8NRF4BO.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-DU1niJES.mjs → acorex-platform-widgets-checkbox-widget-view.component-bf272Wuo.mjs} +9 -9
  52. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-bf272Wuo.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs → acorex-platform-widgets-color-box-widget-designer.component-CG3HEOUD.mjs} +2 -2
  54. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-CG3HEOUD.mjs.map} +1 -1
  55. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-D7LZqQIO.mjs → acorex-platform-widgets-rich-text-popup.component-CHDMlorX.mjs} +2 -2
  56. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-D7LZqQIO.mjs.map → acorex-platform-widgets-rich-text-popup.component-CHDMlorX.mjs.map} +1 -1
  57. package/fesm2022/acorex-platform-widgets.mjs +975 -591
  58. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  59. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  60. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +1 -0
  61. package/layout/entity/lib/entity-middleware.d.ts +11 -0
  62. package/layout/entity/lib/entity-registery.service.d.ts +1 -0
  63. package/package.json +11 -11
  64. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +8 -2
  65. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +5 -5
  66. package/themes/default/lib/pages/theme-palette-preview/theme-palette-preview.page.d.ts +77 -0
  67. package/themes/shared/index.d.ts +1 -0
  68. package/widgets/lib/widgets/filters/select-filter/select-filter-widget-edit.component.d.ts +0 -1
  69. package/widgets/lib/widgets/index.d.ts +1 -0
  70. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-designer.component.d.ts +17 -11
  71. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-view.component.d.ts +17 -4
  72. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-designer.component.d.ts +11 -0
  73. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-print.component.d.ts +6 -0
  74. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-view.component.d.ts +15 -0
  75. package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget.config.d.ts +7 -0
  76. package/widgets/lib/widgets/layout/advanced-grid-item/index.d.ts +4 -0
  77. package/widgets/lib/widgets/layout/grid/index.d.ts +1 -2
  78. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +1 -1
  79. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CWnQBjEa.mjs +0 -369
  80. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CWnQBjEa.mjs.map +0 -1
  81. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CAgt5S3B.mjs.map +0 -1
  82. package/fesm2022/acorex-platform-themes-default-search-popup.component-gkiSZXm-.mjs +0 -122
  83. package/fesm2022/acorex-platform-themes-default-search-popup.component-gkiSZXm-.mjs.map +0 -1
  84. package/fesm2022/acorex-platform-themes-default-setting-page.component-BXwdFLy4.mjs +0 -74
  85. package/fesm2022/acorex-platform-themes-default-setting-page.component-BXwdFLy4.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-setting-view.component-BXsmvaIi.mjs +0 -73
  87. package/fesm2022/acorex-platform-themes-default-setting-view.component-BXsmvaIi.mjs.map +0 -1
  88. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-jeZBOEhl.mjs.map +0 -1
  89. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-DU1niJES.mjs.map +0 -1
  90. package/widgets/lib/widgets/layout/grid/grid-widget-print.component.d.ts +0 -6
@@ -9,9 +9,9 @@ import * as i0 from '@angular/core';
9
9
  import { InjectionToken, inject, Injectable, computed, signal, Injector, effect, Component, ChangeDetectionStrategy, HostBinding, DestroyRef, ViewChild, NgModule } from '@angular/core';
10
10
  import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
11
11
  import { cloneDeep, set, merge, isNil, get, sortBy } from 'lodash-es';
12
- import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
13
12
  import * as i7 from '@acorex/platform/layout/builder';
14
- import { AXPWidgetRegistryService, AXPWidgetComponent, AXPLayoutBuilderModule, AXPColumnWidgetComponent, AXP_WIDGETS_EDITOR_GROUP, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
13
+ import { AXPWidgetsCatalog, AXPWidgetRegistryService, AXPWidgetComponent, AXPLayoutBuilderModule, AXPColumnWidgetComponent, AXP_WIDGETS_EDITOR_GROUP } from '@acorex/platform/layout/builder';
14
+ import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
15
15
  import { Subject, takeUntil } from 'rxjs';
16
16
  import * as i8 from '@acorex/core/translation';
17
17
  import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
@@ -138,9 +138,7 @@ class AXPEntityDetailListViewModel {
138
138
  });
139
139
  //****************** Title ******************//
140
140
  this.title = computed(() => {
141
- return (this.detailEntityConfig.title ??
142
- this.detailEntity()?.interfaces?.detail?.list?.title ??
143
- this.detailEntity()?.formats.plural);
141
+ return this.detailEntityConfig.title ?? this.detailEntity()?.interfaces?.detail?.list?.title ?? this.detailEntity()?.formats.plural;
144
142
  });
145
143
  //****************** Inline filter ******************//
146
144
  this.inlineFiltersPlaceholders = computed(() => {
@@ -155,15 +153,14 @@ class AXPEntityDetailListViewModel {
155
153
  const list = this.detailEntity()?.interfaces?.master?.list?.actions ?? [];
156
154
  return list.map((tr) => new AXPEntityCommandTriggerViewModel(this.detailEntity(), tr)) ?? [];
157
155
  });
156
+ this.selectedScopeActionsCount = computed(() => {
157
+ return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;
158
+ });
158
159
  this.primaryActions = computed(() => {
159
- return this.allActions().filter((a) => a.priority == 'primary' &&
160
- ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||
161
- (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));
160
+ return this.allActions().filter((a) => a.priority == 'primary' && ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) || (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));
162
161
  });
163
162
  this.secondaryActions = computed(() => {
164
- return this.allActions().filter((a) => a.priority == 'secondary' &&
165
- ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||
166
- (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));
163
+ return this.allActions().filter((a) => a.priority == 'secondary' && ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) || (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));
167
164
  });
168
165
  this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));
169
166
  this.secondaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'));
@@ -259,11 +256,7 @@ class AXPEntityDetailListViewModel {
259
256
  }
260
257
  //****************** Commands ******************//
261
258
  async executeCommand(commandName, data = null) {
262
- const action = this.allActions().find((c) => c.name == commandName &&
263
- ((this.selectedItems().length
264
- ? c.scope == AXPEntityCommandScope.Selected
265
- : c.scope == AXPEntityCommandScope.Individual) ||
266
- c.scope == AXPEntityCommandScope.TypeLevel));
259
+ const action = this.allActions().find((c) => c.name == commandName && ((this.selectedItems().length ? c.scope == AXPEntityCommandScope.Selected : c.scope == AXPEntityCommandScope.Individual) || c.scope == AXPEntityCommandScope.TypeLevel));
267
260
  if (action?.scope == AXPEntityCommandScope.TypeLevel) {
268
261
  if (data == null) {
269
262
  data = {};
@@ -294,19 +287,51 @@ class AXPEntityDetailListViewModel {
294
287
  }
295
288
  }
296
289
 
290
+ class AXPEntityMiddleware {
291
+ }
292
+ class AXPEntityMiddlewareImpl extends AXPEntityMiddleware {
293
+ process(entity) {
294
+ return entity;
295
+ }
296
+ processUsersEntity(entity) {
297
+ const customEntity = {
298
+ ...entity,
299
+ properties: [
300
+ ...entity.properties,
301
+ {
302
+ name: 'customProperty',
303
+ title: 'Custom Property',
304
+ schema: {
305
+ dataType: 'string',
306
+ interface: {
307
+ type: AXPWidgetsCatalog.text,
308
+ },
309
+ },
310
+ },
311
+ ],
312
+ };
313
+ return customEntity;
314
+ }
315
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityMiddlewareImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
316
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityMiddlewareImpl, providedIn: 'root' }); }
317
+ }
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityMiddlewareImpl, decorators: [{
319
+ type: Injectable,
320
+ args: [{ providedIn: 'root' }]
321
+ }] });
322
+
297
323
  class AXPEntityDefinitionRegistryService {
298
324
  constructor() {
299
325
  this.providers = inject(AXP_ENTITY_DEFINITION_LOADER);
300
326
  this.resolver = inject(AXPEntityResolver);
327
+ this.middleware = inject(AXPEntityMiddleware);
301
328
  // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.
302
329
  this.entities = new Map();
303
330
  // Entity resolver service for dynamically loading entity configurations.
304
331
  this.entityResolver = inject(AXPEntityResolver); // Assuming AXPEntityLoader is the correct type
305
332
  }
306
333
  async preload() {
307
- const providers = Array.isArray(this.providers)
308
- ? this.providers
309
- : [this.providers];
334
+ const providers = Array.isArray(this.providers) ? this.providers : [this.providers];
310
335
  const promises = [];
311
336
  providers.forEach((provider) => {
312
337
  const items = typeof provider.preload == 'function' ? provider.preload() : [];
@@ -362,7 +387,7 @@ class AXPEntityDefinitionRegistryService {
362
387
  throw new Error(`Invalid entity name: ${key}`);
363
388
  }
364
389
  }
365
- return config;
390
+ return this.middleware.process(config);
366
391
  }
367
392
  /**
368
393
  * Creates a unique key for an entity based on its module and name.
@@ -500,8 +525,10 @@ class AXPEntityMasterCreateViewModel {
500
525
  await this.workflow.execute('create-entity', {
501
526
  entity: getEntityInfo(this.entityDef).source,
502
527
  options: {
503
- redirect: false,
504
- canCreateNewOne: this.canCreateNewOne,
528
+ process: {
529
+ redirect: this.redirect(),
530
+ canCreateNewOne: this.canCreateNewOne(),
531
+ },
505
532
  },
506
533
  });
507
534
  }
@@ -618,7 +645,7 @@ class AXPEntityMasterListViewModel {
618
645
  return [
619
646
  {
620
647
  title: 'entity.home',
621
- icon: 'fa-solid fa-home ax-text-xs ax-me-2',
648
+ icon: 'fa-solid ax-text-xs ax-me-2',
622
649
  url: [`/${this.session.application?.name}`],
623
650
  },
624
651
  {
@@ -1757,7 +1784,7 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
1757
1784
  }
1758
1785
  </ax-suffix>
1759
1786
  </ax-footer>
1760
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2$1.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i5.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i7.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1787
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2$1.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i5.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i7.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1761
1788
  }
1762
1789
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetSelectorComponent, decorators: [{
1763
1790
  type: Component,
@@ -2132,7 +2159,7 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
2132
2159
  <ax-clear-button (click)="handleClearClick()"></ax-clear-button>
2133
2160
 
2134
2161
  <ax-suffix>
2135
- <ax-button color="ghost" look="twotone" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
2162
+ <ax-button color="ghost" look="blank" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
2136
2163
  @if(isLoading()) {
2137
2164
  <ax-loading></ax-loading>
2138
2165
  } @else {
@@ -2141,7 +2168,7 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
2141
2168
  </ax-button>
2142
2169
  </ax-suffix>
2143
2170
  </ax-text-box>
2144
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2171
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2145
2172
  }
2146
2173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{
2147
2174
  type: Component,
@@ -2165,7 +2192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2165
2192
  <ax-clear-button (click)="handleClearClick()"></ax-clear-button>
2166
2193
 
2167
2194
  <ax-suffix>
2168
- <ax-button color="ghost" look="twotone" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
2195
+ <ax-button color="ghost" look="blank" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
2169
2196
  @if(isLoading()) {
2170
2197
  <ax-loading></ax-loading>
2171
2198
  } @else {
@@ -2385,7 +2412,7 @@ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
2385
2412
  <axp-widget-property-viewer [widget]="selectedWidgetNode()!" (onChanged)="handleChangeWidget($event)">
2386
2413
  </axp-widget-property-viewer>
2387
2414
  }
2388
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2415
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2389
2416
  }
2390
2417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{
2391
2418
  type: Component,
@@ -2784,6 +2811,10 @@ class AXPEntityModule {
2784
2811
  useClass: AXPEntityCommandSearchDefinitionProvider,
2785
2812
  multi: true,
2786
2813
  },
2814
+ {
2815
+ provide: AXPEntityMiddleware,
2816
+ useClass: AXPEntityMiddlewareImpl,
2817
+ },
2787
2818
  ], imports: [RouterModule,
2788
2819
  AXPWorkflowModule.forChild({
2789
2820
  actions: {
@@ -2864,6 +2895,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2864
2895
  useClass: AXPEntityCommandSearchDefinitionProvider,
2865
2896
  multi: true,
2866
2897
  },
2898
+ {
2899
+ provide: AXPEntityMiddleware,
2900
+ useClass: AXPEntityMiddlewareImpl,
2901
+ },
2867
2902
  ],
2868
2903
  }]
2869
2904
  }], ctorParameters: () => [{ type: i1$3.AXPAppStartUpService }, { type: i0.Injector }] });