info-library 2.15.1-beta → 3.0.0-beta
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.
- package/controls/alert/alert.component.d.ts +7 -7
- package/controls/autocomplete/autocomplete.component.d.ts +52 -51
- package/controls/big-checkbox/big-checkbox.component.d.ts +41 -41
- package/controls/card/card.component.d.ts +16 -16
- package/controls/card-menu/card-menu.component.d.ts +23 -23
- package/controls/checkbox/checkbox.component.d.ts +27 -27
- package/controls/chips/chips.component.d.ts +23 -23
- package/controls/date/date.component.d.ts +38 -37
- package/controls/date-month/date-month.component.d.ts +40 -39
- package/controls/editor/editor.component.d.ts +40 -40
- package/controls/grid/grid.component.d.ts +172 -172
- package/controls/input/input.component.d.ts +47 -37
- package/controls/input-list/input-list.component.d.ts +29 -29
- package/controls/list-checkbox/list-checkbox.component.d.ts +26 -26
- package/controls/message/message.component.d.ts +10 -10
- package/controls/multi-select/multi-select.component.d.ts +39 -37
- package/controls/paginator/paginator.component.d.ts +25 -25
- package/controls/select/select.component.d.ts +42 -41
- package/controls/timeline/timeline.component.d.ts +17 -17
- package/directives/mask.directive.d.ts +24 -24
- package/directives/unmask.directive.d.ts +12 -11
- package/enum/dialog-buttons.enum.d.ts +7 -7
- package/enum/index.d.ts +3 -3
- package/enum/modal-action.enum.d.ts +10 -10
- package/enum/page-action.enum.d.ts +8 -8
- package/esm2022/controls/alert/alert.component.mjs +72 -0
- package/esm2022/controls/autocomplete/autocomplete.component.mjs +265 -0
- package/esm2022/controls/big-checkbox/big-checkbox.component.mjs +300 -0
- package/esm2022/controls/card/card.component.mjs +83 -0
- package/esm2022/controls/card-menu/card-menu.component.mjs +143 -0
- package/esm2022/controls/checkbox/checkbox.component.mjs +93 -0
- package/esm2022/controls/chips/chips.component.mjs +114 -0
- package/esm2022/controls/date/date.component.mjs +173 -0
- package/esm2022/controls/date-month/date-month.component.mjs +181 -0
- package/esm2022/controls/editor/editor.component.mjs +139 -0
- package/esm2022/controls/grid/grid.component.mjs +1818 -0
- package/esm2022/controls/input/input.component.mjs +389 -0
- package/esm2022/controls/input-list/input-list.component.mjs +259 -0
- package/{esm2020 → esm2022}/controls/list-checkbox/list-checkbox.component.mjs +242 -238
- package/esm2022/controls/message/message.component.mjs +48 -0
- package/esm2022/controls/multi-select/multi-select.component.mjs +174 -0
- package/esm2022/controls/paginator/paginator.component.mjs +177 -0
- package/esm2022/controls/select/select.component.mjs +189 -0
- package/esm2022/controls/timeline/timeline.component.mjs +116 -0
- package/esm2022/directives/mask.directive.mjs +134 -0
- package/esm2022/directives/unmask.directive.mjs +35 -0
- package/{esm2020 → esm2022}/enum/dialog-buttons.enum.mjs +8 -8
- package/{esm2020 → esm2022}/enum/index.mjs +3 -3
- package/{esm2020 → esm2022}/enum/modal-action.enum.mjs +11 -11
- package/{esm2020 → esm2022}/enum/page-action.enum.mjs +9 -9
- package/{esm2020 → esm2022}/global-config.mjs +3 -3
- package/{esm2020 → esm2022}/info-library.mjs +4 -4
- package/esm2022/info-library.module.mjs +283 -0
- package/esm2022/layouts/dialog/dialog.component.mjs +192 -0
- package/esm2022/layouts/filter/filter.component.mjs +179 -0
- package/esm2022/layouts/loading/loading.component.mjs +40 -0
- package/esm2022/layouts/main/main.component.mjs +305 -0
- package/esm2022/layouts/modal/modal.component.mjs +273 -0
- package/esm2022/layouts/pagebar/pagebar.component.mjs +432 -0
- package/esm2022/layouts/sidebar/sidebar.component.mjs +447 -0
- package/esm2022/layouts/topbar/topbar.component.mjs +1032 -0
- package/esm2022/layouts/topmenu/topmenu.component.mjs +173 -0
- package/esm2022/model/app-config.model.mjs +14 -0
- package/esm2022/model/data-access.model.mjs +37 -0
- package/esm2022/model/dialog-result.model.mjs +9 -0
- package/esm2022/model/dialog.model.mjs +15 -0
- package/esm2022/model/form-prop.model.mjs +37 -0
- package/esm2022/model/grid-button.model.mjs +26 -0
- package/{esm2020 → esm2022}/model/index.mjs +14 -14
- package/esm2022/model/last-search.model.mjs +7 -0
- package/esm2022/model/login.model.mjs +11 -0
- package/esm2022/model/method-grid-button.model.mjs +11 -0
- package/esm2022/model/notification.model.mjs +13 -0
- package/{esm2020 → esm2022}/model/pagebar-buttons.model.mjs +15 -15
- package/esm2022/model/permission.model.mjs +6 -0
- package/esm2022/model/platform.model.mjs +20 -0
- package/esm2022/model/session.model.mjs +27 -0
- package/{esm2020 → esm2022}/pipe/index.mjs +2 -2
- package/esm2022/pipe/mask.pipe.mjs +38 -0
- package/esm2022/pipe/translate.pipe.mjs +27 -0
- package/{esm2020 → esm2022}/public_api.mjs +37 -36
- package/esm2022/service/authentication.service.mjs +411 -0
- package/esm2022/service/configuration.service.mjs +90 -0
- package/esm2022/service/data.service.mjs +129 -0
- package/{esm2020 → esm2022}/service/index.mjs +5 -5
- package/esm2022/service/theme.service.mjs +89 -0
- package/esm2022/service/translate.service.mjs +57 -0
- package/esm2022/utils/utilities.mjs +189 -0
- package/fesm2022/info-library.mjs +9364 -0
- package/fesm2022/info-library.mjs.map +1 -0
- package/global-config.d.ts +3 -3
- package/index.d.ts +5 -5
- package/info-library-3.0.0-beta.tgz +0 -0
- package/info-library.module.d.ts +61 -60
- package/layouts/dialog/dialog.component.d.ts +29 -29
- package/layouts/filter/filter.component.d.ts +24 -0
- package/layouts/loading/loading.component.d.ts +8 -8
- package/layouts/main/main.component.d.ts +60 -56
- package/layouts/modal/modal.component.d.ts +40 -39
- package/layouts/pagebar/pagebar.component.d.ts +45 -45
- package/layouts/sidebar/sidebar.component.d.ts +40 -40
- package/layouts/topbar/topbar.component.d.ts +69 -66
- package/layouts/topmenu/topmenu.component.d.ts +34 -34
- package/model/app-config.model.d.ts +13 -11
- package/model/data-access.model.d.ts +12 -12
- package/model/dialog-result.model.d.ts +6 -6
- package/model/dialog.model.d.ts +14 -14
- package/model/form-prop.model.d.ts +12 -12
- package/model/grid-button.model.d.ts +18 -18
- package/model/index.d.ts +14 -14
- package/model/last-search.model.d.ts +6 -6
- package/model/login.model.d.ts +6 -6
- package/model/method-grid-button.model.d.ts +6 -6
- package/model/notification.model.d.ts +12 -12
- package/model/pagebar-buttons.model.d.ts +10 -10
- package/model/permission.model.d.ts +5 -5
- package/model/platform.model.d.ts +16 -16
- package/model/session.model.d.ts +27 -22
- package/package.json +5 -11
- package/pipe/index.d.ts +2 -2
- package/pipe/mask.pipe.d.ts +8 -8
- package/pipe/translate.pipe.d.ts +10 -10
- package/public_api.d.ts +34 -33
- package/service/authentication.service.d.ts +63 -61
- package/service/configuration.service.d.ts +17 -14
- package/service/data.service.d.ts +41 -39
- package/service/index.d.ts +5 -5
- package/service/theme.service.d.ts +16 -16
- package/service/translate.service.d.ts +16 -16
- package/utils/utilities.d.ts +38 -27
- package/esm2020/controls/alert/alert.component.mjs +0 -74
- package/esm2020/controls/autocomplete/autocomplete.component.mjs +0 -258
- package/esm2020/controls/big-checkbox/big-checkbox.component.mjs +0 -298
- package/esm2020/controls/card/card.component.mjs +0 -77
- package/esm2020/controls/card-menu/card-menu.component.mjs +0 -145
- package/esm2020/controls/checkbox/checkbox.component.mjs +0 -93
- package/esm2020/controls/chips/chips.component.mjs +0 -113
- package/esm2020/controls/date/date.component.mjs +0 -141
- package/esm2020/controls/date-month/date-month.component.mjs +0 -148
- package/esm2020/controls/editor/editor.component.mjs +0 -135
- package/esm2020/controls/grid/grid.component.mjs +0 -1800
- package/esm2020/controls/input/input.component.mjs +0 -314
- package/esm2020/controls/input-list/input-list.component.mjs +0 -258
- package/esm2020/controls/message/message.component.mjs +0 -50
- package/esm2020/controls/multi-select/multi-select.component.mjs +0 -161
- package/esm2020/controls/paginator/paginator.component.mjs +0 -178
- package/esm2020/controls/select/select.component.mjs +0 -180
- package/esm2020/controls/timeline/timeline.component.mjs +0 -117
- package/esm2020/directives/mask.directive.mjs +0 -125
- package/esm2020/directives/unmask.directive.mjs +0 -28
- package/esm2020/info-library.module.mjs +0 -278
- package/esm2020/layouts/dialog/dialog.component.mjs +0 -188
- package/esm2020/layouts/loading/loading.component.mjs +0 -42
- package/esm2020/layouts/main/main.component.mjs +0 -258
- package/esm2020/layouts/modal/modal.component.mjs +0 -258
- package/esm2020/layouts/pagebar/pagebar.component.mjs +0 -404
- package/esm2020/layouts/sidebar/sidebar.component.mjs +0 -395
- package/esm2020/layouts/topbar/topbar.component.mjs +0 -868
- package/esm2020/layouts/topmenu/topmenu.component.mjs +0 -165
- package/esm2020/model/app-config.model.mjs +0 -14
- package/esm2020/model/data-access.model.mjs +0 -35
- package/esm2020/model/dialog-result.model.mjs +0 -8
- package/esm2020/model/dialog.model.mjs +0 -16
- package/esm2020/model/form-prop.model.mjs +0 -35
- package/esm2020/model/grid-button.model.mjs +0 -21
- package/esm2020/model/last-search.model.mjs +0 -9
- package/esm2020/model/login.model.mjs +0 -9
- package/esm2020/model/method-grid-button.model.mjs +0 -9
- package/esm2020/model/notification.model.mjs +0 -9
- package/esm2020/model/permission.model.mjs +0 -3
- package/esm2020/model/platform.model.mjs +0 -21
- package/esm2020/model/session.model.mjs +0 -8
- package/esm2020/pipe/mask.pipe.mjs +0 -34
- package/esm2020/pipe/translate.pipe.mjs +0 -26
- package/esm2020/service/authentication.service.mjs +0 -358
- package/esm2020/service/configuration.service.mjs +0 -59
- package/esm2020/service/data.service.mjs +0 -112
- package/esm2020/service/theme.service.mjs +0 -79
- package/esm2020/service/translate.service.mjs +0 -53
- package/esm2020/utils/utilities.mjs +0 -142
- package/fesm2015/info-library.mjs +0 -9312
- package/fesm2015/info-library.mjs.map +0 -1
- package/fesm2020/info-library.mjs +0 -8462
- package/fesm2020/info-library.mjs.map +0 -1
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { InfoDialogModal } from "../../layouts/dialog/dialog.component";
|
|
3
|
+
import { InfoDialogButtons } from "../../enum/dialog-buttons.enum";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../layouts/dialog/dialog.component";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "@angular/material/icon";
|
|
9
|
+
import * as i5 from "@angular/material/button";
|
|
10
|
+
import * as i6 from "@angular/material/tooltip";
|
|
11
|
+
import * as i7 from "../alert/alert.component";
|
|
12
|
+
import * as i8 from "../input/input.component";
|
|
13
|
+
import * as i9 from "../../pipe/translate.pipe";
|
|
14
|
+
function InfoInputListComponent_div_0_info_input_1_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
16
|
+
i0.ɵɵelementStart(0, "info-input", 11);
|
|
17
|
+
i0.ɵɵlistener("ngModelChange", function InfoInputListComponent_div_0_info_input_1_Template_info_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r4.novoValor.De = $event); });
|
|
18
|
+
i0.ɵɵpipe(1, "translate");
|
|
19
|
+
i0.ɵɵelementEnd();
|
|
20
|
+
} if (rf & 2) {
|
|
21
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
22
|
+
i0.ɵɵpropertyInterpolate2("placeholder", "", i0.ɵɵpipeBind1(1, 4, "De"), " ", ctx_r3.percent ? "%" : "", "");
|
|
23
|
+
i0.ɵɵproperty("ngModel", ctx_r3.novoValor.De)("ismask", ctx_r3.mask);
|
|
24
|
+
} }
|
|
25
|
+
function InfoInputListComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
27
|
+
i0.ɵɵelementStart(0, "div", 4);
|
|
28
|
+
i0.ɵɵtemplate(1, InfoInputListComponent_div_0_info_input_1_Template, 2, 6, "info-input", 5);
|
|
29
|
+
i0.ɵɵelementStart(2, "info-input", 6);
|
|
30
|
+
i0.ɵɵlistener("ngModelChange", function InfoInputListComponent_div_0_Template_info_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.novoValor.Ate = $event); });
|
|
31
|
+
i0.ɵɵpipe(3, "translate");
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
i0.ɵɵelementStart(4, "info-input", 7);
|
|
34
|
+
i0.ɵɵlistener("ngModelChange", function InfoInputListComponent_div_0_Template_info_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.novoValor.Valor = $event); });
|
|
35
|
+
i0.ɵɵpipe(5, "translate");
|
|
36
|
+
i0.ɵɵelementEnd();
|
|
37
|
+
i0.ɵɵelementStart(6, "div", 8)(7, "button", 9);
|
|
38
|
+
i0.ɵɵlistener("click", function InfoInputListComponent_div_0_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.add()); });
|
|
39
|
+
i0.ɵɵelementStart(8, "mat-icon", 10);
|
|
40
|
+
i0.ɵɵtext(9, "add_circle");
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
i0.ɵɵtext(10);
|
|
43
|
+
i0.ɵɵpipe(11, "translate");
|
|
44
|
+
i0.ɵɵelementEnd()()();
|
|
45
|
+
} if (rf & 2) {
|
|
46
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
47
|
+
i0.ɵɵadvance(1);
|
|
48
|
+
i0.ɵɵproperty("ngIf", !ctx_r0.hiddenDe);
|
|
49
|
+
i0.ɵɵadvance(1);
|
|
50
|
+
i0.ɵɵpropertyInterpolate2("placeholder", "", i0.ɵɵpipeBind1(3, 10, "Ate"), " ", ctx_r0.percent ? "%" : "", "");
|
|
51
|
+
i0.ɵɵproperty("ngModel", ctx_r0.novoValor.Ate)("ismask", ctx_r0.mask);
|
|
52
|
+
i0.ɵɵadvance(2);
|
|
53
|
+
i0.ɵɵpropertyInterpolate2("placeholder", "", i0.ɵɵpipeBind1(5, 12, "Valor"), " ", ctx_r0.percent ? "%" : "", "");
|
|
54
|
+
i0.ɵɵproperty("ngModel", ctx_r0.novoValor.Valor)("ismask", ctx_r0.mask);
|
|
55
|
+
i0.ɵɵadvance(6);
|
|
56
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 14, "AddValor"), "");
|
|
57
|
+
} }
|
|
58
|
+
function InfoInputListComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
+
i0.ɵɵelementStart(0, "div", 12)(1, "mat-icon", 13);
|
|
60
|
+
i0.ɵɵtext(2, "info");
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
i0.ɵɵtext(3);
|
|
63
|
+
i0.ɵɵpipe(4, "translate");
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
i0.ɵɵadvance(3);
|
|
67
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 1, "UtilizeCamposAcimaAdicionarItens"), "");
|
|
68
|
+
} }
|
|
69
|
+
function InfoInputListComponent_ul_2_li_1_label_1_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
+
i0.ɵɵelementStart(0, "label", 8);
|
|
71
|
+
i0.ɵɵtext(1);
|
|
72
|
+
i0.ɵɵpipe(2, "translate");
|
|
73
|
+
i0.ɵɵelementEnd();
|
|
74
|
+
} if (rf & 2) {
|
|
75
|
+
i0.ɵɵadvance(1);
|
|
76
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "De"));
|
|
77
|
+
} }
|
|
78
|
+
function InfoInputListComponent_ul_2_li_1_Template(rf, ctx) { if (rf & 1) {
|
|
79
|
+
i0.ɵɵelementStart(0, "li", 17);
|
|
80
|
+
i0.ɵɵtemplate(1, InfoInputListComponent_ul_2_li_1_label_1_Template, 3, 3, "label", 18);
|
|
81
|
+
i0.ɵɵelementStart(2, "label", 8);
|
|
82
|
+
i0.ɵɵtext(3);
|
|
83
|
+
i0.ɵɵpipe(4, "translate");
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
i0.ɵɵelementStart(5, "label", 8);
|
|
86
|
+
i0.ɵɵtext(6);
|
|
87
|
+
i0.ɵɵpipe(7, "translate");
|
|
88
|
+
i0.ɵɵelementEnd()();
|
|
89
|
+
} if (rf & 2) {
|
|
90
|
+
const ctx_r10 = i0.ɵɵnextContext(2);
|
|
91
|
+
i0.ɵɵadvance(1);
|
|
92
|
+
i0.ɵɵproperty("ngIf", !ctx_r10.hiddenDe);
|
|
93
|
+
i0.ɵɵadvance(2);
|
|
94
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 3, "Ate"));
|
|
95
|
+
i0.ɵɵadvance(3);
|
|
96
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 5, "Valor"));
|
|
97
|
+
} }
|
|
98
|
+
function InfoInputListComponent_ul_2_li_2_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
100
|
+
i0.ɵɵelement(1, "info-input", 23);
|
|
101
|
+
i0.ɵɵelementEnd();
|
|
102
|
+
} if (rf & 2) {
|
|
103
|
+
const item_r13 = i0.ɵɵnextContext().$implicit;
|
|
104
|
+
const ctx_r15 = i0.ɵɵnextContext(2);
|
|
105
|
+
i0.ɵɵadvance(1);
|
|
106
|
+
i0.ɵɵproperty("ngModel", item_r13.De)("disabled", true)("iconSuffix", ctx_r15.percent ? "%" : "null")("ismask", ctx_r15.mask);
|
|
107
|
+
} }
|
|
108
|
+
function InfoInputListComponent_ul_2_li_2_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
110
|
+
i0.ɵɵelementContainerStart(0);
|
|
111
|
+
i0.ɵɵelementStart(1, "button", 24);
|
|
112
|
+
i0.ɵɵlistener("click", function InfoInputListComponent_ul_2_li_2_ng_container_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r20); const item_r13 = i0.ɵɵnextContext().$implicit; const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.remover(item_r13)); });
|
|
113
|
+
i0.ɵɵpipe(2, "translate");
|
|
114
|
+
i0.ɵɵelementStart(3, "mat-icon");
|
|
115
|
+
i0.ɵɵtext(4, "close");
|
|
116
|
+
i0.ɵɵelementEnd()();
|
|
117
|
+
i0.ɵɵelementContainerEnd();
|
|
118
|
+
} if (rf & 2) {
|
|
119
|
+
i0.ɵɵadvance(1);
|
|
120
|
+
i0.ɵɵpropertyInterpolate("matTooltip", i0.ɵɵpipeBind1(2, 1, "Excluir"));
|
|
121
|
+
} }
|
|
122
|
+
const _c0 = function (a0) { return { "silver": a0 }; };
|
|
123
|
+
function InfoInputListComponent_ul_2_li_2_Template(rf, ctx) { if (rf & 1) {
|
|
124
|
+
i0.ɵɵelementStart(0, "li", 19);
|
|
125
|
+
i0.ɵɵtemplate(1, InfoInputListComponent_ul_2_li_2_div_1_Template, 2, 4, "div", 18);
|
|
126
|
+
i0.ɵɵelementStart(2, "div", 8);
|
|
127
|
+
i0.ɵɵelement(3, "info-input", 20);
|
|
128
|
+
i0.ɵɵelementEnd();
|
|
129
|
+
i0.ɵɵelementStart(4, "div", 8);
|
|
130
|
+
i0.ɵɵelement(5, "info-input", 21);
|
|
131
|
+
i0.ɵɵelementEnd();
|
|
132
|
+
i0.ɵɵelementStart(6, "div", 8);
|
|
133
|
+
i0.ɵɵtemplate(7, InfoInputListComponent_ul_2_li_2_ng_container_7_Template, 5, 3, "ng-container", 22);
|
|
134
|
+
i0.ɵɵelementEnd()();
|
|
135
|
+
} if (rf & 2) {
|
|
136
|
+
const item_r13 = ctx.$implicit;
|
|
137
|
+
const i_r14 = ctx.index;
|
|
138
|
+
const ctx_r11 = i0.ɵɵnextContext(2);
|
|
139
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c0, i_r14 % 2 == 0));
|
|
140
|
+
i0.ɵɵadvance(1);
|
|
141
|
+
i0.ɵɵproperty("ngIf", !ctx_r11.hiddenDe);
|
|
142
|
+
i0.ɵɵadvance(2);
|
|
143
|
+
i0.ɵɵproperty("ngModel", item_r13.Ate)("disabled", true)("iconSuffix", ctx_r11.percent ? "%" : "null")("ismask", ctx_r11.mask);
|
|
144
|
+
i0.ɵɵadvance(2);
|
|
145
|
+
i0.ɵɵproperty("ngModel", item_r13.Valor)("disabled", true)("iconSuffix", ctx_r11.percent ? "%" : "null")("ismask", ctx_r11.mask);
|
|
146
|
+
i0.ɵɵadvance(2);
|
|
147
|
+
i0.ɵɵproperty("ngIf", !ctx_r11.disabled);
|
|
148
|
+
} }
|
|
149
|
+
function InfoInputListComponent_ul_2_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
+
i0.ɵɵelementStart(0, "ul", 14);
|
|
151
|
+
i0.ɵɵtemplate(1, InfoInputListComponent_ul_2_li_1_Template, 8, 7, "li", 15);
|
|
152
|
+
i0.ɵɵtemplate(2, InfoInputListComponent_ul_2_li_2_Template, 8, 13, "li", 16);
|
|
153
|
+
i0.ɵɵelementEnd();
|
|
154
|
+
} if (rf & 2) {
|
|
155
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
156
|
+
i0.ɵɵadvance(1);
|
|
157
|
+
i0.ɵɵproperty("ngIf", ctx_r2.disabled);
|
|
158
|
+
i0.ɵɵadvance(1);
|
|
159
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.getModel());
|
|
160
|
+
} }
|
|
161
|
+
export class InfoInputListComponent {
|
|
162
|
+
_dialog;
|
|
163
|
+
model = [];
|
|
164
|
+
readonly = false;
|
|
165
|
+
percent = false;
|
|
166
|
+
hiddenDe = false;
|
|
167
|
+
disabled = false;
|
|
168
|
+
mask = "n2";
|
|
169
|
+
get ismask() {
|
|
170
|
+
return this.mask;
|
|
171
|
+
}
|
|
172
|
+
set ismask(value) {
|
|
173
|
+
this.mask = (value == null ? this.mask : value);
|
|
174
|
+
}
|
|
175
|
+
messages = [];
|
|
176
|
+
novoValor = { De: null, Ate: null, Valor: null, Excluir: false };
|
|
177
|
+
constructor(_dialog) {
|
|
178
|
+
this._dialog = _dialog;
|
|
179
|
+
}
|
|
180
|
+
ngOnChanges() {
|
|
181
|
+
if (this.model == null)
|
|
182
|
+
this.model = [];
|
|
183
|
+
for (var i = 0; i < this.model.length; i++)
|
|
184
|
+
this.model[i].Excluir = false;
|
|
185
|
+
}
|
|
186
|
+
getModel() {
|
|
187
|
+
if (!this.model || this.model == null)
|
|
188
|
+
return [];
|
|
189
|
+
return this.model.filter(m => !m.Excluir);
|
|
190
|
+
}
|
|
191
|
+
add() {
|
|
192
|
+
this.messages = [];
|
|
193
|
+
if (this.hiddenDe && this.novoValor.Ate == null)
|
|
194
|
+
this.messages.push('InformeUmValorDe');
|
|
195
|
+
if (!this.hiddenDe && this.novoValor.De == null && this.novoValor.Ate == null)
|
|
196
|
+
this.messages.push('InformeUmValorDeOuAte');
|
|
197
|
+
if (!this.hiddenDe && this.novoValor.Ate < this.novoValor.De)
|
|
198
|
+
this.messages.push('ValorAteMenorQueDe');
|
|
199
|
+
if (this.novoValor.Valor == null)
|
|
200
|
+
this.messages.push('InformeValor');
|
|
201
|
+
if (this.messages.length > 0) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
this.model.push({ De: this.novoValor.De, Ate: this.novoValor.Ate, Valor: this.novoValor.Valor, Excluir: false });
|
|
205
|
+
this.novoValor = { De: null, Ate: null, Valor: null, Excluir: false };
|
|
206
|
+
this.ordernar();
|
|
207
|
+
}
|
|
208
|
+
remover(item) {
|
|
209
|
+
this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {
|
|
210
|
+
if (r.button == InfoDialogButtons.No)
|
|
211
|
+
return;
|
|
212
|
+
item.Excluir = true;
|
|
213
|
+
this.model.splice(this.model.findIndex(m => m == item), 1);
|
|
214
|
+
this.ordernar();
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
ordernar() {
|
|
218
|
+
this.model = this.model.sort((a, b) => {
|
|
219
|
+
if (this.hiddenDe ? (a.Ate < b.Ate) : (a.De < b.De))
|
|
220
|
+
return -1;
|
|
221
|
+
else if (this.hiddenDe ? (a.Ate > b.Ate) : (a.De > b.De))
|
|
222
|
+
return 1;
|
|
223
|
+
else
|
|
224
|
+
return 0;
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
/** @nocollapse */ static ɵfac = function InfoInputListComponent_Factory(t) { return new (t || InfoInputListComponent)(i0.ɵɵdirectiveInject(i1.InfoDialogModal)); };
|
|
228
|
+
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoInputListComponent, selectors: [["info-input-list"]], inputs: { model: "model", readonly: "readonly", percent: "percent", hiddenDe: "hiddenDe", disabled: "disabled", ismask: "ismask" }, features: [i0.ɵɵNgOnChangesFeature], decls: 4, vars: 4, consts: [["class", "row", 4, "ngIf"], ["class", "col-md-12", 4, "ngIf"], ["id", "list-values", 4, "ngIf"], [3, "messages"], [1, "row"], ["name", "De", "class", "col-md-3", 3, "placeholder", "ngModel", "ismask", "ngModelChange", 4, "ngIf"], ["name", "Ate", 1, "col-md-3", 3, "placeholder", "ngModel", "ismask", "ngModelChange"], ["name", "Valor", 1, "col-md-3", 3, "placeholder", "ngModel", "ismask", "ngModelChange"], [1, "col-md-3"], ["mat-button", "", "type", "button", "color", "primary", 1, "mt-2", 3, "click"], [1, "fs-20"], ["name", "De", 1, "col-md-3", 3, "placeholder", "ngModel", "ismask", "ngModelChange"], [1, "col-md-12"], [1, "mr-2", 2, "top", "6px"], ["id", "list-values"], ["class", "row header", 4, "ngIf"], ["class", "row", 3, "ngClass", 4, "ngFor", "ngForOf"], [1, "row", "header"], ["class", "col-md-3", 4, "ngIf"], [1, "row", 3, "ngClass"], ["name", "ListaValorAte", 3, "ngModel", "disabled", "iconSuffix", "ismask"], ["name", "ListaValorValor", 3, "ngModel", "disabled", "iconSuffix", "ismask"], [4, "ngIf"], ["name", "ListaValorDe", 3, "ngModel", "disabled", "iconSuffix", "ismask"], ["type", "button", "color", "warn", "mat-icon-button", "", 3, "matTooltip", "click"]], template: function InfoInputListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
229
|
+
i0.ɵɵtemplate(0, InfoInputListComponent_div_0_Template, 12, 16, "div", 0);
|
|
230
|
+
i0.ɵɵtemplate(1, InfoInputListComponent_div_1_Template, 5, 3, "div", 1);
|
|
231
|
+
i0.ɵɵtemplate(2, InfoInputListComponent_ul_2_Template, 3, 2, "ul", 2);
|
|
232
|
+
i0.ɵɵelement(3, "info-alert", 3);
|
|
233
|
+
} if (rf & 2) {
|
|
234
|
+
i0.ɵɵproperty("ngIf", !ctx.disabled);
|
|
235
|
+
i0.ɵɵadvance(1);
|
|
236
|
+
i0.ɵɵproperty("ngIf", ctx.model == null || ctx.getModel().length == 0);
|
|
237
|
+
i0.ɵɵadvance(1);
|
|
238
|
+
i0.ɵɵproperty("ngIf", ctx.model != null);
|
|
239
|
+
i0.ɵɵadvance(1);
|
|
240
|
+
i0.ɵɵproperty("messages", ctx.messages);
|
|
241
|
+
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.NgControlStatus, i3.NgModel, i4.MatIcon, i5.MatButton, i6.MatTooltip, i7.InfoAlertComponent, i8.InfoInputComponent, i9.InfoTranslatePipe], styles: ["[_nghost-%COMP%] .header[_ngcontent-%COMP%]{background:#fafafa;border-top:solid 1px #f0f0f0;border-bottom:solid 2px #f0f0f0;color:#333;text-transform:uppercase;text-align:right;font-size:9px;font-family:Open Sans;font-weight:700;padding:10px 20px 0 0}[_nghost-%COMP%] #list-values[_ngcontent-%COMP%]{padding:0}[_nghost-%COMP%] #list-values[_ngcontent-%COMP%] li.silver[_ngcontent-%COMP%]{background:#f5f5f5}[_nghost-%COMP%] #list-values[_ngcontent-%COMP%] li.hover[_ngcontent-%COMP%]{background:#eee}[_nghost-%COMP%] #list-values[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{margin-bottom:5px}[_nghost-%COMP%] #list-values[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px}"] });
|
|
242
|
+
}
|
|
243
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoInputListComponent, [{
|
|
244
|
+
type: Component,
|
|
245
|
+
args: [{ selector: 'info-input-list', template: "<div class=\"row\" *ngIf=\"!disabled\" >\r\n <info-input placeholder=\"{{ 'De' | translate}} {{ percent ? '%' : '' }}\" name=\"De\" [(ngModel)]=\"novoValor.De\" *ngIf=\"!hiddenDe\" class=\"col-md-3\" [ismask]=\"mask\"></info-input>\r\n <info-input placeholder=\"{{ 'Ate' | translate}} {{ percent ? '%' : '' }}\" name=\"Ate\" [(ngModel)]=\"novoValor.Ate\" class=\"col-md-3\" [ismask]=\"mask\"></info-input>\r\n <info-input placeholder=\"{{ 'Valor' | translate}} {{ percent ? '%' : '' }}\" name=\"Valor\" [(ngModel)]=\"novoValor.Valor\" class=\"col-md-3\" [ismask]=\"mask\"></info-input>\r\n <div class=\"col-md-3\">\r\n <button mat-button type=\"button\" color=\"primary\" (click)=\"add()\" class=\"mt-2\" ><mat-icon class=\"fs-20\">add_circle</mat-icon> {{ 'AddValor' | translate }}</button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"col-md-12\" *ngIf=\"model == null || getModel().length == 0\" ><mat-icon style=\"top: 6px;\" class=\"mr-2\">info</mat-icon> {{ 'UtilizeCamposAcimaAdicionarItens' | translate }}</div>\r\n\r\n<ul *ngIf=\"model != null\" id=\"list-values\" >\r\n<li class=\"row header\" *ngIf=\"disabled\">\r\n <label class=\"col-md-3\" *ngIf=\"!hiddenDe\" >{{ 'De' | translate }}</label>\r\n <label class=\"col-md-3\" >{{ 'Ate' | translate }}</label>\r\n <label class=\"col-md-3\" >{{ 'Valor' | translate }}</label>\r\n</li>\r\n\r\n<li *ngFor=\"let item of getModel(); let i = index\" class=\"row\" [ngClass]=\"{ 'silver': i % 2 == 0 }\" >\r\n <div class=\"col-md-3\" *ngIf=\"!hiddenDe\" >\r\n <info-input name=\"ListaValorDe\" [ngModel]=\"item.De\" [disabled]=\"true\" [iconSuffix]=\"(percent ? '%' : 'null')\" [ismask]=\"mask\"></info-input>\r\n </div>\r\n\r\n <div class=\"col-md-3\">\r\n <info-input name=\"ListaValorAte\" [ngModel]=\"item.Ate\" [disabled]=\"true\" [iconSuffix]=\"(percent ? '%' : 'null')\" [ismask]=\"mask\"></info-input>\r\n </div>\r\n\r\n <div class=\"col-md-3\">\r\n <info-input name=\"ListaValorValor\" [ngModel]=\"item.Valor\" [disabled]=\"true\" [iconSuffix]=\"(percent ? '%' : 'null')\" [ismask]=\"mask\"></info-input>\r\n </div>\r\n\r\n <div class=\"col-md-3\">\r\n <ng-container *ngIf=\"!disabled\">\r\n <!-- <button type=\"button\" matTooltip=\"{{ 'OrdernarAcima' | translate }}\" mat-icon-button [disabled]=\"item.Indice <= 0\" (click)=\"alterarIndice(item, item.Indice - 1)\">\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button type=\"button\" matTooltip=\"{{ 'OrdernarAbaixo' | translate }}\" mat-icon-button [disabled]=\"item.Indice >= (model.length - 1)\" (click)=\"alterarIndice(item, item.Indice + 1)\">\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button> -->\r\n <button type=\"button\" color=\"warn\" matTooltip=\"{{ 'Excluir' | translate }}\" mat-icon-button (click)=\"remover(item)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n </div>\r\n</li>\r\n</ul>\r\n\r\n\r\n<info-alert [messages]=\"messages\"></info-alert>", styles: [":host .header{background:#fafafa;border-top:solid 1px #f0f0f0;border-bottom:solid 2px #f0f0f0;color:#333;text-transform:uppercase;text-align:right;font-size:9px;font-family:Open Sans;font-weight:700;padding:10px 20px 0 0}:host #list-values{padding:0}:host #list-values li.silver{background:#f5f5f5}:host #list-values li.hover{background:#eee}:host #list-values mat-form-field{margin-bottom:5px}:host #list-values button mat-icon{font-size:18px}\n"] }]
|
|
246
|
+
}], function () { return [{ type: i1.InfoDialogModal }]; }, { model: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], readonly: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], percent: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], hiddenDe: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], disabled: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], ismask: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}] }); })();
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2lucHV0LWxpc3QvaW5wdXQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2lucHV0LWxpc3QvaW5wdXQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7SUNEL0Qsc0NBQWlLO0lBQTlFLDJNQUFhLDRDQUFvQixJQUFQOztJQUFvRCxpQkFBYTs7O0lBQWxLLDRHQUE0RDtJQUFXLDZDQUEwQix1QkFBQTs7OztJQURqSCw4QkFBb0M7SUFDaEMsMkZBQThLO0lBQzlLLHFDQUFrSjtJQUE3RCw2TEFBYSw2Q0FBcUIsSUFBUDs7SUFBa0MsaUJBQWE7SUFDL0oscUNBQXdKO0lBQS9ELDZMQUFhLCtDQUF1QixJQUFQOztJQUFrQyxpQkFBYTtJQUNySyw4QkFBc0IsZ0JBQUE7SUFDK0IsbUtBQVMsZUFBQSxZQUFLLENBQUEsSUFBQztJQUFlLG9DQUF3QjtJQUFBLDBCQUFVO0lBQUEsaUJBQVc7SUFBQyxhQUE0Qjs7SUFBQSxpQkFBUyxFQUFBLEVBQUE7OztJQUp2RCxlQUFlO0lBQWYsdUNBQWU7SUFDbEgsZUFBNkQ7SUFBN0QsOEdBQTZEO0lBQVksOENBQTJCLHVCQUFBO0lBQ3BHLGVBQStEO0lBQS9ELGdIQUErRDtJQUFjLGdEQUE2Qix1QkFBQTtJQUVXLGVBQTRCO0lBQTVCLGtFQUE0Qjs7O0lBSWpLLCtCQUF3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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsT0FBTyxDQUFDLENBQUM7O2dCQUVSLE9BQU8sQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzttR0F6RlEsc0JBQXNCOzRGQUF0QixzQkFBc0I7WUNUbkMseUVBT007WUFFTix1RUFBMkw7WUFFM0wscUVBa0NLO1lBR0wsZ0NBQStDOztZQWhEN0Isb0NBQWU7WUFTVCxlQUE2QztZQUE3QyxzRUFBNkM7WUFFaEUsZUFBbUI7WUFBbkIsd0NBQW1CO1lBcUNaLGVBQXFCO1lBQXJCLHVDQUFxQjs7O3VGRHZDcEIsc0JBQXNCO2NBTGxDLFNBQVM7MkJBQ0ksaUJBQWlCO2tFQU1sQixLQUFLO2tCQUFiLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFJRixNQUFNO2tCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJbmZvRGlhbG9nTW9kYWwgfSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBJbmZvRGlhbG9nQnV0dG9ucyB9IGZyb20gXCIuLi8uLi9lbnVtL2RpYWxvZy1idXR0b25zLmVudW1cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpbmZvLWlucHV0LWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdpbnB1dC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWydpbnB1dC1saXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9JbnB1dExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgXHJcbiAgICBASW5wdXQoKSBtb2RlbDogYW55ID0gW11cclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2VcclxuICAgIEBJbnB1dCgpIHBlcmNlbnQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICAgQElucHV0KCkgaGlkZGVuRGU6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICAgIG1hc2s6IHN0cmluZyA9IFwibjJcIjtcclxuICAgIEBJbnB1dCgpIFxyXG4gICAgZ2V0IGlzbWFzaygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tYXNrO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpc21hc2sodmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1hc2sgPSAodmFsdWUgPT0gbnVsbCA/IHRoaXMubWFzayA6IHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICAgIG5vdm9WYWxvciA9IHsgRGU6IG51bGwsIEF0ZTogbnVsbCwgVmFsb3I6IG51bGwsIEV4Y2x1aXI6IGZhbHNlIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nOiBJbmZvRGlhbG9nTW9kYWwpIHsgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1vZGVsLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB0aGlzLm1vZGVsW2ldLkV4Y2x1aXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNb2RlbCgpOiBhbnlbXXtcclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwgfHwgdGhpcy5tb2RlbCA9PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLmZpbHRlcihtID0+ICFtLkV4Y2x1aXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCgpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gW107XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmhpZGRlbkRlICYmIHRoaXMubm92b1ZhbG9yLkF0ZSA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2goJ0luZm9ybWVVbVZhbG9yRGUnKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmhpZGRlbkRlICYmIHRoaXMubm92b1ZhbG9yLkRlID09IG51bGwgJiYgdGhpcy5ub3ZvVmFsb3IuQXRlID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMucHVzaCgnSW5mb3JtZVVtVmFsb3JEZU91QXRlJyk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5oaWRkZW5EZSAmJiB0aGlzLm5vdm9WYWxvci5BdGUgPCB0aGlzLm5vdm9WYWxvci5EZSlcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKCdWYWxvckF0ZU1lbm9yUXVlRGUnKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubm92b1ZhbG9yLlZhbG9yID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMucHVzaCgnSW5mb3JtZVZhbG9yJyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzLmxlbmd0aCA+IDApe1xyXG5cclxuICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm1vZGVsLnB1c2goeyBEZTogdGhpcy5ub3ZvVmFsb3IuRGUsIEF0ZTogdGhpcy5ub3ZvVmFsb3IuQXRlLCBWYWxvcjogdGhpcy5ub3ZvVmFsb3IuVmFsb3IsIEV4Y2x1aXI6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMubm92b1ZhbG9yID0geyBEZTogbnVsbCwgQXRlOiBudWxsLCBWYWxvcjogbnVsbCwgRXhjbHVpcjogZmFsc2UgfTtcclxuXHJcbiAgICAgICAgdGhpcy5vcmRlcm5hcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZXIoaXRlbTogYW55KXtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLlllc09yTm8oJ01lbnNhZ2VtRXhjbHVpcicpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICAgICAgaWYgKHIuYnV0dG9uID09IEluZm9EaWFsb2dCdXR0b25zLk5vKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgaXRlbS5FeGNsdWlyID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5zcGxpY2UodGhpcy5tb2RlbC5maW5kSW5kZXgobSA9PiBtID09IGl0ZW0pLCAxKTtcclxuICAgICAgICAgICAgdGhpcy5vcmRlcm5hcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9yZGVybmFyKCl7XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLnNvcnQoKGEsIGIpID0+IHsgXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlbkRlID8gKGEuQXRlIDwgYi5BdGUpIDogKGEuRGUgPCBiLkRlKSlcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuaGlkZGVuRGUgPyAoYS5BdGUgPiBiLkF0ZSkgOiAoYS5EZSA+IGIuRGUpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcblxyXG4gICAgICAgICAgICBlbHNlIHJldHVybiAwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIWRpc2FibGVkXCIgPlxyXG4gICAgPGluZm8taW5wdXQgcGxhY2Vob2xkZXI9XCJ7eyAnRGUnIHwgdHJhbnNsYXRlfX0ge3sgcGVyY2VudCA/ICclJyA6ICcnIH19XCIgbmFtZT1cIkRlXCIgWyhuZ01vZGVsKV09XCJub3ZvVmFsb3IuRGVcIiAqbmdJZj1cIiFoaWRkZW5EZVwiIGNsYXNzPVwiY29sLW1kLTNcIiBbaXNtYXNrXT1cIm1hc2tcIj48L2luZm8taW5wdXQ+XHJcbiAgICA8aW5mby1pbnB1dCBwbGFjZWhvbGRlcj1cInt7ICdBdGUnIHwgdHJhbnNsYXRlfX0ge3sgcGVyY2VudCA/ICclJyA6ICcnIH19XCIgbmFtZT1cIkF0ZVwiIFsobmdNb2RlbCldPVwibm92b1ZhbG9yLkF0ZVwiIGNsYXNzPVwiY29sLW1kLTNcIiBbaXNtYXNrXT1cIm1hc2tcIj48L2luZm8taW5wdXQ+XHJcbiAgICA8aW5mby1pbnB1dCBwbGFjZWhvbGRlcj1cInt7ICdWYWxvcicgfCB0cmFuc2xhdGV9fSB7eyBwZXJjZW50ID8gJyUnIDogJycgfX1cIiBuYW1lPVwiVmFsb3JcIiBbKG5nTW9kZWwpXT1cIm5vdm9WYWxvci5WYWxvclwiIGNsYXNzPVwiY29sLW1kLTNcIiBbaXNtYXNrXT1cIm1hc2tcIj48L2luZm8taW5wdXQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGQoKVwiIGNsYXNzPVwibXQtMlwiID48bWF0LWljb24gY2xhc3M9XCJmcy0yMFwiPmFkZF9jaXJjbGU8L21hdC1pY29uPiB7eyAnQWRkVmFsb3InIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nSWY9XCJtb2RlbCA9PSBudWxsIHx8IGdldE1vZGVsKCkubGVuZ3RoID09IDBcIiA+PG1hdC1pY29uIHN0eWxlPVwidG9wOiA2cHg7XCIgY2xhc3M9XCJtci0yXCI+aW5mbzwvbWF0LWljb24+IHt7ICdVdGlsaXplQ2FtcG9zQWNpbWFBZGljaW9uYXJJdGVucycgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuXHJcbjx1bCAqbmdJZj1cIm1vZGVsICE9IG51bGxcIiBpZD1cImxpc3QtdmFsdWVzXCIgPlxyXG48bGkgY2xhc3M9XCJyb3cgaGVhZGVyXCIgKm5nSWY9XCJkaXNhYmxlZFwiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cIiFoaWRkZW5EZVwiID57eyAnRGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC0zXCIgPnt7ICdBdGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC0zXCIgPnt7ICdWYWxvcicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG48L2xpPlxyXG5cclxuPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE1vZGVsKCk7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInJvd1wiIFtuZ0NsYXNzXT1cInsgJ3NpbHZlcic6IGkgJSAyID09IDAgfVwiID5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiIWhpZGRlbkRlXCIgPlxyXG4gICAgICAgIDxpbmZvLWlucHV0IG5hbWU9XCJMaXN0YVZhbG9yRGVcIiBbbmdNb2RlbF09XCJpdGVtLkRlXCIgW2Rpc2FibGVkXT1cInRydWVcIiBbaWNvblN1ZmZpeF09XCIocGVyY2VudCA/ICclJyA6ICdudWxsJylcIiBbaXNtYXNrXT1cIm1hc2tcIj48L2luZm8taW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICA8aW5mby1pbnB1dCBuYW1lPVwiTGlzdGFWYWxvckF0ZVwiIFtuZ01vZGVsXT1cIml0ZW0uQXRlXCIgW2Rpc2FibGVkXT1cInRydWVcIiBbaWNvblN1ZmZpeF09XCIocGVyY2VudCA/ICclJyA6ICdudWxsJylcIiBbaXNtYXNrXT1cIm1hc2tcIj48L2luZm8taW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICA8aW5mby1pbnB1dCBuYW1lPVwiTGlzdGFWYWxvclZhbG9yXCIgW25nTW9kZWxdPVwiaXRlbS5WYWxvclwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW2ljb25TdWZmaXhdPVwiKHBlcmNlbnQgPyAnJScgOiAnbnVsbCcpXCIgW2lzbWFza109XCJtYXNrXCI+PC9pbmZvLWlucHV0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICA8IS0tIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJ7eyAnT3JkZXJuYXJBY2ltYScgfCB0cmFuc2xhdGUgfX1cIiBtYXQtaWNvbi1idXR0b24gW2Rpc2FibGVkXT1cIml0ZW0uSW5kaWNlIDw9IDBcIiAoY2xpY2spPVwiYWx0ZXJhckluZGljZShpdGVtLCBpdGVtLkluZGljZSAtIDEpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJ7eyAnT3JkZXJuYXJBYmFpeG8nIHwgdHJhbnNsYXRlIH19XCIgbWF0LWljb24tYnV0dG9uIFtkaXNhYmxlZF09XCJpdGVtLkluZGljZSA+PSAobW9kZWwubGVuZ3RoIC0gMSlcIiAoY2xpY2spPVwiYWx0ZXJhckluZGljZShpdGVtLCBpdGVtLkluZGljZSArIDEpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZG93bndhcmQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNvbG9yPVwid2FyblwiIG1hdFRvb2x0aXA9XCJ7eyAnRXhjbHVpcicgfCB0cmFuc2xhdGUgfX1cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlbW92ZXIoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbGk+XHJcbjwvdWw+XHJcblxyXG5cclxuPGluZm8tYWxlcnQgW21lc3NhZ2VzXT1cIm1lc3NhZ2VzXCI+PC9pbmZvLWFsZXJ0PiJdfQ==
|