@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
802 lines • 206 kB
JavaScript
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