@acorex/platform 19.2.17 → 19.2.20

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 (92) hide show
  1. package/common/lib/search/search-definition.builder.d.ts +0 -1
  2. package/common/lib/search/search.types.d.ts +12 -0
  3. package/common/lib/utils/filter-cleaner.d.ts +2 -0
  4. package/common/lib/utils/index.d.ts +1 -0
  5. package/core/lib/directives/dbl-click.directive.d.ts +11 -0
  6. package/core/lib/directives/index.d.ts +1 -0
  7. package/core/lib/types.d.ts +15 -0
  8. package/fesm2022/acorex-platform-common.mjs +25 -9
  9. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-core.mjs +41 -2
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-designer.mjs +8 -8
  13. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-entity.mjs +105 -96
  15. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-search.mjs +33 -11
  17. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  18. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-pcNF_wd0.mjs → acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs} +3 -3
  19. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-pcNF_wd0.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs.map} +1 -1
  20. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DbHEBpPW.mjs → acorex-platform-themes-default-entity-master-list-view.component-BYUOmONk.mjs} +20 -60
  21. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BYUOmONk.mjs.map +1 -0
  22. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DOPzt7dM.mjs → acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs} +3 -3
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DOPzt7dM.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs.map} +1 -1
  24. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-9U774Tr7.mjs +135 -0
  25. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-9U774Tr7.mjs.map +1 -0
  26. package/fesm2022/{acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs → acorex-platform-themes-default-error-401.component-Ycz5LYvk.mjs} +2 -2
  27. package/fesm2022/{acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs.map → acorex-platform-themes-default-error-401.component-Ycz5LYvk.mjs.map} +1 -1
  28. package/fesm2022/{acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs → acorex-platform-themes-default-error-404.component-DvVSMoRS.mjs} +2 -2
  29. package/fesm2022/{acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs.map → acorex-platform-themes-default-error-404.component-DvVSMoRS.mjs.map} +1 -1
  30. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs → acorex-platform-themes-default-error-offline.component-DU6dstng.mjs} +2 -2
  31. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs.map → acorex-platform-themes-default-error-offline.component-DU6dstng.mjs.map} +1 -1
  32. package/fesm2022/acorex-platform-themes-default-search-popup.component-BY3oQqbr.mjs +128 -0
  33. package/fesm2022/acorex-platform-themes-default-search-popup.component-BY3oQqbr.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-themes-default-setting-page.component-_IStMWcu.mjs +74 -0
  35. package/fesm2022/acorex-platform-themes-default-setting-page.component-_IStMWcu.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs → acorex-platform-themes-default-setting-view.component-CeHpcfsc.mjs} +2 -2
  37. package/fesm2022/{acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs.map → acorex-platform-themes-default-setting-view.component-CeHpcfsc.mjs.map} +1 -1
  38. package/fesm2022/{acorex-platform-themes-default-theme-palette-preview.page-DiDSZx-u.mjs → acorex-platform-themes-default-theme-palette-preview.page-D_EkB2k8.mjs} +4 -4
  39. package/fesm2022/{acorex-platform-themes-default-theme-palette-preview.page-DiDSZx-u.mjs.map → acorex-platform-themes-default-theme-palette-preview.page-D_EkB2k8.mjs.map} +1 -1
  40. package/fesm2022/acorex-platform-themes-default.mjs +189 -42
  41. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  42. package/fesm2022/acorex-platform-themes-shared.mjs +15 -88
  43. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  44. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BLUSF9_9.mjs → acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs} +2 -2
  45. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BLUSF9_9.mjs.map → acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs.map} +1 -1
  46. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DIbfD0SV.mjs → acorex-platform-widgets-rich-text-popup.component-CXLjPrFq.mjs} +2 -2
  47. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DIbfD0SV.mjs.map → acorex-platform-widgets-rich-text-popup.component-CXLjPrFq.mjs.map} +1 -1
  48. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-C5FtQN9y.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs} +2 -2
  49. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-C5FtQN9y.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs.map} +1 -1
  50. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-DFopYaFk.mjs → acorex-platform-widgets-tabular-data-view-popup.component-BiO5M_eY.mjs} +2 -2
  51. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-DFopYaFk.mjs.map → acorex-platform-widgets-tabular-data-view-popup.component-BiO5M_eY.mjs.map} +1 -1
  52. package/fesm2022/acorex-platform-widgets.mjs +1174 -269
  53. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  54. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -2
  55. package/layout/entity/lib/entity-storage-service.d.ts +4 -0
  56. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +1 -0
  57. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +2 -1
  58. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +3 -1
  59. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +4 -0
  60. package/layout/search/lib/search.viewmodel.d.ts +2 -0
  61. package/package.json +5 -5
  62. package/themes/default/lib/layouts/base/base-page.component.d.ts +100 -0
  63. package/themes/default/lib/layouts/base/base-page.types.d.ts +16 -0
  64. package/themes/default/lib/layouts/base/index.d.ts +3 -0
  65. package/themes/default/lib/layouts/base/page-layout/index.d.ts +1 -0
  66. package/themes/default/lib/layouts/base/{simple-page/simple-page.component.d.ts → page-layout/page-layout.component.d.ts} +9 -6
  67. package/themes/default/lib/layouts/base/simple-page/index.d.ts +0 -1
  68. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +2 -0
  69. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +3 -3
  70. package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +1 -0
  71. package/themes/shared/index.d.ts +0 -1
  72. package/themes/shared/lib/components/layout-elements/layout-actions.component.d.ts +1 -1
  73. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +1 -1
  74. package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +13 -0
  75. package/widgets/lib/widgets/advance/gallery/index.d.ts +2 -1
  76. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +5 -0
  77. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget-edit.component.d.ts +32 -2
  78. package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +15 -0
  79. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget-edit.component.d.ts +16 -3
  80. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +1 -1
  81. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget-edit.component.d.ts +2 -2
  82. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
  83. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DbHEBpPW.mjs.map +0 -1
  84. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CjX7NZpi.mjs +0 -130
  85. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CjX7NZpi.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-search-popup.component-BXWbI4Ei.mjs +0 -127
  87. package/fesm2022/acorex-platform-themes-default-search-popup.component-BXWbI4Ei.mjs.map +0 -1
  88. package/fesm2022/acorex-platform-themes-default-setting-page.component-BQRGixPo.mjs +0 -74
  89. package/fesm2022/acorex-platform-themes-default-setting-page.component-BQRGixPo.mjs.map +0 -1
  90. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-filters/list-view-option-filters.component.d.ts +0 -14
  91. package/themes/shared/lib/components/drawer/drawer.directive.d.ts +0 -22
  92. package/themes/shared/lib/components/drawer/index.d.ts +0 -1
