@wavemaker/app-ng-runtime 12.0.0-next.45031 → 12.0.0-next.45501
Sign up to get free protection for your applications and to get access to all the features.
- app-ng-runtime/build-task/bundles/index.umd.js +405 -451
- app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -3
- app-ng-runtime/build-task/esm2022/public_api.mjs +1 -3
- app-ng-runtime/build-task/fesm2022/index.mjs +406 -454
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/build-task/public_api.d.ts +0 -2
- app-ng-runtime/components/base/bundles/index.umd.js +14 -62
- app-ng-runtime/components/base/components.module.d.ts +11 -12
- app-ng-runtime/components/base/esm2022/components.module.mjs +1 -5
- app-ng-runtime/components/base/esm2022/public_api.mjs +1 -2
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -25
- app-ng-runtime/components/base/fesm2022/index.mjs +15 -62
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/public_api.d.ts +0 -1
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +5 -10
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -3
- app-ng-runtime/components/data/form/fesm2022/index.mjs +0 -2
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +11 -0
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +12 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +11 -0
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +63 -39
- app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +0 -1
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +5 -8
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +5 -8
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +57 -29
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +1 -4
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +4 -1
- app-ng-runtime/components/input/default/fesm2022/index.mjs +63 -39
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +0 -1
- app-ng-runtime/components/input/default/select/select.component.d.ts +2 -4
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +3 -2
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +3 -0
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -1
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +3 -0
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +31 -5
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +34 -8
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +32 -6
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +6 -2
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +6 -16
- app-ng-runtime/core/enums/enums.d.ts +1 -2
- app-ng-runtime/core/esm2022/enums/enums.mjs +1 -2
- app-ng-runtime/core/esm2022/types/types.mjs +1 -4
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +1 -6
- app-ng-runtime/core/esm2022/utils/utils.mjs +4 -3
- app-ng-runtime/core/fesm2022/index.mjs +4 -12
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/types/types.d.ts +1 -5
- app-ng-runtime/core/utils/utils.d.ts +1 -0
- app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
- app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
- app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +5 -288
- app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -2
- app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +1 -6
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/types/types.mjs +1 -2
- app-ng-runtime/runtime/base/fesm2022/index.mjs +4 -287
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/public_api.d.ts +0 -1
- app-ng-runtime/runtime/base/runtime-base.module.d.ts +8 -9
- app-ng-runtime/runtime/base/types/types.d.ts +1 -2
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +9 -27
- app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +2 -5
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +7 -23
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +7 -26
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +6 -3
- app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
- app-ng-runtime/transpiler/bundles/index.umd.js +0 -5
- app-ng-runtime/transpiler/esm2022/build.mjs +1 -4
- app-ng-runtime/transpiler/esm2022/imports.mjs +1 -3
- app-ng-runtime/transpiler/fesm2022/index.mjs +0 -5
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +0 -2
- app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +0 -2
- app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +0 -15
- app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +0 -26
- app-ng-runtime/components/advanced/custom/.npmignore +0 -2
- app-ng-runtime/components/advanced/custom/bundles/index.umd.js +0 -232
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +0 -19
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +0 -2
- app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +0 -1
- app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +0 -19
- app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +0 -10
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +0 -102
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +0 -12
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +0 -8
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +0 -68
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
- app-ng-runtime/components/advanced/custom/esm2022/index.mjs +0 -5
- app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +0 -4
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +0 -215
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +0 -1
- app-ng-runtime/components/advanced/custom/index.d.ts +0 -5
- app-ng-runtime/components/advanced/custom/package.json +0 -23
- app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +0 -39
- app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +0 -14
- app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +0 -72
- app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +0 -288
@@ -143,6 +143,12 @@
|
|
143
143
|
setReturnFocus: focusTrapObj.activeElement,
|
144
144
|
});
|
145
145
|
focusTrapObj[ref.titleId].activate();
|
146
|
+
const openedDialogs = ref.dialogService.getOpenedDialogs();
|
147
|
+
if (openedDialogs.length > 1) {
|
148
|
+
let zIndex = Number($("[aria-labelledby= " + openedDialogs[openedDialogs.length - 2].titleId + "]").css('z-index'));
|
149
|
+
$('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);
|
150
|
+
$('bs-modal-backdrop').css('z-index', zIndex + 1);
|
151
|
+
}
|
146
152
|
});
|
147
153
|
}
|
148
154
|
};
|
@@ -150,6 +156,11 @@
|
|
150
156
|
if (ref) {
|
151
157
|
ref.invokeEventCallback('close');
|
152
158
|
ref.dialogRef = undefined;
|
159
|
+
const openedDialogs = ref.dialogService.getOpenedDialogs();
|
160
|
+
if (openedDialogs.length >= 1) {
|
161
|
+
let zIndex = Number($("[aria-labelledby= " + openedDialogs[openedDialogs.length - 1].titleId + "]").css('z-index'));
|
162
|
+
$('bs-modal-backdrop').css('z-index', zIndex - 1);
|
163
|
+
}
|
153
164
|
}
|
154
165
|
};
|
155
166
|
class BaseDialog extends i2.BaseComponent {
|
@@ -32,6 +32,12 @@ const invokeOpenedCallback = (ref) => {
|
|
32
32
|
setReturnFocus: focusTrapObj.activeElement,
|
33
33
|
});
|
34
34
|
focusTrapObj[ref.titleId].activate();
|
35
|
+
const openedDialogs = ref.dialogService.getOpenedDialogs();
|
36
|
+
if (openedDialogs.length > 1) {
|
37
|
+
let zIndex = Number($("[aria-labelledby= " + openedDialogs[openedDialogs.length - 2].titleId + "]").css('z-index'));
|
38
|
+
$('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);
|
39
|
+
$('bs-modal-backdrop').css('z-index', zIndex + 1);
|
40
|
+
}
|
35
41
|
});
|
36
42
|
}
|
37
43
|
};
|
@@ -39,6 +45,11 @@ const invokeClosedCallback = (ref) => {
|
|
39
45
|
if (ref) {
|
40
46
|
ref.invokeEventCallback('close');
|
41
47
|
ref.dialogRef = undefined;
|
48
|
+
const openedDialogs = ref.dialogService.getOpenedDialogs();
|
49
|
+
if (openedDialogs.length >= 1) {
|
50
|
+
let zIndex = Number($("[aria-labelledby= " + openedDialogs[openedDialogs.length - 1].titleId + "]").css('z-index'));
|
51
|
+
$('bs-modal-backdrop').css('z-index', zIndex - 1);
|
52
|
+
}
|
42
53
|
}
|
43
54
|
};
|
44
55
|
export class BaseDialog extends BaseComponent {
|
@@ -183,4 +194,4 @@ export class BaseDialog extends BaseComponent {
|
|
183
194
|
}, {
|
184
195
|
type: Optional
|
185
196
|
}] }], null); })();
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGlhbG9ncy9kZWZhdWx0L3NyYy9iYXNlLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsUUFBUSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBQyxhQUFhLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFhLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUk3RSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkcsT0FBTyxFQUFDLGFBQWEsRUFBMEIsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7QUFFdEQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFFL0IsTUFBTSxZQUFZLEdBQUc7SUFDakIsYUFBYSxFQUFFLElBQUk7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUNqQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ04sVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QywyRkFBMkY7WUFDM0YsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsR0FB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dG9yLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QnNNb2RhbFJlZiwgQnNNb2RhbFNlcnZpY2UsIE1vZGFsT3B0aW9uc30gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBYnN0cmFjdERpYWxvZ1NlcnZpY2UsIGZpbmRSb290Q29udGFpbmVyLCBnZW5lcmF0ZUdVSWQsIGlzTW9iaWxlLCBpc01vYmlsZUFwcH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQge0Jhc2VDb21wb25lbnQsIElEaWFsb2csIElXaWRnZXRDb25maWcsIFdpZGdldENvbmZpZ30gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge2NyZWF0ZUZvY3VzVHJhcH0gZnJvbSAnQHdhdmVtYWtlci9mb2N1cy10cmFwJztcblxuY29uc3QgZXZlbnRzUmVnaXN0ZXJlZCA9IGZhbHNlO1xuXG5jb25zdCBmb2N1c1RyYXBPYmogPSB7XG4gICAgYWN0aXZlRWxlbWVudDogbnVsbFxufTtcblxuY29uc3QgaW52b2tlT3BlbmVkQ2FsbGJhY2sgPSAocmVmKSA9PiB7XG4gICAgaWYgKHJlZikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBmaW5kUm9vdENvbnRhaW5lcihyZWYuJGVsZW1lbnQpO1xuICAgICAgICAgICAgLy8gaWYgcGFnZSBzdHlsZXMgaGF2ZSB0byBiZSBhcHBsaWVkIHRvIGRpYWxvZyB0aGVuIGRpYWxvZyBoYXMgdG8gYmUgY2hpbGQgb2YgcGFnZSBlbGVtZW50LlxuICAgICAgICAgICAgaWYgKHJvb3QpIHtcbiAgICAgICAgICAgICAgICAkKCdib2R5ID4gbW9kYWwtY29udGFpbmVyID4gZGl2Jykud3JhcCgnPCcgKyByb290ICsgJy8+Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWYuaW52b2tlRXZlbnRDYWxsYmFjaygnb3BlbmVkJywgeyRldmVudDoge3R5cGU6ICdvcGVuZWQnfX0pO1xuICAgICAgICAgICAgLy8gZm9jdXNUcmFwT2JqIHdpbGwgY3JlYXRlIGZvY3VzIHRyYXAgZm9yIHRoZSByZXNwZWN0aXZlIGRpYWxvZyBhY2NvcmRpbmcgdG8gdGhlIHRpdGxlSWQgYXNzaWduZWQgdG8gdGhlbSB3aGljaCBpcyB1bmlxdWUuXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKCdbYXJpYS1sYWJlbGxlZGJ5PSAnICsgcmVmLnRpdGxlSWQgKyAnXScpWzBdO1xuXG4gICAgICAgICAgICBjb25zdCBrZXlib2FyZEZvY3VzYWJsZUVsZW1lbnRzID0gW2NvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICdhLCBidXR0b24sIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBkZXRhaWxzLCBpZnJhbWUsIGVtYmVkLCBvYmplY3QsIHN1bW1hcnkgZGlhbG9nLCBhdWRpb1tjb250cm9sc10sIHZpZGVvW2NvbnRyb2xzXSwgW2NvbnRlbnRlZGl0YWJsZV0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSdcbiAgICAgICAgICAgICAgKV0uZmlsdGVyKGVsID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgIWVsWzBdLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJiAhZWxbMF0uaGFzQXR0cmlidXRlKCdoaWRkZW4nKSk7XG4gICAgICAgICAgICAgIH0pWzBdO1xuXG4gICAgICAgICAgICAkKGtleWJvYXJkRm9jdXNhYmxlRWxlbWVudHNbMF0pLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIGZvY3VzVHJhcE9ialtyZWYudGl0bGVJZF0gPSBjcmVhdGVGb2N1c1RyYXAoY29udGFpbmVyLCB7XG4gICAgICAgICAgICAgICAgb25BY3RpdmF0ZTogKCkgPT4gY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpLFxuICAgICAgICAgICAgICAgIG9uRGVhY3RpdmF0ZTogKCkgPT4gY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpLFxuICAgICAgICAgICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNldFJldHVybkZvY3VzOiBmb2N1c1RyYXBPYmouYWN0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9jdXNUcmFwT2JqW3JlZi50aXRsZUlkXS5hY3RpdmF0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5jb25zdCBpbnZva2VDbG9zZWRDYWxsYmFjayA9IChyZWYpID0+IHtcbiAgICBpZiAocmVmKSB7XG4gICAgICAgIHJlZi5pbnZva2VFdmVudENhbGxiYWNrKCdjbG9zZScpO1xuICAgICAgICByZWYuZGlhbG9nUmVmID0gdW5kZWZpbmVkO1xuICAgIH1cbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRGlhbG9nIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIElEaWFsb2csIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBic01vZGFsOiBCc01vZGFsU2VydmljZTtcblxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBCc01vZGFsUmVmO1xuICAgIHByaXZhdGUgZGlhbG9nSWQ6IG51bWJlcjtcbiAgICBwdWJsaWMgdGl0bGVJZDogc3RyaW5nID0gJ3dtZGlhbG9nLScgKyBnZW5lcmF0ZUdVSWQoKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChXaWRnZXRDb25maWcpIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgcHJvdGVjdGVkIG1vZGFsT3B0aW9uczogTW9kYWxPcHRpb25zLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBjb25maWcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZSA9IGluai5nZXQoQWJzdHJhY3REaWFsb2dTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5ic01vZGFsID0gaW5qLmdldChCc01vZGFsU2VydmljZSk7XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGluai5nZXQoUm91dGVyKTtcblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtcbiAgICAgICAgICAgIHRoaXMuYnNNb2RhbC5vblNob3duLnN1YnNjcmliZSgoe2lkfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXRMYXN0T3BlbmVkRGlhbG9nKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlZiA9PT0gdGhpcyAmJiAhdGhpcy5kaWFsb2dJZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbHdheXMgZ2V0IHRoZSByZWZlcmVuY2Ugb2YgbGFzdCBwdXNoZWQgZGlhbG9nIGluIHRoZSBhcnJheSBmb3IgY2FsbGluZyBvbk9wZW4gY2FsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgaW52b2tlT3BlbmVkQ2FsbGJhY2socmVmKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJZCA9IGlkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5ic01vZGFsLm9uU2hvdy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvY3VzVHJhcE9iai5hY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5ic01vZGFsLm9uSGlkZGVuLnN1YnNjcmliZSgoY2xvc2VSZWFzb24pID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldERpYWxvZ1JlZkZyb21DbG9zZWREaWFsb2dzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nSWQgJiYgY2xvc2VSZWFzb24/LmlkID09PSB0aGlzLmRpYWxvZ0lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjbG9zZVJlYXNvbiA9PT0gJ2VzYycgfHwgY2xvc2VSZWFzb24gPT09ICdiYWNrZHJvcC1jbGljaycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldExhc3RPcGVuZWREaWFsb2coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlZiA9PT0gdGhpcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0lkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBkaWFsb2cgcmVmZXJlbmNlIGZyb20gb3BlbmVkIGRpYWxvZ3MgYW5kIGNsb3NlZCBkaWFsb2dzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZW1vdmVGcm9tT3BlbmVkRGlhbG9ncyhyZWYpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVtb3ZlRnJvbUNsb3NlZERpYWxvZ3MocmVmKTtcbiAgICAgICAgICAgICAgICAgICAgaW52b2tlQ2xvc2VkQ2FsbGJhY2socmVmKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZi5jbG9zZUNhbGxCYWNrRm4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5jbG9zZUNhbGxCYWNrRm4oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5ic01vZGFsLm9uSGlkZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vICBXaWxsIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgZm9yIHRoZSByZXNwZWN0aXZlIGRpYWxvZyB3aGVuIHRoZXkgYXJlIGNsb3NlZC5cbiAgICAgICAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0RGlhbG9nUmVmRnJvbUNsb3NlZERpYWxvZ3MoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVmICYmIGZvY3VzVHJhcE9ialtyZWYudGl0bGVJZF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBmb2N1c1RyYXBPYmpbcmVmLnRpdGxlSWRdLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiB7Ly8gcmVtb3ZlIHRoZSBkaWFsb2cgcmVmZXJlbmNlIGZyb20gb3BlbmVkIGRpYWxvZ3MgYW5kIGNsb3NlZCBkaWFsb2dzXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVtb3ZlRnJvbU9wZW5lZERpYWxvZ3ModGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVtb3ZlRnJvbUNsb3NlZERpYWxvZ3ModGhpcyk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgZGlhbG9nXG4gICAgICogU3Vic2NyaWJlIHRvIHRoZSBvblNob3duIGV2ZW50IGVtaXR0ZXIgb2YgYnNNb2RhbCBhbmQgdHJpZ2dlciBvbi1vcGVuZWQgZXZlbnQgY2FsbGJhY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgb3Blbihpbml0U3RhdGU/OiBhbnkpIHtcblxuICAgICAgICAvLyByZW1vdmUgdGhlIHBvcG92ZXJzIGluIHRoZSBwYWdlIHRvIGF2b2lkIHRoZSBvdmVybGFwIHdpdGggZGlhbG9nXG4gICAgICAgIC8vIGNsb3NlUG9wb3Zlcih0aGlzLiRlbGVtZW50KTsgQ29tbWVudGluZyB0aGlzIGxpbmUgYmVjYXVzZSBpdCBpcyBjYXVzaW5nIHJlZ3Jlc3Npb24oaWYgd2UgaGF2ZSBkaWFsb2cgaW5zaWRlIHBvcG92ZXIgYXMgcGFydGFpbCBjb250ZW50LCB0aGVuIHRoZSBkaWFsb2cgY2xvc2UgaXMgbm90IHdvcmtpbmcgYmVjYXVzZSBvbiBjbG9zaW5nIHRoZSBwb3BvdmVyIHRoZSBwYXJ0aWFsIGdldCBkZXN0cm95ZWQuKVxuXG4gICAgICAgIC8vIGRvIG5vdCBvcGVuIHRoZSBkaWFsb2cgYWdhaW4gaWYgaXQgaXMgYWxyZWFkeSBvcGVuZWRcbiAgICAgICAgY29uc3QgZHVwbGljYXRlRGlhbG9nQ2hlY2sgPSAob3BlbmVkRGlhbG9nKSA9PiB7XG4gICAgICAgICAgIHJldHVybiBvcGVuZWREaWFsb2cgPT09IHRoaXM7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nU2VydmljZS5nZXRPcGVuZWREaWFsb2dzKCkuc29tZShkdXBsaWNhdGVEaWFsb2dDaGVjaykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hZGRUb09wZW5lZERpYWxvZ3ModGhpcyk7XG5cbiAgICAgICAgLy8gZXh0ZW5kIHRoZSBjb250ZXh0IHdpdGggdGhlIGluaXRTdGF0ZVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29udGV4dCwgaW5pdFN0YXRlKTtcbiAgICAgICAgdGhpcy5tb2RhbE9wdGlvbnMuYXJpYUxhYmVsbGVkQnkgPSB0aGlzLnRpdGxlSWQ7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5ic01vZGFsLnNob3codGhpcy5nZXRUZW1wbGF0ZVJlZigpLCB0aGlzLm1vZGFsT3B0aW9ucyk7XG4gICAgICAgIC8vIEZpeCBmb3IgW1dNUy0yMzk0OF06IEZvY3VzIG1vdmluZyBvdXQgb2YgYWN0aXZlIERpYWxvZyB3aWRnZXRcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nU2VydmljZS5nZXRPcGVuZWREaWFsb2dzKCkubGVuZ3RoID09PSAxICYmIChpc01vYmlsZSgpIHx8IGlzTW9iaWxlQXBwKCkpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRTZWxlY3RvciA9ICQoJ2JvZHkgPiBhcHAtcm9vdCcpWzBdO1xuICAgICAgICAgICAgcGFyZW50U2VsZWN0b3Iuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZXMgdGhlIGRpYWxvZ1xuICAgICAqIGludm9rZXMgdGhlIG9uLWNsb3NlIGV2ZW50IGNhbGxiYWNrXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlKCkge1xuICAgICAgICAvLyByZW1vdmUgdGhlIHBvcG92ZXJzIGluIHRoZSBwYWdlIHRvIGF2b2lkIHRoZSBvdmVybGFwIHdpdGggZGlhbG9nXG4gICAgICAgIC8vIGNsb3NlUG9wb3Zlcih0aGlzLiRlbGVtZW50KTsgQ29tbWVudGluZyB0aGlzIGxpbmUgYmVjYXVzZSBpdCBpcyBjYXVzaW5nIHJlZ3Jlc3Npb24oaWYgd2UgaGF2ZSBkaWFsb2cgaW5zaWRlIHBvcG92ZXIgYXMgcGFydGFpbCBjb250ZW50LCB0aGVuIHRoZSBkaWFsb2cgY2xvc2UgaXMgbm90IHdvcmtpbmcgYmVjYXVzZSBvbiBjbG9zaW5nIHRoZSBwb3BvdmVyIHRoZSBwYXJ0aWFsIGdldCBkZXN0cm95ZWQuKVxuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hZGRUb0Nsb3NlZERpYWxvZ3ModGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB0aGUgZGlhbG9nIHdpdGggdGhlIGRpYWxvZyBzZXJ2aWNlIGZvciBwcm9ncmFtbWF0aWMgYWNjZXNzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlZ2lzdGVyKHNjb3BlKSB7XG4gICAgICAgIC8vIGFkZCBzY29wZSBhbG9uZyB3aXRoIG5hbWUgaW4gdGhlIGRpYWxvZ1JlZnNDb2xsZWN0aW9uIE1hcCB3aGlsZSByZWdpc3RlcmluZyBkaWFsb2dcbiAgICAgICAgLy8gU28gdGhhdCAyIGRpYWxvZ3MgaGF2aW5nIHNhbWUgbmFtZSBvbiBkaWZmZXJlbnQgcGFnZXMgd29uJ3QgYmUgb3ZlcnJpZGRlbi5cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnJlZ2lzdGVyKHRoaXMubmFtZSwgdGhpcywgc2NvcGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlIFJlZ2lzdGVyIHRoZSBkaWFsb2cgd2l0aCB0aGUgZGlhbG9nIHNlcnZpY2UgYWZ0ZXIgZGlhbG9nIGRlc3RydWN0aW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGRlUmVnaXN0ZXIoc2NvcGUpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmRlUmVnaXN0ZXIodGhpcy5uYW1lLCBzY29wZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc3ViY2xhc3NlcyBvZiBCYXNlRGlhbG9nIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIHJldHVybiB0aGUgcHJvcGVyIHRlbXBsYXRlIGVsZW1lbnQgcmVmXG4gICAgICogYnNNb2RhbCB3aWxsIHVzZSB0aGlzIHJlZmVuY2UgdG8gb3BlbiB0aGUgZGlhbG9nXG4gICAgICogQHJldHVybnMge1RlbXBsYXRlUmVmPGFueT59XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFRlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgLy8gaWdub3JlIHRoZSBjbGFzcyBhdHRyaWJ1dGUuXG4gICAgICAgIC8vIFByZXZlbnQgdGhlIGZyYW1ld29yayBmcm9tIHNldHRpbmcgdGhlIGNsYXNzIG9uIHRoZSBob3N0IGVsZW1lbnQuXG4gICAgICAgIGlmIChrZXkgPT09ICdjbGFzcycgfHwga2V5ID09PSAnbmFtZScgfHwga2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYW5pbWF0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5tb2RhbE9wdGlvbnMuY2xhc3MgPSB0aGlzLm1vZGFsT3B0aW9ucy5jbGFzcy5yZXBsYWNlKCcgYW5pbWF0ZWQgJyArIG92LCAnJyk7XG4gICAgICAgICAgICBpZiAobnYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsT3B0aW9ucy5jbGFzcyA9IHRoaXMubW9kYWxPcHRpb25zLmNsYXNzICsgJyBhbmltYXRlZCAnICsgbnY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZGVSZWdpc3Rlcih0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGlhbG9ncy9kZWZhdWx0L3NyYy9iYXNlLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsUUFBUSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBQyxhQUFhLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFhLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUk3RSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkcsT0FBTyxFQUFDLGFBQWEsRUFBMEIsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7QUFFdEQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFFL0IsTUFBTSxZQUFZLEdBQUc7SUFDakIsYUFBYSxFQUFFLElBQUk7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUNqQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ04sVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QywyRkFBMkY7WUFDM0YsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsR0FB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R0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBQ3JELDhCQUE4QjtRQUM5QixvRUFBb0U7UUFDcEUsSUFBSSxHQUFHLEtBQUssT0FBTyxJQUFJLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzFELE9BQU87UUFDWCxDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakYsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQzFFLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsyRUE3SmlCLFVBQVUsd0NBYWhCLFlBQVksNkNBRVosa0JBQWtCO3VFQWZaLFVBQVUsV0FBVixVQUFVOztpRkFBVixVQUFVO2NBRC9CLFVBQVU7O3NCQWNGLE1BQU07dUJBQUMsWUFBWTs7c0JBRW5CLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QnNNb2RhbFJlZiwgQnNNb2RhbFNlcnZpY2UsIE1vZGFsT3B0aW9uc30gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBYnN0cmFjdERpYWxvZ1NlcnZpY2UsIGZpbmRSb290Q29udGFpbmVyLCBnZW5lcmF0ZUdVSWQsIGlzTW9iaWxlLCBpc01vYmlsZUFwcH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQge0Jhc2VDb21wb25lbnQsIElEaWFsb2csIElXaWRnZXRDb25maWcsIFdpZGdldENvbmZpZ30gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge2NyZWF0ZUZvY3VzVHJhcH0gZnJvbSAnQHdhdmVtYWtlci9mb2N1cy10cmFwJztcblxuY29uc3QgZXZlbnRzUmVnaXN0ZXJlZCA9IGZhbHNlO1xuXG5jb25zdCBmb2N1c1RyYXBPYmogPSB7XG4gICAgYWN0aXZlRWxlbWVudDogbnVsbFxufTtcblxuY29uc3QgaW52b2tlT3BlbmVkQ2FsbGJhY2sgPSAocmVmKSA9PiB7XG4gICAgaWYgKHJlZikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBmaW5kUm9vdENvbnRhaW5lcihyZWYuJGVsZW1lbnQpO1xuICAgICAgICAgICAgLy8gaWYgcGFnZSBzdHlsZXMgaGF2ZSB0byBiZSBhcHBsaWVkIHRvIGRpYWxvZyB0aGVuIGRpYWxvZyBoYXMgdG8gYmUgY2hpbGQgb2YgcGFnZSBlbGVtZW50LlxuICAgICAgICAgICAgaWYgKHJvb3QpIHtcbiAgICAgICAgICAgICAgICAkKCdib2R5ID4gbW9kYWwtY29udGFpbmVyID4gZGl2Jykud3JhcCgnPCcgKyByb290ICsgJy8+Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWYuaW52b2tlRXZlbnRDYWxsYmFjaygnb3BlbmVkJywgeyRldmVudDoge3R5cGU6ICdvcGVuZWQnfX0pO1xuICAgICAgICAgICAgLy8gZm9jdXNUcmFwT2JqIHdpbGwgY3JlYXRlIGZvY3VzIHRyYXAgZm9yIHRoZSByZXNwZWN0aXZlIGRpYWxvZyBhY2NvcmRpbmcgdG8gdGhlIHRpdGxlSWQgYXNzaWduZWQgdG8gdGhlbSB3aGljaCBpcyB1bmlxdWUuXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKCdbYXJpYS1sYWJlbGxlZGJ5PSAnICsgcmVmLnRpdGxlSWQgKyAnXScpWzBdO1xuXG4gICAgICAgICAgICBjb25zdCBrZXlib2FyZEZvY3VzYWJsZUVsZW1lbnRzID0gW2NvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICdhLCBidXR0b24sIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBkZXRhaWxzLCBpZnJhbWUsIGVtYmVkLCBvYmplY3QsIHN1bW1hcnkgZGlhbG9nLCBhdWRpb1tjb250cm9sc10sIHZpZGVvW2NvbnRyb2xzXSwgW2NvbnRlbnRlZGl0YWJsZV0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSdcbiAgICAgICAgICAgICAgKV0uZmlsdGVyKGVsID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgIWVsWzBdLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJiAhZWxbMF0uaGFzQXR0cmlidXRlKCdoaWRkZW4nKSk7XG4gICAgICAgICAgICAgIH0pWzBdO1xuXG4gICAgICAgICAgICAkKGtleWJvYXJkRm9jdXNhYmxlRWxlbWVudHNbMF0pLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIGZvY3VzVHJhcE9ialtyZWYudGl0bGVJZF0gPSBjcmVhdGVGb2N1c1RyYXAoY29udGFpbmVyLCB7XG4gICAgICAgICAgICAgICAgb25BY3RpdmF0ZTogKCkgPT4gY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpLFxuICAgICAgICAgICAgICAgIG9uRGVhY3RpdmF0ZTogKCkgPT4gY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpLFxuICAgICAgICAgICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNldFJldHVybkZvY3VzOiBmb2N1c1RyYXBPYmouYWN0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9jdXNUcmFwT2JqW3JlZi50aXRsZUlkXS5hY3RpdmF0ZSgpO1xuICAgICAgICAgICAgY29uc3Qgb3BlbmVkRGlhbG9ncyA9IHJlZi5kaWFsb2dTZXJ2aWNlLmdldE9wZW5lZERpYWxvZ3MoKTtcbiAgICAgICAgICAgIGlmIChvcGVuZWREaWFsb2dzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICBsZXQgekluZGV4ID0gTnVtYmVyKCQoXCJbYXJpYS1sYWJlbGxlZGJ5PSBcIiArIG9wZW5lZERpYWxvZ3Nbb3BlbmVkRGlhbG9ncy5sZW5ndGggLSAyXS50aXRsZUlkICsgXCJdXCIpLmNzcygnei1pbmRleCcpKTtcbiAgICAgICAgICAgICAgICAkKCdbYXJpYS1sYWJlbGxlZGJ5PSAnICsgcmVmLmRpYWxvZ1NlcnZpY2UuZ2V0TGFzdE9wZW5lZERpYWxvZygpLnRpdGxlSWQgKyAnXScpLmNzcygnei1pbmRleCcsIHpJbmRleCArIDIpO1xuICAgICAgICAgICAgICAgICQoJ2JzLW1vZGFsLWJhY2tkcm9wJykuY3NzKCd6LWluZGV4JywgekluZGV4ICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGludm9rZUNsb3NlZENhbGxiYWNrID0gKHJlZikgPT4ge1xuICAgIGlmIChyZWYpIHtcbiAgICAgICAgcmVmLmludm9rZUV2ZW50Q2FsbGJhY2soJ2Nsb3NlJyk7XG4gICAgICAgIHJlZi5kaWFsb2dSZWYgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG9wZW5lZERpYWxvZ3MgPSByZWYuZGlhbG9nU2VydmljZS5nZXRPcGVuZWREaWFsb2dzKCk7XG4gICAgICAgIGlmIChvcGVuZWREaWFsb2dzLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICBsZXQgekluZGV4OiBhbnkgPSBOdW1iZXIoJChcIlthcmlhLWxhYmVsbGVkYnk9IFwiICsgb3BlbmVkRGlhbG9nc1tvcGVuZWREaWFsb2dzLmxlbmd0aCAtIDFdLnRpdGxlSWQgKyBcIl1cIikuY3NzKCd6LWluZGV4JykpO1xuICAgICAgICAgICAgJCgnYnMtbW9kYWwtYmFja2Ryb3AnKS5jc3MoJ3otaW5kZXgnLCB6SW5kZXggLSAxKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRGlhbG9nIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIElEaWFsb2csIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBic01vZGFsOiBCc01vZGFsU2VydmljZTtcblxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBCc01vZGFsUmVmO1xuICAgIHByaXZhdGUgZGlhbG9nSWQ6IG51bWJlcjtcbiAgICBwdWJsaWMgdGl0bGVJZDogc3RyaW5nID0gJ3dtZGlhbG9nLScgKyBnZW5lcmF0ZUdVSWQoKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChXaWRnZXRDb25maWcpIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgcHJvdGVjdGVkIG1vZGFsT3B0aW9uczogTW9kYWxPcHRpb25zLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBjb25maWcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZSA9IGluai5nZXQoQWJzdHJhY3REaWFsb2dTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5ic01vZGFsID0gaW5qLmdldChCc01vZGFsU2VydmljZSk7XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGluai5nZXQoUm91dGVyKTtcblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtcbiAgICAgICAgICAgIHRoaXMuYnNNb2RhbC5vblNob3duLnN1YnNjcmliZSgoe2lkfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXRMYXN0T3BlbmVkRGlhbG9nKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlZiA9PT0gdGhpcyAmJiAhdGhpcy5kaWFsb2dJZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbHdheXMgZ2V0IHRoZSByZWZlcmVuY2Ugb2YgbGFzdCBwdXNoZWQgZGlhbG9nIGluIHRoZSBhcnJheSBmb3IgY2FsbGluZyBvbk9wZW4gY2FsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgaW52b2tlT3BlbmVkQ2FsbGJhY2socmVmKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJZCA9IGlkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5ic01vZGFsLm9uU2hvdy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvY3VzVHJhcE9iai5hY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5ic01vZGFsLm9uSGlkZGVuLnN1YnNjcmliZSgoY2xvc2VSZWFzb24pID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldERpYWxvZ1JlZkZyb21DbG9zZWREaWFsb2dzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nSWQgJiYgY2xvc2VSZWFzb24/LmlkID09PSB0aGlzLmRpYWxvZ0lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjbG9zZVJlYXNvbiA9PT0gJ2VzYycgfHwgY2xvc2VSZWFzb24gPT09ICdiYWNrZHJvcC1jbGljaycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldExhc3RPcGVuZWREaWFsb2coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlZiA9PT0gdGhpcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0lkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBkaWFsb2cgcmVmZXJlbmNlIGZyb20gb3BlbmVkIGRpYWxvZ3MgYW5kIGNsb3NlZCBkaWFsb2dzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZW1vdmVGcm9tT3BlbmVkRGlhbG9ncyhyZWYpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVtb3ZlRnJvbUNsb3NlZERpYWxvZ3MocmVmKTtcbiAgICAgICAgICAgICAgICAgICAgaW52b2tlQ2xvc2VkQ2FsbGJhY2socmVmKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZi5jbG9zZUNhbGxCYWNrRm4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5jbG9zZUNhbGxCYWNrRm4oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5ic01vZGFsLm9uSGlkZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vICBXaWxsIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgZm9yIHRoZSByZXNwZWN0aXZlIGRpYWxvZyB3aGVuIHRoZXkgYXJlIGNsb3NlZC5cbiAgICAgICAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0RGlhbG9nUmVmRnJvbUNsb3NlZERpYWxvZ3MoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVmICYmIGZvY3VzVHJhcE9ialtyZWYudGl0bGVJZF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBmb2N1c1RyYXBPYmpbcmVmLnRpdGxlSWRdLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiB7Ly8gcmVtb3ZlIHRoZSBkaWFsb2cgcmVmZXJlbmNlIGZyb20gb3BlbmVkIGRpYWxvZ3MgYW5kIGNsb3NlZCBkaWFsb2dzXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVtb3ZlRnJvbU9wZW5lZERpYWxvZ3ModGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVtb3ZlRnJvbUNsb3NlZERpYWxvZ3ModGhpcyk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgZGlhbG9nXG4gICAgICogU3Vic2NyaWJlIHRvIHRoZSBvblNob3duIGV2ZW50IGVtaXR0ZXIgb2YgYnNNb2RhbCBhbmQgdHJpZ2dlciBvbi1vcGVuZWQgZXZlbnQgY2FsbGJhY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgb3Blbihpbml0U3RhdGU/OiBhbnkpIHtcblxuICAgICAgICAvLyByZW1vdmUgdGhlIHBvcG92ZXJzIGluIHRoZSBwYWdlIHRvIGF2b2lkIHRoZSBvdmVybGFwIHdpdGggZGlhbG9nXG4gICAgICAgIC8vIGNsb3NlUG9wb3Zlcih0aGlzLiRlbGVtZW50KTsgQ29tbWVudGluZyB0aGlzIGxpbmUgYmVjYXVzZSBpdCBpcyBjYXVzaW5nIHJlZ3Jlc3Npb24oaWYgd2UgaGF2ZSBkaWFsb2cgaW5zaWRlIHBvcG92ZXIgYXMgcGFydGFpbCBjb250ZW50LCB0aGVuIHRoZSBkaWFsb2cgY2xvc2UgaXMgbm90IHdvcmtpbmcgYmVjYXVzZSBvbiBjbG9zaW5nIHRoZSBwb3BvdmVyIHRoZSBwYXJ0aWFsIGdldCBkZXN0cm95ZWQuKVxuXG4gICAgICAgIC8vIGRvIG5vdCBvcGVuIHRoZSBkaWFsb2cgYWdhaW4gaWYgaXQgaXMgYWxyZWFkeSBvcGVuZWRcbiAgICAgICAgY29uc3QgZHVwbGljYXRlRGlhbG9nQ2hlY2sgPSAob3BlbmVkRGlhbG9nKSA9PiB7XG4gICAgICAgICAgIHJldHVybiBvcGVuZWREaWFsb2cgPT09IHRoaXM7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nU2VydmljZS5nZXRPcGVuZWREaWFsb2dzKCkuc29tZShkdXBsaWNhdGVEaWFsb2dDaGVjaykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hZGRUb09wZW5lZERpYWxvZ3ModGhpcyk7XG5cbiAgICAgICAgLy8gZXh0ZW5kIHRoZSBjb250ZXh0IHdpdGggdGhlIGluaXRTdGF0ZVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29udGV4dCwgaW5pdFN0YXRlKTtcbiAgICAgICAgdGhpcy5tb2RhbE9wdGlvbnMuYXJpYUxhYmVsbGVkQnkgPSB0aGlzLnRpdGxlSWQ7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5ic01vZGFsLnNob3codGhpcy5nZXRUZW1wbGF0ZVJlZigpLCB0aGlzLm1vZGFsT3B0aW9ucyk7XG4gICAgICAgIC8vIEZpeCBmb3IgW1dNUy0yMzk0OF06IEZvY3VzIG1vdmluZyBvdXQgb2YgYWN0aXZlIERpYWxvZyB3aWRnZXRcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nU2VydmljZS5nZXRPcGVuZWREaWFsb2dzKCkubGVuZ3RoID09PSAxICYmIChpc01vYmlsZSgpIHx8IGlzTW9iaWxlQXBwKCkpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRTZWxlY3RvciA9ICQoJ2JvZHkgPiBhcHAtcm9vdCcpWzBdO1xuICAgICAgICAgICAgcGFyZW50U2VsZWN0b3Iuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZXMgdGhlIGRpYWxvZ1xuICAgICAqIGludm9rZXMgdGhlIG9uLWNsb3NlIGV2ZW50IGNhbGxiYWNrXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlKCkge1xuICAgICAgICAvLyByZW1vdmUgdGhlIHBvcG92ZXJzIGluIHRoZSBwYWdlIHRvIGF2b2lkIHRoZSBvdmVybGFwIHdpdGggZGlhbG9nXG4gICAgICAgIC8vIGNsb3NlUG9wb3Zlcih0aGlzLiRlbGVtZW50KTsgQ29tbWVudGluZyB0aGlzIGxpbmUgYmVjYXVzZSBpdCBpcyBjYXVzaW5nIHJlZ3Jlc3Npb24oaWYgd2UgaGF2ZSBkaWFsb2cgaW5zaWRlIHBvcG92ZXIgYXMgcGFydGFpbCBjb250ZW50LCB0aGVuIHRoZSBkaWFsb2cgY2xvc2UgaXMgbm90IHdvcmtpbmcgYmVjYXVzZSBvbiBjbG9zaW5nIHRoZSBwb3BvdmVyIHRoZSBwYXJ0aWFsIGdldCBkZXN0cm95ZWQuKVxuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hZGRUb0Nsb3NlZERpYWxvZ3ModGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB0aGUgZGlhbG9nIHdpdGggdGhlIGRpYWxvZyBzZXJ2aWNlIGZvciBwcm9ncmFtbWF0aWMgYWNjZXNzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlZ2lzdGVyKHNjb3BlKSB7XG4gICAgICAgIC8vIGFkZCBzY29wZSBhbG9uZyB3aXRoIG5hbWUgaW4gdGhlIGRpYWxvZ1JlZnNDb2xsZWN0aW9uIE1hcCB3aGlsZSByZWdpc3RlcmluZyBkaWFsb2dcbiAgICAgICAgLy8gU28gdGhhdCAyIGRpYWxvZ3MgaGF2aW5nIHNhbWUgbmFtZSBvbiBkaWZmZXJlbnQgcGFnZXMgd29uJ3QgYmUgb3ZlcnJpZGRlbi5cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnJlZ2lzdGVyKHRoaXMubmFtZSwgdGhpcywgc2NvcGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlIFJlZ2lzdGVyIHRoZSBkaWFsb2cgd2l0aCB0aGUgZGlhbG9nIHNlcnZpY2UgYWZ0ZXIgZGlhbG9nIGRlc3RydWN0aW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGRlUmVnaXN0ZXIoc2NvcGUpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmRlUmVnaXN0ZXIodGhpcy5uYW1lLCBzY29wZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc3ViY2xhc3NlcyBvZiBCYXNlRGlhbG9nIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIHJldHVybiB0aGUgcHJvcGVyIHRlbXBsYXRlIGVsZW1lbnQgcmVmXG4gICAgICogYnNNb2RhbCB3aWxsIHVzZSB0aGlzIHJlZmVuY2UgdG8gb3BlbiB0aGUgZGlhbG9nXG4gICAgICogQHJldHVybnMge1RlbXBsYXRlUmVmPGFueT59XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFRlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgLy8gaWdub3JlIHRoZSBjbGFzcyBhdHRyaWJ1dGUuXG4gICAgICAgIC8vIFByZXZlbnQgdGhlIGZyYW1ld29yayBmcm9tIHNldHRpbmcgdGhlIGNsYXNzIG9uIHRoZSBob3N0IGVsZW1lbnQuXG4gICAgICAgIGlmIChrZXkgPT09ICdjbGFzcycgfHwga2V5ID09PSAnbmFtZScgfHwga2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYW5pbWF0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5tb2RhbE9wdGlvbnMuY2xhc3MgPSB0aGlzLm1vZGFsT3B0aW9ucy5jbGFzcy5yZXBsYWNlKCcgYW5pbWF0ZWQgJyArIG92LCAnJyk7XG4gICAgICAgICAgICBpZiAobnYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsT3B0aW9ucy5jbGFzcyA9IHRoaXMubW9kYWxPcHRpb25zLmNsYXNzICsgJyBhbmltYXRlZCAnICsgbnY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZGVSZWdpc3Rlcih0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -129,6 +129,12 @@ const invokeOpenedCallback = (ref) => {
|
|
129
129
|
setReturnFocus: focusTrapObj.activeElement,
|
130
130
|
});
|
131
131
|
focusTrapObj[ref.titleId].activate();
|
132
|
+
const openedDialogs = ref.dialogService.getOpenedDialogs();
|
133
|
+
if (openedDialogs.length > 1) {
|
134
|
+
let zIndex = Number($("[aria-labelledby= " + openedDialogs[openedDialogs.length - 2].titleId + "]").css('z-index'));
|
135
|
+
$('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);
|
136
|
+
$('bs-modal-backdrop').css('z-index', zIndex + 1);
|
137
|
+
}
|
132
138
|
});
|
133
139
|
}
|
134
140
|
};
|
@@ -136,6 +142,11 @@ const invokeClosedCallback = (ref) => {
|
|
136
142
|
if (ref) {
|
137
143
|
ref.invokeEventCallback('close');
|
138
144
|
ref.dialogRef = undefined;
|
145
|
+
const openedDialogs = ref.dialogService.getOpenedDialogs();
|
146
|
+
if (openedDialogs.length >= 1) {
|
147
|
+
let zIndex = Number($("[aria-labelledby= " + openedDialogs[openedDialogs.length - 1].titleId + "]").css('z-index'));
|
148
|
+
$('bs-modal-backdrop').css('z-index', zIndex - 1);
|
149
|
+
}
|
139
150
|
}
|
140
151
|
};
|
141
152
|
class BaseDialog extends BaseComponent {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/default/src/dialog-body/dialog-body.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.props.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/base-dialog.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.html","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog.module.ts","../../../../../projects/components/widgets/dialogs/default/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Inject, Renderer2 } from '@angular/core';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { addClass, setAttr, setCSS } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-dialog-body modal-body';\n\n@Directive({\n selector: 'div[wmDialogBody]',\n})\nexport class DialogBodyDirective {\n @HostBinding('style.height') height;\n constructor(\n elRef: ElementRef,\n @Inject(DialogRef) private dialogRef,\n bsModal: BsModalService,\n private renderer: Renderer2\n ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n\n const subscription = bsModal.onShown.subscribe(() => {\n const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];\n let dialogRootContainer = $('body.wm-app')[0];\n // To identify the microfrontend, if body tag doesn't have wm-app class then app loading as micro-frontend\n if(!dialogRootContainer) {\n const dialogBackrop = $('body > .modal-backdrop')[0];\n const parentContainer = $('body > modal-container')[0];\n dialogRootContainer = $('.wm-app')[0];\n if(dialogRootContainer && parentContainer ){\n if(dialogBackrop){\n this.renderer.appendChild(dialogRootContainer, dialogBackrop);\n }\n this.renderer.appendChild(dialogRootContainer, parentContainer);\n\n }\n }\n const width = this.dialogRef.width;\n const height = this.dialogRef.height;\n if(height){\n setTimeout(e=>{\n setCSS($(elRef.nativeElement)[0], 'height', height);\n });\n }\n if (dialogRoot) {\n if (width) {\n setCSS(dialogRoot, 'width', width);\n }\n setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);\n setAttr(dialogRoot, 'name', this.dialogRef.name);\n\n }\n subscription.unsubscribe();\n });\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialogfooter',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './dialog-footer.props';\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-dialogfooter',\n hostClass: 'app-dialog-footer modal-footer'\n};\n\n@Directive({\n selector: 'div[wmDialogFooter]',\n providers: [\n provideAsWidgetRef(DialogFooterDirective)\n ]\n})\nexport class DialogFooterDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n }\n}\n","import {Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {BsModalRef, BsModalService, ModalOptions} from 'ngx-bootstrap/modal';\n\nimport {Subscription} from 'rxjs';\n\nimport {AbstractDialogService, findRootContainer, generateGUId, isMobile, isMobileApp} from '@wm/core';\n\nimport {BaseComponent, IDialog, IWidgetConfig, WidgetConfig} from '@wm/components/base';\nimport {createFocusTrap} from '@wavemaker/focus-trap';\n\nconst eventsRegistered = false;\n\nconst focusTrapObj = {\n activeElement: null\n};\n\nconst invokeOpenedCallback = (ref) => {\n if (ref) {\n setTimeout(() => {\n const root = findRootContainer(ref.$element);\n // if page styles have to be applied to dialog then dialog has to be child of page element.\n if (root) {\n $('body > modal-container > div').wrap('<' + root + '/>');\n }\n ref.invokeEventCallback('opened', {$event: {type: 'opened'}});\n // focusTrapObj will create focus trap for the respective dialog according to the titleId assigned to them which is unique.\n const container = $('[aria-labelledby= ' + ref.titleId + ']')[0];\n\n const keyboardFocusableElements = [container.querySelectorAll(\n 'a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => {\n return (\n !el[0].hasAttribute('disabled') && !el[0].hasAttribute('hidden'));\n })[0];\n\n $(keyboardFocusableElements[0]).focus();\n\n focusTrapObj[ref.titleId] = createFocusTrap(container, {\n onActivate: () => container.classList.add('is-active'),\n onDeactivate: () => container.classList.remove('is-active'),\n allowOutsideClick: true,\n setReturnFocus: focusTrapObj.activeElement,\n });\n focusTrapObj[ref.titleId].activate();\n });\n }\n};\n\nconst invokeClosedCallback = (ref) => {\n if (ref) {\n ref.invokeEventCallback('close');\n ref.dialogRef = undefined;\n }\n};\n\n@Injectable()\nexport abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {\n\n public name: string;\n\n private readonly dialogService: AbstractDialogService;\n private readonly bsModal: BsModalService;\n\n private dialogRef: BsModalRef;\n private dialogId: number;\n public titleId: string = 'wmdialog-' + generateGUId();\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n protected modalOptions: ModalOptions,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.dialogService = inj.get(AbstractDialogService);\n this.bsModal = inj.get(BsModalService);\n const router = inj.get(Router);\n\n const subscriptions: Subscription[] = [\n this.bsModal.onShown.subscribe(({id}) => {\n const ref = this.dialogService.getLastOpenedDialog();\n if (ref === this && !this.dialogId) {\n // Always get the reference of last pushed dialog in the array for calling onOpen callback\n invokeOpenedCallback(ref);\n this.dialogId = id;\n }\n }),\n this.bsModal.onShow.subscribe(() => {\n focusTrapObj.activeElement = document.activeElement;\n }),\n this.bsModal.onHidden.subscribe((closeReason) => {\n let ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (this.dialogId && closeReason?.id === this.dialogId) {\n ref = this;\n } else if (closeReason === 'esc' || closeReason === 'backdrop-click') {\n ref = this.dialogService.getLastOpenedDialog();\n }\n if (ref === this) {\n this.dialogId = null;\n // remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(ref);\n this.dialogService.removeFromClosedDialogs(ref);\n invokeClosedCallback(ref);\n if (ref.closeCallBackFn) {\n ref.closeCallBackFn();\n }\n }\n }),\n this.bsModal.onHide.subscribe(() => {\n // Will de-activate focus trap for the respective dialog when they are closed.\n const ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (ref && focusTrapObj[ref.titleId] !== undefined) {\n focusTrapObj[ref.titleId].deactivate();\n }\n }),\n router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.close();\n }\n })\n ];\n this.registerDestroyListener(() => {// remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(this);\n this.dialogService.removeFromClosedDialogs(this);\n subscriptions.forEach(s => s.unsubscribe());\n });\n }\n\n /**\n * Opens the dialog\n * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback\n */\n public open(initState?: any) {\n\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n\n // do not open the dialog again if it is already opened\n const duplicateDialogCheck = (openedDialog) => {\n return openedDialog === this;\n };\n\n if (this.dialogService.getOpenedDialogs().some(duplicateDialogCheck)) {\n return;\n }\n\n this.dialogService.addToOpenedDialogs(this);\n\n // extend the context with the initState\n Object.assign(this.context, initState);\n this.modalOptions.ariaLabelledBy = this.titleId;\n this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);\n // Fix for [WMS-23948]: Focus moving out of active Dialog widget\n if (this.dialogService.getOpenedDialogs().length === 1 && (isMobile() || isMobileApp())) {\n const parentSelector = $('body > app-root')[0];\n parentSelector.setAttribute('aria-hidden', 'true');\n }\n }\n\n /**\n * closes the dialog\n * invokes the on-close event callback\n */\n public close() {\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n if (this.dialogRef) {\n this.dialogService.addToClosedDialogs(this);\n this.dialogRef.hide();\n }\n }\n\n /**\n * Register the dialog with the dialog service for programmatic access\n */\n protected register(scope) {\n // add scope along with name in the dialogRefsCollection Map while registering dialog\n // So that 2 dialogs having same name on different pages won't be overridden.\n this.dialogService.register(this.name, this, scope);\n }\n\n /**\n * De Register the dialog with the dialog service after dialog destruction\n */\n protected deRegister(scope) {\n this.dialogService.deRegister(this.name, scope);\n }\n\n /**\n * subclasses of BaseDialog must implement this method to return the proper template element ref\n * bsModal will use this refence to open the dialog\n * @returns {TemplateRef<any>}\n */\n protected abstract getTemplateRef(): TemplateRef<any>;\n\n protected onPropertyChange(key: string, nv: any, ov?: any) {\n // ignore the class attribute.\n // Prevent the framework from setting the class on the host element.\n if (key === 'class' || key === 'name' || key === 'tabindex') {\n return;\n } else if (key === 'animation') {\n this.modalOptions.class = this.modalOptions.class.replace(' animated ' + ov, '');\n if (nv) {\n this.modalOptions.class = this.modalOptions.class + ' animated ' + nv;\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n public ngOnDestroy() {\n this.close();\n this.deRegister(this.viewParent);\n super.ngOnDestroy();\n }\n}\n","<button *ngIf=\"isClosable\" aria-label=\"Close\" class=\"app-dialog-close close\" (click)=\"closeDialog();\" title=\"Close\">\n <span aria-hidden=\"true\">×</span>\n</button>\n\n<ng-container [ngSwitch]=\"headinglevel\">\n <ng-container *ngSwitchCase=\"'h1'\">\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h2'\">\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h3'\">\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h4'\">\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h5'\">\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h6'\">\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n </ng-container>\n</ng-container>\n\n<ng-template #headerTemplate>\n <i [ngClass]=\"iconclass\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\" *ngIf=\"iconclass && !iconurl\"></i>\n <img data-identifier=\"img\" [src]=\"iconurl | image\" *ngIf=\"iconurl\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"/>\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n <span class=\"dialog-sub-heading\" *ngIf=\"subheading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n</ng-template>\n","import { Component, ElementRef, Inject, Input } from '@angular/core';\n\nimport { addClass, toBoolean } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\nimport { BaseDialog } from '../base-dialog';\n\nconst DEFAULT_CLS = 'app-dialog-header modal-header';\nconst DEFAULT_ICON_DIMENSIONS = '21px';\n\n@Component({\n selector: 'div[wmDialogHeader]',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent {\n\n @Input() public iconwidth = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconheight = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconmargin: string;\n @Input() public iconclass: string;\n @Input() public iconurl: string;\n @Input() public closable = true;\n @Input() public heading: string;\n @Input() public headinglevel?: string = 'h4';\n @Input() public subheading: string;\n @Input() public titleid:string;\n\n public get isClosable() {\n return toBoolean(this.closable);\n }\n\n constructor(elRef: ElementRef, @Inject(DialogRef) private dialogRef: BaseDialog) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n }\n\n public closeDialog() {\n this.dialogRef.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { DialogBodyDirective } from './dialog-body/dialog-body.directive';\nimport { DialogFooterDirective } from './dialog-footer/dialog-footer.directive';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\n\nconst components = [\n DialogBodyDirective,\n DialogFooterDirective,\n DialogHeaderComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ModalModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class DialogModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/default/src/dialog-body/dialog-body.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.props.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/base-dialog.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.html","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog.module.ts","../../../../../projects/components/widgets/dialogs/default/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Inject, Renderer2 } from '@angular/core';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { addClass, setAttr, setCSS } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-dialog-body modal-body';\n\n@Directive({\n selector: 'div[wmDialogBody]',\n})\nexport class DialogBodyDirective {\n @HostBinding('style.height') height;\n constructor(\n elRef: ElementRef,\n @Inject(DialogRef) private dialogRef,\n bsModal: BsModalService,\n private renderer: Renderer2\n ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n\n const subscription = bsModal.onShown.subscribe(() => {\n const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];\n let dialogRootContainer = $('body.wm-app')[0];\n // To identify the microfrontend, if body tag doesn't have wm-app class then app loading as micro-frontend\n if(!dialogRootContainer) {\n const dialogBackrop = $('body > .modal-backdrop')[0];\n const parentContainer = $('body > modal-container')[0];\n dialogRootContainer = $('.wm-app')[0];\n if(dialogRootContainer && parentContainer ){\n if(dialogBackrop){\n this.renderer.appendChild(dialogRootContainer, dialogBackrop);\n }\n this.renderer.appendChild(dialogRootContainer, parentContainer);\n\n }\n }\n const width = this.dialogRef.width;\n const height = this.dialogRef.height;\n if(height){\n setTimeout(e=>{\n setCSS($(elRef.nativeElement)[0], 'height', height);\n });\n }\n if (dialogRoot) {\n if (width) {\n setCSS(dialogRoot, 'width', width);\n }\n setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);\n setAttr(dialogRoot, 'name', this.dialogRef.name);\n\n }\n subscription.unsubscribe();\n });\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialogfooter',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './dialog-footer.props';\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-dialogfooter',\n hostClass: 'app-dialog-footer modal-footer'\n};\n\n@Directive({\n selector: 'div[wmDialogFooter]',\n providers: [\n provideAsWidgetRef(DialogFooterDirective)\n ]\n})\nexport class DialogFooterDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n }\n}\n","import {Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {BsModalRef, BsModalService, ModalOptions} from 'ngx-bootstrap/modal';\n\nimport {Subscription} from 'rxjs';\n\nimport {AbstractDialogService, findRootContainer, generateGUId, isMobile, isMobileApp} from '@wm/core';\n\nimport {BaseComponent, IDialog, IWidgetConfig, WidgetConfig} from '@wm/components/base';\nimport {createFocusTrap} from '@wavemaker/focus-trap';\n\nconst eventsRegistered = false;\n\nconst focusTrapObj = {\n activeElement: null\n};\n\nconst invokeOpenedCallback = (ref) => {\n if (ref) {\n setTimeout(() => {\n const root = findRootContainer(ref.$element);\n // if page styles have to be applied to dialog then dialog has to be child of page element.\n if (root) {\n $('body > modal-container > div').wrap('<' + root + '/>');\n }\n ref.invokeEventCallback('opened', {$event: {type: 'opened'}});\n // focusTrapObj will create focus trap for the respective dialog according to the titleId assigned to them which is unique.\n const container = $('[aria-labelledby= ' + ref.titleId + ']')[0];\n\n const keyboardFocusableElements = [container.querySelectorAll(\n 'a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => {\n return (\n !el[0].hasAttribute('disabled') && !el[0].hasAttribute('hidden'));\n })[0];\n\n $(keyboardFocusableElements[0]).focus();\n\n focusTrapObj[ref.titleId] = createFocusTrap(container, {\n onActivate: () => container.classList.add('is-active'),\n onDeactivate: () => container.classList.remove('is-active'),\n allowOutsideClick: true,\n setReturnFocus: focusTrapObj.activeElement,\n });\n focusTrapObj[ref.titleId].activate();\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length > 1) {\n let zIndex = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 2].titleId + \"]\").css('z-index'));\n $('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);\n $('bs-modal-backdrop').css('z-index', zIndex + 1);\n }\n });\n }\n};\n\nconst invokeClosedCallback = (ref) => {\n if (ref) {\n ref.invokeEventCallback('close');\n ref.dialogRef = undefined;\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length >= 1) {\n let zIndex: any = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 1].titleId + \"]\").css('z-index'));\n $('bs-modal-backdrop').css('z-index', zIndex - 1);\n }\n }\n};\n\n@Injectable()\nexport abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {\n\n public name: string;\n\n private readonly dialogService: AbstractDialogService;\n private readonly bsModal: BsModalService;\n\n private dialogRef: BsModalRef;\n private dialogId: number;\n public titleId: string = 'wmdialog-' + generateGUId();\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n protected modalOptions: ModalOptions,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.dialogService = inj.get(AbstractDialogService);\n this.bsModal = inj.get(BsModalService);\n const router = inj.get(Router);\n\n const subscriptions: Subscription[] = [\n this.bsModal.onShown.subscribe(({id}) => {\n const ref = this.dialogService.getLastOpenedDialog();\n if (ref === this && !this.dialogId) {\n // Always get the reference of last pushed dialog in the array for calling onOpen callback\n invokeOpenedCallback(ref);\n this.dialogId = id;\n }\n }),\n this.bsModal.onShow.subscribe(() => {\n focusTrapObj.activeElement = document.activeElement;\n }),\n this.bsModal.onHidden.subscribe((closeReason) => {\n let ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (this.dialogId && closeReason?.id === this.dialogId) {\n ref = this;\n } else if (closeReason === 'esc' || closeReason === 'backdrop-click') {\n ref = this.dialogService.getLastOpenedDialog();\n }\n if (ref === this) {\n this.dialogId = null;\n // remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(ref);\n this.dialogService.removeFromClosedDialogs(ref);\n invokeClosedCallback(ref);\n if (ref.closeCallBackFn) {\n ref.closeCallBackFn();\n }\n }\n }),\n this.bsModal.onHide.subscribe(() => {\n // Will de-activate focus trap for the respective dialog when they are closed.\n const ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (ref && focusTrapObj[ref.titleId] !== undefined) {\n focusTrapObj[ref.titleId].deactivate();\n }\n }),\n router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.close();\n }\n })\n ];\n this.registerDestroyListener(() => {// remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(this);\n this.dialogService.removeFromClosedDialogs(this);\n subscriptions.forEach(s => s.unsubscribe());\n });\n }\n\n /**\n * Opens the dialog\n * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback\n */\n public open(initState?: any) {\n\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n\n // do not open the dialog again if it is already opened\n const duplicateDialogCheck = (openedDialog) => {\n return openedDialog === this;\n };\n\n if (this.dialogService.getOpenedDialogs().some(duplicateDialogCheck)) {\n return;\n }\n\n this.dialogService.addToOpenedDialogs(this);\n\n // extend the context with the initState\n Object.assign(this.context, initState);\n this.modalOptions.ariaLabelledBy = this.titleId;\n this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);\n // Fix for [WMS-23948]: Focus moving out of active Dialog widget\n if (this.dialogService.getOpenedDialogs().length === 1 && (isMobile() || isMobileApp())) {\n const parentSelector = $('body > app-root')[0];\n parentSelector.setAttribute('aria-hidden', 'true');\n }\n }\n\n /**\n * closes the dialog\n * invokes the on-close event callback\n */\n public close() {\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n if (this.dialogRef) {\n this.dialogService.addToClosedDialogs(this);\n this.dialogRef.hide();\n }\n }\n\n /**\n * Register the dialog with the dialog service for programmatic access\n */\n protected register(scope) {\n // add scope along with name in the dialogRefsCollection Map while registering dialog\n // So that 2 dialogs having same name on different pages won't be overridden.\n this.dialogService.register(this.name, this, scope);\n }\n\n /**\n * De Register the dialog with the dialog service after dialog destruction\n */\n protected deRegister(scope) {\n this.dialogService.deRegister(this.name, scope);\n }\n\n /**\n * subclasses of BaseDialog must implement this method to return the proper template element ref\n * bsModal will use this refence to open the dialog\n * @returns {TemplateRef<any>}\n */\n protected abstract getTemplateRef(): TemplateRef<any>;\n\n protected onPropertyChange(key: string, nv: any, ov?: any) {\n // ignore the class attribute.\n // Prevent the framework from setting the class on the host element.\n if (key === 'class' || key === 'name' || key === 'tabindex') {\n return;\n } else if (key === 'animation') {\n this.modalOptions.class = this.modalOptions.class.replace(' animated ' + ov, '');\n if (nv) {\n this.modalOptions.class = this.modalOptions.class + ' animated ' + nv;\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n public ngOnDestroy() {\n this.close();\n this.deRegister(this.viewParent);\n super.ngOnDestroy();\n }\n}\n","<button *ngIf=\"isClosable\" aria-label=\"Close\" class=\"app-dialog-close close\" (click)=\"closeDialog();\" title=\"Close\">\n <span aria-hidden=\"true\">×</span>\n</button>\n\n<ng-container [ngSwitch]=\"headinglevel\">\n <ng-container *ngSwitchCase=\"'h1'\">\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h2'\">\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h3'\">\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h4'\">\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h5'\">\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n </ng-container>\n <ng-container *ngSwitchCase=\"'h6'\">\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n </ng-container>\n</ng-container>\n\n<ng-template #headerTemplate>\n <i [ngClass]=\"iconclass\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\" *ngIf=\"iconclass && !iconurl\"></i>\n <img data-identifier=\"img\" [src]=\"iconurl | image\" *ngIf=\"iconurl\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"/>\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n <span class=\"dialog-sub-heading\" *ngIf=\"subheading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n</ng-template>\n","import { Component, ElementRef, Inject, Input } from '@angular/core';\n\nimport { addClass, toBoolean } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\nimport { BaseDialog } from '../base-dialog';\n\nconst DEFAULT_CLS = 'app-dialog-header modal-header';\nconst DEFAULT_ICON_DIMENSIONS = '21px';\n\n@Component({\n selector: 'div[wmDialogHeader]',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent {\n\n @Input() public iconwidth = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconheight = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconmargin: string;\n @Input() public iconclass: string;\n @Input() public iconurl: string;\n @Input() public closable = true;\n @Input() public heading: string;\n @Input() public headinglevel?: string = 'h4';\n @Input() public subheading: string;\n @Input() public titleid:string;\n\n public get isClosable() {\n return toBoolean(this.closable);\n }\n\n constructor(elRef: ElementRef, @Inject(DialogRef) private dialogRef: BaseDialog) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n }\n\n public closeDialog() {\n this.dialogRef.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { DialogBodyDirective } from './dialog-body/dialog-body.directive';\nimport { DialogFooterDirective } from './dialog-footer/dialog-footer.directive';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\n\nconst components = [\n DialogBodyDirective,\n DialogFooterDirective,\n DialogHeaderComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ModalModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class DialogModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS"],"mappings":"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"}
|
@@ -1054,12 +1054,6 @@
|
|
1054
1054
|
i2.styler(this.nativeElement, this);
|
1055
1055
|
this.multiple = true;
|
1056
1056
|
}
|
1057
|
-
triggerInvokeOnChange(keys, $event) {
|
1058
|
-
this.modelByKey = keys;
|
1059
|
-
this.invokeOnTouched();
|
1060
|
-
// invoke on datavalue change.
|
1061
|
-
this.invokeOnChange(this.datavalue, $event || {}, true);
|
1062
|
-
}
|
1063
1057
|
onCheckboxLabelClick($event, key) {
|
1064
1058
|
if (!$($event.target).is('input')) {
|
1065
1059
|
return;
|
@@ -1071,7 +1065,10 @@
|
|
1071
1065
|
// @ts-ignore
|
1072
1066
|
keys.push($el.value);
|
1073
1067
|
});
|
1074
|
-
this.
|
1068
|
+
this.modelByKey = keys;
|
1069
|
+
this.invokeOnTouched();
|
1070
|
+
// invoke on datavalue change.
|
1071
|
+
this.invokeOnChange(this.datavalue, $event || {}, true);
|
1075
1072
|
}
|
1076
1073
|
// change and blur events are added from the template
|
1077
1074
|
handleEvent(node, eventName, callback, locals) {
|
@@ -1273,9 +1270,6 @@
|
|
1273
1270
|
/* WMS-18269 | Update Angular about the required attr value change */
|
1274
1271
|
this._onChange(this.datavalue);
|
1275
1272
|
}
|
1276
|
-
if (key === 'updateon') {
|
1277
|
-
this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;
|
1278
|
-
}
|
1279
1273
|
if (key === 'class') {
|
1280
1274
|
if (this.inputEl.nativeElement) {
|
1281
1275
|
i1$1.switchClass(this.inputEl.nativeElement, nv, ov);
|
@@ -1374,7 +1368,7 @@
|
|
1374
1368
|
const prevDataValue = this.prevDatavalue;
|
1375
1369
|
this.displayValue = input.value = this.proxyModel = null;
|
1376
1370
|
this.resetValidations();
|
1377
|
-
if (prevDataValue && !this.isDefaultQuery) {
|
1371
|
+
if ((prevDataValue || prevDataValue == 0) && !this.isDefaultQuery) {
|
1378
1372
|
this.handleChange(value);
|
1379
1373
|
this._onChange();
|
1380
1374
|
}
|
@@ -2040,12 +2034,6 @@
|
|
2040
2034
|
i2.styler(this.nativeElement, this);
|
2041
2035
|
this.multiple = false;
|
2042
2036
|
}
|
2043
|
-
triggerInvokeOnChange(key, $event) {
|
2044
|
-
this.modelByKey = key;
|
2045
|
-
this.invokeOnTouched();
|
2046
|
-
// invoke on datavalue change.
|
2047
|
-
this.invokeOnChange(this.datavalue, $event || {}, true);
|
2048
|
-
}
|
2049
2037
|
/**
|
2050
2038
|
* On click of the option, update the datavalue
|
2051
2039
|
*/
|
@@ -2053,7 +2041,10 @@
|
|
2053
2041
|
if (!$($event.target).is('input')) {
|
2054
2042
|
return;
|
2055
2043
|
}
|
2056
|
-
this.
|
2044
|
+
this.modelByKey = key;
|
2045
|
+
this.invokeOnTouched();
|
2046
|
+
// invoke on datavalue change.
|
2047
|
+
this.invokeOnChange(this.datavalue, $event || {}, true);
|
2057
2048
|
}
|
2058
2049
|
// change and blur events are added from the template
|
2059
2050
|
handleEvent(node, eventName, callback, locals) {
|
@@ -2198,10 +2189,36 @@
|
|
2198
2189
|
this.datavalue = ds.execute(i1$1.DataSource.Operation.GET_DEFAULT_LOCALE);
|
2199
2190
|
}
|
2200
2191
|
}
|
2201
|
-
constructor(inj,
|
2192
|
+
constructor(inj, explicitContext) {
|
2202
2193
|
super(inj, WIDGET_CONFIG$7, explicitContext);
|
2203
|
-
this.app = app;
|
2204
2194
|
this.acceptsArray = true;
|
2195
|
+
/*
|
2196
|
+
* When the dataset for a select element is updated and no longer includes the previously selected value:
|
2197
|
+
* The select element becomes empty, and the ngModel value is updated to reflect this change.
|
2198
|
+
* However, the change event is not triggered, preventing the form control from recognizing the update and applying necessary validations.
|
2199
|
+
* As this widget implements ControlValueAccessor, manually updating the ngModel (or modelByKey) is necessary to ensure correct form behavior.
|
2200
|
+
* */
|
2201
|
+
const datasetSubscription = this.dataset$.subscribe(() => {
|
2202
|
+
if (this.datavalue) {
|
2203
|
+
const selectedItem = this.datasetItems.find(item => item.selected);
|
2204
|
+
if (!selectedItem) {
|
2205
|
+
setTimeout(() => {
|
2206
|
+
if (!this.placeholder) {
|
2207
|
+
this.selectEl.nativeElement.value = '';
|
2208
|
+
}
|
2209
|
+
this.modelByKey = undefined;
|
2210
|
+
}, 100);
|
2211
|
+
}
|
2212
|
+
}
|
2213
|
+
else {
|
2214
|
+
setTimeout(() => {
|
2215
|
+
if (!this.placeholder) {
|
2216
|
+
this.selectEl.nativeElement.value = '';
|
2217
|
+
}
|
2218
|
+
}, 100);
|
2219
|
+
}
|
2220
|
+
});
|
2221
|
+
this.registerDestroyListener(() => datasetSubscription.unsubscribe());
|
2205
2222
|
}
|
2206
2223
|
ngAfterViewInit() {
|
2207
2224
|
super.ngAfterViewInit();
|
@@ -2209,7 +2226,7 @@
|
|
2209
2226
|
}
|
2210
2227
|
// Change event is registered from the template, Prevent the framework from registering one more event
|
2211
2228
|
handleEvent(node, eventName, eventCallback, locals) {
|
2212
|
-
if (!
|
2229
|
+
if (!['blur', 'change'].includes(eventName)) {
|
2213
2230
|
super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);
|
2214
2231
|
}
|
2215
2232
|
}
|
@@ -2260,36 +2277,40 @@
|
|
2260
2277
|
*/
|
2261
2278
|
checkForFloatingLabel($event) {
|
2262
2279
|
const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
|
2280
|
+
if (!this.placeholder) {
|
2281
|
+
this.removePlaceholderOption();
|
2282
|
+
}
|
2263
2283
|
if (captionEl.length > 0) {
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
|
2268
|
-
else {
|
2269
|
-
$(this.selectEl.nativeElement).find('option:first').text(this.placeholder);
|
2284
|
+
const placeholderOption = this.selectEl.nativeElement.querySelector('#placeholderOption');
|
2285
|
+
if ($event.type === 'mousedown' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
|
2286
|
+
if (this.placeholder) {
|
2287
|
+
placeholderOption.textContent = this.placeholder;
|
2270
2288
|
}
|
2271
2289
|
}
|
2272
2290
|
else if (!this.datavalue) {
|
2273
|
-
|
2291
|
+
if (this.placeholder) {
|
2292
|
+
placeholderOption.textContent = '';
|
2293
|
+
}
|
2274
2294
|
captionEl.removeClass('float-active');
|
2275
2295
|
}
|
2276
2296
|
}
|
2277
|
-
else if (!(this.datavalue || this.placeholder)) {
|
2278
|
-
this.removePlaceholderOption();
|
2279
|
-
}
|
2280
2297
|
}
|
2281
2298
|
/*
|
2282
2299
|
* Removing the placeholder option if no placeholder is provided.
|
2283
|
-
* In html we are hiding the placeholder option using css but in
|
2300
|
+
* In html we are hiding the placeholder option using css but in Apple devices and safari option is showing.
|
2301
|
+
* Styles are not allowed on option tag in ios safari
|
2302
|
+
* After removing the option, if no datavalue is present and native select element sets value to the first option by default, so we are setting it to empty
|
2284
2303
|
* */
|
2285
2304
|
removePlaceholderOption() {
|
2286
2305
|
const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');
|
2287
2306
|
if (hiddenEle.length) {
|
2288
2307
|
hiddenEle.remove();
|
2289
|
-
this.
|
2308
|
+
if (!this.datavalue) {
|
2309
|
+
this.selectEl.nativeElement.value = '';
|
2310
|
+
}
|
2290
2311
|
}
|
2291
2312
|
}
|
2292
|
-
static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(
|
2313
|
+
static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
2293
2314
|
static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: SelectComponent, selectors: [["wm-select"]], viewQuery: function SelectComponent_Query(rf, ctx) { if (rf & 1) {
|
2294
2315
|
i0__namespace.ɵɵviewQuery(_c0$7, 7, i0.ElementRef);
|
2295
2316
|
} if (rf & 2) {
|
@@ -2299,11 +2320,11 @@
|
|
2299
2320
|
i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
|
2300
2321
|
i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
|
2301
2322
|
i2.provideAsWidgetRef(SelectComponent)
|
2302
|
-
]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngModelChange", "change", "
|
2323
|
+
]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngModelChange", "change", "mousedown", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
|
2303
2324
|
const _r1 = i0__namespace.ɵɵgetCurrentView();
|
2304
2325
|
i0__namespace.ɵɵelementStart(0, "select", 1, 0);
|
2305
2326
|
i0__namespace.ɵɵtwoWayListener("ngModelChange", function SelectComponent_Template_select_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.modelByKey, $event) || (ctx.modelByKey = $event); return i0__namespace.ɵɵresetView($event); });
|
2306
|
-
i0__namespace.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onSelectValueChange($event)); })("
|
2327
|
+
i0__namespace.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onSelectValueChange($event)); })("mousedown", function SelectComponent_Template_select_mousedown_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.checkForFloatingLabel($event)); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); ctx.invokeOnTouched($event); return i0__namespace.ɵɵresetView(ctx.checkForFloatingLabel($event)); });
|
2307
2328
|
i0__namespace.ɵɵelement(2, "option", 2);
|
2308
2329
|
i0__namespace.ɵɵtemplate(3, SelectComponent_ng_container_3_Template, 2, 1, "ng-container", 3)(4, SelectComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
|
2309
2330
|
i0__namespace.ɵɵelementEnd();
|
@@ -2326,8 +2347,8 @@
|
|
2326
2347
|
i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
|
2327
2348
|
i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
|
2328
2349
|
i2.provideAsWidgetRef(SelectComponent)
|
2329
|
-
], template: "<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (
|
2330
|
-
}], () => [{ type: i0__namespace.Injector }, { type:
|
2350
|
+
], template: "<!--Updated focus with mousedown event. IOS devices not allow update of option value after opening dropdown-->\n<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (mousedown)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n" }]
|
2351
|
+
}], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
|
2331
2352
|
type: i0.Inject,
|
2332
2353
|
args: ['EXPLICIT_CONTEXT']
|
2333
2354
|
}, {
|
@@ -2336,7 +2357,7 @@
|
|
2336
2357
|
type: i0.ViewChild,
|
2337
2358
|
args: ['select', { static: true, read: i0.ElementRef }]
|
2338
2359
|
}] }); })();
|
2339
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber:
|
2360
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 21 }); })();
|
2340
2361
|
|
2341
2362
|
const switchProps = new Map([
|
2342
2363
|
['class', i2.PROP_STRING],
|
@@ -3113,6 +3134,9 @@
|
|
3113
3134
|
onInputChange() {
|
3114
3135
|
this.charlength = this.inputEl.nativeElement.value.length;
|
3115
3136
|
}
|
3137
|
+
ngAfterViewChecked() {
|
3138
|
+
this.charlength = this.inputEl.nativeElement.value.length;
|
3139
|
+
}
|
3116
3140
|
static { this.ɵfac = function TextareaComponent_Factory(t) { return new (t || TextareaComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
3117
3141
|
static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: TextareaComponent, selectors: [["wm-textarea"]], viewQuery: function TextareaComponent_Query(rf, ctx) { if (rf & 1) {
|
3118
3142
|
i0__namespace.ɵɵviewQuery(_c0, 7);
|
@@ -11,7 +11,6 @@ export declare class CheckboxsetComponent extends DatasetAwareFormComponent {
|
|
11
11
|
itemsperrow: string;
|
12
12
|
private itemsPerRowClass;
|
13
13
|
constructor(inj: Injector, explicitContext: any);
|
14
|
-
triggerInvokeOnChange(keys: any, $event: any): void;
|
15
14
|
onCheckboxLabelClick($event: any, key: any): void;
|
16
15
|
protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any): void;
|
17
16
|
onKeyDown($event: any): void;
|