@acorex-platform/module-data-management-client 0.0.33 → 0.0.38

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 (25) hide show
  1. package/fesm2022/acorex-platform-module-data-management-client-contracts-entities-data-source.mjs.map +1 -1
  2. package/fesm2022/acorex-platform-module-data-management-client-contracts-entities-meta-data-definition.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-module-data-management-client-contracts-entities-tag.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-module-data-management-client-contracts-entity-catalog-acorex-platform-module-data-management-client-contracts-entity-catalog-BIY8VQ23.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-module-data-management-client-contracts-entity-catalog-data-source.entity-CJ7ky5Gc.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-module-data-management-client-contracts-entity-catalog-meta-data-definition.entity-Dj3FPJ3n.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-module-data-management-client-contracts-entity-catalog-tag.entity-CFKCEoHu.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-module-data-management-client-contracts.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-module-data-management-client-index-CMxKYDas.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-module-data-management-client-list-agreement-scale-options.query-Dl7jMXp1.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-module-data-management-client-list-availability-options.query-CdaHTgij.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-module-data-management-client-list-frequency-options.query-BvsPPzFj.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-module-data-management-client-list-gender-options.query-BA6Bwv66.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-module-data-management-client-list-nps-scale-options.query-C8Pbp0Ow.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-module-data-management-client-list-priority-options.query-GCuv4lU3.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-module-data-management-client-list-rating-1-10-options.query-BYBU_yzv.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-module-data-management-client-list-rating-scale-options.query-H-jWx7_1.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-module-data-management-client-list-satisfaction-options.query-BIDjWNP5.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-module-data-management-client-list-yes-no-maybe-options.query-C90RnQ5A.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-module-data-management-client-list-yes-no-na-options.query-tz9dR33P.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-module-data-management-client-list-yes-no-options.query-w2mqJJNZ.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-module-data-management-client-local-entities.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-module-data-management-client.mjs +11 -11
  24. package/fesm2022/acorex-platform-module-data-management-client.mjs.map +1 -1
  25. package/package.json +1 -1
@@ -254,7 +254,7 @@ class AXMColumnFilterSelectorWidgetEditComponent extends AXPValueWidgetComponent
254
254
  }
255
255
  </axp-widgets-container>
256
256
  </div>
257
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
257
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
258
258
  }