@@ -1,7 +1,7 @@
1
1
  import { applySortArray, applyFilterArray, AXPExpressionEvaluatorService } from '@acorex/platform/core';
2
2
  import Dexie from 'dexie';
3
3
  import * as i1$4 from '@acorex/platform/common';
4
- import { AXPDataGenerator, resolveActionLook, AXPFilterOperatorMiddlewareService, AXPEntityCommandScope, getEntityInfo, AXPSettingService, AXPRefreshEvent, AXPSettingScope, AXPWorkflowNavigateAction, AXPToastAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';
4
+ import { AXPDataGenerator, resolveActionLook, AXPFilterOperatorMiddlewareService, AXPEntityCommandScope, getEntityInfo, AXPSettingService, AXPRefreshEvent, AXPSettingScope, AXPCleanNestedFilters, AXPWorkflowNavigateAction, AXPToastAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';
5
5
  import * as i0 from '@angular/core';
6
6
  import { InjectionToken, inject, Injectable, computed, signal, Injector, effect, HostBinding, ChangeDetectionStrategy, Component, DestroyRef, ViewChild, NgModule } from '@angular/core';
7
7
  import * as i2 from '@acorex/components/common';
@@ -1131,7 +1131,7 @@ class AXPEntityMasterListViewModel {
1131
1131
  this.inlineFilters.filters?.length && this.inlineFilters,
1132
1132
  this.simpleFilters().filters?.length && this.simpleFilters(),
1133
1133
  ].filter(Boolean);
1134
- const cleanedAllFilters = this.cleanNestedFilters(allFilters);
1134
+ const cleanedAllFilters = AXPCleanNestedFilters(allFilters);
1135
1135
  this.lastFiltersApplied.set(this.simpleFilters());
1136
1136
  this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({
1137
1137
  field: null,
@@ -1141,28 +1141,6 @@ class AXPEntityMasterListViewModel {
1141
1141
  }));
1142
1142
  this.dataSource.refresh();
1143
1143
  }
1144
- cleanNestedFilters(filters) {
1145
- return filters
1146
- .map((filter) => {
1147
- if (!filter)
1148
- return undefined;
1149
- if (filter.filters?.length) {
1150
- const cleanedNestedFilters = this.cleanNestedFilters(filter.filters);
1151
- if (!filter.field && !filter.operator && cleanedNestedFilters.length === 0) {
1152
- return undefined;
1153
- }
1154
- return {
1155
- ...filter,
1156
- filters: cleanedNestedFilters.filter(Boolean),
1157
- };
1158
- }
1159
- if (!filter.value || filter.value === 'unknown') {
1160
- return undefined;
1161
- }
1162
- return filter;
1163
- })
1164
- .filter(Boolean);
1165
- }
1166
1144
  resetColumns() {
1167
1145
  this.applyViewColumns();
1168
1146
  }
@@ -1275,25 +1253,42 @@ class AXPEntityPerformDeleteAction extends AXPWorkflowAction {
1275
1253
  }
1276
1254
  async execute(context) {
1277
1255
  const moduleEntity = context.getVariable('entity');
1278
- const [moduleName, entityName] = moduleEntity.split('.');
1279
1256
  const data = context.getVariable('data');
1280
1257
  const meta = context.getVariable('meta');
1281
1258
  const options = context.getVariable('options');
1282
1259
  const process = options?.['process'];
1283
1260
  const showResult = process?.showResult ?? true;
1284
- const ids = Array.isArray(data) ? data.map((c) => c.id) : [data.id];
1285
- const entity = await this.entityRegistery.resolve(moduleName, entityName);
1286
- if (entity.parentKey && data[entity.parentKey]) {
1287
- context.setVariable('meta', { ...meta, refreshTargetId: data[entity.parentKey] });
1261
+ const entities = [];
1262
+ if (moduleEntity != null) {
1263
+ const ids = Array.isArray(data) ? data.map((c) => c.id) : [data.id];
1264
+ entities.push({
1265
+ source: moduleEntity,
1266
+ ids: ids,
1267
+ });
1288
1268
  }
1269
+ else {
1270
+ const listEntities = context.getVariable('entities');
1271
+ entities.push(...listEntities);
1272
+ }
1273
+ const entityDefinitions = {};
1289
1274
  let deletedCount = 0;
1290
1275
  context.setVariable('deleteSuccessful', false);
1276
+ for await (const entity of entities) {
1277
+ const [moduleName, entityName] = entity.source.split('.');
1278
+ const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);
1279
+ if (entityDefinition.parentKey && data[entityDefinition.parentKey]) {
1280
+ context.setVariable('meta', { ...meta, refreshTargetId: data[entityDefinition.parentKey] });
1281
+ }
1282
+ entityDefinitions[entity.source] = entityDefinition;
1283
+ }
1284
+ // Compute consolidated ids from all entities
1285
+ const idLength = entities.reduce((acc, curr) => acc + curr.ids.length, 0);
1291
1286
  const dialog = this.loadingDialog.show({
1292
1287
  title: await this.translationService.translateAsync('workflow.deleting'),
1293
1288
  mode: 'determinate',
1294
1289
  status: 'Deleting...',
1295
1290
  progressValue: 0,
1296
- text: `0/${ids.length}`,
1291
+ text: `0/${idLength}`,
1297
1292
  buttons: [
1298
1293
  {
1299
1294
  text: await this.translationService.translateAsync('cancel'),
@@ -1304,68 +1299,75 @@ class AXPEntityPerformDeleteAction extends AXPWorkflowAction {
1304
1299
  },
1305
1300
  ],
1306
1301
  });
1307
- if (entity.commands?.delete != null) {
1308
- const deleteExec = entity.commands?.delete?.execute;
1309
- const wrappedPromises = ids
1310
- .map((id, i) => {
1311
- return new Promise((resolve) => {
1312
- setTimeout(() => {
1313
- resolve(deleteExec(id));
1314
- }, i * 200);
1315
- });
1316
- })
1317
- .map((p) => p?.then((value) => {
1318
- deletedCount++;
1319
- dialog.setProgressText(`${deletedCount}/${ids.length}`);
1320
- dialog.setProgressValue((deletedCount / ids.length) * 100);
1321
- return { status: 'fulfilled', value };
1322
- }, (reason) => ({ status: 'rejected', reason })));
1323
- const results = await Promise.all(wrappedPromises);
1324
- const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;
1325
- const failedPromises = results.filter((result) => result?.status === 'rejected').length;
1326
- setTimeout(() => {
1327
- dialog.close();
1328
- }, 300);
1329
- // Handle different scenarios for alerts
1330
- if (successfulPromises > 0 && failedPromises === 0) {
1331
- // All items deleted successfully
1332
- if (showResult) {
1333
- await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-delete-title'), await this.translationService.translateAsync('workflow.success-delete-body', {
1334
- params: { item: successfulPromises },
1335
- }), //TODO test translation
1336
- 'success');
1337
- }
1338
- // Dispatch actions
1339
- this.dispatch(AXPEntityDeletedEvent({ entity: moduleEntity, ids: ids, meta: meta }));
1340
- this.dispatch(AXPRefreshEvent({ entity: moduleEntity, meta: context.getVariable('meta') }));
1302
+ let allPromises = [];
1303
+ for (const entity of entities) {
1304
+ const entityDefinition = entityDefinitions[entity.source];
1305
+ if (entityDefinition.commands?.delete != null) {
1306
+ const deleteExec = entityDefinition.commands?.delete?.execute;
1307
+ const entityPromises = entity.ids
1308
+ .map((id, i) => {
1309
+ return new Promise((resolve) => {
1310
+ setTimeout(() => {
1311
+ resolve(deleteExec(id));
1312
+ }, i * 200);
1313
+ });
1314
+ })
1315
+ .map((p) => p?.then((value) => {
1316
+ deletedCount++;
1317
+ dialog.setProgressText(`${deletedCount}/${idLength}`);
1318
+ dialog.setProgressValue((deletedCount / idLength) * 100);
1319
+ return { status: 'fulfilled', value };
1320
+ }, (reason) => ({ status: 'rejected', reason })));
1321
+ allPromises = allPromises.concat(entityPromises);
1341
1322
  }
1342
- else if (successfulPromises > 0 && failedPromises > 0) {
1343
- // Some items deleted successfully, some failed
1344
- if (showResult) {
1345
- await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-partial-delete-title'), await this.translationService.translateAsync('workflow.partial-delete-body', {
1346
- params: { success: successfulPromises, fail: failedPromises },
1347
- }), 'warning');
1348
- }
1349
- // Dispatch actions
1350
- this.dispatch(AXPEntityDeletedEvent({ entity: moduleEntity, ids: ids, meta: meta }));
1323
+ else {
1324
+ throw new Error(`The delete operation cannot be performed on ${entityDefinition.title}. This action might be restricted or not applicable for the selected item.`);
1351
1325
  }
1352
- else if (successfulPromises === 0 && failedPromises > 0) {
1353
- // No items deleted, all failed
1354
- if (showResult) {
1355
- await this.dialogService.alert(await this.translationService.translateAsync('workflow.fail-delete-title'), await this.translationService.translateAsync('workflow.fail-delete-body', {
1356
- params: { item: failedPromises },
1357
- }), 'danger');
1358
- }
1326
+ }
1327
+ const results = await Promise.all(allPromises);
1328
+ const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;
1329
+ const failedPromises = results.filter((result) => result?.status === 'rejected').length;
1330
+ setTimeout(() => {
1331
+ dialog.close();
1332
+ }, 300);
1333
+ // Store the last entity for use in event dispatching
1334
+ const lastEntity = entities[entities.length - 1];
1335
+ // Handle different scenarios for alerts
1336
+ if (successfulPromises > 0 && failedPromises === 0) {
1337
+ // All items deleted successfully
1338
+ if (showResult) {
1339
+ await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-delete-title'), await this.translationService.translateAsync('workflow.success-delete-body', {
1340
+ params: { item: successfulPromises },
1341
+ }), //TODO test translation
1342
+ 'success');
1359
1343
  }
