@wavemaker/app-ng-runtime 11.14.2-rc.6311 → 11.15.0-1.246
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/build-task/bundles/index.umd.js +13 -2
- package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +9 -2
- package/build-task/esm2022/input/default/radioset/radioset.build.mjs +6 -2
- package/build-task/fesm2022/index.mjs +13 -2
- package/build-task/fesm2022/index.mjs.map +1 -1
- package/components/base/bundles/index.umd.js +271 -128
- package/components/base/esm2022/public_api.mjs +2 -2
- package/components/base/esm2022/utils/autolayout-utils.mjs +252 -0
- package/components/base/esm2022/utils/live-utils.mjs +10 -7
- package/components/base/esm2022/utils/widget-utils.mjs +8 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +7 -8
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +4 -1
- package/components/base/esm2022/widgets/common/container/container.directive.mjs +28 -150
- package/components/base/esm2022/widgets/common/container/container.props.mjs +6 -2
- package/components/base/fesm2022/index.mjs +273 -129
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/public_api.d.ts +1 -1
- package/components/base/utils/autolayout-utils.d.ts +29 -0
- package/components/base/utils/widget-utils.d.ts +1 -0
- package/components/base/widgets/common/container/container.directive.d.ts +7 -9
- package/components/basic/label/bundles/index.umd.js +4 -0
- package/components/basic/label/esm2022/label.directive.mjs +5 -1
- package/components/basic/label/fesm2022/index.mjs +4 -0
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/bundles/index.umd.js +13 -11
- package/components/basic/search/esm2022/search.component.mjs +14 -12
- package/components/basic/search/fesm2022/index.mjs +13 -11
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/chart/bundles/index.umd.js +2 -2
- package/components/chart/esm2022/chart.utils.mjs +3 -3
- package/components/chart/fesm2022/index.mjs +2 -2
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -0
- package/components/containers/accordion/accordion.directive.d.ts +4 -0
- package/components/containers/accordion/bundles/index.umd.js +34 -0
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +6 -2
- package/components/containers/accordion/esm2022/accordion.directive.mjs +32 -2
- package/components/containers/accordion/fesm2022/index.mjs +36 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/bundles/index.umd.js +34 -0
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +6 -2
- package/components/containers/tabs/esm2022/tabs.component.mjs +33 -4
- package/components/containers/tabs/fesm2022/index.mjs +36 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -0
- package/components/containers/tabs/tabs.component.d.ts +5 -1
- package/components/containers/wizard/bundles/index.umd.js +46 -2
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +8 -2
- package/components/containers/wizard/esm2022/wizard.component.mjs +42 -4
- package/components/containers/wizard/fesm2022/index.mjs +48 -4
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +4 -0
- package/components/containers/wizard/wizard.component.d.ts +1 -0
- package/components/data/form/bundles/index.umd.js +28 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +4 -1
- package/components/data/form/esm2022/form.component.mjs +24 -2
- package/components/data/form/esm2022/form.props.mjs +3 -2
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +2 -1
- package/components/data/form/fesm2022/index.mjs +29 -2
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form.component.d.ts +3 -0
- package/components/data/list/bundles/index.umd.js +0 -9
- package/components/data/list/esm2022/list-item.directive.mjs +1 -10
- package/components/data/list/fesm2022/index.mjs +0 -9
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/bundles/index.umd.js +6 -2
- package/components/data/pagination/esm2022/pagination.component.mjs +7 -3
- package/components/data/pagination/fesm2022/index.mjs +6 -2
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/table/bundles/index.umd.js +21 -4
- package/components/data/table/esm2022/table.component.mjs +22 -5
- package/components/data/table/fesm2022/index.mjs +21 -4
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +6 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +18 -8
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +17 -7
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +15 -5
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +12 -3
- package/components/input/checkbox/checkbox.component.d.ts +2 -0
- package/components/input/checkbox/esm2022/checkbox.component.mjs +9 -3
- package/components/input/checkbox/esm2022/checkbox.props.mjs +5 -2
- package/components/input/checkbox/fesm2022/index.mjs +12 -3
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +12 -1
- package/components/input/checkboxset/checkboxset.component.d.ts +1 -0
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +11 -1
- package/components/input/checkboxset/esm2022/checkboxset.props.mjs +3 -2
- package/components/input/checkboxset/fesm2022/index.mjs +12 -1
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/base-date-time/base-date-time.component.d.ts +0 -1
- package/components/input/epoch/base-date-time/bundles/index.umd.js +29 -27
- package/components/input/epoch/base-date-time/esm2022/base-date-time.component.mjs +30 -28
- package/components/input/epoch/base-date-time/fesm2022/index.mjs +29 -27
- package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +4 -3
- package/components/input/epoch/date/esm2022/date.component.mjs +5 -4
- package/components/input/epoch/date/fesm2022/index.mjs +4 -3
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date-time/bundles/index.umd.js +5 -4
- package/components/input/epoch/date-time/esm2022/date-time.component.mjs +7 -6
- package/components/input/epoch/date-time/fesm2022/index.mjs +6 -5
- package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +1 -1
- package/components/input/file-upload/esm2022/file-upload.props.mjs +2 -2
- package/components/input/file-upload/fesm2022/index.mjs +1 -1
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/bundles/index.umd.js +13 -1
- package/components/input/radioset/esm2022/radioset.component.mjs +11 -1
- package/components/input/radioset/esm2022/radioset.props.mjs +4 -2
- package/components/input/radioset/fesm2022/index.mjs +13 -1
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +1 -0
- package/components/input/slider/bundles/index.umd.js +86 -16
- package/components/input/slider/esm2022/slider.component.mjs +76 -9
- package/components/input/slider/esm2022/slider.props.mjs +5 -1
- package/components/input/slider/fesm2022/index.mjs +79 -8
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +12 -3
- package/components/input/text/bundles/index.umd.js +24 -3
- package/components/input/text/esm2022/input-text/input-text.component.mjs +6 -3
- package/components/input/text/esm2022/input-text/input-text.props.mjs +5 -2
- package/components/input/text/esm2022/number-locale/number-locale.mjs +16 -1
- package/components/input/text/fesm2022/index.mjs +24 -3
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-text/input-text.component.d.ts +4 -0
- package/components/input/text/number-locale/number-locale.d.ts +12 -0
- package/components/navigation/breadcrumb/bundles/index.umd.js +2 -2
- package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +3 -3
- package/components/navigation/breadcrumb/fesm2022/index.mjs +2 -2
- package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/bundles/index.umd.js +12 -0
- package/components/navigation/popover/esm2022/popover.component.mjs +13 -1
- package/components/navigation/popover/fesm2022/index.mjs +12 -0
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +2 -0
- package/components/page/default/bundles/index.umd.js +0 -4
- package/components/page/default/esm2022/router-outlet.directive.mjs +1 -5
- package/components/page/default/fesm2022/index.mjs +0 -4
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/header/bundles/index.umd.js +4 -3
- package/components/page/header/esm2022/header.component.mjs +5 -4
- package/components/page/header/fesm2022/index.mjs +4 -3
- package/components/page/header/fesm2022/index.mjs.map +1 -1
- package/components/page/header/header.component.d.ts +2 -1
- package/core/bundles/index.umd.js +90 -6
- package/core/enums/enums.d.ts +1 -0
- package/core/esm2022/enums/enums.mjs +2 -1
- package/core/esm2022/utils/build-utils.mjs +5 -1
- package/core/esm2022/utils/utils.mjs +5 -2
- package/core/esm2022/utils/watcher.mjs +83 -4
- package/core/fesm2022/index.mjs +91 -4
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/utils/watcher.d.ts +2 -0
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/esm2022/oAuth.service.mjs +1 -1
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +33 -31
- package/runtime/base/components/base-prefab.component.d.ts +6 -4
- package/runtime/base/esm2022/components/app-component/app.component.mjs +1 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +2 -5
- package/runtime/base/esm2022/components/base-partial.component.mjs +2 -2
- package/runtime/base/esm2022/components/base-prefab.component.mjs +20 -12
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +1 -4
- package/runtime/base/esm2022/services/http-interceptor.services.mjs +14 -13
- package/runtime/base/fesm2022/index.mjs +34 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/runtime-base.module.d.ts +2 -1
- package/runtime/dynamic/app/app.config.d.ts +1 -1
- package/runtime/dynamic/bundles/index.umd.js +1 -1
- package/runtime/dynamic/esm2022/app/app.config.mjs +7 -7
- package/runtime/dynamic/fesm2022/index.mjs +2 -2
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +17 -15
|
@@ -17,7 +17,8 @@ const propsMap = new Map([
|
|
|
17
17
|
['showindevice', { displayType: 'inline-block', value: 'all', ...PROP_STRING }],
|
|
18
18
|
['subheading', PROP_STRING],
|
|
19
19
|
['tabindex', { value: 0, ...PROP_NUMBER }],
|
|
20
|
-
['title', PROP_STRING]
|
|
20
|
+
['title', PROP_STRING],
|
|
21
|
+
['itemsperrow', PROP_STRING],
|
|
21
22
|
]);
|
|
22
23
|
export const registerFormProps = () => {
|
|
23
24
|
const formMap = new Map(propsMap);
|
|
@@ -60,4 +61,4 @@ export const registerLiveFilterProps = () => {
|
|
|
60
61
|
liveFilterMap.set('iconclass', { value: 'wi wi-filter-list', ...PROP_STRING });
|
|
61
62
|
register('wm-livefilter', liveFilterMap);
|
|
62
63
|
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2Zvcm0vc3JjL2Zvcm0ucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FDcEI7SUFDSSxDQUFDLGNBQWMsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxZQUFZLEVBQUMsQ0FBQztJQUNqRCxDQUFDLGNBQWMsRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztJQUNqRCxDQUFDLGlCQUFpQixFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO0lBQ3BELENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQztJQUM1QixDQUFDLGNBQWMsRUFBRSxFQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO0lBQ2pFLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztJQUN0QixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7SUFDN0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDO0lBQ3JCLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztJQUMzQixDQUFDLFVBQVUsRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUMsQ0FBQztJQUM1QyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQztJQUMvQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7SUFDckIsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7SUFDL0IsQ0FBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUs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QUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBQyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQyxDQUFDO0lBRTdFLFFBQVEsQ0FDSixlQUFlLEVBQ2YsYUFBYSxDQUNoQixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQUk9QX0FOWSwgUFJPUF9CT09MRUFOLCBQUk9QX05VTUJFUiwgUFJPUF9TVFJJTkcsIHJlZ2lzdGVyfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuY29uc3QgcHJvcHNNYXAgPSBuZXcgTWFwKFxuICAgIFtcbiAgICAgICAgWydhdXRvY29tcGxldGUnLCB7dmFsdWU6IGZhbHNlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgWydjYXB0aW9uYWxpZ24nLCB7dmFsdWU6ICdsZWZ0JywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICAgICAgWydjYXB0aW9ucG9zaXRpb24nLCB7dmFsdWU6ICdsZWZ0JywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICAgICAgWydjYXB0aW9uc2l6ZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydjYXB0aW9ud2lkdGgnLCB7dmFsdWU6ICd4cy0xMiBzbS0zIG1kLTMgbGctMycsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgIFsnY2xhc3MnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnY29sbGFwc2libGUnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICBbJ2RhdGFzZXQnLCBQUk9QX0FOWV0sXG4gICAgICAgIFsnZGF0YXNvdXJjZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydleHBhbmRlZCcsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgIFsnZm9ybWRhdGFzb3VyY2UnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnbmFtZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydudW1iZXJPZkZpZWxkcycsIFBST1BfTlVNQkVSXSxcbiAgICAgICAgWydzaG93Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgWydzaG93aW5kZXZpY2UnLCB7ZGlzcGxheVR5cGU6ICdpbmxpbmUtYmxvY2snLCB2YWx1ZTogJ2FsbCcsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgIFsnc3ViaGVhZGluZycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWyd0YWJpbmRleCcsIHt2YWx1ZTogMCwgLi4uUFJPUF9OVU1CRVJ9XSxcbiAgICAgICAgWyd0aXRsZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydpdGVtc3BlcnJvdycsIFBST1BfU1RSSU5HXSxcbiAgICBdXG4pO1xuXG5cbmV4cG9ydCBjb25zdCByZWdpc3RlckZvcm1Qcm9wcyA9ICgpID0+IHtcbiAgICBjb25zdCBmb3JtTWFwID0gbmV3IE1hcChwcm9wc01hcCk7XG4gICAgZm9ybU1hcC5zZXQoJ2FjdGlvbicsIFBST1BfU1RSSU5HKTtcbiAgICBmb3JtTWFwLnNldCgnZGVmYXVsdG1vZGUnLCB7dmFsdWU6ICdFZGl0JywgLi4uUFJPUF9TVFJJTkd9KTtcbiAgICBmb3JtTWFwLnNldCgnbWV0YWRhdGEnLCBQUk9QX1NUUklORyk7XG4gICAgZm9ybU1hcC5zZXQoJ21ldGhvZCcsIFBST1BfU1RSSU5HKTtcbiAgICBmb3JtTWFwLnNldCgncG9zdG1lc3NhZ2UnLCB7dmFsdWU6ICdEYXRhIHBvc3RlZCBzdWNjZXNzZnVsbHknLCAuLi5QUk9QX1NUUklOR30pO1xuICAgIGZvcm1NYXAuc2V0KCd0YXJnZXQnLCBQUk9QX1NUUklORyk7XG4gICAgZm9ybU1hcC5zZXQoJ2VuY3R5cGUnLCBQUk9QX1NUUklORyk7XG4gICAgZm9ybU1hcC5zZXQoJ2Vycm9ybWVzc2FnZScsIHt2YWx1ZTogJ0FuIGVycm9yIG9jY3VyZWQuIFBsZWFzZSB0cnkgYWdhaW4hJywgLi4uUFJPUF9TVFJJTkd9KTtcbiAgICBmb3JtTWFwLnNldCgnbWVzc2FnZWxheW91dCcsIHt2YWx1ZTogJ0lubGluZScsIC4uLlBST1BfU1RSSU5HfSk7XG4gICAgZm9ybU1hcC5zZXQoJ2Zvcm1kYXRhJywgUFJPUF9TVFJJTkcpO1xuICAgIGZvcm1NYXAuc2V0KCdub3ZhbGlkYXRlJywgUFJPUF9CT09MRUFOKTtcbiAgICBmb3JtTWFwLnNldCgndmFsaWRhdGlvbnR5cGUnLCB7dmFsdWU6ICdkZWZhdWx0JywgLi4uUFJPUF9TVFJJTkd9KTtcbiAgICBmb3JtTWFwLnNldCgnaWNvbmNsYXNzJywgUFJPUF9TVFJJTkcpO1xuICAgIGZvcm1NYXAuc2V0KCdyZWFkb25seScse3ZhbHVlOiBmYWxzZSwgLi4uUFJPUF9CT09MRUFOfSk7XG5cbiAgICByZWdpc3RlcihcbiAgICAgICAgJ3dtLWZvcm0nLFxuICAgICAgICBmb3JtTWFwXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlckxpdmVGb3JtUHJvcHMgPSAoKSA9PiB7XG4gICAgY29uc3QgbGl2ZUZvcm1NYXAgPSBuZXcgTWFwKHByb3BzTWFwKTtcbiAgICBsaXZlRm9ybU1hcC5zZXQoJ2RlZmF1bHRtb2RlJywge3ZhbHVlOiAnVmlldycsIC4uLlBST1BfU1RSSU5HfSk7XG4gICAgbGl2ZUZvcm1NYXAuc2V0KCdmb3JtbGF5b3V0Jywge3ZhbHVlOiAnaW5saW5lJywgLi4uUFJPUF9TVFJJTkd9KTtcbiAgICBsaXZlRm9ybU1hcC5zZXQoJ2luc2VydG1lc3NhZ2UnLCB7dmFsdWU6ICdSZWNvcmQgYWRkZWQgc3VjY2Vzc2Z1bGx5JywgLi4uUFJPUF9TVFJJTkd9KTtcbiAgICBsaXZlRm9ybU1hcC5zZXQoJ3VwZGF0ZW1lc3NhZ2UnLCB7dmFsdWU6ICdSZWNvcmQgdXBkYXRlZCBzdWNjZXNzZnVsbHknLCAuLi5QUk9QX1NUUklOR30pO1xuICAgIGxpdmVGb3JtTWFwLnNldCgnZGVsZXRlbWVzc2FnZScsIHt2YWx1ZTogJ1JlY29yZCBkZWxldGVkIHN1Y2Nlc3NmdWxseScsIC4uLlBST1BfU1RSSU5HfSk7XG4gICAgbGl2ZUZvcm1NYXAuc2V0KCdlcnJvcm1lc3NhZ2UnLCB7dmFsdWU6ICdBbiBlcnJvciBvY2N1cmVkLiBQbGVhc2UgdHJ5IGFnYWluIScsIC4uLlBST1BfU1RSSU5HfSk7XG4gICAgbGl2ZUZvcm1NYXAuc2V0KCdtZXNzYWdlbGF5b3V0Jywge3ZhbHVlOiAnVG9hc3RlcicsIC4uLlBST1BfU1RSSU5HfSk7XG4gICAgbGl2ZUZvcm1NYXAuc2V0KCdmb3JtZGF0YScsIFBST1BfU1RSSU5HKTtcbiAgICBsaXZlRm9ybU1hcC5zZXQoJ25vdmFsaWRhdGUnLCBQUk9QX0JPT0xFQU4pO1xuICAgIGxpdmVGb3JtTWFwLnNldCgndmFsaWRhdGlvbnR5cGUnLCB7dmFsdWU6ICdkZWZhdWx0JywgLi4uUFJPUF9TVFJJTkd9KTtcbiAgICBsaXZlRm9ybU1hcC5zZXQoJ2ljb25jbGFzcycsIFBST1BfU1RSSU5HKTtcblxuICAgIHJlZ2lzdGVyKFxuICAgICAgICAnd20tbGl2ZWZvcm0nLFxuICAgICAgICBsaXZlRm9ybU1hcFxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJMaXZlRmlsdGVyUHJvcHMgPSAoKSA9PiB7XG4gICAgY29uc3QgbGl2ZUZpbHRlck1hcCA9IG5ldyBNYXAocHJvcHNNYXApO1xuICAgIGxpdmVGaWx0ZXJNYXAuc2V0KCdhdXRvdXBkYXRlJywgUFJPUF9CT09MRUFOKTtcbiAgICBsaXZlRmlsdGVyTWFwLnNldCgnZW5hYmxlZW1wdHlmaWx0ZXInLCB7dmFsdWU6ICcgJywgLi4uUFJPUF9TVFJJTkd9KTtcbiAgICBsaXZlRmlsdGVyTWFwLnNldCgncGFnZXNpemUnLCB7dmFsdWU6IDIwLCAuLi5QUk9QX05VTUJFUn0pO1xuICAgIGxpdmVGaWx0ZXJNYXAuc2V0KCdpY29uY2xhc3MnLCB7dmFsdWU6ICd3aSB3aS1maWx0ZXItbGlzdCcsIC4uLlBST1BfU1RSSU5HfSk7XG5cbiAgICByZWdpc3RlcihcbiAgICAgICAgJ3dtLWxpdmVmaWx0ZXInLFxuICAgICAgICBsaXZlRmlsdGVyTWFwXG4gICAgKTtcbn07XG4iXX0=
|
|
@@ -242,6 +242,7 @@ export class LiveFilterDirective {
|
|
|
242
242
|
break;
|
|
243
243
|
case FormWidgetType.CHECKBOX:
|
|
244
244
|
case FormWidgetType.TOGGLE:
|
|
245
|
+
case FormWidgetType.ICONBUTTONTOGGLE:
|
|
245
246
|
if (isDefined(filterField._value) && filterField._value !== '') {
|
|
246
247
|
fieldValue = filterField.type === DataType.BOOLEAN ? JSON.parse(filterField._value) : filterField._value;
|
|
247
248
|
}
|
|
@@ -352,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
352
353
|
type: Inject,
|
|
353
354
|
args: [FormComponent]
|
|
354
355
|
}] }] });
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1maWx0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvbGl2ZS1maWx0ZXIvbGl2ZS1maWx0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxTSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBRS9CLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsV0FBVyxFQUFLLG1CQUFtQjtDQUN0QyxDQUFDO0FBQ0YsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBTXRCLE1BQU0sT0FBTyxtQkFBbUI7YUFDcEIsb0JBQWUsR0FBRyx1QkFBdUIsRUFBRSxBQUE1QixDQUE2QjtJQVVwRCxZQUFtRCxJQUFJO1FBQUosU0FBSSxHQUFKLElBQUksQ0FBQTtRQUx2RCw2SEFBNkg7UUFDN0gsWUFBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFD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RUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzdCOzswQkFZZ0IsSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIE9uRGVzdHJveSwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgJGFwcERpZ2VzdCwgRGF0YVNvdXJjZSwgRGF0YVR5cGUsIGRlYm91bmNlLCBGb3JtV2lkZ2V0VHlwZSwgZ2V0Q2xvbmVkT2JqZWN0LCBpc0RlZmluZWQgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBhcHBseUZpbHRlck9uRmllbGQsIGZldGNoRGlzdGluY3RWYWx1ZXMsIGdldERpc3RpbmN0VmFsdWVzRm9yRmllbGQsIGdldEVtcHR5TWF0Y2hNb2RlLCBnZXRFbmFibGVFbXB0eUZpbHRlciwgZ2V0UmFuZ2VGaWVsZFZhbHVlLCBnZXRSYW5nZU1hdGNoTW9kZSwgaXNEYXRhU2V0V2lkZ2V0IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyByZWdpc3RlckxpdmVGaWx0ZXJQcm9wcyB9IGZyb20gJy4uL2Zvcm0ucHJvcHMnO1xuaW1wb3J0IHtmaW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IEZJTFRFUl9DT05TVEFOVFMgPSB7XG4gICAgJ0VNUFRZX0tFWScgICA6ICdFTVBUWV9OVUxMX0ZJTFRFUidcbn07XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dtTGl2ZUZpbHRlcl0nXG59KVxuZXhwb3J0IGNsYXNzIExpdmVGaWx0ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyAgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJMaXZlRmlsdGVyUHJvcHMoKTtcbiAgICBwcml2YXRlIF9vcHRpb25zO1xuXG4gICAgb3JkZXJCeTtcblxuICAgIC8vIGRlYm91bmNlIHRoZSBmaWx0ZXIgZnVuY3Rpb24uIElmIG11bHRpcGxlIGZpbHRlciBjYWxscyBhcmUgbWFkZSBhdCBzYW1lIHRpbWUsIGNhbGxzIHdpbGwgYmUgZGVsYXllZCBhbmQgbGFzdCBjYWxsIGlzIGZpcmVkXG4gICAgX2ZpbHRlciA9IGRlYm91bmNlKG9wdGlvbnMgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlcihvcHRpb25zKTtcbiAgICB9LCAyNTApO1xuXG4gICAgY29uc3RydWN0b3IoQFNlbGYoKSBASW5qZWN0KEZvcm1Db21wb25lbnQpIHByaXZhdGUgZm9ybSkge1xuICAgICAgICBmb3JtLmNsZWFyRmlsdGVyID0gdGhpcy5jbGVhckZpbHRlci5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLmFwcGx5RmlsdGVyID0gdGhpcy5hcHBseUZpbHRlci5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLmZpbHRlciA9IHRoaXMuZmlsdGVyLmJpbmQodGhpcyk7XG4gICAgICAgIGZvcm0uZmlsdGVyT25EZWZhdWx0ID0gdGhpcy5maWx0ZXJPbkRlZmF1bHQuYmluZCh0aGlzKTtcbiAgICAgICAgZm9ybS5leGVjdXRlID0gdGhpcy5leGVjdXRlLmJpbmQodGhpcyk7XG4gICAgICAgIGZvcm0ub25GaWVsZERlZmF1bHRWYWx1ZUNoYW5nZSA9IHRoaXMub25GaWVsZERlZmF1bHRWYWx1ZUNoYW5nZS5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLm9uTWF4RGVmYXVsdFZhbHVlQ2hhbmdlID0gdGhpcy5vbk1heERlZmF1bHRWYWx1ZUNoYW5nZS5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLm9uRGF0YVNvdXJjZUNoYW5nZSA9IHRoaXMub25EYXRhU291cmNlQ2hhbmdlLmJpbmQodGhpcyk7XG4gICAgICAgIGZvcm0ub25GaWVsZFZhbHVlQ2hhbmdlID0gdGhpcy5vbkZpZWxkVmFsdWVDaGFuZ2UuYmluZCh0aGlzKTtcbiAgICAgICAgZm9ybS5zdWJtaXRGb3JtID0gdGhpcy5zdWJtaXRGb3JtLmJpbmQodGhpcyk7XG4gICAgICAgIGZvcm0ucmVnaXN0ZXJGb3JtV2lkZ2V0ID0gdGhpcy5yZWdpc3RlckZvcm1XaWRnZXQuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBleGVjdXRlKG9wZXJhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICBpZiAob3BlcmF0aW9uID09PSBEYXRhU291cmNlLk9wZXJhdGlvbi5MSVNUX1JFQ09SRFMgfHwgb3BlcmF0aW9uID09PSBEYXRhU291cmNlLk9wZXJhdGlvbi5ET1dOTE9BRCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlGaWx0ZXIob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX09QVElPTlMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zIHx8IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09IERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9QQUdJTkdfT1BUSU9OUykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5wYWdpbmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5mb3JtLmRhdGFzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlcmF0aW9uID09PSBEYXRhU291cmNlLk9wZXJhdGlvbi5GRVRDSF9ESVNUSU5DVF9WQUxVRVMpIHtcbiAgICAgICAgICAgIHJldHVybiBmZXRjaERpc3RpbmN0VmFsdWVzKHRoaXMuZm9ybS5kYXRhc291cmNlLCB0aGlzLmZvcm0uZm9ybUZpZWxkcywge1xuICAgICAgICAgICAgICAgIHdpZGdldDogJ3dpZGdldHR5cGUnLFxuICAgICAgICAgICAgICAgIGVuYWJsZWVtcHR5ZmlsdGVyOiB0aGlzLmZvcm0uZW5hYmxlZW1wdHlmaWx0ZXIsXG4gICAgICAgICAgICAgICAgRU1QVFlfVkFMVUU6IHRoaXMuZm9ybS5hcHBMb2NhbGUuTEFCRUxfTk9fVkFMVUVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZGF0YXNvdXJjZS5leGVjdXRlKG9wZXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgb25GaWVsZERlZmF1bHRWYWx1ZUNoYW5nZShmaWVsZCwgbnYpIHtcbiAgICAgICAgZmllbGQubWluVmFsdWUgPSBudjtcbiAgICAgICAgZmllbGQudmFsdWUgPSBudjtcbiAgICAgICAgdGhpcy5maWx0ZXJPbkRlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkZpZWxkVmFsdWVDaGFuZ2UoZmllbGQsIG52KSB7XG4gICAgICAgIGFwcGx5RmlsdGVyT25GaWVsZCh0aGlzLmZvcm0uZGF0YXNvdXJjZSwgZmllbGQud2lkZ2V0LCB0aGlzLmZvcm0uZm9ybUZpZWxkcywgbnYsIHtcbiAgICAgICAgICAgIEVNUFRZX1ZBTFVFOiB0aGlzLmZvcm0uYXBwTG9jYWxlLkxBQkVMX05PX1ZBTFVFXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5mb3JtLmF1dG91cGRhdGUgJiYgaXNEZWZpbmVkKG52KSkge1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1heERlZmF1bHRWYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlck9uRGVmYXVsdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRhdGFTb3VyY2VDaGFuZ2UoKSB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmZvcm0uZGF0YXNvdXJjZTtcblxuICAgICAgICBpZiAoIWRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybS5mb3JtRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgaWYgKGlzRGF0YVNldFdpZGdldChmaWVsZC53aWRnZXR0eXBlKSkge1xuICAgICAgICAgICAgICAgIGdldERpc3RpbmN0VmFsdWVzRm9yRmllbGQoZGF0YVNvdXJjZSwgZmllbGQud2lkZ2V0LCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZGdldDogJ3dpZGdldHR5cGUnLFxuICAgICAgICAgICAgICAgICAgICBlbmFibGVlbXB0eWZpbHRlcjogdGhpcy5mb3JtLmVuYWJsZWVtcHR5ZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBFTVBUWV9WQUxVRTogdGhpcy5mb3JtLmFwcExvY2FsZS5MQUJFTF9OT19WQUxVRVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGFwcGx5RmlsdGVyT25GaWVsZChkYXRhU291cmNlLCBmaWVsZC53aWRnZXQsIHRoaXMuZm9ybS5mb3JtRmllbGRzLCBmaWVsZC52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBFTVBUWV9WQUxVRTogdGhpcy5mb3JtLmFwcExvY2FsZS5MQUJFTF9OT19WQUxVRVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBPbiBsb2FkIGNoZWNrIGlmIGRlZmF1bHQgdmFsdWUgZXhpc3RzIGFuZCBhcHBseSBmaWx0ZXIsIENhbGwgdGhlIGZpbHRlciB3aXRoIHRoZSByZXN1bHQgb3B0aW9uc1xuICAgICAgICB0aGlzLl9maWx0ZXIodGhpcy5fb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2xlYXJGaWx0ZXIoKSB7XG4gICAgICAgIHRoaXMuZm9ybS5yZXNldEZvcm1TdGF0ZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZm9ybUZpZWxkcy5mb3JFYWNoKGZpbHRlckZpZWxkID0+IHtcbiAgICAgICAgICAgIC8vIEFkZGVkIGNoZWNrIGZvciByYW5nZSBmaWVsZFxuICAgICAgICAgICAgaWYgKCFmaWx0ZXJGaWVsZC5yZWFkb25seSAmJiBmaWx0ZXJGaWVsZC5zaG93KSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkLndpZGdldHR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSB8fCBmaWx0ZXJGaWVsZC53aWRnZXR0eXBlID09PSBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLiRlbGVtZW50LmZpbmQoJ2RpdltuYW1lPScgKyBmaWx0ZXJGaWVsZC5uYW1lICsgJ10gaW5wdXQnKS52YWwoJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRmllbGRbJ2lzLXJhbmdlJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQubWluVmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQubWF4VmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZC5yZXNldERpc3BsYXlJbnB1dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIElmIHZhcmlhYmxlIGhhcyBhbnkgYmluZGluZ3MsIHdhaXQgZm9yIHRoZSBiaW5kaW5ncyB0byBiZSB1cGRhdGVkXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2V0dGluZyByZXN1bHQgdG8gdGhlIGRlZmF1bHQgZGF0YVxuICAgICAgICAgICAgdGhpcy5fZmlsdGVyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN1Ym1pdEZvcm0oKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgfVxuXG4gICAgYXBwbHlGaWx0ZXIob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyA/IChvcHRpb25zLmRhdGEgfHwgb3B0aW9ucykgOiB7fTtcbiAgICAgICAgb3B0aW9ucy5wYWdlID0gb3B0aW9ucy5wYWdlIHx8IDE7XG4gICAgICAgIG9wdGlvbnMub3JkZXJCeSA9IGlzRGVmaW5lZChvcHRpb25zLm9yZGVyQnkpID8gIG9wdGlvbnMub3JkZXJCeSA6IHRoaXMub3JkZXJCeTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGZpbHRlcihvcHRpb25zPykge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybS5kYXRhc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsdGVyRmllbGRzID0ge307XG4gICAgICAgIGNvbnN0IGRhdGFNb2RlbCA9IHt9O1xuICAgICAgICBsZXQgcGFnZSA9IDEsXG4gICAgICAgICAgICBvcmRlckJ5LFxuICAgICAgICAgICAgaXNWYWxpZDtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIHBhZ2UgPSBvcHRpb25zLnBhZ2UgfHwgcGFnZTtcbiAgICAgICAgb3JkZXJCeSA9IGlzRGVmaW5lZChvcHRpb25zLm9yZGVyQnkpID8gb3B0aW9ucy5vcmRlckJ5IDogKHRoaXMub3JkZXJCeSB8fCAnJyk7XG4gICAgICAgIHRoaXMub3JkZXJCeSA9IG9yZGVyQnk7IC8vIFN0b3JlIHRoZSBvcmRlciBieSBpbiBzY29wZS4gVGhpcyBjYW4gYmUgdXNlZCB0byByZXRhaW4gdGhlIHNvcnQgYWZ0ZXIgZmlsdGVyaW5nXG4gICAgICAgIC8vIENvcHkgdGhlIHZhbHVlcyB0byBiZSBzZW50IHRvIHRoZSB1c2VyIGFzICckZGF0YScgYmVmb3JlIHNlcnZpY2VjYWxsXG4gICAgICAgIHRoaXMuZm9ybS5mb3JtRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGRTZWxlY3RvciA9ICdkaXZbbmFtZT0nICsgZmllbGQubmFtZSArICddIGlucHV0JztcbiAgICAgICAgICAgIGNvbnN0ICRlbCA9IHRoaXMuZm9ybS4kZWxlbWVudDtcbiAgICAgICAgICAgIGxldCBmaWVsZEVsZTtcbiAgICAgICAgICAgIGlmICgoZmllbGQud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFIHx8IGZpZWxkLndpZGdldHR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRCkgJiYgJGVsKSB7XG4gICAgICAgICAgICAgICAgZmllbGRFbGUgPSAkZWwuZmluZChmaWVsZFNlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpZWxkWydpcy1yYW5nZSddKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFNb2RlbFtmaWVsZC5maWVsZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiBpc0RlZmluZWQoZmllbGQudmFsdWUpID8gZmllbGQudmFsdWUgOiBmaWVsZEVsZS52YWwoKSAvLyBGb3IgYXV0b2NvbXBsZXRlLCBzZXQgdGhlIGRhdGF2YWx1ZS4gSWYgbm90IHByZXNlbnQsIHNldCBxdWVyeSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFNb2RlbFtmaWVsZC5maWVsZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbWluVmFsdWUnOiAgaXNEZWZpbmVkKGZpZWxkLm1pblZhbHVlKSA/IGZpZWxkLm1pblZhbHVlIDogZmllbGRFbGUuZmlyc3QoKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdtYXhWYWx1ZSc6ICBpc0RlZmluZWQoZmllbGQubWF4VmFsdWUpID8gZmllbGQubWF4VmFsdWUgOiBmaWVsZEVsZS5sYXN0KCkudmFsKClcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmaWVsZFsnaXMtcmFuZ2UnXSkge1xuICAgICAgICAgICAgICAgIGRhdGFNb2RlbFtmaWVsZC5maWVsZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6IGZpZWxkLnZhbHVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0YU1vZGVsW2ZpZWxkLmZpZWxkXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgJ21pblZhbHVlJzogZmllbGQubWluVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICdtYXhWYWx1ZSc6IGZpZWxkLm1heFZhbHVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8qUGVyZm9ybSB0aGlzIGZ1bmN0aW9uIGZvciB0aGUgZXZlbnQgb25CZWZvcmVzZXJ2aWNlY2FsbCovXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpc1ZhbGlkID0gdGhpcy5mb3JtLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JlZm9yZXNlcnZpY2VjYWxsJywgeyRkYXRhOiBkYXRhTW9kZWx9KTtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1ZhbGlkICYmIGlzVmFsaWQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udG9nZ2xlTWVzc2FnZSh0cnVlLCBpc1ZhbGlkLmVycm9yLCAnZXJyb3InLCAnRVJST1InKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKlVwZGF0ZSB0aGVzZSB2YWx1ZXMgaW4gdGhlIGZvcm1GaWVsZHMgd2l0aCBuZXcgcmVmZXJlbmNlLCBpbm9yZGVyIHRvIG1haW50YWluIHRoZSBVSSB2YWx1ZXMqL1xuICAgICAgICAgICAgdGhpcy5mb3JtLmZvcm1GaWVsZHMuZm9yRWFjaChmaWx0ZXJGaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFmaWx0ZXJGaWVsZFsnaXMtcmFuZ2UnXSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZC5fdmFsdWUgPSBkYXRhTW9kZWxbZmlsdGVyRmllbGQuZmllbGRdLnZhbHVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkLl9taW5WYWx1ZSA9IGRhdGFNb2RlbFtmaWx0ZXJGaWVsZC5maWVsZF0ubWluVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkLl9tYXhWYWx1ZSA9IGRhdGFNb2RlbFtmaWx0ZXJGaWVsZC5maWVsZF0ubWF4VmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGVyci5tZXNzYWdlID09PSAnQWJvcnQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIENvbnN0cnVjdCB0aGUgZm9ybUZpZWxkcyBWYXJpYWJsZSB0byBzZW5kIGl0IHRvIHRoZSBxdWVyeUJ1aWxkZXIgKi9cbiAgICAgICAgdGhpcy5mb3JtLmZvcm1GaWVsZHMuZm9yRWFjaChmaWx0ZXJGaWVsZCA9PiB7XG4gICAgICAgICAgICBsZXQgZmllbGRWYWx1ZTtcbiAgICAgICAgICAgIGxldCBtYXRjaE1vZGU7XG4gICAgICAgICAgICBsZXQgY29sTmFtZSAgPSBmaWx0ZXJGaWVsZC5maWVsZDtcbiAgICAgICAgICAgIGNvbnN0IG1pblZhbHVlID0gZmlsdGVyRmllbGQuX21pblZhbHVlO1xuICAgICAgICAgICAgY29uc3QgbWF4dmFsdWUgPSBmaWx0ZXJGaWVsZC5fbWF4VmFsdWU7XG4gICAgICAgICAgICAvKiBpZiBmaWVsZCBpcyBwYXJ0IG9mIGEgcmVsYXRlZCBlbnRpdHksIGNvbHVtbiBuYW1lIHdpbGwgYmUgJ2VudGl0eS5maWVsZE5hbWUnICovXG4gICAgICAgICAgICBpZiAoZmlsdGVyRmllbGRbJ2lzLXJlbGF0ZWQnXSkge1xuICAgICAgICAgICAgICAgIGNvbE5hbWUgKz0gJy4nICsgZmlsdGVyRmllbGRbJ2xvb2t1cC1maWVsZCddO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkWydpcy1yYW5nZSddKSB7XG4gICAgICAgICAgICAgICAgLypCYXNlZCBvbiB0aGUgbWluIGFuZCBtYXggdmFsdWVzLCBkZWNpZGUgdGhlIG1hdGNobW9kZSBjb25kaXRpb24qL1xuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBnZXRSYW5nZUZpZWxkVmFsdWUobWluVmFsdWUsIG1heHZhbHVlKTtcbiAgICAgICAgICAgICAgICBtYXRjaE1vZGUgID0gZ2V0UmFuZ2VNYXRjaE1vZGUobWluVmFsdWUsIG1heHZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNEZWZpbmVkKGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkc1tjb2xOYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZScgICAgIDogZmllbGRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdtYXRjaE1vZGUnIDogbWF0Y2hNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2xvZ2ljYWxPcCcgOiAnQU5EJ1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJGaWVsZC53aWRnZXR0eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU0VMRUNUOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJBRElPU0VUOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldEVuYWJsZUVtcHR5RmlsdGVyKHRoaXMuZm9ybS5lbmFibGVlbXB0eWZpbHRlcikgJiYgZmlsdGVyRmllbGQuX3ZhbHVlID09PSBGSUxURVJfQ09OU1RBTlRTLkVNUFRZX0tFWSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoTW9kZSAgPSBnZXRFbXB0eU1hdGNoTW9kZSh0aGlzLmZvcm0uZW5hYmxlZW1wdHlmaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWx0ZXJGaWVsZC5fdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZC50eXBlID09PSBEYXRhVHlwZS5CT09MRUFOKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0RlZmluZWQoZmlsdGVyRmllbGQuX3ZhbHVlKSAmJiBmaWx0ZXJGaWVsZC5fdmFsdWUgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlID0gSlNPTi5wYXJzZShmaWx0ZXJGaWVsZC5fdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSA9IGZpbHRlckZpZWxkLl92YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWFNFVDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZC5fdmFsdWUgJiYgZmlsdGVyRmllbGQuX3ZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWx0ZXJGaWVsZC5fdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5UT0dHTEU6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZWZpbmVkKGZpbHRlckZpZWxkLl92YWx1ZSkgJiYgZmlsdGVyRmllbGQuX3ZhbHVlICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWx0ZXJGaWVsZC50eXBlID09PSBEYXRhVHlwZS5CT09MRUFOID8gSlNPTi5wYXJzZShmaWx0ZXJGaWVsZC5fdmFsdWUpIDogZmlsdGVyRmllbGQuX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlID0gZmlsdGVyRmllbGQuX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0RlZmluZWQoZmllbGRWYWx1ZSkgJiYgZmllbGRWYWx1ZSAhPT0gJycgJiYgZmllbGRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZHNbY29sTmFtZV0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzW2NvbE5hbWVdLm1hdGNoTW9kZSA9IG1hdGNoTW9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyRmllbGQudHlwZSA9PT0gRGF0YVR5cGUuU1RSSU5HIHx8IGZpbHRlckZpZWxkLmlzUmVsYXRlZCkgeyAvLyBPbmx5IGZvciBzdHJpbmcgdHlwZXMgYW5kIHJlbGF0ZWQgZmllbGRzLCBjdXN0b20gbWF0Y2ggbW9kZXMgYXJlIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZHNbY29sTmFtZV0ubWF0Y2hNb2RlID0gbWF0Y2hNb2RlIHx8IGZpbHRlckZpZWxkLm1hdGNobW9kZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX01BVENIX01PREUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkc1tjb2xOYW1lXS52YWx1ZSAgICAgPSBmaWVsZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZHNbY29sTmFtZV0ubG9naWNhbE9wID0gJ0FORCc7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkc1tjb2xOYW1lXS50eXBlID0gZmlsdGVyRmllbGQudHlwZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmV4cG9ydFR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm0uZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkRPV05MT0FELCB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaE1vZGUgOiAnYW55d2hlcmVpZ25vcmVjYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzIDogZmlsdGVyRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICBvcmRlckJ5IDogb3JkZXJCeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0VHlwZSA6IG9wdGlvbnMuZXhwb3J0VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgbG9naWNhbE9wIDogJ0FORCcsXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydFNpemUgOiBvcHRpb25zLmV4cG9ydFNpemUsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcyA6IG9wdGlvbnMuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogb3B0aW9ucy5maWxlTmFtZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkxJU1RfUkVDT1JEUywge1xuICAgICAgICAgICAgZmlsdGVyRmllbGRzIDogZmlsdGVyRmllbGRzLFxuICAgICAgICAgICAgb3JkZXJCeSA6IG9yZGVyQnksXG4gICAgICAgICAgICBwYWdlIDogcGFnZSxcbiAgICAgICAgICAgIHBhZ2VzaXplIDogdGhpcy5mb3JtLnBhZ2VzaXplIHx8IDIwLFxuICAgICAgICAgICAgc2tpcERhdGFTZXRVcGRhdGUgOiB0cnVlLCAvLyBkb250IHVwZGF0ZSB0aGUgYWN0dWFsIHZhcmlhYmxlIGRhdGFzZXQsXG4gICAgICAgICAgICBpbkZsaWdodEJlaGF2aW9yIDogJ2V4ZWN1dGVBbGwnXG4gICAgICAgIH0pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGFnaW5hdGlvbiA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8gZGlzYWJsZSByZWFkb25seSBhbmQgc2hvdyB0aGUgYXBwcm9wcmlhdGUgZXJyb3JcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udG9nZ2xlTWVzc2FnZSh0cnVlLCBkYXRhLmVycm9yLCAnZXJyb3InLCAnRVJST1InKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ub25SZXN1bHRDYihkYXRhLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICdwYWdlJzogcGFnZSxcbiAgICAgICAgICAgICAgICAgICAgJ29yZGVyQnknOiBvcmRlckJ5XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzdWx0ID0gZ2V0Q2xvbmVkT2JqZWN0KGRhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5vblJlc3VsdENiKGRhdGEsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5yZXN1bHQ7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS50b2dnbGVNZXNzYWdlKHRydWUsIGVycm9yLCAnZXJyb3InLCAnRVJST1InKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5vblJlc3VsdENiKGVycm9yLCBmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENhbGxzIHRoZSBmaWx0ZXIgZnVuY3Rpb24gaWYgZGVmYXVsdCB2YWx1ZXMgYXJlIHByZXNlbnRcbiAgICBmaWx0ZXJPbkRlZmF1bHQoKSB7XG4gICAgICAgIC8qQ2hlY2sgaWYgZGVmYXVsdCB2YWx1ZSBpcyBwcmVzZW50IGZvciBhbnkgZmlsdGVyIGZpZWxkKi9cbiAgICAgICAgY29uc3QgZGVmYXVsdE9iaiA9IGZpbmQodGhpcy5mb3JtLmZvcm1GaWVsZHMsIG9iaiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNEZWZpbmVkKG9iai52YWx1ZSkgfHwgaXNEZWZpbmVkKG9iai5taW5WYWx1ZSkgfHwgaXNEZWZpbmVkKG9iai5tYXhWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvKklmIGRlZmF1bHQgdmFsdWUgZXhpc3RzIGFuZCBkYXRhIGlzIGxvYWRlZCwgYXBwbHkgdGhlIGZpbHRlciovXG4gICAgICAgIGlmIChkZWZhdWx0T2JqKSB7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXIodGhpcy5fb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3RlckZvcm1XaWRnZXQod2lkZ2V0KSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB3aWRnZXQua2V5IHx8IHdpZGdldC5uYW1lO1xuICAgICAgICB0aGlzLmZvcm0uZmlsdGVyV2lkZ2V0c1tuYW1lXSA9IHdpZGdldDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDYW5jZWwgZGVib3VuY2VkIGZ1bmN0aW9uXG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgKHRoaXMuX2ZpbHRlciBhcyBhbnkpLmNhbmNlbCkge1xuICAgICAgICAgICAgKHRoaXMuX2ZpbHRlciBhcyBhbnkpLmNhbmNlbCgpO1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgZm9ybSByZWZlcmVuY2VcbiAgICAgICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IG51bGw7XG4gICAgICAgIHRoaXMub3JkZXJCeSA9IG51bGw7XG4gICAgfVxufVxuIl19
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1maWx0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvbGl2ZS1maWx0ZXIvbGl2ZS1maWx0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxTSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBRS9CLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsV0FBVyxFQUFLLG1CQUFtQjtDQUN0QyxDQUFDO0FBQ0YsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBTXRCLE1BQU0sT0FBTyxtQkFBbUI7YUFDcEIsb0JBQWUsR0FBRyx1QkFBdUIsRUFBRSxBQUE1QixDQUE2QjtJQVVwRCxZQUFtRCxJQUFJO1FBQUosU0FBSSxHQUFKLElBQUksQ0FBQTtRQUx2RCw2SEFBNkg7UUFDN0gsWUFBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFD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QUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDZCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3Qjs7MEJBWWdCLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0LCBPbkRlc3Ryb3ksIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ICRhcHBEaWdlc3QsIERhdGFTb3VyY2UsIERhdGFUeXBlLCBkZWJvdW5jZSwgRm9ybVdpZGdldFR5cGUsIGdldENsb25lZE9iamVjdCwgaXNEZWZpbmVkIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgYXBwbHlGaWx0ZXJPbkZpZWxkLCBmZXRjaERpc3RpbmN0VmFsdWVzLCBnZXREaXN0aW5jdFZhbHVlc0ZvckZpZWxkLCBnZXRFbXB0eU1hdGNoTW9kZSwgZ2V0RW5hYmxlRW1wdHlGaWx0ZXIsIGdldFJhbmdlRmllbGRWYWx1ZSwgZ2V0UmFuZ2VNYXRjaE1vZGUsIGlzRGF0YVNldFdpZGdldCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgcmVnaXN0ZXJMaXZlRmlsdGVyUHJvcHMgfSBmcm9tICcuLi9mb3JtLnByb3BzJztcbmltcG9ydCB7ZmluZH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCBGSUxURVJfQ09OU1RBTlRTID0ge1xuICAgICdFTVBUWV9LRVknICAgOiAnRU1QVFlfTlVMTF9GSUxURVInXG59O1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bUxpdmVGaWx0ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBMaXZlRmlsdGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyTGl2ZUZpbHRlclByb3BzKCk7XG4gICAgcHJpdmF0ZSBfb3B0aW9ucztcblxuICAgIG9yZGVyQnk7XG5cbiAgICAvLyBkZWJvdW5jZSB0aGUgZmlsdGVyIGZ1bmN0aW9uLiBJZiBtdWx0aXBsZSBmaWx0ZXIgY2FsbHMgYXJlIG1hZGUgYXQgc2FtZSB0aW1lLCBjYWxscyB3aWxsIGJlIGRlbGF5ZWQgYW5kIGxhc3QgY2FsbCBpcyBmaXJlZFxuICAgIF9maWx0ZXIgPSBkZWJvdW5jZShvcHRpb25zID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXIob3B0aW9ucyk7XG4gICAgfSwgMjUwKTtcblxuICAgIGNvbnN0cnVjdG9yKEBTZWxmKCkgQEluamVjdChGb3JtQ29tcG9uZW50KSBwcml2YXRlIGZvcm0pIHtcbiAgICAgICAgZm9ybS5jbGVhckZpbHRlciA9IHRoaXMuY2xlYXJGaWx0ZXIuYmluZCh0aGlzKTtcbiAgICAgICAgZm9ybS5hcHBseUZpbHRlciA9IHRoaXMuYXBwbHlGaWx0ZXIuYmluZCh0aGlzKTtcbiAgICAgICAgZm9ybS5maWx0ZXIgPSB0aGlzLmZpbHRlci5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLmZpbHRlck9uRGVmYXVsdCA9IHRoaXMuZmlsdGVyT25EZWZhdWx0LmJpbmQodGhpcyk7XG4gICAgICAgIGZvcm0uZXhlY3V0ZSA9IHRoaXMuZXhlY3V0ZS5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLm9uRmllbGREZWZhdWx0VmFsdWVDaGFuZ2UgPSB0aGlzLm9uRmllbGREZWZhdWx0VmFsdWVDaGFuZ2UuYmluZCh0aGlzKTtcbiAgICAgICAgZm9ybS5vbk1heERlZmF1bHRWYWx1ZUNoYW5nZSA9IHRoaXMub25NYXhEZWZhdWx0VmFsdWVDaGFuZ2UuYmluZCh0aGlzKTtcbiAgICAgICAgZm9ybS5vbkRhdGFTb3VyY2VDaGFuZ2UgPSB0aGlzLm9uRGF0YVNvdXJjZUNoYW5nZS5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLm9uRmllbGRWYWx1ZUNoYW5nZSA9IHRoaXMub25GaWVsZFZhbHVlQ2hhbmdlLmJpbmQodGhpcyk7XG4gICAgICAgIGZvcm0uc3VibWl0Rm9ybSA9IHRoaXMuc3VibWl0Rm9ybS5iaW5kKHRoaXMpO1xuICAgICAgICBmb3JtLnJlZ2lzdGVyRm9ybVdpZGdldCA9IHRoaXMucmVnaXN0ZXJGb3JtV2lkZ2V0LmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgZXhlY3V0ZShvcGVyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gRGF0YVNvdXJjZS5PcGVyYXRpb24uTElTVF9SRUNPUkRTIHx8IG9wZXJhdGlvbiA9PT0gRGF0YVNvdXJjZS5PcGVyYXRpb24uRE9XTkxPQUQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGx5RmlsdGVyKG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09IERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9PUFRJT05TKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlcmF0aW9uID09PSBEYXRhU291cmNlLk9wZXJhdGlvbi5HRVRfUEFHSU5HX09QVElPTlMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm0ucGFnaW5hdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZm9ybS5kYXRhc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gRGF0YVNvdXJjZS5PcGVyYXRpb24uRkVUQ0hfRElTVElOQ1RfVkFMVUVTKSB7XG4gICAgICAgICAgICByZXR1cm4gZmV0Y2hEaXN0aW5jdFZhbHVlcyh0aGlzLmZvcm0uZGF0YXNvdXJjZSwgdGhpcy5mb3JtLmZvcm1GaWVsZHMsIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQ6ICd3aWRnZXR0eXBlJyxcbiAgICAgICAgICAgICAgICBlbmFibGVlbXB0eWZpbHRlcjogdGhpcy5mb3JtLmVuYWJsZWVtcHR5ZmlsdGVyLFxuICAgICAgICAgICAgICAgIEVNUFRZX1ZBTFVFOiB0aGlzLmZvcm0uYXBwTG9jYWxlLkxBQkVMX05PX1ZBTFVFXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmRhdGFzb3VyY2UuZXhlY3V0ZShvcGVyYXRpb24sIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIG9uRmllbGREZWZhdWx0VmFsdWVDaGFuZ2UoZmllbGQsIG52KSB7XG4gICAgICAgIGZpZWxkLm1pblZhbHVlID0gbnY7XG4gICAgICAgIGZpZWxkLnZhbHVlID0gbnY7XG4gICAgICAgIHRoaXMuZmlsdGVyT25EZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25GaWVsZFZhbHVlQ2hhbmdlKGZpZWxkLCBudikge1xuICAgICAgICBhcHBseUZpbHRlck9uRmllbGQodGhpcy5mb3JtLmRhdGFzb3VyY2UsIGZpZWxkLndpZGdldCwgdGhpcy5mb3JtLmZvcm1GaWVsZHMsIG52LCB7XG4gICAgICAgICAgICBFTVBUWV9WQUxVRTogdGhpcy5mb3JtLmFwcExvY2FsZS5MQUJFTF9OT19WQUxVRVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5hdXRvdXBkYXRlICYmIGlzRGVmaW5lZChudikpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25NYXhEZWZhdWx0VmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJPbkRlZmF1bHQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EYXRhU291cmNlQ2hhbmdlKCkge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5mb3JtLmRhdGFzb3VyY2U7XG5cbiAgICAgICAgaWYgKCFkYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0uZm9ybUZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGlmIChpc0RhdGFTZXRXaWRnZXQoZmllbGQud2lkZ2V0dHlwZSkpIHtcbiAgICAgICAgICAgICAgICBnZXREaXN0aW5jdFZhbHVlc0ZvckZpZWxkKGRhdGFTb3VyY2UsIGZpZWxkLndpZGdldCwge1xuICAgICAgICAgICAgICAgICAgICB3aWRnZXQ6ICd3aWRnZXR0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZW1wdHlmaWx0ZXI6IHRoaXMuZm9ybS5lbmFibGVlbXB0eWZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgRU1QVFlfVkFMVUU6IHRoaXMuZm9ybS5hcHBMb2NhbGUuTEFCRUxfTk9fVkFMVUVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBhcHBseUZpbHRlck9uRmllbGQoZGF0YVNvdXJjZSwgZmllbGQud2lkZ2V0LCB0aGlzLmZvcm0uZm9ybUZpZWxkcywgZmllbGQudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgaXNGaXJzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgRU1QVFlfVkFMVUU6IHRoaXMuZm9ybS5hcHBMb2NhbGUuTEFCRUxfTk9fVkFMVUVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gT24gbG9hZCBjaGVjayBpZiBkZWZhdWx0IHZhbHVlIGV4aXN0cyBhbmQgYXBwbHkgZmlsdGVyLCBDYWxsIHRoZSBmaWx0ZXIgd2l0aCB0aGUgcmVzdWx0IG9wdGlvbnNcbiAgICAgICAgdGhpcy5fZmlsdGVyKHRoaXMuX29wdGlvbnMpO1xuICAgIH1cblxuICAgIGNsZWFyRmlsdGVyKCkge1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXRGb3JtU3RhdGUoKTtcbiAgICAgICAgdGhpcy5mb3JtLmZvcm1GaWVsZHMuZm9yRWFjaChmaWx0ZXJGaWVsZCA9PiB7XG4gICAgICAgICAgICAvLyBBZGRlZCBjaGVjayBmb3IgcmFuZ2UgZmllbGRcbiAgICAgICAgICAgIGlmICghZmlsdGVyRmllbGQucmVhZG9ubHkgJiYgZmlsdGVyRmllbGQuc2hvdykge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZC53aWRnZXR0eXBlID09PSBGb3JtV2lkZ2V0VHlwZS5BVVRPQ09NUExFVEUgfHwgZmlsdGVyRmllbGQud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVFlQRUFIRUFEKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS4kZWxlbWVudC5maW5kKCdkaXZbbmFtZT0nICsgZmlsdGVyRmllbGQubmFtZSArICddIGlucHV0JykudmFsKCcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkWydpcy1yYW5nZSddKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkLm1pblZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkLm1heFZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQucmVzZXREaXNwbGF5SW5wdXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBJZiB2YXJpYWJsZSBoYXMgYW55IGJpbmRpbmdzLCB3YWl0IGZvciB0aGUgYmluZGluZ3MgdG8gYmUgdXBkYXRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIFNldHRpbmcgcmVzdWx0IHRvIHRoZSBkZWZhdWx0IGRhdGFcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdWJtaXRGb3JtKCkge1xuICAgICAgICB0aGlzLmZpbHRlcigpO1xuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgPyAob3B0aW9ucy5kYXRhIHx8IG9wdGlvbnMpIDoge307XG4gICAgICAgIG9wdGlvbnMucGFnZSA9IG9wdGlvbnMucGFnZSB8fCAxO1xuICAgICAgICBvcHRpb25zLm9yZGVyQnkgPSBpc0RlZmluZWQob3B0aW9ucy5vcmRlckJ5KSA/ICBvcHRpb25zLm9yZGVyQnkgOiB0aGlzLm9yZGVyQnk7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcihvcHRpb25zKTtcbiAgICB9XG5cbiAgICBmaWx0ZXIob3B0aW9ucz8pIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0uZGF0YXNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbHRlckZpZWxkcyA9IHt9O1xuICAgICAgICBjb25zdCBkYXRhTW9kZWwgPSB7fTtcbiAgICAgICAgbGV0IHBhZ2UgPSAxLFxuICAgICAgICAgICAgb3JkZXJCeSxcbiAgICAgICAgICAgIGlzVmFsaWQ7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICBwYWdlID0gb3B0aW9ucy5wYWdlIHx8IHBhZ2U7XG4gICAgICAgIG9yZGVyQnkgPSBpc0RlZmluZWQob3B0aW9ucy5vcmRlckJ5KSA/IG9wdGlvbnMub3JkZXJCeSA6ICh0aGlzLm9yZGVyQnkgfHwgJycpO1xuICAgICAgICB0aGlzLm9yZGVyQnkgPSBvcmRlckJ5OyAvLyBTdG9yZSB0aGUgb3JkZXIgYnkgaW4gc2NvcGUuIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmV0YWluIHRoZSBzb3J0IGFmdGVyIGZpbHRlcmluZ1xuICAgICAgICAvLyBDb3B5IHRoZSB2YWx1ZXMgdG8gYmUgc2VudCB0byB0aGUgdXNlciBhcyAnJGRhdGEnIGJlZm9yZSBzZXJ2aWNlY2FsbFxuICAgICAgICB0aGlzLmZvcm0uZm9ybUZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkU2VsZWN0b3IgPSAnZGl2W25hbWU9JyArIGZpZWxkLm5hbWUgKyAnXSBpbnB1dCc7XG4gICAgICAgICAgICBjb25zdCAkZWwgPSB0aGlzLmZvcm0uJGVsZW1lbnQ7XG4gICAgICAgICAgICBsZXQgZmllbGRFbGU7XG4gICAgICAgICAgICBpZiAoKGZpZWxkLndpZGdldHR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSB8fCBmaWVsZC53aWRnZXR0eXBlID09PSBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQpICYmICRlbCkge1xuICAgICAgICAgICAgICAgIGZpZWxkRWxlID0gJGVsLmZpbmQoZmllbGRTZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgaWYgKCFmaWVsZFsnaXMtcmFuZ2UnXSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhTW9kZWxbZmllbGQuZmllbGRdID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogaXNEZWZpbmVkKGZpZWxkLnZhbHVlKSA/IGZpZWxkLnZhbHVlIDogZmllbGRFbGUudmFsKCkgLy8gRm9yIGF1dG9jb21wbGV0ZSwgc2V0IHRoZSBkYXRhdmFsdWUuIElmIG5vdCBwcmVzZW50LCBzZXQgcXVlcnkgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYXRhTW9kZWxbZmllbGQuZmllbGRdID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ21pblZhbHVlJzogIGlzRGVmaW5lZChmaWVsZC5taW5WYWx1ZSkgPyBmaWVsZC5taW5WYWx1ZSA6IGZpZWxkRWxlLmZpcnN0KCkudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAnbWF4VmFsdWUnOiAgaXNEZWZpbmVkKGZpZWxkLm1heFZhbHVlKSA/IGZpZWxkLm1heFZhbHVlIDogZmllbGRFbGUubGFzdCgpLnZhbCgpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZmllbGRbJ2lzLXJhbmdlJ10pIHtcbiAgICAgICAgICAgICAgICBkYXRhTW9kZWxbZmllbGQuZmllbGRdID0ge1xuICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiBmaWVsZC52YWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGFNb2RlbFtmaWVsZC5maWVsZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICdtaW5WYWx1ZSc6IGZpZWxkLm1pblZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAnbWF4VmFsdWUnOiBmaWVsZC5tYXhWYWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvKlBlcmZvcm0gdGhpcyBmdW5jdGlvbiBmb3IgdGhlIGV2ZW50IG9uQmVmb3Jlc2VydmljZWNhbGwqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaXNWYWxpZCA9IHRoaXMuZm9ybS5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVzZXJ2aWNlY2FsbCcsIHskZGF0YTogZGF0YU1vZGVsfSk7XG4gICAgICAgICAgICBpZiAoaXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNWYWxpZCAmJiBpc1ZhbGlkLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnRvZ2dsZU1lc3NhZ2UodHJ1ZSwgaXNWYWxpZC5lcnJvciwgJ2Vycm9yJywgJ0VSUk9SJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLypVcGRhdGUgdGhlc2UgdmFsdWVzIGluIHRoZSBmb3JtRmllbGRzIHdpdGggbmV3IHJlZmVyZW5jZSwgaW5vcmRlciB0byBtYWludGFpbiB0aGUgVUkgdmFsdWVzKi9cbiAgICAgICAgICAgIHRoaXMuZm9ybS5mb3JtRmllbGRzLmZvckVhY2goZmlsdGVyRmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZmlsdGVyRmllbGRbJ2lzLXJhbmdlJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQuX3ZhbHVlID0gZGF0YU1vZGVsW2ZpbHRlckZpZWxkLmZpZWxkXS52YWx1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZC5fbWluVmFsdWUgPSBkYXRhTW9kZWxbZmlsdGVyRmllbGQuZmllbGRdLm1pblZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZC5fbWF4VmFsdWUgPSBkYXRhTW9kZWxbZmlsdGVyRmllbGQuZmllbGRdLm1heFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIubWVzc2FnZSA9PT0gJ0Fib3J0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBDb25zdHJ1Y3QgdGhlIGZvcm1GaWVsZHMgVmFyaWFibGUgdG8gc2VuZCBpdCB0byB0aGUgcXVlcnlCdWlsZGVyICovXG4gICAgICAgIHRoaXMuZm9ybS5mb3JtRmllbGRzLmZvckVhY2goZmlsdGVyRmllbGQgPT4ge1xuICAgICAgICAgICAgbGV0IGZpZWxkVmFsdWU7XG4gICAgICAgICAgICBsZXQgbWF0Y2hNb2RlO1xuICAgICAgICAgICAgbGV0IGNvbE5hbWUgID0gZmlsdGVyRmllbGQuZmllbGQ7XG4gICAgICAgICAgICBjb25zdCBtaW5WYWx1ZSA9IGZpbHRlckZpZWxkLl9taW5WYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IG1heHZhbHVlID0gZmlsdGVyRmllbGQuX21heFZhbHVlO1xuICAgICAgICAgICAgLyogaWYgZmllbGQgaXMgcGFydCBvZiBhIHJlbGF0ZWQgZW50aXR5LCBjb2x1bW4gbmFtZSB3aWxsIGJlICdlbnRpdHkuZmllbGROYW1lJyAqL1xuICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkWydpcy1yZWxhdGVkJ10pIHtcbiAgICAgICAgICAgICAgICBjb2xOYW1lICs9ICcuJyArIGZpbHRlckZpZWxkWydsb29rdXAtZmllbGQnXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZFsnaXMtcmFuZ2UnXSkge1xuICAgICAgICAgICAgICAgIC8qQmFzZWQgb24gdGhlIG1pbiBhbmQgbWF4IHZhbHVlcywgZGVjaWRlIHRoZSBtYXRjaG1vZGUgY29uZGl0aW9uKi9cbiAgICAgICAgICAgICAgICBmaWVsZFZhbHVlID0gZ2V0UmFuZ2VGaWVsZFZhbHVlKG1pblZhbHVlLCBtYXh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlICA9IGdldFJhbmdlTWF0Y2hNb2RlKG1pblZhbHVlLCBtYXh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGVmaW5lZChmaWVsZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZHNbY29sTmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnICAgICA6IGZpZWxkVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbWF0Y2hNb2RlJyA6IG1hdGNoTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdsb2dpY2FsT3AnIDogJ0FORCdcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyRmllbGQud2lkZ2V0dHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNFTEVDVDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SQURJT1NFVDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRFbmFibGVFbXB0eUZpbHRlcih0aGlzLmZvcm0uZW5hYmxlZW1wdHlmaWx0ZXIpICYmIGZpbHRlckZpZWxkLl92YWx1ZSA9PT0gRklMVEVSX0NPTlNUQU5UUy5FTVBUWV9LRVkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaE1vZGUgID0gZ2V0RW1wdHlNYXRjaE1vZGUodGhpcy5mb3JtLmVuYWJsZWVtcHR5ZmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlID0gZmlsdGVyRmllbGQuX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRmllbGQudHlwZSA9PT0gRGF0YVR5cGUuQk9PTEVBTikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZWZpbmVkKGZpbHRlckZpZWxkLl92YWx1ZSkgJiYgZmlsdGVyRmllbGQuX3ZhbHVlICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSA9IEpTT04ucGFyc2UoZmlsdGVyRmllbGQuX3ZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWx0ZXJGaWVsZC5fdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hFQ0tCT1hTRVQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hJUFM6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRmllbGQuX3ZhbHVlICYmIGZpbHRlckZpZWxkLl92YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlID0gZmlsdGVyRmllbGQuX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVE9HR0xFOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLklDT05CVVRUT05UT0dHTEU6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZWZpbmVkKGZpbHRlckZpZWxkLl92YWx1ZSkgJiYgZmlsdGVyRmllbGQuX3ZhbHVlICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWx0ZXJGaWVsZC50eXBlID09PSBEYXRhVHlwZS5CT09MRUFOID8gSlNPTi5wYXJzZShmaWx0ZXJGaWVsZC5fdmFsdWUpIDogZmlsdGVyRmllbGQuX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlID0gZmlsdGVyRmllbGQuX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0RlZmluZWQoZmllbGRWYWx1ZSkgJiYgZmllbGRWYWx1ZSAhPT0gJycgJiYgZmllbGRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZHNbY29sTmFtZV0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzW2NvbE5hbWVdLm1hdGNoTW9kZSA9IG1hdGNoTW9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyRmllbGQudHlwZSA9PT0gRGF0YVR5cGUuU1RSSU5HIHx8IGZpbHRlckZpZWxkLmlzUmVsYXRlZCkgeyAvLyBPbmx5IGZvciBzdHJpbmcgdHlwZXMgYW5kIHJlbGF0ZWQgZmllbGRzLCBjdXN0b20gbWF0Y2ggbW9kZXMgYXJlIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZHNbY29sTmFtZV0ubWF0Y2hNb2RlID0gbWF0Y2hNb2RlIHx8IGZpbHRlckZpZWxkLm1hdGNobW9kZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX01BVENIX01PREUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkc1tjb2xOYW1lXS52YWx1ZSAgICAgPSBmaWVsZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZHNbY29sTmFtZV0ubG9naWNhbE9wID0gJ0FORCc7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkc1tjb2xOYW1lXS50eXBlID0gZmlsdGVyRmllbGQudHlwZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmV4cG9ydFR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm0uZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkRPV05MT0FELCB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaE1vZGUgOiAnYW55d2hlcmVpZ25vcmVjYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzIDogZmlsdGVyRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICBvcmRlckJ5IDogb3JkZXJCeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0VHlwZSA6IG9wdGlvbnMuZXhwb3J0VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgbG9naWNhbE9wIDogJ0FORCcsXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydFNpemUgOiBvcHRpb25zLmV4cG9ydFNpemUsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcyA6IG9wdGlvbnMuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogb3B0aW9ucy5maWxlTmFtZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkxJU1RfUkVDT1JEUywge1xuICAgICAgICAgICAgZmlsdGVyRmllbGRzIDogZmlsdGVyRmllbGRzLFxuICAgICAgICAgICAgb3JkZXJCeSA6IG9yZGVyQnksXG4gICAgICAgICAgICBwYWdlIDogcGFnZSxcbiAgICAgICAgICAgIHBhZ2VzaXplIDogdGhpcy5mb3JtLnBhZ2VzaXplIHx8IDIwLFxuICAgICAgICAgICAgc2tpcERhdGFTZXRVcGRhdGUgOiB0cnVlLCAvLyBkb250IHVwZGF0ZSB0aGUgYWN0dWFsIHZhcmlhYmxlIGRhdGFzZXQsXG4gICAgICAgICAgICBpbkZsaWdodEJlaGF2aW9yIDogJ2V4ZWN1dGVBbGwnXG4gICAgICAgIH0pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGFnaW5hdGlvbiA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8gZGlzYWJsZSByZWFkb25seSBhbmQgc2hvdyB0aGUgYXBwcm9wcmlhdGUgZXJyb3JcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udG9nZ2xlTWVzc2FnZSh0cnVlLCBkYXRhLmVycm9yLCAnZXJyb3InLCAnRVJST1InKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ub25SZXN1bHRDYihkYXRhLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICdwYWdlJzogcGFnZSxcbiAgICAgICAgICAgICAgICAgICAgJ29yZGVyQnknOiBvcmRlckJ5XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzdWx0ID0gZ2V0Q2xvbmVkT2JqZWN0KGRhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5vblJlc3VsdENiKGRhdGEsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5yZXN1bHQ7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS50b2dnbGVNZXNzYWdlKHRydWUsIGVycm9yLCAnZXJyb3InLCAnRVJST1InKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5vblJlc3VsdENiKGVycm9yLCBmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENhbGxzIHRoZSBmaWx0ZXIgZnVuY3Rpb24gaWYgZGVmYXVsdCB2YWx1ZXMgYXJlIHByZXNlbnRcbiAgICBmaWx0ZXJPbkRlZmF1bHQoKSB7XG4gICAgICAgIC8qQ2hlY2sgaWYgZGVmYXVsdCB2YWx1ZSBpcyBwcmVzZW50IGZvciBhbnkgZmlsdGVyIGZpZWxkKi9cbiAgICAgICAgY29uc3QgZGVmYXVsdE9iaiA9IGZpbmQodGhpcy5mb3JtLmZvcm1GaWVsZHMsIG9iaiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNEZWZpbmVkKG9iai52YWx1ZSkgfHwgaXNEZWZpbmVkKG9iai5taW5WYWx1ZSkgfHwgaXNEZWZpbmVkKG9iai5tYXhWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvKklmIGRlZmF1bHQgdmFsdWUgZXhpc3RzIGFuZCBkYXRhIGlzIGxvYWRlZCwgYXBwbHkgdGhlIGZpbHRlciovXG4gICAgICAgIGlmIChkZWZhdWx0T2JqKSB7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXIodGhpcy5fb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3RlckZvcm1XaWRnZXQod2lkZ2V0KSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB3aWRnZXQua2V5IHx8IHdpZGdldC5uYW1lO1xuICAgICAgICB0aGlzLmZvcm0uZmlsdGVyV2lkZ2V0c1tuYW1lXSA9IHdpZGdldDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDYW5jZWwgZGVib3VuY2VkIGZ1bmN0aW9uXG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgKHRoaXMuX2ZpbHRlciBhcyBhbnkpLmNhbmNlbCkge1xuICAgICAgICAgICAgKHRoaXMuX2ZpbHRlciBhcyBhbnkpLmNhbmNlbCgpO1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgZm9ybSByZWZlcmVuY2VcbiAgICAgICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IG51bGw7XG4gICAgICAgIHRoaXMub3JkZXJCeSA9IG51bGw7XG4gICAgfVxufVxuIl19
|
|
@@ -7,7 +7,7 @@ import { ViewContainerRef, HostListener, HostBinding, ContentChildren, ViewChild
|
|
|
7
7
|
import * as i1 from '@angular/forms';
|
|
8
8
|
import { FormArray, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
9
9
|
import * as i1$1 from '@wm/core';
|
|
10
|
-
import { removeClass, isDefined, debounce as debounce$1, removeAttr, DataSource, $appDigest, isElementInViewport, scrollToElement, getFiles, DataType, getClonedObject, $invokeWatchers, getValidJSON, extendProto, $parseEvent, FormWidgetType, noop as noop$1, isMobile, isDateTimeType, addForIdAttributes, triggerFn, isEmptyObject, getValidDateObject } from '@wm/core';
|
|
10
|
+
import { removeClass, isDefined, debounce as debounce$1, removeAttr, DataSource, $appDigest, setListClass, isElementInViewport, scrollToElement, getFiles, DataType, getClonedObject, $invokeWatchers, getValidJSON, extendProto, $parseEvent, FormWidgetType, noop as noop$1, isMobile, isDateTimeType, addForIdAttributes, triggerFn, isEmptyObject, getValidDateObject } from '@wm/core';
|
|
11
11
|
import * as i5 from '@wm/components/base';
|
|
12
12
|
import { PROP_BOOLEAN, PROP_STRING, PROP_ANY, PROP_NUMBER, register, StylableComponent, styler, getFieldLayoutConfig, Live_Operations, performDataOperation, parseValueByType, FilterPipe, MessageComponent, WidgetRef, provideAsWidgetRef, BaseComponent, getWidgetPropsByType, getEvaluatedData, BaseFieldValidations, getDefaultViewModeWidget, Context, provideAs, fetchDistinctValues, applyFilterOnField, isDataSetWidget, getDistinctValuesForField, getRangeFieldValue, getRangeMatchMode, getEnableEmptyFilter, getEmptyMatchMode, fetchRelatedFieldData, ALLFIELDS } from '@wm/components/base';
|
|
13
13
|
import * as i4 from '@wm/components/prefab';
|
|
@@ -36,7 +36,8 @@ const propsMap = new Map([
|
|
|
36
36
|
['showindevice', { displayType: 'inline-block', value: 'all', ...PROP_STRING }],
|
|
37
37
|
['subheading', PROP_STRING],
|
|
38
38
|
['tabindex', { value: 0, ...PROP_NUMBER }],
|
|
39
|
-
['title', PROP_STRING]
|
|
39
|
+
['title', PROP_STRING],
|
|
40
|
+
['itemsperrow', PROP_STRING],
|
|
40
41
|
]);
|
|
41
42
|
const registerFormProps = () => {
|
|
42
43
|
const formMap = new Map(propsMap);
|
|
@@ -277,6 +278,9 @@ class FormComponent extends StylableComponent {
|
|
|
277
278
|
this.formArrayIndex = this.parentFormArray.length - 1;
|
|
278
279
|
}
|
|
279
280
|
this.addInnerNgFormToForm(this.bindingValue);
|
|
281
|
+
setTimeout(() => {
|
|
282
|
+
$(this.nativeElement).find('div[data-role="form-field"], div[data-role="filter-field"]').addClass(this.itemsPerRowClass);
|
|
283
|
+
});
|
|
280
284
|
}
|
|
281
285
|
findOperationType() { }
|
|
282
286
|
addInnerNgFormToForm(binding) {
|
|
@@ -563,10 +567,19 @@ class FormComponent extends StylableComponent {
|
|
|
563
567
|
});
|
|
564
568
|
}
|
|
565
569
|
break;
|
|
570
|
+
case 'itemsperrow':
|
|
571
|
+
setListClass(this);
|
|
572
|
+
break;
|
|
566
573
|
default:
|
|
567
574
|
super.onPropertyChange(key, nv, ov);
|
|
568
575
|
}
|
|
569
576
|
}
|
|
577
|
+
onStyleChange(key, nv, ov) {
|
|
578
|
+
if (key === 'height') {
|
|
579
|
+
this.$element.css('overflow', 'auto');
|
|
580
|
+
}
|
|
581
|
+
super.onStyleChange(key, nv, ov);
|
|
582
|
+
}
|
|
570
583
|
// Event callbacks on success/error
|
|
571
584
|
onResultCb(data, status, event) {
|
|
572
585
|
const params = { $event: event, $data: data, $operation: this.operationType };
|
|
@@ -771,11 +784,21 @@ class FormComponent extends StylableComponent {
|
|
|
771
784
|
if (field.widgettype === 'upload' || field.type === DataType.BLOB) {
|
|
772
785
|
this.resetFileUploadWidget(field, true);
|
|
773
786
|
}
|
|
787
|
+
else if (field.widgettype === 'slider') {
|
|
788
|
+
this.resetSliderWidget(field);
|
|
789
|
+
}
|
|
774
790
|
field.nativeElement.querySelector('input')?.removeAttribute('aria-invalid');
|
|
775
791
|
});
|
|
776
792
|
this.constructDataObject();
|
|
777
793
|
this.clearMessage();
|
|
778
794
|
}
|
|
795
|
+
resetSliderWidget(field) {
|
|
796
|
+
const $formEle = this.$element;
|
|
797
|
+
const slider = $formEle.find('[name="' + field.key + '_formWidget"]').closest('.slider-control');
|
|
798
|
+
if (slider.length) {
|
|
799
|
+
slider.css('--end', `50%`);
|
|
800
|
+
}
|
|
801
|
+
}
|
|
779
802
|
savePrevformFields() {
|
|
780
803
|
this.prevformFields = getClonedObject(this.formFields.map(field => {
|
|
781
804
|
return {
|
|
@@ -1673,6 +1696,9 @@ class FormFieldDirective extends StylableComponent {
|
|
|
1673
1696
|
// Method to set the properties on inner form widget
|
|
1674
1697
|
setFormWidget(key, val) {
|
|
1675
1698
|
if (this.formWidget && this.formWidget.widget) {
|
|
1699
|
+
if (key === 'inputtype' && this.widgettype === FormWidgetType.TEXT) {
|
|
1700
|
+
key = 'type';
|
|
1701
|
+
}
|
|
1676
1702
|
this.formWidget.widget[key] = val;
|
|
1677
1703
|
}
|
|
1678
1704
|
}
|
|
@@ -2662,6 +2688,7 @@ class LiveFilterDirective {
|
|
|
2662
2688
|
break;
|
|
2663
2689
|
case FormWidgetType.CHECKBOX:
|
|
2664
2690
|
case FormWidgetType.TOGGLE:
|
|
2691
|
+
case FormWidgetType.ICONBUTTONTOGGLE:
|
|
2665
2692
|
if (isDefined(filterField._value) && filterField._value !== '') {
|
|
2666
2693
|
fieldValue = filterField.type === DataType.BOOLEAN ? JSON.parse(filterField._value) : filterField._value;
|
|
2667
2694
|
}
|