mis-crystal-design-system 14.0.55-test-v6 → 14.0.56
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/dynamic-form/dynamic-form.component.d.ts +10 -2
- package/esm2020/dynamic-form/dynamic-form.component.mjs +471 -213
- package/esm2020/table/table.component.mjs +2 -2
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +524 -212
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2015/mis-crystal-design-system-table.mjs +2 -2
- package/fesm2015/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-dynamic-form.mjs +470 -212
- package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-table.mjs +2 -2
- package/fesm2020/mis-crystal-design-system-table.mjs.map +1 -1
- package/package.json +1 -9
- package/datepicker/base/bs-datepicker-container.d.ts +0 -44
- package/datepicker/bs-datepicker-inline.component.d.ts +0 -64
- package/datepicker/bs-datepicker-inline.config.d.ts +0 -6
- package/datepicker/bs-datepicker-input.directive.d.ts +0 -33
- package/datepicker/bs-datepicker.component.d.ts +0 -126
- package/datepicker/bs-datepicker.config.d.ts +0 -143
- package/datepicker/bs-datepicker.module.d.ts +0 -29
- package/datepicker/bs-daterangepicker-inline.component.d.ts +0 -64
- package/datepicker/bs-daterangepicker-inline.config.d.ts +0 -9
- package/datepicker/bs-daterangepicker-input.directive.d.ts +0 -33
- package/datepicker/bs-daterangepicker.component.d.ts +0 -118
- package/datepicker/bs-daterangepicker.config.d.ts +0 -7
- package/datepicker/bs-locale.service.d.ts +0 -13
- package/datepicker/chronos/create/check-overflow.d.ts +0 -2
- package/datepicker/chronos/create/clone.d.ts +0 -1
- package/datepicker/chronos/create/date-from-array.d.ts +0 -2
- package/datepicker/chronos/create/from-anything.d.ts +0 -4
- package/datepicker/chronos/create/from-array.d.ts +0 -2
- package/datepicker/chronos/create/from-object.d.ts +0 -2
- package/datepicker/chronos/create/from-string-and-array.d.ts +0 -2
- package/datepicker/chronos/create/from-string-and-format.d.ts +0 -4
- package/datepicker/chronos/create/from-string.d.ts +0 -4
- package/datepicker/chronos/create/local.d.ts +0 -3
- package/datepicker/chronos/create/parsing-flags.d.ts +0 -2
- package/datepicker/chronos/create/parsing.types.d.ts +0 -64
- package/datepicker/chronos/create/valid.d.ts +0 -6
- package/datepicker/chronos/duration/bubble.d.ts +0 -4
- package/datepicker/chronos/duration/constructor.d.ts +0 -21
- package/datepicker/chronos/duration/create.d.ts +0 -8
- package/datepicker/chronos/duration/humanize.d.ts +0 -5
- package/datepicker/chronos/duration/valid.d.ts +0 -2
- package/datepicker/chronos/format/format.d.ts +0 -11
- package/datepicker/chronos/format.d.ts +0 -5
- package/datepicker/chronos/i18n/ar.d.ts +0 -2
- package/datepicker/chronos/i18n/bg.d.ts +0 -2
- package/datepicker/chronos/i18n/ca.d.ts +0 -2
- package/datepicker/chronos/i18n/cs.d.ts +0 -2
- package/datepicker/chronos/i18n/da.d.ts +0 -2
- package/datepicker/chronos/i18n/de.d.ts +0 -2
- package/datepicker/chronos/i18n/en-gb.d.ts +0 -2
- package/datepicker/chronos/i18n/es-do.d.ts +0 -2
- package/datepicker/chronos/i18n/es-us.d.ts +0 -2
- package/datepicker/chronos/i18n/es.d.ts +0 -2
- package/datepicker/chronos/i18n/et.d.ts +0 -2
- package/datepicker/chronos/i18n/fi.d.ts +0 -2
- package/datepicker/chronos/i18n/fr.d.ts +0 -2
- package/datepicker/chronos/i18n/gl.d.ts +0 -2
- package/datepicker/chronos/i18n/he.d.ts +0 -2
- package/datepicker/chronos/i18n/hi.d.ts +0 -2
- package/datepicker/chronos/i18n/hr.d.ts +0 -2
- package/datepicker/chronos/i18n/hu.d.ts +0 -2
- package/datepicker/chronos/i18n/id.d.ts +0 -2
- package/datepicker/chronos/i18n/it.d.ts +0 -2
- package/datepicker/chronos/i18n/ja.d.ts +0 -2
- package/datepicker/chronos/i18n/ka.d.ts +0 -2
- package/datepicker/chronos/i18n/kk.d.ts +0 -2
- package/datepicker/chronos/i18n/ko.d.ts +0 -2
- package/datepicker/chronos/i18n/lt.d.ts +0 -2
- package/datepicker/chronos/i18n/lv.d.ts +0 -2
- package/datepicker/chronos/i18n/mn.d.ts +0 -2
- package/datepicker/chronos/i18n/nb.d.ts +0 -2
- package/datepicker/chronos/i18n/nl-be.d.ts +0 -2
- package/datepicker/chronos/i18n/nl.d.ts +0 -2
- package/datepicker/chronos/i18n/pl.d.ts +0 -2
- package/datepicker/chronos/i18n/pt-br.d.ts +0 -2
- package/datepicker/chronos/i18n/ro.d.ts +0 -2
- package/datepicker/chronos/i18n/ru.d.ts +0 -2
- package/datepicker/chronos/i18n/sk.d.ts +0 -2
- package/datepicker/chronos/i18n/sl.d.ts +0 -2
- package/datepicker/chronos/i18n/sq.d.ts +0 -2
- package/datepicker/chronos/i18n/sv.d.ts +0 -2
- package/datepicker/chronos/i18n/th-be.d.ts +0 -2
- package/datepicker/chronos/i18n/th.d.ts +0 -2
- package/datepicker/chronos/i18n/tr.d.ts +0 -2
- package/datepicker/chronos/i18n/uk.d.ts +0 -2
- package/datepicker/chronos/i18n/vi.d.ts +0 -2
- package/datepicker/chronos/i18n/zh-cn.d.ts +0 -2
- package/datepicker/chronos/index.d.ts +0 -1
- package/datepicker/chronos/locale/calendar.d.ts +0 -8
- package/datepicker/chronos/locale/locale.class.d.ts +0 -143
- package/datepicker/chronos/locale/locale.defaults.d.ts +0 -11
- package/datepicker/chronos/locale/locales.d.ts +0 -7
- package/datepicker/chronos/moment/add-subtract.d.ts +0 -5
- package/datepicker/chronos/moment/calendar.d.ts +0 -15
- package/datepicker/chronos/moment/diff.d.ts +0 -3
- package/datepicker/chronos/moment/min-max.d.ts +0 -2
- package/datepicker/chronos/parse/regex.d.ts +0 -22
- package/datepicker/chronos/parse/token.d.ts +0 -5
- package/datepicker/chronos/public_api.d.ts +0 -57
- package/datepicker/chronos/test/chain.d.ts +0 -214
- package/datepicker/chronos/types.d.ts +0 -36
- package/datepicker/chronos/units/aliases.d.ts +0 -7
- package/datepicker/chronos/units/constants.d.ts +0 -9
- package/datepicker/chronos/units/day-of-month.d.ts +0 -1
- package/datepicker/chronos/units/day-of-week.d.ts +0 -20
- package/datepicker/chronos/units/day-of-year.d.ts +0 -3
- package/datepicker/chronos/units/hour.d.ts +0 -1
- package/datepicker/chronos/units/index.d.ts +0 -18
- package/datepicker/chronos/units/millisecond.d.ts +0 -1
- package/datepicker/chronos/units/minute.d.ts +0 -1
- package/datepicker/chronos/units/month.d.ts +0 -2
- package/datepicker/chronos/units/offset.d.ts +0 -10
- package/datepicker/chronos/units/priorities.d.ts +0 -1
- package/datepicker/chronos/units/quarter.d.ts +0 -3
- package/datepicker/chronos/units/second.d.ts +0 -1
- package/datepicker/chronos/units/timestamp.d.ts +0 -1
- package/datepicker/chronos/units/timezone.d.ts +0 -3
- package/datepicker/chronos/units/week-calendar-utils.d.ts +0 -9
- package/datepicker/chronos/units/week-year.d.ts +0 -8
- package/datepicker/chronos/units/week.d.ts +0 -6
- package/datepicker/chronos/units/year.d.ts +0 -4
- package/datepicker/chronos/utils/abs-ceil.d.ts +0 -1
- package/datepicker/chronos/utils/abs-round.d.ts +0 -1
- package/datepicker/chronos/utils/compare-arrays.d.ts +0 -1
- package/datepicker/chronos/utils/date-compare.d.ts +0 -9
- package/datepicker/chronos/utils/date-getters.d.ts +0 -18
- package/datepicker/chronos/utils/date-setters.d.ts +0 -12
- package/datepicker/chronos/utils/defaults.d.ts +0 -1
- package/datepicker/chronos/utils/start-end-of.d.ts +0 -3
- package/datepicker/chronos/utils/type-checks.d.ts +0 -12
- package/datepicker/chronos/utils/zero-fill.d.ts +0 -1
- package/datepicker/chronos/utils.d.ts +0 -2
- package/datepicker/component-loader/bs-component-ref.class.d.ts +0 -5
- package/datepicker/component-loader/component-loader.class.d.ts +0 -75
- package/datepicker/component-loader/component-loader.factory.d.ts +0 -21
- package/datepicker/component-loader/content-ref.class.d.ts +0 -7
- package/datepicker/component-loader/index.d.ts +0 -1
- package/datepicker/component-loader/listen-options.model.d.ts +0 -11
- package/datepicker/component-loader/public_api.d.ts +0 -4
- package/datepicker/date-formatter.d.ts +0 -3
- package/datepicker/datepicker-animations.d.ts +0 -3
- package/datepicker/datepicker-inner.component.d.ts +0 -78
- package/datepicker/datepicker.component.d.ts +0 -81
- package/datepicker/datepicker.config.d.ts +0 -22
- package/datepicker/datepicker.module.d.ts +0 -15
- package/datepicker/daypicker.component.d.ts +0 -17
- package/datepicker/engine/calc-days-calendar.d.ts +0 -2
- package/datepicker/engine/flag-days-calendar.d.ts +0 -17
- package/datepicker/engine/flag-months-calendar.d.ts +0 -12
- package/datepicker/engine/flag-years-calendar.d.ts +0 -12
- package/datepicker/engine/format-days-calendar.d.ts +0 -4
- package/datepicker/engine/format-months-calendar.d.ts +0 -2
- package/datepicker/engine/format-years-calendar.d.ts +0 -4
- package/datepicker/engine/view-mode.d.ts +0 -2
- package/datepicker/index.d.ts +0 -1
- package/datepicker/mini-ngrx/index.d.ts +0 -1
- package/datepicker/mini-ngrx/public_api.d.ts +0 -7
- package/datepicker/mini-ngrx/state.class.d.ts +0 -8
- package/datepicker/mini-ngrx/store.class.d.ts +0 -16
- package/datepicker/models/index.d.ts +0 -102
- package/datepicker/monthpicker.component.d.ts +0 -14
- package/datepicker/positioning/index.d.ts +0 -1
- package/datepicker/positioning/models/index.d.ts +0 -41
- package/datepicker/positioning/modifiers/arrow.d.ts +0 -2
- package/datepicker/positioning/modifiers/flip.d.ts +0 -2
- package/datepicker/positioning/modifiers/index.d.ts +0 -5
- package/datepicker/positioning/modifiers/initData.d.ts +0 -2
- package/datepicker/positioning/modifiers/preventOverflow.d.ts +0 -2
- package/datepicker/positioning/modifiers/shift.d.ts +0 -2
- package/datepicker/positioning/ng-positioning.d.ts +0 -8
- package/datepicker/positioning/positioning.service.d.ts +0 -48
- package/datepicker/positioning/public_api.d.ts +0 -2
- package/datepicker/positioning/utils/computeAutoPlacement.d.ts +0 -2
- package/datepicker/positioning/utils/findCommonOffsetParent.d.ts +0 -1
- package/datepicker/positioning/utils/getBordersSize.d.ts +0 -4
- package/datepicker/positioning/utils/getBoundaries.d.ts +0 -1
- package/datepicker/positioning/utils/getBoundingClientRect.d.ts +0 -2
- package/datepicker/positioning/utils/getClientRect.d.ts +0 -5
- package/datepicker/positioning/utils/getFixedPositionOffsetParent.d.ts +0 -4
- package/datepicker/positioning/utils/getOffsetParent.d.ts +0 -1
- package/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +0 -2
- package/datepicker/positioning/utils/getOffsets.d.ts +0 -2
- package/datepicker/positioning/utils/getOppositePlacement.d.ts +0 -4
- package/datepicker/positioning/utils/getOppositeVariation.d.ts +0 -4
- package/datepicker/positioning/utils/getOuterSizes.d.ts +0 -7
- package/datepicker/positioning/utils/getParentNode.d.ts +0 -4
- package/datepicker/positioning/utils/getReferenceOffsets.d.ts +0 -2
- package/datepicker/positioning/utils/getRoot.d.ts +0 -4
- package/datepicker/positioning/utils/getScroll.d.ts +0 -4
- package/datepicker/positioning/utils/getScrollParent.d.ts +0 -1
- package/datepicker/positioning/utils/getStyleComputedProperty.d.ts +0 -4
- package/datepicker/positioning/utils/getTargetOffsets.d.ts +0 -2
- package/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +0 -2
- package/datepicker/positioning/utils/getWindowSizes.d.ts +0 -4
- package/datepicker/positioning/utils/includeScroll.d.ts +0 -2
- package/datepicker/positioning/utils/index.d.ts +0 -23
- package/datepicker/positioning/utils/isBrowser.d.ts +0 -1
- package/datepicker/positioning/utils/isFixed.d.ts +0 -1
- package/datepicker/positioning/utils/isIE.d.ts +0 -1
- package/datepicker/positioning/utils/isModifierEnabled.d.ts +0 -4
- package/datepicker/positioning/utils/isNumeric.d.ts +0 -4
- package/datepicker/positioning/utils/isOffsetContainer.d.ts +0 -1
- package/datepicker/positioning/utils/setStyles.d.ts +0 -5
- package/datepicker/positioning/utils/updateContainerClass.d.ts +0 -6
- package/datepicker/public_api.d.ts +0 -25
- package/datepicker/reducer/_defaults.d.ts +0 -2
- package/datepicker/reducer/bs-datepicker.actions.d.ts +0 -46
- package/datepicker/reducer/bs-datepicker.effects.d.ts +0 -41
- package/datepicker/reducer/bs-datepicker.reducer.d.ts +0 -3
- package/datepicker/reducer/bs-datepicker.state.d.ts +0 -43
- package/datepicker/reducer/bs-datepicker.store.d.ts +0 -8
- package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +0 -5
- package/datepicker/themes/bs/bs-current-date-view.component.d.ts +0 -6
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +0 -17
- package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +0 -36
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +0 -14
- package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +0 -13
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +0 -12
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +0 -40
- package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +0 -13
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +0 -26
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +0 -16
- package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +0 -8
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +0 -16
- package/datepicker/utils/bs-calendar-utils.d.ts +0 -10
- package/datepicker/utils/matrix-utils.d.ts +0 -9
- package/datepicker/utils-v2/decorators.d.ts +0 -1
- package/datepicker/utils-v2/facade/browser.d.ts +0 -23
- package/datepicker/utils-v2/index.d.ts +0 -1
- package/datepicker/utils-v2/linked-list.class.d.ts +0 -26
- package/datepicker/utils-v2/public_api.d.ts +0 -10
- package/datepicker/utils-v2/theme-provider.d.ts +0 -2
- package/datepicker/utils-v2/trigger.class.d.ts +0 -6
- package/datepicker/utils-v2/triggers.d.ts +0 -18
- package/datepicker/utils-v2/utils.class.d.ts +0 -4
- package/datepicker/utils-v2/warn-once.d.ts +0 -1
- package/datepicker/yearpicker.component.d.ts +0 -14
- package/esm2020/datepicker/base/bs-datepicker-container.mjs +0 -47
- package/esm2020/datepicker/bs-datepicker-inline.component.mjs +0 -137
- package/esm2020/datepicker/bs-datepicker-inline.config.mjs +0 -14
- package/esm2020/datepicker/bs-datepicker-input.directive.mjs +0 -160
- package/esm2020/datepicker/bs-datepicker.component.mjs +0 -254
- package/esm2020/datepicker/bs-datepicker.config.mjs +0 -87
- package/esm2020/datepicker/bs-datepicker.module.mjs +0 -126
- package/esm2020/datepicker/bs-daterangepicker-inline.component.mjs +0 -134
- package/esm2020/datepicker/bs-daterangepicker-inline.config.mjs +0 -21
- package/esm2020/datepicker/bs-daterangepicker-input.directive.mjs +0 -192
- package/esm2020/datepicker/bs-daterangepicker.component.mjs +0 -240
- package/esm2020/datepicker/bs-daterangepicker.config.mjs +0 -19
- package/esm2020/datepicker/bs-locale.service.mjs +0 -32
- package/esm2020/datepicker/chronos/create/check-overflow.mjs +0 -30
- package/esm2020/datepicker/chronos/create/clone.mjs +0 -6
- package/esm2020/datepicker/chronos/create/date-from-array.mjs +0 -17
- package/esm2020/datepicker/chronos/create/from-anything.mjs +0 -107
- package/esm2020/datepicker/chronos/create/from-array.mjs +0 -136
- package/esm2020/datepicker/chronos/create/from-object.mjs +0 -17
- package/esm2020/datepicker/chronos/create/from-string-and-array.mjs +0 -38
- package/esm2020/datepicker/chronos/create/from-string-and-format.mjs +0 -106
- package/esm2020/datepicker/chronos/create/from-string.mjs +0 -227
- package/esm2020/datepicker/chronos/create/local.mjs +0 -16
- package/esm2020/datepicker/chronos/create/parsing-flags.mjs +0 -26
- package/esm2020/datepicker/chronos/create/parsing.types.mjs +0 -2
- package/esm2020/datepicker/chronos/create/valid.mjs +0 -42
- package/esm2020/datepicker/chronos/duration/bubble.mjs +0 -47
- package/esm2020/datepicker/chronos/duration/constructor.mjs +0 -130
- package/esm2020/datepicker/chronos/duration/create.mjs +0 -113
- package/esm2020/datepicker/chronos/duration/humanize.mjs +0 -80
- package/esm2020/datepicker/chronos/duration/valid.mjs +0 -43
- package/esm2020/datepicker/chronos/format/format.mjs +0 -51
- package/esm2020/datepicker/chronos/format.mjs +0 -46
- package/esm2020/datepicker/chronos/i18n/ar.mjs +0 -128
- package/esm2020/datepicker/chronos/i18n/bg.mjs +0 -94
- package/esm2020/datepicker/chronos/i18n/ca.mjs +0 -91
- package/esm2020/datepicker/chronos/i18n/cs.mjs +0 -179
- package/esm2020/datepicker/chronos/i18n/da.mjs +0 -50
- package/esm2020/datepicker/chronos/i18n/de.mjs +0 -72
- package/esm2020/datepicker/chronos/i18n/en-gb.mjs +0 -61
- package/esm2020/datepicker/chronos/i18n/es-do.mjs +0 -85
- package/esm2020/datepicker/chronos/i18n/es-us.mjs +0 -79
- package/esm2020/datepicker/chronos/i18n/es.mjs +0 -84
- package/esm2020/datepicker/chronos/i18n/et.mjs +0 -73
- package/esm2020/datepicker/chronos/i18n/fi.mjs +0 -100
- package/esm2020/datepicker/chronos/i18n/fr.mjs +0 -76
- package/esm2020/datepicker/chronos/i18n/gl.mjs +0 -84
- package/esm2020/datepicker/chronos/i18n/he.mjs +0 -98
- package/esm2020/datepicker/chronos/i18n/hi.mjs +0 -124
- package/esm2020/datepicker/chronos/i18n/hr.mjs +0 -62
- package/esm2020/datepicker/chronos/i18n/hu.mjs +0 -104
- package/esm2020/datepicker/chronos/i18n/id.mjs +0 -83
- package/esm2020/datepicker/chronos/i18n/it.mjs +0 -65
- package/esm2020/datepicker/chronos/i18n/ja.mjs +0 -75
- package/esm2020/datepicker/chronos/i18n/ka.mjs +0 -87
- package/esm2020/datepicker/chronos/i18n/kk.mjs +0 -76
- package/esm2020/datepicker/chronos/i18n/ko.mjs +0 -77
- package/esm2020/datepicker/chronos/i18n/lt.mjs +0 -116
- package/esm2020/datepicker/chronos/i18n/lv.mjs +0 -56
- package/esm2020/datepicker/chronos/i18n/mn.mjs +0 -99
- package/esm2020/datepicker/chronos/i18n/nb.mjs +0 -53
- package/esm2020/datepicker/chronos/i18n/nl-be.mjs +0 -81
- package/esm2020/datepicker/chronos/i18n/nl.mjs +0 -80
- package/esm2020/datepicker/chronos/i18n/pl.mjs +0 -126
- package/esm2020/datepicker/chronos/i18n/pt-br.mjs +0 -56
- package/esm2020/datepicker/chronos/i18n/ro.mjs +0 -66
- package/esm2020/datepicker/chronos/i18n/ru.mjs +0 -181
- package/esm2020/datepicker/chronos/i18n/sk.mjs +0 -157
- package/esm2020/datepicker/chronos/i18n/sl.mjs +0 -184
- package/esm2020/datepicker/chronos/i18n/sq.mjs +0 -54
- package/esm2020/datepicker/chronos/i18n/sv.mjs +0 -63
- package/esm2020/datepicker/chronos/i18n/th-be.mjs +0 -74
- package/esm2020/datepicker/chronos/i18n/th.mjs +0 -59
- package/esm2020/datepicker/chronos/i18n/tr.mjs +0 -82
- package/esm2020/datepicker/chronos/i18n/uk.mjs +0 -147
- package/esm2020/datepicker/chronos/i18n/vi.mjs +0 -74
- package/esm2020/datepicker/chronos/i18n/zh-cn.mjs +0 -114
- package/esm2020/datepicker/chronos/index.mjs +0 -2
- package/esm2020/datepicker/chronos/locale/calendar.mjs +0 -9
- package/esm2020/datepicker/chronos/locale/locale.class.mjs +0 -532
- package/esm2020/datepicker/chronos/locale/locale.defaults.mjs +0 -40
- package/esm2020/datepicker/chronos/locale/locales.mjs +0 -229
- package/esm2020/datepicker/chronos/moment/add-subtract.mjs +0 -35
- package/esm2020/datepicker/chronos/moment/calendar.mjs +0 -41
- package/esm2020/datepicker/chronos/moment/diff.mjs +0 -70
- package/esm2020/datepicker/chronos/moment/min-max.mjs +0 -38
- package/esm2020/datepicker/chronos/parse/regex.mjs +0 -49
- package/esm2020/datepicker/chronos/parse/token.mjs +0 -32
- package/esm2020/datepicker/chronos/public_api.mjs +0 -56
- package/esm2020/datepicker/chronos/test/chain.mjs +0 -711
- package/esm2020/datepicker/chronos/types.mjs +0 -2
- package/esm2020/datepicker/chronos/units/aliases.mjs +0 -35
- package/esm2020/datepicker/chronos/units/constants.mjs +0 -11
- package/esm2020/datepicker/chronos/units/day-of-month.mjs +0 -31
- package/esm2020/datepicker/chronos/units/day-of-week.mjs +0 -129
- package/esm2020/datepicker/chronos/units/day-of-year.mjs +0 -37
- package/esm2020/datepicker/chronos/units/hour.mjs +0 -127
- package/esm2020/datepicker/chronos/units/index.mjs +0 -19
- package/esm2020/datepicker/chronos/units/millisecond.mjs +0 -60
- package/esm2020/datepicker/chronos/units/minute.mjs +0 -23
- package/esm2020/datepicker/chronos/units/month.mjs +0 -63
- package/esm2020/datepicker/chronos/units/offset.mjs +0 -210
- package/esm2020/datepicker/chronos/units/priorities.mjs +0 -21
- package/esm2020/datepicker/chronos/units/quarter.mjs +0 -39
- package/esm2020/datepicker/chronos/units/second.mjs +0 -23
- package/esm2020/datepicker/chronos/units/timestamp.mjs +0 -28
- package/esm2020/datepicker/chronos/units/timezone.mjs +0 -19
- package/esm2020/datepicker/chronos/units/week-calendar-utils.mjs +0 -70
- package/esm2020/datepicker/chronos/units/week-year.mjs +0 -101
- package/esm2020/datepicker/chronos/units/week.mjs +0 -58
- package/esm2020/datepicker/chronos/units/year.mjs +0 -60
- package/esm2020/datepicker/chronos/utils/abs-ceil.mjs +0 -4
- package/esm2020/datepicker/chronos/utils/abs-round.mjs +0 -4
- package/esm2020/datepicker/chronos/utils/compare-arrays.mjs +0 -16
- package/esm2020/datepicker/chronos/utils/date-compare.mjs +0 -55
- package/esm2020/datepicker/chronos/utils/date-getters.mjs +0 -67
- package/esm2020/datepicker/chronos/utils/date-setters.mjs +0 -75
- package/esm2020/datepicker/chronos/utils/defaults.mjs +0 -11
- package/esm2020/datepicker/chronos/utils/start-end-of.mjs +0 -57
- package/esm2020/datepicker/chronos/utils/type-checks.mjs +0 -56
- package/esm2020/datepicker/chronos/utils/zero-fill.mjs +0 -10
- package/esm2020/datepicker/chronos/utils.mjs +0 -7
- package/esm2020/datepicker/component-loader/bs-component-ref.class.mjs +0 -3
- package/esm2020/datepicker/component-loader/component-loader.class.mjs +0 -272
- package/esm2020/datepicker/component-loader/component-loader.factory.mjs +0 -29
- package/esm2020/datepicker/component-loader/content-ref.class.mjs +0 -12
- package/esm2020/datepicker/component-loader/index.mjs +0 -2
- package/esm2020/datepicker/component-loader/listen-options.model.mjs +0 -2
- package/esm2020/datepicker/component-loader/public_api.mjs +0 -5
- package/esm2020/datepicker/date-formatter.mjs +0 -7
- package/esm2020/datepicker/datepicker-animations.mjs +0 -16
- package/esm2020/datepicker/datepicker-inner.component.mjs +0 -323
- package/esm2020/datepicker/datepicker.component.mjs +0 -182
- package/esm2020/datepicker/datepicker.config.mjs +0 -32
- package/esm2020/datepicker/datepicker.module.mjs +0 -49
- package/esm2020/datepicker/daypicker.component.mjs +0 -314
- package/esm2020/datepicker/engine/calc-days-calendar.mjs +0 -19
- package/esm2020/datepicker/engine/flag-days-calendar.mjs +0 -91
- package/esm2020/datepicker/engine/flag-months-calendar.mjs +0 -41
- package/esm2020/datepicker/engine/flag-years-calendar.mjs +0 -39
- package/esm2020/datepicker/engine/format-days-calendar.mjs +0 -29
- package/esm2020/datepicker/engine/format-months-calendar.mjs +0 -19
- package/esm2020/datepicker/engine/format-years-calendar.mjs +0 -35
- package/esm2020/datepicker/engine/view-mode.mjs +0 -4
- package/esm2020/datepicker/index.mjs +0 -2
- package/esm2020/datepicker/mini-ngrx/index.mjs +0 -2
- package/esm2020/datepicker/mini-ngrx/public_api.mjs +0 -3
- package/esm2020/datepicker/mini-ngrx/state.class.mjs +0 -16
- package/esm2020/datepicker/mini-ngrx/store.class.mjs +0 -43
- package/esm2020/datepicker/mis-crystal-design-system-datepicker.mjs +0 -5
- package/esm2020/datepicker/models/index.mjs +0 -9
- package/esm2020/datepicker/monthpicker.component.mjs +0 -145
- package/esm2020/datepicker/positioning/index.mjs +0 -2
- package/esm2020/datepicker/positioning/models/index.mjs +0 -2
- package/esm2020/datepicker/positioning/modifiers/arrow.mjs +0 -56
- package/esm2020/datepicker/positioning/modifiers/flip.mjs +0 -66
- package/esm2020/datepicker/positioning/modifiers/index.mjs +0 -6
- package/esm2020/datepicker/positioning/modifiers/initData.mjs +0 -42
- package/esm2020/datepicker/positioning/modifiers/preventOverflow.mjs +0 -59
- package/esm2020/datepicker/positioning/modifiers/shift.mjs +0 -24
- package/esm2020/datepicker/positioning/ng-positioning.mjs +0 -30
- package/esm2020/datepicker/positioning/positioning.service.mjs +0 -75
- package/esm2020/datepicker/positioning/public_api.mjs +0 -3
- package/esm2020/datepicker/positioning/utils/computeAutoPlacement.mjs +0 -57
- package/esm2020/datepicker/positioning/utils/findCommonOffsetParent.mjs +0 -40
- package/esm2020/datepicker/positioning/utils/getBordersSize.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/getBoundaries.mjs +0 -56
- package/esm2020/datepicker/positioning/utils/getBoundingClientRect.mjs +0 -55
- package/esm2020/datepicker/positioning/utils/getClientRect.mjs +0 -8
- package/esm2020/datepicker/positioning/utils/getFixedPositionOffsetParent.mjs +0 -17
- package/esm2020/datepicker/positioning/utils/getOffsetParent.mjs +0 -32
- package/esm2020/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -51
- package/esm2020/datepicker/positioning/utils/getOffsets.mjs +0 -11
- package/esm2020/datepicker/positioning/utils/getOppositePlacement.mjs +0 -8
- package/esm2020/datepicker/positioning/utils/getOppositeVariation.mjs +0 -13
- package/esm2020/datepicker/positioning/utils/getOuterSizes.mjs +0 -14
- package/esm2020/datepicker/positioning/utils/getParentNode.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/getReferenceOffsets.mjs +0 -13
- package/esm2020/datepicker/positioning/utils/getRoot.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/getScroll.mjs +0 -14
- package/esm2020/datepicker/positioning/utils/getScrollParent.mjs +0 -26
- package/esm2020/datepicker/positioning/utils/getStyleComputedProperty.mjs +0 -13
- package/esm2020/datepicker/positioning/utils/getTargetOffsets.mjs +0 -30
- package/esm2020/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -19
- package/esm2020/datepicker/positioning/utils/getWindowSizes.mjs +0 -18
- package/esm2020/datepicker/positioning/utils/includeScroll.mjs +0 -15
- package/esm2020/datepicker/positioning/utils/index.mjs +0 -24
- package/esm2020/datepicker/positioning/utils/isBrowser.mjs +0 -2
- package/esm2020/datepicker/positioning/utils/isFixed.mjs +0 -16
- package/esm2020/datepicker/positioning/utils/isIE.mjs +0 -16
- package/esm2020/datepicker/positioning/utils/isModifierEnabled.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/isNumeric.mjs +0 -7
- package/esm2020/datepicker/positioning/utils/isOffsetContainer.mjs +0 -9
- package/esm2020/datepicker/positioning/utils/setStyles.mjs +0 -17
- package/esm2020/datepicker/positioning/utils/updateContainerClass.mjs +0 -22
- package/esm2020/datepicker/public_api.mjs +0 -25
- package/esm2020/datepicker/reducer/_defaults.mjs +0 -5
- package/esm2020/datepicker/reducer/bs-datepicker.actions.mjs +0 -136
- package/esm2020/datepicker/reducer/bs-datepicker.effects.mjs +0 -169
- package/esm2020/datepicker/reducer/bs-datepicker.reducer.mjs +0 -302
- package/esm2020/datepicker/reducer/bs-datepicker.state.mjs +0 -12
- package/esm2020/datepicker/reducer/bs-datepicker.store.mjs +0 -21
- package/esm2020/datepicker/themes/bs/bs-calendar-layout.component.mjs +0 -54
- package/esm2020/datepicker/themes/bs/bs-current-date-view.component.mjs +0 -23
- package/esm2020/datepicker/themes/bs/bs-custom-dates-view.component.mjs +0 -78
- package/esm2020/datepicker/themes/bs/bs-datepicker-container.component.mjs +0 -319
- package/esm2020/datepicker/themes/bs/bs-datepicker-day-decorator.directive.mjs +0 -52
- package/esm2020/datepicker/themes/bs/bs-datepicker-inline-container.component.mjs +0 -203
- package/esm2020/datepicker/themes/bs/bs-datepicker-navigation-view.component.mjs +0 -111
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-container.component.mjs +0 -362
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-inline-container.component.mjs +0 -203
- package/esm2020/datepicker/themes/bs/bs-days-calendar-view.component.mjs +0 -308
- package/esm2020/datepicker/themes/bs/bs-months-calendar-view.component.mjs +0 -106
- package/esm2020/datepicker/themes/bs/bs-timepicker-view.component.mjs +0 -64
- package/esm2020/datepicker/themes/bs/bs-years-calendar-view.component.mjs +0 -107
- package/esm2020/datepicker/utils/bs-calendar-utils.mjs +0 -43
- package/esm2020/datepicker/utils/matrix-utils.mjs +0 -14
- package/esm2020/datepicker/utils-v2/decorators.mjs +0 -25
- package/esm2020/datepicker/utils-v2/facade/browser.mjs +0 -24
- package/esm2020/datepicker/utils-v2/index.mjs +0 -2
- package/esm2020/datepicker/utils-v2/linked-list.class.mjs +0 -240
- package/esm2020/datepicker/utils-v2/public_api.mjs +0 -11
- package/esm2020/datepicker/utils-v2/theme-provider.mjs +0 -35
- package/esm2020/datepicker/utils-v2/trigger.class.mjs +0 -10
- package/esm2020/datepicker/utils-v2/triggers.mjs +0 -110
- package/esm2020/datepicker/utils-v2/utils.class.mjs +0 -21
- package/esm2020/datepicker/utils-v2/warn-once.mjs +0 -12
- package/esm2020/datepicker/yearpicker.component.mjs +0 -147
- package/fesm2015/mis-crystal-design-system-datepicker.mjs +0 -14950
- package/fesm2015/mis-crystal-design-system-datepicker.mjs.map +0 -1
- package/fesm2020/mis-crystal-design-system-datepicker.mjs +0 -14572
- package/fesm2020/mis-crystal-design-system-datepicker.mjs.map +0 -1
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { filter } from 'rxjs/operators';
|
|
3
|
-
import { MisDatePickerConfig } from './bs-datepicker.config';
|
|
4
|
-
import { MisDateRangePickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./bs-daterangepicker-inline.config";
|
|
7
|
-
import * as i2 from "./component-loader";
|
|
8
|
-
export class MisDateRangePickerInlineDirective {
|
|
9
|
-
constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
|
|
10
|
-
this._config = _config;
|
|
11
|
-
this._elementRef = _elementRef;
|
|
12
|
-
/**
|
|
13
|
-
* Emits when daterangepicker value has been changed
|
|
14
|
-
*/
|
|
15
|
-
this.bsValueChange = new EventEmitter();
|
|
16
|
-
this._subs = [];
|
|
17
|
-
// todo: assign only subset of fields
|
|
18
|
-
Object.assign(this, this._config);
|
|
19
|
-
this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Initial value of datepicker
|
|
23
|
-
*/
|
|
24
|
-
set bsValue(value) {
|
|
25
|
-
if (this._bsValue === value) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
this._bsValue = value;
|
|
29
|
-
this.bsValueChange.emit(value);
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.setConfig();
|
|
33
|
-
// if date changes from external source (model -> view)
|
|
34
|
-
this._subs.push(this.bsValueChange.subscribe((value) => {
|
|
35
|
-
this._datepickerRef.instance.value = value;
|
|
36
|
-
}));
|
|
37
|
-
// if date changes from picker (view -> model)
|
|
38
|
-
this._subs.push(this._datepickerRef.instance.valueChange
|
|
39
|
-
.pipe(filter((range) => range && range[0] && !!range[1]))
|
|
40
|
-
.subscribe((value) => {
|
|
41
|
-
this.bsValue = value;
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
44
|
-
ngOnChanges(changes) {
|
|
45
|
-
if (!this._datepickerRef || !this._datepickerRef.instance) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (changes.minDate) {
|
|
49
|
-
this._datepickerRef.instance.minDate = this.minDate;
|
|
50
|
-
this.setConfig();
|
|
51
|
-
}
|
|
52
|
-
if (changes.maxDate) {
|
|
53
|
-
this._datepickerRef.instance.maxDate = this.maxDate;
|
|
54
|
-
this.setConfig();
|
|
55
|
-
}
|
|
56
|
-
if (changes.datesEnabled) {
|
|
57
|
-
this._datepickerRef.instance.datesEnabled = this.datesEnabled;
|
|
58
|
-
}
|
|
59
|
-
if (changes.datesDisabled) {
|
|
60
|
-
this._datepickerRef.instance.datesDisabled = this.datesDisabled;
|
|
61
|
-
this.setConfig();
|
|
62
|
-
}
|
|
63
|
-
if (changes.daysDisabled) {
|
|
64
|
-
this._datepickerRef.instance.daysDisabled = this.daysDisabled;
|
|
65
|
-
this.setConfig();
|
|
66
|
-
}
|
|
67
|
-
if (changes.isDisabled) {
|
|
68
|
-
this._datepickerRef.instance.isDisabled = this.isDisabled;
|
|
69
|
-
this.setConfig();
|
|
70
|
-
}
|
|
71
|
-
if (changes.dateCustomClasses) {
|
|
72
|
-
this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
|
|
73
|
-
this.setConfig();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Set config for datepicker
|
|
78
|
-
*/
|
|
79
|
-
setConfig() {
|
|
80
|
-
if (this._datepicker) {
|
|
81
|
-
this._datepicker.hide();
|
|
82
|
-
}
|
|
83
|
-
this._config = Object.assign({}, this._config, this.misConfig, {
|
|
84
|
-
value: this._bsValue,
|
|
85
|
-
isDisabled: this.isDisabled,
|
|
86
|
-
minDate: this.minDate || this.misConfig && this.misConfig.minDate,
|
|
87
|
-
maxDate: this.maxDate || this.misConfig && this.misConfig.maxDate,
|
|
88
|
-
daysDisabled: this.daysDisabled || this.misConfig && this.misConfig.daysDisabled,
|
|
89
|
-
dateCustomClasses: this.dateCustomClasses || this.misConfig && this.misConfig.dateCustomClasses,
|
|
90
|
-
datesDisabled: this.datesDisabled || this.misConfig && this.misConfig.datesDisabled,
|
|
91
|
-
datesEnabled: this.datesEnabled || this.misConfig && this.misConfig.datesEnabled,
|
|
92
|
-
ranges: this.misConfig && this.misConfig.ranges,
|
|
93
|
-
maxDateRange: this.misConfig && this.misConfig.maxDateRange
|
|
94
|
-
});
|
|
95
|
-
this._datepickerRef = this._datepicker
|
|
96
|
-
.provide({ provide: MisDatePickerConfig, useValue: this._config })
|
|
97
|
-
.attach(MisDateRangePickerInlineContainerComponent)
|
|
98
|
-
.to(this._elementRef)
|
|
99
|
-
.show();
|
|
100
|
-
}
|
|
101
|
-
ngOnDestroy() {
|
|
102
|
-
this._datepicker.dispose();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
MisDateRangePickerInlineDirective.ɵfac = function MisDateRangePickerInlineDirective_Factory(t) { return new (t || MisDateRangePickerInlineDirective)(i0.ɵɵdirectiveInject(i1.MisDateRangePickerInlineConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.ComponentLoaderFactory)); };
|
|
106
|
-
MisDateRangePickerInlineDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: MisDateRangePickerInlineDirective, selectors: [["mis-daterangepicker-inline"]], inputs: { bsValue: "bsValue", misConfig: "misConfig", isDisabled: "isDisabled", minDate: "minDate", maxDate: "maxDate", dateCustomClasses: "dateCustomClasses", daysDisabled: "daysDisabled", datesDisabled: "datesDisabled", datesEnabled: "datesEnabled" }, outputs: { bsValueChange: "bsValueChange" }, exportAs: ["misDateRangePickerInline"], features: [i0.ɵɵNgOnChangesFeature] });
|
|
107
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDateRangePickerInlineDirective, [{
|
|
108
|
-
type: Directive,
|
|
109
|
-
args: [{
|
|
110
|
-
selector: 'mis-daterangepicker-inline',
|
|
111
|
-
exportAs: 'misDateRangePickerInline'
|
|
112
|
-
}]
|
|
113
|
-
}], function () { return [{ type: i1.MisDateRangePickerInlineConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }]; }, { bsValue: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], misConfig: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], isDisabled: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], minDate: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], maxDate: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], dateCustomClasses: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], daysDisabled: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], datesDisabled: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], datesEnabled: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], bsValueChange: [{
|
|
132
|
-
type: Output
|
|
133
|
-
}] }); })();
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci1pbmxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDUyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFDckMsTUFBTSxFQUMxQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7QUFPdkgsTUFBTSxPQUFPLGlDQUFpQztJQXdENUMsWUFDUyxPQUF1QyxFQUN0QyxXQUF1QixFQUMvQixTQUFvQixFQUNwQixpQkFBbUMsRUFDbkMsR0FBMkI7UUFKcEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0M7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFaakM7O1dBRUc7UUFDTyxrQkFBYSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpELFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBWW5DLHFDQUFxQztRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUNqQyxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQztJQXBFRDs7T0FFRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJ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QUksQ0FBQyxXQUFXLENBQUM7YUFDcEIsSUFBSSxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7a0hBcktVLGlDQUFpQztvRkFBakMsaUNBQWlDO3VGQUFqQyxpQ0FBaUM7Y0FKN0MsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRSwwQkFBMEI7YUFDckM7c01BT0ssT0FBTztrQkFEVixLQUFLO1lBWUcsU0FBUztrQkFBakIsS0FBSztZQUlHLFVBQVU7a0JBQWxCLEtBQUs7WUFJRyxPQUFPO2tCQUFmLEtBQUs7WUFJRyxPQUFPO2tCQUFmLEtBQUs7WUFJRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFJRyxZQUFZO2tCQUFwQixLQUFLO1lBSUcsYUFBYTtrQkFBckIsS0FBSztZQUlHLFlBQVk7a0JBQXBCLEtBQUs7WUFJSSxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuL2NvbXBvbmVudC1sb2FkZXInO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJy4vYnMtZGF0ZXBpY2tlci5jb25maWcnO1xuaW1wb3J0IHsgTWlzRGF0ZVJhbmdlUGlja2VySW5saW5lQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLmNvbmZpZyc7XG5pbXBvcnQgeyBNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3RoZW1lcy9icy9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckRhdGVDdXN0b21DbGFzc2VzIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdtaXMtZGF0ZXJhbmdlcGlja2VyLWlubGluZScsXG4gIGV4cG9ydEFzOiAnbWlzRGF0ZVJhbmdlUGlja2VySW5saW5lJ1xufSlcbmV4cG9ydCBjbGFzcyBNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgX2JzVmFsdWU6IERhdGVbXTtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgZGF0ZXBpY2tlclxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGJzVmFsdWUodmFsdWU6IERhdGVbXSkge1xuICAgIGlmICh0aGlzLl9ic1ZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ic1ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5ic1ZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZyBvYmplY3QgZm9yIGRhdGVwaWNrZXJcbiAgICovXG4gIEBJbnB1dCgpIG1pc0NvbmZpZzogUGFydGlhbDxNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb25maWc+O1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgZGF0ZXBpY2tlciBpcyBlbmFibGVkIG9yIG5vdFxuICAgKi9cbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1pbmltdW0gZGF0ZSB3aGljaCBpcyBhdmFpbGFibGUgZm9yIHNlbGVjdGlvblxuICAgKi9cbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcbiAgLyoqXG4gICAqIE1heGltdW0gZGF0ZSB3aGljaCBpcyBhdmFpbGFibGUgZm9yIHNlbGVjdGlvblxuICAgKi9cbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZTtcbiAgLyoqXG4gICAqIERhdGUgY3VzdG9tIGNsYXNzZXNcbiAgICovXG4gIEBJbnB1dCgpIGRhdGVDdXN0b21DbGFzc2VzOiBEYXRlUGlja2VyRGF0ZUN1c3RvbUNsYXNzZXNbXTtcbiAgLyoqXG4gICAqIERpc2FibGUgc3BlY2lmaWMgZGF5cywgZS5nLiBbMCw2XSB3aWxsIGRpc2FibGUgYWxsIFNhdHVyZGF5cyBhbmQgU3VuZGF5c1xuICAgKi9cbiAgQElucHV0KCkgZGF5c0Rpc2FibGVkPzogbnVtYmVyW107XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRhdGVzXG4gICAqL1xuICBASW5wdXQoKSBkYXRlc0Rpc2FibGVkOiBEYXRlW107XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRhdGVzXG4gICAqL1xuICBASW5wdXQoKSBkYXRlc0VuYWJsZWQ6IERhdGVbXTtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGF0ZXJhbmdlcGlja2VyIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBic1ZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm90ZWN0ZWQgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBfZGF0ZXBpY2tlcjogQ29tcG9uZW50TG9hZGVyPE1pc0RhdGVSYW5nZVBpY2tlcklubGluZUNvbnRhaW5lckNvbXBvbmVudD47XG4gIHByaXZhdGUgX2RhdGVwaWNrZXJSZWY6IENvbXBvbmVudFJlZjxNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfY29uZmlnOiBNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb25maWcsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBjaXM6IENvbXBvbmVudExvYWRlckZhY3RvcnlcbiAgKSB7XG4gICAgLy8gdG9kbzogYXNzaWduIG9ubHkgc3Vic2V0IG9mIGZpZWxkc1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgdGhpcy5fY29uZmlnKTtcbiAgICB0aGlzLl9kYXRlcGlja2VyID0gY2lzLmNyZWF0ZUxvYWRlcjxNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQ+KFxuICAgICAgX2VsZW1lbnRSZWYsXG4gICAgICBfdmlld0NvbnRhaW5lclJlZixcbiAgICAgIF9yZW5kZXJlclxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENvbmZpZygpO1xuXG4gICAgLy8gaWYgZGF0ZSBjaGFuZ2VzIGZyb20gZXh0ZXJuYWwgc291cmNlIChtb2RlbCAtPiB2aWV3KVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuYnNWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gaWYgZGF0ZSBjaGFuZ2VzIGZyb20gcGlja2VyICh2aWV3IC0+IG1vZGVsKVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UudmFsdWVDaGFuZ2VcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChyYW5nZTogRGF0ZVtdKSA9PiByYW5nZSAmJiByYW5nZVswXSAmJiAhIXJhbmdlWzFdKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgICB0aGlzLmJzVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGF0ZXBpY2tlclJlZiB8fCAhdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm1pbkRhdGUpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UubWluRGF0ZSA9IHRoaXMubWluRGF0ZTtcbiAgICAgIHRoaXMuc2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMubWF4RGF0ZSkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5tYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xuICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5kYXRlc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF0ZXNFbmFibGVkID0gdGhpcy5kYXRlc0VuYWJsZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXRlc0Rpc2FibGVkID0gdGhpcy5kYXRlc0Rpc2FibGVkO1xuICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5kYXlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF5c0Rpc2FibGVkID0gdGhpcy5kYXlzRGlzYWJsZWQ7XG4gICAgICB0aGlzLnNldENvbmZpZygpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZDtcbiAgICAgIHRoaXMuc2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZUN1c3RvbUNsYXNzZXMpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF0ZUN1c3RvbUNsYXNzZXMgPSB0aGlzLmRhdGVDdXN0b21DbGFzc2VzO1xuICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyBmb3IgZGF0ZXBpY2tlclxuICAgKi9cbiAgc2V0Q29uZmlnKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRlcGlja2VyKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyLmhpZGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jb25maWcsIHRoaXMubWlzQ29uZmlnLCB7XG4gICAgICB2YWx1ZTogdGhpcy5fYnNWYWx1ZSxcbiAgICAgIGlzRGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSB8fCB0aGlzLm1pc0NvbmZpZyAmJiB0aGlzLm1pc0NvbmZpZy5taW5EYXRlLFxuICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLm1heERhdGUsXG4gICAgICBkYXlzRGlzYWJsZWQ6IHRoaXMuZGF5c0Rpc2FibGVkIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRheXNEaXNhYmxlZCxcbiAgICAgIGRhdGVDdXN0b21DbGFzc2VzOiB0aGlzLmRhdGVDdXN0b21DbGFzc2VzIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVDdXN0b21DbGFzc2VzLFxuICAgICAgZGF0ZXNEaXNhYmxlZDogdGhpcy5kYXRlc0Rpc2FibGVkIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVzRGlzYWJsZWQsXG4gICAgICBkYXRlc0VuYWJsZWQ6IHRoaXMuZGF0ZXNFbmFibGVkIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVzRW5hYmxlZCxcbiAgICAgIHJhbmdlczogdGhpcy5taXNDb25maWcgJiYgdGhpcy5taXNDb25maWcucmFuZ2VzLFxuICAgICAgbWF4RGF0ZVJhbmdlOiB0aGlzLm1pc0NvbmZpZyAmJiB0aGlzLm1pc0NvbmZpZy5tYXhEYXRlUmFuZ2VcbiAgICB9KTtcblxuXG4gICAgdGhpcy5fZGF0ZXBpY2tlclJlZiA9IHRoaXMuX2RhdGVwaWNrZXJcbiAgICAgIC5wcm92aWRlKHsgcHJvdmlkZTogTWlzRGF0ZVBpY2tlckNvbmZpZywgdXNlVmFsdWU6IHRoaXMuX2NvbmZpZyB9KVxuICAgICAgLmF0dGFjaChNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQpXG4gICAgICAudG8odGhpcy5fZWxlbWVudFJlZilcbiAgICAgIC5zaG93KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiBhbnkge1xuICAgIHRoaXMuX2RhdGVwaWNrZXIuZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { MisDatePickerConfig } from './bs-datepicker.config';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class MisDateRangePickerInlineConfig extends MisDatePickerConfig {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
// DatePickerRenderOptions
|
|
8
|
-
this.displayMonths = 2;
|
|
9
|
-
/** turn on/off animation */
|
|
10
|
-
this.isAnimated = false;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
MisDateRangePickerInlineConfig.ɵfac = /*@__PURE__*/ function () { let ɵMisDateRangePickerInlineConfig_BaseFactory; return function MisDateRangePickerInlineConfig_Factory(t) { return (ɵMisDateRangePickerInlineConfig_BaseFactory || (ɵMisDateRangePickerInlineConfig_BaseFactory = i0.ɵɵgetInheritedFactory(MisDateRangePickerInlineConfig)))(t || MisDateRangePickerInlineConfig); }; }();
|
|
14
|
-
MisDateRangePickerInlineConfig.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MisDateRangePickerInlineConfig, factory: MisDateRangePickerInlineConfig.ɵfac, providedIn: 'root' });
|
|
15
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDateRangePickerInlineConfig, [{
|
|
16
|
-
type: Injectable,
|
|
17
|
-
args: [{
|
|
18
|
-
providedIn: 'root'
|
|
19
|
-
}]
|
|
20
|
-
}], null, null); })();
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci1pbmxpbmUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBSzdELE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxtQkFBbUI7SUFIdkU7O1FBSUksMEJBQTBCO1FBQzFCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLDRCQUE0QjtRQUM1QixlQUFVLEdBQUcsS0FBSyxDQUFDO0tBQ3RCOzs4U0FMWSw4QkFBOEIsU0FBOUIsOEJBQThCO29GQUE5Qiw4QkFBOEIsV0FBOUIsOEJBQThCLG1CQUY3QixNQUFNO3VGQUVQLDhCQUE4QjtjQUgxQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1pc0RhdGVSYW5nZVBpY2tlcklubGluZUNvbmZpZyBleHRlbmRzIE1pc0RhdGVQaWNrZXJDb25maWcge1xuICAgIC8vIERhdGVQaWNrZXJSZW5kZXJPcHRpb25zXG4gICAgZGlzcGxheU1vbnRocyA9IDI7XG4gICAgLyoqIHR1cm4gb24vb2ZmIGFuaW1hdGlvbiAqL1xuICAgIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { Directive, forwardRef, Host } from '@angular/core';
|
|
2
|
-
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { parseDate, formatDate, getLocale, isAfter, isBefore, isArray, isDateValid, utcAsLocal } from './chronos';
|
|
4
|
-
import { Subscription } from 'rxjs';
|
|
5
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./bs-daterangepicker.component";
|
|
8
|
-
import * as i2 from "./bs-locale.service";
|
|
9
|
-
const BS_DATERANGEPICKER_VALUE_ACCESSOR = {
|
|
10
|
-
provide: NG_VALUE_ACCESSOR,
|
|
11
|
-
/* tslint:disable-next-line: no-use-before-declare */
|
|
12
|
-
useExisting: forwardRef(() => MisDateRangePickerInputDirective),
|
|
13
|
-
multi: true
|
|
14
|
-
};
|
|
15
|
-
const BS_DATERANGEPICKER_VALIDATOR = {
|
|
16
|
-
provide: NG_VALIDATORS,
|
|
17
|
-
/* tslint:disable-next-line: no-use-before-declare */
|
|
18
|
-
useExisting: forwardRef(() => MisDateRangePickerInputDirective),
|
|
19
|
-
multi: true
|
|
20
|
-
};
|
|
21
|
-
export class MisDateRangePickerInputDirective {
|
|
22
|
-
constructor(_picker, _localeService, _renderer, _elRef, changeDetection) {
|
|
23
|
-
this._picker = _picker;
|
|
24
|
-
this._localeService = _localeService;
|
|
25
|
-
this._renderer = _renderer;
|
|
26
|
-
this._elRef = _elRef;
|
|
27
|
-
this.changeDetection = changeDetection;
|
|
28
|
-
this._onChange = Function.prototype;
|
|
29
|
-
this._onTouched = Function.prototype;
|
|
30
|
-
/* tslint:disable-next-line: no-unused-variable */
|
|
31
|
-
this._validatorChange = Function.prototype;
|
|
32
|
-
this._subs = new Subscription();
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
// update input value on datepicker value update
|
|
36
|
-
this._subs.add(this._picker.bsValueChange.subscribe((value) => {
|
|
37
|
-
this._setInputValue(value);
|
|
38
|
-
if (this._value !== value) {
|
|
39
|
-
this._value = value;
|
|
40
|
-
this._onChange(value);
|
|
41
|
-
this._onTouched();
|
|
42
|
-
}
|
|
43
|
-
this.changeDetection.markForCheck();
|
|
44
|
-
}));
|
|
45
|
-
// update input value on locale change
|
|
46
|
-
this._subs.add(this._localeService.localeChange.subscribe(() => {
|
|
47
|
-
this._setInputValue(this._value);
|
|
48
|
-
}));
|
|
49
|
-
this._subs.add(
|
|
50
|
-
// update input value on format change
|
|
51
|
-
this._picker.rangeInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {
|
|
52
|
-
this._setInputValue(this._value);
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
55
|
-
ngOnDestroy() {
|
|
56
|
-
this._subs.unsubscribe();
|
|
57
|
-
}
|
|
58
|
-
onKeydownEvent(event) {
|
|
59
|
-
if (event.keyCode === 13 || event.code === 'Enter') {
|
|
60
|
-
this.hide();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
_setInputValue(date) {
|
|
64
|
-
let range = '';
|
|
65
|
-
if (date) {
|
|
66
|
-
const start = !date[0] ? ''
|
|
67
|
-
: formatDate(date[0], this._picker._config.rangeInputFormat, this._localeService.currentLocale);
|
|
68
|
-
const end = !date[1] ? ''
|
|
69
|
-
: formatDate(date[1], this._picker._config.rangeInputFormat, this._localeService.currentLocale);
|
|
70
|
-
range = (start && end) ? start + this._picker._config.rangeSeparator + end : '';
|
|
71
|
-
}
|
|
72
|
-
this._renderer.setProperty(this._elRef.nativeElement, 'value', range);
|
|
73
|
-
}
|
|
74
|
-
onChange(event) {
|
|
75
|
-
/* tslint:disable-next-line: no-any*/
|
|
76
|
-
this.writeValue(event.target.value);
|
|
77
|
-
this._onChange(this._value);
|
|
78
|
-
if (this._picker._config.returnFocusToInput) {
|
|
79
|
-
this._renderer.selectRootElement(this._elRef.nativeElement).focus();
|
|
80
|
-
}
|
|
81
|
-
this._onTouched();
|
|
82
|
-
}
|
|
83
|
-
validate(c) {
|
|
84
|
-
const _value = c.value;
|
|
85
|
-
const errors = [];
|
|
86
|
-
if (_value === null || _value === undefined || !isArray(_value)) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
// @ts-ignore
|
|
90
|
-
_value.sort((a, b) => a - b);
|
|
91
|
-
const _isFirstDateValid = isDateValid(_value[0]);
|
|
92
|
-
const _isSecondDateValid = isDateValid(_value[1]);
|
|
93
|
-
if (!_isFirstDateValid) {
|
|
94
|
-
return { misDate: { invalid: _value[0] } };
|
|
95
|
-
}
|
|
96
|
-
if (!_isSecondDateValid) {
|
|
97
|
-
return { misDate: { invalid: _value[1] } };
|
|
98
|
-
}
|
|
99
|
-
if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {
|
|
100
|
-
_value[0] = this._picker.minDate;
|
|
101
|
-
errors.push({ misDate: { minDate: this._picker.minDate } });
|
|
102
|
-
}
|
|
103
|
-
if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {
|
|
104
|
-
_value[1] = this._picker.maxDate;
|
|
105
|
-
errors.push({ misDate: { maxDate: this._picker.maxDate } });
|
|
106
|
-
}
|
|
107
|
-
if (errors.length > 0) {
|
|
108
|
-
this.writeValue(_value);
|
|
109
|
-
return errors;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
registerOnValidatorChange(fn) {
|
|
113
|
-
this._validatorChange = fn;
|
|
114
|
-
}
|
|
115
|
-
writeValue(value) {
|
|
116
|
-
if (!value) {
|
|
117
|
-
this._value = null;
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
const _localeKey = this._localeService.currentLocale;
|
|
121
|
-
const _locale = getLocale(_localeKey);
|
|
122
|
-
if (!_locale) {
|
|
123
|
-
throw new Error(`Locale "${_localeKey}" is not defined, please add it with "defineLocale(...)"`);
|
|
124
|
-
}
|
|
125
|
-
let _input = [];
|
|
126
|
-
if (typeof value === 'string') {
|
|
127
|
-
const trimmedSeparator = this._picker._config.rangeSeparator.trim();
|
|
128
|
-
_input = value
|
|
129
|
-
.split(trimmedSeparator.length > 0 ? trimmedSeparator : this._picker._config.rangeSeparator)
|
|
130
|
-
.map(_val => _val.trim());
|
|
131
|
-
}
|
|
132
|
-
if (Array.isArray(value)) {
|
|
133
|
-
_input = value;
|
|
134
|
-
}
|
|
135
|
-
this._value = _input
|
|
136
|
-
.map((_val) => {
|
|
137
|
-
if (this._picker._config.useUtc) {
|
|
138
|
-
return utcAsLocal(parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale));
|
|
139
|
-
}
|
|
140
|
-
return parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale);
|
|
141
|
-
})
|
|
142
|
-
.map((date) => (isNaN(date.valueOf()) ? null : date));
|
|
143
|
-
}
|
|
144
|
-
this._picker.bsValue = this._value;
|
|
145
|
-
}
|
|
146
|
-
setDisabledState(isDisabled) {
|
|
147
|
-
this._picker.isDisabled = isDisabled;
|
|
148
|
-
if (isDisabled) {
|
|
149
|
-
this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');
|
|
153
|
-
}
|
|
154
|
-
/* tslint:disable-next-line: no-any*/
|
|
155
|
-
registerOnChange(fn) {
|
|
156
|
-
this._onChange = fn;
|
|
157
|
-
}
|
|
158
|
-
/* tslint:disable-next-line: no-any*/
|
|
159
|
-
registerOnTouched(fn) {
|
|
160
|
-
this._onTouched = fn;
|
|
161
|
-
}
|
|
162
|
-
onBlur() {
|
|
163
|
-
this._onTouched();
|
|
164
|
-
}
|
|
165
|
-
hide() {
|
|
166
|
-
this._picker.hide();
|
|
167
|
-
this._renderer.selectRootElement(this._elRef.nativeElement).blur();
|
|
168
|
-
if (this._picker._config.returnFocusToInput) {
|
|
169
|
-
this._renderer.selectRootElement(this._elRef.nativeElement).focus();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
MisDateRangePickerInputDirective.ɵfac = function MisDateRangePickerInputDirective_Factory(t) { return new (t || MisDateRangePickerInputDirective)(i0.ɵɵdirectiveInject(i1.MisDateRangePickerDirective, 1), i0.ɵɵdirectiveInject(i2.BsLocaleService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
174
|
-
MisDateRangePickerInputDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: MisDateRangePickerInputDirective, selectors: [["input", "misDateRangePicker", ""]], hostBindings: function MisDateRangePickerInputDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
175
|
-
i0.ɵɵlistener("change", function MisDateRangePickerInputDirective_change_HostBindingHandler($event) { return ctx.onChange($event); })("keyup.esc", function MisDateRangePickerInputDirective_keyup_esc_HostBindingHandler() { return ctx.hide(); })("keydown", function MisDateRangePickerInputDirective_keydown_HostBindingHandler($event) { return ctx.onKeydownEvent($event); })("blur", function MisDateRangePickerInputDirective_blur_HostBindingHandler() { return ctx.onBlur(); });
|
|
176
|
-
} }, features: [i0.ɵɵProvidersFeature([BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR])] });
|
|
177
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDateRangePickerInputDirective, [{
|
|
178
|
-
type: Directive,
|
|
179
|
-
args: [{
|
|
180
|
-
selector: `input[misDateRangePicker]`,
|
|
181
|
-
host: {
|
|
182
|
-
'(change)': 'onChange($event)',
|
|
183
|
-
'(keyup.esc)': 'hide()',
|
|
184
|
-
'(keydown)': 'onKeydownEvent($event)',
|
|
185
|
-
'(blur)': 'onBlur()'
|
|
186
|
-
},
|
|
187
|
-
providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
|
|
188
|
-
}]
|
|
189
|
-
}], function () { return [{ type: i1.MisDateRangePickerDirective, decorators: [{
|
|
190
|
-
type: Host
|
|
191
|
-
}] }, { type: i2.BsLocaleService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, null); })();
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvYnMtZGF0ZXJhbmdlcGlja2VyLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFVBQVUsRUFDVixJQUFJLEVBS0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsRUFHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsRUFDUixPQUFPLEVBQ1AsV0FBVyxFQUNYLFVBQVUsRUFDWCxNQUFNLFdBQVcsQ0FBQztBQUluQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXRELE1BQU0saUNBQWlDLEdBQWE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixxREFBcUQ7SUFDckQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztJQUMvRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFhO0lBQzdDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLHFEQUFxRDtJQUNyRCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQWFGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFBNEIsT0FBb0MsRUFDNUMsY0FBK0IsRUFDL0IsU0FBb0IsRUFDcEIsTUFBa0IsRUFDbEIsZUFBa0M7UUFKMUIsWUFBTyxHQUFQLE9BQU8sQ0FBNkI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFYOUMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDL0IsZUFBVSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEMsa0RBQWtEO1FBQzFDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFFdEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFPbkMsQ0FBQztJQUVELFFBQVE7UUFDTixnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO2dCQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRU4sc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztRQUNaLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBUztRQUN0QixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ2xELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxLQUFLLEdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQ2xDLENBQUM7WUFDSixNQUFNLEdBQUcsR0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0IsQ0FBQyxDQUFDLFVBQVUsQ0FDVixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUNsQyxDQUFDO1lBQ0osS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2pGO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBWTtRQUNuQixxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxLQUFLLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBa0I7UUFDekIsTUFBTSxNQUFNLEdBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBRTVCLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9ELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxhQUFhO1FBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU3QixNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUM1QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQzdGLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDNUYsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFeEIsT0FBTyxNQUFNLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFjO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7YUFBTTtZQUNMLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsV0FBVyxVQUFVLDBEQUEwRCxDQUNoRixDQUFDO2FBQ0g7WUFFRCxJQUFJLE1BQU0sR0FBc0IsRUFBRSxDQUFDO1lBQ25DLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEUsTUFBTSxHQUFHLEtBQUs7cUJBQ1gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7cUJBQzNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQzdCO1lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQ2hCO1lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNO2lCQUNqQixHQUFHLENBQUMsQ0FBQyxJQUFtQixFQUFRLEVBQUU7Z0JBQy9CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUMvQixPQUFPLFVBQVUsQ0FDZixTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQzFGLENBQUM7aUJBQ0g7Z0JBRUQsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkcsQ0FBQyxDQUNGO2lCQUNBLEdBQUcsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUMvRDtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUNyQyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUUvRSxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGdCQUFnQixDQUFDLEVBQWM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckU7SUFDSCxDQUFDOztnSEFsTVUsZ0NBQWdDO21GQUFoQyxnQ0FBZ0M7cUhBQWhDLG9CQUFnQixvR0FBaEIsVUFBTSxzR0FBTiwwQkFBc0IsMEZBQXRCLFlBQVE7MENBRlIsQ0FBQyxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQzt1RkFFakUsZ0NBQWdDO2NBVjVDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxJQUFJLEVBQUU7b0JBQ0osVUFBVSxFQUFFLGtCQUFrQjtvQkFDOUIsYUFBYSxFQUFFLFFBQVE7b0JBQ3ZCLFdBQVcsRUFBRSx3QkFBd0I7b0JBQ3JDLFFBQVEsRUFBRSxVQUFVO2lCQUNyQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQzthQUM3RTs7c0JBVWMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBQcm92aWRlcixcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgcGFyc2VEYXRlLFxuICBmb3JtYXREYXRlLFxuICBnZXRMb2NhbGUsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc0FycmF5LFxuICBpc0RhdGVWYWxpZCxcbiAgdXRjQXNMb2NhbFxufSBmcm9tICcuL2Nocm9ub3MnO1xuXG5pbXBvcnQgeyBNaXNEYXRlUmFuZ2VQaWNrZXJEaXJlY3RpdmUgfSBmcm9tICcuL2JzLWRhdGVyYW5nZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi9icy1sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBCU19EQVRFUkFOR0VQSUNLRVJfVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmUgKi9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWlzRGF0ZVJhbmdlUGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuY29uc3QgQlNfREFURVJBTkdFUElDS0VSX1ZBTElEQVRPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdXNlLWJlZm9yZS1kZWNsYXJlICovXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1pc0RhdGVSYW5nZVBpY2tlcklucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWVcbn07XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgaW5wdXRbbWlzRGF0ZVJhbmdlUGlja2VyXWAsXG4gIGhvc3Q6IHtcbiAgICAnKGNoYW5nZSknOiAnb25DaGFuZ2UoJGV2ZW50KScsXG4gICAgJyhrZXl1cC5lc2MpJzogJ2hpZGUoKScsXG4gICAgJyhrZXlkb3duKSc6ICdvbktleWRvd25FdmVudCgkZXZlbnQpJyxcbiAgICAnKGJsdXIpJzogJ29uQmx1cigpJ1xuICB9LFxuICBwcm92aWRlcnM6IFtCU19EQVRFUkFOR0VQSUNLRVJfVkFMVUVfQUNDRVNTT1IsIEJTX0RBVEVSQU5HRVBJQ0tFUl9WQUxJREFUT1JdXG59KVxuZXhwb3J0IGNsYXNzIE1pc0RhdGVSYW5nZVBpY2tlcklucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9vbkNoYW5nZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXVudXNlZC12YXJpYWJsZSAqL1xuICBwcml2YXRlIF92YWxpZGF0b3JDaGFuZ2UgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIHByaXZhdGUgX3ZhbHVlOiBEYXRlW107XG4gIHByaXZhdGUgX3N1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIF9waWNrZXI6IE1pc0RhdGVSYW5nZVBpY2tlckRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9jYWxlU2VydmljZTogQnNMb2NhbGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB1cGRhdGUgaW5wdXQgdmFsdWUgb24gZGF0ZXBpY2tlciB2YWx1ZSB1cGRhdGVcbiAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgIHRoaXMuX3BpY2tlci5ic1ZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IERhdGVbXSkgPT4ge1xuICAgICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSkpO1xuXG4gICAgLy8gdXBkYXRlIGlucHV0IHZhbHVlIG9uIGxvY2FsZSBjaGFuZ2VcbiAgICB0aGlzLl9zdWJzLmFkZCh0aGlzLl9sb2NhbGVTZXJ2aWNlLmxvY2FsZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fc2V0SW5wdXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfSkpO1xuXG4gICAgdGhpcy5fc3Vicy5hZGQoXG4gICAgICAvLyB1cGRhdGUgaW5wdXQgdmFsdWUgb24gZm9ybWF0IGNoYW5nZVxuICAgICAgdGhpcy5fcGlja2VyLnJhbmdlSW5wdXRGb3JtYXQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc2V0SW5wdXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvbktleWRvd25FdmVudChldmVudDphbnkpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgX3NldElucHV0VmFsdWUoZGF0ZTogRGF0ZVtdKTogdm9pZCB7XG4gICAgbGV0IHJhbmdlID0gJyc7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0OiBzdHJpbmcgPSAhZGF0ZVswXSA/ICcnXG4gICAgICAgIDogZm9ybWF0RGF0ZShkYXRlWzBdLFxuICAgICAgICAgIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsXG4gICAgICAgICAgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlXG4gICAgICAgICk7XG4gICAgICBjb25zdCBlbmQ6IHN0cmluZyA9ICFkYXRlWzFdID8gJydcbiAgICAgICAgOiBmb3JtYXREYXRlKFxuICAgICAgICAgIGRhdGVbMV0sXG4gICAgICAgICAgdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VJbnB1dEZvcm1hdCxcbiAgICAgICAgICB0aGlzLl9sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGVcbiAgICAgICAgKTtcbiAgICAgIHJhbmdlID0gKHN0YXJ0ICYmIGVuZCkgPyBzdGFydCArIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yICsgZW5kIDogJyc7XG4gICAgfVxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHJhbmdlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICB0aGlzLndyaXRlVmFsdWUoKGV2ZW50LnRhcmdldCBhcyBhbnkpLnZhbHVlKTtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnJldHVybkZvY3VzVG9JbnB1dCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgX3ZhbHVlOiBbRGF0ZSwgRGF0ZV0gPSBjLnZhbHVlO1xuICAgIGNvbnN0IGVycm9yczogb2JqZWN0W10gPSBbXTtcblxuICAgIGlmIChfdmFsdWUgPT09IG51bGwgfHwgX3ZhbHVlID09PSB1bmRlZmluZWQgfHwgIWlzQXJyYXkoX3ZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIF92YWx1ZS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG5cbiAgICBjb25zdCBfaXNGaXJzdERhdGVWYWxpZCA9IGlzRGF0ZVZhbGlkKF92YWx1ZVswXSk7XG4gICAgY29uc3QgX2lzU2Vjb25kRGF0ZVZhbGlkID0gaXNEYXRlVmFsaWQoX3ZhbHVlWzFdKTtcblxuICAgIGlmICghX2lzRmlyc3REYXRlVmFsaWQpIHtcbiAgICAgIHJldHVybiB7IG1pc0RhdGU6IHsgaW52YWxpZDogX3ZhbHVlWzBdIH0gfTtcbiAgICB9XG5cbiAgICBpZiAoIV9pc1NlY29uZERhdGVWYWxpZCkge1xuICAgICAgcmV0dXJuIHsgbWlzRGF0ZTogeyBpbnZhbGlkOiBfdmFsdWVbMV0gfSB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9waWNrZXIgJiYgdGhpcy5fcGlja2VyLm1pbkRhdGUgJiYgaXNCZWZvcmUoX3ZhbHVlWzBdLCB0aGlzLl9waWNrZXIubWluRGF0ZSwgJ2RhdGUnKSkge1xuICAgICAgX3ZhbHVlWzBdID0gdGhpcy5fcGlja2VyLm1pbkRhdGU7XG4gICAgICBlcnJvcnMucHVzaCh7IG1pc0RhdGU6IHsgbWluRGF0ZTogdGhpcy5fcGlja2VyLm1pbkRhdGUgfSB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGlja2VyICYmIHRoaXMuX3BpY2tlci5tYXhEYXRlICYmIGlzQWZ0ZXIoX3ZhbHVlWzFdLCB0aGlzLl9waWNrZXIubWF4RGF0ZSwgJ2RhdGUnKSkge1xuICAgICAgX3ZhbHVlWzFdID0gdGhpcy5fcGlja2VyLm1heERhdGU7XG4gICAgICBlcnJvcnMucHVzaCh7IG1pc0RhdGU6IHsgbWF4RGF0ZTogdGhpcy5fcGlja2VyLm1heERhdGUgfSB9KTtcbiAgICB9XG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoX3ZhbHVlKTtcblxuICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlW10gfCBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IF9sb2NhbGVLZXkgPSB0aGlzLl9sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGU7XG4gICAgICBjb25zdCBfbG9jYWxlID0gZ2V0TG9jYWxlKF9sb2NhbGVLZXkpO1xuICAgICAgaWYgKCFfbG9jYWxlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTG9jYWxlIFwiJHtfbG9jYWxlS2V5fVwiIGlzIG5vdCBkZWZpbmVkLCBwbGVhc2UgYWRkIGl0IHdpdGggXCJkZWZpbmVMb2NhbGUoLi4uKVwiYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBsZXQgX2lucHV0OiAoc3RyaW5nIHwgRGF0ZSlbXSA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZFNlcGFyYXRvciA9IHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yLnRyaW0oKTtcbiAgICAgICAgX2lucHV0ID0gdmFsdWVcbiAgICAgICAgICAuc3BsaXQodHJpbW1lZFNlcGFyYXRvci5sZW5ndGggPiAwID8gdHJpbW1lZFNlcGFyYXRvciA6IHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yKVxuICAgICAgICAgIC5tYXAoX3ZhbCA9PiBfdmFsLnRyaW0oKSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBfaW5wdXQgPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdmFsdWUgPSBfaW5wdXRcbiAgICAgICAgLm1hcCgoX3ZhbDogc3RyaW5nIHwgRGF0ZSk6IERhdGUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnVzZVV0Yykge1xuICAgICAgICAgICAgICByZXR1cm4gdXRjQXNMb2NhbChcbiAgICAgICAgICAgICAgICBwYXJzZURhdGUoX3ZhbCwgdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VJbnB1dEZvcm1hdCwgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VEYXRlKF92YWwsIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsIHRoaXMuX2xvY2FsZVNlcnZpY2UuY3VycmVudExvY2FsZSk7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIC5tYXAoKGRhdGU6IERhdGUpID0+IChpc05hTihkYXRlLnZhbHVlT2YoKSkgPyBudWxsIDogZGF0ZSkpO1xuICAgIH1cblxuICAgIHRoaXMuX3BpY2tlci5ic1ZhbHVlID0gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9waWNrZXIuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJyk7XG4gIH1cblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLl9waWNrZXIuaGlkZSgpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcblxuICAgIGlmICh0aGlzLl9waWNrZXIuX2NvbmZpZy5yZXR1cm5Gb2N1c1RvSW5wdXQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|