@acorex-platform/framework-client 0.0.54 → 0.0.57

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 (77) hide show
  1. package/fesm2022/acorex-platform-framework-client-common.mjs +39 -20
  2. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +4 -256
  4. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +146 -53
  6. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +48 -34
  8. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
  9. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-bGKRfOH2.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cmzwhmjw.mjs} +285 -266
  10. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cmzwhmjw.mjs.map +1 -0
  11. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-9inrzTyH.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-K9HAtqL6.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-9inrzTyH.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-K9HAtqL6.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C4fDZV2N.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-BZECKfez.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C4fDZV2N.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-BZECKfez.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-BFdbsR0q.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-BuDpC58x.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-BFdbsR0q.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-BuDpC58x.mjs.map} +1 -1
  17. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  18. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +21 -10
  19. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  20. package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-nVzW1Bka.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-D5pndfBW.mjs} +376 -556
  21. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-D5pndfBW.mjs.map +1 -0
  22. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DfK7xcSW.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BFgrSnfT.mjs} +2 -2
  23. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DfK7xcSW.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BFgrSnfT.mjs.map} +1 -1
  24. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-D7P08nHH.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DP9mP1CR.mjs} +8 -5
  25. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DP9mP1CR.mjs.map +1 -0
  26. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DZbHlccx.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Ctjz1PjP.mjs} +2 -2
  27. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DZbHlccx.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Ctjz1PjP.mjs.map} +1 -1
  28. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
  29. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-Dh_hRxZX.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DwCoz2Du.mjs} +4 -4
  30. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-Dh_hRxZX.mjs.map → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DwCoz2Du.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-bC_uPN9l.mjs → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BCyFK60f.mjs} +4 -4
  32. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-bC_uPN9l.mjs.map → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BCyFK60f.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-CDzBgDt7.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-2Re1-MvA.mjs} +4 -4
  34. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-CDzBgDt7.mjs.map → acorex-platform-framework-client-themes-default-entity-master-single-view.component-2Re1-MvA.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-CaV3MdRr.mjs → acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs} +3 -3
  36. package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-CaV3MdRr.mjs.map → acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-CTA-lxYp.mjs → acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs} +3 -3
  38. package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-CTA-lxYp.mjs.map → acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs.map} +1 -1
  39. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs +22 -0
  40. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +37 -47
  42. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +4 -4
  44. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  45. package/i18n/en-AU/activity-log.json +71 -0
  46. package/i18n/en-AU/common-plugins.json +96 -0
  47. package/i18n/en-AU/dynamic-form-designer.json +126 -0
  48. package/i18n/en-AU/general.json +2294 -0
  49. package/i18n/en-AU/layout-designer.json +173 -0
  50. package/i18n/en-AU/layout.json +258 -0
  51. package/i18n/en-AU/platform-layout-widgets.json +331 -0
  52. package/i18n/en-US/activity-log.json +71 -0
  53. package/i18n/en-US/common-plugins.json +96 -0
  54. package/i18n/en-US/dynamic-form-designer.json +126 -0
  55. package/i18n/en-US/general.json +2294 -0
  56. package/i18n/en-US/layout-designer.json +173 -0
  57. package/i18n/en-US/layout.json +258 -0
  58. package/i18n/en-US/platform-layout-widgets.json +335 -0
  59. package/i18n/fa-IR/activity-log.json +71 -0
  60. package/i18n/fa-IR/common-plugins.json +126 -0
  61. package/i18n/fa-IR/dynamic-form-designer.json +126 -0
  62. package/i18n/fa-IR/general.json +2295 -0
  63. package/i18n/fa-IR/layout-designer.json +173 -0
  64. package/i18n/fa-IR/layout.json +258 -0
  65. package/i18n/fa-IR/platform-layout-widgets.json +335 -0
  66. package/package.json +2 -2
  67. package/types/acorex-platform-framework-client-common.d.ts +3 -1
  68. package/types/acorex-platform-framework-client-layout-builder.d.ts +0 -20
  69. package/types/acorex-platform-framework-client-layout-components.d.ts +5 -1
  70. package/types/acorex-platform-framework-client-layout-designer.d.ts +1 -0
  71. package/types/acorex-platform-framework-client-layout-entity.d.ts +11 -9
  72. package/types/acorex-platform-framework-client-layout-widgets.d.ts +29 -69
  73. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-bGKRfOH2.mjs.map +0 -1
  74. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-nVzW1Bka.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-D7P08nHH.mjs.map +0 -1
  76. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-B85b0lsa.mjs +0 -19
  77. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-B85b0lsa.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { isEntityColumnBand, mergeForeignKeyFieldIntoCreateActions, collectNestedCreateHiddenProperties, relatedEntityListViewWidgetOptions, AXPEntityCommandScope, isCardFieldBadgeDisplay, resolveCardFieldBadgeColor, resolveEntityCardAvatarPath, isEntityCardQrField, collectLeftoverCardMoreFieldNames, parseDottedFieldPath, AXP_ENTITY_LIST_RECORD_STYLING_TARGET, isCompleteEntityListStylingCondition, createEntityMasterStylingScope, normalizeEntityMasterStylingClass, resolveEntityMasterStyling, resolveEntityMasterFieldExpression, resolveEntityCardIdentityKind, resolveEntityCardUserId, ENTITY_CARD_LABELED_PREVIEW_MAX, resolveEntityCardLayout, buildDefaultEntityCardLayout, resolveEntityListFilterContextField, resolveEntityListFilterQueryField, resolveEnabledMasterListLayouts, resolveDefaultMasterListLayout, isEntityMasterListCardHost, normalizeEntityMasterListLayoutType, getEntityInfo, normalizeEntityListUserStylingRules, mergeQueryViewAndUserFilters, flattenEntityTableColumns, mergeDefinitionAndCustomQueryViews, isQueryViewDirty, isCustomQueryView, collectEntityListSortPresets, createCustomQueryViewName, removePersistedCustomQueryView, readPersistedCustomQueryViews, upsertPersistedCustomQueryView, snapshotCustomQueryView, isQueryViewColumnVisible, collectEntityListSortableFields, collectEntityListFilterDefinitions, withQueryViewFilterVisibility, queryViewConditionsToFilterQueries, collectEntityCardUserIdQueryFields, buildEntityQueryFields, normalizeAXPQueryViewColumns, findEntityTableColumnInTree, AXPEntityQueryType, ENTITY_ROW_POPUP_TITLE_OPTION, resolveEnabledPageListLayouts, resolveRelatedEntityListViews, buildPageListWidgetName, applyQueryViewToColumnQueries, normalizeEntityDisplayTemplate, sanitizeResolvedEntityDisplayTitle, isUnresolvedEntityDisplayTemplate, resolveLookupWidgetCreateOptions, promoteLegacyEntityCardLayout, inferEntityListSortPresets, buildEntitySearchTitleContext } from '@acorex-platform/framework-shared/entity';
1
+ import { isEntityColumnBand, mergeForeignKeyFieldIntoCreateActions, collectNestedCreateHiddenProperties, relatedEntityListViewWidgetOptions, AXPEntityCommandScope, isCardFieldBadgeDisplay, resolveCardFieldBadgeColor, resolveEntityCardAvatarPath, isEntityCardQrField, collectLeftoverCardMoreFieldNames, parseDottedFieldPath, AXP_ENTITY_LIST_RECORD_STYLING_TARGET, isCompleteEntityListStylingCondition, createEntityMasterStylingScope, normalizeEntityMasterStylingClass, resolveEntityMasterStyling, resolveEntityMasterFieldExpression, resolveEntityCardIdentityKind, resolveEntityCardUserId, ENTITY_CARD_LABELED_PREVIEW_MAX, resolveEntityCardLayout, buildDefaultEntityCardLayout, resolveEntityListFilterContextField, resolveEntityListFilterQueryField, resolveEnabledMasterListLayouts, resolveDefaultMasterListLayout, isEntityMasterListCardHost, normalizeEntityMasterListLayoutType, getEntityInfo, normalizeEntityListUserStylingRules, mergeQueryViewAndUserFilters, flattenEntityTableColumns, mergeDefinitionAndCustomQueryViews, isQueryViewDirty, isCustomQueryView, collectEntityListSortPresets, createCustomQueryViewName, removePersistedCustomQueryView, readPersistedCustomQueryViews, upsertPersistedCustomQueryView, snapshotCustomQueryView, isQueryViewColumnVisible, collectEntityListSortableFields, collectEntityListFilterDefinitions, withQueryViewFilterVisibility, queryViewConditionsToFilterQueries, collectEntityCardUserIdQueryFields, buildEntityQueryFields, normalizeAXPQueryViewColumns, findEntityTableColumnInTree, AXPEntityQueryType, isEntityPropertySortEnabled, ENTITY_ROW_POPUP_TITLE_OPTION, resolveEnabledPageListLayouts, resolveRelatedEntityListViews, toggleListColumnSortQueries, toActiveListColumnSortQueries, buildPageListWidgetName, applyQueryViewToColumnQueries, normalizeEntityDisplayTemplate, sanitizeResolvedEntityDisplayTitle, isUnresolvedEntityDisplayTemplate, resolveLookupWidgetCreateOptions, promoteLegacyEntityCardLayout, inferEntityListSortPresets, buildEntitySearchTitleContext } from '@acorex-platform/framework-shared/entity';
2
2
  import { resolveEntityActionCommandInput, entityActionDataRecord, defineCommand, AXP_COMMAND_DEFINITION_CATEGORY_ENTITY, analyzeBulkCommandFailures, ENTITY_DELETE_DEFAULT, ENTITY_GET_BY_ID_DEFAULT, ENTITY_QUERY_DEFAULT, ENTITY_INSERT_DEFAULT, ENTITY_UPDATE_DEFAULT, DOMAIN_GET_ENTITY_LAYOUT_DEFAULT, DOMAIN_LIST_ENTITY_LAYOUTS_DEFAULT, resolveEntityNameFromRuntimeKey } from '@acorex-platform/framework-shared/runtime';
3
3
  import { AXToastService } from '@acorex/components/toast';
4
4
  import * as i3$1 from '@acorex/core/translation';
@@ -2686,32 +2686,32 @@ const axpCreateEntityAiToolInputDefaults = {
2686
2686
  };