1360
- else {
1361
- // No items to delete (no successful or failed promises)
1362
- if (showResult) {
1363
- await this.dialogService.alert(await this.translationService.translateAsync('workflow.no-need'), await this.translationService.translateAsync('workflow.no-item'), 'primary');
1364
- }
1344
+ // Dispatch actions
1345
+ this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));
1346
+ this.dispatch(AXPRefreshEvent({ entity: lastEntity.source, meta: context.getVariable('meta') }));
1347
+ }
1348
+ else if (successfulPromises > 0 && failedPromises > 0) {
1349
+ // Some items deleted successfully, some failed
1350
+ if (showResult) {
1351
+ await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-partial-delete-title'), await this.translationService.translateAsync('workflow.partial-delete-body', {
1352
+ params: { success: successfulPromises, fail: failedPromises },
1353
+ }), 'warning');
1354
+ }
1355
+ // Dispatch actions
1356
+ this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));
1357
+ }
1358
+ else if (successfulPromises === 0 && failedPromises > 0) {
1359
+ // No items deleted, all failed
1360
+ if (showResult) {
1361
+ await this.dialogService.alert(await this.translationService.translateAsync('workflow.fail-delete-title'), await this.translationService.translateAsync('workflow.fail-delete-body', {
1362
+ params: { item: failedPromises },
1363
+ }), 'danger');
1365
1364
  }
1366
1365
  }
