@progressio_resources/gravity-design-system 3.9.3 → 4.0.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/README.md +1 -1
- package/fesm2022/progressio_resources-gravity-design-system.mjs +1289 -1169
- package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
- package/package.json +10 -12
- package/src/lib/styles/_functions.scss +4 -2
- package/src/lib/styles/_responsive.scss +12 -11
- package/src/lib/styles/components/_card_highlight.scss +5 -5
- package/src/lib/styles/components/_datepicker-v2.scss +2 -2
- package/src/lib/styles/components/_datepicker.scss +16 -15
- package/src/lib/styles/components/_offcanvas.scss +4 -4
- package/src/lib/styles/components/_tables.scss +9 -9
- package/src/lib/styles/foundations/colors/themes/_hero.theme.scss +1 -1
- package/src/lib/styles/foundations/colors/tokens/_hero.tokens.scss +3 -3
- package/src/lib/styles/foundations/spacing/_spacing.scss +3 -1
- package/src/lib/styles/gravity-design-system.scss +17 -17
- package/src/lib/styles/overwrite/bootstrap/_bootstrap-export.scss +2 -2
- package/src/lib/styles/overwrite/bootstrap/_modal.scss +5 -5
- package/src/lib/styles/themes/_hero.scss +4 -4
- package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.html +10 -7
- package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.sass +54 -26
- package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.ts +7 -3
- package/src/lib/vendor/gravity-tooltip/gravity-tooltip.directive.ts +46 -17
- package/src/lib/vendor/gravity-tooltip/gravity-tooltip.module.ts +7 -12
- package/types/progressio_resources-gravity-design-system.d.ts +2671 -0
- package/esm2022/lib/components/gravity-attach-file/gravity-attach-file.component.mjs +0 -82
- package/esm2022/lib/components/gravity-avatar-stack/gravity-avatar-stack.component.mjs +0 -86
- package/esm2022/lib/components/gravity-backdrop/gravity-backdrop.component.mjs +0 -17
- package/esm2022/lib/components/gravity-badge/gravity-badge.component.mjs +0 -36
- package/esm2022/lib/components/gravity-button/gravity-button.component.mjs +0 -58
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/base/bs-datepicker-container.mjs +0 -77
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.component.mjs +0 -129
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.config.mjs +0 -14
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.callbacks.mjs +0 -13
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.component.mjs +0 -211
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.config.mjs +0 -46
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.component.mjs +0 -130
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.config.mjs +0 -18
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.component.mjs +0 -218
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.config.mjs +0 -18
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-container.component.mjs +0 -137
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-inline-container.component.mjs +0 -35
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-navigation-view/bs-datepicker-navigation-view.component.mjs +0 -69
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-container.component.mjs +0 -193
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-inline-container.component.mjs +0 -35
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-datepicker-day-decorator.directive.mjs +0 -30
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-days-calendar-view.component.mjs +0 -57
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-months-calendar-view/bs-months-calendar-view.component.mjs +0 -57
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-years-calendar-view/bs-years-calendar-view.component.mjs +0 -57
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/datepicker-animations.mjs +0 -16
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/calc-days-calendar.mjs +0 -16
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-days-calendar.mjs +0 -53
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-months-calendar.mjs +0 -39
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-years-calendar.mjs +0 -36
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-days-calendar.mjs +0 -23
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-months-calendar.mjs +0 -23
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-years-calendar.mjs +0 -43
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/view-mode.mjs +0 -4
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/models/index.mjs +0 -7
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/_defaults.mjs +0 -6
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.actions.mjs +0 -64
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.effects.mjs +0 -128
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.reducer.mjs +0 -301
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.state.mjs +0 -16
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.store.mjs +0 -20
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/services/header-type.service.mjs +0 -28
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/bs-calendar-utils.mjs +0 -74
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/date-abbreviation.pipe.mjs +0 -74
- package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/matrix-utils.mjs +0 -14
- package/esm2022/lib/components/gravity-calendar-v2/gravity-calendar-v2.component.mjs +0 -259
- package/esm2022/lib/components/gravity-card-button/gravity-card-button.component.mjs +0 -41
- package/esm2022/lib/components/gravity-checkbox/gravity-checkbox.component.mjs +0 -52
- package/esm2022/lib/components/gravity-chip-group/gravity-chip-group.component.mjs +0 -45
- package/esm2022/lib/components/gravity-currency/gravity-currency.component.mjs +0 -26
- package/esm2022/lib/components/gravity-currency-display-v2/gravity-currency-display-v2.component.mjs +0 -26
- package/esm2022/lib/components/gravity-currency-dropdown-short/gravity-currency-dropdown-short.component.mjs +0 -79
- package/esm2022/lib/components/gravity-data-views-v2/gravity-data-views-v2.component.mjs +0 -48
- package/esm2022/lib/components/gravity-date-picker/components/day-calendar/day-calendar.component.mjs +0 -273
- package/esm2022/lib/components/gravity-date-picker/components/day-calendar/range-days-calendar.utils.mjs +0 -241
- package/esm2022/lib/components/gravity-date-picker/components/month-calendar/month-calendar.component.mjs +0 -109
- package/esm2022/lib/components/gravity-date-picker/components/year-calendar/year-calendar.component.mjs +0 -105
- package/esm2022/lib/components/gravity-date-picker/gravity-date-picker.component.mjs +0 -84
- package/esm2022/lib/components/gravity-date-picker/shared/date-picker.constants.mjs +0 -61
- package/esm2022/lib/components/gravity-date-picker/shared/date-picker.modal.mjs +0 -2
- package/esm2022/lib/components/gravity-date-picker/shared/date-picker.utils.mjs +0 -110
- package/esm2022/lib/components/gravity-detail-container/gravity-detail-container.component.mjs +0 -93
- package/esm2022/lib/components/gravity-dialog/gravity-dialog.component.mjs +0 -26
- package/esm2022/lib/components/gravity-dropdown-label/gravity-dropdown-label.component.mjs +0 -65
- package/esm2022/lib/components/gravity-dropdown-list/filter-by.pipe.mjs +0 -44
- package/esm2022/lib/components/gravity-dropdown-list/gravity-dropdown-list.component.mjs +0 -542
- package/esm2022/lib/components/gravity-dropdown-list-display/display-currency-items.mjs +0 -2
- package/esm2022/lib/components/gravity-dropdown-list-display/gravity-dropdown-list-display.component.mjs +0 -203
- package/esm2022/lib/components/gravity-editable-input/gravity-editable-input.component.mjs +0 -52
- package/esm2022/lib/components/gravity-generic-avatar/gravity-generic-avatar.component.mjs +0 -33
- package/esm2022/lib/components/gravity-generic-avatar-secondary/gravity-generic-avatar-secondary.component.mjs +0 -28
- package/esm2022/lib/components/gravity-icon/gravity-icon.component.mjs +0 -120
- package/esm2022/lib/components/gravity-icon-button/gravity-icon-button.component.mjs +0 -54
- package/esm2022/lib/components/gravity-link/gravity-link.component.mjs +0 -39
- package/esm2022/lib/components/gravity-modal/gravity-modal.component.mjs +0 -44
- package/esm2022/lib/components/gravity-modal/gravity-modal.model.mjs +0 -2
- package/esm2022/lib/components/gravity-multi-language/gravity-multi-language.component.mjs +0 -31
- package/esm2022/lib/components/gravity-navigation-card/gravity-navigation-card.component.mjs +0 -54
- package/esm2022/lib/components/gravity-network-pill/gravity-network-pill.component.mjs +0 -33
- package/esm2022/lib/components/gravity-notification/gravity-notification-content.interface.mjs +0 -2
- package/esm2022/lib/components/gravity-notification/gravity-notification.component.mjs +0 -33
- package/esm2022/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.mjs +0 -32
- package/esm2022/lib/components/gravity-pagination/gravity-pagination.component.mjs +0 -113
- package/esm2022/lib/components/gravity-push-notifications/gravity-push-notifications.component.mjs +0 -55
- package/esm2022/lib/components/gravity-radio-button/gravity-radio-button.component.mjs +0 -34
- package/esm2022/lib/components/gravity-segmented-button/gravity-segmented-button.component.mjs +0 -85
- package/esm2022/lib/components/gravity-status-indicator/gravity-status-indicator.component.mjs +0 -38
- package/esm2022/lib/components/gravity-stepper/gravity-stepper.component.mjs +0 -37
- package/esm2022/lib/components/gravity-switch/gravity-switch.component.mjs +0 -56
- package/esm2022/lib/components/gravity-tab-primary/gravity-tab-primary.component.mjs +0 -34
- package/esm2022/lib/components/gravity-tab-secondary/gravity-tab-secondary.component.mjs +0 -36
- package/esm2022/lib/components/gravity-table/gravity-table.component.mjs +0 -212
- package/esm2022/lib/components/gravity-tables-v2/gravity-tables-v2.component.mjs +0 -18
- package/esm2022/lib/components/gravity-text-field/gravity-text-field.component.mjs +0 -294
- package/esm2022/lib/components/gravity-text-field-amount-only/gravity-text-field-amount-only.component.mjs +0 -160
- package/esm2022/lib/components/gravity-text-field-number-only/gravity-text-field-number-only.component.mjs +0 -126
- package/esm2022/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.mjs +0 -44
- package/esm2022/lib/components/gravity-tree-view/gravity-tree-view.component.mjs +0 -69
- package/esm2022/lib/components/gravity-tree-view/models/node-item.mjs +0 -2
- package/esm2022/lib/components/gravity-tree-view/models/node-selected-state.mjs +0 -7
- package/esm2022/lib/components/gravity-tree-view/models/node-state.mjs +0 -2
- package/esm2022/lib/components/gravity-tree-view/models/tree-callbacks.mjs +0 -2
- package/esm2022/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.mjs +0 -26
- package/esm2022/lib/components/gravity-tree-view/node/node-name/node-name.component.mjs +0 -13
- package/esm2022/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.mjs +0 -15
- package/esm2022/lib/components/gravity-tree-view/node/node.component.mjs +0 -17
- package/esm2022/lib/components/gravity-tree-view/service/tree-service.mjs +0 -242
- package/esm2022/lib/gravity-design-system.module.mjs +0 -370
- package/esm2022/lib/layout/gravity-header/gravity-header.component.mjs +0 -72
- package/esm2022/lib/layout/gravity-menu/gravity-menu.component.mjs +0 -232
- package/esm2022/lib/model/gravity-menu-items.model.mjs +0 -5
- package/esm2022/lib/model/gravity-push-notifications.model.mjs +0 -2
- package/esm2022/lib/services/gravity-dialog-manager.service.mjs +0 -48
- package/esm2022/lib/services/gravity-dropdown-manager.service.mjs +0 -21
- package/esm2022/lib/services/gravity-instant-notifications.service.mjs +0 -23
- package/esm2022/lib/services/gravity-push-notifications-service.service.mjs +0 -70
- package/esm2022/lib/services/gravity-responsive.service.mjs +0 -47
- package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.component.mjs +0 -249
- package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.directive.mjs +0 -494
- package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.module.mjs +0 -41
- package/esm2022/lib/vendor/gravity-tooltip/index.mjs +0 -4
- package/esm2022/lib/vendor/gravity-tooltip/options.interface.mjs +0 -2
- package/esm2022/lib/vendor/gravity-tooltip/options.mjs +0 -38
- package/esm2022/lib/vendor/gravity-tooltip/options.service.mjs +0 -7
- package/esm2022/progressio_resources-gravity-design-system.mjs +0 -5
- package/esm2022/public-api.mjs +0 -62
- package/index.d.ts +0 -5
- package/lib/components/gravity-attach-file/gravity-attach-file.component.d.ts +0 -22
- package/lib/components/gravity-avatar-stack/gravity-avatar-stack.component.d.ts +0 -22
- package/lib/components/gravity-backdrop/gravity-backdrop.component.d.ts +0 -6
- package/lib/components/gravity-badge/gravity-badge.component.d.ts +0 -12
- package/lib/components/gravity-button/gravity-button.component.d.ts +0 -17
- package/lib/components/gravity-calendar-v2/datepicker/base/bs-datepicker-container.d.ts +0 -42
- package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.component.d.ts +0 -40
- package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.config.d.ts +0 -6
- package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.callbacks.d.ts +0 -6
- package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.component.d.ts +0 -66
- package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.config.d.ts +0 -53
- package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.component.d.ts +0 -37
- package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.config.d.ts +0 -7
- package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.component.d.ts +0 -61
- package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.config.d.ts +0 -7
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-container.component.d.ts +0 -36
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-inline-container.component.d.ts +0 -15
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-navigation-view/bs-datepicker-navigation-view.component.d.ts +0 -26
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-container.component.d.ts +0 -42
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-inline-container.component.d.ts +0 -15
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-datepicker-day-decorator.directive.d.ts +0 -7
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-days-calendar-view.component.d.ts +0 -25
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-months-calendar-view/bs-months-calendar-view.component.d.ts +0 -23
- package/lib/components/gravity-calendar-v2/datepicker/components/bs-years-calendar-view/bs-years-calendar-view.component.d.ts +0 -22
- package/lib/components/gravity-calendar-v2/datepicker/datepicker-animations.d.ts +0 -3
- package/lib/components/gravity-calendar-v2/datepicker/engine/calc-days-calendar.d.ts +0 -2
- package/lib/components/gravity-calendar-v2/datepicker/engine/flag-days-calendar.d.ts +0 -12
- package/lib/components/gravity-calendar-v2/datepicker/engine/flag-months-calendar.d.ts +0 -12
- package/lib/components/gravity-calendar-v2/datepicker/engine/flag-years-calendar.d.ts +0 -13
- package/lib/components/gravity-calendar-v2/datepicker/engine/format-days-calendar.d.ts +0 -2
- package/lib/components/gravity-calendar-v2/datepicker/engine/format-months-calendar.d.ts +0 -2
- package/lib/components/gravity-calendar-v2/datepicker/engine/format-years-calendar.d.ts +0 -4
- package/lib/components/gravity-calendar-v2/datepicker/engine/view-mode.d.ts +0 -2
- package/lib/components/gravity-calendar-v2/datepicker/models/index.d.ts +0 -86
- package/lib/components/gravity-calendar-v2/datepicker/reducer/_defaults.d.ts +0 -3
- package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.actions.d.ts +0 -34
- package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.effects.d.ts +0 -34
- package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.reducer.d.ts +0 -3
- package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.state.d.ts +0 -34
- package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.store.d.ts +0 -8
- package/lib/components/gravity-calendar-v2/datepicker/services/header-type.service.d.ts +0 -17
- package/lib/components/gravity-calendar-v2/datepicker/utils/bs-calendar-utils.d.ts +0 -13
- package/lib/components/gravity-calendar-v2/datepicker/utils/date-abbreviation.pipe.d.ts +0 -13
- package/lib/components/gravity-calendar-v2/datepicker/utils/matrix-utils.d.ts +0 -9
- package/lib/components/gravity-calendar-v2/gravity-calendar-v2.component.d.ts +0 -57
- package/lib/components/gravity-card-button/gravity-card-button.component.d.ts +0 -15
- package/lib/components/gravity-checkbox/gravity-checkbox.component.d.ts +0 -21
- package/lib/components/gravity-chip-group/gravity-chip-group.component.d.ts +0 -19
- package/lib/components/gravity-currency/gravity-currency.component.d.ts +0 -13
- package/lib/components/gravity-currency-display-v2/gravity-currency-display-v2.component.d.ts +0 -16
- package/lib/components/gravity-currency-dropdown-short/gravity-currency-dropdown-short.component.d.ts +0 -32
- package/lib/components/gravity-data-views-v2/gravity-data-views-v2.component.d.ts +0 -22
- package/lib/components/gravity-date-picker/components/day-calendar/day-calendar.component.d.ts +0 -105
- package/lib/components/gravity-date-picker/components/day-calendar/range-days-calendar.utils.d.ts +0 -12
- package/lib/components/gravity-date-picker/components/month-calendar/month-calendar.component.d.ts +0 -71
- package/lib/components/gravity-date-picker/components/year-calendar/year-calendar.component.d.ts +0 -70
- package/lib/components/gravity-date-picker/gravity-date-picker.component.d.ts +0 -64
- package/lib/components/gravity-date-picker/shared/date-picker.constants.d.ts +0 -52
- package/lib/components/gravity-date-picker/shared/date-picker.modal.d.ts +0 -25
- package/lib/components/gravity-date-picker/shared/date-picker.utils.d.ts +0 -10
- package/lib/components/gravity-detail-container/gravity-detail-container.component.d.ts +0 -28
- package/lib/components/gravity-dialog/gravity-dialog.component.d.ts +0 -22
- package/lib/components/gravity-dropdown-label/gravity-dropdown-label.component.d.ts +0 -19
- package/lib/components/gravity-dropdown-list/filter-by.pipe.d.ts +0 -10
- package/lib/components/gravity-dropdown-list/gravity-dropdown-list.component.d.ts +0 -84
- package/lib/components/gravity-dropdown-list-display/display-currency-items.d.ts +0 -12
- package/lib/components/gravity-dropdown-list-display/gravity-dropdown-list-display.component.d.ts +0 -52
- package/lib/components/gravity-editable-input/gravity-editable-input.component.d.ts +0 -19
- package/lib/components/gravity-generic-avatar/gravity-generic-avatar.component.d.ts +0 -11
- package/lib/components/gravity-generic-avatar-secondary/gravity-generic-avatar-secondary.component.d.ts +0 -11
- package/lib/components/gravity-icon/gravity-icon.component.d.ts +0 -85
- package/lib/components/gravity-icon-button/gravity-icon-button.component.d.ts +0 -22
- package/lib/components/gravity-link/gravity-link.component.d.ts +0 -14
- package/lib/components/gravity-modal/gravity-modal.component.d.ts +0 -19
- package/lib/components/gravity-modal/gravity-modal.model.d.ts +0 -17
- package/lib/components/gravity-multi-language/gravity-multi-language.component.d.ts +0 -12
- package/lib/components/gravity-navigation-card/gravity-navigation-card.component.d.ts +0 -24
- package/lib/components/gravity-network-pill/gravity-network-pill.component.d.ts +0 -14
- package/lib/components/gravity-notification/gravity-notification-content.interface.d.ts +0 -7
- package/lib/components/gravity-notification/gravity-notification.component.d.ts +0 -12
- package/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.d.ts +0 -10
- package/lib/components/gravity-pagination/gravity-pagination.component.d.ts +0 -24
- package/lib/components/gravity-push-notifications/gravity-push-notifications.component.d.ts +0 -21
- package/lib/components/gravity-radio-button/gravity-radio-button.component.d.ts +0 -14
- package/lib/components/gravity-segmented-button/gravity-segmented-button.component.d.ts +0 -33
- package/lib/components/gravity-status-indicator/gravity-status-indicator.component.d.ts +0 -14
- package/lib/components/gravity-stepper/gravity-stepper.component.d.ts +0 -13
- package/lib/components/gravity-switch/gravity-switch.component.d.ts +0 -24
- package/lib/components/gravity-tab-primary/gravity-tab-primary.component.d.ts +0 -16
- package/lib/components/gravity-tab-secondary/gravity-tab-secondary.component.d.ts +0 -17
- package/lib/components/gravity-table/gravity-table.component.d.ts +0 -25
- package/lib/components/gravity-tables-v2/gravity-tables-v2.component.d.ts +0 -7
- package/lib/components/gravity-text-field/gravity-text-field.component.d.ts +0 -62
- package/lib/components/gravity-text-field-amount-only/gravity-text-field-amount-only.component.d.ts +0 -43
- package/lib/components/gravity-text-field-number-only/gravity-text-field-number-only.component.d.ts +0 -30
- package/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.d.ts +0 -40
- package/lib/components/gravity-tree-view/gravity-tree-view.component.d.ts +0 -21
- package/lib/components/gravity-tree-view/models/node-item.d.ts +0 -10
- package/lib/components/gravity-tree-view/models/node-selected-state.d.ts +0 -5
- package/lib/components/gravity-tree-view/models/node-state.d.ts +0 -14
- package/lib/components/gravity-tree-view/models/tree-callbacks.d.ts +0 -9
- package/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.d.ts +0 -11
- package/lib/components/gravity-tree-view/node/node-name/node-name.component.d.ts +0 -7
- package/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.d.ts +0 -7
- package/lib/components/gravity-tree-view/node/node.component.d.ts +0 -7
- package/lib/components/gravity-tree-view/service/tree-service.d.ts +0 -42
- package/lib/gravity-design-system.module.d.ts +0 -85
- package/lib/layout/gravity-header/gravity-header.component.d.ts +0 -36
- package/lib/layout/gravity-menu/gravity-menu.component.d.ts +0 -53
- package/lib/model/gravity-menu-items.model.d.ts +0 -31
- package/lib/model/gravity-push-notifications.model.d.ts +0 -22
- package/lib/services/gravity-dialog-manager.service.d.ts +0 -17
- package/lib/services/gravity-dropdown-manager.service.d.ts +0 -12
- package/lib/services/gravity-instant-notifications.service.d.ts +0 -10
- package/lib/services/gravity-push-notifications-service.service.d.ts +0 -14
- package/lib/services/gravity-responsive.service.d.ts +0 -11
- package/lib/vendor/gravity-tooltip/gravity-tooltip.component.d.ts +0 -44
- package/lib/vendor/gravity-tooltip/gravity-tooltip.directive.d.ts +0 -113
- package/lib/vendor/gravity-tooltip/gravity-tooltip.module.d.ts +0 -12
- package/lib/vendor/gravity-tooltip/index.d.ts +0 -3
- package/lib/vendor/gravity-tooltip/options.d.ts +0 -24
- package/lib/vendor/gravity-tooltip/options.interface.d.ts +0 -42
- package/lib/vendor/gravity-tooltip/options.service.d.ts +0 -7
- package/public-api.d.ts +0 -53
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/** *************** */
|
|
2
|
-
export var BsNavigationDirection;
|
|
3
|
-
(function (BsNavigationDirection) {
|
|
4
|
-
BsNavigationDirection[BsNavigationDirection["UP"] = 0] = "UP";
|
|
5
|
-
BsNavigationDirection[BsNavigationDirection["DOWN"] = 1] = "DOWN";
|
|
6
|
-
})(BsNavigationDirection || (BsNavigationDirection = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2FsZW5kYXItdjIvZGF0ZXBpY2tlci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkZBLHNCQUFzQjtBQUN0QixNQUFNLENBQU4sSUFBWSxxQkFHWDtBQUhELFdBQVkscUJBQXFCO0lBQy9CLDZEQUFFLENBQUE7SUFDRixpRUFBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFHaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW1lVW5pdCB9IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5cbmV4cG9ydCB0eXBlIEJzRGF0ZXBpY2tlclZpZXdNb2RlID0gJ2RheScgfCAnbW9udGgnIHwgJ3llYXInO1xuXG4vKiogKioqKioqKioqKioqKioqICovXG4vLyBuYXZpZ2F0aW9uIGJhciBzZXR0aW5nc1xuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uVmlld01vZGVsIHtcbiAgbW9udGhUaXRsZTogc3RyaW5nO1xuICB5ZWFyVGl0bGU6IHN0cmluZztcbiAgaGlkZUxlZnRBcnJvdzogYm9vbGVhbjtcbiAgaGlkZVJpZ2h0QXJyb3c6IGJvb2xlYW47XG4gIGRpc2FibGVMZWZ0QXJyb3c6IGJvb2xlYW47XG4gIGRpc2FibGVSaWdodEFycm93OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyQ2VsbFZpZXdNb2RlbCB7XG4gIGRhdGU6IERhdGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc0hvdmVyZWQ/OiBib29sZWFuO1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgaXNUb2RheT86IGJvb2xlYW47XG59XG5cbi8qKiAqKioqKioqKioqKioqKiogKi9cbi8vIGRheXMgbWF0cml4OiBkYXkgY2VsbCB2aWV3IG1vZGVsXG5leHBvcnQgaW50ZXJmYWNlIERheVZpZXdNb2RlbCBleHRlbmRzIENhbGVuZGFyQ2VsbFZpZXdNb2RlbCB7XG4gIGlzT3RoZXJNb250aD86IGJvb2xlYW47XG4gIGlzSW5SYW5nZT86IGJvb2xlYW47XG4gIGlzU2VsZWN0aW9uU3RhcnQ/OiBib29sZWFuO1xuICBpc1NlbGVjdGlvbkVuZD86IGJvb2xlYW47XG4gIGlzVG9kYXk/OiBib29sZWFuO1xuXG4gIC8vIGRheSBpbmRleFxuICBtb250aEluZGV4PzogbnVtYmVyO1xuICB3ZWVrSW5kZXg/OiBudW1iZXI7XG4gIGRheUluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlZWtWaWV3TW9kZWwge1xuICBkYXlzOiBEYXlWaWV3TW9kZWxbXTtcbiAgaXNIb3ZlcmVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwgZXh0ZW5kcyBOYXZpZ2F0aW9uVmlld01vZGVsIHtcbiAgd2Vla3M6IFdlZWtWaWV3TW9kZWxbXTtcbiAgbW9udGg6IERhdGU7XG4gIHdlZWtkYXlzOiBzdHJpbmdbXTtcbn1cblxuLyoqICoqKioqKioqKioqKioqKiAqL1xuLy8gbW9udGhzIGNhbGVuZGFyXG5leHBvcnQgaW50ZXJmYWNlIE1vbnRoc0NhbGVuZGFyVmlld01vZGVsIGV4dGVuZHMgTmF2aWdhdGlvblZpZXdNb2RlbCB7XG4gIG1vbnRoczogQ2FsZW5kYXJDZWxsVmlld01vZGVsW11bXTtcbn1cblxuLy8geWVhcnMgY2FsZW5kYXJcbmV4cG9ydCBpbnRlcmZhY2UgWWVhcnNDYWxlbmRhclZpZXdNb2RlbCBleHRlbmRzIE5hdmlnYXRpb25WaWV3TW9kZWwge1xuICB5ZWFyczogQ2FsZW5kYXJDZWxsVmlld01vZGVsW11bXTtcbn1cblxuLyoqICoqKioqKioqKioqKioqKiAqL1xuXG4vLyBkYXlzIERhdGUncyBhcnJheVxuZXhwb3J0IGludGVyZmFjZSBEYXlzQ2FsZW5kYXJNb2RlbCB7XG4gIGRheXNNYXRyaXg6IERhdGVbXVtdO1xuICBtb250aDogRGF0ZTtcbn1cblxuLyoqICoqKioqKioqKioqKioqKiAqL1xuLy8gc29tZSBmdW5jIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgTW9udGhWaWV3T3B0aW9ucyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGZpcnN0RGF5T2ZXZWVrPzogbnVtYmVyO1xufVxuXG4vKiogKioqKioqKioqKioqKioqICovXG4vLyByZW5kZXJpbmcgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBEYXRlcGlja2VyRm9ybWF0T3B0aW9ucyB7XG4gIGxvY2FsZT86IHN0cmluZztcblxuICBtb250aFRpdGxlPzogc3RyaW5nO1xuICB5ZWFyVGl0bGU/OiBzdHJpbmc7XG5cbiAgZGF5TGFiZWw/OiBzdHJpbmc7XG4gIG1vbnRoTGFiZWw/OiBzdHJpbmc7XG4gIHllYXJMYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlcGlja2VyUmVuZGVyT3B0aW9ucyB7XG4gIGRpc3BsYXlNb250aHM6IG51bWJlcjtcbn1cbi8qKiAqKioqKioqKioqKioqKiogKi9cbmV4cG9ydCBlbnVtIEJzTmF2aWdhdGlvbkRpcmVjdGlvbiB7XG4gIFVQLFxuICBET1dOXG59XG5cbi8vIHVzZWQgZm9yIG5hdmlnYXRpb24gZXZlbnRzLCB0byBjaGFuZ2UgdmlldyBkYXRlIGluIHN0YXRlXG5leHBvcnQgaW50ZXJmYWNlIEJzTmF2aWdhdGlvbkV2ZW50IHtcbiAgZGlyZWN0aW9uPzogQnNOYXZpZ2F0aW9uRGlyZWN0aW9uO1xuICBzdGVwPzogVGltZVVuaXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnNWaWV3TmF2aWdhdGlvbkV2ZW50IHtcbiAgdW5pdD86IFRpbWVVbml0O1xuICB2aWV3TW9kZTogQnNEYXRlcGlja2VyVmlld01vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbEhvdmVyRXZlbnQge1xuICBjZWxsOiBDYWxlbmRhckNlbGxWaWV3TW9kZWw7XG4gIGlzSG92ZXJlZDogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export const defaultMonthOptions = {
|
|
2
|
-
width: 7,
|
|
3
|
-
height: 6
|
|
4
|
-
};
|
|
5
|
-
export const dayInMilliseconds = 24 * 60 * 60 * 1000;
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9fZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXFCO0lBQ25ELEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLENBQUM7Q0FDVixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9udGhWaWV3T3B0aW9uc1xufSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE1vbnRoT3B0aW9uczogTW9udGhWaWV3T3B0aW9ucyA9IHtcbiAgd2lkdGg6IDcsXG4gIGhlaWdodDogNlxufTtcblxuZXhwb3J0IGNvbnN0IGRheUluTWlsbGlzZWNvbmRzOiBudW1iZXIgPSAyNCAqIDYwICogNjAgKiAxMDAwO1xuIl19
|
package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.actions.mjs
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class BsDatepickerActions {
|
|
4
|
-
static { this.CALCULATE = '[datepicker] calculate dates matrix'; }
|
|
5
|
-
static { this.CHANGE_VIEWMODE = '[datepicker] switch view mode'; }
|
|
6
|
-
static { this.FLAG = '[datepicker] set flags'; }
|
|
7
|
-
static { this.FORMAT = '[datepicker] format datepicker values'; }
|
|
8
|
-
static { this.HOVER = '[datepicker] hover date'; }
|
|
9
|
-
static { this.NAVIGATE_OFFSET = '[datepicker] shift view date'; }
|
|
10
|
-
static { this.NAVIGATE_TO = '[datepicker] change view date'; }
|
|
11
|
-
static { this.SELECT = '[datepicker] select date'; }
|
|
12
|
-
static { this.SELECT_RANGE = '[daterangepicker] select dates range'; }
|
|
13
|
-
static { this.SET_IS_DISABLED = '[datepicker] set is disabled'; }
|
|
14
|
-
static { this.SET_MAX_DATE = '[datepicker] set max date'; }
|
|
15
|
-
static { this.SET_MIN_DATE = '[datepicker] set min date'; }
|
|
16
|
-
static { this.SET_OPTIONS = '[datepicker] update render options'; }
|
|
17
|
-
calculate() {
|
|
18
|
-
return { type: BsDatepickerActions.CALCULATE };
|
|
19
|
-
}
|
|
20
|
-
format() {
|
|
21
|
-
return { type: BsDatepickerActions.FORMAT };
|
|
22
|
-
}
|
|
23
|
-
flag() {
|
|
24
|
-
return { type: BsDatepickerActions.FLAG };
|
|
25
|
-
}
|
|
26
|
-
select(date) {
|
|
27
|
-
return { type: BsDatepickerActions.SELECT, payload: date };
|
|
28
|
-
}
|
|
29
|
-
changeViewMode(event) {
|
|
30
|
-
return { type: BsDatepickerActions.CHANGE_VIEWMODE, payload: event };
|
|
31
|
-
}
|
|
32
|
-
navigateTo(event) {
|
|
33
|
-
return { type: BsDatepickerActions.NAVIGATE_TO, payload: event };
|
|
34
|
-
}
|
|
35
|
-
navigateStep(step) {
|
|
36
|
-
return { type: BsDatepickerActions.NAVIGATE_OFFSET, payload: step };
|
|
37
|
-
}
|
|
38
|
-
setOptions(options) {
|
|
39
|
-
return { type: BsDatepickerActions.SET_OPTIONS, payload: options };
|
|
40
|
-
}
|
|
41
|
-
// date range picker
|
|
42
|
-
selectRange(value) {
|
|
43
|
-
return { type: BsDatepickerActions.SELECT_RANGE, payload: value };
|
|
44
|
-
}
|
|
45
|
-
hoverDay(event) {
|
|
46
|
-
return { type: BsDatepickerActions.HOVER, payload: event.isHovered ? event.cell.date : null };
|
|
47
|
-
}
|
|
48
|
-
minDate(date) {
|
|
49
|
-
return { type: BsDatepickerActions.SET_MIN_DATE, payload: date };
|
|
50
|
-
}
|
|
51
|
-
maxDate(date) {
|
|
52
|
-
return { type: BsDatepickerActions.SET_MAX_DATE, payload: date };
|
|
53
|
-
}
|
|
54
|
-
isDisabled(value) {
|
|
55
|
-
return { type: BsDatepickerActions.SET_IS_DISABLED, payload: value };
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerActions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerActions, providedIn: 'platform' }); }
|
|
59
|
-
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerActions, decorators: [{
|
|
61
|
-
type: Injectable,
|
|
62
|
-
args: [{ providedIn: 'platform' }]
|
|
63
|
-
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLG1CQUFtQjthQUNkLGNBQVMsR0FBVyxxQ0FBcUMsQUFBaEQsQ0FBaUQ7YUFDMUQsb0JBQWUsR0FBVywrQkFBK0IsQUFBMUMsQ0FBMkM7YUFDMUQsU0FBSSxHQUFXLHdCQUF3QixBQUFuQyxDQUFvQzthQUN4QyxXQUFNLEdBQVcsdUNBQXVDLEFBQWxELENBQW1EO2FBQ3pELFVBQUssR0FBVyx5QkFBeUIsQUFBcEMsQ0FBcUM7YUFDMUMsb0JBQWUsR0FBVyw4QkFBOEIsQUFBekMsQ0FBMEM7YUFDekQsZ0JBQVcsR0FBVywrQkFBK0IsQUFBMUMsQ0FBMkM7YUFDdEQsV0FBTSxHQUFXLDBCQUEwQixBQUFyQyxDQUFzQzthQUM1QyxpQkFBWSxHQUFXLHNDQUFzQyxBQUFqRCxDQUFrRDthQUM5RCxvQkFBZSxHQUFXLDhCQUE4QixBQUF6QyxDQUEwQzthQUN6RCxpQkFBWSxHQUFXLDJCQUEyQixBQUF0QyxDQUF1QzthQUNuRCxpQkFBWSxHQUFXLDJCQUEyQixBQUF0QyxDQUF1QzthQUNuRCxnQkFBVyxHQUFXLG9DQUFvQyxBQUEvQyxDQUFnRDtJQUUzRSxTQUFTO1FBQ1AsT0FBTyxFQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxFQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUksRUFBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBVztRQUNoQixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUEyQjtRQUN4QyxPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUE0QjtRQUNyQyxPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFlO1FBQzFCLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdDO1FBQ3pDLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLFdBQVcsQ0FBQyxLQUF3QztRQUNsRCxPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFxQjtRQUM1QixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBVztRQUNqQixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFXO1FBQ2pCLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWU7UUFDeEIsT0FBTyxFQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDO0lBQ3JFLENBQUM7K0dBbEVVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRFAsVUFBVTs7NEZBQ3RCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaW1lVW5pdH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9jaHJvbm9zJztcbmltcG9ydCB7QWN0aW9ufSBmcm9tICduZ3gtYm9vdHN0cmFwL21pbmktbmdyeCc7XG5pbXBvcnQge0JzRGF0ZXBpY2tlclZpZXdNb2RlLCBCc1ZpZXdOYXZpZ2F0aW9uRXZlbnQsIENlbGxIb3ZlckV2ZW50LCBEYXRlcGlja2VyUmVuZGVyT3B0aW9uc30gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdwbGF0Zm9ybSd9KVxuZXhwb3J0IGNsYXNzIEJzRGF0ZXBpY2tlckFjdGlvbnMge1xuICBzdGF0aWMgcmVhZG9ubHkgQ0FMQ1VMQVRFOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIGNhbGN1bGF0ZSBkYXRlcyBtYXRyaXgnO1xuICBzdGF0aWMgcmVhZG9ubHkgQ0hBTkdFX1ZJRVdNT0RFOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIHN3aXRjaCB2aWV3IG1vZGUnO1xuICBzdGF0aWMgcmVhZG9ubHkgRkxBRzogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBzZXQgZmxhZ3MnO1xuICBzdGF0aWMgcmVhZG9ubHkgRk9STUFUOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIGZvcm1hdCBkYXRlcGlja2VyIHZhbHVlcyc7XG4gIHN0YXRpYyByZWFkb25seSBIT1ZFUjogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBob3ZlciBkYXRlJztcbiAgc3RhdGljIHJlYWRvbmx5IE5BVklHQVRFX09GRlNFVDogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBzaGlmdCB2aWV3IGRhdGUnO1xuICBzdGF0aWMgcmVhZG9ubHkgTkFWSUdBVEVfVE86IHN0cmluZyA9ICdbZGF0ZXBpY2tlcl0gY2hhbmdlIHZpZXcgZGF0ZSc7XG4gIHN0YXRpYyByZWFkb25seSBTRUxFQ1Q6IHN0cmluZyA9ICdbZGF0ZXBpY2tlcl0gc2VsZWN0IGRhdGUnO1xuICBzdGF0aWMgcmVhZG9ubHkgU0VMRUNUX1JBTkdFOiBzdHJpbmcgPSAnW2RhdGVyYW5nZXBpY2tlcl0gc2VsZWN0IGRhdGVzIHJhbmdlJztcbiAgc3RhdGljIHJlYWRvbmx5IFNFVF9JU19ESVNBQkxFRDogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBzZXQgaXMgZGlzYWJsZWQnO1xuICBzdGF0aWMgcmVhZG9ubHkgU0VUX01BWF9EQVRFOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIHNldCBtYXggZGF0ZSc7XG4gIHN0YXRpYyByZWFkb25seSBTRVRfTUlOX0RBVEU6IHN0cmluZyA9ICdbZGF0ZXBpY2tlcl0gc2V0IG1pbiBkYXRlJztcbiAgc3RhdGljIHJlYWRvbmx5IFNFVF9PUFRJT05TOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIHVwZGF0ZSByZW5kZXIgb3B0aW9ucyc7XG5cbiAgY2FsY3VsYXRlKCk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLkNBTENVTEFURX07XG4gIH1cblxuICBmb3JtYXQoKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuRk9STUFUfTtcbiAgfVxuXG4gIGZsYWcoKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuRkxBR307XG4gIH1cblxuICBzZWxlY3QoZGF0ZT86IERhdGUpOiBBY3Rpb24ge1xuICAgIHJldHVybiB7dHlwZTogQnNEYXRlcGlja2VyQWN0aW9ucy5TRUxFQ1QsIHBheWxvYWQ6IGRhdGV9O1xuICB9XG5cbiAgY2hhbmdlVmlld01vZGUoZXZlbnQ6IEJzRGF0ZXBpY2tlclZpZXdNb2RlKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuQ0hBTkdFX1ZJRVdNT0RFLCBwYXlsb2FkOiBldmVudH07XG4gIH1cblxuICBuYXZpZ2F0ZVRvKGV2ZW50OiBCc1ZpZXdOYXZpZ2F0aW9uRXZlbnQpOiBBY3Rpb24ge1xuICAgIHJldHVybiB7dHlwZTogQnNEYXRlcGlja2VyQWN0aW9ucy5OQVZJR0FURV9UTywgcGF5bG9hZDogZXZlbnR9O1xuICB9XG5cbiAgbmF2aWdhdGVTdGVwKHN0ZXA/OiBUaW1lVW5pdCk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLk5BVklHQVRFX09GRlNFVCwgcGF5bG9hZDogc3RlcH07XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnM6IERhdGVwaWNrZXJSZW5kZXJPcHRpb25zKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX09QVElPTlMsIHBheWxvYWQ6IG9wdGlvbnN9O1xuICB9XG5cbiAgLy8gZGF0ZSByYW5nZSBwaWNrZXJcbiAgc2VsZWN0UmFuZ2UodmFsdWU/OiAoRGF0ZSB8IHVuZGVmaW5lZClbXSB8IHVuZGVmaW5lZCk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFTEVDVF9SQU5HRSwgcGF5bG9hZDogdmFsdWV9O1xuICB9XG5cbiAgaG92ZXJEYXkoZXZlbnQ6IENlbGxIb3ZlckV2ZW50KTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuSE9WRVIsIHBheWxvYWQ6IGV2ZW50LmlzSG92ZXJlZCA/IGV2ZW50LmNlbGwuZGF0ZSA6IG51bGx9O1xuICB9XG5cbiAgbWluRGF0ZShkYXRlPzogRGF0ZSk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFVF9NSU5fREFURSwgcGF5bG9hZDogZGF0ZX07XG4gIH1cblxuICBtYXhEYXRlKGRhdGU/OiBEYXRlKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX01BWF9EQVRFLCBwYXlsb2FkOiBkYXRlfTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQodmFsdWU/OiBib29sZWFuKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX0lTX0RJU0FCTEVELCBwYXlsb2FkOiB2YWx1ZX07XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.effects.mjs
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { combineLatest } from 'rxjs';
|
|
3
|
-
import { filter, map } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./bs-datepicker.actions";
|
|
6
|
-
export class BsDatepickerEffects {
|
|
7
|
-
constructor(_actions) {
|
|
8
|
-
this._actions = _actions;
|
|
9
|
-
this._subs = [];
|
|
10
|
-
}
|
|
11
|
-
init(_bsDatepickerStore) {
|
|
12
|
-
this._store = _bsDatepickerStore;
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
/** setters */
|
|
16
|
-
setValue(value) {
|
|
17
|
-
this._store?.dispatch(this._actions.select(value));
|
|
18
|
-
}
|
|
19
|
-
setRangeValue(value) {
|
|
20
|
-
this._store?.dispatch(this._actions.selectRange(value));
|
|
21
|
-
}
|
|
22
|
-
setMinDate(value) {
|
|
23
|
-
this._store?.dispatch(this._actions.minDate(value));
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
setMaxDate(value) {
|
|
27
|
-
this._store?.dispatch(this._actions.maxDate(value));
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
setDisabled(value) {
|
|
31
|
-
this._store?.dispatch(this._actions.isDisabled(value));
|
|
32
|
-
return this;
|
|
33
|
-
}
|
|
34
|
-
/* Set rendering options */
|
|
35
|
-
setOptions(_config) {
|
|
36
|
-
const _options = Object.assign({ locale: 'en' }, _config);
|
|
37
|
-
this._store?.dispatch(this._actions.setOptions(_options));
|
|
38
|
-
return this;
|
|
39
|
-
}
|
|
40
|
-
/** view to mode bindings */
|
|
41
|
-
setBindings(container) {
|
|
42
|
-
if (!this._store)
|
|
43
|
-
return this;
|
|
44
|
-
container.daysCalendar$ = this._store.select(state => state.flaggedMonths).pipe(filter(months => !!months));
|
|
45
|
-
container.monthsCalendar = this._store.select(state => state.flaggedMonthsCalendar).pipe(filter(months => !!months));
|
|
46
|
-
container.yearsCalendar = this._store.select(state => state.yearsCalendarFlagged).pipe(filter(years => !!years));
|
|
47
|
-
container.viewMode = this._store.select(state => state.view?.mode);
|
|
48
|
-
container.options$ = combineLatest([this._store.select(state => state.displayMonths)]).pipe(map((latest) => ({ displayMonths: latest[0] })));
|
|
49
|
-
return this;
|
|
50
|
-
}
|
|
51
|
-
/** event handlers */
|
|
52
|
-
setEventHandlers(container) {
|
|
53
|
-
container.setViewMode = (event) => {
|
|
54
|
-
this._store?.dispatch(this._actions.changeViewMode(event));
|
|
55
|
-
};
|
|
56
|
-
container.navigateTo = (event) => {
|
|
57
|
-
this._store?.dispatch(this._actions.navigateStep(event.step));
|
|
58
|
-
};
|
|
59
|
-
container.dayHoverHandler = (event) => {
|
|
60
|
-
const _cell = event.cell;
|
|
61
|
-
if (_cell.isOtherMonth || _cell.isDisabled)
|
|
62
|
-
return;
|
|
63
|
-
this._store?.dispatch(this._actions.hoverDay(event));
|
|
64
|
-
_cell.isHovered = event.isHovered;
|
|
65
|
-
};
|
|
66
|
-
container.monthHoverHandler = (event) => {
|
|
67
|
-
event.cell.isHovered = event.isHovered;
|
|
68
|
-
};
|
|
69
|
-
container.yearHoverHandler = (event) => {
|
|
70
|
-
event.cell.isHovered = event.isHovered;
|
|
71
|
-
};
|
|
72
|
-
return this;
|
|
73
|
-
}
|
|
74
|
-
registerDatepickerSideEffects() {
|
|
75
|
-
if (!this._store)
|
|
76
|
-
return this;
|
|
77
|
-
this._subs.push(this._store.select(state => state.view).subscribe(() => {
|
|
78
|
-
this._store?.dispatch(this._actions.calculate());
|
|
79
|
-
}));
|
|
80
|
-
// format calendar values on month model change
|
|
81
|
-
this._subs.push(this._store
|
|
82
|
-
.select(state => state.monthsModel)
|
|
83
|
-
.pipe(filter(monthModel => !!monthModel))
|
|
84
|
-
.subscribe(() => this._store?.dispatch(this._actions.format())));
|
|
85
|
-
// flag day values
|
|
86
|
-
this._subs.push(this._store
|
|
87
|
-
.select(state => state.formattedMonths)
|
|
88
|
-
.pipe(filter(month => !!month))
|
|
89
|
-
.subscribe(() => this._store?.dispatch(this._actions.flag())));
|
|
90
|
-
// flag day values
|
|
91
|
-
this._subs.push(this._store
|
|
92
|
-
.select(state => state.selectedDate)
|
|
93
|
-
.pipe(filter(selectedDate => !!selectedDate))
|
|
94
|
-
.subscribe(() => this._store?.dispatch(this._actions.flag())));
|
|
95
|
-
// flag for date range picker
|
|
96
|
-
this._subs.push(this._store
|
|
97
|
-
.select(state => state.selectedRange)
|
|
98
|
-
.pipe(filter(selectedRange => !!selectedRange))
|
|
99
|
-
.subscribe(() => this._store?.dispatch(this._actions.flag())));
|
|
100
|
-
// monthsCalendar
|
|
101
|
-
this._subs.push(this._store
|
|
102
|
-
.select(state => state.monthsCalendar)
|
|
103
|
-
.subscribe(() => this._store?.dispatch(this._actions.flag())));
|
|
104
|
-
// years calendar
|
|
105
|
-
this._subs.push(this._store
|
|
106
|
-
.select(state => state.yearsCalendarModel)
|
|
107
|
-
.pipe(filter(state => !!state))
|
|
108
|
-
.subscribe(() => this._store?.dispatch(this._actions.flag())));
|
|
109
|
-
// on hover
|
|
110
|
-
this._subs.push(this._store
|
|
111
|
-
.select(state => state.hoveredDate)
|
|
112
|
-
.pipe(filter(hoveredDate => !!hoveredDate))
|
|
113
|
-
.subscribe(() => this._store?.dispatch(this._actions.flag())));
|
|
114
|
-
return this;
|
|
115
|
-
}
|
|
116
|
-
destroy() {
|
|
117
|
-
for (const sub of this._subs) {
|
|
118
|
-
sub.unsubscribe();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerEffects, deps: [{ token: i1.BsDatepickerActions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
122
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerEffects, providedIn: 'platform' }); }
|
|
123
|
-
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerEffects, decorators: [{
|
|
125
|
-
type: Injectable,
|
|
126
|
-
args: [{ providedIn: 'platform' }]
|
|
127
|
-
}], ctorParameters: function () { return [{ type: i1.BsDatepickerActions }]; } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUEyQixNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFvQjNDLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsUUFBNkI7UUFBN0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUFGekMsVUFBSyxHQUFtQixFQUFFLENBQUM7SUFHbkMsQ0FBQztJQUVELElBQUksQ0FBQyxrQkFBcUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjO0lBRWQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXdDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxD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SUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLE1BQU07YUFDUixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNoRSxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM1QixHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDOytHQXBLVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQURQLFVBQVU7OzRGQUN0QixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0JzRGF0ZXBpY2tlckFic3RyYWN0Q29tcG9uZW50fSBmcm9tICcuLi9iYXNlL2JzLWRhdGVwaWNrZXItY29udGFpbmVyJztcbmltcG9ydCB7QnNEYXRlcGlja2VyQ29uZmlnfSBmcm9tICcuLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5cbmltcG9ydCB7XG4gIEJzRGF0ZXBpY2tlclZpZXdNb2RlLFxuICBCc05hdmlnYXRpb25FdmVudCxcbiAgQ2VsbEhvdmVyRXZlbnQsXG4gIERhdGVwaWNrZXJSZW5kZXJPcHRpb25zLFxuICBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIERheVZpZXdNb2RlbCxcbiAgTW9udGhzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIFllYXJzQ2FsZW5kYXJWaWV3TW9kZWxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7QnNEYXRlcGlja2VyQWN0aW9uc30gZnJvbSAnLi9icy1kYXRlcGlja2VyLmFjdGlvbnMnO1xuaW1wb3J0IHtCc0RhdGVwaWNrZXJTdG9yZX0gZnJvbSAnLi9icy1kYXRlcGlja2VyLnN0b3JlJztcblxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3BsYXRmb3JtJ30pXG5leHBvcnQgY2xhc3MgQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gIHZpZXdNb2RlPzogT2JzZXJ2YWJsZTxCc0RhdGVwaWNrZXJWaWV3TW9kZT47XG4gIGRheXNDYWxlbmRhcj86IE9ic2VydmFibGU8RGF5c0NhbGVuZGFyVmlld01vZGVsW10+O1xuICBtb250aHNDYWxlbmRhcj86IE9ic2VydmFibGU8TW9udGhzQ2FsZW5kYXJWaWV3TW9kZWxbXT47XG4gIHllYXJzQ2FsZW5kYXI/OiBPYnNlcnZhYmxlPFllYXJzQ2FsZW5kYXJWaWV3TW9kZWxbXT47XG4gIG9wdGlvbnM/OiBPYnNlcnZhYmxlPERhdGVwaWNrZXJSZW5kZXJPcHRpb25zPjtcblxuICBwcml2YXRlIF9zdG9yZT86IEJzRGF0ZXBpY2tlclN0b3JlO1xuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FjdGlvbnM6IEJzRGF0ZXBpY2tlckFjdGlvbnMpIHtcbiAgfVxuXG4gIGluaXQoX2JzRGF0ZXBpY2tlclN0b3JlOiBCc0RhdGVwaWNrZXJTdG9yZSk6IEJzRGF0ZXBpY2tlckVmZmVjdHMge1xuICAgIHRoaXMuX3N0b3JlID0gX2JzRGF0ZXBpY2tlclN0b3JlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIHNldHRlcnMgKi9cblxuICBzZXRWYWx1ZSh2YWx1ZT86IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5zZWxlY3QodmFsdWUpKTtcbiAgfVxuXG4gIHNldFJhbmdlVmFsdWUodmFsdWU/OiAoRGF0ZSB8IHVuZGVmaW5lZClbXSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLnNlbGVjdFJhbmdlKHZhbHVlKSk7XG4gIH1cblxuICBzZXRNaW5EYXRlKHZhbHVlPzogRGF0ZSk6IEJzRGF0ZXBpY2tlckVmZmVjdHMge1xuICAgIHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLm1pbkRhdGUodmFsdWUpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldE1heERhdGUodmFsdWU/OiBEYXRlKTogQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gICAgdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMubWF4RGF0ZSh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0RGlzYWJsZWQodmFsdWU/OiBib29sZWFuKTogQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gICAgdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuaXNEaXNhYmxlZCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyogU2V0IHJlbmRlcmluZyBvcHRpb25zICovXG4gIHNldE9wdGlvbnMoX2NvbmZpZzogQnNEYXRlcGlja2VyQ29uZmlnKTogQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gICAgY29uc3QgX29wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtsb2NhbGU6ICdlbid9LCBfY29uZmlnKTtcbiAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5zZXRPcHRpb25zKF9vcHRpb25zKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogdmlldyB0byBtb2RlIGJpbmRpbmdzICovXG4gIHNldEJpbmRpbmdzKGNvbnRhaW5lcjogQnNEYXRlcGlja2VyQWJzdHJhY3RDb21wb25lbnQpOiBCc0RhdGVwaWNrZXJFZmZlY3RzIHtcbiAgICBpZiAoIXRoaXMuX3N0b3JlKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnRhaW5lci5kYXlzQ2FsZW5kYXIkID0gdGhpcy5fc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmZsYWdnZWRNb250aHMpLnBpcGUoZmlsdGVyKG1vbnRocyA9PiAhIW1vbnRocykpO1xuICAgIGNvbnRhaW5lci5tb250aHNDYWxlbmRhciA9IHRoaXMuX3N0b3JlLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5mbGFnZ2VkTW9udGhzQ2FsZW5kYXIpLnBpcGUoZmlsdGVyKG1vbnRocyA9PiAhIW1vbnRocykpO1xuICAgIGNvbnRhaW5lci55ZWFyc0NhbGVuZGFyID0gdGhpcy5fc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnllYXJzQ2FsZW5kYXJGbGFnZ2VkKS5waXBlKGZpbHRlcih5ZWFycyA9PiAhIXllYXJzKSk7XG4gICAgY29udGFpbmVyLnZpZXdNb2RlID0gdGhpcy5fc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnZpZXc/Lm1vZGUpO1xuICAgIGNvbnRhaW5lci5vcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3N0b3JlLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5kaXNwbGF5TW9udGhzKV0pLnBpcGUobWFwKChsYXRlc3QpID0+ICh7ZGlzcGxheU1vbnRoczogbGF0ZXN0WzBdfSkpKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIGV2ZW50IGhhbmRsZXJzICovXG4gIHNldEV2ZW50SGFuZGxlcnMoY29udGFpbmVyOiBCc0RhdGVwaWNrZXJBYnN0cmFjdENvbXBvbmVudCk6IEJzRGF0ZXBpY2tlckVmZmVjdHMge1xuICAgIGNvbnRhaW5lci5zZXRWaWV3TW9kZSA9IChldmVudDogQnNEYXRlcGlja2VyVmlld01vZGUpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmNoYW5nZVZpZXdNb2RlKGV2ZW50KSk7XG4gICAgfTtcblxuICAgIGNvbnRhaW5lci5uYXZpZ2F0ZVRvID0gKGV2ZW50OiBCc05hdmlnYXRpb25FdmVudCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMubmF2aWdhdGVTdGVwKGV2ZW50LnN0ZXApKTtcbiAgICB9O1xuXG4gICAgY29udGFpbmVyLmRheUhvdmVySGFuZGxlciA9IChldmVudDogQ2VsbEhvdmVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IF9jZWxsID0gZXZlbnQuY2VsbCBhcyBEYXlWaWV3TW9kZWw7XG5cbiAgICAgIGlmIChfY2VsbC5pc090aGVyTW9udGggfHwgX2NlbGwuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5ob3ZlckRheShldmVudCkpO1xuICAgICAgX2NlbGwuaXNIb3ZlcmVkID0gZXZlbnQuaXNIb3ZlcmVkO1xuICAgIH07XG5cbiAgICBjb250YWluZXIubW9udGhIb3ZlckhhbmRsZXIgPSAoZXZlbnQ6IENlbGxIb3ZlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBldmVudC5jZWxsLmlzSG92ZXJlZCA9IGV2ZW50LmlzSG92ZXJlZDtcbiAgICB9O1xuXG4gICAgY29udGFpbmVyLnllYXJIb3ZlckhhbmRsZXIgPSAoZXZlbnQ6IENlbGxIb3ZlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBldmVudC5jZWxsLmlzSG92ZXJlZCA9IGV2ZW50LmlzSG92ZXJlZDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZWdpc3RlckRhdGVwaWNrZXJTaWRlRWZmZWN0cygpOiBCc0RhdGVwaWNrZXJFZmZlY3RzIHtcbiAgICBpZiAoIXRoaXMuX3N0b3JlKSByZXR1cm4gdGhpcztcblxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS52aWV3KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5jYWxjdWxhdGUoKSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBmb3JtYXQgY2FsZW5kYXIgdmFsdWVzIG9uIG1vbnRoIG1vZGVsIGNoYW5nZVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUubW9udGhzTW9kZWwpXG4gICAgICAgIC5waXBlKGZpbHRlcihtb250aE1vZGVsID0+ICEhbW9udGhNb2RlbCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuZm9ybWF0KCkpKVxuICAgICk7XG5cbiAgICAvLyBmbGFnIGRheSB2YWx1ZXNcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmZvcm1hdHRlZE1vbnRocylcbiAgICAgICAgLnBpcGUoZmlsdGVyKG1vbnRoID0+ICEhbW9udGgpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmZsYWcoKSkpXG4gICAgKTtcblxuICAgIC8vIGZsYWcgZGF5IHZhbHVlc1xuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuc2VsZWN0ZWREYXRlKVxuICAgICAgICAucGlwZShmaWx0ZXIoc2VsZWN0ZWREYXRlID0+ICEhc2VsZWN0ZWREYXRlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5mbGFnKCkpKVxuICAgICk7XG5cbiAgICAvLyBmbGFnIGZvciBkYXRlIHJhbmdlIHBpY2tlclxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuc2VsZWN0ZWRSYW5nZSlcbiAgICAgICAgLnBpcGUoZmlsdGVyKHNlbGVjdGVkUmFuZ2UgPT4gISFzZWxlY3RlZFJhbmdlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5mbGFnKCkpKVxuICAgICk7XG5cbiAgICAvLyBtb250aHNDYWxlbmRhclxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUubW9udGhzQ2FsZW5kYXIpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuZmxhZygpKSlcbiAgICApO1xuXG4gICAgLy8geWVhcnMgY2FsZW5kYXJcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnllYXJzQ2FsZW5kYXJNb2RlbClcbiAgICAgICAgLnBpcGUoZmlsdGVyKHN0YXRlID0+ICEhc3RhdGUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmZsYWcoKSkpXG4gICAgKTtcblxuICAgIC8vIG9uIGhvdmVyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgdGhpcy5fc3RvcmVcbiAgICAgICAgLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5ob3ZlcmVkRGF0ZSlcbiAgICAgICAgLnBpcGUoZmlsdGVyKGhvdmVyZWREYXRlID0+ICEhaG92ZXJlZERhdGUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmZsYWcoKSkpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLl9zdWJzKSB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.reducer.mjs
DELETED
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
import { initialDatepickerState } from './bs-datepicker.state';
|
|
2
|
-
import { BsDatepickerActions } from './bs-datepicker.actions';
|
|
3
|
-
import { calcDaysCalendar } from '../engine/calc-days-calendar';
|
|
4
|
-
import { formatDaysCalendar } from '../engine/format-days-calendar';
|
|
5
|
-
import { flagDaysCalendar } from '../engine/flag-days-calendar';
|
|
6
|
-
import { getLocale, isAfter, isArray, isBefore, isDateValid, isSame, setFullDate, shiftDate, startOf } from 'ngx-bootstrap/chronos';
|
|
7
|
-
import { canSwitchMode } from '../engine/view-mode';
|
|
8
|
-
import { formatMonthsCalendar } from '../engine/format-months-calendar';
|
|
9
|
-
import { flagMonthsCalendar } from '../engine/flag-months-calendar';
|
|
10
|
-
import { formatYearsCalendar, initialYearShift, yearsPerCalendar } from '../engine/format-years-calendar';
|
|
11
|
-
import { flagYearsCalendar } from '../engine/flag-years-calendar';
|
|
12
|
-
import { getYearsCalendarInitialDate } from '../utils/bs-calendar-utils';
|
|
13
|
-
export function bsDatepickerReducer(state = initialDatepickerState, action) {
|
|
14
|
-
switch (action.type) {
|
|
15
|
-
case BsDatepickerActions.CALCULATE: {
|
|
16
|
-
return calculateReducer(state);
|
|
17
|
-
}
|
|
18
|
-
case BsDatepickerActions.FORMAT: {
|
|
19
|
-
return formatReducer(state);
|
|
20
|
-
}
|
|
21
|
-
case BsDatepickerActions.FLAG: {
|
|
22
|
-
return flagReducer(state);
|
|
23
|
-
}
|
|
24
|
-
case BsDatepickerActions.NAVIGATE_OFFSET: {
|
|
25
|
-
return navigateOffsetReducer(state, action);
|
|
26
|
-
}
|
|
27
|
-
case BsDatepickerActions.NAVIGATE_TO: {
|
|
28
|
-
const payload = action.payload;
|
|
29
|
-
if (!state.view || !payload.unit)
|
|
30
|
-
return state;
|
|
31
|
-
const date = setFullDate(state.view.date, payload.unit);
|
|
32
|
-
let newState;
|
|
33
|
-
let mode;
|
|
34
|
-
if (canSwitchMode(payload.viewMode, state.minMode)) {
|
|
35
|
-
mode = payload.viewMode;
|
|
36
|
-
newState = { view: { date, mode } };
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
mode = state.view.mode;
|
|
40
|
-
newState = { selectedDate: date, view: { date, mode } };
|
|
41
|
-
}
|
|
42
|
-
return Object.assign({}, state, newState);
|
|
43
|
-
}
|
|
44
|
-
case BsDatepickerActions.CHANGE_VIEWMODE: {
|
|
45
|
-
if (!canSwitchMode(action.payload, state.minMode) || !state.view)
|
|
46
|
-
return state;
|
|
47
|
-
const date = state.view.date;
|
|
48
|
-
const mode = action.payload;
|
|
49
|
-
const newState = { view: { date, mode } };
|
|
50
|
-
return Object.assign({}, state, newState);
|
|
51
|
-
}
|
|
52
|
-
case BsDatepickerActions.HOVER: {
|
|
53
|
-
return Object.assign({}, state, { hoveredDate: action.payload });
|
|
54
|
-
}
|
|
55
|
-
case BsDatepickerActions.SELECT: {
|
|
56
|
-
if (!state.view)
|
|
57
|
-
return state;
|
|
58
|
-
const newState = {
|
|
59
|
-
selectedDate: action.payload,
|
|
60
|
-
view: state.view
|
|
61
|
-
};
|
|
62
|
-
const mode = state.view.mode;
|
|
63
|
-
const _date = action.payload || state.view.date;
|
|
64
|
-
const date = getViewDate(_date, state.minDate, state.maxDate);
|
|
65
|
-
newState.view = { mode, date };
|
|
66
|
-
return Object.assign({}, state, newState);
|
|
67
|
-
}
|
|
68
|
-
case BsDatepickerActions.SET_OPTIONS: {
|
|
69
|
-
if (!state.view)
|
|
70
|
-
return state;
|
|
71
|
-
const newState = action.payload;
|
|
72
|
-
// preserve view mode
|
|
73
|
-
const mode = newState.minMode ? newState.minMode : state.view.mode;
|
|
74
|
-
const _viewDate = isDateValid(newState.value) && newState.value || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0] || state.view.date;
|
|
75
|
-
const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);
|
|
76
|
-
newState.view = { mode, date };
|
|
77
|
-
// update selected value
|
|
78
|
-
if (newState.value) {
|
|
79
|
-
// if new value is array we work with date range
|
|
80
|
-
if (isArray(newState.value)) {
|
|
81
|
-
newState.selectedRange = newState.value;
|
|
82
|
-
}
|
|
83
|
-
// if new value is a date -> datepicker
|
|
84
|
-
if (newState.value instanceof Date) {
|
|
85
|
-
newState.selectedDate = newState.value;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return Object.assign({}, state, newState);
|
|
89
|
-
}
|
|
90
|
-
// date range picker
|
|
91
|
-
case BsDatepickerActions.SELECT_RANGE: {
|
|
92
|
-
if (!state.view)
|
|
93
|
-
return state;
|
|
94
|
-
const newState = {
|
|
95
|
-
selectedRange: action.payload,
|
|
96
|
-
view: state.view
|
|
97
|
-
};
|
|
98
|
-
const mode = state.view.mode;
|
|
99
|
-
const _date = action.payload && action.payload[0] || state.view.date;
|
|
100
|
-
const date = getViewDate(_date, state.minDate, state.maxDate);
|
|
101
|
-
newState.view = { mode, date };
|
|
102
|
-
return Object.assign({}, state, newState);
|
|
103
|
-
}
|
|
104
|
-
case BsDatepickerActions.SET_MIN_DATE: {
|
|
105
|
-
return Object.assign({}, state, {
|
|
106
|
-
minDate: action.payload
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
case BsDatepickerActions.SET_MAX_DATE: {
|
|
110
|
-
return Object.assign({}, state, {
|
|
111
|
-
maxDate: action.payload
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
case BsDatepickerActions.SET_IS_DISABLED: {
|
|
115
|
-
return Object.assign({}, state, {
|
|
116
|
-
isDisabled: action.payload
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
default:
|
|
120
|
-
return state;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
function calculateReducer(state) {
|
|
124
|
-
if (!state.view)
|
|
125
|
-
return state;
|
|
126
|
-
// how many calendars
|
|
127
|
-
let displayMonths = state.displayMonths;
|
|
128
|
-
// use selected date on initial rendering if set
|
|
129
|
-
let viewDate = state.view.date;
|
|
130
|
-
if (state.view.mode === 'day' && state.monthViewOptions) {
|
|
131
|
-
state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();
|
|
132
|
-
let monthsModel = new Array(displayMonths);
|
|
133
|
-
for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {
|
|
134
|
-
monthsModel[monthIndex] = calcDaysCalendar(viewDate, state.monthViewOptions);
|
|
135
|
-
viewDate = shiftDate(viewDate, { month: 1 });
|
|
136
|
-
}
|
|
137
|
-
// Check if parameter enabled and check if it's not months navigation event
|
|
138
|
-
if (state.preventChangeToNextMonth && state.flaggedMonths && state.hoveredDate) {
|
|
139
|
-
const viewMonth = calcDaysCalendar(state.view.date, state.monthViewOptions);
|
|
140
|
-
// Check if viewed right month same as in flaggedMonths state, then override months model with flaggedMonths
|
|
141
|
-
if (state.flaggedMonths.length >= 2) {
|
|
142
|
-
if (state.flaggedMonths[1].month.getMonth() === viewMonth.month.getMonth()) {
|
|
143
|
-
monthsModel = state.flaggedMonths.map((item) => {
|
|
144
|
-
return state.monthViewOptions ? calcDaysCalendar(item.month, state.monthViewOptions) : null;
|
|
145
|
-
}).filter(item => item !== null);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
monthsModel = state.flaggedMonths.map((item) => {
|
|
150
|
-
return state.monthViewOptions ? calcDaysCalendar(item.month, state.monthViewOptions) : null;
|
|
151
|
-
}).filter(item => item !== null);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return Object.assign({}, state, { monthsModel });
|
|
155
|
-
}
|
|
156
|
-
if (state.view.mode === 'month') {
|
|
157
|
-
const monthsCalendar = new Array(displayMonths);
|
|
158
|
-
for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
|
|
159
|
-
monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));
|
|
160
|
-
viewDate = shiftDate(viewDate, { year: 1 });
|
|
161
|
-
}
|
|
162
|
-
return Object.assign({}, state, { monthsCalendar });
|
|
163
|
-
}
|
|
164
|
-
if (state.view.mode === 'year') {
|
|
165
|
-
const yearsCalendarModel = new Array(displayMonths);
|
|
166
|
-
for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
|
|
167
|
-
yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state), state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined, state.selectedDate ? state.selectedDate : new Date());
|
|
168
|
-
viewDate = shiftDate(viewDate, { year: yearsPerCalendar });
|
|
169
|
-
}
|
|
170
|
-
return Object.assign({}, state, { yearsCalendarModel });
|
|
171
|
-
}
|
|
172
|
-
return state;
|
|
173
|
-
}
|
|
174
|
-
function formatReducer(state) {
|
|
175
|
-
if (!state.view)
|
|
176
|
-
return state;
|
|
177
|
-
if (state.view.mode === 'day' && state.monthsModel) {
|
|
178
|
-
const formattedMonths = state.monthsModel.map((month, monthIndex) => formatDaysCalendar(month, getFormatOptions(state), monthIndex));
|
|
179
|
-
return Object.assign({}, state, { formattedMonths });
|
|
180
|
-
}
|
|
181
|
-
// how many calendars
|
|
182
|
-
const displayMonths = state.displayMonths || 1;
|
|
183
|
-
// check initial rendering
|
|
184
|
-
// use selected date on initial rendering if set
|
|
185
|
-
let viewDate = state.view.date;
|
|
186
|
-
if (state.view.mode === 'month') {
|
|
187
|
-
const monthsCalendar = new Array(displayMonths);
|
|
188
|
-
for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
|
|
189
|
-
monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));
|
|
190
|
-
viewDate = shiftDate(viewDate, { year: 1 });
|
|
191
|
-
}
|
|
192
|
-
return Object.assign({}, state, { monthsCalendar });
|
|
193
|
-
}
|
|
194
|
-
if (state.view.mode === 'year') {
|
|
195
|
-
const yearsCalendarModel = new Array(displayMonths);
|
|
196
|
-
for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
|
|
197
|
-
yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state), undefined, state.selectedDate ? state.selectedDate : new Date());
|
|
198
|
-
viewDate = shiftDate(viewDate, { year: 16 });
|
|
199
|
-
}
|
|
200
|
-
return Object.assign({}, state, { yearsCalendarModel });
|
|
201
|
-
}
|
|
202
|
-
return state;
|
|
203
|
-
}
|
|
204
|
-
function flagReducer(state) {
|
|
205
|
-
if (!state.view)
|
|
206
|
-
return state;
|
|
207
|
-
const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
|
|
208
|
-
if (state.formattedMonths && state.view.mode === 'day') {
|
|
209
|
-
const flaggedMonths = state.formattedMonths.map((formattedMonth, monthIndex) => flagDaysCalendar(formattedMonth, {
|
|
210
|
-
isDisabled: state.isDisabled,
|
|
211
|
-
minDate: state.minDate,
|
|
212
|
-
maxDate: state.maxDate,
|
|
213
|
-
hoveredDate: state.hoveredDate,
|
|
214
|
-
selectedDate: state.selectedDate,
|
|
215
|
-
selectedRange: state.selectedRange,
|
|
216
|
-
displayMonths,
|
|
217
|
-
monthIndex
|
|
218
|
-
}));
|
|
219
|
-
return Object.assign({}, state, { flaggedMonths });
|
|
220
|
-
}
|
|
221
|
-
if (state.view.mode === 'month' && state.monthsCalendar) {
|
|
222
|
-
const flaggedMonthsCalendar = state.monthsCalendar.map((formattedMonth, monthIndex) => flagMonthsCalendar(formattedMonth, {
|
|
223
|
-
isDisabled: state.isDisabled,
|
|
224
|
-
minDate: state.minDate,
|
|
225
|
-
maxDate: state.maxDate,
|
|
226
|
-
hoveredMonth: state.hoveredMonth,
|
|
227
|
-
selectedDate: state.selectedDate,
|
|
228
|
-
selectedRange: state.selectedRange,
|
|
229
|
-
displayMonths,
|
|
230
|
-
monthIndex
|
|
231
|
-
}));
|
|
232
|
-
return Object.assign({}, state, { flaggedMonthsCalendar });
|
|
233
|
-
}
|
|
234
|
-
if (state.view.mode === 'year' && state.yearsCalendarModel) {
|
|
235
|
-
const yearsCalendarFlagged = state.yearsCalendarModel.map((formattedMonth, yearIndex) => flagYearsCalendar(formattedMonth, {
|
|
236
|
-
isDisabled: state.isDisabled,
|
|
237
|
-
minDate: state.minDate,
|
|
238
|
-
maxDate: state.maxDate,
|
|
239
|
-
hoveredYear: state.hoveredYear,
|
|
240
|
-
selectedDate: state.selectedDate,
|
|
241
|
-
selectedRange: state.selectedRange,
|
|
242
|
-
displayMonths,
|
|
243
|
-
yearIndex
|
|
244
|
-
}));
|
|
245
|
-
return Object.assign({}, state, { yearsCalendarFlagged });
|
|
246
|
-
}
|
|
247
|
-
return state;
|
|
248
|
-
}
|
|
249
|
-
function navigateOffsetReducer(state, action) {
|
|
250
|
-
if (!state.view)
|
|
251
|
-
return state;
|
|
252
|
-
const date = shiftViewDate(state, action);
|
|
253
|
-
if (!date)
|
|
254
|
-
return state;
|
|
255
|
-
const newState = {
|
|
256
|
-
view: { mode: state.view.mode, date }
|
|
257
|
-
};
|
|
258
|
-
return Object.assign({}, state, newState);
|
|
259
|
-
}
|
|
260
|
-
function shiftViewDate(state, action) {
|
|
261
|
-
if (!state.view)
|
|
262
|
-
return undefined;
|
|
263
|
-
if (state.view.mode === 'year' && state.minMode === 'year') {
|
|
264
|
-
const initialDate = getYearsCalendarInitialDate(state, 0);
|
|
265
|
-
if (initialDate) {
|
|
266
|
-
const middleDate = shiftDate(initialDate, { year: -initialYearShift });
|
|
267
|
-
return shiftDate(middleDate, action.payload);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return shiftDate(startOf(state.view.date, 'month'), action.payload);
|
|
271
|
-
}
|
|
272
|
-
function getFormatOptions(state) {
|
|
273
|
-
return {
|
|
274
|
-
locale: state.locale,
|
|
275
|
-
monthTitle: state.monthTitle,
|
|
276
|
-
yearTitle: state.yearTitle,
|
|
277
|
-
dayLabel: state.dayLabel,
|
|
278
|
-
monthLabel: state.monthLabel,
|
|
279
|
-
yearLabel: state.yearLabel
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* if view date is provided (bsValue|ngModel) it should be shown
|
|
284
|
-
* if view date is not provider:
|
|
285
|
-
* if minDate>currentDate (default view value), show minDate
|
|
286
|
-
* if maxDate<currentDate(default view value) show maxDate
|
|
287
|
-
*/
|
|
288
|
-
function getViewDate(viewDate, minDate, maxDate) {
|
|
289
|
-
const _date = Array.isArray(viewDate) ? viewDate[0] : viewDate;
|
|
290
|
-
if (minDate && isAfter(minDate, _date, 'day'))
|
|
291
|
-
return minDate;
|
|
292
|
-
if (maxDate && isBefore(maxDate, _date, 'day'))
|
|
293
|
-
return maxDate;
|
|
294
|
-
return _date;
|
|
295
|
-
}
|
|
296
|
-
function isDisplayOneMonth(viewDate, minDate, maxDate) {
|
|
297
|
-
if (maxDate && isSame(maxDate, viewDate, 'day'))
|
|
298
|
-
return true;
|
|
299
|
-
return minDate && maxDate && minDate.getMonth() === maxDate.getMonth();
|
|
300
|
-
}
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQyxzQkFBc0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXZHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsV0FBVyxFQUNYLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULE9BQU8sRUFDUixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQVVoRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUd2RSxNQUFNLFVBQVUsbUJBQW1C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LENBQUM7QUFDekUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QnNEYXRlcGlja2VyU3RhdGUsIEJzRGF0ZXBpY2tlclZpZXdTdGF0ZSwgaW5pdGlhbERhdGVwaWNrZXJTdGF0ZX0gZnJvbSAnLi9icy1kYXRlcGlja2VyLnN0YXRlJztcbmltcG9ydCB7QWN0aW9ufSBmcm9tICduZ3gtYm9vdHN0cmFwL21pbmktbmdyeCc7XG5pbXBvcnQge0JzRGF0ZXBpY2tlckFjdGlvbnN9IGZyb20gJy4vYnMtZGF0ZXBpY2tlci5hY3Rpb25zJztcbmltcG9ydCB7Y2FsY0RheXNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2NhbGMtZGF5cy1jYWxlbmRhcic7XG5pbXBvcnQge2Zvcm1hdERheXNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2Zvcm1hdC1kYXlzLWNhbGVuZGFyJztcbmltcG9ydCB7ZmxhZ0RheXNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2ZsYWctZGF5cy1jYWxlbmRhcic7XG5pbXBvcnQge1xuICBnZXRMb2NhbGUsXG4gIGlzQWZ0ZXIsXG4gIGlzQXJyYXksXG4gIGlzQmVmb3JlLFxuICBpc0RhdGVWYWxpZCxcbiAgaXNTYW1lLFxuICBzZXRGdWxsRGF0ZSxcbiAgc2hpZnREYXRlLFxuICBzdGFydE9mXG59IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5pbXBvcnQge2NhblN3aXRjaE1vZGV9IGZyb20gJy4uL2VuZ2luZS92aWV3LW1vZGUnO1xuaW1wb3J0IHtmb3JtYXRNb250aHNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2Zvcm1hdC1tb250aHMtY2FsZW5kYXInO1xuaW1wb3J0IHtmbGFnTW9udGhzQ2FsZW5kYXJ9IGZyb20gJy4uL2VuZ2luZS9mbGFnLW1vbnRocy1jYWxlbmRhcic7XG5pbXBvcnQge2Zvcm1hdFllYXJzQ2FsZW5kYXIsIGluaXRpYWxZZWFyU2hpZnQsIHllYXJzUGVyQ2FsZW5kYXJ9IGZyb20gJy4uL2VuZ2luZS9mb3JtYXQteWVhcnMtY2FsZW5kYXInO1xuaW1wb3J0IHtmbGFnWWVhcnNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2ZsYWcteWVhcnMtY2FsZW5kYXInO1xuaW1wb3J0IHtcbiAgQnNEYXRlcGlja2VyVmlld01vZGUsXG4gIEJzVmlld05hdmlnYXRpb25FdmVudCxcbiAgRGF0ZXBpY2tlckZvcm1hdE9wdGlvbnMsXG4gIERheXNDYWxlbmRhck1vZGVsLFxuICBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIE1vbnRoc0NhbGVuZGFyVmlld01vZGVsLFxuICBZZWFyc0NhbGVuZGFyVmlld01vZGVsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge2dldFllYXJzQ2FsZW5kYXJJbml0aWFsRGF0ZX0gZnJvbSAnLi4vdXRpbHMvYnMtY2FsZW5kYXItdXRpbHMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBic0RhdGVwaWNrZXJSZWR1Y2VyKHN0YXRlOiBCc0RhdGVwaWNrZXJTdGF0ZSA9IGluaXRpYWxEYXRlcGlja2VyU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogQnNEYXRlcGlja2VyU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLkNBTENVTEFURToge1xuICAgICAgcmV0dXJuIGNhbGN1bGF0ZVJlZHVjZXIoc3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5GT1JNQVQ6IHtcbiAgICAgIHJldHVybiBmb3JtYXRSZWR1Y2VyKHN0YXRlKTtcbiAgICB9XG5cbiAgICBjYXNlIEJzRGF0ZXBpY2tlckFjdGlvbnMuRkxBRzoge1xuICAgICAgcmV0dXJuIGZsYWdSZWR1Y2VyKHN0YXRlKTtcbiAgICB9XG5cbiAgICBjYXNlIEJzRGF0ZXBpY2tlckFjdGlvbnMuTkFWSUdBVEVfT0ZGU0VUOiB7XG4gICAgICByZXR1cm4gbmF2aWdhdGVPZmZzZXRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5OQVZJR0FURV9UTzoge1xuICAgICAgY29uc3QgcGF5bG9hZDogQnNWaWV3TmF2aWdhdGlvbkV2ZW50ID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgICAgIGlmICghc3RhdGUudmlldyB8fCAhcGF5bG9hZC51bml0KSByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNvbnN0IGRhdGU6IERhdGUgPSBzZXRGdWxsRGF0ZShzdGF0ZS52aWV3LmRhdGUsIHBheWxvYWQudW5pdCk7XG5cbiAgICAgIGxldCBuZXdTdGF0ZTtcbiAgICAgIGxldCBtb2RlOiBCc0RhdGVwaWNrZXJWaWV3TW9kZTtcblxuICAgICAgaWYgKGNhblN3aXRjaE1vZGUocGF5bG9hZC52aWV3TW9kZSwgc3RhdGUubWluTW9kZSkpIHtcbiAgICAgICAgbW9kZSA9IHBheWxvYWQudmlld01vZGU7XG4gICAgICAgIG5ld1N0YXRlID0ge3ZpZXc6IHtkYXRlLCBtb2RlfX07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb2RlID0gc3RhdGUudmlldy5tb2RlO1xuICAgICAgICBuZXdTdGF0ZSA9IHtzZWxlY3RlZERhdGU6IGRhdGUsIHZpZXc6IHtkYXRlLCBtb2RlfX07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5DSEFOR0VfVklFV01PREU6IHtcbiAgICAgIGlmICghY2FuU3dpdGNoTW9kZShhY3Rpb24ucGF5bG9hZCwgc3RhdGUubWluTW9kZSkgfHwgIXN0YXRlLnZpZXcpIHJldHVybiBzdGF0ZTtcblxuICAgICAgY29uc3QgZGF0ZTogRGF0ZSA9IHN0YXRlLnZpZXcuZGF0ZTtcbiAgICAgIGNvbnN0IG1vZGUgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge3ZpZXc6IHtkYXRlLCBtb2RlfX07XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5IT1ZFUjoge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7aG92ZXJlZERhdGU6IGFjdGlvbi5wYXlsb2FkfSk7XG4gICAgfVxuXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFTEVDVDoge1xuICAgICAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBzZWxlY3RlZERhdGU6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB2aWV3OiBzdGF0ZS52aWV3XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlID0gc3RhdGUudmlldy5tb2RlO1xuICAgICAgY29uc3QgX2RhdGUgPSBhY3Rpb24ucGF5bG9hZCB8fCBzdGF0ZS52aWV3LmRhdGU7XG4gICAgICBjb25zdCBkYXRlOiBEYXRlID0gZ2V0Vmlld0RhdGUoX2RhdGUsIHN0YXRlLm1pbkRhdGUsIHN0YXRlLm1heERhdGUpO1xuICAgICAgbmV3U3RhdGUudmlldyA9IHttb2RlLCBkYXRlfTtcblxuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBuZXdTdGF0ZSk7XG4gICAgfVxuXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFVF9PUFRJT05TOiB7XG4gICAgICBpZiAoIXN0YXRlLnZpZXcpIHJldHVybiBzdGF0ZTtcblxuICAgICAgY29uc3QgbmV3U3RhdGUgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIC8vIHByZXNlcnZlIHZpZXcgbW9kZVxuICAgICAgY29uc3QgbW9kZSA9IG5ld1N0YXRlLm1pbk1vZGUgPyBuZXdTdGF0ZS5taW5Nb2RlIDogc3RhdGUudmlldy5tb2RlO1xuICAgICAgY29uc3QgX3ZpZXdEYXRlID0gaXNEYXRlVmFsaWQobmV3U3RhdGUudmFsdWUpICYmIG5ld1N0YXRlLnZhbHVlIHx8IGlzQXJyYXkobmV3U3RhdGUudmFsdWUpICYmIGlzRGF0ZVZhbGlkKG5ld1N0YXRlLnZhbHVlWzBdKSAmJiBuZXdTdGF0ZS52YWx1ZVswXSB8fCBzdGF0ZS52aWV3LmRhdGU7XG4gICAgICBjb25zdCBkYXRlOiBEYXRlID0gZ2V0Vmlld0RhdGUoX3ZpZXdEYXRlLCBuZXdTdGF0ZS5taW5EYXRlLCBuZXdTdGF0ZS5tYXhEYXRlKTtcbiAgICAgIG5ld1N0YXRlLnZpZXcgPSB7bW9kZSwgZGF0ZX07XG5cbiAgICAgIC8vIHVwZGF0ZSBzZWxlY3RlZCB2YWx1ZVxuICAgICAgaWYgKG5ld1N0YXRlLnZhbHVlKSB7XG4gICAgICAgIC8vIGlmIG5ldyB2YWx1ZSBpcyBhcnJheSB3ZSB3b3JrIHdpdGggZGF0ZSByYW5nZVxuICAgICAgICBpZiAoaXNBcnJheShuZXdTdGF0ZS52YWx1ZSkpIHtcbiAgICAgICAgICBuZXdTdGF0ZS5zZWxlY3RlZFJhbmdlID0gbmV3U3RhdGUudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBuZXcgdmFsdWUgaXMgYSBkYXRlIC0+IGRhdGVwaWNrZXJcbiAgICAgICAgaWYgKG5ld1N0YXRlLnZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIG5ld1N0YXRlLnNlbGVjdGVkRGF0ZSA9IG5ld1N0YXRlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIC8vIGRhdGUgcmFuZ2UgcGlja2VyXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFTEVDVF9SQU5HRToge1xuICAgICAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBzZWxlY3RlZFJhbmdlOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgdmlldzogc3RhdGUudmlld1xuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZSA9IHN0YXRlLnZpZXcubW9kZTtcbiAgICAgIGNvbnN0IF9kYXRlID0gYWN0aW9uLnBheWxvYWQgJiYgYWN0aW9uLnBheWxvYWRbMF0gfHwgc3RhdGUudmlldy5kYXRlO1xuICAgICAgY29uc3QgZGF0ZTogRGF0ZSA9IGdldFZpZXdEYXRlKF9kYXRlLCBzdGF0ZS5taW5EYXRlLCBzdGF0ZS5tYXhEYXRlKTtcbiAgICAgIG5ld1N0YXRlLnZpZXcgPSB7bW9kZSwgZGF0ZX07XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5TRVRfTUlOX0RBVEU6IHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge1xuICAgICAgICBtaW5EYXRlOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFVF9NQVhfREFURToge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XG4gICAgICAgIG1heERhdGU6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjYXNlIEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX0lTX0RJU0FCTEVEOiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogYWN0aW9uLnBheWxvYWRcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlUmVkdWNlcihzdGF0ZTogQnNEYXRlcGlja2VyU3RhdGUpOiBCc0RhdGVwaWNrZXJTdGF0ZSB7XG4gIGlmICghc3RhdGUudmlldykgcmV0dXJuIHN0YXRlO1xuXG4gIC8vIGhvdyBtYW55IGNhbGVuZGFyc1xuICBsZXQgZGlzcGxheU1vbnRoczogbnVtYmVyID0gc3RhdGUuZGlzcGxheU1vbnRocztcblxuICAvLyB1c2Ugc2VsZWN0ZWQgZGF0ZSBvbiBpbml0aWFsIHJlbmRlcmluZyBpZiBzZXRcbiAgbGV0IHZpZXdEYXRlOiBEYXRlID0gc3RhdGUudmlldy5kYXRlO1xuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdkYXknICYmIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpIHtcbiAgICBzdGF0ZS5tb250aFZpZXdPcHRpb25zLmZpcnN0RGF5T2ZXZWVrID0gZ2V0TG9jYWxlKHN0YXRlLmxvY2FsZSkuZmlyc3REYXlPZldlZWsoKTtcblxuICAgIGxldCBtb250aHNNb2RlbCA9IG5ldyBBcnJheShkaXNwbGF5TW9udGhzKTtcbiAgICBmb3IgKGxldCBtb250aEluZGV4OiBudW1iZXIgPSAwOyBtb250aEluZGV4IDwgZGlzcGxheU1vbnRoczsgbW9udGhJbmRleCsrKSB7XG4gICAgICBtb250aHNNb2RlbFttb250aEluZGV4XSA9IGNhbGNEYXlzQ2FsZW5kYXIodmlld0RhdGUsIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpO1xuICAgICAgdmlld0RhdGUgPSBzaGlmdERhdGUodmlld0RhdGUsIHttb250aDogMX0pO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHBhcmFtZXRlciBlbmFibGVkIGFuZCBjaGVjayBpZiBpdCdzIG5vdCBtb250aHMgbmF2aWdhdGlvbiBldmVudFxuICAgIGlmIChzdGF0ZS5wcmV2ZW50Q2hhbmdlVG9OZXh0TW9udGggJiYgc3RhdGUuZmxhZ2dlZE1vbnRocyAmJiBzdGF0ZS5ob3ZlcmVkRGF0ZSkge1xuICAgICAgY29uc3Qgdmlld01vbnRoOiBEYXlzQ2FsZW5kYXJNb2RlbCA9IGNhbGNEYXlzQ2FsZW5kYXIoc3RhdGUudmlldy5kYXRlLCBzdGF0ZS5tb250aFZpZXdPcHRpb25zKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdmlld2VkIHJpZ2h0IG1vbnRoIHNhbWUgYXMgaW4gZmxhZ2dlZE1vbnRocyBzdGF0ZSwgdGhlbiBvdmVycmlkZSBtb250aHMgbW9kZWwgd2l0aCBmbGFnZ2VkTW9udGhzXG4gICAgICBpZiAoc3RhdGUuZmxhZ2dlZE1vbnRocy5sZW5ndGggPj0gMikge1xuICAgICAgICBpZiAoc3RhdGUuZmxhZ2dlZE1vbnRoc1sxXS5tb250aC5nZXRNb250aCgpID09PSB2aWV3TW9udGgubW9udGguZ2V0TW9udGgoKSkge1xuICAgICAgICAgIG1vbnRoc01vZGVsID0gc3RhdGUuZmxhZ2dlZE1vbnRocy5tYXAoKGl0ZW06IERheXNDYWxlbmRhclZpZXdNb2RlbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN0YXRlLm1vbnRoVmlld09wdGlvbnMgPyBjYWxjRGF5c0NhbGVuZGFyKGl0ZW0ubW9udGgsIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpIDogbnVsbDtcbiAgICAgICAgICB9KS5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9udGhzTW9kZWwgPSBzdGF0ZS5mbGFnZ2VkTW9udGhzLm1hcCgoaXRlbTogRGF5c0NhbGVuZGFyVmlld01vZGVsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlLm1vbnRoVmlld09wdGlvbnMgPyBjYWxjRGF5c0NhbGVuZGFyKGl0ZW0ubW9udGgsIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpIDogbnVsbDtcbiAgICAgICAgfSkuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gbnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7bW9udGhzTW9kZWx9KTtcbiAgfVxuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdtb250aCcpIHtcbiAgICBjb25zdCBtb250aHNDYWxlbmRhciA9IG5ldyBBcnJheShkaXNwbGF5TW9udGhzKTtcblxuICAgIGZvciAobGV0IGNhbGVuZGFySW5kZXg6IG51bWJlciA9IDA7IGNhbGVuZGFySW5kZXggPCBkaXNwbGF5TW9udGhzOyBjYWxlbmRhckluZGV4KyspIHtcbiAgICAgIG1vbnRoc0NhbGVuZGFyW2NhbGVuZGFySW5kZXhdID0gZm9ybWF0TW9udGhzQ2FsZW5kYXIodmlld0RhdGUsIGdldEZvcm1hdE9wdGlvbnMoc3RhdGUpKTtcbiAgICAgIHZpZXdEYXRlID0gc2hpZnREYXRlKHZpZXdEYXRlLCB7eWVhcjogMX0pO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge21vbnRoc0NhbGVuZGFyfSk7XG4gIH1cblxuICBpZiAoc3RhdGUudmlldy5tb2RlID09PSAneWVhcicpIHtcbiAgICBjb25zdCB5ZWFyc0NhbGVuZGFyTW9kZWwgPSBuZXcgQXJyYXkoZGlzcGxheU1vbnRocyk7XG5cbiAgICBmb3IgKGxldCBjYWxlbmRhckluZGV4OiBudW1iZXIgPSAwOyBjYWxlbmRhckluZGV4IDwgZGlzcGxheU1vbnRoczsgY2FsZW5kYXJJbmRleCsrKSB7XG4gICAgICB5ZWFyc0NhbGVuZGFyTW9kZWxbY2FsZW5kYXJJbmRleF0gPSBmb3JtYXRZZWFyc0NhbGVuZGFyKHZpZXdEYXRlLCBnZXRGb3JtYXRPcHRpb25zKHN0YXRlKSwgc3RhdGUubWluTW9kZSA9PT0gJ3llYXInID8gZ2V0WWVhcnNDYWxlbmRhckluaXRpYWxEYXRlKHN0YXRlLCBjYWxlbmRhckluZGV4KSA6IHVuZGVmaW5lZCwgc3RhdGUuc2VsZWN0ZWREYXRlID8gc3RhdGUuc2VsZWN0ZWREYXRlIDogbmV3IERhdGUoKSk7XG4gICAgICB2aWV3RGF0ZSA9IHNoaWZ0RGF0ZSh2aWV3RGF0ZSwge3llYXI6IHllYXJzUGVyQ2FsZW5kYXJ9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHt5ZWFyc0NhbGVuZGFyTW9kZWx9KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0UmVkdWNlcihzdGF0ZTogQnNEYXRlcGlja2VyU3RhdGUpOiBCc0RhdGVwaWNrZXJTdGF0ZSB7XG4gIGlmICghc3RhdGUudmlldykgcmV0dXJuIHN0YXRlO1xuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdkYXknICYmIHN0YXRlLm1vbnRoc01vZGVsKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkTW9udGhzOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWxbXSA9IHN0YXRlLm1vbnRoc01vZGVsLm1hcCgobW9udGg6IERheXNDYWxlbmRhck1vZGVsLCBtb250aEluZGV4OiBudW1iZXIpID0+IGZvcm1hdERheXNDYWxlbmRhcihtb250aCwgZ2V0Rm9ybWF0T3B0aW9ucyhzdGF0ZSksIG1vbnRoSW5kZXgpKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge2Zvcm1hdHRlZE1vbnRoc30pO1xuICB9XG5cbiAgLy8gaG93IG1hbnkgY2FsZW5kYXJzXG4gIGNvbnN0IGRpc3BsYXlNb250aHM6IG51bWJlciA9IHN0YXRlLmRpc3BsYXlNb250aHMgfHwgMTtcblxuICAvLyBjaGVjayBpbml0aWFsIHJlbmRlcmluZ1xuICAvLyB1c2Ugc2VsZWN0ZWQgZGF0ZSBvbiBpbml0aWFsIHJlbmRlcmluZyBpZiBzZXRcbiAgbGV0IHZpZXdEYXRlOiBEYXRlID0gc3RhdGUudmlldy5kYXRlO1xuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdtb250aCcpIHtcbiAgICBjb25zdCBtb250aHNDYWxlbmRhciA9IG5ldyBBcnJheShkaXNwbGF5TW9udGhzKTtcbiAgICBmb3IgKGxldCBjYWxlbmRhckluZGV4OiBudW1iZXIgPSAwOyBjYWxlbmRhckluZGV4IDwgZGlzcGxheU1vbnRoczsgY2FsZW5kYXJJbmRleCsrKSB7XG4gICAgICBtb250aHNDYWxlbmRhcltjYWxlbmRhckluZGV4XSA9IGZvcm1hdE1vbnRoc0NhbGVuZGFyKHZpZXdEYXRlLCBnZXRGb3JtYXRPcHRpb25zKHN0YXRlKSk7XG4gICAgICB2aWV3RGF0ZSA9IHNoaWZ0RGF0ZSh2aWV3RGF0ZSwge3llYXI6IDF9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHttb250aHNDYWxlbmRhcn0pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ3llYXInKSB7XG4gICAgY29uc3QgeWVhcnNDYWxlbmRhck1vZGVsID0gbmV3IEFycmF5KGRpc3BsYXlNb250aHMpO1xuXG4gICAgZm9yIChsZXQgY2FsZW5kYXJJbmRleDogbnVtYmVyID0gMDsgY2FsZW5kYXJJbmRleCA8IGRpc3BsYXlNb250aHM7IGNhbGVuZGFySW5kZXgrKykge1xuICAgICAgeWVhcnNDYWxlbmRhck1vZGVsW2NhbGVuZGFySW5kZXhdID0gZm9ybWF0WWVhcnNDYWxlbmRhcih2aWV3RGF0ZSwgZ2V0Rm9ybWF0T3B0aW9ucyhzdGF0ZSksIHVuZGVmaW5lZCwgc3RhdGUuc2VsZWN0ZWREYXRlID8gc3RhdGUuc2VsZWN0ZWREYXRlIDogbmV3IERhdGUoKSk7XG4gICAgICB2aWV3RGF0ZSA9IHNoaWZ0RGF0ZSh2aWV3RGF0ZSwge3llYXI6IDE2fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7eWVhcnNDYWxlbmRhck1vZGVsfSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cbmZ1bmN0aW9uIGZsYWdSZWR1Y2VyKHN0YXRlOiBCc0RhdGVwaWNrZXJTdGF0ZSk6IEJzRGF0ZXBpY2tlclN0YXRlIHtcbiAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgY29uc3QgZGlzcGxheU1vbnRoczogbnVtYmVyID0gaXNEaXNwbGF5T25lTW9udGgoc3RhdGUudmlldy5kYXRlLCBzdGF0ZS5taW5EYXRlLCBzdGF0ZS5tYXhEYXRlKSA/IDEgOiBzdGF0ZS5kaXNwbGF5TW9udGhzO1xuICBpZiAoc3RhdGUuZm9ybWF0dGVkTW9udGhzICYmIHN0YXRlLnZpZXcubW9kZSA9PT0gJ2RheScpIHtcbiAgICBjb25zdCBmbGFnZ2VkTW9udGhzOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWxbXSA9IHN0YXRlLmZvcm1hdHRlZE1vbnRocy5tYXAoKGZvcm1hdHRlZE1vbnRoOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsIG1vbnRoSW5kZXg6IG51bWJlcikgPT5cbiAgICAgIGZsYWdEYXlzQ2FsZW5kYXIoZm9ybWF0dGVkTW9udGgsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWluRGF0ZTogc3RhdGUubWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogc3RhdGUubWF4RGF0ZSxcbiAgICAgICAgaG92ZXJlZERhdGU6IHN0YXRlLmhvdmVyZWREYXRlLFxuICAgICAgICBzZWxlY3RlZERhdGU6IHN0YXRlLnNlbGVjdGVkRGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSYW5nZTogc3RhdGUuc2VsZWN0ZWRSYW5nZSxcbiAgICAgICAgZGlzcGxheU1vbnRocyxcbiAgICAgICAgbW9udGhJbmRleFxuICAgICAgfSkpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7ZmxhZ2dlZE1vbnRoc30pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ21vbnRoJyAmJiBzdGF0ZS5tb250aHNDYWxlbmRhcikge1xuICAgIGNvbnN0IGZsYWdnZWRNb250aHNDYWxlbmRhcjogTW9udGhzQ2FsZW5kYXJWaWV3TW9kZWxbXSA9IHN0YXRlLm1vbnRoc0NhbGVuZGFyLm1hcCgoZm9ybWF0dGVkTW9udGg6IE1vbnRoc0NhbGVuZGFyVmlld01vZGVsLCBtb250aEluZGV4OiBudW1iZXIpID0+XG4gICAgICBmbGFnTW9udGhzQ2FsZW5kYXIoZm9ybWF0dGVkTW9udGgsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWluRGF0ZTogc3RhdGUubWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogc3RhdGUubWF4RGF0ZSxcbiAgICAgICAgaG92ZXJlZE1vbnRoOiBzdGF0ZS5ob3ZlcmVkTW9udGgsXG4gICAgICAgIHNlbGVjdGVkRGF0ZTogc3RhdGUuc2VsZWN0ZWREYXRlLFxuICAgICAgICBzZWxlY3RlZFJhbmdlOiBzdGF0ZS5zZWxlY3RlZFJhbmdlLFxuICAgICAgICBkaXNwbGF5TW9udGhzLFxuICAgICAgICBtb250aEluZGV4XG4gICAgICB9KSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtmbGFnZ2VkTW9udGhzQ2FsZW5kYXJ9KTtcbiAgfVxuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICd5ZWFyJyAmJiBzdGF0ZS55ZWFyc0NhbGVuZGFyTW9kZWwpIHtcbiAgICBjb25zdCB5ZWFyc0NhbGVuZGFyRmxhZ2dlZDogWWVhcnNDYWxlbmRhclZpZXdNb2RlbFtdID0gc3RhdGUueWVhcnNDYWxlbmRhck1vZGVsLm1hcCgoZm9ybWF0dGVkTW9udGg6IFllYXJzQ2FsZW5kYXJWaWV3TW9kZWwsIHllYXJJbmRleDogbnVtYmVyKSA9PlxuICAgICAgZmxhZ1llYXJzQ2FsZW5kYXIoZm9ybWF0dGVkTW9udGgsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWluRGF0ZTogc3RhdGUubWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogc3RhdGUubWF4RGF0ZSxcbiAgICAgICAgaG92ZXJlZFllYXI6IHN0YXRlLmhvdmVyZWRZZWFyLFxuICAgICAgICBzZWxlY3RlZERhdGU6IHN0YXRlLnNlbGVjdGVkRGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSYW5nZTogc3RhdGUuc2VsZWN0ZWRSYW5nZSxcbiAgICAgICAgZGlzcGxheU1vbnRocyxcbiAgICAgICAgeWVhckluZGV4XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHt5ZWFyc0NhbGVuZGFyRmxhZ2dlZH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5mdW5jdGlvbiBuYXZpZ2F0ZU9mZnNldFJlZHVjZXIoc3RhdGU6IEJzRGF0ZXBpY2tlclN0YXRlLCBhY3Rpb246IEFjdGlvbik6IEJzRGF0ZXBpY2tlclN0YXRlIHtcbiAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgY29uc3QgZGF0ZTogRGF0ZSB8IHVuZGVmaW5lZCA9IHNoaWZ0Vmlld0RhdGUoc3RhdGUsIGFjdGlvbik7XG4gIGlmICghZGF0ZSkgcmV0dXJuIHN0YXRlO1xuXG4gIGNvbnN0IG5ld1N0YXRlOiB7IHZpZXc6IEJzRGF0ZXBpY2tlclZpZXdTdGF0ZSB9ID0ge1xuICAgIHZpZXc6IHttb2RlOiBzdGF0ZS52aWV3Lm1vZGUsIGRhdGV9XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBuZXdTdGF0ZSk7XG59XG5cbmZ1bmN0aW9uIHNoaWZ0Vmlld0RhdGUoc3RhdGU6IEJzRGF0ZXBpY2tlclN0YXRlLCBhY3Rpb246IEFjdGlvbik6IERhdGUgfCB1bmRlZmluZWQge1xuICBpZiAoIXN0YXRlLnZpZXcpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ3llYXInICYmIHN0YXRlLm1pbk1vZGUgPT09ICd5ZWFyJykge1xuICAgIGNvbnN0IGluaXRpYWxEYXRlOiBEYXRlIHwgdW5kZWZpbmVkID0gZ2V0WWVhcnNDYWxlbmRhckluaXRpYWxEYXRlKHN0YXRlLCAwKTtcblxuICAgIGlmIChpbml0aWFsRGF0ZSkge1xuICAgICAgY29uc3QgbWlkZGxlRGF0ZSA9IHNoaWZ0RGF0ZShpbml0aWFsRGF0ZSwge3llYXI6IC1pbml0aWFsWWVhclNoaWZ0fSk7XG4gICAgICByZXR1cm4gc2hpZnREYXRlKG1pZGRsZURhdGUsIGFjdGlvbi5wYXlsb2FkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2hpZnREYXRlKHN0YXJ0T2Yoc3RhdGUudmlldy5kYXRlLCAnbW9udGgnKSwgYWN0aW9uLnBheWxvYWQpO1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtYXRPcHRpb25zKHN0YXRlOiBCc0RhdGVwaWNrZXJTdGF0ZSk6IERhdGVwaWNrZXJGb3JtYXRPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBsb2NhbGU6IHN0YXRlLmxvY2FsZSxcblxuICAgIG1vbnRoVGl0bGU6IHN0YXRlLm1vbnRoVGl0bGUsXG4gICAgeWVhclRpdGxlOiBzdGF0ZS55ZWFyVGl0bGUsXG5cbiAgICBkYXlMYWJlbDogc3RhdGUuZGF5TGFiZWwsXG4gICAgbW9udGhMYWJlbDogc3RhdGUubW9udGhMYWJlbCxcbiAgICB5ZWFyTGFiZWw6IHN0YXRlLnllYXJMYWJlbFxuICB9O1xufVxuXG4vKipcbiAqIGlmIHZpZXcgZGF0ZSBpcyBwcm92aWRlZCAoYnNWYWx1ZXxuZ01vZGVsKSBpdCBzaG91bGQgYmUgc2hvd25cbiAqIGlmIHZpZXcgZGF0ZSBpcyBub3QgcHJvdmlkZXI6XG4gKiBpZiBtaW5EYXRlPmN1cnJlbnREYXRlIChkZWZhdWx0IHZpZXcgdmFsdWUpLCBzaG93IG1pbkRhdGVcbiAqIGlmIG1heERhdGU8Y3VycmVudERhdGUoZGVmYXVsdCB2aWV3IHZhbHVlKSBzaG93IG1heERhdGVcbiAqL1xuZnVuY3Rpb24gZ2V0Vmlld0RhdGUodmlld0RhdGU6IERhdGUgfCBEYXRlW10sIG1pbkRhdGU/OiBEYXRlLCBtYXhEYXRlPzogRGF0ZSk6IERhdGUge1xuICBjb25zdCBfZGF0ZTogRGF0ZSA9IEFycmF5LmlzQXJyYXkodmlld0RhdGUpID8gdmlld0RhdGVbMF0gOiB2aWV3RGF0ZTtcblxuICBpZiAobWluRGF0ZSAmJiBpc0FmdGVyKG1pbkRhdGUsIF9kYXRlLCAnZGF5JykpIHJldHVybiBtaW5EYXRlO1xuICBpZiAobWF4RGF0ZSAmJiBpc0JlZm9yZShtYXhEYXRlLCBfZGF0ZSwgJ2RheScpKSByZXR1cm4gbWF4RGF0ZTtcblxuICByZXR1cm4gX2RhdGU7XG59XG5cbmZ1bmN0aW9uIGlzRGlzcGxheU9uZU1vbnRoKHZpZXdEYXRlOiBEYXRlLCBtaW5EYXRlPzogRGF0ZSwgbWF4RGF0ZT86IERhdGUpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG1heERhdGUgJiYgaXNTYW1lKG1heERhdGUsIHZpZXdEYXRlLCAnZGF5JykpIHJldHVybiB0cnVlO1xuXG4gIHJldHVybiBtaW5EYXRlICYmIG1heERhdGUgJiYgbWluRGF0ZS5nZXRNb250aCgpID09PSBtYXhEYXRlLmdldE1vbnRoKCk7XG59XG4iXX0=
|