@acorex/platform 20.6.0-next.12 → 20.6.0-next.14

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 (32) hide show
  1. package/core/index.d.ts +106 -23
  2. package/fesm2022/acorex-platform-core.mjs +182 -3
  3. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-layout-components.mjs +175 -154
  5. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-layout-entity.mjs +71 -94
  7. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-layout-views.mjs +16 -14
  9. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-widget-core.mjs +3 -1
  11. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs +30 -0
  13. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +1 -0
  14. package/fesm2022/acorex-platform-layout-widgets.mjs +1232 -839
  15. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  16. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-xq3eQ6t2.mjs → acorex-platform-themes-default-entity-master-list-view.component-pBT9C2n8.mjs} +5 -3
  17. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-pBT9C2n8.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-themes-default.mjs +12 -10
  19. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-themes-shared.mjs +12 -107
  21. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  22. package/layout/components/index.d.ts +177 -175
  23. package/layout/designer/index.d.ts +1 -1
  24. package/layout/entity/index.d.ts +3 -66
  25. package/layout/views/index.d.ts +4 -58
  26. package/layout/widget-core/index.d.ts +20 -21
  27. package/layout/widgets/README.md +0 -1
  28. package/layout/widgets/index.d.ts +69 -48
  29. package/package.json +1 -1
  30. package/themes/default/index.d.ts +4 -71
  31. package/themes/shared/index.d.ts +1 -39
  32. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-xq3eQ6t2.mjs.map +0 -1
@@ -21,7 +21,7 @@ import { AXFormatService } from '@acorex/core/format';
21
21
  import * as i4$1 from '@acorex/platform/common';
22
22
  import { AXPFilterOperatorMiddlewareService, AXPEntityCommandScope, getEntityInfo, AXPSettingService, AXPRefreshEvent, AXPReloadEvent, AXPCommonSettings, AXPCleanNestedFilters, AXPWorkflowNavigateAction, AXPToastAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';
23
23
  import * as i1$1 from '@acorex/platform/core';
24
- import { resolveActionLook, AXPExpressionEvaluatorService, AXPDistributedEventListenerService, AXPBroadcastEventService, AXPPlatformScope, getChangedPaths, extractValue, setSmart, AXPSystemActionType } from '@acorex/platform/core';
24
+ import { resolveActionLook, AXPExpressionEvaluatorService, AXPDistributedEventListenerService, AXPBroadcastEventService, AXPPlatformScope, AXPDeviceService, getChangedPaths, extractValue, setSmart, AXPSystemActionType } from '@acorex/platform/core';
25
25
  import * as i2$3 from '@acorex/platform/workflow';
26
26
  import { AXPWorkflowService, ofType, createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
27
27
  import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
@@ -896,6 +896,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
896
896
  }]
897
897
  }] });
898
898
 
