mis-crystal-design-system 2.3.18 → 2.3.21
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/mis-crystal-design-system-datepicker.umd.js +13916 -0
- package/bundles/mis-crystal-design-system-datepicker.umd.js.map +1 -0
- package/bundles/mis-crystal-design-system-datepicker.umd.min.js +68 -0
- package/bundles/mis-crystal-design-system-datepicker.umd.min.js.map +1 -0
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.js +13 -13
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.js.map +1 -1
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js +2 -2
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js.map +1 -1
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js +10 -1
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js.map +1 -1
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js +2 -2
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js.map +1 -1
- package/datepicker/base/bs-datepicker-container.d.ts +44 -0
- package/datepicker/bs-datepicker-inline.component.d.ts +61 -0
- package/datepicker/bs-datepicker-inline.config.d.ts +3 -0
- package/datepicker/bs-datepicker-input.directive.d.ts +30 -0
- package/datepicker/bs-datepicker.component.d.ts +123 -0
- package/datepicker/bs-datepicker.config.d.ts +140 -0
- package/datepicker/bs-datepicker.module.d.ts +4 -0
- package/datepicker/bs-daterangepicker-inline.component.d.ts +61 -0
- package/datepicker/bs-daterangepicker-inline.config.d.ts +6 -0
- package/datepicker/bs-daterangepicker-input.directive.d.ts +30 -0
- package/datepicker/bs-daterangepicker.component.d.ts +115 -0
- package/datepicker/bs-daterangepicker.config.d.ts +4 -0
- package/datepicker/bs-locale.service.d.ts +10 -0
- package/datepicker/date-formatter.d.ts +3 -0
- package/datepicker/datepicker-animations.d.ts +3 -0
- package/datepicker/datepicker-inner.component.d.ts +75 -0
- package/datepicker/datepicker.component.d.ts +78 -0
- package/datepicker/datepicker.config.d.ts +19 -0
- package/datepicker/datepicker.module.d.ts +4 -0
- package/datepicker/daypicker.component.d.ts +14 -0
- package/datepicker/engine/calc-days-calendar.d.ts +2 -0
- package/datepicker/engine/flag-days-calendar.d.ts +17 -0
- package/datepicker/engine/flag-months-calendar.d.ts +12 -0
- package/datepicker/engine/flag-years-calendar.d.ts +12 -0
- package/datepicker/engine/format-days-calendar.d.ts +4 -0
- package/datepicker/engine/format-months-calendar.d.ts +2 -0
- package/datepicker/engine/format-years-calendar.d.ts +4 -0
- package/datepicker/engine/view-mode.d.ts +2 -0
- package/datepicker/index.d.ts +1 -0
- package/datepicker/mis-crystal-design-system-datepicker.d.ts +24 -0
- package/datepicker/mis-crystal-design-system-datepicker.metadata.json +1 -0
- package/datepicker/models/index.d.ts +102 -0
- package/datepicker/monthpicker.component.d.ts +11 -0
- package/datepicker/package.json +11 -0
- package/datepicker/public_api.d.ts +26 -0
- package/datepicker/reducer/_defaults.d.ts +2 -0
- package/datepicker/reducer/bs-datepicker.actions.d.ts +43 -0
- package/datepicker/reducer/bs-datepicker.effects.d.ts +38 -0
- package/datepicker/reducer/bs-datepicker.reducer.d.ts +3 -0
- package/datepicker/reducer/bs-datepicker.state.d.ts +43 -0
- package/datepicker/reducer/bs-datepicker.store.d.ts +5 -0
- package/datepicker/sub-components/chronos/create/check-overflow.d.ts +2 -0
- package/datepicker/sub-components/chronos/create/clone.d.ts +1 -0
- package/datepicker/sub-components/chronos/create/date-from-array.d.ts +2 -0
- package/datepicker/sub-components/chronos/create/from-anything.d.ts +4 -0
- package/datepicker/sub-components/chronos/create/from-array.d.ts +2 -0
- package/datepicker/sub-components/chronos/create/from-object.d.ts +2 -0
- package/datepicker/sub-components/chronos/create/from-string-and-array.d.ts +2 -0
- package/datepicker/sub-components/chronos/create/from-string-and-format.d.ts +4 -0
- package/datepicker/sub-components/chronos/create/from-string.d.ts +4 -0
- package/datepicker/sub-components/chronos/create/local.d.ts +3 -0
- package/datepicker/sub-components/chronos/create/parsing-flags.d.ts +2 -0
- package/datepicker/sub-components/chronos/create/parsing.types.d.ts +64 -0
- package/datepicker/sub-components/chronos/create/valid.d.ts +6 -0
- package/datepicker/sub-components/chronos/duration/bubble.d.ts +4 -0
- package/datepicker/sub-components/chronos/duration/constructor.d.ts +21 -0
- package/datepicker/sub-components/chronos/duration/create.d.ts +8 -0
- package/datepicker/sub-components/chronos/duration/humanize.d.ts +5 -0
- package/datepicker/sub-components/chronos/duration/valid.d.ts +2 -0
- package/datepicker/sub-components/chronos/format/format.d.ts +11 -0
- package/datepicker/sub-components/chronos/format.d.ts +5 -0
- package/datepicker/sub-components/chronos/i18n/ar.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/bg.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/ca.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/cs.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/da.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/de.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/en-gb.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/es-do.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/es-us.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/es.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/et.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/fi.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/fr.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/gl.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/he.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/hi.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/hr.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/hu.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/id.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/it.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/ja.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/ka.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/kk.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/ko.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/lt.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/lv.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/mn.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/nb.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/nl-be.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/nl.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/pl.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/pt-br.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/ro.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/ru.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/sk.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/sl.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/sq.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/sv.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/th-be.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/th.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/tr.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/uk.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/vi.d.ts +2 -0
- package/datepicker/sub-components/chronos/i18n/zh-cn.d.ts +2 -0
- package/datepicker/sub-components/chronos/index.d.ts +1 -0
- package/datepicker/sub-components/chronos/locale/calendar.d.ts +8 -0
- package/datepicker/sub-components/chronos/locale/locale.class.d.ts +143 -0
- package/datepicker/sub-components/chronos/locale/locale.defaults.d.ts +11 -0
- package/datepicker/sub-components/chronos/locale/locales.d.ts +7 -0
- package/datepicker/sub-components/chronos/moment/add-subtract.d.ts +5 -0
- package/datepicker/sub-components/chronos/moment/calendar.d.ts +15 -0
- package/datepicker/sub-components/chronos/moment/diff.d.ts +3 -0
- package/datepicker/sub-components/chronos/moment/min-max.d.ts +2 -0
- package/datepicker/sub-components/chronos/parse/regex.d.ts +22 -0
- package/datepicker/sub-components/chronos/parse/token.d.ts +5 -0
- package/datepicker/sub-components/chronos/public_api.d.ts +57 -0
- package/datepicker/sub-components/chronos/test/chain.d.ts +214 -0
- package/datepicker/sub-components/chronos/types.d.ts +36 -0
- package/datepicker/sub-components/chronos/units/aliases.d.ts +7 -0
- package/datepicker/sub-components/chronos/units/constants.d.ts +9 -0
- package/datepicker/sub-components/chronos/units/day-of-month.d.ts +1 -0
- package/datepicker/sub-components/chronos/units/day-of-week.d.ts +20 -0
- package/datepicker/sub-components/chronos/units/day-of-year.d.ts +3 -0
- package/datepicker/sub-components/chronos/units/hour.d.ts +1 -0
- package/datepicker/sub-components/chronos/units/index.d.ts +18 -0
- package/datepicker/sub-components/chronos/units/millisecond.d.ts +1 -0
- package/datepicker/sub-components/chronos/units/minute.d.ts +1 -0
- package/datepicker/sub-components/chronos/units/month.d.ts +2 -0
- package/datepicker/sub-components/chronos/units/offset.d.ts +10 -0
- package/datepicker/sub-components/chronos/units/priorities.d.ts +1 -0
- package/datepicker/sub-components/chronos/units/quarter.d.ts +3 -0
- package/datepicker/sub-components/chronos/units/second.d.ts +1 -0
- package/datepicker/sub-components/chronos/units/timestamp.d.ts +1 -0
- package/datepicker/sub-components/chronos/units/timezone.d.ts +3 -0
- package/datepicker/sub-components/chronos/units/week-calendar-utils.d.ts +9 -0
- package/datepicker/sub-components/chronos/units/week-year.d.ts +8 -0
- package/datepicker/sub-components/chronos/units/week.d.ts +6 -0
- package/datepicker/sub-components/chronos/units/year.d.ts +4 -0
- package/datepicker/sub-components/chronos/utils/abs-ceil.d.ts +1 -0
- package/datepicker/sub-components/chronos/utils/abs-round.d.ts +1 -0
- package/datepicker/sub-components/chronos/utils/compare-arrays.d.ts +1 -0
- package/datepicker/sub-components/chronos/utils/date-compare.d.ts +9 -0
- package/datepicker/sub-components/chronos/utils/date-getters.d.ts +18 -0
- package/datepicker/sub-components/chronos/utils/date-setters.d.ts +12 -0
- package/datepicker/sub-components/chronos/utils/defaults.d.ts +1 -0
- package/datepicker/sub-components/chronos/utils/start-end-of.d.ts +3 -0
- package/datepicker/sub-components/chronos/utils/type-checks.d.ts +12 -0
- package/datepicker/sub-components/chronos/utils/zero-fill.d.ts +1 -0
- package/datepicker/sub-components/chronos/utils.d.ts +2 -0
- package/datepicker/sub-components/component-loader/bs-component-ref.class.d.ts +5 -0
- package/datepicker/sub-components/component-loader/component-loader.class.d.ts +75 -0
- package/datepicker/sub-components/component-loader/component-loader.factory.d.ts +18 -0
- package/datepicker/sub-components/component-loader/content-ref.class.d.ts +7 -0
- package/datepicker/sub-components/component-loader/index.d.ts +1 -0
- package/datepicker/sub-components/component-loader/listen-options.model.d.ts +11 -0
- package/datepicker/sub-components/component-loader/public_api.d.ts +4 -0
- package/datepicker/sub-components/mini-ngrx/index.d.ts +1 -0
- package/datepicker/sub-components/mini-ngrx/public_api.d.ts +7 -0
- package/datepicker/sub-components/mini-ngrx/state.class.d.ts +8 -0
- package/datepicker/sub-components/mini-ngrx/store.class.d.ts +16 -0
- package/datepicker/sub-components/positioning/index.d.ts +1 -0
- package/datepicker/sub-components/positioning/models/index.d.ts +41 -0
- package/datepicker/sub-components/positioning/modifiers/arrow.d.ts +2 -0
- package/datepicker/sub-components/positioning/modifiers/flip.d.ts +2 -0
- package/datepicker/sub-components/positioning/modifiers/index.d.ts +5 -0
- package/datepicker/sub-components/positioning/modifiers/initData.d.ts +2 -0
- package/datepicker/sub-components/positioning/modifiers/preventOverflow.d.ts +2 -0
- package/datepicker/sub-components/positioning/modifiers/shift.d.ts +2 -0
- package/datepicker/sub-components/positioning/ng-positioning.d.ts +8 -0
- package/datepicker/sub-components/positioning/positioning.service.d.ts +45 -0
- package/datepicker/sub-components/positioning/public_api.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/computeAutoPlacement.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/findCommonOffsetParent.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/getBordersSize.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getBoundaries.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/getBoundingClientRect.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/getClientRect.d.ts +5 -0
- package/datepicker/sub-components/positioning/utils/getFixedPositionOffsetParent.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getOffsetParent.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/getOffsets.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/getOppositePlacement.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getOppositeVariation.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getOuterSizes.d.ts +7 -0
- package/datepicker/sub-components/positioning/utils/getParentNode.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getReferenceOffsets.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/getRoot.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getScroll.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getScrollParent.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/getStyleComputedProperty.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/getTargetOffsets.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/getWindowSizes.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/includeScroll.d.ts +2 -0
- package/datepicker/sub-components/positioning/utils/index.d.ts +23 -0
- package/datepicker/sub-components/positioning/utils/isBrowser.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/isFixed.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/isIE.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/isModifierEnabled.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/isNumeric.d.ts +4 -0
- package/datepicker/sub-components/positioning/utils/isOffsetContainer.d.ts +1 -0
- package/datepicker/sub-components/positioning/utils/setStyles.d.ts +5 -0
- package/datepicker/sub-components/positioning/utils/updateContainerClass.d.ts +6 -0
- package/datepicker/sub-components/tooltip/index.d.ts +1 -0
- package/datepicker/sub-components/tooltip/public_api.d.ts +4 -0
- package/datepicker/sub-components/tooltip/tooltip-container.component.d.ts +14 -0
- package/datepicker/sub-components/tooltip/tooltip.config.d.ts +13 -0
- package/datepicker/sub-components/tooltip/tooltip.directive.d.ts +109 -0
- package/datepicker/sub-components/tooltip/tooltip.module.d.ts +4 -0
- package/datepicker/sub-components/utils/decorators.d.ts +1 -0
- package/datepicker/sub-components/utils/facade/browser.d.ts +23 -0
- package/datepicker/sub-components/utils/index.d.ts +1 -0
- package/datepicker/sub-components/utils/linked-list.class.d.ts +26 -0
- package/datepicker/sub-components/utils/public_api.d.ts +10 -0
- package/datepicker/sub-components/utils/theme-provider.d.ts +2 -0
- package/datepicker/sub-components/utils/trigger.class.d.ts +6 -0
- package/datepicker/sub-components/utils/triggers.d.ts +18 -0
- package/datepicker/sub-components/utils/utils.class.d.ts +4 -0
- package/datepicker/sub-components/utils/warn-once.d.ts +1 -0
- package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +2 -0
- package/datepicker/themes/bs/bs-current-date-view.component.d.ts +3 -0
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +14 -0
- package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +33 -0
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +11 -0
- package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +10 -0
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +9 -0
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +37 -0
- package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +10 -0
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +23 -0
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +13 -0
- package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +5 -0
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +13 -0
- package/datepicker/utils/bs-calendar-utils.d.ts +10 -0
- package/datepicker/utils/matrix-utils.d.ts +9 -0
- package/datepicker/yearpicker.component.d.ts +11 -0
- package/datepicker_v2/mis-crystal-design-system-datepicker_v2.metadata.json +1 -1
- package/esm2015/datepicker/base/bs-datepicker-container.js +47 -0
- package/esm2015/datepicker/bs-datepicker-inline.component.js +132 -0
- package/esm2015/datepicker/bs-datepicker-inline.config.js +12 -0
- package/esm2015/datepicker/bs-datepicker-input.directive.js +159 -0
- package/esm2015/datepicker/bs-datepicker.component.js +238 -0
- package/esm2015/datepicker/bs-datepicker.config.js +85 -0
- package/esm2015/datepicker/bs-datepicker.module.js +101 -0
- package/esm2015/datepicker/bs-daterangepicker-inline.component.js +129 -0
- package/esm2015/datepicker/bs-daterangepicker-inline.config.js +19 -0
- package/esm2015/datepicker/bs-daterangepicker-input.directive.js +191 -0
- package/esm2015/datepicker/bs-daterangepicker.component.js +227 -0
- package/esm2015/datepicker/bs-daterangepicker.config.js +17 -0
- package/esm2015/datepicker/bs-locale.service.js +28 -0
- package/esm2015/datepicker/date-formatter.js +7 -0
- package/esm2015/datepicker/datepicker-animations.js +16 -0
- package/esm2015/datepicker/datepicker-inner.component.js +282 -0
- package/esm2015/datepicker/datepicker.component.js +140 -0
- package/esm2015/datepicker/datepicker.config.js +30 -0
- package/esm2015/datepicker/datepicker.module.js +35 -0
- package/esm2015/datepicker/daypicker.component.js +174 -0
- package/esm2015/datepicker/engine/calc-days-calendar.js +19 -0
- package/esm2015/datepicker/engine/flag-days-calendar.js +91 -0
- package/esm2015/datepicker/engine/flag-months-calendar.js +41 -0
- package/esm2015/datepicker/engine/flag-years-calendar.js +39 -0
- package/esm2015/datepicker/engine/format-days-calendar.js +29 -0
- package/esm2015/datepicker/engine/format-months-calendar.js +19 -0
- package/esm2015/datepicker/engine/format-years-calendar.js +35 -0
- package/esm2015/datepicker/engine/view-mode.js +4 -0
- package/esm2015/datepicker/index.js +2 -0
- package/esm2015/datepicker/mis-crystal-design-system-datepicker.js +25 -0
- package/esm2015/datepicker/models/index.js +9 -0
- package/esm2015/datepicker/monthpicker.component.js +87 -0
- package/esm2015/datepicker/public_api.js +26 -0
- package/esm2015/datepicker/reducer/_defaults.js +5 -0
- package/esm2015/datepicker/reducer/bs-datepicker.actions.js +132 -0
- package/esm2015/datepicker/reducer/bs-datepicker.effects.js +170 -0
- package/esm2015/datepicker/reducer/bs-datepicker.reducer.js +302 -0
- package/esm2015/datepicker/reducer/bs-datepicker.state.js +12 -0
- package/esm2015/datepicker/reducer/bs-datepicker.store.js +19 -0
- package/esm2015/datepicker/sub-components/chronos/create/check-overflow.js +30 -0
- package/esm2015/datepicker/sub-components/chronos/create/clone.js +6 -0
- package/esm2015/datepicker/sub-components/chronos/create/date-from-array.js +17 -0
- package/esm2015/datepicker/sub-components/chronos/create/from-anything.js +107 -0
- package/esm2015/datepicker/sub-components/chronos/create/from-array.js +136 -0
- package/esm2015/datepicker/sub-components/chronos/create/from-object.js +17 -0
- package/esm2015/datepicker/sub-components/chronos/create/from-string-and-array.js +38 -0
- package/esm2015/datepicker/sub-components/chronos/create/from-string-and-format.js +106 -0
- package/esm2015/datepicker/sub-components/chronos/create/from-string.js +227 -0
- package/esm2015/datepicker/sub-components/chronos/create/local.js +16 -0
- package/esm2015/datepicker/sub-components/chronos/create/parsing-flags.js +26 -0
- package/esm2015/datepicker/sub-components/chronos/create/parsing.types.js +2 -0
- package/esm2015/datepicker/sub-components/chronos/create/valid.js +42 -0
- package/esm2015/datepicker/sub-components/chronos/duration/bubble.js +47 -0
- package/esm2015/datepicker/sub-components/chronos/duration/constructor.js +130 -0
- package/esm2015/datepicker/sub-components/chronos/duration/create.js +113 -0
- package/esm2015/datepicker/sub-components/chronos/duration/humanize.js +80 -0
- package/esm2015/datepicker/sub-components/chronos/duration/valid.js +45 -0
- package/esm2015/datepicker/sub-components/chronos/format/format.js +51 -0
- package/esm2015/datepicker/sub-components/chronos/format.js +46 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/ar.js +131 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/bg.js +96 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/ca.js +91 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/cs.js +181 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/da.js +50 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/de.js +72 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/en-gb.js +61 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/es-do.js +85 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/es-us.js +79 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/es.js +84 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/et.js +75 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/fi.js +100 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/fr.js +76 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/gl.js +84 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/he.js +98 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/hi.js +124 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/hr.js +62 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/hu.js +104 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/id.js +83 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/it.js +65 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/ja.js +75 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/ka.js +87 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/kk.js +76 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/ko.js +77 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/lt.js +116 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/lv.js +56 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/mn.js +99 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/nb.js +53 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/nl-be.js +81 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/nl.js +80 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/pl.js +126 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/pt-br.js +56 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/ro.js +66 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/ru.js +181 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/sk.js +157 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/sl.js +184 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/sq.js +54 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/sv.js +63 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/th-be.js +74 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/th.js +59 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/tr.js +82 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/uk.js +147 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/vi.js +74 -0
- package/esm2015/datepicker/sub-components/chronos/i18n/zh-cn.js +114 -0
- package/esm2015/datepicker/sub-components/chronos/index.js +2 -0
- package/esm2015/datepicker/sub-components/chronos/locale/calendar.js +9 -0
- package/esm2015/datepicker/sub-components/chronos/locale/locale.class.js +532 -0
- package/esm2015/datepicker/sub-components/chronos/locale/locale.defaults.js +40 -0
- package/esm2015/datepicker/sub-components/chronos/locale/locales.js +229 -0
- package/esm2015/datepicker/sub-components/chronos/moment/add-subtract.js +35 -0
- package/esm2015/datepicker/sub-components/chronos/moment/calendar.js +41 -0
- package/esm2015/datepicker/sub-components/chronos/moment/diff.js +70 -0
- package/esm2015/datepicker/sub-components/chronos/moment/min-max.js +38 -0
- package/esm2015/datepicker/sub-components/chronos/parse/regex.js +49 -0
- package/esm2015/datepicker/sub-components/chronos/parse/token.js +32 -0
- package/esm2015/datepicker/sub-components/chronos/public_api.js +56 -0
- package/esm2015/datepicker/sub-components/chronos/test/chain.js +711 -0
- package/esm2015/datepicker/sub-components/chronos/types.js +2 -0
- package/esm2015/datepicker/sub-components/chronos/units/aliases.js +35 -0
- package/esm2015/datepicker/sub-components/chronos/units/constants.js +11 -0
- package/esm2015/datepicker/sub-components/chronos/units/day-of-month.js +31 -0
- package/esm2015/datepicker/sub-components/chronos/units/day-of-week.js +129 -0
- package/esm2015/datepicker/sub-components/chronos/units/day-of-year.js +37 -0
- package/esm2015/datepicker/sub-components/chronos/units/hour.js +127 -0
- package/esm2015/datepicker/sub-components/chronos/units/index.js +19 -0
- package/esm2015/datepicker/sub-components/chronos/units/millisecond.js +60 -0
- package/esm2015/datepicker/sub-components/chronos/units/minute.js +23 -0
- package/esm2015/datepicker/sub-components/chronos/units/month.js +63 -0
- package/esm2015/datepicker/sub-components/chronos/units/offset.js +210 -0
- package/esm2015/datepicker/sub-components/chronos/units/priorities.js +21 -0
- package/esm2015/datepicker/sub-components/chronos/units/quarter.js +39 -0
- package/esm2015/datepicker/sub-components/chronos/units/second.js +23 -0
- package/esm2015/datepicker/sub-components/chronos/units/timestamp.js +28 -0
- package/esm2015/datepicker/sub-components/chronos/units/timezone.js +19 -0
- package/esm2015/datepicker/sub-components/chronos/units/week-calendar-utils.js +70 -0
- package/esm2015/datepicker/sub-components/chronos/units/week-year.js +101 -0
- package/esm2015/datepicker/sub-components/chronos/units/week.js +58 -0
- package/esm2015/datepicker/sub-components/chronos/units/year.js +60 -0
- package/esm2015/datepicker/sub-components/chronos/utils/abs-ceil.js +4 -0
- package/esm2015/datepicker/sub-components/chronos/utils/abs-round.js +4 -0
- package/esm2015/datepicker/sub-components/chronos/utils/compare-arrays.js +16 -0
- package/esm2015/datepicker/sub-components/chronos/utils/date-compare.js +55 -0
- package/esm2015/datepicker/sub-components/chronos/utils/date-getters.js +67 -0
- package/esm2015/datepicker/sub-components/chronos/utils/date-setters.js +75 -0
- package/esm2015/datepicker/sub-components/chronos/utils/defaults.js +11 -0
- package/esm2015/datepicker/sub-components/chronos/utils/start-end-of.js +57 -0
- package/esm2015/datepicker/sub-components/chronos/utils/type-checks.js +56 -0
- package/esm2015/datepicker/sub-components/chronos/utils/zero-fill.js +10 -0
- package/esm2015/datepicker/sub-components/chronos/utils.js +7 -0
- package/esm2015/datepicker/sub-components/component-loader/bs-component-ref.class.js +3 -0
- package/esm2015/datepicker/sub-components/component-loader/component-loader.class.js +272 -0
- package/esm2015/datepicker/sub-components/component-loader/component-loader.factory.js +32 -0
- package/esm2015/datepicker/sub-components/component-loader/content-ref.class.js +12 -0
- package/esm2015/datepicker/sub-components/component-loader/index.js +2 -0
- package/esm2015/datepicker/sub-components/component-loader/listen-options.model.js +2 -0
- package/esm2015/datepicker/sub-components/component-loader/public_api.js +5 -0
- package/esm2015/datepicker/sub-components/mini-ngrx/index.js +2 -0
- package/esm2015/datepicker/sub-components/mini-ngrx/public_api.js +3 -0
- package/esm2015/datepicker/sub-components/mini-ngrx/state.class.js +16 -0
- package/esm2015/datepicker/sub-components/mini-ngrx/store.class.js +43 -0
- package/esm2015/datepicker/sub-components/positioning/index.js +2 -0
- package/esm2015/datepicker/sub-components/positioning/models/index.js +2 -0
- package/esm2015/datepicker/sub-components/positioning/modifiers/arrow.js +56 -0
- package/esm2015/datepicker/sub-components/positioning/modifiers/flip.js +60 -0
- package/esm2015/datepicker/sub-components/positioning/modifiers/index.js +6 -0
- package/esm2015/datepicker/sub-components/positioning/modifiers/initData.js +42 -0
- package/esm2015/datepicker/sub-components/positioning/modifiers/preventOverflow.js +56 -0
- package/esm2015/datepicker/sub-components/positioning/modifiers/shift.js +22 -0
- package/esm2015/datepicker/sub-components/positioning/ng-positioning.js +30 -0
- package/esm2015/datepicker/sub-components/positioning/positioning.service.js +71 -0
- package/esm2015/datepicker/sub-components/positioning/public_api.js +3 -0
- package/esm2015/datepicker/sub-components/positioning/utils/computeAutoPlacement.js +53 -0
- package/esm2015/datepicker/sub-components/positioning/utils/findCommonOffsetParent.js +40 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getBordersSize.js +10 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getBoundaries.js +56 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getBoundingClientRect.js +55 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getClientRect.js +4 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getFixedPositionOffsetParent.js +17 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getOffsetParent.js +32 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getOffsetRectRelativeToArbitraryNode.js +51 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getOffsets.js +11 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getOppositePlacement.js +8 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getOppositeVariation.js +13 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getOuterSizes.js +14 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getParentNode.js +10 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getReferenceOffsets.js +13 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getRoot.js +10 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getScroll.js +14 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getScrollParent.js +26 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getStyleComputedProperty.js +13 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getTargetOffsets.js +30 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +19 -0
- package/esm2015/datepicker/sub-components/positioning/utils/getWindowSizes.js +18 -0
- package/esm2015/datepicker/sub-components/positioning/utils/includeScroll.js +15 -0
- package/esm2015/datepicker/sub-components/positioning/utils/index.js +24 -0
- package/esm2015/datepicker/sub-components/positioning/utils/isBrowser.js +2 -0
- package/esm2015/datepicker/sub-components/positioning/utils/isFixed.js +16 -0
- package/esm2015/datepicker/sub-components/positioning/utils/isIE.js +16 -0
- package/esm2015/datepicker/sub-components/positioning/utils/isModifierEnabled.js +10 -0
- package/esm2015/datepicker/sub-components/positioning/utils/isNumeric.js +7 -0
- package/esm2015/datepicker/sub-components/positioning/utils/isOffsetContainer.js +9 -0
- package/esm2015/datepicker/sub-components/positioning/utils/setStyles.js +17 -0
- package/esm2015/datepicker/sub-components/positioning/utils/updateContainerClass.js +22 -0
- package/esm2015/datepicker/sub-components/tooltip/index.js +2 -0
- package/esm2015/datepicker/sub-components/tooltip/public_api.js +5 -0
- package/esm2015/datepicker/sub-components/tooltip/tooltip-container.component.js +63 -0
- package/esm2015/datepicker/sub-components/tooltip/tooltip.config.js +22 -0
- package/esm2015/datepicker/sub-components/tooltip/tooltip.directive.js +282 -0
- package/esm2015/datepicker/sub-components/tooltip/tooltip.module.js +23 -0
- package/esm2015/datepicker/sub-components/utils/decorators.js +25 -0
- package/esm2015/datepicker/sub-components/utils/facade/browser.js +24 -0
- package/esm2015/datepicker/sub-components/utils/index.js +2 -0
- package/esm2015/datepicker/sub-components/utils/linked-list.class.js +240 -0
- package/esm2015/datepicker/sub-components/utils/public_api.js +11 -0
- package/esm2015/datepicker/sub-components/utils/theme-provider.js +35 -0
- package/esm2015/datepicker/sub-components/utils/trigger.class.js +10 -0
- package/esm2015/datepicker/sub-components/utils/triggers.js +110 -0
- package/esm2015/datepicker/sub-components/utils/utils.class.js +21 -0
- package/esm2015/datepicker/sub-components/utils/warn-once.js +12 -0
- package/esm2015/datepicker/themes/bs/bs-calendar-layout.component.js +25 -0
- package/esm2015/datepicker/themes/bs/bs-current-date-view.component.js +13 -0
- package/esm2015/datepicker/themes/bs/bs-custom-dates-view.component.js +44 -0
- package/esm2015/datepicker/themes/bs/bs-datepicker-container.component.js +152 -0
- package/esm2015/datepicker/themes/bs/bs-datepicker-day-decorator.directive.js +47 -0
- package/esm2015/datepicker/themes/bs/bs-datepicker-inline-container.component.js +36 -0
- package/esm2015/datepicker/themes/bs/bs-datepicker-navigation-view.component.js +63 -0
- package/esm2015/datepicker/themes/bs/bs-daterangepicker-container.component.js +195 -0
- package/esm2015/datepicker/themes/bs/bs-daterangepicker-inline-container.component.js +36 -0
- package/esm2015/datepicker/themes/bs/bs-days-calendar-view.component.js +162 -0
- package/esm2015/datepicker/themes/bs/bs-months-calendar-view.component.js +60 -0
- package/esm2015/datepicker/themes/bs/bs-timepicker-view.component.js +34 -0
- package/esm2015/datepicker/themes/bs/bs-years-calendar-view.component.js +61 -0
- package/esm2015/datepicker/utils/bs-calendar-utils.js +43 -0
- package/esm2015/datepicker/utils/matrix-utils.js +14 -0
- package/esm2015/datepicker/yearpicker.component.js +90 -0
- package/esm2015/datepicker_v2/tz-dp-container/tz-dp-container.component.js +13 -13
- package/esm2015/multi-select-dropdown/multi-select-dropdown.component.js +10 -2
- package/fesm2015/mis-crystal-design-system-datepicker.js +13512 -0
- package/fesm2015/mis-crystal-design-system-datepicker.js.map +1 -0
- package/fesm2015/mis-crystal-design-system-datepicker_v2.js +12 -12
- package/fesm2015/mis-crystal-design-system-datepicker_v2.js.map +1 -1
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js +9 -1
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js.map +1 -1
- package/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.metadata.json +1 -1
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Renderer2 } from '@angular/core';
|
|
2
|
+
import { take } from 'rxjs/operators';
|
|
3
|
+
import { getFullYear, getMonth } from '../../sub-components/chronos';
|
|
4
|
+
import { PositioningService } from '../../sub-components/positioning';
|
|
5
|
+
import { datepickerAnimation } from '../../datepicker-animations';
|
|
6
|
+
import { MisDatePickerAbstractComponent } from '../../base/bs-datepicker-container';
|
|
7
|
+
import { MisDatePickerConfig } from '../../bs-datepicker.config';
|
|
8
|
+
import { MisDatePickerActions } from '../../reducer/bs-datepicker.actions';
|
|
9
|
+
import { MisDatePickerEffects } from '../../reducer/bs-datepicker.effects';
|
|
10
|
+
import { MisDatePickerStore } from '../../reducer/bs-datepicker.store';
|
|
11
|
+
export class MisDatePickerContainerComponent extends MisDatePickerAbstractComponent {
|
|
12
|
+
constructor(_renderer, _config, _store, _element, _actions, _effects, _positionService) {
|
|
13
|
+
super();
|
|
14
|
+
this._renderer = _renderer;
|
|
15
|
+
this._config = _config;
|
|
16
|
+
this._store = _store;
|
|
17
|
+
this._element = _element;
|
|
18
|
+
this._actions = _actions;
|
|
19
|
+
this._positionService = _positionService;
|
|
20
|
+
this.valueChange = new EventEmitter();
|
|
21
|
+
this.animationState = 'void';
|
|
22
|
+
this._subs = [];
|
|
23
|
+
this._effects = _effects;
|
|
24
|
+
_renderer.setStyle(_element.nativeElement, 'display', 'block');
|
|
25
|
+
_renderer.setStyle(_element.nativeElement, 'position', 'absolute');
|
|
26
|
+
}
|
|
27
|
+
set value(value) {
|
|
28
|
+
this._effects.setValue(value);
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this._positionService.setOptions({
|
|
32
|
+
modifiers: { flip: { enabled: this._config.adaptivePosition } },
|
|
33
|
+
allowedPositions: ['top', 'bottom']
|
|
34
|
+
});
|
|
35
|
+
this._positionService.event$
|
|
36
|
+
.pipe(take(1))
|
|
37
|
+
.subscribe(() => {
|
|
38
|
+
this._positionService.disable();
|
|
39
|
+
if (this._config.isAnimated) {
|
|
40
|
+
this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.animationState = 'unanimated';
|
|
44
|
+
});
|
|
45
|
+
this.isOtherMonthsActive = this._config.selectFromOtherMonth;
|
|
46
|
+
this.containerClass = this._config.containerClass;
|
|
47
|
+
this.showTodayBtn = this._config.showTodayButton;
|
|
48
|
+
this.todayBtnLbl = this._config.todayButtonLabel;
|
|
49
|
+
this.todayPos = this._config.todayPosition;
|
|
50
|
+
this.showClearBtn = this._config.showClearButton;
|
|
51
|
+
this.clearBtnLbl = this._config.clearButtonLabel;
|
|
52
|
+
this.clearPos = this._config.clearPosition;
|
|
53
|
+
this.customRangeBtnLbl = this._config.customRangeButtonLabel;
|
|
54
|
+
this._effects
|
|
55
|
+
.init(this._store)
|
|
56
|
+
// intial state options
|
|
57
|
+
.setOptions(this._config)
|
|
58
|
+
// data binding view --> model
|
|
59
|
+
.setBindings(this)
|
|
60
|
+
// set event handlers
|
|
61
|
+
.setEventHandlers(this)
|
|
62
|
+
.registerDatePickerSideEffects();
|
|
63
|
+
// todo: move it somewhere else
|
|
64
|
+
// on selected date change
|
|
65
|
+
this._subs.push(this._store
|
|
66
|
+
/* tslint:disable-next-line: no-any */
|
|
67
|
+
.select((state) => state.selectedDate)
|
|
68
|
+
/* tslint:disable-next-line: no-any */
|
|
69
|
+
.subscribe((date) => this.valueChange.emit(date)));
|
|
70
|
+
this._store.dispatch(this._actions.changeViewMode(this._config.startView));
|
|
71
|
+
}
|
|
72
|
+
get isTopPosition() {
|
|
73
|
+
return this._element.nativeElement.classList.contains('top');
|
|
74
|
+
}
|
|
75
|
+
positionServiceEnable() {
|
|
76
|
+
this._positionService.enable();
|
|
77
|
+
}
|
|
78
|
+
dayApplyHandler(day) {
|
|
79
|
+
}
|
|
80
|
+
daySelectHandler(day) {
|
|
81
|
+
if (!day) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
|
|
85
|
+
if (isDisabled) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this._store.dispatch(this._actions.select(day.date));
|
|
89
|
+
}
|
|
90
|
+
monthSelectHandler(day) {
|
|
91
|
+
if (!day || day.isDisabled) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this._store.dispatch(this._actions.navigateTo({
|
|
95
|
+
unit: {
|
|
96
|
+
month: getMonth(day.date),
|
|
97
|
+
year: getFullYear(day.date)
|
|
98
|
+
},
|
|
99
|
+
viewMode: 'day'
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
yearSelectHandler(day) {
|
|
103
|
+
if (!day || day.isDisabled) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this._store.dispatch(this._actions.navigateTo({
|
|
107
|
+
unit: {
|
|
108
|
+
year: getFullYear(day.date)
|
|
109
|
+
},
|
|
110
|
+
viewMode: 'month'
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
setToday() {
|
|
114
|
+
this._store.dispatch(this._actions.select(new Date()));
|
|
115
|
+
}
|
|
116
|
+
clearDate() {
|
|
117
|
+
this._store.dispatch(this._actions.select(undefined));
|
|
118
|
+
}
|
|
119
|
+
cancel() {
|
|
120
|
+
this._renderer.setStyle(this._element.nativeElement, 'display', 'none');
|
|
121
|
+
}
|
|
122
|
+
ngOnDestroy() {
|
|
123
|
+
for (const sub of this._subs) {
|
|
124
|
+
sub.unsubscribe();
|
|
125
|
+
}
|
|
126
|
+
this._effects.destroy();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
MisDatePickerContainerComponent.decorators = [
|
|
130
|
+
{ type: Component, args: [{
|
|
131
|
+
selector: 'mis-datepicker-container',
|
|
132
|
+
providers: [MisDatePickerStore, MisDatePickerEffects],
|
|
133
|
+
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\" [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <mis-days-calendar-view *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n [options]=\"options | async\" (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\" (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </mis-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <mis-month-calendar-view *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\" (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </mis-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <mis-years-calendar-view *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\" (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </mis-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"(daysCalendar | async)?.length > 1\">\n <button class=\"btn btn-default\" (click)=\"cancel()\" type=\"button\">Cancel</button>\n <button class=\"btn mis-btn-primary\" (click)=\"dayApplyHandler($event)\" type=\"button\">Apply</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\" [class.today-left]=\"todayPos === 'left'\" [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\" *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\" [class.clear-left]=\"clearPos === 'left'\" [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\" *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <mis-custom-date-view [selectedRange]=\"chosenRange\" [ranges]=\"customRanges\" [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </mis-custom-date-view>\n </div>\n</div>",
|
|
134
|
+
host: {
|
|
135
|
+
class: 'bottom',
|
|
136
|
+
'(click)': '_stopPropagation($event)',
|
|
137
|
+
role: 'dialog',
|
|
138
|
+
'aria-label': 'calendar'
|
|
139
|
+
},
|
|
140
|
+
animations: [datepickerAnimation]
|
|
141
|
+
},] }
|
|
142
|
+
];
|
|
143
|
+
MisDatePickerContainerComponent.ctorParameters = () => [
|
|
144
|
+
{ type: Renderer2 },
|
|
145
|
+
{ type: MisDatePickerConfig },
|
|
146
|
+
{ type: MisDatePickerStore },
|
|
147
|
+
{ type: ElementRef },
|
|
148
|
+
{ type: MisDatePickerActions },
|
|
149
|
+
{ type: MisDatePickerEffects },
|
|
150
|
+
{ type: PositioningService }
|
|
151
|
+
];
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci90aGVtZXMvYnMvYnMtZGF0ZXBpY2tlci1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBY3ZFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSw4QkFBOEI7SUFXakYsWUFDVSxTQUFvQixFQUNwQixPQUE0QixFQUM1QixNQUEwQixFQUMxQixRQUFvQixFQUNwQixRQUE4QixFQUN0QyxRQUE4QixFQUN0QixnQkFBb0M7UUFFNUMsS0FBSyxFQUFFLENBQUM7UUFSQSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLFdB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Q0FBQyxLQUFLLEVBQUU7WUFDNUIsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7WUFuS0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO2dCQUNyRCwyM0dBQXdDO2dCQUN4QyxJQUFJLEVBQUU7b0JBQ0osS0FBSyxFQUFFLFFBQVE7b0JBQ2YsU0FBUyxFQUFFLDBCQUEwQjtvQkFDckMsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsWUFBWSxFQUFFLFVBQVU7aUJBQ3pCO2dCQUNELFVBQVUsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ2xDOzs7WUEzQmdFLFNBQVM7WUFVakUsbUJBQW1CO1lBSW5CLGtCQUFrQjtZQWRQLFVBQVU7WUFZckIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQVBwQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGdldEZ1bGxZZWFyLCBnZXRNb250aCB9IGZyb20gJy4uLy4uL3N1Yi1jb21wb25lbnRzL2Nocm9ub3MnO1xuaW1wb3J0IHsgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3ViLWNvbXBvbmVudHMvcG9zaXRpb25pbmcnO1xuXG5pbXBvcnQgeyBkYXRlcGlja2VyQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vZGF0ZXBpY2tlci1hbmltYXRpb25zJztcbmltcG9ydCB7IE1pc0RhdGVQaWNrZXJBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvYnMtZGF0ZXBpY2tlci1jb250YWluZXInO1xuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJy4uLy4uL2JzLWRhdGVwaWNrZXIuY29uZmlnJztcbmltcG9ydCB7IENhbGVuZGFyQ2VsbFZpZXdNb2RlbCwgRGF5Vmlld01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE1pc0RhdGVQaWNrZXJBY3Rpb25zIH0gZnJvbSAnLi4vLi4vcmVkdWNlci9icy1kYXRlcGlja2VyLmFjdGlvbnMnO1xuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckVmZmVjdHMgfSBmcm9tICcuLi8uLi9yZWR1Y2VyL2JzLWRhdGVwaWNrZXIuZWZmZWN0cyc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyU3RvcmUgfSBmcm9tICcuLi8uLi9yZWR1Y2VyL2JzLWRhdGVwaWNrZXIuc3RvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtaXMtZGF0ZXBpY2tlci1jb250YWluZXInLFxuICBwcm92aWRlcnM6IFtNaXNEYXRlUGlja2VyU3RvcmUsIE1pc0RhdGVQaWNrZXJFZmZlY3RzXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JzLWRhdGVwaWNrZXItdmlldy5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYm90dG9tJyxcbiAgICAnKGNsaWNrKSc6ICdfc3RvcFByb3BhZ2F0aW9uKCRldmVudCknLFxuICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgICdhcmlhLWxhYmVsJzogJ2NhbGVuZGFyJ1xuICB9LFxuICBhbmltYXRpb25zOiBbZGF0ZXBpY2tlckFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgTWlzRGF0ZVBpY2tlckNvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIE1pc0RhdGVQaWNrZXJBYnN0cmFjdENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBzZXQgdmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLl9lZmZlY3RzLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIGFuaW1hdGlvblN0YXRlID0gJ3ZvaWQnO1xuXG4gIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2NvbmZpZzogTWlzRGF0ZVBpY2tlckNvbmZpZyxcbiAgICBwcml2YXRlIF9zdG9yZTogTWlzRGF0ZVBpY2tlclN0b3JlLFxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfYWN0aW9uczogTWlzRGF0ZVBpY2tlckFjdGlvbnMsXG4gICAgX2VmZmVjdHM6IE1pc0RhdGVQaWNrZXJFZmZlY3RzLFxuICAgIHByaXZhdGUgX3Bvc2l0aW9uU2VydmljZTogUG9zaXRpb25pbmdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZWZmZWN0cyA9IF9lZmZlY3RzO1xuXG4gICAgX3JlbmRlcmVyLnNldFN0eWxlKF9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gICAgX3JlbmRlcmVyLnNldFN0eWxlKF9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcG9zaXRpb25TZXJ2aWNlLnNldE9wdGlvbnMoe1xuICAgICAgbW9kaWZpZXJzOiB7IGZsaXA6IHsgZW5hYmxlZDogdGhpcy5fY29uZmlnLmFkYXB0aXZlUG9zaXRpb24gfSB9LFxuICAgICAgYWxsb3dlZFBvc2l0aW9uczogWyd0b3AnLCAnYm90dG9tJ11cbiAgICB9KTtcblxuICAgIHRoaXMuX3Bvc2l0aW9uU2VydmljZS5ldmVudCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25TZXJ2aWNlLmRpc2FibGUoKTtcblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmlzQW5pbWF0ZWQpIHtcbiAgICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gdGhpcy5pc1RvcFBvc2l0aW9uID8gJ2FuaW1hdGVkLXVwJyA6ICdhbmltYXRlZC1kb3duJztcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndW5hbmltYXRlZCc7XG4gICAgICB9KTtcblxuICAgIHRoaXMuaXNPdGhlck1vbnRoc0FjdGl2ZSA9IHRoaXMuX2NvbmZpZy5zZWxlY3RGcm9tT3RoZXJNb250aDtcbiAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gdGhpcy5fY29uZmlnLmNvbnRhaW5lckNsYXNzO1xuICAgIHRoaXMuc2hvd1RvZGF5QnRuID0gdGhpcy5fY29uZmlnLnNob3dUb2RheUJ1dHRvbjtcbiAgICB0aGlzLnRvZGF5QnRuTGJsID0gdGhpcy5fY29uZmlnLnRvZGF5QnV0dG9uTGFiZWw7XG4gICAgdGhpcy50b2RheVBvcyA9IHRoaXMuX2NvbmZpZy50b2RheVBvc2l0aW9uO1xuICAgIHRoaXMuc2hvd0NsZWFyQnRuID0gdGhpcy5fY29uZmlnLnNob3dDbGVhckJ1dHRvbjtcbiAgICB0aGlzLmNsZWFyQnRuTGJsID0gdGhpcy5fY29uZmlnLmNsZWFyQnV0dG9uTGFiZWw7XG4gICAgdGhpcy5jbGVhclBvcyA9IHRoaXMuX2NvbmZpZy5jbGVhclBvc2l0aW9uO1xuICAgIHRoaXMuY3VzdG9tUmFuZ2VCdG5MYmwgPSB0aGlzLl9jb25maWcuY3VzdG9tUmFuZ2VCdXR0b25MYWJlbDtcbiAgICB0aGlzLl9lZmZlY3RzXG4gICAgICAuaW5pdCh0aGlzLl9zdG9yZSlcbiAgICAgIC8vIGludGlhbCBzdGF0ZSBvcHRpb25zXG4gICAgICAuc2V0T3B0aW9ucyh0aGlzLl9jb25maWcpXG4gICAgICAvLyBkYXRhIGJpbmRpbmcgdmlldyAtLT4gbW9kZWxcbiAgICAgIC5zZXRCaW5kaW5ncyh0aGlzKVxuICAgICAgLy8gc2V0IGV2ZW50IGhhbmRsZXJzXG4gICAgICAuc2V0RXZlbnRIYW5kbGVycyh0aGlzKVxuICAgICAgLnJlZ2lzdGVyRGF0ZVBpY2tlclNpZGVFZmZlY3RzKCk7XG5cbiAgICAvLyB0b2RvOiBtb3ZlIGl0IHNvbWV3aGVyZSBlbHNlXG4gICAgLy8gb24gc2VsZWN0ZWQgZGF0ZSBjaGFuZ2VcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICAgICAgICAuc2VsZWN0KChzdGF0ZTogYW55KSA9PiBzdGF0ZS5zZWxlY3RlZERhdGUpXG4gICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55ICovXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGU6IGFueSkgPT4gdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGRhdGUpKVxuICAgICk7XG5cbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmNoYW5nZVZpZXdNb2RlKHRoaXMuX2NvbmZpZy5zdGFydFZpZXcpKTtcbiAgfVxuXG4gIGdldCBpc1RvcFBvc2l0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCd0b3AnKTtcbiAgfVxuXG4gIHBvc2l0aW9uU2VydmljZUVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wb3NpdGlvblNlcnZpY2UuZW5hYmxlKCk7XG4gIH1cbiAgZGF5QXBwbHlIYW5kbGVyKGRheTogRGF5Vmlld01vZGVsKTogdm9pZCB7XG5cbiAgfVxuICBkYXlTZWxlY3RIYW5kbGVyKGRheTogRGF5Vmlld01vZGVsKTogdm9pZCB7XG4gICAgaWYgKCFkYXkpIHtcbiAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLmlzT3RoZXJNb250aHNBY3RpdmUgPyBkYXkuaXNEaXNhYmxlZCA6IChkYXkuaXNPdGhlck1vbnRoIHx8IGRheS5pc0Rpc2FibGVkKTtcblxuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5zZWxlY3QoZGF5LmRhdGUpKTtcbiAgfVxuXG4gIG1vbnRoU2VsZWN0SGFuZGxlcihkYXk6IENhbGVuZGFyQ2VsbFZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGlmICghZGF5IHx8IGRheS5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goXG4gICAgICB0aGlzLl9hY3Rpb25zLm5hdmlnYXRlVG8oe1xuICAgICAgICB1bml0OiB7XG4gICAgICAgICAgbW9udGg6IGdldE1vbnRoKGRheS5kYXRlKSxcbiAgICAgICAgICB5ZWFyOiBnZXRGdWxsWWVhcihkYXkuZGF0ZSlcbiAgICAgICAgfSxcbiAgICAgICAgdmlld01vZGU6ICdkYXknXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB5ZWFyU2VsZWN0SGFuZGxlcihkYXk6IENhbGVuZGFyQ2VsbFZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGlmICghZGF5IHx8IGRheS5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goXG4gICAgICB0aGlzLl9hY3Rpb25zLm5hdmlnYXRlVG8oe1xuICAgICAgICB1bml0OiB7XG4gICAgICAgICAgeWVhcjogZ2V0RnVsbFllYXIoZGF5LmRhdGUpXG4gICAgICAgIH0sXG4gICAgICAgIHZpZXdNb2RlOiAnbW9udGgnXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzZXRUb2RheSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLnNlbGVjdChuZXcgRGF0ZSgpKSk7XG4gIH1cblxuICBjbGVhckRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5zZWxlY3QodW5kZWZpbmVkKSk7XG4gIH1cbiAgY2FuY2VsKCl7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdWIgb2YgdGhpcy5fc3Vicykge1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuX2VmZmVjdHMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Input, Renderer2 } from '@angular/core';
|
|
2
|
+
import { MisDatePickerConfig } from '../../bs-datepicker.config';
|
|
3
|
+
export class MisDatePickerDayDecoratorComponent {
|
|
4
|
+
constructor(_config, _elRef, _renderer) {
|
|
5
|
+
this._config = _config;
|
|
6
|
+
this._elRef = _elRef;
|
|
7
|
+
this._renderer = _renderer;
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
if (this.day.isToday && this._config && this._config.customTodayClass) {
|
|
11
|
+
this._renderer.addClass(this._elRef.nativeElement, this._config.customTodayClass);
|
|
12
|
+
}
|
|
13
|
+
if (typeof this.day.customClasses === 'string') {
|
|
14
|
+
this.day.customClasses.split(' ')
|
|
15
|
+
.filter((className) => className)
|
|
16
|
+
.forEach((className) => {
|
|
17
|
+
this._renderer.addClass(this._elRef.nativeElement, className);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
MisDatePickerDayDecoratorComponent.decorators = [
|
|
23
|
+
{ type: Component, args: [{
|
|
24
|
+
selector: '[misDatePickerDayDecorator]',
|
|
25
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
+
host: {
|
|
27
|
+
'[class.disabled]': 'day.isDisabled',
|
|
28
|
+
'[class.is-highlighted]': 'day.isHovered',
|
|
29
|
+
'[class.is-other-month]': 'day.isOtherMonth',
|
|
30
|
+
'[class.is-active-other-month]': 'day.isOtherMonthHovered',
|
|
31
|
+
'[class.in-range]': 'day.isInRange',
|
|
32
|
+
'[class.select-start]': 'day.isSelectionStart',
|
|
33
|
+
'[class.select-end]': 'day.isSelectionEnd',
|
|
34
|
+
'[class.selected]': 'day.isSelected'
|
|
35
|
+
},
|
|
36
|
+
template: `{{ day.label }}`
|
|
37
|
+
},] }
|
|
38
|
+
];
|
|
39
|
+
MisDatePickerDayDecoratorComponent.ctorParameters = () => [
|
|
40
|
+
{ type: MisDatePickerConfig },
|
|
41
|
+
{ type: ElementRef },
|
|
42
|
+
{ type: Renderer2 }
|
|
43
|
+
];
|
|
44
|
+
MisDatePickerDayDecoratorComponent.propDecorators = {
|
|
45
|
+
day: [{ type: Input }]
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci1kYXktZGVjb3JhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvdGhlbWVzL2JzL2JzLWRhdGVwaWNrZXItZGF5LWRlY29yYXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFrQmpFLE1BQU0sT0FBTyxrQ0FBa0M7SUFHN0MsWUFDVSxPQUE0QixFQUM1QixNQUFrQixFQUNsQixTQUFvQjtRQUZwQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFDMUIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkY7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQzlCLE1BQU0sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQztpQkFDeEMsT0FBTyxDQUFDLENBQUMsU0FBaUIsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzs7O1lBcENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNkJBQTZCO2dCQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsSUFBSSxFQUFFO29CQUNKLGtCQUFrQixFQUFFLGdCQUFnQjtvQkFDcEMsd0JBQXdCLEVBQUUsZUFBZTtvQkFDekMsd0JBQXdCLEVBQUUsa0JBQWtCO29CQUM1QywrQkFBK0IsRUFBRSx5QkFBeUI7b0JBQzFELGtCQUFrQixFQUFFLGVBQWU7b0JBQ25DLHNCQUFzQixFQUFFLHNCQUFzQjtvQkFDOUMsb0JBQW9CLEVBQUUsb0JBQW9CO29CQUMxQyxrQkFBa0IsRUFBRSxnQkFBZ0I7aUJBQ3JDO2dCQUNELFFBQVEsRUFBRSxpQkFBaUI7YUFDNUI7OztZQWpCUSxtQkFBbUI7WUFOMUIsVUFBVTtZQUdWLFNBQVM7OztrQkFzQlIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJy4uLy4uL2JzLWRhdGVwaWNrZXIuY29uZmlnJztcbmltcG9ydCB7IERheVZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1ttaXNEYXRlUGlja2VyRGF5RGVjb3JhdG9yXScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGF5LmlzRGlzYWJsZWQnLFxuICAgICdbY2xhc3MuaXMtaGlnaGxpZ2h0ZWRdJzogJ2RheS5pc0hvdmVyZWQnLFxuICAgICdbY2xhc3MuaXMtb3RoZXItbW9udGhdJzogJ2RheS5pc090aGVyTW9udGgnLFxuICAgICdbY2xhc3MuaXMtYWN0aXZlLW90aGVyLW1vbnRoXSc6ICdkYXkuaXNPdGhlck1vbnRoSG92ZXJlZCcsXG4gICAgJ1tjbGFzcy5pbi1yYW5nZV0nOiAnZGF5LmlzSW5SYW5nZScsXG4gICAgJ1tjbGFzcy5zZWxlY3Qtc3RhcnRdJzogJ2RheS5pc1NlbGVjdGlvblN0YXJ0JyxcbiAgICAnW2NsYXNzLnNlbGVjdC1lbmRdJzogJ2RheS5pc1NlbGVjdGlvbkVuZCcsXG4gICAgJ1tjbGFzcy5zZWxlY3RlZF0nOiAnZGF5LmlzU2VsZWN0ZWQnXG4gIH0sXG4gIHRlbXBsYXRlOiBge3sgZGF5LmxhYmVsIH19YFxufSlcbmV4cG9ydCBjbGFzcyBNaXNEYXRlUGlja2VyRGF5RGVjb3JhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGF5OiBEYXlWaWV3TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBNaXNEYXRlUGlja2VyQ29uZmlnLFxuICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXkuaXNUb2RheSAmJiB0aGlzLl9jb25maWcgJiYgdGhpcy5fY29uZmlnLmN1c3RvbVRvZGF5Q2xhc3MpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2NvbmZpZy5jdXN0b21Ub2RheUNsYXNzKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuZGF5LmN1c3RvbUNsYXNzZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmRheS5jdXN0b21DbGFzc2VzLnNwbGl0KCcgJylcbiAgICAgICAgLmZpbHRlcigoY2xhc3NOYW1lOiBzdHJpbmcpID0+IGNsYXNzTmFtZSlcbiAgICAgICAgLmZvckVhY2goKGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, ElementRef, Renderer2 } from '@angular/core';
|
|
2
|
+
import { MisDatePickerContainerComponent } from './bs-datepicker-container.component';
|
|
3
|
+
import { MisDatePickerActions } from '../../reducer/bs-datepicker.actions';
|
|
4
|
+
import { MisDatePickerConfig } from '../../bs-datepicker.config';
|
|
5
|
+
import { MisDatePickerEffects } from '../../reducer/bs-datepicker.effects';
|
|
6
|
+
import { MisDatePickerStore } from '../../reducer/bs-datepicker.store';
|
|
7
|
+
import { PositioningService } from '../../sub-components/positioning';
|
|
8
|
+
import { datepickerAnimation } from '../../datepicker-animations';
|
|
9
|
+
export class MisDatePickerInlineContainerComponent extends MisDatePickerContainerComponent {
|
|
10
|
+
constructor(_renderer, _config, _store, _element, _actions, _effects, _positioningService) {
|
|
11
|
+
super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);
|
|
12
|
+
_renderer.setStyle(_element.nativeElement, 'display', 'inline-block');
|
|
13
|
+
_renderer.setStyle(_element.nativeElement, 'position', 'static');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
MisDatePickerInlineContainerComponent.decorators = [
|
|
17
|
+
{ type: Component, args: [{
|
|
18
|
+
selector: 'mis-datepicker-inline-container',
|
|
19
|
+
providers: [MisDatePickerStore, MisDatePickerEffects],
|
|
20
|
+
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\" [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <mis-days-calendar-view *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n [options]=\"options | async\" (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\" (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </mis-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <mis-month-calendar-view *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\" (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </mis-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <mis-years-calendar-view *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\" (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </mis-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"(daysCalendar | async)?.length > 1\">\n <button class=\"btn btn-default\" (click)=\"cancel()\" type=\"button\">Cancel</button>\n <button class=\"btn mis-btn-primary\" (click)=\"dayApplyHandler($event)\" type=\"button\">Apply</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\" [class.today-left]=\"todayPos === 'left'\" [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\" *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\" [class.clear-left]=\"clearPos === 'left'\" [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\" *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <mis-custom-date-view [selectedRange]=\"chosenRange\" [ranges]=\"customRanges\" [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </mis-custom-date-view>\n </div>\n</div>",
|
|
21
|
+
host: {
|
|
22
|
+
'(click)': '_stopPropagation($event)'
|
|
23
|
+
},
|
|
24
|
+
animations: [datepickerAnimation]
|
|
25
|
+
},] }
|
|
26
|
+
];
|
|
27
|
+
MisDatePickerInlineContainerComponent.ctorParameters = () => [
|
|
28
|
+
{ type: Renderer2 },
|
|
29
|
+
{ type: MisDatePickerConfig },
|
|
30
|
+
{ type: MisDatePickerStore },
|
|
31
|
+
{ type: ElementRef },
|
|
32
|
+
{ type: MisDatePickerActions },
|
|
33
|
+
{ type: MisDatePickerEffects },
|
|
34
|
+
{ type: PositioningService }
|
|
35
|
+
];
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci1pbmxpbmUtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvdGhlbWVzL2JzL2JzLWRhdGVwaWNrZXItaW5saW5lLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVdsRSxNQUFNLE9BQU8scUNBQXNDLFNBQVEsK0JBQStCO0lBR3hGLFlBQ0UsU0FBb0IsRUFDcEIsT0FBNEIsRUFDNUIsTUFBMEIsRUFDMUIsUUFBb0IsRUFDcEIsUUFBOEIsRUFDOUIsUUFBOEIsRUFDOUIsbUJBQXVDO1FBRXZDLEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRXJGLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdEUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs7WUF6QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO2dCQUNyRCwyM0dBQXdDO2dCQUN4QyxJQUFJLEVBQUU7b0JBQ0osU0FBUyxFQUFFLDBCQUEwQjtpQkFDdEM7Z0JBQ0QsVUFBVSxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDbEM7OztZQW5Ca0QsU0FBUztZQUluRCxtQkFBbUI7WUFFbkIsa0JBQWtCO1lBTlAsVUFBVTtZQUdyQixvQkFBb0I7WUFFcEIsb0JBQW9CO1lBR3BCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vYnMtZGF0ZXBpY2tlci1jb250YWluZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckFjdGlvbnMgfSBmcm9tICcuLi8uLi9yZWR1Y2VyL2JzLWRhdGVwaWNrZXIuYWN0aW9ucyc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vLi4vYnMtZGF0ZXBpY2tlci5jb25maWcnO1xuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckVmZmVjdHMgfSBmcm9tICcuLi8uLi9yZWR1Y2VyL2JzLWRhdGVwaWNrZXIuZWZmZWN0cyc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyU3RvcmUgfSBmcm9tICcuLi8uLi9yZWR1Y2VyL2JzLWRhdGVwaWNrZXIuc3RvcmUnO1xuXG5pbXBvcnQgeyBQb3NpdGlvbmluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdWItY29tcG9uZW50cy9wb3NpdGlvbmluZyc7XG5pbXBvcnQgeyBkYXRlcGlja2VyQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vZGF0ZXBpY2tlci1hbmltYXRpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLWRhdGVwaWNrZXItaW5saW5lLWNvbnRhaW5lcicsXG4gIHByb3ZpZGVyczogW01pc0RhdGVQaWNrZXJTdG9yZSwgTWlzRGF0ZVBpY2tlckVmZmVjdHNdLFxuICB0ZW1wbGF0ZVVybDogJy4vYnMtZGF0ZXBpY2tlci12aWV3Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgJyhjbGljayknOiAnX3N0b3BQcm9wYWdhdGlvbigkZXZlbnQpJ1xuICB9LFxuICBhbmltYXRpb25zOiBbZGF0ZXBpY2tlckFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgTWlzRGF0ZVBpY2tlcklubGluZUNvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIE1pc0RhdGVQaWNrZXJDb250YWluZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgX2NvbmZpZzogTWlzRGF0ZVBpY2tlckNvbmZpZyxcbiAgICBfc3RvcmU6IE1pc0RhdGVQaWNrZXJTdG9yZSxcbiAgICBfZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBfYWN0aW9uczogTWlzRGF0ZVBpY2tlckFjdGlvbnMsXG4gICAgX2VmZmVjdHM6IE1pc0RhdGVQaWNrZXJFZmZlY3RzLFxuICAgIF9wb3NpdGlvbmluZ1NlcnZpY2U6IFBvc2l0aW9uaW5nU2VydmljZVxuICApIHtcbiAgICBzdXBlcihfcmVuZGVyZXIsIF9jb25maWcsIF9zdG9yZSwgX2VsZW1lbnQsIF9hY3Rpb25zLCBfZWZmZWN0cywgX3Bvc2l0aW9uaW5nU2VydmljZSk7XG5cbiAgICBfcmVuZGVyZXIuc2V0U3R5bGUoX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XG4gICAgX3JlbmRlcmVyLnNldFN0eWxlKF9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicsICdzdGF0aWMnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { BsNavigationDirection } from '../../models';
|
|
3
|
+
export class MisDatePickerNavigationViewComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.onNavigate = new EventEmitter();
|
|
6
|
+
this.onViewMode = new EventEmitter();
|
|
7
|
+
}
|
|
8
|
+
navTo(down) {
|
|
9
|
+
this.onNavigate.emit(down ? BsNavigationDirection.DOWN : BsNavigationDirection.UP);
|
|
10
|
+
}
|
|
11
|
+
view(viewMode) {
|
|
12
|
+
this.onViewMode.emit(viewMode);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
MisDatePickerNavigationViewComponent.decorators = [
|
|
16
|
+
{ type: Component, args: [{
|
|
17
|
+
selector: 'mis-datepicker-navigation-view',
|
|
18
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
19
|
+
template: `
|
|
20
|
+
<button class="previous"
|
|
21
|
+
[disabled]="calendar.disableLeftArrow"
|
|
22
|
+
[style.visibility]="calendar.hideLeftArrow ? 'hidden' : 'visible'"
|
|
23
|
+
type="button"
|
|
24
|
+
(click)="navTo(true)">
|
|
25
|
+
<span class="ic-navigation-arrow-left-24"></span>
|
|
26
|
+
</button>
|
|
27
|
+
|
|
28
|
+
<ng-container *ngIf="calendar.monthTitle">
|
|
29
|
+
​ <!-- zero-width space needed for correct alignement
|
|
30
|
+
with preserveWhitespaces: false in Angular -->
|
|
31
|
+
|
|
32
|
+
<button class="current"
|
|
33
|
+
type="button"
|
|
34
|
+
(click)="view('month')"
|
|
35
|
+
><span>{{ calendar.monthTitle }}</span>
|
|
36
|
+
</button>
|
|
37
|
+
</ng-container>
|
|
38
|
+
|
|
39
|
+
​ <!-- zero-width space needed for correct alignement
|
|
40
|
+
with preserveWhitespaces: false in Angular -->
|
|
41
|
+
|
|
42
|
+
<button class="current" (click)="view('year')" type="button">
|
|
43
|
+
<span>{{ calendar.yearTitle }}</span>
|
|
44
|
+
</button>
|
|
45
|
+
|
|
46
|
+
​ <!-- zero-width space needed for correct alignement
|
|
47
|
+
with preserveWhitespaces: false in Angular -->
|
|
48
|
+
|
|
49
|
+
<button class="next"
|
|
50
|
+
[disabled]="calendar.disableRightArrow"
|
|
51
|
+
[style.visibility]="calendar.hideRightArrow ? 'hidden' : 'visible'"
|
|
52
|
+
type="button"
|
|
53
|
+
(click)="navTo(false)"><span class="ic-navigation-arrow-right-24"></span>
|
|
54
|
+
</button>
|
|
55
|
+
`
|
|
56
|
+
},] }
|
|
57
|
+
];
|
|
58
|
+
MisDatePickerNavigationViewComponent.propDecorators = {
|
|
59
|
+
calendar: [{ type: Input }],
|
|
60
|
+
onNavigate: [{ type: Output }],
|
|
61
|
+
onViewMode: [{ type: Output }]
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci1uYXZpZ2F0aW9uLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci90aGVtZXMvYnMvYnMtZGF0ZXBpY2tlci1uYXZpZ2F0aW9uLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxxQkFBcUIsRUFFdEIsTUFBTSxjQUFjLENBQUM7QUEyQ3RCLE1BQU0sT0FBTyxvQ0FBb0M7SUF6Q2pEO1FBNENZLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUN2RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFXbkUsQ0FBQztJQVRDLEtBQUssQ0FBQyxJQUFhO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxRQUErQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDOzs7WUF2REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DVDthQUNGOzs7dUJBRUUsS0FBSzt5QkFFTCxNQUFNO3lCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNaXNEYXRlUGlja2VyVmlld01vZGUsXG4gIEJzTmF2aWdhdGlvbkRpcmVjdGlvbixcbiAgRGF5c0NhbGVuZGFyVmlld01vZGVsXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21pcy1kYXRlcGlja2VyLW5hdmlnYXRpb24tdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b24gY2xhc3M9XCJwcmV2aW91c1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiY2FsZW5kYXIuZGlzYWJsZUxlZnRBcnJvd1wiXG4gICAgICAgICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJjYWxlbmRhci5oaWRlTGVmdEFycm93ID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2VG8odHJ1ZSlcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWMtbmF2aWdhdGlvbi1hcnJvdy1sZWZ0LTI0XCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbGVuZGFyLm1vbnRoVGl0bGVcIj5cbiAgICAgICYjODIwMzsgIDwhLS0gemVyby13aWR0aCBzcGFjZSBuZWVkZWQgZm9yIGNvcnJlY3QgYWxpZ25lbWVudFxuICAgICAgICAgICAgICAgICAgd2l0aCBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSBpbiBBbmd1bGFyIC0tPlxuXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY3VycmVudFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ2aWV3KCdtb250aCcpXCJcbiAgICAgID48c3Bhbj57eyBjYWxlbmRhci5tb250aFRpdGxlIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAmIzgyMDM7ICA8IS0tIHplcm8td2lkdGggc3BhY2UgbmVlZGVkIGZvciBjb3JyZWN0IGFsaWduZW1lbnRcbiAgICAgICAgICAgICAgICAgIHdpdGggcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UgaW4gQW5ndWxhciAtLT5cblxuICAgIDxidXR0b24gY2xhc3M9XCJjdXJyZW50XCIgKGNsaWNrKT1cInZpZXcoJ3llYXInKVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgIDxzcGFuPnt7IGNhbGVuZGFyLnllYXJUaXRsZSB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgICYjODIwMzsgIDwhLS0gemVyby13aWR0aCBzcGFjZSBuZWVkZWQgZm9yIGNvcnJlY3QgYWxpZ25lbWVudFxuICAgICAgICAgICAgICAgICAgd2l0aCBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSBpbiBBbmd1bGFyIC0tPlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm5leHRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNhbGVuZGFyLmRpc2FibGVSaWdodEFycm93XCJcbiAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImNhbGVuZGFyLmhpZGVSaWdodEFycm93ID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2VG8oZmFsc2UpXCI+PHNwYW4gY2xhc3M9XCJpYy1uYXZpZ2F0aW9uLWFycm93LXJpZ2h0LTI0XCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIE1pc0RhdGVQaWNrZXJOYXZpZ2F0aW9uVmlld0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNhbGVuZGFyOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWw7XG5cbiAgQE91dHB1dCgpIG9uTmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPEJzTmF2aWdhdGlvbkRpcmVjdGlvbj4oKTtcbiAgQE91dHB1dCgpIG9uVmlld01vZGUgPSBuZXcgRXZlbnRFbWl0dGVyPE1pc0RhdGVQaWNrZXJWaWV3TW9kZT4oKTtcblxuICBuYXZUbyhkb3duOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5vbk5hdmlnYXRlLmVtaXQoXG4gICAgICBkb3duID8gQnNOYXZpZ2F0aW9uRGlyZWN0aW9uLkRPV04gOiBCc05hdmlnYXRpb25EaXJlY3Rpb24uVVBcbiAgICApO1xuICB9XG5cbiAgdmlldyh2aWV3TW9kZTogTWlzRGF0ZVBpY2tlclZpZXdNb2RlKTogdm9pZCB7XG4gICAgdGhpcy5vblZpZXdNb2RlLmVtaXQodmlld01vZGUpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Renderer2 } from '@angular/core';
|
|
2
|
+
import { take } from 'rxjs/operators';
|
|
3
|
+
import { getFullYear, getMonth } from '../../sub-components/chronos';
|
|
4
|
+
import { PositioningService } from '../../sub-components/positioning';
|
|
5
|
+
import { MisDatePickerAbstractComponent } from '../../base/bs-datepicker-container';
|
|
6
|
+
import { MisDatePickerConfig } from '../../bs-datepicker.config';
|
|
7
|
+
import { MisDatePickerActions } from '../../reducer/bs-datepicker.actions';
|
|
8
|
+
import { MisDatePickerEffects } from '../../reducer/bs-datepicker.effects';
|
|
9
|
+
import { MisDatePickerStore } from '../../reducer/bs-datepicker.store';
|
|
10
|
+
import { datepickerAnimation } from '../../datepicker-animations';
|
|
11
|
+
export class MisDateRangePickerContainerComponent extends MisDatePickerAbstractComponent {
|
|
12
|
+
constructor(_renderer, _config, _store, _element, _actions, _effects, _positionService) {
|
|
13
|
+
super();
|
|
14
|
+
this._renderer = _renderer;
|
|
15
|
+
this._config = _config;
|
|
16
|
+
this._store = _store;
|
|
17
|
+
this._element = _element;
|
|
18
|
+
this._actions = _actions;
|
|
19
|
+
this._positionService = _positionService;
|
|
20
|
+
this.valueChange = new EventEmitter();
|
|
21
|
+
this.animationState = 'void';
|
|
22
|
+
this._rangeStack = [];
|
|
23
|
+
this.chosenRange = [];
|
|
24
|
+
this._subs = [];
|
|
25
|
+
this._effects = _effects;
|
|
26
|
+
this.customRanges = this._config.ranges;
|
|
27
|
+
this.customRangeBtnLbl = this._config.customRangeButtonLabel;
|
|
28
|
+
_renderer.setStyle(_element.nativeElement, 'display', 'block');
|
|
29
|
+
_renderer.setStyle(_element.nativeElement, 'position', 'absolute');
|
|
30
|
+
}
|
|
31
|
+
set value(value) {
|
|
32
|
+
this._effects.setRangeValue(value);
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this._positionService.setOptions({
|
|
36
|
+
modifiers: { flip: { enabled: this._config.adaptivePosition } },
|
|
37
|
+
allowedPositions: ['top', 'bottom']
|
|
38
|
+
});
|
|
39
|
+
this._positionService.event$
|
|
40
|
+
.pipe(take(1))
|
|
41
|
+
.subscribe(() => {
|
|
42
|
+
this._positionService.disable();
|
|
43
|
+
if (this._config.isAnimated) {
|
|
44
|
+
this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.animationState = 'unanimated';
|
|
48
|
+
});
|
|
49
|
+
this.containerClass = this._config.containerClass;
|
|
50
|
+
this.isOtherMonthsActive = this._config.selectFromOtherMonth;
|
|
51
|
+
this._effects
|
|
52
|
+
.init(this._store)
|
|
53
|
+
// intial state options
|
|
54
|
+
// todo: fix this, split configs
|
|
55
|
+
.setOptions(this._config)
|
|
56
|
+
// data binding view --> model
|
|
57
|
+
.setBindings(this)
|
|
58
|
+
// set event handlers
|
|
59
|
+
.setEventHandlers(this)
|
|
60
|
+
.registerDatePickerSideEffects();
|
|
61
|
+
// todo: move it somewhere else
|
|
62
|
+
// on selected date change
|
|
63
|
+
this._subs.push(this._store
|
|
64
|
+
.select(state => state.selectedRange)
|
|
65
|
+
.subscribe(date => {
|
|
66
|
+
this.chosenRange = date;
|
|
67
|
+
if (this._config.emitOnDateRangeSelect) {
|
|
68
|
+
this.valueChange.emit(date);
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
get isTopPosition() {
|
|
73
|
+
return this._element.nativeElement.classList.contains('top');
|
|
74
|
+
}
|
|
75
|
+
positionServiceEnable() {
|
|
76
|
+
this._positionService.enable();
|
|
77
|
+
}
|
|
78
|
+
daySelectHandler(day) {
|
|
79
|
+
if (!day) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
|
|
83
|
+
if (isDisabled) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.rangesProcessing(day);
|
|
87
|
+
}
|
|
88
|
+
dayApplyHandler(day) {
|
|
89
|
+
this.valueChange.emit(this.chosenRange);
|
|
90
|
+
}
|
|
91
|
+
monthSelectHandler(day) {
|
|
92
|
+
if (!day) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
day.isSelected = true;
|
|
96
|
+
if (this._config.minMode !== 'month') {
|
|
97
|
+
if (day.isDisabled) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this._store.dispatch(this._actions.navigateTo({
|
|
101
|
+
unit: {
|
|
102
|
+
month: getMonth(day.date),
|
|
103
|
+
year: getFullYear(day.date)
|
|
104
|
+
},
|
|
105
|
+
viewMode: 'day'
|
|
106
|
+
}));
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
this.rangesProcessing(day);
|
|
110
|
+
}
|
|
111
|
+
yearSelectHandler(day) {
|
|
112
|
+
if (!day) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
day.isSelected = true;
|
|
116
|
+
if (this._config.minMode !== 'year') {
|
|
117
|
+
if (day.isDisabled) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
this._store.dispatch(this._actions.navigateTo({
|
|
121
|
+
unit: {
|
|
122
|
+
year: getFullYear(day.date)
|
|
123
|
+
},
|
|
124
|
+
viewMode: 'month'
|
|
125
|
+
}));
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
this.rangesProcessing(day);
|
|
129
|
+
}
|
|
130
|
+
rangesProcessing(day) {
|
|
131
|
+
// if only one date is already selected
|
|
132
|
+
// and user clicks on previous date
|
|
133
|
+
// start selection from new date
|
|
134
|
+
// but if new date is after initial one
|
|
135
|
+
// than finish selection
|
|
136
|
+
if (this._rangeStack.length === 1) {
|
|
137
|
+
this._rangeStack =
|
|
138
|
+
day.date >= this._rangeStack[0]
|
|
139
|
+
? [this._rangeStack[0], day.date]
|
|
140
|
+
: [day.date];
|
|
141
|
+
}
|
|
142
|
+
if (this._rangeStack.length === 0) {
|
|
143
|
+
this._rangeStack = [day.date];
|
|
144
|
+
if (this._config.maxDateRange) {
|
|
145
|
+
this.setMaxDateRangeOnCalendar(day.date);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this._store.dispatch(this._actions.selectRange(this._rangeStack));
|
|
149
|
+
if (this._rangeStack.length === 2) {
|
|
150
|
+
this._rangeStack = [];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
ngOnDestroy() {
|
|
154
|
+
for (const sub of this._subs) {
|
|
155
|
+
sub.unsubscribe();
|
|
156
|
+
}
|
|
157
|
+
this._effects.destroy();
|
|
158
|
+
}
|
|
159
|
+
cancel() {
|
|
160
|
+
this._renderer.setStyle(this._element.nativeElement, 'display', 'none');
|
|
161
|
+
}
|
|
162
|
+
setRangeOnCalendar(dates) {
|
|
163
|
+
this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
|
|
164
|
+
this._store.dispatch(this._actions.selectRange(this._rangeStack));
|
|
165
|
+
}
|
|
166
|
+
setMaxDateRangeOnCalendar(currentSelection) {
|
|
167
|
+
const maxDateRange = new Date(currentSelection);
|
|
168
|
+
maxDateRange.setDate(currentSelection.getDate() + this._config.maxDateRange);
|
|
169
|
+
this._effects.setMaxDate(maxDateRange);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
MisDateRangePickerContainerComponent.decorators = [
|
|
173
|
+
{ type: Component, args: [{
|
|
174
|
+
selector: 'mis-daterangepicker-container',
|
|
175
|
+
providers: [MisDatePickerStore, MisDatePickerEffects],
|
|
176
|
+
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\" [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <mis-days-calendar-view *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n [options]=\"options | async\" (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\" (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </mis-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <mis-month-calendar-view *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\" (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </mis-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <mis-years-calendar-view *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\" [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\" (onViewMode)=\"setViewMode($event)\" (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </mis-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"(daysCalendar | async)?.length > 1\">\n <button class=\"btn btn-default\" (click)=\"cancel()\" type=\"button\">Cancel</button>\n <button class=\"btn mis-btn-primary\" (click)=\"dayApplyHandler($event)\" type=\"button\">Apply</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\" [class.today-left]=\"todayPos === 'left'\" [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\" *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\" [class.clear-left]=\"clearPos === 'left'\" [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\" *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <mis-custom-date-view [selectedRange]=\"chosenRange\" [ranges]=\"customRanges\" [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </mis-custom-date-view>\n </div>\n</div>",
|
|
177
|
+
host: {
|
|
178
|
+
class: 'bottom',
|
|
179
|
+
'(click)': '_stopPropagation($event)',
|
|
180
|
+
role: 'dialog',
|
|
181
|
+
'aria-label': 'calendar'
|
|
182
|
+
},
|
|
183
|
+
animations: [datepickerAnimation]
|
|
184
|
+
},] }
|
|
185
|
+
];
|
|
186
|
+
MisDateRangePickerContainerComponent.ctorParameters = () => [
|
|
187
|
+
{ type: Renderer2 },
|
|
188
|
+
{ type: MisDatePickerConfig },
|
|
189
|
+
{ type: MisDatePickerStore },
|
|
190
|
+
{ type: ElementRef },
|
|
191
|
+
{ type: MisDatePickerActions },
|
|
192
|
+
{ type: MisDatePickerEffects },
|
|
193
|
+
{ type: PositioningService }
|
|
194
|
+
];
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3RoZW1lcy9icy9icy1kYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWVsRSxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsOEJBQThCO0lBYXRGLFlBQ1UsU0FBb0IsRUFDcEIsT0FBNEIsRUFDNUIsTUFBMEIsRUFDMUIsUUFBb0IsRUFDcEIsUUFBOEIsRUFDdEMsUUFBOEIsRUFDdEIsZ0JBQW9DO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBUkEsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQUFx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QUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELHlCQUF5QixDQUFDLGdCQUFzQjtRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hELFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7WUFyTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO2dCQUNyRCwyM0dBQXdDO2dCQUN4QyxJQUFJLEVBQUU7b0JBQ0osS0FBSyxFQUFFLFFBQVE7b0JBQ2YsU0FBUyxFQUFFLDBCQUEwQjtvQkFDckMsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsWUFBWSxFQUFFLFVBQVU7aUJBQ3pCO2dCQUNELFVBQVUsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ2xDOzs7WUE1QmdFLFNBQVM7WUFTakUsbUJBQW1CO1lBSW5CLGtCQUFrQjtZQWJQLFVBQVU7WUFXckIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQU5wQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGdldEZ1bGxZZWFyLCBnZXRNb250aCB9IGZyb20gJy4uLy4uL3N1Yi1jb21wb25lbnRzL2Nocm9ub3MnO1xuaW1wb3J0IHsgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3ViLWNvbXBvbmVudHMvcG9zaXRpb25pbmcnO1xuXG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL2JzLWRhdGVwaWNrZXItY29udGFpbmVyJztcbmltcG9ydCB7IE1pc0RhdGVQaWNrZXJDb25maWcgfSBmcm9tICcuLi8uLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBDYWxlbmRhckNlbGxWaWV3TW9kZWwsIERheVZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyQWN0aW9ucyB9IGZyb20gJy4uLy4uL3JlZHVjZXIvYnMtZGF0ZXBpY2tlci5hY3Rpb25zJztcbmltcG9ydCB7IE1pc0RhdGVQaWNrZXJFZmZlY3RzIH0gZnJvbSAnLi4vLi4vcmVkdWNlci9icy1kYXRlcGlja2VyLmVmZmVjdHMnO1xuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlclN0b3JlIH0gZnJvbSAnLi4vLi4vcmVkdWNlci9icy1kYXRlcGlja2VyLnN0b3JlJztcbmltcG9ydCB7IGRhdGVwaWNrZXJBbmltYXRpb24gfSBmcm9tICcuLi8uLi9kYXRlcGlja2VyLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnNDdXN0b21EYXRlcyB9IGZyb20gJy4vYnMtY3VzdG9tLWRhdGVzLXZpZXcuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLWRhdGVyYW5nZXBpY2tlci1jb250YWluZXInLFxuICBwcm92aWRlcnM6IFtNaXNEYXRlUGlja2VyU3RvcmUsIE1pc0RhdGVQaWNrZXJFZmZlY3RzXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JzLWRhdGVwaWNrZXItdmlldy5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYm90dG9tJyxcbiAgICAnKGNsaWNrKSc6ICdfc3RvcFByb3BhZ2F0aW9uKCRldmVudCknLFxuICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgICdhcmlhLWxhYmVsJzogJ2NhbGVuZGFyJ1xuICB9LFxuICBhbmltYXRpb25zOiBbZGF0ZXBpY2tlckFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgTWlzRGF0ZVJhbmdlUGlja2VyQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgTWlzRGF0ZVBpY2tlckFic3RyYWN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzZXQgdmFsdWUodmFsdWU6IERhdGVbXSkge1xuICAgIHRoaXMuX2VmZmVjdHMuc2V0UmFuZ2VWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xuICBhbmltYXRpb25TdGF0ZSA9ICd2b2lkJztcblxuICBfcmFuZ2VTdGFjazogRGF0ZVtdID0gW107XG4gIGNob3NlblJhbmdlOiBEYXRlW10gPSBbXTtcbiAgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF9jb25maWc6IE1pc0RhdGVQaWNrZXJDb25maWcsXG4gICAgcHJpdmF0ZSBfc3RvcmU6IE1pc0RhdGVQaWNrZXJTdG9yZSxcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2FjdGlvbnM6IE1pc0RhdGVQaWNrZXJBY3Rpb25zLFxuICAgIF9lZmZlY3RzOiBNaXNEYXRlUGlja2VyRWZmZWN0cyxcbiAgICBwcml2YXRlIF9wb3NpdGlvblNlcnZpY2U6IFBvc2l0aW9uaW5nU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2VmZmVjdHMgPSBfZWZmZWN0cztcblxuICAgIHRoaXMuY3VzdG9tUmFuZ2VzID0gdGhpcy5fY29uZmlnLnJhbmdlcztcbiAgICB0aGlzLmN1c3RvbVJhbmdlQnRuTGJsID0gdGhpcy5fY29uZmlnLmN1c3RvbVJhbmdlQnV0dG9uTGFiZWw7XG5cbiAgICBfcmVuZGVyZXIuc2V0U3R5bGUoX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcbiAgICBfcmVuZGVyZXIuc2V0U3R5bGUoX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9wb3NpdGlvblNlcnZpY2Uuc2V0T3B0aW9ucyh7XG4gICAgICBtb2RpZmllcnM6IHsgZmxpcDogeyBlbmFibGVkOiB0aGlzLl9jb25maWcuYWRhcHRpdmVQb3NpdGlvbiB9IH0sXG4gICAgICBhbGxvd2VkUG9zaXRpb25zOiBbJ3RvcCcsICdib3R0b20nXVxuICAgIH0pO1xuXG4gICAgdGhpcy5fcG9zaXRpb25TZXJ2aWNlLmV2ZW50JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9wb3NpdGlvblNlcnZpY2UuZGlzYWJsZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuaXNBbmltYXRlZCkge1xuICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSB0aGlzLmlzVG9wUG9zaXRpb24gPyAnYW5pbWF0ZWQtdXAnIDogJ2FuaW1hdGVkLWRvd24nO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9ICd1bmFuaW1hdGVkJztcbiAgICAgIH0pO1xuICAgIHRoaXMuY29udGFpbmVyQ2xhc3MgPSB0aGlzLl9jb25maWcuY29udGFpbmVyQ2xhc3M7XG4gICAgdGhpcy5pc090aGVyTW9udGhzQWN0aXZlID0gdGhpcy5fY29uZmlnLnNlbGVjdEZyb21PdGhlck1vbnRoO1xuICAgIHRoaXMuX2VmZmVjdHNcbiAgICAgIC5pbml0KHRoaXMuX3N0b3JlKVxuICAgICAgLy8gaW50aWFsIHN0YXRlIG9wdGlvbnNcbiAgICAgIC8vIHRvZG86IGZpeCB0aGlzLCBzcGxpdCBjb25maWdzXG4gICAgICAuc2V0T3B0aW9ucyh0aGlzLl9jb25maWcpXG4gICAgICAvLyBkYXRhIGJpbmRpbmcgdmlldyAtLT4gbW9kZWxcbiAgICAgIC5zZXRCaW5kaW5ncyh0aGlzKVxuICAgICAgLy8gc2V0IGV2ZW50IGhhbmRsZXJzXG4gICAgICAuc2V0RXZlbnRIYW5kbGVycyh0aGlzKVxuICAgICAgLnJlZ2lzdGVyRGF0ZVBpY2tlclNpZGVFZmZlY3RzKCk7XG5cbiAgICAvLyB0b2RvOiBtb3ZlIGl0IHNvbWV3aGVyZSBlbHNlXG4gICAgLy8gb24gc2VsZWN0ZWQgZGF0ZSBjaGFuZ2VcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnNlbGVjdGVkUmFuZ2UpXG4gICAgICAgIC5zdWJzY3JpYmUoZGF0ZSA9PiB7XG4gICAgICAgICAgdGhpcy5jaG9zZW5SYW5nZSA9IGRhdGU7XG4gICAgICAgICAgaWYodGhpcy5fY29uZmlnLmVtaXRPbkRhdGVSYW5nZVNlbGVjdCl7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZGF0ZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc1RvcFBvc2l0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCd0b3AnKTtcbiAgfVxuXG4gIHBvc2l0aW9uU2VydmljZUVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wb3NpdGlvblNlcnZpY2UuZW5hYmxlKCk7XG4gIH1cblxuICBkYXlTZWxlY3RIYW5kbGVyKGRheTogRGF5Vmlld01vZGVsKTogdm9pZCB7XG4gICAgaWYgKCFkYXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuaXNPdGhlck1vbnRoc0FjdGl2ZSA/IGRheS5pc0Rpc2FibGVkIDogKGRheS5pc090aGVyTW9udGggfHwgZGF5LmlzRGlzYWJsZWQpO1xuXG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yYW5nZXNQcm9jZXNzaW5nKGRheSk7XG4gIH1cbiAgZGF5QXBwbHlIYW5kbGVyKGRheTogRGF5Vmlld01vZGVsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuY2hvc2VuUmFuZ2UpO1xuICB9XG4gIG1vbnRoU2VsZWN0SGFuZGxlcihkYXk6IENhbGVuZGFyQ2VsbFZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGlmICghZGF5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGF5LmlzU2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5taW5Nb2RlICE9PSAnbW9udGgnKSB7XG4gICAgICBpZiAoZGF5LmlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuX2FjdGlvbnMubmF2aWdhdGVUbyh7XG4gICAgICAgICAgdW5pdDoge1xuICAgICAgICAgICAgbW9udGg6IGdldE1vbnRoKGRheS5kYXRlKSxcbiAgICAgICAgICAgIHllYXI6IGdldEZ1bGxZZWFyKGRheS5kYXRlKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlld01vZGU6ICdkYXknXG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmFuZ2VzUHJvY2Vzc2luZyhkYXkpO1xuICB9XG5cbiAgeWVhclNlbGVjdEhhbmRsZXIoZGF5OiBDYWxlbmRhckNlbGxWaWV3TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoIWRheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRheS5pc1NlbGVjdGVkID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLl9jb25maWcubWluTW9kZSAhPT0gJ3llYXInKSB7XG4gICAgICBpZiAoZGF5LmlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuX2FjdGlvbnMubmF2aWdhdGVUbyh7XG4gICAgICAgICAgdW5pdDoge1xuICAgICAgICAgICAgeWVhcjogZ2V0RnVsbFllYXIoZGF5LmRhdGUpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aWV3TW9kZTogJ21vbnRoJ1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJhbmdlc1Byb2Nlc3NpbmcoZGF5KTtcbiAgfVxuXG4gIHJhbmdlc1Byb2Nlc3NpbmcoZGF5OiBDYWxlbmRhckNlbGxWaWV3TW9kZWwpOiB2b2lkIHtcbiAgICAvLyBpZiBvbmx5IG9uZSBkYXRlIGlzIGFscmVhZHkgc2VsZWN0ZWRcbiAgICAvLyBhbmQgdXNlciBjbGlja3Mgb24gcHJldmlvdXMgZGF0ZVxuICAgIC8vIHN0YXJ0IHNlbGVjdGlvbiBmcm9tIG5ldyBkYXRlXG4gICAgLy8gYnV0IGlmIG5ldyBkYXRlIGlzIGFmdGVyIGluaXRpYWwgb25lXG4gICAgLy8gdGhhbiBmaW5pc2ggc2VsZWN0aW9uXG5cbiAgICBpZiAodGhpcy5fcmFuZ2VTdGFjay5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuX3JhbmdlU3RhY2sgPVxuICAgICAgICBkYXkuZGF0ZSA+PSB0aGlzLl9yYW5nZVN0YWNrWzBdXG4gICAgICAgICAgPyBbdGhpcy5fcmFuZ2VTdGFja1swXSwgZGF5LmRhdGVdXG4gICAgICAgICAgOiAgW2RheS5kYXRlXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcmFuZ2VTdGFjay5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuX3JhbmdlU3RhY2sgPSBbZGF5LmRhdGVdO1xuXG4gICAgICBpZiAodGhpcy5fY29uZmlnLm1heERhdGVSYW5nZSkge1xuICAgICAgICB0aGlzLnNldE1heERhdGVSYW5nZU9uQ2FsZW5kYXIoZGF5LmRhdGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuc2VsZWN0UmFuZ2UodGhpcy5fcmFuZ2VTdGFjaykpO1xuXG4gICAgaWYgKHRoaXMuX3JhbmdlU3RhY2subGVuZ3RoID09PSAyKSB7XG4gICAgICB0aGlzLl9yYW5nZVN0YWNrID0gW107XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdWIgb2YgdGhpcy5fc3Vicykge1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuX2VmZmVjdHMuZGVzdHJveSgpO1xuICB9XG4gIGNhbmNlbCgpe1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICB9XG5cbiAgc2V0UmFuZ2VPbkNhbGVuZGFyKGRhdGVzOiBCc0N1c3RvbURhdGVzKTogdm9pZCB7XG4gICAgdGhpcy5fcmFuZ2VTdGFjayA9IChkYXRlcyA9PT0gbnVsbCkgPyBbXSA6IChkYXRlcy52YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBbZGF0ZXMudmFsdWVdIDogZGF0ZXMudmFsdWUpO1xuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuc2VsZWN0UmFuZ2UodGhpcy5fcmFuZ2VTdGFjaykpO1xuICB9XG5cbiAgc2V0TWF4RGF0ZVJhbmdlT25DYWxlbmRhcihjdXJyZW50U2VsZWN0aW9uOiBEYXRlKTogdm9pZCB7XG4gICAgY29uc3QgbWF4RGF0ZVJhbmdlID0gbmV3IERhdGUoY3VycmVudFNlbGVjdGlvbik7XG4gICAgbWF4RGF0ZVJhbmdlLnNldERhdGUoY3VycmVudFNlbGVjdGlvbi5nZXREYXRlKCkgKyB0aGlzLl9jb25maWcubWF4RGF0ZVJhbmdlKTtcbiAgICB0aGlzLl9lZmZlY3RzLnNldE1heERhdGUobWF4RGF0ZVJhbmdlKTtcbiAgfVxuXG59XG4iXX0=
|