ng-tailwind 6.0.0 → 6.0.2
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/components/ngt-action/ngt-action.component.d.ts +1 -1
- package/components/ngt-button/ngt-button.component.d.ts +1 -1
- package/components/ngt-checkbox/ngt-checkbox.component.d.ts +1 -1
- package/components/ngt-content/ngt-content.component.d.ts +1 -1
- package/components/ngt-context-menu/ngt-context-menu.directive.d.ts +1 -1
- package/components/ngt-datatable/ngt-datatable.component.d.ts +1 -1
- package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +1 -1
- package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +1 -1
- package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +1 -1
- package/components/ngt-date/ngt-date.component.d.ts +3 -6
- package/components/ngt-date/ngt-date.module.d.ts +4 -5
- package/components/ngt-dropdown/ngt-dropdown.component.d.ts +1 -1
- package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +1 -3
- package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +1 -1
- package/components/ngt-dropzone/ngt-dropzone.component.d.ts +1 -1
- package/components/ngt-dropzone/ngt-dropzone.module.d.ts +2 -3
- package/components/ngt-floating-button/ngt-floating-button.component.d.ts +1 -1
- package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +1 -1
- package/components/ngt-form/ngt-form.component.d.ts +1 -1
- package/components/ngt-header-nav/ngt-header-nav.component.d.ts +1 -1
- package/components/ngt-helper/ngt-helper.component.d.ts +1 -1
- package/components/ngt-input/ngt-input.component.d.ts +1 -1
- package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +1 -1
- package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +1 -1
- package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +1 -1
- package/components/ngt-modal/ngt-modal.component.d.ts +1 -1
- package/components/ngt-multi-select/ngt-multi-select.component.d.ts +1 -1
- package/components/ngt-pagination/ngt-pagination.component.d.ts +1 -1
- package/components/ngt-popover/ngt-popover.component.d.ts +1 -1
- package/components/ngt-popover/ngt-popover.directive.d.ts +1 -1
- package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +1 -1
- package/components/ngt-portlet/ngt-portlet.component.d.ts +1 -1
- package/components/ngt-radio-button/ngt-radio-button.component.d.ts +1 -1
- package/components/ngt-section/ngt-section.component.d.ts +1 -1
- package/components/ngt-select/ngt-select.component.d.ts +1 -1
- package/components/ngt-shining/ngt-shining.component.d.ts +1 -1
- package/components/ngt-sidenav/ngt-sidenav.component.d.ts +1 -1
- package/components/ngt-slider/ngt-slider.component.d.ts +1 -1
- package/components/ngt-svg/ngt-svg.component.d.ts +1 -1
- package/components/ngt-tag/ngt-tag.component.d.ts +1 -1
- package/components/ngt-textarea/ngt-textarea.component.d.ts +1 -1
- package/components/ngt-validation/ngt-validation.component.d.ts +1 -1
- package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +1 -1
- package/{esm2020 → esm2022}/components/ngt-action/ngt-action.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-action/ngt-action.module.mjs +9 -9
- package/{esm2020 → esm2022}/components/ngt-button/ngt-button.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-button/ngt-button.module.mjs +9 -9
- package/esm2022/components/ngt-checkbox/ngt-checkbox.component.mjs +192 -0
- package/{esm2020 → esm2022}/components/ngt-checkbox/ngt-checkbox.module.mjs +9 -9
- package/{esm2020 → esm2022}/components/ngt-content/ngt-content.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-content/ngt-content.module.mjs +5 -5
- package/{esm2020 → esm2022}/components/ngt-context-menu/ngt-context-menu.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-context-menu/ngt-context-menu.directive.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-context-menu/ngt-context-menu.module.mjs +9 -9
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-datatable.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-datatable.module.mjs +39 -39
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-tbody/ngt-tbody.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-td/ngt-td.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-td-check/ngt-td-check.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-th/ngt-th.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-th-check/ngt-th-check.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-thead/ngt-thead.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-datatable/ngt-tr/ngt-tr.component.mjs +5 -5
- package/esm2022/components/ngt-date/ngt-date.component.mjs +425 -0
- package/esm2022/components/ngt-date/ngt-date.module.mjs +36 -0
- package/{esm2020 → esm2022}/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.mjs +4 -4
- package/esm2022/components/ngt-dropdown/ngt-dropdown.component.mjs +205 -0
- package/{esm2020 → esm2022}/components/ngt-dropdown/ngt-dropdown.module.mjs +5 -5
- package/esm2022/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +54 -0
- package/esm2022/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +61 -0
- package/{esm2020 → esm2022}/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-dropzone/ngt-dropzone.component.mjs +8 -8
- package/esm2022/components/ngt-dropzone/ngt-dropzone.module.mjs +55 -0
- package/esm2022/components/ngt-floating-button/ngt-floating-button.component.mjs +119 -0
- package/{esm2020 → esm2022}/components/ngt-floating-button/ngt-floating-button.module.mjs +9 -9
- package/{esm2020 → esm2022}/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.mjs +4 -4
- package/esm2022/components/ngt-form/ngt-form.component.mjs +207 -0
- package/{esm2020 → esm2022}/components/ngt-form/ngt-form.module.mjs +7 -7
- package/{esm2020 → esm2022}/components/ngt-header-nav/ngt-header-nav.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-header-nav/ngt-header-nav.module.mjs +5 -5
- package/{esm2020 → esm2022}/components/ngt-helper/ngt-helper.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-helper/ngt-helper.module.mjs +9 -9
- package/{esm2020 → esm2022}/components/ngt-input/ngt-input.component.mjs +8 -8
- package/{esm2020 → esm2022}/components/ngt-input/ngt-input.module.mjs +19 -19
- package/{esm2020 → esm2022}/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.mjs +5 -5
- package/esm2022/components/ngt-modal/ngt-modal.component.mjs +122 -0
- package/{esm2020 → esm2022}/components/ngt-modal/ngt-modal.module.mjs +11 -11
- package/{esm2020 → esm2022}/components/ngt-multi-select/ngt-multi-select.component.mjs +8 -8
- package/{esm2020 → esm2022}/components/ngt-multi-select/ngt-multi-select.module.mjs +19 -19
- package/{esm2020 → esm2022}/components/ngt-pagination/ngt-pagination.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-pagination/ngt-pagination.module.mjs +13 -13
- package/esm2022/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.mjs +59 -0
- package/{esm2020 → esm2022}/components/ngt-popover/ngt-popover.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-popover/ngt-popover.directive.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-popover/ngt-popover.module.mjs +10 -10
- package/{esm2020 → esm2022}/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.mjs +4 -4
- package/esm2022/components/ngt-portlet/ngt-portlet.component.mjs +74 -0
- package/{esm2020 → esm2022}/components/ngt-portlet/ngt-portlet.module.mjs +15 -15
- package/{esm2020 → esm2022}/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-radio-button/ngt-radio-button.component.mjs +8 -8
- package/{esm2020 → esm2022}/components/ngt-radio-button/ngt-radio-button.module.mjs +9 -9
- package/esm2022/components/ngt-section/ngt-section.component.mjs +151 -0
- package/{esm2020 → esm2022}/components/ngt-section/ngt-section.module.mjs +11 -11
- package/{esm2020 → esm2022}/components/ngt-select/ngt-select.component.mjs +8 -8
- package/{esm2020 → esm2022}/components/ngt-select/ngt-select.directive.mjs +10 -10
- package/{esm2020 → esm2022}/components/ngt-select/ngt-select.module.mjs +25 -25
- package/{esm2020 → esm2022}/components/ngt-shining/ngt-shining.component.mjs +5 -5
- package/{esm2020 → esm2022}/components/ngt-shining/ngt-shining.module.mjs +5 -5
- package/{esm2020 → esm2022}/components/ngt-sidenav/ngt-sidenav.component.mjs +6 -6
- package/{esm2020 → esm2022}/components/ngt-sidenav/ngt-sidenav.module.mjs +5 -5
- package/{esm2020 → esm2022}/components/ngt-slider/ngt-slider.component.mjs +9 -9
- package/{esm2020 → esm2022}/components/ngt-slider/ngt-slider.module.mjs +7 -7
- package/{esm2020 → esm2022}/components/ngt-svg/ngt-svg.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-svg/ngt-svg.module.mjs +8 -8
- package/{esm2020 → esm2022}/components/ngt-tag/ngt-tag.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-tag/ngt-tag.module.mjs +7 -7
- package/{esm2020 → esm2022}/components/ngt-textarea/ngt-textarea.component.mjs +8 -8
- package/{esm2020 → esm2022}/components/ngt-textarea/ngt-textarea.module.mjs +17 -17
- package/{esm2020 → esm2022}/components/ngt-validation/ngt-validation.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/ngt-validation/ngt-validation.module.mjs +5 -5
- package/{esm2020 → esm2022}/directives/ngt-stylizable/ngt-stylizable.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/ngt-stylizable/ngt-stylizable.module.mjs +5 -5
- package/{fesm2020 → fesm2022}/ng-tailwind.mjs +631 -644
- package/fesm2022/ng-tailwind.mjs.map +1 -0
- package/package.json +7 -16
- package/esm2020/components/ngt-checkbox/ngt-checkbox.component.mjs +0 -192
- package/esm2020/components/ngt-date/ngt-date.component.mjs +0 -435
- package/esm2020/components/ngt-date/ngt-date.module.mjs +0 -40
- package/esm2020/components/ngt-dropdown/ngt-dropdown.component.mjs +0 -205
- package/esm2020/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +0 -54
- package/esm2020/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +0 -66
- package/esm2020/components/ngt-dropzone/ngt-dropzone.module.mjs +0 -55
- package/esm2020/components/ngt-floating-button/ngt-floating-button.component.mjs +0 -119
- package/esm2020/components/ngt-form/ngt-form.component.mjs +0 -207
- package/esm2020/components/ngt-modal/ngt-modal.component.mjs +0 -122
- package/esm2020/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.mjs +0 -59
- package/esm2020/components/ngt-portlet/ngt-portlet.component.mjs +0 -74
- package/esm2020/components/ngt-section/ngt-section.component.mjs +0 -151
- package/fesm2015/ng-tailwind.mjs +0 -8913
- package/fesm2015/ng-tailwind.mjs.map +0 -1
- package/fesm2020/ng-tailwind.mjs.map +0 -1
- /package/{esm2020 → esm2022}/animations/ngt-angular-animations.mjs +0 -0
- /package/{esm2020 → esm2022}/base/ngt-base-ng-model.mjs +0 -0
- /package/{esm2020 → esm2022}/components/ngt-dropzone/ngt-dropzone.meta.mjs +0 -0
- /package/{esm2020 → esm2022}/enums/size.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/helpers/enum/enum.mjs +0 -0
- /package/{esm2020 → esm2022}/helpers/form/form.mjs +0 -0
- /package/{esm2020 → esm2022}/helpers/input-mask/input-mask.helper.mjs +0 -0
- /package/{esm2020 → esm2022}/helpers/promise/promise-helper.mjs +0 -0
- /package/{esm2020 → esm2022}/helpers/routing/route.mjs +0 -0
- /package/{esm2020 → esm2022}/helpers/uuid.mjs +0 -0
- /package/{esm2020 → esm2022}/ng-tailwind.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/services/http/ngt-attachment-http.service.mjs +0 -0
- /package/{esm2020 → esm2022}/services/http/ngt-http-form.service.mjs +0 -0
- /package/{esm2020 → esm2022}/services/http/ngt-http-resource.service.mjs +0 -0
- /package/{esm2020 → esm2022}/services/http/ngt-http-validation.service.mjs +0 -0
- /package/{esm2020 → esm2022}/services/http/ngt-http.service.mjs +0 -0
- /package/{esm2020 → esm2022}/services/http/ngt-translate.service.mjs +0 -0
- /package/{esm2020 → esm2022}/services/ngt-stylizable/ngt-stylizable.service.mjs +0 -0
- /package/{esm2020 → esm2022}/services/validation/ngt-ability-validation.service.mjs +0 -0
package/package.json
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-tailwind",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=15.0.0",
|
|
6
6
|
"@angular/core": ">=15.0.0",
|
|
7
|
-
"flatpickr": ">=4.6.3",
|
|
8
|
-
"ng2-flatpickr": ">=9.0.0",
|
|
9
7
|
"@ng-select/ng-select": ">=10.0.3",
|
|
10
|
-
"ngx-dropzone": ">=
|
|
11
|
-
"eloverde-doc-viewer": ">=1.1.3",
|
|
8
|
+
"ngx-dropzone": ">=3.1.0",
|
|
12
9
|
"viewerjs": ">=1.10.5",
|
|
13
10
|
"rxjs": ">=7.5.5",
|
|
14
|
-
"angular-svg-icon": "
|
|
11
|
+
"angular-svg-icon": ">=8.0.0"
|
|
15
12
|
},
|
|
16
13
|
"dependencies": {
|
|
17
14
|
"moment": "^2.29.4",
|
|
18
15
|
"inputmask": "^5.0.9",
|
|
19
16
|
"tslib": "^2.4.0"
|
|
20
17
|
},
|
|
21
|
-
"module": "
|
|
22
|
-
"es2020": "fesm2020/ng-tailwind.mjs",
|
|
23
|
-
"esm2020": "esm2020/ng-tailwind.mjs",
|
|
24
|
-
"fesm2020": "fesm2020/ng-tailwind.mjs",
|
|
25
|
-
"fesm2015": "fesm2015/ng-tailwind.mjs",
|
|
18
|
+
"module": "fesm2022/ng-tailwind.mjs",
|
|
26
19
|
"typings": "index.d.ts",
|
|
27
20
|
"exports": {
|
|
28
21
|
"./package.json": {
|
|
@@ -30,11 +23,9 @@
|
|
|
30
23
|
},
|
|
31
24
|
".": {
|
|
32
25
|
"types": "./index.d.ts",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"node": "./fesm2015/ng-tailwind.mjs",
|
|
37
|
-
"default": "./fesm2020/ng-tailwind.mjs"
|
|
26
|
+
"esm2022": "./esm2022/ng-tailwind.mjs",
|
|
27
|
+
"esm": "./esm2022/ng-tailwind.mjs",
|
|
28
|
+
"default": "./fesm2022/ng-tailwind.mjs"
|
|
38
29
|
}
|
|
39
30
|
},
|
|
40
31
|
"sideEffects": false
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
import { Component, Host, Input, Optional, Self, SkipSelf, ViewChild, } from '@angular/core';
|
|
3
|
-
import { ControlContainer, NgForm } from '@angular/forms';
|
|
4
|
-
import { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';
|
|
5
|
-
import { getEnumFromString } from '../../helpers/enum/enum';
|
|
6
|
-
import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/forms";
|
|
9
|
-
import * as i2 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
|
|
10
|
-
import * as i3 from "../ngt-form/ngt-form.component";
|
|
11
|
-
import * as i4 from "../ngt-section/ngt-section.component";
|
|
12
|
-
import * as i5 from "../ngt-modal/ngt-modal.component";
|
|
13
|
-
import * as i6 from "@angular/common";
|
|
14
|
-
import * as i7 from "../ngt-shining/ngt-shining.component";
|
|
15
|
-
import * as i8 from "../ngt-helper/ngt-helper.component";
|
|
16
|
-
export class NgtCheckboxComponent extends NgtBaseNgModel {
|
|
17
|
-
constructor(injector, renderer, formContainer, ngtStylizableDirective, ngtForm, ngtSection, ngtModal) {
|
|
18
|
-
super();
|
|
19
|
-
this.injector = injector;
|
|
20
|
-
this.renderer = renderer;
|
|
21
|
-
this.formContainer = formContainer;
|
|
22
|
-
this.ngtStylizableDirective = ngtStylizableDirective;
|
|
23
|
-
this.ngtForm = ngtForm;
|
|
24
|
-
this.ngtSection = ngtSection;
|
|
25
|
-
this.ngtModal = ngtModal;
|
|
26
|
-
this.shining = false;
|
|
27
|
-
this.isDisabled = false;
|
|
28
|
-
this.isClickDisabled = false;
|
|
29
|
-
this.mode = NgtCheckboxMode.DEFAULT;
|
|
30
|
-
this.helpTextColor = 'text-green-500';
|
|
31
|
-
this.helperAutoXReverse = true;
|
|
32
|
-
this.subscriptions = [];
|
|
33
|
-
if (this.ngtStylizableDirective) {
|
|
34
|
-
this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.ngtStyle = new NgtStylizableService();
|
|
38
|
-
}
|
|
39
|
-
this.ngtStyle.load(this.injector, 'NgtCheckbox', {
|
|
40
|
-
h: 'h-6',
|
|
41
|
-
w: 'w-6',
|
|
42
|
-
text: 'text-sm',
|
|
43
|
-
fontCase: '',
|
|
44
|
-
color: {
|
|
45
|
-
bg: 'bg-gray-500',
|
|
46
|
-
text: 'text-gray-500',
|
|
47
|
-
border: 'border-gray-500',
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
ngAfterViewInit() {
|
|
52
|
-
this.renderer.listen(this.element.nativeElement, 'change', (value) => {
|
|
53
|
-
this.onNativeChange(this.element.nativeElement.checked);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
ngOnChanges(changes) {
|
|
57
|
-
if (changes.mode) {
|
|
58
|
-
this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
ngOnDestroy() {
|
|
62
|
-
this.destroySubscriptions();
|
|
63
|
-
}
|
|
64
|
-
change(value) {
|
|
65
|
-
if (this.hasChangesBetweenModels()) {
|
|
66
|
-
this.element.nativeElement.checked = value;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
onNativeChange(value) {
|
|
70
|
-
if (this.hasChangesBetweenModels()) {
|
|
71
|
-
this.value = value;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
hasChangesBetweenModels() {
|
|
75
|
-
return this.element.nativeElement.checked !== this.value;
|
|
76
|
-
}
|
|
77
|
-
isToggleMode() {
|
|
78
|
-
return this.mode === NgtCheckboxMode.TOGGLE;
|
|
79
|
-
}
|
|
80
|
-
isSideToggleMode() {
|
|
81
|
-
return this.mode === NgtCheckboxMode.SIDE_TOGGLE;
|
|
82
|
-
}
|
|
83
|
-
isDefaultMode() {
|
|
84
|
-
return this.mode === NgtCheckboxMode.DEFAULT;
|
|
85
|
-
}
|
|
86
|
-
isRadioMode() {
|
|
87
|
-
return this.mode === NgtCheckboxMode.RADIO;
|
|
88
|
-
}
|
|
89
|
-
disabled() {
|
|
90
|
-
return this.isDisabled || this.isDisabledByParent();
|
|
91
|
-
}
|
|
92
|
-
isDisabledByParent() {
|
|
93
|
-
return this.ngtForm?.isDisabled
|
|
94
|
-
|| this.ngtSection?.isDisabled
|
|
95
|
-
|| this.ngtModal?.isDisabled;
|
|
96
|
-
}
|
|
97
|
-
destroySubscriptions() {
|
|
98
|
-
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
99
|
-
this.subscriptions = [];
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
NgtCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxComponent, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: i1.ControlContainer, host: true, optional: true }, { token: i2.NgtStylizableDirective, optional: true, self: true }, { token: i3.NgtFormComponent, optional: true, skipSelf: true }, { token: i4.NgtSectionComponent, optional: true, skipSelf: true }, { token: i5.NgtModalComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
103
|
-
NgtCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtCheckboxComponent, selector: "ngt-checkbox", inputs: { label: "label", shining: "shining", isDisabled: "isDisabled", isClickDisabled: "isClickDisabled", name: "name", mode: "mode", helpTitle: "helpTitle", helpTextColor: "helpTextColor", helpText: "helpText", helperAutoXReverse: "helperAutoXReverse" }, providers: [
|
|
104
|
-
NgtMakeProvider(NgtCheckboxComponent)
|
|
105
|
-
], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"flex items-center {{ disabled() ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"disabled() || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\" class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-14 h-7 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-sm text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-1.5 py-2\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: i8.NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
|
|
106
|
-
{ provide: ControlContainer, useExisting: NgForm }
|
|
107
|
-
], animations: [
|
|
108
|
-
trigger('slideLeftToRight', [
|
|
109
|
-
state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),
|
|
110
|
-
transition(':enter', [
|
|
111
|
-
animate(200)
|
|
112
|
-
])
|
|
113
|
-
]),
|
|
114
|
-
trigger('slideRightToLeft', [
|
|
115
|
-
state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),
|
|
116
|
-
transition(':enter', [
|
|
117
|
-
animate(200)
|
|
118
|
-
])
|
|
119
|
-
])
|
|
120
|
-
] });
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxComponent, decorators: [{
|
|
122
|
-
type: Component,
|
|
123
|
-
args: [{ selector: 'ngt-checkbox', providers: [
|
|
124
|
-
NgtMakeProvider(NgtCheckboxComponent)
|
|
125
|
-
], viewProviders: [
|
|
126
|
-
{ provide: ControlContainer, useExisting: NgForm }
|
|
127
|
-
], animations: [
|
|
128
|
-
trigger('slideLeftToRight', [
|
|
129
|
-
state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),
|
|
130
|
-
transition(':enter', [
|
|
131
|
-
animate(200)
|
|
132
|
-
])
|
|
133
|
-
]),
|
|
134
|
-
trigger('slideRightToLeft', [
|
|
135
|
-
state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),
|
|
136
|
-
transition(':enter', [
|
|
137
|
-
animate(200)
|
|
138
|
-
])
|
|
139
|
-
])
|
|
140
|
-
], template: "<label class=\"flex items-center {{ disabled() ? 'cursor-not-allowed opacity-50' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"disabled() || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\" class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-14 h-7 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-sm text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-1.5 py-2\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>\n" }]
|
|
141
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: i1.ControlContainer, decorators: [{
|
|
142
|
-
type: Optional
|
|
143
|
-
}, {
|
|
144
|
-
type: Host
|
|
145
|
-
}] }, { type: i2.NgtStylizableDirective, decorators: [{
|
|
146
|
-
type: Self
|
|
147
|
-
}, {
|
|
148
|
-
type: Optional
|
|
149
|
-
}] }, { type: i3.NgtFormComponent, decorators: [{
|
|
150
|
-
type: Optional
|
|
151
|
-
}, {
|
|
152
|
-
type: SkipSelf
|
|
153
|
-
}] }, { type: i4.NgtSectionComponent, decorators: [{
|
|
154
|
-
type: Optional
|
|
155
|
-
}, {
|
|
156
|
-
type: SkipSelf
|
|
157
|
-
}] }, { type: i5.NgtModalComponent, decorators: [{
|
|
158
|
-
type: Optional
|
|
159
|
-
}, {
|
|
160
|
-
type: SkipSelf
|
|
161
|
-
}] }]; }, propDecorators: { element: [{
|
|
162
|
-
type: ViewChild,
|
|
163
|
-
args: ['element', { static: true }]
|
|
164
|
-
}], label: [{
|
|
165
|
-
type: Input
|
|
166
|
-
}], shining: [{
|
|
167
|
-
type: Input
|
|
168
|
-
}], isDisabled: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}], isClickDisabled: [{
|
|
171
|
-
type: Input
|
|
172
|
-
}], name: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}], mode: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}], helpTitle: [{
|
|
177
|
-
type: Input
|
|
178
|
-
}], helpTextColor: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], helpText: [{
|
|
181
|
-
type: Input
|
|
182
|
-
}], helperAutoXReverse: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}] } });
|
|
185
|
-
export var NgtCheckboxMode;
|
|
186
|
-
(function (NgtCheckboxMode) {
|
|
187
|
-
NgtCheckboxMode["DEFAULT"] = "DEFAULT";
|
|
188
|
-
NgtCheckboxMode["TOGGLE"] = "TOGGLE";
|
|
189
|
-
NgtCheckboxMode["SIDE_TOGGLE"] = "SIDE_TOGGLE";
|
|
190
|
-
NgtCheckboxMode["RADIO"] = "RADIO";
|
|
191
|
-
})(NgtCheckboxMode || (NgtCheckboxMode = {}));
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1jaGVja2JveC9uZ3QtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWNoZWNrYm94L25ndC1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFSCxTQUFTLEVBRVQsSUFBSSxFQUVKLEtBQUssRUFHTCxRQUFRLEVBRVIsSUFBSSxFQUVKLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7Ozs7QUE4QjVGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxjQUFjO0lBa0JwRCxZQUNZLFFBQWtCLEVBQ2xCLFFBQW1CLEVBR3BCLGFBQStCLEVBRzlCLHNCQUE4QyxFQUc5QyxPQUF5QixFQUd6QixVQUErQixFQUcvQixRQUEyQjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQWxCQSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFHcEIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBRzlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFHOUMsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFHekIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFHL0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUEvQnZCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQyxTQUFJLEdBQW9CLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFFaEQsa0JBQWEsR0FBVyxnQkFBZ0IsQ0FBQztRQUV6Qyx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFJM0Msa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBdUI1QyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ3pFO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFO1lBQzdDLENBQUMsRUFBRSxLQUFLO1lBQ1IsQ0FBQyxFQUFFLEtBQUs7WUFDUixJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxFQUFFO1lBQ1osS0FBSyxFQUFFO2dCQUNILEVBQUUsRUFBRSxhQUFhO2dCQUNqQixJQUFJLEVBQUUsZUFBZTtnQkFDckIsTUFBTSxFQUFFLGlCQUFpQjthQUM1QjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7U0FDN0U7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSztRQUNmLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUM5QztJQUNMLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBSztRQUN2QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVNLHVCQUF1QjtRQUMxQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFTSxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDaEQsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVU7ZUFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVO2VBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDOztpSEF2SFEsb0JBQW9CO3FHQUFwQixvQkFBb0IseVNBdEJsQjtRQUNQLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQztLQUN4Qyx3TENqQ0wsdTBIQXdFQSxvZER0Q21CO1FBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtLQUNyRCxjQUNXO1FBQ1IsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ3hCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdDQUFnQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDZixDQUFDO1NBQ0wsQ0FBQztRQUVGLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUN4QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRixVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDO2FBQ2YsQ0FBQztTQUNMLENBQUM7S0FDTDsyRkFFUSxvQkFBb0I7a0JBekJoQyxTQUFTOytCQUNJLGNBQWMsYUFFYjt3QkFDUCxlQUFlLHNCQUFzQjtxQkFDeEMsaUJBQ2M7d0JBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtxQkFDckQsY0FDVzt3QkFDUixPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQ3hCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdDQUFnQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNqRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDOzZCQUNmLENBQUM7eUJBQ0wsQ0FBQzt3QkFFRixPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQ3hCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLCtCQUErQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNoRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDOzZCQUNmLENBQUM7eUJBQ0wsQ0FBQztxQkFDTDs7MEJBd0JJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUdoQixJQUFJOzswQkFBSSxRQUFROzswQkFHaEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBR3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUdwQixRQUFROzswQkFBSSxRQUFROzRDQWpDc0IsT0FBTztzQkFBckQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUV0QixLQUFLO3NCQUFwQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxrQkFBa0I7c0JBQWpDLEtBQUs7O0FBOEdWLE1BQU0sQ0FBTixJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsb0NBQWlCLENBQUE7SUFDakIsOENBQTJCLENBQUE7SUFDM0Isa0NBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTFcsZUFBZSxLQUFmLGVBQWUsUUFLMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndEJhc2VOZ01vZGVsLCBOZ3RNYWtlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL25ndC1iYXNlLW5nLW1vZGVsJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBnZXRFbnVtRnJvbVN0cmluZyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZW51bS9lbnVtJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbmd0LWZvcm0vbmd0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE5ndFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9uZ3Qtc2VjdGlvbi9uZ3Qtc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9uZ3QtbW9kYWwvbmd0LW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd0TWFrZVByb3ZpZGVyKE5ndENoZWNrYm94Q29tcG9uZW50KVxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfVxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdzbGlkZUxlZnRUb1JpZ2h0JywgW1xuICAgICAgICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTRweCkgcm90YXRlKDQ1ZGVnKScsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIGFuaW1hdGUoMjAwKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSksXG5cbiAgICAgICAgdHJpZ2dlcignc2xpZGVSaWdodFRvTGVmdCcsIFtcbiAgICAgICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDRweCkgcm90YXRlKDQ1ZGVnKScsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIGFuaW1hdGUoMjAwKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgTmd0QmFzZU5nTW9kZWwgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnZWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHNoaW5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0NsaWNrRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2RlOiBOZ3RDaGVja2JveE1vZGUgPSBOZ3RDaGVja2JveE1vZGUuREVGQVVMVDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUZXh0Q29sb3I6IHN0cmluZyA9ICd0ZXh0LWdyZWVuLTUwMCc7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUZXh0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBlckF1dG9YUmV2ZXJzZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgbmd0U3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxuICAgICAgICBwdWJsaWMgZm9ybUNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcblxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgbmd0U3R5bGl6YWJsZURpcmVjdGl2ZTogTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSxcblxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndEZvcm06IE5ndEZvcm1Db21wb25lbnQsXG5cbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RTZWN0aW9uOiBOZ3RTZWN0aW9uQ29tcG9uZW50LFxuXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXG4gICAgICAgIHByaXZhdGUgbmd0TW9kYWw6IE5ndE1vZGFsQ29tcG9uZW50XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ3RTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RDaGVja2JveCcsIHtcbiAgICAgICAgICAgIGg6ICdoLTYnLFxuICAgICAgICAgICAgdzogJ3ctNicsXG4gICAgICAgICAgICB0ZXh0OiAndGV4dC1zbScsXG4gICAgICAgICAgICBmb250Q2FzZTogJycsXG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS01MDAnLFxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICdib3JkZXItZ3JheS01MDAnLFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2NoYW5nZScsICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk5hdGl2ZUNoYW5nZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubW9kZSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gZ2V0RW51bUZyb21TdHJpbmcoY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSwgTmd0Q2hlY2tib3hNb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2UodmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2hhbmdlc0JldHdlZW5Nb2RlbHMoKSkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTmF0aXZlQ2hhbmdlKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NoYW5nZXNCZXR3ZWVuTW9kZWxzKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYXNDaGFuZ2VzQmV0d2Vlbk1vZGVscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgIT09IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVG9nZ2xlTW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gTmd0Q2hlY2tib3hNb2RlLlRPR0dMRTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTaWRlVG9nZ2xlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gTmd0Q2hlY2tib3hNb2RlLlNJREVfVE9HR0xFO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RlZmF1bHRNb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSBOZ3RDaGVja2JveE1vZGUuREVGQVVMVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSYWRpb01vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT09IE5ndENoZWNrYm94TW9kZS5SQURJTztcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkQnlQYXJlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRGlzYWJsZWRCeVBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmd0Rm9ybT8uaXNEaXNhYmxlZFxuICAgICAgICAgICAgfHwgdGhpcy5uZ3RTZWN0aW9uPy5pc0Rpc2FibGVkXG4gICAgICAgICAgICB8fCB0aGlzLm5ndE1vZGFsPy5pc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTmd0Q2hlY2tib3hNb2RlIHtcbiAgICBERUZBVUxUID0gJ0RFRkFVTFQnLFxuICAgIFRPR0dMRSA9ICdUT0dHTEUnLFxuICAgIFNJREVfVE9HR0xFID0gJ1NJREVfVE9HR0xFJyxcbiAgICBSQURJTyA9ICdSQURJTydcbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHt7IGRpc2FibGVkKCkgPyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnIDogJ2N1cnNvci1wb2ludGVyJyB9fVwiXG4gICAgW2NsYXNzLmZsZXgtY29sXT0naXNUb2dnbGVNb2RlKCknIHN0eWxlPVwibWF4LXdpZHRoOiBtYXgtY29udGVudDtcIj5cbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW25hbWVdPSduYW1lJyBjbGFzcz1cImhpZGRlblwiIChbbmdNb2RlbF0pPSd2YWx1ZScgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgaXNDbGlja0Rpc2FibGVkXCJcbiAgICAgICAgI2VsZW1lbnQ+XG5cbiAgICA8c3BhbiAqbmdJZj1cImlzVG9nZ2xlTW9kZSgpICYmIGxhYmVsXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3RleHQnLCAnZm9udENhc2UnXSkgfX0gbWItMlwiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDxuZ3QtaGVscGVyICpuZ0lmPVwiaGVscFRleHRcIiBbaGVscFRpdGxlXT1cImhlbHBUaXRsZVwiIFtpY29uQ29sb3JdPVwiaGVscFRleHRDb2xvclwiXG4gICAgICAgICAgICBbYXV0b1hSZXZlcnNlXT1cImhlbHBlckF1dG9YUmV2ZXJzZVwiIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICAgICAge3sgaGVscFRleHQgfX1cbiAgICAgICAgPC9uZ3QtaGVscGVyPlxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlZmF1bHRNb2RlKClcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cInRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2Utb3V0XCIgY2xhc3M9XCJ7eyB2YWx1ZSA/IG5ndFN0eWxlLmNvbXBpbGUoWydjb2xvci5iZyddKSA6ICdiZy13aGl0ZScgfX0gIHt7IG5ndFN0eWxlLmNvbXBpbGUoWydoJywgJ3cnXSkgfX1cbiAgICAgICAgICAgICAgICAgICAgc2hhZG93IHJvdW5kZWQgYm9yZGVyIGJvcmRlci1ncmF5LTQwMCB7eyAhc2hpbmluZyA/ICdmbGV4IGp1c3RpZnktY2VudGVyJyA6ICdoaWRkZW4nIH19XCI+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50IHNlbGYtY2VudGVyIHRleHQtd2hpdGUgcG9pbnRlci1ldmVudHMtbm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAgMTFsMi0yIDUgNUwxOCAzbDIgMkw3IDE4elwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSYWRpb01vZGUoKVwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1vdXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ7eyB2YWx1ZSA/IG5ndFN0eWxlLmNvbXBpbGUoWydjb2xvci5ib3JkZXInLCAnY29sb3IudGV4dCddKSA6ICdib3JkZXItZ3JheS01MDAnIH19XG4gICAgICAgICAgICAgICAgICAgIHNoYWRvdyB3LTYgaC02IHJvdW5kZWQtZnVsbCBib3JkZXItMiBib3JkZXItZ3JheS00MDAge3sgIXNoaW5pbmcgPyAnZmxleCBqdXN0aWZ5LWNlbnRlcicgOiAnaGlkZGVuJyB9fVwiPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInZhbHVlXCIgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXIgaC0zXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyOS4xMDcgMjkuMTA3XCI+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC41NTQgMEM2LjU2MSAwIDAgNi41NjIgMCAxNC41NTJjMCA3Ljk5NiA2LjU2MSAxNC41NTUgMTQuNTU0IDE0LjU1NSA3Ljk5NiAwIDE0LjU1My02LjU1OSAxNC41NTMtMTQuNTU1QzI5LjEwNiA2LjU2MiAyMi41NSAwIDE0LjU1NCAwelwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUb2dnbGVNb2RlKCkgfHwgaXNTaWRlVG9nZ2xlTW9kZSgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGFkb3cgdy0xNCBoLTcgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItZ3JheS00MDAge3sgc2hpbmluZyA/ICdoaWRkZW4nIDogJ2ZsZXgnIH19XCJcbiAgICAgICAgICAgIFtjbGFzcy5qdXN0aWZ5LWVuZF09XCJ2YWx1ZVwiIHN0eWxlPVwicGFkZGluZzogMXB4O1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggdGV4dC1zbSB0ZXh0LXdoaXRlIHt7IG5ndFN0eWxlLmNvbXBpbGUoWydjb2xvci5iZyddKSB9fSBwb2ludGVyLWV2ZW50cy1ub25lIHJvdW5kZWQtZnVsbCBweC0xLjUgcHktMlwiXG4gICAgICAgICAgICAgICAgQHNsaWRlTGVmdFRvUmlnaHQ+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCBzZWxmLWNlbnRlclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAxMWwyLTIgNSA1TDE4IDNsMiAyTDcgMTh6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZhbHVlXCIgY2xhc3M9XCJmbGV4IHRleHQteGwgdGV4dC13aGl0ZSBiZy1ncmF5LTMwMCBwb2ludGVyLWV2ZW50cy1ub25lIHJvdW5kZWQtZnVsbCBweC0xIHB5LTNcIlxuICAgICAgICAgICAgICAgIEBzbGlkZVJpZ2h0VG9MZWZ0PlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImhlcm9pY29uLXVpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYuMjQgMTQuODNhMSAxIDAgMCAxLTEuNDEgMS40MUwxMiAxMy40MWwtMi44MyAyLjgzYTEgMSAwIDAgMS0xLjQxLTEuNDFMMTAuNTkgMTIgNy43NiA5LjE3YTEgMSAwIDAgMSAxLjQxLTEuNDFMMTIgMTAuNTlsMi44My0yLjgzYTEgMSAwIDAgMSAxLjQxIDEuNDFMMTMuNDEgMTJsMi44MyAyLjgzelwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPSdsYWJlbCAmJiAhc2hpbmluZyAmJiAhaXNUb2dnbGVNb2RlKCknPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInt7IG5ndFN0eWxlLmNvbXBpbGUoWyd0ZXh0JywgJ2ZvbnRDYXNlJ10pIH19IG1sLTJcIj57eyBsYWJlbCB9fTwvc3Bhbj5cblxuICAgICAgICA8bmd0LWhlbHBlciAqbmdJZj1cImhlbHBUZXh0XCIgW2hlbHBUaXRsZV09XCJoZWxwVGl0bGVcIiBbaWNvbkNvbG9yXT1cImhlbHBUZXh0Q29sb3JcIlxuICAgICAgICAgICAgW2F1dG9YUmV2ZXJzZV09XCJoZWxwZXJBdXRvWFJldmVyc2VcIiBjbGFzcz1cIm1sLTFcIj5cbiAgICAgICAgICAgIHt7IGhlbHBUZXh0IH19XG4gICAgICAgIDwvbmd0LWhlbHBlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbGFiZWw+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9J3NoaW5pbmcnPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxuZ3Qtc2hpbmluZyBjbGFzcz1cInctMTYgaC0xMlwiPjwvbmd0LXNoaW5pbmc+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|