@colijnit/corecomponents_v12 12.0.102 → 12.0.103
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 +428 -299
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.d.ts +13 -13
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +14 -14
- package/esm2015/lib/components/base/base-input.component.js +37 -30
- package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +37 -34
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +25 -20
- package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +28 -23
- package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +38 -34
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +41 -37
- package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +6 -2
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +28 -25
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +6 -2
- package/esm2015/lib/components/input-listbox/input-listbox.component.js +30 -26
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +45 -40
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +29 -24
- package/esm2015/lib/components/input-search/input-search.component.js +5 -1
- package/esm2015/lib/components/input-text/input-text.component.js +50 -44
- package/esm2015/lib/components/input-text/input-text.module.js +4 -2
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +38 -34
- package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +37 -34
- package/esm2015/lib/components/validation-error/validation-error.component.js +8 -5
- package/esm2015/lib/components/validation-error/validation-error.module.js +4 -2
- package/esm2015/lib/directives/overlay/overlay.directive.js +39 -18
- package/esm2015/lib/service/overlay.service.js +44 -0
- package/esm2015/public-api.js +3 -2
- package/fesm2015/colijnit-corecomponents_v12.js +587 -466
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/base/base-input.component.d.ts +4 -3
- package/lib/components/drop-down-list/drop-down-list.component.d.ts +8 -6
- package/lib/components/input-checkbox/input-checkbox.component.d.ts +9 -7
- package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +8 -6
- package/lib/components/input-combo-box/input-combo-box.component.d.ts +9 -7
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +11 -9
- package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +1 -1
- package/lib/components/input-listbox/input-listbox.component.d.ts +9 -7
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +12 -10
- package/lib/components/input-radio-button/input-radio-button.component.d.ts +7 -5
- package/lib/components/input-text/input-text.component.d.ts +9 -7
- package/lib/components/input-text/style/_layout.scss +1 -1
- package/lib/components/input-textarea/input-textarea.component.d.ts +8 -6
- package/lib/components/multi-select-list/multi-select-list.component.d.ts +8 -6
- package/lib/components/validation-error/style/_layout.scss +40 -30
- package/lib/components/validation-error/style/_theme.scss +23 -9
- package/lib/components/validation-error/validation-error.component.d.ts +2 -0
- package/lib/directives/overlay/overlay.directive.d.ts +4 -3
- package/lib/service/overlay.service.d.ts +10 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -1
|
@@ -8,6 +8,7 @@ import { AppendPipeModule } from "../../pipes/append.pipe.module";
|
|
|
8
8
|
import { NumericTextBoxModule, TextBoxAllModule } from "@syncfusion/ej2-angular-inputs";
|
|
9
9
|
import { ValidationErrorModule } from "../validation-error/validation-error.module";
|
|
10
10
|
import { CommitButtonsModule } from "../base/commit-buttons/commit-buttons.module";
|
|
11
|
+
import { OverlayModule } from '../../directives/overlay/overlay.module';
|
|
11
12
|
export class InputTextModule {
|
|
12
13
|
}
|
|
13
14
|
InputTextModule.decorators = [
|
|
@@ -21,7 +22,8 @@ InputTextModule.decorators = [
|
|
|
21
22
|
TextBoxAllModule,
|
|
22
23
|
NumericTextBoxModule,
|
|
23
24
|
ValidationErrorModule,
|
|
24
|
-
CommitButtonsModule
|
|
25
|
+
CommitButtonsModule,
|
|
26
|
+
OverlayModule
|
|
25
27
|
],
|
|
26
28
|
declarations: [
|
|
27
29
|
InputTextComponent
|
|
@@ -31,4 +33,4 @@ InputTextModule.decorators = [
|
|
|
31
33
|
]
|
|
32
34
|
},] }
|
|
33
35
|
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNsRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFzQnRFLE1BQU0sT0FBTyxlQUFlOzs7WUFwQjNCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsVUFBVTtvQkFDVixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsVUFBVTtvQkFDVixnQkFBZ0I7b0JBQ2hCLGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQixxQkFBcUI7b0JBQ3JCLG1CQUFtQjtvQkFDbkIsYUFBYTtpQkFDaEI7Z0JBQ0gsWUFBWSxFQUFFO29CQUNaLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGtCQUFrQjtpQkFDbkI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0lucHV0VGV4dENvbXBvbmVudH0gZnJvbSBcIi4vaW5wdXQtdGV4dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJY29uTW9kdWxlfSBmcm9tIFwiLi4vaWNvbi9pY29uLm1vZHVsZVwiO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGV9IGZyb20gXCIuLi9iYXNlL2Jhc2UubW9kdWxlXCI7XHJcbmltcG9ydCB7QXBwZW5kUGlwZU1vZHVsZX0gZnJvbSBcIi4uLy4uL3BpcGVzL2FwcGVuZC5waXBlLm1vZHVsZVwiO1xyXG5pbXBvcnQge051bWVyaWNUZXh0Qm94TW9kdWxlLCBUZXh0Qm94QWxsTW9kdWxlfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItaW5wdXRzXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvbkVycm9yTW9kdWxlfSBmcm9tIFwiLi4vdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLm1vZHVsZVwiO1xyXG5pbXBvcnQge0NvbW1pdEJ1dHRvbnNNb2R1bGV9IGZyb20gXCIuLi9iYXNlL2NvbW1pdC1idXR0b25zL2NvbW1pdC1idXR0b25zLm1vZHVsZVwiO1xyXG5pbXBvcnQge092ZXJsYXlNb2R1bGV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEJhc2VNb2R1bGUsXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEljb25Nb2R1bGUsXHJcbiAgICAgICAgQXBwZW5kUGlwZU1vZHVsZSxcclxuICAgICAgICBUZXh0Qm94QWxsTW9kdWxlLFxyXG4gICAgICAgIE51bWVyaWNUZXh0Qm94TW9kdWxlLFxyXG4gICAgICAgIFZhbGlkYXRpb25FcnJvck1vZHVsZSxcclxuICAgICAgICBDb21taXRCdXR0b25zTW9kdWxlLFxyXG4gICAgICAgIE92ZXJsYXlNb2R1bGVcclxuICAgIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBJbnB1dFRleHRDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIElucHV0VGV4dENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGV4dE1vZHVsZSB7XHJcbn1cclxuIl19
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, forwardRef, HostBinding, Input, Optional, ViewEncapsulation } from
|
|
2
|
-
import { BaseInputComponent } from
|
|
3
|
-
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from
|
|
4
|
-
import { FormInputUserModelChangeListenerService } from
|
|
5
|
-
import { NgZoneWrapperService } from
|
|
6
|
-
import { FormComponent } from
|
|
1
|
+
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, forwardRef, HostBinding, Input, Optional, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { BaseInputComponent } from '../base/base-input.component';
|
|
3
|
+
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '../../interfaces/screen-config-adapter-component-interface-name';
|
|
4
|
+
import { FormInputUserModelChangeListenerService } from '../../core/service/form-input-user-change-listener.service';
|
|
5
|
+
import { NgZoneWrapperService } from '../../core/service/ng-zone-wrapper.service';
|
|
6
|
+
import { FormComponent } from '../form/form.component';
|
|
7
|
+
import { OverlayService } from '../../service/overlay.service';
|
|
7
8
|
export class InputTextareaComponent extends BaseInputComponent {
|
|
8
|
-
constructor(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
9
|
-
super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
9
|
+
constructor(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
10
|
+
super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
10
11
|
this.formComponent = formComponent;
|
|
11
12
|
this.changeDetector = changeDetector;
|
|
13
|
+
this.overlayService = overlayService;
|
|
12
14
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
13
15
|
this.formUserChangeListener = formUserChangeListener;
|
|
14
16
|
this.ngZoneWrapper = ngZoneWrapper;
|
|
15
17
|
this.elementRef = elementRef;
|
|
16
|
-
this.placeholder =
|
|
18
|
+
this.placeholder = '';
|
|
17
19
|
this.hasOwnLabel = true;
|
|
18
20
|
super._markAsOnPush();
|
|
19
21
|
}
|
|
@@ -23,40 +25,42 @@ export class InputTextareaComponent extends BaseInputComponent {
|
|
|
23
25
|
}
|
|
24
26
|
InputTextareaComponent.decorators = [
|
|
25
27
|
{ type: Component, args: [{
|
|
26
|
-
selector:
|
|
28
|
+
selector: 'co-input-textarea',
|
|
27
29
|
template: `
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
30
|
+
<label [textContent]="placeholder"></label>
|
|
31
|
+
<textarea
|
|
32
|
+
#input
|
|
33
|
+
type="textarea"
|
|
34
|
+
[ngModel]="model"
|
|
35
|
+
[readonly]="readonly"
|
|
36
|
+
[required]="required"
|
|
37
|
+
(ngModelChange)="modelChange.emit($event)"
|
|
38
|
+
></textarea>
|
|
39
|
+
<co-commit-buttons *ngIf="showSaveCancel && focused && canSaveOrCancel"
|
|
40
|
+
[committing]="committing"
|
|
41
|
+
[commitFinished]="commitFinished"
|
|
42
|
+
(commitClick)="commitClick($event)"
|
|
43
|
+
(cancelClick)="cancelClick($event)"
|
|
44
|
+
>
|
|
45
|
+
</co-commit-buttons>
|
|
46
|
+
<div class="required-indicator"></div>
|
|
47
|
+
`,
|
|
48
|
+
providers: [
|
|
49
|
+
OverlayService, {
|
|
48
50
|
provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
|
|
49
51
|
useExisting: forwardRef(() => InputTextareaComponent)
|
|
50
52
|
}, {
|
|
51
53
|
provide: BaseInputComponent,
|
|
52
54
|
useExisting: InputTextareaComponent
|
|
53
|
-
}
|
|
55
|
+
}
|
|
56
|
+
],
|
|
54
57
|
encapsulation: ViewEncapsulation.None
|
|
55
58
|
},] }
|
|
56
59
|
];
|
|
57
60
|
InputTextareaComponent.ctorParameters = () => [
|
|
58
61
|
{ type: FormComponent, decorators: [{ type: Optional }] },
|
|
59
62
|
{ type: ChangeDetectorRef },
|
|
63
|
+
{ type: OverlayService },
|
|
60
64
|
{ type: ComponentFactoryResolver },
|
|
61
65
|
{ type: FormInputUserModelChangeListenerService },
|
|
62
66
|
{ type: NgZoneWrapperService },
|
|
@@ -64,7 +68,7 @@ InputTextareaComponent.ctorParameters = () => [
|
|
|
64
68
|
];
|
|
65
69
|
InputTextareaComponent.propDecorators = {
|
|
66
70
|
placeholder: [{ type: Input }],
|
|
67
|
-
showClass: [{ type: HostBinding, args: [
|
|
68
|
-
hasOwnLabel: [{ type: HostBinding, args: [
|
|
71
|
+
showClass: [{ type: HostBinding, args: ['class.co-input-textarea',] }],
|
|
72
|
+
hasOwnLabel: [{ type: HostBinding, args: ['class.has-own-label',] }]
|
|
69
73
|
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LXRleHRhcmVhL2lucHV0LXRleHRhcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFDUixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDhDQUE4QyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDL0gsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDbkgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQWlDN0QsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUF1QjtJQWEvRCxZQUN1QixhQUE0QixFQUNyQyxjQUFpQyxFQUNqQyxjQUE4QixFQUM5Qix3QkFBa0QsRUFDbEQsc0JBQWdFLEVBQ2hFLGFBQW9DLEVBQ3ZDLFVBQXVCO1FBRTlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQVJoRyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUEwQztRQUNoRSxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDdkMsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQWxCM0IsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFRekIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFhL0IsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFuQk0sU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OztZQXRDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLGNBQWMsRUFBRTt3QkFDWixPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO3FCQUN4RCxFQUFFO3dCQUNDLE9BQU8sRUFBRSxrQkFBa0I7d0JBQzNCLFdBQVcsRUFBRSxzQkFBc0I7cUJBQ3RDO2lCQUFDO2dCQUNOLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFqQ08sYUFBYSx1QkFnRFosUUFBUTtZQTlEYixpQkFBaUI7WUFlYixjQUFjO1lBYmxCLHdCQUF3QjtZQVVwQix1Q0FBdUM7WUFDdkMsb0JBQW9CO1lBVnhCLFVBQVU7OzswQkE4Q1QsS0FBSzt3QkFHTCxXQUFXLFNBQUMseUJBQXlCOzBCQUtyQyxXQUFXLFNBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCYXNlSW5wdXRDb21wb25lbnR9IGZyb20gJy4uL2Jhc2UvYmFzZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLWNvbXBvbmVudC1pbnRlcmZhY2UtbmFtZSc7XHJcbmltcG9ydCB7Rm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2UvZm9ybS1pbnB1dC11c2VyLWNoYW5nZS1saXN0ZW5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL25nLXpvbmUtd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHtPdmVybGF5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9vdmVybGF5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvLWlucHV0LXRleHRhcmVhJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCJwbGFjZWhvbGRlclwiPjwvbGFiZWw+XHJcbiAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAjaW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPGNvLWNvbW1pdC1idXR0b25zICpuZ0lmPVwic2hvd1NhdmVDYW5jZWwgJiYgZm9jdXNlZCAmJiBjYW5TYXZlT3JDYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tbWl0dGluZ109XCJjb21taXR0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbW1pdEZpbmlzaGVkXT1cImNvbW1pdEZpbmlzaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1pdENsaWNrKT1cImNvbW1pdENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2FuY2VsQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvY28tY29tbWl0LWJ1dHRvbnM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpcmVkLWluZGljYXRvclwiPjwvZGl2PlxyXG4gICAgYCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIE92ZXJsYXlTZXJ2aWNlLCB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0VGV4dGFyZWFDb21wb25lbnQpXHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBCYXNlSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJbnB1dFRleHRhcmVhQ29tcG9uZW50XHJcbiAgICAgICAgfV0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50PGFueT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28taW5wdXQtdGV4dGFyZWEnKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1vd24tbGFiZWwnKVxyXG4gICAgcHVibGljIGhhc093bkxhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGZvcm1Db21wb25lbnQ6IEZvcm1Db21wb25lbnQsXHJcbiAgICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICBwcm90ZWN0ZWQgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lcj86IEZvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgbmdab25lV3JhcHBlcj86IE5nWm9uZVdyYXBwZXJTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmPzogRWxlbWVudFJlZixcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGNoYW5nZURldGVjdG9yLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIG92ZXJsYXlTZXJ2aWNlLCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyLCBuZ1pvbmVXcmFwcGVyLCBlbGVtZW50UmVmKTtcclxuICAgICAgICBzdXBlci5fbWFya0FzT25QdXNoKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, forwardRef, HostBinding, Input, Optional, ViewEncapsulation } from
|
|
2
|
-
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from
|
|
3
|
-
import { BaseInputComponent } from
|
|
4
|
-
import { CheckBoxSelectionService } from
|
|
5
|
-
import { FormInputUserModelChangeListenerService } from
|
|
6
|
-
import { NgZoneWrapperService } from
|
|
7
|
-
import { FormComponent } from
|
|
1
|
+
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, forwardRef, HostBinding, Input, Optional, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '../../interfaces/screen-config-adapter-component-interface-name';
|
|
3
|
+
import { BaseInputComponent } from '../base/base-input.component';
|
|
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';
|
|
8
|
+
import { OverlayService } from '../../service/overlay.service';
|
|
8
9
|
export class MultiSelectListComponent extends BaseInputComponent {
|
|
9
|
-
constructor(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
10
|
-
super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
10
|
+
constructor(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
11
|
+
super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
11
12
|
this.formComponent = formComponent;
|
|
12
13
|
this.changeDetector = changeDetector;
|
|
14
|
+
this.overlayService = overlayService;
|
|
13
15
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
14
16
|
this.formUserChangeListener = formUserChangeListener;
|
|
15
17
|
this.ngZoneWrapper = ngZoneWrapper;
|
|
@@ -20,12 +22,12 @@ export class MultiSelectListComponent extends BaseInputComponent {
|
|
|
20
22
|
*/
|
|
21
23
|
this.fields = {};
|
|
22
24
|
this.showSelectAll = true;
|
|
23
|
-
this.mode =
|
|
25
|
+
this.mode = 'Default';
|
|
24
26
|
super._markAsOnPush();
|
|
25
27
|
}
|
|
26
28
|
set showCheckbox(value) {
|
|
27
29
|
if (value) {
|
|
28
|
-
this.mode =
|
|
30
|
+
this.mode = 'CheckBox';
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
showClass() {
|
|
@@ -42,29 +44,29 @@ export class MultiSelectListComponent extends BaseInputComponent {
|
|
|
42
44
|
}
|
|
43
45
|
MultiSelectListComponent.decorators = [
|
|
44
46
|
{ type: Component, args: [{
|
|
45
|
-
selector:
|
|
47
|
+
selector: 'co-multi-select-list',
|
|
46
48
|
template: `
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
`,
|
|
49
|
+
<ejs-multiselect
|
|
50
|
+
[dataSource]="collection"
|
|
51
|
+
[placeholder]="placeholder"
|
|
52
|
+
[value]="model"
|
|
53
|
+
[mode]="mode"
|
|
54
|
+
[fields]="fields"
|
|
55
|
+
[readonly]="readonly"
|
|
56
|
+
[itemTemplate]="itemTemplate"
|
|
57
|
+
[headerTemplate]="headerTemplate"
|
|
58
|
+
[valueTemplate]="valueTemplate"
|
|
59
|
+
[footerTemplate]="footerTemplate"
|
|
60
|
+
[selectAllText]="'Select All'"
|
|
61
|
+
[showSelectAll]=showSelectAll
|
|
62
|
+
[ngModel]="model"
|
|
63
|
+
(ngModelChange)="handleModelChange($event)"
|
|
64
|
+
(valueChange)="handleModelChange($event)"
|
|
65
|
+
></ejs-multiselect>
|
|
66
|
+
<div class="required-indicator"></div>
|
|
67
|
+
`,
|
|
67
68
|
providers: [
|
|
69
|
+
OverlayService,
|
|
68
70
|
CheckBoxSelectionService,
|
|
69
71
|
{
|
|
70
72
|
provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
|
|
@@ -80,6 +82,7 @@ MultiSelectListComponent.decorators = [
|
|
|
80
82
|
MultiSelectListComponent.ctorParameters = () => [
|
|
81
83
|
{ type: FormComponent, decorators: [{ type: Optional }] },
|
|
82
84
|
{ type: ChangeDetectorRef },
|
|
85
|
+
{ type: OverlayService },
|
|
83
86
|
{ type: ComponentFactoryResolver },
|
|
84
87
|
{ type: FormInputUserModelChangeListenerService },
|
|
85
88
|
{ type: NgZoneWrapperService },
|
|
@@ -95,6 +98,6 @@ MultiSelectListComponent.propDecorators = {
|
|
|
95
98
|
footerTemplate: [{ type: Input }],
|
|
96
99
|
showSelectAll: [{ type: Input }],
|
|
97
100
|
showCheckbox: [{ type: Input }],
|
|
98
|
-
showClass: [{ type: HostBinding, args: [
|
|
101
|
+
showClass: [{ type: HostBinding, args: ['class.co-multi-select-list',] }]
|
|
99
102
|
};
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1saXN0L211bHRpLXNlbGVjdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFFUixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLDhDQUE4QyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDL0gsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDbkgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQXFDN0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGtCQUF5QjtJQTBDbkUsWUFDdUIsYUFBNEIsRUFDckMsY0FBaUMsRUFDakMsY0FBOEIsRUFDOUIsd0JBQWtELEVBQ2xELHNCQUFnRSxFQUNoRSxhQUFvQyxFQUN2QyxVQUF1QjtRQUU5QixLQUFLLENBQUMsY0FBYyxFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFSaEcsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMEM7UUFDaEUsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3ZDLGVBQVUsR0FBVixVQUFVLENBQWE7UUE1Q2xDOzs7V0FHRztRQUVJLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFrQnBCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBMkI5QixTQUFJLEdBQVEsU0FBUyxDQUFDO1FBSHpCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBdkJELElBQ1csWUFBWSxDQUFDLEtBQWM7UUFDbEMsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFHTSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQWlCTSxpQkFBaUIsQ0FBQyxHQUFRO1FBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQixHQUFHLEdBQUcsU0FBUyxDQUFDO2FBQ25CO1NBQ0o7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7WUFuR0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW1CVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsY0FBYztvQkFDZCx3QkFBd0I7b0JBQ3hCO3dCQUNJLE9BQU8sRUFBRSw4Q0FBOEM7d0JBQ3ZELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7cUJBQzFELEVBQUU7d0JBQ0MsT0FBTyxFQUFFLGtCQUFrQjt3QkFDM0IsV0FBVyxFQUFFLHdCQUF3QjtxQkFDeEM7aUJBQ0o7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7OztZQXJDTyxhQUFhLHVCQWlGWixRQUFRO1lBakdiLGlCQUFpQjtZQWlCYixjQUFjO1lBZmxCLHdCQUF3QjtZQVlwQix1Q0FBdUM7WUFDdkMsb0JBQW9CO1lBWnhCLFVBQVU7Ozt5QkFxRFQsS0FBSztxQkFPTCxLQUFLOzBCQUdMLEtBQUs7MkJBR0wsS0FBSzs2QkFHTCxLQUFLOzRCQUdMLEtBQUs7NkJBR0wsS0FBSzs0QkFHTCxLQUFLOzJCQUdMLEtBQUs7d0JBT0wsV0FBVyxTQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLWNvbXBvbmVudC1pbnRlcmZhY2UtbmFtZSc7XHJcbmltcG9ydCB7QmFzZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9iYXNlL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtDaGVja0JveFNlbGVjdGlvblNlcnZpY2V9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRyb3Bkb3ducyc7XHJcbmltcG9ydCB7Rm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2UvZm9ybS1pbnB1dC11c2VyLWNoYW5nZS1saXN0ZW5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL25nLXpvbmUtd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHtPdmVybGF5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9vdmVybGF5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvLW11bHRpLXNlbGVjdC1saXN0JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGVqcy1tdWx0aXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiY29sbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vZGVsXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgW2ZpZWxkc109XCJmaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2VsZWN0QWxsVGV4dF09XCInU2VsZWN0IEFsbCdcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dTZWxlY3RBbGxdPXNob3dTZWxlY3RBbGxcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L2Vqcy1tdWx0aXNlbGVjdD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlyZWQtaW5kaWNhdG9yXCI+PC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgT3ZlcmxheVNlcnZpY2UsXHJcbiAgICAgICAgQ2hlY2tCb3hTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3RMaXN0Q29tcG9uZW50KVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogQmFzZUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTXVsdGlTZWxlY3RMaXN0Q29tcG9uZW50XHJcbiAgICAgICAgfVxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0TGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudDxhbnlbXT4ge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29sbGVjdGlvbjogYW55W107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbiB0aGUgZm9ybSB7IHRleHQ6ICduYW1lJywgdmFsdWU6ICdpZCcgfVxyXG4gICAgICogV2hlcmUgJ3RleHQnIGlzIHNob3dpbmcgaW4gdGhlIGRyb3Bkb3duIGFuZCAnaWQnIHVzZWQgZm9yIHRoZSBtb2RlbCBiaW5kaW5nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZmllbGRzOiBPYmplY3QgPSB7fTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dTZWxlY3RBbGw6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHNob3dDaGVja2JveCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGUgPSAnQ2hlY2tCb3gnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLW11bHRpLXNlbGVjdC1saXN0JylcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGZvcm1Db21wb25lbnQ6IEZvcm1Db21wb25lbnQsXHJcbiAgICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICBwcm90ZWN0ZWQgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lcj86IEZvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgbmdab25lV3JhcHBlcj86IE5nWm9uZVdyYXBwZXJTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmPzogRWxlbWVudFJlZixcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGNoYW5nZURldGVjdG9yLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIG92ZXJsYXlTZXJ2aWNlLCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyLCBuZ1pvbmVXcmFwcGVyLCBlbGVtZW50UmVmKTtcclxuICAgICAgICBzdXBlci5fbWFya0FzT25QdXNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1vZGU6IGFueSA9ICdEZWZhdWx0JztcclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlTW9kZWxDaGFuZ2UodmFsOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWwubGVuZ3RoIDwgMSkge1xyXG4gICAgICAgICAgICAgICAgdmFsID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UubmV4dCh2YWwpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, HostBinding, Input, ViewEncapsulation } from
|
|
1
|
+
import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { CoreComponentsIcon } from "../../core/enum/core-components-icon.enum";
|
|
3
3
|
import { IconCacheService } from "../icon/icon-cache.service";
|
|
4
4
|
export class ValidationErrorComponent {
|
|
@@ -14,9 +14,11 @@ ValidationErrorComponent.decorators = [
|
|
|
14
14
|
{ type: Component, args: [{
|
|
15
15
|
selector: "co-validation-error",
|
|
16
16
|
template: `
|
|
17
|
-
<div class="validation-error-
|
|
18
|
-
<
|
|
19
|
-
<
|
|
17
|
+
<div class="validation-error-wrapper" [overlay]="parentForOverlay">
|
|
18
|
+
<div class="validation-error-content">
|
|
19
|
+
<co-icon [iconData]="icons.getIcon(Icons.InformationRoundOpen)"></co-icon>
|
|
20
|
+
<div class="validation-error-message" [textContent]="error"></div>
|
|
21
|
+
</div>
|
|
20
22
|
</div>
|
|
21
23
|
`,
|
|
22
24
|
animations: [],
|
|
@@ -28,8 +30,9 @@ ValidationErrorComponent.ctorParameters = () => [
|
|
|
28
30
|
];
|
|
29
31
|
ValidationErrorComponent.propDecorators = {
|
|
30
32
|
error: [{ type: Input }],
|
|
33
|
+
parentForOverlay: [{ type: Input }],
|
|
31
34
|
top: [{ type: HostBinding, args: ['style.top.px',] }, { type: Input }],
|
|
32
35
|
left: [{ type: HostBinding, args: ['style.left.px',] }, { type: Input }],
|
|
33
36
|
showClass: [{ type: HostBinding, args: ['class.co-validation-error',] }]
|
|
34
37
|
};
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFpQjVELE1BQU0sT0FBTyx3QkFBd0I7SUFzQm5DLFlBQW1CLEtBQXVCO1FBQXZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBckIxQixVQUFLLEdBQVEsa0JBQWtCLENBQUM7SUFzQmhELENBQUM7SUFMTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUFuQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7OztHQU9UO2dCQUNELFVBQVUsRUFBRSxFQUVYO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFoQk8sZ0JBQWdCOzs7b0JBb0JyQixLQUFLOytCQUdMLEtBQUs7a0JBR0wsV0FBVyxTQUFDLGNBQWMsY0FDMUIsS0FBSzttQkFHTCxXQUFXLFNBQUMsZUFBZSxjQUMzQixLQUFLO3dCQUdMLFdBQVcsU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29ufSBmcm9tIFwiLi4vLi4vY29yZS9lbnVtL2NvcmUtY29tcG9uZW50cy1pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vaWNvbi9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXZhbGlkYXRpb24tZXJyb3JcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3Itd3JhcHBlclwiIFtvdmVybGF5XT1cInBhcmVudEZvck92ZXJsYXlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3ItY29udGVudFwiPlxyXG4gICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29ucy5nZXRJY29uKEljb25zLkluZm9ybWF0aW9uUm91bmRPcGVuKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWxpZGF0aW9uLWVycm9yLW1lc3NhZ2VcIiBbdGV4dENvbnRlbnRdPVwiZXJyb3JcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgSWNvbnM6IGFueSA9IENvcmVDb21wb25lbnRzSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZXJyb3I6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFyZW50Rm9yT3ZlcmxheTogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50b3AucHgnKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRvcDogbnVtYmVyO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQucHgnKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxlZnQ6IG51bWJlcjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby12YWxpZGF0aW9uLWVycm9yJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvbnM6IEljb25DYWNoZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -2,13 +2,15 @@ import { NgModule } from "@angular/core";
|
|
|
2
2
|
import { CommonModule } from "@angular/common";
|
|
3
3
|
import { ValidationErrorComponent } from "./validation-error.component";
|
|
4
4
|
import { IconModule } from "../icon/icon.module";
|
|
5
|
+
import { OverlayModule } from '../../directives/overlay/overlay.module';
|
|
5
6
|
export class ValidationErrorModule {
|
|
6
7
|
}
|
|
7
8
|
ValidationErrorModule.decorators = [
|
|
8
9
|
{ type: NgModule, args: [{
|
|
9
10
|
imports: [
|
|
10
11
|
CommonModule,
|
|
11
|
-
IconModule
|
|
12
|
+
IconModule,
|
|
13
|
+
OverlayModule
|
|
12
14
|
],
|
|
13
15
|
declarations: [
|
|
14
16
|
ValidationErrorComponent
|
|
@@ -18,4 +20,4 @@ ValidationErrorModule.decorators = [
|
|
|
18
20
|
]
|
|
19
21
|
},] }
|
|
20
22
|
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBZXRFLE1BQU0sT0FBTyxxQkFBcUI7OztZQWJqQyxRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixhQUFhO2lCQUNoQjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1osd0JBQXdCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asd0JBQXdCO2lCQUN6QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JDb21wb25lbnR9IGZyb20gXCIuL3ZhbGlkYXRpb24tZXJyb3IuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SWNvbk1vZHVsZX0gZnJvbSBcIi4uL2ljb24vaWNvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHtPdmVybGF5TW9kdWxlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL292ZXJsYXkvb3ZlcmxheS5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgSWNvbk1vZHVsZSxcclxuICAgICAgICBPdmVybGF5TW9kdWxlXHJcbiAgICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3JNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,48 +1,70 @@
|
|
|
1
|
-
import { Directive, ElementRef,
|
|
1
|
+
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
2
|
export class OverlayDirective {
|
|
3
3
|
constructor(elementRef) {
|
|
4
4
|
this.keepInView = false;
|
|
5
|
+
this.handleScroll = (event) => {
|
|
6
|
+
this._checkAndPlaceElement();
|
|
7
|
+
};
|
|
5
8
|
this._elementRef = elementRef;
|
|
6
9
|
}
|
|
7
10
|
set parent(value) {
|
|
8
|
-
if (value
|
|
9
|
-
this._parent = value.elementRef;
|
|
11
|
+
if (value) {
|
|
12
|
+
this._parent = value instanceof ElementRef ? value : value.elementRef;
|
|
10
13
|
}
|
|
11
14
|
else {
|
|
12
15
|
if (this._parent) {
|
|
13
|
-
this.
|
|
16
|
+
this._resizeObserver.disconnect();
|
|
14
17
|
}
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
|
-
handleScroll(event) {
|
|
18
|
-
this._checkAndPlaceElement();
|
|
19
|
-
}
|
|
20
20
|
ngOnDestroy() {
|
|
21
|
-
|
|
22
|
-
this.
|
|
21
|
+
document.removeEventListener("scroll", this.handleScroll, true);
|
|
22
|
+
this._intersectionObserver.disconnect();
|
|
23
|
+
this._resizeObserver.disconnect();
|
|
23
24
|
this._elementRef = undefined;
|
|
24
25
|
this._parent = undefined;
|
|
25
26
|
}
|
|
26
27
|
ngOnInit() {
|
|
27
|
-
|
|
28
|
+
if (!this._elementRef || !this._elementRef.nativeElement) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
document.addEventListener("scroll", this.handleScroll, true);
|
|
28
32
|
this._checkAndPlaceElement();
|
|
29
|
-
this.
|
|
33
|
+
this._resizeObserver = new ResizeObserver((entries) => {
|
|
30
34
|
this._checkAndPlaceElement();
|
|
31
35
|
});
|
|
32
|
-
this.
|
|
36
|
+
this._intersectionObserver = new IntersectionObserver((entries) => {
|
|
37
|
+
if (entries && entries.length > 0) {
|
|
38
|
+
if (entries[0].isIntersecting === false) {
|
|
39
|
+
this._elementRef.nativeElement.style.opacity = 0; // hide cause parent is not visible
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this._elementRef.nativeElement.style.opacity = 1;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
root: null
|
|
47
|
+
});
|
|
48
|
+
this._intersectionObserver.observe(this._parent.nativeElement); // observe parent for visibility
|
|
49
|
+
this._resizeObserver.observe(document.body);
|
|
33
50
|
}
|
|
34
51
|
_checkAndPlaceElement() {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
52
|
+
if (this._elementRef && this._elementRef.nativeElement && this._parent && this._parent.nativeElement) {
|
|
53
|
+
const elementRect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
54
|
+
const parentRect = this._parent.nativeElement.getBoundingClientRect();
|
|
55
|
+
this._placeElement(window.innerHeight, window.innerWidth, parentRect, elementRect);
|
|
56
|
+
}
|
|
38
57
|
}
|
|
39
58
|
_placeElement(bottom, right, parentRect, elementRect) {
|
|
40
59
|
if (bottom < parentRect.bottom + elementRect.height) { // make sure it fits at the bottom
|
|
41
60
|
this._elementRef.nativeElement.style.top = (parentRect.top - elementRect.height) + "px";
|
|
61
|
+
this._elementRef.nativeElement.classList.add('top');
|
|
42
62
|
}
|
|
43
63
|
else {
|
|
64
|
+
this._elementRef.nativeElement.classList.remove('top');
|
|
44
65
|
this._elementRef.nativeElement.style.top = parentRect.bottom + "px";
|
|
45
66
|
}
|
|
67
|
+
this._elementRef.nativeElement.style.left = parentRect.left + "px";
|
|
46
68
|
if (this.keepInView) {
|
|
47
69
|
if (elementRect.right > window.innerWidth) {
|
|
48
70
|
//see if we can move it to the left
|
|
@@ -67,7 +89,6 @@ OverlayDirective.ctorParameters = () => [
|
|
|
67
89
|
];
|
|
68
90
|
OverlayDirective.propDecorators = {
|
|
69
91
|
parent: [{ type: Input, args: ["overlay",] }],
|
|
70
|
-
keepInView: [{ type: Input }]
|
|
71
|
-
handleScroll: [{ type: HostListener, args: ["document:scroll", ["$event"],] }]
|
|
92
|
+
keepInView: [{ type: Input }]
|
|
72
93
|
};
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUs1RixNQUFNLE9BQU8sZ0JBQWdCO0lBcUIzQixZQUNJLFVBQXNCO1FBUm5CLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFpRDVCLGlCQUFZLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUE7UUF6Q0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQXZCRCxJQUNXLE1BQU0sQ0FBQyxLQUEwQztRQUMxRCxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1NBQ3ZFO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFnQk0sV0FBVztRQUNoQixRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7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QUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25FLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLFdBQVcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDekMsbUNBQW1DO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUM1RjtxQkFBTSxFQUFFLDZCQUE2QjtvQkFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7aUJBQy9DO2FBQ0Y7U0FDRjtJQUNILENBQUM7OztZQWxHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7YUFDdEI7OztZQUprQixVQUFVOzs7cUJBTzFCLEtBQUssU0FBQyxTQUFTO3lCQVdmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge092ZXJsYXlQYXJlbnREaXJlY3RpdmV9IGZyb20gXCIuL292ZXJsYXktcGFyZW50LmRpcmVjdGl2ZVwiO1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbb3ZlcmxheV1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3ZlcmxheURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KFwib3ZlcmxheVwiKVxyXG4gIHB1YmxpYyBzZXQgcGFyZW50KHZhbHVlOiBPdmVybGF5UGFyZW50RGlyZWN0aXZlIHwgRWxlbWVudFJlZikge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3BhcmVudCA9IHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudFJlZiA/IHZhbHVlIDogdmFsdWUuZWxlbWVudFJlZjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGtlZXBJblZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XHJcbiAgcHJpdmF0ZSBfaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xyXG4gIHByaXZhdGUgX3BhcmVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLmhhbmRsZVNjcm9sbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICB0aGlzLl9lbGVtZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fcGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYgfHwgIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMuaGFuZGxlU2Nyb2xsLCB0cnVlKTtcclxuICAgIHRoaXMuX2NoZWNrQW5kUGxhY2VFbGVtZW50KCk7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihcclxuICAgICAgICAoZW50cmllcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fY2hlY2tBbmRQbGFjZUVsZW1lbnQoKTtcclxuICAgICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXHJcbiAgICAgICAgKGVudHJpZXM6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gMDsgLy8gaGlkZSBjYXVzZSBwYXJlbnQgaXMgbm90IHZpc2libGVcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICByb290OiBudWxsXHJcbiAgICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5fcGFyZW50Lm5hdGl2ZUVsZW1lbnQpOyAvLyBvYnNlcnZlIHBhcmVudCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTY3JvbGwgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICB0aGlzLl9jaGVja0FuZFBsYWNlRWxlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tBbmRQbGFjZUVsZW1lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZWxlbWVudFJlZiAmJiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fcGFyZW50ICYmIHRoaXMuX3BhcmVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRSZWN0OiBDbGllbnRSZWN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBwYXJlbnRSZWN0OiBDbGllbnRSZWN0ID0gdGhpcy5fcGFyZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIHRoaXMuX3BsYWNlRWxlbWVudCh3aW5kb3cuaW5uZXJIZWlnaHQsIHdpbmRvdy5pbm5lcldpZHRoLCBwYXJlbnRSZWN0LCBlbGVtZW50UmVjdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wbGFjZUVsZW1lbnQoYm90dG9tOiBudW1iZXIsIHJpZ2h0OiBudW1iZXIsIHBhcmVudFJlY3Q6IENsaWVudFJlY3QsIGVsZW1lbnRSZWN0OiBDbGllbnRSZWN0KTogdm9pZCB7XHJcbiAgICBpZiAoYm90dG9tIDwgcGFyZW50UmVjdC5ib3R0b20gKyBlbGVtZW50UmVjdC5oZWlnaHQpIHsgLy8gbWFrZSBzdXJlIGl0IGZpdHMgYXQgdGhlIGJvdHRvbVxyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gKHBhcmVudFJlY3QudG9wIC0gZWxlbWVudFJlY3QuaGVpZ2h0KSArIFwicHhcIjtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3RvcCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3RvcCcpO1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gcGFyZW50UmVjdC5ib3R0b20gKyBcInB4XCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHBhcmVudFJlY3QubGVmdCArIFwicHhcIjtcclxuICAgIGlmICh0aGlzLmtlZXBJblZpZXcpIHtcclxuICAgICAgaWYgKGVsZW1lbnRSZWN0LnJpZ2h0ID4gd2luZG93LmlubmVyV2lkdGgpIHtcclxuICAgICAgICAvL3NlZSBpZiB3ZSBjYW4gbW92ZSBpdCB0byB0aGUgbGVmdFxyXG4gICAgICAgIGlmICgod2luZG93LmlubmVyV2lkdGggLSBlbGVtZW50UmVjdC53aWR0aCkgPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtIGVsZW1lbnRSZWN0LndpZHRoKSArIFwicHhcIjtcclxuICAgICAgICB9IGVsc2UgeyAvL3Jlc2l6ZSBzbyBpdCBmaXRzIGludG8gdmlld1xyXG4gICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gd2luZG93LmlubmVyV2lkdGggKyBcInB4XCI7XHJcbiAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector } from '@angular/core';
|
|
2
|
+
export class OverlayService {
|
|
3
|
+
constructor(_componentFactoryResolver, _appRef, _injector) {
|
|
4
|
+
this._componentFactoryResolver = _componentFactoryResolver;
|
|
5
|
+
this._appRef = _appRef;
|
|
6
|
+
this._injector = _injector;
|
|
7
|
+
}
|
|
8
|
+
createComponent(compClass, inputs) {
|
|
9
|
+
if (this._componentRef) {
|
|
10
|
+
this.removeComponent();
|
|
11
|
+
}
|
|
12
|
+
this._componentRef = this._componentFactoryResolver
|
|
13
|
+
.resolveComponentFactory(compClass)
|
|
14
|
+
.create(this._injector);
|
|
15
|
+
if (inputs) {
|
|
16
|
+
for (let property in inputs) {
|
|
17
|
+
if (inputs.hasOwnProperty(property)) {
|
|
18
|
+
this._componentRef.instance[property] = inputs[property];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
this._appRef.attachView(this._componentRef.hostView);
|
|
23
|
+
const domElem = this._componentRef.hostView
|
|
24
|
+
.rootNodes[0];
|
|
25
|
+
document.body.appendChild(domElem);
|
|
26
|
+
this._componentRef.onDestroy(() => {
|
|
27
|
+
this._appRef.detachView(this._componentRef.hostView);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
removeComponent() {
|
|
31
|
+
if (this._componentRef) {
|
|
32
|
+
this._componentRef.destroy();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
OverlayService.decorators = [
|
|
37
|
+
{ type: Injectable }
|
|
38
|
+
];
|
|
39
|
+
OverlayService.ctorParameters = () => [
|
|
40
|
+
{ type: ComponentFactoryResolver },
|
|
41
|
+
{ type: ApplicationRef },
|
|
42
|
+
{ type: Injector }
|
|
43
|
+
];
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFFLHdCQUF3QixFQUFpQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzVILE1BQU0sT0FBTyxjQUFjO0lBSXZCLFlBQ1kseUJBQW1ELEVBQ25ELE9BQXVCLEVBQ3ZCLFNBQW1CO1FBRm5CLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDbkQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtJQUUvQixDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQWMsRUFBRSxNQUFXO1FBQ2hELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7UUFDQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyx5QkFBeUI7YUFDOUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUIsSUFBSSxNQUFNLEVBQUU7WUFDUixLQUFLLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRTtnQkFDekIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzVEO2FBQ0o7U0FDSjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckQsTUFBTSxPQUFPLEdBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFpQzthQUNoRSxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBRWpDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEM7SUFDTCxDQUFDOzs7WUExQ0osVUFBVTs7O1lBRmEsd0JBQXdCO1lBQXhDLGNBQWM7WUFBdUUsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBwbGljYXRpb25SZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIEluamVjdGFibGUsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIHtcclxuXHJcbiAgICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIHByaXZhdGUgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY3JlYXRlQ29tcG9uZW50KGNvbXBDbGFzczogYW55LCBpbnB1dHM6IGFueSk6IHZvaWQge1xyXG4gICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb21wb25lbnQoKTtcclxuICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxyXG4gICAgICAgICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcENsYXNzKVxyXG4gICAgICAgICAgICAuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcclxuXHJcbiAgICAgICAgaWYgKGlucHV0cykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBpbiBpbnB1dHMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpbnB1dHMuaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlW3Byb3BlcnR5XSA9IGlucHV0c1twcm9wZXJ0eV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICAgICAgY29uc3QgZG9tRWxlbSA9ICh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXHJcbiAgICAgICAgICAgIC5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLm9uRGVzdHJveSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUNvbXBvbmVudCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|