2687
2687
  const axpCreateEntityCommandDefinition = defineCommand({
2688
2688
  key: 'Entity:Create',
2689
- title: 'Create entity (dialog)',
2689
+ title: '@general:command-catalog.entity.create.title',
2690
2690
  description: 'AXPCreateEntityCommand reads flat input (entity, entityInfo, data, options, metadata) and optional root dialogSize; builds AXPEntityFormBuilderService create chain with exclude/include, decoration header title, layout size; submits insert via entity form flow.',
2691
2691
  executionMode: 'frontend',
2692
2692
  inputs: [
2693
2693
  {
2694
2694
  name: 'dialogSize',
2695
- title: 'Dialog size',
2695
+ title: '@general:command-catalog.entity.create.inputs.dialog-size.title',
2696
2696
  description: 'Optional root dialogSize; layout.size from options can override.',
2697
2697
  interface: { name: 'text-editor' },
2698
2698
  },
2699
2699
  {
2700
2700
  name: 'entity',
2701
- title: 'Entity',
2701
+ title: '@general:command-catalog.entity.create.inputs.entity.title',
2702
2702
  description: 'Entity full name (Module.Entity).',
2703
2703
  interface: { name: 'text-editor' },
2704
2704
  validations: [{ rule: 'required' }],
2705
2705
  },
2706
2706
  {
2707
2707
  name: 'data',
2708
- title: 'Seed data',
2708
+ title: '@general:command-catalog.entity.create.inputs.data.title',
2709
2709
  description: 'Optional create form seed as a JSON object (not a string). Include resolved lookup ids and dates.',
2710
2710
  interface: { name: 'json' },
2711
2711
  },
2712
2712
  {
2713
2713
  name: 'options',
2714
- title: 'Options',
2714
+ title: '@general:command-catalog.entity.create.inputs.options.title',
2715
2715
  description: 'excludeProperties, includeProperties, decoration, layout, process { redirect }. For AI/tool calls, defaults include options.process.redirect = false.',
2716
2716
  interface: { name: 'json' },
2717
2717
  },
@@ -3164,25 +3164,25 @@ var deleteEntity_command = /*#__PURE__*/Object.freeze({
3164
3164
  */
3165
3165
  const axpDeleteEntityCommandDefinition = defineCommand({
3166
3166
  key: 'Entity:Remove',
3167
- title: 'Delete entity',
3167
+ title: '@general:command-catalog.entity.remove.title',
3168
3168
  description: 'AXPDeleteEntityCommand shows a confirm dialog, then deletes entity record(s) with loading UI, toasts, and refresh events.',
3169
3169
  executionMode: 'frontend',
3170
3170
  inputs: [
3171
3171
  {
3172
3172
  name: 'entity',
3173
- title: 'Entity',
3173
+ title: '@general:command-catalog.entity.remove.inputs.entity.title',
3174
3174
  description: 'Entity full name (Module.Entity).',
3175
3175
  interface: { name: 'text-editor' },
3176
3176
  },
3177
3177
  {
3178
3178
  name: 'data',
3179
- title: 'Record(s)',
3179
+ title: '@general:command-catalog.entity.remove.inputs.data.title',
3180
3180
  description: 'Single/bulk row data for delete.',
3181
3181
  interface: { name: 'json' },
3182
3182
  },
3183
3183
  {
3184
3184
  name: 'entities',
3185
- title: 'Multi-entity delete',
3185
+ title: '@general:command-catalog.entity.remove.inputs.entities.title',
3186
3186
  description: 'Optional entities[] for multi-entity delete.',
3187
3187
  interface: { name: 'json' },
3188
3188
  },
@@ -3303,19 +3303,19 @@ var openEntityList_command = /*#__PURE__*/Object.freeze({
3303
3303
  */
3304
3304
  const axpOpenEntityListCommandDefinition = defineCommand({
3305
3305
  key: 'Entity:OpenList',
3306
- title: 'Open entity list',
3306
+ title: '@general:command-catalog.entity.open-list.title',
3307
3307
  description: 'AXPOpenEntityListCommand navigates to /{app}/m/{module}/e/{entity}/list with optional filter query params.',
3308
3308
  executionMode: 'frontend',
3309
3309
  inputs: [
3310
3310
  {
3311
3311
  name: 'entity',
3312
- title: 'Entity',
3312
+ title: '@general:command-catalog.entity.open-list.inputs.entity.title',
3313
3313
  description: 'Entity full name (Module.Entity).',
3314
3314
  interface: { name: 'text-editor' },
3315
3315
  },
3316
3316
  {
3317
3317
  name: 'conditions',
3318
- title: 'List filters',
3318
+ title: '@general:command-catalog.entity.open-list.inputs.conditions.title',
3319
3319
  description: 'Optional conditions for list filters.',
3320
3320
  interface: { name: 'json' },
3321
3321
  },
@@ -5945,19 +5945,19 @@ var showFileUploaderPopup_command = /*#__PURE__*/Object.freeze({
5945
5945
  */
5946
5946
  const axpShowFileUploaderPopupCommandDefinition = defineCommand({
5947
5947
  key: 'FileUploader:ShowPopup',
5948
- title: 'Show file uploader popup',
5948
+ title: '@general:command-catalog.file-uploader.show-popup.title',
5949
5949
  description: 'AXPShowFileUploaderPopupCommand opens the file list popup, saves via FileUploader:SaveFiles, then dispatches entity modify side-effects.',
5950
5950
  executionMode: 'frontend',
5951
5951
  inputs: [
5952
5952
  {
5953
5953
  name: 'entity',
5954
- title: 'Entity',
5954
+ title: '@general:command-catalog.file-uploader.show-popup.inputs.entity.title',
5955
5955
  description: 'Optional entity full name when not nested under options.entity.',
5956
5956
  interface: { name: 'text-editor' },
5957
5957
  },
5958
5958
  {
5959
5959
  name: 'options',
5960
- title: 'Uploader options',
5960
+ title: '@general:command-catalog.file-uploader.show-popup.inputs.options.title',
5961
5961
  description: 'Requires options.entity (name, id, field) from attachments plugin or equivalent.',
5962
5962
  interface: { name: 'json' },
5963
5963
  },
@@ -6750,39 +6750,39 @@ var updateEntityStatus_command = /*#__PURE__*/Object.freeze({
6750
6750
  */
6751
6751
  const axpUpdateEntityStatusCommandDefinition = defineCommand({
6752
6752
  key: 'Entity:UpdateStatus',
6753
- title: 'Update entity status',
6753
+ title: '@general:command-catalog.entity.update-status.title',
6754
6754
  description: 'AXPUpdateEntityStatusCommand patches a status field on one or more records (entity, status, statusField, id|ids) via the entity update path; used as the default status-chip transition command.',
6755
6755
  executionMode: 'frontend',
6756
6756
  inputs: [
6757
6757
  {
6758
6758
  name: 'entity',
6759
- title: 'Entity',
6759
+ title: '@general:command-catalog.entity.update-status.inputs.entity.title',
6760
6760
  description: 'Full entity key (Module.Entity).',
6761
6761
  interface: { name: 'text-editor' },
6762
6762
  validations: [{ rule: 'required' }],
6763
6763
  },
6764
6764
  {
6765
6765
  name: 'status',
6766
- title: 'Status',
6766
+ title: '@general:command-catalog.entity.update-status.inputs.status.title',
6767
6767
  description: 'Target status name/value to write.',
6768
6768
  interface: { name: 'text-editor' },
6769
6769
  validations: [{ rule: 'required' }],
6770
6770
  },
6771
6771
  {
6772
6772
  name: 'statusField',
6773
- title: 'Status field',
6773
+ title: '@general:command-catalog.entity.update-status.inputs.status-field.title',
6774
6774
  description: 'Property path to patch (default statusId).',
6775
6775
  interface: { name: 'text-editor' },
6776
6776
  },
6777
6777
  {
6778
6778
  name: 'id',
6779
- title: 'Record id',
6779
+ title: '@general:command-catalog.entity.update-status.inputs.id.title',
6780
6780
  description: 'Single record id (use ids for bulk).',
6781
6781
  interface: { name: 'text-editor' },
6782
6782
  },
6783
6783
  {
6784
6784
  name: 'ids',
6785
- title: 'Record ids',
6785
+ title: '@general:command-catalog.entity.update-status.inputs.ids.title',
6786
6786
  description: 'Bulk record ids.',
6787
6787
  interface: { name: 'json' },
6788
6788
  },
@@ -9749,17 +9749,17 @@ const ENTITY_LIST_ACTIONS = [
9749
9749
  },
9750
9750
  {
9751
9751
  id: 'remove-filter',
9752
- title: 'Remove filter',
9752
+ title: '@general:terms.interface.voice-list.remove-filter',
9753
9753
  params: [{ name: 'field', required: true, description: 'Visible filter field to remove (not hidden view conditions).' }],
9754
9754
  },
9755
9755
  {
9756
9756
  id: 'clear-filters',
9757
- title: 'Clear filters',
9757
+ title: '@general:terms.interface.voice-list.clear-filters',
9758
9758
  params: [],
9759
9759
  },
9760
9760
  {
9761
9761
  id: 'set-search',
9762
- title: 'Set list search',
9762
+ title: '@general:terms.interface.voice-list.set-search',
9763
9763
  params: [{ name: 'text', required: false, description: 'Quick-search text. Empty string clears search.' }],
9764
9764
  },
9765
9765
  ];
@@ -11623,7 +11623,7 @@ class AXPEntityMasterListViewModel {
11623
11623
  */
11624
11624
  async loadFilterDefinitions() {
11625
11625
  const definitions = await collectEntityListFilterDefinitions(this.entityDef, (moduleName, entityName) => this.entityDefinitionRegistry.resolve(moduleName, entityName).catch(() => null), {
11626
- resolveWidget: (type) => this.widgetResolver.resolve(type),
11626
+ resolveWidget: (type) => this.widgetResolver.getOptional(type),
11627
11627
  });
11628
11628
  this.filterDefinitions.set(definitions);
11629
11629
  }
@@ -13324,7 +13324,7 @@ class AXPEntityPreloadFiltersViewModel {
13324
13324
  //#region ---- Methods ----
13325
13325
  async loadFilterDefinitions() {
13326
13326
  const definitions = await collectEntityListFilterDefinitions(this.entityDef, (moduleName, entityName) => this.entityRegistry.resolve(moduleName, entityName).catch(() => null), {
13327
- resolveWidget: (type) => this.widgetResolver.resolve(type),
13327
+ resolveWidget: (type) => this.widgetResolver.getOptional(type),
13328
13328
  });
13329
13329
  this.filterDefinitions.set(definitions);
13330
13330
  }
@@ -14000,7 +14000,7 @@ class AXMAttachmentsPageComponentProvider {
14000
14000
  return [
14001
14001
  {
14002
14002
  key: ATTACHMENTS_PAGE_COMPONENT_KEY,
14003
- loader: () => import('./acorex-platform-framework-client-layout-entity-attachments-page.component-9inrzTyH.mjs').then((m) => m.AXMAttachmentsPageComponent),
14003
+ loader: () => import('./acorex-platform-framework-client-layout-entity-attachments-page.component-K9HAtqL6.mjs').then((m) => m.AXMAttachmentsPageComponent),
14004
14004
  },
14005
14005
  ];
14006
14006
  }
@@ -14537,7 +14537,7 @@ class AXMGalleryPageComponentProvider {
14537
14537
  return [
14538
14538
  {
14539
14539
  key: GALLERY_PAGE_COMPONENT_KEY,
14540
- loader: () => import('./acorex-platform-framework-client-layout-entity-gallery-page.component-BFdbsR0q.mjs').then((m) => m.AXMGalleryPageComponent),
14540
+ loader: () => import('./acorex-platform-framework-client-layout-entity-gallery-page.component-BuDpC58x.mjs').then((m) => m.AXMGalleryPageComponent),
14541
14541
  },
14542
14542
  ];
14543
14543
  }
@@ -17497,7 +17497,7 @@ class AXPTruncatedBreadcrumbComponent {
17497
17497
  <span
17498
17498
  class="text-sm text-primary cursor-pointer hover:opacity-75 ml-1"
17499
17499
  (click)="handleCollapseClick($event)"
17500
- title="Collapse"
17500
+ [attr.title]="'@general:terms.interface.collapse-path' | translate | async"
17501
17501
  >
17502
17502
  <ax-icon [class]="eyeIcon()" class="text-primary"></ax-icon>
17503
17503
  </span>
@@ -17553,7 +17553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
17553
17553
  <span
17554
17554
  class="text-sm text-primary cursor-pointer hover:opacity-75 ml-1"
17555
17555
  (click)="handleCollapseClick($event)"
17556
- title="Collapse"
17556
+ [attr.title]="'@general:terms.interface.collapse-path' | translate | async"
17557
17557
  >
17558
17558
  <ax-icon [class]="eyeIcon()" class="text-primary"></ax-icon>
17559
17559
  </span>
@@ -18603,6 +18603,7 @@ function mapPropertyToWidgetColumn(property) {
18603
18603
  name: property.name,
18604
18604
  title: property.title,
18605
18605
  visible: true,
18606
+ sortEnabled: isEntityPropertySortEnabled(property),
18606
18607
  widget: property.schema?.interface
18607
18608
  ? {
18608
18609
  type: property.schema.interface.type || 'text-editor',
@@ -18693,6 +18694,7 @@ function mapEntityColumnToWidgetColumn(entity, column) {
18693
18694
  title: columnDef.title || property?.title || columnDef.name,
18694
18695
  width: columnDef.options?.width,
18695
18696
  visible: columnDef.options?.visible !== false,
18697
+ sortEnabled: isEntityPropertySortEnabled(property),
18696
18698
  ...(columnDef.footer ? { footer: columnDef.footer } : {}),
18697
18699
  widget,
18698
18700
  };
@@ -19123,7 +19125,7 @@ class AXPEntityListToolbarService {
19123
19125
  */
19124
19126
  async createFilterDefinitions(entity) {
19125
19127
  return collectEntityListFilterDefinitions(entity, (moduleName, entityName) => this.entityRegistry.resolve(moduleName, entityName).catch(() => null), {
19126
- resolveWidget: (type) => this.widgetResolver.resolve(type),
19128
+ resolveWidget: (type) => this.widgetResolver.getOptional(type),
19127
19129
  });
19128
19130
  }
19129
19131
  /**
@@ -19214,6 +19216,9 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
19214
19216
  ...(ngDevMode ? [{ debugName: "toolbarWidget" }] : /* istanbul ignore next */ []));
19215
19217
  this.selectedItems = signal([], /* @ts-ignore */
19216
19218
  ...(ngDevMode ? [{ debugName: "selectedItems" }] : /* istanbul ignore next */ []));
19219
+ /** Active sorts for data-list header arrows; kept in sync with toolbar sorts. */
19220
+ this.listColumnSorts = signal([], /* @ts-ignore */
19221
+ ...(ngDevMode ? [{ debugName: "listColumnSorts" }] : /* istanbul ignore next */ []));
19217
19222
  this.listDisplayMode = signal(AXP_ENTITY_LIST_DISPLAY_MODE_DEFAULT, /* @ts-ignore */
19218
19223
  ...(ngDevMode ? [{ debugName: "listDisplayMode" }] : /* istanbul ignore next */ []));
19219
19224
  this.isCardHostLayout = computed(() => isEntityMasterListCardHost(this.listDisplayMode()), /* @ts-ignore */
@@ -19538,6 +19543,37 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
19538
19543
  this.execute(item.command.name, null);
19539
19544
  }
19540
19545
  }
19546
+ handleColumnSort(columnName, event) {
19547
+ if (!this.isListColumnSortable(columnName)) {
19548
+ return;
19549
+ }
19550
+ const toolbar = this.getValue()?.toolbar ?? {};
19551
+ const nextSorts = toggleListColumnSortQueries(toActiveListColumnSortQueries(toolbar.sorts), columnName, {
19552
+ multiSort: event.ctrlKey || event.metaKey,
19553
+ viewDefaultSorts: this.getActiveViewSorts(),
19554
+ });
19555
+ this.listColumnSorts.set(nextSorts);
19556
+ this.setValue({
19557
+ ...this.getValue(),
19558
+ toolbar: {
19559
+ ...toolbar,
19560
+ sorts: nextSorts,
19561
+ },
19562
+ });
19563
+ }
19564
+ isListColumnSortable(columnName) {
19565
+ const instance = this.listWidget()?.instance;
19566
+ const columns = (instance?.options()?.['columns'] ??
19567
+ this.listNode()?.options?.['columns'] ??
19568
+ []);
19569
+ return flattenDataListWidgetColumns(columns).some((column) => column.name === columnName && !!column.sortEnabled);
19570
+ }
19571
+ getActiveViewSorts() {
19572
+ const viewName = this.getValue()?.toolbar?.view;
19573
+ const views = this.resolvedQueryViews();
19574
+ const view = views.find((item) => item.name === viewName) ?? views[0];
19575
+ return toActiveListColumnSortQueries(view?.sorts);
19576
+ }
19541
19577
  // ngDoCheck(): void {
19542
19578
  // console.log(this.listWidget()?.instance.output('selectedRows'));
19543
19579
  // }
@@ -20067,6 +20103,7 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
20067
20103
  if (changeTracker.isSortChanged) {
20068
20104
  const sortOptions = this.toDataSourceSortOptions(queries.sorts);
20069
20105
  dataSource.sort(...sortOptions);
20106
+ this.listColumnSorts.set(toActiveListColumnSortQueries(queries.sorts));
20070
20107
  }
20071
20108
  }
20072
20109
  /**
@@ -20177,16 +20214,10 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
20177
20214
  this.listDataSource.set(dataSource);
20178
20215
  this.cardItems.set(this.readDataSourceRows(dataSource));
20179
20216
  }
20180
- this.listNode.set({
20181
- type: AXPWidgetsCatalog.dataList,
20182
- options: listOptions,
20183
- path: `table`,
20184
- name: 'table',
20185
- mode: 'view',
20186
- defaultValue: this.getValue()?.table,
20187
- });
20188
20217
  const parentFilters = this.getMergedToolbarFilters();
20189
- const viewFilters = initialView ? queryViewConditionsToFilterQueries(initialView) : [];
20218
+ const viewFilters = initialView
20219
+ ? withQueryViewFilterVisibility(initialView, queryViewConditionsToFilterQueries(initialView))
20220
+ : [];
20190
20221
  const toolbarState = {
20191
20222
  view: initialView?.name,
20192
20223
  filters: initialView ? [...parentFilters, ...viewFilters] : parentFilters,
@@ -20196,6 +20227,19 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
20196
20227
  : this.getValue()?.toolbar?.columns,
20197
20228
  displayMode: this.listDisplayMode(),
20198
20229
  };
20230
+ this.listColumnSorts.set(toActiveListColumnSortQueries(toolbarState.sorts));
20231
+ this.listNode.set({
20232
+ type: AXPWidgetsCatalog.dataList,
20233
+ options: {
20234
+ ...listOptions,
20235
+ columnSorts: this.listColumnSorts,
20236
+ onColumnSort: (columnName, event) => this.handleColumnSort(columnName, event),
20237
+ },
20238
+ path: `table`,
20239
+ name: 'table',
20240
+ mode: 'view',
20241
+ defaultValue: this.getValue()?.table,
20242
+ });
20199
20243
  this.setValue({
20200
20244
  ...this.getValue(),
20201
20245
  toolbar: {
@@ -21561,6 +21605,180 @@ var lookupWidgetView_component = /*#__PURE__*/Object.freeze({
21561
21605
  AXPLookupWidgetViewComponent: AXPLookupWidgetViewComponent
21562
21606
  });
21563
21607
 
21608
+ const AXP_LOOKUP_FILTER_DEFAULT_OPERATOR = 'equal';
21609
+ const AXPLookupWidget = {
21610
+ name: 'lookup-editor',
21611
+ title: 'Lookup',
21612
+ categories: [],
21613
+ groups: [AXPWidgetGroupEnum.EntityWidget],
21614
+ defaultFilterWidgetName: 'lookup-filter',
21615
+ type: 'editor',
21616
+ icon: 'fa-light fa-list-radio',
21617
+ properties: [
21618
+ AXP_DISABLED_PROPERTY,
21619
+ AXP_ALLOW_CLEAR_PROPERTY,
21620
+ AXP_DATA_PATH_PROPERTY,
21621
+ {
21622
+ name: 'expose',
21623
+ title: 'Expose',
21624
+ group: AXP_DATA_PROPERTY_GROUP,
21625
+ schema: {
21626
+ dataType: 'string',
21627
+ interface: {
21628
+ name: 'expose',
21629
+ path: 'options.expose',
21630
+ type: AXPWidgetsCatalog.select,
21631
+ },
21632
+ },
21633
+ visible: true,
21634
+ },
21635
+ {
21636
+ name: 'entity',
21637
+ title: 'Entity',
21638
+ group: AXP_DATA_PROPERTY_GROUP,
21639
+ schema: {
21640
+ dataType: 'string',
21641
+ interface: {
21642
+ name: 'entity',
21643
+ path: 'options.entity',
21644
+ type: AXPWidgetsCatalog.text,
21645
+ },
21646
+ },
21647
+ visible: true,
21648
+ },
21649
+ AXP_ALLOW_MULTIPLE_PROPERTY,
21650
+ createBooleanProperty({
21651
+ name: 'popoverEnabled',
21652
+ title: 'Entity Detail Popover',
21653
+ path: 'options.popover.enabled',
21654
+ group: AXP_BEHAVIOR_PROPERTY_GROUP,
21655
+ defaultValue: true,
21656
+ }),
21657
+ {
21658
+ name: 'displayFormat',
21659
+ title: 'Display Format',
21660
+ group: AXP_DATA_PROPERTY_GROUP,
21661
+ schema: {
21662
+ dataType: 'string',
21663
+ interface: {
21664
+ name: 'displayFormat',
21665
+ path: 'options.displayFormat',
21666
+ type: AXPWidgetsCatalog.template,
21667
+ },
21668
+ },
21669
+ visible: true,
21670
+ },
21671
+ {
21672
+ name: 'columnResolveStrategy',
21673
+ title: 'Column resolve strategy',
21674
+ group: AXP_DATA_PROPERTY_GROUP,
21675
+ schema: {
21676
+ dataType: 'string',
21677
+ defaultValue: 'hydrated',
21678
+ interface: {
21679
+ name: 'columnResolveStrategy',
21680
+ path: 'options.columnResolve.strategy',
21681
+ type: AXPWidgetsCatalog.select,
21682
+ valueTransforms: objectKeyValueTransforms('id'),
21683
+ options: {
21684
+ dataSource: [
21685
+ { id: 'hydrated', title: 'Hydrated (titles on row)' },
21686
+ { id: 'idsWithCount', title: 'Ids + count on row (load titles on open)' },
21687
+ { id: 'countOnly', title: 'Count on row (named query on open)' },
21688
+ ],
21689
+ },
21690
+ },
21691
+ },
21692
+ visible: true,
21693
+ },
21694
+ {
21695
+ name: 'columnResolveCountFieldPath',
21696
+ title: 'Column resolve — count field path',
21697
+ group: AXP_DATA_PROPERTY_GROUP,
21698
+ schema: {
21699
+ dataType: 'string',
21700
+ interface: {
21701
+ name: 'columnResolveCountFieldPath',
21702
+ path: 'options.columnResolve.countFieldPath',
21703
+ type: AXPWidgetsCatalog.text,
21704
+ },
21705
+ },
21706
+ visible: true,
21707
+ },
21708
+ {
21709
+ name: 'columnResolveIdsPath',
21710
+ title: 'Column resolve — ids path',
21711
+ group: AXP_DATA_PROPERTY_GROUP,
21712
+ schema: {
21713
+ dataType: 'string',
21714
+ interface: {
21715
+ name: 'columnResolveIdsPath',
21716
+ path: 'options.columnResolve.idsPath',
21717
+ type: AXPWidgetsCatalog.text,
21718
+ },
21719
+ },
21720
+ visible: true,
21721
+ },
21722
+ {
21723
+ name: 'columnResolveQueryKey',
21724
+ title: 'Column resolve — query key (countOnly)',
21725
+ group: AXP_DATA_PROPERTY_GROUP,
21726
+ schema: {
21727
+ dataType: 'string',
21728
+ interface: {
21729
+ name: 'columnResolveQueryKey',
21730
+ path: 'options.columnResolve.queryKey',
21731
+ type: AXPWidgetsCatalog.text,
21732
+ },
21733
+ },
21734
+ visible: true,
21735
+ },
21736
+ {
21737
+ name: 'columnResolveQueryParams',
21738
+ title: 'Column resolve — query params (JSON: param → row path)',
21739
+ group: AXP_DATA_PROPERTY_GROUP,
21740
+ schema: {
21741
+ dataType: 'string',
21742
+ interface: {
21743
+ name: 'columnResolveQueryParams',
21744
+ path: 'options.columnResolve.queryParams',
21745
+ type: AXPWidgetsCatalog.text,
21746
+ },
21747
+ },
21748
+ visible: true,
21749
+ },
21750
+ {
21751
+ name: 'columnResolveQueryResultItemsPath',
21752
+ title: 'Column resolve — query result items path',
21753
+ group: AXP_DATA_PROPERTY_GROUP,
21754
+ schema: {
21755
+ dataType: 'string',
21756
+ defaultValue: 'items',
21757
+ interface: {
21758
+ name: 'columnResolveQueryResultItemsPath',
21759
+ path: 'options.columnResolve.queryResultItemsPath',
21760
+ type: AXPWidgetsCatalog.text,
21761
+ },
21762
+ },
21763
+ visible: true,
21764
+ },
21765
+ ],
21766
+ components: {
21767
+ view: {
21768
+ component: () => Promise.resolve().then(function () { return lookupWidgetView_component; }).then((c) => c.AXPLookupWidgetViewComponent),
21769
+ },
21770
+ edit: {
21771
+ component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
21772
+ },
21773
+ column: {
21774
+ component: () => Promise.resolve().then(function () { return lookupWidgetColumn_component; }).then((c) => c.AXPLookupWidgetColumnComponent),
21775
+ },
21776
+ designer: {
21777
+ component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
21778
+ },
21779
+ },
21780
+ };
21781
+
21564
21782
  //#endregion
21565
21783
  class AXPEntityDataSelectorRowActionsService {
21566
21784
  constructor() {
@@ -23878,6 +24096,9 @@ class AXPLookupWidgetTableHostComponent extends NXValueComponent {
23878
24096
  this.treeSearchLoading.set(false);
23879
24097
  }
23880
24098
  onTriggerSearchInput(value) {
24099
+ if (!this.disabled() && !this.readonly()) {
24100
+ this.expanded.set(true);
24101
+ }
23881
24102
  this.searchText.set(value);
23882
24103
  this.#applySearch(value.trim());
23883
24104
  }
@@ -23914,6 +24135,10 @@ class AXPLookupWidgetTableHostComponent extends NXValueComponent {
23914
24135
  this.searchText.set(this.#itemDisplayText(event.item));
23915
24136
  this.#applySearch('');
23916
24137
  }
24138
+ /** Closes the inline lookup dropdown. */
24139
+ close() {
24140
+ this.expanded.set(false);
24141
+ }
23917
24142
  /** Clears the selection. Used by projected `ax-clear-button`. */
23918
24143
  reset(_isUserInteraction = false) {
23919
24144
  if (this.disabled() || this.readonly()) {
@@ -24018,7 +24243,7 @@ class AXPLookupWidgetTableHostComponent extends NXValueComponent {
24018
24243
  { provide: AXComponent, useExisting: AXPLookupWidgetTableHostComponent },
24019
24244
  { provide: AXClearableComponent, useExisting: AXPLookupWidgetTableHostComponent },
24020
24245
  { provide: AXValuableComponent, useExisting: AXPLookupWidgetTableHostComponent },
24021
- ], viewQueries: [{ propertyName: "triggerSearchInput", first: true, predicate: ["triggerSearchInput"], descendants: true, isSignal: true }, { propertyName: "popoverRef", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n #origin\n class=\"ax-editor-container ax-solid ax-default ax-lookup-trigger w-full\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: valueItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!searchable()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !searchable()\"\n [attr.inputmode]=\"searchable() ? null : 'none'\"\n [value]=\"triggerInputValue()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button type=\"button\" class=\"ax-general-button-icon\" tabindex=\"-1\" [disabled]=\"disabled() || readonly()\">\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n\n <ng-content select=\"ax-validation-rule\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"origin.offsetWidth + 'px'\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" (keydown.escape)=\"expanded.set(false)\">\n <axp-lookup-widget-table-panel\n [dataSource]=\"resolvedTableDataSource()\"\n [columns]=\"columns()\"\n [highlightText]=\"highlightQuery()\"\n [valueField]=\"valueField()\"\n [disabledField]=\"disabledField()\"\n [parentField]=\"parentField()\"\n [hasChildrenField]=\"hasChildrenField()\"\n [selectedValues]=\"selectedValues()\"\n [rowActions]=\"rowActions()\"\n (itemClick)=\"handleTableItemClick($event)\"\n (rowAction)=\"handleTableRowAction($event)\"\n ></axp-lookup-widget-table-panel>\n </div>\n</ax-popover>\n", styles: ["@layer properties;:host{display:block;width:100%}:host .ax-editor-container{justify-content:flex-start;gap:var(--spacing, .25rem)}:host .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}:host .ax-lookup-value{position:relative;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}:host .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-input-overlay{position:absolute;inset:0;z-index:10;margin:0!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0!important;color:transparent;caret-color:transparent}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "closeOnNavigation", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "component", type: AXPLookupWidgetTablePanelComponent, selector: "axp-lookup-widget-table-panel", inputs: ["dataSource", "columns", "valueField", "disabledField", "selectedValues", "parentField", "hasChildrenField", "itemHeight", "maxVisibleItems", "alternate", "highlightText", "rowActions"], outputs: ["itemClick", "rowAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24246
+ ], viewQueries: [{ propertyName: "triggerSearchInput", first: true, predicate: ["triggerSearchInput"], descendants: true, isSignal: true }, { propertyName: "popoverRef", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n #origin\n class=\"ax-editor-container ax-solid ax-default ax-lookup-trigger w-full\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: valueItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!searchable()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !searchable()\"\n [attr.inputmode]=\"searchable() ? null : 'none'\"\n [value]=\"triggerInputValue()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <button type=\"button\" class=\"ax-general-button-icon\" tabindex=\"-1\" [disabled]=\"disabled() || readonly()\">\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n\n <ng-content select=\"ax-validation-rule\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"origin.offsetWidth + 'px'\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" (keydown.escape)=\"expanded.set(false)\">\n <axp-lookup-widget-table-panel\n [dataSource]=\"resolvedTableDataSource()\"\n [columns]=\"columns()\"\n [highlightText]=\"highlightQuery()\"\n [valueField]=\"valueField()\"\n [disabledField]=\"disabledField()\"\n [parentField]=\"parentField()\"\n [hasChildrenField]=\"hasChildrenField()\"\n [selectedValues]=\"selectedValues()\"\n [rowActions]=\"rowActions()\"\n (itemClick)=\"handleTableItemClick($event)\"\n (rowAction)=\"handleTableRowAction($event)\"\n ></axp-lookup-widget-table-panel>\n </div>\n</ax-popover>\n", styles: ["@layer properties;:host{display:block;width:100%}:host .ax-editor-container{justify-content:flex-start;gap:var(--spacing, .25rem)}:host .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}:host .ax-lookup-value{position:relative;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}:host .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-input-overlay{position:absolute;inset:0;z-index:10;margin:0!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0!important;color:transparent;caret-color:transparent}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "closeOnNavigation", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "component", type: AXPLookupWidgetTablePanelComponent, selector: "axp-lookup-widget-table-panel", inputs: ["dataSource", "columns", "valueField", "disabledField", "selectedValues", "parentField", "hasChildrenField", "itemHeight", "maxVisibleItems", "alternate", "highlightText", "rowActions"], outputs: ["itemClick", "rowAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24022
24247
  }
24023
24248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLookupWidgetTableHostComponent, decorators: [{
24024
24249
  type: Component,
@@ -24028,7 +24253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
24028
24253
  { provide: AXComponent, useExisting: AXPLookupWidgetTableHostComponent },
24029
24254
  { provide: AXClearableComponent, useExisting: AXPLookupWidgetTableHostComponent },
24030
24255
  { provide: AXValuableComponent, useExisting: AXPLookupWidgetTableHostComponent },
24031
- ], template: "<div\n #origin\n class=\"ax-editor-container ax-solid ax-default ax-lookup-trigger w-full\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: valueItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!searchable()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !searchable()\"\n [attr.inputmode]=\"searchable() ? null : 'none'\"\n [value]=\"triggerInputValue()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button type=\"button\" class=\"ax-general-button-icon\" tabindex=\"-1\" [disabled]=\"disabled() || readonly()\">\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n\n <ng-content select=\"ax-validation-rule\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"origin.offsetWidth + 'px'\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" (keydown.escape)=\"expanded.set(false)\">\n <axp-lookup-widget-table-panel\n [dataSource]=\"resolvedTableDataSource()\"\n [columns]=\"columns()\"\n [highlightText]=\"highlightQuery()\"\n [valueField]=\"valueField()\"\n [disabledField]=\"disabledField()\"\n [parentField]=\"parentField()\"\n [hasChildrenField]=\"hasChildrenField()\"\n [selectedValues]=\"selectedValues()\"\n [rowActions]=\"rowActions()\"\n (itemClick)=\"handleTableItemClick($event)\"\n (rowAction)=\"handleTableRowAction($event)\"\n ></axp-lookup-widget-table-panel>\n </div>\n</ax-popover>\n", styles: ["@layer properties;:host{display:block;width:100%}:host .ax-editor-container{justify-content:flex-start;gap:var(--spacing, .25rem)}:host .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}:host .ax-lookup-value{position:relative;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}:host .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-input-overlay{position:absolute;inset:0;z-index:10;margin:0!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0!important;color:transparent;caret-color:transparent}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
24256
+ ], template: "<div\n #origin\n class=\"ax-editor-container ax-solid ax-default ax-lookup-trigger w-full\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: valueItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!searchable()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !searchable()\"\n [attr.inputmode]=\"searchable() ? null : 'none'\"\n [value]=\"triggerInputValue()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <button type=\"button\" class=\"ax-general-button-icon\" tabindex=\"-1\" [disabled]=\"disabled() || readonly()\">\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n\n <ng-content select=\"ax-validation-rule\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"origin.offsetWidth + 'px'\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" (keydown.escape)=\"expanded.set(false)\">\n <axp-lookup-widget-table-panel\n [dataSource]=\"resolvedTableDataSource()\"\n [columns]=\"columns()\"\n [highlightText]=\"highlightQuery()\"\n [valueField]=\"valueField()\"\n [disabledField]=\"disabledField()\"\n [parentField]=\"parentField()\"\n [hasChildrenField]=\"hasChildrenField()\"\n [selectedValues]=\"selectedValues()\"\n [rowActions]=\"rowActions()\"\n (itemClick)=\"handleTableItemClick($event)\"\n (rowAction)=\"handleTableRowAction($event)\"\n ></axp-lookup-widget-table-panel>\n </div>\n</ax-popover>\n", styles: ["@layer properties;:host{display:block;width:100%}:host .ax-editor-container{justify-content:flex-start;gap:var(--spacing, .25rem)}:host .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}:host .ax-lookup-value{position:relative;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}:host .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:0px;flex:1;align-items:center;overflow:hidden}:host .ax-lookup-input-overlay{position:absolute;inset:0;z-index:10;margin:0!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0!important;color:transparent;caret-color:transparent}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
24032
24257
  }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], treeDataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeDataSource", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: true }] }], valueField: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueField", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], disabledField: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledField", required: false }] }], parentField: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentField", required: false }] }], hasChildrenField: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasChildrenField", required: false }] }], searchFields: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchFields", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], valueItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueItems", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], selectedTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedTemplate", required: false }] }], rowActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowActions", required: false }] }], onItemSelected: [{ type: i0.Output, args: ["onItemSelected"] }], triggerSearchInput: [{ type: i0.ViewChild, args: ['triggerSearchInput', { isSignal: true }] }], popoverRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPopoverComponent), { isSignal: true }] }] } });
24033
24258
 
24034
24259
  //#region ----- Imports -----
@@ -24061,8 +24286,6 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
24061
24286
  ...(ngDevMode ? [{ debugName: "lookup" }] : /* istanbul ignore next */ []));
24062
24287
  this.tableLookupHost = viewChild(AXPLookupWidgetTableHostComponent, /* @ts-ignore */
24063
24288
  ...(ngDevMode ? [{ debugName: "tableLookupHost" }] : /* istanbul ignore next */ []));
24064
- this.popupTagBox = viewChild('popupTagBox', /* @ts-ignore */
24065
- ...(ngDevMode ? [{ debugName: "popupTagBox" }] : /* istanbul ignore next */ []));
24066
24289
  //#endregion
24067
24290
  //#region ----- State Signals -----
24068
24291
  /** Toggled to remount ax-lookup after locale / language changes. */
@@ -24139,7 +24362,7 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
24139
24362
  this.isPopupLook = computed(() => this.look() === 'popup', /* @ts-ignore */
24140
24363
  ...(ngDevMode ? [{ debugName: "isPopupLook" }] : /* istanbul ignore next */ []));
24141
24364
  this.lookupMode = computed(() => {
24142
- if (this.entityDef()?.parentKey && this.look() !== 'select' && this.look() !== 'popup') {
24365
+ if (this.entityDef()?.parentKey && this.look() !== 'select') {
24143
24366
  return this.multiple() ? 'multi-select-tree' : 'multi-column-tree';
24144
24367
  }
24145
24368
  if (this.multiple()) {
@@ -24248,7 +24471,7 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
24248
24471
  this.localeEpoch();
24249
24472
  this.customFilter();
24250
24473
  const entity = this.entityDef();
24251
- if (!entity?.parentKey || this.look() === 'select' || this.look() === 'popup') {
24474
+ if (!entity?.parentKey || this.look() === 'select') {
24252
24475
  return EMPTY_TREE_DATA_SOURCE;
24253
24476
  }
24254
24477
  if (this.hasPendingCascadeFilter()) {
@@ -24447,7 +24670,7 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
24447
24670
  value: newValue,
24448
24671
  displayText: this.multiple() ? labels.join(', ') : (labels[0] ?? ''),
24449
24672
  operation: {
24450
- type: this.multiple() ? 'in' : 'equal',
24673
+ type: this.multiple() ? 'in' : AXP_LOOKUP_FILTER_DEFAULT_OPERATOR,
24451
24674
  },
24452
24675
  });
24453
24676
  }
@@ -24510,7 +24733,7 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
24510
24733
  value,
24511
24734
  displayText: this.multiple() ? [] : '',
24512
24735
  operation: {
24513
- type: this.multiple() ? 'in' : 'equal',
24736
+ type: this.multiple() ? 'in' : AXP_LOOKUP_FILTER_DEFAULT_OPERATOR,
24514
24737
  },
24515
24738
  });
24516
24739
  return;
@@ -24532,43 +24755,13 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
24532
24755
  await this.executeCreate(mode);
24533
24756
  }
24534
24757
  handlePopupTriggerClick(event) {
24535
- if (event instanceof MouseEvent) {
24536
- event.stopPropagation();
24537
- }
24758
+ const native = event.nativeEvent;
24759
+ native?.stopPropagation();
24760
+ native?.preventDefault();
24761
+ this.lookup()?.close();
24762
+ this.tableLookupHost()?.close();
24538
24763
  void this.openPopupSelector();
24539
24764
  }
24540
- handlePopupKeyUp(event) {
24541
- const keyEvent = event.nativeEvent;
24542
- if (keyEvent.code === 'Enter' || keyEvent.code === 'NumpadEnter' || keyEvent.code === 'ArrowDown') {
24543
- void this.openPopupSelector();
24544
- }
24545
- }
24546
- handlePopupBlur(_event) {
24547
- this.popupTagBox()?.inputValue.set('');
24548
- }
24549
- handlePopupValueChange(event) {
24550
- if (!event.isUserInteraction) {
24551
- return;
24552
- }
24553
- if (isNil(event.value) || isEmpty(event.value)) {
24554
- this.setItems([]);
24555
- }
24556
- }
24557
- handlePopupClearClick() {
24558
- this.setItems([]);
24559
- }
24560
- handlePopupRemoveItem(event, index) {
24561
- event.stopPropagation();
24562
- if (this.isLookupDisabled() || this.isReadonly()) {
24563
- return;
24564
- }
24565
- const currentItems = this.selectedItems();
24566
- if (index < 0 || index >= currentItems.length) {
24567
- return;
24568
- }
24569
- const nextItems = currentItems.filter((_, i) => i !== index);
24570
- this.setItems(nextItems);
24571
- }
24572
24765
  //#endregion
24573
24766
  //#region ----- Popup Selector -----
24574
24767
  async openPopupSelector() {
@@ -24956,14 +25149,13 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
24956
25149
  }
24957
25150
  clear() {
24958
25151
  this.selectedItems.set([]);
24959
- this.popupTagBox()?.reset(false);
24960
25152
  this.tableLookupHost()?.reset(false) ?? this.lookup()?.reset(false);
24961
25153
  }
24962
25154
  focus() {
24963
25155
  this.shouldFocus.set(true);
24964
25156
  }
24965
25157
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24966
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: "axp-lookup-widget-edit", host: { classAttribute: "w-full" }, viewQueries: [{ propertyName: "lookup", first: true, predicate: AXLookupComponent, descendants: true, isSignal: true }, { propertyName: "tableLookupHost", first: true, predicate: AXPLookupWidgetTableHostComponent, descendants: true, isSignal: true }, { propertyName: "popupTagBox", first: true, predicate: ["popupTagBox"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (entityDef() && editorKey()) {\n <!-- ----- Entity lookup editor ----- -->\n <div class=\"flex items-center gap-1 w-full\">\n <!--------------------------------------------------------------->\n <!-- ----- Popup look: full entity data selector ----- -->\n @if (isPopupLook()) {\n <ax-tag-box\n #popupTagBox\n class=\"flex-1 min-w-0\"\n [tagTemplate]=\"popupTagTemplate\"\n [ngModel]=\"selectedItems()\"\n [textField]=\"displayField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handlePopupValueChange($event)\"\n [placeholder]=\"selectedItems().length ? '' : ((placeholderText() | translate | async) ?? '')\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [readonly]=\"true\"\n [disabled]=\"isLookupDisabled()\"\n (click)=\"handlePopupTriggerClick($event)\"\n (onKeyUp)=\"handlePopupKeyUp($event)\"\n (onBlur)=\"handlePopupBlur($event)\"\n >\n @if (hasClearButton() && selectedItems().length > 0) {\n <ax-clear-button (click)=\"handlePopupClearClick()\"></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button\n color=\"ghost\"\n look=\"blank\"\n [disabled]=\"isLookupDisabled() || isReadonly() || isLoading()\"\n (onClick)=\"handlePopupTriggerClick($event)\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n <!-- ----- Search icon opens entity selector ----- -->\n @else {\n <ax-icon icon=\"far fa-search\"></ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n }\n <!-- ----- Inline ax-lookup / table host ----- -->\n @else if (effectiveDataSource(); as dataSource) {\n <!-- ----- Multi-column modes: platform widget column renderer ----- -->\n @if (isTableLookupMode()) {\n <axp-lookup-widget-table-host\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [dataSource]=\"dataSource\"\n [columns]=\"lookupWidgetTableColumns()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [disabledField]=\"'disabled'\"\n [parentField]=\"lookupMode() === 'multi-column-tree' ? treeParentField() : undefined\"\n [treeDataSource]=\"lookupMode() === 'multi-column-tree' ? entityTreeDataSource() : undefined\"\n [searchFields]=\"lookupTreeSearchFields()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [selectedTemplate]=\"lookupItemTemplate\"\n [rowActions]=\"rowActionsHandler()\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </axp-lookup-widget-table-host>\n }\n <!-- ----- List / tree chip modes: ax-lookup ----- -->\n @else {\n <ax-lookup\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [treeParentField]=\"treeParentField()\"\n [dataSource]=\"dataSource\"\n [treeDataSource]=\"entityTreeDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [itemTemplate]=\"\n $any(\n multiple()\n ? hasRowActionPrimary()\n ? lookupListItemWithActionsTemplate\n : lookupItemTemplate\n : lookupDropDownListItemTemplate\n )\n \"\n [selectedTemplate]=\"lookupItemTemplate\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-lookup>\n }\n }\n <!--------------------------------------------------------------->\n <!-- ----- Inline create for the lookup entity ----- -->\n @if (resolvedCreate().enabled) {\n <ax-button\n color=\"primary\"\n look=\"twotone\"\n [disabled]=\"isLookupDisabled() || isLoading()\"\n (onClick)=\"handleCreateClick($event)\"\n [title]=\"'@general:actions.create.title' | translate | async\"\n >\n <ax-icon icon=\"far fa-plus\"></ax-icon>\n </ax-button>\n }\n </div>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"ax-lookup-option-text\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n</ng-template>\n<!-- ----- Drop-down-list rows: library skips .ax-lookup-option chrome when itemTemplate is set ----- -->\n<ng-template #lookupDropDownListItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex h-full w-full min-w-0 items-center gap-1 px-3 text-sm\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <!-- ----- Primary row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n }\n </span>\n</ng-template>\n<!-- ----- Multi-select list rows with row actions ----- -->\n<ng-template #lookupListItemWithActionsTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex w-full min-w-0 items-center gap-1\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n </span>\n</ng-template>\n<!-- ----- Popup look selected chips ----- -->\n<ng-template #popupTagTemplate let-item let-index=\"index\">\n <div class=\"inline-flex items-center gap-1.5 rounded-md px-3 py-1 text-sm surface\">\n <span>{{ (getLookupItemLabel(item) | translate | async) ?? '' }}</span>\n @if (!isReadonly() && !isLookupDisabled()) {\n <button type=\"button\" (click)=\"handlePopupRemoveItem($event, index)\">\n <ax-icon class=\"ax-icon ax-icon-close\"></ax-icon>\n </button>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "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: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.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: AXFormModule }, { kind: "directive", type: i5.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "component", type: AXHighlightTextComponent, selector: "ax-highlight-text", inputs: ["text", "query", "highlightDisabled", "highlightOptions"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1$2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "component", type: AXPLookupWidgetTableHostComponent, selector: "axp-lookup-widget-table-host", inputs: ["name", "placeholder", "caption", "searchPlaceholder", "dataSource", "treeDataSource", "columns", "valueField", "textField", "disabledField", "parentField", "hasChildrenField", "searchFields", "value", "valueItems", "disabled", "readonly", "searchable", "selectedTemplate", "rowActions"], outputs: ["valueChange", "onItemSelected"] }, { kind: "ngmodule", type: AXTagBoxModule }, { kind: "component", type: i6$1.AXTagBoxComponent, selector: "ax-tag-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "allowNull", "type", "look", "addOnComma", "addOnEnter", "valueField", "textField", "readonlyField", "allowDuplicateValues", "tagTemplate"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onTagClick", "onTagDblClick", "onTagContextMenu"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25158
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: "axp-lookup-widget-edit", host: { classAttribute: "w-full" }, viewQueries: [{ propertyName: "lookup", first: true, predicate: AXLookupComponent, descendants: true, isSignal: true }, { propertyName: "tableLookupHost", first: true, predicate: AXPLookupWidgetTableHostComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (entityDef() && editorKey()) {\n <!-- ----- Entity lookup editor ----- -->\n <div class=\"flex items-center gap-1 w-full\">\n <!--------------------------------------------------------------->\n <!-- ----- Inline ax-lookup / table host (popup look adds magnifier suffix) ----- -->\n @if (effectiveDataSource(); as dataSource) {\n <!-- ----- Multi-column modes: platform widget column renderer ----- -->\n @if (isTableLookupMode()) {\n <axp-lookup-widget-table-host\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [dataSource]=\"dataSource\"\n [columns]=\"lookupWidgetTableColumns()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [disabledField]=\"'disabled'\"\n [parentField]=\"lookupMode() === 'multi-column-tree' ? treeParentField() : undefined\"\n [treeDataSource]=\"lookupMode() === 'multi-column-tree' ? entityTreeDataSource() : undefined\"\n [searchFields]=\"lookupTreeSearchFields()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [selectedTemplate]=\"lookupItemTemplate\"\n [rowActions]=\"rowActionsHandler()\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (isPopupLook()) {\n <ax-suffix>\n <ax-button\n color=\"ghost\"\n look=\"blank\"\n [disabled]=\"isLookupDisabled() || isReadonly() || isLoading()\"\n (onClick)=\"handlePopupTriggerClick($event)\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n <!-- ----- Magnifier opens full entity data selector ----- -->\n @else {\n <ax-icon icon=\"far fa-search\"></ax-icon>\n }\n </ax-button>\n </ax-suffix>\n }\n </axp-lookup-widget-table-host>\n }\n <!-- ----- List / tree chip modes: ax-lookup ----- -->\n @else {\n <ax-lookup\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [treeParentField]=\"treeParentField()\"\n [dataSource]=\"dataSource\"\n [treeDataSource]=\"entityTreeDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [itemTemplate]=\"\n $any(\n multiple()\n ? hasRowActionPrimary()\n ? lookupListItemWithActionsTemplate\n : lookupItemTemplate\n : lookupDropDownListItemTemplate\n )\n \"\n [selectedTemplate]=\"lookupItemTemplate\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (isPopupLook()) {\n <ax-suffix>\n <ax-button\n color=\"ghost\"\n look=\"blank\"\n [disabled]=\"isLookupDisabled() || isReadonly() || isLoading()\"\n (onClick)=\"handlePopupTriggerClick($event)\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n <!-- ----- Magnifier opens full entity data selector ----- -->\n @else {\n <ax-icon icon=\"far fa-search\"></ax-icon>\n }\n </ax-button>\n </ax-suffix>\n }\n </ax-lookup>\n }\n }\n <!--------------------------------------------------------------->\n <!-- ----- Inline create for the lookup entity ----- -->\n @if (resolvedCreate().enabled) {\n <ax-button\n color=\"primary\"\n look=\"twotone\"\n [disabled]=\"isLookupDisabled() || isLoading()\"\n (onClick)=\"handleCreateClick($event)\"\n [title]=\"'@general:actions.create.title' | translate | async\"\n >\n <ax-icon icon=\"far fa-plus\"></ax-icon>\n </ax-button>\n }\n </div>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"ax-lookup-option-text\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n</ng-template>\n<!-- ----- Drop-down-list rows: library skips .ax-lookup-option chrome when itemTemplate is set ----- -->\n<ng-template #lookupDropDownListItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex h-full w-full min-w-0 items-center gap-1 px-3 text-sm\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <!-- ----- Primary row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n }\n </span>\n</ng-template>\n<!-- ----- Multi-select list rows with row actions ----- -->\n<ng-template #lookupListItemWithActionsTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex w-full min-w-0 items-center gap-1\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n </span>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "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: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.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: AXFormModule }, { kind: "directive", type: i5.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "component", type: AXHighlightTextComponent, selector: "ax-highlight-text", inputs: ["text", "query", "highlightDisabled", "highlightOptions"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1$2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "component", type: AXPLookupWidgetTableHostComponent, selector: "axp-lookup-widget-table-host", inputs: ["name", "placeholder", "caption", "searchPlaceholder", "dataSource", "treeDataSource", "columns", "valueField", "textField", "disabledField", "parentField", "hasChildrenField", "searchFields", "value", "valueItems", "disabled", "readonly", "searchable", "selectedTemplate", "rowActions"], outputs: ["valueChange", "onItemSelected"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24967
25159
  }
24968
25160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{
24969
25161
  type: Component,
@@ -24979,11 +25171,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
24979
25171
  AXLoadingModule,
24980
25172
  AXLookupComponent,
24981
25173
  AXPLookupWidgetTableHostComponent,
24982
- AXTagBoxModule,
24983
25174
  AXTranslationModule,
24984
25175
  AXValidationModule,
24985
- ], template: "@if (entityDef() && editorKey()) {\n <!-- ----- Entity lookup editor ----- -->\n <div class=\"flex items-center gap-1 w-full\">\n <!--------------------------------------------------------------->\n <!-- ----- Popup look: full entity data selector ----- -->\n @if (isPopupLook()) {\n <ax-tag-box\n #popupTagBox\n class=\"flex-1 min-w-0\"\n [tagTemplate]=\"popupTagTemplate\"\n [ngModel]=\"selectedItems()\"\n [textField]=\"displayField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handlePopupValueChange($event)\"\n [placeholder]=\"selectedItems().length ? '' : ((placeholderText() | translate | async) ?? '')\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [readonly]=\"true\"\n [disabled]=\"isLookupDisabled()\"\n (click)=\"handlePopupTriggerClick($event)\"\n (onKeyUp)=\"handlePopupKeyUp($event)\"\n (onBlur)=\"handlePopupBlur($event)\"\n >\n @if (hasClearButton() && selectedItems().length > 0) {\n <ax-clear-button (click)=\"handlePopupClearClick()\"></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button\n color=\"ghost\"\n look=\"blank\"\n [disabled]=\"isLookupDisabled() || isReadonly() || isLoading()\"\n (onClick)=\"handlePopupTriggerClick($event)\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n <!-- ----- Search icon opens entity selector ----- -->\n @else {\n <ax-icon icon=\"far fa-search\"></ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n }\n <!-- ----- Inline ax-lookup / table host ----- -->\n @else if (effectiveDataSource(); as dataSource) {\n <!-- ----- Multi-column modes: platform widget column renderer ----- -->\n @if (isTableLookupMode()) {\n <axp-lookup-widget-table-host\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [dataSource]=\"dataSource\"\n [columns]=\"lookupWidgetTableColumns()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [disabledField]=\"'disabled'\"\n [parentField]=\"lookupMode() === 'multi-column-tree' ? treeParentField() : undefined\"\n [treeDataSource]=\"lookupMode() === 'multi-column-tree' ? entityTreeDataSource() : undefined\"\n [searchFields]=\"lookupTreeSearchFields()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [selectedTemplate]=\"lookupItemTemplate\"\n [rowActions]=\"rowActionsHandler()\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </axp-lookup-widget-table-host>\n }\n <!-- ----- List / tree chip modes: ax-lookup ----- -->\n @else {\n <ax-lookup\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [treeParentField]=\"treeParentField()\"\n [dataSource]=\"dataSource\"\n [treeDataSource]=\"entityTreeDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [itemTemplate]=\"\n $any(\n multiple()\n ? hasRowActionPrimary()\n ? lookupListItemWithActionsTemplate\n : lookupItemTemplate\n : lookupDropDownListItemTemplate\n )\n \"\n [selectedTemplate]=\"lookupItemTemplate\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-lookup>\n }\n }\n <!--------------------------------------------------------------->\n <!-- ----- Inline create for the lookup entity ----- -->\n @if (resolvedCreate().enabled) {\n <ax-button\n color=\"primary\"\n look=\"twotone\"\n [disabled]=\"isLookupDisabled() || isLoading()\"\n (onClick)=\"handleCreateClick($event)\"\n [title]=\"'@general:actions.create.title' | translate | async\"\n >\n <ax-icon icon=\"far fa-plus\"></ax-icon>\n </ax-button>\n }\n </div>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"ax-lookup-option-text\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n</ng-template>\n<!-- ----- Drop-down-list rows: library skips .ax-lookup-option chrome when itemTemplate is set ----- -->\n<ng-template #lookupDropDownListItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex h-full w-full min-w-0 items-center gap-1 px-3 text-sm\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <!-- ----- Primary row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n }\n </span>\n</ng-template>\n<!-- ----- Multi-select list rows with row actions ----- -->\n<ng-template #lookupListItemWithActionsTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex w-full min-w-0 items-center gap-1\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n </span>\n</ng-template>\n<!-- ----- Popup look selected chips ----- -->\n<ng-template #popupTagTemplate let-item let-index=\"index\">\n <div class=\"inline-flex items-center gap-1.5 rounded-md px-3 py-1 text-sm surface\">\n <span>{{ (getLookupItemLabel(item) | translate | async) ?? '' }}</span>\n @if (!isReadonly() && !isLookupDisabled()) {\n <button type=\"button\" (click)=\"handlePopupRemoveItem($event, index)\">\n <ax-icon class=\"ax-icon ax-icon-close\"></ax-icon>\n </button>\n }\n </div>\n</ng-template>\n" }]
24986
- }], propDecorators: { lookup: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXLookupComponent), { isSignal: true }] }], tableLookupHost: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPLookupWidgetTableHostComponent), { isSignal: true }] }], popupTagBox: [{ type: i0.ViewChild, args: ['popupTagBox', { isSignal: true }] }] } });
25176
+ ], template: "@if (entityDef() && editorKey()) {\n <!-- ----- Entity lookup editor ----- -->\n <div class=\"flex items-center gap-1 w-full\">\n <!--------------------------------------------------------------->\n <!-- ----- Inline ax-lookup / table host (popup look adds magnifier suffix) ----- -->\n @if (effectiveDataSource(); as dataSource) {\n <!-- ----- Multi-column modes: platform widget column renderer ----- -->\n @if (isTableLookupMode()) {\n <axp-lookup-widget-table-host\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [dataSource]=\"dataSource\"\n [columns]=\"lookupWidgetTableColumns()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [disabledField]=\"'disabled'\"\n [parentField]=\"lookupMode() === 'multi-column-tree' ? treeParentField() : undefined\"\n [treeDataSource]=\"lookupMode() === 'multi-column-tree' ? entityTreeDataSource() : undefined\"\n [searchFields]=\"lookupTreeSearchFields()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [selectedTemplate]=\"lookupItemTemplate\"\n [rowActions]=\"rowActionsHandler()\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (isPopupLook()) {\n <ax-suffix>\n <ax-button\n color=\"ghost\"\n look=\"blank\"\n [disabled]=\"isLookupDisabled() || isReadonly() || isLoading()\"\n (onClick)=\"handlePopupTriggerClick($event)\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n <!-- ----- Magnifier opens full entity data selector ----- -->\n @else {\n <ax-icon icon=\"far fa-search\"></ax-icon>\n }\n </ax-button>\n </ax-suffix>\n }\n </axp-lookup-widget-table-host>\n }\n <!-- ----- List / tree chip modes: ax-lookup ----- -->\n @else {\n <ax-lookup\n class=\"flex-1 min-w-0\"\n [name]=\"name ?? ''\"\n [placeholder]=\"(placeholderText() | translate | async) ?? ''\"\n [caption]=\"(placeholderText() | translate | async) ?? ''\"\n [searchPlaceholder]=\"('@general:widgets.lookup.search.placeholder' | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [treeParentField]=\"treeParentField()\"\n [dataSource]=\"dataSource\"\n [treeDataSource]=\"entityTreeDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"displayField()\"\n [value]=\"boundValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isLookupDisabled()\"\n [readonly]=\"isReadonly()\"\n [searchable]=\"true\"\n [itemTemplate]=\"\n $any(\n multiple()\n ? hasRowActionPrimary()\n ? lookupListItemWithActionsTemplate\n : lookupItemTemplate\n : lookupDropDownListItemTemplate\n )\n \"\n [selectedTemplate]=\"lookupItemTemplate\"\n (valueChange)=\"handleLookupModelChange($event)\"\n (onItemSelected)=\"handleLookupItemSelected($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (isPopupLook()) {\n <ax-suffix>\n <ax-button\n color=\"ghost\"\n look=\"blank\"\n [disabled]=\"isLookupDisabled() || isReadonly() || isLoading()\"\n (onClick)=\"handlePopupTriggerClick($event)\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n <!-- ----- Magnifier opens full entity data selector ----- -->\n @else {\n <ax-icon icon=\"far fa-search\"></ax-icon>\n }\n </ax-button>\n </ax-suffix>\n }\n </ax-lookup>\n }\n }\n <!--------------------------------------------------------------->\n <!-- ----- Inline create for the lookup entity ----- -->\n @if (resolvedCreate().enabled) {\n <ax-button\n color=\"primary\"\n look=\"twotone\"\n [disabled]=\"isLookupDisabled() || isLoading()\"\n (onClick)=\"handleCreateClick($event)\"\n [title]=\"'@general:actions.create.title' | translate | async\"\n >\n <ax-icon icon=\"far fa-plus\"></ax-icon>\n </ax-button>\n }\n </div>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"ax-lookup-option-text\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n</ng-template>\n<!-- ----- Drop-down-list rows: library skips .ax-lookup-option chrome when itemTemplate is set ----- -->\n<ng-template #lookupDropDownListItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex h-full w-full min-w-0 items-center gap-1 px-3 text-sm\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <!-- ----- Primary row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n }\n </span>\n</ng-template>\n<!-- ----- Multi-select list rows with row actions ----- -->\n<ng-template #lookupListItemWithActionsTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex w-full min-w-0 items-center gap-1\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n <span class=\"inline-flex shrink-0 items-center\" (mousedown)=\"handleLookupItemRowActionMouseDown($event)\">\n @for (action of rowActionPrimaryItems(); track action.name) {\n <ax-button\n look=\"blank\"\n color=\"ghost\"\n [title]=\"action.text\"\n (onClick)=\"handleItemRowAction($event, action.name, item)\"\n >\n @if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n }\n </ax-button>\n }\n </span>\n </span>\n</ng-template>\n" }]
25177
+ }], propDecorators: { lookup: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXLookupComponent), { isSignal: true }] }], tableLookupHost: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPLookupWidgetTableHostComponent), { isSignal: true }] }] } });
24987
25178
 
24988
25179
  var lookupWidgetEdit_component = /*#__PURE__*/Object.freeze({
24989
25180
  __proto__: null,
@@ -25772,179 +25963,6 @@ var lookupWidgetColumn_component = /*#__PURE__*/Object.freeze({
25772
25963
  AXPLookupWidgetColumnComponent: AXPLookupWidgetColumnComponent
25773
25964
  });
25774
25965
 
25775
- const AXPLookupWidget = {
25776
- name: 'lookup-editor',
25777
- title: 'Lookup',
25778
- categories: [],
25779
- groups: [AXPWidgetGroupEnum.EntityWidget],
25780
- defaultFilterWidgetName: 'lookup-filter',
25781
- type: 'editor',
25782
- icon: 'fa-light fa-list-radio',
25783
- properties: [
25784
- AXP_DISABLED_PROPERTY,
25785
- AXP_ALLOW_CLEAR_PROPERTY,
25786
- AXP_DATA_PATH_PROPERTY,
25787
- {
25788
- name: 'expose',
25789
- title: 'Expose',
25790
- group: AXP_DATA_PROPERTY_GROUP,
25791
- schema: {
25792
- dataType: 'string',
25793
- interface: {
25794
- name: 'expose',
25795
- path: 'options.expose',
25796
- type: AXPWidgetsCatalog.select,
25797
- },
25798
- },
25799
- visible: true,
25800
- },
25801
- {
25802
- name: 'entity',
25803
- title: 'Entity',
25804
- group: AXP_DATA_PROPERTY_GROUP,
25805
- schema: {
25806
- dataType: 'string',
25807
- interface: {
25808
- name: 'entity',
25809
- path: 'options.entity',
25810
- type: AXPWidgetsCatalog.text,
25811
- },
25812
- },
25813
- visible: true,
25814
- },
25815
- AXP_ALLOW_MULTIPLE_PROPERTY,
25816
- createBooleanProperty({
25817
- name: 'popoverEnabled',
25818
- title: 'Entity Detail Popover',
25819
- path: 'options.popover.enabled',
25820
- group: AXP_BEHAVIOR_PROPERTY_GROUP,
25821
- defaultValue: true,
25822
- }),
25823
- {
25824
- name: 'displayFormat',
25825
- title: 'Display Format',
25826
- group: AXP_DATA_PROPERTY_GROUP,
25827
- schema: {
25828
- dataType: 'string',
25829
- interface: {
25830
- name: 'displayFormat',
25831
- path: 'options.displayFormat',
25832
- type: AXPWidgetsCatalog.template,
25833
- },
25834
- },
25835
- visible: true,
25836
- },
25837
- {
25838
- name: 'columnResolveStrategy',
25839
- title: 'Column resolve strategy',
25840
- group: AXP_DATA_PROPERTY_GROUP,
25841
- schema: {
25842
- dataType: 'string',
25843
- defaultValue: 'hydrated',
25844
- interface: {
25845
- name: 'columnResolveStrategy',
25846
- path: 'options.columnResolve.strategy',
25847
- type: AXPWidgetsCatalog.select,
25848
- valueTransforms: objectKeyValueTransforms('id'),
25849
- options: {
25850
- dataSource: [
25851
- { id: 'hydrated', title: 'Hydrated (titles on row)' },
25852
- { id: 'idsWithCount', title: 'Ids + count on row (load titles on open)' },
25853
- { id: 'countOnly', title: 'Count on row (named query on open)' },
25854
- ],
25855
- },
25856
- },
25857
- },
25858
- visible: true,
25859
- },
25860
- {
25861
- name: 'columnResolveCountFieldPath',
25862
- title: 'Column resolve — count field path',
25863
- group: AXP_DATA_PROPERTY_GROUP,
25864
- schema: {
25865
- dataType: 'string',
25866
- interface: {
25867
- name: 'columnResolveCountFieldPath',
25868
- path: 'options.columnResolve.countFieldPath',
25869
- type: AXPWidgetsCatalog.text,
25870
- },
25871
- },
25872
- visible: true,
25873
- },
25874
- {
25875
- name: 'columnResolveIdsPath',
25876
- title: 'Column resolve — ids path',
25877
- group: AXP_DATA_PROPERTY_GROUP,
25878
- schema: {
25879
- dataType: 'string',
25880
- interface: {
25881
- name: 'columnResolveIdsPath',
25882
- path: 'options.columnResolve.idsPath',
25883
- type: AXPWidgetsCatalog.text,
25884
- },
25885
- },
25886
- visible: true,
25887
- },
25888
- {
25889
- name: 'columnResolveQueryKey',
25890
- title: 'Column resolve — query key (countOnly)',
25891
- group: AXP_DATA_PROPERTY_GROUP,
25892
- schema: {
25893
- dataType: 'string',
25894
- interface: {
25895
- name: 'columnResolveQueryKey',
25896
- path: 'options.columnResolve.queryKey',
25897
- type: AXPWidgetsCatalog.text,
25898
- },
25899
- },
25900
- visible: true,
25901
- },
25902
- {
25903
- name: 'columnResolveQueryParams',
25904
- title: 'Column resolve — query params (JSON: param → row path)',
25905
- group: AXP_DATA_PROPERTY_GROUP,
25906
- schema: {
25907
- dataType: 'string',
25908
- interface: {
25909
- name: 'columnResolveQueryParams',
25910
- path: 'options.columnResolve.queryParams',
25911
- type: AXPWidgetsCatalog.text,
25912
- },
25913
- },
25914
- visible: true,
25915
- },
25916
- {
25917
- name: 'columnResolveQueryResultItemsPath',
25918
- title: 'Column resolve — query result items path',
25919
- group: AXP_DATA_PROPERTY_GROUP,
25920
- schema: {
25921
- dataType: 'string',
25922
- defaultValue: 'items',
25923
- interface: {
25924
- name: 'columnResolveQueryResultItemsPath',
25925
- path: 'options.columnResolve.queryResultItemsPath',
25926
- type: AXPWidgetsCatalog.text,
25927
- },
25928
- },
25929
- visible: true,
25930
- },
25931
- ],
25932
- components: {
25933
- view: {
25934
- component: () => Promise.resolve().then(function () { return lookupWidgetView_component; }).then((c) => c.AXPLookupWidgetViewComponent),
25935
- },
25936
- edit: {
25937
- component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
25938
- },
25939
- column: {
25940
- component: () => Promise.resolve().then(function () { return lookupWidgetColumn_component; }).then((c) => c.AXPLookupWidgetColumnComponent),
25941
- },
25942
- designer: {
25943
- component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
25944
- },
25945
- },
25946
- };
25947
-
25948
25966
  /**
25949
25967
  * Source type
25950
25968
  */
@@ -28588,6 +28606,7 @@ const ENTITY_EXTENDED_WIDGETS = [
28588
28606
  categories: AXP_WIDGETS_EDITOR_CATEGORY,
28589
28607
  groups: [AXPWidgetGroupEnum.EntityWidget],
28590
28608
  type: 'filter',
28609
+ defaultFilterOperator: AXP_LOOKUP_FILTER_DEFAULT_OPERATOR,
28591
28610
  components: {},
28592
28611
  options: {
28593
28612
  look: 'select',
@@ -32293,7 +32312,7 @@ class AXPEntityModule {
32293
32312
  },
32294
32313
  {
32295
32314
  key: 'Entity:Bulk',
32296
- command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-C4fDZV2N.mjs').then((c) => c.AXPBulkEntityCommand),
32315
+ command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-BZECKfez.mjs').then((c) => c.AXPBulkEntityCommand),
32297
32316
  },
32298
32317
  {
32299
32318
  key: 'Entity:OpenList',
@@ -32454,7 +32473,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
32454
32473
  },
32455
32474
  {
32456
32475
  key: 'Entity:Bulk',
32457
- command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-C4fDZV2N.mjs').then((c) => c.AXPBulkEntityCommand),
32476
+ command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-BZECKfez.mjs').then((c) => c.AXPBulkEntityCommand),
32458
32477
  },
32459
32478
  {
32460
32479
  key: 'Entity:OpenList',
@@ -32779,5 +32798,5 @@ function detectEntityChanges(oldObj, newObj) {
32779
32798
  * Generated bundle index. Do not edit.
32780
32799
  */
32781
32800
 
32782
- export { AXPEntityListViewModelResolver as $, AXPEntityDefinitionRegistryService as A, AXPEntityCategoryWidgetViewComponent as B, AXPEntityCommandTriggerViewModel as C, AXPEntityCreateViewElementViewModel as D, AXPEntityCreateViewModelFactory as E, AXPEntityCreateViewSectionViewModel as F, AXPEntityDataProvider as G, AXPEntityDataProviderImpl as H, AXPEntityDataSelectorRowActionsService as I, AXPEntityDataSelectorService as J, AXPEntityDefinitionProviderWidget as K, AXPEntityDefinitionProviderWidgetEditComponent as L, AXPEntityDeletePerformService as M, AXPEntityDetailListViewModel as N, AXPEntityDetailPopoverComponent as O, AXPEntityDetailPopoverService as P, AXPEntityDetailViewModelFactory as Q, AXPEntityDetailViewModelResolver as R, AXPEntityEventDispatcherService as S, AXPEntityFormBuilderService as T, AXPEntityLifecycleHookKeys as U, AXPEntityListPersistenceModeDefault as V, AXPEntityListTableService as W, AXPEntityListToolbarService as X, AXPEntityListViewCardFieldViewModel as Y, AXPEntityListViewColumnViewModel as Z, AXPEntityListViewModelFactory as _, showOperationResultToast as a, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY as a$, AXPEntityListWidget as a0, AXPEntityListWidgetViewComponent as a1, AXPEntityMasterCreateViewModel as a2, AXPEntityMasterListCardSelectActionName as a3, AXPEntityMasterListViewModel as a4, AXPEntityMasterListViewQueryViewModel as a5, AXPEntityMasterSingleElementViewModel as a6, AXPEntityMasterSingleViewGroupViewModel as a7, AXPEntityMasterSingleViewModel as a8, AXPEntityMasterUpdateElementViewModel as a9, AXPLookupWidgetViewComponent as aA, AXPMiddlewareAbortError as aB, AXPMiddlewareEntityStorageService as aC, AXPMultiSourceDefinitionProviderContext as aD, AXPMultiSourceDefinitionProviderService as aE, AXPMultiSourceFederatedSearchService as aF, AXPMultiSourceSelectorComponent as aG, AXPMultiSourceSelectorService as aH, AXPMultiSourceSelectorWidget as aI, AXPMultiSourceSelectorWidgetColumnComponent as aJ, AXPMultiSourceSelectorWidgetEditComponent as aK, AXPMultiSourceSelectorWidgetViewComponent as aL, AXPMultiSourceType as aM, AXPOpenEntityDetailsCommand as aN, AXPOpenEntityListCommand as aO, AXPRelatedColumnEnrichmentService as aP, AXPRelatedColumnMetadataResolver as aQ, AXPSelectorStructureWidget as aR, AXPSelectorStructureWidgetColumnComponent as aS, AXPSelectorStructureWidgetEditComponent as aT, AXPSelectorStructureWidgetViewComponent as aU, AXPShowFileUploaderPopupCommand as aV, AXPTruncatedBreadcrumbComponent as aW, AXPUpdateEntityCommand as aX, AXPUpdateEntityStatusCommand as aY, AXPViewEntityDetailsCommand as aZ, AXP_APPEARANCE_SECTION_ORDER as a_, AXPEntityMasterUpdateViewModel as aa, AXPEntityMasterUpdateViewModelFactory as ab, AXPEntityMiddlewareSkipContext as ac, AXPEntityModule as ad, AXPEntityPreloadFiltersContainerComponent as ae, AXPEntityPreloadFiltersViewModel as af, AXPEntityPreloadFiltersViewModelResolver as ag, AXPEntityResolver as ah, AXPEntityRuntimeAccessorService as ai, AXPEntityService as aj, AXPEntityStorageService as ak, AXPEntityUpdateViewSectionViewModel as al, AXPFileListComponent as am, AXPFileUploaderLoadFilesQuery as an, AXPFileUploaderSaveFilesCommand as ao, AXPFileUploaderWidget as ap, AXPFileUploaderWidgetColumnComponent as aq, AXPFileUploaderWidgetEditComponent as ar, AXPFileUploaderWidgetService as as, AXPFileUploaderWidgetViewComponent as at, AXPGetEntityDetailsQuery as au, AXPLayoutOrderingConfigService as av, AXPLookupByKeyCacheService as aw, AXPLookupWidget as ax, AXPLookupWidgetColumnComponent as ay, AXPLookupWidgetEditComponent as az, buildSelectedIdsFilter as b, detectEntityChanges as b$, AXP_CLASSIFICATION_SECTION_ORDER as b0, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS as b1, AXP_CLIENT_LOCAL_PLUGIN_NAME as b2, AXP_DATA_SEEDER_TOKEN as b3, AXP_ENTITY_ACTION_PLUGIN as b4, AXP_ENTITY_CONFIG_TOKEN as b5, AXP_ENTITY_DEFINITION_LOADER as b6, AXP_ENTITY_MIDDLEWARE as b7, AXP_ENTITY_MODIFIER as b8, AXP_ENTITY_STORAGE_MIDDLEWARE as b9, axpUpdateEntityStatusCommandDefinition as bA, buildDataSourceTraceSnapshot as bB, canPersistEntityListState as bC, clientLocalPlugin as bD, cloneLayoutArrays as bE, columnOrderingMiddleware as bF, columnOrderingMiddlewareProvider as bG, columnWidthMiddleware as bH, columnWidthMiddlewareProvider as bI, committedAttachments as bJ, composeEntityMiddlewares as bK, composeEntityStorageMiddlewares as bL, computeEntityAggregates as bM, configureEntityListColumnsSettingsMigrateDrop as bN, configureEntityListColumnsSettingsVersion as bO, createColumnOrderingMiddlewareProvider as bP, createEntityCardDisplayScope as bQ, createEntityCardLogicScope as bR, createEntityMiddlewareContext as bS, createEntityStorageContext as bT, createLayoutOrderingMiddlewareProvider as bU, defaultCardLayoutMiddleware as bV, defaultCardLayoutMiddlewareProvider as bW, defaultMultiLanguageMiddleware as bX, defaultMultiLanguageMiddlewareProvider as bY, defaultSortPresetsMiddleware as bZ, defaultSortPresetsMiddlewareProvider as b_, AXP_MULTI_SOURCE_DEFINITION_PROVIDER as ba, DEFAULT_COLUMN_ORDER as bb, DEFAULT_PAIR_SPAN_RULES as bc, DEFAULT_PROPERTY_ORDER as bd, DEFAULT_SECTION_ORDER as be, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE as bf, ENTITY_LIST_LAYOUT_META as bg, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY as bh, ENTITY_MASTER_LIST_TRACE_NS as bi, EntityBuilder as bj, EntityDataAccessor as bk, GALLERY_PAGE_COMPONENT_KEY as bl, TREE_CHILDREN_QUERY_TAKE as bm, actionExists as bn, applyDataSourcePagingWithoutLoad as bo, attachmentFieldCount as bp, attachmentNeedsHydration as bq, attachmentsPlugin as br, attachmentsSemanticallyEqual as bs, axpBuildEntityListPageContextSnapshot as bt, axpCreateEntityAiToolInputDefaults as bu, axpCreateEntityCommandDefinition as bv, axpDeleteEntityCommandDefinition as bw, axpOpenEntityListCommandDefinition as bx, axpRunEntityListPageContextAction as by, axpShowFileUploaderPopupCommandDefinition as bz, ATTACHMENTS_PAGE_COMPONENT_KEY as c, readPersistedEntityListInstanceCurrentView as c$, dispatchEntityModifiedSideEffects as c0, ensureHierarchicalRootFilter as c1, ensureLayoutPropertyView as c2, ensureLayoutSection as c3, ensureListActions as c4, entityCreateBridgeMiddleware as c5, entityDeleteBridgeMiddleware as c6, entityGetOneBridgeMiddleware as c7, entityListInstanceCurrentViewPath as c8, entityListInstanceFilterPath as c9, hydrateAttachmentFieldToFileList as cA, isAXPMiddlewareAbortError as cB, isAttachmentFieldPresentOnRow as cC, isAttachmentListEntry as cD, isAttachmentStorageRef as cE, isCategoryEntity as cF, isCategoryFilter as cG, isFileListItem as cH, isFileUploaderEditDialogAuto as cI, isLegacyEntityDataSelectorOptions as cJ, layoutOrderingMiddlewareFactory as cK, layoutOrderingMiddlewareProvider as cL, mapEntityStorageErrorToCommandResult as cM, mapLegacyEntityDataSelectorOptions as cN, mergeEntityListViewAndPersistedFilters as cO, normalizeEntityCardHeaderDisplayValue as cP, normalizeEntityDataSelectorColumnSpecs as cQ, normalizeEntityDataSelectorOptions as cR, normalizeEntityFieldToFileList as cS, normalizeEntityListPersistenceMode as cT, normalizeListPaging as cU, prefetchClientLocalRelated as cV, provideEntity as cW, provideEntityMiddlewareBridge as cX, provideEntityRealtimeHandlers as cY, provideEntityStorageMiddlewareBridge as cZ, provideLocalEntityCatalog as c_, entityListStylingRulesPath as ca, entityQueryBridgeMiddleware as cb, entityStorageCreateBridgeMiddleware as cc, entityStorageDeleteBridgeMiddleware as cd, entityStorageGetOneBridgeMiddleware as ce, entityStorageQueryBridgeMiddleware as cf, entityStorageUpdateBridgeMiddleware as cg, entityUpdateBridgeMiddleware as ch, eventDispatchMiddleware as ci, filterEntityMiddlewares as cj, filterEntityStorageMiddlewares as ck, filterSortEntityRows as cl, filterTouchesParentKey as cm, findEntityListRowDataInTree as cn, fingerprintAttachmentItem as co, fingerprintAttachments as cp, fireEntityLifecycleHook as cq, formatLookupItemDisplay as cr, formatLookupItemDisplayAsync as cs, galleryPlugin as ct, getDataSourcePageIndex as cu, getEntityListColumnsSettingsMigrateDrop as cv, getEntityListColumnsSettingsVersion as cw, getEntityListRowId as cx, getMasterInterfacePropertySortKey as cy, hasFileUploaderTitleOrDescriptionFields as cz, AXMEntityCrudService as d, readPersistedEntityListInstanceFilters as d0, readPersistedEntityListStylingRules as d1, resetPagingForTreeChildrenLoad as d2, resolveAttachmentFieldPath as d3, resolveEntityCardBadgeColorValue as d4, resolveEntityCardHeaderValue as d5, resolveEntityMasterFieldStylingClass as d6, resolveEntityMasterRecordStylingClass as d7, resolveEntityMasterStylingClass as d8, resolveEntityPluginDetailPageOrder as d9, resolveFileUploaderEditDialog as da, resolveFileUploaderEntityScope as db, resolveLookupDisplayField as dc, resolveLookupDisplayTemplate as dd, resolveLookupEntityCacheKey as de, resolveLookupEntityKey as df, resolveMasterInterfacePropertyOrder as dg, restoreEntityListExpandedRows as dh, runEntityMiddlewarePipeline as di, runEntityQuery as dj, runEntityStorageMiddlewarePipeline as dk, searchResultDescriptionMiddleware as dl, searchResultDescriptionMiddlewareProvider as dm, shouldLoadEntityListStateFromStorage as dn, shouldResetEntityListStateOnRouteEntry as dp, traceEntityMasterList as dq, AXMEntityCrudServiceImpl as e, AXPCategoryTreeService as f, AXPClientLocalPluginModule as g, AXPCreateEntityCommand as h, AXPDataSeederService as i, AXPDeleteEntityCommand as j, AXPDomainQueryEntityDefinitionLoader as k, AXPEditFileUploaderCommand as l, AXPEntityBulkPatchPerformService as m, newBulkExecutionId as n, AXPEntityCardComponent as o, persistedAttachments as p, AXPEntityCardFieldsResolver as q, resolveBulkFailureBody as r, settleAfterLoadingDialog as s, AXPEntityCardSelectActionName as t, AXPEntityCardSkeletonComponent as u, AXPEntityCategoryTreeSelectorComponent as v, watchBulkProgress as w, AXPEntityCategoryWidget as x, AXPEntityCategoryWidgetColumnComponent as y, AXPEntityCategoryWidgetEditComponent as z };
32783
- //# sourceMappingURL=acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-bGKRfOH2.mjs.map
32801
+ export { AXPEntityListViewModelResolver as $, AXPEntityDefinitionRegistryService as A, AXPEntityCategoryWidgetViewComponent as B, AXPEntityCommandTriggerViewModel as C, AXPEntityCreateViewElementViewModel as D, AXPEntityCreateViewModelFactory as E, AXPEntityCreateViewSectionViewModel as F, AXPEntityDataProvider as G, AXPEntityDataProviderImpl as H, AXPEntityDataSelectorRowActionsService as I, AXPEntityDataSelectorService as J, AXPEntityDefinitionProviderWidget as K, AXPEntityDefinitionProviderWidgetEditComponent as L, AXPEntityDeletePerformService as M, AXPEntityDetailListViewModel as N, AXPEntityDetailPopoverComponent as O, AXPEntityDetailPopoverService as P, AXPEntityDetailViewModelFactory as Q, AXPEntityDetailViewModelResolver as R, AXPEntityEventDispatcherService as S, AXPEntityFormBuilderService as T, AXPEntityLifecycleHookKeys as U, AXPEntityListPersistenceModeDefault as V, AXPEntityListTableService as W, AXPEntityListToolbarService as X, AXPEntityListViewCardFieldViewModel as Y, AXPEntityListViewColumnViewModel as Z, AXPEntityListViewModelFactory as _, showOperationResultToast as a, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY as a$, AXPEntityListWidget as a0, AXPEntityListWidgetViewComponent as a1, AXPEntityMasterCreateViewModel as a2, AXPEntityMasterListCardSelectActionName as a3, AXPEntityMasterListViewModel as a4, AXPEntityMasterListViewQueryViewModel as a5, AXPEntityMasterSingleElementViewModel as a6, AXPEntityMasterSingleViewGroupViewModel as a7, AXPEntityMasterSingleViewModel as a8, AXPEntityMasterUpdateElementViewModel as a9, AXPLookupWidgetViewComponent as aA, AXPMiddlewareAbortError as aB, AXPMiddlewareEntityStorageService as aC, AXPMultiSourceDefinitionProviderContext as aD, AXPMultiSourceDefinitionProviderService as aE, AXPMultiSourceFederatedSearchService as aF, AXPMultiSourceSelectorComponent as aG, AXPMultiSourceSelectorService as aH, AXPMultiSourceSelectorWidget as aI, AXPMultiSourceSelectorWidgetColumnComponent as aJ, AXPMultiSourceSelectorWidgetEditComponent as aK, AXPMultiSourceSelectorWidgetViewComponent as aL, AXPMultiSourceType as aM, AXPOpenEntityDetailsCommand as aN, AXPOpenEntityListCommand as aO, AXPRelatedColumnEnrichmentService as aP, AXPRelatedColumnMetadataResolver as aQ, AXPSelectorStructureWidget as aR, AXPSelectorStructureWidgetColumnComponent as aS, AXPSelectorStructureWidgetEditComponent as aT, AXPSelectorStructureWidgetViewComponent as aU, AXPShowFileUploaderPopupCommand as aV, AXPTruncatedBreadcrumbComponent as aW, AXPUpdateEntityCommand as aX, AXPUpdateEntityStatusCommand as aY, AXPViewEntityDetailsCommand as aZ, AXP_APPEARANCE_SECTION_ORDER as a_, AXPEntityMasterUpdateViewModel as aa, AXPEntityMasterUpdateViewModelFactory as ab, AXPEntityMiddlewareSkipContext as ac, AXPEntityModule as ad, AXPEntityPreloadFiltersContainerComponent as ae, AXPEntityPreloadFiltersViewModel as af, AXPEntityPreloadFiltersViewModelResolver as ag, AXPEntityResolver as ah, AXPEntityRuntimeAccessorService as ai, AXPEntityService as aj, AXPEntityStorageService as ak, AXPEntityUpdateViewSectionViewModel as al, AXPFileListComponent as am, AXPFileUploaderLoadFilesQuery as an, AXPFileUploaderSaveFilesCommand as ao, AXPFileUploaderWidget as ap, AXPFileUploaderWidgetColumnComponent as aq, AXPFileUploaderWidgetEditComponent as ar, AXPFileUploaderWidgetService as as, AXPFileUploaderWidgetViewComponent as at, AXPGetEntityDetailsQuery as au, AXPLayoutOrderingConfigService as av, AXPLookupByKeyCacheService as aw, AXPLookupWidget as ax, AXPLookupWidgetColumnComponent as ay, AXPLookupWidgetEditComponent as az, buildSelectedIdsFilter as b, defaultSortPresetsMiddlewareProvider as b$, AXP_CLASSIFICATION_SECTION_ORDER as b0, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS as b1, AXP_CLIENT_LOCAL_PLUGIN_NAME as b2, AXP_DATA_SEEDER_TOKEN as b3, AXP_ENTITY_ACTION_PLUGIN as b4, AXP_ENTITY_CONFIG_TOKEN as b5, AXP_ENTITY_DEFINITION_LOADER as b6, AXP_ENTITY_MIDDLEWARE as b7, AXP_ENTITY_MODIFIER as b8, AXP_ENTITY_STORAGE_MIDDLEWARE as b9, axpShowFileUploaderPopupCommandDefinition as bA, axpUpdateEntityStatusCommandDefinition as bB, buildDataSourceTraceSnapshot as bC, canPersistEntityListState as bD, clientLocalPlugin as bE, cloneLayoutArrays as bF, columnOrderingMiddleware as bG, columnOrderingMiddlewareProvider as bH, columnWidthMiddleware as bI, columnWidthMiddlewareProvider as bJ, committedAttachments as bK, composeEntityMiddlewares as bL, composeEntityStorageMiddlewares as bM, computeEntityAggregates as bN, configureEntityListColumnsSettingsMigrateDrop as bO, configureEntityListColumnsSettingsVersion as bP, createColumnOrderingMiddlewareProvider as bQ, createEntityCardDisplayScope as bR, createEntityCardLogicScope as bS, createEntityMiddlewareContext as bT, createEntityStorageContext as bU, createLayoutOrderingMiddlewareProvider as bV, defaultCardLayoutMiddleware as bW, defaultCardLayoutMiddlewareProvider as bX, defaultMultiLanguageMiddleware as bY, defaultMultiLanguageMiddlewareProvider as bZ, defaultSortPresetsMiddleware as b_, AXP_LOOKUP_FILTER_DEFAULT_OPERATOR as ba, AXP_MULTI_SOURCE_DEFINITION_PROVIDER as bb, DEFAULT_COLUMN_ORDER as bc, DEFAULT_PAIR_SPAN_RULES as bd, DEFAULT_PROPERTY_ORDER as be, DEFAULT_SECTION_ORDER as bf, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE as bg, ENTITY_LIST_LAYOUT_META as bh, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY as bi, ENTITY_MASTER_LIST_TRACE_NS as bj, EntityBuilder as bk, EntityDataAccessor as bl, GALLERY_PAGE_COMPONENT_KEY as bm, TREE_CHILDREN_QUERY_TAKE as bn, actionExists as bo, applyDataSourcePagingWithoutLoad as bp, attachmentFieldCount as bq, attachmentNeedsHydration as br, attachmentsPlugin as bs, attachmentsSemanticallyEqual as bt, axpBuildEntityListPageContextSnapshot as bu, axpCreateEntityAiToolInputDefaults as bv, axpCreateEntityCommandDefinition as bw, axpDeleteEntityCommandDefinition as bx, axpOpenEntityListCommandDefinition as by, axpRunEntityListPageContextAction as bz, ATTACHMENTS_PAGE_COMPONENT_KEY as c, provideLocalEntityCatalog as c$, detectEntityChanges as c0, dispatchEntityModifiedSideEffects as c1, ensureHierarchicalRootFilter as c2, ensureLayoutPropertyView as c3, ensureLayoutSection as c4, ensureListActions as c5, entityCreateBridgeMiddleware as c6, entityDeleteBridgeMiddleware as c7, entityGetOneBridgeMiddleware as c8, entityListInstanceCurrentViewPath as c9, hasFileUploaderTitleOrDescriptionFields as cA, hydrateAttachmentFieldToFileList as cB, isAXPMiddlewareAbortError as cC, isAttachmentFieldPresentOnRow as cD, isAttachmentListEntry as cE, isAttachmentStorageRef as cF, isCategoryEntity as cG, isCategoryFilter as cH, isFileListItem as cI, isFileUploaderEditDialogAuto as cJ, isLegacyEntityDataSelectorOptions as cK, layoutOrderingMiddlewareFactory as cL, layoutOrderingMiddlewareProvider as cM, mapEntityStorageErrorToCommandResult as cN, mapLegacyEntityDataSelectorOptions as cO, mergeEntityListViewAndPersistedFilters as cP, normalizeEntityCardHeaderDisplayValue as cQ, normalizeEntityDataSelectorColumnSpecs as cR, normalizeEntityDataSelectorOptions as cS, normalizeEntityFieldToFileList as cT, normalizeEntityListPersistenceMode as cU, normalizeListPaging as cV, prefetchClientLocalRelated as cW, provideEntity as cX, provideEntityMiddlewareBridge as cY, provideEntityRealtimeHandlers as cZ, provideEntityStorageMiddlewareBridge as c_, entityListInstanceFilterPath as ca, entityListStylingRulesPath as cb, entityQueryBridgeMiddleware as cc, entityStorageCreateBridgeMiddleware as cd, entityStorageDeleteBridgeMiddleware as ce, entityStorageGetOneBridgeMiddleware as cf, entityStorageQueryBridgeMiddleware as cg, entityStorageUpdateBridgeMiddleware as ch, entityUpdateBridgeMiddleware as ci, eventDispatchMiddleware as cj, filterEntityMiddlewares as ck, filterEntityStorageMiddlewares as cl, filterSortEntityRows as cm, filterTouchesParentKey as cn, findEntityListRowDataInTree as co, fingerprintAttachmentItem as cp, fingerprintAttachments as cq, fireEntityLifecycleHook as cr, formatLookupItemDisplay as cs, formatLookupItemDisplayAsync as ct, galleryPlugin as cu, getDataSourcePageIndex as cv, getEntityListColumnsSettingsMigrateDrop as cw, getEntityListColumnsSettingsVersion as cx, getEntityListRowId as cy, getMasterInterfacePropertySortKey as cz, AXMEntityCrudService as d, readPersistedEntityListInstanceCurrentView as d0, readPersistedEntityListInstanceFilters as d1, readPersistedEntityListStylingRules as d2, resetPagingForTreeChildrenLoad as d3, resolveAttachmentFieldPath as d4, resolveEntityCardBadgeColorValue as d5, resolveEntityCardHeaderValue as d6, resolveEntityMasterFieldStylingClass as d7, resolveEntityMasterRecordStylingClass as d8, resolveEntityMasterStylingClass as d9, resolveEntityPluginDetailPageOrder as da, resolveFileUploaderEditDialog as db, resolveFileUploaderEntityScope as dc, resolveLookupDisplayField as dd, resolveLookupDisplayTemplate as de, resolveLookupEntityCacheKey as df, resolveLookupEntityKey as dg, resolveMasterInterfacePropertyOrder as dh, restoreEntityListExpandedRows as di, runEntityMiddlewarePipeline as dj, runEntityQuery as dk, runEntityStorageMiddlewarePipeline as dl, searchResultDescriptionMiddleware as dm, searchResultDescriptionMiddlewareProvider as dn, shouldLoadEntityListStateFromStorage as dp, shouldResetEntityListStateOnRouteEntry as dq, traceEntityMasterList as dr, AXMEntityCrudServiceImpl as e, AXPCategoryTreeService as f, AXPClientLocalPluginModule as g, AXPCreateEntityCommand as h, AXPDataSeederService as i, AXPDeleteEntityCommand as j, AXPDomainQueryEntityDefinitionLoader as k, AXPEditFileUploaderCommand as l, AXPEntityBulkPatchPerformService as m, newBulkExecutionId as n, AXPEntityCardComponent as o, persistedAttachments as p, AXPEntityCardFieldsResolver as q, resolveBulkFailureBody as r, settleAfterLoadingDialog as s, AXPEntityCardSelectActionName as t, AXPEntityCardSkeletonComponent as u, AXPEntityCategoryTreeSelectorComponent as v, watchBulkProgress as w, AXPEntityCategoryWidget as x, AXPEntityCategoryWidgetColumnComponent as y, AXPEntityCategoryWidgetEditComponent as z };
32802
+ //# sourceMappingURL=acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cmzwhmjw.mjs.map