@acorex/platform 20.7.8 → 20.7.10

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 (28) hide show
  1. package/common/index.d.ts +26 -5
  2. package/core/index.d.ts +13 -7
  3. package/fesm2022/acorex-platform-common.mjs +5 -1
  4. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-core.mjs +20 -11
  6. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-builder.mjs +31 -4
  8. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  9. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-ZnTG7wlJ.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs} +5 -5
  10. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-ZnTG7wlJ.mjs.map → acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs.map} +1 -1
  11. package/fesm2022/acorex-platform-layout-components.mjs +913 -36
  12. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-entity.mjs +471 -789
  14. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  15. package/fesm2022/{acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs → acorex-platform-layout-widgets-repeater-widget-column.component-DnhR00cH.mjs} +2 -2
  16. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DnhR00cH.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-layout-widgets.mjs +219 -327
  18. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  19. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DzWjSMSK.mjs → acorex-platform-themes-default-entity-master-list-view.component-HBr-ZTSt.mjs} +20 -5
  20. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-HBr-ZTSt.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-themes-default.mjs +2 -2
  22. package/layout/builder/index.d.ts +25 -14
  23. package/layout/components/index.d.ts +295 -2
  24. package/layout/entity/index.d.ts +59 -58
  25. package/layout/widgets/index.d.ts +38 -32
  26. package/package.json +5 -5
  27. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +0 -1
  28. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DzWjSMSK.mjs.map +0 -1
package/common/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { AXStyleColorType, AXDataSourceOperator, AXDataSourceFilterOption } from
4
4
  import * as i2 from '@acorex/components/popup';
5
5
  import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
6
6
  import * as i5 from '@acorex/platform/core';
7
- import { AXPValueTransformerFunctions, AXPGridLayoutOptions, AXPValidationRules, AXPSystemActionType, AXPMetaData, AXPOptionsData, AXPLogoConfig, AXPFileListItem, AXPNavigateActionCommand, AXPExecuteCommand, AXPEntityReference, AXPApplicationUserReference, AXPPlatformScopeKey, AXPPlatformScope, AXPWidgetTriggers, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
7
+ import { AXPValueTransformerFunctions, AXPGridLayoutOptions, AXPValidationRules, AXPSystemActionType, AXPMetaData, AXPOptionsData, AXPExpression, AXPLogoConfig, AXPFileListItem, AXPNavigateActionCommand, AXPExecuteCommand, AXPEntityReference, AXPApplicationUserReference, AXPPlatformScopeKey, AXPPlatformScope, AXPWidgetTriggers, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
8
8
  import { AXPWidgetTypesMap, AXPMetaDataDefinition, AXPWidgetNode } from '@acorex/platform/layout/widget-core';
9
9
  import * as i6 from '@angular/router';
10
10
  import { Route, Routes } from '@angular/router';
@@ -212,6 +212,23 @@ interface AXPEntity {
212
212
  name: string;
213
213
  options?: AXPOptionsData;
214
214
  }[];
215
+ /**
216
+ * High-level rules: when expression evaluates true, apply actions to the given targets
217
+ * (property/section/action). Reduces repetition of the same condition across many properties.
218
+ * Evaluation context: form data, user, entity; precedence vs property-level visible/readonly
219
+ * must be defined where rules are applied.
220
+ */
221
+ rules?: Array<{
222
+ name: string;
223
+ expression: AXPExpression;
224
+ actions: Array<{
225
+ target: {
226
+ type: 'property' | 'section' | 'action';
227
+ name: string;
228
+ };
229
+ values: AXPOptionsData;
230
+ }>;
231
+ }>;
215
232
  module: string;
216
233
  name: string;
217
234
  icon?: string;
@@ -673,16 +690,16 @@ interface AXPFileStorageUpdateRequest {
673
690
  }
674
691
  interface AXPFileManyStorageInfo {
675
692
  /**
676
- * The unique identifier for the stored file.
677
- */
693
+ * The unique identifier for the stored file.
694
+ */
678
695
  id?: string;
679
696
  /**
680
697
  * The unique identifier for the stored file.
681
698
  */
682
699
  fileId: string;
683
700
  /**
684
- * The unique identifier of referenced entity.
685
- */
701
+ * The unique identifier of referenced entity.
702
+ */
686
703
  refId: string;
687
704
  /**
688
705
  * The type of the referenced entity.
@@ -696,6 +713,10 @@ interface AXPFileManyStorageInfo {
696
713
  * The name of the file.
697
714
  */
698
715
  name?: string;
716
+ /**
717
+ * The URL where the file can be accessed.
718
+ */
719
+ url?: string;
699
720
  }
700
721
  /**
701
722
  * Represents information about a file stored in the AXP file storage system.
package/core/index.d.ts CHANGED
@@ -2632,17 +2632,23 @@ declare function createProviderWithInjectionContext<T>(loader: () => Promise<new
2632
2632
  *
2633
2633
  * @param token - The injection token to provide
2634
2634
  * @param loader - Function that returns a promise resolving to the provider class
2635
- * @param multi - Whether the provider is multi-provider (defaults to true)
2635
+ * @param multi - Optional. Whether the provider is a multi-provider (array of values). Defaults to `true`. Pass `false` for a single provider.
2636
2636
  * @returns Provider configuration object
2637
2637
  *
2638
2638
  * @example
2639
2639
  * ```typescript
2640
- * providers: [
2641
- * provideLazyProvider(
2642
- * AXP_SETTING_DEFINITION_PROVIDER,
2643
- * () => import('./settings.provider').then(m => m.AXMSettingProvider)
2644
- * )
2645
- * ]
2640
+ * // Multi-provider (default)
2641
+ * provideLazyProvider(
2642
+ * AXP_DATASOURCE_DEFINITION_PROVIDER,
2643
+ * () => import('./datasource.provider').then(m => m.AXMDataSourceProvider)
2644
+ * )
2645
+ *
2646
+ * // Single provider
2647
+ * provideLazyProvider(
2648
+ * SOME_TOKEN,
2649
+ * () => import('./my.provider').then(m => m.MyProvider),
2650
+ * false
2651
+ * )
2646
2652
  * ```
2647
2653
  */
2648
2654
  declare function provideLazyProvider<TProvider>(token: InjectionToken<any>, loader: () => Promise<new () => TProvider>, multi?: boolean): Provider;
@@ -2584,8 +2584,12 @@ class AXPSearchService {
2584
2584
  if (allProviders.length === 0) {
2585
2585
  throw new Error('No search providers available');
2586
2586
  }
2587
+ const providersWithSearch = allProviders.filter((provider) => provider != null && typeof provider.search === 'function');
2588
+ if (providersWithSearch.length === 0) {
2589
+ throw new Error('No search providers with a valid search method available');
2590
+ }
2587
2591
  const mergeData = [];
2588
- const promises = allProviders.map((provider) => provider.search(text));
2592
+ const promises = providersWithSearch.map((provider) => provider.search(text));
2589
2593
  const results = await Promise.all(promises);
2590
2594
  for (const resultArray of results) {
2591
2595
  for (const result of resultArray) {