@acorex-platform/framework-client 0.0.49 → 0.0.51

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 (23) hide show
  1. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +7 -7
  2. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CkqVHcl9.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DS3F1_EN.mjs} +169 -21
  4. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DS3F1_EN.mjs.map +1 -0
  5. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CEtWy70B.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-CWeKcj8t.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CEtWy70B.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-CWeKcj8t.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BnH5XK5M.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-CgsgFxT8.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BnH5XK5M.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-CgsgFxT8.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-COjqVu_3.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-Pfp7Lw_A.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-COjqVu_3.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-Pfp7Lw_A.mjs.map} +1 -1
  11. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  12. package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-BwwxqHzR.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CWvC9Eh2.mjs} +157 -47
  13. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CWvC9Eh2.mjs.map +1 -0
  14. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DYpd-XXJ.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-MHOUqz2l.mjs} +2 -2
  15. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DYpd-XXJ.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-MHOUqz2l.mjs.map} +1 -1
  16. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DfgIxNyy.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-oLFeaHdz.mjs} +2 -2
  17. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DfgIxNyy.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-oLFeaHdz.mjs.map} +1 -1
  18. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
  19. package/package.json +7 -7
  20. package/types/acorex-platform-framework-client-layout-entity.d.ts +11 -0
  21. package/types/acorex-platform-framework-client-layout-widgets.d.ts +10 -1
  22. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CkqVHcl9.mjs.map +0 -1
  23. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-BwwxqHzR.mjs.map +0 -1
@@ -113,7 +113,7 @@ import * as i1$h from '@acorex/components/button-group';
113
113
  import { AXButtonGroupModule } from '@acorex/components/button-group';
114
114
  import { AXKBDComponent, AXKBDItemComponent } from '@acorex/components/kbd';
115
115
  import { provideFileViewer } from '@acorex/components/file-viewer';
116
- import { mergeDefinitionAndCustomQueryViews, toRelatedListViewQuery, isCustomQueryView, isQueryViewDirty, isQueryViewColumnVisible, mergeHiddenFiltersWithViewConditions, applyQueryViewToColumnQueries, snapshotCustomQueryView, createCustomQueryViewName, removePersistedCustomQueryView, queryViewConditionsToFilterQueries, upsertPersistedCustomQueryView, readPersistedCustomQueryViews, normalizeEntityMasterListLayoutType } from '@acorex-platform/framework-shared/entity';
116
+ import { mergeDefinitionAndCustomQueryViews, toRelatedListViewQuery, isCustomQueryView, isQueryViewDirty, isQueryViewColumnVisible, mergeHiddenScopeFilters, mergeHiddenFiltersWithViewConditions, applyQueryViewToColumnQueries, snapshotCustomQueryView, createCustomQueryViewName, removePersistedCustomQueryView, queryViewConditionsToFilterQueries, upsertPersistedCustomQueryView, readPersistedCustomQueryViews, normalizeEntityMasterListLayoutType } from '@acorex-platform/framework-shared/entity';
117
117
  import * as i3$8 from '@acorex/components/time-duration';
118
118
  import { AXTimeDurationModule } from '@acorex/components/time-duration';
119
119
  import * as i1$i from '@acorex/components/alert';
@@ -586,10 +586,9 @@ class AXPProviderSelectWidgetEditBase extends AXPDataListWidgetComponent {
586
586
  }