899
+ function ensureListActions(ctx) {
900
+ ctx.interfaces.update((i) => {
901
+ const next = i ?? {};
902
+ next.master = next.master ?? {};
903
+ next.master.list = next.master.list ?? { actions: [], views: [] };
904
+ next.master.list.actions = next.master.list.actions ?? [];
905
+ return next;
906
+ });
907
+ }
908
+ function actionExists(actions, commandName, name) {
909
+ if (!actions)
910
+ return false;
911
+ return actions.some((a) => {
912
+ const cmd = typeof a.command === 'object' ? a.command?.name : a.command;
913
+ if (name && a.name) {
914
+ return a.name === name;
915
+ }
916
+ return cmd === commandName;
917
+ });
918
+ }
919
+
920
+ const AXP_ENTITY_ACTION_PLUGIN = new InjectionToken('AXP_ENTITY_ACTION_PLUGIN');
921
+
899
922
  function createModifierContext(entity) {
900
923
  const ctx = {
901
924
  entity,
@@ -1105,29 +1128,6 @@ function createModifierContext(entity) {
1105
1128
 
1106
1129
  const AXP_ENTITY_MODIFIER = new InjectionToken('AXP_ENTITY_MODIFIER');
1107
1130
 
1108
- function ensureListActions(ctx) {
1109
- ctx.interfaces.update((i) => {
1110
- const next = i ?? {};
1111
- next.master = next.master ?? {};
1112
- next.master.list = next.master.list ?? { actions: [], views: [] };
1113
- next.master.list.actions = next.master.list.actions ?? [];
1114
- return next;
1115
- });
1116
- }
1117
- function actionExists(actions, commandName, name) {
1118
- if (!actions)
1119
- return false;
1120
- return actions.some((a) => {
1121
- const cmd = typeof a.command === 'object' ? a.command?.name : a.command;
1122
- if (name && a.name) {
1123
- return a.name === name;
1124
- }
1125
- return cmd === commandName;
1126
- });
1127
- }
1128
-
1129
- const AXP_ENTITY_ACTION_PLUGIN = new InjectionToken('AXP_ENTITY_ACTION_PLUGIN');
1130
-
1131
1131
  class AXPEntityMiddleware {
1132
1132
  //#endregion
1133
1133
  //#region ---- Constructor ----
@@ -1138,9 +1138,7 @@ class AXPEntityMiddleware {
1138
1138
  this.providedModifiers = inject(AXP_ENTITY_MODIFIER, { optional: true }) || [];
1139
1139
  this.providedActionPlugins = inject(AXP_ENTITY_ACTION_PLUGIN, { optional: true }) || [];
1140
1140
  this.injector = inject(Injector);
1141
- console.log('[AXPEntityMiddleware] Registering', this.providedModifiers.length, 'modifiers');
1142
1141
  for (const { entityName, modifier } of this.providedModifiers) {
1143
- console.log('[AXPEntityMiddleware] Registering modifier for pattern:', entityName);
1144
1142
  this.register(entityName, modifier);
1145
1143
  }
1146
1144
  }
@@ -1184,17 +1182,14 @@ class AXPEntityMiddleware {
1184
1182
  // Exact match first
1185
1183
  const exact = this.exactModifiers.get(entity.name);
1186
1184
  if (exact) {
1187
- console.log('[AXPEntityMiddleware] Found exact modifier for:', entity.name);
1188
1185
  modifiers.push(exact);
1189
1186
  }
1190
1187
  // Then all pattern matches
1191
1188
  for (const { pattern, modifier } of this.patternModifiers) {
1192
1189
  if (pattern.test(entity.name)) {
1193
- console.log('[AXPEntityMiddleware] Pattern matched for', entity.name, '- pattern:', pattern);
1194
1190
  modifiers.push(modifier);
1195
1191
  }
1196
1192
  }
1197
- console.log('[AXPEntityMiddleware] Applying', modifiers.length, 'modifiers to entity:', entity.name);
1198
1193
  // Apply all matching modifiers in order
1199
1194
  for (const modifier of modifiers) {
1200
1195
  modifier(context);
@@ -4455,11 +4450,11 @@ const columnWidthMiddlewareProvider = createColumnWidthMiddlewareProvider(DEFAUL
4455
4450
  */
4456
4451
  const DEFAULT_SECTION_ORDER = {
4457
4452
  'basic-info': 0,
4458
- 'classification': 20,
4459
- 'appearance': 30,
4460
- 'settings': 100,
4461
- 'advanced': 110,
4462
- 'metadata': 120,
4453
+ classification: 20,
4454
+ appearance: 30,
4455
+ settings: 100,
4456
+ advanced: 110,
4457
+ metadata: 120,
4463
4458
  };
4464
4459
  /**
4465
4460
  * Default order for common properties
@@ -4487,19 +4482,19 @@ const DEFAULT_PROPERTY_ORDER = {
4487
4482
  'settings.isDisabled': 95,
4488
4483
  'settings.isArchived': 96,
4489
4484
  // Generic fallbacks (apply to any section if not specified above)
4490
- 'code': 1,
4491
- 'title': 2,
4492
- 'name': 3,
4493
- 'icon': 5,
4494
- 'color': 6,
4495
- 'avatar': 7,
4496
- 'description': 10,
4497
- 'categoryIds': 15,
4498
- 'tags': 16,
4499
- 'isDefault': 90,
4500
- 'isPrimary': 91,
4501
- 'isDisabled': 95,
4502
- 'isArchived': 96,
4485
+ code: 1,
4486
+ title: 2,
4487
+ name: 3,
4488
+ icon: 5,
4489
+ color: 6,
4490
+ avatar: 7,
4491
+ description: 10,
4492
+ categoryIds: 15,
4493
+ tags: 16,
4494
+ isDefault: 90,
4495
+ isPrimary: 91,
4496
+ isDisabled: 95,
4497
+ isArchived: 96,
4503
4498
  };
4504
4499
  /**
4505
4500
  * Get the property order for a given section and property name
@@ -4519,30 +4514,21 @@ const getPropertyOrder = (sectionId, propertyName, orderConfig) => {
4519
4514
  * Factory to create a layout ordering middleware
4520
4515
  */
4521
4516
  const layoutOrderingMiddlewareFactory = (config) => {
4522
- console.log('[Layout Ordering Middleware] Factory called - creating middleware function');
4523
4517
  return (context) => {
4524
- console.log('[Layout Ordering Middleware] ========================================');
4525
- console.log('[Layout Ordering Middleware] MIDDLEWARE CALLED FOR ENTITY:', context.entity.name);
4526
- console.log('[Layout Ordering Middleware] Entity module:', context.entity.module);
4527
- console.log('[Layout Ordering Middleware] ========================================');
4528
4518
  const { sections: sectionOrder, properties: propertyOrder } = config;
4529
- console.log('[Layout Ordering Middleware] Section order config:', sectionOrder);
4530
4519
  //#region ---- Order Sections ----
4531
4520
  const orderSections = (layout) => {
4532
4521
  if (!layout || !layout.sections) {
4533
- console.log('[Layout Ordering Middleware] No sections found in layout');
4534
4522
  return;
4535
4523
  }
4536
- console.log('[Layout Ordering Middleware] Before ordering sections:', layout.sections.map((s) => ({ id: s.id, order: s.order })));
4537
4524
  layout.sections.forEach((section) => {
4538
4525
  const defaultOrder = sectionOrder[section.id];
4539
4526
  if (defaultOrder !== undefined) {
4540
- console.log(`[Layout Ordering Middleware] Setting section "${section.id}" order from ${section.order} to ${defaultOrder}`);
4541
4527
  // Always apply the default order if configured (force override)
4542
4528
  section.order = defaultOrder;
4543
4529
  }
4544
4530
  else {
4545
- console.log(`[Layout Ordering Middleware] No default order for section "${section.id}"`);
4531
+ // console.log(`[Layout Ordering Middleware] No default order for section "${section.id}"`);
4546
4532
  }
4547
4533
  });
4548
4534
  // Sort sections by order
@@ -4551,7 +4537,6 @@ const layoutOrderingMiddlewareFactory = (config) => {
4551
4537
  const orderB = b.order ?? 999;
4552
4538
  return orderA - orderB;
4553
4539
  });
4554
- console.log('[Layout Ordering Middleware] After ordering sections:', layout.sections.map((s) => ({ id: s.id, order: s.order })));
4555
4540
  };
4556
4541
  //#endregion
4557
4542
  //#region ---- Order Properties Within Sections ----
@@ -4590,7 +4575,6 @@ const layoutOrderingMiddlewareFactory = (config) => {
4590
4575
  //#region ---- Apply to All Layouts ----
4591
4576
  // Apply to create layout
4592
4577
  context.interfaces.master.create.update((create) => {
4593
- console.log('[Layout Ordering Middleware] Processing CREATE layout');
4594
4578
  if (create) {
4595
4579
  orderSections(create);
4596
4580
  orderProperties(create);
@@ -4599,7 +4583,6 @@ const layoutOrderingMiddlewareFactory = (config) => {
4599
4583
  });
4600
4584
  // Apply to modify layout
4601
4585
  context.interfaces.master.modify.update((modify) => {
4602
- console.log('[Layout Ordering Middleware] Processing MODIFY layout');
4603
4586
  if (modify) {
4604
4587
  orderSections(modify);
4605
4588
  orderProperties(modify);
@@ -4608,7 +4591,6 @@ const layoutOrderingMiddlewareFactory = (config) => {
4608
4591
  });
4609
4592
  // Apply to single layout
4610
4593
  context.interfaces.master.single.update((single) => {
4611
- console.log('[Layout Ordering Middleware] Processing SINGLE layout');
4612
4594
  if (single) {
4613
4595
  orderSections(single);
4614
4596
  orderProperties(single);
@@ -4625,7 +4607,6 @@ const layoutOrderingMiddlewareFactory = (config) => {
4625
4607
  * By default it applies to all entities using the '*' pattern
4626
4608
  */
4627
4609
  const createLayoutOrderingMiddlewareProvider = (config = {}, entityName = '*') => {
4628
- console.log('[Layout Ordering Middleware] Creating provider for entityName pattern:', entityName);
4629
4610
  return {
4630
4611
  entityName,
4631
4612
  modifier: layoutOrderingMiddlewareFactory({
@@ -4638,10 +4619,6 @@ const createLayoutOrderingMiddlewareProvider = (config = {}, entityName = '*') =
4638
4619
  * Default provider registered with the default configuration
4639
4620
  */
4640
4621
  const layoutOrderingMiddlewareProvider = createLayoutOrderingMiddlewareProvider();
4641
- console.log('[Layout Ordering Middleware] Provider initialized with config:', {
4642
- sections: DEFAULT_SECTION_ORDER,
4643
- propertyCount: Object.keys(DEFAULT_PROPERTY_ORDER).length
4644
- });
4645
4622
  //#endregion
4646
4623
 
4647
4624
  class AXPEntityCommandSearchDefinitionProvider {
@@ -4778,31 +4755,31 @@ class AXPMiddlewareEntityStorageService extends AXPEntityStorageService {
4778
4755
  }
4779
4756
  async initial(entityName, collection, options) {
4780
4757
  const ctx = this.createCtx('initial', entityName, { data: collection });
4781
- return this.run(ctx, () => this.backend.initial(entityName, ctx.data, options));
4758
+ return this.run(ctx, () => this.backend.initial(ctx.entityName, ctx.data, options));
4782
4759
  }
4783
4760
  async getOne(entityName, id) {
4784
4761
  const ctx = this.createCtx('getOne', entityName, { id });
4785
- return this.run(ctx, () => this.backend.getOne(entityName, id));
4762
+ return this.run(ctx, () => this.backend.getOne(ctx.entityName, id));
4786
4763
  }
4787
4764
  async updateOne(entityName, id, keyValues) {
4788
4765
  const ctx = this.createCtx('update', entityName, { id, data: keyValues });
4789
- return this.run(ctx, () => this.backend.updateOne(entityName, id, ctx.data));
4766
+ return this.run(ctx, () => this.backend.updateOne(ctx.entityName, id, ctx.data));
4790
4767
  }
4791
4768
  async deleteOne(entityName, id) {
4792
4769
  const ctx = this.createCtx('delete', entityName, { id });
4793
- return this.run(ctx, () => this.backend.deleteOne(entityName, id));
4770
+ return this.run(ctx, () => this.backend.deleteOne(ctx.entityName, id));
4794
4771
  }
4795
4772
  async insertOne(entityName, entity) {
4796
4773
  const ctx = this.createCtx('create', entityName, { data: entity });
4797
- return this.run(ctx, () => this.backend.insertOne(entityName, ctx.data));
4774
+ return this.run(ctx, () => this.backend.insertOne(ctx.entityName, ctx.data));
4798
4775
  }
4799
4776
  async getAll(entityName) {
4800
4777
  const ctx = this.createCtx('getAll', entityName);
4801
- return this.run(ctx, () => this.backend.getAll(entityName));
4778
+ return this.run(ctx, () => this.backend.getAll(ctx.entityName));
4802
4779
  }
4803
4780
  async query(entityName, request) {
4804
4781
  const ctx = this.createCtx('query', entityName, { request });
4805
- return this.run(ctx, () => this.backend.query(entityName, request));
4782
+ return this.run(ctx, () => this.backend.query(ctx.entityName, request));
4806
4783
  }
4807
4784
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPMiddlewareEntityStorageService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4808
4785
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPMiddlewareEntityStorageService }); }
@@ -5173,7 +5150,7 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
5173
5150
  this.workflow = inject(AXPWorkflowService);
5174
5151
  this.entityListTableService = inject(AXPEntityListTableService);
5175
5152
  this.entityListToolbarService = inject(AXPEntityListToolbarService);
5176
- this.layoutThemeService = inject(AXPLayoutThemeService);
5153
+ this.deviceService = inject(AXPDeviceService);
5177
5154
  this.isMounted = signal(false, ...(ngDevMode ? [{ debugName: "isMounted" }] : []));
5178
5155
  this.entity = signal(null, ...(ngDevMode ? [{ debugName: "entity" }] : []));
5179
5156
  this.listNode = signal(null, ...(ngDevMode ? [{ debugName: "listNode" }] : []));
@@ -5216,7 +5193,7 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
5216
5193
  return !usedOverrideActions.has(actionKey);
5217
5194
  })
5218
5195
  .map((action) => new AXPEntityCommandTriggerViewModel(this.entity(), action));
5219
- return [...additionalActions, ...mergedActions];
5196
+ return [...additionalActions, ...mergedActions].filter((a) => !a.hidden);
5220
5197
  }, ...(ngDevMode ? [{ debugName: "allActions" }] : []));
5221
5198
  this.primaryActions = computed(() => {
5222
5199
  const actions = this.allActions()
@@ -5470,8 +5447,8 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
5470
5447
  @for (action of primaryActions(); track $index) {
5471
5448
  @if (action.visible != false) {
5472
5449
  <ax-button
5473
- [class.ax-sm]="layoutThemeService.isSmall()"
5474
- [iconOnly]="layoutThemeService.isSmall()"
5450
+ [class.ax-sm]="deviceService.isSmall()"
5451
+ [iconOnly]="deviceService.isSmall()"
5475
5452
  [disabled]="action.disabled"
5476
5453
  [text]="action.title"
5477
5454
  [look]="'solid'"
@@ -5509,10 +5486,10 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
5509
5486
  }
5510
5487
  @if (secondaryActions().length) {
5511
5488
  <ax-button
5512
- [class.ax-sm]="layoutThemeService.isSmall()"
5513
- [iconOnly]="layoutThemeService.isSmall()"
5489
+ [class.ax-sm]="deviceService.isSmall()"
5490
+ [iconOnly]="deviceService.isSmall()"
5514
5491
  [text]="'@general:terms.interface.actions' | translate | async"
5515
- [look]="layoutThemeService.isSmall() ? 'blank' : 'solid'"
5492
+ [look]="deviceService.isSmall() ? 'blank' : 'solid'"
5516
5493
  [color]="'default'"
5517
5494
  >
5518
5495
  <ax-prefix>
@@ -5587,8 +5564,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
5587
5564
  @for (action of primaryActions(); track $index) {
5588
5565
  @if (action.visible != false) {
5589
5566
  <ax-button
5590
- [class.ax-sm]="layoutThemeService.isSmall()"
5591
- [iconOnly]="layoutThemeService.isSmall()"
5567
+ [class.ax-sm]="deviceService.isSmall()"
5568
+ [iconOnly]="deviceService.isSmall()"
5592
5569
  [disabled]="action.disabled"
5593
5570
  [text]="action.title"
5594
5571
  [look]="'solid'"
@@ -5626,10 +5603,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
5626
5603
  }
5627
5604
  @if (secondaryActions().length) {
5628
5605
  <ax-button
5629
- [class.ax-sm]="layoutThemeService.isSmall()"
5630
- [iconOnly]="layoutThemeService.isSmall()"
5606
+ [class.ax-sm]="deviceService.isSmall()"
5607
+ [iconOnly]="deviceService.isSmall()"
5631
5608
  [text]="'@general:terms.interface.actions' | translate | async"
5632
- [look]="layoutThemeService.isSmall() ? 'blank' : 'solid'"
5609
+ [look]="deviceService.isSmall() ? 'blank' : 'solid'"
5633
5610
  [color]="'default'"
5634
5611
  >
5635
5612
  <ax-prefix>
@@ -8017,12 +7994,12 @@ class AXPEntityDynamicDialogService {
8017
7994
  //#region ---- Services & Dependencies ----
8018
7995
  this.entityRegistry = inject(AXPEntityDefinitionRegistryService);
8019
7996
  this.layoutBuilder = inject(AXPLayoutBuilderService);
8020
- this.layoutTheme = inject(AXPLayoutThemeService);
7997
+ this.deviceService = inject(AXPDeviceService);
8021
7998
  }
8022
7999
  //#endregion
8023
8000
  //#region ---- Public API ----
8024
8001
  entity(fullName) {
8025
- return new InterfaceSelector(this.entityRegistry, this.layoutBuilder, this.layoutTheme, fullName);
8002
+ return new InterfaceSelector(this.entityRegistry, this.layoutBuilder, this.deviceService, fullName);
8026
8003
  }
8027
8004
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPEntityDynamicDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8028
8005
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPEntityDynamicDialogService, providedIn: 'root' }); }
@@ -8033,24 +8010,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
8033
8010
  }] });
8034
8011
  //#region ---- Builders ----
8035
8012
  class InterfaceSelector {
8036
- constructor(entityRegistry, layoutBuilder, layoutTheme, fullName) {
8013
+ constructor(entityRegistry, layoutBuilder, deviceService, fullName) {
8037
8014
  this.entityRegistry = entityRegistry;
8038
8015
  this.layoutBuilder = layoutBuilder;
8039
- this.layoutTheme = layoutTheme;
8016
+ this.deviceService = deviceService;
8040
8017
  this.fullName = fullName;
8041
8018
  }
8042
8019
  create() {
8043
- return new PropertyFilter(this.entityRegistry, this.layoutBuilder, this.layoutTheme, this.fullName, 'create');
8020
+ return new PropertyFilter(this.entityRegistry, this.layoutBuilder, this.deviceService, this.fullName, 'create');
8044
8021
  }
8045
8022
  update(id) {
8046
- return new PropertyFilter(this.entityRegistry, this.layoutBuilder, this.layoutTheme, this.fullName, 'update', id);
8023
+ return new PropertyFilter(this.entityRegistry, this.layoutBuilder, this.deviceService, this.fullName, 'update', id);
8047
8024
  }
8048
8025
  }
8049
8026
  class PropertyFilter {
8050
- constructor(entityRegistry, layoutBuilder, layoutTheme, fullName, kind, recordId) {
8027
+ constructor(entityRegistry, layoutBuilder, deviceService, fullName, kind, recordId) {
8051
8028
  this.entityRegistry = entityRegistry;
8052
8029
  this.layoutBuilder = layoutBuilder;
8053
- this.layoutTheme = layoutTheme;
8030
+ this.deviceService = deviceService;
8054
8031
  this.fullName = fullName;
8055
8032
  this.kind = kind;
8056
8033
  this.includeList = null;
@@ -8112,7 +8089,7 @@ class PropertyFilter {
8112
8089
  const allowedNames = this.computeAllowedNames(entityProps.map((p) => p.name));
8113
8090
  const dialog = this.layoutBuilder.create().dialog((d) => {
8114
8091
  d.setTitle(title);
8115
- d.setSize(this.externalSize ?? (this.layoutTheme.isMobileDevice() ? 'full' : 'md'));
8092
+ d.setSize(this.externalSize ?? (this.deviceService.isMobileDevice() ? 'full' : 'md'));
8116
8093
  d.setCloseButton(true);
8117
8094
  d.content((layout) => {
8118
8095
  layout.mode(this.externalMode ?? 'edit');