@osovitny/anatoly 3.17.146 → 3.17.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,65 +22,80 @@ import * as i1 from "@angular/common";
22
22
  import * as i2 from "@angular/forms";
23
23
  import * as i3 from "@fortawesome/angular-fontawesome";
24
24
  import * as i4 from "@progress/kendo-angular-dropdowns";
25
- function ControlPanelComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
26
- const _r4 = i0.ɵɵgetCurrentView();
27
- i0.ɵɵelementStart(0, "div", 10)(1, "h2");
25
+ const _c0 = a0 => ({ "active": a0 });
26
+ function ControlPanelComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
27
+ const _r5 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "div", 7)(1, "a", 8);
29
+ i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onFilterToggle()); });
30
+ i0.ɵɵnamespaceSVG();
31
+ i0.ɵɵelementStart(2, "svg", 9);
32
+ i0.ɵɵelement(3, "path", 10);
33
+ i0.ɵɵelementEnd()()();
34
+ } if (rf & 2) {
35
+ const ctx_r0 = i0.ɵɵnextContext();
36
+ i0.ɵɵadvance();
37
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c0, ctx_r0.filterVisible));
38
+ } }
39
+ function ControlPanelComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
40
+ const _r7 = i0.ɵɵgetCurrentView();
41
+ i0.ɵɵelementStart(0, "div", 11)(1, "h2");
28
42
  i0.ɵɵtext(2, "Sort By:");
29
43
  i0.ɵɵelementEnd();
30
- i0.ɵɵelementStart(3, "kendo-dropdownlist", 11);
31
- i0.ɵɵlistener("ngModelChange", function ControlPanelComponent_Conditional_7_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.selectedSortBy = $event); })("valueChange", function ControlPanelComponent_Conditional_7_Template_kendo_dropdownlist_valueChange_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onSortByChange()); });
44
+ i0.ɵɵelementStart(3, "kendo-dropdownlist", 12);
45
+ i0.ɵɵlistener("ngModelChange", function ControlPanelComponent_Conditional_6_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.selectedSortBy = $event); })("valueChange", function ControlPanelComponent_Conditional_6_Template_kendo_dropdownlist_valueChange_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.onSortByChange()); });
32
46
  i0.ɵɵelementEnd()();
33
47
  } if (rf & 2) {
34
- const ctx_r0 = i0.ɵɵnextContext();
48
+ const ctx_r1 = i0.ɵɵnextContext();
35
49
  i0.ɵɵadvance(3);
36
- i0.ɵɵproperty("data", ctx_r0.sortByItems)("valuePrimitive", true)("ngModel", ctx_r0.selectedSortBy);
50
+ i0.ɵɵproperty("data", ctx_r1.sortByItems)("valuePrimitive", true)("ngModel", ctx_r1.selectedSortBy);
37
51
  } }
38
- const _c0 = a0 => ({ "active": a0 });
39
- function ControlPanelComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
40
- const _r7 = i0.ɵɵgetCurrentView();
41
- i0.ɵɵelementStart(0, "div", 12)(1, "a", 3);
42
- i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_8_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.onViewSwitch("grid")); });
52
+ function ControlPanelComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
53
+ const _r10 = i0.ɵɵgetCurrentView();
54
+ i0.ɵɵelementStart(0, "div", 13)(1, "a", 8);
55
+ i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_7_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onViewSwitch("grid")); });
43
56
  i0.ɵɵnamespaceSVG();
44
- i0.ɵɵelementStart(2, "svg", 13);
45
- i0.ɵɵelement(3, "path", 14)(4, "path", 15)(5, "path", 16)(6, "path", 17);
57
+ i0.ɵɵelementStart(2, "svg", 14);
58
+ i0.ɵɵelement(3, "path", 15)(4, "path", 16)(5, "path", 17)(6, "path", 18);
46
59
  i0.ɵɵelementEnd()();
47
60
  i0.ɵɵnamespaceHTML();
48
- i0.ɵɵelementStart(7, "a", 3);
49
- i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_8_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.onViewSwitch("list")); });
61
+ i0.ɵɵelementStart(7, "a", 8);
62
+ i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_7_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r10); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.onViewSwitch("list")); });
50
63
  i0.ɵɵnamespaceSVG();
51
- i0.ɵɵelementStart(8, "svg", 18);
52
- i0.ɵɵelement(9, "path", 19);
64
+ i0.ɵɵelementStart(8, "svg", 19);
65
+ i0.ɵɵelement(9, "path", 20);
53
66
  i0.ɵɵelementEnd()();
54
67
  i0.ɵɵnamespaceHTML();
55
- i0.ɵɵelementStart(10, "a", 3);
56
- i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_8_Template_a_click_10_listener() { i0.ɵɵrestoreView(_r7); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onViewSwitch("table")); });
68
+ i0.ɵɵelementStart(10, "a", 8);
69
+ i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_7_Template_a_click_10_listener() { i0.ɵɵrestoreView(_r10); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onViewSwitch("table")); });
57
70
  i0.ɵɵnamespaceSVG();
58
- i0.ɵɵelementStart(11, "svg", 20);
59
- i0.ɵɵelement(12, "path", 21);
71
+ i0.ɵɵelementStart(11, "svg", 21);
72
+ i0.ɵɵelement(12, "path", 22);
60
73
  i0.ɵɵelementEnd()()();
61
74
  } if (rf & 2) {
62
- const ctx_r1 = i0.ɵɵnextContext();
75
+ const ctx_r2 = i0.ɵɵnextContext();
63
76
  i0.ɵɵadvance();
64
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r1.viewType == "grid"));
77
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r2.viewType == "grid"));
65
78
  i0.ɵɵadvance(6);
66
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0, ctx_r1.viewType == "list"));
79
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0, ctx_r2.viewType == "list"));
67
80
  i0.ɵɵadvance(3);
68
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0, ctx_r1.viewType == "table"));
81
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0, ctx_r2.viewType == "table"));
69
82
  } }
70
- function ControlPanelComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
71
- const _r11 = i0.ɵɵgetCurrentView();
72
- i0.ɵɵelementStart(0, "div", 22)(1, "a", 23);
73
- i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_9_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.onAdd()); });
74
- i0.ɵɵelement(2, "fa-icon", 24);
83
+ function ControlPanelComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
84
+ const _r14 = i0.ɵɵgetCurrentView();
85
+ i0.ɵɵelementStart(0, "div", 23)(1, "a", 24);
86
+ i0.ɵɵlistener("click", function ControlPanelComponent_Conditional_8_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onAdd()); });
87
+ i0.ɵɵelement(2, "fa-icon", 25);
75
88
  i0.ɵɵelementEnd()();
76
89
  } }
