@colijnit/corecomponents_v12 12.0.16 → 12.0.19
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/bundles/colijnit-corecomponents_v12.umd.js +741 -247
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.d.ts +9 -8
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +10 -9
- package/esm2015/lib/components/base/base-input.component.js +29 -9
- package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +313 -0
- package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +19 -0
- package/esm2015/lib/components/carousel-3d/carouselItem.js +54 -0
- package/esm2015/lib/components/co-dialog/co-dialog.module.js +1 -3
- package/esm2015/lib/components/co-kanban/co-kanban.component.js +2 -5
- package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +30 -8
- package/esm2015/lib/components/drop-down-list/drop-down.module.js +9 -7
- package/esm2015/lib/components/form/form.component.js +3 -22
- package/esm2015/lib/components/form/form.module.js +4 -4
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +15 -5
- package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +6 -14
- package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +24 -29
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +10 -7
- package/esm2015/lib/components/input-listbox/input-listbox.component.js +27 -6
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +9 -9
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +13 -5
- package/esm2015/lib/components/input-text/input-text.component.js +22 -81
- package/esm2015/lib/components/input-text/input-text.module.js +16 -13
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +62 -0
- package/esm2015/lib/components/input-textarea/input-textarea.module.js +23 -0
- package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +37 -9
- package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +9 -7
- package/esm2015/lib/components/validation-error/validation-error.component.js +23 -0
- package/esm2015/lib/components/validation-error/validation-error.module.js +19 -0
- package/esm2015/public-api.js +6 -1
- package/fesm2015/colijnit-corecomponents_v12.js +761 -268
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/base/base-input.component.d.ts +7 -2
- package/lib/components/button/style/_layout.scss +0 -1
- package/lib/components/button/style/_theme.scss +2 -3
- package/lib/components/button-drop-down/style/_layout.scss +0 -2
- package/lib/components/button-drop-down/style/_theme.scss +0 -2
- package/lib/components/button-drop-down/style/material.scss +1 -0
- package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -0
- package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -0
- package/lib/components/carousel-3d/carouselItem.d.ts +13 -0
- package/lib/components/carousel-3d/style/_layout.scss +62 -0
- package/lib/components/carousel-3d/style/_material-definition.scss +6 -0
- package/lib/components/carousel-3d/style/_theme.scss +4 -0
- package/lib/components/carousel-3d/style/material.scss +5 -0
- package/lib/components/co-dialog/style/_layout.scss +0 -3
- package/lib/components/co-dialog/style/_theme.scss +0 -3
- package/lib/components/co-dialog/style/material.scss +1 -0
- package/lib/components/co-kanban/style/_layout.scss +0 -3
- package/lib/components/co-kanban/style/_theme.scss +0 -4
- package/lib/components/co-kanban/style/material.scss +1 -0
- package/lib/components/co-rich-text-editor/style/_layout.scss +0 -2
- package/lib/components/co-rich-text-editor/style/_theme.scss +0 -2
- package/lib/components/co-rich-text-editor/style/material.scss +1 -0
- package/lib/components/collapsible/style/_layout.scss +0 -3
- package/lib/components/collapsible/style/_theme.scss +0 -4
- package/lib/components/collapsible/style/material.scss +1 -0
- package/lib/components/drop-down-list/drop-down-list.component.d.ts +12 -2
- package/lib/components/drop-down-list/style/_layout.scss +8 -3
- package/lib/components/drop-down-list/style/_theme.scss +0 -2
- package/lib/components/drop-down-list/style/material.scss +2 -0
- package/lib/components/form/form.component.d.ts +2 -3
- package/lib/components/grid/style/_layout.scss +0 -2
- package/lib/components/grid/style/_theme.scss +0 -2
- package/lib/components/grid/style/material.scss +1 -0
- package/lib/components/input-checkbox/input-checkbox.component.d.ts +9 -2
- package/lib/components/input-checkbox/style/_layout.scss +0 -2
- package/lib/components/input-checkbox/style/_theme.scss +0 -2
- package/lib/components/input-checkbox/style/material.scss +1 -0
- package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +4 -6
- package/lib/components/input-checkbox-multi-select/style/_layout.scss +0 -2
- package/lib/components/input-checkbox-multi-select/style/_theme.scss +0 -2
- package/lib/components/input-checkbox-multi-select/style/material.scss +1 -0
- package/lib/components/input-combo-box/input-combo-box.component.d.ts +6 -7
- package/lib/components/input-combo-box/style/_layout.scss +10 -3
- package/lib/components/input-combo-box/style/_material-definition.scss +0 -7
- package/lib/components/input-combo-box/style/_theme.scss +0 -2
- package/lib/components/input-combo-box/style/material.scss +9 -0
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +4 -3
- package/lib/components/input-date-picker/style/_layout.scss +4 -3
- package/lib/components/input-date-picker/style/_theme.scss +0 -2
- package/lib/components/input-date-picker/style/material.scss +2 -0
- package/lib/components/input-listbox/input-listbox.component.d.ts +12 -1
- package/lib/components/input-listbox/style/_layout.scss +2 -2
- package/lib/components/input-listbox/style/_theme.scss +0 -2
- package/lib/components/input-listbox/style/material.scss +2 -0
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +5 -5
- package/lib/components/input-number-picker/style/_layout.scss +0 -2
- package/lib/components/input-number-picker/style/_theme.scss +0 -2
- package/lib/components/input-number-picker/style/material.scss +1 -0
- package/lib/components/input-radio-button/input-radio-button.component.d.ts +7 -2
- package/lib/components/input-radio-button/style/_layout.scss +0 -2
- package/lib/components/input-radio-button/style/_theme.scss +0 -2
- package/lib/components/input-radio-button/style/material.scss +1 -0
- package/lib/components/input-search/style/_layout.scss +0 -3
- package/lib/components/input-search/style/_theme.scss +0 -4
- package/lib/components/input-search/style/material.scss +1 -0
- package/lib/components/input-text/input-text.component.d.ts +6 -30
- package/lib/components/input-text/style/_layout.scss +14 -3
- package/lib/components/input-text/style/_material-definition.scss +4 -3
- package/lib/components/input-text/style/_theme.scss +0 -2
- package/lib/components/input-text/style/material.scss +3 -0
- package/lib/components/input-textarea/input-textarea.component.d.ts +18 -0
- package/lib/components/input-textarea/input-textarea.module.d.ts +2 -0
- package/lib/components/input-textarea/style/_layout.scss +20 -0
- package/lib/components/input-textarea/style/_material-definition.scss +4 -0
- package/lib/components/input-textarea/style/_theme.scss +8 -0
- package/lib/components/input-textarea/style/material.scss +7 -0
- package/lib/components/multi-select-list/multi-select-list.component.d.ts +13 -2
- package/lib/components/multi-select-list/style/_layout.scss +10 -3
- package/lib/components/multi-select-list/style/_theme.scss +0 -2
- package/lib/components/multi-select-list/style/material.scss +2 -0
- package/lib/components/pivot/style/_layout.scss +0 -2
- package/lib/components/pivot/style/_theme.scss +0 -2
- package/lib/components/pivot/style/material.scss +1 -0
- package/lib/components/simple-grid/style/_layout.scss +0 -2
- package/lib/components/simple-grid/style/_theme.scss +0 -2
- package/lib/components/simple-grid/style/material.scss +1 -0
- package/lib/components/validation-error/style/_layout.scss +37 -0
- package/lib/components/validation-error/style/_material-definition.scss +9 -0
- package/lib/components/validation-error/style/_theme.scss +21 -0
- package/lib/components/validation-error/style/material.scss +5 -0
- package/lib/components/validation-error/validation-error.component.d.ts +4 -0
- package/lib/components/validation-error/validation-error.module.d.ts +2 -0
- package/lib/style/_input.mixins.scss +70 -281
- package/lib/style/_variables.scss +2 -0
- package/package.json +5 -2
- package/public-api.d.ts +5 -0
- package/esm2015/lib/core/enum/float-label-type.enum.js +0 -7
- package/esm2015/lib/core/enum/input-text-type.enum.js +0 -6
- package/esm2015/lib/core/model/numerical-range.js +0 -14
- package/lib/components/drop-down-list/drop-down-list.component.scss +0 -0
- package/lib/core/enum/float-label-type.enum.d.ts +0 -5
- package/lib/core/enum/input-text-type.enum.d.ts +0 -4
- package/lib/core/model/numerical-range.d.ts +0 -7
- package/lib/style/_extendables.scss +0 -32
- package/lib/style/_responsiveness.mixins.scss +0 -64
- package/lib/style/_responsiveness.scss +0 -4
- package/lib/style/_transition.mixins.scss +0 -21
|
@@ -1,15 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, forwardRef, HostBinding, Input, Optional, ViewEncapsulation } from "@angular/core";
|
|
2
2
|
import { COMPONENT_INTERFACE_NAME } from "../base/component-interface-name";
|
|
3
3
|
import { BaseInputComponent } from "../base/base-input.component";
|
|
4
4
|
import { CheckBoxSelectionService } from "@syncfusion/ej2-angular-dropdowns";
|
|
5
|
+
import { FormInputUserModelChangeListenerService } from "../../core/service/form-input-user-change-listener.service";
|
|
6
|
+
import { NgZoneWrapperService } from "../../core/service/ng-zone-wrapper.service";
|
|
7
|
+
import { FormComponent } from "../form/form.component";
|
|
5
8
|
export class DropDownListComponent extends BaseInputComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(
|
|
9
|
+
constructor(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
10
|
+
super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
11
|
+
this.formComponent = formComponent;
|
|
12
|
+
this.changeDetector = changeDetector;
|
|
13
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
14
|
+
this.formUserChangeListener = formUserChangeListener;
|
|
15
|
+
this.ngZoneWrapper = ngZoneWrapper;
|
|
16
|
+
this.elementRef = elementRef;
|
|
8
17
|
/**
|
|
9
18
|
* In the form { text: 'name', value: 'id' }
|
|
10
19
|
* Where 'text' is showing in the dropdown and 'id' used for the model binding
|
|
11
20
|
*/
|
|
12
21
|
this.fields = {};
|
|
22
|
+
super._markAsOnPush();
|
|
13
23
|
}
|
|
14
24
|
showClass() {
|
|
15
25
|
return true;
|
|
@@ -28,15 +38,20 @@ DropDownListComponent.decorators = [
|
|
|
28
38
|
[dataSource]="collection"
|
|
29
39
|
[value]="model"
|
|
30
40
|
[fields]="fields"
|
|
31
|
-
[placeholder]="
|
|
32
|
-
[cssClass]="'co-drop-down-list'"
|
|
41
|
+
[placeholder]="placeholder"
|
|
33
42
|
[readonly]="readonly"
|
|
34
43
|
[itemTemplate]="itemTemplate"
|
|
35
44
|
[headerTemplate]="headerTemplate"
|
|
36
45
|
[valueTemplate]="valueTemplate"
|
|
46
|
+
[ngModel]="model"
|
|
47
|
+
(ngModelChange)="modelChange.emit($event)"
|
|
37
48
|
(valueChange)="handleValueChanged($event)"
|
|
49
|
+
showClearButton="true"
|
|
50
|
+
floatLabelType="Auto"
|
|
38
51
|
>
|
|
39
52
|
</ejs-dropdownlist>
|
|
53
|
+
<div class="required-indicator"></div>
|
|
54
|
+
<ng-template #validationError></ng-template>
|
|
40
55
|
`,
|
|
41
56
|
providers: [
|
|
42
57
|
CheckBoxSelectionService,
|
|
@@ -45,17 +60,24 @@ DropDownListComponent.decorators = [
|
|
|
45
60
|
useExisting: forwardRef(() => DropDownListComponent)
|
|
46
61
|
}
|
|
47
62
|
],
|
|
48
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
49
63
|
encapsulation: ViewEncapsulation.None
|
|
50
64
|
},] }
|
|
51
65
|
];
|
|
66
|
+
DropDownListComponent.ctorParameters = () => [
|
|
67
|
+
{ type: FormComponent, decorators: [{ type: Optional }] },
|
|
68
|
+
{ type: ChangeDetectorRef },
|
|
69
|
+
{ type: ComponentFactoryResolver },
|
|
70
|
+
{ type: FormInputUserModelChangeListenerService },
|
|
71
|
+
{ type: NgZoneWrapperService },
|
|
72
|
+
{ type: ElementRef }
|
|
73
|
+
];
|
|
52
74
|
DropDownListComponent.propDecorators = {
|
|
53
75
|
collection: [{ type: Input }],
|
|
54
76
|
fields: [{ type: Input }],
|
|
55
|
-
|
|
77
|
+
placeholder: [{ type: Input }],
|
|
56
78
|
itemTemplate: [{ type: Input }],
|
|
57
79
|
headerTemplate: [{ type: Input }],
|
|
58
80
|
valueTemplate: [{ type: Input }],
|
|
59
81
|
showClass: [{ type: HostBinding, args: ["class.co-drop-down-list",] }]
|
|
60
82
|
};
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3AtZG93bi1saXN0L2Ryb3AtZG93bi1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFFUixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDbkgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBaUNyRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBQXVCO0lBNkJoRSxZQUNxQixhQUE0QixFQUNyQyxjQUFpQyxFQUNqQyx3QkFBa0QsRUFDbEQsc0JBQWdFLEVBQ2hFLGFBQW9DLEVBQ3ZDLFVBQXVCO1FBRTlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBUGhGLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMEM7UUFDaEUsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3ZDLGVBQVUsR0FBVixVQUFVLENBQWE7UUE5QmhDOzs7V0FHRztRQUVJLFdBQU0sR0FBVyxFQUFFLENBQUM7UUE0QnpCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBZE0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQWNNLGtCQUFrQixDQUFDLEtBQVU7UUFDbEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7OztZQTVFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUO2dCQUNELFNBQVMsRUFBRTtvQkFDVCx3QkFBd0I7b0JBQ3hCO3dCQUNFLE9BQU8sRUFBRSx3QkFBd0I7d0JBQ2pDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7cUJBQ3JEO2lCQUNGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFoQ08sYUFBYSx1QkErRGhCLFFBQVE7WUEvRVgsaUJBQWlCO1lBRWpCLHdCQUF3QjtZQVlsQix1Q0FBdUM7WUFDdkMsb0JBQW9CO1lBWjFCLFVBQVU7Ozt5QkFnRFQsS0FBSztxQkFPTCxLQUFLOzBCQUdMLEtBQUs7MkJBR0wsS0FBSzs2QkFHTCxLQUFLOzRCQUdMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSBcIi4uL2Jhc2UvY29tcG9uZW50LWludGVyZmFjZS1uYW1lXCI7XHJcbmltcG9ydCB7QmFzZUlucHV0Q29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NoZWNrQm94U2VsZWN0aW9uU2VydmljZX0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRyb3Bkb3duc1wiO1xyXG5pbXBvcnQge0Zvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9uZy16b25lLXdyYXBwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0Zvcm1Db21wb25lbnR9IGZyb20gXCIuLi9mb3JtL2Zvcm0uY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1kcm9wLWRvd24tbGlzdFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZWpzLWRyb3Bkb3dubGlzdFxyXG4gICAgICBbZGF0YVNvdXJjZV09XCJjb2xsZWN0aW9uXCJcclxuICAgICAgW3ZhbHVlXT1cIm1vZGVsXCJcclxuICAgICAgW2ZpZWxkc109XCJmaWVsZHNcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgIFt2YWx1ZVRlbXBsYXRlXT1cInZhbHVlVGVtcGxhdGVcIlxyXG4gICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgIHNob3dDbGVhckJ1dHRvbj1cInRydWVcIlxyXG4gICAgICBmbG9hdExhYmVsVHlwZT1cIkF1dG9cIlxyXG4gICAgPlxyXG4gICAgPC9lanMtZHJvcGRvd25saXN0PlxyXG4gICAgPGRpdiBjbGFzcz1cInJlcXVpcmVkLWluZGljYXRvclwiPjwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICN2YWxpZGF0aW9uRXJyb3I+PC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ2hlY2tCb3hTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyb3BEb3duTGlzdENvbXBvbmVudClcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3BEb3duTGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudDxhbnk+IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29sbGVjdGlvbjogYW55W107XHJcblxyXG4gIC8qKlxyXG4gICAqIEluIHRoZSBmb3JtIHsgdGV4dDogJ25hbWUnLCB2YWx1ZTogJ2lkJyB9XHJcbiAgICogV2hlcmUgJ3RleHQnIGlzIHNob3dpbmcgaW4gdGhlIGRyb3Bkb3duIGFuZCAnaWQnIHVzZWQgZm9yIHRoZSBtb2RlbCBiaW5kaW5nXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmllbGRzOiBPYmplY3QgPSB7fTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdmFsdWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZHJvcC1kb3duLWxpc3RcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBmb3JtQ29tcG9uZW50OiBGb3JtQ29tcG9uZW50LFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByb3RlY3RlZCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyPzogRm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIG5nWm9uZVdyYXBwZXI/OiBOZ1pvbmVXcmFwcGVyU2VydmljZSxcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmPzogRWxlbWVudFJlZixcclxuICApIHtcclxuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXIsIG5nWm9uZVdyYXBwZXIsIGVsZW1lbnRSZWYpO1xyXG4gICAgc3VwZXIuX21hcmtBc09uUHVzaCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVZhbHVlQ2hhbmdlZCh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMubW9kZWwpIHtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5uZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { NgModule } from
|
|
2
|
-
import { CommonModule } from
|
|
3
|
-
import { BaseModule } from
|
|
4
|
-
import { DropDownListComponent } from
|
|
5
|
-
import { DropDownListModule, MultiSelectModule } from
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { BaseModule } from "../base/base.module";
|
|
4
|
+
import { DropDownListComponent } from "./drop-down-list.component";
|
|
5
|
+
import { DropDownListModule, MultiSelectModule } from "@syncfusion/ej2-angular-dropdowns";
|
|
6
|
+
import { FormsModule } from "@angular/forms";
|
|
6
7
|
export class DropDownModule {
|
|
7
8
|
}
|
|
8
9
|
DropDownModule.decorators = [
|
|
@@ -11,10 +12,11 @@ DropDownModule.decorators = [
|
|
|
11
12
|
BaseModule,
|
|
12
13
|
CommonModule,
|
|
13
14
|
DropDownListModule,
|
|
14
|
-
MultiSelectModule
|
|
15
|
+
MultiSelectModule,
|
|
16
|
+
FormsModule
|
|
15
17
|
],
|
|
16
18
|
declarations: [DropDownListComponent],
|
|
17
19
|
exports: [DropDownListComponent]
|
|
18
20
|
},] }
|
|
19
21
|
];
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kcm9wLWRvd24tbGlzdC9kcm9wLWRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFhM0MsTUFBTSxPQUFPLGNBQWM7OztZQVgxQixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFVBQVU7b0JBQ1YsWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLGlCQUFpQjtvQkFDakIsV0FBVztpQkFDZDtnQkFDRCxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7YUFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGV9IGZyb20gXCIuLi9iYXNlL2Jhc2UubW9kdWxlXCI7XHJcbmltcG9ydCB7RHJvcERvd25MaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9kcm9wLWRvd24tbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEcm9wRG93bkxpc3RNb2R1bGUsIE11bHRpU2VsZWN0TW9kdWxlfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZHJvcGRvd25zXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBCYXNlTW9kdWxlLFxyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBEcm9wRG93bkxpc3RNb2R1bGUsXHJcbiAgICAgICAgTXVsdGlTZWxlY3RNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtEcm9wRG93bkxpc3RDb21wb25lbnRdLFxyXG4gICAgZXhwb3J0czogW0Ryb3BEb3duTGlzdENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3BEb3duTW9kdWxlIHtcclxufVxyXG4iXX0=
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Component, EventEmitter, HostBinding, HostListener, Input, Output } from "@angular/core";
|
|
2
2
|
import { FormGroup } from "@angular/forms";
|
|
3
3
|
import { Subject } from "rxjs";
|
|
4
|
-
import { FormMasterService } from
|
|
5
|
-
import { StringUtils } from '../../core/utils/string-utils';
|
|
4
|
+
import { FormMasterService } from "../../core/service/form-master.service";
|
|
6
5
|
const FormGroupStatus = {
|
|
7
6
|
VALID: "VALID",
|
|
8
7
|
INVALID: "INVALID",
|
|
@@ -134,33 +133,15 @@ export class FormComponent {
|
|
|
134
133
|
for (const errorKey in this.formGroup.controls[controlKey].errors) {
|
|
135
134
|
if (this.formGroup.controls[controlKey].errors.hasOwnProperty(errorKey)) {
|
|
136
135
|
const error = this.formGroup.controls[controlKey].errors[errorKey];
|
|
137
|
-
const errorText = this._getValidationErrorText(error);
|
|
138
|
-
const controlElement = comp.elementRef.nativeElement;
|
|
139
136
|
if (controlKey === key) {
|
|
140
|
-
|
|
137
|
+
comp.showValidationError(error);
|
|
141
138
|
}
|
|
142
|
-
comp.redErrorBackground = true;
|
|
143
139
|
}
|
|
144
140
|
}
|
|
145
141
|
}
|
|
146
142
|
}
|
|
147
143
|
}
|
|
148
144
|
}
|
|
149
|
-
_getValidationErrorText(validationError) {
|
|
150
|
-
return "";
|
|
151
|
-
if (StringUtils.IsString(validationError)) {
|
|
152
|
-
// return this._dictionary.get(validationError);
|
|
153
|
-
}
|
|
154
|
-
else if (validationError.message) {
|
|
155
|
-
if (validationError.placeholder) {
|
|
156
|
-
// see e.g. maxStringLengthValidator, where we return this {message: string, placeholder: string} object shape as validation error obj
|
|
157
|
-
// return this._dictionary.get(validationError.message, true, validationError.placeholder);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
// return this._dictionary.get(validationError.message);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
145
|
_setFirstInvalidElementOnMaster() {
|
|
165
146
|
const elements = Array.from(this._componentMap);
|
|
166
147
|
const len = elements.length;
|
|
@@ -195,4 +176,4 @@ FormComponent.propDecorators = {
|
|
|
195
176
|
invalidSubmit: [{ type: Output }],
|
|
196
177
|
onEnterKey: [{ type: HostListener, args: ['keyup.enter', ['$event'],] }]
|
|
197
178
|
};
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQWMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUQsTUFBTSxlQUFlLEdBQVE7SUFDekIsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztJQUNsQixPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtDQUN2QixDQUFDO0FBTUYseUVBQXlFO0FBQ3pFLE1BQU0sT0FBTyxhQUFhO0lBa0R0QixZQUNZLFdBQThCO1FBQTlCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQXBDbkMsYUFBUSxHQUE4QixJQUFJLFlBQVksRUFBZSxDQUFDO1FBR3RFLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFbEMsdUNBQXVDO1FBRXZCLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFM0UsaUZBQWlGO1FBRWpFLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RSwrQ0FBK0M7UUFFL0IsbUJBQWMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUdwRSxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXBGLHlKQUF5SjtRQUNsSixjQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFHekMsa0JBQWEsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVsRCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBTW5DLGdFQUFnRTtRQUN4RCxrQkFBYSxHQUF5QyxJQUFJLEdBQUcsQ0FBa0MsRUFBRSxDQUFDLENBQUM7UUFLdkcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQXJERCxJQUNJLFFBQVEsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQStDRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxLQUFLLGVBQWUsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLGVBQWUsQ0FBQyxRQUFRLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksQ0FBQyxLQUFLLGVBQWUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQWtDO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0wsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUFrQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxlQUFlLENBQUMsU0FBa0M7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELDZJQUE2STtJQUN0SSxtQkFBbUI7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztTQUMxQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRU0sT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QyxDQUFDO0lBR0QsVUFBVSxDQUFDLEtBQW9CO1FBQzNCLE1BQU0sTUFBTSxHQUE2QixLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN2RCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssZUFBZSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ2hGLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELG1CQUFtQjtJQUNaLE1BQU0sQ0FBQyxvQkFBNkIsS0FBSztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6QjtRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQjthQUFNO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzdCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sa0NBQWtDLENBQUMsR0FBVztRQUNqRCxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNwRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUNwQyxNQUFNLElBQUksR0FBNEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3pFLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFO3dCQUMvRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7NEJBQ3JFLE1BQU0sS0FBSyxHQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDeEUsTUFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUM5RCxNQUFNLGNBQWMsR0FBZ0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7NEJBQ2xFLElBQUksVUFBVSxLQUFLLEdBQUcsRUFBRTtnQ0FDcEIsb0hBQW9IOzZCQUN2SDs0QkFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO3lCQUNsQztxQkFDSjtpQkFDSjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsZUFBb0I7UUFDaEQsT0FBTyxFQUFFLENBQUM7UUFDVixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDdkMsZ0RBQWdEO1NBQ25EO2FBQU0sSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFO1lBQ2hDLElBQUksZUFBZSxDQUFDLFdBQVcsRUFBRTtnQkFDN0Isc0lBQXNJO2dCQUN0SSwyRkFBMkY7YUFDOUY7aUJBQU07Z0JBQ0gsd0RBQXdEO2FBQzNEO1NBQ0o7SUFDTCxDQUFDO0lBRU8sK0JBQStCO1FBQ25DLE1BQU0sUUFBUSxHQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sR0FBRyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBVyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQTRCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssU0FBUyxFQUFFO2dCQUNoSCxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNoSCxPQUFPO2FBQ1Y7U0FDSjtJQUNMLENBQUM7OztZQS9NSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFFBQVEsRUFBRSwyQkFBMkI7YUFDeEM7OztZQWJRLGlCQUFpQjs7O3VCQWdCckIsS0FBSzt5QkFVTCxLQUFLO3VCQUdMLE1BQU07d0JBR04sV0FBVyxTQUFDLGlCQUFpQjswQkFJN0IsTUFBTTt3QkFJTixNQUFNOzZCQUlOLE1BQU07NkJBR04sTUFBTTs0QkFNTixNQUFNO3lCQWtGTixZQUFZLFNBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybU1hc3RlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2UvZm9ybS1tYXN0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0cmluZ1V0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9zdHJpbmctdXRpbHMnO1xyXG5cclxuY29uc3QgRm9ybUdyb3VwU3RhdHVzOiBhbnkgPSB7XHJcbiAgICBWQUxJRDogXCJWQUxJRFwiLFxyXG4gICAgSU5WQUxJRDogXCJJTlZBTElEXCIsXHJcbiAgICBQRU5ESU5HOiBcIlBFTkRJTkdcIixcclxuICAgIERJU0FCTEVEOiBcIkRJU0FCTEVEXCJcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tZm9ybVwiLFxyXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcclxufSlcclxuLy8gVGhlIGlPbmVKUyB2ZXJzaW9uIG9mIHRoZSBmb3JtIHRhZywgcmVwcmVzZW50aW5nIGEgZm9ybSB3aXRoIGNvbnRyb2xzLlxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgcmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9yZWFkb25seSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMucmVhZG9ubHlDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGtlZXBJblZpZXc6IEVsZW1lbnQ7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGb3JtQ29udHJvbD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Db250cm9sPigpO1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLnN1Ym1pdHRlZFwiKVxyXG4gICAgcHVibGljIHN1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vIEVtaXRzIHRydWUgYWZ0ZXIgZXZlcnkgdmFsaWQgc3VibWl0LlxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRTdWJtaXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvLyBFbWl0cyB2b2lkIGFmdGVyIGV2ZXJ5ICdzdWJtaXQnIChlaXRoZXIgdmFsaWQgb3IgaW52YWxpZCwgZWcgYSBzdWJtaXQgYXR0ZW1wdClcclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGFueVN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8vIG5vdGU6IGEgZGlzYWJsZWQgY29udHJvbCBpcyBjb25zaWRlcmVkIHZhbGlkXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSB2YWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHJlYWRvbmx5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgLy8gVGhlIEFuZ3VsYXIgaW4tbWVtb3J5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmb3JtIGNvbnRyb2xzIG9uIHRoaXMgZm9ybS4gUGVyZm9ybXMgYWN0dWFsIGxvZ2ljLCBlbWl0cyAnaW5wdXQgZmllbGQnIChDb250cm9sKSBzdGF0ZSBjaGFuZ2UgZXZlbnRzLCBldGMuXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBpbnZhbGlkU3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBwcml2YXRlIF9yZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VTdWI6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX3N0YXR1c0NoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIHByaXZhdGUgX2luaXQ6IGJvb2xlYW47XHJcblxyXG4gICAgLy8ga2V5OiBuYW1lIG9mIGZvcm0gaW5wdXRzLCB2YWx1ZXM6IHRoZSBjb21wb25lbnQgZm9yIHRoYXQgbmFtZVxyXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50TWFwOiBNYXA8c3RyaW5nLCBCYXNlSW5wdXRDb21wb25lbnQ8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgQmFzZUlucHV0Q29tcG9uZW50PGFueT4+KFtdKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9mb3JtTWFzdGVyOiBGb3JtTWFzdGVyU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5fZm9ybU1hc3Rlci5hZGRTbGF2ZSh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faW5pdCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdChlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9zdGF0dXNDaGFuZ2VTdWIgPSB0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZSA9PT0gRm9ybUdyb3VwU3RhdHVzLlZBTElEIHx8IGUgPT09IEZvcm1Hcm91cFN0YXR1cy5ESVNBQkxFRCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGl0eUNoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGUgPT09IEZvcm1Hcm91cFN0YXR1cy5JTlZBTElEKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkaXR5Q2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlQ2hhbmdlU3ViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9zdGF0dXNDaGFuZ2VTdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudE1hcC5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudE1hcCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9mb3JtTWFzdGVyLnJlbW92ZVNsYXZlKHRoaXMpO1xyXG4gICAgICAgIHRoaXMua2VlcEluVmlldyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRm9ybUlucHV0KGZvcm1JbnB1dDogQmFzZUlucHV0Q29tcG9uZW50PGFueT4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKGZvcm1JbnB1dC5uYW1lLCBmb3JtSW5wdXQuY29udHJvbCk7XHJcbiAgICAgICAgaWYgKGZvcm1JbnB1dC5lbGVtZW50UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudE1hcC5zZXQoZm9ybUlucHV0Lm5hbWUsIGZvcm1JbnB1dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGb3JtSW5wdXQoZm9ybUlucHV0OiBCYXNlSW5wdXRDb21wb25lbnQ8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woZm9ybUlucHV0Lm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudE1hcC5kZWxldGUoZm9ybUlucHV0Lm5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVGb3JtSW5wdXQoZm9ybUlucHV0OiBCYXNlSW5wdXRDb21wb25lbnQ8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnNldENvbnRyb2woZm9ybUlucHV0Lm5hbWUsIGZvcm1JbnB1dC5jb250cm9sKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBNYXJrcyBmb3JtIGFzIHRvdWNoZWQsIGNoZWNrcyB2YWxpZGl0eSBhbmQgcmV0dXJucyB0cnVlIGlmIGluZGVlZCB2YWxpZCwgZWxzZSBmYWxzZS4gVmlzdWFscyBvZiBmb3JtIGlucHV0cyBjYW4gY2hhbmdlIGFmdGVyIGNhbGxpbmcgdGhpcy5cclxuICAgIHB1YmxpYyBjaGVja1VwZGF0ZVZhbGlkaXR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRGaXJzdEludmFsaWRFbGVtZW50T25NYXN0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1RvdWNoZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnRvdWNoZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXQgJiYgdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAuZW50ZXInLCBbJyRldmVudCddKVxyXG4gICAgb25FbnRlcktleShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldDogSFRNTEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+ZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGlmIChbJ1RFWFRBUkVBJywgJ1NFTEVDVCddLmluZGV4T2YodGFyZ2V0LnRhZ05hbWUpICE9PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0YXJnZXQuaXNDb250ZW50RWRpdGFibGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGFyZ2V0LnRhZ05hbWUgPT09ICdCVVRUT04tQ09MSUpOJyAmJiB0YXJnZXQuZ2V0QXR0cmlidXRlKCd0eXBlJykgPT09ICdzdWJtaXQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zdWJtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyByZXR1cm5zIHZhbGlkaXR5XHJcbiAgICBwdWJsaWMgc3VibWl0KHRocm91Z2hGb3JtTWFzdGVyOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKCF0aHJvdWdoRm9ybU1hc3Rlcikge1xyXG4gICAgICAgICAgICB0aGlzLmFueVN1Ym1pdC5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrVXBkYXRlVmFsaWRpdHkoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkU3VibWl0LmVtaXQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoIXRocm91Z2hGb3JtTWFzdGVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmludmFsaWRTdWJtaXQubmV4dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd0Vycm9yVG9vbHRpcE9uRm9ybUdyb3VwQ29udHJvbChrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGZvciAoY29uc3QgY29udHJvbEtleSBpbiB0aGlzLmZvcm1Hcm91cC5jb250cm9scykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuaGFzT3duUHJvcGVydHkoY29udHJvbEtleSkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wb25lbnRNYXAuaGFzKGNvbnRyb2xLZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcDogQmFzZUlucHV0Q29tcG9uZW50PGFueT4gPSB0aGlzLl9jb21wb25lbnRNYXAuZ2V0KGNvbnRyb2xLZXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXJyb3JLZXkgaW4gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbY29udHJvbEtleV0uZXJyb3JzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sS2V5XS5lcnJvcnMuaGFzT3duUHJvcGVydHkoZXJyb3JLZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcjogYW55ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbY29udHJvbEtleV0uZXJyb3JzW2Vycm9yS2V5XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dDogc3RyaW5nID0gdGhpcy5fZ2V0VmFsaWRhdGlvbkVycm9yVGV4dChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sRWxlbWVudDogSFRNTEVsZW1lbnQgPSBjb21wLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sS2V5ID09PSBrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLl90b29sdGlwU2VydmljZS5zcGF3bkVycm9yVG9vbHRpcChjb250cm9sRWxlbWVudCwgZXJyb3JUZXh0LCB0aGlzLmtlZXBJblZpZXcgPyB0aGlzLmtlZXBJblZpZXcgOiB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5yZWRFcnJvckJhY2tncm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFZhbGlkYXRpb25FcnJvclRleHQodmFsaWRhdGlvbkVycm9yOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIGlmIChTdHJpbmdVdGlscy5Jc1N0cmluZyh2YWxpZGF0aW9uRXJyb3IpKSB7XHJcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5LmdldCh2YWxpZGF0aW9uRXJyb3IpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdGlvbkVycm9yLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25FcnJvci5wbGFjZWhvbGRlcikge1xyXG4gICAgICAgICAgICAgICAgLy8gc2VlIGUuZy4gbWF4U3RyaW5nTGVuZ3RoVmFsaWRhdG9yLCB3aGVyZSB3ZSByZXR1cm4gdGhpcyB7bWVzc2FnZTogc3RyaW5nLCBwbGFjZWhvbGRlcjogc3RyaW5nfSBvYmplY3Qgc2hhcGUgYXMgdmFsaWRhdGlvbiBlcnJvciBvYmpcclxuICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5LmdldCh2YWxpZGF0aW9uRXJyb3IubWVzc2FnZSwgdHJ1ZSwgdmFsaWRhdGlvbkVycm9yLnBsYWNlaG9sZGVyKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5LmdldCh2YWxpZGF0aW9uRXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0Rmlyc3RJbnZhbGlkRWxlbWVudE9uTWFzdGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzOiBhbnkgPSBBcnJheS5mcm9tKHRoaXMuX2NvbXBvbmVudE1hcCk7XHJcbiAgICAgICAgY29uc3QgbGVuOiBudW1iZXIgPSBlbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0gZWxlbWVudHNbaV1bMF07XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlOiBCYXNlSW5wdXRDb21wb25lbnQ8YW55PiA9IGVsZW1lbnRzW2ldWzFdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1trZXldLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSBcImludmFsaWRcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9ybU1hc3Rlci5zZXRGaXJzdEludmFsaWRGaWVsZCh0aGlzLCBrZXksIHZhbHVlLmVsZW1lbnRSZWYgPyB2YWx1ZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQWMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RSxNQUFNLGVBQWUsR0FBUTtJQUN6QixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxVQUFVO0NBQ3ZCLENBQUM7QUFNRix5RUFBeUU7QUFDekUsTUFBTSxPQUFPLGFBQWE7SUFrRHRCLFlBQ1ksV0FBOEI7UUFBOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBcENuQyxhQUFRLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7UUFHdEUsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVsQyx1Q0FBdUM7UUFFdkIsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzRSxpRkFBaUY7UUFFakUsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpFLCtDQUErQztRQUUvQixtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBR3BFLG1CQUFjLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFcEYseUpBQXlKO1FBQ2xKLGNBQVMsR0FBYyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMs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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0Jhc2VJbnB1dENvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS1pbnB1dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9mb3JtLW1hc3Rlci5zZXJ2aWNlXCI7XHJcblxyXG5jb25zdCBGb3JtR3JvdXBTdGF0dXM6IGFueSA9IHtcclxuICAgIFZBTElEOiBcIlZBTElEXCIsXHJcbiAgICBJTlZBTElEOiBcIklOVkFMSURcIixcclxuICAgIFBFTkRJTkc6IFwiUEVORElOR1wiLFxyXG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIlxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJjby1mb3JtXCIsXHJcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxyXG59KVxyXG4vLyBUaGUgaU9uZUpTIHZlcnNpb24gb2YgdGhlIGZvcm0gdGFnLCByZXByZXNlbnRpbmcgYSBmb3JtIHdpdGggY29udHJvbHMuXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5yZWFkb25seUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMga2VlcEluVmlldzogRWxlbWVudDtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEZvcm1Db250cm9sPiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUNvbnRyb2w+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3Muc3VibWl0dGVkXCIpXHJcbiAgICBwdWJsaWMgc3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gRW1pdHMgdHJ1ZSBhZnRlciBldmVyeSB2YWxpZCBzdWJtaXQuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSB2YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8vIEVtaXRzIHZvaWQgYWZ0ZXIgZXZlcnkgJ3N1Ym1pdCcgKGVpdGhlciB2YWxpZCBvciBpbnZhbGlkLCBlZyBhIHN1Ym1pdCBhdHRlbXB0KVxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYW55U3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLy8gbm90ZTogYSBkaXNhYmxlZCBjb250cm9sIGlzIGNvbnNpZGVyZWQgdmFsaWRcclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVhZG9ubHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICAvLyBUaGUgQW5ndWxhciBpbi1tZW1vcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZvcm0gY29udHJvbHMgb24gdGhpcyBmb3JtLiBQZXJmb3JtcyBhY3R1YWwgbG9naWMsIGVtaXRzICdpbnB1dCBmaWVsZCcgKENvbnRyb2wpIHN0YXRlIGNoYW5nZSBldmVudHMsIGV0Yy5cclxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGludmFsaWRTdWJtaXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF92YWx1ZUNoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBfc3RhdHVzQ2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5pdDogYm9vbGVhbjtcclxuXHJcbiAgICAvLyBrZXk6IG5hbWUgb2YgZm9ybSBpbnB1dHMsIHZhbHVlczogdGhlIGNvbXBvbmVudCBmb3IgdGhhdCBuYW1lXHJcbiAgICBwcml2YXRlIF9jb21wb25lbnRNYXA6IE1hcDxzdHJpbmcsIEJhc2VJbnB1dENvbXBvbmVudDxhbnk+PiA9IG5ldyBNYXA8c3RyaW5nLCBCYXNlSW5wdXRDb21wb25lbnQ8YW55Pj4oW10pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2Zvcm1NYXN0ZXI6IEZvcm1NYXN0ZXJTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLl9mb3JtTWFzdGVyLmFkZFNsYXZlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9pbml0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZVN1YiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3N0YXR1c0NoYW5nZVN1YiA9IHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlID09PSBGb3JtR3JvdXBTdGF0dXMuVkFMSUQgfHwgZSA9PT0gRm9ybUdyb3VwU3RhdHVzLkRJU0FCTEVEKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkaXR5Q2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZSA9PT0gRm9ybUdyb3VwU3RhdHVzLklOVkFMSUQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRpdHlDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fdmFsdWVDaGFuZ2VTdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX3N0YXR1c0NoYW5nZVN1Yikge1xyXG4gICAgICAgICAgICB0aGlzLl9zdGF0dXNDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50TWFwLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50TWFwID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1NYXN0ZXIucmVtb3ZlU2xhdmUodGhpcyk7XHJcbiAgICAgICAgdGhpcy5rZWVwSW5WaWV3ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGb3JtSW5wdXQoZm9ybUlucHV0OiBCYXNlSW5wdXRDb21wb25lbnQ8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woZm9ybUlucHV0Lm5hbWUsIGZvcm1JbnB1dC5jb250cm9sKTtcclxuICAgICAgICBpZiAoZm9ybUlucHV0LmVsZW1lbnRSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50TWFwLnNldChmb3JtSW5wdXQubmFtZSwgZm9ybUlucHV0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUZvcm1JbnB1dChmb3JtSW5wdXQ6IEJhc2VJbnB1dENvbXBvbmVudDxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbChmb3JtSW5wdXQubmFtZSk7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50TWFwLmRlbGV0ZShmb3JtSW5wdXQubmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUZvcm1JbnB1dChmb3JtSW5wdXQ6IEJhc2VJbnB1dENvbXBvbmVudDxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuc2V0Q29udHJvbChmb3JtSW5wdXQubmFtZSwgZm9ybUlucHV0LmNvbnRyb2wpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE1hcmtzIGZvcm0gYXMgdG91Y2hlZCwgY2hlY2tzIHZhbGlkaXR5IGFuZCByZXR1cm5zIHRydWUgaWYgaW5kZWVkIHZhbGlkLCBlbHNlIGZhbHNlLiBWaXN1YWxzIG9mIGZvcm0gaW5wdXRzIGNhbiBjaGFuZ2UgYWZ0ZXIgY2FsbGluZyB0aGlzLlxyXG4gICAgcHVibGljIGNoZWNrVXBkYXRlVmFsaWRpdHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldEZpcnN0SW52YWxpZEVsZW1lbnRPbk1hc3RlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzVG91Y2hlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudG91Y2hlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5pdCAmJiB0aGlzLmZvcm1Hcm91cC52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cC5lbnRlcicsIFsnJGV2ZW50J10pXHJcbiAgICBvbkVudGVyS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD5ldmVudC50YXJnZXQ7XHJcbiAgICAgICAgaWYgKFsnVEVYVEFSRUEnLCAnU0VMRUNUJ10uaW5kZXhPZih0YXJnZXQudGFnTmFtZSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRhcmdldC5pc0NvbnRlbnRFZGl0YWJsZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0YXJnZXQudGFnTmFtZSA9PT0gJ0JVVFRPTi1DT0xJSk4nICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PT0gJ3N1Ym1pdCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJldHVybnMgdmFsaWRpdHlcclxuICAgIHB1YmxpYyBzdWJtaXQodGhyb3VnaEZvcm1NYXN0ZXI6IGJvb2xlYW4gPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAoIXRocm91Z2hGb3JtTWFzdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW55U3VibWl0LmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tVcGRhdGVWYWxpZGl0eSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRTdWJtaXQuZW1pdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghdGhyb3VnaEZvcm1NYXN0ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZFN1Ym1pdC5uZXh0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93RXJyb3JUb29sdGlwT25Gb3JtR3JvdXBDb250cm9sKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sS2V5IGluIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShjb250cm9sS2V5KSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudE1hcC5oYXMoY29udHJvbEtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wOiBCYXNlSW5wdXRDb21wb25lbnQ8YW55PiA9IHRoaXMuX2NvbXBvbmVudE1hcC5nZXQoY29udHJvbEtleSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBlcnJvcktleSBpbiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sS2V5XS5lcnJvcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xLZXldLmVycm9ycy5oYXNPd25Qcm9wZXJ0eShlcnJvcktleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yOiBhbnkgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sS2V5XS5lcnJvcnNbZXJyb3JLZXldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xLZXkgPT09IGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnNob3dWYWxpZGF0aW9uRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldEZpcnN0SW52YWxpZEVsZW1lbnRPbk1hc3RlcigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50czogYW55ID0gQXJyYXkuZnJvbSh0aGlzLl9jb21wb25lbnRNYXApO1xyXG4gICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gZWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IGVsZW1lbnRzW2ldWzBdO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZTogQmFzZUlucHV0Q29tcG9uZW50PGFueT4gPSBlbGVtZW50c1tpXVsxXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGtleSkgJiYgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNba2V5XS5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gXCJpbnZhbGlkXCIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1NYXN0ZXIuc2V0Rmlyc3RJbnZhbGlkRmllbGQodGhpcywga2V5LCB2YWx1ZS5lbGVtZW50UmVmID8gdmFsdWUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IDogdW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NgModule } from
|
|
2
|
-
import { CommonModule } from
|
|
3
|
-
import { FormComponent } from
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { FormComponent } from "./form.component";
|
|
4
4
|
import { FormMasterService } from "../../core/service/form-master.service";
|
|
5
5
|
export class FormModule {
|
|
6
6
|
}
|
|
@@ -20,4 +20,4 @@ FormModule.decorators = [
|
|
|
20
20
|
]
|
|
21
21
|
},] }
|
|
22
22
|
];
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFnQnpFLE1BQU0sT0FBTyxVQUFVOzs7WUFkdEIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixhQUFhO2lCQUNkO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7aUJBQ2xCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxhQUFhO2lCQUNkO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL2Zvcm0tbWFzdGVyLnNlcnZpY2VcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEZvcm1Db21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRm9ybU1hc3RlclNlcnZpY2VcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEZvcm1Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtTW9kdWxlIHtcclxufVxyXG4iXX0=
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, Input, Optional, Output, ViewEncapsulation } from "@angular/core";
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, EventEmitter, forwardRef, HostBinding, Input, Optional, Output, ViewEncapsulation } from "@angular/core";
|
|
2
2
|
import { BaseInputComponent } from "../base/base-input.component";
|
|
3
3
|
import { FormComponent } from "../form/form.component";
|
|
4
4
|
import { FormInputUserModelChangeListenerService } from "../../core/service/form-input-user-change-listener.service";
|
|
5
5
|
import { NgZoneWrapperService } from "../../core/service/ng-zone-wrapper.service";
|
|
6
6
|
import { COMPONENT_INTERFACE_NAME } from "../base/component-interface-name";
|
|
7
|
+
import { IconCacheService } from "../icon/icon-cache.service";
|
|
7
8
|
export class InputCheckboxComponent extends BaseInputComponent {
|
|
8
|
-
constructor(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper) {
|
|
9
|
-
super(changeDetector, formUserChangeListener, ngZoneWrapper);
|
|
9
|
+
constructor(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
10
|
+
super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
10
11
|
this.formComponent = formComponent;
|
|
12
|
+
this.iconCacheService = iconCacheService;
|
|
13
|
+
this.changeDetector = changeDetector;
|
|
14
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
15
|
+
this.formUserChangeListener = formUserChangeListener;
|
|
16
|
+
this.ngZoneWrapper = ngZoneWrapper;
|
|
17
|
+
this.elementRef = elementRef;
|
|
11
18
|
this.modelChange = new EventEmitter();
|
|
12
19
|
}
|
|
13
20
|
showClass() {
|
|
@@ -44,9 +51,12 @@ InputCheckboxComponent.decorators = [
|
|
|
44
51
|
];
|
|
45
52
|
InputCheckboxComponent.ctorParameters = () => [
|
|
46
53
|
{ type: FormComponent, decorators: [{ type: Optional }] },
|
|
54
|
+
{ type: IconCacheService },
|
|
47
55
|
{ type: ChangeDetectorRef },
|
|
56
|
+
{ type: ComponentFactoryResolver },
|
|
48
57
|
{ type: FormInputUserModelChangeListenerService },
|
|
49
|
-
{ type: NgZoneWrapperService }
|
|
58
|
+
{ type: NgZoneWrapperService },
|
|
59
|
+
{ type: ElementRef }
|
|
50
60
|
];
|
|
51
61
|
InputCheckboxComponent.propDecorators = {
|
|
52
62
|
name: [{ type: Input }],
|
|
@@ -55,4 +65,4 @@ InputCheckboxComponent.propDecorators = {
|
|
|
55
65
|
modelChange: [{ type: Output }],
|
|
56
66
|
showClass: [{ type: HostBinding, args: ["class.co-input-checkbox",] }]
|
|
57
67
|
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWNoZWNrYm94L2lucHV0LWNoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ25ILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBbUI1RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQTJCO0lBa0JyRSxZQUNxQixhQUE0QixFQUN4QyxnQkFBa0MsRUFDL0IsY0FBaUMsRUFDakMsd0JBQWtELEVBQ2xELHNCQUFnRSxFQUNoRSxhQUFvQyxFQUN2QyxVQUF1QjtRQUU5QixLQUFLLENBQUMsY0FBYyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQVJoRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQy9CLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMEM7UUFDaEUsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3ZDLGVBQVUsR0FBVixVQUFVLENBQWE7UUFkekIsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQWlCeEUsQ0FBQztJQWRNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFjTSxRQUFRLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWM7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs7WUF4REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFFBQVEsRUFBRTs7Ozs7OztHQU9UO2dCQUNELFNBQVMsRUFBRSxDQUFDO3dCQUNWLE9BQU8sRUFBRSx3QkFBd0I7d0JBQ2pDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7cUJBQ3RELENBQUM7Z0JBQ0YsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0Qk8sYUFBYSx1QkEwQ2hCLFFBQVE7WUF0Q0wsZ0JBQWdCO1lBakJ0QixpQkFBaUI7WUFFakIsd0JBQXdCO1lBWWxCLHVDQUF1QztZQUN2QyxvQkFBb0I7WUFaMUIsVUFBVTs7O21CQWtDVCxLQUFLO29CQUdMLEtBQUs7dUJBR0wsS0FBSzswQkFHTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Jhc2VJbnB1dENvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS1pbnB1dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi4vZm9ybS9mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Zvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9uZy16b25lLXdyYXBwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSBcIi4uL2Jhc2UvY29tcG9uZW50LWludGVyZmFjZS1uYW1lXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1pbnB1dC1jaGVja2JveFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZWpzLWNoZWNrYm94IFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPjwvZWpzLWNoZWNrYm94PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRDaGVja2JveENvbXBvbmVudClcclxuICB9XSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50PGJvb2xlYW4+IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNzc0NsYXNzOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1pbnB1dC1jaGVja2JveFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGZvcm1Db21wb25lbnQ6IEZvcm1Db21wb25lbnQsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcm90ZWN0ZWQgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lcj86IEZvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBuZ1pvbmVXcmFwcGVyPzogTmdab25lV3JhcHBlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZj86IEVsZW1lbnRSZWYsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3RvciwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyLCBuZ1pvbmVXcmFwcGVyLCBlbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNb2RlbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5uZXh0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU1vZGVsQ2hhbmdlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMucmVhZG9ubHkgJiYgIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5zZXRNb2RlbCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, HostBinding, Input, Optional, ViewEncapsulation } from "@angular/core";
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, forwardRef, HostBinding, Input, Optional, ViewEncapsulation } from "@angular/core";
|
|
2
2
|
import { BaseInputComponent } from "../base/base-input.component";
|
|
3
3
|
import { COMPONENT_INTERFACE_NAME } from "../base/component-interface-name";
|
|
4
4
|
import { FormInputUserModelChangeListenerService } from "../../core/service/form-input-user-change-listener.service";
|
|
5
5
|
import { NgZoneWrapperService } from "../../core/service/ng-zone-wrapper.service";
|
|
6
6
|
import { FormComponent } from "../form/form.component";
|
|
7
7
|
export class InputCheckboxMultiSelectComponent extends BaseInputComponent {
|
|
8
|
-
constructor(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
9
|
-
super(changeDetector, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
8
|
+
constructor(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
9
|
+
super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
10
10
|
this.formComponent = formComponent;
|
|
11
11
|
this.changeDetector = changeDetector;
|
|
12
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
12
13
|
this.formUserChangeListener = formUserChangeListener;
|
|
13
14
|
this.ngZoneWrapper = ngZoneWrapper;
|
|
14
15
|
this.elementRef = elementRef;
|
|
@@ -17,16 +18,6 @@ export class InputCheckboxMultiSelectComponent extends BaseInputComponent {
|
|
|
17
18
|
showClass() {
|
|
18
19
|
return true;
|
|
19
20
|
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
this.elementRef = undefined;
|
|
22
|
-
super.ngOnDestroy();
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
super.ngOnInit();
|
|
26
|
-
}
|
|
27
|
-
ngAfterViewInit() {
|
|
28
|
-
super.ngAfterViewInit();
|
|
29
|
-
}
|
|
30
21
|
}
|
|
31
22
|
InputCheckboxMultiSelectComponent.decorators = [
|
|
32
23
|
{ type: Component, args: [{
|
|
@@ -53,6 +44,7 @@ InputCheckboxMultiSelectComponent.decorators = [
|
|
|
53
44
|
InputCheckboxMultiSelectComponent.ctorParameters = () => [
|
|
54
45
|
{ type: FormComponent, decorators: [{ type: Optional }] },
|
|
55
46
|
{ type: ChangeDetectorRef },
|
|
47
|
+
{ type: ComponentFactoryResolver },
|
|
56
48
|
{ type: FormInputUserModelChangeListenerService },
|
|
57
49
|
{ type: NgZoneWrapperService },
|
|
58
50
|
{ type: ElementRef }
|
|
@@ -65,4 +57,4 @@ InputCheckboxMultiSelectComponent.propDecorators = {
|
|
|
65
57
|
filterPlaceholder: [{ type: Input }],
|
|
66
58
|
showClass: [{ type: HostBinding, args: ["class.co-input-checkbox-multi-select",] }]
|
|
67
59
|
};
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2hlY2tib3gtbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1jaGVja2JveC1tdWx0aS1zZWxlY3QvaW5wdXQtY2hlY2tib3gtbXVsdGktc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ25ILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQXVCckQsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLGtCQUF1QjtJQXNCNUUsWUFDcUIsYUFBNEIsRUFDckMsY0FBaUMsRUFDakMsd0JBQWtELEVBQ2xELHNCQUFnRSxFQUNoRSxhQUFvQyxFQUN2QyxVQUF1QjtRQUU5QixLQUFLLENBQUMsY0FBYyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQVBoRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTBDO1FBQ2hFLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFhO1FBRzlCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBZE0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7O1lBekNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO2dCQUMxQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtnQkFDRCxTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUsd0JBQXdCO3dCQUNqQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO3FCQUNqRSxDQUFDO2dCQUNGLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUV0Qzs7O1lBdEJPLGFBQWEsdUJBOENoQixRQUFRO1lBNURYLGlCQUFpQjtZQUVqQix3QkFBd0I7WUFVbEIsdUNBQXVDO1lBQ3ZDLG9CQUFvQjtZQVYxQixVQUFVOzs7cUJBb0NULEtBQUs7cUJBR0wsS0FBSzt1QkFHTCxLQUFLOzBCQUdMLEtBQUs7Z0NBR0wsS0FBSzt3QkFHTCxXQUFXLFNBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7QmFzZUlucHV0Q29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gXCIuLi9iYXNlL2NvbXBvbmVudC1pbnRlcmZhY2UtbmFtZVwiO1xuaW1wb3J0IHtGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2V9IGZyb20gXCIuLi8uLi9jb3JlL3NlcnZpY2UvZm9ybS1pbnB1dC11c2VyLWNoYW5nZS1saXN0ZW5lci5zZXJ2aWNlXCI7XG5pbXBvcnQge05nWm9uZVdyYXBwZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL25nLXpvbmUtd3JhcHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0Zvcm1Db21wb25lbnR9IGZyb20gXCIuLi9mb3JtL2Zvcm0uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjby1pbnB1dC1jaGVja2JveC1tdWx0aS1zZWxlY3RcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZWpzLW11bHRpc2VsZWN0XG4gICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICBbZGF0YVNvdXJjZV09XCJzb3VyY2VcIlxuICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgICBtb2RlPVwiQ2hlY2tCb3hcIlxuICAgICAgIHNob3dEcm9wRG93bkljb249XCJ0cnVlXCJcbiAgICAgICBbc2hvd1NlbGVjdEFsbF09XCJmYWxzZVwiXG4gICAgICAgW2ZpbHRlckJhclBsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyXCJcbiAgICA+PC9lanMtbXVsdGlzZWxlY3Q+XG4gIGAsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBDT01QT05FTlRfSU5URVJGQUNFX05BTUUsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRDaGVja2JveE11bHRpU2VsZWN0Q29tcG9uZW50KVxuICB9XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcblxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENoZWNrYm94TXVsdGlTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQ8YW55PiB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNvdXJjZTogT2JqZWN0W10gfCBzdHJpbmdbXSB8IG51bWJlcltdIHwgYm9vbGVhbltdXG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpZWxkczogT2JqZWN0XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkOiBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWx0ZXJQbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWlucHV0LWNoZWNrYm94LW11bHRpLXNlbGVjdFwiKVxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGZvcm1Db21wb25lbnQ6IEZvcm1Db21wb25lbnQsXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJvdGVjdGVkIGZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXI/OiBGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG5nWm9uZVdyYXBwZXI/OiBOZ1pvbmVXcmFwcGVyU2VydmljZSxcbiAgICBwdWJsaWMgZWxlbWVudFJlZj86IEVsZW1lbnRSZWYsXG4gICkge1xuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXIsIG5nWm9uZVdyYXBwZXIsIGVsZW1lbnRSZWYpO1xuICAgIHN1cGVyLl9tYXJrQXNPblB1c2goKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,33 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, forwardRef, HostBinding, Input, Optional, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
2
2
|
import { BaseInputComponent } from "../base/base-input.component";
|
|
3
3
|
import { FormInputUserModelChangeListenerService } from "../../core/service/form-input-user-change-listener.service";
|
|
4
4
|
import { NgZoneWrapperService } from "../../core/service/ng-zone-wrapper.service";
|
|
5
5
|
import { FormComponent } from "../form/form.component";
|
|
6
6
|
import { COMPONENT_INTERFACE_NAME } from "../base/component-interface-name";
|
|
7
7
|
export class InputComboBoxComponent extends BaseInputComponent {
|
|
8
|
-
constructor(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
9
|
-
super(changeDetector, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
8
|
+
constructor(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
9
|
+
super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
10
10
|
this.formComponent = formComponent;
|
|
11
11
|
this.changeDetector = changeDetector;
|
|
12
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
12
13
|
this.formUserChangeListener = formUserChangeListener;
|
|
13
14
|
this.ngZoneWrapper = ngZoneWrapper;
|
|
14
15
|
this.elementRef = elementRef;
|
|
15
16
|
this.shopPopup = true;
|
|
17
|
+
this.customHeight = true;
|
|
16
18
|
super._markAsOnPush();
|
|
17
19
|
}
|
|
18
20
|
showClass() {
|
|
19
21
|
return true;
|
|
20
22
|
}
|
|
21
|
-
ngOnDestroy() {
|
|
22
|
-
this.elementRef = undefined;
|
|
23
|
-
super.ngOnDestroy();
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
super.ngOnInit();
|
|
27
|
-
}
|
|
28
|
-
ngAfterViewInit() {
|
|
29
|
-
super.ngAfterViewInit();
|
|
30
|
-
}
|
|
31
23
|
onFocus() {
|
|
32
24
|
if (this.shopPopup && this.model === undefined) {
|
|
33
25
|
this.combo.showPopup();
|
|
@@ -38,40 +30,43 @@ InputComboBoxComponent.decorators = [
|
|
|
38
30
|
{ type: Component, args: [{
|
|
39
31
|
selector: "co-input-combo-box",
|
|
40
32
|
template: `
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
33
|
+
<ejs-combobox #combo [dataSource]="collection"
|
|
34
|
+
[fields]="fields"
|
|
35
|
+
[placeholder]="placeholder"
|
|
36
|
+
[autofill]="true"
|
|
37
|
+
[ngModel]="model"
|
|
38
|
+
(ngModelChange)="modelChange.emit($event)"
|
|
39
|
+
(focus)="onFocus()"
|
|
40
|
+
showClearButton="true"
|
|
41
|
+
floatLabelType="Auto"
|
|
42
|
+
>
|
|
43
|
+
</ejs-combobox>
|
|
44
|
+
<div class="required-indicator"></div>
|
|
45
|
+
<ng-template #validationError></ng-template>
|
|
46
|
+
`,
|
|
53
47
|
providers: [{
|
|
54
48
|
provide: COMPONENT_INTERFACE_NAME,
|
|
55
49
|
useExisting: forwardRef(() => InputComboBoxComponent)
|
|
56
50
|
}],
|
|
57
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
58
51
|
encapsulation: ViewEncapsulation.None
|
|
59
52
|
},] }
|
|
60
53
|
];
|
|
61
54
|
InputComboBoxComponent.ctorParameters = () => [
|
|
62
55
|
{ type: FormComponent, decorators: [{ type: Optional }] },
|
|
63
56
|
{ type: ChangeDetectorRef },
|
|
57
|
+
{ type: ComponentFactoryResolver },
|
|
64
58
|
{ type: FormInputUserModelChangeListenerService },
|
|
65
59
|
{ type: NgZoneWrapperService },
|
|
66
60
|
{ type: ElementRef }
|
|
67
61
|
];
|
|
68
62
|
InputComboBoxComponent.propDecorators = {
|
|
69
63
|
combo: [{ type: ViewChild, args: ["combo",] }],
|
|
70
|
-
|
|
64
|
+
collection: [{ type: Input }],
|
|
71
65
|
fields: [{ type: Input }],
|
|
72
66
|
selected: [{ type: Input }],
|
|
73
67
|
placeholder: [{ type: Input }],
|
|
74
68
|
shopPopup: [{ type: Input }],
|
|
75
|
-
showClass: [{ type: HostBinding, args: ["class.co-input-combo-box",] }]
|
|
69
|
+
showClass: [{ type: HostBinding, args: ["class.co-input-combo-box",] }],
|
|
70
|
+
customHeight: [{ type: HostBinding, args: ["class.custom-height",] }]
|
|
76
71
|
};
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY29tYm8tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1jb21iby1ib3gvaW5wdXQtY29tYm8tYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ25ILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQTBCMUUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUF1QjtJQTJCakUsWUFDcUIsYUFBNEIsRUFDckMsY0FBaUMsRUFDakMsd0JBQWtELEVBQ2xELHNCQUFnRSxFQUNoRSxhQUFvQyxFQUN2QyxVQUF1QjtRQUU5QixLQUFLLENBQUMsY0FBYyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQVBoRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTBDO1FBQ2hFLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFhO1FBaEJ6QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBUTFCLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBV2xDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBakJNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFpQk0sT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7O1lBbEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7Z0JBQ0QsU0FBUyxFQUFFLENBQUM7d0JBQ1YsT0FBTyxFQUFFLHdCQUF3Qjt3QkFDakMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztxQkFDdEQsQ0FBQztnQkFDRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBMUJPLGFBQWEsdUJBdURoQixRQUFRO1lBckVYLGlCQUFpQjtZQUVqQix3QkFBd0I7WUFVbEIsdUNBQXVDO1lBQ3ZDLG9CQUFvQjtZQVYxQixVQUFVOzs7b0JBdUNULFNBQVMsU0FBQyxPQUFPO3lCQUdqQixLQUFLO3FCQUdMLEtBQUs7dUJBR0wsS0FBSzswQkFHTCxLQUFLO3dCQUdMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLDBCQUEwQjsyQkFLdEMsV0FBVyxTQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtCYXNlSW5wdXRDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlL2Jhc2UtaW5wdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL2Zvcm0taW5wdXQtdXNlci1jaGFuZ2UtbGlzdGVuZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge05nWm9uZVdyYXBwZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL25nLXpvbmUtd3JhcHBlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL2Zvcm0vZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtDT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gXCIuLi9iYXNlL2NvbXBvbmVudC1pbnRlcmZhY2UtbmFtZVwiO1xyXG5pbXBvcnQge0NvbWJvQm94Q29tcG9uZW50fSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZHJvcGRvd25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1pbnB1dC1jb21iby1ib3hcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGVqcy1jb21ib2JveCAjY29tYm8gW2RhdGFTb3VyY2VdPVwiY29sbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2F1dG9maWxsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxyXG4gICAgICAgICAgICAgICAgICBzaG93Q2xlYXJCdXR0b249XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgZmxvYXRMYWJlbFR5cGU9XCJBdXRvXCJcclxuICAgID5cclxuICAgIDwvZWpzLWNvbWJvYm94PlxyXG4gICAgPGRpdiBjbGFzcz1cInJlcXVpcmVkLWluZGljYXRvclwiPjwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICN2YWxpZGF0aW9uRXJyb3I+PC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IENPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Q29tYm9Cb3hDb21wb25lbnQpXHJcbiAgfV0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRDb21ib0JveENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudDxhbnk+IHtcclxuICBAVmlld0NoaWxkKFwiY29tYm9cIilcclxuICBwdWJsaWMgY29tYm86IENvbWJvQm94Q29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uOiBPYmplY3RbXSB8IHN0cmluZ1tdIHwgbnVtYmVyW10gfCBib29sZWFuW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZpZWxkczogT2JqZWN0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZDogbnVtYmVyIHwgc3RyaW5nIHwgYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvcFBvcHVwOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28taW5wdXQtY29tYm8tYm94XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY3VzdG9tLWhlaWdodFwiKVxyXG4gIHB1YmxpYyBjdXN0b21IZWlnaHQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBmb3JtQ29tcG9uZW50OiBGb3JtQ29tcG9uZW50LFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByb3RlY3RlZCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyPzogRm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIG5nWm9uZVdyYXBwZXI/OiBOZ1pvbmVXcmFwcGVyU2VydmljZSxcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmPzogRWxlbWVudFJlZixcclxuICApIHtcclxuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXIsIG5nWm9uZVdyYXBwZXIsIGVsZW1lbnRSZWYpO1xyXG4gICAgc3VwZXIuX21hcmtBc09uUHVzaCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaG9wUG9wdXAgJiYgdGhpcy5tb2RlbCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY29tYm8uc2hvd1BvcHVwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|