UNPKG

@pepperi/ngx-lib

Version:

Pepperi Angular Components and Services

733 lines 107 kB
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFxQixTQUFTLEVBRXZFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQ0gsV0FBVyxFQUNYLFVBQVUsRUFDYixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0lDUmpDLDZCQUNJO0lBQUEsOEJBQXFCO0lBQUEsWUFBb0I7SUFBQSxpQkFBTTtJQUNuRCwwQkFBZTs7O0lBRFUsZUFBb0I7SUFBcEIsMkNBQW9COzs7SUFlekIsaUNBR0k7SUFBQSxZQUNKO0lBQUEsaUJBQVE7OztJQUhKLDZHQUFvRjtJQUR2RCxpREFBd0I7SUFFckQsa0RBQXlCO0lBQ3pCLGVBQ0o7SUFESSxnREFDSjs7O0lBQ0EsaUNBQ2dEO0lBQUEsc0JBQU07SUFBQSxpQkFBUTs7O0lBRDdCLGlEQUF3Qjs7OztJQUd6RCwrQkFFSTtJQURBLDBUQUFzRDtJQUN0RCxnQ0FDSTtJQUFBLCtCQUFpRDtJQUNyRCxpQkFBVztJQUNmLGlCQUFNOzs7OztJQW5CViwrQkFNSTtJQUFBLDZHQUdJO0lBRUosNkdBQ2dEO0lBRWhELHlHQUVJO0lBSVIsaUJBQU07Ozs7O0lBbkJGLDBGQUF1RCw2T0FBQTtJQUtoRCxlQUF5QjtJQUF6Qiw0Q0FBeUI7SUFLekIsZUFBeUI7SUFBekIsNENBQXlCO0lBRzNCLGVBQXVCO0lBQXZCLDhDQUF1Qjs7Ozs7SUFwQjVDLGlDQUlJO0lBSGtFLHFPQUFtQyxxT0FBQSxxT0FBQSx5TkFBQTtJQUdyRyxvQ0FDSTtJQUFBLGdDQUNJO0lBQUEsb0dBTUk7SUFlUixpQkFBVztJQUNmLGlCQUFXO0lBQ2YsaUJBQU07OztJQTVCRixpRkFBaUU7SUFLcEQsZUFBNkQ7SUFBN0QsMEZBQTZEOzs7SUEwQjFFLHdCQUEwRDs7O0lBRTlELHdCQUE0RDs7OztJQW5DaEUsNkJBQ0k7SUFBQSw0RkFJSTtJQTJCSixpQ0FDSTtJQUFBLDhHQUEyQztJQUMvQyxpQkFBTTtJQUNOLDhHQUE2QztJQUNqRCwwQkFBZTs7Ozs7SUFuQ04sZUFBZTtJQUFmLHFDQUFlO0lBK0JNLGVBQTZEO0lBQTdELHFGQUE2RDtJQUNyRSxlQUE0QjtJQUE1QixzQ0FBNEI7SUFFaEMsZUFBOEI7SUFBOUIsc0NBQThCOzs7Ozs7O0lBS3hDLDZCQUNJO0lBQUEsK0JBT0k7SUFOQSxpakJBQTBHLG9pQkFBQTtJQU0xRyxvQ0FFSTtJQUFBLG9DQVdXO0lBSkQsc1JBQTZDLGdSQUFBLDRSQUFBLGlVQUFBO0lBSXZELGlCQUFXO0lBQ2YsaUJBQVc7SUFDZixpQkFBTTtJQUNWLDBCQUFlOzs7O0lBcEJQLGVBRU07SUFGTixzVkFFTSw0SUFBQTtJQUdGLGVBQTZFO0lBQTdFLHVMQUE2RTtJQUNuRSxlQUFtQztJQUFuQyx5REFBbUMsc0NBQUEsOENBQUEsOENBQUEsbUhBQUEsOEJBQUEsOEJBQUEsa0NBQUEsNkNBQUEsZ0RBQUEsOEJBQUEsMm1CQUFBLDhCQUFBOzs7OztJQWdCekQsNkJBQ0k7SUFBQSwrQkFRSTtJQVBBLDZpQkFBc0csZ2lCQUFBO0lBT3RHLG9DQVdXO0lBSkQsc1JBQTZDLGdSQUFBLDRSQUFBLGlVQUFBO0lBSXZELGlCQUFXO0lBQ2YsaUJBQU07SUFDViwwQkFBZTs7OztJQXJCTixlQUFtQjtJQUFuQixnQ0FBbUI7SUFHcEIsMldBR00sNElBQUE7SUFFSSxlQUEwRDtJQUExRCx3RkFBMEQsNENBQUEsc0NBQUEsOENBQUEsa0NBQUEsbUhBQUEsOEJBQUEsOEJBQUEsa0NBQUEsNkNBQUEsNkNBQUEsOEJBQUEsMm1CQUFBLDhCQUFBOzs7SUFwQ2hGLDZCQUNJO0lBQUEsNkhBQ0k7SUF5QkosNkhBQ0k7SUFzQlIsMEJBQWU7OztJQWpERyxlQUFlO0lBQWYsc0NBQWU7SUEwQmYsZUFBZ0I7SUFBaEIsdUNBQWdCOzs7SUEzQmxDLDhHQUNJOzs7SUFEVSw0Q0FBb0csb0NBQUE7OztJQXdEMUcsK0JBRUk7SUFBQSw2QkFDSTtJQUFBLFlBQ0o7SUFBQSxpQkFBUTtJQUNaLGlCQUFNOzs7OztJQUpGLDBGQUF1RDtJQUNoRCxlQUFvRTtJQUFwRSw2RkFBb0U7SUFDdkUsZUFDSjtJQURJLHlEQUNKOzs7SUFOWiwrQkFDSTtJQUFBLG9DQUNJO0lBQUEsa0dBRUk7SUFJUixpQkFBVztJQUNmLGlCQUFNOzs7SUFQTyxlQUE2RDtJQUE3RCw0RkFBNkQ7OztJQUYxRSw0RkFDSTs7O0lBREMsOExBQW9GOztBRHRGN0YsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNqQix5Q0FBSSxDQUFBO0lBQ0oseUNBQUksQ0FBQTtJQUNKLDJDQUFLLENBQUE7QUFDVCxDQUFDLEVBSlcsU0FBUyxLQUFULFNBQVMsUUFJcEI7QUFVRCxNQUFNLE9BQU8sNEJBQTRCO0lBeUVyQyxZQUNZLE9BQW1CLEVBQ25CLGFBQTRCLEVBQzVCLEVBQXFCLEVBQ3JCLFFBQW1CO1FBSG5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTVFdEIsK0JBQTBCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsaUJBQWlCLENBQUM7UUFDbkMsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRWhDLFFBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNULGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNmLGVBQVUsR0FBRyxHQUFHLENBQUM7UUFDMUIsa0NBQWtDO1FBQ3pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixpQkFBWSxHQUFxQixJQUFJLENBQUM7UUFDdEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixlQUFVLEdBQWdCLElBQUksQ0FBQztRQUMvQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXJCLDJCQUFzQixHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM5Rix1QkFBa0IsR0FBc0IsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFDcEYsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQ3ZGLHVCQUFrQixHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUMxRyx1Q0FBa0MsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRiw4QkFBeUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2RSxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBTXRFLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBRW5CLGNBQVMsR0FBYyxJQUFJLENBQUM7UUFDNUIsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXRCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUixtQ0FBOEIsR0FBRyxJQUFJLENBQUM7UUFDdkMsVUFBSyxHQUE0QixJQUFJLENBQUM7UUFDN0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNYLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHVixjQUFTLEdBQUcsR0FBRyxDQUFDO1FBRXZCLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBRXpCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRVgsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUkzQiwyQkFBMkI7UUFFM0IsYUFBYTtRQUNiLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2Ysb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsb0JBQWUsR0FBUSxJQUFJLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBU3BCLElBQUksQ0FBQyxhQUFhLENB