90
+ const _c1 = ["*"];
77
91
  export class ControlPanelComponent extends ComponentBase {
78
92
  constructor() {
79
93
  super(...arguments);
80
94
  //Visible
95
+ this.filterButtonVisible = false;
81
96
  this.sortByVisible = false;
82
- this.viewTypeVisible = false;
83
- this.addVisible = false;
97
+ this.viewTypesVisible = false;
98
+ this.addButtonVisible = false;
84
99
  //Outputs
85
100
  this.settingsChange = new EventEmitter();
86
101
  this.add = new EventEmitter();
@@ -97,6 +112,7 @@ export class ControlPanelComponent extends ComponentBase {
97
112
  }
98
113
  else {
99
114
  this.viewType = DataViewType.List;
115
+ this.viewTypeDefault = DataViewType.List;
100
116
  }
101
117
  }
102
118
  setValues() {
@@ -109,17 +125,17 @@ export class ControlPanelComponent extends ComponentBase {
109
125
  }
110
126
  //Public
111
127
  resetSettings() {
112
- this.selectedSortBy = 1;
113
128
  this.filterVisible = false;
129
+ this.selectedSortBy = 1;
114
130
  this.viewType = this.viewTypeDefault;
115
131
  }
116
132
  getSettings() {
117
- let sortBy = this.selectedSortBy;
118
133
  let filterVisible = this.filterVisible;
134
+ let sortBy = this.selectedSortBy;
119
135
  let viewType = this.viewType;
120
136
  return {
121
- sortBy: sortBy,
122
137
  filterVisible: filterVisible,
138
+ sortBy: sortBy,
123
139
  viewType: viewType
124
140
  };
125
141
  }
@@ -139,40 +155,41 @@ export class ControlPanelComponent extends ComponentBase {
139
155
  this.fireAdd();
140
156
  }
141
157
  static { this.ɵfac = /*@__PURE__*/ (() => { let ɵControlPanelComponent_BaseFactory; return function ControlPanelComponent_Factory(t) { return (ɵControlPanelComponent_BaseFactory || (ɵControlPanelComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ControlPanelComponent)))(t || ControlPanelComponent); }; })(); }
142
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ControlPanelComponent, selectors: [["anatoly-data-grid-control-panel"]], inputs: { sortByItems: "sortByItems", viewType: "viewType", sortByVisible: "sortByVisible", viewTypeVisible: "viewTypeVisible", addVisible: "addVisible" }, outputs: { settingsChange: "settingsChange", add: "add" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 6, consts: [[1, "os-control-panel"], [1, "control-wrapper"], [1, "filter"], ["href", "javascript:void(0)", 1, "btn", "btn-icon", "btn-primary", 3, "ngClass", "click"], ["height", "22", "viewBox", "0 0 32 32", "width", "20", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M2 7h.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2H9.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2zm4-3a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm24 11h-.142a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h20.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-4 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2zm4 7H19.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h10.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-14 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2z", "fill", "currentColor"], [1, "tools"], ["class", "sort-by"], ["class", "actions"], ["class", "action-add"], [1, "sort-by"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "ngModel", "ngModelChange", "valueChange"], [1, "actions"], ["fill", "none", "height", "18", "viewBox", "0 0 18 18", "width", "18", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M6 1H2C1.44772 1 1 1.44772 1 2V6C1 6.55228 1.44772 7 2 7H6C6.55228 7 7 6.55228 7 6V2C7 1.44772 6.55228 1 6 1Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["d", "M16 1H12C11.4477 1 11 1.44772 11 2V6C11 6.55228 11.4477 7 12 7H16C16.5523 7 17 6.55228 17 6V2C17 1.44772 16.5523 1 16 1Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["d", "M6 11H2C1.44772 11 1 11.4477 1 12V16C1 16.5523 1.44772 17 2 17H6C6.55228 17 7 16.5523 7 16V12C7 11.4477 6.55228 11 6 11Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["d", "M16 11H12C11.4477 11 11 11.4477 11 12V16C11 16.5523 11.4477 17 12 17H16C16.5523 17 17 16.5523 17 16V12C17 11.4477 16.5523 11 16 11Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["fill", "none", "height", "15", "viewBox", "0 0 19 15", "width", "19", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M1.5 6C0.67 6 0 6.67 0 7.5C0 8.33 0.67 9 1.5 9C2.33 9 3 8.33 3 7.5C3 6.67 2.33 6 1.5 6ZM1.5 0C0.67 0 0 0.67 0 1.5C0 2.33 0.67 3 1.5 3C2.33 3 3 2.33 3 1.5C3 0.67 2.33 0 1.5 0ZM1.5 12C0.67 12 0 12.68 0 13.5C0 14.32 0.68 15 1.5 15C2.32 15 3 14.32 3 13.5C3 12.68 2.33 12 1.5 12ZM5.5 14.5H17.5C18.05 14.5 18.5 14.05 18.5 13.5C18.5 12.95 18.05 12.5 17.5 12.5H5.5C4.95 12.5 4.5 12.95 4.5 13.5C4.5 14.05 4.95 14.5 5.5 14.5ZM5.5 8.5H17.5C18.05 8.5 18.5 8.05 18.5 7.5C18.5 6.95 18.05 6.5 17.5 6.5H5.5C4.95 6.5 4.5 6.95 4.5 7.5C4.5 8.05 4.95 8.5 5.5 8.5ZM4.5 1.5C4.5 2.05 4.95 2.5 5.5 2.5H17.5C18.05 2.5 18.5 2.05 18.5 1.5C18.5 0.95 18.05 0.5 17.5 0.5H5.5C4.95 0.5 4.5 0.95 4.5 1.5Z", "fill", "currentColor"], ["xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 512 512", "height", "20", "width", "20", "fill", "none"], ["d", "M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z", "fill", "currentColor"], [1, "action-add"], ["href", "javascript:void(0)", 1, "btn", "btn-icon", "btn-primary", 3, "click"], ["icon", "plus"]], template: function ControlPanelComponent_Template(rf, ctx) { if (rf & 1) {
143
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "a", 3);
144
- i0.ɵɵlistener("click", function ControlPanelComponent_Template_a_click_3_listener() { return ctx.onFilterToggle(); });
145
- i0.ɵɵnamespaceSVG();
146
- i0.ɵɵelementStart(4, "svg", 4);
147
- i0.ɵɵelement(5, "path", 5);
148
- i0.ɵɵelementEnd()()();
149
- i0.ɵɵnamespaceHTML();
150
- i0.ɵɵelementStart(6, "div", 6);
151
- i0.ɵɵtemplate(7, ControlPanelComponent_Conditional_7_Template, 4, 3, "div", 7)(8, ControlPanelComponent_Conditional_8_Template, 13, 9, "div", 8)(9, ControlPanelComponent_Conditional_9_Template, 3, 0, "div", 9);
158
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ControlPanelComponent, selectors: [["anatoly-data-grid-control-panel"]], inputs: { sortByItems: "sortByItems", viewType: "viewType", filterButtonVisible: "filterButtonVisible", sortByVisible: "sortByVisible", viewTypesVisible: "viewTypesVisible", addButtonVisible: "addButtonVisible" }, outputs: { settingsChange: "settingsChange", add: "add" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 9, vars: 4, consts: [[1, "os-control-panel"], [1, "control-wrapper"], ["class", "filter"], [1, "tools"], ["class", "sort-by"], ["class", "actions"], ["class", "action-add"], [1, "filter"], ["href", "javascript:void(0)", 1, "btn", "btn-icon", "btn-primary", 3, "ngClass", "click"], ["height", "22", "viewBox", "0 0 32 32", "width", "20", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M2 7h.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2H9.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2zm4-3a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm24 11h-.142a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h20.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-4 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2zm4 7H19.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h10.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-14 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2z", "fill", "currentColor"], [1, "sort-by"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "ngModel", "ngModelChange", "valueChange"], [1, "actions"], ["fill", "none", "height", "18", "viewBox", "0 0 18 18", "width", "18", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M6 1H2C1.44772 1 1 1.44772 1 2V6C1 6.55228 1.44772 7 2 7H6C6.55228 7 7 6.55228 7 6V2C7 1.44772 6.55228 1 6 1Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["d", "M16 1H12C11.4477 1 11 1.44772 11 2V6C11 6.55228 11.4477 7 12 7H16C16.5523 7 17 6.55228 17 6V2C17 1.44772 16.5523 1 16 1Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["d", "M6 11H2C1.44772 11 1 11.4477 1 12V16C1 16.5523 1.44772 17 2 17H6C6.55228 17 7 16.5523 7 16V12C7 11.4477 6.55228 11 6 11Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["d", "M16 11H12C11.4477 11 11 11.4477 11 12V16C11 16.5523 11.4477 17 12 17H16C16.5523 17 17 16.5523 17 16V12C17 11.4477 16.5523 11 16 11Z", "stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["fill", "none", "height", "15", "viewBox", "0 0 19 15", "width", "19", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M1.5 6C0.67 6 0 6.67 0 7.5C0 8.33 0.67 9 1.5 9C2.33 9 3 8.33 3 7.5C3 6.67 2.33 6 1.5 6ZM1.5 0C0.67 0 0 0.67 0 1.5C0 2.33 0.67 3 1.5 3C2.33 3 3 2.33 3 1.5C3 0.67 2.33 0 1.5 0ZM1.5 12C0.67 12 0 12.68 0 13.5C0 14.32 0.68 15 1.5 15C2.32 15 3 14.32 3 13.5C3 12.68 2.33 12 1.5 12ZM5.5 14.5H17.5C18.05 14.5 18.5 14.05 18.5 13.5C18.5 12.95 18.05 12.5 17.5 12.5H5.5C4.95 12.5 4.5 12.95 4.5 13.5C4.5 14.05 4.95 14.5 5.5 14.5ZM5.5 8.5H17.5C18.05 8.5 18.5 8.05 18.5 7.5C18.5 6.95 18.05 6.5 17.5 6.5H5.5C4.95 6.5 4.5 6.95 4.5 7.5C4.5 8.05 4.95 8.5 5.5 8.5ZM4.5 1.5C4.5 2.05 4.95 2.5 5.5 2.5H17.5C18.05 2.5 18.5 2.05 18.5 1.5C18.5 0.95 18.05 0.5 17.5 0.5H5.5C4.95 0.5 4.5 0.95 4.5 1.5Z", "fill", "currentColor"], ["xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 512 512", "height", "20", "width", "20", "fill", "none"], ["d", "M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z", "fill", "currentColor"], [1, "action-add"], ["href", "javascript:void(0)", 1, "btn", "btn-icon", "btn-primary", 3, "click"], ["icon", "plus"]], template: function ControlPanelComponent_Template(rf, ctx) { if (rf & 1) {
159
+ i0.ɵɵprojectionDef();
160
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
161
+ i0.ɵɵtemplate(2, ControlPanelComponent_Conditional_2_Template, 4, 3, "div", 2);
162
+ i0.ɵɵelementStart(3, "div");
163
+ i0.ɵɵprojection(4);
164
+ i0.ɵɵelementEnd();
165
+ i0.ɵɵelementStart(5, "div", 3);
166
+ i0.ɵɵtemplate(6, ControlPanelComponent_Conditional_6_Template, 4, 3, "div", 4)(7, ControlPanelComponent_Conditional_7_Template, 13, 9, "div", 5)(8, ControlPanelComponent_Conditional_8_Template, 3, 0, "div", 6);
152
167
  i0.ɵɵelementEnd()()();
153
168
  } if (rf & 2) {
154
- i0.ɵɵadvance(3);
155
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, ctx.filterVisible));
169
+ i0.ɵɵadvance(2);
170
+ i0.ɵɵconditional(2, ctx.filterButtonVisible ? 2 : -1);
156
171
  i0.ɵɵadvance(4);
157
- i0.ɵɵconditional(7, ctx.sortByVisible ? 7 : -1);
172
+ i0.ɵɵconditional(6, ctx.sortByVisible ? 6 : -1);
158
173
  i0.ɵɵadvance();
159
- i0.ɵɵconditional(8, ctx.viewTypeVisible ? 8 : -1);
174
+ i0.ɵɵconditional(7, ctx.viewTypesVisible ? 7 : -1);
160
175
  i0.ɵɵadvance();
161
- i0.ɵɵconditional(9, ctx.addVisible ? 9 : -1);
176
+ i0.ɵɵconditional(8, ctx.addButtonVisible ? 8 : -1);
162
177
  } }, dependencies: [i1.NgClass, i2.NgControlStatus, i2.NgModel, i3.FaIconComponent, i4.DropDownListComponent], encapsulation: 2 }); }
163
178
  }
164
179
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ControlPanelComponent, [{
165
180
  type: Component,
166
- args: [{ selector: 'anatoly-data-grid-control-panel', template: "<div class='os-control-panel'>\r\n <div class='control-wrapper'>\r\n <div class='filter'>\r\n <a (click)='onFilterToggle()'\r\n [ngClass]=\"{'active': filterVisible}\"\r\n class='btn btn-icon btn-primary'\r\n href='javascript:void(0)'>\r\n <svg height='22' viewBox='0 0 32 32' width='20' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M2 7h.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2H9.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2zm4-3a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm24 11h-.142a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h20.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-4 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2zm4 7H19.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h10.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-14 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n </div>\r\n <div class='tools'>\r\n @if (sortByVisible) {\r\n <div class='sort-by'>\r\n <h2>Sort By:</h2>\r\n <kendo-dropdownlist [data]='sortByItems'\r\n valueField='value'\r\n textField='text'\r\n [valuePrimitive]='true'\r\n [(ngModel)]='selectedSortBy'\r\n (valueChange)='onSortByChange()'>\r\n </kendo-dropdownlist>\r\n </div>\r\n }\r\n\r\n @if (viewTypeVisible) {\r\n <div class='actions'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'grid'}\"\r\n (click)=\"onViewSwitch('grid')\">\r\n <svg fill='none' height='18' viewBox='0 0 18 18' width='18' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M6 1H2C1.44772 1 1 1.44772 1 2V6C1 6.55228 1.44772 7 2 7H6C6.55228 7 7 6.55228 7 6V2C7 1.44772 6.55228 1 6 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 1H12C11.4477 1 11 1.44772 11 2V6C11 6.55228 11.4477 7 12 7H16C16.5523 7 17 6.55228 17 6V2C17 1.44772 16.5523 1 16 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M6 11H2C1.44772 11 1 11.4477 1 12V16C1 16.5523 1.44772 17 2 17H6C6.55228 17 7 16.5523 7 16V12C7 11.4477 6.55228 11 6 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 11H12C11.4477 11 11 11.4477 11 12V16C11 16.5523 11.4477 17 12 17H16C16.5523 17 17 16.5523 17 16V12C17 11.4477 16.5523 11 16 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'list'}\"\r\n (click)=\"onViewSwitch('list')\">\r\n <svg fill='none' height='15' viewBox='0 0 19 15' width='19' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M1.5 6C0.67 6 0 6.67 0 7.5C0 8.33 0.67 9 1.5 9C2.33 9 3 8.33 3 7.5C3 6.67 2.33 6 1.5 6ZM1.5 0C0.67 0 0 0.67 0 1.5C0 2.33 0.67 3 1.5 3C2.33 3 3 2.33 3 1.5C3 0.67 2.33 0 1.5 0ZM1.5 12C0.67 12 0 12.68 0 13.5C0 14.32 0.68 15 1.5 15C2.32 15 3 14.32 3 13.5C3 12.68 2.33 12 1.5 12ZM5.5 14.5H17.5C18.05 14.5 18.5 14.05 18.5 13.5C18.5 12.95 18.05 12.5 17.5 12.5H5.5C4.95 12.5 4.5 12.95 4.5 13.5C4.5 14.05 4.95 14.5 5.5 14.5ZM5.5 8.5H17.5C18.05 8.5 18.5 8.05 18.5 7.5C18.5 6.95 18.05 6.5 17.5 6.5H5.5C4.95 6.5 4.5 6.95 4.5 7.5C4.5 8.05 4.95 8.5 5.5 8.5ZM4.5 1.5C4.5 2.05 4.95 2.5 5.5 2.5H17.5C18.05 2.5 18.5 2.05 18.5 1.5C18.5 0.95 18.05 0.5 17.5 0.5H5.5C4.95 0.5 4.5 0.95 4.5 1.5Z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'table'}\"\r\n (click)=\"onViewSwitch('table')\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\" fill='none' >\r\n <path\r\n d=\"M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n </div>\r\n }\r\n\r\n @if (addVisible) {\r\n <div class='action-add'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)' (click)='onAdd()'>\r\n <fa-icon icon='plus'/>\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n" }]
181
+ args: [{ selector: 'anatoly-data-grid-control-panel', template: "<div class='os-control-panel'>\r\n <div class='control-wrapper'>\r\n @if (filterButtonVisible) {\r\n <div class='filter'>\r\n <a [ngClass]=\"{'active': filterVisible}\"\r\n class='btn btn-icon btn-primary'\r\n href='javascript:void(0)' \r\n (click)='onFilterToggle()'>\r\n <svg height='22' viewBox='0 0 32 32' width='20' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M2 7h.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2H9.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2zm4-3a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm24 11h-.142a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h20.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-4 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2zm4 7H19.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h10.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-14 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a> \r\n </div>\r\n }\r\n \r\n <div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class='tools'>\r\n @if (sortByVisible) {\r\n <div class='sort-by'>\r\n <h2>Sort By:</h2>\r\n <kendo-dropdownlist [data]='sortByItems'\r\n valueField='value'\r\n textField='text'\r\n [valuePrimitive]='true'\r\n [(ngModel)]='selectedSortBy'\r\n (valueChange)='onSortByChange()'>\r\n </kendo-dropdownlist>\r\n </div>\r\n }\r\n\r\n @if (viewTypesVisible) {\r\n <div class='actions'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'grid'}\"\r\n (click)=\"onViewSwitch('grid')\">\r\n <svg fill='none' height='18' viewBox='0 0 18 18' width='18' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M6 1H2C1.44772 1 1 1.44772 1 2V6C1 6.55228 1.44772 7 2 7H6C6.55228 7 7 6.55228 7 6V2C7 1.44772 6.55228 1 6 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 1H12C11.4477 1 11 1.44772 11 2V6C11 6.55228 11.4477 7 12 7H16C16.5523 7 17 6.55228 17 6V2C17 1.44772 16.5523 1 16 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M6 11H2C1.44772 11 1 11.4477 1 12V16C1 16.5523 1.44772 17 2 17H6C6.55228 17 7 16.5523 7 16V12C7 11.4477 6.55228 11 6 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 11H12C11.4477 11 11 11.4477 11 12V16C11 16.5523 11.4477 17 12 17H16C16.5523 17 17 16.5523 17 16V12C17 11.4477 16.5523 11 16 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'list'}\"\r\n (click)=\"onViewSwitch('list')\">\r\n <svg fill='none' height='15' viewBox='0 0 19 15' width='19' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M1.5 6C0.67 6 0 6.67 0 7.5C0 8.33 0.67 9 1.5 9C2.33 9 3 8.33 3 7.5C3 6.67 2.33 6 1.5 6ZM1.5 0C0.67 0 0 0.67 0 1.5C0 2.33 0.67 3 1.5 3C2.33 3 3 2.33 3 1.5C3 0.67 2.33 0 1.5 0ZM1.5 12C0.67 12 0 12.68 0 13.5C0 14.32 0.68 15 1.5 15C2.32 15 3 14.32 3 13.5C3 12.68 2.33 12 1.5 12ZM5.5 14.5H17.5C18.05 14.5 18.5 14.05 18.5 13.5C18.5 12.95 18.05 12.5 17.5 12.5H5.5C4.95 12.5 4.5 12.95 4.5 13.5C4.5 14.05 4.95 14.5 5.5 14.5ZM5.5 8.5H17.5C18.05 8.5 18.5 8.05 18.5 7.5C18.5 6.95 18.05 6.5 17.5 6.5H5.5C4.95 6.5 4.5 6.95 4.5 7.5C4.5 8.05 4.95 8.5 5.5 8.5ZM4.5 1.5C4.5 2.05 4.95 2.5 5.5 2.5H17.5C18.05 2.5 18.5 2.05 18.5 1.5C18.5 0.95 18.05 0.5 17.5 0.5H5.5C4.95 0.5 4.5 0.95 4.5 1.5Z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'table'}\"\r\n (click)=\"onViewSwitch('table')\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\" fill='none' >\r\n <path\r\n d=\"M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n </div>\r\n }\r\n\r\n @if (addButtonVisible) {\r\n <div class='action-add'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)' (click)='onAdd()'>\r\n <fa-icon icon='plus'/>\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n" }]
167
182
  }], null, { sortByItems: [{
168
183
  type: Input
169
184
  }], viewType: [{
170
185
  type: Input
186
+ }], filterButtonVisible: [{
187
+ type: Input
171
188
  }], sortByVisible: [{
172
189
  type: Input
173
- }], viewTypeVisible: [{
190
+ }], viewTypesVisible: [{
174
191
  type: Input
175
- }], addVisible: [{
192
+ }], addButtonVisible: [{
176
193
  type: Input
177
194
  }], settingsChange: [{
178
195
  type: Output
@@ -180,4 +197,4 @@ export class ControlPanelComponent extends ComponentBase {
180
197
  type: Output
181
198
  }] }); })();