1367
1366
  else {
1368
- throw new Error(`The delete operation cannot be performed on ${entity.title}. This action might be restricted or not applicable for the selected item.`);
1367
+ // No items to delete (no successful or failed promises)
1368
+ if (showResult) {
1369
+ await this.dialogService.alert(await this.translationService.translateAsync('workflow.no-need'), await this.translationService.translateAsync('workflow.no-item'), 'primary');
1370
+ }
1369
1371
  }
1370
1372
  }
1371
1373
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -2047,9 +2049,6 @@ var lookupWidgetView_component = /*#__PURE__*/Object.freeze({
2047
2049
  });
2048
2050
 
2049
2051
  class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
2050
- // protected override ngOnInit(): void {
2051
- // super.ngOnInit();
2052
- // }
2053
2052
  ngAfterViewInit() {
2054
2053
  if (this.searchTerm) {
2055
2054
  this.vm.applyInlineFilter(this.searchTerm);
@@ -2152,7 +2151,7 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
2152
2151
  }
2153
2152
  </ax-suffix>
2154
2153
  </ax-footer>
2155
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.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-subtitle, 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", "onPageChanged"] }, { 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", "type"], 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", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2154
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.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", "iconOnly", "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-subtitle, 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", "onPageChanged"] }, { 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", "type"], 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", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2156
2155
  }
