igniteui-angular 18.1.14 → 18.1.16
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.
- package/esm2022/lib/grids/grid-base.directive.mjs +5 -2
- package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +26 -5
- package/esm2022/lib/query-builder/query-builder.component.mjs +3 -3
- package/fesm2022/igniteui-angular.mjs +29 -5
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/core/styles/components/grid/_grid-theme.scss +4 -1
- package/lib/core/styles/components/query-builder/_query-builder-theme.scss +3 -13
- package/lib/grids/grid-base.directive.d.ts +1 -0
- package/lib/grids/pivot-grid/pivot-grid.component.d.ts +8 -2
- package/package.json +1 -1
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -48303,11 +48303,11 @@ class IgxQueryBuilderComponent {
|
|
|
48303
48303
|
});
|
|
48304
48304
|
}
|
|
48305
48305
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxQueryBuilderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: IgxIconService }, { token: PlatformUtil }, { token: i0.ElementRef }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48306
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxQueryBuilderComponent, isStandalone: true, selector: "igx-query-builder", inputs: { fields: "fields", expressionTree: "expressionTree", locale: "locale", resourceStrings: "resourceStrings" }, outputs: { expressionTreeChange: "expressionTreeChange" }, host: { properties: { "class.igx-query-builder": "this.cssClass", "style.display": "this.display" } }, queries: [{ propertyName: "headerContent", first: true, predicate: IgxQueryBuilderHeaderComponent, descendants: true }], viewQueries: [{ propertyName: "fieldSelect", first: true, predicate: ["fieldSelect"], descendants: true, read: IgxSelectComponent }, { propertyName: "conditionSelect", first: true, predicate: ["conditionSelect"], descendants: true, read: IgxSelectComponent }, { propertyName: "searchValueInput", first: true, predicate: ["searchValueInput"], descendants: true, read: ElementRef }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "addRootAndGroupButton", first: true, predicate: ["addRootAndGroupButton"], descendants: true, read: ElementRef }, { propertyName: "addConditionButton", first: true, predicate: ["addConditionButton"], descendants: true, read: ElementRef }, { propertyName: "editingInputsContainer", first: true, predicate: ["editingInputsContainer"], descendants: true, read: ElementRef }, { propertyName: "addModeContainer", first: true, predicate: ["addModeContainer"], descendants: true, read: ElementRef }, { propertyName: "currentGroupButtonsContainer", first: true, predicate: ["currentGroupButtonsContainer"], descendants: true, read: ElementRef }, { propertyName: "contextMenuToggle", first: true, predicate: IgxToggleDirective, descendants: true }, { propertyName: "expressionsContainer", first: true, predicate: ["expressionsContainer"], descendants: true }, { propertyName: "overlayOutlet", first: true, predicate: ["overlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "chips", predicate: IgxChipComponent, descendants: true }], ngImport: i0, template: "<ng-template #addIcon>\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n</ng-template>\n\n<ng-template #closeIcon>\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n</ng-template>\n\n<igx-query-builder-header\n *ngIf=\"!headerContent\"\n [resourceStrings]=\"this.resourceStrings\"\n>\n</igx-query-builder-header>\n\n<ng-content select=\"igx-query-builder-header\"></ng-content>\n\n<div\n #expressionsContainer\n class=\"igx-query-builder__main\"\n (scroll)=\"onExpressionsScrolled()\"\n>\n <ng-container *ngIf=\"!rootGroup\">\n <button type=\"button\"\n #addRootAndGroupButton\n igxButton=\"outlined\"\n (click)=\"addAndGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"addOrGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n\n <div class=\"igx-filter-empty\">\n <h6 class=\"igx-filter-empty__title\">\n {{ this.resourceStrings.igx_query_builder_initial_text }}\n </h6>\n </div>\n </ng-container>\n\n <ng-template\n #addExpressionsTemplate\n let-expressionItem\n let-afterExpression=\"afterExpression\"\n >\n <button type=\"button\"\n #addConditionButton\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addCondition(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{\n this.resourceStrings.igx_query_builder_add_condition\n }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addAndGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addOrGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n </ng-template>\n\n <ng-template #filterOperandTemplate let-expressionItem>\n <div\n *ngIf=\"!expressionItem.inEditMode\"\n class=\"igx-filter-tree__expression-item\"\n (mouseenter)=\"expressionItem.hovered = true\"\n (mouseleave)=\"expressionItem.hovered = false\"\n >\n <igx-chip\n [data]=\"expressionItem\"\n [removable]=\"true\"\n [selected]=\"expressionItem.selected\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onChipClick(expressionItem)\"\n (dblclick)=\"onChipDblClick(expressionItem)\"\n (remove)=\"onChipRemove(expressionItem)\"\n (selectedChanged)=\"onChipSelectionEnd()\"\n >\n <span igxPrefix class=\"igx-filter-tree__expression-column\">{{\n expressionItem.fieldLabel ||\n expressionItem.expression.fieldName\n }}</span>\n <igx-prefix>\n <igx-icon\n family=\"default\"\n [name]=\"expressionItem.expression.condition.iconName\"\n >\n </igx-icon>\n </igx-prefix>\n <span class=\"igx-filter-tree__expression-condition\">\n {{\n getConditionFriendlyName(\n expressionItem.expression.condition.name\n )\n }}\n </span>\n <span\n igxSuffix\n *ngIf=\"!expressionItem.expression.condition.isUnary\"\n >\n {{\n isDate(expressionItem.expression.searchVal)\n ? getFormatter(expressionItem.expression.fieldName)\n ? (expressionItem.expression.searchVal\n | fieldFormatter\n : getFormatter(\n expressionItem.expression.fieldName\n )\n : undefined)\n : (expressionItem.expression.searchVal\n | date\n : getFormat(\n expressionItem.expression.fieldName\n )\n : undefined\n : this.locale)\n : expressionItem.expression.searchVal\n }}\n </span>\n </igx-chip>\n <div\n class=\"igx-filter-tree__expression-actions\"\n *ngIf=\"\n (expressionItem.selected &&\n selectedExpressions.length === 1) ||\n expressionItem.hovered\n \"\n >\n <span tabindex=\"0\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionEdit(expressionItem)\">\n <igx-icon\n family=\"default\"\n name=\"edit\" \n >\n </igx-icon>\n </span>\n <span tabindex=\"0\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionAdd(expressionItem)\">\n <igx-icon\n family=\"default\"\n name=\"add\" \n *ngIf=\"\n !expressionItem.inAddMode &&\n (expressionItem.parent !== currentGroup ||\n expressionItem !==\n currentGroup.children[\n currentGroup.children.length - 1\n ])\n \"\n >\n </igx-icon>\n </span>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inEditMode\"\n #editingInputsContainer\n class=\"igx-filter-tree__inputs\"\n >\n <igx-select\n #fieldSelect\n type=\"box\"\n [overlaySettings]=\"fieldSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_column_placeholder\n \"\n [(ngModel)]=\"selectedField\"\n >\n <igx-select-item *ngFor=\"let field of fields\" [value]=\"field\">\n {{ field.label || field.header || field.field }}\n </igx-select-item>\n </igx-select>\n\n <igx-select\n #conditionSelect\n type=\"box\"\n [overlaySettings]=\"conditionSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_condition_placeholder\n \"\n [(ngModel)]=\"selectedCondition\"\n [disabled]=\"!selectedField\"\n >\n <igx-prefix\n *ngIf=\"\n selectedField &&\n conditionSelect.value &&\n selectedField.filters.condition(conditionSelect.value)\n \"\n >\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(\n conditionSelect.value\n ).iconName\n \"\n >\n </igx-icon>\n </igx-prefix>\n\n <igx-select-item\n *ngFor=\"let condition of getConditionList()\"\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(condition)\n .iconName\n \"\n >\n </igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n getConditionFriendlyName(condition)\n }}</span>\n </div>\n </igx-select-item>\n </igx-select>\n\n <igx-input-group\n *ngIf=\"\n !selectedField ||\n (selectedField.dataType !== 'date' &&\n selectedField.dataType !== 'time' &&\n selectedField.dataType !== 'dateTime')\n \"\n type=\"box\"\n >\n <input\n #searchValueInput\n igxInput\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [type]=\"\n selectedField && selectedField.dataType === 'number'\n ? 'number'\n : 'text'\n \"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_value_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n />\n </igx-input-group>\n\n <igx-date-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'date'\"\n [(value)]=\"searchValue\"\n (keydown)=\"openPicker($event)\"\n (click)=\"picker.open()\"\n type=\"box\"\n [readOnly]=\"true\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [displayFormat]=\"selectedField.pipeArgs.format\"\n [weekStart]=\"selectedField.pipeArgs.weekStart\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n\n <igx-time-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'time'\"\n [(value)]=\"searchValue\"\n (click)=\"picker.open()\"\n (keydown)=\"openPicker($event)\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_time_placeholder\n \"\n type=\"box\"\n [readOnly]=\"true\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [inputFormat]=\"selectedField.defaultTimeFormat\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n\n <igx-input-group\n #inputGroup\n type=\"box\"\n *ngIf=\"selectedField && selectedField.dataType === 'dateTime'\"\n type=\"box\"\n >\n <input\n #input\n #searchValueInput\n igxInput\n tabindex=\"0\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [igxDateTimeEditor]=\"selectedField.defaultDateTimeFormat\"\n />\n </igx-input-group>\n\n <div class=\"igx-filter-tree__inputs-actions\">\n <button type=\"button\"\n igxIconButton=\"flat\"\n [disabled]=\"!operandCanBeCommitted()\"\n (click)=\"commitOperandEdit()\"\n >\n <igx-icon family=\"default\" name=\"confirm\"></igx-icon>\n </button>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandEdit()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inAddMode\"\n #addModeContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem.parent, expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandAdd()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </ng-template>\n\n <ng-template #expressionTreeTemplate let-expressionItem>\n <div class=\"igx-filter-tree\">\n <div\n tabindex=\"0\"\n class=\"igx-filter-tree__line\"\n [ngClass]=\"{\n 'igx-filter-tree__line--and': expressionItem.operator === 0,\n 'igx-filter-tree__line--or': expressionItem.operator === 1,\n 'igx-filter-tree__line--selected': expressionItem.selected\n }\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onGroupClick(expressionItem)\"\n ></div>\n\n <div class=\"igx-filter-tree__expression\">\n <ng-container *ngFor=\"let expr of expressionItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n isExpressionGroup(expr)\n ? expressionTreeTemplate\n : filterOperandTemplate;\n context: context(expr)\n \"\n >\n </ng-container>\n </ng-container>\n <div\n *ngIf=\"currentGroup === expressionItem\"\n #currentGroupButtonsContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxButton=\"outlined\"\n *ngIf=\"expressionItem !== rootGroup\"\n [disabled]=\"\n hasEditedExpression ||\n expressionItem.children.length < 2\n \"\n (click)=\"endGroup(expressionItem)\"\n >\n <span>{{\n this.resourceStrings.igx_query_builder_end_group\n }}</span>\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"rootGroup\">\n <ng-container\n *ngTemplateOutlet=\"\n expressionTreeTemplate;\n context: context(rootGroup)\n \"\n ></ng-container>\n </ng-container>\n\n <div\n igxToggle\n class=\"igx-filter-contextual-menu\"\n (keydown)=\"onKeyDown($event)\"\n (closed)=\"contextMenuClosed()\"\n >\n <button type=\"button\"\n igxIconButton=\"flat\"\n class=\"igx-filter-contextual-menu__close-btn\"\n (click)=\"clearSelection()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n\n <ng-container *ngIf=\"contextualGroup\">\n <igx-buttongroup\n [values]=\"filteringLogics\"\n type=\"outline\"\n (selected)=\"selectFilteringLogic($event)\"\n >\n </igx-buttongroup>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"!contextualGroup.parent\"\n (click)=\"ungroup()\"\n >\n <igx-icon family=\"default\" name=\"ungroup\"></igx-icon>\n <span>{{\n this.resourceStrings.igx_query_builder_ungroup\n }}</span>\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteGroup()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n <igx-icon family=\"default\" name=\"delete\"></igx-icon>\n <span>{{ this.resourceStrings.igx_query_builder_delete }}</span>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!contextualGroup\">\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createAndGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_and_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createOrGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_or_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteFilters()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n {{ this.resourceStrings.igx_query_builder_delete_filters }}\n </button>\n </ng-container>\n </div>\n</div>\n<div\n #overlayOutlet\n igxOverlayOutlet\n class=\"igx-query-builder__outlet\"\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxQueryBuilderHeaderComponent, selector: "igx-query-builder-header", inputs: ["title", "showLegend", "resourceStrings"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: IgxSuffixDirective, selector: "igx-suffix,[igxSuffix],[igxEnd]" }, { kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: IgxFieldFormatterPipe, name: "fieldFormatter" }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }] }); }
|
|
48306
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxQueryBuilderComponent, isStandalone: true, selector: "igx-query-builder", inputs: { fields: "fields", expressionTree: "expressionTree", locale: "locale", resourceStrings: "resourceStrings" }, outputs: { expressionTreeChange: "expressionTreeChange" }, host: { properties: { "class.igx-query-builder": "this.cssClass", "style.display": "this.display" } }, queries: [{ propertyName: "headerContent", first: true, predicate: IgxQueryBuilderHeaderComponent, descendants: true }], viewQueries: [{ propertyName: "fieldSelect", first: true, predicate: ["fieldSelect"], descendants: true, read: IgxSelectComponent }, { propertyName: "conditionSelect", first: true, predicate: ["conditionSelect"], descendants: true, read: IgxSelectComponent }, { propertyName: "searchValueInput", first: true, predicate: ["searchValueInput"], descendants: true, read: ElementRef }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "addRootAndGroupButton", first: true, predicate: ["addRootAndGroupButton"], descendants: true, read: ElementRef }, { propertyName: "addConditionButton", first: true, predicate: ["addConditionButton"], descendants: true, read: ElementRef }, { propertyName: "editingInputsContainer", first: true, predicate: ["editingInputsContainer"], descendants: true, read: ElementRef }, { propertyName: "addModeContainer", first: true, predicate: ["addModeContainer"], descendants: true, read: ElementRef }, { propertyName: "currentGroupButtonsContainer", first: true, predicate: ["currentGroupButtonsContainer"], descendants: true, read: ElementRef }, { propertyName: "contextMenuToggle", first: true, predicate: IgxToggleDirective, descendants: true }, { propertyName: "expressionsContainer", first: true, predicate: ["expressionsContainer"], descendants: true }, { propertyName: "overlayOutlet", first: true, predicate: ["overlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "chips", predicate: IgxChipComponent, descendants: true }], ngImport: i0, template: "<ng-template #addIcon>\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n</ng-template>\n\n<ng-template #closeIcon>\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n</ng-template>\n\n<igx-query-builder-header\n *ngIf=\"!headerContent\"\n [resourceStrings]=\"this.resourceStrings\"\n>\n</igx-query-builder-header>\n\n<ng-content select=\"igx-query-builder-header\"></ng-content>\n\n<div\n #expressionsContainer\n class=\"igx-query-builder__main\"\n (scroll)=\"onExpressionsScrolled()\"\n>\n <ng-container *ngIf=\"!rootGroup\">\n <button type=\"button\"\n #addRootAndGroupButton\n igxButton=\"outlined\"\n (click)=\"addAndGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"addOrGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n\n <div class=\"igx-filter-empty\">\n <h6 class=\"igx-filter-empty__title\">\n {{ this.resourceStrings.igx_query_builder_initial_text }}\n </h6>\n </div>\n </ng-container>\n\n <ng-template\n #addExpressionsTemplate\n let-expressionItem\n let-afterExpression=\"afterExpression\"\n >\n <button type=\"button\"\n #addConditionButton\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addCondition(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{\n this.resourceStrings.igx_query_builder_add_condition\n }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addAndGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addOrGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n </ng-template>\n\n <ng-template #filterOperandTemplate let-expressionItem>\n <div\n *ngIf=\"!expressionItem.inEditMode\"\n class=\"igx-filter-tree__expression-item\"\n (mouseenter)=\"expressionItem.hovered = true\"\n (mouseleave)=\"expressionItem.hovered = false\"\n >\n <igx-chip\n [data]=\"expressionItem\"\n [removable]=\"true\"\n [selected]=\"expressionItem.selected\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onChipClick(expressionItem)\"\n (dblclick)=\"onChipDblClick(expressionItem)\"\n (remove)=\"onChipRemove(expressionItem)\"\n (selectedChanged)=\"onChipSelectionEnd()\"\n >\n <span igxPrefix class=\"igx-filter-tree__expression-column\">{{\n expressionItem.fieldLabel ||\n expressionItem.expression.fieldName\n }}</span>\n <igx-prefix>\n <igx-icon\n family=\"default\"\n [name]=\"expressionItem.expression.condition.iconName\"\n >\n </igx-icon>\n </igx-prefix>\n <span class=\"igx-filter-tree__expression-condition\">\n {{\n getConditionFriendlyName(\n expressionItem.expression.condition.name\n )\n }}\n </span>\n <span\n igxSuffix\n *ngIf=\"!expressionItem.expression.condition.isUnary\"\n >\n {{\n isDate(expressionItem.expression.searchVal)\n ? getFormatter(expressionItem.expression.fieldName)\n ? (expressionItem.expression.searchVal\n | fieldFormatter\n : getFormatter(\n expressionItem.expression.fieldName\n )\n : undefined)\n : (expressionItem.expression.searchVal\n | date\n : getFormat(\n expressionItem.expression.fieldName\n )\n : undefined\n : this.locale)\n : expressionItem.expression.searchVal\n }}\n </span>\n </igx-chip>\n <div\n class=\"igx-filter-tree__expression-actions\"\n *ngIf=\"\n (expressionItem.selected &&\n selectedExpressions.length === 1) ||\n expressionItem.hovered\n \"\n >\n <button\n igxIconButton=\"flat\"\n aria-labelledby=\"edit-expression\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionEdit(expressionItem)\"\n >\n <igx-icon id=\"edit-expression\">edit</igx-icon>\n </button>\n\n <button\n igxIconButton=\"flat\"\n aria-labelledby=\"add-expression\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionAdd(expressionItem)\"\n *ngIf=\"\n !expressionItem.inAddMode &&\n (expressionItem.parent !== currentGroup ||\n expressionItem !==\n currentGroup.children[\n currentGroup.children.length - 1\n ])\n \"\n >\n <igx-icon id=\"add-expression\">add</igx-icon>\n </button>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inEditMode\"\n #editingInputsContainer\n class=\"igx-filter-tree__inputs\"\n >\n <igx-select\n #fieldSelect\n type=\"box\"\n [overlaySettings]=\"fieldSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_column_placeholder\n \"\n [(ngModel)]=\"selectedField\"\n >\n <igx-select-item *ngFor=\"let field of fields\" [value]=\"field\">\n {{ field.label || field.header || field.field }}\n </igx-select-item>\n </igx-select>\n\n <igx-select\n #conditionSelect\n type=\"box\"\n [overlaySettings]=\"conditionSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_condition_placeholder\n \"\n [(ngModel)]=\"selectedCondition\"\n [disabled]=\"!selectedField\"\n >\n <igx-prefix\n *ngIf=\"\n selectedField &&\n conditionSelect.value &&\n selectedField.filters.condition(conditionSelect.value)\n \"\n >\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(\n conditionSelect.value\n ).iconName\n \"\n >\n </igx-icon>\n </igx-prefix>\n\n <igx-select-item\n *ngFor=\"let condition of getConditionList()\"\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(condition)\n .iconName\n \"\n >\n </igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n getConditionFriendlyName(condition)\n }}</span>\n </div>\n </igx-select-item>\n </igx-select>\n\n <igx-input-group\n *ngIf=\"\n !selectedField ||\n (selectedField.dataType !== 'date' &&\n selectedField.dataType !== 'time' &&\n selectedField.dataType !== 'dateTime')\n \"\n type=\"box\"\n >\n <input\n #searchValueInput\n igxInput\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [type]=\"\n selectedField && selectedField.dataType === 'number'\n ? 'number'\n : 'text'\n \"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_value_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n />\n </igx-input-group>\n\n <igx-date-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'date'\"\n [(value)]=\"searchValue\"\n (keydown)=\"openPicker($event)\"\n (click)=\"picker.open()\"\n type=\"box\"\n [readOnly]=\"true\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [displayFormat]=\"selectedField.pipeArgs.format\"\n [weekStart]=\"selectedField.pipeArgs.weekStart\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n\n <igx-time-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'time'\"\n [(value)]=\"searchValue\"\n (click)=\"picker.open()\"\n (keydown)=\"openPicker($event)\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_time_placeholder\n \"\n type=\"box\"\n [readOnly]=\"true\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [inputFormat]=\"selectedField.defaultTimeFormat\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n\n <igx-input-group\n #inputGroup\n type=\"box\"\n *ngIf=\"selectedField && selectedField.dataType === 'dateTime'\"\n type=\"box\"\n >\n <input\n #input\n #searchValueInput\n igxInput\n tabindex=\"0\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [igxDateTimeEditor]=\"selectedField.defaultDateTimeFormat\"\n />\n </igx-input-group>\n\n <div class=\"igx-filter-tree__inputs-actions\">\n <button type=\"button\"\n igxIconButton=\"flat\"\n [disabled]=\"!operandCanBeCommitted()\"\n (click)=\"commitOperandEdit()\"\n >\n <igx-icon family=\"default\" name=\"confirm\"></igx-icon>\n </button>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandEdit()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inAddMode\"\n #addModeContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem.parent, expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandAdd()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </ng-template>\n\n <ng-template #expressionTreeTemplate let-expressionItem>\n <div class=\"igx-filter-tree\">\n <div\n tabindex=\"0\"\n class=\"igx-filter-tree__line\"\n [ngClass]=\"{\n 'igx-filter-tree__line--and': expressionItem.operator === 0,\n 'igx-filter-tree__line--or': expressionItem.operator === 1,\n 'igx-filter-tree__line--selected': expressionItem.selected\n }\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onGroupClick(expressionItem)\"\n ></div>\n\n <div class=\"igx-filter-tree__expression\">\n <ng-container *ngFor=\"let expr of expressionItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n isExpressionGroup(expr)\n ? expressionTreeTemplate\n : filterOperandTemplate;\n context: context(expr)\n \"\n >\n </ng-container>\n </ng-container>\n <div\n *ngIf=\"currentGroup === expressionItem\"\n #currentGroupButtonsContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxButton=\"outlined\"\n *ngIf=\"expressionItem !== rootGroup\"\n [disabled]=\"\n hasEditedExpression ||\n expressionItem.children.length < 2\n \"\n (click)=\"endGroup(expressionItem)\"\n >\n <span>{{\n this.resourceStrings.igx_query_builder_end_group\n }}</span>\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"rootGroup\">\n <ng-container\n *ngTemplateOutlet=\"\n expressionTreeTemplate;\n context: context(rootGroup)\n \"\n ></ng-container>\n </ng-container>\n\n <div\n igxToggle\n class=\"igx-filter-contextual-menu\"\n (keydown)=\"onKeyDown($event)\"\n (closed)=\"contextMenuClosed()\"\n >\n <button type=\"button\"\n igxIconButton=\"flat\"\n class=\"igx-filter-contextual-menu__close-btn\"\n (click)=\"clearSelection()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n\n <ng-container *ngIf=\"contextualGroup\">\n <igx-buttongroup\n [values]=\"filteringLogics\"\n type=\"outline\"\n (selected)=\"selectFilteringLogic($event)\"\n >\n </igx-buttongroup>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"!contextualGroup.parent\"\n (click)=\"ungroup()\"\n >\n <igx-icon family=\"default\" name=\"ungroup\"></igx-icon>\n <span>{{\n this.resourceStrings.igx_query_builder_ungroup\n }}</span>\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteGroup()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n <igx-icon family=\"default\" name=\"delete\"></igx-icon>\n <span>{{ this.resourceStrings.igx_query_builder_delete }}</span>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!contextualGroup\">\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createAndGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_and_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createOrGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_or_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteFilters()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n {{ this.resourceStrings.igx_query_builder_delete_filters }}\n </button>\n </ng-container>\n </div>\n</div>\n<div\n #overlayOutlet\n igxOverlayOutlet\n class=\"igx-query-builder__outlet\"\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxQueryBuilderHeaderComponent, selector: "igx-query-builder-header", inputs: ["title", "showLegend", "resourceStrings"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: IgxSuffixDirective, selector: "igx-suffix,[igxSuffix],[igxEnd]" }, { kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: IgxFieldFormatterPipe, name: "fieldFormatter" }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }] }); }
|
|
48307
48307
|
}
|
|
48308
48308
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxQueryBuilderComponent, decorators: [{
|
|
48309
48309
|
type: Component,
|
|
48310
|
-
args: [{ selector: 'igx-query-builder', standalone: true, imports: [NgIf, IgxQueryBuilderHeaderComponent, IgxButtonDirective, IgxIconComponent, IgxChipComponent, IgxPrefixDirective, IgxSuffixDirective, IgxSelectComponent, FormsModule, NgFor, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxDateTimeEditorDirective, NgTemplateOutlet, NgClass, IgxToggleDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, DatePipe, IgxFieldFormatterPipe, IgxIconButtonDirective], template: "<ng-template #addIcon>\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n</ng-template>\n\n<ng-template #closeIcon>\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n</ng-template>\n\n<igx-query-builder-header\n *ngIf=\"!headerContent\"\n [resourceStrings]=\"this.resourceStrings\"\n>\n</igx-query-builder-header>\n\n<ng-content select=\"igx-query-builder-header\"></ng-content>\n\n<div\n #expressionsContainer\n class=\"igx-query-builder__main\"\n (scroll)=\"onExpressionsScrolled()\"\n>\n <ng-container *ngIf=\"!rootGroup\">\n <button type=\"button\"\n #addRootAndGroupButton\n igxButton=\"outlined\"\n (click)=\"addAndGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"addOrGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n\n <div class=\"igx-filter-empty\">\n <h6 class=\"igx-filter-empty__title\">\n {{ this.resourceStrings.igx_query_builder_initial_text }}\n </h6>\n </div>\n </ng-container>\n\n <ng-template\n #addExpressionsTemplate\n let-expressionItem\n let-afterExpression=\"afterExpression\"\n >\n <button type=\"button\"\n #addConditionButton\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addCondition(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{\n this.resourceStrings.igx_query_builder_add_condition\n }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addAndGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addOrGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n </ng-template>\n\n <ng-template #filterOperandTemplate let-expressionItem>\n <div\n *ngIf=\"!expressionItem.inEditMode\"\n class=\"igx-filter-tree__expression-item\"\n (mouseenter)=\"expressionItem.hovered = true\"\n (mouseleave)=\"expressionItem.hovered = false\"\n >\n <igx-chip\n [data]=\"expressionItem\"\n [removable]=\"true\"\n [selected]=\"expressionItem.selected\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onChipClick(expressionItem)\"\n (dblclick)=\"onChipDblClick(expressionItem)\"\n (remove)=\"onChipRemove(expressionItem)\"\n (selectedChanged)=\"onChipSelectionEnd()\"\n >\n <span igxPrefix class=\"igx-filter-tree__expression-column\">{{\n expressionItem.fieldLabel ||\n expressionItem.expression.fieldName\n }}</span>\n <igx-prefix>\n <igx-icon\n family=\"default\"\n [name]=\"expressionItem.expression.condition.iconName\"\n >\n </igx-icon>\n </igx-prefix>\n <span class=\"igx-filter-tree__expression-condition\">\n {{\n getConditionFriendlyName(\n expressionItem.expression.condition.name\n )\n }}\n </span>\n <span\n igxSuffix\n *ngIf=\"!expressionItem.expression.condition.isUnary\"\n >\n {{\n isDate(expressionItem.expression.searchVal)\n ? getFormatter(expressionItem.expression.fieldName)\n ? (expressionItem.expression.searchVal\n | fieldFormatter\n : getFormatter(\n expressionItem.expression.fieldName\n )\n : undefined)\n : (expressionItem.expression.searchVal\n | date\n : getFormat(\n expressionItem.expression.fieldName\n )\n : undefined\n : this.locale)\n : expressionItem.expression.searchVal\n }}\n </span>\n </igx-chip>\n <div\n class=\"igx-filter-tree__expression-actions\"\n *ngIf=\"\n (expressionItem.selected &&\n selectedExpressions.length === 1) ||\n expressionItem.hovered\n \"\n >\n <span tabindex=\"0\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionEdit(expressionItem)\">\n <igx-icon\n family=\"default\"\n name=\"edit\" \n >\n </igx-icon>\n </span>\n <span tabindex=\"0\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionAdd(expressionItem)\">\n <igx-icon\n family=\"default\"\n name=\"add\" \n *ngIf=\"\n !expressionItem.inAddMode &&\n (expressionItem.parent !== currentGroup ||\n expressionItem !==\n currentGroup.children[\n currentGroup.children.length - 1\n ])\n \"\n >\n </igx-icon>\n </span>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inEditMode\"\n #editingInputsContainer\n class=\"igx-filter-tree__inputs\"\n >\n <igx-select\n #fieldSelect\n type=\"box\"\n [overlaySettings]=\"fieldSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_column_placeholder\n \"\n [(ngModel)]=\"selectedField\"\n >\n <igx-select-item *ngFor=\"let field of fields\" [value]=\"field\">\n {{ field.label || field.header || field.field }}\n </igx-select-item>\n </igx-select>\n\n <igx-select\n #conditionSelect\n type=\"box\"\n [overlaySettings]=\"conditionSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_condition_placeholder\n \"\n [(ngModel)]=\"selectedCondition\"\n [disabled]=\"!selectedField\"\n >\n <igx-prefix\n *ngIf=\"\n selectedField &&\n conditionSelect.value &&\n selectedField.filters.condition(conditionSelect.value)\n \"\n >\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(\n conditionSelect.value\n ).iconName\n \"\n >\n </igx-icon>\n </igx-prefix>\n\n <igx-select-item\n *ngFor=\"let condition of getConditionList()\"\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(condition)\n .iconName\n \"\n >\n </igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n getConditionFriendlyName(condition)\n }}</span>\n </div>\n </igx-select-item>\n </igx-select>\n\n <igx-input-group\n *ngIf=\"\n !selectedField ||\n (selectedField.dataType !== 'date' &&\n selectedField.dataType !== 'time' &&\n selectedField.dataType !== 'dateTime')\n \"\n type=\"box\"\n >\n <input\n #searchValueInput\n igxInput\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [type]=\"\n selectedField && selectedField.dataType === 'number'\n ? 'number'\n : 'text'\n \"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_value_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n />\n </igx-input-group>\n\n <igx-date-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'date'\"\n [(value)]=\"searchValue\"\n (keydown)=\"openPicker($event)\"\n (click)=\"picker.open()\"\n type=\"box\"\n [readOnly]=\"true\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [displayFormat]=\"selectedField.pipeArgs.format\"\n [weekStart]=\"selectedField.pipeArgs.weekStart\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n\n <igx-time-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'time'\"\n [(value)]=\"searchValue\"\n (click)=\"picker.open()\"\n (keydown)=\"openPicker($event)\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_time_placeholder\n \"\n type=\"box\"\n [readOnly]=\"true\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [inputFormat]=\"selectedField.defaultTimeFormat\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n\n <igx-input-group\n #inputGroup\n type=\"box\"\n *ngIf=\"selectedField && selectedField.dataType === 'dateTime'\"\n type=\"box\"\n >\n <input\n #input\n #searchValueInput\n igxInput\n tabindex=\"0\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [igxDateTimeEditor]=\"selectedField.defaultDateTimeFormat\"\n />\n </igx-input-group>\n\n <div class=\"igx-filter-tree__inputs-actions\">\n <button type=\"button\"\n igxIconButton=\"flat\"\n [disabled]=\"!operandCanBeCommitted()\"\n (click)=\"commitOperandEdit()\"\n >\n <igx-icon family=\"default\" name=\"confirm\"></igx-icon>\n </button>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandEdit()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inAddMode\"\n #addModeContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem.parent, expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandAdd()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </ng-template>\n\n <ng-template #expressionTreeTemplate let-expressionItem>\n <div class=\"igx-filter-tree\">\n <div\n tabindex=\"0\"\n class=\"igx-filter-tree__line\"\n [ngClass]=\"{\n 'igx-filter-tree__line--and': expressionItem.operator === 0,\n 'igx-filter-tree__line--or': expressionItem.operator === 1,\n 'igx-filter-tree__line--selected': expressionItem.selected\n }\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onGroupClick(expressionItem)\"\n ></div>\n\n <div class=\"igx-filter-tree__expression\">\n <ng-container *ngFor=\"let expr of expressionItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n isExpressionGroup(expr)\n ? expressionTreeTemplate\n : filterOperandTemplate;\n context: context(expr)\n \"\n >\n </ng-container>\n </ng-container>\n <div\n *ngIf=\"currentGroup === expressionItem\"\n #currentGroupButtonsContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxButton=\"outlined\"\n *ngIf=\"expressionItem !== rootGroup\"\n [disabled]=\"\n hasEditedExpression ||\n expressionItem.children.length < 2\n \"\n (click)=\"endGroup(expressionItem)\"\n >\n <span>{{\n this.resourceStrings.igx_query_builder_end_group\n }}</span>\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"rootGroup\">\n <ng-container\n *ngTemplateOutlet=\"\n expressionTreeTemplate;\n context: context(rootGroup)\n \"\n ></ng-container>\n </ng-container>\n\n <div\n igxToggle\n class=\"igx-filter-contextual-menu\"\n (keydown)=\"onKeyDown($event)\"\n (closed)=\"contextMenuClosed()\"\n >\n <button type=\"button\"\n igxIconButton=\"flat\"\n class=\"igx-filter-contextual-menu__close-btn\"\n (click)=\"clearSelection()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n\n <ng-container *ngIf=\"contextualGroup\">\n <igx-buttongroup\n [values]=\"filteringLogics\"\n type=\"outline\"\n (selected)=\"selectFilteringLogic($event)\"\n >\n </igx-buttongroup>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"!contextualGroup.parent\"\n (click)=\"ungroup()\"\n >\n <igx-icon family=\"default\" name=\"ungroup\"></igx-icon>\n <span>{{\n this.resourceStrings.igx_query_builder_ungroup\n }}</span>\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteGroup()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n <igx-icon family=\"default\" name=\"delete\"></igx-icon>\n <span>{{ this.resourceStrings.igx_query_builder_delete }}</span>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!contextualGroup\">\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createAndGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_and_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createOrGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_or_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteFilters()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n {{ this.resourceStrings.igx_query_builder_delete_filters }}\n </button>\n </ng-container>\n </div>\n</div>\n<div\n #overlayOutlet\n igxOverlayOutlet\n class=\"igx-query-builder__outlet\"\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n" }]
|
|
48310
|
+
args: [{ selector: 'igx-query-builder', standalone: true, imports: [NgIf, IgxQueryBuilderHeaderComponent, IgxButtonDirective, IgxIconComponent, IgxChipComponent, IgxPrefixDirective, IgxSuffixDirective, IgxSelectComponent, FormsModule, NgFor, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxDateTimeEditorDirective, NgTemplateOutlet, NgClass, IgxToggleDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, DatePipe, IgxFieldFormatterPipe, IgxIconButtonDirective], template: "<ng-template #addIcon>\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n</ng-template>\n\n<ng-template #closeIcon>\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n</ng-template>\n\n<igx-query-builder-header\n *ngIf=\"!headerContent\"\n [resourceStrings]=\"this.resourceStrings\"\n>\n</igx-query-builder-header>\n\n<ng-content select=\"igx-query-builder-header\"></ng-content>\n\n<div\n #expressionsContainer\n class=\"igx-query-builder__main\"\n (scroll)=\"onExpressionsScrolled()\"\n>\n <ng-container *ngIf=\"!rootGroup\">\n <button type=\"button\"\n #addRootAndGroupButton\n igxButton=\"outlined\"\n (click)=\"addAndGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"addOrGroup()\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n\n <div class=\"igx-filter-empty\">\n <h6 class=\"igx-filter-empty__title\">\n {{ this.resourceStrings.igx_query_builder_initial_text }}\n </h6>\n </div>\n </ng-container>\n\n <ng-template\n #addExpressionsTemplate\n let-expressionItem\n let-afterExpression=\"afterExpression\"\n >\n <button type=\"button\"\n #addConditionButton\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addCondition(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{\n this.resourceStrings.igx_query_builder_add_condition\n }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addAndGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_and_group }}</span>\n </button>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"hasEditedExpression\"\n (click)=\"addOrGroup(expressionItem, afterExpression)\"\n >\n <ng-container *ngTemplateOutlet=\"addIcon\"></ng-container>\n <span>{{ this.resourceStrings.igx_query_builder_or_group }}</span>\n </button>\n </ng-template>\n\n <ng-template #filterOperandTemplate let-expressionItem>\n <div\n *ngIf=\"!expressionItem.inEditMode\"\n class=\"igx-filter-tree__expression-item\"\n (mouseenter)=\"expressionItem.hovered = true\"\n (mouseleave)=\"expressionItem.hovered = false\"\n >\n <igx-chip\n [data]=\"expressionItem\"\n [removable]=\"true\"\n [selected]=\"expressionItem.selected\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onChipClick(expressionItem)\"\n (dblclick)=\"onChipDblClick(expressionItem)\"\n (remove)=\"onChipRemove(expressionItem)\"\n (selectedChanged)=\"onChipSelectionEnd()\"\n >\n <span igxPrefix class=\"igx-filter-tree__expression-column\">{{\n expressionItem.fieldLabel ||\n expressionItem.expression.fieldName\n }}</span>\n <igx-prefix>\n <igx-icon\n family=\"default\"\n [name]=\"expressionItem.expression.condition.iconName\"\n >\n </igx-icon>\n </igx-prefix>\n <span class=\"igx-filter-tree__expression-condition\">\n {{\n getConditionFriendlyName(\n expressionItem.expression.condition.name\n )\n }}\n </span>\n <span\n igxSuffix\n *ngIf=\"!expressionItem.expression.condition.isUnary\"\n >\n {{\n isDate(expressionItem.expression.searchVal)\n ? getFormatter(expressionItem.expression.fieldName)\n ? (expressionItem.expression.searchVal\n | fieldFormatter\n : getFormatter(\n expressionItem.expression.fieldName\n )\n : undefined)\n : (expressionItem.expression.searchVal\n | date\n : getFormat(\n expressionItem.expression.fieldName\n )\n : undefined\n : this.locale)\n : expressionItem.expression.searchVal\n }}\n </span>\n </igx-chip>\n <div\n class=\"igx-filter-tree__expression-actions\"\n *ngIf=\"\n (expressionItem.selected &&\n selectedExpressions.length === 1) ||\n expressionItem.hovered\n \"\n >\n <button\n igxIconButton=\"flat\"\n aria-labelledby=\"edit-expression\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionEdit(expressionItem)\"\n >\n <igx-icon id=\"edit-expression\">edit</igx-icon>\n </button>\n\n <button\n igxIconButton=\"flat\"\n aria-labelledby=\"add-expression\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"enterExpressionAdd(expressionItem)\"\n *ngIf=\"\n !expressionItem.inAddMode &&\n (expressionItem.parent !== currentGroup ||\n expressionItem !==\n currentGroup.children[\n currentGroup.children.length - 1\n ])\n \"\n >\n <igx-icon id=\"add-expression\">add</igx-icon>\n </button>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inEditMode\"\n #editingInputsContainer\n class=\"igx-filter-tree__inputs\"\n >\n <igx-select\n #fieldSelect\n type=\"box\"\n [overlaySettings]=\"fieldSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_column_placeholder\n \"\n [(ngModel)]=\"selectedField\"\n >\n <igx-select-item *ngFor=\"let field of fields\" [value]=\"field\">\n {{ field.label || field.header || field.field }}\n </igx-select-item>\n </igx-select>\n\n <igx-select\n #conditionSelect\n type=\"box\"\n [overlaySettings]=\"conditionSelectOverlaySettings\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_condition_placeholder\n \"\n [(ngModel)]=\"selectedCondition\"\n [disabled]=\"!selectedField\"\n >\n <igx-prefix\n *ngIf=\"\n selectedField &&\n conditionSelect.value &&\n selectedField.filters.condition(conditionSelect.value)\n \"\n >\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(\n conditionSelect.value\n ).iconName\n \"\n >\n </igx-icon>\n </igx-prefix>\n\n <igx-select-item\n *ngFor=\"let condition of getConditionList()\"\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"\n selectedField.filters.condition(condition)\n .iconName\n \"\n >\n </igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n getConditionFriendlyName(condition)\n }}</span>\n </div>\n </igx-select-item>\n </igx-select>\n\n <igx-input-group\n *ngIf=\"\n !selectedField ||\n (selectedField.dataType !== 'date' &&\n selectedField.dataType !== 'time' &&\n selectedField.dataType !== 'dateTime')\n \"\n type=\"box\"\n >\n <input\n #searchValueInput\n igxInput\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [type]=\"\n selectedField && selectedField.dataType === 'number'\n ? 'number'\n : 'text'\n \"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_value_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n />\n </igx-input-group>\n\n <igx-date-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'date'\"\n [(value)]=\"searchValue\"\n (keydown)=\"openPicker($event)\"\n (click)=\"picker.open()\"\n type=\"box\"\n [readOnly]=\"true\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [displayFormat]=\"selectedField.pipeArgs.format\"\n [weekStart]=\"selectedField.pipeArgs.weekStart\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n\n <igx-time-picker\n #picker\n *ngIf=\"selectedField && selectedField.dataType === 'time'\"\n [(value)]=\"searchValue\"\n (click)=\"picker.open()\"\n (keydown)=\"openPicker($event)\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_time_placeholder\n \"\n type=\"box\"\n [readOnly]=\"true\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [locale]=\"this.locale\"\n [outlet]=\"pickerOutlet\"\n [formatter]=\"selectedField.formatter\"\n [inputFormat]=\"selectedField.defaultTimeFormat\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n\n <igx-input-group\n #inputGroup\n type=\"box\"\n *ngIf=\"selectedField && selectedField.dataType === 'dateTime'\"\n type=\"box\"\n >\n <input\n #input\n #searchValueInput\n igxInput\n tabindex=\"0\"\n [placeholder]=\"\n this.resourceStrings.igx_query_builder_date_placeholder\n \"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"\n !selectedField ||\n !selectedCondition ||\n (selectedField &&\n selectedField.filters.condition(selectedCondition)\n .isUnary)\n \"\n [igxDateTimeEditor]=\"selectedField.defaultDateTimeFormat\"\n />\n </igx-input-group>\n\n <div class=\"igx-filter-tree__inputs-actions\">\n <button type=\"button\"\n igxIconButton=\"flat\"\n [disabled]=\"!operandCanBeCommitted()\"\n (click)=\"commitOperandEdit()\"\n >\n <igx-icon family=\"default\" name=\"confirm\"></igx-icon>\n </button>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandEdit()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </div>\n\n <div\n *ngIf=\"expressionItem.inAddMode\"\n #addModeContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem.parent, expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"cancelOperandAdd()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n </div>\n </ng-template>\n\n <ng-template #expressionTreeTemplate let-expressionItem>\n <div class=\"igx-filter-tree\">\n <div\n tabindex=\"0\"\n class=\"igx-filter-tree__line\"\n [ngClass]=\"{\n 'igx-filter-tree__line--and': expressionItem.operator === 0,\n 'igx-filter-tree__line--or': expressionItem.operator === 1,\n 'igx-filter-tree__line--selected': expressionItem.selected\n }\"\n (keydown)=\"invokeClick($event)\"\n (click)=\"onGroupClick(expressionItem)\"\n ></div>\n\n <div class=\"igx-filter-tree__expression\">\n <ng-container *ngFor=\"let expr of expressionItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n isExpressionGroup(expr)\n ? expressionTreeTemplate\n : filterOperandTemplate;\n context: context(expr)\n \"\n >\n </ng-container>\n </ng-container>\n <div\n *ngIf=\"currentGroup === expressionItem\"\n #currentGroupButtonsContainer\n class=\"igx-filter-tree__buttons\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n addExpressionsTemplate;\n context: context(expressionItem)\n \"\n >\n </ng-container>\n <button type=\"button\"\n igxButton=\"outlined\"\n *ngIf=\"expressionItem !== rootGroup\"\n [disabled]=\"\n hasEditedExpression ||\n expressionItem.children.length < 2\n \"\n (click)=\"endGroup(expressionItem)\"\n >\n <span>{{\n this.resourceStrings.igx_query_builder_end_group\n }}</span>\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"rootGroup\">\n <ng-container\n *ngTemplateOutlet=\"\n expressionTreeTemplate;\n context: context(rootGroup)\n \"\n ></ng-container>\n </ng-container>\n\n <div\n igxToggle\n class=\"igx-filter-contextual-menu\"\n (keydown)=\"onKeyDown($event)\"\n (closed)=\"contextMenuClosed()\"\n >\n <button type=\"button\"\n igxIconButton=\"flat\"\n class=\"igx-filter-contextual-menu__close-btn\"\n (click)=\"clearSelection()\"\n >\n <ng-container *ngTemplateOutlet=\"closeIcon\"></ng-container>\n </button>\n\n <ng-container *ngIf=\"contextualGroup\">\n <igx-buttongroup\n [values]=\"filteringLogics\"\n type=\"outline\"\n (selected)=\"selectFilteringLogic($event)\"\n >\n </igx-buttongroup>\n\n <button type=\"button\"\n igxButton=\"outlined\"\n [disabled]=\"!contextualGroup.parent\"\n (click)=\"ungroup()\"\n >\n <igx-icon family=\"default\" name=\"ungroup\"></igx-icon>\n <span>{{\n this.resourceStrings.igx_query_builder_ungroup\n }}</span>\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteGroup()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n <igx-icon family=\"default\" name=\"delete\"></igx-icon>\n <span>{{ this.resourceStrings.igx_query_builder_delete }}</span>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!contextualGroup\">\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createAndGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_and_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"createOrGroup()\"\n >\n {{ this.resourceStrings.igx_query_builder_create_or_group }}\n </button>\n <button type=\"button\"\n igxButton=\"outlined\"\n (click)=\"deleteFilters()\"\n class=\"igx-filter-contextual-menu__delete-btn\"\n >\n {{ this.resourceStrings.igx_query_builder_delete_filters }}\n </button>\n </ng-container>\n </div>\n</div>\n<div\n #overlayOutlet\n igxOverlayOutlet\n class=\"igx-query-builder__outlet\"\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n" }]
|
|
48311
48311
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: IgxIconService }, { type: PlatformUtil }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
48312
48312
|
type: Inject,
|
|
48313
48313
|
args: [LOCALE_ID]
|
|
@@ -63466,7 +63466,7 @@ class IgxGridBaseDirective {
|
|
|
63466
63466
|
this.zone.run(() => {
|
|
63467
63467
|
// do not trigger reflow if element is detached.
|
|
63468
63468
|
if (this.nativeElement.isConnected) {
|
|
63469
|
-
if (this.
|
|
63469
|
+
if (this.shouldResize) {
|
|
63470
63470
|
// resizing occurs due to the change of --ig-size css var
|
|
63471
63471
|
this._gridSize = this.gridSize;
|
|
63472
63472
|
this.updateDefaultRowHeight();
|
|
@@ -64983,6 +64983,9 @@ class IgxGridBaseDirective {
|
|
|
64983
64983
|
get isPercentWidth() {
|
|
64984
64984
|
return this.width && this.width.indexOf('%') !== -1;
|
|
64985
64985
|
}
|
|
64986
|
+
get shouldResize() {
|
|
64987
|
+
return this._gridSize !== this.gridSize;
|
|
64988
|
+
}
|
|
64986
64989
|
/**
|
|
64987
64990
|
* @hidden @internal
|
|
64988
64991
|
*/
|
|
@@ -75156,6 +75159,7 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
75156
75159
|
};
|
|
75157
75160
|
this._sortableColumns = true;
|
|
75158
75161
|
this._visibleRowDimensions = [];
|
|
75162
|
+
this._shouldUpdateSizes = false;
|
|
75159
75163
|
/**
|
|
75160
75164
|
* @hidden @internal
|
|
75161
75165
|
*/
|
|
@@ -75204,6 +75208,15 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
75204
75208
|
super.ngAfterViewInit();
|
|
75205
75209
|
});
|
|
75206
75210
|
}
|
|
75211
|
+
/**
|
|
75212
|
+
* @hidden @internal
|
|
75213
|
+
*/
|
|
75214
|
+
ngOnChanges(changes) {
|
|
75215
|
+
if (changes.superCompactMode && !changes.superCompactMode.isFirstChange()) {
|
|
75216
|
+
this._shouldUpdateSizes = true;
|
|
75217
|
+
resizeObservable(this.verticalScrollContainer.displayContainer).pipe(take(1), takeUntil(this.destroy$)).subscribe(() => this.resizeNotify.next());
|
|
75218
|
+
}
|
|
75219
|
+
}
|
|
75207
75220
|
/**
|
|
75208
75221
|
* Notifies for dimension change.
|
|
75209
75222
|
*/
|
|
@@ -75236,6 +75249,17 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
75236
75249
|
const rows = (config.rows || []).concat(...uniqueVisibleRowDims);
|
|
75237
75250
|
return rows.concat((config.columns || [])).concat(config.filters || []).filter(x => x !== null && x !== undefined);
|
|
75238
75251
|
}
|
|
75252
|
+
get shouldResize() {
|
|
75253
|
+
if (!this.dataRowList.first?.cells || this.dataRowList.first.cells.length === 0) {
|
|
75254
|
+
return false;
|
|
75255
|
+
}
|
|
75256
|
+
const isSizePropChanged = super.shouldResize;
|
|
75257
|
+
if (isSizePropChanged || this._shouldUpdateSizes) {
|
|
75258
|
+
this._shouldUpdateSizes = false;
|
|
75259
|
+
return true;
|
|
75260
|
+
}
|
|
75261
|
+
return false;
|
|
75262
|
+
}
|
|
75239
75263
|
/** @hidden @internal */
|
|
75240
75264
|
createFilterESF(dropdown, column, options, shouldReatach) {
|
|
75241
75265
|
options.outlet = this.outlet;
|
|
@@ -76499,7 +76523,7 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
76499
76523
|
IgxPivotColumnResizingService,
|
|
76500
76524
|
IgxForOfSyncService,
|
|
76501
76525
|
IgxForOfScrollSyncService
|
|
76502
|
-
], queries: [{ propertyName: "valueChipTemplateDirective", first: true, predicate: IgxPivotValueChipTemplateDirective, descendants: true, read: IgxPivotValueChipTemplateDirective }, { propertyName: "rowDimensionHeaderDirective", first: true, predicate: IgxPivotRowDimensionHeaderTemplateDirective, descendants: true, read: IgxPivotRowDimensionHeaderTemplateDirective }], viewQueries: [{ propertyName: "theadRow", first: true, predicate: IgxPivotHeaderRowComponent, descendants: true, static: true }, { propertyName: "recordTemplate", first: true, predicate: ["record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "resizeLine", first: true, predicate: IgxPivotGridColumnResizerComponent, descendants: true }, { propertyName: "defaultEmptyPivotGridTemplate", first: true, predicate: ["emptyPivotGridTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowDimensionContainer", predicate: ["rowDimensionContainer"], descendants: true, read: ElementRef }, { propertyName: "excelStyleFilteringComponents", predicate: IgxGridExcelStyleFilteringComponent, descendants: true, read: IgxGridExcelStyleFilteringComponent }, { propertyName: "rowDimensionContentCollection", predicate: IgxPivotRowDimensionContentComponent, descendants: true }, { propertyName: "verticalRowDimScrollContainers", predicate: ["verticalRowDimScrollContainer"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "rowDimensionMrlRowsCollection", predicate: IgxPivotRowDimensionMrlRowComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Toolbar area -->\n<ng-content select=\"igx-grid-toolbar,igc-grid-toolbar\"></ng-content>\n\n<!-- Grid table head row area -->\n<igx-pivot-header-row class=\"igx-grid-thead igx-grid-thead--pivot\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (scroll)=\"preventHeaderScroll($event)\"\n>\n</igx-pivot-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"rowDimensions.length ? (hasHorizontalLayout ? horizontalRowDimensionsTemplate : defaultRowDimensionsTemplate) : emptyRowDimensionsTemplate; context: this\"></ng-container>\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" [attr.role]=\"dataView.length ? null : 'row'\" (keydown)=\"navigation.handleNavigation($event)\" (focus)=\"navigation.focusTbody($event)\"\n (dragStop)=\"selectionService.dragMode = $event\" (scroll)=\"preventContainerScroll($event)\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\"\n [style.height.px]=\"totalHeight\" [style.width.px]=\"pivotContentCalcWidth || null\" #tbody [attr.aria-activedescendant]=\"activeDescendant\">\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"data\n | pivotGridFilter:pivotConfiguration:filterStrategy:advancedFilteringExpressionsTree:filteringPipeTrigger:pipeTrigger\n | pivotGridSort:pivotConfiguration:sortStrategy:pipeTrigger\n | pivotGridRow:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridColumn:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridAutoTransform:pivotConfiguration:pipeTrigger\n | pivotGridColumnSort:sortingExpressions:sortStrategy:pipeTrigger\n | pivotGridRowExpansion:pivotConfiguration:expansionStates:defaultExpandState:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight\"\n [igxGridForOfVariableSizes]=\"false\"\n #verticalScrollContainer (dataChanging)=\"dataRebinding($event)\" (dataChanged)=\"dataRebound($event)\">\n <ng-template\n [igxTemplateOutlet]=\"recordTemplate\"\n [igxTemplateOutletContext]=\"getContext(rowData, rowIndex)\"\n (cachedViewLoaded)=\"cachedViewLoaded($event)\">\n </ng-template>\n </ng-template>\n <ng-template #record_template let-rowIndex=\"index\" let-rowData>\n <igx-pivot-row [style.height.px]=\"renderedRowHeight\" [gridID]=\"id\" [index]=\"rowIndex\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-pivot-row>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: this }\"></ng-container>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf=\"shouldOverlayLoading\">\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]=\"!hasVerticalScroll()\" class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=\" isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]=\"calcHeight\">\n <ng-template igxGridFor [igxGridForOf]=\"[]\" #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]=\"!isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n </div>\n\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]=\"snackbarDisplayTime\">{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div #igxBodyOverlayOutlet=\"overlay-outlet\" igxOverlayOutlet></div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\"></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]=\"pivotUnpinnedWidth\">\n <ng-template igxGridFor [igxGridForOf]=\"EMPTY_DATA\" #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\" [hidden]=\"pivotPinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" #tfoot>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer,igc-grid-footer\"></ng-content>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n<igx-pivot-grid-column-resizer [restrictResizerTop]=\"calculateResizerTop()\" *ngIf=\"colResizingService.showResizer\"></igx-pivot-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n\n<ng-template #headerTemplate let-column>\n <div class=\"igx-grid__tr--header\">\n <igx-icon\n family=\"default\"\n [name]=\"getColumnGroupExpandState(column) ? 'tree_expand' : 'tree_collapse'\"\n [attr.draggable]=\"false\"\n (click)=\"toggleColumn(column)\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #defaultRowDimensionsTemplate>\n <div tabindex=\"0\" [style.height.px]=\"totalHeight\" *ngFor=\"let dim of rowDimensions; let dimIndex = index;\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"dataView\n | pivotGridCellMerging:pivotConfiguration:dim:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n #verticalRowDimScrollContainer>\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"rowData.dimensions[dimIndex]\"\n [rootDimension]=\"dim\"\n [style.height.px]=\"renderedRowHeight * (rowData.rowSpan || 1)\"\n [rowIndex]=\"rowIndex\" [rowData]=\"rowData\"\n [width]=\"rowDimensionWidthToPixels(dim)\">\n </igx-pivot-row-dimension-content>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #horizontalRowDimensionsTemplate>\n <div tabindex=\"0\" class=\"igx-grid__tbody-pivot-mrl-dimension\" #rowDimensionContainer [style.height.px]=\"totalHeight\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-container *ngIf=\"dataView | pivotGridHorizontalRowGrouping:pivotConfiguration:pipeTrigger:regroupTrigger as groupedData\">\n <ng-template #verticalRowDimScrollContainer role=\"rowgroup\" igxGridFor let-rowGroup let-rowIndex=\"index\"\n [igxGridForOf]=\"groupedData\"\n [igxForScrollOrientation]=\"'vertical'\"\n [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n >\n <igx-pivot-row-dimension-mrl-row [rowIndex]=\"rowIndex\" [rowGroup]=\"rowGroup\" [groupedData]=\"groupedData\" [style.height.px]=\"renderedRowHeight * rowGroup.length\"></igx-pivot-row-dimension-mrl-row>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyRowDimensionsTemplate>\n <div tabindex=\"0\" *ngIf=\"columnDimensions.length > 0 || values.length > 0\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"emptyRowDimension\"\n [rootDimension]=\"emptyRowDimension\"\n [rowIndex]=\"0\" [rowData]=\"dataView[0]\"\n [width]=\"rowDimensionWidthToPixels(emptyRowDimension)\">\n </igx-pivot-row-dimension-content>\n </div>\n</ng-template>\n\n<ng-template #emptyPivotGridTemplate>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{resourceStrings.igx_grid_pivot_empty_message}}</span>\n </span>\n</ng-template>\n\n<div [hidden]=\"true\">\n <igx-grid-excel-style-filtering [maxHeight]=\"excelStyleFilterMaxHeight\" [minHeight]=\"excelStyleFilterMinHeight\">\n <div igxExcelStyleColumnOperations [hidden]=\"true\"></div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n@if (platform.isElements) {\n <div #sink style=\"display: none;\">\n <ng-content select=\"igx-grid-state,igc-grid-state\"></ng-content>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxPivotHeaderRowComponent, selector: "igx-pivot-header-row" }, { kind: "directive", type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { kind: "directive", type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { kind: "directive", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "directive", type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { kind: "component", type: IgxPivotRowComponent, selector: "igx-pivot-row", inputs: ["selected", "data"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }, { kind: "component", type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "component", type: IgxPivotGridColumnResizerComponent, selector: "igx-pivot-grid-column-resizer" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "component", type: IgxPivotRowDimensionContentComponent, selector: "igx-pivot-row-dimension-content", inputs: ["rowIndex", "colIndex", "layout", "dimension", "rootDimension", "rowData"] }, { kind: "component", type: IgxGridExcelStyleFilteringComponent, selector: "igx-grid-excel-style-filtering", inputs: ["column", "minHeight", "maxHeight"], outputs: ["loadingStart", "loadingEnd", "initialized", "sortingChanged", "columnChange", "listDataLoaded"] }, { kind: "directive", type: IgxExcelStyleColumnOperationsTemplateDirective, selector: "igx-excel-style-column-operations,[igxExcelStyleColumnOperations]" }, { kind: "directive", type: IgxExcelStyleFilterOperationsTemplateDirective, selector: "igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "pipe", type: IgxGridRowClassesPipe, name: "igxGridRowClasses" }, { kind: "pipe", type: IgxGridRowStylesPipe, name: "igxGridRowStyles" }, { kind: "pipe", type: IgxPivotRowPipe, name: "pivotGridRow" }, { kind: "pipe", type: IgxPivotRowExpansionPipe, name: "pivotGridRowExpansion" }, { kind: "pipe", type: IgxPivotAutoTransform, name: "pivotGridAutoTransform" }, { kind: "pipe", type: IgxPivotColumnPipe, name: "pivotGridColumn" }, { kind: "pipe", type: IgxPivotGridFilterPipe, name: "pivotGridFilter" }, { kind: "pipe", type: IgxPivotGridSortingPipe, name: "pivotGridSort" }, { kind: "pipe", type: IgxPivotGridColumnSortingPipe, name: "pivotGridColumnSort" }, { kind: "pipe", type: IgxPivotCellMergingPipe, name: "pivotGridCellMerging" }, { kind: "pipe", type: IgxPivotGridHorizontalRowGrouping, name: "pivotGridHorizontalRowGrouping" }, { kind: "component", type: IgxPivotRowDimensionMrlRowComponent, selector: "igx-pivot-row-dimension-mrl-row", inputs: ["rowIndex", "rowGroup", "groupedData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76526
|
+
], queries: [{ propertyName: "valueChipTemplateDirective", first: true, predicate: IgxPivotValueChipTemplateDirective, descendants: true, read: IgxPivotValueChipTemplateDirective }, { propertyName: "rowDimensionHeaderDirective", first: true, predicate: IgxPivotRowDimensionHeaderTemplateDirective, descendants: true, read: IgxPivotRowDimensionHeaderTemplateDirective }], viewQueries: [{ propertyName: "theadRow", first: true, predicate: IgxPivotHeaderRowComponent, descendants: true, static: true }, { propertyName: "recordTemplate", first: true, predicate: ["record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "resizeLine", first: true, predicate: IgxPivotGridColumnResizerComponent, descendants: true }, { propertyName: "defaultEmptyPivotGridTemplate", first: true, predicate: ["emptyPivotGridTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowDimensionContainer", predicate: ["rowDimensionContainer"], descendants: true, read: ElementRef }, { propertyName: "excelStyleFilteringComponents", predicate: IgxGridExcelStyleFilteringComponent, descendants: true, read: IgxGridExcelStyleFilteringComponent }, { propertyName: "rowDimensionContentCollection", predicate: IgxPivotRowDimensionContentComponent, descendants: true }, { propertyName: "verticalRowDimScrollContainers", predicate: ["verticalRowDimScrollContainer"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "rowDimensionMrlRowsCollection", predicate: IgxPivotRowDimensionMrlRowComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Toolbar area -->\n<ng-content select=\"igx-grid-toolbar,igc-grid-toolbar\"></ng-content>\n\n<!-- Grid table head row area -->\n<igx-pivot-header-row class=\"igx-grid-thead igx-grid-thead--pivot\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (scroll)=\"preventHeaderScroll($event)\"\n>\n</igx-pivot-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"rowDimensions.length ? (hasHorizontalLayout ? horizontalRowDimensionsTemplate : defaultRowDimensionsTemplate) : emptyRowDimensionsTemplate; context: this\"></ng-container>\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" [attr.role]=\"dataView.length ? null : 'row'\" (keydown)=\"navigation.handleNavigation($event)\" (focus)=\"navigation.focusTbody($event)\"\n (dragStop)=\"selectionService.dragMode = $event\" (scroll)=\"preventContainerScroll($event)\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\"\n [style.height.px]=\"totalHeight\" [style.width.px]=\"pivotContentCalcWidth || null\" #tbody [attr.aria-activedescendant]=\"activeDescendant\">\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"data\n | pivotGridFilter:pivotConfiguration:filterStrategy:advancedFilteringExpressionsTree:filteringPipeTrigger:pipeTrigger\n | pivotGridSort:pivotConfiguration:sortStrategy:pipeTrigger\n | pivotGridRow:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridColumn:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridAutoTransform:pivotConfiguration:pipeTrigger\n | pivotGridColumnSort:sortingExpressions:sortStrategy:pipeTrigger\n | pivotGridRowExpansion:pivotConfiguration:expansionStates:defaultExpandState:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight\"\n [igxGridForOfVariableSizes]=\"false\"\n #verticalScrollContainer (dataChanging)=\"dataRebinding($event)\" (dataChanged)=\"dataRebound($event)\">\n <ng-template\n [igxTemplateOutlet]=\"recordTemplate\"\n [igxTemplateOutletContext]=\"getContext(rowData, rowIndex)\"\n (cachedViewLoaded)=\"cachedViewLoaded($event)\">\n </ng-template>\n </ng-template>\n <ng-template #record_template let-rowIndex=\"index\" let-rowData>\n <igx-pivot-row [gridID]=\"id\" [index]=\"rowIndex\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-pivot-row>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: this }\"></ng-container>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf=\"shouldOverlayLoading\">\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]=\"!hasVerticalScroll()\" class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=\" isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]=\"calcHeight\">\n <ng-template igxGridFor [igxGridForOf]=\"[]\" #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]=\"!isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n </div>\n\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]=\"snackbarDisplayTime\">{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div #igxBodyOverlayOutlet=\"overlay-outlet\" igxOverlayOutlet></div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\"></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]=\"pivotUnpinnedWidth\">\n <ng-template igxGridFor [igxGridForOf]=\"EMPTY_DATA\" #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\" [hidden]=\"pivotPinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" #tfoot>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer,igc-grid-footer\"></ng-content>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n<igx-pivot-grid-column-resizer [restrictResizerTop]=\"calculateResizerTop()\" *ngIf=\"colResizingService.showResizer\"></igx-pivot-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n\n<ng-template #headerTemplate let-column>\n <div class=\"igx-grid__tr--header\">\n <igx-icon\n family=\"default\"\n [name]=\"getColumnGroupExpandState(column) ? 'tree_expand' : 'tree_collapse'\"\n [attr.draggable]=\"false\"\n (click)=\"toggleColumn(column)\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #defaultRowDimensionsTemplate>\n <div tabindex=\"0\" [style.height.px]=\"totalHeight\" *ngFor=\"let dim of rowDimensions; let dimIndex = index;\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"dataView\n | pivotGridCellMerging:pivotConfiguration:dim:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n #verticalRowDimScrollContainer>\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"rowData.dimensions[dimIndex]\"\n [rootDimension]=\"dim\"\n [style.height.px]=\"renderedRowHeight * (rowData.rowSpan || 1)\"\n [rowIndex]=\"rowIndex\" [rowData]=\"rowData\"\n [width]=\"rowDimensionWidthToPixels(dim)\">\n </igx-pivot-row-dimension-content>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #horizontalRowDimensionsTemplate>\n <div tabindex=\"0\" class=\"igx-grid__tbody-pivot-mrl-dimension\" #rowDimensionContainer [style.height.px]=\"totalHeight\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-container *ngIf=\"dataView | pivotGridHorizontalRowGrouping:pivotConfiguration:pipeTrigger:regroupTrigger as groupedData\">\n <ng-template #verticalRowDimScrollContainer role=\"rowgroup\" igxGridFor let-rowGroup let-rowIndex=\"index\"\n [igxGridForOf]=\"groupedData\"\n [igxForScrollOrientation]=\"'vertical'\"\n [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n >\n <igx-pivot-row-dimension-mrl-row [rowIndex]=\"rowIndex\" [rowGroup]=\"rowGroup\" [groupedData]=\"groupedData\" [style.height.px]=\"renderedRowHeight * rowGroup.length\"></igx-pivot-row-dimension-mrl-row>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyRowDimensionsTemplate>\n <div tabindex=\"0\" *ngIf=\"columnDimensions.length > 0 || values.length > 0\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"emptyRowDimension\"\n [rootDimension]=\"emptyRowDimension\"\n [rowIndex]=\"0\" [rowData]=\"dataView[0]\"\n [width]=\"rowDimensionWidthToPixels(emptyRowDimension)\">\n </igx-pivot-row-dimension-content>\n </div>\n</ng-template>\n\n<ng-template #emptyPivotGridTemplate>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{resourceStrings.igx_grid_pivot_empty_message}}</span>\n </span>\n</ng-template>\n\n<div [hidden]=\"true\">\n <igx-grid-excel-style-filtering [maxHeight]=\"excelStyleFilterMaxHeight\" [minHeight]=\"excelStyleFilterMinHeight\">\n <div igxExcelStyleColumnOperations [hidden]=\"true\"></div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n@if (platform.isElements) {\n <div #sink style=\"display: none;\">\n <ng-content select=\"igx-grid-state,igc-grid-state\"></ng-content>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxPivotHeaderRowComponent, selector: "igx-pivot-header-row" }, { kind: "directive", type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { kind: "directive", type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { kind: "directive", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "directive", type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { kind: "component", type: IgxPivotRowComponent, selector: "igx-pivot-row", inputs: ["selected", "data"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }, { kind: "component", type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "component", type: IgxPivotGridColumnResizerComponent, selector: "igx-pivot-grid-column-resizer" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "component", type: IgxPivotRowDimensionContentComponent, selector: "igx-pivot-row-dimension-content", inputs: ["rowIndex", "colIndex", "layout", "dimension", "rootDimension", "rowData"] }, { kind: "component", type: IgxGridExcelStyleFilteringComponent, selector: "igx-grid-excel-style-filtering", inputs: ["column", "minHeight", "maxHeight"], outputs: ["loadingStart", "loadingEnd", "initialized", "sortingChanged", "columnChange", "listDataLoaded"] }, { kind: "directive", type: IgxExcelStyleColumnOperationsTemplateDirective, selector: "igx-excel-style-column-operations,[igxExcelStyleColumnOperations]" }, { kind: "directive", type: IgxExcelStyleFilterOperationsTemplateDirective, selector: "igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "pipe", type: IgxGridRowClassesPipe, name: "igxGridRowClasses" }, { kind: "pipe", type: IgxGridRowStylesPipe, name: "igxGridRowStyles" }, { kind: "pipe", type: IgxPivotRowPipe, name: "pivotGridRow" }, { kind: "pipe", type: IgxPivotRowExpansionPipe, name: "pivotGridRowExpansion" }, { kind: "pipe", type: IgxPivotAutoTransform, name: "pivotGridAutoTransform" }, { kind: "pipe", type: IgxPivotColumnPipe, name: "pivotGridColumn" }, { kind: "pipe", type: IgxPivotGridFilterPipe, name: "pivotGridFilter" }, { kind: "pipe", type: IgxPivotGridSortingPipe, name: "pivotGridSort" }, { kind: "pipe", type: IgxPivotGridColumnSortingPipe, name: "pivotGridColumnSort" }, { kind: "pipe", type: IgxPivotCellMergingPipe, name: "pivotGridCellMerging" }, { kind: "pipe", type: IgxPivotGridHorizontalRowGrouping, name: "pivotGridHorizontalRowGrouping" }, { kind: "component", type: IgxPivotRowDimensionMrlRowComponent, selector: "igx-pivot-row-dimension-mrl-row", inputs: ["rowIndex", "rowGroup", "groupedData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76503
76527
|
}
|
|
76504
76528
|
__decorate([
|
|
76505
76529
|
WatchChanges()
|
|
@@ -76558,7 +76582,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
|
|
|
76558
76582
|
IgxPivotCellMergingPipe,
|
|
76559
76583
|
IgxPivotGridHorizontalRowGrouping,
|
|
76560
76584
|
IgxPivotRowDimensionMrlRowComponent
|
|
76561
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<!-- Toolbar area -->\n<ng-content select=\"igx-grid-toolbar,igc-grid-toolbar\"></ng-content>\n\n<!-- Grid table head row area -->\n<igx-pivot-header-row class=\"igx-grid-thead igx-grid-thead--pivot\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (scroll)=\"preventHeaderScroll($event)\"\n>\n</igx-pivot-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"rowDimensions.length ? (hasHorizontalLayout ? horizontalRowDimensionsTemplate : defaultRowDimensionsTemplate) : emptyRowDimensionsTemplate; context: this\"></ng-container>\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" [attr.role]=\"dataView.length ? null : 'row'\" (keydown)=\"navigation.handleNavigation($event)\" (focus)=\"navigation.focusTbody($event)\"\n (dragStop)=\"selectionService.dragMode = $event\" (scroll)=\"preventContainerScroll($event)\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\"\n [style.height.px]=\"totalHeight\" [style.width.px]=\"pivotContentCalcWidth || null\" #tbody [attr.aria-activedescendant]=\"activeDescendant\">\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"data\n | pivotGridFilter:pivotConfiguration:filterStrategy:advancedFilteringExpressionsTree:filteringPipeTrigger:pipeTrigger\n | pivotGridSort:pivotConfiguration:sortStrategy:pipeTrigger\n | pivotGridRow:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridColumn:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridAutoTransform:pivotConfiguration:pipeTrigger\n | pivotGridColumnSort:sortingExpressions:sortStrategy:pipeTrigger\n | pivotGridRowExpansion:pivotConfiguration:expansionStates:defaultExpandState:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight\"\n [igxGridForOfVariableSizes]=\"false\"\n #verticalScrollContainer (dataChanging)=\"dataRebinding($event)\" (dataChanged)=\"dataRebound($event)\">\n <ng-template\n [igxTemplateOutlet]=\"recordTemplate\"\n [igxTemplateOutletContext]=\"getContext(rowData, rowIndex)\"\n (cachedViewLoaded)=\"cachedViewLoaded($event)\">\n </ng-template>\n </ng-template>\n <ng-template #record_template let-rowIndex=\"index\" let-rowData>\n <igx-pivot-row [style.height.px]=\"renderedRowHeight\" [gridID]=\"id\" [index]=\"rowIndex\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-pivot-row>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: this }\"></ng-container>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf=\"shouldOverlayLoading\">\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]=\"!hasVerticalScroll()\" class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=\" isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]=\"calcHeight\">\n <ng-template igxGridFor [igxGridForOf]=\"[]\" #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]=\"!isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n </div>\n\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]=\"snackbarDisplayTime\">{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div #igxBodyOverlayOutlet=\"overlay-outlet\" igxOverlayOutlet></div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\"></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]=\"pivotUnpinnedWidth\">\n <ng-template igxGridFor [igxGridForOf]=\"EMPTY_DATA\" #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\" [hidden]=\"pivotPinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" #tfoot>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer,igc-grid-footer\"></ng-content>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n<igx-pivot-grid-column-resizer [restrictResizerTop]=\"calculateResizerTop()\" *ngIf=\"colResizingService.showResizer\"></igx-pivot-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n\n<ng-template #headerTemplate let-column>\n <div class=\"igx-grid__tr--header\">\n <igx-icon\n family=\"default\"\n [name]=\"getColumnGroupExpandState(column) ? 'tree_expand' : 'tree_collapse'\"\n [attr.draggable]=\"false\"\n (click)=\"toggleColumn(column)\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #defaultRowDimensionsTemplate>\n <div tabindex=\"0\" [style.height.px]=\"totalHeight\" *ngFor=\"let dim of rowDimensions; let dimIndex = index;\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"dataView\n | pivotGridCellMerging:pivotConfiguration:dim:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n #verticalRowDimScrollContainer>\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"rowData.dimensions[dimIndex]\"\n [rootDimension]=\"dim\"\n [style.height.px]=\"renderedRowHeight * (rowData.rowSpan || 1)\"\n [rowIndex]=\"rowIndex\" [rowData]=\"rowData\"\n [width]=\"rowDimensionWidthToPixels(dim)\">\n </igx-pivot-row-dimension-content>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #horizontalRowDimensionsTemplate>\n <div tabindex=\"0\" class=\"igx-grid__tbody-pivot-mrl-dimension\" #rowDimensionContainer [style.height.px]=\"totalHeight\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-container *ngIf=\"dataView | pivotGridHorizontalRowGrouping:pivotConfiguration:pipeTrigger:regroupTrigger as groupedData\">\n <ng-template #verticalRowDimScrollContainer role=\"rowgroup\" igxGridFor let-rowGroup let-rowIndex=\"index\"\n [igxGridForOf]=\"groupedData\"\n [igxForScrollOrientation]=\"'vertical'\"\n [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n >\n <igx-pivot-row-dimension-mrl-row [rowIndex]=\"rowIndex\" [rowGroup]=\"rowGroup\" [groupedData]=\"groupedData\" [style.height.px]=\"renderedRowHeight * rowGroup.length\"></igx-pivot-row-dimension-mrl-row>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyRowDimensionsTemplate>\n <div tabindex=\"0\" *ngIf=\"columnDimensions.length > 0 || values.length > 0\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"emptyRowDimension\"\n [rootDimension]=\"emptyRowDimension\"\n [rowIndex]=\"0\" [rowData]=\"dataView[0]\"\n [width]=\"rowDimensionWidthToPixels(emptyRowDimension)\">\n </igx-pivot-row-dimension-content>\n </div>\n</ng-template>\n\n<ng-template #emptyPivotGridTemplate>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{resourceStrings.igx_grid_pivot_empty_message}}</span>\n </span>\n</ng-template>\n\n<div [hidden]=\"true\">\n <igx-grid-excel-style-filtering [maxHeight]=\"excelStyleFilterMaxHeight\" [minHeight]=\"excelStyleFilterMinHeight\">\n <div igxExcelStyleColumnOperations [hidden]=\"true\"></div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n@if (platform.isElements) {\n <div #sink style=\"display: none;\">\n <ng-content select=\"igx-grid-state,igc-grid-state\"></ng-content>\n </div>\n}\n" }]
|
|
76585
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<!-- Toolbar area -->\n<ng-content select=\"igx-grid-toolbar,igc-grid-toolbar\"></ng-content>\n\n<!-- Grid table head row area -->\n<igx-pivot-header-row class=\"igx-grid-thead igx-grid-thead--pivot\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (scroll)=\"preventHeaderScroll($event)\"\n>\n</igx-pivot-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"rowDimensions.length ? (hasHorizontalLayout ? horizontalRowDimensionsTemplate : defaultRowDimensionsTemplate) : emptyRowDimensionsTemplate; context: this\"></ng-container>\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" [attr.role]=\"dataView.length ? null : 'row'\" (keydown)=\"navigation.handleNavigation($event)\" (focus)=\"navigation.focusTbody($event)\"\n (dragStop)=\"selectionService.dragMode = $event\" (scroll)=\"preventContainerScroll($event)\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\"\n [style.height.px]=\"totalHeight\" [style.width.px]=\"pivotContentCalcWidth || null\" #tbody [attr.aria-activedescendant]=\"activeDescendant\">\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"data\n | pivotGridFilter:pivotConfiguration:filterStrategy:advancedFilteringExpressionsTree:filteringPipeTrigger:pipeTrigger\n | pivotGridSort:pivotConfiguration:sortStrategy:pipeTrigger\n | pivotGridRow:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridColumn:pivotConfiguration:pivotValueCloneStrategy:expansionStates:pipeTrigger:sortingExpressions\n | pivotGridAutoTransform:pivotConfiguration:pipeTrigger\n | pivotGridColumnSort:sortingExpressions:sortStrategy:pipeTrigger\n | pivotGridRowExpansion:pivotConfiguration:expansionStates:defaultExpandState:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight\"\n [igxGridForOfVariableSizes]=\"false\"\n #verticalScrollContainer (dataChanging)=\"dataRebinding($event)\" (dataChanged)=\"dataRebound($event)\">\n <ng-template\n [igxTemplateOutlet]=\"recordTemplate\"\n [igxTemplateOutletContext]=\"getContext(rowData, rowIndex)\"\n (cachedViewLoaded)=\"cachedViewLoaded($event)\">\n </ng-template>\n </ng-template>\n <ng-template #record_template let-rowIndex=\"index\" let-rowData>\n <igx-pivot-row [gridID]=\"id\" [index]=\"rowIndex\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-pivot-row>\n </ng-template>\n\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: this }\"></ng-container>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf=\"shouldOverlayLoading\">\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]=\"!hasVerticalScroll()\" class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=\" isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]=\"calcHeight\">\n <ng-template igxGridFor [igxGridForOf]=\"[]\" #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]=\"!isRowPinningToTop ? pinnedRowHeight : 0\"></div>\n </div>\n\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]=\"snackbarDisplayTime\">{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div #igxBodyOverlayOutlet=\"overlay-outlet\" igxOverlayOutlet></div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\"></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]=\"pivotUnpinnedWidth\">\n <ng-template igxGridFor [igxGridForOf]=\"EMPTY_DATA\" #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.width.px]=\"pivotPinnedWidth\" [style.min-width.px]=\"pivotPinnedWidth\" [hidden]=\"pivotPinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" #tfoot>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer,igc-grid-footer\"></ng-content>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n </span>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n<igx-pivot-grid-column-resizer [restrictResizerTop]=\"calculateResizerTop()\" *ngIf=\"colResizingService.showResizer\"></igx-pivot-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n\n<ng-template #headerTemplate let-column>\n <div class=\"igx-grid__tr--header\">\n <igx-icon\n family=\"default\"\n [name]=\"getColumnGroupExpandState(column) ? 'tree_expand' : 'tree_collapse'\"\n [attr.draggable]=\"false\"\n (click)=\"toggleColumn(column)\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #defaultRowDimensionsTemplate>\n <div tabindex=\"0\" [style.height.px]=\"totalHeight\" *ngFor=\"let dim of rowDimensions; let dimIndex = index;\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"dataView\n | pivotGridCellMerging:pivotConfiguration:dim:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n #verticalRowDimScrollContainer>\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"rowData.dimensions[dimIndex]\"\n [rootDimension]=\"dim\"\n [style.height.px]=\"renderedRowHeight * (rowData.rowSpan || 1)\"\n [rowIndex]=\"rowIndex\" [rowData]=\"rowData\"\n [width]=\"rowDimensionWidthToPixels(dim)\">\n </igx-pivot-row-dimension-content>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #horizontalRowDimensionsTemplate>\n <div tabindex=\"0\" class=\"igx-grid__tbody-pivot-mrl-dimension\" #rowDimensionContainer [style.height.px]=\"totalHeight\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <ng-container *ngIf=\"dataView | pivotGridHorizontalRowGrouping:pivotConfiguration:pipeTrigger:regroupTrigger as groupedData\">\n <ng-template #verticalRowDimScrollContainer role=\"rowgroup\" igxGridFor let-rowGroup let-rowIndex=\"index\"\n [igxGridForOf]=\"groupedData\"\n [igxForScrollOrientation]=\"'vertical'\"\n [igxForScrollContainer]=\"verticalScroll\"\n [igxForContainerSize]=\"calcHeight\"\n [igxForItemSize]=\"renderedRowHeight\"\n [igxForSizePropName]=\"'height'\"\n >\n <igx-pivot-row-dimension-mrl-row [rowIndex]=\"rowIndex\" [rowGroup]=\"rowGroup\" [groupedData]=\"groupedData\" [style.height.px]=\"renderedRowHeight * rowGroup.length\"></igx-pivot-row-dimension-mrl-row>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #emptyRowDimensionsTemplate>\n <div tabindex=\"0\" *ngIf=\"columnDimensions.length > 0 || values.length > 0\" #rowDimensionContainer role=\"rowgroup\" class=\"igx-grid__tbody-pivot-dimension\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\">\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\" [grid]=\"this\"\n [dimension]=\"emptyRowDimension\"\n [rootDimension]=\"emptyRowDimension\"\n [rowIndex]=\"0\" [rowData]=\"dataView[0]\"\n [width]=\"rowDimensionWidthToPixels(emptyRowDimension)\">\n </igx-pivot-row-dimension-content>\n </div>\n</ng-template>\n\n<ng-template #emptyPivotGridTemplate>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{resourceStrings.igx_grid_pivot_empty_message}}</span>\n </span>\n</ng-template>\n\n<div [hidden]=\"true\">\n <igx-grid-excel-style-filtering [maxHeight]=\"excelStyleFilterMaxHeight\" [minHeight]=\"excelStyleFilterMinHeight\">\n <div igxExcelStyleColumnOperations [hidden]=\"true\"></div>\n <igx-excel-style-filter-operations>\n <igx-excel-style-search></igx-excel-style-search>\n </igx-excel-style-filter-operations>\n </igx-grid-excel-style-filtering>\n</div>\n\n@if (platform.isElements) {\n <div #sink style=\"display: none;\">\n <ng-content select=\"igx-grid-state,igc-grid-state\"></ng-content>\n </div>\n}\n" }]
|
|
76562
76586
|
}], ctorParameters: () => [{ type: IgxGridValidationService }, { type: IgxGridSelectionService }, { type: IgxPivotColumnResizingService }, { type: GridBaseAPIService }, { type: IgxFlatTransactionFactory }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
76563
76587
|
type: Inject,
|
|
76564
76588
|
args: [DOCUMENT]
|