@wavemaker/app-ng-runtime 11.4.1-next.141652 → 11.4.1-next.141654
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.
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +12 -23
- app-ng-runtime/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +2 -4
- app-ng-runtime/components/advanced/carousel/carousel.directive.d.ts +2 -4
- app-ng-runtime/components/advanced/carousel/esm2020/carousel-template/carousel-template.directive.mjs +6 -11
- app-ng-runtime/components/advanced/carousel/esm2020/carousel.directive.mjs +6 -11
- app-ng-runtime/components/advanced/carousel/fesm2015/index.mjs +9 -20
- app-ng-runtime/components/advanced/carousel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2020/index.mjs +9 -16
- app-ng-runtime/components/advanced/carousel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +21 -27
- app-ng-runtime/components/advanced/login/esm2020/login.component.mjs +8 -13
- app-ng-runtime/components/advanced/login/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/advanced/login/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/fesm2020/index.mjs +7 -11
- app-ng-runtime/components/advanced/login/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/login.component.d.ts +2 -4
- app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +8 -14
- app-ng-runtime/components/advanced/marquee/esm2020/marquee.directive.mjs +6 -11
- app-ng-runtime/components/advanced/marquee/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/advanced/marquee/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/marquee/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/advanced/marquee/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/marquee/marquee.directive.d.ts +2 -4
- app-ng-runtime/components/base/bundles/index.umd.js +31 -61
- app-ng-runtime/components/base/esm2020/widgets/common/base/base-container.component.mjs +4 -6
- app-ng-runtime/components/base/esm2020/widgets/common/base/base.component.mjs +5 -6
- app-ng-runtime/components/base/esm2020/widgets/common/base/dataset-aware-nav.component.mjs +3 -3
- app-ng-runtime/components/base/esm2020/widgets/common/container/container.directive.mjs +7 -11
- app-ng-runtime/components/base/esm2020/widgets/common/item-template/item-template.directive.mjs +7 -10
- app-ng-runtime/components/base/esm2020/widgets/common/lazy-load/lazy-load.directive.mjs +6 -10
- app-ng-runtime/components/base/esm2020/widgets/common/message/message.component.mjs +7 -11
- app-ng-runtime/components/base/esm2020/widgets/common/partial/partial.directive.mjs +7 -10
- app-ng-runtime/components/base/esm2020/widgets/common/repeat-template/repeat-template.directive.mjs +6 -11
- app-ng-runtime/components/base/fesm2015/index.mjs +32 -62
- app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/base/fesm2020/index.mjs +32 -50
- app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/base/widgets/common/base/base-container.component.d.ts +1 -2
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +2 -3
- app-ng-runtime/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -2
- app-ng-runtime/components/base/widgets/common/container/container.directive.d.ts +2 -4
- app-ng-runtime/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -4
- app-ng-runtime/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +2 -4
- app-ng-runtime/components/base/widgets/common/message/message.component.d.ts +2 -4
- app-ng-runtime/components/base/widgets/common/partial/partial.directive.d.ts +3 -4
- app-ng-runtime/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +3 -4
- app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/bundles/index.umd.js +247 -290
- app-ng-runtime/components/basic/default/esm2020/anchor/anchor.component.mjs +7 -10
- app-ng-runtime/components/basic/default/esm2020/audio/audio.component.mjs +8 -13
- app-ng-runtime/components/basic/default/esm2020/html/html.directive.mjs +7 -11
- app-ng-runtime/components/basic/default/esm2020/icon/icon.component.mjs +9 -14
- app-ng-runtime/components/basic/default/esm2020/iframe/iframe.component.mjs +9 -13
- app-ng-runtime/components/basic/default/esm2020/label/label.directive.mjs +7 -11
- app-ng-runtime/components/basic/default/esm2020/picture/picture.directive.mjs +7 -11
- app-ng-runtime/components/basic/default/esm2020/spinner/spinner.component.mjs +9 -13
- app-ng-runtime/components/basic/default/esm2020/video/video.component.mjs +9 -13
- app-ng-runtime/components/basic/default/fesm2015/index.mjs +46 -89
- app-ng-runtime/components/basic/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/fesm2020/index.mjs +46 -73
- app-ng-runtime/components/basic/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/html/html.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/icon/icon.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/label/label.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -4
- app-ng-runtime/components/basic/default/spinner/spinner.component.d.ts +2 -4
- app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -4
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +23 -32
- app-ng-runtime/components/basic/progress/esm2020/progress-bar/progress-bar.component.mjs +8 -12
- app-ng-runtime/components/basic/progress/esm2020/progress-circle/progress-circle.component.mjs +8 -13
- app-ng-runtime/components/basic/progress/fesm2015/index.mjs +12 -21
- app-ng-runtime/components/basic/progress/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/fesm2020/index.mjs +12 -19
- app-ng-runtime/components/basic/progress/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -4
- app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -4
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +14 -20
- app-ng-runtime/components/basic/rich-text-editor/esm2020/rich-text-editor.component.mjs +9 -13
- app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/fesm2020/index.mjs +7 -11
- app-ng-runtime/components/basic/rich-text-editor/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -4
- app-ng-runtime/components/basic/search/bundles/index.umd.js +3 -6
- app-ng-runtime/components/basic/search/esm2020/search.component.mjs +6 -9
- app-ng-runtime/components/basic/search/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/basic/search/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/basic/search/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/search.component.d.ts +3 -4
- app-ng-runtime/components/chart/bundles/index.umd.js +4 -9
- app-ng-runtime/components/chart/chart.component.d.ts +3 -4
- app-ng-runtime/components/chart/esm2020/chart.component.mjs +7 -10
- app-ng-runtime/components/chart/fesm2015/index.mjs +5 -10
- app-ng-runtime/components/chart/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/chart/fesm2020/index.mjs +5 -8
- app-ng-runtime/components/chart/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -4
- app-ng-runtime/components/containers/accordion/accordion.directive.d.ts +3 -4
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +56 -66
- app-ng-runtime/components/containers/accordion/esm2020/accordion-pane/accordion-pane.component.mjs +10 -14
- app-ng-runtime/components/containers/accordion/esm2020/accordion.directive.mjs +7 -10
- app-ng-runtime/components/containers/accordion/fesm2015/index.mjs +12 -22
- app-ng-runtime/components/containers/accordion/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/fesm2020/index.mjs +12 -18
- app-ng-runtime/components/containers/accordion/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +12 -25
- app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid-column/layout-grid-column.directive.mjs +7 -10
- app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid-row/layout-grid-row.directive.mjs +6 -11
- app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid.directive.mjs +6 -11
- app-ng-runtime/components/containers/layout-grid/fesm2015/index.mjs +13 -26
- app-ng-runtime/components/containers/layout-grid/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/fesm2020/index.mjs +13 -22
- app-ng-runtime/components/containers/layout-grid/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +3 -4
- app-ng-runtime/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -4
- app-ng-runtime/components/containers/layout-grid/layout-grid.directive.d.ts +2 -4
- app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +12 -23
- app-ng-runtime/components/containers/linear-layout/esm2020/linear-layout-item/linear-layout-item.directive.mjs +6 -11
- app-ng-runtime/components/containers/linear-layout/esm2020/linear-layout.directive.mjs +6 -11
- app-ng-runtime/components/containers/linear-layout/fesm2015/index.mjs +9 -20
- app-ng-runtime/components/containers/linear-layout/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/linear-layout/fesm2020/index.mjs +9 -16
- app-ng-runtime/components/containers/linear-layout/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -4
- app-ng-runtime/components/containers/linear-layout/linear-layout.directive.d.ts +2 -4
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +65 -71
- app-ng-runtime/components/containers/panel/esm2020/panel.component.mjs +12 -16
- app-ng-runtime/components/containers/panel/fesm2015/index.mjs +10 -16
- app-ng-runtime/components/containers/panel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/fesm2020/index.mjs +10 -14
- app-ng-runtime/components/containers/panel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +2 -4
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +57 -63
- app-ng-runtime/components/containers/tabs/esm2020/tab-pane/tab-pane.component.mjs +8 -12
- app-ng-runtime/components/containers/tabs/esm2020/tabs.component.mjs +7 -10
- app-ng-runtime/components/containers/tabs/fesm2015/index.mjs +12 -18
- app-ng-runtime/components/containers/tabs/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/fesm2020/index.mjs +12 -18
- app-ng-runtime/components/containers/tabs/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -4
- app-ng-runtime/components/containers/tabs/tabs.component.d.ts +3 -4
- app-ng-runtime/components/containers/tile/bundles/index.umd.js +8 -14
- app-ng-runtime/components/containers/tile/esm2020/tile.directive.mjs +6 -11
- app-ng-runtime/components/containers/tile/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/containers/tile/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tile/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/containers/tile/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tile/tile.directive.d.ts +2 -4
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +48 -57
- app-ng-runtime/components/containers/wizard/esm2020/wizard-step/wizard-step.directive.mjs +5 -10
- app-ng-runtime/components/containers/wizard/esm2020/wizard.component.mjs +10 -14
- app-ng-runtime/components/containers/wizard/fesm2015/index.mjs +11 -20
- app-ng-runtime/components/containers/wizard/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/fesm2020/index.mjs +11 -18
- app-ng-runtime/components/containers/wizard/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -4
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -4
- app-ng-runtime/components/data/card/bundles/index.umd.js +83 -106
- app-ng-runtime/components/data/card/card-actions/card-actions.directive.d.ts +2 -4
- app-ng-runtime/components/data/card/card-content/card-content.component.d.ts +2 -4
- app-ng-runtime/components/data/card/card-footer/card-footer.directive.d.ts +2 -4
- app-ng-runtime/components/data/card/card.component.d.ts +2 -4
- app-ng-runtime/components/data/card/esm2020/card-actions/card-actions.directive.mjs +6 -11
- app-ng-runtime/components/data/card/esm2020/card-content/card-content.component.mjs +6 -11
- app-ng-runtime/components/data/card/esm2020/card-footer/card-footer.directive.mjs +6 -11
- app-ng-runtime/components/data/card/esm2020/card.component.mjs +12 -18
- app-ng-runtime/components/data/card/fesm2015/index.mjs +23 -46
- app-ng-runtime/components/data/card/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/card/fesm2020/index.mjs +23 -38
- app-ng-runtime/components/data/card/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +128 -137
- app-ng-runtime/components/data/form/esm2020/form-action/form-action.directive.mjs +4 -9
- app-ng-runtime/components/data/form/esm2020/form-field/form-field.directive.mjs +5 -8
- app-ng-runtime/components/data/form/esm2020/form.component.mjs +5 -8
- app-ng-runtime/components/data/form/fesm2015/index.mjs +20 -29
- app-ng-runtime/components/data/form/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/fesm2020/index.mjs +20 -29
- app-ng-runtime/components/data/form/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form-action/form-action.directive.d.ts +2 -4
- app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +3 -4
- app-ng-runtime/components/data/form/form.component.d.ts +3 -4
- app-ng-runtime/components/data/list/bundles/index.umd.js +4 -7
- app-ng-runtime/components/data/list/esm2020/list.component.mjs +7 -10
- app-ng-runtime/components/data/list/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/data/list/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/data/list/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +3 -4
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +3 -6
- app-ng-runtime/components/data/live-table/esm2020/live-table.component.mjs +6 -9
- app-ng-runtime/components/data/live-table/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/data/live-table/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/data/live-table/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/live-table.component.d.ts +3 -4
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +30 -34
- app-ng-runtime/components/data/pagination/esm2020/pagination.component.mjs +10 -14
- app-ng-runtime/components/data/pagination/fesm2015/index.mjs +8 -12
- app-ng-runtime/components/data/pagination/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/fesm2020/index.mjs +8 -12
- app-ng-runtime/components/data/pagination/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/pagination.component.d.ts +2 -4
- app-ng-runtime/components/data/table/bundles/index.umd.js +19 -37
- app-ng-runtime/components/data/table/esm2020/table-action/table-action.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table-column/table-column.directive.mjs +5 -8
- app-ng-runtime/components/data/table/esm2020/table-column-group/table-column-group.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table-row/table-row.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table-row-action/table-row-action.directive.mjs +4 -9
- app-ng-runtime/components/data/table/esm2020/table.component.mjs +6 -9
- app-ng-runtime/components/data/table/fesm2015/index.mjs +19 -37
- app-ng-runtime/components/data/table/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/fesm2020/index.mjs +19 -37
- app-ng-runtime/components/data/table/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-action/table-action.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +3 -4
- app-ng-runtime/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table-row/table-row.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -4
- app-ng-runtime/components/data/table/table.component.d.ts +3 -4
- app-ng-runtime/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +40 -46
- app-ng-runtime/components/dialogs/alert-dialog/esm2020/alert-dialog.component.mjs +9 -15
- app-ng-runtime/components/dialogs/alert-dialog/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/dialogs/alert-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/alert-dialog/fesm2020/index.mjs +8 -14
- app-ng-runtime/components/dialogs/alert-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +16 -22
- app-ng-runtime/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/confirm-dialog/esm2020/confirm-dialog.component.mjs +8 -14
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2020/index.mjs +7 -13
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +25 -31
- app-ng-runtime/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -4
- app-ng-runtime/components/dialogs/default/esm2020/base-dialog.mjs +7 -8
- app-ng-runtime/components/dialogs/default/esm2020/dialog-footer/dialog-footer.directive.mjs +6 -11
- app-ng-runtime/components/dialogs/default/fesm2015/index.mjs +11 -17
- app-ng-runtime/components/dialogs/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/fesm2020/index.mjs +11 -15
- app-ng-runtime/components/dialogs/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +17 -23
- app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/design-dialog/esm2020/dialog.component.mjs +8 -14
- app-ng-runtime/components/dialogs/design-dialog/fesm2015/index.mjs +7 -13
- app-ng-runtime/components/dialogs/design-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/fesm2020/index.mjs +7 -13
- app-ng-runtime/components/dialogs/design-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +24 -30
- app-ng-runtime/components/dialogs/iframe-dialog/esm2020/iframe-dialog.component.mjs +10 -16
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2015/index.mjs +9 -15
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2020/index.mjs +9 -15
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -4
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +3 -8
- app-ng-runtime/components/dialogs/partial-dialog/esm2020/partial-dialog.component.mjs +5 -10
- app-ng-runtime/components/dialogs/partial-dialog/fesm2015/index.mjs +4 -9
- app-ng-runtime/components/dialogs/partial-dialog/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/fesm2020/index.mjs +4 -9
- app-ng-runtime/components/dialogs/partial-dialog/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/partial-dialog.component.d.ts +3 -4
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +5 -10
- app-ng-runtime/components/input/calendar/calendar.component.d.ts +3 -4
- app-ng-runtime/components/input/calendar/esm2020/calendar.component.mjs +8 -11
- app-ng-runtime/components/input/calendar/fesm2015/index.mjs +6 -11
- app-ng-runtime/components/input/calendar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/fesm2020/index.mjs +6 -9
- app-ng-runtime/components/input/calendar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +87 -93
- app-ng-runtime/components/input/chips/chips.component.d.ts +2 -4
- app-ng-runtime/components/input/chips/esm2020/chips.component.mjs +9 -15
- app-ng-runtime/components/input/chips/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/input/chips/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/fesm2020/index.mjs +8 -14
- app-ng-runtime/components/input/chips/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +22 -28
- app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +2 -4
- app-ng-runtime/components/input/color-picker/esm2020/color-picker.component.mjs +10 -14
- app-ng-runtime/components/input/color-picker/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/input/color-picker/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/fesm2020/index.mjs +8 -12
- app-ng-runtime/components/input/color-picker/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -9
- app-ng-runtime/components/input/currency/currency.component.d.ts +3 -4
- app-ng-runtime/components/input/currency/esm2020/currency.component.mjs +7 -10
- app-ng-runtime/components/input/currency/fesm2015/index.mjs +5 -10
- app-ng-runtime/components/input/currency/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/fesm2020/index.mjs +5 -8
- app-ng-runtime/components/input/currency/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/base-form.component.d.ts +1 -2
- app-ng-runtime/components/input/default/bundles/index.umd.js +575 -648
- app-ng-runtime/components/input/default/button/button.component.d.ts +2 -4
- app-ng-runtime/components/input/default/button-group/button-group.directive.d.ts +2 -4
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +2 -4
- app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +2 -4
- app-ng-runtime/components/input/default/composite/composite.directive.d.ts +2 -4
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -3
- app-ng-runtime/components/input/default/esm2020/base-form.component.mjs +6 -7
- app-ng-runtime/components/input/default/esm2020/button/button.component.mjs +9 -14
- app-ng-runtime/components/input/default/esm2020/button-group/button-group.directive.mjs +6 -11
- app-ng-runtime/components/input/default/esm2020/checkbox/checkbox.component.mjs +9 -13
- app-ng-runtime/components/input/default/esm2020/checkboxset/checkboxset.component.mjs +10 -14
- app-ng-runtime/components/input/default/esm2020/composite/composite.directive.mjs +7 -11
- app-ng-runtime/components/input/default/esm2020/dataset-aware-form.component.mjs +6 -7
- app-ng-runtime/components/input/default/esm2020/number/number.component.mjs +7 -10
- app-ng-runtime/components/input/default/esm2020/radioset/radioset.component.mjs +10 -14
- app-ng-runtime/components/input/default/esm2020/select/select.component.mjs +11 -15
- app-ng-runtime/components/input/default/esm2020/switch/switch.component.mjs +10 -14
- app-ng-runtime/components/input/default/esm2020/text/base/base-input.mjs +6 -7
- app-ng-runtime/components/input/default/esm2020/text/calendar/input-calendar.component.mjs +8 -13
- app-ng-runtime/components/input/default/esm2020/text/color/input-color.component.mjs +8 -13
- app-ng-runtime/components/input/default/esm2020/text/email/input-email.component.mjs +8 -13
- app-ng-runtime/components/input/default/esm2020/text/locale/number-locale.mjs +3 -3
- app-ng-runtime/components/input/default/esm2020/text/number/input-number.component.mjs +9 -14
- app-ng-runtime/components/input/default/esm2020/text/text/input-text.component.mjs +9 -14
- app-ng-runtime/components/input/default/esm2020/textarea/textarea.component.mjs +9 -14
- app-ng-runtime/components/input/default/fesm2015/index.mjs +94 -167
- app-ng-runtime/components/input/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/fesm2020/index.mjs +94 -139
- app-ng-runtime/components/input/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/number/number.component.d.ts +3 -4
- app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +2 -4
- app-ng-runtime/components/input/default/select/select.component.d.ts +2 -4
- app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/base/base-input.d.ts +1 -2
- app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +2 -2
- app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +2 -4
- app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +2 -4
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -4
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -2
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +12 -21
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +3 -4
- app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +3 -4
- app-ng-runtime/components/input/epoch/esm2020/base-date-time.component.mjs +5 -6
- app-ng-runtime/components/input/epoch/esm2020/date/date.component.mjs +6 -9
- app-ng-runtime/components/input/epoch/esm2020/date-time/date-time.component.mjs +6 -9
- app-ng-runtime/components/input/epoch/esm2020/time/time.component.mjs +6 -9
- app-ng-runtime/components/input/epoch/fesm2015/index.mjs +13 -22
- app-ng-runtime/components/input/epoch/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/fesm2020/index.mjs +13 -22
- app-ng-runtime/components/input/epoch/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/time/time.component.d.ts +3 -4
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +3 -6
- app-ng-runtime/components/input/file-upload/esm2020/file-upload.component.mjs +6 -9
- app-ng-runtime/components/input/file-upload/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/input/file-upload/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/input/file-upload/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +3 -4
- app-ng-runtime/components/input/rating/bundles/index.umd.js +45 -51
- app-ng-runtime/components/input/rating/esm2020/rating.component.mjs +11 -15
- app-ng-runtime/components/input/rating/fesm2015/index.mjs +9 -15
- app-ng-runtime/components/input/rating/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/fesm2020/index.mjs +9 -13
- app-ng-runtime/components/input/rating/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/rating.component.d.ts +2 -4
- app-ng-runtime/components/input/slider/bundles/index.umd.js +37 -43
- app-ng-runtime/components/input/slider/esm2020/slider.component.mjs +10 -15
- app-ng-runtime/components/input/slider/fesm2015/index.mjs +9 -15
- app-ng-runtime/components/input/slider/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/fesm2020/index.mjs +9 -13
- app-ng-runtime/components/input/slider/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/slider.component.d.ts +2 -4
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +13 -25
- app-ng-runtime/components/navigation/menu/esm2020/menu-adapator.component.mjs +4 -6
- app-ng-runtime/components/navigation/menu/esm2020/menu.component.mjs +4 -7
- app-ng-runtime/components/navigation/menu/esm2020/nav/nav-item/nav-item.directive.mjs +7 -11
- app-ng-runtime/components/navigation/menu/esm2020/nav/nav.component.mjs +5 -9
- app-ng-runtime/components/navigation/menu/fesm2015/index.mjs +14 -26
- app-ng-runtime/components/navigation/menu/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/fesm2020/index.mjs +14 -24
- app-ng-runtime/components/navigation/menu/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-adapator.component.d.ts +1 -2
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +2 -3
- app-ng-runtime/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -4
- app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +3 -3
- app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +28 -34
- app-ng-runtime/components/navigation/navbar/esm2020/navbar.component.mjs +9 -14
- app-ng-runtime/components/navigation/navbar/fesm2015/index.mjs +8 -14
- app-ng-runtime/components/navigation/navbar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/navbar/fesm2020/index.mjs +8 -12
- app-ng-runtime/components/navigation/navbar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/navbar/navbar.component.d.ts +2 -4
- app-ng-runtime/components/page/default/bundles/index.umd.js +32 -64
- app-ng-runtime/components/page/default/content/content.component.d.ts +2 -4
- app-ng-runtime/components/page/default/esm2020/content/content.component.mjs +6 -11
- app-ng-runtime/components/page/default/esm2020/layout.directive.mjs +7 -11
- app-ng-runtime/components/page/default/esm2020/page-content/page-content.component.mjs +7 -10
- app-ng-runtime/components/page/default/esm2020/page.directive.mjs +7 -12
- app-ng-runtime/components/page/default/esm2020/router-outlet.directive.mjs +7 -11
- app-ng-runtime/components/page/default/esm2020/spa-page.directive.mjs +7 -10
- app-ng-runtime/components/page/default/fesm2015/index.mjs +26 -58
- app-ng-runtime/components/page/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/default/fesm2020/index.mjs +26 -46
- app-ng-runtime/components/page/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/default/layout.directive.d.ts +2 -4
- app-ng-runtime/components/page/default/page-content/page-content.component.d.ts +3 -4
- app-ng-runtime/components/page/default/page.directive.d.ts +3 -4
- app-ng-runtime/components/page/default/router-outlet.directive.d.ts +2 -4
- app-ng-runtime/components/page/default/spa-page.directive.d.ts +3 -4
- app-ng-runtime/components/page/footer/bundles/index.umd.js +8 -14
- app-ng-runtime/components/page/footer/esm2020/footer.directive.mjs +6 -11
- app-ng-runtime/components/page/footer/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/footer/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/footer/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/footer.directive.d.ts +2 -4
- app-ng-runtime/components/page/header/bundles/index.umd.js +8 -14
- app-ng-runtime/components/page/header/esm2020/header.component.mjs +6 -11
- app-ng-runtime/components/page/header/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/header/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/header/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/header.component.d.ts +2 -4
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +4 -7
- app-ng-runtime/components/page/left-panel/esm2020/left-panel.directive.mjs +6 -9
- app-ng-runtime/components/page/left-panel/fesm2015/index.mjs +4 -7
- app-ng-runtime/components/page/left-panel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/fesm2020/index.mjs +4 -7
- app-ng-runtime/components/page/left-panel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +3 -4
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +6 -12
- app-ng-runtime/components/page/right-panel/esm2020/right-panel.directive.mjs +7 -11
- app-ng-runtime/components/page/right-panel/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/right-panel/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/right-panel/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -4
- app-ng-runtime/components/page/top-nav/bundles/index.umd.js +8 -14
- app-ng-runtime/components/page/top-nav/esm2020/top-nav.directive.mjs +6 -11
- app-ng-runtime/components/page/top-nav/fesm2015/index.mjs +5 -11
- app-ng-runtime/components/page/top-nav/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/fesm2020/index.mjs +5 -9
- app-ng-runtime/components/page/top-nav/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/top-nav.directive.d.ts +2 -4
- app-ng-runtime/components/prefab/bundles/index.umd.js +7 -15
- app-ng-runtime/components/prefab/esm2020/prefab-container/prefab-container.directive.mjs +7 -10
- app-ng-runtime/components/prefab/esm2020/prefab.directive.mjs +6 -10
- app-ng-runtime/components/prefab/fesm2015/index.mjs +8 -16
- app-ng-runtime/components/prefab/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/fesm2020/index.mjs +8 -14
- app-ng-runtime/components/prefab/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/prefab-container/prefab-container.directive.d.ts +3 -4
- app-ng-runtime/components/prefab/prefab.directive.d.ts +2 -4
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +32 -37
- app-ng-runtime/mobile/components/basic/default/esm2020/network-info-toaster/network-info-toaster.component.mjs +7 -10
- app-ng-runtime/mobile/components/basic/default/fesm2015/index.mjs +10 -15
- app-ng-runtime/mobile/components/basic/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/fesm2020/index.mjs +10 -13
- app-ng-runtime/mobile/components/basic/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +3 -4
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +18 -29
- app-ng-runtime/mobile/components/containers/segmented-control/esm2020/segment-content/segment-content.component.mjs +8 -13
- app-ng-runtime/mobile/components/containers/segmented-control/esm2020/segmented-control.component.mjs +9 -13
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2015/index.mjs +12 -23
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2020/index.mjs +12 -19
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -4
- app-ng-runtime/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -4
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +30 -36
- app-ng-runtime/mobile/components/data/media-list/esm2020/media-list.component.mjs +14 -18
- app-ng-runtime/mobile/components/data/media-list/fesm2015/index.mjs +11 -17
- app-ng-runtime/mobile/components/data/media-list/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/fesm2020/index.mjs +11 -15
- app-ng-runtime/mobile/components/data/media-list/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/media-list.component.d.ts +2 -4
- app-ng-runtime/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -4
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +28 -34
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2020/barcode-scanner.component.mjs +10 -14
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2015/index.mjs +8 -14
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2020/index.mjs +8 -12
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +12 -18
- app-ng-runtime/mobile/components/device/camera/camera.component.d.ts +2 -4
- app-ng-runtime/mobile/components/device/camera/esm2020/camera.component.mjs +9 -13
- app-ng-runtime/mobile/components/device/camera/fesm2015/index.mjs +7 -13
- app-ng-runtime/mobile/components/device/camera/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/fesm2020/index.mjs +7 -11
- app-ng-runtime/mobile/components/device/camera/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +3 -6
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2020/mobile-navbar.component.mjs +6 -9
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2015/index.mjs +4 -7
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2020/index.mjs +4 -7
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +3 -4
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +32 -36
- app-ng-runtime/mobile/components/page/tab-bar/esm2020/tabbar.component.mjs +8 -13
- app-ng-runtime/mobile/components/page/tab-bar/fesm2015/index.mjs +7 -11
- app-ng-runtime/mobile/components/page/tab-bar/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/fesm2020/index.mjs +7 -11
- app-ng-runtime/mobile/components/page/tab-bar/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -4
- app-ng-runtime/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Component, ElementRef, Injector, ViewChild, ViewEncapsulation
|
|
2
|
-
import { getClonedObject, getSessionStorageItem, AbstractI18nService, isMobile
|
|
1
|
+
import { Component, ElementRef, Injector, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { getClonedObject, getSessionStorageItem, AbstractI18nService, isMobile } from '@wm/core';
|
|
3
3
|
import { APPLY_STYLES_TYPE, createArrayFrom, getEvaluatedData, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';
|
|
4
4
|
import { registerProps } from './calendar.props';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -63,7 +63,7 @@ export class CalendarComponent extends StylableComponent {
|
|
|
63
63
|
// this function selects the default date given for the calendar
|
|
64
64
|
selectDate() {
|
|
65
65
|
let start, end;
|
|
66
|
-
// checks if datavalue is an object and not a Date object
|
|
66
|
+
// checks if datavalue is an object and not a Date object
|
|
67
67
|
if (_.isObject(this.datavalue) && !_.isDate(this.datavalue)) {
|
|
68
68
|
start = moment(this.datavalue.start);
|
|
69
69
|
end = moment(this.datavalue.end);
|
|
@@ -261,9 +261,8 @@ export class CalendarComponent extends StylableComponent {
|
|
|
261
261
|
_.extend(this.calendarOptions.calendar.headerToolbar, { 'start': left, 'end': right });
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
|
-
constructor(inj, i18nService
|
|
265
|
-
super(inj, WIDGET_CONFIG
|
|
266
|
-
this._viewParent = _viewParent;
|
|
264
|
+
constructor(inj, i18nService) {
|
|
265
|
+
super(inj, WIDGET_CONFIG);
|
|
267
266
|
this.controls = 'navigation, today, year, month, week, day';
|
|
268
267
|
this.eventSources = [];
|
|
269
268
|
this.dataSetEvents = {
|
|
@@ -581,7 +580,7 @@ export class CalendarComponent extends StylableComponent {
|
|
|
581
580
|
}
|
|
582
581
|
}
|
|
583
582
|
CalendarComponent.initializeProps = registerProps();
|
|
584
|
-
CalendarComponent.ɵfac = function CalendarComponent_Factory(t) { return new (t || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService)
|
|
583
|
+
CalendarComponent.ɵfac = function CalendarComponent_Factory(t) { return new (t || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService)); };
|
|
585
584
|
CalendarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarComponent, selectors: [["", "wmCalendar", ""]], viewQuery: function CalendarComponent_Query(rf, ctx) { if (rf & 1) {
|
|
586
585
|
i0.ɵɵviewQuery(_c0, 5);
|
|
587
586
|
i0.ɵɵviewQuery(_c1, 5);
|
|
@@ -601,13 +600,11 @@ CalendarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarC
|
|
|
601
600
|
args: [{ selector: '[wmCalendar]', providers: [
|
|
602
601
|
provideAsWidgetRef(CalendarComponent)
|
|
603
602
|
], encapsulation: ViewEncapsulation.None, template: "<div #calendar [attr.aria-label]=\"view || 'month'\"></div>\n", styles: [".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc *:before,.fc *:after{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc th,.fc td{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem #2c3e5040}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color, #1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color, #1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color, #1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color, #151e27)}.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.fc .fc-button-group>.fc-button:hover{z-index:1}.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button.fc-button-active{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;inset:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section{height:1px}.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-header>*,.fc .fc-scrollgrid-section-footer>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color, #fff);position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;inset:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-non-business,.fc .fc-highlight{position:absolute;inset:0}.fc .fc-non-business{background:rgba(215,215,215,.3);background:var(--fc-non-business-color, rgba(215, 215, 215, .3))}.fc .fc-bg-event{background:rgb(143,223,130);background:var(--fc-bg-event-color, rgb(143, 223, 130));opacity:.3;opacity:var(--fc-bg-event-opacity, .3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size, .85em);font-style:italic}.fc .fc-highlight{background:rgba(188,232,241,.3);background:var(--fc-highlight-color, rgba(188, 232, 241, .3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event[href],.fc-event.fc-event-draggable{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px #0000004d}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event:hover .fc-event-resizer,.fc-event-selected .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width, 1px);width:8px;width:var(--fc-event-resizer-dot-total-width, 8px);height:8px;height:var(--fc-event-resizer-dot-total-width, 8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;inset:-20px}.fc-event-selected{box-shadow:0 2px 5px #0003}.fc-event-selected:before{content:\"\";position:absolute;z-index:3;inset:0}.fc-event-selected:after{content:\"\";background:rgba(0,0,0,.25);background:var(--fc-event-selected-overlay-color, rgba(0, 0, 0, .25));position:absolute;z-index:1;inset:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness, 8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}:root{--fc-daygrid-event-dot-width: 8px}.fc .fc-popover{position:fixed;top:0;box-shadow:0 2px 6px #00000026}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd);background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-theme-standard .fc-popover-header{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-daygrid-day-frame:before,.fc-daygrid-day-events:before,.fc-daygrid-event-harness:before{content:\"\";clear:both;display:table}.fc-daygrid-day-frame:after,.fc-daygrid-day-events:after,.fc-daygrid-event-harness:after{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:2px 3px 0}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));color:gray;color:var(--fc-neutral-text-color, #808080)}.fc .fc-more-popover{z-index:8}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event:hover,.fc-daygrid-dot-event.fc-event-mirror{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width, 8px) / 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness, 8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{position:relative;z-index:1;min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table{position:relative;z-index:1}.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:\"\\a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;inset:0}.fc .fc-timegrid-col.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols{position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc-media-screen .fc-timegrid-event-harness{position:absolute}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color, #fff)}.fc-timegrid-event{font-size:.85em;font-size:var(--fc-small-font-size, .85em);border-radius:3px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size, .85em);margin-bottom:1px}.fc-timegrid-event-condensed .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-condensed .fc-event-time:after{content:\"\\a0-\\a0\"}.fc-timegrid-event-condensed .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-media-screen .fc-timegrid-event{position:absolute;inset:0 0 1px}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:root{--fc-list-event-dot-width: 10px;--fc-list-event-hover-bg-color: #f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-list-empty{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-table td,.fc .fc-list-day-cushion{padding:8px 14px}.fc .fc-list-day-cushion:after{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color, #f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width, 10px) / 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-theme-bootstrap a:not([href]){color:inherit}\n"] }]
|
|
604
|
-
}], function () { return [{ type: i0.Injector }, { type: i1.AbstractI18nService }, {
|
|
605
|
-
type: Optional
|
|
606
|
-
}] }]; }, { _calendar: [{
|
|
603
|
+
}], function () { return [{ type: i0.Injector }, { type: i1.AbstractI18nService }]; }, { _calendar: [{
|
|
607
604
|
type: ViewChild,
|
|
608
605
|
args: ['calendar']
|
|
609
606
|
}], _datepicker: [{
|
|
610
607
|
type: ViewChild,
|
|
611
608
|
args: ['datepicker']
|
|
612
609
|
}] }); })();
|
|
613
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFFUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsUUFBUSxFQUNSLDJCQUEyQixFQUM5QixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUF1QyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvSyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQUlqRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7QUFDbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQy9NLE1BQU0sb0JBQW9CLEdBQUc7SUFDekIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixNQUFNLEVBQUUsT0FBTztJQUNmLEdBQUcsRUFBRSxxQ0FBcUM7Q0FDN0MsQ0FBQztBQUNGLE1BQU0s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QyxTQUFTLEVBQUUsQ0FBQztZQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFFLE1BQU0sRUFBRSxVQUFVLEtBQUs7Z0JBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUQsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUs7Z0JBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQXJsQk0saUNBQWUsR0FBRyxhQUFhLEVBQUUsQ0FBQztrRkFEaEMsaUJBQWlCO29FQUFqQixpQkFBaUI7Ozs7Ozs7MENBTGY7WUFDUCxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQztTQUN4QztRQzlGTCwrQkFBeUQ7O1FBQTFDLGlEQUFtQzs7dUZEaUdyQyxpQkFBaUI7Y0FUN0IsU0FBUzsyQkFDSSxjQUFjLGFBR2I7b0JBQ1Asa0JBQWtCLG1CQUFtQjtpQkFDeEMsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTs7c0JBOFN5QixRQUFRO3dCQXpTL0MsU0FBUztrQkFBL0IsU0FBUzttQkFBQyxVQUFVO1lBQ0ksV0FBVztrQkFBbkMsU0FBUzttQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgZ2V0Q2xvbmVkT2JqZWN0LFxuICAgIGdldFNlc3Npb25TdG9yYWdlSXRlbSxcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIGlzTW9iaWxlQXBwLFxuICAgIGlzTW9iaWxlLFxuICAgIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dFxufSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IEFQUExZX1NUWUxFU19UWVBFLCBjcmVhdGVBcnJheUZyb20sIGdldEV2YWx1YXRlZERhdGEsIElXaWRnZXRDb25maWcsIElSZWRyYXdhYmxlQ29tcG9uZW50LCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vY2FsZW5kYXIucHJvcHMnO1xuXG5kZWNsYXJlIGNvbnN0IF8sICQsIG1vbWVudDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNhbGVuZGFyJztcbmNvbnN0IGRhdGVGb3JtYXRzID0gWyd5eXl5LU1NLWRkJywgJ3l5eXktTS1kZCcsICdNLWRkLXl5eXknLCAnTU0tZGQteXknLCAneXl5eSwgZGQgTU1NTScsICd5eXl5LCBNTU0gZGQnLCAnTU0vZGQveXl5eScsICdNL2QveXl5eScsICdFRUUsIGRkIE1NTSB5eXl5JywgJ0VFRSBNTU0gZGQgeXl5eScsICdFRUVFLCBNTU1NIGRkLCB5eXl5JywgJ3RpbWVzdGFtcCddO1xuY29uc3QgZGVmYXVsdEhlYWRlck9wdGlvbnMgPSB7XG4gICAgc3RhcnQ6ICdwcmV2IG5leHQgdG9kYXknLFxuICAgIGNlbnRlcjogJ3RpdGxlJyxcbiAgICBlbmQ6ICdkYXlHcmlkTW9udGggZGF5R3JpZFdlZWsgZGF5R3JpZERheSdcbn07XG5jb25zdCBWSUVXX1RZUEVTID0ge1xuICAgIEJBU0lDOiAnYmFzaWMnLFxuICAgIEFHRU5EQTogJ2FnZW5kYScsXG4gICAgTElTVDogJ2xpc3QnXG59O1xuY29uc3QgQlVUVE9OX1RFWFQgPSB7XG4gICAgWUVBUjogJ1llYXInLFxuICAgIE1PTlRIOiAnTW9udGgnLFxuICAgIFdFRUs6ICdXZWVrJyxcbiAgICBEQVk6ICdEYXknLFxuICAgIFRPREFZOiAnVG9kYXknXG59O1xuY29uc3QgU0VMRUNUSU9OX01PREVTID0ge1xuICAgIE5PTkU6ICdub25lJyxcbiAgICBTSU5HTEU6ICdzaW5nbGUnLFxuICAgIE1VTFRJUExFOiAnbXVsdGlwbGUnXG59O1xuY29uc3QgTkVYVF9EQVlfVEhSRVNIT0xEID0ge1xuICAgIFNUQVJUOiAnMDA6MDAnLFxuICAgIEVORDogJzI0OjAwJ1xufTtcbmNvbnN0IGdldEV2ZW50TW9tZW50VmFsdWUgPSAodmFsdWUsIGtleSkgPT4ge1xuICAgIGxldCBpc0RhdGUgPSBmYWxzZTtcblxuICAgIGRhdGVGb3JtYXRzLmZvckVhY2goKGZvcm1hdCkgPT4ge1xuICAgICAgICAvLyBtb21lbnQgc3VwcG9ydHMgdXBwZXJjYXNlIGZvcm1hdHNcbiAgICAgICAgaWYgKG1vbWVudCh2YWx1ZSwgZm9ybWF0LnRvVXBwZXJDYXNlKCksIHRydWUpLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgaXNEYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgdGhlIHZhbHVlIGlzIGRhdGUgdGhlbiBmb3IgZW5kIGRhdGUgdGhlIHZhbHVlIHNob3VsZCBiZSBlbmQgb2YgdGhlIGRheSBhcyB0aGUgY2FsZW5kYXIgaXMgYXBwcm94aW1hdGluZyBpdCB0byB0aGUgc3RhcnQuXG4gICAgaWYgKGlzRGF0ZSAmJiBrZXkgPT09ICdlbmQnKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodmFsdWUpLmVuZE9mKCdkYXknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9tZW50KHZhbHVlKTtcbn07XG5jb25zdCBnZXRVVENEYXRlVGltZSA9IChkYXRlT2JqKSA9PiB7XG4gICAgZGF0ZU9iaiA9IG1vbWVudChkYXRlT2JqKTtcbiAgICBjb25zdCB5ZWFyID0gZGF0ZU9iai5mb3JtYXQoJ1lZWVknKSxcbiAgICAgICAgLy8gamF2YXNjcmlwdCBzdGFydHMgdGhlIG1vbnRoIGNvdW50IGZyb20gJzAnIHdoZXJlIGFzIG1vbWVudCByZXR1cm5zIHRoZSBodW1hbiBjb3VudFxuICAgICAgICBtb250aCA9IGRhdGVPYmouZm9ybWF0KCdNTScpIC0gMSxcbiAgICAgICAgZGF5ID0gZGF0ZU9iai5mb3JtYXQoJ0REJyksXG4gICAgICAgIGhvdXJzID0gZGF0ZU9iai5mb3JtYXQoJ0hIJyksXG4gICAgICAgIG1pbnV0ZXMgPSBkYXRlT2JqLmZvcm1hdCgnbW0nKSxcbiAgICAgICAgc2Vjb25kcyA9IGRhdGVPYmouZm9ybWF0KCdzcycpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcyk7XG59O1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tY2FsZW5kYXInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcbmNvbnN0IGRhdGVGb3JtYXQgPSAnWVlZWS9NTS9ERCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2FsZW5kYXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZnVsbGNhbGVuZGFyL21haW4uY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDYWxlbmRhckNvbXBvbmVudClcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgSVJlZHJhd2FibGVDb21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgLy8gVGhlIGNhbGVuZGFyIGVsZW1lbnQgcmVmZXJlbmNlXG4gICAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBfY2FsZW5kYXI6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlcicpIF9kYXRlcGlja2VyOiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNlbGVjdGVkZGF0ZXM6IGFueTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRkYXRhOiBhbnk7XG4gICAgcHVibGljIGN1cnJlbnR2aWV3OiBvYmplY3Q7XG4gICAgcHVibGljIGRhdGFzZXQ6IGFueTtcbiAgICBwdWJsaWMgY2FsZW5kYXJ0eXBlO1xuICAgIHB1YmxpYyBjb250cm9scyA9ICduYXZpZ2F0aW9uLCB0b2RheSwgeWVhciwgbW9udGgsIHdlZWssIGRheSc7XG4gICAgcHVibGljIGRhdGF2YWx1ZTtcbiAgICBwdWJsaWMgZXZlbnR0aXRsZTtcbiAgICBwdWJsaWMgZXZlbnRzdGFydDtcbiAgICBwdWJsaWMgZXZlbnRlbmQ7XG4gICAgcHVibGljIGV2ZW50YWxsZGF5O1xuICAgIHB1YmxpYyBldmVudGNsYXNzO1xuXG4gICAgcHJpdmF0ZSBldmVudFNvdXJjZXM6IEFycmF5PGFueT4gPSBbXTtcblxuICAgIHByaXZhdGUgZGF0YVNldEV2ZW50cyA9IHtcbiAgICAgICAgZXZlbnRzOiBbXVxuICAgIH07XG4gICAgcHJpdmF0ZSBvbGREYXRhO1xuICAgIC8vIG1hcCB0aGUgZnVsbGNhbGVuZGFyIEVsZW1lbnQgcmVuZGVyZWRcbiAgICBwcml2YXRlICRmdWxsQ2FsZW5kYXI7XG4gICAgLy8gbW9kZWwgdG8gdGhlIG1vYmlsZSBjYWxlbmRhclxuICAgIHByaXZhdGUgcHJveHlNb2RlbDtcbiAgICBwcml2YXRlIGV2ZW50RGF0YTtcbiAgICBwcml2YXRlIGV2ZW50cztcbiAgICBwcml2YXRlIGNoYW5nZXNTdGFjayA9IFtdO1xuXG4gICAgLy8gY2FsZW5kYXJPcHRpb25zIHRvIHRoZSBjYWxlbmRhclxuICAgIHByaXZhdGUgY2FsZW5kYXJPcHRpb25zOiBhbnkgPSB7XG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwMCxcbiAgICAgICAgICAgIGV2ZW50U291cmNlczogdGhpcy5ldmVudFNvdXJjZXMsXG4gICAgICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGxvY2FsZTogZ2V0U2Vzc2lvblN0b3JhZ2VJdGVtKCdzZWxlY3RlZExvY2FsZScpIHx8ICdlbicsXG4gICAgICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGxvbmdQcmVzc0RlbGF5OiBpc01vYmlsZSgpID8gMSA6IDEwMDAsXG4gICAgICAgICAgICBoZWFkZXJUb29sYmFyOiBkZWZhdWx0SGVhZGVyT3B0aW9ucyxcbiAgICAgICAgICAgIG5leHREYXlUaHJlc2hvbGQ6IE5FWFRfREFZX1RIUkVTSE9MRCxcbiAgICAgICAgICAgIHZpZXdzOiB7XG4gICAgICAgICAgICAgICAgbW9udGg6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF5TWF4RXZlbnRzUm93OiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVuc2VsZWN0QXV0bzogZmFsc2UsXG4gICAgICAgICAgICBldmVudERyb3A6IHRoaXMuZXZlbnREcm9wLmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudFJlc2l6ZVN0YXJ0OiB0aGlzLm9uRXZlbnRDaGFuZ2VTdGFydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZXZlbnREcmFnU3RhcnQ6IHRoaXMub25FdmVudENoYW5nZVN0YXJ0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudFJlc2l6ZTogdGhpcy5ldmVudFJlc2l6ZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZXZlbnRDbGljazogdGhpcy5ldmVudENsaWNrLmJpbmQodGhpcyksXG4gICAgICAgICAgICBzZWxlY3Q6IHRoaXMuc2VsZWN0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudERpZE1vdW50OiB0aGlzLmV2ZW50RGlkTW91bnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHZpZXdEaWRNb3VudDogdGhpcy52aWV3RGlkTW91bnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGRhdGVzU2V0OiB0aGlzLmRhdGVzU2V0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBkYXRlQ2xpY2s6IHRoaXMuZGF0ZUNsaWNrLmJpbmQodGhpcykgICBcbiAgICAgICAgfVxuICAgIH07XG4gICAgcHVibGljIHZpZXc6IHN0cmluZztcbiAgICBwcml2YXRlIGRheUNsYXNzOiBBcnJheTxhbnk+ID0gW107XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHNlbGVjdHMgdGhlIGRlZmF1bHQgZGF0ZSBnaXZlbiBmb3IgdGhlIGNhbGVuZGFyXG4gICAgc2VsZWN0RGF0ZSgpIHtcbiAgICAgICAgbGV0IHN0YXJ0LCBlbmQ7XG4gICAgICAgIC8vIGNoZWNrcyBpZiBkYXRhdmFsdWUgaXMgYW4gb2JqZWN0IGFuZCBub3QgYSBEYXRlIG9iamVjdCBcbiAgICAgICAgaWYgKF8uaXNPYmplY3QodGhpcy5kYXRhdmFsdWUpICYmICFfLmlzRGF0ZSh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLnN0YXJ0KTtcbiAgICAgICAgICAgIGVuZCAgID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLmVuZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydCA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICBlbmQgICA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuYWRkKDEsICdkYXknKS5zdGFydE9mKCdkYXknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZSggbW9tZW50KHN0YXJ0KS5fZCk7IC8vIGFmdGVyIHNlbGVjdGluZyB0aGUgZGF0ZSBnbyB0byB0aGUgZGF0ZS5cbiAgICAgICAgXG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZWxlY3Qoc3RhcnQudmFsdWVPZigpLCBlbmQudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICAvLyBjaGFuZ2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBkZWZhdWx0IGRhdGUgZ2l2ZW4gZm9yIHRoZSBjYWxlbmRhci5cbiAgICBwdWJsaWMgZ290b0RhdGUoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZSggbW9tZW50KHRoaXMuZGF0YXZhbHVlKS5fZCk7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgYSB5ZWFyIGFoZWFkXG4gICAgcHVibGljIGdvdG9OZXh0WWVhcigpIHtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLm5leHRZZWFyKCk7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgYSB5ZWFyIGJlZm9yZVxuICAgIHB1YmxpYyBnb3RvUHJldlllYXIoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5wcmV2WWVhcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIHNwZWNpZmllZCBtb250aFxuICAgICAqIEBwYXJhbSBtb250aFZhbCwgMS0xMiB2YWx1ZSBvZiBtb250aFxuICAgICAqL1xuICAgIHB1YmxpYyBnb3RvTW9udGgobW9udGhWYWwpIHtcbiAgICAgICAgbGV0IHByZXNlbnREYXkgPSB0aGlzLiRmdWxsQ2FsZW5kYXIuZ2V0RGF0ZSgpO1xuICAgICAgICBjb25zdCBwcmVzZW50TW9udGhWYWwgPSBwcmVzZW50RGF5LmdldE1vbnRoKCk7XG4gICAgICAgIHByZXNlbnREYXkgPSBtb21lbnQocHJlc2VudERheSk7XG4gICAgICAgIGlmIChwcmVzZW50TW9udGhWYWwgPCBtb250aFZhbCkge1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKHByZXNlbnREYXkuYWRkKG1vbnRoVmFsIC0gcHJlc2VudE1vbnRoVmFsIC0gMSwgJ00nKS52YWx1ZU9mKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKHByZXNlbnREYXkuc3VidHJhY3QoIHByZXNlbnRNb250aFZhbCAtIG1vbnRoVmFsICsgMSwgJ00nKS52YWx1ZU9mKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgYSBtb250aCBhaGVhZFxuICAgIHB1YmxpYyBnb3RvTmV4dE1vbnRoKCkge1xuICAgICAgICBjb25zdCBwcmVzZW50RGF5ID0gbW9tZW50KHRoaXMuJGZ1bGxDYWxlbmRhci5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUocHJlc2VudERheS5hZGQoMSwgJ00nKS52YWx1ZU9mKCkpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgbW9udGggYmVmb3JlXG4gICAgcHVibGljIGdvdG9QcmV2TW9udGgoKSB7XG4gICAgICAgIGNvbnN0IHByZXNlbnREYXkgPSBtb21lbnQodGhpcy4kZnVsbENhbGVuZGFyLmdldERhdGUoKSk7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LnN1YnRyYWN0KDEsICdNJykudmFsdWVPZigpKTtcbiAgICB9XG5cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gcmUtcmVuZGVycyB0aGUgZXZlbnRzIGFzc2lnbmVkIHRvIHRoZSBjYWxlbmRhci5cbiAgICBwdWJsaWMgcmVyZW5kZXJFdmVudHMoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5yZW5kZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNlbGVjdGVkRGF0YShzdGFydCwgZW5kKSB7XG4gICAgICAgIGxldCBkYXRhc2V0ID0gdGhpcy5kYXRhc2V0O1xuICAgICAgICBpZiAoIWRhdGFzZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0ZXMgPSBbXTtcbiAgICAgICAgY29uc3QgZXZlbnRTdGFydEtleSA9IHRoaXMuZXZlbnRzdGFydCB8fCAnc3RhcnQnO1xuICAgICAgICBjb25zdCBldmVudEVuZEtleSA9IHRoaXMuZXZlbnRlbmQgfHwgJ2VuZCc7XG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudChuZXcgRGF0ZShzdGFydCkpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuICAgICAgICBjb25zdCBlbmREYXRlID0gbW9tZW50KG5ldyBEYXRlKGVuZCkpLnN1YnRyYWN0KDEsICdkYXlzJykuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG5cbiAgICAgICAgZGF0YXNldCA9IGRhdGFzZXQuZGF0YSB8fCBkYXRhc2V0O1xuICAgICAgICBkYXRhc2V0LmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlW2V2ZW50U3RhcnRLZXldKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXZlbnRTdGFydERhdGUgICA9IG1vbWVudChuZXcgRGF0ZSh2YWx1ZVtldmVudFN0YXJ0S2V5XSkpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRFbmREYXRlICAgPSBtb21lbnQobmV3IERhdGUodmFsdWVbZXZlbnRFbmRLZXldIHx8IHZhbHVlW2V2ZW50U3RhcnRLZXldKSkuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG4gICAgICAgICAgICBjb25zdCBldmVudEV4aXN0cyA9IG1vbWVudChldmVudFN0YXJ0RGF0ZSkuaXNTYW1lT3JBZnRlcihzdGFydERhdGUpICYmIG1vbWVudChldmVudEVuZERhdGUpLmlzU2FtZU9yQmVmb3JlKGVuZERhdGUpO1xuICAgICAgICAgICAgaWYgKGV2ZW50RXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyZWREYXRlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZERhdGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZlbnREcm9wKGV2ZW50RHJvcEluZm8pIHtcbiAgICAgICAgbGV0IG5ld0RhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnREcm9wSW5mby5ldmVudCk7XG4gICAgICAgIGxldCBvbGREYXRhT2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmpGb3JPbGRBbmROZXdEYXRhKGV2ZW50RHJvcEluZm8ub2xkRXZlbnQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50ZHJvcCcsIHskZXZlbnQ6IGV2ZW50RHJvcEluZm8uanNFdmVudCwgJG5ld0RhdGE6IG5ld0RhdGFPYmosICRvbGREYXRhOiBvbGREYXRhT2JqLCAkZGVsdGE6IGV2ZW50RHJvcEluZm8uZGVsdGEsICRyZXZlcnRGdW5jOiBldmVudERyb3BJbmZvLnJldmVydCwgJHVpOiB7fSwgJHZpZXc6IGV2ZW50RHJvcEluZm8udmlld30pO1xuICAgIH1cblxuICAgIC8vIFJldHVybnMgdGhlIGRlZmF1bHQgZGF0ZSB3aGVuIHRoZSBkYXRhdmFsdWUgaXMgcHJvdmlkZWRcbiAgICBnZXREZWZhdWx0RGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGVuZGFyT3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXRMaWIoKSB7XG4gICAgICAgIHJldHVybiAnZnVsbGNhbGVuZGFyJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdCgkc2VsZWN0aW9uSW5mbykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkZGF0ZXMgPSB7c3RhcnQ6IGdldFVUQ0RhdGVUaW1lKCRzZWxlY3Rpb25JbmZvLnN0YXJ0KSwgZW5kOiBnZXRVVENEYXRlVGltZSgkc2VsZWN0aW9uSW5mby5lbmQpfTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGEgPSB0aGlzLnNldFNlbGVjdGVkRGF0YSgkc2VsZWN0aW9uSW5mby5zdGFydCwgJHNlbGVjdGlvbkluZm8uZW5kKTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzZWxlY3QnLCB7JHN0YXJ0OiAkc2VsZWN0aW9uSW5mby5zdGFydC52YWx1ZU9mKCksICRlbmQ6ICRzZWxlY3Rpb25JbmZvLmVuZC52YWx1ZU9mKCksICR2aWV3OiAkc2VsZWN0aW9uSW5mby52aWV3LCAkZGF0YTogdGhpcy5zZWxlY3RlZGRhdGF9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgdGhpcyBmdW5jdGlvbnMgdW5zZWxlY3RzIGFsbCB0aGUgc2VsZWN0aW9ucyBpbiBjYWxlbmRhclxuICAgICAqL1xuICAgIHB1YmxpYyB1bnNlbGVjdCgpIHtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLnVuc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdGhpcyBmdW5jdGlvbiBpcyB0byBhZGQgZXh0ZW5kZWRQcm9wcyBkYXRhIHRvIHRoZSBkYXRhIG9iamVjdC5cbiAgICAgKiB0aGlzIGlzIGRvbmUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgKiBAcGFyYW0gZXZlbnRPYmogZXZlbnQgb2JqZWN0IGFzIHBlciBuZXcgdmVyc2lvbiAodjUpXG4gICAgICogQHJldHVybnMgX2V2ZW50TWV0YWRhdGEgZXZlbnQgb2JqZWN0IGFzIHBlciB0aGUgb2xkIHZlcnNpb24gKHYzKVxuICAgICAqL1xuICAgIHByaXZhdGUgY29udmVydEV2ZW50T2JqKGV2ZW50T2JqKSB7XG4gICAgICAgIGlmICghZXZlbnRPYmouZXh0ZW5kZWRQcm9wcy5fZXZlbnRNZXRhZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50T2JqO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IF9ldmVudE1ldGFkYXRhID0gZXZlbnRPYmouZXh0ZW5kZWRQcm9wcy5fZXZlbnRNZXRhZGF0YTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKF9ldmVudE1ldGFkYXRhLCBldmVudE9iaik7XG4gICAgICAgIHJldHVybiBfZXZlbnRNZXRhZGF0YTsgICAgIFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICB0aGlzIGZ1bmN0aW9uIGlzIHRvIGFkZCBleHRlbmRlZFByb3BzIGRhdGEgdG8gdGhlIGRhdGEgb2JqZWN0IGV4bHVkaW5nIHN0YXJ0IGVuZCB0aXRsZSBhbGxEYXkgb2JqZWN0cyBpZiB0aGUga2V5IG5hbWUgbWF0Y2hlcy5cbiAgICAgKiAqIHRoaXMgaXMgZG9uZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAqIEBwYXJhbSBldmVudE9iaiBldmVudCBvYmplY3QgYXMgcGVyIG5ldyB2ZXJzaW9uICh2NSlcbiAgICAgKiBAcmV0dXJucyBkYXRhIGV2ZW50IG9iamVjdCBhcyBwZXIgdGhlIG9sZCB2ZXJzaW9uICh2MylcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRPYmopIHtcbiAgICAgICAgY29uc3QgX2V2ZW50TWV0YWRhdGEgPSBldmVudE9iai5leHRlbmRlZFByb3BzO1xuICAgICAgICBfLmV4dGVuZChldmVudE9iaiwgX2V2ZW50TWV0YWRhdGEpO1xuICAgICAgICByZXR1cm4gZXZlbnRPYmo7ICAgICBcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50UmVzaXplKGV2ZW50UmVzaXplSW5mbykge1xuICAgICAgICBsZXQgbmV3RGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudFJlc2l6ZUluZm8uZXZlbnQpO1xuICAgICAgICBsZXQgb2xkRGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudFJlc2l6ZUluZm8ub2xkRXZlbnQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50cmVzaXplJywgeyRldmVudDogZXZlbnRSZXNpemVJbmZvLmpzRXZlbnQsICRuZXdEYXRhOiBuZXdEYXRhT2JqLCAkb2xkRGF0YTogb2xkRGF0YU9iaiwgJGRlbHRhOiBldmVudFJlc2l6ZUluZm8uZGVsdGEsICRyZXZlcnRGdW5jOiBldmVudFJlc2l6ZUluZm8ucmV2ZXJ0LCAkdWk6IHt9LCAkdmlldzogZXZlbnRSZXNpemVJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRXZlbnRDaGFuZ2VTdGFydChldmVudCkge1xuICAgICAgICB0aGlzLm9sZERhdGEgPSBnZXRDbG9uZWRPYmplY3QoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZlbnRDbGljayhldmVudENsaWNrSW5mbykge1xuICAgICAgICBsZXQgZXZlbnRPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iaihldmVudENsaWNrSW5mby5ldmVudCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZXZlbnRjbGljaycsIHskZXZlbnQ6IGV2ZW50Q2xpY2tJbmZvLmpzRXZlbnQsICRkYXRhOiBldmVudE9iaiwgJHZpZXc6IGV2ZW50Q2xpY2tJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50RGlkTW91bnQoZXZlbnQpIHtcbiAgICAgICAgbGV0IGV2ZW50T2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmooZXZlbnQuZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhcnR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcuZmMtbGlzdC10YWJsZScpLmFkZENsYXNzKCd0YWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZXZlbnRyZW5kZXInLCB7JGV2ZW50OiBldmVudC5lbCwgJGRhdGE6IGV2ZW50T2JqLCAkdmlldzogZXZlbnQudmlld30pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmlld0RpZE1vdW50KCR2aWV3KSB7XG4gICAgICAgIGlmICh0aGlzLmNhbGVuZGFydHlwZSA9PT0gVklFV19UWVBFUy5MSVNUKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJy5mYy1saXN0LXRhYmxlJykuYWRkQ2xhc3MoJ3RhYmxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCd2aWV3cmVuZGVyJywgeyR2aWV3OiAkdmlld30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbiB0aGUgdmlldyBvZiB0aGUgY2FsZW5kYXIgY2hhbmdlcy5cbiAgICAgKiBAcGFyYW0gZGF0YSBjb250YWlucyB0aGUgc3RhcnQgZW5kIGRhdGEgb2YgdGhlIGNhbGVuZGFyIHZpZXcuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkYXRlc1NldChkYXRhKSB7XG4gICAgICAgIHRoaXMuY3VycmVudHZpZXcgPSB7c3RhcnQ6IG1vbWVudChkYXRhLnN0YXJ0KS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLCBlbmQ6IG1vbWVudChkYXRhLmVuZCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKX07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkYXRlQ2xpY2soJGluZm8pIHtcbiAgICAgICAgY29uc3QgZGF0ZUluZm8gPSBnZXRVVENEYXRlVGltZSgkaW5mby5kYXRlKS52YWx1ZU9mKCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZGF0ZWNsaWNrJywgeyRkYXRlSW5mbzogZGF0ZUluZm99KTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIGNhbGVuZGFyIGhlYWRlciBvcHRpb25zIG9uY2UgdGhlIGNvbnRyb2xzIGNoYW5nZXNcbiAgICBwcml2YXRlIHVwZGF0ZUNhbGVuZGFySGVhZGVyT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgY3RybHMgPSB0aGlzLmNvbnRyb2xzLCB2aWV3VHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlLFxuICAgICAgICAgICAgcmVnRXggPSBuZXcgUmVnRXhwKCdcXFxcYmRheVxcXFxiJywgJ2cnKTtcbiAgICAgICAgbGV0IGxlZnQgPSAnJywgcmlnaHQgPSAnJztcbiAgICAgICAgaWYgKGN0cmxzICYmIHZpZXdUeXBlKSB7XG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ25hdmlnYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIGxlZnQgKz0gJyBwcmV2IG5leHQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ3RvZGF5JykpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ICs9ICcgdG9kYXknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ3llYXInKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5MSVNUKSA/ICdsaXN0WWVhcicgOiAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY3RybHMsICdtb250aCcpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgKz0gKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0TW9udGgnIDogJyBkYXlHcmlkTW9udGgnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ3dlZWsnKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5CQVNJQykgPyAgJyBkYXlHcmlkV2VlaycgOiAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RXZWVrJyA6ICcgdGltZUdyaWRXZWVrJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlZ0V4LnRlc3QoY3RybHMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgKz0gKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnIGRheUdyaWREYXknIDogKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0RGF5JyA6ICcgdGltZUdyaWREYXknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZnQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmlnaHQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0LnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF8uZXh0ZW5kKHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmhlYWRlclRvb2xiYXIsIHsnc3RhcnQnOiBsZWZ0LCAnZW5kJzogcmlnaHR9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLCBAT3B0aW9uYWwoKSBwdWJsaWMgX3ZpZXdQYXJlbnQ6IFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIF92aWV3UGFyZW50KTtcblxuICAgICAgICB0aGlzLmV2ZW50U291cmNlcy5wdXNoKHRoaXMuZGF0YVNldEV2ZW50cyk7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGlmICghRnVsbENhbGVuZGFyLl9fd21fbG9jYWxlX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpMThuU2VydmljZS5pbml0Q2FsZW5kYXJMb2NhbGUoKTtcbiAgICAgICAgICAgIEZ1bGxDYWxlbmRhci5fX3dtX2xvY2FsZV9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuQ09OVEFJTkVSLCBbJ2hlaWdodCddKTtcbiAgICAgICAgdGhpcy5zZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICBvblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICBzdXBlci5vblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2hlaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmhlaWdodCA9IHRoaXMuY2FsY3VsYXRlSGVpZ2h0KG52KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnaGVpZ2h0JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc2VsZWN0aW9ubW9kZSc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSBTRUxFQ1RJT05fTU9ERVMuTk9ORSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RhYmxlJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudiA9PT0gU0VMRUNUSU9OX01PREVTLlNJTkdMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0Q29uc3RyYWludCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6ICcwMDowMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogJzI0OjAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnc2VsZWN0Q29uc3RyYWludCcsIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnNlbGVjdENvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RDb25zdHJhaW50Jywge30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ3NlbGVjdGFibGUnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlldyc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSAnbW9udGgnIHx8IHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcgPSB0aGlzLmNhbGVuZGFydHlwZSArIF8uY2FwaXRhbGl6ZShudik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcgPSBudjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ2NoYW5nZVZpZXcnLCB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5kZWZhdWx0Vmlldyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjYWxlbmRhcnR5cGUnOlxuICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJ0eXBlID0gbnYgfHwgJ2RheUdyaWQnO1xuICAgICAgICAgICAgY2FzZSAnY29udHJvbHMnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJIZWFkZXJPcHRpb25zKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXRhc2V0JzpcbiAgICAgICAgICAgICAgICBsZXQgZGF0YVNldDtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFzZXQgPSBudjtcbiAgICAgICAgICAgICAgICBkYXRhU2V0ID0gY3JlYXRlQXJyYXlGcm9tKGdldENsb25lZE9iamVjdChudikpO1xuICAgICAgICAgICAgICAgIGRhdGFTZXQgPSB0aGlzLmNvbnN0cnVjdENhbGVuZGFyRGF0YXNldChkYXRhU2V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXRFdmVudHMuZXZlbnRzID0gZGF0YVNldC5maWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0YXJ0ID0gZXZlbnQuc3RhcnQgfHwgZXZlbnQuZW5kO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckV2ZW50RGF0YVNldCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyPy5jaGFuZ2VWaWV3KHRoaXMuZ2V0Vmlld1R5cGUodGhpcy52aWV3ID8gdGhpcy52aWV3IDogJ2RheUdyaWRNb250aCcpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0IGZvciB0aGUgZXZlbnQgbGltaXQgYW5kIHBhcnNpbmcgdGhlIHZhbHVlIHdoZW4gaXQgaXMgcGVyY2VudGFnZSBiYXNlZC5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUhlaWdodChoZWlnaHQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCAkcGFyZW50ID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLnBhcmVudCgpLFxuICAgICAgICAgICAgZWxIZWlnaHQgPSBoZWlnaHQgfHwgJzY1MHB4JztcblxuICAgICAgICBsZXQgcGFyZW50SGVpZ2h0ID0gJHBhcmVudC5jc3MoJ2hlaWdodCcpLFxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQ6IG51bWJlcjtcblxuICAgICAgICBpZiAoXy5pbmNsdWRlcyhlbEhlaWdodCwgJyUnKSkge1xuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMocGFyZW50SGVpZ2h0LCAnJScpKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50SGVpZ2h0ID0gJHBhcmVudC5oZWlnaHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbXB1dGVkSGVpZ2h0ID0gKHBhcnNlSW50KHBhcmVudEhlaWdodCwgMTApICogTnVtYmVyKGVsSGVpZ2h0LnJlcGxhY2UoL1xcJS9nLCAnJykpKSAvIDEwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbXB1dGVkSGVpZ2h0ID0gcGFyc2VJbnQoZWxIZWlnaHQsIDEwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci52aWV3cy5tb250aC5ldmVudExpbWl0ID0gcGFyc2VJbnQoJycgKyBjb21wdXRlZEhlaWdodCAvIDIwMCwgMTApICsgMTtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVkSGVpZ2h0O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyRWwgPSB0aGlzLl9jYWxlbmRhci5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBGdWxsQ2FsZW5kYXIgPSB3aW5kb3dbJ0Z1bGxDYWxlbmRhciddO1xuICAgICAgICBjb25zdCBjYWxlbmRhciA9IG5ldyBGdWxsQ2FsZW5kYXIuQ2FsZW5kYXIoY2FsZW5kYXJFbCwgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIgPSAgY2FsZW5kYXI7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnYmVmb3JlcmVuZGVyJywgeyckZXZlbnQnIDoge319KTtcbiAgICAgICAgY2FsZW5kYXIucmVuZGVyKCk7XG4gICAgICAgXG4gICAgICAgIC8vIGlmIHRoZSBjaGFuZ2VzIGFyZSBhbHJlYWR5IHN0YWNrZWQgYmVmb3JlIGNhbGVuZGFyIHJlbmRlcnMgdGhlbiBleGVjdXRlIHRoZW0gd2hlbiBuZWVkZWRcbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlc1N0YWNrLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzU3RhY2suZm9yRWFjaCgoY2hhbmdlT2JqKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucyhjaGFuZ2VPYmoub3BlcmF0aW9uVHlwZSwgY2hhbmdlT2JqLmFyZ3VtZW50S2V5LCBjaGFuZ2VPYmouYXJndW1lbnRWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvL1dNUy0yMjQxMiA6IGNoYW5nZSBjYWxlbmRlcidzIHZpZXcgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gc2V0IGZyb20gc3R1ZGlvXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmNoYW5nZVZpZXcodGhpcy5nZXRWaWV3VHlwZSh0aGlzLnZpZXcgPyB0aGlzLnZpZXcgOiAnZGF5R3JpZE1vbnRoJykpO1xuICAgICAgICB9LDUwKTtcbiAgICB9XG5cbiAgICAvLyBjb25zdHJ1Y3RzIHRoZSBjYWxlbmRhciBkYXRhc2V0IGJ5IG1hcHBpbmcgdGhlIGV2ZW50c3RhcnQsIGV2ZW50ZW5kLCBldmVudHRpdGxlIGV0Yy4sXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RDYWxlbmRhckRhdGFzZXQoZXZlbnRTb3VyY2UpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLmV2ZW50dGl0bGUgfHwgJ3RpdGxlJyxcbiAgICAgICAgICAgIGFsbERheTogdGhpcy5ldmVudGFsbGRheSB8fCAnYWxsZGF5JyxcbiAgICAgICAgICAgIHN0YXJ0OiB0aGlzLmV2ZW50c3RhcnQgfHwgJ3N0YXJ0JyxcbiAgICAgICAgICAgIGVuZDogdGhpcy5ldmVudGVuZCB8fCAnZW5kJyxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5ldmVudGNsYXNzIHx8ICdjbGFzc05hbWUnXG4gICAgICAgIH07XG5cbiAgICAgICAgZXZlbnRTb3VyY2UuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgICAgICAgICBvYmouX2V2ZW50TWV0YWRhdGEgPSBfLmNsb25lKG9iaik7XG4gICAgICAgICAgICBfLm1hcEtleXMocHJvcGVydGllcywgICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG9ialZhbDtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IGdldEV2YWx1YXRlZERhdGEob2JqLCB7ZXhwcmVzc2lvbjogdmFsdWV9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYWxsRGF5Jykge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSAhIV8uZ2V0KG9iaiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IF8uZ2V0KG9iaiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIW9ialZhbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9ialtrZXldID0gb2JqVmFsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXZlbnRTb3VyY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2NhbGUoKSB7XG4gICAgICAgIGNvbnN0IHllYXIgPSBfLmdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1lFQVInKSB8fCBCVVRUT05fVEVYVC5ZRUFSO1xuICAgICAgICBjb25zdCBtb250aCA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfTU9OVEgnKSB8fCBCVVRUT05fVEVYVC5NT05USDtcbiAgICAgICAgY29uc3Qgd2VlayA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfV0VFSycpIHx8IEJVVFRPTl9URVhULldFRUs7XG4gICAgICAgIGNvbnN0IGRheSA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfREFZJykgfHwgQlVUVE9OX1RFWFQuREFZO1xuICAgICAgICBjb25zdCB0b2RheSA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfVE9EQVknKSB8fCBCVVRUT05fVEVYVC5UT0RBWTtcbiAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuYnV0dG9uVGV4dCAgICA9IHsgeWVhciwgbW9udGgsIHdlZWssIGRheSwgdG9kYXksXG4gICAgICAgICAgICAnbGlzdFllYXInOiB5ZWFyLFxuICAgICAgICAgICAgJ2xpc3RNb250aCc6IG1vbnRoLFxuICAgICAgICAgICAgJ2xpc3RXZWVrJzogd2VlayxcbiAgICAgICAgICAgICdsaXN0RGF5JzogZGF5XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2FsZW5kYXIgb3B0aW9ucyB3aXRoIHRoZSBuZXdTZXQgb2Ygb3B0aW9uc1xuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgb3ZlcnJpZGVEZWZhdWx0cyhvcHRpb25zKSB7XG4gICAgICAgIGlmIChfLmlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhvcHRpb25zKS5tYXAob3B0aW9uID0+IHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24ob3B0aW9uWzBdLCBvcHRpb25bMV0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGlmIHRoZSBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgYmVmb3JlIHRoZSBjYWxlbmRhciByZW5kZXJzLCB0aGUgY2hhbmdlcyBhcmUgcHVzaGVkIGludG8gY2hhbmdlc1N0YWNrIGFuZCB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBjYWxlbmRhciBnZXRzIHJlbmRlcmVkXG4gICAgICogaWYgdGhlIGNhbGVuZGFyIGlzIGFscmVhZHkgcmVuZGVyZWQsIHRoZW4gdGhlIHNwZWNpZmljIG9wZXJhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCBhY2NvcmRpbmcgdG8gdGhlIG9wZXJhdGlvbiB0eXBlXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqL1xuICAgIHVwZGF0ZUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7Ly9cbiAgICAgICAgaWYgKCF0aGlzLiRmdWxsQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLnB1c2goe1xuICAgICAgICAgICAgICAgIG9wZXJhdGlvblR5cGU6IG9wZXJhdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgYXJndW1lbnRLZXk6IGFyZ3VtZW50S2V5LFxuICAgICAgICAgICAgICAgIGFyZ3VtZW50VmFsdWU6IGFyZ3VtZW50VmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlDYWxlbmRhck9wdGlvbnMob3BlcmF0aW9uVHlwZSwgYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgIH1cblxuICAgIHJlZHJhdygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ3JlbmRlcicpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXI/LmNoYW5nZVZpZXcodGhpcy5nZXRWaWV3VHlwZSh0aGlzLnZpZXcgPyB0aGlzLnZpZXcgOiAnZGF5R3JpZE1vbnRoJykpO1xuICAgIH1cblxuICAgIC8vIG9uIGRhdGUgY2hhbmdlIGludm9rZSB0aGUgc2VsZWN0IGV2ZW50LCBhbmQgaWYgZGF0ZSBoYXMgZXZlbnQgb24gaXQgdGhlbiBpbnZva2UgdGhlIGV2ZW50IGNsaWNrLlxuICAgIHByaXZhdGUgb25WYWx1ZUNoYW5nZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3h5TW9kZWwgPSB2YWx1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlICAgICAgICA9IHRoaXMucHJveHlNb2RlbCAmJiBtb21lbnQodGhpcy5wcm94eU1vZGVsKS5zdGFydE9mKCdkYXknKS5mb3JtYXQoZGF0ZUZvcm1hdCksXG4gICAgICAgICAgICBzZWxlY3RlZEV2ZW50RGF0YSAgID0gdGhpcy5ldmVudERhdGFbc2VsZWN0ZWREYXRlXSxcbiAgICAgICAgICAgIHN0YXJ0ICAgICAgICAgICAgICAgPSBtb21lbnQodGhpcy5wcm94eU1vZGVsKSxcbiAgICAgICAgICAgIGVuZCAgICAgICAgICAgICAgICAgPSBtb21lbnQodGhpcy5wcm94eU1vZGVsKS5lbmRPZignZGF5Jyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRhID0gc2VsZWN0ZWRFdmVudERhdGE7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRlcyA9IHtcbiAgICAgICAgICAgICdzdGFydCc6IG1vbWVudChzZWxlY3RlZERhdGUpLnZhbHVlT2YoKSxcbiAgICAgICAgICAgICdlbmQnICA6IG1vbWVudChzZWxlY3RlZERhdGUpLmVuZE9mKCdkYXknKS52YWx1ZU9mKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0KHN0YXJ0LnZhbHVlT2YoKSwgZW5kLnZhbHVlT2YoKSwge30sIHRoaXMsIHNlbGVjdGVkRXZlbnREYXRhKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRXZlbnREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5ldmVudENsaWNrKHNlbGVjdGVkRXZlbnREYXRhLCB7fSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSBhbiBvYmplY3QgY29udGFpbmluZyBzb3VyY2Ugb2YgY2FsZW5kYXIsIGFwaWtleSBhbmQgY2FsZW5kYXJJZCBhbmQgd2lsbCBpbnRlZ3JhdGUgdGhlIHJlc3BlY3RpdmUgY2FsZW5kYXIgd2l0aCBmdWxsY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGV2ZW50T2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIGFkZEV2ZW50U291cmNlKGV2ZW50T2JqZWN0KSB7XG4gICAgICAgIGlmIChfLmlzRW1wdHkoZXZlbnRPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2FkZEV2ZW50U291cmNlIG1ldGhvZCByZXF1aXJlcyBhbiBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50T2JqZWN0LnNvdXJjZSA9PT0gJ2dvb2dsZScpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkgfHwgIWV2ZW50T2JqZWN0Lmdvb2dsZUNhbGVuZGFySWQgKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdGb3IgZ29vZ2xlIGNhbGVuZGFyIGludGVncmF0aW9uLCBcXCdnb29nbGVDYWxlbmRhckFwaUtleVxcJyBhbmQgXFwnZ29vZ2xlQ2FsZW5kYXJJZFxcJyBzaG91bGQgYmUgcGFzc2VkIGluIHRoZSBwYXJhbWV0ZXIgb2JqZWN0LicpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oJ2dvb2dsZUNhbGVuZGFyQXBpS2V5JywgZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkpO1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmFkZEV2ZW50U291cmNlKHtcbiAgICAgICAgICAgICAgICBnb29nbGVDYWxlbmRhcklkOiBldmVudE9iamVjdC5nb29nbGVDYWxlbmRhcklkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB0aGUgdmlld1R5cGVLZXkgYWNjb3JkaW5nIHRvIHRoZSBjYWxlbmRhclR5cGUgYW5kIHZpZXdUeXBlIHNlbGVjdGVkXG4gICAgICogQHBhcmFtIHZpZXdLZXlcbiAgICAgKi9cbiAgICBnZXRWaWV3VHlwZSh2aWV3S2V5KSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyVHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgIGlmICh2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RNb250aCcgOiAnZGF5R3JpZE1vbnRoJztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAnd2VlaycpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuQkFTSUMpID8gICdkYXlHcmlkV2VlaycgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RXZWVrJyA6ICd0aW1lR3JpZFdlZWsnO1xuICAgICAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdkYXknKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnZGF5R3JpZERheScgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3REYXknIDogJ3RpbWVHcmlkRGF5JztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSB2aWV3S2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqIEhhbmRsZSB2YXJpb3VzIG9wZXJhdGlvbnMgbGlrZSBSZW5kZXJpbmcgQ2FsZW5kYXIsIGNoYW5naW5nIHRoZSBjYWxlbmRhciB2aWV3VHlwZSwgc2V0dGluZyB0aGUgY2FsZW5kYXJPcHRpb25zIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uVHlwZS5cbiAgICAgKi9cbiAgICBhcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAob3BlcmF0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmVuZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2hhbmdlVmlldyc6XG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuZ2V0Vmlld1R5cGUoYXJndW1lbnRLZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyB0aGUgbmV3IGV2ZW50c0RhdGFTZXQgdG8gdGhlIGNhbGVuZGFyIG9iamVjdCB3aXRoIGFkZEV2ZW50IE1ldGhvZCBhbmQgcmUtcmVuZGVycyB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZW5kZXJFdmVudERhdGFTZXQoKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuYmF0Y2hSZW5kZXJpbmcoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBzZWxmLiRmdWxsQ2FsZW5kYXIuZ2V0RXZlbnRzKCk7XG4gICAgICAgICAgICBfLmVhY2goIGV2ZW50cywgZnVuY3Rpb24oIGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhID0gc2VsZi4kZnVsbENhbGVuZGFyLmdldEV2ZW50QnlJZChldmVudC5pZCk7XG4gICAgICAgICAgICAgICAgZXZlbnREYXRhLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfLmVhY2goIHNlbGYuZGF0YVNldEV2ZW50cy5ldmVudHMsIGZ1bmN0aW9uKCBldmVudCkge1xuICAgICAgICAgICAgICAgIHNlbGYuJGZ1bGxDYWxlbmRhci5hZGRFdmVudChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiAjY2FsZW5kYXIgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3IHx8ICdtb250aCdcIj48L2Rpdj5cbiJdfQ==
|
|
610
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFFUixTQUFTLEVBQ1QsaUJBQWlCLEVBRXBCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUVuQixRQUFRLEVBRVgsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBdUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0ssT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUFJakQsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDO0FBQ25DLE1BQU0sV0FBVyxHQUFHLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMvTSxNQUFNLG9CQUFvQixHQUFHO0lBQ3pCLEtBQUssRUFBRSxpQkFBaUI7SUFDeEIsTUFBTSxFQUFFLE9BQU87SUFDZixHQUFHLEVBQUUscUNBQXFDO0NBQzdDLENBQUM7QUFDRixNQUFNLFVBQVUsR0FBRztJQUNmLEtBQUssRUFB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TSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsS0FBSztnQkFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O0FBcmxCTSxpQ0FBZSxHQUFHLGFBQWEsRUFBRSxDQUFDO2tGQURoQyxpQkFBaUI7b0VBQWpCLGlCQUFpQjs7Ozs7OzswQ0FMZjtZQUNQLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDO1NBQ3hDO1FDOUZMLCtCQUF5RDs7UUFBMUMsaURBQW1DOzt1RkRpR3JDLGlCQUFpQjtjQVQ3QixTQUFTOzJCQUNJLGNBQWMsYUFHYjtvQkFDUCxrQkFBa0IsbUJBQW1CO2lCQUN4QyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOzZGQUtkLFNBQVM7a0JBQS9CLFNBQVM7bUJBQUMsVUFBVTtZQUNJLFdBQVc7a0JBQW5DLFNBQVM7bUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXR0cmlidXRlLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIGdldENsb25lZE9iamVjdCxcbiAgICBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0sXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBpc01vYmlsZUFwcCxcbiAgICBpc01vYmlsZSxcbiAgICBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHRcbn0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgY3JlYXRlQXJyYXlGcm9tLCBnZXRFdmFsdWF0ZWREYXRhLCBJV2lkZ2V0Q29uZmlnLCBJUmVkcmF3YWJsZUNvbXBvbmVudCwgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2NhbGVuZGFyLnByb3BzJztcblxuZGVjbGFyZSBjb25zdCBfLCAkLCBtb21lbnQ7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1jYWxlbmRhcic7XG5jb25zdCBkYXRlRm9ybWF0cyA9IFsneXl5eS1NTS1kZCcsICd5eXl5LU0tZGQnLCAnTS1kZC15eXl5JywgJ01NLWRkLXl5JywgJ3l5eXksIGRkIE1NTU0nLCAneXl5eSwgTU1NIGRkJywgJ01NL2RkL3l5eXknLCAnTS9kL3l5eXknLCAnRUVFLCBkZCBNTU0geXl5eScsICdFRUUgTU1NIGRkIHl5eXknLCAnRUVFRSwgTU1NTSBkZCwgeXl5eScsICd0aW1lc3RhbXAnXTtcbmNvbnN0IGRlZmF1bHRIZWFkZXJPcHRpb25zID0ge1xuICAgIHN0YXJ0OiAncHJldiBuZXh0IHRvZGF5JyxcbiAgICBjZW50ZXI6ICd0aXRsZScsXG4gICAgZW5kOiAnZGF5R3JpZE1vbnRoIGRheUdyaWRXZWVrIGRheUdyaWREYXknXG59O1xuY29uc3QgVklFV19UWVBFUyA9IHtcbiAgICBCQVNJQzogJ2Jhc2ljJyxcbiAgICBBR0VOREE6ICdhZ2VuZGEnLFxuICAgIExJU1Q6ICdsaXN0J1xufTtcbmNvbnN0IEJVVFRPTl9URVhUID0ge1xuICAgIFlFQVI6ICdZZWFyJyxcbiAgICBNT05USDogJ01vbnRoJyxcbiAgICBXRUVLOiAnV2VlaycsXG4gICAgREFZOiAnRGF5JyxcbiAgICBUT0RBWTogJ1RvZGF5J1xufTtcbmNvbnN0IFNFTEVDVElPTl9NT0RFUyA9IHtcbiAgICBOT05FOiAnbm9uZScsXG4gICAgU0lOR0xFOiAnc2luZ2xlJyxcbiAgICBNVUxUSVBMRTogJ211bHRpcGxlJ1xufTtcbmNvbnN0IE5FWFRfREFZX1RIUkVTSE9MRCA9IHtcbiAgICBTVEFSVDogJzAwOjAwJyxcbiAgICBFTkQ6ICcyNDowMCdcbn07XG5jb25zdCBnZXRFdmVudE1vbWVudFZhbHVlID0gKHZhbHVlLCBrZXkpID0+IHtcbiAgICBsZXQgaXNEYXRlID0gZmFsc2U7XG5cbiAgICBkYXRlRm9ybWF0cy5mb3JFYWNoKChmb3JtYXQpID0+IHtcbiAgICAgICAgLy8gbW9tZW50IHN1cHBvcnRzIHVwcGVyY2FzZSBmb3JtYXRzXG4gICAgICAgIGlmIChtb21lbnQodmFsdWUsIGZvcm1hdC50b1VwcGVyQ2FzZSgpLCB0cnVlKS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIGlzRGF0ZSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBkYXRlIHRoZW4gZm9yIGVuZCBkYXRlIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW5kIG9mIHRoZSBkYXkgYXMgdGhlIGNhbGVuZGFyIGlzIGFwcHJveGltYXRpbmcgaXQgdG8gdGhlIHN0YXJ0LlxuICAgIGlmIChpc0RhdGUgJiYga2V5ID09PSAnZW5kJykge1xuICAgICAgICByZXR1cm4gbW9tZW50KHZhbHVlKS5lbmRPZignZGF5Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vbWVudCh2YWx1ZSk7XG59O1xuY29uc3QgZ2V0VVRDRGF0ZVRpbWUgPSAoZGF0ZU9iaikgPT4ge1xuICAgIGRhdGVPYmogPSBtb21lbnQoZGF0ZU9iaik7XG4gICAgY29uc3QgeWVhciA9IGRhdGVPYmouZm9ybWF0KCdZWVlZJyksXG4gICAgICAgIC8vIGphdmFzY3JpcHQgc3RhcnRzIHRoZSBtb250aCBjb3VudCBmcm9tICcwJyB3aGVyZSBhcyBtb21lbnQgcmV0dXJucyB0aGUgaHVtYW4gY291bnRcbiAgICAgICAgbW9udGggPSBkYXRlT2JqLmZvcm1hdCgnTU0nKSAtIDEsXG4gICAgICAgIGRheSA9IGRhdGVPYmouZm9ybWF0KCdERCcpLFxuICAgICAgICBob3VycyA9IGRhdGVPYmouZm9ybWF0KCdISCcpLFxuICAgICAgICBtaW51dGVzID0gZGF0ZU9iai5mb3JtYXQoJ21tJyksXG4gICAgICAgIHNlY29uZHMgPSBkYXRlT2JqLmZvcm1hdCgnc3MnKTtcbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpO1xufTtcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLWNhbGVuZGFyJywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5jb25zdCBkYXRlRm9ybWF0ID0gJ1lZWVkvTU0vREQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bUNhbGVuZGFyXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Z1bGxjYWxlbmRhci9tYWluLmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQ2FsZW5kYXJDb21wb25lbnQpXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkluaXQsIElSZWRyYXdhYmxlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuICAgIC8vIFRoZSBjYWxlbmRhciBlbGVtZW50IHJlZmVyZW5jZVxuICAgIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyJykgX2NhbGVuZGFyOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXInKSBfZGF0ZXBpY2tlcjogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBzZWxlY3RlZGRhdGVzOiBhbnk7XG4gICAgcHVibGljIHNlbGVjdGVkZGF0YTogYW55O1xuICAgIHB1YmxpYyBjdXJyZW50dmlldzogb2JqZWN0O1xuICAgIHB1YmxpYyBkYXRhc2V0OiBhbnk7XG4gICAgcHVibGljIGNhbGVuZGFydHlwZTtcbiAgICBwdWJsaWMgY29udHJvbHMgPSAnbmF2aWdhdGlvbiwgdG9kYXksIHllYXIsIG1vbnRoLCB3ZWVrLCBkYXknO1xuICAgIHB1YmxpYyBkYXRhdmFsdWU7XG4gICAgcHVibGljIGV2ZW50dGl0bGU7XG4gICAgcHVibGljIGV2ZW50c3RhcnQ7XG4gICAgcHVibGljIGV2ZW50ZW5kO1xuICAgIHB1YmxpYyBldmVudGFsbGRheTtcbiAgICBwdWJsaWMgZXZlbnRjbGFzcztcblxuICAgIHByaXZhdGUgZXZlbnRTb3VyY2VzOiBBcnJheTxhbnk+ID0gW107XG5cbiAgICBwcml2YXRlIGRhdGFTZXRFdmVudHMgPSB7XG4gICAgICAgIGV2ZW50czogW11cbiAgICB9O1xuICAgIHByaXZhdGUgb2xkRGF0YTtcbiAgICAvLyBtYXAgdGhlIGZ1bGxjYWxlbmRhciBFbGVtZW50IHJlbmRlcmVkXG4gICAgcHJpdmF0ZSAkZnVsbENhbGVuZGFyO1xuICAgIC8vIG1vZGVsIHRvIHRoZSBtb2JpbGUgY2FsZW5kYXJcbiAgICBwcml2YXRlIHByb3h5TW9kZWw7XG4gICAgcHJpdmF0ZSBldmVudERhdGE7XG4gICAgcHJpdmF0ZSBldmVudHM7XG4gICAgcHJpdmF0ZSBjaGFuZ2VzU3RhY2sgPSBbXTtcblxuICAgIC8vIGNhbGVuZGFyT3B0aW9ucyB0byB0aGUgY2FsZW5kYXJcbiAgICBwcml2YXRlIGNhbGVuZGFyT3B0aW9uczogYW55ID0ge1xuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgaGVpZ2h0OiA2MDAsXG4gICAgICAgICAgICBldmVudFNvdXJjZXM6IHRoaXMuZXZlbnRTb3VyY2VzLFxuICAgICAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgICAgICBsb2NhbGU6IGdldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnKSB8fCAnZW4nLFxuICAgICAgICAgICAgc2VsZWN0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBsb25nUHJlc3NEZWxheTogaXNNb2JpbGUoKSA/IDEgOiAxMDAwLFxuICAgICAgICAgICAgaGVhZGVyVG9vbGJhcjogZGVmYXVsdEhlYWRlck9wdGlvbnMsXG4gICAgICAgICAgICBuZXh0RGF5VGhyZXNob2xkOiBORVhUX0RBWV9USFJFU0hPTEQsXG4gICAgICAgICAgICB2aWV3czoge1xuICAgICAgICAgICAgICAgIG1vbnRoOiB7XG4gICAgICAgICAgICAgICAgICAgIGRheU1heEV2ZW50c1JvdzogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1bnNlbGVjdEF1dG86IGZhbHNlLFxuICAgICAgICAgICAgZXZlbnREcm9wOiB0aGlzLmV2ZW50RHJvcC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZXZlbnRSZXNpemVTdGFydDogdGhpcy5vbkV2ZW50Q2hhbmdlU3RhcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50RHJhZ1N0YXJ0OiB0aGlzLm9uRXZlbnRDaGFuZ2VTdGFydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZXZlbnRSZXNpemU6IHRoaXMuZXZlbnRSZXNpemUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50Q2xpY2s6IHRoaXMuZXZlbnRDbGljay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgc2VsZWN0OiB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZXZlbnREaWRNb3VudDogdGhpcy5ldmVudERpZE1vdW50LmJpbmQodGhpcyksXG4gICAgICAgICAgICB2aWV3RGlkTW91bnQ6IHRoaXMudmlld0RpZE1vdW50LmJpbmQodGhpcyksXG4gICAgICAgICAgICBkYXRlc1NldDogdGhpcy5kYXRlc1NldC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZGF0ZUNsaWNrOiB0aGlzLmRhdGVDbGljay5iaW5kKHRoaXMpXG4gICAgICAgIH1cbiAgICB9O1xuICAgIHB1YmxpYyB2aWV3OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkYXlDbGFzczogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgLy8gdGhpcyBmdW5jdGlvbiBzZWxlY3RzIHRoZSBkZWZhdWx0IGRhdGUgZ2l2ZW4gZm9yIHRoZSBjYWxlbmRhclxuICAgIHNlbGVjdERhdGUoKSB7XG4gICAgICAgIGxldCBzdGFydCwgZW5kO1xuICAgICAgICAvLyBjaGVja3MgaWYgZGF0YXZhbHVlIGlzIGFuIG9iamVjdCBhbmQgbm90IGEgRGF0ZSBvYmplY3RcbiAgICAgICAgaWYgKF8uaXNPYmplY3QodGhpcy5kYXRhdmFsdWUpICYmICFfLmlzRGF0ZSh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLnN0YXJ0KTtcbiAgICAgICAgICAgIGVuZCAgID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLmVuZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydCA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICBlbmQgICA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuYWRkKDEsICdkYXknKS5zdGFydE9mKCdkYXknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZSggbW9tZW50KHN0YXJ0KS5fZCk7IC8vIGFmdGVyIHNlbGVjdGluZyB0aGUgZGF0ZSBnbyB0byB0aGUgZGF0ZS5cblxuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuc2VsZWN0KHN0YXJ0LnZhbHVlT2YoKSwgZW5kLnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgLy8gY2hhbmdlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIGdvdG9EYXRlKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUoIG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuX2QpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBhaGVhZFxuICAgIHB1YmxpYyBnb3RvTmV4dFllYXIoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5uZXh0WWVhcigpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBiZWZvcmVcbiAgICBwdWJsaWMgZ290b1ByZXZZZWFyKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucHJldlllYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBzcGVjaWZpZWQgbW9udGhcbiAgICAgKiBAcGFyYW0gbW9udGhWYWwsIDEtMTIgdmFsdWUgb2YgbW9udGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ290b01vbnRoKG1vbnRoVmFsKSB7XG4gICAgICAgIGxldCBwcmVzZW50RGF5ID0gdGhpcy4kZnVsbENhbGVuZGFyLmdldERhdGUoKTtcbiAgICAgICAgY29uc3QgcHJlc2VudE1vbnRoVmFsID0gcHJlc2VudERheS5nZXRNb250aCgpO1xuICAgICAgICBwcmVzZW50RGF5ID0gbW9tZW50KHByZXNlbnREYXkpO1xuICAgICAgICBpZiAocHJlc2VudE1vbnRoVmFsIDwgbW9udGhWYWwpIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LmFkZChtb250aFZhbCAtIHByZXNlbnRNb250aFZhbCAtIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LnN1YnRyYWN0KCBwcmVzZW50TW9udGhWYWwgLSBtb250aFZhbCArIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgbW9udGggYWhlYWRcbiAgICBwdWJsaWMgZ290b05leHRNb250aCgpIHtcbiAgICAgICAgY29uc3QgcHJlc2VudERheSA9IG1vbWVudCh0aGlzLiRmdWxsQ2FsZW5kYXIuZ2V0RGF0ZSgpKTtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKHByZXNlbnREYXkuYWRkKDEsICdNJykudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBhIG1vbnRoIGJlZm9yZVxuICAgIHB1YmxpYyBnb3RvUHJldk1vbnRoKCkge1xuICAgICAgICBjb25zdCBwcmVzZW50RGF5ID0gbW9tZW50KHRoaXMuJGZ1bGxDYWxlbmRhci5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUocHJlc2VudERheS5zdWJ0cmFjdCgxLCAnTScpLnZhbHVlT2YoKSk7XG4gICAgfVxuXG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHJlLXJlbmRlcnMgdGhlIGV2ZW50cyBhc3NpZ25lZCB0byB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIHJlcmVuZGVyRXZlbnRzKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZERhdGEoc3RhcnQsIGVuZCkge1xuICAgICAgICBsZXQgZGF0YXNldCA9IHRoaXMuZGF0YXNldDtcbiAgICAgICAgaWYgKCFkYXRhc2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGVzID0gW107XG4gICAgICAgIGNvbnN0IGV2ZW50U3RhcnRLZXkgPSB0aGlzLmV2ZW50c3RhcnQgfHwgJ3N0YXJ0JztcbiAgICAgICAgY29uc3QgZXZlbnRFbmRLZXkgPSB0aGlzLmV2ZW50ZW5kIHx8ICdlbmQnO1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQobmV3IERhdGUoc3RhcnQpKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IG1vbWVudChuZXcgRGF0ZShlbmQpKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuXG4gICAgICAgIGRhdGFzZXQgPSBkYXRhc2V0LmRhdGEgfHwgZGF0YXNldDtcbiAgICAgICAgZGF0YXNldC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZVtldmVudFN0YXJ0S2V5XSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RhcnREYXRlICAgPSBtb21lbnQobmV3IERhdGUodmFsdWVbZXZlbnRTdGFydEtleV0pKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50RW5kRGF0ZSAgID0gbW9tZW50KG5ldyBEYXRlKHZhbHVlW2V2ZW50RW5kS2V5XSB8fCB2YWx1ZVtldmVudFN0YXJ0S2V5XSkpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRFeGlzdHMgPSBtb21lbnQoZXZlbnRTdGFydERhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnREYXRlKSAmJiBtb21lbnQoZXZlbnRFbmREYXRlKS5pc1NhbWVPckJlZm9yZShlbmREYXRlKTtcbiAgICAgICAgICAgIGlmIChldmVudEV4aXN0cykge1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZmlsdGVyZWREYXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50RHJvcChldmVudERyb3BJbmZvKSB7XG4gICAgICAgIGxldCBuZXdEYXRhT2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmpGb3JPbGRBbmROZXdEYXRhKGV2ZW50RHJvcEluZm8uZXZlbnQpO1xuICAgICAgICBsZXQgb2xkRGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudERyb3BJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudGRyb3AnLCB7JGV2ZW50OiBldmVudERyb3BJbmZvLmpzRXZlbnQsICRuZXdEYXRhOiBuZXdEYXRhT2JqLCAkb2xkRGF0YTogb2xkRGF0YU9iaiwgJGRlbHRhOiBldmVudERyb3BJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnREcm9wSW5mby5yZXZlcnQsICR1aToge30sICR2aWV3OiBldmVudERyb3BJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIHRoZSBkZWZhdWx0IGRhdGUgd2hlbiB0aGUgZGF0YXZhbHVlIGlzIHByb3ZpZGVkXG4gICAgZ2V0RGVmYXVsdERhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERlZmF1bHRPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxlbmRhck9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ2Z1bGxjYWxlbmRhcic7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3QoJHNlbGVjdGlvbkluZm8pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGVzID0ge3N0YXJ0OiBnZXRVVENEYXRlVGltZSgkc2VsZWN0aW9uSW5mby5zdGFydCksIGVuZDogZ2V0VVRDRGF0ZVRpbWUoJHNlbGVjdGlvbkluZm8uZW5kKX07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRhID0gdGhpcy5zZXRTZWxlY3RlZERhdGEoJHNlbGVjdGlvbkluZm8uc3RhcnQsICRzZWxlY3Rpb25JbmZvLmVuZCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyRzdGFydDogJHNlbGVjdGlvbkluZm8uc3RhcnQudmFsdWVPZigpLCAkZW5kOiAkc2VsZWN0aW9uSW5mby5lbmQudmFsdWVPZigpLCAkdmlldzogJHNlbGVjdGlvbkluZm8udmlldywgJGRhdGE6IHRoaXMuc2VsZWN0ZWRkYXRhfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb25zIHVuc2VsZWN0cyBhbGwgdGhlIHNlbGVjdGlvbnMgaW4gY2FsZW5kYXJcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5zZWxlY3QoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci51bnNlbGVjdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QuXG4gICAgICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIF9ldmVudE1ldGFkYXRhIGV2ZW50IG9iamVjdCBhcyBwZXIgdGhlIG9sZCB2ZXJzaW9uICh2MylcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRFdmVudE9iaihldmVudE9iaikge1xuICAgICAgICBpZiAoIWV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudE9iajtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGE7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihfZXZlbnRNZXRhZGF0YSwgZXZlbnRPYmopO1xuICAgICAgICByZXR1cm4gX2V2ZW50TWV0YWRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QgZXhsdWRpbmcgc3RhcnQgZW5kIHRpdGxlIGFsbERheSBvYmplY3RzIGlmIHRoZSBrZXkgbmFtZSBtYXRjaGVzLlxuICAgICAqICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIGRhdGEgZXZlbnQgb2JqZWN0IGFzIHBlciB0aGUgb2xkIHZlcnNpb24gKHYzKVxuICAgICAqL1xuICAgIHByaXZhdGUgY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudE9iaikge1xuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHM7XG4gICAgICAgIF8uZXh0ZW5kKGV2ZW50T2JqLCBfZXZlbnRNZXRhZGF0YSk7XG4gICAgICAgIHJldHVybiBldmVudE9iajtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50UmVzaXplKGV2ZW50UmVzaXplSW5mbykge1xuICAgICAgICBsZXQgbmV3RGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudFJlc2l6ZUluZm8uZXZlbnQpO1xuICAgICAgICBsZXQgb2xkRGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudFJlc2l6ZUluZm8ub2xkRXZlbnQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50cmVzaXplJywgeyRldmVudDogZXZlbnRSZXNpemVJbmZvLmpzRXZlbnQsICRuZXdEYXRhOiBuZXdEYXRhT2JqLCAkb2xkRGF0YTogb2xkRGF0YU9iaiwgJGRlbHRhOiBldmVudFJlc2l6ZUluZm8uZGVsdGEsICRyZXZlcnRGdW5jOiBldmVudFJlc2l6ZUluZm8ucmV2ZXJ0LCAkdWk6IHt9LCAkdmlldzogZXZlbnRSZXNpemVJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRXZlbnRDaGFuZ2VTdGFydChldmVudCkge1xuICAgICAgICB0aGlzLm9sZERhdGEgPSBnZXRDbG9uZWRPYmplY3QoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZlbnRDbGljayhldmVudENsaWNrSW5mbykge1xuICAgICAgICBsZXQgZXZlbnRPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iaihldmVudENsaWNrSW5mby5ldmVudCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZXZlbnRjbGljaycsIHskZXZlbnQ6IGV2ZW50Q2xpY2tJbmZvLmpzRXZlbnQsICRkYXRhOiBldmVudE9iaiwgJHZpZXc6IGV2ZW50Q2xpY2tJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50RGlkTW91bnQoZXZlbnQpIHtcbiAgICAgICAgbGV0IGV2ZW50T2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmooZXZlbnQuZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhcnR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcuZmMtbGlzdC10YWJsZScpLmFkZENsYXNzKCd0YWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZXZlbnRyZW5kZXInLCB7JGV2ZW50OiBldmVudC5lbCwgJGRhdGE6IGV2ZW50T2JqLCAkdmlldzogZXZlbnQudmlld30pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmlld0RpZE1vdW50KCR2aWV3KSB7XG4gICAgICAgIGlmICh0aGlzLmNhbGVuZGFydHlwZSA9PT0gVklFV19UWVBFUy5MSVNUKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJy5mYy1saXN0LXRhYmxlJykuYWRkQ2xhc3MoJ3RhYmxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCd2aWV3cmVuZGVyJywgeyR2aWV3OiAkdmlld30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbiB0aGUgdmlldyBvZiB0aGUgY2FsZW5kYXIgY2hhbmdlcy5cbiAgICAgKiBAcGFyYW0gZGF0YSBjb250YWlucyB0aGUgc3RhcnQgZW5kIGRhdGEgb2YgdGhlIGNhbGVuZGFyIHZpZXcuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkYXRlc1NldChkYXRhKSB7XG4gICAgICAgIHRoaXMuY3VycmVudHZpZXcgPSB7c3RhcnQ6IG1vbWVudChkYXRhLnN0YXJ0KS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLCBlbmQ6IG1vbWVudChkYXRhLmVuZCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKX07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkYXRlQ2xpY2soJGluZm8pIHtcbiAgICAgICAgY29uc3QgZGF0ZUluZm8gPSBnZXRVVENEYXRlVGltZSgkaW5mby5kYXRlKS52YWx1ZU9mKCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZGF0ZWNsaWNrJywgeyRkYXRlSW5mbzogZGF0ZUluZm99KTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIGNhbGVuZGFyIGhlYWRlciBvcHRpb25zIG9uY2UgdGhlIGNvbnRyb2xzIGNoYW5nZXNcbiAgICBwcml2YXRlIHVwZGF0ZUNhbGVuZGFySGVhZGVyT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgY3RybHMgPSB0aGlzLmNvbnRyb2xzLCB2aWV3VHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlLFxuICAgICAgICAgICAgcmVnRXggPSBuZXcgUmVnRXhwKCdcXFxcYmRheVxcXFxiJywgJ2cnKTtcbiAgICAgICAgbGV0IGxlZnQgPSAnJywgcmlnaHQgPSAnJztcbiAgICAgICAgaWYgKGN0cmxzICYmIHZpZXdUeXBlKSB7XG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ25hdmlnYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIGxlZnQgKz0gJyBwcmV2IG5leHQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ3RvZGF5JykpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ICs9ICcgdG9kYXknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ3llYXInKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5MSVNUKSA/ICdsaXN0WWVhcicgOiAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY3RybHMsICdtb250aCcpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgKz0gKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0TW9udGgnIDogJyBkYXlHcmlkTW9udGgnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhjdHJscywgJ3dlZWsnKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5CQVNJQykgPyAgJyBkYXlHcmlkV2VlaycgOiAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RXZWVrJyA6ICcgdGltZUdyaWRXZWVrJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlZ0V4LnRlc3QoY3RybHMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgKz0gKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnIGRheUdyaWREYXknIDogKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0RGF5JyA6ICcgdGltZUdyaWREYXknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZnQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmlnaHQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0LnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF8uZXh0ZW5kKHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmhlYWRlclRvb2xiYXIsIHsnc3RhcnQnOiBsZWZ0LCAnZW5kJzogcmlnaHR9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG5cbiAgICAgICAgdGhpcy5ldmVudFNvdXJjZXMucHVzaCh0aGlzLmRhdGFTZXRFdmVudHMpO1xuICAgICAgICBjb25zdCBGdWxsQ2FsZW5kYXIgPSB3aW5kb3dbJ0Z1bGxDYWxlbmRhciddO1xuICAgICAgICBpZiAoIUZ1bGxDYWxlbmRhci5fX3dtX2xvY2FsZV9pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgaTE4blNlcnZpY2UuaW5pdENhbGVuZGFyTG9jYWxlKCk7XG4gICAgICAgICAgICBGdWxsQ2FsZW5kYXIuX193bV9sb2NhbGVfaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUiwgWydoZWlnaHQnXSk7XG4gICAgICAgIHRoaXMuc2V0TG9jYWxlKCk7XG4gICAgfVxuXG4gICAgb25TdHlsZUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgc3VwZXIub25TdHlsZUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIGlmIChrZXkgPT09ICdoZWlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5oZWlnaHQgPSB0aGlzLmNhbGN1bGF0ZUhlaWdodChudik7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ2hlaWdodCcsIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmhlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdGlvbm1vZGUnOlxuICAgICAgICAgICAgICAgIGlmIChudiAhPT0gU0VMRUNUSU9OX01PREVTLk5PTkUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnc2VsZWN0YWJsZScsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobnYgPT09IFNFTEVDVElPTl9NT0RFUy5TSU5HTEUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnNlbGVjdENvbnN0cmFpbnQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiAnMDA6MDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6ICcyNDowMCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ3NlbGVjdENvbnN0cmFpbnQnLCB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3RDb25zdHJhaW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnc2VsZWN0Q29uc3RyYWludCcsIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnNlbGVjdGFibGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RhYmxlJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICAgICAgICAgIGlmIChudiAhPT0gJ21vbnRoJyB8fCB0aGlzLmNhbGVuZGFydHlwZSA9PT0gVklFV19UWVBFUy5MSVNUKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmRlZmF1bHRWaWV3ID0gdGhpcy5jYWxlbmRhcnR5cGUgKyBfLmNhcGl0YWxpemUobnYpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmRlZmF1bHRWaWV3ID0gbnY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdjaGFuZ2VWaWV3JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2FsZW5kYXJ0eXBlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFydHlwZSA9IG52IHx8ICdkYXlHcmlkJztcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRyb2xzJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFySGVhZGVyT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF0YXNldCc6XG4gICAgICAgICAgICAgICAgbGV0IGRhdGFTZXQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0ID0gbnY7XG4gICAgICAgICAgICAgICAgZGF0YVNldCA9IGNyZWF0ZUFycmF5RnJvbShnZXRDbG9uZWRPYmplY3QobnYpKTtcbiAgICAgICAgICAgICAgICBkYXRhU2V0ID0gdGhpcy5jb25zdHJ1Y3RDYWxlbmRhckRhdGFzZXQoZGF0YVNldCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2V0RXZlbnRzLmV2ZW50cyA9IGRhdGFTZXQuZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdGFydCA9IGV2ZW50LnN0YXJ0IHx8IGV2ZW50LmVuZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJFdmVudERhdGFTZXQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3cnOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhcj8uY2hhbmdlVmlldyh0aGlzLmdldFZpZXdUeXBlKHRoaXMudmlldyA/IHRoaXMudmlldyA6ICdkYXlHcmlkTW9udGgnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCBmb3IgdGhlIGV2ZW50IGxpbWl0IGFuZCBwYXJzaW5nIHRoZSB2YWx1ZSB3aGVuIGl0IGlzIHBlcmNlbnRhZ2UgYmFzZWQuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVIZWlnaHQoaGVpZ2h0KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgJHBhcmVudCA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5wYXJlbnQoKSxcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gaGVpZ2h0IHx8ICc2NTBweCc7XG5cbiAgICAgICAgbGV0IHBhcmVudEhlaWdodCA9ICRwYXJlbnQuY3NzKCdoZWlnaHQnKSxcbiAgICAgICAgICAgIGNvbXB1dGVkSGVpZ2h0OiBudW1iZXI7XG5cbiAgICAgICAgaWYgKF8uaW5jbHVkZXMoZWxIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgIGlmIChfLmluY2x1ZGVzKHBhcmVudEhlaWdodCwgJyUnKSkge1xuICAgICAgICAgICAgICAgIHBhcmVudEhlaWdodCA9ICRwYXJlbnQuaGVpZ2h0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21wdXRlZEhlaWdodCA9IChwYXJzZUludChwYXJlbnRIZWlnaHQsIDEwKSAqIE51bWJlcihlbEhlaWdodC5yZXBsYWNlKC9cXCUvZywgJycpKSkgLyAxMDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21wdXRlZEhlaWdodCA9IHBhcnNlSW50KGVsSGVpZ2h0LCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIudmlld3MubW9udGguZXZlbnRMaW1pdCA9IHBhcnNlSW50KCcnICsgY29tcHV0ZWRIZWlnaHQgLyAyMDAsIDEwKSArIDE7XG4gICAgICAgIHJldHVybiBjb21wdXRlZEhlaWdodDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBjb25zdCBjYWxlbmRhckVsID0gdGhpcy5fY2FsZW5kYXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgRnVsbENhbGVuZGFyID0gd2luZG93WydGdWxsQ2FsZW5kYXInXTtcbiAgICAgICAgY29uc3QgY2FsZW5kYXIgPSBuZXcgRnVsbENhbGVuZGFyLkNhbGVuZGFyKGNhbGVuZGFyRWwsIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyKTtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyID0gIGNhbGVuZGFyO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JlZm9yZXJlbmRlcicsIHsnJGV2ZW50JyA6IHt9fSk7XG4gICAgICAgIGNhbGVuZGFyLnJlbmRlcigpO1xuXG4gICAgICAgIC8vIGlmIHRoZSBjaGFuZ2VzIGFyZSBhbHJlYWR5IHN0YWNrZWQgYmVmb3JlIGNhbGVuZGFyIHJlbmRlcnMgdGhlbiBleGVjdXRlIHRoZW0gd2hlbiBuZWVkZWRcbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlc1N0YWNrLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzU3RhY2suZm9yRWFjaCgoY2hhbmdlT2JqKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucyhjaGFuZ2VPYmoub3BlcmF0aW9uVHlwZSwgY2hhbmdlT2JqLmFyZ3VtZW50S2V5LCBjaGFuZ2VPYmouYXJndW1lbnRWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvL1dNUy0yMjQxMiA6IGNoYW5nZSBjYWxlbmRlcidzIHZpZXcgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gc2V0IGZyb20gc3R1ZGlvXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmNoYW5nZVZpZXcodGhpcy5nZXRWaWV3VHlwZSh0aGlzLnZpZXcgPyB0aGlzLnZpZXcgOiAnZGF5R3JpZE1vbnRoJykpO1xuICAgICAgICB9LDUwKTtcbiAgICB9XG5cbiAgICAvLyBjb25zdHJ1Y3RzIHRoZSBjYWxlbmRhciBkYXRhc2V0IGJ5IG1hcHBpbmcgdGhlIGV2ZW50c3RhcnQsIGV2ZW50ZW5kLCBldmVudHRpdGxlIGV0Yy4sXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RDYWxlbmRhckRhdGFzZXQoZXZlbnRTb3VyY2UpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLmV2ZW50dGl0bGUgfHwgJ3RpdGxlJyxcbiAgICAgICAgICAgIGFsbERheTogdGhpcy5ldmVudGFsbGRheSB8fCAnYWxsZGF5JyxcbiAgICAgICAgICAgIHN0YXJ0OiB0aGlzLmV2ZW50c3RhcnQgfHwgJ3N0YXJ0JyxcbiAgICAgICAgICAgIGVuZDogdGhpcy5ldmVudGVuZCB8fCAnZW5kJyxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5ldmVudGNsYXNzIHx8ICdjbGFzc05hbWUnXG4gICAgICAgIH07XG5cbiAgICAgICAgZXZlbnRTb3VyY2UuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgICAgICAgICBvYmouX2V2ZW50TWV0YWRhdGEgPSBfLmNsb25lKG9iaik7XG4gICAgICAgICAgICBfLm1hcEtleXMocHJvcGVydGllcywgICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG9ialZhbDtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IGdldEV2YWx1YXRlZERhdGEob2JqLCB7ZXhwcmVzc2lvbjogdmFsdWV9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYWxsRGF5Jykge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSAhIV8uZ2V0KG9iaiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IF8uZ2V0KG9iaiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIW9ialZhbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9ialtrZXldID0gb2JqVmFsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXZlbnRTb3VyY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2NhbGUoKSB7XG4gICAgICAgIGNvbnN0IHllYXIgPSBfLmdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1lFQVInKSB8fCBCVVRUT05fVEVYVC5ZRUFSO1xuICAgICAgICBjb25zdCBtb250aCA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfTU9OVEgnKSB8fCBCVVRUT05fVEVYVC5NT05USDtcbiAgICAgICAgY29uc3Qgd2VlayA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfV0VFSycpIHx8IEJVVFRPTl9URVhULldFRUs7XG4gICAgICAgIGNvbnN0IGRheSA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfREFZJykgfHwgQlVUVE9OX1RFWFQuREFZO1xuICAgICAgICBjb25zdCB0b2RheSA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfVE9EQVknKSB8fCBCVVRUT05fVEVYVC5UT0RBWTtcbiAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuYnV0dG9uVGV4dCAgICA9IHsgeWVhciwgbW9udGgsIHdlZWssIGRheSwgdG9kYXksXG4gICAgICAgICAgICAnbGlzdFllYXInOiB5ZWFyLFxuICAgICAgICAgICAgJ2xpc3RNb250aCc6IG1vbnRoLFxuICAgICAgICAgICAgJ2xpc3RXZWVrJzogd2VlayxcbiAgICAgICAgICAgICdsaXN0RGF5JzogZGF5XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2FsZW5kYXIgb3B0aW9ucyB3aXRoIHRoZSBuZXdTZXQgb2Ygb3B0aW9uc1xuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgb3ZlcnJpZGVEZWZhdWx0cyhvcHRpb25zKSB7XG4gICAgICAgIGlmIChfLmlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhvcHRpb25zKS5tYXAob3B0aW9uID0+IHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24ob3B0aW9uWzBdLCBvcHRpb25bMV0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGlmIHRoZSBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgYmVmb3JlIHRoZSBjYWxlbmRhciByZW5kZXJzLCB0aGUgY2hhbmdlcyBhcmUgcHVzaGVkIGludG8gY2hhbmdlc1N0YWNrIGFuZCB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBjYWxlbmRhciBnZXRzIHJlbmRlcmVkXG4gICAgICogaWYgdGhlIGNhbGVuZGFyIGlzIGFscmVhZHkgcmVuZGVyZWQsIHRoZW4gdGhlIHNwZWNpZmljIG9wZXJhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCBhY2NvcmRpbmcgdG8gdGhlIG9wZXJhdGlvbiB0eXBlXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqL1xuICAgIHVwZGF0ZUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7Ly9cbiAgICAgICAgaWYgKCF0aGlzLiRmdWxsQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLnB1c2goe1xuICAgICAgICAgICAgICAgIG9wZXJhdGlvblR5cGU6IG9wZXJhdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgYXJndW1lbnRLZXk6IGFyZ3VtZW50S2V5LFxuICAgICAgICAgICAgICAgIGFyZ3VtZW50VmFsdWU6IGFyZ3VtZW50VmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlDYWxlbmRhck9wdGlvbnMob3BlcmF0aW9uVHlwZSwgYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgIH1cblxuICAgIHJlZHJhdygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ3JlbmRlcicpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXI/LmNoYW5nZVZpZXcodGhpcy5nZXRWaWV3VHlwZSh0aGlzLnZpZXcgPyB0aGlzLnZpZXcgOiAnZGF5R3JpZE1vbnRoJykpO1xuICAgIH1cblxuICAgIC8vIG9uIGRhdGUgY2hhbmdlIGludm9rZSB0aGUgc2VsZWN0IGV2ZW50LCBhbmQgaWYgZGF0ZSBoYXMgZXZlbnQgb24gaXQgdGhlbiBpbnZva2UgdGhlIGV2ZW50IGNsaWNrLlxuICAgIHByaXZhdGUgb25WYWx1ZUNoYW5nZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3h5TW9kZWwgPSB2YWx1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlICAgICAgICA9IHRoaXMucHJveHlNb2RlbCAmJiBtb21lbnQodGhpcy5wcm94eU1vZGVsKS5zdGFydE9mKCdkYXknKS5mb3JtYXQoZGF0ZUZvcm1hdCksXG4gICAgICAgICAgICBzZWxlY3RlZEV2ZW50RGF0YSAgID0gdGhpcy5ldmVudERhdGFbc2VsZWN0ZWREYXRlXSxcbiAgICAgICAgICAgIHN0YXJ0ICAgICAgICAgICAgICAgPSBtb21lbnQodGhpcy5wcm94eU1vZGVsKSxcbiAgICAgICAgICAgIGVuZCAgICAgICAgICAgICAgICAgPSBtb21lbnQodGhpcy5wcm94eU1vZGVsKS5lbmRPZignZGF5Jyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRhID0gc2VsZWN0ZWRFdmVudERhdGE7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRlcyA9IHtcbiAgICAgICAgICAgICdzdGFydCc6IG1vbWVudChzZWxlY3RlZERhdGUpLnZhbHVlT2YoKSxcbiAgICAgICAgICAgICdlbmQnICA6IG1vbWVudChzZWxlY3RlZERhdGUpLmVuZE9mKCdkYXknKS52YWx1ZU9mKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0KHN0YXJ0LnZhbHVlT2YoKSwgZW5kLnZhbHVlT2YoKSwge30sIHRoaXMsIHNlbGVjdGVkRXZlbnREYXRhKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRXZlbnREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5ldmVudENsaWNrKHNlbGVjdGVkRXZlbnREYXRhLCB7fSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSBhbiBvYmplY3QgY29udGFpbmluZyBzb3VyY2Ugb2YgY2FsZW5kYXIsIGFwaWtleSBhbmQgY2FsZW5kYXJJZCBhbmQgd2lsbCBpbnRlZ3JhdGUgdGhlIHJlc3BlY3RpdmUgY2FsZW5kYXIgd2l0aCBmdWxsY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGV2ZW50T2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIGFkZEV2ZW50U291cmNlKGV2ZW50T2JqZWN0KSB7XG4gICAgICAgIGlmIChfLmlzRW1wdHkoZXZlbnRPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2FkZEV2ZW50U291cmNlIG1ldGhvZCByZXF1aXJlcyBhbiBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50T2JqZWN0LnNvdXJjZSA9PT0gJ2dvb2dsZScpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkgfHwgIWV2ZW50T2JqZWN0Lmdvb2dsZUNhbGVuZGFySWQgKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdGb3IgZ29vZ2xlIGNhbGVuZGFyIGludGVncmF0aW9uLCBcXCdnb29nbGVDYWxlbmRhckFwaUtleVxcJyBhbmQgXFwnZ29vZ2xlQ2FsZW5kYXJJZFxcJyBzaG91bGQgYmUgcGFzc2VkIGluIHRoZSBwYXJhbWV0ZXIgb2JqZWN0LicpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oJ2dvb2dsZUNhbGVuZGFyQXBpS2V5JywgZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkpO1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmFkZEV2ZW50U291cmNlKHtcbiAgICAgICAgICAgICAgICBnb29nbGVDYWxlbmRhcklkOiBldmVudE9iamVjdC5nb29nbGVDYWxlbmRhcklkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB0aGUgdmlld1R5cGVLZXkgYWNjb3JkaW5nIHRvIHRoZSBjYWxlbmRhclR5cGUgYW5kIHZpZXdUeXBlIHNlbGVjdGVkXG4gICAgICogQHBhcmFtIHZpZXdLZXlcbiAgICAgKi9cbiAgICBnZXRWaWV3VHlwZSh2aWV3S2V5KSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyVHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgIGlmICh2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RNb250aCcgOiAnZGF5R3JpZE1vbnRoJztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAnd2VlaycpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuQkFTSUMpID8gICdkYXlHcmlkV2VlaycgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RXZWVrJyA6ICd0aW1lR3JpZFdlZWsnO1xuICAgICAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdkYXknKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnZGF5R3JpZERheScgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3REYXknIDogJ3RpbWVHcmlkRGF5JztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSB2aWV3S2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqIEhhbmRsZSB2YXJpb3VzIG9wZXJhdGlvbnMgbGlrZSBSZW5kZXJpbmcgQ2FsZW5kYXIsIGNoYW5naW5nIHRoZSBjYWxlbmRhciB2aWV3VHlwZSwgc2V0dGluZyB0aGUgY2FsZW5kYXJPcHRpb25zIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uVHlwZS5cbiAgICAgKi9cbiAgICBhcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAob3BlcmF0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmVuZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2hhbmdlVmlldyc6XG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuZ2V0Vmlld1R5cGUoYXJndW1lbnRLZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyB0aGUgbmV3IGV2ZW50c0RhdGFTZXQgdG8gdGhlIGNhbGVuZGFyIG9iamVjdCB3aXRoIGFkZEV2ZW50IE1ldGhvZCBhbmQgcmUtcmVuZGVycyB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZW5kZXJFdmVudERhdGFTZXQoKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuYmF0Y2hSZW5kZXJpbmcoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBzZWxmLiRmdWxsQ2FsZW5kYXIuZ2V0RXZlbnRzKCk7XG4gICAgICAgICAgICBfLmVhY2goIGV2ZW50cywgZnVuY3Rpb24oIGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhID0gc2VsZi4kZnVsbENhbGVuZGFyLmdldEV2ZW50QnlJZChldmVudC5pZCk7XG4gICAgICAgICAgICAgICAgZXZlbnREYXRhLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfLmVhY2goIHNlbGYuZGF0YVNldEV2ZW50cy5ldmVudHMsIGZ1bmN0aW9uKCBldmVudCkge1xuICAgICAgICAgICAgICAgIHNlbGYuJGZ1bGxDYWxlbmRhci5hZGRFdmVudChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiAjY2FsZW5kYXIgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3IHx8ICdtb250aCdcIj48L2Rpdj5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ViewEncapsulation,
|
|
2
|
+
import { Component, ViewEncapsulation, ViewChild, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
|
|
@@ -88,7 +88,7 @@ class CalendarComponent extends StylableComponent {
|
|
|
88
88
|
// this function selects the default date given for the calendar
|
|
89
89
|
selectDate() {
|
|
90
90
|
let start, end;
|
|
91
|
-
// checks if datavalue is an object and not a Date object
|
|
91
|
+
// checks if datavalue is an object and not a Date object
|
|
92
92
|
if (_.isObject(this.datavalue) && !_.isDate(this.datavalue)) {
|
|
93
93
|
start = moment(this.datavalue.start);
|
|
94
94
|
end = moment(this.datavalue.end);
|
|
@@ -286,9 +286,8 @@ class CalendarComponent extends StylableComponent {
|
|
|
286
286
|
_.extend(this.calendarOptions.calendar.headerToolbar, { 'start': left, 'end': right });
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
|
-
constructor(inj, i18nService
|
|
290
|
-
super(inj, WIDGET_CONFIG
|
|
291
|
-
this._viewParent = _viewParent;
|
|
289
|
+
constructor(inj, i18nService) {
|
|
290
|
+
super(inj, WIDGET_CONFIG);
|
|
292
291
|
this.controls = 'navigation, today, year, month, week, day';
|
|
293
292
|
this.eventSources = [];
|
|
294
293
|
this.dataSetEvents = {
|
|
@@ -608,7 +607,7 @@ class CalendarComponent extends StylableComponent {
|
|
|
608
607
|
}
|
|
609
608
|
}
|
|
610
609
|
CalendarComponent.initializeProps = registerProps();
|
|
611
|
-
CalendarComponent.ɵfac = function CalendarComponent_Factory(t) { return new (t || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService)
|
|
610
|
+
CalendarComponent.ɵfac = function CalendarComponent_Factory(t) { return new (t || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService)); };
|
|
612
611
|
CalendarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarComponent, selectors: [["", "wmCalendar", ""]], viewQuery: function CalendarComponent_Query(rf, ctx) {
|
|
613
612
|
if (rf & 1) {
|
|
614
613
|
i0.ɵɵviewQuery(_c0, 5);
|
|
@@ -635,11 +634,7 @@ CalendarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarC
|
|
|
635
634
|
args: [{ selector: '[wmCalendar]', providers: [
|
|
636
635
|
provideAsWidgetRef(CalendarComponent)
|
|
637
636
|
], encapsulation: ViewEncapsulation.None, template: "<div #calendar [attr.aria-label]=\"view || 'month'\"></div>\n", styles: [".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc *:before,.fc *:after{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc th,.fc td{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem #2c3e5040}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color, #1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color, #1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color, #1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color, #151e27)}.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.fc .fc-button-group>.fc-button:hover{z-index:1}.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button.fc-button-active{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;inset:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section{height:1px}.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-header>*,.fc .fc-scrollgrid-section-footer>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color, #fff);position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;inset:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-non-business,.fc .fc-highlight{position:absolute;inset:0}.fc .fc-non-business{background:rgba(215,215,215,.3);background:var(--fc-non-business-color, rgba(215, 215, 215, .3))}.fc .fc-bg-event{background:rgb(143,223,130);background:var(--fc-bg-event-color, rgb(143, 223, 130));opacity:.3;opacity:var(--fc-bg-event-opacity, .3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size, .85em);font-style:italic}.fc .fc-highlight{background:rgba(188,232,241,.3);background:var(--fc-highlight-color, rgba(188, 232, 241, .3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event[href],.fc-event.fc-event-draggable{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px #0000004d}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event:hover .fc-event-resizer,.fc-event-selected .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width, 1px);width:8px;width:var(--fc-event-resizer-dot-total-width, 8px);height:8px;height:var(--fc-event-resizer-dot-total-width, 8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;inset:-20px}.fc-event-selected{box-shadow:0 2px 5px #0003}.fc-event-selected:before{content:\"\";position:absolute;z-index:3;inset:0}.fc-event-selected:after{content:\"\";background:rgba(0,0,0,.25);background:var(--fc-event-selected-overlay-color, rgba(0, 0, 0, .25));position:absolute;z-index:1;inset:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness, 8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}:root{--fc-daygrid-event-dot-width: 8px}.fc .fc-popover{position:fixed;top:0;box-shadow:0 2px 6px #00000026}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd);background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-theme-standard .fc-popover-header{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-daygrid-day-frame:before,.fc-daygrid-day-events:before,.fc-daygrid-event-harness:before{content:\"\";clear:both;display:table}.fc-daygrid-day-frame:after,.fc-daygrid-day-events:after,.fc-daygrid-event-harness:after{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:2px 3px 0}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));color:gray;color:var(--fc-neutral-text-color, #808080)}.fc .fc-more-popover{z-index:8}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event:hover,.fc-daygrid-dot-event.fc-event-mirror{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width, 8px) / 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness, 8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{position:relative;z-index:1;min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table{position:relative;z-index:1}.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:\"\\a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;inset:0}.fc .fc-timegrid-col.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols{position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc-media-screen .fc-timegrid-event-harness{position:absolute}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color, #fff)}.fc-timegrid-event{font-size:.85em;font-size:var(--fc-small-font-size, .85em);border-radius:3px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size, .85em);margin-bottom:1px}.fc-timegrid-event-condensed .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-condensed .fc-event-time:after{content:\"\\a0-\\a0\"}.fc-timegrid-event-condensed .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-media-screen .fc-timegrid-event{position:absolute;inset:0 0 1px}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:root{--fc-list-event-dot-width: 10px;--fc-list-event-hover-bg-color: #f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-list-empty{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-table td,.fc .fc-list-day-cushion{padding:8px 14px}.fc .fc-list-day-cushion:after{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color, #f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width, 10px) / 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-theme-bootstrap a:not([href]){color:inherit}\n"] }]
|
|
638
|
-
}], function () {
|
|
639
|
-
return [{ type: i0.Injector }, { type: i1.AbstractI18nService }, { type: i1.UserDefinedExecutionContext, decorators: [{
|
|
640
|
-
type: Optional
|
|
641
|
-
}] }];
|
|
642
|
-
}, { _calendar: [{
|
|
637
|
+
}], function () { return [{ type: i0.Injector }, { type: i1.AbstractI18nService }]; }, { _calendar: [{
|
|
643
638
|
type: ViewChild,
|
|
644
639
|
args: ['calendar']
|
|
645
640
|
}], _datepicker: [{
|