@kirbydesign/designsystem 5.2.2 → 6.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/kirbydesign-designsystem-testing-base.umd.js +1988 -1259
- package/bundles/kirbydesign-designsystem-testing-base.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js +34 -16
- package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem-testing-jest.umd.js +34 -16
- package/bundles/kirbydesign-designsystem-testing-jest.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem.umd.js +10025 -9233
- package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
- package/esm2015/kirbydesign-designsystem.js +1 -115
- package/esm2015/lib/components/accordion/accordion-item.component.js +31 -20
- package/esm2015/lib/components/accordion/accordion.directive.js +11 -7
- package/esm2015/lib/components/app/app.component.js +23 -18
- package/esm2015/lib/components/app/app.module.js +13 -8
- package/esm2015/lib/components/avatar/avatar.component.js +31 -19
- package/esm2015/lib/components/button/button.component.js +63 -34
- package/esm2015/lib/components/calendar/calendar.component.js +59 -35
- package/esm2015/lib/components/calendar/helpers/calendar.helper.js +8 -8
- package/esm2015/lib/components/card/card-footer/card-footer.component.js +14 -11
- package/esm2015/lib/components/card/card-header/card-header.component.js +26 -15
- package/esm2015/lib/components/card/card.component.js +34 -25
- package/esm2015/lib/components/chart/chart-js/chart-js.service.js +48 -34
- package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.js +1 -3
- package/esm2015/lib/components/chart/chart.component.js +36 -39
- package/esm2015/lib/components/chart/chart.module.js +13 -8
- package/esm2015/lib/components/chart/chart.types.js +1 -1
- package/esm2015/lib/components/chart/configs/chart-config.service.js +7 -4
- package/esm2015/lib/components/chart/configs/interaction-functions-extensions.config.js +8 -10
- package/esm2015/lib/components/chart/configs/shared.utils.js +1 -1
- package/esm2015/lib/components/chart/configs/type.config.js +1 -3
- package/esm2015/lib/components/chart/index.js +2 -1
- package/esm2015/lib/components/chart-deprecated/chart-deprecated-helper.js +7 -4
- package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.js +56 -38
- package/esm2015/lib/components/chart-deprecated/options/areaspline.js +7 -9
- package/esm2015/lib/components/chart-deprecated/options/donut.js +5 -7
- package/esm2015/lib/components/chart-deprecated/options/timeseries.js +8 -10
- package/esm2015/lib/components/checkbox/checkbox.component.js +47 -21
- package/esm2015/lib/components/chip/chip.component.js +24 -13
- package/esm2015/lib/components/divider/divider.component.js +16 -12
- package/esm2015/lib/components/dropdown/dropdown.component.js +154 -61
- package/esm2015/lib/components/dropdown/keyboard-handler.service.js +9 -7
- package/esm2015/lib/components/empty-state/empty-state.component.js +27 -16
- package/esm2015/lib/components/fab-sheet/fab-sheet.component.js +37 -23
- package/esm2015/lib/components/flag/flag.component.js +21 -17
- package/esm2015/lib/components/form-field/directives/date/date-input.directive.js +16 -15
- package/esm2015/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.js +41 -28
- package/esm2015/lib/components/form-field/form-field-message/form-field-message.component.js +17 -13
- package/esm2015/lib/components/form-field/form-field.component.js +39 -26
- package/esm2015/lib/components/form-field/input/input.component.js +65 -23
- package/esm2015/lib/components/form-field/input-counter/input-counter.component.js +14 -11
- package/esm2015/lib/components/form-field/textarea/textarea.component.js +51 -20
- package/esm2015/lib/components/grid/breakpoint-helper.service.js +9 -9
- package/esm2015/lib/components/grid/grid.component.js +21 -18
- package/esm2015/lib/components/icon/icon-registry.service.js +11 -19
- package/esm2015/lib/components/icon/icon-settings.js +2 -3
- package/esm2015/lib/components/icon/icon.component.js +27 -20
- package/esm2015/lib/components/icon/icon.module.js +13 -8
- package/esm2015/lib/components/icon/index.js +1 -2
- package/esm2015/lib/components/icon/kirby-icon-settings.js +2 -4
- package/esm2015/lib/components/index.js +11 -10
- package/esm2015/lib/components/item/item.component.js +33 -16
- package/esm2015/lib/components/item/item.module.js +13 -8
- package/esm2015/lib/components/item/label/label.component.js +18 -12
- package/esm2015/lib/components/item-group/item-group.component.js +15 -11
- package/esm2015/lib/components/item-sliding/item-sliding.component.js +19 -12
- package/esm2015/lib/components/list/directives/infinite-scroll.directive.js +18 -17
- package/esm2015/lib/components/list/directives/list-item-color.directive.js +17 -11
- package/esm2015/lib/components/list/helpers/list-helper.js +7 -4
- package/esm2015/lib/components/list/index.js +2 -3
- package/esm2015/lib/components/list/list-experimental/list-experimental.component.js +20 -13
- package/esm2015/lib/components/list/list-header/list-header.component.js +14 -11
- package/esm2015/lib/components/list/list-item/list-item.component.js +38 -24
- package/esm2015/lib/components/list/list-section-header/list-section-header.component.js +15 -14
- package/esm2015/lib/components/list/list.component.js +81 -40
- package/esm2015/lib/components/list/list.directive.js +34 -45
- package/esm2015/lib/components/list/list.module.js +33 -12
- package/esm2015/lib/components/list/pipes/group-by.pipe.js +10 -6
- package/esm2015/lib/components/loading-overlay/loading-overlay.component.js +20 -13
- package/esm2015/lib/components/loading-overlay/loading-overlay.service.js +9 -13
- package/esm2015/lib/components/modal/action-sheet/action-sheet.component.js +32 -18
- package/esm2015/lib/components/modal/alert/alert.component.js +38 -26
- package/esm2015/lib/components/modal/alert/config/alert-config.js +1 -1
- package/esm2015/lib/components/modal/footer/modal-footer.component.js +25 -13
- package/esm2015/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.js +25 -21
- package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.js +1 -1
- package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.js +124 -56
- package/esm2015/lib/components/modal/services/action-sheet.helper.js +8 -8
- package/esm2015/lib/components/modal/services/alert.helper.js +10 -20
- package/esm2015/lib/components/modal/services/modal-animation-builder.service.js +7 -10
- package/esm2015/lib/components/modal/services/modal-navigation.service.js +8 -13
- package/esm2015/lib/components/modal/services/modal.controller.js +17 -16
- package/esm2015/lib/components/modal/services/modal.helper.js +10 -10
- package/esm2015/lib/components/page/index.js +2 -1
- package/esm2015/lib/components/page/page-footer/page-footer.component.js +21 -18
- package/esm2015/lib/components/page/page.component.js +187 -118
- package/esm2015/lib/components/page/page.module.js +60 -32
- package/esm2015/lib/components/popover/popover.component.js +27 -23
- package/esm2015/lib/components/progress-circle/progress-circle-ring.component.js +29 -17
- package/esm2015/lib/components/progress-circle/progress-circle.component.js +30 -21
- package/esm2015/lib/components/radio/radio-group/radio-group.component.js +60 -34
- package/esm2015/lib/components/radio/radio.component.js +36 -17
- package/esm2015/lib/components/range/range.component.js +51 -29
- package/esm2015/lib/components/reorder-list/reorder-list.component.js +32 -21
- package/esm2015/lib/components/router-outlet/router-outlet.component.js +18 -12
- package/esm2015/lib/components/router-outlet/router-outlet.module.js +13 -8
- package/esm2015/lib/components/section-header/section-header.component.js +15 -9
- package/esm2015/lib/components/segmented-control/segment-item.js +1 -1
- package/esm2015/lib/components/segmented-control/segmented-control.component.js +38 -29
- package/esm2015/lib/components/shared/component-loader.directive.js +15 -16
- package/esm2015/lib/components/shared/resize-observer/resize-observer.factory.js +7 -5
- package/esm2015/lib/components/shared/resize-observer/resize-observer.service.js +7 -10
- package/esm2015/lib/components/slide-button/slide-button.component.js +22 -19
- package/esm2015/lib/components/slides/slides.component.js +42 -20
- package/esm2015/lib/components/spinner/index.js +3 -0
- package/esm2015/lib/components/spinner/spinner.component.js +14 -11
- package/esm2015/lib/components/spinner/spinner.module.js +14 -9
- package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.js +9 -3
- package/esm2015/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.js +25 -20
- package/esm2015/lib/components/tabs/tab-button/tab-button.component.js +21 -18
- package/esm2015/lib/components/tabs/tabs.component.js +20 -16
- package/esm2015/lib/components/tabs/tabs.module.js +14 -9
- package/esm2015/lib/components/tabs/tabs.service.js +9 -7
- package/esm2015/lib/components/toast/config/toast-config.js +1 -1
- package/esm2015/lib/components/toast/services/toast.controller.js +8 -8
- package/esm2015/lib/components/toast/services/toast.helper.js +8 -12
- package/esm2015/lib/components/toggle/toggle.component.js +21 -14
- package/esm2015/lib/components/toggle-button/index.js +3 -0
- package/esm2015/lib/components/toggle-button/toggle-button.component.js +20 -13
- package/esm2015/lib/components/toggle-button/toggle-button.module.js +13 -8
- package/esm2015/lib/components/web-component-proxies.component.js +13 -15
- package/esm2015/lib/directives/element-as-button/element-as-button.directive.js +26 -17
- package/esm2015/lib/directives/fit-heading/fit-heading.directive.js +16 -17
- package/esm2015/lib/directives/fit-heading/fit-heading.module.js +12 -7
- package/esm2015/lib/directives/index.js +3 -1
- package/esm2015/lib/directives/key-handler/key-handler.directive.js +14 -14
- package/esm2015/lib/directives/modal-router-link/modal-router-link.directive.js +20 -15
- package/esm2015/lib/directives/theme-color/theme-color.directive.js +55 -24
- package/esm2015/lib/helpers/element-has-ancestor.js +1 -1
- package/esm2015/lib/helpers/line-clamp-helper.js +7 -8
- package/esm2015/lib/helpers/platform.service.js +9 -11
- package/esm2015/lib/index.js +1 -5
- package/esm2015/lib/kirby.module.js +166 -25
- package/esm2015/lib/types/window-ref.js +9 -7
- package/esm2015/testing-base/kirbydesign-designsystem-testing-base.js +1 -59
- package/esm2015/testing-base/lib/components/index.js +56 -0
- package/esm2015/testing-base/lib/components/mock.accordion-item.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.action-sheet.component.js +38 -24
- package/esm2015/testing-base/lib/components/mock.app.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.avatar.component.js +37 -24
- package/esm2015/testing-base/lib/components/mock.button.component.js +36 -24
- package/esm2015/testing-base/lib/components/mock.calendar.component.js +54 -31
- package/esm2015/testing-base/lib/components/mock.card-footer.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.card-header.component.js +30 -20
- package/esm2015/testing-base/lib/components/mock.card.component.js +34 -22
- package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.js +38 -24
- package/esm2015/testing-base/lib/components/mock.chart.component.js +38 -25
- package/esm2015/testing-base/lib/components/mock.checkbox.component.js +36 -23
- package/esm2015/testing-base/lib/components/mock.chip.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.divider.component.js +24 -17
- package/esm2015/testing-base/lib/components/mock.dropdown.component.js +49 -30
- package/esm2015/testing-base/lib/components/mock.empty-state.component.js +30 -20
- package/esm2015/testing-base/lib/components/mock.fab-sheet.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.flag.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.form-field-message.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.form-field.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.grid.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.icon.component.js +29 -20
- package/esm2015/testing-base/lib/components/mock.input-counter.component.js +24 -17
- package/esm2015/testing-base/lib/components/mock.input.component.js +42 -27
- package/esm2015/testing-base/lib/components/mock.item-group.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.item-sliding.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.item.component.js +33 -22
- package/esm2015/testing-base/lib/components/mock.label.component.js +24 -17
- package/esm2015/testing-base/lib/components/mock.list-experimental.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.list-header.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.list-item.component.js +40 -25
- package/esm2015/testing-base/lib/components/mock.list-section-header.component.js +24 -17
- package/esm2015/testing-base/lib/components/mock.list.component.js +50 -30
- package/esm2015/testing-base/lib/components/mock.loading-overlay.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.modal-footer.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.page-footer.component.js +24 -17
- package/esm2015/testing-base/lib/components/mock.page.component.js +228 -125
- package/esm2015/testing-base/lib/components/mock.popover.component.js +29 -20
- package/esm2015/testing-base/lib/components/mock.progress-circle.component.js +28 -19
- package/esm2015/testing-base/lib/components/mock.radio-group.component.js +38 -24
- package/esm2015/testing-base/lib/components/mock.radio.component.js +30 -20
- package/esm2015/testing-base/lib/components/mock.range.component.js +44 -27
- package/esm2015/testing-base/lib/components/mock.reorder-list.component.js +32 -21
- package/esm2015/testing-base/lib/components/mock.router-outlet.component.js +24 -17
- package/esm2015/testing-base/lib/components/mock.section-header.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.segmented-control.component.js +35 -23
- package/esm2015/testing-base/lib/components/mock.slide-button.component.js +30 -20
- package/esm2015/testing-base/lib/components/mock.slides.component.js +51 -0
- package/esm2015/testing-base/lib/components/mock.spinner.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.tab-button.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.tabs.component.js +22 -14
- package/esm2015/testing-base/lib/components/mock.textarea.component.js +35 -23
- package/esm2015/testing-base/lib/components/mock.toggle-button.component.js +26 -18
- package/esm2015/testing-base/lib/components/mock.toggle.component.js +28 -19
- package/esm2015/testing-base/lib/components/mock.web-component-proxies.component.js +33 -0
- package/esm2015/testing-base/lib/directives/index.js +4 -0
- package/esm2015/testing-base/lib/directives/mock.accordion.directive.js +22 -13
- package/esm2015/testing-base/lib/directives/mock.fit-heading.directive.js +24 -15
- package/esm2015/testing-base/lib/directives/mock.theme-color.directive.js +24 -16
- package/esm2015/testing-base/lib/index.js +4 -0
- package/esm2015/testing-base/lib/kirby-testing-base.module.js +69 -7
- package/esm2015/testing-base/lib/mock-components.js +5 -2
- package/esm2015/testing-base/public_api.js +2 -2
- package/esm2015/testing-jasmine/kirbydesign-designsystem-testing-jasmine.js +1 -2
- package/esm2015/testing-jasmine/lib/kirby-testing.module.js +14 -8
- package/esm2015/testing-jasmine/lib/mock-providers.js +1 -1
- package/esm2015/testing-jest/kirbydesign-designsystem-testing-jest.js +1 -2
- package/esm2015/testing-jest/lib/kirby-testing.module.js +14 -8
- package/esm2015/testing-jest/lib/mock-providers.js +1 -1
- package/fesm2015/kirbydesign-designsystem-testing-base.js +1859 -1163
- package/fesm2015/kirbydesign-designsystem-testing-base.js.map +1 -1
- package/fesm2015/kirbydesign-designsystem-testing-jasmine.js +13 -8
- package/fesm2015/kirbydesign-designsystem-testing-jasmine.js.map +1 -1
- package/fesm2015/kirbydesign-designsystem-testing-jest.js +13 -8
- package/fesm2015/kirbydesign-designsystem-testing-jest.js.map +1 -1
- package/fesm2015/kirbydesign-designsystem.js +5261 -4353
- package/fesm2015/kirbydesign-designsystem.js.map +1 -1
- package/icons/svg/more.svg +5 -7
- package/kirbydesign-designsystem.d.ts +1 -114
- package/lib/components/accordion/accordion-item.component.d.ts +3 -0
- package/lib/components/accordion/accordion.directive.d.ts +3 -0
- package/lib/components/app/app.component.d.ts +3 -0
- package/lib/components/app/app.module.d.ts +7 -0
- package/lib/components/avatar/avatar.component.d.ts +5 -2
- package/lib/components/button/button.component.d.ts +5 -2
- package/lib/components/calendar/calendar.component.d.ts +3 -0
- package/lib/components/calendar/helpers/calendar.helper.d.ts +3 -0
- package/lib/components/card/card-footer/card-footer.component.d.ts +3 -0
- package/lib/components/card/card-header/card-header.component.d.ts +3 -0
- package/lib/components/card/card.component.d.ts +3 -0
- package/lib/components/chart/chart-js/chart-js.service.d.ts +7 -3
- package/lib/components/chart/chart.component.d.ts +5 -5
- package/lib/components/chart/chart.module.d.ts +5 -0
- package/lib/components/chart/chart.types.d.ts +1 -0
- package/lib/components/chart/configs/chart-config.service.d.ts +4 -1
- package/lib/components/chart/index.d.ts +1 -0
- package/lib/components/chart-deprecated/chart-deprecated-helper.d.ts +3 -0
- package/lib/components/chart-deprecated/chart-deprecated.component.d.ts +3 -0
- package/lib/components/checkbox/checkbox.component.d.ts +3 -0
- package/lib/components/chip/chip.component.d.ts +3 -0
- package/lib/components/divider/divider.component.d.ts +3 -0
- package/lib/components/dropdown/dropdown.component.d.ts +5 -2
- package/lib/components/dropdown/keyboard-handler.service.d.ts +3 -0
- package/lib/components/empty-state/empty-state.component.d.ts +3 -0
- package/lib/components/fab-sheet/fab-sheet.component.d.ts +3 -0
- package/lib/components/flag/flag.component.d.ts +3 -0
- package/lib/components/form-field/directives/date/date-input.directive.d.ts +3 -0
- package/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.d.ts +3 -0
- package/lib/components/form-field/form-field-message/form-field-message.component.d.ts +3 -0
- package/lib/components/form-field/form-field.component.d.ts +3 -0
- package/lib/components/form-field/input/input.component.d.ts +4 -1
- package/lib/components/form-field/input-counter/input-counter.component.d.ts +5 -2
- package/lib/components/form-field/textarea/textarea.component.d.ts +3 -0
- package/lib/components/grid/breakpoint-helper.service.d.ts +3 -0
- package/lib/components/grid/grid.component.d.ts +3 -0
- package/lib/components/icon/icon-registry.service.d.ts +4 -2
- package/lib/components/icon/icon-settings.d.ts +0 -2
- package/lib/components/icon/icon.component.d.ts +4 -1
- package/lib/components/icon/icon.module.d.ts +6 -0
- package/lib/components/icon/index.d.ts +1 -1
- package/lib/components/index.d.ts +10 -9
- package/lib/components/item/item.component.d.ts +4 -1
- package/lib/components/item/item.module.d.ts +9 -0
- package/lib/components/item/label/label.component.d.ts +3 -0
- package/lib/components/item-group/item-group.component.d.ts +3 -0
- package/lib/components/item-sliding/item-sliding.component.d.ts +3 -0
- package/lib/components/list/directives/infinite-scroll.directive.d.ts +3 -0
- package/lib/components/list/directives/list-item-color.directive.d.ts +3 -0
- package/lib/components/list/helpers/list-helper.d.ts +3 -0
- package/lib/components/list/index.d.ts +1 -2
- package/lib/components/list/list-experimental/list-experimental.component.d.ts +3 -0
- package/lib/components/list/list-header/list-header.component.d.ts +3 -0
- package/lib/components/list/list-item/list-item.component.d.ts +3 -0
- package/lib/components/list/list-section-header/list-section-header.component.d.ts +3 -0
- package/lib/components/list/list.component.d.ts +3 -0
- package/lib/components/list/list.directive.d.ts +9 -6
- package/lib/components/list/list.module.d.ts +16 -0
- package/lib/components/list/pipes/group-by.pipe.d.ts +3 -0
- package/lib/components/loading-overlay/loading-overlay.component.d.ts +3 -0
- package/lib/components/loading-overlay/loading-overlay.service.d.ts +3 -0
- package/lib/components/modal/action-sheet/action-sheet.component.d.ts +3 -0
- package/lib/components/modal/alert/alert.component.d.ts +5 -2
- package/lib/components/modal/alert/config/alert-config.d.ts +0 -8
- package/lib/components/modal/footer/modal-footer.component.d.ts +3 -0
- package/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts +3 -0
- package/lib/components/modal/modal-wrapper/config/modal-config.d.ts +1 -8
- package/lib/components/modal/modal-wrapper/modal-wrapper.component.d.ts +5 -0
- package/lib/components/modal/services/action-sheet.helper.d.ts +3 -0
- package/lib/components/modal/services/alert.helper.d.ts +4 -2
- package/lib/components/modal/services/modal-animation-builder.service.d.ts +3 -0
- package/lib/components/modal/services/modal-navigation.service.d.ts +3 -0
- package/lib/components/modal/services/modal.controller.d.ts +3 -0
- package/lib/components/modal/services/modal.helper.d.ts +3 -0
- package/lib/components/page/index.d.ts +1 -0
- package/lib/components/page/page-footer/page-footer.component.d.ts +3 -0
- package/lib/components/page/page.component.d.ts +26 -0
- package/lib/components/page/page.module.d.ts +10 -0
- package/lib/components/popover/popover.component.d.ts +4 -1
- package/lib/components/progress-circle/progress-circle-ring.component.d.ts +3 -0
- package/lib/components/progress-circle/progress-circle.component.d.ts +3 -0
- package/lib/components/radio/radio-group/radio-group.component.d.ts +3 -0
- package/lib/components/radio/radio.component.d.ts +3 -0
- package/lib/components/range/range.component.d.ts +3 -0
- package/lib/components/reorder-list/reorder-list.component.d.ts +3 -0
- package/lib/components/router-outlet/router-outlet.component.d.ts +3 -0
- package/lib/components/router-outlet/router-outlet.module.d.ts +7 -0
- package/lib/components/section-header/section-header.component.d.ts +3 -0
- package/lib/components/segmented-control/segment-item.d.ts +0 -4
- package/lib/components/segmented-control/segmented-control.component.d.ts +4 -1
- package/lib/components/shared/component-loader.directive.d.ts +3 -0
- package/lib/components/shared/resize-observer/resize-observer.factory.d.ts +3 -0
- package/lib/components/shared/resize-observer/resize-observer.service.d.ts +3 -0
- package/lib/components/slide-button/slide-button.component.d.ts +3 -0
- package/lib/components/slides/slides.component.d.ts +5 -0
- package/lib/components/spinner/index.d.ts +2 -0
- package/lib/components/spinner/spinner.component.d.ts +3 -0
- package/lib/components/spinner/spinner.module.d.ts +6 -0
- package/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.d.ts +3 -0
- package/lib/components/tabs/tab-button/tab-button.component.d.ts +3 -0
- package/lib/components/tabs/tabs.component.d.ts +3 -0
- package/lib/components/tabs/tabs.module.d.ts +9 -0
- package/lib/components/tabs/tabs.service.d.ts +3 -0
- package/lib/components/toast/config/toast-config.d.ts +1 -4
- package/lib/components/toast/services/toast.controller.d.ts +3 -0
- package/lib/components/toast/services/toast.helper.d.ts +3 -0
- package/lib/components/toggle/toggle.component.d.ts +3 -0
- package/lib/components/toggle-button/index.d.ts +2 -0
- package/lib/components/toggle-button/toggle-button.component.d.ts +3 -0
- package/lib/components/toggle-button/toggle-button.module.d.ts +6 -0
- package/lib/components/web-component-proxies.component.d.ts +3 -0
- package/lib/custom-elements-initializer.d.ts +1 -1
- package/lib/directives/element-as-button/element-as-button.directive.d.ts +3 -0
- package/lib/directives/fit-heading/fit-heading.directive.d.ts +3 -0
- package/lib/directives/fit-heading/fit-heading.module.d.ts +5 -0
- package/lib/directives/index.d.ts +2 -0
- package/lib/directives/key-handler/key-handler.directive.d.ts +3 -0
- package/lib/directives/modal-router-link/modal-router-link.directive.d.ts +3 -0
- package/lib/directives/theme-color/theme-color.directive.d.ts +3 -0
- package/lib/helpers/line-clamp-helper.d.ts +3 -0
- package/lib/helpers/platform.service.d.ts +3 -0
- package/lib/index.d.ts +0 -1
- package/lib/kirby.module.d.ts +69 -0
- package/lib/types/window-ref.d.ts +3 -0
- package/package.json +3 -4
- package/polyfills/intersection-observer-polyfill-loader.js +12 -12
- package/polyfills/resize-observer-polyfill-loader.js +1 -1
- package/readme.md +0 -16
- package/scss/_trigger-publish.scss +1 -0
- package/scss/_trigger.scss +1 -0
- package/scss/awesome-stylesheet.scss +1 -0
- package/scss/base/_awesome-partial.scss +1 -0
- package/scss/base/_index.scss +1 -0
- package/scss/base/_interaction-states.scss +1 -0
- package/scss/base/_link.scss +1 -0
- package/scss/base/index.scss +1 -0
- package/scss/interaction-state/_active.scss +1 -0
- package/scss/interaction-state/_focus.scss +1 -0
- package/scss/interaction-state/_hover.scss +1 -0
- package/scss/interaction-state/_index.scss +1 -0
- package/scss/interaction-state/_interaction-state.utilities.scss +1 -0
- package/scss/interaction-state/_layer.scss +1 -0
- package/scss/interaction-state/_state-layer.scss +1 -0
- package/scss/interaction-state/_utilities.scss +1 -0
- package/scss/interaction-state/ionic/_active.scss +1 -0
- package/scss/interaction-state/ionic/_hover.scss +1 -0
- package/scss/interaction-state/ionic/_index.scss +1 -0
- package/scss/interaction-states/_hover.scss +1 -0
- package/scss/interaction-states/_index.scss +1 -0
- package/scss/opt-out/_index.scss +1 -0
- package/scss/opt-out/_link.scss +1 -0
- package/testing-base/kirbydesign-designsystem-testing-base.d.ts +1 -58
- package/testing-base/lib/components/index.d.ts +55 -0
- package/testing-base/lib/components/mock.accordion-item.component.d.ts +3 -0
- package/testing-base/lib/components/mock.action-sheet.component.d.ts +3 -0
- package/testing-base/lib/components/mock.app.component.d.ts +3 -0
- package/testing-base/lib/components/mock.avatar.component.d.ts +4 -1
- package/testing-base/lib/components/mock.button.component.d.ts +4 -1
- package/testing-base/lib/components/mock.calendar.component.d.ts +4 -0
- package/testing-base/lib/components/mock.card-footer.component.d.ts +3 -0
- package/testing-base/lib/components/mock.card-header.component.d.ts +3 -0
- package/testing-base/lib/components/mock.card.component.d.ts +3 -0
- package/testing-base/lib/components/mock.chart-deprecated.component.d.ts +3 -0
- package/testing-base/lib/components/mock.chart.component.d.ts +5 -3
- package/testing-base/lib/components/mock.checkbox.component.d.ts +3 -0
- package/testing-base/lib/components/mock.chip.component.d.ts +3 -0
- package/testing-base/lib/components/mock.divider.component.d.ts +3 -0
- package/testing-base/lib/components/mock.dropdown.component.d.ts +4 -1
- package/testing-base/lib/components/mock.empty-state.component.d.ts +3 -0
- package/testing-base/lib/components/mock.fab-sheet.component.d.ts +3 -0
- package/testing-base/lib/components/mock.flag.component.d.ts +3 -0
- package/testing-base/lib/components/mock.form-field-message.component.d.ts +3 -0
- package/testing-base/lib/components/mock.form-field.component.d.ts +3 -0
- package/testing-base/lib/components/mock.grid.component.d.ts +3 -0
- package/testing-base/lib/components/mock.icon.component.d.ts +4 -1
- package/testing-base/lib/components/mock.input-counter.component.d.ts +3 -0
- package/testing-base/lib/components/mock.input.component.d.ts +4 -1
- package/testing-base/lib/components/mock.item-group.component.d.ts +3 -0
- package/testing-base/lib/components/mock.item-sliding.component.d.ts +3 -0
- package/testing-base/lib/components/mock.item.component.d.ts +4 -1
- package/testing-base/lib/components/mock.label.component.d.ts +3 -0
- package/testing-base/lib/components/mock.list-experimental.component.d.ts +3 -0
- package/testing-base/lib/components/mock.list-header.component.d.ts +3 -0
- package/testing-base/lib/components/mock.list-item.component.d.ts +3 -0
- package/testing-base/lib/components/mock.list-section-header.component.d.ts +3 -0
- package/testing-base/lib/components/mock.list.component.d.ts +3 -0
- package/testing-base/lib/components/mock.loading-overlay.component.d.ts +3 -0
- package/testing-base/lib/components/mock.modal-footer.component.d.ts +3 -0
- package/testing-base/lib/components/mock.page-footer.component.d.ts +3 -0
- package/testing-base/lib/components/mock.page.component.d.ts +24 -0
- package/testing-base/lib/components/mock.popover.component.d.ts +4 -1
- package/testing-base/lib/components/mock.progress-circle.component.d.ts +3 -0
- package/testing-base/lib/components/mock.radio-group.component.d.ts +3 -0
- package/testing-base/lib/components/mock.radio.component.d.ts +3 -0
- package/testing-base/lib/components/mock.range.component.d.ts +3 -0
- package/testing-base/lib/components/mock.reorder-list.component.d.ts +3 -0
- package/testing-base/lib/components/mock.router-outlet.component.d.ts +3 -0
- package/testing-base/lib/components/mock.section-header.component.d.ts +3 -0
- package/testing-base/lib/components/mock.segmented-control.component.d.ts +4 -1
- package/testing-base/lib/components/mock.slide-button.component.d.ts +3 -0
- package/testing-base/lib/components/mock.slides.component.d.ts +11 -0
- package/testing-base/lib/components/mock.spinner.component.d.ts +3 -0
- package/testing-base/lib/components/mock.tab-button.component.d.ts +3 -0
- package/testing-base/lib/components/mock.tabs.component.d.ts +3 -0
- package/testing-base/lib/components/mock.textarea.component.d.ts +3 -0
- package/testing-base/lib/components/mock.toggle-button.component.d.ts +3 -0
- package/testing-base/lib/components/mock.toggle.component.d.ts +3 -0
- package/testing-base/lib/components/mock.web-component-proxies.component.d.ts +8 -0
- package/testing-base/lib/directives/index.d.ts +3 -0
- package/testing-base/lib/directives/mock.accordion.directive.d.ts +3 -0
- package/testing-base/lib/directives/mock.fit-heading.directive.d.ts +3 -0
- package/testing-base/lib/directives/mock.theme-color.directive.d.ts +3 -0
- package/testing-base/lib/index.d.ts +3 -0
- package/testing-base/lib/kirby-testing-base.module.d.ts +61 -0
- package/testing-base/package.json +0 -1
- package/testing-base/public_api.d.ts +1 -1
- package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.d.ts +1 -1
- package/testing-jasmine/lib/kirby-testing.module.d.ts +5 -0
- package/testing-jasmine/package.json +0 -1
- package/testing-jest/kirbydesign-designsystem-testing-jest.d.ts +1 -1
- package/testing-jest/lib/kirby-testing.module.d.ts +5 -0
- package/testing-jest/package.json +0 -1
- package/README.md +0 -7
- package/bundles/kirbydesign-designsystem-testing-base.umd.min.js +0 -2
- package/bundles/kirbydesign-designsystem-testing-base.umd.min.js.map +0 -1
- package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js +0 -16
- package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js.map +0 -1
- package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js +0 -16
- package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js.map +0 -1
- package/bundles/kirbydesign-designsystem.umd.min.js +0 -2
- package/bundles/kirbydesign-designsystem.umd.min.js.map +0 -1
- package/esm2015/index.metadata.json +0 -1
- package/esm2015/kirbydesign-designsystem.metadata.json +0 -1
- package/esm2015/lib/components/accordion/accordion-item.component.metadata.json +0 -1
- package/esm2015/lib/components/accordion/accordion.directive.metadata.json +0 -1
- package/esm2015/lib/components/accordion/index.metadata.json +0 -1
- package/esm2015/lib/components/angular-component-lib/utils.metadata.json +0 -1
- package/esm2015/lib/components/app/app.component.metadata.json +0 -1
- package/esm2015/lib/components/app/app.module.metadata.json +0 -1
- package/esm2015/lib/components/app/index.metadata.json +0 -1
- package/esm2015/lib/components/avatar/avatar.component.metadata.json +0 -1
- package/esm2015/lib/components/button/button.component.metadata.json +0 -1
- package/esm2015/lib/components/calendar/calendar.component.metadata.json +0 -1
- package/esm2015/lib/components/calendar/helpers/calendar-cell.model.metadata.json +0 -1
- package/esm2015/lib/components/calendar/helpers/calendar-options.model.metadata.json +0 -1
- package/esm2015/lib/components/calendar/helpers/calendar.helper.metadata.json +0 -1
- package/esm2015/lib/components/calendar/index.metadata.json +0 -1
- package/esm2015/lib/components/calendar/options/calendar-year-navigator-config.metadata.json +0 -1
- package/esm2015/lib/components/card/card-footer/card-footer.component.metadata.json +0 -1
- package/esm2015/lib/components/card/card-header/card-header.component.metadata.json +0 -1
- package/esm2015/lib/components/card/card.component.metadata.json +0 -1
- package/esm2015/lib/components/card/index.metadata.json +0 -1
- package/esm2015/lib/components/chart/chart-js/chart-js.service.metadata.json +0 -1
- package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.metadata.json +0 -1
- package/esm2015/lib/components/chart/chart-js/configured-chart-js.metadata.json +0 -1
- package/esm2015/lib/components/chart/chart.component.metadata.json +0 -1
- package/esm2015/lib/components/chart/chart.module.metadata.json +0 -1
- package/esm2015/lib/components/chart/chart.types.metadata.json +0 -1
- package/esm2015/lib/components/chart/configs/annotations.config.metadata.json +0 -1
- package/esm2015/lib/components/chart/configs/chart-config.service.metadata.json +0 -1
- package/esm2015/lib/components/chart/configs/global-defaults.config.metadata.json +0 -1
- package/esm2015/lib/components/chart/configs/interaction-functions-extensions.config.metadata.json +0 -1
- package/esm2015/lib/components/chart/configs/shared.utils.metadata.json +0 -1
- package/esm2015/lib/components/chart/configs/type.config.metadata.json +0 -1
- package/esm2015/lib/components/chart/index.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/chart-deprecated-helper.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/chart-deprecated-type.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/index.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/options/activitygauge.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/options/areaspline.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/options/bar.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/options/column.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/options/donut.metadata.json +0 -1
- package/esm2015/lib/components/chart-deprecated/options/timeseries.metadata.json +0 -1
- package/esm2015/lib/components/checkbox/checkbox.component.metadata.json +0 -1
- package/esm2015/lib/components/chip/chip.component.metadata.json +0 -1
- package/esm2015/lib/components/divider/divider.component.metadata.json +0 -1
- package/esm2015/lib/components/dropdown/dropdown.component.metadata.json +0 -1
- package/esm2015/lib/components/dropdown/dropdown.types.metadata.json +0 -1
- package/esm2015/lib/components/dropdown/keyboard-handler.service.metadata.json +0 -1
- package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +0 -1
- package/esm2015/lib/components/fab-sheet/fab-sheet.component.metadata.json +0 -1
- package/esm2015/lib/components/flag/flag.component.metadata.json +0 -1
- package/esm2015/lib/components/form-field/directives/date/date-input.directive.metadata.json +0 -1
- package/esm2015/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.metadata.json +0 -1
- package/esm2015/lib/components/form-field/form-field-message/form-field-message.component.metadata.json +0 -1
- package/esm2015/lib/components/form-field/form-field.component.metadata.json +0 -1
- package/esm2015/lib/components/form-field/index.metadata.json +0 -1
- package/esm2015/lib/components/form-field/input/input.component.metadata.json +0 -1
- package/esm2015/lib/components/form-field/input-counter/input-counter.component.metadata.json +0 -1
- package/esm2015/lib/components/form-field/textarea/textarea.component.metadata.json +0 -1
- package/esm2015/lib/components/grid/breakpoint-helper.service.metadata.json +0 -1
- package/esm2015/lib/components/grid/grid-card-configuration.metadata.json +0 -1
- package/esm2015/lib/components/grid/grid.component.metadata.json +0 -1
- package/esm2015/lib/components/icon/icon-registry.service.metadata.json +0 -1
- package/esm2015/lib/components/icon/icon-settings.metadata.json +0 -1
- package/esm2015/lib/components/icon/icon.component.metadata.json +0 -1
- package/esm2015/lib/components/icon/icon.module.metadata.json +0 -1
- package/esm2015/lib/components/icon/index.metadata.json +0 -1
- package/esm2015/lib/components/icon/kirby-icon-settings.metadata.json +0 -1
- package/esm2015/lib/components/index.metadata.json +0 -1
- package/esm2015/lib/components/item/index.metadata.json +0 -1
- package/esm2015/lib/components/item/item.component.metadata.json +0 -1
- package/esm2015/lib/components/item/item.module.metadata.json +0 -1
- package/esm2015/lib/components/item/label/label.component.metadata.json +0 -1
- package/esm2015/lib/components/item-group/item-group.component.metadata.json +0 -1
- package/esm2015/lib/components/item-sliding/index.metadata.json +0 -1
- package/esm2015/lib/components/item-sliding/item-sliding.component.metadata.json +0 -1
- package/esm2015/lib/components/item-sliding/item-sliding.types.metadata.json +0 -1
- package/esm2015/lib/components/list/directives/infinite-scroll.directive.metadata.json +0 -1
- package/esm2015/lib/components/list/directives/list-item-color.directive.metadata.json +0 -1
- package/esm2015/lib/components/list/directives/scroll.model.metadata.json +0 -1
- package/esm2015/lib/components/list/helpers/list-helper.metadata.json +0 -1
- package/esm2015/lib/components/list/index.metadata.json +0 -1
- package/esm2015/lib/components/list/list-experimental/list-experimental.component.metadata.json +0 -1
- package/esm2015/lib/components/list/list-header/list-header.component.metadata.json +0 -1
- package/esm2015/lib/components/list/list-item/list-item.component.metadata.json +0 -1
- package/esm2015/lib/components/list/list-section-header/list-section-header.component.metadata.json +0 -1
- package/esm2015/lib/components/list/list-swipe-action.type.metadata.json +0 -1
- package/esm2015/lib/components/list/list.component.metadata.json +0 -1
- package/esm2015/lib/components/list/list.directive.metadata.json +0 -1
- package/esm2015/lib/components/list/list.event.metadata.json +0 -1
- package/esm2015/lib/components/list/list.module.metadata.json +0 -1
- package/esm2015/lib/components/list/pipes/group-by.pipe.metadata.json +0 -1
- package/esm2015/lib/components/loading-overlay/index.metadata.json +0 -1
- package/esm2015/lib/components/loading-overlay/loading-overlay.component.metadata.json +0 -1
- package/esm2015/lib/components/loading-overlay/loading-overlay.service.metadata.json +0 -1
- package/esm2015/lib/components/modal/action-sheet/action-sheet.component.metadata.json +0 -1
- package/esm2015/lib/components/modal/action-sheet/config/action-sheet-config.metadata.json +0 -1
- package/esm2015/lib/components/modal/action-sheet/config/action-sheet-item.metadata.json +0 -1
- package/esm2015/lib/components/modal/alert/alert.component.metadata.json +0 -1
- package/esm2015/lib/components/modal/alert/config/alert-config.metadata.json +0 -1
- package/esm2015/lib/components/modal/footer/modal-footer.component.metadata.json +0 -1
- package/esm2015/lib/components/modal/index.metadata.json +0 -1
- package/esm2015/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.metadata.json +0 -1
- package/esm2015/lib/components/modal/modal-wrapper/config/drawer-supplementary-action.metadata.json +0 -1
- package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.helper.metadata.json +0 -1
- package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.metadata.json +0 -1
- package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.metadata.json +0 -1
- package/esm2015/lib/components/modal/services/action-sheet.helper.metadata.json +0 -1
- package/esm2015/lib/components/modal/services/alert.helper.metadata.json +0 -1
- package/esm2015/lib/components/modal/services/modal-animation-builder.service.metadata.json +0 -1
- package/esm2015/lib/components/modal/services/modal-navigation.service.metadata.json +0 -1
- package/esm2015/lib/components/modal/services/modal.controller.metadata.json +0 -1
- package/esm2015/lib/components/modal/services/modal.helper.metadata.json +0 -1
- package/esm2015/lib/components/modal/services/modal.interfaces.metadata.json +0 -1
- package/esm2015/lib/components/page/index.metadata.json +0 -1
- package/esm2015/lib/components/page/page-footer/page-footer.component.metadata.json +0 -1
- package/esm2015/lib/components/page/page.component.metadata.json +0 -1
- package/esm2015/lib/components/page/page.module.metadata.json +0 -1
- package/esm2015/lib/components/popover/popover.component.metadata.json +0 -1
- package/esm2015/lib/components/progress-circle/progress-circle-ring.component.metadata.json +0 -1
- package/esm2015/lib/components/progress-circle/progress-circle.component.metadata.json +0 -1
- package/esm2015/lib/components/radio/index.metadata.json +0 -1
- package/esm2015/lib/components/radio/radio-group/radio-group.component.metadata.json +0 -1
- package/esm2015/lib/components/radio/radio.component.metadata.json +0 -1
- package/esm2015/lib/components/range/range.component.metadata.json +0 -1
- package/esm2015/lib/components/reorder-list/index.metadata.json +0 -1
- package/esm2015/lib/components/reorder-list/reorder-event.metadata.json +0 -1
- package/esm2015/lib/components/reorder-list/reorder-list.component.metadata.json +0 -1
- package/esm2015/lib/components/router-outlet/index.metadata.json +0 -1
- package/esm2015/lib/components/router-outlet/router-outlet.component.metadata.json +0 -1
- package/esm2015/lib/components/router-outlet/router-outlet.module.metadata.json +0 -1
- package/esm2015/lib/components/section-header/section-header.component.metadata.json +0 -1
- package/esm2015/lib/components/segmented-control/segment-item.metadata.json +0 -1
- package/esm2015/lib/components/segmented-control/segmented-control.component.metadata.json +0 -1
- package/esm2015/lib/components/shared/component-configuration.metadata.json +0 -1
- package/esm2015/lib/components/shared/component-loader.directive.metadata.json +0 -1
- package/esm2015/lib/components/shared/dynamic-component.metadata.json +0 -1
- package/esm2015/lib/components/shared/index.metadata.json +0 -1
- package/esm2015/lib/components/shared/resize-observer/resize-observer.factory.metadata.json +0 -1
- package/esm2015/lib/components/shared/resize-observer/resize-observer.service.metadata.json +0 -1
- package/esm2015/lib/components/shared/resize-observer/types/resize-observer-callback.metadata.json +0 -1
- package/esm2015/lib/components/shared/resize-observer/types/resize-observer-entry.metadata.json +0 -1
- package/esm2015/lib/components/shared/resize-observer/types/resize-observer.metadata.json +0 -1
- package/esm2015/lib/components/slide-button/slide-button.component.metadata.json +0 -1
- package/esm2015/lib/components/slides/slides.component.metadata.json +0 -1
- package/esm2015/lib/components/spinner/spinner.component.metadata.json +0 -1
- package/esm2015/lib/components/spinner/spinner.module.metadata.json +0 -1
- package/esm2015/lib/components/stock-chart-deprecated/index.metadata.json +0 -1
- package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.metadata.json +0 -1
- package/esm2015/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.metadata.json +0 -1
- package/esm2015/lib/components/tabs/index.metadata.json +0 -1
- package/esm2015/lib/components/tabs/tab-button/tab-button.component.metadata.json +0 -1
- package/esm2015/lib/components/tabs/tab-button/tab-button.events.metadata.json +0 -1
- package/esm2015/lib/components/tabs/tabs.component.metadata.json +0 -1
- package/esm2015/lib/components/tabs/tabs.module.metadata.json +0 -1
- package/esm2015/lib/components/tabs/tabs.service.metadata.json +0 -1
- package/esm2015/lib/components/toast/config/toast-config.metadata.json +0 -1
- package/esm2015/lib/components/toast/index.metadata.json +0 -1
- package/esm2015/lib/components/toast/services/toast.controller.metadata.json +0 -1
- package/esm2015/lib/components/toast/services/toast.helper.metadata.json +0 -1
- package/esm2015/lib/components/toggle/toggle.component.metadata.json +0 -1
- package/esm2015/lib/components/toggle-button/toggle-button.component.metadata.json +0 -1
- package/esm2015/lib/components/toggle-button/toggle-button.module.metadata.json +0 -1
- package/esm2015/lib/components/web-component-proxies.component.metadata.json +0 -1
- package/esm2015/lib/custom-elements-initializer.metadata.json +0 -1
- package/esm2015/lib/directives/element-as-button/element-as-button.directive.metadata.json +0 -1
- package/esm2015/lib/directives/fit-heading/fit-heading.directive.metadata.json +0 -1
- package/esm2015/lib/directives/fit-heading/fit-heading.module.metadata.json +0 -1
- package/esm2015/lib/directives/index.metadata.json +0 -1
- package/esm2015/lib/directives/key-handler/key-handler.directive.metadata.json +0 -1
- package/esm2015/lib/directives/modal-router-link/modal-router-link.directive.metadata.json +0 -1
- package/esm2015/lib/directives/theme-color/theme-color.directive.metadata.json +0 -1
- package/esm2015/lib/helpers/color-helper.metadata.json +0 -1
- package/esm2015/lib/helpers/deep-copy.metadata.json +0 -1
- package/esm2015/lib/helpers/design-token-helper.metadata.json +0 -1
- package/esm2015/lib/helpers/element-has-ancestor.metadata.json +0 -1
- package/esm2015/lib/helpers/index.metadata.json +0 -1
- package/esm2015/lib/helpers/line-clamp-helper.metadata.json +0 -1
- package/esm2015/lib/helpers/merge-deep.metadata.json +0 -1
- package/esm2015/lib/helpers/platform.service.metadata.json +0 -1
- package/esm2015/lib/helpers/string-helper.metadata.json +0 -1
- package/esm2015/lib/helpers/theme-color.type.metadata.json +0 -1
- package/esm2015/lib/helpers/unique-id-generator.helper.metadata.json +0 -1
- package/esm2015/lib/index.metadata.json +0 -1
- package/esm2015/lib/kirby.module.metadata.json +0 -1
- package/esm2015/lib/scss/scss-helper.metadata.json +0 -1
- package/esm2015/lib/types/window-ref.metadata.json +0 -1
- package/esm2015/testing-base/kirbydesign-designsystem-testing-base.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.accordion-item.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.action-sheet.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.app.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.avatar.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.button.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.calendar.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.card-footer.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.card-header.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.card.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.chart.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.checkbox.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.chip.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.divider.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.dropdown.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.empty-state.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.fab-sheet.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.flag.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.form-field-message.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.form-field.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.grid.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.icon.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.input-counter.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.input.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.item-group.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.item-sliding.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.item.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.label.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.list-experimental.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.list-header.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.list-item.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.list-section-header.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.list.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.loading-overlay.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.modal-footer.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.page-footer.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.page.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.popover.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.progress-circle.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.radio-group.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.radio.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.range.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.reorder-list.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.router-outlet.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.section-header.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.segmented-control.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.slide-button.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.spinner.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.tab-button.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.tabs.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.textarea.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.toggle-button.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/components/mock.toggle.component.metadata.json +0 -1
- package/esm2015/testing-base/lib/directives/mock.accordion.directive.metadata.json +0 -1
- package/esm2015/testing-base/lib/directives/mock.fit-heading.directive.metadata.json +0 -1
- package/esm2015/testing-base/lib/directives/mock.theme-color.directive.metadata.json +0 -1
- package/esm2015/testing-base/lib/kirby-testing-base.module.metadata.json +0 -1
- package/esm2015/testing-base/lib/mock-components.metadata.json +0 -1
- package/esm2015/testing-base/lib/mock-directives.metadata.json +0 -1
- package/esm2015/testing-base/public_api.metadata.json +0 -1
- package/esm2015/testing-jasmine/kirbydesign-designsystem-testing-jasmine.metadata.json +0 -1
- package/esm2015/testing-jasmine/lib/kirby-testing.module.metadata.json +0 -1
- package/esm2015/testing-jasmine/lib/mock-providers.metadata.json +0 -1
- package/esm2015/testing-jasmine/public_api.metadata.json +0 -1
- package/esm2015/testing-jest/kirbydesign-designsystem-testing-jest.metadata.json +0 -1
- package/esm2015/testing-jest/lib/kirby-testing.module.metadata.json +0 -1
- package/esm2015/testing-jest/lib/mock-providers.metadata.json +0 -1
- package/esm2015/testing-jest/public_api.metadata.json +0 -1
- package/kirbydesign-designsystem.metadata.json +0 -1
- package/testing-base/kirbydesign-designsystem-testing-base.metadata.json +0 -1
- package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.metadata.json +0 -1
- package/testing-jest/kirbydesign-designsystem-testing-jest.metadata.json +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Component, ContentChild, ElementRef, HostBinding, Input, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, HostBinding, Input, } from '@angular/core';
|
|
2
2
|
import { IconComponent } from '../icon/icon.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export var ButtonSize;
|
|
4
5
|
(function (ButtonSize) {
|
|
5
6
|
ButtonSize["SM"] = "sm";
|
|
@@ -50,36 +51,64 @@ export class ButtonComponent {
|
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
ButtonComponent
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
];
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
54
|
+
/** @nocollapse */ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
+
/** @nocollapse */ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: { attentionLevel: "attentionLevel", isDestructive: "isDestructive", themeColor: "themeColor", expand: "expand", isFloating: "isFloating", size: "size" }, host: { properties: { "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.attention-level3": "this.isAttentionLevel3", "class.attention-level4": "this.isAttentionLevel4", "class.destructive": "this.destructive", "class.floating": "this.isButtonFloating", "class.icon-only": "this.isIconOnly", "class.icon-left": "this.isIconLeft", "class.icon-right": "this.isIconRight", "class": "this._cssClass" } }, queries: [{ propertyName: "icon", first: true, predicate: IconComponent, descendants: true }, { propertyName: "iconElementRef", first: true, predicate: IconComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: #4d90fe}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{
|
|
59
|
+
// tslint:disable-next-line:component-selector
|
|
60
|
+
selector: 'button[kirby-button],Button[kirby-button]',
|
|
61
|
+
templateUrl: './button.component.html',
|
|
62
|
+
styleUrls: ['./button.component.scss'],
|
|
63
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isAttentionLevel1: [{
|
|
66
|
+
type: HostBinding,
|
|
67
|
+
args: ['class.attention-level1']
|
|
68
|
+
}], isAttentionLevel2: [{
|
|
69
|
+
type: HostBinding,
|
|
70
|
+
args: ['class.attention-level2']
|
|
71
|
+
}], isAttentionLevel3: [{
|
|
72
|
+
type: HostBinding,
|
|
73
|
+
args: ['class.attention-level3']
|
|
74
|
+
}], isAttentionLevel4: [{
|
|
75
|
+
type: HostBinding,
|
|
76
|
+
args: ['class.attention-level4']
|
|
77
|
+
}], destructive: [{
|
|
78
|
+
type: HostBinding,
|
|
79
|
+
args: ['class.destructive']
|
|
80
|
+
}], isButtonFloating: [{
|
|
81
|
+
type: HostBinding,
|
|
82
|
+
args: ['class.floating']
|
|
83
|
+
}], isIconOnly: [{
|
|
84
|
+
type: HostBinding,
|
|
85
|
+
args: ['class.icon-only']
|
|
86
|
+
}], isIconLeft: [{
|
|
87
|
+
type: HostBinding,
|
|
88
|
+
args: ['class.icon-left']
|
|
89
|
+
}], isIconRight: [{
|
|
90
|
+
type: HostBinding,
|
|
91
|
+
args: ['class.icon-right']
|
|
92
|
+
}], _cssClass: [{
|
|
93
|
+
type: HostBinding,
|
|
94
|
+
args: ['class']
|
|
95
|
+
}], attentionLevel: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], isDestructive: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], themeColor: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], expand: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], isFloating: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], size: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], icon: [{
|
|
108
|
+
type: ContentChild,
|
|
109
|
+
args: [IconComponent]
|
|
110
|
+
}], iconElementRef: [{
|
|
111
|
+
type: ContentChild,
|
|
112
|
+
args: [IconComponent, { read: ElementRef }]
|
|
113
|
+
}] } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXZELE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsdUJBQVMsQ0FBQTtJQUNULHVCQUFTLENBQUE7SUFDVCx1QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCO0FBU0QsTUFBTSxPQUFPLGVBQWU7SUEwRDFCLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBeER2RCxzQkFBaUIsR0FBWSxJQUFJLENBQUMsQ0FBQyxVQUFVO1FBUTdDLGdCQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsVUFBVTtRQVdoQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQXVCcEIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVyQyxTQUFJLEdBQWlDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFLM0MsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUVrQyxDQUFDO0lBOUMzRCxJQUNXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ1cs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QUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db2xvciB9IGZyb20gJ0BraXJieWRlc2lnbi9jb3JlJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgZW51bSBCdXR0b25TaXplIHtcbiAgU00gPSAnc20nLFxuICBNRCA9ICdtZCcsXG4gIExHID0gJ2xnJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdidXR0b25ba2lyYnktYnV0dG9uXSxCdXR0b25ba2lyYnktYnV0dG9uXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmF0dGVudGlvbi1sZXZlbDEnKVxuICBpc0F0dGVudGlvbkxldmVsMTogYm9vbGVhbiA9IHRydWU7IC8vIERlZmF1bHRcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hdHRlbnRpb24tbGV2ZWwyJylcbiAgaXNBdHRlbnRpb25MZXZlbDI6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXR0ZW50aW9uLWxldmVsMycpXG4gIGlzQXR0ZW50aW9uTGV2ZWwzOiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmF0dGVudGlvbi1sZXZlbDQnKVxuICBpc0F0dGVudGlvbkxldmVsNDogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kZXN0cnVjdGl2ZScpXG4gIGRlc3RydWN0aXZlOiBib29sZWFuID0gZmFsc2U7IC8vIERlZmF1bHRcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcbiAgcHVibGljIGdldCBpc0J1dHRvbkZsb2F0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRmxvYXRpbmc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmljb24tb25seScpXG4gIHB1YmxpYyBnZXQgaXNJY29uT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmljb24gJiYgIXRoaXMuaGFzVGV4dDtcbiAgfVxuICBwcml2YXRlIF9pc0ljb25MZWZ0ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaWNvbi1sZWZ0JylcbiAgcHVibGljIGdldCBpc0ljb25MZWZ0KCkge1xuICAgIHJldHVybiB0aGlzLl9pc0ljb25MZWZ0O1xuICB9XG4gIHByaXZhdGUgX2lzSWNvblJpZ2h0ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaWNvbi1yaWdodCcpXG4gIHB1YmxpYyBnZXQgaXNJY29uUmlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzSWNvblJpZ2h0O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfY3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIFt0aGlzLnRoZW1lQ29sb3IsIHRoaXMuc2l6ZV0uZmlsdGVyKChjc3NDbGFzcykgPT4gISFjc3NDbGFzcyk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgYXR0ZW50aW9uTGV2ZWwobGV2ZWw6ICcxJyB8ICcyJyB8ICczJyB8ICc0Jykge1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDEgPSBsZXZlbCA9PT0gJzEnO1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDIgPSBsZXZlbCA9PT0gJzInO1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDMgPSBsZXZlbCA9PT0gJzMnO1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDQgPSBsZXZlbCA9PT0gJzQnO1xuICB9XG4gIEBJbnB1dCgpIHNldCBpc0Rlc3RydWN0aXZlKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kZXN0cnVjdGl2ZSA9IHN0YXRlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHRoZW1lQ29sb3I6IE5vdGlmaWNhdGlvbkNvbG9yO1xuICBASW5wdXQoKSBleHBhbmQ6ICdmdWxsJyB8ICdibG9jayc7XG4gIEBJbnB1dCgpIGlzRmxvYXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2l6ZTogQnV0dG9uU2l6ZSB8IGAke0J1dHRvblNpemV9YCA9IEJ1dHRvblNpemUuTUQ7XG5cbiAgQENvbnRlbnRDaGlsZChJY29uQ29tcG9uZW50KSBpY29uOiBJY29uQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKEljb25Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBpY29uRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIHByaXZhdGUgaGFzVGV4dCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzVGV4dCA9ICEhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgaWYgKHRoaXMuaWNvbkVsZW1lbnRSZWYgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmhhc1RleHQpIHtcbiAgICAgIHRoaXMuX2lzSWNvbkxlZnQgPVxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkID09PSB0aGlzLmljb25FbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB0aGlzLl9pc0ljb25SaWdodCA9ICF0aGlzLl9pc0ljb25MZWZ0O1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -4,6 +4,11 @@ import { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';
|
|
|
4
4
|
import { da, enGB, enUS } from 'date-fns/locale';
|
|
5
5
|
import { capitalizeFirstLetter } from '@kirbydesign/core';
|
|
6
6
|
import { CalendarHelper } from './helpers/calendar.helper';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./helpers/calendar.helper";
|
|
9
|
+
import * as i2 from "../icon/icon.component";
|
|
10
|
+
import * as i3 from "../dropdown/dropdown.component";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
7
12
|
var TimeUnit;
|
|
8
13
|
(function (TimeUnit) {
|
|
9
14
|
TimeUnit["years"] = "years";
|
|
@@ -274,10 +279,10 @@ export class CalendarComponent {
|
|
|
274
279
|
_onDateSelected(newDay) {
|
|
275
280
|
if (newDay.isSelectable && newDay.date) {
|
|
276
281
|
let newDate = new Date(this.activeMonth);
|
|
282
|
+
newDate.setDate(newDay.date);
|
|
277
283
|
if (this.timezone === 'UTC') {
|
|
278
284
|
newDate = zonedTimeToUtc(this.subtractTimezoneOffset(newDate), this.timeZoneName);
|
|
279
285
|
}
|
|
280
|
-
newDate.setDate(newDay.date);
|
|
281
286
|
const dateToEmit = newDate;
|
|
282
287
|
if (this.hasDateChanged(newDate, this._selectedDate)) {
|
|
283
288
|
this.onSelectedDateChange(newDate);
|
|
@@ -358,37 +363,56 @@ export class CalendarComponent {
|
|
|
358
363
|
return Array.from({ length: numberOfYears + 1 }, (_, i) => (startYear + i).toString());
|
|
359
364
|
}
|
|
360
365
|
}
|
|
361
|
-
CalendarComponent
|
|
362
|
-
{ type:
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
]
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
]
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
}
|
|
394
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQWEzRCxJQUFLLFFBU0o7QUFURCxXQUFLLFFBQVE7SUFDWCwyQkFBZSxDQUFBO0lBQ2YsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtJQUNmLHlCQUFhLENBQUE7SUFDYiwyQkFBZSxDQUFBO0lBQ2YsK0JBQW1CLENBQUE7SUFDbkIsK0JBQW1CLENBQUE7SUFDbkIseUNBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVRJLFFBQVEsS0FBUixRQUFRLFFBU1o7QUFR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QUksRUFBRSxDQUFDO1FBQ3JGLE1BQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQzs7O1lBL2JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQix1NENBQXdDO2dCQUV4QyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7O2FBQzVCOzs7O1lBN0JRLGNBQWM7eUNBeUpnQyxNQUFNLFNBQUMsU0FBUzs7O2dDQTFIcEUsU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt5QkFDaEQsTUFBTTt5QkFDTixNQUFNO3lCQUNOLE1BQU07dUJBQ04sS0FBSzs4QkFDTCxLQUFLOytCQUNMLEtBQUs7aUNBQ0wsS0FBSztnQ0FDTCxLQUFLOzRCQUNMLEtBQUs7eUJBS0wsS0FBSzttQ0FRTCxLQUFLOzJCQXNCTCxLQUFLOzRCQWNMLEtBQUs7d0JBUUwsS0FBSztzQkFRTCxLQUFLO3NCQVdMLEtBQUs7Z0NBZ0NMLFdBQVcsU0FBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIExPQ0FMRV9JRCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGFkZCxcbiAgZGlmZmVyZW5jZUluRGF5cyxcbiAgZWFjaERheU9mSW50ZXJ2YWwsXG4gIGVuZE9mTW9udGgsXG4gIGVuZE9mV2VlayxcbiAgZm9ybWF0LFxuICBnZXRZZWFyLFxuICBpc0FmdGVyLFxuICBpc0JlZm9yZSxcbiAgaXNTYW1lRGF5LFxuICBpc1NhbWVNb250aCxcbiAgaXNXZWVrZW5kLFxuICBMb2NhbGUgYXMgTG9jYWxlRGF0ZUZucyxcbiAgc3RhcnRPZkRheSxcbiAgc3RhcnRPZk1vbnRoLFxuICBzdGFydE9mV2Vlayxcbn0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXRjVG9ab25lZFRpbWUsIHpvbmVkVGltZVRvVXRjIH0gZnJvbSAnZGF0ZS1mbnMtdHonO1xuaW1wb3J0IHsgZGEsIGVuR0IsIGVuVVMgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vY29yZSc7XG5cbmltcG9ydCB7IENhbGVuZGFyQ2VsbCB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1jZWxsLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFyT3B0aW9ucyB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFySGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLmhlbHBlcic7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJOYXZpZ2F0b3JDb25maWcgfSBmcm9tICcuL29wdGlvbnMvY2FsZW5kYXIteWVhci1uYXZpZ2F0b3ItY29uZmlnJztcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0gTG9jYWxlRGF0ZUZucztcbmludGVyZmFjZSBDYWxlbmRhckRheSB7XG4gIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICBpc1RvZGF5OiBib29sZWFuO1xuICBpc1dlZWtlbmQ6IGJvb2xlYW47XG4gIGlzUGFzdDogYm9vbGVhbjtcbiAgaXNGdXR1cmU6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmVudW0gVGltZVVuaXQge1xuICB5ZWFycyA9ICd5ZWFycycsXG4gIG1vbnRocyA9ICdtb250aHMnLFxuICB3ZWVrcyA9ICd3ZWVrcycsXG4gIGRheXMgPSAnZGF5cycsXG4gIGhvdXJzID0gJ2hvdXJzJyxcbiAgbWludXRlcyA9ICdtaW51dGVzJyxcbiAgc2Vjb25kcyA9ICdzZWNvbmRzJyxcbiAgbWlsbGlzZWNvbmRzID0gJ21pbGxpc2Vjb25kcycsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJIZWxwZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIHllYXJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQElucHV0KCkgdGltZXpvbmU6ICdsb2NhbCcgfCAnVVRDJyA9ICdsb2NhbCc7XG4gIEBJbnB1dCgpIGRpc2FibGVXZWVrZW5kcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlUGFzdERhdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVGdXR1cmVEYXRlcyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbHdheXNFbmFibGVUb2RheSA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXN0b21Mb2NhbGVzOiB7IFtrZXk6IHN0cmluZ106IExvY2FsZSB9ID0ge307XG4gIC8qIFxuICAgIEV4cGVyaW1lbnRhbDogSW5wdXQgcHJvcGVydHkgbm90IGRvY3VtZW50ZWQgb24gcHVycG9zZS4gXG4gICAgRm9yIGNvbnRleHQgc2VlOiBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8yMDg3XG4gICovXG4gIEBJbnB1dCgpIHVzZVBvcG92ZXIgPSBmYWxzZTtcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB5ZWFyIG5hdmlnYXRvci5cbiAgICpcbiAgICogSW50ZXJuYWxseSwgY2FsZW5kYXIgY29tcG9uZW50OlxuICAgKiAtIGJhc2VzIHllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20gYW5kIHllYXJOYXZpZ2F0b3JPcHRpb25zLnRvIG9uIHRvZGF5RGF0ZSBpZiBhIG51bWJlciBpcyBwcm92aWRlZFxuICAgKiAtIHByaW9yaXRpemVzIG1pbkRhdGUgYW5kIG1heERhdGUgb3ZlciB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5mcm9tIGFuZCB5ZWFyTmF2aWdhdG9yT3B0aW9ucy50b1xuICAgKi9cbiAgQElucHV0KCkgeWVhck5hdmlnYXRvck9wdGlvbnM6IENhbGVuZGFyWWVhck5hdmlnYXRvckNvbmZpZztcblxuICBfbW9udGg6IENhbGVuZGFyQ2VsbFtdW107XG4gIF93ZWVrRGF5czogc3RyaW5nW107XG4gIHByaXZhdGUgc2VsZWN0ZWREYXk6IENhbGVuZGFyQ2VsbDtcbiAgLy8gTk9URTogSW50ZXJuYWxseSwgYWxsIERhdGVzXG4gIC8vIGFyZSBub3JtYWxpemVkIHRvIHBvaW50IHRvIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0LCByZWdhcmRsZXNzIG9mIHRoZSB0aW1lem9uZVxuICAvLyBzZXR0aW5nLlxuICBwcml2YXRlIGFjdGl2ZU1vbnRoOiBEYXRlO1xuICBwcml2YXRlIF9zZWxlY3RlZERhdGU6IERhdGU7XG4gIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IERhdGVbXSA9IFtdO1xuICBwcml2YXRlIF90b2RheURhdGU6IERhdGU7XG4gIHByaXZhdGUgX21pbkRhdGU6IERhdGU7XG4gIHByaXZhdGUgX21heERhdGU6IERhdGU7XG4gIHByaXZhdGUgbG9jYWxlOiBMb2NhbGU7XG4gIHByaXZhdGUgdGltZVpvbmVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgaW5jbHVkZWRMb2NhbGVzID0geyBkYSwgZW5HQiwgZW5VUyB9O1xuXG4gIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZERhdGUodmFsdWVMb2NhbE9yVVRDOiBEYXRlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWVMb2NhbE9yVVRDKTtcbiAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKHZhbHVlLCB0aGlzLl9zZWxlY3RlZERhdGUpKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0ZWREYXRlQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkaXNhYmxlZERhdGVzKCk6IERhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWREYXRlcyh2YWx1ZTogRGF0ZVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9ICh2YWx1ZSB8fCBbXSkubWFwKChkYXRlKSA9PiB0aGlzLm5vcm1hbGl6ZURhdGUoZGF0ZSkpO1xuICB9XG5cbiAgZ2V0IHRvZGF5RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdG9kYXlEYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRvZGF5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX3RvZGF5RGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9tYXhEYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVNb250aE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAnTU1NTScpKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVZZWFyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAneXl5eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgbmF2aWdhYmxlIHllYXJzIGZvciB5ZWFyIG5hdmlnYXRvciBiYXNlZCBvbiB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5cbiAgICovXG4gIGdldCBuYXZpZ2FibGVZZWFycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyID1cbiAgICAgIHRoaXMubWluRGF0ZSB8fCB0aGlzLmdldERhdGVGcm9tTmF2aWdhYmxlWWVhcih0aGlzLnllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20pO1xuXG4gICAgY29uc3QgZGF0ZU9mTGFzdE5hdmlnYWJsZVllYXIgPVxuICAgICAgdGhpcy5tYXhEYXRlIHx8IHRoaXMuZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKHRoaXMueWVhck5hdmlnYXRvck9wdGlvbnMudG8pO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyLCBkYXRlT2ZMYXN0TmF2aWdhYmxlWWVhcik7XG4gIH1cblxuICBnZXQgbmF2aWdhdGVkWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYWJsZVllYXJzLmluZGV4T2YodGhpcy5hY3RpdmVZZWFyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLXllYXItbmF2aWdhdG9yJylcbiAgZ2V0IF9oYXNZZWFyTmF2aWdhdG9yKCkge1xuICAgIHJldHVybiAhIXRoaXMueWVhck5hdmlnYXRvck9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFySGVscGVyOiBDYWxlbmRhckhlbHBlciwgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLm1hcExvY2FsZShsb2NhbGUpO1xuICAgIHRoaXMudGltZVpvbmVOYW1lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRXaXRoTG9jYWxlKGRhdGU6IERhdGUsIGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGZvcm1hdFN0cmluZywge1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcbiAgICBpZiAobG9jYWxlID09PSAnZW4nKSB7XG4gICAgICBsb2NhbGUgPSAnZW5HQic7IC8vIGlmIGVuZ2xpc2ggbG9jYWxlIGlzIHByb3ZpZGVkIHdpdGhvdXQgcmVnaW9uLCB3ZSBkZWZhdWx0IHRvIEdCXG4gICAgfVxuICAgIGxvY2FsZSA9IGxvY2FsZS5yZXBsYWNlKCctJywgJycpO1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSB7IC4uLnRoaXMuaW5jbHVkZWRMb2NhbGVzLCAuLi50aGlzLmN1c3RvbUxvY2FsZXMgfTtcblxuICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2xvY2FsZV0gfHwgdGhpcy5pbmNsdWRlZExvY2FsZXMuZW5HQjsgLy8gRGVmYXVsdCB0byBlbkdCIGlmIGluamVjdGVkIGxvY2FsZSBkb2VzbnQgZXhpc3RcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3dlZWtEYXlzID0gdGhpcy5nZXRXZWVrRGF5cygpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodGhpcy5zZWxlY3RlZERhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIuaW5pdChcbiAgICAgIHRoaXMuY2FsZW5kYXJDb250YWluZXIsXG4gICAgICB0aGlzLmdldEhlbHBlck9wdGlvbnMoKSxcbiAgICAgIHRoaXMuX29uRGF0ZVNlbGVjdGVkLmJpbmQodGhpcyksXG4gICAgICB0aGlzLm9uQ2hhbmdlTW9udGguYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5kaXNhYmxlV2Vla2VuZHMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZVBhc3REYXRlcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlRnV0dXJlRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZWREYXRlcyB8fFxuICAgICAgY2hhbmdlcy5taW5EYXRlIHx8XG4gICAgICBjaGFuZ2VzLm1heERhdGUgfHxcbiAgICAgIGNoYW5nZXMudG9kYXlEYXRlIHx8XG4gICAgICBjaGFuZ2VzLnRpbWV6b25lXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZnJlc2hBY3RpdmVNb250aCgpO1xuICAgICAgdGhpcy5jYWxlbmRhckhlbHBlci51cGRhdGUodGhpcy5nZXRIZWxwZXJPcHRpb25zKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlTW9udGgoZGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCkpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlTW9udGggfHwgIWlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIGRhdGUpKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gc3RhcnRPZk1vbnRoKGRhdGUpO1xuICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgICB9XG4gIH1cblxuICAvLyBGb3IgbGVuaWVuY3ksIHRoZSBjb21wb25lbnQgd2lsbCBhY2NlcHQgYW55IERhdGUgdGhhdCBwb2ludHMgdG8gZWl0aGVyIFVUQyBtaWRuaWdodFxuICAvLyBvciB0byBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBhbHRob3VnaCB3ZSB3aWxsIGludGVybmFsbHkgbm9ybWFsaXplIHRoZSByZXByZXNlbnRhdGlvblxuICAvLyBvZiBhbGwgcmVjZWl2ZWQgZGF0ZXMgdG8gcG9pbnQgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQuXG4gIC8vIFdlIGN1cnJlbnRseSBsb2cgbm8gd2FybmluZ3MgaWYgdGhlIGRhdGUgZG9lc24ndCBtYXRjaCB0aGUgdGltZXpvbmUgc2V0dGluZyBvclxuICAvLyBpZiBpdCBkb2Vzbid0IHBvaW50IHRvIG1pZG5pZ2h0LlxuICBwcml2YXRlIG5vcm1hbGl6ZURhdGUoZGF0ZUxvY2FsT3JVVEM6IERhdGUpIHtcbiAgICBpZiAoIWRhdGVMb2NhbE9yVVRDKSByZXR1cm47XG5cbiAgICBpZiAoc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQykuZ2V0VGltZSgpID09PSBkYXRlTG9jYWxPclVUQy5nZXRUaW1lKCkpIHtcbiAgICAgIC8vIGRhdGUgaXMgbG9jYWwgdGltZXpvbmUgbWlkbmlnaHRcbiAgICAgIHJldHVybiBkYXRlTG9jYWxPclVUQztcbiAgICB9XG4gICAgaWYgKFxuICAgICAgc3RhcnRPZkRheSh1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpKS5nZXRUaW1lKCkgPT09XG4gICAgICB1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpLmdldFRpbWUoKVxuICAgICkge1xuICAgICAgLy8gdGhlIGRhdGUgaXMgYSBVVEMgbWlkbmlnaHQ7IGNyZWF0ZSB0aGUgZXF1aXZhbGVudCBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBkYXRlXG4gICAgICBjb25zdCBub3JtYWxpemVkVVRDZGF0ZSA9IHV0Y1RvWm9uZWRUaW1lKGRhdGVMb2NhbE9yVVRDLCB0aGlzLnRpbWVab25lTmFtZSk7XG4gICAgICByZXR1cm4gbm9ybWFsaXplZFVUQ2RhdGU7XG4gICAgfVxuICAgIC8vIGRvZXMgbm90IHBvaW50IHRvIG1pZG5pZ2h0IHNvIHdlIG1ha2UgaXRcbiAgICByZXR1cm4gc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQyk7XG4gIH1cblxuICBwcml2YXRlIGdldFdlZWtEYXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3Qgd2VlayA9IGVhY2hEYXlPZkludGVydmFsKHtcbiAgICAgIHN0YXJ0OiBzdGFydE9mV2Vlayhub3csIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KSxcbiAgICAgIGVuZDogZW5kT2ZXZWVrKG5vdywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHdlZWsubWFwKChkYXRlKSA9PiB0aGlzLmdldEZpcnN0TGV0dGVyT2ZXZWVrRGF5Q2FwaXRhbGl6ZWQoZGF0ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdExldHRlck9mV2Vla0RheUNhcGl0YWxpemVkKGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRXaXRoTG9jYWxlKGRhdGUsICdFRUVFRScpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNEYXRlQ2hhbmdlZChuZXdEYXRlOiBEYXRlLCBwcmV2aW91c0RhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAoIW5ld0RhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobmV3RGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiAhaXNTYW1lRGF5KG5ld0RhdGUsIHByZXZpb3VzRGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGlzYWJsZWREYXRlKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoKGRpc2FibGVkRGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIGlzU2FtZURheShkaXNhYmxlZERhdGUsIGRhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEFjdGl2ZU1vbnRoKCkge1xuICAgIGlmICghdGhpcy5hY3RpdmVNb250aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9udGhTdGFydCA9IHN0YXJ0T2ZNb250aCh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICBjb25zdCBtb250aEVuZCA9IGVuZE9mTW9udGgodGhpcy5hY3RpdmVNb250aCk7XG4gICAgY29uc3Qgc3RhcnRPZkZpcnN0V2VlayA9IHN0YXJ0T2ZXZWVrKG1vbnRoU3RhcnQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICBjb25zdCBlbmRPZkxhc3RXZWVrID0gZW5kT2ZXZWVrKG1vbnRoRW5kLCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSk7XG4gICAgY29uc3QgdG90YWxEYXlDb3VudCA9IGRpZmZlcmVuY2VJbkRheXMoZW5kT2ZMYXN0V2Vlaywgc3RhcnRPZkZpcnN0V2VlaykgKyAxO1xuICAgIGNvbnN0IHRvZGF5ID0gdGhpcy50b2RheURhdGUgPyBzdGFydE9mRGF5KHRoaXMudG9kYXlEYXRlKSA6IHN0YXJ0T2ZEYXkobmV3IERhdGUoKSk7XG5cbiAgICBjb25zdCBkYXlzQXJyYXkgPSBBcnJheS5mcm9tKEFycmF5KHRvdGFsRGF5Q291bnQpLmtleXMoKSk7XG5cbiAgICBjb25zdCBkYXlzOiBDYWxlbmRhckNlbGxbXSA9IGRheXNBcnJheS5tYXAoKG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2VsbERhdGUgPSBhZGQoc3RhcnRPZkZpcnN0V2VlaywgeyBbVGltZVVuaXQuZGF5c106IG51bWJlciB9KTtcbiAgICAgIGNvbnN0IGRheSA9IHRoaXMuZ2V0Q2FsZW5kYXJEYXkoY2VsbERhdGUsIHRvZGF5LCBtb250aFN0YXJ0KTtcblxuICAgICAgY29uc3QgaXNTZWxlY3RhYmxlID0gdGhpcy5pc1NlbGVjdGFibGUoZGF5LCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXNTYW1lRGF5KHRoaXMuc2VsZWN0ZWREYXRlLCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBjZWxsID0ge1xuICAgICAgICBkYXRlOiBjZWxsRGF0ZS5nZXREYXRlKCksXG4gICAgICAgIGlzQ3VycmVudE1vbnRoOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICAgIGlzU2VsZWN0YWJsZSxcbiAgICAgICAgaXNTZWxlY3RlZCxcbiAgICAgICAgY3NzQ2xhc3NlczogdGhpcy5nZXRDc3NDbGFzc2VzKGRheSwgaXNTZWxlY3RhYmxlLCBpc1NlbGVjdGVkKSxcbiAgICAgIH07XG4gICAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gY2VsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjZWxsO1xuICAgIH0pO1xuICAgIHRoaXMuX21vbnRoID0gdGhpcy5jaHVuayhkYXlzLCA3KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FsZW5kYXJEYXkoZGF0ZTogRGF0ZSwgdG9kYXk6IERhdGUsIG1vbnRoU3RhcnQ6IERhdGUpOiBDYWxlbmRhckRheSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVG9kYXk6IGlzU2FtZURheSh0b2RheSwgZGF0ZSksXG4gICAgICBpc1Bhc3Q6IGlzQmVmb3JlKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzRnV0dXJlOiBpc0FmdGVyKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzV2Vla2VuZDogaXNXZWVrZW5kKGRhdGUpLFxuICAgICAgaXNDdXJyZW50TW9udGg6IGlzU2FtZU1vbnRoKGRhdGUsIG1vbnRoU3RhcnQpLFxuICAgICAgaXNEaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkRGF0ZShkYXRlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGVjdGFibGUoZGF5OiBDYWxlbmRhckRheSwgZGF0ZTogRGF0ZSkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5hbHdheXNFbmFibGVUb2RheSAmJiBkYXkuaXNUb2RheSkgfHxcbiAgICAgICghZGF5LmlzRGlzYWJsZWQgJiZcbiAgICAgICAgZGF5LmlzQ3VycmVudE1vbnRoICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlV2Vla2VuZHMgJiYgZGF5LmlzV2Vla2VuZCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgZGF5LmlzUGFzdCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVGdXR1cmVEYXRlcyAmJiBkYXkuaXNGdXR1cmUpICYmXG4gICAgICAgICEodGhpcy5taW5EYXRlICYmIGlzQmVmb3JlKGRhdGUsIHRoaXMubWluRGF0ZSkpICYmXG4gICAgICAgICEodGhpcy5tYXhEYXRlICYmIGlzQWZ0ZXIoZGF0ZSwgdGhpcy5tYXhEYXRlKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3NzQ2xhc3NlcyhkYXk6IENhbGVuZGFyRGF5LCBpc1NlbGVjdGFibGU6IGJvb2xlYW4sIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjc3NDbGFzc2VzID0ge1xuICAgICAgJ2N1cnJlbnQtbW9udGgnOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICB3ZWVrZW5kOiBkYXkuaXNXZWVrZW5kLFxuICAgICAgdG9kYXk6IGRheS5pc1RvZGF5LFxuICAgICAgc2VsZWN0YWJsZTogaXNTZWxlY3RhYmxlLFxuICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICBwYXN0OiBkYXkuaXNQYXN0LFxuICAgICAgZGlzYWJsZWQ6IGRheS5pc0Rpc2FibGVkLFxuICAgIH07XG4gICAgbGV0IGNzc0NsYXNzU3RyaW5nID0gJ2RheSc7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY3NzQ2xhc3Nlcykge1xuICAgICAgaWYgKGNzc0NsYXNzZXNba2V5XSkge1xuICAgICAgICBjc3NDbGFzc1N0cmluZyArPSAnICcgKyBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjc3NDbGFzc1N0cmluZztcbiAgfVxuXG4gIHByaXZhdGUgY2h1bmsoYXJyYXk6IGFueVtdLCBzaXplOiBudW1iZXIpIHtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgd2hpbGUgKGFycmF5Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0cy5wdXNoKGFycmF5LnNwbGljZSgwLCBzaXplKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RheSA9IHRoaXMuZ2V0Q2VsbChuZXdEYXRlKTtcbiAgICBpZiAobmV3RGF5KSB7XG4gICAgICBuZXdEYXkuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gbmV3RGF5O1xuICAgIH1cbiAgICB0aGlzLmNhbGVuZGFySGVscGVyLnNldFNlbGVjdGVkRGF5KG5ld0RhdGUuZ2V0RGF0ZSgpKTtcbiAgfVxuXG4gIF9vbkRhdGVTZWxlY3RlZChuZXdEYXk6IENhbGVuZGFyQ2VsbCkge1xuICAgIGlmIChuZXdEYXkuaXNTZWxlY3RhYmxlICYmIG5ld0RheS5kYXRlKSB7XG4gICAgICBsZXQgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlTW9udGgpO1xuXG4gICAgICBpZiAodGhpcy50aW1lem9uZSA9PT0gJ1VUQycpIHtcbiAgICAgICAgbmV3RGF0ZSA9IHpvbmVkVGltZVRvVXRjKHRoaXMuc3VidHJhY3RUaW1lem9uZU9mZnNldChuZXdEYXRlKSwgdGhpcy50aW1lWm9uZU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBuZXdEYXRlLnNldERhdGUobmV3RGF5LmRhdGUpO1xuICAgICAgY29uc3QgZGF0ZVRvRW1pdCA9IG5ld0RhdGU7XG5cbiAgICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKG5ld0RhdGUsIHRoaXMuX3NlbGVjdGVkRGF0ZSkpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZGF0ZVRvRW1pdCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGVTZWxlY3QuZW1pdChkYXRlVG9FbWl0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlTW9udGgoZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jaGFuZ2VNb250aChkaXJlY3Rpb24pO1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgfVxuXG4gIF9jaGFuZ2VNb250aChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KGluZGV4LCBUaW1lVW5pdC5tb250aHMpO1xuICB9XG5cbiAgX2NoYW5nZVllYXIoeWVhcjogc3RyaW5nKSB7XG4gICAgY29uc3QgeWVhck51bWVyaWMgPSBOdW1iZXIoeWVhcik7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KHllYXJOdW1lcmljIC0gZ2V0WWVhcih0aGlzLmFjdGl2ZU1vbnRoKSwgVGltZVVuaXQueWVhcnMpO1xuICAgIHRoaXMueWVhclNlbGVjdC5lbWl0KHllYXJOdW1lcmljKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlQWN0aXZlVmlldyhpbmRleDogbnVtYmVyLCB1bml0OiBUaW1lVW5pdCkge1xuICAgIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuO1xuICAgIHRoaXMuYWN0aXZlTW9udGggPSBhZGQodGhpcy5hY3RpdmVNb250aCwgeyBbdW5pdF06IGluZGV4IH0pO1xuXG4gICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgfVxuXG4gIGdldCBfY2FuTmF2aWdhdGVCYWNrKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlYWNoZWRQYXN0RGF0ZXNMaW1pdCA9XG4gICAgICB0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlID1cbiAgICAgIHRoaXMubWluRGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWluRGF0ZSkgfHwgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdGhpcy5taW5EYXRlKSk7XG5cbiAgICByZXR1cm4gIXJlYWNoZWRQYXN0RGF0ZXNMaW1pdCAmJiAhcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlO1xuICB9XG5cbiAgZ2V0IF9jYW5OYXZpZ2F0ZUZvcndhcmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgPVxuICAgICAgdGhpcy5kaXNhYmxlRnV0dXJlRGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNYXhEYXRlID1cbiAgICAgIHRoaXMubWF4RGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWF4RGF0ZSkgfHwgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1heERhdGUpKTtcblxuICAgIHJldHVybiAhcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgJiYgIXJlYWNoZWRPckV4Y2VlZGVkTWF4RGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2VsbChkYXRlOiBEYXRlKSB7XG4gICAgbGV0IGZvdW5kRGF5ID0gbnVsbDtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgZm9yIChsZXQgd2VlayBvZiB0aGlzLl9tb250aCkge1xuICAgICAgICBmb3VuZERheSA9IHdlZWsuZmluZCgoZGF5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRheS5pc0N1cnJlbnRNb250aCAmJiBkYXkuZGF0ZSA9PT0gZGF0ZS5nZXREYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZm91bmREYXkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZm91bmREYXk7XG4gIH1cblxuICBwcml2YXRlIGdldEhlbHBlck9wdGlvbnMoKTogQ2FsZW5kYXJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FuTmF2aWdhdGVCYWNrOiB0aGlzLl9jYW5OYXZpZ2F0ZUJhY2ssXG4gICAgICBjYW5OYXZpZ2F0ZUZvcndhcmQ6IHRoaXMuX2Nhbk5hdmlnYXRlRm9yd2FyZCxcbiAgICAgIHllYXI6IHRoaXMuYWN0aXZlWWVhcixcbiAgICAgIG1vbnRoTmFtZTogdGhpcy5hY3RpdmVNb250aE5hbWUsXG4gICAgICB3ZWVrRGF5czogdGhpcy5fd2Vla0RheXMsXG4gICAgICBtb250aDogdGhpcy5fbW9udGgsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3VidHJhY3RUaW1lem9uZU9mZnNldChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbk1zID0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAgKiAxMDAwO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIHRpbWV6b25lT2Zmc2V0SW5Ncyk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVGcm9tTmF2aWdhYmxlWWVhcihuYXZpZ2FibGVZZWFyOiBudW1iZXIgfCBEYXRlKTogRGF0ZSB7XG4gICAgaWYgKG5hdmlnYWJsZVllYXIgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gbmF2aWdhYmxlWWVhcjtcbiAgICBjb25zdCB0b2RheSA9IHRoaXMudG9kYXlEYXRlIHx8IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCkgKyBuYXZpZ2FibGVZZWFyLCAwLCAxKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogc3RyaW5nW10ge1xuICAgIC8vIEVuc3VyZSB5ZWFycyBhcmUgb3JkZXJlZCBjb3JyZWN0bHkgaWYgcGFyYW1ldGVycyBhcmUgc3dpdGNoZWQ6XG4gICAgY29uc3QgW3N0YXJ0WWVhciwgZW5kWWVhcl0gPSBbc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksIGVuZERhdGUuZ2V0RnVsbFllYXIoKV0uc29ydCgpO1xuICAgIGNvbnN0IG51bWJlck9mWWVhcnMgPSBlbmRZZWFyIC0gc3RhcnRZZWFyO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBudW1iZXJPZlllYXJzICsgMSB9LCAoXywgaSkgPT4gKHN0YXJ0WWVhciArIGkpLnRvU3RyaW5nKCkpO1xuICB9XG59XG4iXX0=
|
|
366
|
+
/** @nocollapse */ CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.CalendarHelper }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
367
|
+
/** @nocollapse */ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CalendarComponent, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, providers: [CalendarHelper], viewQueries: [{ propertyName: "calendarContainer", first: true, predicate: ["calendarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button [disabled]=\"!_canNavigateBack\" (click)=\"_changeMonth(-1)\">\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span\n ><span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button [disabled]=\"!_canNavigateForward\" (click)=\"_changeMonth(1)\">\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n >\n </kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }}\"\n [class.selected]=\"day.isSelected\"\n >\n {{ day.date }}\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button{background-color:transparent;outline:none;border:none;color:inherit;cursor:pointer;height:40px;width:40px;padding:0}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0}.day.selectable,.day.selected{cursor:pointer}.day.disabled,.day:not(.selectable){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}.day:not(.current-month){visibility:hidden;pointer-events:none}.day.selectable:not(.selected):hover{color:var(--kirby-light-contrast);background-color:var(--kirby-light)}\n"], components: [{ type: i2.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { type: i3.DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
368
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
369
|
+
type: Component,
|
|
370
|
+
args: [{
|
|
371
|
+
selector: 'kirby-calendar',
|
|
372
|
+
templateUrl: './calendar.component.html',
|
|
373
|
+
styleUrls: ['./calendar.component.scss'],
|
|
374
|
+
providers: [CalendarHelper],
|
|
375
|
+
}]
|
|
376
|
+
}], ctorParameters: function () { return [{ type: i1.CalendarHelper }, { type: undefined, decorators: [{
|
|
377
|
+
type: Inject,
|
|
378
|
+
args: [LOCALE_ID]
|
|
379
|
+
}] }]; }, propDecorators: { calendarContainer: [{
|
|
380
|
+
type: ViewChild,
|
|
381
|
+
args: ['calendarContainer', { static: false }]
|
|
382
|
+
}], dateChange: [{
|
|
383
|
+
type: Output
|
|
384
|
+
}], dateSelect: [{
|
|
385
|
+
type: Output
|
|
386
|
+
}], yearSelect: [{
|
|
387
|
+
type: Output
|
|
388
|
+
}], timezone: [{
|
|
389
|
+
type: Input
|
|
390
|
+
}], disableWeekends: [{
|
|
391
|
+
type: Input
|
|
392
|
+
}], disablePastDates: [{
|
|
393
|
+
type: Input
|
|
394
|
+
}], disableFutureDates: [{
|
|
395
|
+
type: Input
|
|
396
|
+
}], alwaysEnableToday: [{
|
|
397
|
+
type: Input
|
|
398
|
+
}], customLocales: [{
|
|
399
|
+
type: Input
|
|
400
|
+
}], usePopover: [{
|
|
401
|
+
type: Input
|
|
402
|
+
}], yearNavigatorOptions: [{
|
|
403
|
+
type: Input
|
|
404
|
+
}], selectedDate: [{
|
|
405
|
+
type: Input
|
|
406
|
+
}], disabledDates: [{
|
|
407
|
+
type: Input
|
|
408
|
+
}], todayDate: [{
|
|
409
|
+
type: Input
|
|
410
|
+
}], minDate: [{
|
|
411
|
+
type: Input
|
|
412
|
+
}], maxDate: [{
|
|
413
|
+
type: Input
|
|
414
|
+
}], _hasYearNavigator: [{
|
|
415
|
+
type: HostBinding,
|
|
416
|
+
args: ['class.has-year-navigator']
|
|
417
|
+
}] } });
|
|
418
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBYTNELElBQUssUUFTSjtBQVRELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDJCQUFl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QUE1QixLQUFLO2dCQXNCTyxZQUFZO3NCQUF4QixLQUFLO2dCQWNPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBUU8sU0FBUztzQkFBckIsS0FBSztnQkFRTyxPQUFPO3NCQUFuQixLQUFLO2dCQVdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBaUNGLGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIExPQ0FMRV9JRCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGFkZCxcbiAgZGlmZmVyZW5jZUluRGF5cyxcbiAgZWFjaERheU9mSW50ZXJ2YWwsXG4gIGVuZE9mTW9udGgsXG4gIGVuZE9mV2VlayxcbiAgZm9ybWF0LFxuICBnZXRZZWFyLFxuICBpc0FmdGVyLFxuICBpc0JlZm9yZSxcbiAgaXNTYW1lRGF5LFxuICBpc1NhbWVNb250aCxcbiAgaXNXZWVrZW5kLFxuICBMb2NhbGUgYXMgTG9jYWxlRGF0ZUZucyxcbiAgc3RhcnRPZkRheSxcbiAgc3RhcnRPZk1vbnRoLFxuICBzdGFydE9mV2Vlayxcbn0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXRjVG9ab25lZFRpbWUsIHpvbmVkVGltZVRvVXRjIH0gZnJvbSAnZGF0ZS1mbnMtdHonO1xuaW1wb3J0IHsgZGEsIGVuR0IsIGVuVVMgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vY29yZSc7XG5cbmltcG9ydCB7IENhbGVuZGFyQ2VsbCB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1jZWxsLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFyT3B0aW9ucyB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFySGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLmhlbHBlcic7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJOYXZpZ2F0b3JDb25maWcgfSBmcm9tICcuL29wdGlvbnMvY2FsZW5kYXIteWVhci1uYXZpZ2F0b3ItY29uZmlnJztcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0gTG9jYWxlRGF0ZUZucztcbmludGVyZmFjZSBDYWxlbmRhckRheSB7XG4gIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICBpc1RvZGF5OiBib29sZWFuO1xuICBpc1dlZWtlbmQ6IGJvb2xlYW47XG4gIGlzUGFzdDogYm9vbGVhbjtcbiAgaXNGdXR1cmU6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmVudW0gVGltZVVuaXQge1xuICB5ZWFycyA9ICd5ZWFycycsXG4gIG1vbnRocyA9ICdtb250aHMnLFxuICB3ZWVrcyA9ICd3ZWVrcycsXG4gIGRheXMgPSAnZGF5cycsXG4gIGhvdXJzID0gJ2hvdXJzJyxcbiAgbWludXRlcyA9ICdtaW51dGVzJyxcbiAgc2Vjb25kcyA9ICdzZWNvbmRzJyxcbiAgbWlsbGlzZWNvbmRzID0gJ21pbGxpc2Vjb25kcycsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJIZWxwZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIHllYXJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQElucHV0KCkgdGltZXpvbmU6ICdsb2NhbCcgfCAnVVRDJyA9ICdsb2NhbCc7XG4gIEBJbnB1dCgpIGRpc2FibGVXZWVrZW5kcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlUGFzdERhdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVGdXR1cmVEYXRlcyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbHdheXNFbmFibGVUb2RheSA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXN0b21Mb2NhbGVzOiB7IFtrZXk6IHN0cmluZ106IExvY2FsZSB9ID0ge307XG4gIC8qIFxuICAgIEV4cGVyaW1lbnRhbDogSW5wdXQgcHJvcGVydHkgbm90IGRvY3VtZW50ZWQgb24gcHVycG9zZS4gXG4gICAgRm9yIGNvbnRleHQgc2VlOiBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8yMDg3XG4gICovXG4gIEBJbnB1dCgpIHVzZVBvcG92ZXIgPSBmYWxzZTtcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB5ZWFyIG5hdmlnYXRvci5cbiAgICpcbiAgICogSW50ZXJuYWxseSwgY2FsZW5kYXIgY29tcG9uZW50OlxuICAgKiAtIGJhc2VzIHllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20gYW5kIHllYXJOYXZpZ2F0b3JPcHRpb25zLnRvIG9uIHRvZGF5RGF0ZSBpZiBhIG51bWJlciBpcyBwcm92aWRlZFxuICAgKiAtIHByaW9yaXRpemVzIG1pbkRhdGUgYW5kIG1heERhdGUgb3ZlciB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5mcm9tIGFuZCB5ZWFyTmF2aWdhdG9yT3B0aW9ucy50b1xuICAgKi9cbiAgQElucHV0KCkgeWVhck5hdmlnYXRvck9wdGlvbnM6IENhbGVuZGFyWWVhck5hdmlnYXRvckNvbmZpZztcblxuICBfbW9udGg6IENhbGVuZGFyQ2VsbFtdW107XG4gIF93ZWVrRGF5czogc3RyaW5nW107XG4gIHByaXZhdGUgc2VsZWN0ZWREYXk6IENhbGVuZGFyQ2VsbDtcbiAgLy8gTk9URTogSW50ZXJuYWxseSwgYWxsIERhdGVzXG4gIC8vIGFyZSBub3JtYWxpemVkIHRvIHBvaW50IHRvIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0LCByZWdhcmRsZXNzIG9mIHRoZSB0aW1lem9uZVxuICAvLyBzZXR0aW5nLlxuICBwcml2YXRlIGFjdGl2ZU1vbnRoOiBEYXRlO1xuICBwcml2YXRlIF9zZWxlY3RlZERhdGU6IERhdGU7XG4gIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IERhdGVbXSA9IFtdO1xuICBwcml2YXRlIF90b2RheURhdGU6IERhdGU7XG4gIHByaXZhdGUgX21pbkRhdGU6IERhdGU7XG4gIHByaXZhdGUgX21heERhdGU6IERhdGU7XG4gIHByaXZhdGUgbG9jYWxlOiBMb2NhbGU7XG4gIHByaXZhdGUgdGltZVpvbmVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgaW5jbHVkZWRMb2NhbGVzID0geyBkYSwgZW5HQiwgZW5VUyB9O1xuXG4gIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZERhdGUodmFsdWVMb2NhbE9yVVRDOiBEYXRlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWVMb2NhbE9yVVRDKTtcbiAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKHZhbHVlLCB0aGlzLl9zZWxlY3RlZERhdGUpKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0ZWREYXRlQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkaXNhYmxlZERhdGVzKCk6IERhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWREYXRlcyh2YWx1ZTogRGF0ZVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9ICh2YWx1ZSB8fCBbXSkubWFwKChkYXRlKSA9PiB0aGlzLm5vcm1hbGl6ZURhdGUoZGF0ZSkpO1xuICB9XG5cbiAgZ2V0IHRvZGF5RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdG9kYXlEYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRvZGF5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX3RvZGF5RGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9tYXhEYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVNb250aE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAnTU1NTScpKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVZZWFyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAneXl5eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgbmF2aWdhYmxlIHllYXJzIGZvciB5ZWFyIG5hdmlnYXRvciBiYXNlZCBvbiB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5cbiAgICovXG4gIGdldCBuYXZpZ2FibGVZZWFycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyID1cbiAgICAgIHRoaXMubWluRGF0ZSB8fCB0aGlzLmdldERhdGVGcm9tTmF2aWdhYmxlWWVhcih0aGlzLnllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20pO1xuXG4gICAgY29uc3QgZGF0ZU9mTGFzdE5hdmlnYWJsZVllYXIgPVxuICAgICAgdGhpcy5tYXhEYXRlIHx8IHRoaXMuZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKHRoaXMueWVhck5hdmlnYXRvck9wdGlvbnMudG8pO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyLCBkYXRlT2ZMYXN0TmF2aWdhYmxlWWVhcik7XG4gIH1cblxuICBnZXQgbmF2aWdhdGVkWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYWJsZVllYXJzLmluZGV4T2YodGhpcy5hY3RpdmVZZWFyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLXllYXItbmF2aWdhdG9yJylcbiAgZ2V0IF9oYXNZZWFyTmF2aWdhdG9yKCkge1xuICAgIHJldHVybiAhIXRoaXMueWVhck5hdmlnYXRvck9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFySGVscGVyOiBDYWxlbmRhckhlbHBlciwgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLm1hcExvY2FsZShsb2NhbGUpO1xuICAgIHRoaXMudGltZVpvbmVOYW1lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRXaXRoTG9jYWxlKGRhdGU6IERhdGUsIGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGZvcm1hdFN0cmluZywge1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcbiAgICBpZiAobG9jYWxlID09PSAnZW4nKSB7XG4gICAgICBsb2NhbGUgPSAnZW5HQic7IC8vIGlmIGVuZ2xpc2ggbG9jYWxlIGlzIHByb3ZpZGVkIHdpdGhvdXQgcmVnaW9uLCB3ZSBkZWZhdWx0IHRvIEdCXG4gICAgfVxuICAgIGxvY2FsZSA9IGxvY2FsZS5yZXBsYWNlKCctJywgJycpO1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSB7IC4uLnRoaXMuaW5jbHVkZWRMb2NhbGVzLCAuLi50aGlzLmN1c3RvbUxvY2FsZXMgfTtcblxuICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2xvY2FsZV0gfHwgdGhpcy5pbmNsdWRlZExvY2FsZXMuZW5HQjsgLy8gRGVmYXVsdCB0byBlbkdCIGlmIGluamVjdGVkIGxvY2FsZSBkb2VzbnQgZXhpc3RcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3dlZWtEYXlzID0gdGhpcy5nZXRXZWVrRGF5cygpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodGhpcy5zZWxlY3RlZERhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIuaW5pdChcbiAgICAgIHRoaXMuY2FsZW5kYXJDb250YWluZXIsXG4gICAgICB0aGlzLmdldEhlbHBlck9wdGlvbnMoKSxcbiAgICAgIHRoaXMuX29uRGF0ZVNlbGVjdGVkLmJpbmQodGhpcyksXG4gICAgICB0aGlzLm9uQ2hhbmdlTW9udGguYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5kaXNhYmxlV2Vla2VuZHMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZVBhc3REYXRlcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlRnV0dXJlRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZWREYXRlcyB8fFxuICAgICAgY2hhbmdlcy5taW5EYXRlIHx8XG4gICAgICBjaGFuZ2VzLm1heERhdGUgfHxcbiAgICAgIGNoYW5nZXMudG9kYXlEYXRlIHx8XG4gICAgICBjaGFuZ2VzLnRpbWV6b25lXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZnJlc2hBY3RpdmVNb250aCgpO1xuICAgICAgdGhpcy5jYWxlbmRhckhlbHBlci51cGRhdGUodGhpcy5nZXRIZWxwZXJPcHRpb25zKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlTW9udGgoZGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCkpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlTW9udGggfHwgIWlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIGRhdGUpKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gc3RhcnRPZk1vbnRoKGRhdGUpO1xuICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgICB9XG4gIH1cblxuICAvLyBGb3IgbGVuaWVuY3ksIHRoZSBjb21wb25lbnQgd2lsbCBhY2NlcHQgYW55IERhdGUgdGhhdCBwb2ludHMgdG8gZWl0aGVyIFVUQyBtaWRuaWdodFxuICAvLyBvciB0byBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBhbHRob3VnaCB3ZSB3aWxsIGludGVybmFsbHkgbm9ybWFsaXplIHRoZSByZXByZXNlbnRhdGlvblxuICAvLyBvZiBhbGwgcmVjZWl2ZWQgZGF0ZXMgdG8gcG9pbnQgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQuXG4gIC8vIFdlIGN1cnJlbnRseSBsb2cgbm8gd2FybmluZ3MgaWYgdGhlIGRhdGUgZG9lc24ndCBtYXRjaCB0aGUgdGltZXpvbmUgc2V0dGluZyBvclxuICAvLyBpZiBpdCBkb2Vzbid0IHBvaW50IHRvIG1pZG5pZ2h0LlxuICBwcml2YXRlIG5vcm1hbGl6ZURhdGUoZGF0ZUxvY2FsT3JVVEM6IERhdGUpIHtcbiAgICBpZiAoIWRhdGVMb2NhbE9yVVRDKSByZXR1cm47XG5cbiAgICBpZiAoc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQykuZ2V0VGltZSgpID09PSBkYXRlTG9jYWxPclVUQy5nZXRUaW1lKCkpIHtcbiAgICAgIC8vIGRhdGUgaXMgbG9jYWwgdGltZXpvbmUgbWlkbmlnaHRcbiAgICAgIHJldHVybiBkYXRlTG9jYWxPclVUQztcbiAgICB9XG4gICAgaWYgKFxuICAgICAgc3RhcnRPZkRheSh1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpKS5nZXRUaW1lKCkgPT09XG4gICAgICB1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpLmdldFRpbWUoKVxuICAgICkge1xuICAgICAgLy8gdGhlIGRhdGUgaXMgYSBVVEMgbWlkbmlnaHQ7IGNyZWF0ZSB0aGUgZXF1aXZhbGVudCBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBkYXRlXG4gICAgICBjb25zdCBub3JtYWxpemVkVVRDZGF0ZSA9IHV0Y1RvWm9uZWRUaW1lKGRhdGVMb2NhbE9yVVRDLCB0aGlzLnRpbWVab25lTmFtZSk7XG4gICAgICByZXR1cm4gbm9ybWFsaXplZFVUQ2RhdGU7XG4gICAgfVxuICAgIC8vIGRvZXMgbm90IHBvaW50IHRvIG1pZG5pZ2h0IHNvIHdlIG1ha2UgaXRcbiAgICByZXR1cm4gc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQyk7XG4gIH1cblxuICBwcml2YXRlIGdldFdlZWtEYXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3Qgd2VlayA9IGVhY2hEYXlPZkludGVydmFsKHtcbiAgICAgIHN0YXJ0OiBzdGFydE9mV2Vlayhub3csIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KSxcbiAgICAgIGVuZDogZW5kT2ZXZWVrKG5vdywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHdlZWsubWFwKChkYXRlKSA9PiB0aGlzLmdldEZpcnN0TGV0dGVyT2ZXZWVrRGF5Q2FwaXRhbGl6ZWQoZGF0ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdExldHRlck9mV2Vla0RheUNhcGl0YWxpemVkKGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRXaXRoTG9jYWxlKGRhdGUsICdFRUVFRScpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNEYXRlQ2hhbmdlZChuZXdEYXRlOiBEYXRlLCBwcmV2aW91c0RhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAoIW5ld0RhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobmV3RGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiAhaXNTYW1lRGF5KG5ld0RhdGUsIHByZXZpb3VzRGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGlzYWJsZWREYXRlKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoKGRpc2FibGVkRGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIGlzU2FtZURheShkaXNhYmxlZERhdGUsIGRhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEFjdGl2ZU1vbnRoKCkge1xuICAgIGlmICghdGhpcy5hY3RpdmVNb250aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9udGhTdGFydCA9IHN0YXJ0T2ZNb250aCh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICBjb25zdCBtb250aEVuZCA9IGVuZE9mTW9udGgodGhpcy5hY3RpdmVNb250aCk7XG4gICAgY29uc3Qgc3RhcnRPZkZpcnN0V2VlayA9IHN0YXJ0T2ZXZWVrKG1vbnRoU3RhcnQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICBjb25zdCBlbmRPZkxhc3RXZWVrID0gZW5kT2ZXZWVrKG1vbnRoRW5kLCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSk7XG4gICAgY29uc3QgdG90YWxEYXlDb3VudCA9IGRpZmZlcmVuY2VJbkRheXMoZW5kT2ZMYXN0V2Vlaywgc3RhcnRPZkZpcnN0V2VlaykgKyAxO1xuICAgIGNvbnN0IHRvZGF5ID0gdGhpcy50b2RheURhdGUgPyBzdGFydE9mRGF5KHRoaXMudG9kYXlEYXRlKSA6IHN0YXJ0T2ZEYXkobmV3IERhdGUoKSk7XG5cbiAgICBjb25zdCBkYXlzQXJyYXkgPSBBcnJheS5mcm9tKEFycmF5KHRvdGFsRGF5Q291bnQpLmtleXMoKSk7XG5cbiAgICBjb25zdCBkYXlzOiBDYWxlbmRhckNlbGxbXSA9IGRheXNBcnJheS5tYXAoKG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2VsbERhdGUgPSBhZGQoc3RhcnRPZkZpcnN0V2VlaywgeyBbVGltZVVuaXQuZGF5c106IG51bWJlciB9KTtcbiAgICAgIGNvbnN0IGRheSA9IHRoaXMuZ2V0Q2FsZW5kYXJEYXkoY2VsbERhdGUsIHRvZGF5LCBtb250aFN0YXJ0KTtcblxuICAgICAgY29uc3QgaXNTZWxlY3RhYmxlID0gdGhpcy5pc1NlbGVjdGFibGUoZGF5LCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXNTYW1lRGF5KHRoaXMuc2VsZWN0ZWREYXRlLCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBjZWxsID0ge1xuICAgICAgICBkYXRlOiBjZWxsRGF0ZS5nZXREYXRlKCksXG4gICAgICAgIGlzQ3VycmVudE1vbnRoOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICAgIGlzU2VsZWN0YWJsZSxcbiAgICAgICAgaXNTZWxlY3RlZCxcbiAgICAgICAgY3NzQ2xhc3NlczogdGhpcy5nZXRDc3NDbGFzc2VzKGRheSwgaXNTZWxlY3RhYmxlLCBpc1NlbGVjdGVkKSxcbiAgICAgIH07XG4gICAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gY2VsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjZWxsO1xuICAgIH0pO1xuICAgIHRoaXMuX21vbnRoID0gdGhpcy5jaHVuayhkYXlzLCA3KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FsZW5kYXJEYXkoZGF0ZTogRGF0ZSwgdG9kYXk6IERhdGUsIG1vbnRoU3RhcnQ6IERhdGUpOiBDYWxlbmRhckRheSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVG9kYXk6IGlzU2FtZURheSh0b2RheSwgZGF0ZSksXG4gICAgICBpc1Bhc3Q6IGlzQmVmb3JlKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzRnV0dXJlOiBpc0FmdGVyKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzV2Vla2VuZDogaXNXZWVrZW5kKGRhdGUpLFxuICAgICAgaXNDdXJyZW50TW9udGg6IGlzU2FtZU1vbnRoKGRhdGUsIG1vbnRoU3RhcnQpLFxuICAgICAgaXNEaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkRGF0ZShkYXRlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGVjdGFibGUoZGF5OiBDYWxlbmRhckRheSwgZGF0ZTogRGF0ZSkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5hbHdheXNFbmFibGVUb2RheSAmJiBkYXkuaXNUb2RheSkgfHxcbiAgICAgICghZGF5LmlzRGlzYWJsZWQgJiZcbiAgICAgICAgZGF5LmlzQ3VycmVudE1vbnRoICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlV2Vla2VuZHMgJiYgZGF5LmlzV2Vla2VuZCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgZGF5LmlzUGFzdCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVGdXR1cmVEYXRlcyAmJiBkYXkuaXNGdXR1cmUpICYmXG4gICAgICAgICEodGhpcy5taW5EYXRlICYmIGlzQmVmb3JlKGRhdGUsIHRoaXMubWluRGF0ZSkpICYmXG4gICAgICAgICEodGhpcy5tYXhEYXRlICYmIGlzQWZ0ZXIoZGF0ZSwgdGhpcy5tYXhEYXRlKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3NzQ2xhc3NlcyhkYXk6IENhbGVuZGFyRGF5LCBpc1NlbGVjdGFibGU6IGJvb2xlYW4sIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjc3NDbGFzc2VzID0ge1xuICAgICAgJ2N1cnJlbnQtbW9udGgnOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICB3ZWVrZW5kOiBkYXkuaXNXZWVrZW5kLFxuICAgICAgdG9kYXk6IGRheS5pc1RvZGF5LFxuICAgICAgc2VsZWN0YWJsZTogaXNTZWxlY3RhYmxlLFxuICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICBwYXN0OiBkYXkuaXNQYXN0LFxuICAgICAgZGlzYWJsZWQ6IGRheS5pc0Rpc2FibGVkLFxuICAgIH07XG4gICAgbGV0IGNzc0NsYXNzU3RyaW5nID0gJ2RheSc7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY3NzQ2xhc3Nlcykge1xuICAgICAgaWYgKGNzc0NsYXNzZXNba2V5XSkge1xuICAgICAgICBjc3NDbGFzc1N0cmluZyArPSAnICcgKyBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjc3NDbGFzc1N0cmluZztcbiAgfVxuXG4gIHByaXZhdGUgY2h1bmsoYXJyYXk6IGFueVtdLCBzaXplOiBudW1iZXIpIHtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgd2hpbGUgKGFycmF5Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0cy5wdXNoKGFycmF5LnNwbGljZSgwLCBzaXplKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RheSA9IHRoaXMuZ2V0Q2VsbChuZXdEYXRlKTtcbiAgICBpZiAobmV3RGF5KSB7XG4gICAgICBuZXdEYXkuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gbmV3RGF5O1xuICAgIH1cbiAgICB0aGlzLmNhbGVuZGFySGVscGVyLnNldFNlbGVjdGVkRGF5KG5ld0RhdGUuZ2V0RGF0ZSgpKTtcbiAgfVxuXG4gIF9vbkRhdGVTZWxlY3RlZChuZXdEYXk6IENhbGVuZGFyQ2VsbCkge1xuICAgIGlmIChuZXdEYXkuaXNTZWxlY3RhYmxlICYmIG5ld0RheS5kYXRlKSB7XG4gICAgICBsZXQgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlTW9udGgpO1xuICAgICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RheS5kYXRlKTtcblxuICAgICAgaWYgKHRoaXMudGltZXpvbmUgPT09ICdVVEMnKSB7XG4gICAgICAgIG5ld0RhdGUgPSB6b25lZFRpbWVUb1V0Yyh0aGlzLnN1YnRyYWN0VGltZXpvbmVPZmZzZXQobmV3RGF0ZSksIHRoaXMudGltZVpvbmVOYW1lKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0ZVRvRW1pdCA9IG5ld0RhdGU7XG5cbiAgICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKG5ld0RhdGUsIHRoaXMuX3NlbGVjdGVkRGF0ZSkpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZGF0ZVRvRW1pdCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGVTZWxlY3QuZW1pdChkYXRlVG9FbWl0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlTW9udGgoZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jaGFuZ2VNb250aChkaXJlY3Rpb24pO1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgfVxuXG4gIF9jaGFuZ2VNb250aChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KGluZGV4LCBUaW1lVW5pdC5tb250aHMpO1xuICB9XG5cbiAgX2NoYW5nZVllYXIoeWVhcjogc3RyaW5nKSB7XG4gICAgY29uc3QgeWVhck51bWVyaWMgPSBOdW1iZXIoeWVhcik7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KHllYXJOdW1lcmljIC0gZ2V0WWVhcih0aGlzLmFjdGl2ZU1vbnRoKSwgVGltZVVuaXQueWVhcnMpO1xuICAgIHRoaXMueWVhclNlbGVjdC5lbWl0KHllYXJOdW1lcmljKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlQWN0aXZlVmlldyhpbmRleDogbnVtYmVyLCB1bml0OiBUaW1lVW5pdCkge1xuICAgIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuO1xuICAgIHRoaXMuYWN0aXZlTW9udGggPSBhZGQodGhpcy5hY3RpdmVNb250aCwgeyBbdW5pdF06IGluZGV4IH0pO1xuXG4gICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgfVxuXG4gIGdldCBfY2FuTmF2aWdhdGVCYWNrKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlYWNoZWRQYXN0RGF0ZXNMaW1pdCA9XG4gICAgICB0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlID1cbiAgICAgIHRoaXMubWluRGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWluRGF0ZSkgfHwgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdGhpcy5taW5EYXRlKSk7XG5cbiAgICByZXR1cm4gIXJlYWNoZWRQYXN0RGF0ZXNMaW1pdCAmJiAhcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlO1xuICB9XG5cbiAgZ2V0IF9jYW5OYXZpZ2F0ZUZvcndhcmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgPVxuICAgICAgdGhpcy5kaXNhYmxlRnV0dXJlRGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNYXhEYXRlID1cbiAgICAgIHRoaXMubWF4RGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWF4RGF0ZSkgfHwgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1heERhdGUpKTtcblxuICAgIHJldHVybiAhcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgJiYgIXJlYWNoZWRPckV4Y2VlZGVkTWF4RGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2VsbChkYXRlOiBEYXRlKSB7XG4gICAgbGV0IGZvdW5kRGF5ID0gbnVsbDtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgZm9yIChsZXQgd2VlayBvZiB0aGlzLl9tb250aCkge1xuICAgICAgICBmb3VuZERheSA9IHdlZWsuZmluZCgoZGF5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRheS5pc0N1cnJlbnRNb250aCAmJiBkYXkuZGF0ZSA9PT0gZGF0ZS5nZXREYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZm91bmREYXkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZm91bmREYXk7XG4gIH1cblxuICBwcml2YXRlIGdldEhlbHBlck9wdGlvbnMoKTogQ2FsZW5kYXJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FuTmF2aWdhdGVCYWNrOiB0aGlzLl9jYW5OYXZpZ2F0ZUJhY2ssXG4gICAgICBjYW5OYXZpZ2F0ZUZvcndhcmQ6IHRoaXMuX2Nhbk5hdmlnYXRlRm9yd2FyZCxcbiAgICAgIHllYXI6IHRoaXMuYWN0aXZlWWVhcixcbiAgICAgIG1vbnRoTmFtZTogdGhpcy5hY3RpdmVNb250aE5hbWUsXG4gICAgICB3ZWVrRGF5czogdGhpcy5fd2Vla0RheXMsXG4gICAgICBtb250aDogdGhpcy5fbW9udGgsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3VidHJhY3RUaW1lem9uZU9mZnNldChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbk1zID0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAgKiAxMDAwO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIHRpbWV6b25lT2Zmc2V0SW5Ncyk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVGcm9tTmF2aWdhYmxlWWVhcihuYXZpZ2FibGVZZWFyOiBudW1iZXIgfCBEYXRlKTogRGF0ZSB7XG4gICAgaWYgKG5hdmlnYWJsZVllYXIgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gbmF2aWdhYmxlWWVhcjtcbiAgICBjb25zdCB0b2RheSA9IHRoaXMudG9kYXlEYXRlIHx8IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCkgKyBuYXZpZ2FibGVZZWFyLCAwLCAxKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogc3RyaW5nW10ge1xuICAgIC8vIEVuc3VyZSB5ZWFycyBhcmUgb3JkZXJlZCBjb3JyZWN0bHkgaWYgcGFyYW1ldGVycyBhcmUgc3dpdGNoZWQ6XG4gICAgY29uc3QgW3N0YXJ0WWVhciwgZW5kWWVhcl0gPSBbc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksIGVuZERhdGUuZ2V0RnVsbFllYXIoKV0uc29ydCgpO1xuICAgIGNvbnN0IG51bWJlck9mWWVhcnMgPSBlbmRZZWFyIC0gc3RhcnRZZWFyO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBudW1iZXJPZlllYXJzICsgMSB9LCAoXywgaSkgPT4gKHN0YXJ0WWVhciArIGkpLnRvU3RyaW5nKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJtb250aC1uYXZpZ2F0b3JcIj5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhX2Nhbk5hdmlnYXRlQmFja1wiIChjbGljayk9XCJfY2hhbmdlTW9udGgoLTEpXCI+XG4gICAgICA8a2lyYnktaWNvbiBuYW1lPVwiYXJyb3ctYmFja1wiPjwva2lyYnktaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb250aC1hbmQteWVhclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtb250aFwiPnt7IGFjdGl2ZU1vbnRoTmFtZSB9fTwvc3BhblxuICAgICAgPjxzcGFuICpuZ0lmPVwiIV9oYXNZZWFyTmF2aWdhdG9yXCIgY2xhc3M9XCJ5ZWFyXCI+e3sgYWN0aXZlWWVhciB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFfY2FuTmF2aWdhdGVGb3J3YXJkXCIgKGNsaWNrKT1cIl9jaGFuZ2VNb250aCgxKVwiPlxuICAgICAgPGtpcmJ5LWljb24gbmFtZT1cImFycm93LW1vcmVcIj48L2tpcmJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8a2lyYnktZHJvcGRvd25cbiAgICAqbmdJZj1cIl9oYXNZZWFyTmF2aWdhdG9yXCJcbiAgICBbdXNlUG9wb3Zlcl09XCJ1c2VQb3BvdmVyXCJcbiAgICBbc2VsZWN0ZWRJbmRleF09XCJuYXZpZ2F0ZWRZZWFyXCJcbiAgICBbaXRlbXNdPVwibmF2aWdhYmxlWWVhcnNcIlxuICAgIHBvcG91dD1cImxlZnRcIlxuICAgIChjaGFuZ2UpPVwiX2NoYW5nZVllYXIoJGV2ZW50KVwiXG4gID5cbiAgPC9raXJieS1kcm9wZG93bj5cbjwvZGl2PlxuXG48dGFibGU+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IHdlZWtEYXkgb2YgX3dlZWtEYXlzXCI+e3sgd2Vla0RheSB9fTwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cblxuICA8dGJvZHk+XG4gICAgPHRyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIF9tb250aFwiPlxuICAgICAgPHRkICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKGNsaWNrKT1cIl9vbkRhdGVTZWxlY3RlZChkYXkpXCJcbiAgICAgICAgICBjbGFzcz1cInt7IGRheS5jc3NDbGFzc2VzIH19XCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZGF5LmlzU2VsZWN0ZWRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZGF5LmRhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48IS0tIDxpZnJhbWUgc3JjPVwia2lyYnkvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci53ZWJ2aWV3Lmh0bWxcIiAjY2FsZW5kYXJDb250YWluZXIgc3R5bGU9XCJ3aWR0aDogMzIwcHg7IGhlaWdodDogMzA0cHg7IGJvcmRlcjogMFwiPiAtLT5cbiJdfQ==
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { WindowRef } from '../../../types/window-ref';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../types/window-ref";
|
|
3
5
|
export class CalendarHelper {
|
|
4
6
|
constructor(windowRef) {
|
|
5
7
|
this.windowRef = windowRef;
|
|
@@ -67,11 +69,9 @@ export class CalendarHelper {
|
|
|
67
69
|
return event.data.type === 'kirbyCalendarChangeMonth' && typeof event.data.index === 'number';
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
|
-
CalendarHelper
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
];
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBS3RELE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFGaEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBRVMsQ0FBQztJQUVyQyxJQUFJLENBQ1QsaUJBQTZCLEVBQzdCLE9BQXdCLEVBQ3hCLGFBQXNFLEVBQ3RFLGFBQXNDO1FBRXRDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sTUFBTSxHQUFzQixpQkFBaUIsQ0FBQyxhQUFhLENBQUM7WUFDbEUsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFFekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQzlFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUM3RCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXdCO1FBQ3BDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsR0FBVztRQUMvQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDM0I7Z0JBQ0UsSUFBSSxFQUFFLDZCQUE2QjtnQkFDbkMsV0FBVyxFQUFFLEdBQUc7YUFDakIsRUFDRCxHQUFHLENBQ0osQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxpQkFBNkI7UUFDbkQsT0FBTyxDQUNMLGlCQUFpQjtZQUNqQixpQkFBaUIsQ0FBQyxhQUFhO1lBQy9CLGlCQUFpQixDQUFDLGFBQWEsWUFBWSxpQkFBaUI7WUFDNUQsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxPQUF3QjtRQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsaUJBRXpCLElBQUksRUFBRSxtQkFBbUIsSUFDdEIsT0FBTyxHQUVaLEdBQUcsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVPLGtCQUFrQixDQUN4QixLQUFtQixFQUNuQixhQUFzRSxFQUN0RSxhQUFzQztRQUV0QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDdkIsS0FBSywwQkFBMEI7b0JBQzdCLElBQUksSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUMzQyxhQUFhLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQzdEO29CQUNELE1BQU07Z0JBQ1IsS0FBSywwQkFBMEI7b0JBQzdCLElBQUksSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUM1QyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDakM7b0JBQ0QsTUFBTTthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQW1CO1FBQ3pDLE9BQU8sQ0FDTCxJQUFJLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxNQUFNO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUztZQUN4QixLQUFLLENBQUMsSUFBSTtZQUNWLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLDJCQUEyQixDQUFDLEtBQW1CO1FBQ3JELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssMEJBQTBCLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUUsQ0FBQztJQUVPLDRCQUE0QixDQUFDLEtBQW1CO1FBQ3RELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssMEJBQTBCLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDaEcsQ0FBQzs7O1lBcEdGLFVBQVU7Ozs7WUFKRixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICcuLi8uLi8uLi90eXBlcy93aW5kb3ctcmVmJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJPcHRpb25zIH0gZnJvbSAnLi9jYWxlbmRhci1vcHRpb25zLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFySGVscGVyIHtcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXc6IFdpbmRvdztcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXdSZWFkeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2luZG93UmVmOiBXaW5kb3dSZWYpIHt9XG5cbiAgcHVibGljIGluaXQoXG4gICAgY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWYsXG4gICAgb3B0aW9uczogQ2FsZW5kYXJPcHRpb25zLFxuICAgIG9uRGF5U2VsZWN0ZWQ6IChjZWxsOiB7IGlzU2VsZWN0YWJsZTogYm9vbGVhbjsgZGF0ZTogbnVtYmVyIH0pID0+IHZvaWQsXG4gICAgb25DaGFuZ2VNb250aDogKGluZGV4OiBudW1iZXIpID0+IHZvaWRcbiAgKSB7XG4gICAgaWYgKHRoaXMuaGFzRW1iZWRkZWRWaWV3KGNhbGVuZGFyQ29udGFpbmVyKSkge1xuICAgICAgY29uc3QgaWZyYW1lID0gPEhUTUxJRnJhbWVFbGVtZW50PmNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZnJhbWUub25sb2FkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmVtYmVkZGVkVmlld1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0T3B0aW9uc1RvRW1iZWRkZWRWaWV3KG9wdGlvbnMpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7XG5cbiAgICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+XG4gICAgICAgIHRoaXMuaGFuZGxlTWVzc2FnZUV2ZW50KGV2ZW50LCBvbkRheVNlbGVjdGVkLCBvbkNoYW5nZU1vbnRoKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IENhbGVuZGFyT3B0aW9ucykge1xuICAgIGlmICh0aGlzLmVtYmVkZGVkVmlld1JlYWR5KSB7XG4gICAgICB0aGlzLmVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGVkRGF5KGRheTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVhZHkpIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3LnBvc3RNZXNzYWdlKFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2tpcmJ5Q2FsZW5kYXJTZXRTZWxlY3RlZERheScsXG4gICAgICAgICAgc2VsZWN0ZWREYXk6IGRheSxcbiAgICAgICAgfSxcbiAgICAgICAgJyonXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzRW1iZWRkZWRWaWV3KGNhbGVuZGFyQ29udGFpbmVyOiBFbGVtZW50UmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyICYmXG4gICAgICBjYWxlbmRhckNvbnRhaW5lci5uYXRpdmVFbGVtZW50ICYmXG4gICAgICBjYWxlbmRhckNvbnRhaW5lci5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTElGcmFtZUVsZW1lbnQgJiZcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGVudFdpbmRvd1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9uczogQ2FsZW5kYXJPcHRpb25zKSB7XG4gICAgdGhpcy5lbWJlZGRlZFZpZXcucG9zdE1lc3NhZ2UoXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdraXJieUNhbGVuZGFySW5pdCcsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgJyonXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTWVzc2FnZUV2ZW50KFxuICAgIGV2ZW50OiBNZXNzYWdlRXZlbnQsXG4gICAgb25EYXlTZWxlY3RlZDogKGNlbGw6IHsgaXNTZWxlY3RhYmxlOiBib29sZWFuOyBkYXRlOiBudW1iZXIgfSkgPT4gdm9pZCxcbiAgICBvbkNoYW5nZU1vbnRoOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZFxuICApIHtcbiAgICBpZiAodGhpcy52YWxpZGF0ZU1lc3NhZ2UoZXZlbnQpKSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEudHlwZSkge1xuICAgICAgICBjYXNlICdraXJieUNhbGVuZGFyRGF5U2VsZWN0ZWQnOlxuICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlRGF0ZVNlbGVjdGVkTWVzc2FnZShldmVudCkpIHtcbiAgICAgICAgICAgIG9uRGF5U2VsZWN0ZWQoeyBpc1NlbGVjdGFibGU6IHRydWUsIGRhdGU6IGV2ZW50LmRhdGEuZGF5IH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAna2lyYnlDYWxlbmRhckNoYW5nZU1vbnRoJzpcbiAgICAgICAgICBpZiAodGhpcy52YWxpZGF0ZU5hdmlnYXRlTW9udGhNZXNzYWdlKGV2ZW50KSkge1xuICAgICAgICAgICAgb25DaGFuZ2VNb250aChldmVudC5kYXRhLmluZGV4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVtYmVkZGVkVmlldyA9PT0gZXZlbnQuc291cmNlICYmXG4gICAgICBldmVudC50eXBlID09PSAnbWVzc2FnZScgJiZcbiAgICAgIGV2ZW50LmRhdGEgJiZcbiAgICAgIGV2ZW50LmRhdGEudHlwZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGF0ZVNlbGVjdGVkTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGEudHlwZSA9PT0gJ2tpcmJ5Q2FsZW5kYXJEYXlTZWxlY3RlZCcgJiYgZXZlbnQuZGF0YS5kYXk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTmF2aWdhdGVNb250aE1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgIHJldHVybiBldmVudC5kYXRhLnR5cGUgPT09ICdraXJieUNhbGVuZGFyQ2hhbmdlTW9udGgnICYmIHR5cGVvZiBldmVudC5kYXRhLmluZGV4ID09PSAnbnVtYmVyJztcbiAgfVxufVxuIl19
|
|
72
|
+
/** @nocollapse */ CalendarHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarHelper, deps: [{ token: i1.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
73
|
+
/** @nocollapse */ CalendarHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarHelper });
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarHelper, decorators: [{
|
|
75
|
+
type: Injectable
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i1.WindowRef }]; } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFLdEQsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUZoQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFFUyxDQUFDO0lBRXJDLElBQUksQ0FDVCxpQkFBNkIsRUFDN0IsT0FBd0IsRUFDeEIsYUFBc0UsRUFDdEUsYUFBc0M7UUFFdEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQXNCLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztZQUNsRSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUV6QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFtQixFQUFFLEVBQUUsQ0FDOUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQzdELENBQUM7U0FDSDtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsT0FBd0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxHQUFXO1FBQy9CLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUMzQjtnQkFDRSxJQUFJLEVBQUUsNkJBQTZCO2dCQUNuQyxXQUFXLEVBQUUsR0FBRzthQUNqQixFQUNELEdBQUcsQ0FDSixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLGlCQUE2QjtRQUNuRCxPQUFPLENBQ0wsaUJBQWlCO1lBQ2pCLGlCQUFpQixDQUFDLGFBQWE7WUFDL0IsaUJBQWlCLENBQUMsYUFBYSxZQUFZLGlCQUFpQjtZQUM1RCxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQXdCO1FBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxpQkFFekIsSUFBSSxFQUFFLG1CQUFtQixJQUN0QixPQUFPLEdBRVosR0FBRyxDQUNKLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQ3hCLEtBQW1CLEVBQ25CLGFBQXNFLEVBQ3RFLGFBQXNDO1FBRXRDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQixRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUN2QixLQUFLLDBCQUEwQjtvQkFDN0IsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzNDLGFBQWEsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztxQkFDN0Q7b0JBQ0QsTUFBTTtnQkFDUixLQUFLLDBCQUEwQjtvQkFDN0IsSUFBSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzVDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNqQztvQkFDRCxNQUFNO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsS0FBbUI7UUFDekMsT0FBTyxDQUNMLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLE1BQU07WUFDbEMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLEtBQUssQ0FBQyxJQUFJO1lBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRU8sMkJBQTJCLENBQUMsS0FBbUI7UUFDckQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSywwQkFBMEIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxRSxDQUFDO0lBRU8sNEJBQTRCLENBQUMsS0FBbUI7UUFDdEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSywwQkFBMEIsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNoRyxDQUFDOzsrSEFuR1UsY0FBYzttSUFBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3dpbmRvdy1yZWYnO1xuXG5pbXBvcnQgeyBDYWxlbmRhck9wdGlvbnMgfSBmcm9tICcuL2NhbGVuZGFyLW9wdGlvbnMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIZWxwZXIge1xuICBwcml2YXRlIGVtYmVkZGVkVmlldzogV2luZG93O1xuICBwcml2YXRlIGVtYmVkZGVkVmlld1JlYWR5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3aW5kb3dSZWY6IFdpbmRvd1JlZikge31cblxuICBwdWJsaWMgaW5pdChcbiAgICBjYWxlbmRhckNvbnRhaW5lcjogRWxlbWVudFJlZixcbiAgICBvcHRpb25zOiBDYWxlbmRhck9wdGlvbnMsXG4gICAgb25EYXlTZWxlY3RlZDogKGNlbGw6IHsgaXNTZWxlY3RhYmxlOiBib29sZWFuOyBkYXRlOiBudW1iZXIgfSkgPT4gdm9pZCxcbiAgICBvbkNoYW5nZU1vbnRoOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZFxuICApIHtcbiAgICBpZiAodGhpcy5oYXNFbWJlZGRlZFZpZXcoY2FsZW5kYXJDb250YWluZXIpKSB7XG4gICAgICBjb25zdCBpZnJhbWUgPSA8SFRNTElGcmFtZUVsZW1lbnQ+Y2FsZW5kYXJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmcmFtZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVhZHkgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9ucyk7XG4gICAgICB9O1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXcgPSBpZnJhbWUuY29udGVudFdpbmRvdztcblxuICAgICAgdGhpcy53aW5kb3dSZWYubmF0aXZlV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT5cbiAgICAgICAgdGhpcy5oYW5kbGVNZXNzYWdlRXZlbnQoZXZlbnQsIG9uRGF5U2VsZWN0ZWQsIG9uQ2hhbmdlTW9udGgpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUob3B0aW9uczogQ2FsZW5kYXJPcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVhZHkpIHtcbiAgICAgIHRoaXMuZW1pdE9wdGlvbnNUb0VtYmVkZGVkVmlldyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0U2VsZWN0ZWREYXkoZGF5OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXdSZWFkeSkge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXcucG9zdE1lc3NhZ2UoXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAna2lyYnlDYWxlbmRhclNldFNlbGVjdGVkRGF5JyxcbiAgICAgICAgICBzZWxlY3RlZERheTogZGF5LFxuICAgICAgICB9LFxuICAgICAgICAnKidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNFbWJlZGRlZFZpZXcoY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgY2FsZW5kYXJDb250YWluZXIgJiZcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSUZyYW1lRWxlbWVudCAmJlxuICAgICAgY2FsZW5kYXJDb250YWluZXIubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdE9wdGlvbnNUb0VtYmVkZGVkVmlldyhvcHRpb25zOiBDYWxlbmRhck9wdGlvbnMpIHtcbiAgICB0aGlzLmVtYmVkZGVkVmlldy5wb3N0TWVzc2FnZShcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2tpcmJ5Q2FsZW5kYXJJbml0JyxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH0sXG4gICAgICAnKidcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNZXNzYWdlRXZlbnQoXG4gICAgZXZlbnQ6IE1lc3NhZ2VFdmVudCxcbiAgICBvbkRheVNlbGVjdGVkOiAoY2VsbDogeyBpc1NlbGVjdGFibGU6IGJvb2xlYW47IGRhdGU6IG51bWJlciB9KSA9PiB2b2lkLFxuICAgIG9uQ2hhbmdlTW9udGg6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkXG4gICkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRlTWVzc2FnZShldmVudCkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuZGF0YS50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2tpcmJ5Q2FsZW5kYXJEYXlTZWxlY3RlZCc6XG4gICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVEYXRlU2VsZWN0ZWRNZXNzYWdlKGV2ZW50KSkge1xuICAgICAgICAgICAgb25EYXlTZWxlY3RlZCh7IGlzU2VsZWN0YWJsZTogdHJ1ZSwgZGF0ZTogZXZlbnQuZGF0YS5kYXkgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdraXJieUNhbGVuZGFyQ2hhbmdlTW9udGgnOlxuICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlTmF2aWdhdGVNb250aE1lc3NhZ2UoZXZlbnQpKSB7XG4gICAgICAgICAgICBvbkNoYW5nZU1vbnRoKGV2ZW50LmRhdGEuaW5kZXgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ID09PSBldmVudC5zb3VyY2UgJiZcbiAgICAgIGV2ZW50LnR5cGUgPT09ICdtZXNzYWdlJyAmJlxuICAgICAgZXZlbnQuZGF0YSAmJlxuICAgICAgZXZlbnQuZGF0YS50eXBlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVEYXRlU2VsZWN0ZWRNZXNzYWdlKGV2ZW50OiBNZXNzYWdlRXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQuZGF0YS50eXBlID09PSAna2lyYnlDYWxlbmRhckRheVNlbGVjdGVkJyAmJiBldmVudC5kYXRhLmRheTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVOYXZpZ2F0ZU1vbnRoTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGEudHlwZSA9PT0gJ2tpcmJ5Q2FsZW5kYXJDaGFuZ2VNb250aCcgJiYgdHlwZW9mIGV2ZW50LmRhdGEuaW5kZXggPT09ICdudW1iZXInO1xuICB9XG59XG4iXX0=
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
2
3
|
export class CardFooterComponent {
|
|
3
4
|
constructor() { }
|
|
4
5
|
ngOnInit() { }
|
|
5
6
|
}
|
|
6
|
-
CardFooterComponent
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
/** @nocollapse */ CardFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
+
/** @nocollapse */ CardFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CardFooterComponent, selector: "kirby-card-footer", ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0)}footer{display:inherit;flex:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CardFooterComponent, decorators: [{
|
|
10
|
+
type: Component,
|
|
11
|
+
args: [{
|
|
12
|
+
selector: 'kirby-card-footer',
|
|
13
|
+
templateUrl: './card-footer.component.html',
|
|
14
|
+
styleUrls: ['./card-footer.component.scss'],
|
|
15
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
|
+
}]
|
|
17
|
+
}], ctorParameters: function () { return []; } });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOztvSUFIRixtQkFBbUI7d0hBQW5CLG1CQUFtQix5RENSaEMsb0RBR0E7NEZES2EsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO29CQUMzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2FyZC1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWZvb3Rlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG59XG4iLCI8Zm9vdGVyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Zvb3Rlcj5cbiJdfQ==
|