@pepperi/ngx-lib
Version:
Pepperi Angular Components and Services
733 lines • 107 kB
JavaScript
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
import { delay } from 'rxjs/operators';
import { LAYOUT_TYPE, FIELD_TYPE } from '@pepperi/ngx-lib';
import * as i0 from "@angular/core";
import * as i1 from "@pepperi/ngx-lib";
const _c0 = ["noVirtualScrollCont"];
const _c1 = ["tableHeader"];
const _c2 = ["selectAllCB"];
function PepperiInternalListComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵelementStart(1, "div", 3);
i0.ɵɵtext(2);
i0.ɵɵelementEnd();
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r0 = i0.ɵɵnextContext();
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(ctx_r0.noDataFoundMsg);
} }
function PepperiInternalListComponent_ng_container_1_div_1_div_4_label_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "label", 16);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const field_r12 = i0.ɵɵnextContext().$implicit;
i0.ɵɵclassMapInterpolate1("header-label body-sm pull-left flip text-align-", field_r12.Layout.XAlignment, "");
i0.ɵɵpropertyInterpolate("id", field_r12.ApiName);
i0.ɵɵpropertyInterpolate("title", field_r12.Title);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate1(" ", field_r12.Title, " ");
} }
function PepperiInternalListComponent_ng_container_1_div_1_div_4_label_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "label", 17);
i0.ɵɵtext(1, "\u00A0");
i0.ɵɵelementEnd();
} if (rf & 2) {
const field_r12 = i0.ɵɵnextContext().$implicit;
i0.ɵɵpropertyInterpolate("id", field_r12.ApiName);
} }
function PepperiInternalListComponent_ng_container_1_div_1_div_4_div_3_Template(rf, ctx) { if (rf & 1) {
const _r20 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "div", 18);
i0.ɵɵlistener("mousedown", function PepperiInternalListComponent_ng_container_1_div_1_div_4_div_3_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r20); const field_r12 = i0.ɵɵnextContext().$implicit; const ctx_r19 = i0.ɵɵnextContext(3); return ctx_r19.onListResizeStart($event, field_r12.ApiName); });
i0.ɵɵelementStart(1, "mat-icon");
i0.ɵɵelement(2, "pep-icon", 19);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} }
const _c3 = function (a0) { return { width: a0 }; };
const _c4 = function (a0, a1, a2) { return { "is-resizing": a0, "is-first": a1, "is-last": a2 }; };
function PepperiInternalListComponent_ng_container_1_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 12);
i0.ɵɵtemplate(1, PepperiInternalListComponent_ng_container_1_div_1_div_4_label_1_Template, 2, 6, "label", 13);
i0.ɵɵtemplate(2, PepperiInternalListComponent_ng_container_1_div_1_div_4_label_2_Template, 2, 1, "label", 14);
i0.ɵɵtemplate(3, PepperiInternalListComponent_ng_container_1_div_1_div_4_div_3_Template, 3, 0, "div", 15);
i0.ɵɵelementEnd();
} if (rf & 2) {
const field_r12 = ctx.$implicit;
const j_r13 = ctx.index;
const ctx_r11 = i0.ɵɵnextContext(3);
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(5, _c3, field_r12.calcTitleColumnWidthString))("ngClass", i0.ɵɵpureFunction3(7, _c4, field_r12.ApiName === ctx_r11.pressedColumn, j_r13 === 0, j_r13 === (ctx_r11.uiControl == null ? null : ctx_r11.uiControl.ControlFields == null ? null : ctx_r11.uiControl.ControlFields.length) - 1));
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", field_r12.Title != "");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", field_r12.Title == "");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r11.supportResizing);
} }
const _c5 = function (a0) { return { "below-header-and-top-bar": a0 }; };
function PepperiInternalListComponent_ng_container_1_div_1_Template(rf, ctx) { if (rf & 1) {
const _r23 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "div", 8, 9);
i0.ɵɵlistener("mouseup", function PepperiInternalListComponent_ng_container_1_div_1_Template_div_mouseup_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(2); return ctx_r22.onListResizeEnd($event); })("mouseenter", function PepperiInternalListComponent_ng_container_1_div_1_Template_div_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r24 = i0.ɵɵnextContext(2); return ctx_r24.onListHeaderMouseEnter($event); })("mouseleave", function PepperiInternalListComponent_ng_container_1_div_1_Template_div_mouseleave_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r25 = i0.ɵɵnextContext(2); return ctx_r25.onListHeaderMouseLeave($event); })("mousemove", function PepperiInternalListComponent_ng_container_1_div_1_Template_div_mousemove_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r26 = i0.ɵɵnextContext(2); return ctx_r26.onListResize($event); });
i0.ɵɵelementStart(2, "fieldset", 10);
i0.ɵɵelementStart(3, "fieldset");
i0.ɵɵtemplate(4, PepperiInternalListComponent_ng_container_1_div_1_div_4_Template, 4, 11, "div", 11);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r6 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c5, ctx_r6.parentScroll == null));
i0.ɵɵadvance(4);
i0.ɵɵproperty("ngForOf", ctx_r6.uiControl == null ? null : ctx_r6.uiControl.ControlFields);
} }
function PepperiInternalListComponent_ng_container_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function PepperiInternalListComponent_ng_container_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
const _c6 = function (a0, a1) { return { "table-body": a0, "cards-body": a1 }; };
function PepperiInternalListComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, PepperiInternalListComponent_ng_container_1_div_1_Template, 5, 4, "div", 4);
i0.ɵɵelementStart(2, "div", 5, 6);
i0.ɵɵtemplate(4, PepperiInternalListComponent_ng_container_1_ng_container_4_Template, 1, 0, "ng-container", 7);
i0.ɵɵelementEnd();
i0.ɵɵtemplate(5, PepperiInternalListComponent_ng_container_1_ng_container_5_Template, 1, 0, "ng-container", 7);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
const _r2 = i0.ɵɵreference(3);
const _r4 = i0.ɵɵreference(5);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.isTable);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c6, ctx_r1.isTable, !ctx_r1.isTable));
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngTemplateOutlet", _r2);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngTemplateOutlet", _r4);
} }
const _c7 = function (a0) { return { highlighted: a0 }; };
const _c8 = function (a0, a1) { return { height: a0, visibility: a1 }; };
const _c9 = function (a0) { return { "background-color": a0 }; };
function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
const _r34 = i0.ɵɵgetCurrentView();
i0.ɵɵelementContainerStart(0);
i0.ɵɵelementStart(1, "div", 21);
i0.ɵɵlistener("mouseenter", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template_div_mouseenter_1_listener($event) { i0.ɵɵrestoreView(_r34); const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit; const ctx_r33 = i0.ɵɵnextContext(2); return ctx_r33.onTableRowMouseEnter($event, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type); })("mouseleave", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template_div_mouseleave_1_listener($event) { i0.ɵɵrestoreView(_r34); const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit; const ctx_r36 = i0.ɵɵnextContext(2); return ctx_r36.onTableRowMouseLeave($event, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type); });
i0.ɵɵelementStart(2, "fieldset", 22);
i0.ɵɵelementStart(3, "pep-form", 23);
i0.ɵɵlistener("notifyValueChanged", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template_pep_form_notifyValueChanged_3_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r38 = i0.ɵɵnextContext(3); return ctx_r38.onValueChanged($event); })("notifyFieldClicked", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template_pep_form_notifyFieldClicked_3_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r39 = i0.ɵɵnextContext(3); return ctx_r39.onCustomizeFieldClick($event); })("notifyMenuItemClicked", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template_pep_form_notifyMenuItemClicked_3_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r40 = i0.ɵɵnextContext(3); return ctx_r40.onCustomizeFieldMenuClicked($event); })("click", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template_pep_form_click_3_listener($event) { i0.ɵɵrestoreView(_r34); const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit; const ctx_r41 = i0.ɵɵnextContext(2); return ctx_r41.itemClicked($event, pepperiObjectInput_r28); });
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit;
const ctx_r31 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c7, (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID) + ctx_r31.SEPARATOR + (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type) === ctx_r31.selectedItemId))("ngStyle", i0.ɵɵpureFunction2(18, _c8, ctx_r31.calculatedObjectHeight, ctx_r31.showItems || pepperiObjectInput_r28 ? "visible" : "hidden"));
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(21, _c9, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.BackgroundColor));
i0.ɵɵadvance(1);
i0.ɵɵproperty("checkForChanges", ctx_r31.checkForChanges)("uiControlHeader", ctx_r31.uiControl)("firstFieldAsLink", ctx_r31.firstFieldAsLink)("pepperiObjectInput", pepperiObjectInput_r28)("canEditObject", !ctx_r31.disabled && (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.IsEditable))("objectId", ctx_r31.objectId)("parentId", ctx_r31.parentId)("searchCode", ctx_r31.searchCode)("lockEvents", ctx_r31.disableSelectionItems)("layoutType", ctx_r31.LAYOUT_TYPE.PepperiTable)("listType", ctx_r31.listType)("isActive", ((pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID) + ctx_r31.SEPARATOR + (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type) === ctx_r31.selectedItemId || (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID) + ctx_r31.SEPARATOR + (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type) === ctx_r31.hoveredItemId) && !ctx_r31.isTouchDevice)("pageType", ctx_r31.pageType);
} }
const _c10 = function (a0, a1) { return { highlighted: a0, cardView: a1 }; };
function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {
const _r45 = i0.ɵɵgetCurrentView();
i0.ɵɵelementContainerStart(0);
i0.ɵɵelementStart(1, "div", 24);
i0.ɵɵlistener("mouseenter", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template_div_mouseenter_1_listener($event) { i0.ɵɵrestoreView(_r45); const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit; const ctx_r44 = i0.ɵɵnextContext(2); return ctx_r44.onCardMouseEnter($event, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type); })("mouseleave", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template_div_mouseleave_1_listener($event) { i0.ɵɵrestoreView(_r45); const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit; const ctx_r47 = i0.ɵɵnextContext(2); return ctx_r47.onCardMouseLeave($event, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID, pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type); });
i0.ɵɵelementStart(2, "pep-form", 25);
i0.ɵɵlistener("notifyValueChanged", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template_pep_form_notifyValueChanged_2_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r49 = i0.ɵɵnextContext(3); return ctx_r49.onValueChanged($event); })("notifyFieldClicked", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template_pep_form_notifyFieldClicked_2_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r50 = i0.ɵɵnextContext(3); return ctx_r50.onCustomizeFieldClick($event); })("notifyMenuItemClicked", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template_pep_form_notifyMenuItemClicked_2_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r51 = i0.ɵɵnextContext(3); return ctx_r51.onCustomizeFieldMenuClicked($event); })("click", function PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template_pep_form_click_2_listener($event) { i0.ɵɵrestoreView(_r45); const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit; const ctx_r52 = i0.ɵɵnextContext(2); return ctx_r52.itemClicked($event, pepperiObjectInput_r28); });
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const pepperiObjectInput_r28 = i0.ɵɵnextContext().$implicit;
const ctx_r32 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(1);
i0.ɵɵclassMap(ctx_r32.itemClass);
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(18, _c10, (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID) + ctx_r32.SEPARATOR + (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type) === ctx_r32.selectedItemId, ctx_r32.isCardView))("ngStyle", i0.ɵɵpureFunction2(21, _c8, ctx_r32.calculatedObjectHeight, ctx_r32.showItems || pepperiObjectInput_r28 ? "visible" : "hidden"));
i0.ɵɵadvance(1);
i0.ɵɵproperty("firstFieldAsLink", ctx_r32.isCardView ? ctx_r32.firstFieldAsLink : false)("checkForChanges", ctx_r32.checkForChanges)("uiControlHeader", ctx_r32.uiControl)("pepperiObjectInput", pepperiObjectInput_r28)("isCardView", ctx_r32.isCardView)("canEditObject", !ctx_r32.disabled && (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.IsEditable))("objectId", ctx_r32.objectId)("parentId", ctx_r32.parentId)("searchCode", ctx_r32.searchCode)("lockEvents", ctx_r32.disableSelectionItems)("layoutType", ctx_r32.getThumbnailsLayout())("listType", ctx_r32.listType)("isActive", ((pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID) + ctx_r32.SEPARATOR + (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type) === ctx_r32.selectedItemId || (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.UID) + ctx_r32.SEPARATOR + (pepperiObjectInput_r28 == null ? null : pepperiObjectInput_r28.Data == null ? null : pepperiObjectInput_r28.Data.Type) === ctx_r32.hoveredItemId) && !ctx_r32.isTouchDevice)("pageType", ctx_r32.pageType);
} }
function PepperiInternalListComponent_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_1_Template, 4, 23, "ng-container", 0);
i0.ɵɵtemplate(2, PepperiInternalListComponent_ng_template_2_ng_container_0_ng_container_2_Template, 3, 24, "ng-container", 0);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r27 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r27.isTable);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", !ctx_r27.isTable);
} }
function PepperiInternalListComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, PepperiInternalListComponent_ng_template_2_ng_container_0_Template, 3, 2, "ng-container", 20);
} if (rf & 2) {
const ctx_r3 = i0.ɵɵnextContext();
i0.ɵɵproperty("ngForOf", ctx_r3.scrollItems)("ngForTrackBy", ctx_r3.trackByFunc);
} }
function PepperiInternalListComponent_ng_template_4_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 29);
i0.ɵɵelementStart(1, "label");
i0.ɵɵtext(2);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const field_r57 = ctx.$implicit;
const j_r58 = ctx.index;
const ctx_r56 = i0.ɵɵnextContext(3);
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(5, _c3, field_r57.calcTitleColumnWidthString));
i0.ɵɵadvance(1);
i0.ɵɵclassMapInterpolate1("total-label body-sm text-align-", field_r57.Layout.XAlignment, "");
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate1(" ", ctx_r56.totalsRow[j_r58], " ");
} }
function PepperiInternalListComponent_ng_template_4_div_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 27);
i0.ɵɵelementStart(1, "fieldset", 10);
i0.ɵɵtemplate(2, PepperiInternalListComponent_ng_template_4_div_0_div_2_Template, 3, 7, "div", 28);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r55 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngForOf", ctx_r55.uiControl == null ? null : ctx_r55.uiControl.ControlFields);
} }
function PepperiInternalListComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, PepperiInternalListComponent_ng_template_4_div_0_Template, 3, 1, "div", 26);
} if (rf & 2) {
const ctx_r5 = i0.ɵɵnextContext();
i0.ɵɵproperty("ngIf", (ctx_r5.totalsRow == null ? null : ctx_r5.totalsRow.length) > 0 && ctx_r5.totalsRow.length <= (ctx_r5.uiControl == null ? null : ctx_r5.uiControl.ControlFields.length));
} }
export var VIEW_TYPE;
(function (VIEW_TYPE) {
VIEW_TYPE[VIEW_TYPE["Card"] = 0] = "Card";
VIEW_TYPE[VIEW_TYPE["Line"] = 1] = "Line";
VIEW_TYPE[VIEW_TYPE["Table"] = 2] = "Table";
})(VIEW_TYPE || (VIEW_TYPE = {}));
export class PepperiInternalListComponent {
constructor(element, layoutService, cd, renderer) {
this.element = element;
this.layoutService = layoutService;
this.cd = cd;
this.renderer = renderer;
this.currentListTypeTranslation = '';
this.noDataFoundMsg = 'Items not found';
this.hideAllSelectionInMulti = false;
this.top = -1;
this.listType = '';
this.objectId = '0';
this.parentId = '0';
this.searchCode = '0';
// @Input() showTopBorder = false;
this.firstFieldAsLink = false;
this.supportResizing = true;
this.parentScroll = null;
this.disabled = false;
this.isPrinting = false;
this.disableSelectionItems = false;
this.layoutType = null;
this.pageType = '';
this.totalsRow = [];
this.isTouchDevice = false;
this.notifyThumbnailClicked = new EventEmitter();
this.notifyFieldClicked = new EventEmitter();
this.notifyMenuItemClicked = new EventEmitter();
this.notifyValueChanged = new EventEmitter();
this.notifySelectAllSingleActionClicked = new EventEmitter();
this.notifySingleActionClicked = new EventEmitter();
this.notifyListLoad = new EventEmitter();
this.LAYOUT_TYPE = LAYOUT_TYPE;
this.uiControl = null;
this.totalRows = -1;
this.isTable = false;
this.hasColumnWidthOfTypePercentage = true;
this.items = null;
this.isCardView = false;
this.itemsCounter = 0;
this.showItems = true;
this.SEPARATOR = ',';
this.nativeWindow = null;
this.selectedItemId = '';
this.hoveredItemId = '';
this.lockEvents = false;
this.containerWidth = 0;
// headerIsInFocus = false;
// For resize
this.pressedColumn = '';
this.startX = 0;
this.startWidth = 0;
this.tableStartWidth = 0;
this.isUserSelected = false;
this.checkForChanges = null;
this.useVirtualScroll = true;
this.layoutService.onResize$
.pipe(delay(0))
.subscribe(size => {
this.screenSize = size;
});
this.nativeWindow = window;
}
ngOnInit() {
this.containerWidth = 0;
}
ngOnChanges(changes) {
if (this.containerWidth <= 0) {
this.setContainerWidth();
}
}
ngOnDestroy() {
if (this.notifyValueChanged) {
this.notifyValueChanged.unsubscribe();
}
if (this.notifyFieldClicked) {
this.notifyFieldClicked.unsubscribe();
}
if (this.notifyMenuItemClicked) {
this.notifyMenuItemClicked.unsubscribe();
}
if (this.notifyThumbnailClicked) {
this.notifyThumbnailClicked.unsubscribe();
}
}
setContainerWidth() {
const selectionCheckBoxWidth = 0;
const rowHeight = 40; // the table row height (2.5rem * 16font-size).
const style = window.getComputedStyle(this.element.nativeElement.parentElement);
// The container-fluid class padding left + right + border
const containerFluidSpacing = parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);
const parentContainer = this.element.nativeElement.parentElement.parentElement > 0 ?
this.element.nativeElement.parentElement.parentElement : this.element.nativeElement.parentElement;
// Calculate if vertical scroll should appear, if so set the scroll width. (this.totalRows + 1) + 1 is for the header row.
const scrollWidth = parentContainer.clientHeight < rowHeight * (this.totalRows + 1) ? 18 : 0; // 18 is the default scroll width.
// The selectionCheckBoxWidth width + containerFluidSpacing + scrollWidth.
const rowHeaderWidthToSub = containerFluidSpacing + selectionCheckBoxWidth + scrollWidth;
this.containerWidth = parentContainer.offsetWidth - rowHeaderWidthToSub;
}
removeTable() {
this.cleanItems();
this.uiControl = null;
}
toggleItems(isVisible) {
this.showItems = isVisible;
this.lockEvents = !isVisible;
}
updateScrollItems(startIndex, endIndex, loadInChunks = true) {
this.scrollItems = this.items.slice(startIndex, endIndex);
}
getUniqItemId(itemId, itemType = '') {
return itemId + this.SEPARATOR + itemType;
}
setLayout() {
const self = this;
if (this.totalRows === 0 ||
!this.uiControl ||
!this.uiControl.ControlFields ||
this.uiControl.ControlFields.length === 0) {
return;
}
this.uiControl.ControlFields.forEach((cf) => {
if (cf.ColumnWidth === 0) {
cf.ColumnWidth = 10;
}
if (self.isTable &&
(cf.FieldType === FIELD_TYPE.Image ||
// cf.FieldType === FIELD_TYPE.Indicators || ???
cf.FieldType === FIELD_TYPE.Signature ||
cf.FieldType === FIELD_TYPE.NumberIntegerQuantitySelector ||
cf.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
cf.FieldType === FIELD_TYPE.NumberIntegerForMatrix ||
cf.FieldType === FIELD_TYPE.NumberRealForMatrix ||
cf.FieldType === FIELD_TYPE.Package ||
cf.ApiName === 'UnitsQuantity' ||
cf.ApiName === 'QuantitySelector')) {
cf.Layout.XAlignment = 3;
}
});
if (!this.cd['destroyed']) {
this.cd.detectChanges();
}
// Set the columns width.
if (this.containerWidth <= 0) {
this.setContainerWidth();
}
this.calcColumnsWidth();
this.checkForChanges = new Date().getTime();
}
calcColumnsWidth() {
const fixedMultiple = 3.78; // for converting em to pixel.
const length = this.uiControl.ControlFields.length;
const selectionCheckBoxWidth = 0;
// Is table AND there is at least one column of width type of percentage.
if (this.isTable) {
if (this.uiControl && this.uiControl.ControlFields) {
this.hasColumnWidthOfTypePercentage = this.uiControl.ControlFields.filter(cf => cf.ColumnWidthType === 1).length === 0;
}
}
// If the columns size is fixed and the total is small then the container change it to percentage.
if (!this.hasColumnWidthOfTypePercentage) {
const totalFixedColsWidth = this.uiControl.ControlFields
.map(cf => cf.ColumnWidth * fixedMultiple)
.reduce((sum, current) => sum + current);
if (window.innerWidth > totalFixedColsWidth) {
this.hasColumnWidthOfTypePercentage = true;
}
}
let totalCalcColsWidth = 0;
// Calc by percentage
if (this.hasColumnWidthOfTypePercentage) {
const totalColsWidth = this.uiControl.ControlFields.map(cf => cf.ColumnWidth).reduce((sum, current) => sum + current);
for (let index = 0; index < length; index++) {
const uiControlField = this.uiControl.ControlFields[index];
const calcColumnWidthPercentage = (100 / totalColsWidth) * uiControlField.ColumnWidth;
uiControlField.calcColumnWidth = Math.floor((this.containerWidth * calcColumnWidthPercentage) / 100);
if (index === length - 1) {
uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
'calc(100% - ' + totalCalcColsWidth + 'px)'; // For 100%
}
else {
uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
uiControlField.calcColumnWidth + 'px';
totalCalcColsWidth += uiControlField.calcColumnWidth;
}
}
this.renderer.setStyle(this.element.nativeElement, 'width', 'inherit');
}
else {
for (let index = 0; index < length; index++) {
const uiControlField = this.uiControl.ControlFields[index];
const currentFixedWidth = Math.floor(uiControlField.ColumnWidth * fixedMultiple);
if (index === length - 1) {
uiControlField.calcTitleColumnWidthString = currentFixedWidth + 'px';
uiControlField.calcColumnWidthString = currentFixedWidth - 4 + 'px'; // -4 for the row padding.
}
else {
uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
currentFixedWidth + 'px';
}
totalCalcColsWidth += currentFixedWidth;
}
this.renderer.setStyle(this.element.nativeElement, 'width', totalCalcColsWidth + selectionCheckBoxWidth + 'px');
}
}
initResizeData() {
this.startX = 0;
this.startWidth = 0;
this.tableStartWidth = 0;
this.pressedColumn = '';
}
onListResizeStart(event, apiName) {
this.pressedColumn = apiName;
this.startX = event.x;
this.startWidth = event.target.closest('.header-column').offsetWidth;
// Set the tableStartWidth to the container offsetWidth
this.tableStartWidth = this.noVirtualScrollCont.nativeElement.offsetWidth;
}
onListResize(event) {
if (this.pressedColumn.length > 0) {
const widthToAdd = this.layoutService.isRtl() ? this.startX - event.x : event.x - this.startX;
// Set the width of the column and the container of the whole columns.
if (this.startWidth + widthToAdd >= 48 || widthToAdd > 0) {
const length = this.uiControl.ControlFields.length;
let totalCalcColsWidth = 0;
for (let index = 0; index < length; index++) {
const uiControlField = this.uiControl.ControlFields[index];
if (index === length - 1) {
// Calc the last column only in percentage type.
if (this.hasColumnWidthOfTypePercentage) {
uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
'calc(100% - ' + totalCalcColsWidth + 'px)'; // For 100%
}
else {
if (uiControlField.ApiName === this.pressedColumn) {
uiControlField.calcColumnWidth = this.startWidth + widthToAdd;
uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidth + 'px';
uiControlField.calcColumnWidthString = uiControlField.calcColumnWidth - 4 + 'px';
}
}
}
else if (uiControlField.ApiName === this.pressedColumn) {
uiControlField.calcColumnWidth = this.startWidth + widthToAdd;
uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
uiControlField.calcColumnWidth + 'px';
}
totalCalcColsWidth += uiControlField.calcColumnWidth;
}
this.renderer.setStyle(this.element.nativeElement, 'width', this.tableStartWidth + widthToAdd + 'px');
}
this.checkForChanges = new Date().getTime();
}
}
onListResizeEnd(event) {
if (this.pressedColumn.length > 0) {
if (event && $(event.srcElement).parents('.resizeBox').length > 0) {
this.initResizeData();
}
else {
const self = this;
setTimeout(() => {
self.initResizeData();
}, 0);
}
}
}
onListHeaderMouseEnter(event) {
// this.headerIsInFocus = true;
}
onListHeaderMouseLeave(event) {
// this.headerIsInFocus = false;
this.onListResizeEnd(event);
this.initResizeData();
}
onListChange(event) {
if (this.isPrinting) {
return;
}
// For other events do nothing.
if (typeof event.start === 'undefined' || typeof event.end === 'undefined') {
return;
}
this.calculatedObjectHeight = event.calculatedChildHeight + 'px';
if (!this.lockEvents) {
this.toggleItems(false);
this.updateScrollItems(event.start, event.end, false);
this.toggleItems(true);
}
}
onListLoad(event) {
this.notifyListLoad.emit(event);
}
getParentContainer() {
return this.parentScroll ? this.parentScroll : window;
}
onValueChanged(valueChanged) {
if (this.disabled) {
return;
}
this.notifyValueChanged.emit(valueChanged);
}
onCustomizeFieldClick(customizeFieldClickedData) {
if (this.disabled) {
return;
}
this.notifyFieldClicked.emit(customizeFieldClickedData);
}
onCustomizeFieldMenuClicked(customizeFieldClickedData) {
if (this.disabled) {
return;
}
this.notifyMenuItemClicked.emit(customizeFieldClickedData);
}
getIsDisabled(pepperiObjectInput) {
if (this.disableSelectionItems) {
return true;
}
else {
const IsNotSelectableForActions = (pepperiObjectInput === null || pepperiObjectInput === void 0 ? void 0 : pepperiObjectInput.Data) && !pepperiObjectInput.Data.IsSelectableForActions;
return IsNotSelectableForActions;
}
}
itemClicked(e, objectSingleData) {
// Set seleted item
const itemId = objectSingleData.Data.UID.toString();
const itemType = objectSingleData.Data.Type.toString();
let isChecked = false;
if (objectSingleData && objectSingleData.Data && objectSingleData.Data.IsSelectableForActions) {
this.selectedItemId = this.getUniqItemId(itemId, itemType);
isChecked = true;
}
if (!this.isTable) {
if (this.disabled) {
return;
}
this.notifyThumbnailClicked.emit(objectSingleData);
}
}
onTableRowMouseEnter(event, itemId, itemType) {
if (this.isTouchDevice) {
return;
}
const uniqItemId = this.getUniqItemId(itemId, itemType);
this.hoveredItemId = uniqItemId;
}
onTableRowMouseLeave(event, itemId, itemType) {
this.hoveredItemId = '';
}
onCardMouseEnter(event, itemId, itemType) {
if (this.isTouchDevice) {
return;
}
const uniqItemId = this.getUniqItemId(itemId, itemType);
this.hoveredItemId = uniqItemId;
}
onCardMouseLeave(event, itemId, itemType) {
this.hoveredItemId = '';
}
getThumbnailsLayout() {
return this.layoutType == null ? LAYOUT_TYPE.PepperiCard : this.layoutType;
}
// call this function after resize + animation end
winResize(e) {
this.containerWidth = 0;
this.setLayout();
}
trackByFunc(index, item) {
return item && item.Data && item.Data.UID ? item.Data.UID : index;
}
cleanItems() {
this.itemsCounter = 0;
this.items = this.totalRows > 0 ? Array(this.totalRows) : [];
this.scrollItems = [];
this.calculatedObjectHeight = '';
}
getUIControl() {
return this.uiControl;
}
initListData(uiControl, totalRows, items, viewType = VIEW_TYPE.Table, itemClass = '') {
this.isCardView = viewType === VIEW_TYPE.Card;
this.uiControl = uiControl;
this.itemClass = itemClass;
this.selectedItemId = '';
this.isTable = viewType === VIEW_TYPE.Table;
this.totalRows = totalRows;
// fix bug for the scrollTo that doesn't work on edge div , not window
const scrollingElement = this.getParentContainer();
scrollingElement.scrollTo(0, 0);
this.cleanItems();
this.updateListItems(items, null);
this.onListLoad(null);
this.setLayout();
}
updateListItems(items, event) {
this.scrollItems = this.items = items;
this.itemsCounter = items.length;
}
updateListItem(data) {
let index = 0;
// Update items list
index = this.items.findIndex(i => i && i.Data && i.Data.UID === data.UID);
if (index >= 0 && index < this.items.length) {
this.items[index].Data = data;
}
// Update scrollItems list
index = this.scrollItems.findIndex(i => i && i.Data && i.Data.UID === data.UID);
if (index >= 0 && index < this.scrollItems.length) {
this.scrollItems[index].Data = data;
this.checkForChanges = new Date().getTime();
}
}
getIsItemEditable(uid) {
const item = this.items.filter(x => x.Data.UID.toString() === uid);
if (item.length > 0) {
return item[0].Data.IsEditable;
}
else {
return false;
}
}
getItemDataByID(uid) {
var _a;
return (_a = this.items.find(item => item.Data.UID.toString() === uid)) === null || _a === void 0 ? void 0 : _a.Data;
}
}
PepperiInternalListComponent.ɵfac = function PepperiInternalListComponent_Factory(t) { return new (t || PepperiInternalListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.LayoutService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2)); };
PepperiInternalListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PepperiInternalListComponent, selectors: [["pep-internal-list"]], viewQuery: function PepperiInternalListComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, true);
i0.ɵɵviewQuery(_c1, true);
i0.ɵɵviewQuery(_c2, true);
} if (rf & 2) {
var _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.noVirtualScrollCont = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tableHeader = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectAllCB = _t.first);
} }, hostBindings: function PepperiInternalListComponent_HostBindings(rf, ctx) { if (rf & 1) {
i0.ɵɵlistener("resize", function PepperiInternalListComponent_resize_HostBindingHandler($event) { return ctx.winResize($event); }, false, i0.ɵɵresolveWindow);
} }, inputs: { currentListTypeTranslation: "currentListTypeTranslation", noDataFoundMsg: "noDataFoundMsg", hideAllSelectionInMulti: "hideAllSelectionInMulti", top: "top", listType: "listType", objectId: "objectId", parentId: "parentId", searchCode: "searchCode", firstFieldAsLink: "firstFieldAsLink", supportResizing: "supportResizing", parentScroll: "parentScroll", disabled: "disabled", isPrinting: "isPrinting", disableSelectionItems: "disableSelectionItems", layoutType: "layoutType", pageType: "pageType", totalsRow: "totalsRow", isTouchDevice: "isTouchDevice" }, outputs: { notifyThumbnailClicked: "notifyThumbnailClicked", notifyFieldClicked: "notifyFieldClicked", notifyMenuItemClicked: "notifyMenuItemClicked", notifyValueChanged: "notifyValueChanged", notifySelectAllSingleActionClicked: "notifySelectAllSingleActionClicked", notifySingleActionClicked: "notifySingleActionClicked", notifyListLoad: "notifyListLoad" }, features: [i0.ɵɵNgOnChangesFeature], decls: 6, vars: 2, consts: [[4, "ngIf"], ["listData", ""], ["listTotals", ""], [1, "no-data"], ["class", "table-header", 3, "ngClass", "mouseup", "mouseenter", "mouseleave", "mousemove", 4, "ngIf"], [3, "ngClass"], ["noVirtualScrollCont", ""], [4, "ngTemplateOutlet"], [1, "table-header", 3, "ngClass", "mouseup", "mouseenter", "mouseleave", "mousemove"], ["tableHeader", ""], [1, "table-header-fieldset"], ["class", "header-column pull-left flip", 3, "ngStyle", "ngClass", 4, "ngFor", "ngForOf"], [1, "header-column", "pull-left", "flip", 3, "ngStyle", "ngClass"], [3, "id", "class", "title", 4, "ngIf"], ["class", "header-label body-sm pull-left flip", 3, "id", 4, "ngIf"], ["class", "resizeBox pull-right flip", 3, "mousedown", 4, "ngIf"], [3, "id", "title"], [1, "header-label", "body-sm", "pull-left", "flip", 3, "id"], [1, "resizeBox", "pull-right", "flip", 3, "mousedown"], ["name", "arrow-up", 1, "asc"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "table-row", 3, "ngClass", "ngStyle", "mouseenter", "mouseleave"], [1, "table-row-fieldset", 3, "ngStyle"], [3, "checkForChanges", "uiControlHeader", "firstFieldAsLink", "pepperiObjectInput", "canEditObject", "objectId", "parentId", "searchCode", "lockEvents", "layoutType", "listType", "isActive", "pageType", "notifyValueChanged", "notifyFieldClicked", "notifyMenuItemClicked", "click"], [1, "pull-left", "flip", 3, "ngClass", "ngStyle", "mouseenter", "mouseleave"], [3, "firstFieldAsLink", "checkForChanges", "uiControlHeader", "pepperiObjectInput", "isCardView", "canEditObject", "objectId", "parentId", "searchCode", "lockEvents", "layoutType", "listType", "isActive", "pageType", "notifyValueChanged", "notifyFieldClicked", "notifyMenuItemClicked", "click"], ["class", "table-total", 4, "ngIf"], [1, "table-total"], ["class", "total-column pull-left flip", 3, "ngStyle", 4, "ngFor", "ngForOf"], [1, "total-column", "pull-left", "flip", 3, "ngStyle"]], template: function PepperiInternalListComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, PepperiInternalListComponent_ng_container_0_Template, 3, 1, "ng-container", 0);
i0.ɵɵtemplate(1, PepperiInternalListComponent_ng_container_1_Template, 6, 7, "ng-container", 0);
i0.ɵɵtemplate(2, PepperiInternalListComponent_ng_template_2_Template, 1, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
i0.ɵɵtemplate(4, PepperiInternalListComponent_ng_template_4_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
} if (rf & 2) {
i0.ɵɵproperty("ngIf", ctx.totalRows == 0);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.totalRows > 0);
} }, styles: ["[_nghost-%COMP%]{height:inherit}.no-data[_ngcontent-%COMP%]{font-size:1.5rem;margin-top:100px;text-align:center}.table-header[_ngcontent-%COMP%]{top:0}.table-header.below-header-and-top-bar[_ngcontent-%COMP%]{top:calc(var(--pep-header-height, 4rem) + var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem))}"] });
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(PepperiInternalListComponent, [{
type: Component,
args: [{
selector: 'pep-internal-list',
templateUrl: './internal-list.component.html',
styleUrls: ['./internal-list.component.scss'],
host: {
'(window:resize)': 'winResize($event)'
}
}]
}], function () { return [{ type: i0.ElementRef }, { type: i1.LayoutService }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, { currentListTypeTranslation: [{
type: Input
}], noDataFoundMsg: [{
type: Input
}], hideAllSelectionInMulti: [{
type: Input
}], top: [{
type: Input
}], listType: [{
type: Input
}], objectId: [{
type: Input
}], parentId: [{
type: Input
}], searchCode: [{
type: Input
}], firstFieldAsLink: [{
type: Input
}], supportResizing: [{
type: Input
}], parentScroll: [{
type: Input
}], disabled: [{
type: Input
}], isPrinting: [{
type: Input
}], disableSelectionItems: [{
type: Input
}], layoutType: [{
type: Input
}], pageType: [{
type: Input
}], totalsRow: [{
type: Input
}], isTouchDevice: [{
type: Input
}], notifyThumbnailClicked: [{
type: Output
}], notifyFieldClicked: [{
type: Output
}], notifyMenuItemClicked: [{
type: Output
}], notifyValueChanged: [{
type: Output
}], notifySelectAllSingleActionClicked: [{
type: Output
}], notifySingleActionClicked: [{
type: Output
}], notifyListLoad: [{
type: Output
}], noVirtualScrollCont: [{
type: ViewChild,
args: ['noVirtualScrollCont']
}], tableHeader: [{
type: ViewChild,
args: ['tableHeader']
}], selectAllCB: [{
type: ViewChild,
args: ['selectAllCB']
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFxQixTQUFTLEVBRXZFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQ0gsV0FBVyxFQUNYLFVBQVUsRUFDYixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0lDUmpDLDZCQUNJO0lBQUEsOEJBQXFCO0lBQUEsWUFBb0I7SUFBQSxpQkFBTTtJQUNuRCwwQkFBZTs7O0lBRFUsZUFBb0I7SUFBcEIsMkNBQW9COzs7SUFlekIsaUNBR0k7SUFBQSxZQUNKO0lBQUEsaUJBQVE7OztJQUhKLDZHQUFvRjtJQUR2RCxpREFBd0I7SUFFckQsa0RBQXlCO0lBQ3pCLGVBQ0o7SUFESSxnREFDSjs7O0lBQ0EsaUNBQ2dEO0lBQUEsc0JBQU07SUFBQSxpQkFBUTs7O0lBRDdCLGlEQUF3Qjs7OztJQUd6RCwrQkFFSTtJQURBLDBUQUFzRDtJQUN0RCxnQ0FDSTtJQUFBLCtCQUFpRDtJQUNyRCxpQkFBVztJQUNmLGlCQUFNOzs7OztJQW5CViwrQkFNSTtJQUFBLDZHQUdJO0lBRUosNkdBQ2dEO0lBRWhELHlHQUVJO0lBSVIsaUJBQU07Ozs7O0lBbkJGLDBGQUF1RCw2T0FBQTtJQUtoRCxlQUF5QjtJQUF6Qiw0Q0FBeUI7SUFLekIsZUFBeUI7SUFBekIsNENBQXlCO0lBRzNCLGVBQXVCO0lBQXZCLDhDQUF1Qjs7Ozs7SUFwQjVDLGlDQUlJO0lBSGtF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