2157
2156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetSelectorComponent, decorators: [{
2158
2157
  type: Component,
@@ -2243,11 +2242,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2243
2242
  }] });
2244
2243
 
2245
2244
  class AXPLookupWidgetSelectorViewModel {
2246
- constructor(injector, entityDef, parentFilters = null) {
2245
+ constructor(injector, entityDef, parentFilters = null, customFilter = null) {
2247
2246
  this.injector = injector;
2248
2247
  this.entityDef = entityDef;
2249
2248
  this.parentFilters = parentFilters;
2249
+ this.customFilter = customFilter;
2250
2250
  this.workflow = this.injector.get(AXPWorkflowService);
2251
+ this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);
2251
2252
  this.dataSource = new AXDataSource({
2252
2253
  byKey: (key) => {
2253
2254
  const func = this.entityDef.queries.byKey.execute;
@@ -2317,7 +2318,7 @@ class AXPLookupWidgetSelectorViewModel {
2317
2318
  this.applyFilterAndSort();
2318
2319
  }
2319
2320
  applyFilterAndSort() {
2320
- this.dataSource.clearFilter();
2321
+ // this.dataSource.clearFilter();
2321
2322
  //
2322
2323
  //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));
2323
2324
  //
@@ -2326,6 +2327,13 @@ class AXPLookupWidgetSelectorViewModel {
2326
2327
  const hasParentFilters = (this.parentFilters?.filters?.length ?? 0) > 0;
2327
2328
  // Construct the filters array based on the presence of filters
2328
2329
  const filters = [];
2330
+ console.log(this.customFilter);
2331
+ if (this.customFilter) {
2332
+ const cleanedFilters = AXPCleanNestedFilters([this.customFilter]);
2333
+ if (cleanedFilters.length > 0) {
2334
+ filters.push(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));
2335
+ }
2336
+ }
2329
2337
  if (hasInlineFilters) {
2330
2338
  filters.push(this.inlineFilters);
2331
2339
  }
@@ -2360,6 +2368,7 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
2360
2368
  this.translateService = inject(AXTranslationService);
2361
2369
  this.expose = computed(() => this.options()['expose']);
2362
2370
  this.entity = computed(() => this.options()['entity']);
2371
+ this.customFilter = computed(() => this.options()['filter']);
2363
2372
  this.textField = computed(() => {
2364
2373
  return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');
2365
2374
  });
@@ -2421,7 +2430,7 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
2421
2430
  title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(this.entityDef()?.formats.plural ?? '')}`,
2422
2431
  size: (this.vm()?.columns().length ?? 0) > 3 ? 'lg' : 'md',
2423
2432
  data: {
2424
- vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), this.filter),
2433
+ vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), this.filter, this.customFilter()),
2425
2434
  searchTerm: this.searchTerm() == this.displayText() ? null : this.searchTerm(),
2426
2435
  },
2427
2436
  })
@@ -2535,7 +2544,7 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
2535
2544
  </ax-button>
2536
2545
  </ax-suffix>
2537
2546
  </ax-text-box>
2538
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.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$1.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-subtitle, 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 }); }
2547
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.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$1.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", "iconOnly", "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-subtitle, 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 }); }
2539
2548
  }
2540
2549
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{
2541
2550
  type: Component,
@@ -2848,7 +2857,7 @@ class AXPTagableBoxWidgetEditComponent extends AXPWidgetComponent {
2848
2857
  </ax-prefix>
2849
2858
  </ax-button>
2850
2859
  </div>
2851
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { 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-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXValidationModule }, { 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:
2860
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { 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-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type:
2852
2861
  // AXTagBoxModule,
2853
2862
  AXSelectBoxModule }, { kind: "component", type: i5$1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { 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", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2854
2863
  }
@@ -3146,7 +3155,7 @@ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
3146
3155
  <axp-widget-property-viewer [widget]="selectedWidgetNode()!" (onChanged)="handleChangeWidget($event)">
3147
3156
  </axp-widget-property-viewer>
3148
3157
  }
3149
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.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$1.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-subtitle, 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 }); }
3158
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.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$1.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", "iconOnly", "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-subtitle, 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 }); }
3150
3159
  }
3151
3160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{
3152
3161
  type: Component,