587
587
  if (this.filterMode()) {
588
588
  const newValue = e.value;
589
- const text = this.selectedItems().map((item) => get(item, this.textField()));
590
589
  this.setValue({
591
590
  value: newValue,
592
- displayText: text,
591
+ displayText: this.resolveFilterDisplayText(this.selectedItems()),
593
592
  operation: {
594
593
  type: this.multiple() ? 'in' : 'equal',
595
594
  },
@@ -616,6 +615,27 @@ class AXPProviderSelectWidgetEditBase extends AXPDataListWidgetComponent {
616
615
  }
617
616
  return label;
618
617
  }
618
+ /** Label shown in the provider list, never the raw value key. */
619
+ resolveFilterDisplayText(items) {
620
+ return items
621
+ .map((item) => this.resolveProviderFilterLabel(item))
622
+ .filter((label) => label.length > 0)
623
+ .join(', ');
624
+ }
625
+ resolveProviderFilterLabel(item) {
626
+ if (item == null || typeof item !== 'object') {
627
+ return '';
628
+ }
629
+ const label = this.getProviderLookupLabel(item);
630
+ const text = label != null && typeof label === 'object'
631
+ ? resolveMultiLanguageString(label, this.translationService.getActiveLang() ?? 'en-US').trim()
632
+ : String(label ?? '').trim();
633
+ const value = get(item, this.valueField());
634
+ if (!text || (value != null && value !== '' && text === String(value))) {
635
+ return '';
636
+ }
637
+ return text;
638
+ }
619
639
  #filterEffect;
620
640
  refresh() {
621
641
  setTimeout(() => {
@@ -7567,7 +7587,7 @@ class AXPRichTextWidgetEditComponent extends AXPValueWidgetComponent {
7567
7587
  [options]="validation.options"
7568
7588
  ></ax-validation-rule>
7569
7589
  }
7570
- </ax-wysiwyg-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.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: AXWysiwygModule }, { kind: "component", type: i2$5.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder", "initialLine"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$5.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i2$5.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i2$5.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i2$5.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i2$5.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i2$5.AXWysiwygInsertComponent, selector: "ax-wysiwyg-insert" }, { kind: "component", type: i2$5.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "component", type: i2$5.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.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: AXTranslationModule }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7590
+ </ax-wysiwyg-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.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: AXWysiwygModule }, { kind: "component", type: i2$5.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder", "initialLine", "mode"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$5.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i2$5.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment", inputs: ["buttons"] }, { kind: "component", type: i2$5.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors", inputs: ["buttons"] }, { kind: "component", type: i2$5.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style", inputs: ["headingLevels", "buttons", "menuItems"] }, { kind: "component", type: i2$5.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history", inputs: ["buttons"] }, { kind: "component", type: i2$5.AXWysiwygInsertComponent, selector: "ax-wysiwyg-insert", inputs: ["buttons"] }, { kind: "component", type: i2$5.AXWysiwygListComponent, selector: "ax-wysiwyg-list", inputs: ["buttons"] }, { kind: "component", type: i2$5.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.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: AXTranslationModule }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7571
7591
  }
7572
7592
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRichTextWidgetEditComponent, decorators: [{
7573
7593
  type: Component,
@@ -7822,6 +7842,57 @@ const AXPRichTextWidget = {
7822
7842
  },
7823
7843
  };
7824
7844
 
7845
+ //#region ----- Blank value helpers -----
7846
+ function isBlankSelectRawValue(value) {
7847
+ if (value == null) {
7848
+ return true;
7849
+ }
7850
+ if (typeof value === 'string') {
7851
+ return value.trim() === '';
7852
+ }
7853
+ return false;
7854
+ }
7855
+ function isBlankSelectLabel(label) {
7856
+ if (label == null) {
7857
+ return true;
7858
+ }
7859
+ if (typeof label === 'string') {
7860
+ return label.trim() === '';
7861
+ }
7862
+ if (typeof label === 'object' && !Array.isArray(label)) {
7863
+ const values = Object.values(label);
7864
+ if (values.length === 0) {
7865
+ return true;
7866
+ }
7867
+ if (values.every((value) => value == null || typeof value === 'string')) {
7868
+ return values.every((value) => value == null || value.trim() === '');
7869
+ }
7870
+ }
7871
+ return false;
7872
+ }
7873
+ function resolveSelectItemLabel(item, textField, valueField) {
7874
+ if (item == null || typeof item !== 'object') {
7875
+ return isBlankSelectRawValue(item) ? '' : String(item);
7876
+ }
7877
+ const row = item;
7878
+ const label = row[textField];
7879
+ if (!isBlankSelectLabel(label)) {
7880
+ if (typeof label === 'object' && label != null) {
7881
+ return label;
7882
+ }
7883
+ return String(label);
7884
+ }
7885
+ const fallback = row[valueField];
7886
+ if (typeof fallback === 'object' && fallback != null) {
7887
+ return isBlankSelectLabel(fallback) ? '' : fallback;
7888
+ }
7889
+ return isBlankSelectRawValue(fallback) ? '' : String(fallback);
7890
+ }
7891
+ function hasSelectItemLabel(item, textField, valueField) {
7892
+ return !isBlankSelectLabel(resolveSelectItemLabel(item, textField, valueField));
7893
+ }
7894
+ //#endregion
7895
+
7825
7896
  //#region ---- Badge styling ----
7826
7897
  const BADGE_BASE_CLASSES = 'inline-flex items-center px-2 py-1 text-xs font-medium rounded-lg border';
7827
7898
  const DEFAULT_BADGE_CSS_CLASS = 'primary-lighter-surface';
@@ -7845,9 +7916,13 @@ function resolveSelectBadgeClasses(item, options) {
7845
7916
  }
7846
7917
  //#endregion
7847
7918
 
7919
+ //#region ----- Imports -----
7920
+ //#endregion
7921
+ //#region ----- Component -----
7848
7922
  class AXPSelectBoxWidgetColumnComponent extends AXPColumnWidgetComponent {
7849
7923
  constructor() {
7850
7924
  super(...arguments);
7925
+ //#region ----- Computed Properties -----
7851
7926
  this.textField = computed(() => this.options['textField'] ?? 'title', /* @ts-ignore */
7852
7927
  ...(ngDevMode ? [{ debugName: "textField" }] : /* istanbul ignore next */ []));
7853
7928
  this.valueField = computed(() => this.options['valueField'] ?? 'id', /* @ts-ignore */
@@ -7860,9 +7935,11 @@ class AXPSelectBoxWidgetColumnComponent extends AXPColumnWidgetComponent {
7860
7935
  ...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
7861
7936
  this.internalValue = computed(() => castArray(this.rawValue)
7862
7937
  .map((item) => this.extractItem(item))
7863
- .filter((c) => c != null), /* @ts-ignore */
7938
+ .filter((item) => item != null && hasSelectItemLabel(item, this.textField(), this.valueField())), /* @ts-ignore */
7864
7939
  ...(ngDevMode ? [{ debugName: "internalValue" }] : /* istanbul ignore next */ []));
7865
7940
  }
7941
+ //#endregion
7942
+ //#region ----- Rendering Helpers -----
7866
7943
  resolveBadgeClasses(item) {
7867
7944
  const row = item;
7868
7945
  return resolveSelectBadgeClasses(row, {
@@ -7871,15 +7948,12 @@ class AXPSelectBoxWidgetColumnComponent extends AXPColumnWidgetComponent {
7871
7948
  });
7872
7949
  }
7873
7950
  getItemLabel(item) {
7874
- const row = item;
7875
- const label = row[this.textField()];
7876
- if (label != null && typeof label === 'object') {
7877
- return label;
7878
- }
7879
- return String(label ?? '');
7951
+ return resolveSelectItemLabel(item, this.textField(), this.valueField());
7880
7952
  }
7953
+ //#endregion
7954
+ //#region ----- Private Helpers -----
7881
7955
  extractItem(item) {
7882
- if (isNil(item)) {
7956
+ if (isBlankSelectRawValue(item)) {
7883
7957
  return null;
7884
7958
  }
7885
7959
  const valueField = this.valueField();
@@ -8359,11 +8433,9 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
8359
8433
  const newValue = this.multiple()
8360
8434
  ? castArray(value).map((item) => extractValue(item, this.valueField()))
8361
8435
  : extractValue(value, this.valueField());
8362
- const text = this.selectedItems().map((item) => get(item, this.textField()));
8363
- const displayText = this.multiple() ? text : (text[0] ?? '');
8364
8436
  this.setValue({
8365
8437
  value: newValue,
8366
- displayText,
8438
+ displayText: this.resolveFilterDisplayText(this.selectedItems()),
8367
8439
  operation: {
8368
8440
  type: this.multiple() ? 'in' : 'equal',
8369
8441
  },
@@ -8539,17 +8611,36 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
8539
8611
  if (!items.length) {
8540
8612
  return false;
8541
8613
  }
8542
- const textField = this.textField();
8543
- const valueField = this.valueField();
8544
- return items.every((item) => {
8545
- if (item == null || typeof item !== 'object') {
8546
- return false;
8547
- }
8548
- const row = item;
8549
- const id = row[valueField];
8550
- const title = row[textField];
8551
- return id != null && title === id;
8552
- });
8614
+ return items.every((item) => this.resolveItemFilterLabel(item).length === 0);
8615
+ }
8616
+ /** Label shown in the select list (`textField`), never the raw value key. */
8617
+ resolveFilterDisplayText(items) {
8618
+ return items
8619
+ .map((item) => this.resolveItemFilterLabel(item))
8620
+ .filter((label) => label.length > 0)
8621
+ .join(', ');
8622
+ }
8623
+ resolveItemFilterLabel(item) {
8624
+ if (item == null || typeof item !== 'object') {
8625
+ return '';
8626
+ }
8627
+ const value = get(item, this.valueField());
8628
+ const fromField = this.toFilterLabel(get(item, this.textField()));
8629
+ if (fromField && !this.labelEqualsValue(fromField, value)) {
8630
+ return fromField;
8631
+ }
8632
+ const fromText = this.toFilterLabel(item.text);
8633
+ if (fromText && !this.labelEqualsValue(fromText, value)) {
8634
+ return fromText;
8635
+ }
8636
+ return '';
8637
+ }
8638
+ toFilterLabel(raw) {
8639
+ const locale = this.translationService.getActiveLang() ?? 'en-US';
8640
+ return resolveMultiLanguageString(raw, locale).trim();
8641
+ }
8642
+ labelEqualsValue(label, value) {
8643
+ return value != null && value !== '' && label === String(value);
8553
8644
  }
8554
8645
  /**
8555
8646
  * Return a single value for single-select, or the full list for multi-select
@@ -8635,14 +8726,22 @@ var selectBoxWidgetEdit_component = /*#__PURE__*/Object.freeze({
8635
8726
  AXPSelectBoxWidgetEditComponent: AXPSelectBoxWidgetEditComponent
8636
8727
  });
8637
8728
 
8729
+ //#region ----- Imports -----
8730
+ //#endregion
8731
+ //#region ----- Component -----
8638
8732
  class AXPSelectBoxWidgetViewComponent extends AXPDataListWidgetComponent {
8639
8733
  constructor() {
8640
8734
  super(...arguments);
8735
+ //#region ----- Computed Properties -----
8641
8736
  this.cssClassField = computed(() => this.options()['cssClassField'], /* @ts-ignore */
8642
8737
  ...(ngDevMode ? [{ debugName: "cssClassField" }] : /* istanbul ignore next */ []));
8643
8738
  this.badgeClass = computed(() => this.options()['badgeClass'], /* @ts-ignore */
8644
8739
  ...(ngDevMode ? [{ debugName: "badgeClass" }] : /* istanbul ignore next */ []));
8740
+ this.displayItems = computed(() => this.selectedItems().filter((item) => hasSelectItemLabel(item, this.textField(), this.valueField())), /* @ts-ignore */
8741
+ ...(ngDevMode ? [{ debugName: "displayItems" }] : /* istanbul ignore next */ []));
8645
8742
  }
8743
+ //#endregion
8744
+ //#region ----- Rendering Helpers -----
8646
8745
  resolveBadgeClasses(item) {
8647
8746
  return resolveSelectBadgeClasses(item, {
8648
8747
  cssClassField: this.cssClassField(),
@@ -8650,16 +8749,11 @@ class AXPSelectBoxWidgetViewComponent extends AXPDataListWidgetComponent {
8650
8749
  });
8651
8750
  }
8652
8751
  getItemLabel(item) {
8653
- const row = item;
8654
- const label = row[this.textField()];
8655
- if (label != null && typeof label === 'object') {
8656
- return label;
8657
- }
8658
- return String(label ?? '');
8752
+ return resolveSelectItemLabel(item, this.textField(), this.valueField());
8659
8753
  }
8660
8754
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSelectBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8661
8755
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSelectBoxWidgetViewComponent, isStandalone: true, selector: "axp-select-box-widget-view", host: { classAttribute: "flex gap-1 flex-wrap" }, usesInheritance: true, ngImport: i0, template: `
8662
- @for (item of selectedItems(); track $index) {
8756
+ @for (item of displayItems(); track $index) {
8663
8757
  <span class="{{ resolveBadgeClasses(item) }}">
8664
8758
  {{ getItemLabel(item) | translate | async }}
8665
8759
  </span>
@@ -8673,7 +8767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
8673
8767
  args: [{
8674
8768
  selector: 'axp-select-box-widget-view',
8675
8769
  template: `
8676
- @for (item of selectedItems(); track $index) {
8770
+ @for (item of displayItems(); track $index) {
8677
8771
  <span class="{{ resolveBadgeClasses(item) }}">
8678
8772
  {{ getItemLabel(item) | translate | async }}
8679
8773
  </span>
@@ -19359,7 +19453,7 @@ const AXPRepeaterWidget = {
19359
19453
  component: () => Promise.resolve().then(function () { return repeaterWidgetDesigner_component; }).then((c) => c.AXPRepeaterWidgetDesignerComponent),
19360
19454
  },
19361
19455
  column: {
19362
- component: () => import('./acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DYpd-XXJ.mjs').then((c) => c.AXPRepeaterWidgetColumnComponent),
19456
+ component: () => import('./acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-MHOUqz2l.mjs').then((c) => c.AXPRepeaterWidgetColumnComponent),
19363
19457
  },
19364
19458
  },
19365
19459
  };
@@ -27477,9 +27571,9 @@ class AXPListToolbarWidgetViewComponent extends AXPValueWidgetComponent {
27477
27571
  ...(ngDevMode ? [{ debugName: "viewPopover" }] : /* istanbul ignore next */ []));
27478
27572
  this.filterTriggerMode = signal('manual', /* @ts-ignore */
27479
27573
  ...(ngDevMode ? [{ debugName: "filterTriggerMode" }] : /* istanbul ignore next */ []));
27480
- this.previousFilterQueries = signal(this.getValue()?.filters || [], /* @ts-ignore */
27574
+ this.previousFilterQueries = signal([], /* @ts-ignore */
27481
27575
  ...(ngDevMode ? [{ debugName: "previousFilterQueries" }] : /* istanbul ignore next */ []));
27482
- this.currentFilterQueries = signal(this.getValue()?.filters || [], /* @ts-ignore */
27576
+ this.currentFilterQueries = signal([], /* @ts-ignore */
27483
27577
  ...(ngDevMode ? [{ debugName: "currentFilterQueries" }] : /* istanbul ignore next */ []));
27484
27578
  //filters
27485
27579
  this.filterDefinitions = computed(() => this.options()['filterDefinitions'] || [], /* @ts-ignore */
@@ -27504,9 +27598,9 @@ class AXPListToolbarWidgetViewComponent extends AXPValueWidgetComponent {
27504
27598
  return selected?.sorts ?? [];
27505
27599
  }, /* @ts-ignore */
27506
27600
  ...(ngDevMode ? [{ debugName: "defaultSorts" }] : /* istanbul ignore next */ []));
27507
- // initials — seed once (like master toolbar); do not live-bind getValue().filters
27508
- // or every emit resets axp-query-filters context and select labels fall back to raw keys.
27509
- this.initialFilters = signal(this.getValue()?.filters || [], /* @ts-ignore */
27601
+ // Seed once after the widget path exists. Field init runs before fullPath, so getValue() is empty there.
27602
+ // Do not live-bind getValue().filters — every emit would reset axp-query-filters context.
27603
+ this.initialFilters = signal([], /* @ts-ignore */
27510
27604
  ...(ngDevMode ? [{ debugName: "initialFilters" }] : /* istanbul ignore next */ []));
27511
27605
  this.initialColumns = computed(() => this.getValue()?.columns ?? [], /* @ts-ignore */
27512
27606
  ...(ngDevMode ? [{ debugName: "initialColumns" }] : /* istanbul ignore next */ []));
@@ -27557,6 +27651,16 @@ class AXPListToolbarWidgetViewComponent extends AXPValueWidgetComponent {
27557
27651
  }, /* @ts-ignore */
27558
27652
  ...(ngDevMode ? [{ debugName: "pickerColumns" }] : /* istanbul ignore next */ []));
27559
27653
  }
27654
+ ngOnInit() {
27655
+ super.ngOnInit();
27656
+ const filters = this.getValue()?.filters;
27657
+ if (!Array.isArray(filters)) {
27658
+ return;
27659
+ }
27660
+ this.initialFilters.set(filters);
27661
+ this.currentFilterQueries.set(filters);
27662
+ this.previousFilterQueries.set(filters);
27663
+ }
27560
27664
  async loadSettings() {
27561
27665
  const filterTriggerMode = await this.settingsService.get(AXPCommonSettings.EntityFilterApplyMode);
27562
27666
  this.filterTriggerMode.set((filterTriggerMode?.value ?? 'auto'));
@@ -27567,19 +27671,25 @@ class AXPListToolbarWidgetViewComponent extends AXPValueWidgetComponent {
27567
27671
  #customViewsEffect;
27568
27672
  //actions
27569
27673
  applyFilters() {
27570
- this.previousFilterQueries.set(this.currentFilterQueries());
27571
- this.setValue({ ...this.getValue(), filters: this.currentFilterQueries() });
27674
+ const filters = this.filtersWithHiddenScope(this.currentFilterQueries());
27675
+ this.currentFilterQueries.set(filters);
27676
+ this.previousFilterQueries.set(filters);
27677
+ this.setValue({ ...this.getValue(), filters });
27572
27678
  }
27573
27679
  onFiltersChanged(filters) {
27574
- if (!isEqual(this.getValue()?.filters || [], filters)) {
27680
+ const next = this.filtersWithHiddenScope(filters);
27681
+ if (!isEqual(this.getValue()?.filters || [], next)) {
27575
27682
  if (this.filterTriggerMode() === 'auto') {
27576
- this.setValue({ ...this.getValue(), filters });
27683
+ this.setValue({ ...this.getValue(), filters: next });
27577
27684
  }
27578
27685
  else {
27579
- this.currentFilterQueries.set(filters);
27686
+ this.currentFilterQueries.set(next);
27580
27687
  }
27581
27688
  }
27582
27689
  }
27690
+ filtersWithHiddenScope(incoming) {
27691
+ return mergeHiddenScopeFilters(this.getValue()?.filters, incoming);
27692
+ }
27583
27693
  onColumnsChanged(columns) {
27584
27694
  if (!isEqual(this.getValue()?.columns || [], columns)) {
27585
27695
  this.setValue({ ...this.getValue(), columns });
@@ -32534,7 +32644,7 @@ const AXPTextBlockWidget = {
32534
32644
  component: () => Promise.resolve().then(function () { return textBlockWidgetView_component; }).then((c) => c.AXPTextBlockWidgetViewComponent),
32535
32645
  },
32536
32646
  designer: {
32537
- component: () => import('./acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DfgIxNyy.mjs').then((c) => c.AXPTextBlockWidgetDesignerComponent),
32647
+ component: () => import('./acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-oLFeaHdz.mjs').then((c) => c.AXPTextBlockWidgetDesignerComponent),
32538
32648
  },
32539
32649
  },
32540
32650
  };
@@ -33316,4 +33426,4 @@ var getWidgetsForAi_query = /*#__PURE__*/Object.freeze({
33316
33426
  */
33317
33427
 
33318
33428
  export { AXPConditionClauseWidget as $, AXP_REPEATER_ENTITY_BY_KEY_LOOKUP as A, AXPCallbackValidationWidgetEditComponent as B, AXPCheckBoxWidget as C, AXPCheckBoxWidgetColumnComponent as D, AXPCheckBoxWidgetDesignerComponent as E, AXPCheckBoxWidgetEditComponent as F, AXPCheckBoxWidgetPrintComponent as G, AXPCheckBoxWidgetViewComponent as H, AXPCodeEditorWidget as I, AXPColorBoxWidget as J, AXPColorBoxWidgetColumnComponent as K, AXPColorBoxWidgetDesignerComponent as L, AXPColorBoxWidgetEditComponent as M, AXPColorBoxWidgetViewComponent as N, AXPColorChooserWidget as O, AXPColorChooserWidgetColumnComponent as P, AXPColorChooserWidgetDesignerComponent as Q, AXPColorChooserWidgetEditComponent as R, AXPColorChooserWidgetViewComponent as S, AXPColorPaletteWidget as T, AXPColorPaletteWidgetColumnComponent as U, AXPColorPaletteWidgetDesignerComponent as V, AXPColorPaletteWidgetEditComponent as W, AXPColorPaletteWidgetViewComponent as X, AXPConditionBuilderWidget as Y, AXPConditionBuilderWidgetEditComponent as Z, AXPConditionBuilderWidgetViewComponent as _, textBlockContentClass as a, AXPLargeTextWidget as a$, AXPConditionClauseWidgetEditComponent as a0, AXPConnectedDragDropListsWidget as a1, AXPConnectedListsWidgetColumnComponent as a2, AXPConnectedListsWidgetEditComponent as a3, AXPConnectedListsWidgetViewComponent as a4, AXPContactWidget as a5, AXPContactWidgetColumnComponent as a6, AXPContactWidgetEditComponent as a7, AXPContactWidgetViewComponent as a8, AXPDataListWidget as a9, AXPFlexItemWidgetViewComponent as aA, AXPFlexOptionsWidget as aB, AXPFlexOptionsWidgetEditComponent as aC, AXPFlexWidget as aD, AXPFlexWidgetDesignerComponent as aE, AXPFlexWidgetViewComponent as aF, AXPGetWidgetsForAIQuery as aG, AXPGreaterThanExpressionValidationWidget as aH, AXPGreaterThanValidationWidgetEditComponent as aI, AXPGridItemOptionsWidget as aJ, AXPGridItemOptionsWidgetEditComponent as aK, AXPGridOptionsWidget as aL, AXPGridOptionsWidgetEditComponent as aM, AXPImageMarkerPopupComponent as aN, AXPImageMarkerWidget as aO, AXPImageMarkerWidgetColumnComponent as aP, AXPImageMarkerWidgetEditComponent as aQ, AXPImageMarkerWidgetViewComponent as aR, AXPIntegrationConnectionActionsService as aS, AXPIntegrationConnectionsPanelWidget as aT, AXPIntegrationConnectionsPanelWidgetEditComponent as aU, AXPItemConfiguratorWidget as aV, AXPItemConfiguratorWidgetColumnComponent as aW, AXPItemConfiguratorWidgetEditComponent as aX, AXPJsonViewerWidget as aY, AXPJsonViewerWidgetEditComponent as aZ, AXPJsonViewerWidgetViewComponent as a_, AXPDataListWidgetViewComponent as aa, AXPDataSourceOptionsWidget as ab, AXPDataSourceOptionsWidgetEditComponent as ac, AXPDateTimeBoxWidget as ad, AXPDateTimeBoxWidgetColumnComponent as ae, AXPDateTimeBoxWidgetEditComponent as af, AXPDateTimeBoxWidgetViewComponent as ag, AXPDirectionWidget as ah, AXPDirectionWidgetEditComponent as ai, AXPDragDropListWidget as aj, AXPEditorJsWidget as ak, AXPEditorJsWidgetColumnComponent as al, AXPEditorJsWidgetEditComponent as am, AXPEditorJsWidgetViewComponent as an, AXPEqualValidationWidget as ao, AXPEqualValidationWidgetEditComponent as ap, AXPFieldsetWidget as aq, AXPFieldsetWidgetDesignerComponent as ar, AXPFieldsetWidgetViewComponent as as, AXPFileViewerWidget as at, AXPFileViewerWidgetEditComponent as au, AXPFileViewerWidgetViewComponent as av, AXPFlexItemOptionsWidget as aw, AXPFlexItemOptionsWidgetEditComponent as ax, AXPFlexItemWidget as ay, AXPFlexItemWidgetDesignerComponent as az, AXPAdvancedGridItemWidget as b, AXPRichTextWidgetViewComponent as b$, AXPLargeTextWidgetColumnComponent as b0, AXPLargeTextWidgetEditComponent as b1, AXPLargeTextWidgetPrintComponent as b2, AXPLargeTextWidgetViewComponent as b3, AXPLessThanExpressionValidationWidget as b4, AXPLessThanValidationWidgetEditComponent as b5, AXPListStylingRulesExtendedWidget as b6, AXPListWidgetColumnComponent as b7, AXPListWidgetEditComponent as b8, AXPListWidgetViewComponent as b9, AXPProgressBarWidgetColumnComponent as bA, AXPProgressBarWidgetEditComponent as bB, AXPProgressBarWidgetViewComponent as bC, AXPProviderSelectWidgetColumnComponent as bD, AXPProviderSelectWidgetEditBase as bE, AXPProviderSelectWidgetViewComponent as bF, AXPQrcodeViewerService as bG, AXPQrcodeWidget as bH, AXPQrcodeWidgetColumnComponent as bI, AXPQrcodeWidgetEditComponent as bJ, AXPQrcodeWidgetViewComponent as bK, AXPRatePickerWidget as bL, AXPRatePickerWidgetColumnComponent as bM, AXPRatePickerWidgetEditComponent as bN, AXPRatePickerWidgetViewComponent as bO, AXPRegularExpressionValidationWidget as bP, AXPRegularExpressionValidationWidgetEditComponent as bQ, AXPRepeaterWidget as bR, AXPRepeaterWidgetDesignerComponent as bS, AXPRepeaterWidgetEditComponent as bT, AXPRepeaterWidgetViewComponent as bU, AXPRequiredValidationWidget as bV, AXPRequiredValidationWidgetEditComponent as bW, AXPRichTextWidget as bX, AXPRichTextWidgetColumnComponent as bY, AXPRichTextWidgetEditComponent as bZ, AXPRichTextWidgetPrintComponent as b_, AXPLocalDataSourceSheetWidget as ba, AXPLocalDataSourceSheetWidgetEditComponent as bb, AXPMapWidgetEditComponent as bc, AXPMapWidgetViewComponent as bd, AXPMaxLengthExpressionValidationWidget as be, AXPMaxLengthValidationWidgetEditComponent as bf, AXPMinLengthExpressionValidationWidget as bg, AXPMinLengthValidationWidgetEditComponent as bh, AXPNodeRendererWidget as bi, AXPNodeRendererWidgetDesignerComponent as bj, AXPNodeRendererWidgetEditComponent as bk, AXPNodeRendererWidgetViewComponent as bl, AXPNumberBoxWidget as bm, AXPNumberBoxWidgetColumnComponent as bn, AXPNumberBoxWidgetEditComponent as bo, AXPNumberBoxWidgetPrintComponent as bp, AXPNumberBoxWidgetViewComponent as bq, AXPOutcomeResultsViewerWidget as br, AXPOutcomeResultsViewerWidgetViewComponent as bs, AXPPageWidget as bt, AXPPageWidgetViewComponent as bu, AXPPasswordBoxWidget as bv, AXPPasswordBoxWidgetColumnComponent as bw, AXPPasswordBoxWidgetEditComponent as bx, AXPPasswordBoxWidgetViewComponent as by, AXPProgressBarWidget as bz, AXPAdvancedGridItemWidgetDesignerComponent as c, AXP_Flex_Box_Align_Options as c$, AXPSchedulerPickerWidget as c0, AXPSelectBoxWidget as c1, AXPSelectBoxWidgetColumnComponent as c2, AXPSelectBoxWidgetEditComponent as c3, AXPSelectBoxWidgetViewComponent as c4, AXPSelectLanguagePopup as c5, AXPSelectionListWidget as c6, AXPSelectionListWidgetColumnComponent as c7, AXPSelectionListWidgetDesignerComponent as c8, AXPSelectionListWidgetEditComponent as c9, AXPTagEditorWidgetViewComponent as cA, AXPTemplateBoxWidget as cB, AXPTemplateBoxWidgetColumnComponent as cC, AXPTemplateBoxWidgetEditComponent as cD, AXPTemplateBoxWidgetPrintComponent as cE, AXPTemplateBoxWidgetViewComponent as cF, AXPTextBoxWidget as cG, AXPTextBoxWidgetColumnComponent as cH, AXPTextBoxWidgetEditComponent as cI, AXPTextBoxWidgetPrintComponent as cJ, AXPTextBoxWidgetViewComponent as cK, AXPToggleWidget as cL, AXPToggleWidgetColumnComponent as cM, AXPToggleWidgetEditComponent as cN, AXPToggleWidgetPrintComponent as cO, AXPToggleWidgetViewComponent as cP, AXPWidgetFieldConfiguratorWidget as cQ, AXPWidgetFieldConfiguratorWidgetColumnComponent as cR, AXPWidgetFieldConfiguratorWidgetEditComponent as cS, AXPWidgetsModule as cT, AXP_ABSOLUTE_UNITS as cU, AXP_BORDER_RADIUS_UNITS as cV, AXP_BORDER_WIDTH_UNITS as cW, AXP_CONDITION_CLAUSE_WIDGET_NAME as cX, AXP_DATA_LIST_CMD_DELETE as cY, AXP_DATA_LIST_CMD_EDIT as cZ, AXP_DATA_LIST_PENDING_DELETE_KEY as c_, AXPSelectionListWidgetViewComponent as ca, AXPSignatureWidget as cb, AXPSignatureWidgetColumnComponent as cc, AXPSignatureWidgetEditComponent as cd, AXPSignatureWidgetViewComponent as ce, AXPSpacingWidget as cf, AXPSpacingWidgetEditComponent as cg, AXPStatusChipComponent as ch, AXPStatusWidget as ci, AXPStatusWidgetColumnComponent as cj, AXPStatusWidgetEditComponent as ck, AXPStatusWidgetViewComponent as cl, AXPStepWizardWidget as cm, AXPStepWizardWidgetDesignerComponent as cn, AXPStepWizardWidgetViewComponent as co, AXPStopwatchWidget as cp, AXPStopwatchWidgetViewComponent as cq, AXPTableItemWidget as cr, AXPTableItemWidgetDesignerComponent as cs, AXPTableItemWidgetViewComponent as ct, AXPTableWidget as cu, AXPTableWidgetDesignerComponent as cv, AXPTableWidgetViewComponent as cw, AXPTagEditorWidget as cx, AXPTagEditorWidgetColumnComponent as cy, AXPTagEditorWidgetEditComponent as cz, AXPAdvancedGridItemWidgetViewComponent as d, AXP_Flex_Box_Alignments as d0, AXP_Flex_Box_Justify_Options as d1, AXP_Grid_Box_Align_Items_Options as d2, AXP_Grid_Box_Alignments as d3, AXP_Grid_Box_Justify_Items_Options as d4, AXP_LIST_STYLING_RULES_WIDGET_NAME as d5, AXP_LOCAL_DATA_SOURCE_SHEET_WIDGET_NAME as d6, AXP_RELATIVE_UNITS as d7, AXP_RELATIVE_UNITS_NO_PERCENT as d8, AXP_ROW_EXPR_PREFIX as d9, AXP_SPACING_UNITS as da, AXP_default_Border_Box_Units as db, AXP_default_Border_Box_Value as dc, AXP_default_Spacing_Box_Units as dd, AXP_default_Spacing_Box_Value as de, DEFAULT_QRCODE_SIZE as df, DEFAULT_STRATEGY_CONFIG as dg, STRATEGY_CONFIG_TOKEN as dh, applyLeafVisibilityToDataListColumnTree as di, flattenDataListWidgetColumns as dj, formatConditionBuilderChip as dk, formatConditionBuilderSentence as dl, isDataListColumnBand as dm, prepareNodeRendererChild as dn, resolveColorChooserGroups as dp, resolveDataListColumnWidth as dq, tokensToPlainText as dr, AXPAdvancedGridOptionsWidget as e, AXPAdvancedGridOptionsWidgetEditComponent as f, AXPAdvancedGridWidget as g, AXPAdvancedGridWidgetDesignerComponent as h, AXPAdvancedGridWidgetViewComponent as i, AXPAvatarWidget as j, AXPAvatarWidgetColumnComponent as k, AXPAvatarWidgetDesignerComponent as l, AXPAvatarWidgetEditComponent as m, AXPAvatarWidgetViewComponent as n, AXPBetweenExpressionValidationWidget as o, AXPBetweenValidationWidgetEditComponent as p, AXPBlockWidget as q, AXPBlockWidgetDesignerComponent as r, AXPBlockWidgetViewComponent as s, textBlockStyleAttribute as t, AXPBorderWidget as u, AXPBorderWidgetEditComponent as v, AXPButtonWidget as w, AXPButtonWidgetColumnComponent as x, AXPButtonWidgetViewComponent as y, AXPCallbackValidationWidget as z };
33319
- //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-BwwxqHzR.mjs.map
33429
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CWvC9Eh2.mjs.map