UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

802 lines 206 kB
import { __decorate, __metadata } from "tslib"; import { Component, HostBinding, HostListener, Injector, Input, QueryList, TemplateRef, ViewChild } from '@angular/core'; import { DateRange } from '@microsoft/windows-admin-center-sdk/core/base/date/date-range'; import { Debounce } from '@microsoft/windows-admin-center-sdk/core/base/decorators/debounce.decorators'; import { Yield } from '@microsoft/windows-admin-center-sdk/core/base/decorators/yield.decorator'; import { LogLevel } from '@microsoft/windows-admin-center-sdk/core/diagnostics/log-level'; import { Logging } from '@microsoft/windows-admin-center-sdk/core/diagnostics/logging'; import { Dom } from '@microsoft/windows-admin-center-sdk/core/dom/dom'; import { CoreBaseComponent } from '../common/base.component'; import { DataTableComponent } from '../data-table/data-table.component'; import { ApplyMode, QueryDataItemValueType, QueryDataOperand } from './query-editor-contract'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@angular/forms"; import * as i3 from "../loading-wheel/loading-wheel.component"; import * as i4 from "../tooltip/tooltip.directive"; import * as i5 from "../form/form-field/combobox/combobox-form-field.component"; import * as i6 from "../form/form-field/datetime-range/datetime-range-form-field.component"; import * as i7 from "../form/form-field/datetime-range/datetime-range-option.component"; import * as i8 from "../form/form-field/text/text-form-field.component"; import * as i9 from "../form/form-field/options-form-field/form-field-option.component"; import * as i10 from "../form/form-field/form-field-accessor.directive"; import * as i11 from "../form/form-field/form-field-validator.directive"; const _c0 = ["multiSelectTemplate"]; const _c1 = ["textTemplate"]; const _c2 = ["singleSelectTemplate"]; const _c3 = ["timespanSelectTemplate"]; function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "span", 22); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(2).$implicit; i0.ɵɵproperty("ngClass", item_r14.icon); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_sme_loading_wheel_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-loading-wheel", 23); } if (rf & 2) { i0.ɵɵproperty("isBackgroundTransparent", true); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_i_11_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "i"); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r22 = i0.ɵɵnextContext(5); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r22.resourceStrings.Unset); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_13_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 24); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const index_r15 = i0.ɵɵnextContext(2).index; const ctx_r23 = i0.ɵɵnextContext(3); i0.ɵɵproperty("id", ctx_r23.idBag.disabledLabel + index_r15); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r23.resourceStrings.ReadOnly); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_14_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 24); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const index_r15 = i0.ɵɵnextContext(2).index; const ctx_r24 = i0.ɵɵnextContext(3); i0.ɵɵproperty("id", ctx_r24.idBag.irremovableLabel + index_r15); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r24.resourceStrings.Irremovable); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_15_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 24); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const index_r15 = i0.ɵɵnextContext(2).index; const ctx_r25 = i0.ɵɵnextContext(3); i0.ɵɵproperty("id", ctx_r25.idBag.removableLabel + index_r15); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r25.resourceStrings.RemovableHint); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_button_16_Template(rf, ctx) { if (rf & 1) { const _r33 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "button", 25); i0.ɵɵlistener("mouseup", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_button_16_Template_button_mouseup_0_listener($event) { i0.ɵɵrestoreView(_r33); const index_r15 = i0.ɵɵnextContext(2).index; const ctx_r31 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r31.removeQueryEditorItem($event, index_r15)); })("keydown.Enter", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_button_16_Template_button_keydown_Enter_0_listener($event) { i0.ɵɵrestoreView(_r33); const index_r15 = i0.ɵɵnextContext(2).index; const ctx_r34 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r34.removeQueryEditorItem($event, index_r15, true)); }); i0.ɵɵelement(1, "span", 26); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r26 = i0.ɵɵnextContext(3); i0.ɵɵproperty("tabindex", item_r14.isEditing ? 0 : -1); i0.ɵɵattribute("aria-label", ctx_r26.resourceStrings.Delete); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_Template(rf, ctx) { if (rf & 1) { const _r39 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 13); i0.ɵɵlistener("click", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r39); const ctx_r38 = i0.ɵɵnextContext(); const item_r14 = ctx_r38.$implicit; const index_r15 = ctx_r38.index; const ctx_r37 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r37.onPillClick(item_r14, index_r15)); }); i0.ɵɵtemplate(1, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_1_Template, 1, 1, "span", 14); i0.ɵɵelementStart(2, "span", 15); i0.ɵɵtext(3); i0.ɵɵelementEnd(); i0.ɵɵtemplate(4, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_sme_loading_wheel_4_Template, 1, 1, "sme-loading-wheel", 16); i0.ɵɵelementStart(5, "span", 17); i0.ɵɵtext(6); i0.ɵɵelementEnd(); i0.ɵɵelementStart(7, "span", 18)(8, "strong")(9, "span"); i0.ɵɵtext(10); i0.ɵɵelementEnd(); i0.ɵɵtemplate(11, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_i_11_Template, 2, 1, "i", 0); i0.ɵɵelementEnd()(); i0.ɵɵelementStart(12, "span", 19); i0.ɵɵtemplate(13, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_13_Template, 2, 2, "span", 20); i0.ɵɵtemplate(14, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_14_Template, 2, 2, "span", 20); i0.ɵɵtemplate(15, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_span_15_Template, 2, 2, "span", 20); i0.ɵɵelementEnd(); i0.ɵɵtemplate(16, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_button_16_Template, 2, 2, "button", 21); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r40 = i0.ɵɵnextContext(); const index_r15 = ctx_r40.index; const item_r14 = ctx_r40.$implicit; const _r17 = i0.ɵɵreference(3); const ctx_r16 = i0.ɵɵnextContext(3); i0.ɵɵproperty("smeTooltip", _r17)("id", ctx_r16.idBag.pillLabel + index_r15); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r14.icon); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(item_r14.column.label); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r16.isColumnDropdownBusy); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(ctx_r16.getItemOperatorDisplayValue(item_r14)); i0.ɵɵadvance(4); i0.ɵɵtextInterpolate(ctx_r16.getItemDisplayValue(item_r14)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r14.invalid && (item_r14.value.type === ctx_r16.queryDataItemValueType.TextInput || item_r14.value.type === ctx_r16.queryDataItemValueType.SingleDropdown || item_r14.value.type === ctx_r16.queryDataItemValueType.TimespanDropdown)); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !!item_r14.disabled); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !!item_r14.irremovable); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !item_r14.irremovable); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !item_r14.irremovable); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_ng_template_2_strong_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "strong"); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r41 = i0.ɵɵnextContext(3); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1(" ", item_r14.value.isValueUnset ? ctx_r41.resourceStrings.Unset : item_r14.value.value, ""); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_ng_template_2_strong_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "strong"); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r42 = i0.ɵɵnextContext(3); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1(" ", item_r14.value.isValueUnset ? ctx_r42.resourceStrings.Unset : item_r14.value.tooltip, ""); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 27); i0.ɵɵtext(1); i0.ɵɵtemplate(2, QueryEditorComponent_ng_container_0_ng_container_1_div_1_ng_template_2_strong_2_Template, 2, 1, "strong", 0); i0.ɵɵtemplate(3, QueryEditorComponent_ng_container_0_ng_container_1_div_1_ng_template_2_strong_3_Template, 2, 1, "strong", 0); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext().$implicit; const ctx_r18 = i0.ɵɵnextContext(3); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate2("", item_r14.column.label, " ", item_r14.operand, " "); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r14.value.type !== ctx_r18.queryDataItemValueType.TimespanDropdown); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r14.value.type === ctx_r18.queryDataItemValueType.TimespanDropdown); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_form_field_2_sme_option_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-option", 32); } if (rf & 2) { const option_r51 = ctx.$implicit; i0.ɵɵproperty("value", option_r51.value)("label", option_r51.label); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_form_field_2_Template(rf, ctx) { if (rf & 1) { const _r54 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "sme-form-field", 30); i0.ɵɵlistener("ngModelChange", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_form_field_2_Template_sme_form_field_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r54); const item_r14 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(item_r14.column.value = $event); })("ngModelChange", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_form_field_2_Template_sme_form_field_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r54); const index_r15 = i0.ɵɵnextContext(2).index; const ctx_r55 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r55.onQueryEditorChange(index_r15, true, null, true)); }); i0.ɵɵtemplate(1, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_form_field_2_sme_option_1_Template, 1, 2, "sme-option", 31); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r46 = i0.ɵɵnextContext(3); i0.ɵɵclassProp("sme-focus-zone", item_r14.isEditing); i0.ɵɵproperty("ngModel", item_r14.column.value)("compact", true)("minimal", true)("placeholder", ctx_r46.resourceStrings.SelectKey)("dropdownApplyFormFieldOffsetWidth", false); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r46.internalColumnList); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_span_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span"); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(2).$implicit; i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(item_r14.column.label); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_loading_wheel_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-loading-wheel", 23); } if (rf & 2) { i0.ɵɵproperty("isBackgroundTransparent", true); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_span_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 17); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r59 = i0.ɵɵnextContext(6); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1(" ", ctx_r59.queryDataOperand.Dropdowns, " "); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_sme_form_field_3_sme_option_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-option", 32); } if (rf & 2) { const operand_r64 = ctx.$implicit; i0.ɵɵproperty("value", operand_r64.value)("label", operand_r64.value); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_sme_form_field_3_Template(rf, ctx) { if (rf & 1) { const _r67 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "sme-form-field", 37); i0.ɵɵlistener("ngModelChange", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_sme_form_field_3_Template_sme_form_field_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r67); const item_r14 = i0.ɵɵnextContext(3).$implicit; return i0.ɵɵresetView(item_r14.operand = $event); })("ngModelChange", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_sme_form_field_3_Template_sme_form_field_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r67); const index_r15 = i0.ɵɵnextContext(3).index; const ctx_r68 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r68.onQueryEditorChange(index_r15, null, null, true)); }); i0.ɵɵtemplate(1, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_sme_form_field_3_sme_option_1_Template, 1, 2, "sme-option", 31); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(3).$implicit; const ctx_r60 = i0.ɵɵnextContext(3); i0.ɵɵclassProp("sme-query-editor-value-irremovable", !!item_r14.irremovable); i0.ɵɵproperty("ngModel", item_r14.operand)("compact", true)("minimal", true)("dropdownApplyFormFieldOffsetWidth", false); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r60.operands); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_div_4_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } const _c4 = function (a0, a1) { return { $implicit: a0, index: a1 }; }; function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_div_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 38); i0.ɵɵtemplate(1, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_div_4_ng_container_1_Template, 1, 0, "ng-container", 39); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r72 = i0.ɵɵnextContext(3); const item_r14 = ctx_r72.$implicit; const index_r15 = ctx_r72.index; const ctx_r61 = i0.ɵɵnextContext(3); i0.ɵɵadvance(1); i0.ɵɵproperty("ngTemplateOutlet", ctx_r61.getTemplate(item_r14))("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c4, item_r14, index_r15)); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_button_5_Template(rf, ctx) { if (rf & 1) { const _r75 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "button", 40); i0.ɵɵlistener("mouseup", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_button_5_Template_button_mouseup_0_listener($event) { i0.ɵɵrestoreView(_r75); const index_r15 = i0.ɵɵnextContext(3).index; const ctx_r73 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r73.removeQueryEditorItem($event, index_r15)); })("keydown.Enter", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_button_5_Template_button_keydown_Enter_0_listener($event) { i0.ɵɵrestoreView(_r75); const index_r15 = i0.ɵɵnextContext(3).index; const ctx_r76 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r76.removeQueryEditorItem($event, index_r15, true)); }); i0.ɵɵelement(1, "span", 26); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(3).$implicit; const ctx_r62 = i0.ɵɵnextContext(3); i0.ɵɵproperty("tabindex", item_r14.isEditing ? 0 : -1); i0.ɵɵattribute("aria-label", ctx_r62.resourceStrings.Delete); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵelementStart(1, "div", 17); i0.ɵɵtemplate(2, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_span_2_Template, 2, 1, "span", 33); i0.ɵɵtemplate(3, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_sme_form_field_3_Template, 2, 7, "sme-form-field", 34); i0.ɵɵelementEnd(); i0.ɵɵtemplate(4, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_div_4_Template, 2, 5, "div", 35); i0.ɵɵtemplate(5, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_button_5_Template, 2, 2, "button", 36); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext(2).$implicit; const ctx_r49 = i0.ɵɵnextContext(3); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !!item_r14.column.value && (item_r14.value.type === ctx_r49.queryDataItemValueType.SingleDropdown || item_r14.value.type === ctx_r49.queryDataItemValueType.MultiSelectDropdown || item_r14.value.type === ctx_r49.queryDataItemValueType.TimespanDropdown)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !!item_r14.column.value && item_r14.value.type === ctx_r49.queryDataItemValueType.TextInput); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !!(item_r14 == null ? null : item_r14.column == null ? null : item_r14.column.value)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !item_r14.irremovable); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_Template(rf, ctx) { if (rf & 1) { const _r81 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "form", 28); i0.ɵɵlistener("keydown.Enter", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_Template_form_keydown_Enter_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r80 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r80.onPillExitTrap($event)); })("keydown.Esc", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_Template_form_keydown_Esc_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r82 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r82.onPillExitTrap($event)); }); i0.ɵɵelementStart(1, "div", 15); i0.ɵɵtemplate(2, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_form_field_2_Template, 2, 8, "sme-form-field", 29); i0.ɵɵtemplate(3, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_span_3_Template, 2, 1, "span", 0); i0.ɵɵtemplate(4, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_sme_loading_wheel_4_Template, 1, 1, "sme-loading-wheel", 16); i0.ɵɵelementEnd(); i0.ɵɵtemplate(5, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_ng_container_5_Template, 6, 4, "ng-container", 0); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = i0.ɵɵnextContext().$implicit; const ctx_r19 = i0.ɵɵnextContext(3); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !(item_r14.column && item_r14.column.uneditable)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r14.column && item_r14.column.uneditable); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r19.isColumnDropdownBusy); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !ctx_r19.isColumnDropdownBusy); } } function QueryEditorComponent_ng_container_0_ng_container_1_div_1_Template(rf, ctx) { if (rf & 1) { const _r85 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 9); i0.ɵɵlistener("keydown.Delete", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_Template_div_keydown_Delete_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r85); const index_r15 = restoredCtx.index; const ctx_r84 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r84.removeQueryEditorItem($event, index_r15, true)); })("focus", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_Template_div_focus_0_listener() { i0.ɵɵrestoreView(_r85); const ctx_r86 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r86.setSelectedHtml()); })("keydown.Enter", function QueryEditorComponent_ng_container_0_ng_container_1_div_1_Template_div_keydown_Enter_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r85); const item_r14 = restoredCtx.$implicit; const index_r15 = restoredCtx.index; const ctx_r87 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r87.onPillEnterTrap($event, item_r14, index_r15)); }); i0.ɵɵtemplate(1, QueryEditorComponent_ng_container_0_ng_container_1_div_1_div_1_Template, 17, 12, "div", 10); i0.ɵɵtemplate(2, QueryEditorComponent_ng_container_0_ng_container_1_div_1_ng_template_2_Template, 4, 4, "ng-template", null, 11, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(4, QueryEditorComponent_ng_container_0_ng_container_1_div_1_form_4_Template, 6, 4, "form", 12); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r14 = ctx.$implicit; const index_r15 = ctx.index; const ctx_r13 = i0.ɵɵnextContext(3); i0.ɵɵclassProp("sme-disabled", item_r14.disabled)("sme-invalid", item_r14.invalid && !item_r14.isEditing)("sme-irremovable", item_r14.irremovable)("sme-focus-trap", item_r14.isEditing); i0.ɵɵattribute("aria-labelledby", ctx_r13.getMenuItemLabel(index_r15)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !item_r14.isEditing); i0.ɵɵadvance(3); i0.ɵɵproperty("ngIf", item_r14.isEditing); } } function QueryEditorComponent_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, QueryEditorComponent_ng_container_0_ng_container_1_div_1_Template, 5, 11, "div", 8); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r10 = i0.ɵɵnextContext(2); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r10.queryEditor.contents); } } function QueryEditorComponent_ng_container_0_div_2_Template(rf, ctx) { if (rf & 1) { const _r89 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 41); i0.ɵɵlistener("mouseup", function QueryEditorComponent_ng_container_0_div_2_Template_div_mouseup_0_listener($event) { i0.ɵɵrestoreView(_r89); const ctx_r88 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r88.newQueryEditor($event)); })("keydown.Enter", function QueryEditorComponent_ng_container_0_div_2_Template_div_keydown_Enter_0_listener($event) { i0.ɵɵrestoreView(_r89); const ctx_r90 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r90.newQueryEditor($event, true)); }); i0.ɵɵelementStart(1, "div", 42); i0.ɵɵelement(2, "span", 43); i0.ɵɵelementStart(3, "span", 18); i0.ɵɵtext(4); i0.ɵɵelementEnd()()(); } if (rf & 2) { const ctx_r11 = i0.ɵɵnextContext(2); i0.ɵɵadvance(4); i0.ɵɵtextInterpolate(ctx_r11.resourceStrings.New); } } function QueryEditorComponent_ng_container_0_button_3_Template(rf, ctx) { if (rf & 1) { const _r92 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "button", 44); i0.ɵɵlistener("click", function QueryEditorComponent_ng_container_0_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r92); const ctx_r91 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r91.resetQueryEditor()); }); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r12 = i0.ɵɵnextContext(2); i0.ɵɵproperty("disabled", ctx_r12.disableResetButton); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1("", ctx_r12.resourceStrings.Reset, " "); } } function QueryEditorComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, QueryEditorComponent_ng_container_0_ng_container_1_Template, 2, 1, "ng-container", 0); i0.ɵɵtemplate(2, QueryEditorComponent_ng_container_0_div_2_Template, 5, 1, "div", 6); i0.ɵɵtemplate(3, QueryEditorComponent_ng_container_0_button_3_Template, 2, 2, "button", 7); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r0.queryEditor && ctx_r0.queryEditor.contents); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r0.showAddButton); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r0.showResetButton); } } function QueryEditorComponent_div_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 45); i0.ɵɵelement(1, "sme-loading-wheel", 46); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵadvance(1); i0.ɵɵproperty("isBackgroundTransparent", true); } } function QueryEditorComponent_ng_template_2_ng_container_1_sme_option_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-option", 32); } if (rf & 2) { const option_r97 = ctx.$implicit; i0.ɵɵproperty("value", option_r97)("label", option_r97); } } function QueryEditorComponent_ng_template_2_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, QueryEditorComponent_ng_template_2_ng_container_1_sme_option_1_Template, 1, 2, "sme-option", 31); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r95 = i0.ɵɵnextContext(2); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r95.columnDropdownData); } } function QueryEditorComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { const _r99 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "sme-form-field", 47); i0.ɵɵlistener("ngModelChange", function QueryEditorComponent_ng_template_2_Template_sme_form_field_ngModelChange_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r99); const item_r93 = restoredCtx.$implicit; return i0.ɵɵresetView(item_r93.value.temporaryValue = $event); })("ngModelChange", function QueryEditorComponent_ng_template_2_Template_sme_form_field_ngModelChange_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r99); const index_r94 = restoredCtx.index; const ctx_r100 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r100.onQueryEditorChange(index_r94, null, true)); })("keydown.Enter", function QueryEditorComponent_ng_template_2_Template_sme_form_field_keydown_Enter_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r99); const index_r94 = restoredCtx.index; const ctx_r101 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r101.onValueFieldEnterKeydown($event, index_r94)); }); i0.ɵɵtemplate(1, QueryEditorComponent_ng_template_2_ng_container_1_Template, 2, 1, "ng-container", 0); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r93 = ctx.$implicit; const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngModel", item_r93.value.temporaryValue)("multiple", true)("minimal", true)("compact", true)("placeholder", ctx_r3.resourceStrings.SelectValue)("searchable", !!item_r93.value.searchable)("dropdownApplyFormFieldOffsetWidth", false); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r3.columnDropdownData && ctx_r3.columnDropdownData.length > 0); } } function QueryEditorComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) { const _r105 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "sme-form-field", 48); i0.ɵɵlistener("ngModelChange", function QueryEditorComponent_ng_template_4_Template_sme_form_field_ngModelChange_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r105); const item_r102 = restoredCtx.$implicit; return i0.ɵɵresetView(item_r102.value.temporaryValue = $event); })("ngModelChange", function QueryEditorComponent_ng_template_4_Template_sme_form_field_ngModelChange_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r105); const index_r103 = restoredCtx.index; const ctx_r106 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r106.onQueryEditorChange(index_r103, null, true)); })("keydown.Enter", function QueryEditorComponent_ng_template_4_Template_sme_form_field_keydown_Enter_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r105); const index_r103 = restoredCtx.index; const ctx_r107 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r107.onValueFieldEnterKeydown($event, index_r103)); }); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r102 = ctx.$implicit; const ctx_r5 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngModel", item_r102.value.temporaryValue)("minimal", true)("compact", true)("placeholder", ctx_r5.resourceStrings.SelectValue); } } function QueryEditorComponent_ng_template_6_ng_container_1_sme_option_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-option", 32); } if (rf & 2) { const option_r112 = ctx.$implicit; i0.ɵɵproperty("value", option_r112)("label", option_r112); } } function QueryEditorComponent_ng_template_6_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, QueryEditorComponent_ng_template_6_ng_container_1_sme_option_1_Template, 1, 2, "sme-option", 31); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r110 = i0.ɵɵnextContext(2); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r110.columnDropdownData); } } function QueryEditorComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) { const _r114 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "sme-form-field", 49); i0.ɵɵlistener("ngModelChange", function QueryEditorComponent_ng_template_6_Template_sme_form_field_ngModelChange_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r114); const item_r108 = restoredCtx.$implicit; return i0.ɵɵresetView(item_r108.value.temporaryValue = $event); })("ngModelChange", function QueryEditorComponent_ng_template_6_Template_sme_form_field_ngModelChange_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r114); const index_r109 = restoredCtx.index; const ctx_r115 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r115.onQueryEditorChange(index_r109, null, true)); })("keydown.Enter", function QueryEditorComponent_ng_template_6_Template_sme_form_field_keydown_Enter_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r114); const index_r109 = restoredCtx.index; const ctx_r116 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r116.onValueFieldEnterKeydown($event, index_r109)); }); i0.ɵɵtemplate(1, QueryEditorComponent_ng_template_6_ng_container_1_Template, 2, 1, "ng-container", 0); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r108 = ctx.$implicit; const ctx_r7 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngModel", item_r108.value.temporaryValue)("minimal", true)("compact", true)("placeholder", ctx_r7.resourceStrings.SelectValue)("searchable", !!item_r108.value.searchable)("dropdownApplyFormFieldOffsetWidth", false); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r7.columnDropdownData && ctx_r7.columnDropdownData.length > 0); } } function QueryEditorComponent_ng_template_8_ng_container_1_sme_date_range_option_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-date-range-option", 32); } if (rf & 2) { const option_r121 = ctx.$implicit; i0.ɵɵproperty("value", option_r121.value)("label", option_r121.label); } } function QueryEditorComponent_ng_template_8_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, QueryEditorComponent_ng_template_8_ng_container_1_sme_date_range_option_1_Template, 1, 2, "sme-date-range-option", 31); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r119 = i0.ɵɵnextContext(2); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r119.columnDropdownData); } } function QueryEditorComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) { const _r123 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "sme-form-field", 50); i0.ɵɵlistener("ngModelChange", function QueryEditorComponent_ng_template_8_Template_sme_form_field_ngModelChange_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r123); const item_r117 = restoredCtx.$implicit; return i0.ɵɵresetView(item_r117.value.temporaryValue = $event); })("ngModelChange", function QueryEditorComponent_ng_template_8_Template_sme_form_field_ngModelChange_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r123); const index_r118 = restoredCtx.index; const ctx_r124 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r124.onQueryEditorChange(index_r118, null, true)); })("keydown.Enter", function QueryEditorComponent_ng_template_8_Template_sme_form_field_keydown_Enter_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r123); const index_r118 = restoredCtx.index; const ctx_r125 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r125.onValueFieldEnterKeydown($event, index_r118)); })("customLabelEmitter", function QueryEditorComponent_ng_template_8_Template_sme_form_field_customLabelEmitter_0_listener($event) { i0.ɵɵrestoreView(_r123); const ctx_r126 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r126.onCustomLabelEmit($event)); }); i0.ɵɵtemplate(1, QueryEditorComponent_ng_template_8_ng_container_1_Template, 2, 1, "ng-container", 0); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r117 = ctx.$implicit; const ctx_r9 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngModel", item_r117.value.temporaryValue)("minimal", true)("compact", true)("placeholder", ctx_r9.resourceStrings.SelectValue)("dropdownApplyFormFieldOffsetWidth", false); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r9.columnDropdownData && ctx_r9.columnDropdownData.length > 0); } } export class QueryEditorComponent extends CoreBaseComponent { constructor(injector) { super(injector); this.operands = []; this.columnsDropdownData = []; this.columnDropdownData = []; this.resourceStrings = MsftSme.getStrings().MsftSmeShell.Angular.QueryEditor; this.isLoading = false; this.enableGetDataTableUniqueValues = false; this.isFocusInsideComponent = false; this.isComponentClicked = false; this.isEditing = false; this.checkValueFieldTruncatedRecords = new Array(); this.applyMode = ApplyMode.Active; this.showAddButton = true; this.showResetButton = true; this.disableResetButton = false; } get queryDataItemValueType() { return QueryDataItemValueType; } get queryDataOperand() { return QueryDataOperand; } get role() { if (!this.queryEditor || !this.queryEditor.contents) { return null; } return 'menubar'; } get ariaLabel() { return this.resourceStrings.ColumnFilter; } set presetQueryEditor(input) { this.internalPresetQueryEditor = input; this.updatePresetQueryEditorCustomLabels(); } get presetQueryEditor() { return this.internalPresetQueryEditor; } get logSourceName() { return 'QueryEditorComponent'; } /** * Set disableResetButton value * disableResetButton = true if queryEditor.contents == 0 */ setDisableResetButton() { if (MsftSme.isNullOrUndefined(this.queryEditor)) { this.disableResetButton = true; } else { this.disableResetButton = this.queryEditor.contents.length === 0; } } ngOnInit() { this.initializeOperandsList(); this.isLoading = true; // Set disableResetButton value this.setDisableResetButton(); } getTemplate(item) { switch (item.value.type) { case QueryDataItemValueType.MultiSelectDropdown: return this.multiSelectTemplate; case QueryDataItemValueType.SingleDropdown: return this.singleSelectTemplate; case QueryDataItemValueType.TimespanDropdown: return this.timespanSelectTemplate; case QueryDataItemValueType.TextInput: default: return this.textTemplate; } } getItemDisplayValue(item) { switch (item.value.type) { case QueryDataItemValueType.MultiSelectDropdown: return this.resourceStrings.Selected.format(item.value.value.length); case QueryDataItemValueType.SingleDropdown: return item.value.value; case QueryDataItemValueType.TextInput: return item.value.value; case QueryDataItemValueType.TimespanDropdown: if (item.value.value && Object.keys(item.value.value).length > 0) { return item.value.customDisplayLabel ? item.value.customDisplayLabel : this.strings.MsftSmeShell.Angular.Form.DateTimeRange.Custom.label; } } } getItemOperatorDisplayValue(item) { switch (item.value.type) { case QueryDataItemValueType.MultiSelectDropdown: return this.queryDataOperand.Dropdowns; case QueryDataItemValueType.SingleDropdown: return this.queryDataOperand.Dropdowns; case QueryDataItemValueType.TimespanDropdown: return this.queryDataOperand.Dropdowns; case QueryDataItemValueType.TextInput: default: return item.operand; } } getUniqueTableValue() { if (this.dataTable && this.dataTable.items) { this.columnsDropdownData.forEach((item, index) => { // Ignore disabled ones if (item.queryEditorType === this.queryDataItemValueType.Disabled) { return; } this.columnsDropdownData[index].options = []; if (item.queryEditorType === QueryDataItemValueType.SingleDropdown || item.queryEditorType === QueryDataItemValueType.MultiSelectDropdown || item.queryEditorType === QueryDataItemValueType.TimespanDropdown) { // Guarantee if there are already existed preset options for timespan dropdown // Only display the preset ones; if (this.columnsDropdownData[index] && this.columnsDropdownData[index].presetOptions && this.columnsDropdownData[index].presetOptions.length > 0) { return; } loop1: for (let i = 0; i < this.dataTable.items.length; i++) { const row = this.dataTable.items[i]; const field = item.field; // extend to support nested field const nestedStructure = field.split('.'); let target = row; for (let j = 0; j < nestedStructure.length; j++) { const structure = nestedStructure[j]; try { target = target[structure]; } catch (e) { Logging.log({ level: LogLevel.Error, message: 'Error parsing the nested: ' + e, source: 'QueryEditorComponent.getUniqueTableValue' }); break loop1; } } // Supports with one data model property being used across different datatable columns if (target && !this.columnsDropdownData[index].options.includes(target)) { this.columnsDropdownData[index].options.push(target); } } } }); } } set columnList(columnList) { if (columnList) { // If column applied QueryDataItemValueType.Disabled will not be able to filter with this.internalColumnList = this.columnListConstructor(columnList.toArray()); if (this.internalColumnList) { let shouldEnableGetDataTableUniqueValues = false; for (let i = 0; i < this.internalColumnList.length; i++) { const type = this.internalColumnList[i].queryEditorType; if (type) { if (type === QueryDataItemValueType.SingleDropdown || type === QueryDataItemValueType.MultiSelectDropdown || type === QueryDataItemValueType.TimespanDropdown) { const target = { field: this.internalColumnList[i].value, isDropdown: true, queryEditorType: type }; if (type === QueryDataItemValueType.TimespanDropdown) { // TODO: for now only allow user to use preset and custom datepickers // Later on can upgrade to support using unique timestamps from the datatable columns target.presetOptions = this.internalColumnList[i].presetOptions; } this.columnsDropdownData.push(target); if (!shouldEnableGetDataTableUniqueValues) { shouldEnableGetDataTableUniqueValues = true; } } else if (type === QueryDataItemValueType.TextInput) { this.columnsDropdownData.push({ field: this.internalColumnList[i].value, isDropdown: false, queryEditorType: type }); } else if (type === QueryDataItemValueType.Disabled) { shouldEnableGetDataTableUniqueValues = false; } } } if (shouldEnableGetDataTableUniqueValues) { this.enableGetDataTableUniqueValues = true; } } this.getUniqueTableValue(); this.resetQueryEditor(); this.applyTmpTextValueToValue(); this.queryEditor = this.validateQueryEditor(); this.applyQueryEditorToDatatable(); this.isLoading = false; } } onQueryEditorChange(index, isColumnUpdate, needsUpdateIsValid, isOperatorUpdate) { if (this.dataTable) { if (this.queryEditor && this.queryEditor.contents && this.queryEditor.contents.length && this.queryEditor.contents[index] && !MsftSme.isNullOrWhiteSpace(this.queryEditor.contents[index].column.value)) { const columnsDropdownDataItem = this.columnsDropdownData.find((i) => { return i.field === this.selectedItem.column.value; }); if (needsUpdateIsValid) { if (this.selectedItem.value.isValueUnset) { this.selectedItem.value.isValueUnset = false; } if (this.applyMode === ApplyMode.Active) { this.setUnsetProperty(); this.setEditingItemValidProperty(); this.applyTmpTextValueToValue(true); const queryEditor = this.validateQueryEditor(); this.applyQueryEditorToDatatable(queryEditor); } return; } this.updateQueryEditorLabel(this.selectedItem); if (columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.SingleDropdown || columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.MultiSelectDropdown) { this.selectedItem.value.type = columnsDropdownDataItem.queryEditorType ? columnsDropdownDataItem.queryEditorType : QueryDataItemValueType.SingleDropdown; if (!this.enableGetDataTableUniqueValues) { this.enableGetDataTableUniqueValues = true; } if (isColumnUpdate) { this.isColumnDropdownBusy = true; this.columnDropdownField = columnsDropdownDataItem.field; this.selectedItem.operand = QueryDataOperand.Eq; if (columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.SingleDropdown) { this.setSelectedItemValue(this.selectedItem, ''); this.selectedItem.value.searchable = true; } else if (columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.MultiSelectDropdown) { this.setSelectedItemValue(this.selectedItem, []); this.selectedItem.value.searchable = true; } else { this.selectedItem.value.searchable = false; } this.updateColumnDropdownData(columnsDropdownDataItem.field); } } else if (columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.TextInput) { this.selectedItem.value.type = QueryDataItemValueType.TextInput; } else if (columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.TimespanDropdown) { this.selectedItem.value.type = QueryDataItemValueType.TimespanDropdown; if (isColumnUpdate) { this.selectedItem.operand = QueryDataOperand.Eq; this.setSelectedItemValue(this.selectedItem, new DateRange()); this.selectedItem.value.searchable = false; this.updateColumnDropdownData(columnsDropdownDataItem.field); this.selectedItem.value.customDisplayLabel = this.strings.MsftSmeShell.Angular.Form.DateTimeRange.Custom.label; } } if (isOperatorUpdate) { if (this.selectedItem.value.type === QueryDataItemValueType.TextInput) { if (this.applyMode === ApplyMode.Active) { this.setUnsetProperty(); this.setEditingItemValidProperty(); this.applyTmpTextValueToValue(true); const queryEditor = this.validateQueryEditor(); this.applyQueryEditorToDatatable(queryEditor); } } else if (columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.SingleDropdown || columnsDropdownDataItem.queryEditorType === QueryDataItemValueType.MultiSelectDropdown) { this.selectedItem.operand = QueryDataOperand.Eq; } } } } // Set disableResetButton value this.setDisableResetButton(); } updateColumnDropdownData(field) { return new Promise((resolve, reject) => { if (this.columnsDropdownData) { const target = this.columnsDropdownData.filter((item) => { return item.field === field; })[0]; if (target) { if (target.presetOptions && target.presetOptions.length) { this.columnDropdownData = target.presetOptions; } else if (target.options && target.options.length) { this.columnDropdownData = target.options; } else { this.columnDropdownData = []; } } else { this.columnDropdownData = []; } } else { this.isColumnDropdownBusy = false; reject(); } this.isColumnDropdownBusy = false; resolve(); }); } mouseupInside() { this.isFocusInsideComponent = true; this.isComponentClicked = true; } mouseupOut() { if (!this.isFocusInsideComponent && this.isComponentClicked) { this.applyW