182
199
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ControlPanelComponent, { className: "ControlPanelComponent", filePath: "lib\\ui\\components\\data-grid\\control-panel.component.ts", lineNumber: 27 }); })();
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9kYXRhLWdyaWQvY29udHJvbC1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9kYXRhLWdyaWQvY29udHJvbC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztFQWFFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsS0FBSztBQUNMLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0lDSnJELCtCQUFxQixTQUFBO0lBQ2Ysd0JBQVE7SUFBQSxpQkFBSztJQUNqQiw4Q0FLcUQ7SUFEakMsOFBBQTRCLHFMQUNiLGVBQUEsdUJBQWdCLENBQUEsSUFESDtJQUVoRCxpQkFBcUIsRUFBQTs7O0lBTkQsZUFBb0I7SUFBcEIseUNBQW9CLHdCQUFBLGtDQUFBOzs7OztJQVcxQywrQkFBcUIsV0FBQTtJQUdoQixxS0FBUyxlQUFBLG9CQUFhLE1BQU0sQ0FBQyxDQUFBLElBQUM7SUFDL0IsbUJBQStGO0lBQS9GLCtCQUErRjtJQUM3RiwyQkFLb0IsZUFBQSxlQUFBLGVBQUE7SUFtQnRCLGlCQUFNLEVBQUE7SUFFUixvQkFFa0M7SUFGbEMsNEJBRWtDO0lBQS9CLHFLQUFTLGVBQUEsb0JBQWEsTUFBTSxDQUFDLENBQUEsSUFBQztJQUMvQixtQkFBK0Y7SUFBL0YsK0JBQStGO0lBQzdGLDJCQUV1QjtJ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QUFnQixJQUFDO1lBSTNCLG1CQUFtRjtZQUFuRiw4QkFBbUY7WUFDakYsMEJBRXVCO1lBQ3pCLGlCQUFNLEVBQUEsRUFBQTtZQUdWLG9CQUFtQjtZQUFuQiw4QkFBbUI7WUFDakIsOEVBV0Msa0VBQUEsaUVBQUE7WUE4REgsaUJBQU0sRUFBQSxFQUFBOztZQXBGRCxlQUFxQztZQUFyQyx1RUFBcUM7WUFXeEMsZUFXQztZQVhELCtDQVdDO1lBRUQsY0FtREM7WUFuREQsaURBbURDO1lBRUQsY0FNQztZQU5ELDRDQU1DOzs7aUZEN0RNLHFCQUFxQjtjQUpqQyxTQUFTOzJCQUNFLGlDQUFpQztnQkFTbEMsV0FBVztrQkFBbkIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFHRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFHSSxjQUFjO2tCQUF2QixNQUFNO1lBQ0csR0FBRztrQkFBWixNQUFNOztrRkFoQkkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHkub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyMyBBcHIgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBEYXRhVmlld1R5cGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2Jhc2UvY29tcG9uZW50cy9jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LWRhdGEtZ3JpZC1jb250cm9sLXBhbmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udHJvbC1wYW5lbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRyb2xQYW5lbENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHNlbGVjdGVkU29ydEJ5O1xyXG4gIGZpbHRlclZpc2libGU7XHJcbiAgdmlld1R5cGVEZWZhdWx0O1xyXG5cclxuICAvL0lucHV0c1xyXG4gIEBJbnB1dCgpIHNvcnRCeUl0ZW1zO1xyXG4gIEBJbnB1dCgpIHZpZXdUeXBlO1xyXG5cclxuICAvL1Zpc2libGVcclxuICBASW5wdXQoKSBzb3J0QnlWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlld1R5cGVWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWRkVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAvL091dHB1dHNcclxuICBAT3V0cHV0KCkgc2V0dGluZ3NDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBhZGQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RGVmYXVsdHMoKTtcclxuICAgIHRoaXMuc2V0VmFsdWVzKCk7XHJcbiAgICB0aGlzLnJlc2V0U2V0dGluZ3MoKTtcclxuICAgIHRoaXMuZmlyZVNldHRpbmdzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERlZmF1bHRzKCkge1xyXG4gICAgaWYgKHRoaXMudmlld1R5cGUpIHtcclxuICAgICAgdGhpcy52aWV3VHlwZURlZmF1bHQgPSB0aGlzLnZpZXdUeXBlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld1R5cGUgPSBEYXRhVmlld1R5cGUuTGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWVzKCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaXJlU2V0dGluZ3NDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldHRpbmdzQ2hhbmdlLmVtaXQodGhpcy5nZXRTZXR0aW5ncygpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlyZUFkZCgpIHtcclxuICAgIHRoaXMuYWRkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8vUHVibGljXHJcbiAgcmVzZXRTZXR0aW5ncygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTb3J0QnkgPSAxO1xyXG4gICAgdGhpcy5maWx0ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpZXdUeXBlID0gdGhpcy52aWV3VHlwZURlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5ncygpIHtcclxuICAgIGxldCBzb3J0QnkgPSB0aGlzLnNlbGVjdGVkU29ydEJ5O1xyXG4gICAgbGV0IGZpbHRlclZpc2libGUgPSB0aGlzLmZpbHRlclZpc2libGU7XHJcbiAgICBsZXQgdmlld1R5cGUgPSB0aGlzLnZpZXdUeXBlO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNvcnRCeTogc29ydEJ5LFxyXG4gICAgICBmaWx0ZXJWaXNpYmxlOiBmaWx0ZXJWaXNpYmxlLFxyXG4gICAgICB2aWV3VHlwZTogdmlld1R5cGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvL0V2ZW50c1xyXG4gIG9uRmlsdGVyVG9nZ2xlKCkge1xyXG4gICAgdGhpcy5maWx0ZXJWaXNpYmxlID0gIXRoaXMuZmlsdGVyVmlzaWJsZTtcclxuICAgIHRoaXMuZmlyZVNldHRpbmdzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvblNvcnRCeUNoYW5nZSgpIHtcclxuICAgIHRoaXMuZmlyZVNldHRpbmdzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvblZpZXdTd2l0Y2godmFsdWUpIHtcclxuICAgIHRoaXMudmlld1R5cGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZmlyZVNldHRpbmdzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvbkFkZCgpIHtcclxuICAgIHRoaXMuZmlyZUFkZCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPSdvcy1jb250cm9sLXBhbmVsJz5cclxuICA8ZGl2IGNsYXNzPSdjb250cm9sLXdyYXBwZXInPlxyXG4gICAgPGRpdiBjbGFzcz0nZmlsdGVyJz5cclxuICAgICAgPGEgKGNsaWNrKT0nb25GaWx0ZXJUb2dnbGUoKSdcclxuICAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBmaWx0ZXJWaXNpYmxlfVwiXHJcbiAgICAgICAgIGNsYXNzPSdidG4gYnRuLWljb24gYnRuLXByaW1hcnknXHJcbiAgICAgICAgIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKSc+XHJcbiAgICAgICAgPHN2ZyBoZWlnaHQ9JzIyJyB2aWV3Qm94PScwIDAgMzIgMzInIHdpZHRoPScyMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9J00yIDdoLjE0MmEzLjk4MSAzLjk4MSAwIDAgMCA3LjcxNiAwSDMwYTEgMSAwIDAgMCAwLTJIOS44NThhMy45ODEgMy45ODEgMCAwIDAtNy43MTYgMEgyYTEgMSAwIDAgMCAwIDJ6bTQtM2EyIDIgMCAxIDEtMiAyIDIgMiAwIDAgMSAyLTJ6bTI0IDExaC0uMTQyYTMuOTgxIDMuOTgxIDAgMCAwLTcuNzE2IDBIMmExIDEgMCAwIDAgMCAyaDIwLjE0MmEzLjk4MSAzLjk4MSAwIDAgMCA3LjcxNiAwSDMwYTEgMSAwIDAgMCAwLTJ6bS00IDNhMiAyIDAgMSAxIDItMiAyIDIgMCAwIDEtMiAyem00IDdIMTkuODU4YTMuOTgxIDMuOTgxIDAgMCAwLTcuNzE2IDBIMmExIDEgMCAwIDAgMCAyaDEwLjE0MmEzLjk4MSAzLjk4MSAwIDAgMCA3LjcxNiAwSDMwYTEgMSAwIDAgMCAwLTJ6bS0xNCAzYTIgMiAwIDEgMSAyLTIgMiAyIDAgMCAxLTIgMnonXHJcbiAgICAgICAgICAgIGZpbGw9J2N1cnJlbnRDb2xvcicvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9J3Rvb2xzJz5cclxuICAgICAgQGlmIChzb3J0QnlWaXNpYmxlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz0nc29ydC1ieSc+XHJcbiAgICAgICAgICA8aDI+U29ydCBCeTo8L2gyPlxyXG4gICAgICAgICAgPGtlbmRvLWRyb3Bkb3dubGlzdCBbZGF0YV09J3NvcnRCeUl0ZW1zJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUZpZWxkPSd2YWx1ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVQcmltaXRpdmVdPSd0cnVlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT0nc2VsZWN0ZWRTb3J0QnknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9J29uU29ydEJ5Q2hhbmdlKCknPlxyXG4gICAgICAgICAgPC9rZW5kby1kcm9wZG93bmxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAodmlld1R5cGVWaXNpYmxlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9ucyc+XHJcbiAgICAgICAgICA8YSBjbGFzcz0nYnRuIGJ0bi1pY29uIGJ0bi1wcmltYXJ5JyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCknXHJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHZpZXdUeXBlID09ICdncmlkJ31cIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cIm9uVmlld1N3aXRjaCgnZ3JpZCcpXCI+XHJcbiAgICAgICAgICAgIDxzdmcgZmlsbD0nbm9uZScgaGVpZ2h0PScxOCcgdmlld0JveD0nMCAwIDE4IDE4JyB3aWR0aD0nMTgnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9J002IDFIMkMxLjQ0NzcyIDEgMSAxLjQ0NzcyIDEgMlY2QzEgNi41NTIyOCAxLjQ0NzcyIDcgMiA3SDZDNi41NTIyOCA3IDcgNi41NTIyOCA3IDZWMkM3IDEuNDQ3NzIgNi41NTIyOCAxIDYgMVonXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9J2N1cnJlbnRDb2xvcidcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSdyb3VuZCdcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj0ncm91bmQnXHJcbiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9JzInLz5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD0nTTE2IDFIMTJDMTEuNDQ3NyAxIDExIDEuNDQ3NzIgMTEgMlY2QzExIDYuNTUyMjggMTEuNDQ3NyA3IDEyIDdIMTZDMTYuNTUyMyA3IDE3IDYuNTUyMjggMTcgNlYyQzE3IDEuNDQ3NzIgMTYuNTUyMyAxIDE2IDFaJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPSdjdXJyZW50Q29sb3InXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0ncm91bmQnXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49J3JvdW5kJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPScyJy8+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9J002IDExSDJDMS40NDc3MiAxMSAxIDExLjQ0NzcgMSAxMlYxNkMxIDE2LjU1MjMgMS40NDc3MiAxNyAyIDE3SDZDNi41NTIyOCAxNyA3IDE2LjU1MjMgNyAxNlYxMkM3IDExLjQ0NzcgNi41NTIyOCAxMSA2IDExWidcclxuICAgICAgICAgICAgICAgIHN0cm9rZT0nY3VycmVudENvbG9yJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCdcclxuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0nMicvPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPSdNMTYgMTFIMTJDMTEuNDQ3NyAxMSAxMSAxMS40NDc3IDExIDEyVjE2QzExIDE2LjU1MjMgMTEuNDQ3NyAxNyAxMiAxN0gxNkMxNi41NTIzIDE3IDE3IDE2LjU1MjMgMTcgMTZWMTJDMTcgMTEuNDQ3NyAxNi41NTIzIDExIDE2IDExWidcclxuICAgICAgICAgICAgICAgIHN0cm9rZT0nY3VycmVudENvbG9yJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCdcclxuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0nMicvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxhIGNsYXNzPSdidG4gYnRuLWljb24gYnRuLXByaW1hcnknIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKSdcclxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogdmlld1R5cGUgPT0gJ2xpc3QnfVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwib25WaWV3U3dpdGNoKCdsaXN0JylcIj5cclxuICAgICAgICAgICAgPHN2ZyBmaWxsPSdub25lJyBoZWlnaHQ9JzE1JyB2aWV3Qm94PScwIDAgMTkgMTUnIHdpZHRoPScxOScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD0nTTEuNSA2QzAuNjcgNiAwIDYuNjcgMCA3LjVDMCA4LjMzIDAuNjcgOSAxLjUgOUMyLjMzIDkgMyA4LjMzIDMgNy41QzMgNi42NyAyLjMzIDYgMS41IDZaTTEuNSAwQzAuNjcgMCAwIDAuNjcgMCAxLjVDMCAyLjMzIDAuNjcgMyAxLjUgM0MyLjMzIDMgMyAyLjMzIDMgMS41QzMgMC42NyAyLjMzIDAgMS41IDBaTTEuNSAxMkMwLjY3IDEyIDAgMTIuNjggMCAxMy41QzAgMTQuMzIgMC42OCAxNSAxLjUgMTVDMi4zMiAxNSAzIDE0LjMyIDMgMTMuNUMzIDEyLjY4IDIuMzMgMTIgMS41IDEyWk01LjUgMTQuNUgxNy41QzE4LjA1IDE0LjUgMTguNSAxNC4wNSAxOC41IDEzLjVDMTguNSAxMi45NSAxOC4wNSAxMi41IDE3LjUgMTIuNUg1LjVDNC45NSAxMi41IDQuNSAxMi45NSA0LjUgMTMuNUM0LjUgMTQuMDUgNC45NSAxNC41IDUuNSAxNC41Wk01LjUgOC41SDE3LjVDMTguMDUgOC41IDE4LjUgOC4wNSAxOC41IDcuNUMxOC41IDYuOTUgMTguMDUgNi41IDE3LjUgNi41SDUuNUM0Ljk1IDYuNSA0LjUgNi45NSA0LjUgNy41QzQuNSA4LjA1IDQuOTUgOC41IDUuNSA4LjVaTTQuNSAxLjVDNC41IDIuMDUgNC45NSAyLjUgNS41IDIuNUgxNy41QzE4LjA1IDIuNSAxOC41IDIuMDUgMTguNSAxLjVDMTguNSAwLjk1IDE4LjA1IDAuNSAxNy41IDAuNUg1LjVDNC45NSAwLjUgNC41IDAuOTUgNC41IDEuNVonXHJcbiAgICAgICAgICAgICAgICBmaWxsPSdjdXJyZW50Q29sb3InLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YSBjbGFzcz0nYnRuIGJ0bi1pY29uIGJ0bi1wcmltYXJ5JyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCknXHJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHZpZXdUeXBlID09ICd0YWJsZSd9XCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJvblZpZXdTd2l0Y2goJ3RhYmxlJylcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgZmlsbD0nbm9uZScgPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTY0IDI1NmwwLTk2IDE2MCAwIDAgOTZMNjQgMjU2em0wIDY0bDE2MCAwIDAgOTZMNjQgNDE2bDAtOTZ6bTIyNCA5NmwwLTk2IDE2MCAwIDAgOTYtMTYwIDB6TTQ0OCAyNTZsLTE2MCAwIDAtOTYgMTYwIDAgMCA5NnpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD0nY3VycmVudENvbG9yJy8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKGFkZFZpc2libGUpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24tYWRkJz5cclxuICAgICAgICAgIDxhIGNsYXNzPSdidG4gYnRuLWljb24gYnRuLXByaW1hcnknIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKScgKGNsaWNrKT0nb25BZGQoKSc+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIGljb249J3BsdXMnLz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9kYXRhLWdyaWQvY29udHJvbC1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9kYXRhLWdyaWQvY29udHJvbC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztFQWFFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsS0FBSztBQUNMLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztJQ2pCdkQsOEJBQW9CLFdBQUE7SUFJZCxxS0FBUyxlQUFBLHVCQUFnQixDQUFBLElBQUM7SUFDNUIsbUJBQW1GO0lBQW5GLDhCQUFtRjtJQUNqRiwyQkFFdUI7SUFDekIsaUJBQU0sRUFBQSxFQUFBOzs7SUFSTCxjQUFxQztJQUFyQywwRUFBcUM7Ozs7SUFtQnhDLCtCQUFxQixTQUFBO0lBQ2Ysd0JBQVE7SUFBQSxpQkFBSztJQUNqQiw4Q0FLcUQ7SUFEakMsOFBBQTRCLHFMQUNiLGVBQUEsdUJBQWdCLENBQUEsSUFESDtJQUVoRCxpQkFBcUIsRUFBQTs7O0lBTkQsZUFBb0I7SUFBcEIseUNBQW9CLHdCQUFBLGtDQUFBOzs7O0lBVzFDLCtCQUFxQixXQUFBO0lBR2hCLHNLQUFTLGVBQUEsb0JBQWEsTUFBTSxDQUFDLENBQUEsSUFBQztJQUMvQixtQkFBK0Y7SUFBL0YsK0JBQStGO0lBQzdGLDJCQUtv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LEtBQUs7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzt3UEFuRlUscUJBQXFCLFNBQXJCLHFCQUFxQjtvRUFBckIscUJBQXFCOztZQzFCbEMsOEJBQThCLGFBQUE7WUFFMUIsOEVBYUM7WUFFRCwyQkFBSztZQUNILGtCQUF5QjtZQUMzQixpQkFBTTtZQUVOLDhCQUFtQjtZQUNqQiw4RUFXQyxrRUFBQSxpRUFBQTtZQThESCxpQkFBTSxFQUFBLEVBQUE7O1lBN0ZOLGVBYUM7WUFiRCxxREFhQztZQU9DLGVBV0M7WUFYRCwrQ0FXQztZQUVELGNBbURDO1lBbkRELGtEQW1EQztZQUVELGNBTUM7WUFORCxrREFNQzs7O2lGRHBFTSxxQkFBcUI7Y0FKakMsU0FBUzsyQkFDRSxpQ0FBaUM7Z0JBU2xDLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBR0csbUJBQW1CO2tCQUEzQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUdJLGNBQWM7a0JBQXZCLE1BQU07WUFDRyxHQUFHO2tCQUFaLE1BQU07O2tGQWpCSSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIzIEFwciAyMDI0XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IERhdGFWaWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZW51bXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vYmFzZS9jb21wb25lbnRzL2NvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FuYXRvbHktZGF0YS1ncmlkLWNvbnRyb2wtcGFuZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250cm9sLXBhbmVsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbFBhbmVsQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZmlsdGVyVmlzaWJsZTtcclxuICBzZWxlY3RlZFNvcnRCeTtcclxuICB2aWV3VHlwZURlZmF1bHQ7XHJcblxyXG4gIC8vSW5wdXRzXHJcbiAgQElucHV0KCkgc29ydEJ5SXRlbXM7XHJcbiAgQElucHV0KCkgdmlld1R5cGU7XHJcblxyXG4gIC8vVmlzaWJsZVxyXG4gIEBJbnB1dCgpIGZpbHRlckJ1dHRvblZpc2libGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzb3J0QnlWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlld1R5cGVzVmlzaWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFkZEJ1dHRvblZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgLy9PdXRwdXRzXHJcbiAgQE91dHB1dCgpIHNldHRpbmdzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWRkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldERlZmF1bHRzKCk7XHJcbiAgICB0aGlzLnNldFZhbHVlcygpO1xyXG4gICAgdGhpcy5yZXNldFNldHRpbmdzKCk7XHJcbiAgICB0aGlzLmZpcmVTZXR0aW5nc0NoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREZWZhdWx0cygpIHtcclxuICAgIGlmICh0aGlzLnZpZXdUeXBlKSB7XHJcbiAgICAgIHRoaXMudmlld1R5cGVEZWZhdWx0ID0gdGhpcy52aWV3VHlwZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXdUeXBlID0gRGF0YVZpZXdUeXBlLkxpc3Q7XHJcbiAgICAgIHRoaXMudmlld1R5cGVEZWZhdWx0ID0gRGF0YVZpZXdUeXBlLkxpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlcygpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlyZVNldHRpbmdzQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZXR0aW5nc0NoYW5nZS5lbWl0KHRoaXMuZ2V0U2V0dGluZ3MoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpcmVBZGQoKSB7XHJcbiAgICB0aGlzLmFkZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvL1B1YmxpY1xyXG4gIHJlc2V0U2V0dGluZ3MoKSB7XHJcbiAgICB0aGlzLmZpbHRlclZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRTb3J0QnkgPSAxOyAgICBcclxuICAgIHRoaXMudmlld1R5cGUgPSB0aGlzLnZpZXdUeXBlRGVmYXVsdDtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmdzKCkge1xyXG4gICAgbGV0IGZpbHRlclZpc2libGUgPSB0aGlzLmZpbHRlclZpc2libGU7XHJcbiAgICBsZXQgc29ydEJ5ID0gdGhpcy5zZWxlY3RlZFNvcnRCeTsgICAgXHJcbiAgICBsZXQgdmlld1R5cGUgPSB0aGlzLnZpZXdUeXBlO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGZpbHRlclZpc2libGU6IGZpbHRlclZpc2libGUsXHJcbiAgICAgIHNvcnRCeTogc29ydEJ5LCAgICAgIFxyXG4gICAgICB2aWV3VHlwZTogdmlld1R5cGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvL0V2ZW50c1xyXG4gIG9uRmlsdGVyVG9nZ2xlKCkge1xyXG4gICAgdGhpcy5maWx0ZXJWaXNpYmxlID0gIXRoaXMuZmlsdGVyVmlzaWJsZTtcclxuICAgIHRoaXMuZmlyZVNldHRpbmdzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvblNvcnRCeUNoYW5nZSgpIHtcclxuICAgIHRoaXMuZmlyZVNldHRpbmdzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvblZpZXdTd2l0Y2godmFsdWUpIHtcclxuICAgIHRoaXMudmlld1R5cGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZmlyZVNldHRpbmdzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvbkFkZCgpIHtcclxuICAgIHRoaXMuZmlyZUFkZCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPSdvcy1jb250cm9sLXBhbmVsJz5cclxuICA8ZGl2IGNsYXNzPSdjb250cm9sLXdyYXBwZXInPlxyXG4gICAgQGlmIChmaWx0ZXJCdXR0b25WaXNpYmxlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9J2ZpbHRlcic+XHJcbiAgICAgICAgPGEgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBmaWx0ZXJWaXNpYmxlfVwiXHJcbiAgICAgICAgICAgIGNsYXNzPSdidG4gYnRuLWljb24gYnRuLXByaW1hcnknXHJcbiAgICAgICAgICAgIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKScgXHJcbiAgICAgICAgICAgIChjbGljayk9J29uRmlsdGVyVG9nZ2xlKCknPlxyXG4gICAgICAgICAgPHN2ZyBoZWlnaHQ9JzIyJyB2aWV3Qm94PScwIDAgMzIgMzInIHdpZHRoPScyMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPSdNMiA3aC4xNDJhMy45ODEgMy45ODEgMCAwIDAgNy43MTYgMEgzMGExIDEgMCAwIDAgMC0ySDkuODU4YTMuOTgxIDMuOTgxIDAgMCAwLTcuNzE2IDBIMmExIDEgMCAwIDAgMCAyem00LTNhMiAyIDAgMSAxLTIgMiAyIDIgMCAwIDEgMi0yem0yNCAxMWgtLjE0MmEzLjk4MSAzLjk4MSAwIDAgMC03LjcxNiAwSDJhMSAxIDAgMCAwIDAgMmgyMC4xNDJhMy45ODEgMy45ODEgMCAwIDAgNy43MTYgMEgzMGExIDEgMCAwIDAgMC0yem0tNCAzYTIgMiAwIDEgMSAyLTIgMiAyIDAgMCAxLTIgMnptNCA3SDE5Ljg1OGEzLjk4MSAzLjk4MSAwIDAgMC03LjcxNiAwSDJhMSAxIDAgMCAwIDAgMmgxMC4xNDJhMy45ODEgMy45ODEgMCAwIDAgNy43MTYgMEgzMGExIDEgMCAwIDAgMC0yem0tMTQgM2EyIDIgMCAxIDEgMi0yIDIgMiAwIDAgMS0yIDJ6J1xyXG4gICAgICAgICAgICAgIGZpbGw9J2N1cnJlbnRDb2xvcicvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9hPiAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgXHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPSd0b29scyc+XHJcbiAgICAgIEBpZiAoc29ydEJ5VmlzaWJsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9J3NvcnQtYnknPlxyXG4gICAgICAgICAgPGgyPlNvcnQgQnk6PC9oMj5cclxuICAgICAgICAgIDxrZW5kby1kcm9wZG93bmxpc3QgW2RhdGFdPSdzb3J0QnlJdGVtcydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZD0ndmFsdWUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZD0ndGV4dCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlUHJpbWl0aXZlXT0ndHJ1ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09J3NlbGVjdGVkU29ydEJ5J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPSdvblNvcnRCeUNoYW5nZSgpJz5cclxuICAgICAgICAgIDwva2VuZG8tZHJvcGRvd25saXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKHZpZXdUeXBlc1Zpc2libGUpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb25zJz5cclxuICAgICAgICAgIDxhIGNsYXNzPSdidG4gYnRuLWljb24gYnRuLXByaW1hcnknIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKSdcclxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogdmlld1R5cGUgPT0gJ2dyaWQnfVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwib25WaWV3U3dpdGNoKCdncmlkJylcIj5cclxuICAgICAgICAgICAgPHN2ZyBmaWxsPSdub25lJyBoZWlnaHQ9JzE4JyB2aWV3Qm94PScwIDAgMTggMTgnIHdpZHRoPScxOCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD0nTTYgMUgyQzEuNDQ3NzIgMSAxIDEuNDQ3NzIgMSAyVjZDMSA2LjU1MjI4IDEuNDQ3NzIgNyAyIDdINkM2LjU1MjI4IDcgNyA2LjU1MjI4IDcgNlYyQzcgMS40NDc3MiA2LjU1MjI4IDEgNiAxWidcclxuICAgICAgICAgICAgICAgIHN0cm9rZT0nY3VycmVudENvbG9yJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCdcclxuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD0nMicvPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPSdNMTYgMUgxMkMxMS40NDc3IDEgMTEgMS40NDc3MiAxMSAyVjZDMTEgNi41NTIyOCAxMS40NDc3IDcgMTIgN0gxNkMxNi41NTIzIDcgMTcgNi41NTIyOCAxNyA2VjJDMTcgMS40NDc3MiAxNi41NTIzIDEgMTYgMVonXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9J2N1cnJlbnRDb2xvcidcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPSdyb3VuZCdcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj0ncm91bmQnXHJcbiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9JzInLz5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD0nTTYgMTFIMkMxLjQ0NzcyIDExIDEgMTEuNDQ3NyAxIDEyVjE2QzEgMTYuNTUyMyAxLjQ0NzcyIDE3IDIgMTdINkM2LjU1MjI4IDE3IDcgMTYuNTUyMyA3IDE2VjEyQzcgMTEuNDQ3NyA2LjU1MjI4IDExIDYgMTFaJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPSdjdXJyZW50Q29sb3InXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0ncm91bmQnXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49J3JvdW5kJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPScyJy8+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9J00xNiAxMUgxMkMxMS40NDc3IDExIDExIDExLjQ0NzcgMTEgMTJWMTZDMTEgMTYuNTUyMyAxMS40NDc3IDE3IDEyIDE3SDE2QzE2LjU1MjMgMTcgMTcgMTYuNTUyMyAxNyAxNlYxMkMxNyAxMS40NDc3IDE2LjU1MjMgMTEgMTYgMTFaJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPSdjdXJyZW50Q29sb3InXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0ncm91bmQnXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49J3JvdW5kJ1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPScyJy8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGEgY2xhc3M9J2J0biBidG4taWNvbiBidG4tcHJpbWFyeScgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApJ1xyXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiB2aWV3VHlwZSA9PSAnbGlzdCd9XCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJvblZpZXdTd2l0Y2goJ2xpc3QnKVwiPlxyXG4gICAgICAgICAgICA8c3ZnIGZpbGw9J25vbmUnIGhlaWdodD0nMTUnIHZpZXdCb3g9JzAgMCAxOSAxNScgd2lkdGg9JzE5JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPSdNMS41IDZDMC42NyA2IDAgNi42NyAwIDcuNUMwIDguMzMgMC42NyA5IDEuNSA5QzIuMzMgOSAzIDguMzMgMyA3LjVDMyA2LjY3IDIuMzMgNiAxLjUgNlpNMS41IDBDMC42NyAwIDAgMC42NyAwIDEuNUMwIDIuMzMgMC42NyAzIDEuNSAzQzIuMzMgMyAzIDIuMzMgMyAxLjVDMyAwLjY3IDIuMzMgMCAxLjUgMFpNMS41IDEyQzAuNjcgMTIgMCAxMi42OCAwIDEzLjVDMCAxNC4zMiAwLjY4IDE1IDEuNSAxNUMyLjMyIDE1IDMgMTQuMzIgMyAxMy41QzMgMTIuNjggMi4zMyAxMiAxLjUgMTJaTTUuNSAxNC41SDE3LjVDMTguMDUgMTQuNSAxOC41IDE0LjA1IDE4LjUgMTMuNUMxOC41IDEyLjk1IDE4LjA1IDEyLjUgMTcuNSAxMi41SDUuNUM0Ljk1IDEyLjUgNC41IDEyLjk1IDQuNSAxMy41QzQuNSAxNC4wNSA0Ljk1IDE0LjUgNS41IDE0LjVaTTUuNSA4LjVIMTcuNUMxOC4wNSA4LjUgMTguNSA4LjA1IDE4LjUgNy41QzE4LjUgNi45NSAxOC4wNSA2LjUgMTcuNSA2LjVINS41QzQuOTUgNi41IDQuNSA2Ljk1IDQuNSA3LjVDNC41IDguMDUgNC45NSA4LjUgNS41IDguNVpNNC41IDEuNUM0LjUgMi4wNSA0Ljk1IDIuNSA1LjUgMi41SDE3LjVDMTguMDUgMi41IDE4LjUgMi4wNSAxOC41IDEuNUMxOC41IDAuOTUgMTguMDUgMC41IDE3LjUgMC41SDUuNUM0Ljk1IDAuNSA0LjUgMC45NSA0LjUgMS41WidcclxuICAgICAgICAgICAgICAgIGZpbGw9J2N1cnJlbnRDb2xvcicvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxhIGNsYXNzPSdidG4gYnRuLWljb24gYnRuLXByaW1hcnknIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKSdcclxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogdmlld1R5cGUgPT0gJ3RhYmxlJ31cIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cIm9uVmlld1N3aXRjaCgndGFibGUnKVwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBmaWxsPSdub25lJyA+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNNjQgMjU2bDAtOTYgMTYwIDAgMCA5Nkw2NCAyNTZ6bTAgNjRsMTYwIDAgMCA5Nkw2NCA0MTZsMC05NnptMjI0IDk2bDAtOTYgMTYwIDAgMCA5Ni0xNjAgMHpNNDQ4IDI1NmwtMTYwIDAgMC05NiAxNjAgMCAwIDk2ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyelwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPSdjdXJyZW50Q29sb3InLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAoYWRkQnV0dG9uVmlzaWJsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbi1hZGQnPlxyXG4gICAgICAgICAgPGEgY2xhc3M9J2J0biBidG4taWNvbiBidG4tcHJpbWFyeScgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApJyAoY2xpY2spPSdvbkFkZCgpJz5cclxuICAgICAgICAgICAgPGZhLWljb24gaWNvbj0ncGx1cycvPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==