259
259
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMColumnFilterSelectorWidgetEditComponent, decorators: [{
260
260
  type: Component,
@@ -787,7 +787,7 @@ class AXPQueryBuilderConditionComponent {
787
787
  this.removeItem.emit(this.item.id);
788
788
  }
789
789
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQueryBuilderConditionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
790
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPQueryBuilderConditionComponent, isStandalone: true, selector: "axp-query-builder-condition", inputs: { item: "item", filterDefinitions: "filterDefinitions", onResolveWidget: "onResolveWidget" }, outputs: { itemChange: "itemChange", removeItem: "removeItem" }, ngImport: i0, template: "<div class=\"__condition-row\">\n <div class=\"__item-content\">\n <!-- Field Selector -->\n <div class=\"__field-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"availableFieldsDataSource()\"\n [ngModel]=\"selectedFieldValue()\"\n (onValueChanged)=\"onFieldChange($event)\"\n valueField=\"value\"\n textField=\"text\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.condition.select-field' | translate | async) || 'Select a field'\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n\n <!-- Default Filter Widget (Operator + Value) -->\n <div class=\"__operator-selector\">\n @if (selectedField()?.field && filterNode().type) {\n <axp-widgets-container \n class=\"__filter-widget-container\" \n [context]=\"context()\" \n (onContextChanged)=\"onContextChange($event)\">\n <ng-container \n axp-widget-renderer \n [node]=\"filterNode()\" \n [mode]=\"'edit'\">\n </ng-container>\n </axp-widgets-container>\n } @else {\n <div class=\"__filter-placeholder\">\n <span class=\"__placeholder-text\">{{ ('@data-management:metadata-definitions.components.query-builder.condition.select-field-first' | translate | async) || 'Select a field first' }}</span>\n </div>\n }\n </div>\n\n <!-- Fill By User (isParametric) -->\n <div class=\"__fill-by-user\">\n <ax-check-box\n class=\"text-xs\"\n [ngModel]=\"$safeNavigationMigration(selectedField()?.isParametric)\"\n (ngModelChange)=\"onFillByUserChange($event)\"\n >\n <ax-label>\n {{ '@data-management:metadata-definitions.components.query-builder.condition.fill-by-user' | translate | async }}\n </ax-label>\n </ax-check-box>\n </div>\n </div>\n</div>\n\n", styles: ["@layer properties;.__condition-row{display:flex;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.__condition-row .__item-content{display:flex;flex:1;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.__condition-row .__item-content .__field-selector{flex-shrink:0;min-width:180px}.__condition-row .__item-content .__field-selector ax-lookup{width:100%}.__condition-row .__item-content .__operator-selector{min-width:200px;flex:1}.__condition-row .__item-content .__operator-selector .__filter-widget-container{width:100%}.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep .axp-widgets-container{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-lookup{min-width:140px}.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-text-box,.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-number-box,.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-date-time-box{flex:1}.__condition-row .__item-content .__operator-selector .__filter-placeholder{display:flex;align-items:center;justify-content:center;border-radius:.25rem;border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-sys-color-border-lighter-surface),1);border-width:1px}.__condition-row .__item-content .__operator-selector .__filter-placeholder .__placeholder-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-500, oklch(55.6% 0 none));font-style:italic}@media(max-width:768px){.__condition-row{flex-direction:column;align-items:stretch}.__condition-row .__item-content{flex-direction:column;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.__condition-row .__field-selector,.__condition-row .__operator-selector{width:100%;min-width:0px}}@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: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i2$1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
790
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPQueryBuilderConditionComponent, isStandalone: true, selector: "axp-query-builder-condition", inputs: { item: "item", filterDefinitions: "filterDefinitions", onResolveWidget: "onResolveWidget" }, outputs: { itemChange: "itemChange", removeItem: "removeItem" }, ngImport: i0, template: "<div class=\"__condition-row\">\n <div class=\"__item-content\">\n <!-- Field Selector -->\n <div class=\"__field-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"availableFieldsDataSource()\"\n [ngModel]=\"selectedFieldValue()\"\n (onValueChanged)=\"onFieldChange($event)\"\n valueField=\"value\"\n textField=\"text\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.condition.select-field' | translate | async) || 'Select a field'\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n\n <!-- Default Filter Widget (Operator + Value) -->\n <div class=\"__operator-selector\">\n @if (selectedField()?.field && filterNode().type) {\n <axp-widgets-container \n class=\"__filter-widget-container\" \n [context]=\"context()\" \n (onContextChanged)=\"onContextChange($event)\">\n <ng-container \n axp-widget-renderer \n [node]=\"filterNode()\" \n [mode]=\"'edit'\">\n </ng-container>\n </axp-widgets-container>\n } @else {\n <div class=\"__filter-placeholder\">\n <span class=\"__placeholder-text\">{{ ('@data-management:metadata-definitions.components.query-builder.condition.select-field-first' | translate | async) || 'Select a field first' }}</span>\n </div>\n }\n </div>\n\n <!-- Fill By User (isParametric) -->\n <div class=\"__fill-by-user\">\n <ax-check-box\n class=\"text-xs\"\n [ngModel]=\"$safeNavigationMigration(selectedField()?.isParametric)\"\n (ngModelChange)=\"onFillByUserChange($event)\"\n >\n <ax-label>\n {{ '@data-management:metadata-definitions.components.query-builder.condition.fill-by-user' | translate | async }}\n </ax-label>\n </ax-check-box>\n </div>\n </div>\n</div>\n\n", styles: ["@layer properties;.__condition-row{display:flex;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.__condition-row .__item-content{display:flex;flex:1;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.__condition-row .__item-content .__field-selector{flex-shrink:0;min-width:180px}.__condition-row .__item-content .__field-selector ax-lookup{width:100%}.__condition-row .__item-content .__operator-selector{min-width:200px;flex:1}.__condition-row .__item-content .__operator-selector .__filter-widget-container{width:100%}.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep .axp-widgets-container{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-lookup{min-width:140px}.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-text-box,.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-number-box,.__condition-row .__item-content .__operator-selector .__filter-widget-container ::ng-deep ax-date-time-box{flex:1}.__condition-row .__item-content .__operator-selector .__filter-placeholder{display:flex;align-items:center;justify-content:center;border-radius:.25rem;border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-sys-color-border-lighter-surface),1);border-width:1px}.__condition-row .__item-content .__operator-selector .__filter-placeholder .__placeholder-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-500, oklch(55.6% 0 none));font-style:italic}@media(max-width:768px){.__condition-row{flex-direction:column;align-items:stretch}.__condition-row .__item-content{flex-direction:column;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.__condition-row .__field-selector,.__condition-row .__operator-selector{width:100%;min-width:0px}}@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: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i2$1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
791
791
  }
792
792
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQueryBuilderConditionComponent, decorators: [{
793
793
  type: Component,
@@ -1594,7 +1594,7 @@ class AXPWhereBuilderComponent {
1594
1594
  }
1595
1595
  }
1596
1596
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPWhereBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1597
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPWhereBuilderComponent, isStandalone: true, selector: "axp-where-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, filterDefinitions: { classPropertyName: "filterDefinitions", publicName: "filterDefinitions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-where-builder\">\n <div class=\"__content\">\n <!-- Root Group - Render directly to ensure reactivity -->\n <div class=\"__group __root-group\" [class.__connectors-enabled]=\"(queryData().filters?.length ?? 0) > 1\">\n <div class=\"__group-wrapper\">\n <!-- Single Connector Line for the Group -->\n <div class=\"__group-connector\">\n <div class=\"__operator-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm __operator-chip\"\n [dataSource]=\"logicalOperators\"\n [ngModel]=\"queryData().logic\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n (onValueChanged)=\"updateGroupLogicalOperator(queryData().id!, $event.value)\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n </div>\n\n <!-- Conditions Container -->\n <div class=\"__conditions-container\" axDropList\n (dropListDropped)=\"reorderGroupItemsEvent(queryData().id!, $event)\">\n @if ((queryData().filters?.length ?? 0) === 0) {\n <div class=\"__group-empty\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n } @else {\n @for (item of getSortedFilters(queryData().filters || []); track item.id; let i = $index; let first = $first;\n let last = $last) {\n <div class=\"__condition-item\" axDrag [class.__is-first]=\"first && (queryData().filters?.length ?? 0) > 1\"\n [class.__is-last]=\"last && (queryData().filters?.length ?? 0) > 1\">\n <!-- Drag Handle -->\n <div class=\"__drag-handle\" axDragHandle>\n <ax-icon icon=\"fa-solid fa-grip-vertical\"></ax-icon>\n </div>\n\n <!-- Condition or Nested Group Content -->\n <div class=\"__item-content\">\n @if (item.filters === undefined) {\n <axp-query-builder-condition [item]=\"item\" [filterDefinitions]=\"filterDefinitions()\"\n [onResolveWidget]=\"resolveDefaultFilterWidget.bind(this)\" (itemChange)=\"updateCondition($event)\"\n (removeItem)=\"removeItem($event)\">\n </axp-query-builder-condition>\n } @else {\n <ng-container [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{group: item, parentLogic: queryData().logic, isRoot: false}\">\n </ng-container>\n }\n </div>\n\n <!-- Item Controls (Up / Remove / Down) -->\n <div class=\"__item-controls\">\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"first\"\n title=\"Move up\" (onClick)=\"moveItemUp(i, queryData().id!)\">\n <ax-icon icon=\"fa-light fa-chevron-up\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'danger'\"\n [title]=\"'@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async\"\n (onClick)=\"removeItem(item.id!)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"last\"\n title=\"Move down\" (onClick)=\"moveItemDown(i, queryData().id!)\">\n <ax-icon icon=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Add Condition/Group Buttons (appears after group conditions) -->\n @if ((queryData().filters?.length ?? 0) > 0) {\n <div class=\"__group-actions\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n\n<!-- Group Template -->\n<ng-template #groupTemplate let-group=\"group\" let-parentLogic=\"parentLogic\" let-isRoot=\"isRoot\">\n <div class=\"__group\" [class.__root-group]=\"isRoot\" [class.__connectors-enabled]=\"(group.filters?.length ?? 0) > 1\">\n <div class=\"__group-wrapper\">\n <!-- Single Connector Line for the Group -->\n <div class=\"__group-connector\">\n <div class=\"__operator-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm __operator-chip\"\n [dataSource]=\"logicalOperators\"\n [ngModel]=\"group.logic\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n (onValueChanged)=\"updateGroupLogicalOperator(group.id, $event.value)\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n </div>\n\n <!-- Conditions Container -->\n <div class=\"__conditions-container\" axDropList (dropListDropped)=\"reorderGroupItemsEvent(group.id, $event)\">\n @if ((group.filters?.length ?? 0) === 0) {\n <div class=\"__group-empty\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n } @else {\n @for (item of getSortedFilters(group.filters || []); track item.id; let i = $index; let first = $first; let last\n = $last) {\n <div class=\"__condition-item\" axDrag [class.__is-first]=\"first && (group.filters?.length ?? 0) > 1\"\n [class.__is-last]=\"last && (group.filters?.length ?? 0) > 1\">\n <!-- Drag Handle -->\n <div class=\"__drag-handle\" axDragHandle>\n <ax-icon icon=\"fa-solid fa-grip-vertical\"></ax-icon>\n </div>\n\n <!-- Condition or Nested Group Content -->\n <div class=\"__item-content\">\n @if (item.filters === undefined) {\n <axp-query-builder-condition [item]=\"item\" [filterDefinitions]=\"filterDefinitions()\"\n [onResolveWidget]=\"resolveDefaultFilterWidget.bind(this)\" (itemChange)=\"updateCondition($event)\"\n (removeItem)=\"removeItem($event)\">\n </axp-query-builder-condition>\n } @else {\n <ng-container [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{group: item, parentLogic: group.logic, isRoot: false}\">\n </ng-container>\n }\n </div>\n\n <!-- Item Controls (Up / Remove / Down) -->\n <div class=\"__item-controls\">\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"first\"\n title=\"Move up\" (onClick)=\"moveItemUp(i, group.id)\">\n <ax-icon icon=\"fa-light fa-chevron-up\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'danger'\"\n [title]=\"'@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async\"\n (onClick)=\"removeItem(item.id!)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"last\"\n title=\"Move down\" (onClick)=\"moveItemDown(i, group.id)\">\n <ax-icon icon=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Add Condition/Group Buttons (appears after group conditions) -->\n @if ((group.filters?.length ?? 0) > 0) {\n <div class=\"__group-actions\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n</ng-template>", styles: ["@layer properties;.axp-where-builder{display:flex;height:100%;width:100%;flex-direction:column}.axp-where-builder .__content{flex:1;overflow:auto;padding:calc(var(--spacing, .25rem) * 3)}.axp-where-builder .__group{position:relative}.axp-where-builder .__group.__root-group{border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0;--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.axp-where-builder .__group:not(.__root-group){margin-top:calc(var(--spacing, .25rem) * 2);margin-bottom:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface),1)}.axp-where-builder .__group .__group-wrapper{--qb-connector-col: 4.25rem;display:grid;grid-template-columns:var(--qb-connector-col) 1fr;align-items:stretch;width:100%;min-height:2rem;min-width:0}.axp-where-builder .__group .__group-connector{position:relative;width:var(--qb-connector-col);display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;padding:0;--qb-operator-gap: 1.15rem}.axp-where-builder .__group .__group-connector:before,.axp-where-builder .__group .__group-connector:after{content:\"\";position:absolute;left:50%;transform:translate(-50%);top:var(--qb-connector-top, 1.5rem);bottom:var(--qb-connector-bottom, 1.5rem);width:0;border-left:2px solid rgba(var(--ax-sys-color-primary-500),.5);z-index:0}.axp-where-builder .__group .__group-connector:before{bottom:calc(50% + var(--qb-operator-gap))}.axp-where-builder .__group .__group-connector:after{top:calc(50% + var(--qb-operator-gap))}.axp-where-builder .__group .__group-connector .__operator-selector{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;flex-shrink:0;margin:0;max-width:100%;box-sizing:border-box}.axp-where-builder .__group .__group-connector .__operator-selector .__operator-chip{min-width:5rem;max-width:100%;position:relative;z-index:1}.axp-where-builder .__group .__group-connector .__operator-selector .__operator-chip ::ng-deep .select-box{border-color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface));color:var(--color-white, #fff);border-radius:.375rem;border-width:1px;background-color:rgba(var(--ax-sys-color-primary-500),1)!important;position:relative}.axp-where-builder .__group .__conditions-container{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);min-height:2rem;padding-left:.75rem;padding-right:0;padding-top:0;padding-bottom:0;position:relative;min-width:0}.axp-where-builder .__group .__conditions-container .__group-empty{display:flex;min-height:calc(var(--spacing, .25rem) * 12);flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 3)}.axp-where-builder .__group .__group-actions{margin-top:calc(var(--spacing, .25rem) * 2);display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5);border-top:1px solid rgba(var(--ax-sys-color-border-lighter-surface),1);grid-column:1/-1}.axp-where-builder .__condition-item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:.25rem;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5);cursor:move;-webkit-user-select:none;user-select:none;min-height:3rem;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1);position:relative}.axp-where-builder .__condition-item:hover{background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);border-color:rgba(var(--ax-sys-color-border-lighter-surface),1)}.axp-where-builder .__condition-item.__is-first:before,.axp-where-builder .__condition-item.__is-last:before{content:\"\";position:absolute;left:calc(-1 * (var(--qb-connector-col) * .5 + .75rem));top:50%;transform:translateY(-50%);width:calc(var(--qb-connector-col) * .5 + .75rem);height:0;border-top:2px solid rgba(var(--ax-sys-color-primary-500),.5);z-index:0}.axp-where-builder .__condition-item .__drag-handle{display:flex;height:calc(var(--spacing, .25rem) * 5);width:calc(var(--spacing, .25rem) * 5);align-items:center;justify-content:center;color:var(--color-neutral-400, oklch(70.8% 0 none));cursor:grab;transition:color .15s ease-in-out;flex-shrink:0;position:relative;z-index:1}.axp-where-builder .__condition-item .__drag-handle:active{cursor:grabbing}.axp-where-builder .__condition-item .__drag-handle:hover{color:var(--color-neutral-600, oklch(43.9% 0 none))}.axp-where-builder .__condition-item .__item-content{flex:1;position:relative;z-index:1;min-width:0}.axp-where-builder .__condition-item .__item-controls{display:flex;width:calc(var(--spacing, .25rem) * 8);flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing, .25rem);flex-shrink:0;position:relative;z-index:1}.axp-where-builder .__condition-item .__icon-btn{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;flex-shrink:0}.__group:not(.__connectors-enabled) .axp-where-builder .__group .__group-connector:before,.__group:not(.__connectors-enabled) .axp-where-builder .__group .__group-connector:after{content:none}.__condition-item.drag-preview{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:.25rem;border-style:var(--tw-border-style);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5);--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);opacity:.9;border-width:1px;min-height:3rem}.__condition-item.drag-placeholder{position:relative;border-radius:.25rem;border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);border-color:rgba(var(--ax-sys-color-primary-300),.5);min-height:3rem;margin-bottom:.5rem;opacity:.5;border-width:1px}.__condition-item.drag-placeholder>*{opacity:0%}.__condition-item.drag-animating{transition:transform .25s cubic-bezier(.4,0,.2,1)}.__group:not(.__root-group).drag-preview{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-width:1px}.__group:not(.__root-group).drag-placeholder{border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);opacity:50%;border-color:rgba(var(--ax-sys-color-primary-300),.5);margin-bottom:.5rem;min-height:4rem;border-width:1px}.__group:not(.__root-group).drag-dragging{opacity:70%}.__group:not(.__root-group):hover:not(.drag-dragging) .__drag-handle{color:rgba(var(--ax-sys-color-primary-surface))}.__conditions-container.drop-list-dragging{position:relative;min-height:calc(var(--spacing, .25rem) * 12);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);padding:var(--spacing, .25rem);border-color:rgba(var(--ax-sys-color-primary-300),.5);border-width:1px}.__conditions-container.drop-list-dragging .__condition-item:not(.drag-placeholder){margin-bottom:.375rem}.__conditions-container.drop-list-dragging .__condition-item:not(.drag-placeholder):last-child{margin-bottom:0}.__conditions-container.drop-list-dragging:has(.__group-empty):after{content:\"Drop conditions here\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-surface));z-index:-1;pointer-events:none;min-height:2rem}.__conditions-container.drop-list-receiving{position:relative;min-height:calc(var(--spacing, .25rem) * 12);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);padding:var(--spacing, .25rem);border-color:rgba(var(--ax-sys-color-primary-300),.5);border-width:1px}.__conditions-container.drop-list-receiving:has(.__group-empty):after{content:\"Drop conditions here\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-surface));z-index:-1;pointer-events:none;min-height:2rem}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped"], exportAs: ["axDropList"] }, { kind: "component", type: AXPQueryBuilderConditionComponent, selector: "axp-query-builder-condition", inputs: ["item", "filterDefinitions", "onResolveWidget"], outputs: ["itemChange", "removeItem"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1597
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPWhereBuilderComponent, isStandalone: true, selector: "axp-where-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, filterDefinitions: { classPropertyName: "filterDefinitions", publicName: "filterDefinitions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-where-builder\">\n <div class=\"__content\">\n <!-- Root Group - Render directly to ensure reactivity -->\n <div class=\"__group __root-group\" [class.__connectors-enabled]=\"(queryData().filters?.length ?? 0) > 1\">\n <div class=\"__group-wrapper\">\n <!-- Single Connector Line for the Group -->\n <div class=\"__group-connector\">\n <div class=\"__operator-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm __operator-chip\"\n [dataSource]=\"logicalOperators\"\n [ngModel]=\"queryData().logic\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n (onValueChanged)=\"updateGroupLogicalOperator(queryData().id!, $event.value)\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n </div>\n\n <!-- Conditions Container -->\n <div class=\"__conditions-container\" axDropList\n (dropListDropped)=\"reorderGroupItemsEvent(queryData().id!, $event)\">\n @if ((queryData().filters?.length ?? 0) === 0) {\n <div class=\"__group-empty\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n } @else {\n @for (item of getSortedFilters(queryData().filters || []); track item.id; let i = $index; let first = $first;\n let last = $last) {\n <div class=\"__condition-item\" axDrag [class.__is-first]=\"first && (queryData().filters?.length ?? 0) > 1\"\n [class.__is-last]=\"last && (queryData().filters?.length ?? 0) > 1\">\n <!-- Drag Handle -->\n <div class=\"__drag-handle\" axDragHandle>\n <ax-icon icon=\"fa-solid fa-grip-vertical\"></ax-icon>\n </div>\n\n <!-- Condition or Nested Group Content -->\n <div class=\"__item-content\">\n @if (item.filters === undefined) {\n <axp-query-builder-condition [item]=\"item\" [filterDefinitions]=\"filterDefinitions()\"\n [onResolveWidget]=\"resolveDefaultFilterWidget.bind(this)\" (itemChange)=\"updateCondition($event)\"\n (removeItem)=\"removeItem($event)\">\n </axp-query-builder-condition>\n } @else {\n <ng-container [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{group: item, parentLogic: queryData().logic, isRoot: false}\">\n </ng-container>\n }\n </div>\n\n <!-- Item Controls (Up / Remove / Down) -->\n <div class=\"__item-controls\">\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"first\"\n title=\"Move up\" (onClick)=\"moveItemUp(i, queryData().id!)\">\n <ax-icon icon=\"fa-light fa-chevron-up\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'danger'\"\n [title]=\"'@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async\"\n (onClick)=\"removeItem(item.id!)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"last\"\n title=\"Move down\" (onClick)=\"moveItemDown(i, queryData().id!)\">\n <ax-icon icon=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Add Condition/Group Buttons (appears after group conditions) -->\n @if ((queryData().filters?.length ?? 0) > 0) {\n <div class=\"__group-actions\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(queryData().id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n\n<!-- Group Template -->\n<ng-template #groupTemplate let-group=\"group\" let-parentLogic=\"parentLogic\" let-isRoot=\"isRoot\">\n <div class=\"__group\" [class.__root-group]=\"isRoot\" [class.__connectors-enabled]=\"(group.filters?.length ?? 0) > 1\">\n <div class=\"__group-wrapper\">\n <!-- Single Connector Line for the Group -->\n <div class=\"__group-connector\">\n <div class=\"__operator-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm __operator-chip\"\n [dataSource]=\"logicalOperators\"\n [ngModel]=\"group.logic\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n (onValueChanged)=\"updateGroupLogicalOperator(group.id, $event.value)\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n </div>\n\n <!-- Conditions Container -->\n <div class=\"__conditions-container\" axDropList (dropListDropped)=\"reorderGroupItemsEvent(group.id, $event)\">\n @if ((group.filters?.length ?? 0) === 0) {\n <div class=\"__group-empty\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n } @else {\n @for (item of getSortedFilters(group.filters || []); track item.id; let i = $index; let first = $first; let last\n = $last) {\n <div class=\"__condition-item\" axDrag [class.__is-first]=\"first && (group.filters?.length ?? 0) > 1\"\n [class.__is-last]=\"last && (group.filters?.length ?? 0) > 1\">\n <!-- Drag Handle -->\n <div class=\"__drag-handle\" axDragHandle>\n <ax-icon icon=\"fa-solid fa-grip-vertical\"></ax-icon>\n </div>\n\n <!-- Condition or Nested Group Content -->\n <div class=\"__item-content\">\n @if (item.filters === undefined) {\n <axp-query-builder-condition [item]=\"item\" [filterDefinitions]=\"filterDefinitions()\"\n [onResolveWidget]=\"resolveDefaultFilterWidget.bind(this)\" (itemChange)=\"updateCondition($event)\"\n (removeItem)=\"removeItem($event)\">\n </axp-query-builder-condition>\n } @else {\n <ng-container [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{group: item, parentLogic: group.logic, isRoot: false}\">\n </ng-container>\n }\n </div>\n\n <!-- Item Controls (Up / Remove / Down) -->\n <div class=\"__item-controls\">\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"first\"\n title=\"Move up\" (onClick)=\"moveItemUp(i, group.id)\">\n <ax-icon icon=\"fa-light fa-chevron-up\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'danger'\"\n [title]=\"'@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async\"\n (onClick)=\"removeItem(item.id!)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n <ax-button class=\"ax-sm __icon-btn\" [look]=\"'blank'\" [color]=\"'secondary'\" [disabled]=\"last\"\n title=\"Move down\" (onClick)=\"moveItemDown(i, group.id)\">\n <ax-icon icon=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Add Condition/Group Buttons (appears after group conditions) -->\n @if ((group.filters?.length ?? 0) > 0) {\n <div class=\"__group-actions\">\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'primary'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-condition.title' | translate | async\"\n (onClick)=\"addConditionToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [look]=\"'outline'\" [color]=\"'accent2'\"\n [text]=\"'@data-management:metadata-definitions.components.query-builder.actions.add-inner-group.title' | translate | async\"\n (onClick)=\"addGroupToGroup(group.id)\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n</ng-template>", styles: ["@layer properties;.axp-where-builder{display:flex;height:100%;width:100%;flex-direction:column}.axp-where-builder .__content{flex:1;overflow:auto;padding:calc(var(--spacing, .25rem) * 3)}.axp-where-builder .__group{position:relative}.axp-where-builder .__group.__root-group{border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0;--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.axp-where-builder .__group:not(.__root-group){margin-top:calc(var(--spacing, .25rem) * 2);margin-bottom:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface),1)}.axp-where-builder .__group .__group-wrapper{--qb-connector-col: 4.25rem;display:grid;grid-template-columns:var(--qb-connector-col) 1fr;align-items:stretch;width:100%;min-height:2rem;min-width:0}.axp-where-builder .__group .__group-connector{position:relative;width:var(--qb-connector-col);display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;padding:0;--qb-operator-gap: 1.15rem}.axp-where-builder .__group .__group-connector:before,.axp-where-builder .__group .__group-connector:after{content:\"\";position:absolute;left:50%;transform:translate(-50%);top:var(--qb-connector-top, 1.5rem);bottom:var(--qb-connector-bottom, 1.5rem);width:0;border-left:2px solid rgba(var(--ax-sys-color-primary-500),.5);z-index:0}.axp-where-builder .__group .__group-connector:before{bottom:calc(50% + var(--qb-operator-gap))}.axp-where-builder .__group .__group-connector:after{top:calc(50% + var(--qb-operator-gap))}.axp-where-builder .__group .__group-connector .__operator-selector{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;flex-shrink:0;margin:0;max-width:100%;box-sizing:border-box}.axp-where-builder .__group .__group-connector .__operator-selector .__operator-chip{min-width:5rem;max-width:100%;position:relative;z-index:1}.axp-where-builder .__group .__group-connector .__operator-selector .__operator-chip ::ng-deep .select-box{border-color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface));color:var(--color-white, #fff);border-radius:.375rem;border-width:1px;background-color:rgba(var(--ax-sys-color-primary-500),1)!important;position:relative}.axp-where-builder .__group .__conditions-container{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);min-height:2rem;padding-left:.75rem;padding-right:0;padding-top:0;padding-bottom:0;position:relative;min-width:0}.axp-where-builder .__group .__conditions-container .__group-empty{display:flex;min-height:calc(var(--spacing, .25rem) * 12);flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 3)}.axp-where-builder .__group .__group-actions{margin-top:calc(var(--spacing, .25rem) * 2);display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5);border-top:1px solid rgba(var(--ax-sys-color-border-lighter-surface),1);grid-column:1/-1}.axp-where-builder .__condition-item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:.25rem;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5);cursor:move;-webkit-user-select:none;user-select:none;min-height:3rem;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1);position:relative}.axp-where-builder .__condition-item:hover{background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);border-color:rgba(var(--ax-sys-color-border-lighter-surface),1)}.axp-where-builder .__condition-item.__is-first:before,.axp-where-builder .__condition-item.__is-last:before{content:\"\";position:absolute;left:calc(-1 * (var(--qb-connector-col) * .5 + .75rem));top:50%;transform:translateY(-50%);width:calc(var(--qb-connector-col) * .5 + .75rem);height:0;border-top:2px solid rgba(var(--ax-sys-color-primary-500),.5);z-index:0}.axp-where-builder .__condition-item .__drag-handle{display:flex;height:calc(var(--spacing, .25rem) * 5);width:calc(var(--spacing, .25rem) * 5);align-items:center;justify-content:center;color:var(--color-neutral-400, oklch(70.8% 0 none));cursor:grab;transition:color .15s ease-in-out;flex-shrink:0;position:relative;z-index:1}.axp-where-builder .__condition-item .__drag-handle:active{cursor:grabbing}.axp-where-builder .__condition-item .__drag-handle:hover{color:var(--color-neutral-600, oklch(43.9% 0 none))}.axp-where-builder .__condition-item .__item-content{flex:1;position:relative;z-index:1;min-width:0}.axp-where-builder .__condition-item .__item-controls{display:flex;width:calc(var(--spacing, .25rem) * 8);flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing, .25rem);flex-shrink:0;position:relative;z-index:1}.axp-where-builder .__condition-item .__icon-btn{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;flex-shrink:0}.__group:not(.__connectors-enabled) .axp-where-builder .__group .__group-connector:before,.__group:not(.__connectors-enabled) .axp-where-builder .__group .__group-connector:after{content:none}.__condition-item.drag-preview{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:.25rem;border-style:var(--tw-border-style);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5);--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);opacity:.9;border-width:1px;min-height:3rem}.__condition-item.drag-placeholder{position:relative;border-radius:.25rem;border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);border-color:rgba(var(--ax-sys-color-primary-300),.5);min-height:3rem;margin-bottom:.5rem;opacity:.5;border-width:1px}.__condition-item.drag-placeholder>*{opacity:0%}.__condition-item.drag-animating{transition:transform .25s cubic-bezier(.4,0,.2,1)}.__group:not(.__root-group).drag-preview{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-width:1px}.__group:not(.__root-group).drag-placeholder{border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);opacity:50%;border-color:rgba(var(--ax-sys-color-primary-300),.5);margin-bottom:.5rem;min-height:4rem;border-width:1px}.__group:not(.__root-group).drag-dragging{opacity:70%}.__group:not(.__root-group):hover:not(.drag-dragging) .__drag-handle{color:rgba(var(--ax-sys-color-primary-surface))}.__conditions-container.drop-list-dragging{position:relative;min-height:calc(var(--spacing, .25rem) * 12);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);padding:var(--spacing, .25rem);border-color:rgba(var(--ax-sys-color-primary-300),.5);border-width:1px}.__conditions-container.drop-list-dragging .__condition-item:not(.drag-placeholder){margin-bottom:.375rem}.__conditions-container.drop-list-dragging .__condition-item:not(.drag-placeholder):last-child{margin-bottom:0}.__conditions-container.drop-list-dragging:has(.__group-empty):after{content:\"Drop conditions here\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-surface));z-index:-1;pointer-events:none;min-height:2rem}.__conditions-container.drop-list-receiving{position:relative;min-height:calc(var(--spacing, .25rem) * 12);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);--tw-border-style: dashed;border-style:dashed;background-color:var(--color-primary-lightest);color:var(--color-on-primary-lightest);border-color:var(--color-border-primary-lightest);padding:var(--spacing, .25rem);border-color:rgba(var(--ax-sys-color-primary-300),.5);border-width:1px}.__conditions-container.drop-list-receiving:has(.__group-empty):after{content:\"Drop conditions here\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-surface));z-index:-1;pointer-events:none;min-height:2rem}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.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: "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: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped", "sortPreviewChanged"], exportAs: ["axDropList"] }, { kind: "component", type: AXPQueryBuilderConditionComponent, selector: "axp-query-builder-condition", inputs: ["item", "filterDefinitions", "onResolveWidget"], outputs: ["itemChange", "removeItem"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1598
1598
  }
1599
1599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPWhereBuilderComponent, decorators: [{
1600
1600
  type: Component,
@@ -1686,7 +1686,7 @@ class AXPColumnsBuilderComponent {
1686
1686
  this.valueChange.emit([]);
1687
1687
  }
1688
1688
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPColumnsBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1689
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPColumnsBuilderComponent, isStandalone: true, selector: "axp-columns-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-columns-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.columns.title' | translate | async) || 'Select Columns' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.select-all.title' | translate | async) || 'Select All'\"\n (onClick)=\"selectAll()\">\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.clear-all.title' | translate | async) || 'Clear All'\"\n (onClick)=\"clearAll()\">\n </ax-button>\n </div>\n </div>\n <div class=\"__section-body\">\n <ax-lookup\n mode=\"multi-select\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onColumnsChange($event)\"\n [searchable]=\"true\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.columns.placeholder' | translate | async) || 'Select columns to include in the query'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-columns-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-columns-builder .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-columns-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-columns-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-columns-builder .__section-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1689
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPColumnsBuilderComponent, isStandalone: true, selector: "axp-columns-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-columns-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.columns.title' | translate | async) || 'Select Columns' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.select-all.title' | translate | async) || 'Select All'\"\n (onClick)=\"selectAll()\">\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.clear-all.title' | translate | async) || 'Clear All'\"\n (onClick)=\"clearAll()\">\n </ax-button>\n </div>\n </div>\n <div class=\"__section-body\">\n <ax-lookup\n mode=\"multi-select\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onColumnsChange($event)\"\n [searchable]=\"true\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.columns.placeholder' | translate | async) || 'Select columns to include in the query'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-columns-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-columns-builder .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-columns-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-columns-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-columns-builder .__section-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.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: "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: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1690
1690
  }
1691
1691
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPColumnsBuilderComponent, decorators: [{
1692
1692
  type: Component,
@@ -1813,7 +1813,7 @@ class AXPSortBuilderComponent {
1813
1813
  this.valueChange.emit(updatedRules);
1814
1814
  }
1815
1815
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSortBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1816
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSortBuilderComponent, isStandalone: true, selector: "axp-sort-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-sort-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.sort.title' | translate | async) || 'Sort Rules' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-sort-rule.title' | translate | async) || 'Add Sort Rule'\"\n (onClick)=\"addSortRule()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n <div class=\"__section-body\">\n @if (value().length === 0) {\n <div class=\"__empty-state\">\n <ax-label class=\"__empty-state-text\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.sort.empty-state' | translate | async) || 'No sort rules defined. Click \\'Add Sort Rule\\' to add sorting.' }}\n </ax-label>\n </div>\n } @else {\n <div class=\"__sort-rules\">\n @for (rule of value(); track $index; let i = $index) {\n <div class=\"__sort-rule\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__sort-field\"\n [dataSource]=\"sortFieldDataSource()\"\n [ngModel]=\"rule.field\"\n (ngModelChange)=\"updateSortRuleField(i, $event)\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.sort.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__sort-direction\"\n [dataSource]=\"sortDirectionDataSource\"\n [ngModel]=\"rule.dir\"\n (ngModelChange)=\"updateSortRuleDirection(i, $event)\"\n [searchable]=\"false\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeSortRule(i)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-sort-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-sort-builder .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-sort-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-sort-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-sort-builder .__section-body,.axp-sort-builder .__sort-rules{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.axp-sort-builder .__sort-rules .__sort-rule{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.axp-sort-builder .__sort-rules .__sort-rule .__sort-field{flex:1}.axp-sort-builder .__sort-rules .__sort-rule .__sort-direction{width:calc(var(--spacing, .25rem) * 32)}.axp-sort-builder .__sort-rules .__sort-rule .__icon-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;flex-shrink:0}.axp-sort-builder .__empty-state{display:flex;align-items:center;justify-content:center;padding-block:calc(var(--spacing, .25rem) * 8)}.axp-sort-builder .__empty-state .__empty-state-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1816
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSortBuilderComponent, isStandalone: true, selector: "axp-sort-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-sort-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.sort.title' | translate | async) || 'Sort Rules' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-sort-rule.title' | translate | async) || 'Add Sort Rule'\"\n (onClick)=\"addSortRule()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n <div class=\"__section-body\">\n @if (value().length === 0) {\n <div class=\"__empty-state\">\n <ax-label class=\"__empty-state-text\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.sort.empty-state' | translate | async) || 'No sort rules defined. Click \\'Add Sort Rule\\' to add sorting.' }}\n </ax-label>\n </div>\n } @else {\n <div class=\"__sort-rules\">\n @for (rule of value(); track $index; let i = $index) {\n <div class=\"__sort-rule\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__sort-field\"\n [dataSource]=\"sortFieldDataSource()\"\n [ngModel]=\"rule.field\"\n (ngModelChange)=\"updateSortRuleField(i, $event)\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.sort.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__sort-direction\"\n [dataSource]=\"sortDirectionDataSource\"\n [ngModel]=\"rule.dir\"\n (ngModelChange)=\"updateSortRuleDirection(i, $event)\"\n [searchable]=\"false\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeSortRule(i)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-sort-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-sort-builder .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-sort-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-sort-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-sort-builder .__section-body,.axp-sort-builder .__sort-rules{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.axp-sort-builder .__sort-rules .__sort-rule{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.axp-sort-builder .__sort-rules .__sort-rule .__sort-field{flex:1}.axp-sort-builder .__sort-rules .__sort-rule .__sort-direction{width:calc(var(--spacing, .25rem) * 32)}.axp-sort-builder .__sort-rules .__sort-rule .__icon-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;flex-shrink:0}.axp-sort-builder .__empty-state{display:flex;align-items:center;justify-content:center;padding-block:calc(var(--spacing, .25rem) * 8)}.axp-sort-builder .__empty-state .__empty-state-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.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: "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: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1817
1817
  }
1818
1818
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSortBuilderComponent, decorators: [{
1819
1819
  type: Component,
@@ -1901,7 +1901,7 @@ class AXPGroupByBuilderComponent {
1901
1901
  this.valueChange.emit([]);
1902
1902
  }
1903
1903
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGroupByBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1904
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPGroupByBuilderComponent, isStandalone: true, selector: "axp-group-by-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-group-by-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.group-by.title' | translate | async) || 'Group By' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.select-all.title' | translate | async) || 'Select All'\"\n (onClick)=\"selectAll()\">\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.clear-all.title' | translate | async) || 'Clear All'\"\n (onClick)=\"clearAll()\">\n </ax-button>\n </div>\n </div>\n <div class=\"__section-body\">\n <ax-lookup\n mode=\"multi-select\"\n [dataSource]=\"groupByDataSource()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onGroupByChange($event)\"\n [searchable]=\"true\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.group-by.placeholder' | translate | async) || 'Select columns to group by'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-group-by-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-group-by-builder .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-group-by-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-group-by-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-group-by-builder .__section-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1904
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPGroupByBuilderComponent, isStandalone: true, selector: "axp-group-by-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-group-by-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.group-by.title' | translate | async) || 'Group By' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.select-all.title' | translate | async) || 'Select All'\"\n (onClick)=\"selectAll()\">\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.clear-all.title' | translate | async) || 'Clear All'\"\n (onClick)=\"clearAll()\">\n </ax-button>\n </div>\n </div>\n <div class=\"__section-body\">\n <ax-lookup\n mode=\"multi-select\"\n [dataSource]=\"groupByDataSource()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onGroupByChange($event)\"\n [searchable]=\"true\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.group-by.placeholder' | translate | async) || 'Select columns to group by'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-group-by-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-group-by-builder .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-group-by-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-group-by-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-group-by-builder .__section-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.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: "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: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1905
1905
  }
1906
1906
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGroupByBuilderComponent, decorators: [{
1907
1907
  type: Component,
@@ -2714,7 +2714,7 @@ class AXPAggregateBuilderComponent {
2714
2714
  });
2715
2715
  }
2716
2716
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAggregateBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2717
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPAggregateBuilderComponent, isStandalone: true, selector: "axp-aggregate-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, databaseType: { classPropertyName: "databaseType", publicName: "databaseType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-aggregate-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.title' | translate | async) || 'Aggregate Functions' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"(showAddForm() ? ('@data-management:metadata-definitions.components.query-builder.actions.cancel.title' | translate | async) : ('@data-management:metadata-definitions.components.query-builder.actions.add-aggregate.title' | translate | async)) || (showAddForm() ? 'Cancel' : 'Add Aggregate')\"\n (onClick)=\"toggleAddForm()\">\n <ax-prefix>\n <ax-icon [icon]=\"showAddForm() ? 'fa-light fa-times' : 'fa-light fa-plus'\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n\n <!-- Filters -->\n <div class=\"__filters\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__category-filter\"\n [dataSource]=\"categoriesDataSource()\"\n [ngModel]=\"selectedCategory()\"\n (ngModelChange)=\"selectedCategory.set($event)\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n [look]=\"'outline'\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.category-placeholder' | translate | async) || 'Filter by category'\">\n </ax-lookup>\n <ax-search-box\n class=\"__search-filter\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.search-placeholder' | translate | async) || 'Search functions...'\"\n [value]=\"searchText()\"\n (valueChange)=\"searchText.set($event)\">\n </ax-search-box>\n </div>\n\n <!-- Add Form -->\n @if (showAddForm()) {\n <div class=\"__add-form\">\n <div class=\"__form-row\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"newAggregate().function\"\n (ngModelChange)=\"onFunctionChange($event)\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n @if (newAggregate().function && functionRequiresField(newAggregate().function!)) {\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"newAggregate().field\"\n (ngModelChange)=\"onFieldChange($event)\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n }\n <ax-text-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().alias\"\n (ngModelChange)=\"onAliasChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.alias-placeholder' | translate | async) || 'Alias (optional)'\"\n [type]=\"'text'\">\n </ax-text-box>\n @if (newAggregate().function && functionSupportsDistinct(newAggregate().function!)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().distinct\"\n (ngModelChange)=\"onDistinctChange($event)\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!)) {\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested'\"\n (onClick)=\"addNestedToNewAggregate()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm\"\n [look]=\"'solid'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add.title' | translate | async) || 'Add'\"\n (onClick)=\"addAggregate()\">\n </ax-button>\n </div>\n \n <!-- Nested Aggregates for New Aggregate -->\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!) && newAggregate().nestedAggregates && newAggregate().nestedAggregates!.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of newAggregate().nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { function: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { field: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedFromNewAggregate(ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Aggregate Operations List -->\n <div class=\"__section-body\">\n @if (value().length === 0) {\n <div class=\"__empty-state\">\n <ax-label class=\"__empty-state-text\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.empty-state' | translate | async) || 'No aggregate functions defined. Click \\'Add Aggregate\\' to add aggregation.' }}\n </ax-label>\n </div>\n } @else {\n <div class=\"__aggregate-operations\">\n @for (agg of value(); track $index; let i = $index) {\n <div class=\"__aggregate-operation\">\n <div class=\"__operation-info\">\n <ax-label class=\"__function-name\">\n {{ getFunctionDefinition(agg.function)?.title || agg.function }}(\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n {{ getFunctionDefinition(nested.function)?.title || nested.function }}({{ nested.distinct ? 'DISTINCT ' : '' }}{{ nested.field || '*' }})\n @if (ni < agg.nestedAggregates!.length - 1) {\n <span>, </span>\n }\n }\n } @else {\n {{ agg.distinct ? 'DISTINCT ' : '' }}{{ agg.field || '*' }}\n }\n )\n </ax-label>\n @if (agg.alias) {\n <ax-label class=\"__alias\">AS {{ agg.alias }}</ax-label>\n }\n </div>\n <div class=\"__operation-actions\">\n @if (functionSupportsNested(agg.function) && canAddNestedAggregate(i, getNestingDepth(agg))) {\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'primary'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested Aggregate'\"\n (onClick)=\"addNestedAggregate(i)\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeAggregate(i)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n \n <!-- Nested Aggregates Editor -->\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { function: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { field: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedAggregate(i, ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-aggregate-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-aggregate-builder .__section-header{display:flex;align-items:center;justify-content:space-between}.axp-aggregate-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-aggregate-builder .__section-header .__section-actions,.axp-aggregate-builder .__filters{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__filters .__category-filter,.axp-aggregate-builder .__filters .__search-filter{flex:1;min-width:200px}.axp-aggregate-builder .__add-form{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-50, oklch(98.5% 0 none));padding:calc(var(--spacing, .25rem) * 4)}.axp-aggregate-builder .__add-form .__form-row{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__add-form .__form-row .__form-field{flex:1;min-width:150px}.axp-aggregate-builder .__section-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__empty-state{padding-block:calc(var(--spacing, .25rem) * 8);text-align:center}.axp-aggregate-builder .__section-body .__empty-state .__empty-state-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}.axp-aggregate-builder .__section-body .__aggregate-operations{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation{display:flex;align-items:center;justify-content:space-between;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-50, oklch(98.5% 0 none));padding:calc(var(--spacing, .25rem) * 3)}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info{display:flex;flex:1;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__function-name{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-900, oklch(20.5% 0 none))}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__alias{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none));font-style:italic}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates{margin-top:calc(var(--spacing, .25rem) * 2);margin-left:calc(var(--spacing, .25rem) * 6);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-left-style:var(--tw-border-style);border-left-width:2px;border-color:var(--color-neutral-300, oklch(87% 0 none));padding-left:calc(var(--spacing, .25rem) * 4)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-100, oklch(97% 0 none));padding:calc(var(--spacing, .25rem) * 3)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__form-field{flex:1;min-width:150px}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i3$2.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i2$1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2717
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPAggregateBuilderComponent, isStandalone: true, selector: "axp-aggregate-builder", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, databaseType: { classPropertyName: "databaseType", publicName: "databaseType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-aggregate-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.title' | translate | async) || 'Aggregate Functions' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"(showAddForm() ? ('@data-management:metadata-definitions.components.query-builder.actions.cancel.title' | translate | async) : ('@data-management:metadata-definitions.components.query-builder.actions.add-aggregate.title' | translate | async)) || (showAddForm() ? 'Cancel' : 'Add Aggregate')\"\n (onClick)=\"toggleAddForm()\">\n <ax-prefix>\n <ax-icon [icon]=\"showAddForm() ? 'fa-light fa-times' : 'fa-light fa-plus'\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n\n <!-- Filters -->\n <div class=\"__filters\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__category-filter\"\n [dataSource]=\"categoriesDataSource()\"\n [ngModel]=\"selectedCategory()\"\n (ngModelChange)=\"selectedCategory.set($event)\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n [look]=\"'outline'\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.category-placeholder' | translate | async) || 'Filter by category'\">\n </ax-lookup>\n <ax-search-box\n class=\"__search-filter\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.search-placeholder' | translate | async) || 'Search functions...'\"\n [value]=\"searchText()\"\n (valueChange)=\"searchText.set($event)\">\n </ax-search-box>\n </div>\n\n <!-- Add Form -->\n @if (showAddForm()) {\n <div class=\"__add-form\">\n <div class=\"__form-row\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"newAggregate().function\"\n (ngModelChange)=\"onFunctionChange($event)\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n @if (newAggregate().function && functionRequiresField(newAggregate().function!)) {\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"newAggregate().field\"\n (ngModelChange)=\"onFieldChange($event)\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n }\n <ax-text-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().alias\"\n (ngModelChange)=\"onAliasChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.alias-placeholder' | translate | async) || 'Alias (optional)'\"\n [type]=\"'text'\">\n </ax-text-box>\n @if (newAggregate().function && functionSupportsDistinct(newAggregate().function!)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"newAggregate().distinct\"\n (ngModelChange)=\"onDistinctChange($event)\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!)) {\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested'\"\n (onClick)=\"addNestedToNewAggregate()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm\"\n [look]=\"'solid'\"\n [color]=\"'primary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.add.title' | translate | async) || 'Add'\"\n (onClick)=\"addAggregate()\">\n </ax-button>\n </div>\n \n <!-- Nested Aggregates for New Aggregate -->\n @if (newAggregate().function && functionSupportsNested(newAggregate().function!) && newAggregate().nestedAggregates && newAggregate().nestedAggregates!.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of newAggregate().nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { function: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { field: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedInNewAggregate(ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedFromNewAggregate(ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Aggregate Operations List -->\n <div class=\"__section-body\">\n @if (value().length === 0) {\n <div class=\"__empty-state\">\n <ax-label class=\"__empty-state-text\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.empty-state' | translate | async) || 'No aggregate functions defined. Click \\'Add Aggregate\\' to add aggregation.' }}\n </ax-label>\n </div>\n } @else {\n <div class=\"__aggregate-operations\">\n @for (agg of value(); track $index; let i = $index) {\n <div class=\"__aggregate-operation\">\n <div class=\"__operation-info\">\n <ax-label class=\"__function-name\">\n {{ getFunctionDefinition(agg.function)?.title || agg.function }}(\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n {{ getFunctionDefinition(nested.function)?.title || nested.function }}({{ nested.distinct ? 'DISTINCT ' : '' }}{{ nested.field || '*' }})\n @if (ni < agg.nestedAggregates!.length - 1) {\n <span>, </span>\n }\n }\n } @else {\n {{ agg.distinct ? 'DISTINCT ' : '' }}{{ agg.field || '*' }}\n }\n )\n </ax-label>\n @if (agg.alias) {\n <ax-label class=\"__alias\">AS {{ agg.alias }}</ax-label>\n }\n </div>\n <div class=\"__operation-actions\">\n @if (functionSupportsNested(agg.function) && canAddNestedAggregate(i, getNestingDepth(agg))) {\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'primary'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.add-nested.title' | translate | async) || 'Add Nested Aggregate'\"\n (onClick)=\"addNestedAggregate(i)\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-button>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeAggregate(i)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n \n <!-- Nested Aggregates Editor -->\n @if (agg.nestedAggregates && agg.nestedAggregates.length > 0) {\n <div class=\"__nested-aggregates\">\n @for (nested of agg.nestedAggregates; track $index; let ni = $index) {\n <div class=\"__nested-aggregate\">\n <div class=\"__nested-form\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"functionsDataSource()\"\n [ngModel]=\"nested.function\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { function: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.function-placeholder' | translate | async) || 'Select function'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n @if (nested.function && functionRequiresField(nested.function)) {\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__form-field\"\n [dataSource]=\"columnsDataSource()\"\n [ngModel]=\"nested.field\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { field: $event })\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.aggregate.field-placeholder' | translate | async) || 'Select field'\"\n textField=\"text\"\n valueField=\"value\"\n [look]=\"'outline'\">\n </ax-lookup>\n }\n @if (nested.function && functionSupportsDistinct(nested.function)) {\n <ax-check-box\n class=\"__form-field\"\n [ngModel]=\"nested.distinct\"\n (ngModelChange)=\"updateNestedAggregate(i, ni, { distinct: $event })\">\n <ax-label>\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.aggregate.distinct-label' | translate | async) || 'DISTINCT' }}\n </ax-label>\n </ax-check-box>\n }\n <ax-button\n class=\"ax-sm __icon-btn\"\n [look]=\"'blank'\"\n [color]=\"'danger'\"\n [title]=\"('@data-management:metadata-definitions.components.query-builder.actions.remove.title' | translate | async) || 'Remove'\"\n (onClick)=\"removeNestedAggregate(i, ni)\">\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-aggregate-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-aggregate-builder .__section-header{display:flex;align-items:center;justify-content:space-between}.axp-aggregate-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-aggregate-builder .__section-header .__section-actions,.axp-aggregate-builder .__filters{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__filters .__category-filter,.axp-aggregate-builder .__filters .__search-filter{flex:1;min-width:200px}.axp-aggregate-builder .__add-form{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-50, oklch(98.5% 0 none));padding:calc(var(--spacing, .25rem) * 4)}.axp-aggregate-builder .__add-form .__form-row{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__add-form .__form-row .__form-field{flex:1;min-width:150px}.axp-aggregate-builder .__section-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__empty-state{padding-block:calc(var(--spacing, .25rem) * 8);text-align:center}.axp-aggregate-builder .__section-body .__empty-state .__empty-state-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}.axp-aggregate-builder .__section-body .__aggregate-operations{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation{display:flex;align-items:center;justify-content:space-between;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-50, oklch(98.5% 0 none));padding:calc(var(--spacing, .25rem) * 3)}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info{display:flex;flex:1;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__function-name{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-900, oklch(20.5% 0 none))}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-info .__alias{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none));font-style:italic}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}.axp-aggregate-builder .__section-body .__aggregate-operations .__aggregate-operation .__operation-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates{margin-top:calc(var(--spacing, .25rem) * 2);margin-left:calc(var(--spacing, .25rem) * 6);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-left-style:var(--tw-border-style);border-left-width:2px;border-color:var(--color-neutral-300, oklch(87% 0 none));padding-left:calc(var(--spacing, .25rem) * 4)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-100, oklch(97% 0 none));padding:calc(var(--spacing, .25rem) * 3)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__form-field{flex:1;min-width:150px}.axp-aggregate-builder .__section-body .__aggregate-operations .__nested-aggregates .__nested-aggregate .__nested-form .__icon-btn{flex-shrink:0;width:2rem;height:2rem;padding:0}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.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: "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: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i3$2.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i2$1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2718
2718
  }
2719
2719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAggregateBuilderComponent, decorators: [{
2720
2720
  type: Component,
@@ -3578,7 +3578,7 @@ class AXPRawQueryBuilderComponent {
3578
3578
  this.valueChange.emit('');
3579
3579
  }
3580
3580
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRawQueryBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3581
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPRawQueryBuilderComponent, isStandalone: true, selector: "axp-raw-query-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, queryLanguage: { classPropertyName: "queryLanguage", publicName: "queryLanguage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", queryLanguageChange: "queryLanguageChange" }, ngImport: i0, template: "<div class=\"axp-raw-query-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.raw-query.title' | translate | async) || 'Raw Query' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.format-query.title' | translate | async) || 'Format'\"\n (onClick)=\"formatQuery()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-code\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'danger'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.clear.title' | translate | async) || 'Clear'\"\n (onClick)=\"clearQuery()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n\n <!-- Query Language Selector -->\n <div class=\"__language-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__language-filter\"\n [dataSource]=\"queryLanguageDataSource()\"\n [ngModel]=\"selectedLanguage()\"\n (ngModelChange)=\"onLanguageChange($event)\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n [look]=\"'outline'\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.raw-query.language-placeholder' | translate | async) || 'Select query language'\">\n </ax-lookup>\n </div>\n\n <!-- Query Editor -->\n <div class=\"__query-editor\">\n <ax-text-area\n class=\"__query-textarea\"\n [ngModel]=\"rawQuery()\"\n (ngModelChange)=\"onQueryChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.raw-query.placeholder' | translate | async) || 'Enter your raw SQL query here...'\"\n [rows]=\"15\"\n [class.__error]=\"!isValid()\">\n </ax-text-area>\n \n @if (!isValid() && validationError()) {\n <div class=\"__validation-error\">\n <ax-label class=\"__error-text\">\n <ax-icon icon=\"fa-light fa-circle-exclamation\" class=\"text-danger-500\"></ax-icon>\n {{ validationError() }}\n </ax-label>\n </div>\n }\n </div>\n\n <!-- Help Text -->\n <div class=\"__help-text\">\n <ax-label class=\"__help-label\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.raw-query.help-text' | translate | async) || 'Write your query in ' + selectedLanguage().toUpperCase() + ' syntax. Changes here will sync with the structured query builder.' }}\n </ax-label>\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-raw-query-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-raw-query-builder .__section-header{display:flex;align-items:center;justify-content:space-between}.axp-raw-query-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-raw-query-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__language-selector{display:flex;align-items:center}.axp-raw-query-builder .__language-selector .__language-filter{width:calc(var(--spacing, .25rem) * 64)}.axp-raw-query-builder .__query-editor{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__query-editor .__query-textarea{width:100%;font-family:Courier New,monospace;font-size:.875rem}.axp-raw-query-builder .__query-editor .__query-textarea.__error{border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-danger-500))}.axp-raw-query-builder .__query-editor .__validation-error{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-danger-200));background-color:rgba(var(--ax-sys-color-danger-50));padding:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__query-editor .__validation-error .__error-text{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-danger-700))}.axp-raw-query-builder .__help-text{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-50, oklch(98.5% 0 none));padding:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__help-text .__help-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "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", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i3$3.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3581
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPRawQueryBuilderComponent, isStandalone: true, selector: "axp-raw-query-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, queryLanguage: { classPropertyName: "queryLanguage", publicName: "queryLanguage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", queryLanguageChange: "queryLanguageChange" }, ngImport: i0, template: "<div class=\"axp-raw-query-builder\">\n <div class=\"__section-header\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.raw-query.title' | translate | async) || 'Raw Query' }}\n </ax-label>\n <div class=\"__section-actions\">\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.format-query.title' | translate | async) || 'Format'\"\n (onClick)=\"formatQuery()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-code\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n [look]=\"'outline'\"\n [color]=\"'danger'\"\n [text]=\"('@data-management:metadata-definitions.components.query-builder.actions.clear.title' | translate | async) || 'Clear'\"\n (onClick)=\"clearQuery()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n\n <!-- Query Language Selector -->\n <div class=\"__language-selector\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"__language-filter\"\n [dataSource]=\"queryLanguageDataSource()\"\n [ngModel]=\"selectedLanguage()\"\n (ngModelChange)=\"onLanguageChange($event)\"\n textField=\"text\"\n valueField=\"value\"\n [searchable]=\"false\"\n [look]=\"'outline'\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.raw-query.language-placeholder' | translate | async) || 'Select query language'\">\n </ax-lookup>\n </div>\n\n <!-- Query Editor -->\n <div class=\"__query-editor\">\n <ax-text-area\n class=\"__query-textarea\"\n [ngModel]=\"rawQuery()\"\n (ngModelChange)=\"onQueryChange($event)\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.raw-query.placeholder' | translate | async) || 'Enter your raw SQL query here...'\"\n [rows]=\"15\"\n [class.__error]=\"!isValid()\">\n </ax-text-area>\n \n @if (!isValid() && validationError()) {\n <div class=\"__validation-error\">\n <ax-label class=\"__error-text\">\n <ax-icon icon=\"fa-light fa-circle-exclamation\" class=\"text-danger-500\"></ax-icon>\n {{ validationError() }}\n </ax-label>\n </div>\n }\n </div>\n\n <!-- Help Text -->\n <div class=\"__help-text\">\n <ax-label class=\"__help-label\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.raw-query.help-text' | translate | async) || 'Write your query in ' + selectedLanguage().toUpperCase() + ' syntax. Changes here will sync with the structured query builder.' }}\n </ax-label>\n </div>\n</div>\n\n", styles: ["@layer properties;.axp-raw-query-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-raw-query-builder .__section-header{display:flex;align-items:center;justify-content:space-between}.axp-raw-query-builder .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-raw-query-builder .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__language-selector{display:flex;align-items:center}.axp-raw-query-builder .__language-selector .__language-filter{width:calc(var(--spacing, .25rem) * 64)}.axp-raw-query-builder .__query-editor{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__query-editor .__query-textarea{width:100%;font-family:Courier New,monospace;font-size:.875rem}.axp-raw-query-builder .__query-editor .__query-textarea.__error{border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-danger-500))}.axp-raw-query-builder .__query-editor .__validation-error{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-danger-200));background-color:rgba(var(--ax-sys-color-danger-50));padding:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__query-editor .__validation-error .__error-text{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-danger-700))}.axp-raw-query-builder .__help-text{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200, oklch(92.2% 0 none));background-color:var(--color-neutral-50, oklch(98.5% 0 none));padding:calc(var(--spacing, .25rem) * 2)}.axp-raw-query-builder .__help-text .__help-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.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: "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: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i3$3.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3582
3582
  }
3583
3583
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRawQueryBuilderComponent, decorators: [{
3584
3584
  type: Component,
@@ -3672,7 +3672,7 @@ class AXPOutputBuilderComponent {
3672
3672
  this.valueChange.emit(value);
3673
3673
  }
3674
3674
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPOutputBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3675
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPOutputBuilderComponent, isStandalone: true, selector: "axp-output-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-output-builder\">\n <div class=\"__section\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.output.title' | translate | async) || 'Output Type' }}\n </ax-label>\n <ax-label class=\"__section-description\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.output.description' | translate | async) || 'Select the expected structure of the query result' }}\n </ax-label>\n </div>\n\n <div class=\"__content\">\n <ax-combo-box\n [ngModel]=\"internalValue()\"\n (ngModelChange)=\"onOutputTypeChange($event)\"\n [items]=\"outputTypeItems\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.output.placeholder' | translate | async) || 'Select output type'\">\n </ax-combo-box>\n </div>\n</div>\n", styles: ["@layer properties;.axp-output-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding:calc(var(--spacing, .25rem) * 4)}.axp-output-builder .__section{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-output-builder .__section .__section-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-output-builder .__section .__section-description{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--ax-color-text-secondary)}.axp-output-builder .__content{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXComboBoxComponent, selector: "ax-combo-box", inputs: ["name", "items", "searchable", "multiple", "adaptivityEnabled", "caption", "alternate", "placeholder", "searchPlaceholder", "emptyTemplate", "itemTemplate", "selectedTemplate", "disabled", "readonly", "look", "value"], outputs: ["lookChange", "valueChange", "onValueChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3675
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: AXPOutputBuilderComponent, isStandalone: true, selector: "axp-output-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-output-builder\">\n <div class=\"__section\">\n <ax-label class=\"__section-title\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.output.title' | translate | async) || 'Output Type' }}\n </ax-label>\n <ax-label class=\"__section-description\">\n {{ ('@data-management:metadata-definitions.components.query-builder.sections.output.description' | translate | async) || 'Select the expected structure of the query result' }}\n </ax-label>\n </div>\n\n <div class=\"__content\">\n <ax-combo-box\n [ngModel]=\"internalValue()\"\n (ngModelChange)=\"onOutputTypeChange($event)\"\n [items]=\"outputTypeItems\"\n [searchable]=\"false\"\n [placeholder]=\"('@data-management:metadata-definitions.components.query-builder.sections.output.placeholder' | translate | async) || 'Select output type'\">\n </ax-combo-box>\n </div>\n</div>\n", styles: ["@layer properties;.axp-output-builder{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding:calc(var(--spacing, .25rem) * 4)}.axp-output-builder .__section{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-output-builder .__section .__section-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-output-builder .__section .__section-description{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--ax-color-text-secondary)}.axp-output-builder .__content{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXComboBoxComponent, selector: "ax-combo-box", inputs: ["name", "items", "searchable", "multiple", "adaptivityEnabled", "caption", "alternate", "placeholder", "searchPlaceholder", "highlightSearch", "emptyTemplate", "itemTemplate", "selectedTemplate", "disabled", "readonly", "look", "value"], outputs: ["lookChange", "valueChange", "onValueChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3676
3676
  }
3677
3677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPOutputBuilderComponent, decorators: [{
3678
3678
  type: Component,
@@ -4006,7 +4006,7 @@ class AXPQueryBuilderComponent {
4006
4006
  this.valueChange.emit(currentData);
4007
4007
  }
4008
4008
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQueryBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4009
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPQueryBuilderComponent, isStandalone: true, selector: "axp-query-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, dataSourceDefinition: { classPropertyName: "dataSourceDefinition", publicName: "dataSourceDefinition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-query-builder\">\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"activeTab.set($event.index)\">\n <!-- Columns Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.columns.title' | translate | async) || 'Columns'\">\n </ax-tab-item>\n\n <!-- Where Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.where.title' | translate | async) || 'Where'\">\n </ax-tab-item>\n\n <!-- Sort Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.sort.title' | translate | async) || 'Sort'\">\n </ax-tab-item>\n\n <!-- Group By Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.group-by.title' | translate | async) || 'Group By'\">\n </ax-tab-item>\n\n <!-- Aggregate Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.aggregate.title' | translate | async) || 'Aggregate'\">\n </ax-tab-item>\n\n <!-- Output Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.output.title' | translate | async) || 'Output'\">\n </ax-tab-item>\n\n <!-- Raw Query Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.raw.title' | translate | async) || 'Raw Query'\">\n </ax-tab-item>\n </ax-tabs>\n\n <!-- Validation Warnings -->\n @if (validationWarnings().length > 0) {\n <div class=\"__validation-warnings\">\n @for (warning of validationWarnings(); track $index) {\n <div class=\"__warning-item\">\n <ax-label class=\"__warning-text\">\n <ax-icon icon=\"fa-light fa-circle-exclamation\" class=\"text-warning-500\"></ax-icon>\n {{ (warning | translate | async) || warning }}\n </ax-label>\n </div>\n }\n </div>\n }\n\n <div class=\"__content\">\n <!-- Columns Section -->\n @if (activeTab() === 0) {\n <axp-columns-builder\n [columns]=\"columns()\"\n [value]=\"queryData().columns\"\n (valueChange)=\"onColumnsChange($event)\">\n </axp-columns-builder>\n }\n\n <!-- Where Section -->\n @if (activeTab() === 1) {\n <axp-where-builder\n [value]=\"queryData().where\"\n [filterDefinitions]=\"filterDefinitions()\"\n (valueChange)=\"onWhereChange($event)\">\n </axp-where-builder>\n }\n\n <!-- Sort Section -->\n @if (activeTab() === 2) {\n <axp-sort-builder\n [columns]=\"columns()\"\n [value]=\"queryData().sort\"\n (valueChange)=\"onSortChange($event)\">\n </axp-sort-builder>\n }\n\n <!-- Group By Section -->\n @if (activeTab() === 3) {\n <axp-group-by-builder\n [columns]=\"columns()\"\n [value]=\"queryData().groupBy\"\n (valueChange)=\"onGroupByChange($event)\">\n </axp-group-by-builder>\n }\n\n <!-- Aggregate Section -->\n @if (activeTab() === 4) {\n <axp-aggregate-builder\n [columns]=\"columns()\"\n [value]=\"queryData().aggregates\"\n (valueChange)=\"onAggregatesChange($event)\">\n </axp-aggregate-builder>\n }\n\n <!-- Output Section -->\n @if (activeTab() === 5) {\n <axp-output-builder\n [value]=\"queryData().outputType\"\n (valueChange)=\"onOutputTypeChange($event)\">\n </axp-output-builder>\n }\n\n <!-- Raw Query Section -->\n @if (activeTab() === 6) {\n <axp-raw-query-builder\n [value]=\"queryData().rawQuery || ''\"\n [queryLanguage]=\"queryData().queryLanguage || 'mysql'\"\n (valueChange)=\"onRawQueryChange($event)\"\n (queryLanguageChange)=\"onQueryLanguageChange($event)\">\n </axp-raw-query-builder>\n }\n </div>\n</div>\n", styles: ["@layer properties;.axp-query-builder{display:flex;height:100%;width:100%;flex-direction:column}.axp-query-builder .__content{flex:1;overflow:auto;padding:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__section{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__section .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__section .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-query-builder .__section .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-query-builder .__section .__section-body,.axp-query-builder .__sort-rules{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.axp-query-builder .__sort-rules .__sort-rule{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.axp-query-builder .__sort-rules .__sort-rule .__sort-field{flex:1}.axp-query-builder .__sort-rules .__sort-rule .__sort-direction{width:calc(var(--spacing, .25rem) * 32)}.axp-query-builder .__sort-rules .__sort-rule .__icon-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;flex-shrink:0}.axp-query-builder .__validation-warnings{margin:calc(var(--spacing, .25rem) * 4);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-warning-200));background-color:rgba(var(--ax-sys-color-warning-50));padding:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__validation-warnings .__warning-item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-query-builder .__validation-warnings .__warning-item .__warning-text{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-warning-700))}.axp-query-builder .__empty-state{display:flex;align-items:center;justify-content:center;padding-block:calc(var(--spacing, .25rem) * 8)}.axp-query-builder .__empty-state .__empty-state-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i1$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i1$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPWhereBuilderComponent, selector: "axp-where-builder", inputs: ["value", "filterDefinitions"], outputs: ["valueChange"] }, { kind: "component", type: AXPColumnsBuilderComponent, selector: "axp-columns-builder", inputs: ["columns", "value"], outputs: ["valueChange"] }, { kind: "component", type: AXPSortBuilderComponent, selector: "axp-sort-builder", inputs: ["columns", "value"], outputs: ["valueChange"] }, { kind: "component", type: AXPGroupByBuilderComponent, selector: "axp-group-by-builder", inputs: ["columns", "value"], outputs: ["valueChange"] }, { kind: "component", type: AXPAggregateBuilderComponent, selector: "axp-aggregate-builder", inputs: ["columns", "value", "databaseType"], outputs: ["valueChange"] }, { kind: "component", type: AXPRawQueryBuilderComponent, selector: "axp-raw-query-builder", inputs: ["value", "queryLanguage"], outputs: ["valueChange", "queryLanguageChange"] }, { kind: "component", type: AXPOutputBuilderComponent, selector: "axp-output-builder", inputs: ["value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4009
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPQueryBuilderComponent, isStandalone: true, selector: "axp-query-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, dataSourceDefinition: { classPropertyName: "dataSourceDefinition", publicName: "dataSourceDefinition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"axp-query-builder\">\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"activeTab.set($event.index)\">\n <!-- Columns Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.columns.title' | translate | async) || 'Columns'\">\n </ax-tab-item>\n\n <!-- Where Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.where.title' | translate | async) || 'Where'\">\n </ax-tab-item>\n\n <!-- Sort Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.sort.title' | translate | async) || 'Sort'\">\n </ax-tab-item>\n\n <!-- Group By Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.group-by.title' | translate | async) || 'Group By'\">\n </ax-tab-item>\n\n <!-- Aggregate Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.aggregate.title' | translate | async) || 'Aggregate'\">\n </ax-tab-item>\n\n <!-- Output Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.output.title' | translate | async) || 'Output'\">\n </ax-tab-item>\n\n <!-- Raw Query Tab -->\n <ax-tab-item [text]=\"('@data-management:metadata-definitions.components.query-builder.tabs.raw.title' | translate | async) || 'Raw Query'\">\n </ax-tab-item>\n </ax-tabs>\n\n <!-- Validation Warnings -->\n @if (validationWarnings().length > 0) {\n <div class=\"__validation-warnings\">\n @for (warning of validationWarnings(); track $index) {\n <div class=\"__warning-item\">\n <ax-label class=\"__warning-text\">\n <ax-icon icon=\"fa-light fa-circle-exclamation\" class=\"text-warning-500\"></ax-icon>\n {{ (warning | translate | async) || warning }}\n </ax-label>\n </div>\n }\n </div>\n }\n\n <div class=\"__content\">\n <!-- Columns Section -->\n @if (activeTab() === 0) {\n <axp-columns-builder\n [columns]=\"columns()\"\n [value]=\"queryData().columns\"\n (valueChange)=\"onColumnsChange($event)\">\n </axp-columns-builder>\n }\n\n <!-- Where Section -->\n @if (activeTab() === 1) {\n <axp-where-builder\n [value]=\"queryData().where\"\n [filterDefinitions]=\"filterDefinitions()\"\n (valueChange)=\"onWhereChange($event)\">\n </axp-where-builder>\n }\n\n <!-- Sort Section -->\n @if (activeTab() === 2) {\n <axp-sort-builder\n [columns]=\"columns()\"\n [value]=\"queryData().sort\"\n (valueChange)=\"onSortChange($event)\">\n </axp-sort-builder>\n }\n\n <!-- Group By Section -->\n @if (activeTab() === 3) {\n <axp-group-by-builder\n [columns]=\"columns()\"\n [value]=\"queryData().groupBy\"\n (valueChange)=\"onGroupByChange($event)\">\n </axp-group-by-builder>\n }\n\n <!-- Aggregate Section -->\n @if (activeTab() === 4) {\n <axp-aggregate-builder\n [columns]=\"columns()\"\n [value]=\"queryData().aggregates\"\n (valueChange)=\"onAggregatesChange($event)\">\n </axp-aggregate-builder>\n }\n\n <!-- Output Section -->\n @if (activeTab() === 5) {\n <axp-output-builder\n [value]=\"queryData().outputType\"\n (valueChange)=\"onOutputTypeChange($event)\">\n </axp-output-builder>\n }\n\n <!-- Raw Query Section -->\n @if (activeTab() === 6) {\n <axp-raw-query-builder\n [value]=\"queryData().rawQuery || ''\"\n [queryLanguage]=\"queryData().queryLanguage || 'mysql'\"\n (valueChange)=\"onRawQueryChange($event)\"\n (queryLanguageChange)=\"onQueryLanguageChange($event)\">\n </axp-raw-query-builder>\n }\n </div>\n</div>\n", styles: ["@layer properties;.axp-query-builder{display:flex;height:100%;width:100%;flex-direction:column}.axp-query-builder .__content{flex:1;overflow:auto;padding:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__section{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__section .__section-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__section .__section-header .__section-title{margin:0;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-query-builder .__section .__section-header .__section-actions{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-query-builder .__section .__section-body,.axp-query-builder .__sort-rules{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.axp-query-builder .__sort-rules .__sort-rule{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}.axp-query-builder .__sort-rules .__sort-rule .__sort-field{flex:1}.axp-query-builder .__sort-rules .__sort-rule .__sort-direction{width:calc(var(--spacing, .25rem) * 32)}.axp-query-builder .__sort-rules .__sort-rule .__icon-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;flex-shrink:0}.axp-query-builder .__validation-warnings{margin:calc(var(--spacing, .25rem) * 4);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-warning-200));background-color:rgba(var(--ax-sys-color-warning-50));padding:calc(var(--spacing, .25rem) * 4)}.axp-query-builder .__validation-warnings .__warning-item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-query-builder .__validation-warnings .__warning-item .__warning-text{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-warning-700))}.axp-query-builder .__empty-state{display:flex;align-items:center;justify-content:center;padding-block:calc(var(--spacing, .25rem) * 8)}.axp-query-builder .__empty-state .__empty-state-text{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:var(--color-neutral-600, oklch(43.9% 0 none))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i1$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "reorderable", "reorderDelay", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged", "onTabsReordered"] }, { kind: "component", type: i1$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPWhereBuilderComponent, selector: "axp-where-builder", inputs: ["value", "filterDefinitions"], outputs: ["valueChange"] }, { kind: "component", type: AXPColumnsBuilderComponent, selector: "axp-columns-builder", inputs: ["columns", "value"], outputs: ["valueChange"] }, { kind: "component", type: AXPSortBuilderComponent, selector: "axp-sort-builder", inputs: ["columns", "value"], outputs: ["valueChange"] }, { kind: "component", type: AXPGroupByBuilderComponent, selector: "axp-group-by-builder", inputs: ["columns", "value"], outputs: ["valueChange"] }, { kind: "component", type: AXPAggregateBuilderComponent, selector: "axp-aggregate-builder", inputs: ["columns", "value", "databaseType"], outputs: ["valueChange"] }, { kind: "component", type: AXPRawQueryBuilderComponent, selector: "axp-raw-query-builder", inputs: ["value", "queryLanguage"], outputs: ["valueChange", "queryLanguageChange"] }, { kind: "component", type: AXPOutputBuilderComponent, selector: "axp-output-builder", inputs: ["value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4010
4010
  }
4011
4011
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQueryBuilderComponent, decorators: [{
4012
4012
  type: Component,
@@ -6614,7 +6614,7 @@ class AXPMetaDataBuilderGroupsComponent {
6614
6614
  }
6615
6615
  }
6616
6616
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMetaDataBuilderGroupsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6617
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPMetaDataBuilderGroupsComponent, isStandalone: true, selector: "axp-meta-data-builder-groups", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, contextPath: { classPropertyName: "contextPath", publicName: "contextPath", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axp-meta-data-builder-groups\" *translate=\"let t\">\n @if (!readonly() && !hideHeaderActions()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n <ax-button class=\"ax-sm\"\n [text]=\"'@data-management:metadata-definitions.actions.add-group.title' | translate | async\" [color]=\"'primary'\"\n (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n\n <ax-button class=\"ax-sm\" [color]=\"'success'\" [disabled]=\"isPreviewDisabled()\"\n [text]=\"'@data-management:metadata-definitions.actions.preview.title' | translate | async\"\n (onClick)=\"handlePreviewClick()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-eye\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder\n class=\"block min-h-[200px]\"\n [value]=\"builderValue()\"\n [config]=\"standardConfig()\"\n [readonly]=\"readonly()\"\n (valueChange)=\"onBuilderValueChange($event)\"\n />\n</div>\n", styles: ["@layer properties;.axp-meta-data-builder-groups{display:flex;height:100%;width:100%;flex-direction:column}.axp-meta-data-builder-groups .__header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3)}.axp-meta-data-builder-groups .__header .__header-left,.axp-meta-data-builder-groups .__header .__header-right{display:flex;gap:calc(var(--spacing, .25rem) * 2)}@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: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6617
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPMetaDataBuilderGroupsComponent, isStandalone: true, selector: "axp-meta-data-builder-groups", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, contextPath: { classPropertyName: "contextPath", publicName: "contextPath", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axp-meta-data-builder-groups\" *translate=\"let t\">\n @if (!readonly() && !hideHeaderActions()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n <ax-button class=\"ax-sm\"\n [text]=\"'@data-management:metadata-definitions.actions.add-group.title' | translate | async\" [color]=\"'primary'\"\n (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n\n <ax-button class=\"ax-sm\" [color]=\"'success'\" [disabled]=\"isPreviewDisabled()\"\n [text]=\"'@data-management:metadata-definitions.actions.preview.title' | translate | async\"\n (onClick)=\"handlePreviewClick()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-eye\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder\n class=\"block min-h-[200px]\"\n [value]=\"builderValue()\"\n [config]=\"standardConfig()\"\n [readonly]=\"readonly()\"\n (valueChange)=\"onBuilderValueChange($event)\"\n />\n</div>\n", styles: ["@layer properties;.axp-meta-data-builder-groups{display:flex;height:100%;width:100%;flex-direction:column}.axp-meta-data-builder-groups .__header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3)}.axp-meta-data-builder-groups .__header .__header-left,.axp-meta-data-builder-groups .__header .__header-right{display:flex;gap:calc(var(--spacing, .25rem) * 2)}@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: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.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: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6618
6618
  }
6619
6619
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMetaDataBuilderGroupsComponent, decorators: [{
6620
6620
  type: Component,