@taiga-ui/cdk 3.49.1 → 3.491.1-canary.5e01f6f
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/abstract/control.d.ts +0 -6
- package/abstract/interactive.d.ts +0 -9
- package/abstract/portal-host.d.ts +0 -3
- package/abstract/portal-service.d.ts +0 -3
- package/abstract/taiga-ui-cdk-abstract.d.ts +0 -3
- package/abstract/theme-switcher.d.ts +0 -6
- package/bundles/taiga-ui-cdk-abstract.umd.js +0 -32
- package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-classes.umd.js +0 -9
- package/bundles/taiga-ui-cdk-classes.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-coercion.umd.js +0 -10
- package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js +0 -8
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +0 -11
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +0 -10
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js +0 -4
- package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components.umd.js +0 -4
- package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-constants.umd.js +0 -108
- package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.js +0 -284
- package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-decorators.umd.js +0 -26
- package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +1 -44
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-click-outside.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-click-outside.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-control.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-control.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-drag.umd.js +0 -10
- package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js +0 -5
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.js +0 -18
- package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +0 -17
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +0 -9
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js +0 -10
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.js +0 -9
- package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js +1 -7
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-item.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-let.umd.js +0 -17
- package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +0 -10
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-platform.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-platform.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-portal.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +0 -12
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +0 -11
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resizer.umd.js +0 -5
- package/bundles/taiga-ui-cdk-directives-resizer.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-value-changes.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives-value-changes.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js +0 -7
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.js +0 -4
- package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.js +0 -8
- package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.js +0 -4
- package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-interfaces.umd.js +1 -3
- package/bundles/taiga-ui-cdk-interfaces.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js +1 -34
- package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js +0 -4
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-is-present.umd.js +0 -4
- package/bundles/taiga-ui-cdk-pipes-is-present.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-keys.umd.js +0 -4
- package/bundles/taiga-ui-cdk-pipes-keys.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +0 -4
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-replace.umd.js +1 -7
- package/bundles/taiga-ui-cdk-pipes-replace.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes.umd.js +0 -4
- package/bundles/taiga-ui-cdk-pipes.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +5 -53
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +5 -109
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-types.umd.js +1 -3
- package/bundles/taiga-ui-cdk-types.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-browser.umd.js +0 -4
- package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-color.umd.js +0 -10
- package/bundles/taiga-ui-cdk-utils-color.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.js +2 -53
- package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js +0 -51
- package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-format.umd.js +0 -7
- package/bundles/taiga-ui-cdk-utils-format.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-math.umd.js +0 -38
- package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +6 -42
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-os.umd.js +0 -14
- package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-svg.umd.js +1 -19
- package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils.umd.js +0 -4
- package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk.umd.js +0 -4
- package/bundles/taiga-ui-cdk.umd.js.map +1 -1
- package/classes/assert.d.ts +0 -5
- package/classes/taiga-ui-cdk-classes.d.ts +0 -3
- package/coercion/coerce-boolean-property.d.ts +0 -4
- package/coercion/taiga-ui-cdk-coercion.d.ts +0 -3
- package/components/alert-host/taiga-ui-cdk-components-alert-host.d.ts +0 -3
- package/components/dialog-host/dialog-host.component.d.ts +0 -3
- package/components/dialog-host/taiga-ui-cdk-components-dialog-host.d.ts +0 -3
- package/components/dropdown-host/dropdown-host.component.d.ts +0 -3
- package/components/dropdown-host/dropdown-portal.service.d.ts +0 -3
- package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.d.ts +0 -3
- package/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.d.ts +0 -3
- package/components/taiga-ui-cdk-components.d.ts +0 -3
- package/constants/always-false-handler.d.ts +0 -3
- package/constants/always-true-handler.d.ts +0 -3
- package/constants/browser.d.ts +0 -4
- package/constants/empty.d.ts +0 -5
- package/constants/matcher.d.ts +0 -19
- package/constants/parent-animation.d.ts +0 -6
- package/constants/stringify.d.ts +0 -3
- package/constants/taiga-ui-cdk-constants.d.ts +0 -3
- package/constants/unicode-chars.d.ts +0 -51
- package/constants/used-icons.d.ts +0 -6
- package/date-time/date-fillers.d.ts +0 -11
- package/date-time/date-format.d.ts +0 -3
- package/date-time/date-separator.d.ts +0 -3
- package/date-time/day-range.d.ts +0 -33
- package/date-time/day.d.ts +0 -91
- package/date-time/month-range.d.ts +0 -3
- package/date-time/month.d.ts +0 -56
- package/date-time/taiga-ui-cdk-date-time.d.ts +0 -3
- package/date-time/time.d.ts +0 -36
- package/date-time/year.d.ts +0 -42
- package/decorators/debounce.d.ts +0 -4
- package/decorators/default-prop.d.ts +0 -9
- package/decorators/pure.d.ts +0 -18
- package/decorators/required-setter.d.ts +0 -9
- package/decorators/taiga-ui-cdk-decorators.d.ts +0 -3
- package/directives/active-zone/taiga-ui-cdk-directives-active-zone.d.ts +0 -3
- package/directives/auto-focus/handlers/ios.handler.d.ts +0 -39
- package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.d.ts +0 -3
- package/directives/autofilled/taiga-ui-cdk-directives-autofilled.d.ts +0 -3
- package/directives/checked/taiga-ui-cdk-directives-checked.d.ts +0 -3
- package/directives/click-outside/taiga-ui-cdk-directives-click-outside.d.ts +0 -3
- package/directives/control/taiga-ui-cdk-directives-control.d.ts +0 -3
- package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.d.ts +0 -3
- package/directives/drag/drag.directive.d.ts +0 -3
- package/directives/drag/drag.module.d.ts +0 -3
- package/directives/drag/taiga-ui-cdk-directives-drag.d.ts +0 -3
- package/directives/droppable/taiga-ui-cdk-directives-droppable.d.ts +0 -3
- package/directives/element/taiga-ui-cdk-directives-element.d.ts +0 -3
- package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.d.ts +0 -3
- package/directives/focus-visible/focus-visible.directive.d.ts +0 -5
- package/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.d.ts +0 -3
- package/directives/focusable/focusable.directive.d.ts +0 -6
- package/directives/focusable/taiga-ui-cdk-directives-focusable.d.ts +0 -3
- package/directives/focused/focused.directive.d.ts +0 -5
- package/directives/focused/taiga-ui-cdk-directives-focused.d.ts +0 -3
- package/directives/for/taiga-ui-cdk-directives-for.d.ts +0 -3
- package/directives/for-async/for-async.module.d.ts +0 -3
- package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +0 -3
- package/directives/high-dpi/high-dpi.directive.d.ts +0 -3
- package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.d.ts +0 -3
- package/directives/hovered/taiga-ui-cdk-directives-hovered.d.ts +0 -3
- package/directives/item/item.directive.d.ts +0 -3
- package/directives/item/taiga-ui-cdk-directives-item.d.ts +0 -3
- package/directives/let/let-context.d.ts +0 -3
- package/directives/let/let.directive.d.ts +0 -10
- package/directives/let/taiga-ui-cdk-directives-let.d.ts +0 -3
- package/directives/media/taiga-ui-cdk-directives-media.d.ts +0 -3
- package/directives/obscured/obscured.directive.d.ts +0 -3
- package/directives/obscured/taiga-ui-cdk-directives-obscured.d.ts +0 -3
- package/directives/overscroll/overscroll.directive.d.ts +0 -3
- package/directives/overscroll/taiga-ui-cdk-directives-overscroll.d.ts +0 -3
- package/directives/pan/pan.module.d.ts +0 -3
- package/directives/pan/taiga-ui-cdk-directives-pan.d.ts +0 -3
- package/directives/platform/taiga-ui-cdk-directives-platform.d.ts +0 -3
- package/directives/portal/taiga-ui-cdk-directives-portal.d.ts +0 -3
- package/directives/pressed/taiga-ui-cdk-directives-pressed.d.ts +0 -3
- package/directives/prevent-default/prevent-default.directive.d.ts +0 -5
- package/directives/prevent-default/prevent-default.module.d.ts +0 -3
- package/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.d.ts +0 -3
- package/directives/repeat-times/repeat-times.directive.d.ts +0 -7
- package/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.d.ts +0 -3
- package/directives/resize/resize.module.d.ts +0 -3
- package/directives/resize/taiga-ui-cdk-directives-resize.d.ts +0 -3
- package/directives/resizer/taiga-ui-cdk-directives-resizer.d.ts +0 -3
- package/directives/swipe/swipe.module.d.ts +0 -3
- package/directives/swipe/taiga-ui-cdk-directives-swipe.d.ts +0 -3
- package/directives/taiga-ui-cdk-directives.d.ts +0 -3
- package/directives/validator/taiga-ui-cdk-directives-validator.d.ts +0 -3
- package/directives/value-changes/taiga-ui-cdk-directives-value-changes.d.ts +0 -3
- package/directives/zoom/taiga-ui-cdk-directives-zoom.d.ts +0 -3
- package/directives/zoom/zoom.module.d.ts +0 -3
- package/enums/taiga-ui-cdk-enums.d.ts +0 -3
- package/esm2015/abstract/control.js +1 -7
- package/esm2015/abstract/interactive.js +1 -11
- package/esm2015/abstract/portal-host.js +1 -4
- package/esm2015/abstract/portal-service.js +1 -4
- package/esm2015/abstract/taiga-ui-cdk-abstract.js +1 -4
- package/esm2015/abstract/theme-switcher.js +1 -7
- package/esm2015/classes/assert.js +1 -6
- package/esm2015/classes/taiga-ui-cdk-classes.js +1 -4
- package/esm2015/coercion/coerce-boolean-property.js +1 -7
- package/esm2015/coercion/taiga-ui-cdk-coercion.js +1 -4
- package/esm2015/components/alert-host/alert-host.component.js +1 -5
- package/esm2015/components/alert-host/taiga-ui-cdk-components-alert-host.js +1 -4
- package/esm2015/components/dialog-host/dialog-host.component.js +1 -8
- package/esm2015/components/dialog-host/taiga-ui-cdk-components-dialog-host.js +1 -4
- package/esm2015/components/dropdown-host/dropdown-host.component.js +1 -4
- package/esm2015/components/dropdown-host/dropdown-portal.service.js +1 -4
- package/esm2015/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +1 -4
- package/esm2015/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.js +1 -4
- package/esm2015/components/taiga-ui-cdk-components.js +1 -4
- package/esm2015/constants/always-false-handler.js +1 -5
- package/esm2015/constants/always-true-handler.js +1 -5
- package/esm2015/constants/browser.js +1 -5
- package/esm2015/constants/empty.js +1 -6
- package/esm2015/constants/matcher.js +1 -20
- package/esm2015/constants/parent-animation.js +1 -7
- package/esm2015/constants/stringify.js +1 -4
- package/esm2015/constants/svg-node-filter.js +1 -3
- package/esm2015/constants/taiga-ui-cdk-constants.js +1 -4
- package/esm2015/constants/unicode-chars.js +1 -52
- package/esm2015/constants/used-icons.js +1 -7
- package/esm2015/date-time/date-fillers.js +1 -12
- package/esm2015/date-time/date-format.js +1 -4
- package/esm2015/date-time/date-separator.js +1 -4
- package/esm2015/date-time/day-range.js +1 -34
- package/esm2015/date-time/day.js +1 -94
- package/esm2015/date-time/month-range.js +1 -4
- package/esm2015/date-time/month.js +1 -57
- package/esm2015/date-time/taiga-ui-cdk-date-time.js +1 -4
- package/esm2015/date-time/time.js +1 -37
- package/esm2015/date-time/year.js +1 -43
- package/esm2015/decorators/debounce.js +1 -5
- package/esm2015/decorators/default-prop.js +1 -10
- package/esm2015/decorators/required-setter.js +1 -10
- package/esm2015/decorators/taiga-ui-cdk-decorators.js +1 -4
- package/esm2015/directives/active-zone/taiga-ui-cdk-directives-active-zone.js +1 -4
- package/esm2015/directives/auto-focus/autofocus.options.js +2 -3
- package/esm2015/directives/auto-focus/handlers/ios.handler.js +1 -40
- package/esm2015/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.js +1 -4
- package/esm2015/directives/autofilled/taiga-ui-cdk-directives-autofilled.js +1 -4
- package/esm2015/directives/checked/taiga-ui-cdk-directives-checked.js +1 -4
- package/esm2015/directives/click-outside/taiga-ui-cdk-directives-click-outside.js +1 -4
- package/esm2015/directives/control/taiga-ui-cdk-directives-control.js +1 -4
- package/esm2015/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +1 -4
- package/esm2015/directives/drag/drag.directive.js +1 -4
- package/esm2015/directives/drag/drag.module.js +1 -4
- package/esm2015/directives/drag/taiga-ui-cdk-directives-drag.js +1 -4
- package/esm2015/directives/droppable/droppable.directive.js +1 -2
- package/esm2015/directives/droppable/taiga-ui-cdk-directives-droppable.js +1 -4
- package/esm2015/directives/element/element.directive.js +1 -15
- package/esm2015/directives/element/taiga-ui-cdk-directives-element.js +1 -4
- package/esm2015/directives/focus-trap/focus-trap.directive.js +1 -14
- package/esm2015/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.js +1 -4
- package/esm2015/directives/focus-visible/focus-visible.directive.js +1 -6
- package/esm2015/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.js +1 -4
- package/esm2015/directives/focusable/focusable.directive.js +1 -7
- package/esm2015/directives/focusable/taiga-ui-cdk-directives-focusable.js +1 -4
- package/esm2015/directives/focused/focused.directive.js +1 -6
- package/esm2015/directives/focused/taiga-ui-cdk-directives-focused.js +1 -4
- package/esm2015/directives/for/taiga-ui-cdk-directives-for.js +1 -4
- package/esm2015/directives/for-async/for-async.module.js +1 -4
- package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +1 -4
- package/esm2015/directives/high-dpi/high-dpi.directive.js +1 -4
- package/esm2015/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.js +1 -4
- package/esm2015/directives/hovered/hovered.service.js +2 -4
- package/esm2015/directives/hovered/taiga-ui-cdk-directives-hovered.js +1 -4
- package/esm2015/directives/item/item.directive.js +1 -4
- package/esm2015/directives/item/taiga-ui-cdk-directives-item.js +1 -4
- package/esm2015/directives/let/let-context.js +1 -4
- package/esm2015/directives/let/let.directive.js +1 -11
- package/esm2015/directives/let/taiga-ui-cdk-directives-let.js +1 -4
- package/esm2015/directives/media/media.directive.js +1 -4
- package/esm2015/directives/media/taiga-ui-cdk-directives-media.js +1 -4
- package/esm2015/directives/obscured/obscured.directive.js +1 -4
- package/esm2015/directives/obscured/taiga-ui-cdk-directives-obscured.js +1 -4
- package/esm2015/directives/overscroll/overscroll.directive.js +1 -7
- package/esm2015/directives/overscroll/taiga-ui-cdk-directives-overscroll.js +1 -4
- package/esm2015/directives/pan/pan.module.js +1 -4
- package/esm2015/directives/pan/taiga-ui-cdk-directives-pan.js +1 -4
- package/esm2015/directives/platform/taiga-ui-cdk-directives-platform.js +1 -4
- package/esm2015/directives/portal/taiga-ui-cdk-directives-portal.js +1 -4
- package/esm2015/directives/pressed/taiga-ui-cdk-directives-pressed.js +1 -4
- package/esm2015/directives/prevent-default/prevent-default.directive.js +1 -6
- package/esm2015/directives/prevent-default/prevent-default.module.js +1 -4
- package/esm2015/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.js +1 -4
- package/esm2015/directives/repeat-times/repeat-times.directive.js +1 -8
- package/esm2015/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.js +1 -4
- package/esm2015/directives/resize/resize.module.js +1 -4
- package/esm2015/directives/resize/taiga-ui-cdk-directives-resize.js +1 -4
- package/esm2015/directives/resizer/resizer.directive.js +1 -2
- package/esm2015/directives/resizer/taiga-ui-cdk-directives-resizer.js +1 -4
- package/esm2015/directives/swipe/swipe.module.js +1 -4
- package/esm2015/directives/swipe/taiga-ui-cdk-directives-swipe.js +1 -4
- package/esm2015/directives/taiga-ui-cdk-directives.js +1 -4
- package/esm2015/directives/validator/taiga-ui-cdk-directives-validator.js +1 -4
- package/esm2015/directives/value-changes/taiga-ui-cdk-directives-value-changes.js +1 -4
- package/esm2015/directives/zoom/taiga-ui-cdk-directives-zoom.js +1 -4
- package/esm2015/directives/zoom/zoom.module.js +1 -4
- package/esm2015/enums/day-of-week.js +1 -3
- package/esm2015/enums/month-number.js +1 -3
- package/esm2015/enums/taiga-ui-cdk-enums.js +1 -4
- package/esm2015/exceptions/taiga-ui-cdk-exceptions.js +1 -4
- package/esm2015/interfaces/taiga-ui-cdk-interfaces.js +1 -4
- package/esm2015/observables/control-value.js +1 -4
- package/esm2015/observables/drag-and-drop-from.js +1 -3
- package/esm2015/observables/focus-visible-observable.js +2 -6
- package/esm2015/observables/is-alive.js +1 -4
- package/esm2015/observables/items-query-list-observable.js +1 -7
- package/esm2015/observables/mouse-drag-finish-from.js +1 -5
- package/esm2015/observables/scroll-from.js +1 -4
- package/esm2015/observables/taiga-ui-cdk-observables.js +1 -4
- package/esm2015/observables/typed-from-event.js +1 -5
- package/esm2015/pipes/filter/taiga-ui-cdk-pipes-filter.js +1 -4
- package/esm2015/pipes/is-present/taiga-ui-cdk-pipes-is-present.js +1 -4
- package/esm2015/pipes/keys/taiga-ui-cdk-pipes-keys.js +1 -4
- package/esm2015/pipes/mapper/taiga-ui-cdk-pipes-mapper.js +1 -4
- package/esm2015/pipes/replace/replace.pipe.js +2 -4
- package/esm2015/pipes/replace/taiga-ui-cdk-pipes-replace.js +1 -4
- package/esm2015/pipes/taiga-ui-cdk-pipes.js +1 -4
- package/esm2015/services/destroy.service.js +1 -9
- package/esm2015/services/directive-styles.service.js +1 -4
- package/esm2015/services/focus-visible.service.js +1 -6
- package/esm2015/services/id.service.js +1 -4
- package/esm2015/services/obscured.service.js +2 -10
- package/esm2015/services/pan.service.js +2 -4
- package/esm2015/services/parents-scroll.service.js +2 -7
- package/esm2015/services/resize.service.js +2 -8
- package/esm2015/services/static-request.service.js +2 -5
- package/esm2015/services/taiga-ui-cdk-services.js +1 -4
- package/esm2015/taiga-ui-cdk.js +1 -4
- package/esm2015/tokens/active-element.js +4 -26
- package/esm2015/tokens/alerts.js +1 -4
- package/esm2015/tokens/default-renderer.js +2 -10
- package/esm2015/tokens/dialogs.js +1 -5
- package/esm2015/tokens/ensure-base-href.js +1 -4
- package/esm2015/tokens/focusable-item-accessor.js +1 -4
- package/esm2015/tokens/is-android.js +1 -4
- package/esm2015/tokens/is-apple.js +1 -4
- package/esm2015/tokens/is-chromium.js +1 -4
- package/esm2015/tokens/is-cypress.js +1 -5
- package/esm2015/tokens/is-e2e.js +1 -4
- package/esm2015/tokens/is-firefox.js +1 -4
- package/esm2015/tokens/is-ios.js +1 -4
- package/esm2015/tokens/is-mobile.js +1 -5
- package/esm2015/tokens/is-playwright.js +1 -4
- package/esm2015/tokens/is-webkit.js +1 -4
- package/esm2015/tokens/platform.js +1 -2
- package/esm2015/tokens/range.js +1 -4
- package/esm2015/tokens/removed-element.js +1 -4
- package/esm2015/tokens/scroll-ref.js +1 -4
- package/esm2015/tokens/swipe-options.js +1 -4
- package/esm2015/tokens/taiga-ui-cdk-tokens.js +1 -4
- package/esm2015/tokens/take-only-trusted-events.js +1 -7
- package/esm2015/tokens/window-height.js +1 -4
- package/esm2015/tokens/zoom-options.js +1 -4
- package/esm2015/types/taiga-ui-cdk-types.js +1 -4
- package/esm2015/utils/browser/taiga-ui-cdk-utils-browser.js +1 -4
- package/esm2015/utils/color/hex-to-rgba.js +1 -2
- package/esm2015/utils/color/hsv-to-rgb.js +1 -4
- package/esm2015/utils/color/rgb-to-hsv.js +1 -2
- package/esm2015/utils/color/rgba-to-hex.js +1 -2
- package/esm2015/utils/color/taiga-ui-cdk-utils-color.js +1 -4
- package/esm2015/utils/dom/element-checks.js +1 -2
- package/esm2015/utils/dom/get-actual-target.js +1 -4
- package/esm2015/utils/dom/get-clipboard-data-text.js +1 -4
- package/esm2015/utils/dom/get-element-obscurers.js +1 -10
- package/esm2015/utils/dom/get-element-offset.js +1 -8
- package/esm2015/utils/dom/get-scroll-parent.js +1 -7
- package/esm2015/utils/dom/get-selected-text.js +1 -9
- package/esm2015/utils/dom/is-inside-iframe.js +1 -4
- package/esm2015/utils/dom/is-node-in.js +1 -8
- package/esm2015/utils/dom/retarget-boundary-crossing.js +3 -3
- package/esm2015/utils/dom/taiga-ui-cdk-utils-dom.js +1 -4
- package/esm2015/utils/focus/blur-native-focused.js +1 -4
- package/esm2015/utils/focus/get-closest-focusable.js +1 -5
- package/esm2015/utils/focus/get-native-focused.js +1 -6
- package/esm2015/utils/focus/is-native-focused-in.js +1 -8
- package/esm2015/utils/focus/is-native-focused.js +1 -9
- package/esm2015/utils/focus/is-native-keyboard-focusable.js +1 -7
- package/esm2015/utils/focus/move-focus.js +1 -8
- package/esm2015/utils/focus/set-native-mouse-focused.js +1 -8
- package/esm2015/utils/focus/taiga-ui-cdk-utils-focus.js +1 -4
- package/esm2015/utils/format/px.js +1 -4
- package/esm2015/utils/format/taiga-ui-cdk-utils-format.js +1 -4
- package/esm2015/utils/math/clamp.js +1 -8
- package/esm2015/utils/math/normalize-to-int-number.js +1 -9
- package/esm2015/utils/math/quantize.js +1 -7
- package/esm2015/utils/math/round.js +1 -8
- package/esm2015/utils/math/sum.js +1 -4
- package/esm2015/utils/math/taiga-ui-cdk-utils-math.js +1 -4
- package/esm2015/utils/math/to-radians.js +1 -4
- package/esm2015/utils/miscellaneous/create-options.js +1 -2
- package/esm2015/utils/miscellaneous/flat-length.js +1 -6
- package/esm2015/utils/miscellaneous/get-original-array-from-query-list.js +1 -7
- package/esm2015/utils/miscellaneous/is-number.js +1 -2
- package/esm2015/utils/miscellaneous/is-object.js +1 -2
- package/esm2015/utils/miscellaneous/is-string.js +1 -2
- package/esm2015/utils/miscellaneous/is-valid-url.js +7 -8
- package/esm2015/utils/miscellaneous/nullable-same.js +1 -9
- package/esm2015/utils/miscellaneous/object-from-entries.js +1 -9
- package/esm2015/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.js +1 -4
- package/esm2015/utils/os/is-apple-platform.js +1 -11
- package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +1 -4
- package/esm2015/utils/svg/svg-linear-gradient-processor.js +2 -16
- package/esm2015/utils/svg/taiga-ui-cdk-utils-svg.js +1 -4
- package/esm2015/utils/taiga-ui-cdk-utils.js +1 -4
- package/exceptions/taiga-ui-cdk-exceptions.d.ts +0 -3
- package/fesm2015/taiga-ui-cdk-abstract.js +0 -32
- package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-classes.js +0 -9
- package/fesm2015/taiga-ui-cdk-classes.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-coercion.js +0 -10
- package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-alert-host.js +0 -8
- package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js +0 -11
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +0 -10
- package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-scroll-controls.js +0 -4
- package/fesm2015/taiga-ui-cdk-components-scroll-controls.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components.js +0 -4
- package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-constants.js +0 -108
- package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-date-time.js +0 -284
- package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-decorators.js +0 -26
- package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-active-zone.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +1 -44
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-checked.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-click-outside.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-click-outside.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-control.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-control.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-drag.js +0 -10
- package/fesm2015/taiga-ui-cdk-directives-drag.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-droppable.js +0 -5
- package/fesm2015/taiga-ui-cdk-directives-droppable.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-element.js +0 -18
- package/fesm2015/taiga-ui-cdk-directives-element.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +0 -17
- package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-visible.js +0 -9
- package/fesm2015/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focusable.js +0 -10
- package/fesm2015/taiga-ui-cdk-directives-focusable.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focused.js +0 -9
- package/fesm2015/taiga-ui-cdk-directives-focused.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for-async.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-high-dpi.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-hovered.js +1 -7
- package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-item.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-let.js +0 -17
- package/fesm2015/taiga-ui-cdk-directives-let.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-media.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-obscured.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-obscured.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-overscroll.js +0 -10
- package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-pan.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-platform.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-platform.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-portal.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-portal.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-pressed.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-pressed.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-prevent-default.js +0 -12
- package/fesm2015/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-repeat-times.js +0 -11
- package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-resize.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-resize.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-resizer.js +0 -5
- package/fesm2015/taiga-ui-cdk-directives-resizer.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-swipe.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-validator.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-value-changes.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives-value-changes.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-zoom.js +0 -7
- package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives.js +0 -4
- package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-enums.js +0 -8
- package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-exceptions.js +0 -4
- package/fesm2015/taiga-ui-cdk-exceptions.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-interfaces.js +1 -3
- package/fesm2015/taiga-ui-cdk-interfaces.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js +1 -34
- package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-filter.js +0 -4
- package/fesm2015/taiga-ui-cdk-pipes-filter.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-is-present.js +0 -4
- package/fesm2015/taiga-ui-cdk-pipes-is-present.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-keys.js +0 -4
- package/fesm2015/taiga-ui-cdk-pipes-keys.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-mapper.js +0 -4
- package/fesm2015/taiga-ui-cdk-pipes-mapper.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-replace.js +1 -7
- package/fesm2015/taiga-ui-cdk-pipes-replace.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes.js +0 -4
- package/fesm2015/taiga-ui-cdk-pipes.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-services.js +5 -52
- package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +4 -108
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-types.js +1 -3
- package/fesm2015/taiga-ui-cdk-types.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-browser.js +0 -4
- package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-color.js +0 -10
- package/fesm2015/taiga-ui-cdk-utils-color.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-dom.js +2 -53
- package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js +0 -51
- package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-format.js +0 -7
- package/fesm2015/taiga-ui-cdk-utils-format.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-math.js +0 -38
- package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +6 -42
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-os.js +0 -14
- package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-svg.js +1 -19
- package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils.js +0 -4
- package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
- package/fesm2015/taiga-ui-cdk.js +0 -4
- package/fesm2015/taiga-ui-cdk.js.map +1 -1
- package/interfaces/control-value-transformer.d.ts +0 -3
- package/interfaces/day-like.d.ts +0 -3
- package/interfaces/focusable-element-accessor.d.ts +0 -4
- package/interfaces/month-like.d.ts +0 -3
- package/interfaces/taiga-ui-cdk-interfaces.d.ts +0 -3
- package/interfaces/year-like.d.ts +0 -3
- package/observables/control-value.d.ts +0 -3
- package/observables/is-alive.d.ts +0 -3
- package/observables/items-query-list-observable.d.ts +0 -6
- package/observables/mouse-drag-finish-from.d.ts +0 -4
- package/observables/scroll-from.d.ts +0 -3
- package/observables/taiga-ui-cdk-observables.d.ts +0 -3
- package/package.json +1 -1
- package/pipes/filter/filter.pipe.d.ts +0 -7
- package/pipes/filter/taiga-ui-cdk-pipes-filter.d.ts +0 -3
- package/pipes/is-present/taiga-ui-cdk-pipes-is-present.d.ts +0 -3
- package/pipes/keys/taiga-ui-cdk-pipes-keys.d.ts +0 -3
- package/pipes/mapper/mapper.pipe.d.ts +0 -7
- package/pipes/mapper/taiga-ui-cdk-pipes-mapper.d.ts +0 -3
- package/pipes/replace/taiga-ui-cdk-pipes-replace.d.ts +0 -3
- package/pipes/taiga-ui-cdk-pipes.d.ts +0 -3
- package/schematics/constants/file-globs.js +1 -3
- package/schematics/ng-add/index.js +0 -1
- package/schematics/ng-add/schema.d.ts +0 -12
- package/schematics/ng-update/steps/show-warnings.js +0 -5
- package/schematics/ng-update/v3/constants/breakpoints.js +0 -2
- package/schematics/ng-update/v3/constants/enums.js +0 -4
- package/schematics/ng-update/v3/constants/templates.d.ts +0 -5
- package/schematics/ng-update/v3/constants/templates.js +0 -5
- package/schematics/ng-update/v3/index.js +1 -5
- package/schematics/ng-update/v3/steps/migrate-date-time.js +0 -18
- package/schematics/ng-update/v3/steps/migrate-progress.js +1 -3
- package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +0 -6
- package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +0 -5
- package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.js +0 -1
- package/schematics/ng-update/v3/steps/migrate-templates.js +0 -1
- package/schematics/ng-update/v3/steps/miscellaneous.js +0 -4
- package/schematics/ng-update/v3/steps/replace-functions.js +1 -1
- package/schematics/ng-update/v3-30/index.js +0 -1
- package/schematics/ng-update/v3-35/index.js +0 -1
- package/schematics/ng-update/v3-36/index.js +0 -1
- package/schematics/ng-update/v3-40/index.js +0 -1
- package/schematics/ng-update/v3-5/index.js +0 -1
- package/schematics/ng-update/v4/index.js +0 -1
- package/schematics/utils/add-import-to-component.js +0 -1
- package/schematics/utils/angular/ng-module.d.ts +0 -3
- package/schematics/utils/angular/ng-module.js +0 -3
- package/schematics/utils/angular-json-manipulations.js +0 -7
- package/schematics/utils/colored-log.js +1 -1
- package/schematics/utils/get-projects.js +1 -3
- package/schematics/utils/is-ci.js +11 -13
- package/schematics/utils/progress.js +0 -1
- package/schematics/utils/push-to-array-property.js +0 -1
- package/schematics/utils/templates/elements.d.ts +0 -19
- package/schematics/utils/templates/elements.js +2 -26
- package/schematics/utils/templates/ng-component-input-manipulations.d.ts +0 -44
- package/schematics/utils/templates/ng-component-input-manipulations.js +1 -47
- package/services/destroy.service.d.ts +0 -8
- package/services/directive-styles.service.d.ts +0 -3
- package/services/focus-visible.service.d.ts +0 -5
- package/services/id.service.d.ts +0 -3
- package/services/obscured.service.d.ts +0 -5
- package/services/parents-scroll.service.d.ts +0 -3
- package/services/taiga-ui-cdk-services.d.ts +0 -3
- package/taiga-ui-cdk.d.ts +0 -3
- package/tokens/active-element.d.ts +0 -3
- package/tokens/alerts.d.ts +0 -3
- package/tokens/default-renderer.d.ts +0 -6
- package/tokens/dialogs.d.ts +0 -3
- package/tokens/ensure-base-href.d.ts +0 -3
- package/tokens/focusable-item-accessor.d.ts +0 -3
- package/tokens/is-android.d.ts +0 -3
- package/tokens/is-apple.d.ts +0 -3
- package/tokens/is-chromium.d.ts +0 -3
- package/tokens/is-cypress.d.ts +0 -4
- package/tokens/is-e2e.d.ts +0 -3
- package/tokens/is-firefox.d.ts +0 -3
- package/tokens/is-ios.d.ts +0 -3
- package/tokens/is-mobile.d.ts +0 -3
- package/tokens/is-playwright.d.ts +0 -3
- package/tokens/is-webkit.d.ts +0 -3
- package/tokens/range.d.ts +0 -3
- package/tokens/removed-element.d.ts +0 -3
- package/tokens/scroll-ref.d.ts +0 -3
- package/tokens/swipe-options.d.ts +0 -3
- package/tokens/taiga-ui-cdk-tokens.d.ts +0 -3
- package/tokens/take-only-trusted-events.d.ts +0 -6
- package/tokens/window-height.d.ts +0 -3
- package/tokens/zoom-options.d.ts +0 -3
- package/types/autocomplete.d.ts +0 -1
- package/types/date-mode.d.ts +0 -5
- package/types/event-with.d.ts +0 -3
- package/types/mapper.d.ts +0 -8
- package/types/matcher.d.ts +0 -8
- package/types/taiga-ui-cdk-types.d.ts +0 -3
- package/utils/browser/taiga-ui-cdk-utils-browser.d.ts +0 -3
- package/utils/color/hsv-to-rgb.d.ts +0 -3
- package/utils/color/taiga-ui-cdk-utils-color.d.ts +0 -3
- package/utils/dom/get-actual-target.d.ts +0 -3
- package/utils/dom/get-clipboard-data-text.d.ts +0 -3
- package/utils/dom/get-element-obscurers.d.ts +0 -9
- package/utils/dom/get-element-offset.d.ts +0 -7
- package/utils/dom/get-scroll-parent.d.ts +0 -6
- package/utils/dom/get-selected-text.d.ts +0 -8
- package/utils/dom/is-inside-iframe.d.ts +0 -3
- package/utils/dom/is-node-in.d.ts +0 -7
- package/utils/dom/taiga-ui-cdk-utils-dom.d.ts +0 -3
- package/utils/focus/blur-native-focused.d.ts +0 -3
- package/utils/focus/get-closest-focusable.d.ts +0 -20
- package/utils/focus/get-native-focused.d.ts +0 -5
- package/utils/focus/is-native-focused-in.d.ts +0 -6
- package/utils/focus/is-native-focused.d.ts +0 -8
- package/utils/focus/is-native-keyboard-focusable.d.ts +0 -6
- package/utils/focus/move-focus.d.ts +0 -7
- package/utils/focus/set-native-mouse-focused.d.ts +0 -7
- package/utils/focus/taiga-ui-cdk-utils-focus.d.ts +0 -3
- package/utils/format/px.d.ts +0 -3
- package/utils/format/taiga-ui-cdk-utils-format.d.ts +0 -3
- package/utils/math/clamp.d.ts +0 -7
- package/utils/math/normalize-to-int-number.d.ts +0 -8
- package/utils/math/quantize.d.ts +0 -6
- package/utils/math/sum.d.ts +0 -3
- package/utils/math/taiga-ui-cdk-utils-math.d.ts +0 -3
- package/utils/math/to-radians.d.ts +0 -3
- package/utils/miscellaneous/create-options.d.ts +0 -1
- package/utils/miscellaneous/flat-length.d.ts +0 -5
- package/utils/miscellaneous/get-original-array-from-query-list.d.ts +0 -6
- package/utils/miscellaneous/is-string.js +0 -1
- package/utils/miscellaneous/nullable-same.d.ts +0 -8
- package/utils/miscellaneous/object-from-entries.d.ts +0 -8
- package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.d.ts +0 -3
- package/utils/os/is-apple-platform.d.ts +0 -10
- package/utils/os/taiga-ui-cdk-utils-os.d.ts +0 -3
- package/utils/svg/svg-linear-gradient-processor.d.ts +0 -14
- package/utils/svg/taiga-ui-cdk-utils-svg.d.ts +0 -3
- package/utils/taiga-ui-cdk-utils.d.ts +0 -3
@@ -1,5 +1,2 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
1
|
export * from './index';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktY2RrLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdGFpZ2EtdWktY2RrLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
@@ -1,64 +1,13 @@
|
|
1
|
-
/**
|
2
|
-
* {@link https://unicode-table.com/en/00A0/ Non-breaking space}.
|
3
|
-
*/
|
4
1
|
export const CHAR_NO_BREAK_SPACE = `\u00A0`;
|
5
|
-
/**
|
6
|
-
* {@link https://unicode-table.com/en/2013/ EN dash}
|
7
|
-
* is used to indicate a range of numbers or a span of time.
|
8
|
-
* @example 2006–2022
|
9
|
-
* ___
|
10
|
-
* Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!
|
11
|
-
*/
|
12
2
|
export const CHAR_EN_DASH = `\u2013`;
|
13
|
-
/**
|
14
|
-
* {@link https://unicode-table.com/en/2014/ EM dash}
|
15
|
-
* is used to mark a break in a sentence.
|
16
|
-
* @example Taiga UI — powerful set of open source components for Angular
|
17
|
-
* ___
|
18
|
-
* Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!
|
19
|
-
*/
|
20
3
|
export const CHAR_EM_DASH = `\u2014`;
|
21
|
-
/**
|
22
|
-
* {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}
|
23
|
-
*/
|
24
4
|
export const CHAR_LAQUO = `\u00AB`;
|
25
|
-
/**
|
26
|
-
* {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}
|
27
|
-
*/
|
28
5
|
export const CHAR_RAQUO = `\u00BB`;
|
29
|
-
/**
|
30
|
-
* {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}
|
31
|
-
* is used to combine words.
|
32
|
-
* @example well-behaved
|
33
|
-
* ___
|
34
|
-
* Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!
|
35
|
-
*/
|
36
6
|
export const CHAR_HYPHEN = `\u002D`;
|
37
|
-
/**
|
38
|
-
* {@link https://unicode-table.com/en/2212/ Minus}
|
39
|
-
* is used as math operator symbol or before negative digits.
|
40
|
-
* ---
|
41
|
-
* Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}
|
42
|
-
*/
|
43
7
|
export const CHAR_MINUS = `\u2212`;
|
44
|
-
/**
|
45
|
-
* {@link https://unicode-table.com/en/002B/ Plus}
|
46
|
-
*/
|
47
8
|
export const CHAR_PLUS = `\u002B`;
|
48
|
-
/**
|
49
|
-
* {@link https://unicode-table.com/en/2022/ Bullet}.
|
50
|
-
*/
|
51
9
|
export const CHAR_BULLET = `\u2022`;
|
52
|
-
/**
|
53
|
-
* {@link https://unicode-table.com/en/2026/ Suspension points}.
|
54
|
-
*/
|
55
10
|
export const CHAR_ELLIPSIS = `\u2026`;
|
56
|
-
/**
|
57
|
-
* {@link https://unicode-table.com/en/00A4/ Suspension points}.
|
58
|
-
*/
|
59
11
|
export const CHAR_CURRENCY_SIGN = `\u00A4`;
|
60
|
-
/**
|
61
|
-
* {@link https://unicode-table.com/en/200b/ Suspension points}.
|
62
|
-
*/
|
63
12
|
export const CHAR_ZERO_WIDTH_SPACE = `\u200B`;
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pY29kZS1jaGFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdW5pY29kZS1jaGFycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQUM7QUFTNUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztBQVNyQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDO0FBS3JDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFLbkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztBQVNuQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBUXBDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFLbkMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQztBQUtsQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBS3BDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFLdEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDO0FBSzNDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMDBBMC8gTm9uLWJyZWFraW5nIHNwYWNlfS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfTk9fQlJFQUtfU1BBQ0UgPSBgXFx1MDBBMGA7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMjAxMy8gRU4gZGFzaH1cbiAqIGlzIHVzZWQgdG8gaW5kaWNhdGUgYSByYW5nZSBvZiBudW1iZXJzIG9yIGEgc3BhbiBvZiB0aW1lLlxuICogQGV4YW1wbGUgMjAwNuKAkzIwMjJcbiAqIF9fX1xuICogRG9uJ3QgY29uZnVzZSB3aXRoIHtAbGluayBDSEFSX0VNX0RBU0h9IG9yIHtAbGluayBDSEFSX0hZUEhFTn0hXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0VOX0RBU0ggPSBgXFx1MjAxM2A7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMjAxNC8gRU0gZGFzaH1cbiAqIGlzIHVzZWQgdG8gbWFyayBhIGJyZWFrIGluIGEgc2VudGVuY2UuXG4gKiBAZXhhbXBsZSBUYWlnYSBVSSDigJQgcG93ZXJmdWwgc2V0IG9mIG9wZW4gc291cmNlIGNvbXBvbmVudHMgZm9yIEFuZ3VsYXJcbiAqIF9fX1xuICogRG9uJ3QgY29uZnVzZSB3aXRoIHtAbGluayBDSEFSX0VOX0RBU0h9IG9yIHtAbGluayBDSEFSX0hZUEhFTn0hXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0VNX0RBU0ggPSBgXFx1MjAxNGA7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMDBBQi8gTGVmdC1Qb2ludGluZyBEb3VibGUgQW5nbGUgUXVvdGF0aW9uIE1hcmt9XG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0xBUVVPID0gYFxcdTAwQUJgO1xuXG4vKipcbiAqIHtAbGluayBodHRwczovL3VuaWNvZGUtdGFibGUuY29tL2VuLzAwQkIvIFJpZ2h0LVBvaW50aW5nIERvdWJsZSBBbmdsZSBRdW90YXRpb24gTWFya31cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfUkFRVU8gPSBgXFx1MDBCQmA7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMDAyRC8gSHlwaGVuIChtaW51cyBzaWduKX1cbiAqIGlzIHVzZWQgdG8gY29tYmluZSB3b3Jkcy5cbiAqIEBleGFtcGxlIHdlbGwtYmVoYXZlZFxuICogX19fXG4gKiBEb24ndCBjb25mdXNlIHdpdGgge0BsaW5rIENIQVJfRU5fREFTSH0gb3Ige0BsaW5rIENIQVJfRU1fREFTSH0hXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0hZUEhFTiA9IGBcXHUwMDJEYDtcblxuLyoqXG4gKiB7QGxpbmsgaHR0cHM6Ly91bmljb2RlLXRhYmxlLmNvbS9lbi8yMjEyLyBNaW51c31cbiAqIGlzIHVzZWQgYXMgbWF0aCBvcGVyYXRvciBzeW1ib2wgb3IgYmVmb3JlIG5lZ2F0aXZlIGRpZ2l0cy5cbiAqIC0tLVxuICogQ2FuIGJlIHVzZWQgYXMgYCZtaW51cztgLiBEb24ndCBjb25mdXNlIHdpdGgge0BsaW5rIENIQVJfSFlQSEVOfVxuICovXG5leHBvcnQgY29uc3QgQ0hBUl9NSU5VUyA9IGBcXHUyMjEyYDtcblxuLyoqXG4gKiB7QGxpbmsgaHR0cHM6Ly91bmljb2RlLXRhYmxlLmNvbS9lbi8wMDJCLyBQbHVzfVxuICovXG5leHBvcnQgY29uc3QgQ0hBUl9QTFVTID0gYFxcdTAwMkJgO1xuXG4vKipcbiAqIHtAbGluayBodHRwczovL3VuaWNvZGUtdGFibGUuY29tL2VuLzIwMjIvIEJ1bGxldH0uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0JVTExFVCA9IGBcXHUyMDIyYDtcblxuLyoqXG4gKiB7QGxpbmsgaHR0cHM6Ly91bmljb2RlLXRhYmxlLmNvbS9lbi8yMDI2LyBTdXNwZW5zaW9uIHBvaW50c30uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0VMTElQU0lTID0gYFxcdTIwMjZgO1xuXG4vKipcbiAqIHtAbGluayBodHRwczovL3VuaWNvZGUtdGFibGUuY29tL2VuLzAwQTQvIFN1c3BlbnNpb24gcG9pbnRzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfQ1VSUkVOQ1lfU0lHTiA9IGBcXHUwMEE0YDtcblxuLyoqXG4gKiB7QGxpbmsgaHR0cHM6Ly91bmljb2RlLXRhYmxlLmNvbS9lbi8yMDBiLyBTdXNwZW5zaW9uIHBvaW50c30uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX1pFUk9fV0lEVEhfU1BBQ0UgPSBgXFx1MjAwQmA7XG4iXX0=
|
@@ -1,9 +1,3 @@
|
|
1
|
-
/**
|
2
|
-
* @description:
|
3
|
-
* AUTOGENERATED
|
4
|
-
*
|
5
|
-
* Array of icons used in taiga-ui components
|
6
|
-
*/
|
7
1
|
export const TUI_USED_ICONS = [
|
8
2
|
`tuiIconMir`,
|
9
3
|
`tuiIconVisaMono`,
|
@@ -69,4 +63,4 @@ export const TUI_USED_ICONS = [
|
|
69
63
|
`tuiIconCalendar`,
|
70
64
|
`tuiIconCalendarLarge`,
|
71
65
|
];
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlZC1pY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdXNlZC1pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsWUFBWTtJQUNaLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGNBQWM7SUFDZCxhQUFhO0lBQ2IsZUFBZTtJQUNmLFlBQVk7SUFDWixhQUFhO0lBQ2IsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osZUFBZTtJQUNmLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLGFBQWE7SUFDYixvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix5QkFBeUI7SUFDekIsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsc0JBQXNCO0lBQ3RCLGlCQUFpQjtJQUNqQixzQkFBc0I7Q0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uOlxuICogQVVUT0dFTkVSQVRFRFxuICpcbiAqIEFycmF5IG9mIGljb25zIHVzZWQgaW4gdGFpZ2EtdWkgY29tcG9uZW50c1xuICovXG5leHBvcnQgY29uc3QgVFVJX1VTRURfSUNPTlMgPSBbXG4gICAgYHR1aUljb25NaXJgLFxuICAgIGB0dWlJY29uVmlzYU1vbm9gLFxuICAgIGB0dWlJY29uRWxlY3Ryb25Nb25vYCxcbiAgICBgdHVpSWNvbk1hc3RlcmNhcmRgLFxuICAgIGB0dWlJY29uTWFlc3Ryb2AsXG4gICAgYHR1aUljb25BbWV4YCxcbiAgICBgdHVpSWNvbkRpbmVyc0NsdWJgLFxuICAgIGB0dWlJY29uRGlzY292ZXJgLFxuICAgIGB0dWlJY29uSHVtb2AsXG4gICAgYHR1aUljb25KQ0JgLFxuICAgIGB0dWlJY29uUnVQYXlgLFxuICAgIGB0dWlJY29uVW5pb25QYXlgLFxuICAgIGB0dWlJY29uVXpjYXJkYCxcbiAgICBgdHVpSWNvblZlcnZlYCxcbiAgICBgdHVpSWNvbkxpbmtgLFxuICAgIGB0dWlJY29uU2VhcmNoYCxcbiAgICBgdHVpSWNvblN1bmAsXG4gICAgYHR1aUljb25Nb29uYCxcbiAgICBgdHVpSWNvbkNvZGVgLFxuICAgIGB0dWlJY29uTWVudUxhcmdlYCxcbiAgICBgdHVpSWNvblJvdGF0ZWAsXG4gICAgYHR1aUljb25BcnJvd0xlZnRgLFxuICAgIGB0dWlJY29uQXJyb3dSaWdodGAsXG4gICAgYHR1aUljb25QbHVzYCxcbiAgICBgdHVpSWNvbk1pbnVzYCxcbiAgICBgdHVpSWNvbk1pbmltaXplYCxcbiAgICBgdHVpSWNvbkV5ZWAsXG4gICAgYHR1aUljb25FeWVPZmZgLFxuICAgIGB0dWlJY29uRHJhZ2AsXG4gICAgYHR1aUljb25Tb3J0QXNjZW5kaW5nYCxcbiAgICBgdHVpSWNvblNvcnREZXNjZW5kaW5nYCxcbiAgICBgdHVpSWNvblNvcnRPZmZgLFxuICAgIGB0dWlJY29uQ2hlY2tgLFxuICAgIGB0dWlJY29uQ2hlY2tMYXJnZWAsXG4gICAgYHR1aUljb25NaW51c0xhcmdlYCxcbiAgICBgdHVpSWNvbkNoZXZyb25VcGAsXG4gICAgYHR1aUljb25IZWxwQ2lyY2xlYCxcbiAgICBgdHVpSWNvbkNsb3NlYCxcbiAgICBgdHVpSWNvbkFsZXJ0Q2lyY2xlYCxcbiAgICBgdHVpSWNvbkNoZXZyb25SaWdodGAsXG4gICAgYHR1aUljb25JbmZvYCxcbiAgICBgdHVpSWNvbkNoZWNrQ2lyY2xlYCxcbiAgICBgdHVpSWNvblhDaXJjbGVgLFxuICAgIGB0dWlJY29uQ2hldnJvbkxlZnRgLFxuICAgIGB0dWlJY29uU3RhckxhcmdlYCxcbiAgICBgdHVpSWNvbkNoZXZyb25Eb3duYCxcbiAgICBgdHVpSWNvbkNoZXZyb25Eb3duTGFyZ2VgLFxuICAgIGB0dWlJY29uRmlsZUxhcmdlYCxcbiAgICBgdHVpSWNvblRyYXNoTGFyZ2VgLFxuICAgIGB0dWlJY29uQWxlcnRDaXJjbGVMYXJnZWAsXG4gICAgYHR1aUljb25DaGVja0NpcmNsZUxhcmdlYCxcbiAgICBgdHVpSWNvbkNvcHlgLFxuICAgIGB0dWlJY29uQ29weUxhcmdlYCxcbiAgICBgdHVpSWNvbkV5ZU9mZkxhcmdlYCxcbiAgICBgdHVpSWNvbkV5ZUxhcmdlYCxcbiAgICBgdHVpSWNvbkNsb2NrYCxcbiAgICBgdHVpSWNvbkNsb2NrTGFyZ2VgLFxuICAgIGB0dWlJY29uVG9nZ2xlT2ZmYCxcbiAgICBgdHVpSWNvblRvZ2dsZU9mZkxhcmdlYCxcbiAgICBgdHVpSWNvblRvZ2dsZU9uYCxcbiAgICBgdHVpSWNvblRvZ2dsZU9uTGFyZ2VgLFxuICAgIGB0dWlJY29uQ2FsZW5kYXJgLFxuICAgIGB0dWlJY29uQ2FsZW5kYXJMYXJnZWAsXG5dO1xuIl19
|
@@ -1,15 +1,4 @@
|
|
1
1
|
import { RANGE_SEPARATOR_CHAR } from './date-time';
|
2
|
-
/**
|
3
|
-
* @internal 'dd.mm.yyyy'.length
|
4
|
-
* Used in:
|
5
|
-
* - {@link TuiInputDateComponent}
|
6
|
-
* - {@link TuiInputDateRangeComponent}
|
7
|
-
* - {@link TuiInputDateTimeComponent}
|
8
|
-
*/
|
9
2
|
export const DATE_FILLER_LENGTH = 10;
|
10
|
-
/**
|
11
|
-
* @internal
|
12
|
-
* Used in {@link TuiInputDateRangeComponent}
|
13
|
-
*/
|
14
3
|
export const DATE_RANGE_FILLER_LENGTH = 2 * DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length;
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWxsZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RhdGUtdGltZS9kYXRlLWZpbGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sYUFBYSxDQUFDO0FBU2pELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUtyQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FDakMsQ0FBQyxHQUFHLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9IGZyb20gJy4vZGF0ZS10aW1lJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgJ2RkLm1tLnl5eXknLmxlbmd0aFxuICogVXNlZCBpbjpcbiAqIC0ge0BsaW5rIFR1aUlucHV0RGF0ZUNvbXBvbmVudH1cbiAqIC0ge0BsaW5rIFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50fVxuICogLSB7QGxpbmsgVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudH1cbiAqL1xuZXhwb3J0IGNvbnN0IERBVEVfRklMTEVSX0xFTkdUSCA9IDEwO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFVzZWQgaW4ge0BsaW5rIFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50fVxuICovXG5leHBvcnQgY29uc3QgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RIID1cbiAgICAyICogREFURV9GSUxMRVJfTEVOR1RIICsgUkFOR0VfU0VQQVJBVE9SX0NIQVIubGVuZ3RoO1xuIl19
|
@@ -1,6 +1,3 @@
|
|
1
1
|
import { tuiCreateToken } from '@taiga-ui/cdk/utils';
|
2
|
-
/**
|
3
|
-
* Active date format for Taiga UI
|
4
|
-
*/
|
5
2
|
export const TUI_DATE_FORMAT = tuiCreateToken(`DMY`);
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGF0ZS10aW1lL2RhdGUtZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUtuRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFjLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUdWlEYXRlTW9kZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcblxuLyoqXG4gKiBBY3RpdmUgZGF0ZSBmb3JtYXQgZm9yIFRhaWdhIFVJXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfREFURV9GT1JNQVQgPSB0dWlDcmVhdGVUb2tlbjxUdWlEYXRlTW9kZT4oYERNWWApO1xuIl19
|
@@ -1,7 +1,4 @@
|
|
1
1
|
import { tuiCreateToken } from '@taiga-ui/cdk/utils';
|
2
|
-
/**
|
3
|
-
* Date separator for Taiga UI components
|
4
|
-
*/
|
5
2
|
export const TUI_DATE_SEPARATOR = tuiCreateToken(`.`);
|
6
3
|
export const changeDateSeparator = (dateString, newDateSeparator) => dateString.replace(/[^0-9A-Za-zА-Яа-я]/gi, newDateSeparator);
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1zZXBhcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGF0ZS10aW1lL2RhdGUtc2VwYXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUtuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDL0IsVUFBa0IsRUFDbEIsZ0JBQXdCLEVBQ2xCLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUNyZWF0ZVRva2VufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcblxuLyoqXG4gKiBEYXRlIHNlcGFyYXRvciBmb3IgVGFpZ2EgVUkgY29tcG9uZW50c1xuICovXG5leHBvcnQgY29uc3QgVFVJX0RBVEVfU0VQQVJBVE9SID0gdHVpQ3JlYXRlVG9rZW4oYC5gKTtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZURhdGVTZXBhcmF0b3IgPSAoXG4gICAgZGF0ZVN0cmluZzogc3RyaW5nLFxuICAgIG5ld0RhdGVTZXBhcmF0b3I6IHN0cmluZyxcbik6IHN0cmluZyA9PiBkYXRlU3RyaW5nLnJlcGxhY2UoL1teMC05QS1aYS160JAt0K/QsC3Rj10vZ2ksIG5ld0RhdGVTZXBhcmF0b3IpO1xuIl19
|
@@ -3,9 +3,6 @@ import { DATE_FILLER_LENGTH, DATE_RANGE_FILLER_LENGTH } from './date-fillers';
|
|
3
3
|
import { RANGE_SEPARATOR_CHAR } from './date-time';
|
4
4
|
import { TuiDay } from './day';
|
5
5
|
import { TuiMonthRange } from './month-range';
|
6
|
-
/**
|
7
|
-
* An immutable range of two {@link TuiDay} objects
|
8
|
-
*/
|
9
6
|
export class TuiDayRange extends TuiMonthRange {
|
10
7
|
constructor(from, to) {
|
11
8
|
super(from, to);
|
@@ -13,25 +10,11 @@ export class TuiDayRange extends TuiMonthRange {
|
|
13
10
|
this.to = to;
|
14
11
|
ngDevMode && tuiAssert.assert(from.daySameOrBefore(to));
|
15
12
|
}
|
16
|
-
/**
|
17
|
-
* Creates range from two days after sorting them
|
18
|
-
*
|
19
|
-
* @param day1
|
20
|
-
* @param day2
|
21
|
-
* @return new range with sorted days
|
22
|
-
*/
|
23
13
|
static sort(day1, day2) {
|
24
14
|
return day1.daySameOrBefore(day2)
|
25
15
|
? new TuiDayRange(day1, day2)
|
26
16
|
: new TuiDayRange(day2, day1);
|
27
17
|
}
|
28
|
-
/**
|
29
|
-
* Parse and correct a day range in string format
|
30
|
-
*
|
31
|
-
* @param rangeString a string of dates in a format dd.mm.yyyy - dd.mm.yyyy
|
32
|
-
* @param dateMode {@link TuiDateMode}
|
33
|
-
* @return normalized day range object
|
34
|
-
*/
|
35
18
|
static normalizeParse(rangeString, dateMode = `DMY`) {
|
36
19
|
const leftDay = TuiDay.normalizeParse(rangeString.slice(0, DATE_FILLER_LENGTH), dateMode);
|
37
20
|
if (rangeString.length < DATE_RANGE_FILLER_LENGTH) {
|
@@ -42,28 +25,12 @@ export class TuiDayRange extends TuiMonthRange {
|
|
42
25
|
get isSingleDay() {
|
43
26
|
return this.from.daySame(this.to);
|
44
27
|
}
|
45
|
-
/**
|
46
|
-
* Tests ranges for identity
|
47
|
-
*
|
48
|
-
* @param another second range to test against current
|
49
|
-
* @return `true` if days are identical
|
50
|
-
*/
|
51
28
|
daySame(another) {
|
52
29
|
return this.from.daySame(another.from) && this.to.daySame(another.to);
|
53
30
|
}
|
54
|
-
/**
|
55
|
-
* Locks range between two days included, or limits from one side if the other is null
|
56
|
-
*
|
57
|
-
* @param min
|
58
|
-
* @param max
|
59
|
-
* @return range — clamped range
|
60
|
-
*/
|
61
31
|
dayLimit(min, max) {
|
62
32
|
return new TuiDayRange(this.from.dayLimit(min, max), this.to.dayLimit(min, max));
|
63
33
|
}
|
64
|
-
/**
|
65
|
-
* Human readable format.
|
66
|
-
*/
|
67
34
|
getFormattedDayRange(dateFormat, dateSeparator) {
|
68
35
|
const from = this.from.getFormattedDay(dateFormat, dateSeparator);
|
69
36
|
const to = this.to.getFormattedDay(dateFormat, dateSeparator);
|
@@ -75,4 +42,4 @@ export class TuiDayRange extends TuiMonthRange {
|
|
75
42
|
return `${from}${RANGE_SEPARATOR_CHAR}${to}`;
|
76
43
|
}
|
77
44
|
}
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RhdGUtdGltZS9kYXktcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR2hELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLNUMsTUFBTSxPQUFPLFdBQVksU0FBUSxhQUFhO0lBQzFDLFlBQ3NCLElBQVksRUFDWixFQUFVO1FBRTVCLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIRSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUk1QixTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQVNELE1BQU0sQ0FBVSxJQUFJLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDM0MsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUM3QixDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztZQUM3QixDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFTRCxNQUFNLENBQUMsY0FBYyxDQUNqQixXQUFtQixFQUNuQixXQUF3QixLQUFLO1FBRTdCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQ2pDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLEVBQ3hDLFFBQVEsQ0FDWCxDQUFDO1FBRUYsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLHdCQUF3QixFQUFFO1lBQy9DLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUNuQixPQUFPLEVBQ1AsTUFBTSxDQUFDLGNBQWMsQ0FDakIsV0FBVyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFDbkUsUUFBUSxDQUNYLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBUUQsT0FBTyxDQUFDLE9BQW9CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBU0QsUUFBUSxDQUFDLEdBQWtCLEVBQUUsR0FBa0I7UUFDM0MsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUtELG9CQUFvQixDQUFDLFVBQXVCLEVBQUUsYUFBcUI7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU5RCxPQUFPLEdBQUcsSUFBSSxHQUFHLG9CQUFvQixHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFUSxRQUFRLENBQ2IsYUFBMEIsS0FBSyxFQUMvQixnQkFBd0IsR0FBRztRQUUzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTlELE9BQU8sR0FBRyxJQUFJLEdBQUcsb0JBQW9CLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0dWlBc3NlcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aURhdGVNb2RlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcblxuaW1wb3J0IHtEQVRFX0ZJTExFUl9MRU5HVEgsIERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSH0gZnJvbSAnLi9kYXRlLWZpbGxlcnMnO1xuaW1wb3J0IHtSQU5HRV9TRVBBUkFUT1JfQ0hBUn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlEYXl9IGZyb20gJy4vZGF5JztcbmltcG9ydCB7VHVpTW9udGhSYW5nZX0gZnJvbSAnLi9tb250aC1yYW5nZSc7XG5cbi8qKlxuICogQW4gaW1tdXRhYmxlIHJhbmdlIG9mIHR3byB7QGxpbmsgVHVpRGF5fSBvYmplY3RzXG4gKi9cbmV4cG9ydCBjbGFzcyBUdWlEYXlSYW5nZSBleHRlbmRzIFR1aU1vbnRoUmFuZ2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvdmVycmlkZSByZWFkb25seSBmcm9tOiBUdWlEYXksXG4gICAgICAgIG92ZXJyaWRlIHJlYWRvbmx5IHRvOiBUdWlEYXksXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZyb20sIHRvKTtcblxuICAgICAgICBuZ0Rldk1vZGUgJiYgdHVpQXNzZXJ0LmFzc2VydChmcm9tLmRheVNhbWVPckJlZm9yZSh0bykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgcmFuZ2UgZnJvbSB0d28gZGF5cyBhZnRlciBzb3J0aW5nIHRoZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXkxXG4gICAgICogQHBhcmFtIGRheTJcbiAgICAgKiBAcmV0dXJuIG5ldyByYW5nZSB3aXRoIHNvcnRlZCBkYXlzXG4gICAgICovXG4gICAgc3RhdGljIG92ZXJyaWRlIHNvcnQoZGF5MTogVHVpRGF5LCBkYXkyOiBUdWlEYXkpOiBUdWlEYXlSYW5nZSB7XG4gICAgICAgIHJldHVybiBkYXkxLmRheVNhbWVPckJlZm9yZShkYXkyKVxuICAgICAgICAgICAgPyBuZXcgVHVpRGF5UmFuZ2UoZGF5MSwgZGF5MilcbiAgICAgICAgICAgIDogbmV3IFR1aURheVJhbmdlKGRheTIsIGRheTEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlIGFuZCBjb3JyZWN0IGEgZGF5IHJhbmdlIGluIHN0cmluZyBmb3JtYXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSByYW5nZVN0cmluZyBhIHN0cmluZyBvZiBkYXRlcyBpbiBhIGZvcm1hdCBkZC5tbS55eXl5IC0gZGQubW0ueXl5eVxuICAgICAqIEBwYXJhbSBkYXRlTW9kZSB7QGxpbmsgVHVpRGF0ZU1vZGV9XG4gICAgICogQHJldHVybiBub3JtYWxpemVkIGRheSByYW5nZSBvYmplY3RcbiAgICAgKi9cbiAgICBzdGF0aWMgbm9ybWFsaXplUGFyc2UoXG4gICAgICAgIHJhbmdlU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIGRhdGVNb2RlOiBUdWlEYXRlTW9kZSA9IGBETVlgLFxuICAgICk6IFR1aURheVJhbmdlIHtcbiAgICAgICAgY29uc3QgbGVmdERheSA9IFR1aURheS5ub3JtYWxpemVQYXJzZShcbiAgICAgICAgICAgIHJhbmdlU3RyaW5nLnNsaWNlKDAsIERBVEVfRklMTEVSX0xFTkdUSCksXG4gICAgICAgICAgICBkYXRlTW9kZSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocmFuZ2VTdHJpbmcubGVuZ3RoIDwgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RIKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFR1aURheVJhbmdlKGxlZnREYXksIGxlZnREYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFR1aURheVJhbmdlLnNvcnQoXG4gICAgICAgICAgICBsZWZ0RGF5LFxuICAgICAgICAgICAgVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKFxuICAgICAgICAgICAgICAgIHJhbmdlU3RyaW5nLnNsaWNlKERBVEVfRklMTEVSX0xFTkdUSCArIFJBTkdFX1NFUEFSQVRPUl9DSEFSLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgZGF0ZU1vZGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc1NpbmdsZURheSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbS5kYXlTYW1lKHRoaXMudG8pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlc3RzIHJhbmdlcyBmb3IgaWRlbnRpdHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBhbm90aGVyIHNlY29uZCByYW5nZSB0byB0ZXN0IGFnYWluc3QgY3VycmVudFxuICAgICAqIEByZXR1cm4gYHRydWVgIGlmIGRheXMgYXJlIGlkZW50aWNhbFxuICAgICAqL1xuICAgIGRheVNhbWUoYW5vdGhlcjogVHVpRGF5UmFuZ2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbS5kYXlTYW1lKGFub3RoZXIuZnJvbSkgJiYgdGhpcy50by5kYXlTYW1lKGFub3RoZXIudG8pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvY2tzIHJhbmdlIGJldHdlZW4gdHdvIGRheXMgaW5jbHVkZWQsIG9yIGxpbWl0cyBmcm9tIG9uZSBzaWRlIGlmIHRoZSBvdGhlciBpcyBudWxsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWluXG4gICAgICogQHBhcmFtIG1heFxuICAgICAqIEByZXR1cm4gcmFuZ2Ug4oCUIGNsYW1wZWQgcmFuZ2VcbiAgICAgKi9cbiAgICBkYXlMaW1pdChtaW46IFR1aURheSB8IG51bGwsIG1heDogVHVpRGF5IHwgbnVsbCk6IFR1aURheVJhbmdlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXlSYW5nZSh0aGlzLmZyb20uZGF5TGltaXQobWluLCBtYXgpLCB0aGlzLnRvLmRheUxpbWl0KG1pbiwgbWF4KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSHVtYW4gcmVhZGFibGUgZm9ybWF0LlxuICAgICAqL1xuICAgIGdldEZvcm1hdHRlZERheVJhbmdlKGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLCBkYXRlU2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmcm9tID0gdGhpcy5mcm9tLmdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0LCBkYXRlU2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgdG8gPSB0aGlzLnRvLmdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0LCBkYXRlU2VwYXJhdG9yKTtcblxuICAgICAgICByZXR1cm4gYCR7ZnJvbX0ke1JBTkdFX1NFUEFSQVRPUl9DSEFSfSR7dG99YDtcbiAgICB9XG5cbiAgICBvdmVycmlkZSB0b1N0cmluZyhcbiAgICAgICAgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUgPSBgRE1ZYCxcbiAgICAgICAgZGF0ZVNlcGFyYXRvcjogc3RyaW5nID0gYC5gLFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZyb20gPSB0aGlzLmZyb20uZ2V0Rm9ybWF0dGVkRGF5KGRhdGVGb3JtYXQsIGRhdGVTZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCB0byA9IHRoaXMudG8uZ2V0Rm9ybWF0dGVkRGF5KGRhdGVGb3JtYXQsIGRhdGVTZXBhcmF0b3IpO1xuXG4gICAgICAgIHJldHVybiBgJHtmcm9tfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHt0b31gO1xuICAgIH1cbn1cbiJdfQ==
|
package/esm2015/date-time/day.js
CHANGED
@@ -6,44 +6,23 @@ import { DATE_FILLER_LENGTH } from './date-fillers';
|
|
6
6
|
import { MIN_DAY, MONTHS_IN_YEAR } from './date-time';
|
7
7
|
import { TuiMonth } from './month';
|
8
8
|
import { TuiYear } from './year';
|
9
|
-
// TODO: Localized formatting
|
10
|
-
/**
|
11
|
-
* Immutable date object, consisting of day, month and year
|
12
|
-
*/
|
13
9
|
export class TuiDay extends TuiMonth {
|
14
10
|
constructor(year, month, day) {
|
15
11
|
super(year, month);
|
16
12
|
this.day = day;
|
17
13
|
ngDevMode && tuiAssert.assert(TuiDay.isValidDay(year, month, day));
|
18
14
|
}
|
19
|
-
/**
|
20
|
-
* Creates {@link TuiDay} from native {@link Date} based on local time zone
|
21
|
-
*/
|
22
15
|
static fromLocalNativeDate(date) {
|
23
16
|
return new TuiDay(date.getFullYear(), date.getMonth(), date.getDate());
|
24
17
|
}
|
25
|
-
/**
|
26
|
-
* Creates {@link TuiDay} from native {@link Date} using UTC
|
27
|
-
*/
|
28
18
|
static fromUtcNativeDate(date) {
|
29
19
|
return new TuiDay(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
|
30
20
|
}
|
31
|
-
/**
|
32
|
-
* Check validity of year, month and day
|
33
|
-
*
|
34
|
-
* @param year
|
35
|
-
* @param month
|
36
|
-
* @param day
|
37
|
-
* @return boolean validity
|
38
|
-
*/
|
39
21
|
static isValidDay(year, month, day) {
|
40
22
|
return (TuiMonth.isValidMonth(year, month) &&
|
41
23
|
Number.isInteger(day) &&
|
42
24
|
tuiInRange(day, MIN_DAY, TuiMonth.getMonthDaysCount(month, TuiYear.isLeapYear(year)) + 1));
|
43
25
|
}
|
44
|
-
/**
|
45
|
-
* Current day based on local time zone
|
46
|
-
*/
|
47
26
|
static currentLocal() {
|
48
27
|
const nativeDate = new Date();
|
49
28
|
const year = nativeDate.getFullYear();
|
@@ -51,9 +30,6 @@ export class TuiDay extends TuiMonth {
|
|
51
30
|
const day = nativeDate.getDate();
|
52
31
|
return new TuiDay(year, month, day);
|
53
32
|
}
|
54
|
-
/**
|
55
|
-
* Returns current day based on UTC
|
56
|
-
*/
|
57
33
|
static currentUtc() {
|
58
34
|
const nativeDate = new Date();
|
59
35
|
const year = nativeDate.getUTCFullYear();
|
@@ -61,14 +37,6 @@ export class TuiDay extends TuiMonth {
|
|
61
37
|
const day = nativeDate.getUTCDate();
|
62
38
|
return new TuiDay(year, month, day);
|
63
39
|
}
|
64
|
-
/**
|
65
|
-
* Calculates {@link TuiDay} normalizing year, month and day. {@link NaN} is turned into minimal value.
|
66
|
-
*
|
67
|
-
* @param year any year value, including invalid
|
68
|
-
* @param month any month value, including invalid (months start with 0)
|
69
|
-
* @param day any day value, including invalid
|
70
|
-
* @return normalized date
|
71
|
-
*/
|
72
40
|
static normalizeOf(year, month, day) {
|
73
41
|
const normalizedYear = TuiYear.normalizeYearPart(year);
|
74
42
|
const normalizedMonth = TuiMonth.normalizeMonthPart(month);
|
@@ -104,24 +72,10 @@ export class TuiDay extends TuiMonth {
|
|
104
72
|
};
|
105
73
|
}
|
106
74
|
}
|
107
|
-
// TODO: Move month and year related code corresponding classes
|
108
|
-
/**
|
109
|
-
* Parsing a string with date with normalization
|
110
|
-
*
|
111
|
-
* @param rawDate date string
|
112
|
-
* @param dateMode date format of the date string (DMY | MDY | YMD)
|
113
|
-
* @return normalized date
|
114
|
-
*/
|
115
75
|
static normalizeParse(rawDate, dateMode = `DMY`) {
|
116
76
|
const { day, month, year } = this.parseRawDateString(rawDate, dateMode);
|
117
77
|
return TuiDay.normalizeOf(year, month, day);
|
118
78
|
}
|
119
|
-
/**
|
120
|
-
* Parsing a date stringified in a toJSON format
|
121
|
-
* @param yearMonthDayString date string in format of YYYY-MM-DD
|
122
|
-
* @return date
|
123
|
-
* @throws exceptions if any part of the date is invalid
|
124
|
-
*/
|
125
79
|
static jsonParse(yearMonthDayString) {
|
126
80
|
const { day, month, year } = this.parseRawDateString(yearMonthDayString, `YMD`);
|
127
81
|
if (!TuiYear.isValidYear(year)) {
|
@@ -148,59 +102,31 @@ export class TuiDay extends TuiMonth {
|
|
148
102
|
const dayOfWeek = this.dayOfWeek(false);
|
149
103
|
return dayOfWeek === TuiDayOfWeek.Saturday || dayOfWeek === TuiDayOfWeek.Sunday;
|
150
104
|
}
|
151
|
-
/**
|
152
|
-
* Returns day of week
|
153
|
-
*
|
154
|
-
* @param startFromMonday whether week starts from Monday and not from Sunday
|
155
|
-
* @return day of week (from 0 to 6)
|
156
|
-
*/
|
157
105
|
dayOfWeek(startFromMonday = true) {
|
158
106
|
const dayOfWeek = startFromMonday
|
159
107
|
? this.toLocalNativeDate().getDay() - 1
|
160
108
|
: this.toLocalNativeDate().getDay();
|
161
109
|
return dayOfWeek < 0 ? 6 : dayOfWeek;
|
162
110
|
}
|
163
|
-
/**
|
164
|
-
* Passed date is after current
|
165
|
-
*/
|
166
111
|
dayBefore(another) {
|
167
112
|
return (this.monthBefore(another) ||
|
168
113
|
(this.monthSame(another) && this.day < another.day));
|
169
114
|
}
|
170
|
-
/**
|
171
|
-
* Passed date is after or equals to current
|
172
|
-
*/
|
173
115
|
daySameOrBefore(another) {
|
174
116
|
return (this.monthBefore(another) ||
|
175
117
|
(this.monthSame(another) && this.day <= another.day));
|
176
118
|
}
|
177
|
-
/**
|
178
|
-
* Passed date is the same as current
|
179
|
-
*/
|
180
119
|
daySame(another) {
|
181
120
|
return this.monthSame(another) && this.day === another.day;
|
182
121
|
}
|
183
|
-
/**
|
184
|
-
* Passed date is either before or the same as current
|
185
|
-
*/
|
186
122
|
daySameOrAfter(another) {
|
187
123
|
return (this.monthAfter(another) ||
|
188
124
|
(this.monthSame(another) && this.day >= another.day));
|
189
125
|
}
|
190
|
-
/**
|
191
|
-
* Passed date is before current
|
192
|
-
*/
|
193
126
|
dayAfter(another) {
|
194
127
|
return (this.monthAfter(another) ||
|
195
128
|
(this.monthSame(another) && this.day > another.day));
|
196
129
|
}
|
197
|
-
/**
|
198
|
-
* Clamping date between two limits
|
199
|
-
*
|
200
|
-
* @param min
|
201
|
-
* @param max
|
202
|
-
* @return clamped date
|
203
|
-
*/
|
204
130
|
dayLimit(min, max) {
|
205
131
|
if (min !== null && this.dayBefore(min)) {
|
206
132
|
return min;
|
@@ -210,16 +136,6 @@ export class TuiDay extends TuiMonth {
|
|
210
136
|
}
|
211
137
|
return this;
|
212
138
|
}
|
213
|
-
/**
|
214
|
-
* Immutably alters current day by passed offset
|
215
|
-
*
|
216
|
-
* If resulting month has more days than original one, date is rounded to the maximum day
|
217
|
-
* in the resulting month. Offset of days will be calculated based on the resulted year and month
|
218
|
-
* to not interfere with parent classes methods
|
219
|
-
*
|
220
|
-
* @param offset
|
221
|
-
* @return new date object as a result of offsetting current
|
222
|
-
*/
|
223
139
|
append({ year = 0, month = 0, day = 0 }) {
|
224
140
|
const totalMonths = (this.year + year) * MONTHS_IN_YEAR + this.month + month;
|
225
141
|
let years = Math.floor(totalMonths / MONTHS_IN_YEAR);
|
@@ -247,9 +163,6 @@ export class TuiDay extends TuiMonth {
|
|
247
163
|
}
|
248
164
|
return new TuiDay(years, months, days);
|
249
165
|
}
|
250
|
-
/**
|
251
|
-
* Returns formatted whole date
|
252
|
-
*/
|
253
166
|
getFormattedDay(dateFormat, separator) {
|
254
167
|
ngDevMode &&
|
255
168
|
tuiAssert.assert(separator.length === 1, `Separator should consist of only 1 symbol`);
|
@@ -272,17 +185,11 @@ export class TuiDay extends TuiMonth {
|
|
272
185
|
toJSON() {
|
273
186
|
return `${super.toJSON()}-${this.formattedDayPart}`;
|
274
187
|
}
|
275
|
-
/**
|
276
|
-
* Returns native {@link Date} based on local time zone
|
277
|
-
*/
|
278
188
|
toLocalNativeDate() {
|
279
189
|
return new Date(this.year, this.month, this.day);
|
280
190
|
}
|
281
|
-
/**
|
282
|
-
* Returns native {@link Date} based on UTC
|
283
|
-
*/
|
284
191
|
toUtcNativeDate() {
|
285
192
|
return new Date(Date.UTC(this.year, this.month, this.day));
|
286
193
|
}
|
287
194
|
}
|
288
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RhdGUtdGltZS9kYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUNILHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEdBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsT0FBTyxFQUFDLFVBQVUsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUUvQiw2QkFBNkI7QUFDN0I7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTyxTQUFRLFFBQVE7SUFDaEMsWUFDSSxJQUFZLEVBQ1osS0FBYSxFQUNKLEdBQVc7UUFFcEIsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZWLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFHcEIsU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQVU7UUFDakMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFVO1FBQy9CLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxHQUFXO1FBQ3RELE9BQU8sQ0FDSCxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7WUFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDckIsVUFBVSxDQUNOLEdBQUcsRUFDSCxPQUFPLEVBQ1AsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUNsRSxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQVUsWUFBWTtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWpDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQVUsVUFBVTtRQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXBDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxHQUFXO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUN6QyxHQUFHLEVBQ0gsZUFBZSxFQUNmLGNBQWMsQ0FDakIsQ0FBQztRQUVGLE9BQU8sSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxDQUFVLGFBQWEsQ0FBQyxJQUFZLEVBQUUsRUFBVTtRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUM1QixDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FDckIsSUFBWSxFQUNaLFdBQXdCLEtBQUs7UUFFN0IsU0FBUztZQUNMLFNBQVMsQ0FBQyxNQUFNLENBQ1osSUFBSSxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsRUFDbEMsZ0RBQWdELENBQ25ELENBQUM7UUFFTixRQUFRLFFBQVEsRUFBRTtZQUNkLEtBQUssS0FBSztnQkFDTixPQUFPO29CQUNILEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNwQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7b0JBQ3pDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO2lCQUN2QyxDQUFDO1lBRU4sS0FBSyxLQUFLO2dCQUNOLE9BQU87b0JBQ0gsR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ25DLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDekMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7aUJBQ3hDLENBQUM7WUFFTixRQUFRO1lBQ1IsS0FBSyxLQUFLO2dCQUNOLE9BQU87b0JBQ0gsR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ25DLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDekMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7aUJBQ3hDLENBQUM7U0FDVDtJQUNMLENBQUM7SUFFRCwrREFBK0Q7SUFDL0Q7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFlLEVBQUUsV0FBd0IsS0FBSztRQUNoRSxNQUFNLEVBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXRFLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsa0JBQTBCO1FBQ3ZDLE1BQU0sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5RSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFDSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ3RCLENBQUMsVUFBVSxDQUNQLEdBQUcsRUFDSCxPQUFPLEVBQ1AsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUNsRSxFQUNIO1lBQ0UsTUFBTSxJQUFJLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFUyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxJQUFZO1FBQ3RFLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbEUsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUM3QyxLQUFLLEVBQ0wsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FDM0IsQ0FBQztRQUVGLE9BQU8sdUJBQXVCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEMsT0FBTyxTQUFTLEtBQUssWUFBWSxDQUFDLFFBQVEsSUFBSSxTQUFTLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsa0JBQTJCLElBQUk7UUFDckMsTUFBTSxTQUFTLEdBQUcsZUFBZTtZQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFeEMsT0FBTyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsT0FBZTtRQUNyQixPQUFPLENBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFDekIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUN0RCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLE9BQWU7UUFDM0IsT0FBTyxDQUNILElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQ3pCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FDdkQsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxPQUFlO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLE9BQWU7UUFDMUIsT0FBTyxDQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3hCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FDdkQsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxPQUFlO1FBQ3BCLE9BQU8sQ0FDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUN4QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQ3RELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsUUFBUSxDQUFDLEdBQWtCLEVBQUUsR0FBa0I7UUFDM0MsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUVELElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sR0FBRyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ00sTUFBTSxDQUFDLEVBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQWE7UUFDdEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM3RSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUNyRCxJQUFJLE1BQU0sR0FBRyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBRTFDLElBQUksSUFBSSxHQUNKLElBQUksQ0FBQyxHQUFHLENBQ0osSUFBSSxDQUFDLEdBQUcsRUFDUixRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDaEUsR0FBRyxHQUFHLENBQUM7UUFFWixPQUFPLElBQUksR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN6RSxJQUFJLElBQUksUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFdEUsSUFBSSxNQUFNLEtBQUssY0FBYyxDQUFDLFFBQVEsRUFBRTtnQkFDcEMsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0gsTUFBTSxFQUFFLENBQUM7YUFDWjtTQUNKO1FBRUQsT0FBTyxJQUFJLEdBQUcsT0FBTyxFQUFFO1lBQ25CLElBQUksTUFBTSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ25DLEtBQUssRUFBRSxDQUFDO2dCQUNSLE1BQU0sR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDO2FBQ3BDO2lCQUFNO2dCQUNILE1BQU0sRUFBRSxDQUFDO2FBQ1o7WUFFRCxJQUFJLElBQUksUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDekU7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLFVBQXVCLEVBQUUsU0FBaUI7UUFDdEQsU0FBUztZQUNMLFNBQVMsQ0FBQyxNQUFNLENBQ1osU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQ3RCLDJDQUEyQyxDQUM5QyxDQUFDO1FBRU4sTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRWhDLFFBQVEsVUFBVSxFQUFFO1lBQ2hCLEtBQUssS0FBSztnQkFDTixPQUFPLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELEtBQUssS0FBSztnQkFDTixPQUFPLEdBQUcsRUFBRSxHQUFHLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDO1lBQ3ZELEtBQUssS0FBSyxDQUFDO1lBQ1g7Z0JBQ0ksT0FBTyxHQUFHLEVBQUUsR0FBRyxTQUFTLEdBQUcsRUFBRSxHQUFHLFNBQVMsR0FBRyxJQUFJLEVBQUUsQ0FBQztTQUMxRDtJQUNMLENBQUM7SUFFUSxRQUFRLENBQUMsYUFBMEIsS0FBSyxFQUFFLFlBQW9CLEdBQUc7UUFDdEUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRVEsTUFBTTtRQUNYLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ00saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDTSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0dWlBc3NlcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aURheU9mV2VlaywgVHVpTW9udGhOdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvZW51bXMnO1xuaW1wb3J0IHtcbiAgICBUdWlJbnZhbGlkRGF5RXhjZXB0aW9uLFxuICAgIFR1aUludmFsaWRNb250aEV4Y2VwdGlvbixcbiAgICBUdWlJbnZhbGlkWWVhckV4Y2VwdGlvbixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9leGNlcHRpb25zJztcbmltcG9ydCB7VHVpRGF5TGlrZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7VHVpRGF0ZU1vZGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJblJhbmdlLCB0dWlOb3JtYWxpemVUb0ludE51bWJlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcblxuaW1wb3J0IHtEQVRFX0ZJTExFUl9MRU5HVEh9IGZyb20gJy4vZGF0ZS1maWxsZXJzJztcbmltcG9ydCB7TUlOX0RBWSwgTU9OVEhTX0lOX1lFQVJ9IGZyb20gJy4vZGF0ZS10aW1lJztcbmltcG9ydCB7VHVpTW9udGh9IGZyb20gJy4vbW9udGgnO1xuaW1wb3J0IHtUdWlZZWFyfSBmcm9tICcuL3llYXInO1xuXG4vLyBUT0RPOiBMb2NhbGl6ZWQgZm9ybWF0dGluZ1xuLyoqXG4gKiBJbW11dGFibGUgZGF0ZSBvYmplY3QsIGNvbnNpc3Rpbmcgb2YgZGF5LCBtb250aCBhbmQgeWVhclxuICovXG5leHBvcnQgY2xhc3MgVHVpRGF5IGV4dGVuZHMgVHVpTW9udGgge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICB5ZWFyOiBudW1iZXIsXG4gICAgICAgIG1vbnRoOiBudW1iZXIsXG4gICAgICAgIHJlYWRvbmx5IGRheTogbnVtYmVyLFxuICAgICkge1xuICAgICAgICBzdXBlcih5ZWFyLCBtb250aCk7XG4gICAgICAgIG5nRGV2TW9kZSAmJiB0dWlBc3NlcnQuYXNzZXJ0KFR1aURheS5pc1ZhbGlkRGF5KHllYXIsIG1vbnRoLCBkYXkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHtAbGluayBUdWlEYXl9IGZyb20gbmF0aXZlIHtAbGluayBEYXRlfSBiYXNlZCBvbiBsb2NhbCB0aW1lIHpvbmVcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbUxvY2FsTmF0aXZlRGF0ZShkYXRlOiBEYXRlKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXkoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHtAbGluayBUdWlEYXl9IGZyb20gbmF0aXZlIHtAbGluayBEYXRlfSB1c2luZyBVVENcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbVV0Y05hdGl2ZURhdGUoZGF0ZTogRGF0ZSk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiBuZXcgVHVpRGF5KGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgdmFsaWRpdHkgb2YgeWVhciwgbW9udGggYW5kIGRheVxuICAgICAqXG4gICAgICogQHBhcmFtIHllYXJcbiAgICAgKiBAcGFyYW0gbW9udGhcbiAgICAgKiBAcGFyYW0gZGF5XG4gICAgICogQHJldHVybiBib29sZWFuIHZhbGlkaXR5XG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWREYXkoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgVHVpTW9udGguaXNWYWxpZE1vbnRoKHllYXIsIG1vbnRoKSAmJlxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihkYXkpICYmXG4gICAgICAgICAgICB0dWlJblJhbmdlKFxuICAgICAgICAgICAgICAgIGRheSxcbiAgICAgICAgICAgICAgICBNSU5fREFZLFxuICAgICAgICAgICAgICAgIFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KG1vbnRoLCBUdWlZZWFyLmlzTGVhcFllYXIoeWVhcikpICsgMSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGRheSBiYXNlZCBvbiBsb2NhbCB0aW1lIHpvbmVcbiAgICAgKi9cbiAgICBzdGF0aWMgb3ZlcnJpZGUgY3VycmVudExvY2FsKCk6IFR1aURheSB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCB5ZWFyID0gbmF0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IG5hdGl2ZURhdGUuZ2V0TW9udGgoKTtcbiAgICAgICAgY29uc3QgZGF5ID0gbmF0aXZlRGF0ZS5nZXREYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXkoeWVhciwgbW9udGgsIGRheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXJyZW50IGRheSBiYXNlZCBvbiBVVENcbiAgICAgKi9cbiAgICBzdGF0aWMgb3ZlcnJpZGUgY3VycmVudFV0YygpOiBUdWlEYXkge1xuICAgICAgICBjb25zdCBuYXRpdmVEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgeWVhciA9IG5hdGl2ZURhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBuYXRpdmVEYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgICAgIGNvbnN0IGRheSA9IG5hdGl2ZURhdGUuZ2V0VVRDRGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpRGF5KHllYXIsIG1vbnRoLCBkYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMge0BsaW5rIFR1aURheX0gbm9ybWFsaXppbmcgeWVhciwgbW9udGggYW5kIGRheS4ge0BsaW5rIE5hTn0gaXMgdHVybmVkIGludG8gbWluaW1hbCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB5ZWFyIGFueSB5ZWFyIHZhbHVlLCBpbmNsdWRpbmcgaW52YWxpZFxuICAgICAqIEBwYXJhbSBtb250aCBhbnkgbW9udGggdmFsdWUsIGluY2x1ZGluZyBpbnZhbGlkIChtb250aHMgc3RhcnQgd2l0aCAwKVxuICAgICAqIEBwYXJhbSBkYXkgYW55IGRheSB2YWx1ZSwgaW5jbHVkaW5nIGludmFsaWRcbiAgICAgKiBAcmV0dXJuIG5vcm1hbGl6ZWQgZGF0ZVxuICAgICAqL1xuICAgIHN0YXRpYyBub3JtYWxpemVPZih5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVHVpRGF5IHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFllYXIgPSBUdWlZZWFyLm5vcm1hbGl6ZVllYXJQYXJ0KHllYXIpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkTW9udGggPSBUdWlNb250aC5ub3JtYWxpemVNb250aFBhcnQobW9udGgpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRGF5ID0gVHVpRGF5Lm5vcm1hbGl6ZURheVBhcnQoXG4gICAgICAgICAgICBkYXksXG4gICAgICAgICAgICBub3JtYWxpemVkTW9udGgsXG4gICAgICAgICAgICBub3JtYWxpemVkWWVhcixcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aURheShub3JtYWxpemVkWWVhciwgbm9ybWFsaXplZE1vbnRoLCBub3JtYWxpemVkRGF5KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgb3ZlcnJpZGUgbGVuZ3RoQmV0d2Vlbihmcm9tOiBUdWlEYXksIHRvOiBUdWlEYXkpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChcbiAgICAgICAgICAgICh0by50b0xvY2FsTmF0aXZlRGF0ZSgpLmdldFRpbWUoKSAtIGZyb20udG9Mb2NhbE5hdGl2ZURhdGUoKS5nZXRUaW1lKCkpIC9cbiAgICAgICAgICAgICAgICAoMTAwMCAqIDYwICogNjAgKiAyNCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIHBhcnNlUmF3RGF0ZVN0cmluZyhcbiAgICAgICAgZGF0ZTogc3RyaW5nLFxuICAgICAgICBkYXRlTW9kZTogVHVpRGF0ZU1vZGUgPSBgRE1ZYCxcbiAgICApOiB7ZGF5OiBudW1iZXI7IG1vbnRoOiBudW1iZXI7IHllYXI6IG51bWJlcn0ge1xuICAgICAgICBuZ0Rldk1vZGUgJiZcbiAgICAgICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICAgICAgZGF0ZS5sZW5ndGggPT09IERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICAgICAgICAgICAgICBgW3BhcnNlUmF3RGF0ZVN0cmluZ106IHdyb25nIGRhdGUgc3RyaW5nIGxlbmd0aGAsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIHN3aXRjaCAoZGF0ZU1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgYFlNRGA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF5OiBwYXJzZUludChkYXRlLnNsaWNlKDgsIDEwKSwgMTApLFxuICAgICAgICAgICAgICAgICAgICBtb250aDogcGFyc2VJbnQoZGF0ZS5zbGljZSg1LCA3KSwgMTApIC0gMSxcbiAgICAgICAgICAgICAgICAgICAgeWVhcjogcGFyc2VJbnQoZGF0ZS5zbGljZSgwLCA0KSwgMTApLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNhc2UgYE1EWWA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF5OiBwYXJzZUludChkYXRlLnNsaWNlKDMsIDUpLCAxMCksXG4gICAgICAgICAgICAgICAgICAgIG1vbnRoOiBwYXJzZUludChkYXRlLnNsaWNlKDAsIDIpLCAxMCkgLSAxLFxuICAgICAgICAgICAgICAgICAgICB5ZWFyOiBwYXJzZUludChkYXRlLnNsaWNlKDYsIDEwKSwgMTApLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjYXNlIGBETVlgOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGRheTogcGFyc2VJbnQoZGF0ZS5zbGljZSgwLCAyKSwgMTApLFxuICAgICAgICAgICAgICAgICAgICBtb250aDogcGFyc2VJbnQoZGF0ZS5zbGljZSgzLCA1KSwgMTApIC0gMSxcbiAgICAgICAgICAgICAgICAgICAgeWVhcjogcGFyc2VJbnQoZGF0ZS5zbGljZSg2LCAxMCksIDEwKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogTW92ZSBtb250aCBhbmQgeWVhciByZWxhdGVkIGNvZGUgY29ycmVzcG9uZGluZyBjbGFzc2VzXG4gICAgLyoqXG4gICAgICogUGFyc2luZyBhIHN0cmluZyB3aXRoIGRhdGUgd2l0aCBub3JtYWxpemF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmF3RGF0ZSBkYXRlIHN0cmluZ1xuICAgICAqIEBwYXJhbSBkYXRlTW9kZSBkYXRlIGZvcm1hdCBvZiB0aGUgZGF0ZSBzdHJpbmcgKERNWSB8IE1EWSB8IFlNRClcbiAgICAgKiBAcmV0dXJuIG5vcm1hbGl6ZWQgZGF0ZVxuICAgICAqL1xuICAgIHN0YXRpYyBub3JtYWxpemVQYXJzZShyYXdEYXRlOiBzdHJpbmcsIGRhdGVNb2RlOiBUdWlEYXRlTW9kZSA9IGBETVlgKTogVHVpRGF5IHtcbiAgICAgICAgY29uc3Qge2RheSwgbW9udGgsIHllYXJ9ID0gdGhpcy5wYXJzZVJhd0RhdGVTdHJpbmcocmF3RGF0ZSwgZGF0ZU1vZGUpO1xuXG4gICAgICAgIHJldHVybiBUdWlEYXkubm9ybWFsaXplT2YoeWVhciwgbW9udGgsIGRheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyc2luZyBhIGRhdGUgc3RyaW5naWZpZWQgaW4gYSB0b0pTT04gZm9ybWF0XG4gICAgICogQHBhcmFtIHllYXJNb250aERheVN0cmluZyBkYXRlIHN0cmluZyBpbiBmb3JtYXQgb2YgWVlZWS1NTS1ERFxuICAgICAqIEByZXR1cm4gZGF0ZVxuICAgICAqIEB0aHJvd3MgZXhjZXB0aW9ucyBpZiBhbnkgcGFydCBvZiB0aGUgZGF0ZSBpcyBpbnZhbGlkXG4gICAgICovXG4gICAgc3RhdGljIGpzb25QYXJzZSh5ZWFyTW9udGhEYXlTdHJpbmc6IHN0cmluZyk6IFR1aURheSB7XG4gICAgICAgIGNvbnN0IHtkYXksIG1vbnRoLCB5ZWFyfSA9IHRoaXMucGFyc2VSYXdEYXRlU3RyaW5nKHllYXJNb250aERheVN0cmluZywgYFlNRGApO1xuXG4gICAgICAgIGlmICghVHVpWWVhci5pc1ZhbGlkWWVhcih5ZWFyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR1aUludmFsaWRZZWFyRXhjZXB0aW9uKHllYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFUdWlNb250aC5pc1ZhbGlkTW9udGgoeWVhciwgbW9udGgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHVpSW52YWxpZE1vbnRoRXhjZXB0aW9uKG1vbnRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFOdW1iZXIuaXNJbnRlZ2VyKGRheSkgfHxcbiAgICAgICAgICAgICF0dWlJblJhbmdlKFxuICAgICAgICAgICAgICAgIGRheSxcbiAgICAgICAgICAgICAgICBNSU5fREFZLFxuICAgICAgICAgICAgICAgIFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KG1vbnRoLCBUdWlZZWFyLmlzTGVhcFllYXIoeWVhcikpICsgMSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHVpSW52YWxpZERheUV4Y2VwdGlvbihkYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXkoeWVhciwgbW9udGgsIGRheSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBub3JtYWxpemVEYXlQYXJ0KGRheTogbnVtYmVyLCBtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBuZ0Rldk1vZGUgJiYgdHVpQXNzZXJ0LmFzc2VydChUdWlNb250aC5pc1ZhbGlkTW9udGgoeWVhciwgbW9udGgpKTtcblxuICAgICAgICBjb25zdCBtb250aERheXNDb3VudCA9IFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KFxuICAgICAgICAgICAgbW9udGgsXG4gICAgICAgICAgICBUdWlZZWFyLmlzTGVhcFllYXIoeWVhciksXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHR1aU5vcm1hbGl6ZVRvSW50TnVtYmVyKGRheSwgMSwgbW9udGhEYXlzQ291bnQpO1xuICAgIH1cblxuICAgIGdldCBmb3JtYXR0ZWREYXlQYXJ0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBTdHJpbmcodGhpcy5kYXkpLnBhZFN0YXJ0KDIsIGAwYCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzV2Vla2VuZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGF5T2ZXZWVrID0gdGhpcy5kYXlPZldlZWsoZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBkYXlPZldlZWsgPT09IFR1aURheU9mV2Vlay5TYXR1cmRheSB8fCBkYXlPZldlZWsgPT09IFR1aURheU9mV2Vlay5TdW5kYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBkYXkgb2Ygd2Vla1xuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXJ0RnJvbU1vbmRheSB3aGV0aGVyIHdlZWsgc3RhcnRzIGZyb20gTW9uZGF5IGFuZCBub3QgZnJvbSBTdW5kYXlcbiAgICAgKiBAcmV0dXJuIGRheSBvZiB3ZWVrIChmcm9tIDAgdG8gNilcbiAgICAgKi9cbiAgICBkYXlPZldlZWsoc3RhcnRGcm9tTW9uZGF5OiBib29sZWFuID0gdHJ1ZSk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGRheU9mV2VlayA9IHN0YXJ0RnJvbU1vbmRheVxuICAgICAgICAgICAgPyB0aGlzLnRvTG9jYWxOYXRpdmVEYXRlKCkuZ2V0RGF5KCkgLSAxXG4gICAgICAgICAgICA6IHRoaXMudG9Mb2NhbE5hdGl2ZURhdGUoKS5nZXREYXkoKTtcblxuICAgICAgICByZXR1cm4gZGF5T2ZXZWVrIDwgMCA/IDYgOiBkYXlPZldlZWs7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIGRhdGUgaXMgYWZ0ZXIgY3VycmVudFxuICAgICAqL1xuICAgIGRheUJlZm9yZShhbm90aGVyOiBUdWlEYXkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMubW9udGhCZWZvcmUoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLm1vbnRoU2FtZShhbm90aGVyKSAmJiB0aGlzLmRheSA8IGFub3RoZXIuZGF5KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBkYXRlIGlzIGFmdGVyIG9yIGVxdWFscyB0byBjdXJyZW50XG4gICAgICovXG4gICAgZGF5U2FtZU9yQmVmb3JlKGFub3RoZXI6IFR1aURheSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tb250aEJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMubW9udGhTYW1lKGFub3RoZXIpICYmIHRoaXMuZGF5IDw9IGFub3RoZXIuZGF5KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBkYXRlIGlzIHRoZSBzYW1lIGFzIGN1cnJlbnRcbiAgICAgKi9cbiAgICBkYXlTYW1lKGFub3RoZXI6IFR1aURheSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aFNhbWUoYW5vdGhlcikgJiYgdGhpcy5kYXkgPT09IGFub3RoZXIuZGF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBkYXRlIGlzIGVpdGhlciBiZWZvcmUgb3IgdGhlIHNhbWUgYXMgY3VycmVudFxuICAgICAqL1xuICAgIGRheVNhbWVPckFmdGVyKGFub3RoZXI6IFR1aURheSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tb250aEFmdGVyKGFub3RoZXIpIHx8XG4gICAgICAgICAgICAodGhpcy5tb250aFNhbWUoYW5vdGhlcikgJiYgdGhpcy5kYXkgPj0gYW5vdGhlci5kYXkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIGRhdGUgaXMgYmVmb3JlIGN1cnJlbnRcbiAgICAgKi9cbiAgICBkYXlBZnRlcihhbm90aGVyOiBUdWlEYXkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMubW9udGhBZnRlcihhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMubW9udGhTYW1lKGFub3RoZXIpICYmIHRoaXMuZGF5ID4gYW5vdGhlci5kYXkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xhbXBpbmcgZGF0ZSBiZXR3ZWVuIHR3byBsaW1pdHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtaW5cbiAgICAgKiBAcGFyYW0gbWF4XG4gICAgICogQHJldHVybiBjbGFtcGVkIGRhdGVcbiAgICAgKi9cbiAgICBkYXlMaW1pdChtaW46IFR1aURheSB8IG51bGwsIG1heDogVHVpRGF5IHwgbnVsbCk6IFR1aURheSB7XG4gICAgICAgIGlmIChtaW4gIT09IG51bGwgJiYgdGhpcy5kYXlCZWZvcmUobWluKSkge1xuICAgICAgICAgICAgcmV0dXJuIG1pbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXggIT09IG51bGwgJiYgdGhpcy5kYXlBZnRlcihtYXgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF4O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW1tdXRhYmx5IGFsdGVycyBjdXJyZW50IGRheSBieSBwYXNzZWQgb2Zmc2V0XG4gICAgICpcbiAgICAgKiBJZiByZXN1bHRpbmcgbW9udGggaGFzIG1vcmUgZGF5cyB0aGFuIG9yaWdpbmFsIG9uZSwgZGF0ZSBpcyByb3VuZGVkIHRvIHRoZSBtYXhpbXVtIGRheVxuICAgICAqIGluIHRoZSByZXN1bHRpbmcgbW9udGguIE9mZnNldCBvZiBkYXlzIHdpbGwgYmUgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgcmVzdWx0ZWQgeWVhciBhbmQgbW9udGhcbiAgICAgKiB0byBub3QgaW50ZXJmZXJlIHdpdGggcGFyZW50IGNsYXNzZXMgbWV0aG9kc1xuICAgICAqXG4gICAgICogQHBhcmFtIG9mZnNldFxuICAgICAqIEByZXR1cm4gbmV3IGRhdGUgb2JqZWN0IGFzIGEgcmVzdWx0IG9mIG9mZnNldHRpbmcgY3VycmVudFxuICAgICAqL1xuICAgIG92ZXJyaWRlIGFwcGVuZCh7eWVhciA9IDAsIG1vbnRoID0gMCwgZGF5ID0gMH06IFR1aURheUxpa2UpOiBUdWlEYXkge1xuICAgICAgICBjb25zdCB0b3RhbE1vbnRocyA9ICh0aGlzLnllYXIgKyB5ZWFyKSAqIE1PTlRIU19JTl9ZRUFSICsgdGhpcy5tb250aCArIG1vbnRoO1xuICAgICAgICBsZXQgeWVhcnMgPSBNYXRoLmZsb29yKHRvdGFsTW9udGhzIC8gTU9OVEhTX0lOX1lFQVIpO1xuICAgICAgICBsZXQgbW9udGhzID0gdG90YWxNb250aHMgJSBNT05USFNfSU5fWUVBUjtcblxuICAgICAgICBsZXQgZGF5cyA9XG4gICAgICAgICAgICBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICB0aGlzLmRheSxcbiAgICAgICAgICAgICAgICBUdWlNb250aC5nZXRNb250aERheXNDb3VudChtb250aHMsIFR1aVllYXIuaXNMZWFwWWVhcih5ZWFycykpLFxuICAgICAgICAgICAgKSArIGRheTtcblxuICAgICAgICB3aGlsZSAoZGF5cyA+IFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KG1vbnRocywgVHVpWWVhci5pc0xlYXBZZWFyKHllYXJzKSkpIHtcbiAgICAgICAgICAgIGRheXMgLT0gVHVpTW9udGguZ2V0TW9udGhEYXlzQ291bnQobW9udGhzLCBUdWlZZWFyLmlzTGVhcFllYXIoeWVhcnMpKTtcblxuICAgICAgICAgICAgaWYgKG1vbnRocyA9PT0gVHVpTW9udGhOdW1iZXIuRGVjZW1iZXIpIHtcbiAgICAgICAgICAgICAgICB5ZWFycysrO1xuICAgICAgICAgICAgICAgIG1vbnRocyA9IFR1aU1vbnRoTnVtYmVyLkphbnVhcnk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vbnRocysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKGRheXMgPCBNSU5fREFZKSB7XG4gICAgICAgICAgICBpZiAobW9udGhzID09PSBUdWlNb250aE51bWJlci5KYW51YXJ5KSB7XG4gICAgICAgICAgICAgICAgeWVhcnMtLTtcbiAgICAgICAgICAgICAgICBtb250aHMgPSBUdWlNb250aE51bWJlci5EZWNlbWJlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9udGhzLS07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRheXMgKz0gVHVpTW9udGguZ2V0TW9udGhEYXlzQ291bnQobW9udGhzLCBUdWlZZWFyLmlzTGVhcFllYXIoeWVhcnMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgVHVpRGF5KHllYXJzLCBtb250aHMsIGRheXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZm9ybWF0dGVkIHdob2xlIGRhdGVcbiAgICAgKi9cbiAgICBnZXRGb3JtYXR0ZWREYXkoZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsIHNlcGFyYXRvcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbmdEZXZNb2RlICYmXG4gICAgICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFxuICAgICAgICAgICAgICAgIHNlcGFyYXRvci5sZW5ndGggPT09IDEsXG4gICAgICAgICAgICAgICAgYFNlcGFyYXRvciBzaG91bGQgY29uc2lzdCBvZiBvbmx5IDEgc3ltYm9sYCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZGQgPSB0aGlzLmZvcm1hdHRlZERheVBhcnQ7XG4gICAgICAgIGNvbnN0IG1tID0gdGhpcy5mb3JtYXR0ZWRNb250aFBhcnQ7XG4gICAgICAgIGNvbnN0IHl5eXkgPSB0aGlzLmZvcm1hdHRlZFllYXI7XG5cbiAgICAgICAgc3dpdGNoIChkYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICBjYXNlIGBZTURgOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt5eXl5fSR7c2VwYXJhdG9yfSR7bW19JHtzZXBhcmF0b3J9JHtkZH1gO1xuICAgICAgICAgICAgY2FzZSBgTURZYDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7bW19JHtzZXBhcmF0b3J9JHtkZH0ke3NlcGFyYXRvcn0ke3l5eXl9YDtcbiAgICAgICAgICAgIGNhc2UgYERNWWA6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtkZH0ke3NlcGFyYXRvcn0ke21tfSR7c2VwYXJhdG9yfSR7eXl5eX1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgdG9TdHJpbmcoZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUgPSBgRE1ZYCwgc2VwYXJhdG9yOiBzdHJpbmcgPSBgLmApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXR0ZWREYXkoZGF0ZUZvcm1hdCwgc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSB0b0pTT04oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3N1cGVyLnRvSlNPTigpfS0ke3RoaXMuZm9ybWF0dGVkRGF5UGFydH1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbmF0aXZlIHtAbGluayBEYXRlfSBiYXNlZCBvbiBsb2NhbCB0aW1lIHpvbmVcbiAgICAgKi9cbiAgICBvdmVycmlkZSB0b0xvY2FsTmF0aXZlRGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbmF0aXZlIHtAbGluayBEYXRlfSBiYXNlZCBvbiBVVENcbiAgICAgKi9cbiAgICBvdmVycmlkZSB0b1V0Y05hdGl2ZURhdGUoKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsIHRoaXMubW9udGgsIHRoaXMuZGF5KSk7XG4gICAgfVxufVxuIl19
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RhdGUtdGltZS9kYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUNILHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEdBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsT0FBTyxFQUFDLFVBQVUsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQU0vQixNQUFNLE9BQU8sTUFBTyxTQUFRLFFBQVE7SUFDaEMsWUFDSSxJQUFZLEVBQ1osS0FBYSxFQUNKLEdBQVc7UUFFcEIsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZWLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFHcEIsU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUtELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFVO1FBQ2pDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FB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QUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUtRLGVBQWU7UUFDcEIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpRGF5T2ZXZWVrLCBUdWlNb250aE51bWJlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9lbnVtcyc7XG5pbXBvcnQge1xuICAgIFR1aUludmFsaWREYXlFeGNlcHRpb24sXG4gICAgVHVpSW52YWxpZE1vbnRoRXhjZXB0aW9uLFxuICAgIFR1aUludmFsaWRZZWFyRXhjZXB0aW9uLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHtUdWlEYXlMaWtlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUdWlEYXRlTW9kZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aUluUmFuZ2UsIHR1aU5vcm1hbGl6ZVRvSW50TnVtYmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuXG5pbXBvcnQge0RBVEVfRklMTEVSX0xFTkdUSH0gZnJvbSAnLi9kYXRlLWZpbGxlcnMnO1xuaW1wb3J0IHtNSU5fREFZLCBNT05USFNfSU5fWUVBUn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlNb250aH0gZnJvbSAnLi9tb250aCc7XG5pbXBvcnQge1R1aVllYXJ9IGZyb20gJy4veWVhcic7XG5cbi8vIFRPRE86IExvY2FsaXplZCBmb3JtYXR0aW5nXG4vKipcbiAqIEltbXV0YWJsZSBkYXRlIG9iamVjdCwgY29uc2lzdGluZyBvZiBkYXksIG1vbnRoIGFuZCB5ZWFyXG4gKi9cbmV4cG9ydCBjbGFzcyBUdWlEYXkgZXh0ZW5kcyBUdWlNb250aCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHllYXI6IG51bWJlcixcbiAgICAgICAgbW9udGg6IG51bWJlcixcbiAgICAgICAgcmVhZG9ubHkgZGF5OiBudW1iZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHllYXIsIG1vbnRoKTtcbiAgICAgICAgbmdEZXZNb2RlICYmIHR1aUFzc2VydC5hc3NlcnQoVHVpRGF5LmlzVmFsaWREYXkoeWVhciwgbW9udGgsIGRheSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMge0BsaW5rIFR1aURheX0gZnJvbSBuYXRpdmUge0BsaW5rIERhdGV9IGJhc2VkIG9uIGxvY2FsIHRpbWUgem9uZVxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tTG9jYWxOYXRpdmVEYXRlKGRhdGU6IERhdGUpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gbmV3IFR1aURheShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMge0BsaW5rIFR1aURheX0gZnJvbSBuYXRpdmUge0BsaW5rIERhdGV9IHVzaW5nIFVUQ1xuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tVXRjTmF0aXZlRGF0ZShkYXRlOiBEYXRlKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXkoZGF0ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRhdGUuZ2V0VVRDRGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayB2YWxpZGl0eSBvZiB5ZWFyLCBtb250aCBhbmQgZGF5XG4gICAgICpcbiAgICAgKiBAcGFyYW0geWVhclxuICAgICAqIEBwYXJhbSBtb250aFxuICAgICAqIEBwYXJhbSBkYXlcbiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdmFsaWRpdHlcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZERheSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBUdWlNb250aC5pc1ZhbGlkTW9udGgoeWVhciwgbW9udGgpICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKGRheSkgJiZcbiAgICAgICAgICAgIHR1aUluUmFuZ2UoXG4gICAgICAgICAgICAgICAgZGF5LFxuICAgICAgICAgICAgICAgIE1JTl9EQVksXG4gICAgICAgICAgICAgICAgVHVpTW9udGguZ2V0TW9udGhEYXlzQ291bnQobW9udGgsIFR1aVllYXIuaXNMZWFwWWVhcih5ZWFyKSkgKyAxLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgZGF5IGJhc2VkIG9uIGxvY2FsIHRpbWUgem9uZVxuICAgICAqL1xuICAgIHN0YXRpYyBvdmVycmlkZSBjdXJyZW50TG9jYWwoKTogVHVpRGF5IHtcbiAgICAgICAgY29uc3QgbmF0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBuYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gbmF0aXZlRGF0ZS5nZXRNb250aCgpO1xuICAgICAgICBjb25zdCBkYXkgPSBuYXRpdmVEYXRlLmdldERhdGUoKTtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aURheSh5ZWFyLCBtb250aCwgZGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1cnJlbnQgZGF5IGJhc2VkIG9uIFVUQ1xuICAgICAqL1xuICAgIHN0YXRpYyBvdmVycmlkZSBjdXJyZW50VXRjKCk6IFR1aURheSB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCB5ZWFyID0gbmF0aXZlRGF0ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IG5hdGl2ZURhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgY29uc3QgZGF5ID0gbmF0aXZlRGF0ZS5nZXRVVENEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXkoeWVhciwgbW9udGgsIGRheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB7QGxpbmsgVHVpRGF5fSBub3JtYWxpemluZyB5ZWFyLCBtb250aCBhbmQgZGF5LiB7QGxpbmsgTmFOfSBpcyB0dXJuZWQgaW50byBtaW5pbWFsIHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHllYXIgYW55IHllYXIgdmFsdWUsIGluY2x1ZGluZyBpbnZhbGlkXG4gICAgICogQHBhcmFtIG1vbnRoIGFueSBtb250aCB2YWx1ZSwgaW5jbHVkaW5nIGludmFsaWQgKG1vbnRocyBzdGFydCB3aXRoIDApXG4gICAgICogQHBhcmFtIGRheSBhbnkgZGF5IHZhbHVlLCBpbmNsdWRpbmcgaW52YWxpZFxuICAgICAqIEByZXR1cm4gbm9ybWFsaXplZCBkYXRlXG4gICAgICovXG4gICAgc3RhdGljIG5vcm1hbGl6ZU9mKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF5OiBudW1iZXIpOiBUdWlEYXkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkWWVhciA9IFR1aVllYXIubm9ybWFsaXplWWVhclBhcnQoeWVhcik7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRNb250aCA9IFR1aU1vbnRoLm5vcm1hbGl6ZU1vbnRoUGFydChtb250aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWREYXkgPSBUdWlEYXkubm9ybWFsaXplRGF5UGFydChcbiAgICAgICAgICAgIGRheSxcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRNb250aCxcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRZZWFyLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpRGF5KG5vcm1hbGl6ZWRZZWFyLCBub3JtYWxpemVkTW9udGgsIG5vcm1hbGl6ZWREYXkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvdmVycmlkZSBsZW5ndGhCZXR3ZWVuKGZyb206IFR1aURheSwgdG86IFR1aURheSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKFxuICAgICAgICAgICAgKHRvLnRvTG9jYWxOYXRpdmVEYXRlKCkuZ2V0VGltZSgpIC0gZnJvbS50b0xvY2FsTmF0aXZlRGF0ZSgpLmdldFRpbWUoKSkgL1xuICAgICAgICAgICAgICAgICgxMDAwICogNjAgKiA2MCAqIDI0KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcGFyc2VSYXdEYXRlU3RyaW5nKFxuICAgICAgICBkYXRlOiBzdHJpbmcsXG4gICAgICAgIGRhdGVNb2RlOiBUdWlEYXRlTW9kZSA9IGBETVlgLFxuICAgICk6IHtkYXk6IG51bWJlcjsgbW9udGg6IG51bWJlcjsgeWVhcjogbnVtYmVyfSB7XG4gICAgICAgIG5nRGV2TW9kZSAmJlxuICAgICAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgICAgICBkYXRlLmxlbmd0aCA9PT0gREFURV9GSUxMRVJfTEVOR1RILFxuICAgICAgICAgICAgICAgIGBbcGFyc2VSYXdEYXRlU3RyaW5nXTogd3JvbmcgZGF0ZSBzdHJpbmcgbGVuZ3RoYCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgc3dpdGNoIChkYXRlTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBgWU1EYDpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXk6IHBhcnNlSW50KGRhdGUuc2xpY2UoOCwgMTApLCAxMCksXG4gICAgICAgICAgICAgICAgICAgIG1vbnRoOiBwYXJzZUludChkYXRlLnNsaWNlKDUsIDcpLCAxMCkgLSAxLFxuICAgICAgICAgICAgICAgICAgICB5ZWFyOiBwYXJzZUludChkYXRlLnNsaWNlKDAsIDQpLCAxMCksXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY2FzZSBgTURZYDpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXk6IHBhcnNlSW50KGRhdGUuc2xpY2UoMywgNSksIDEwKSxcbiAgICAgICAgICAgICAgICAgICAgbW9udGg6IHBhcnNlSW50KGRhdGUuc2xpY2UoMCwgMiksIDEwKSAtIDEsXG4gICAgICAgICAgICAgICAgICAgIHllYXI6IHBhcnNlSW50KGRhdGUuc2xpY2UoNiwgMTApLCAxMCksXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNhc2UgYERNWWA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF5OiBwYXJzZUludChkYXRlLnNsaWNlKDAsIDIpLCAxMCksXG4gICAgICAgICAgICAgICAgICAgIG1vbnRoOiBwYXJzZUludChkYXRlLnNsaWNlKDMsIDUpLCAxMCkgLSAxLFxuICAgICAgICAgICAgICAgICAgICB5ZWFyOiBwYXJzZUludChkYXRlLnNsaWNlKDYsIDEwKSwgMTApLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBNb3ZlIG1vbnRoIGFuZCB5ZWFyIHJlbGF0ZWQgY29kZSBjb3JyZXNwb25kaW5nIGNsYXNzZXNcbiAgICAvKipcbiAgICAgKiBQYXJzaW5nIGEgc3RyaW5nIHdpdGggZGF0ZSB3aXRoIG5vcm1hbGl6YXRpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSByYXdEYXRlIGRhdGUgc3RyaW5nXG4gICAgICogQHBhcmFtIGRhdGVNb2RlIGRhdGUgZm9ybWF0IG9mIHRoZSBkYXRlIHN0cmluZyAoRE1ZIHwgTURZIHwgWU1EKVxuICAgICAqIEByZXR1cm4gbm9ybWFsaXplZCBkYXRlXG4gICAgICovXG4gICAgc3RhdGljIG5vcm1hbGl6ZVBhcnNlKHJhd0RhdGU6IHN0cmluZywgZGF0ZU1vZGU6IFR1aURhdGVNb2RlID0gYERNWWApOiBUdWlEYXkge1xuICAgICAgICBjb25zdCB7ZGF5LCBtb250aCwgeWVhcn0gPSB0aGlzLnBhcnNlUmF3RGF0ZVN0cmluZyhyYXdEYXRlLCBkYXRlTW9kZSk7XG5cbiAgICAgICAgcmV0dXJuIFR1aURheS5ub3JtYWxpemVPZih5ZWFyLCBtb250aCwgZGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzaW5nIGEgZGF0ZSBzdHJpbmdpZmllZCBpbiBhIHRvSlNPTiBmb3JtYXRcbiAgICAgKiBAcGFyYW0geWVhck1vbnRoRGF5U3RyaW5nIGRhdGUgc3RyaW5nIGluIGZvcm1hdCBvZiBZWVlZLU1NLUREXG4gICAgICogQHJldHVybiBkYXRlXG4gICAgICogQHRocm93cyBleGNlcHRpb25zIGlmIGFueSBwYXJ0IG9mIHRoZSBkYXRlIGlzIGludmFsaWRcbiAgICAgKi9cbiAgICBzdGF0aWMganNvblBhcnNlKHllYXJNb250aERheVN0cmluZzogc3RyaW5nKTogVHVpRGF5IHtcbiAgICAgICAgY29uc3Qge2RheSwgbW9udGgsIHllYXJ9ID0gdGhpcy5wYXJzZVJhd0RhdGVTdHJpbmcoeWVhck1vbnRoRGF5U3RyaW5nLCBgWU1EYCk7XG5cbiAgICAgICAgaWYgKCFUdWlZZWFyLmlzVmFsaWRZZWFyKHllYXIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHVpSW52YWxpZFllYXJFeGNlcHRpb24oeWVhcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVR1aU1vbnRoLmlzVmFsaWRNb250aCh5ZWFyLCBtb250aCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUdWlJbnZhbGlkTW9udGhFeGNlcHRpb24obW9udGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIU51bWJlci5pc0ludGVnZXIoZGF5KSB8fFxuICAgICAgICAgICAgIXR1aUluUmFuZ2UoXG4gICAgICAgICAgICAgICAgZGF5LFxuICAgICAgICAgICAgICAgIE1JTl9EQVksXG4gICAgICAgICAgICAgICAgVHVpTW9udGguZ2V0TW9udGhEYXlzQ291bnQobW9udGgsIFR1aVllYXIuaXNMZWFwWWVhcih5ZWFyKSkgKyAxLFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUdWlJbnZhbGlkRGF5RXhjZXB0aW9uKGRheSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IFR1aURheSh5ZWFyLCBtb250aCwgZGF5KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIG5vcm1hbGl6ZURheVBhcnQoZGF5OiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIG5nRGV2TW9kZSAmJiB0dWlBc3NlcnQuYXNzZXJ0KFR1aU1vbnRoLmlzVmFsaWRNb250aCh5ZWFyLCBtb250aCkpO1xuXG4gICAgICAgIGNvbnN0IG1vbnRoRGF5c0NvdW50ID0gVHVpTW9udGguZ2V0TW9udGhEYXlzQ291bnQoXG4gICAgICAgICAgICBtb250aCxcbiAgICAgICAgICAgIFR1aVllYXIuaXNMZWFwWWVhcih5ZWFyKSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdHVpTm9ybWFsaXplVG9JbnROdW1iZXIoZGF5LCAxLCBtb250aERheXNDb3VudCk7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1hdHRlZERheVBhcnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLmRheSkucGFkU3RhcnQoMiwgYDBgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNXZWVrZW5kKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkYXlPZldlZWsgPSB0aGlzLmRheU9mV2VlayhmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGRheU9mV2VlayA9PT0gVHVpRGF5T2ZXZWVrLlNhdHVyZGF5IHx8IGRheU9mV2VlayA9PT0gVHVpRGF5T2ZXZWVrLlN1bmRheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGRheSBvZiB3ZWVrXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhcnRGcm9tTW9uZGF5IHdoZXRoZXIgd2VlayBzdGFydHMgZnJvbSBNb25kYXkgYW5kIG5vdCBmcm9tIFN1bmRheVxuICAgICAqIEByZXR1cm4gZGF5IG9mIHdlZWsgKGZyb20gMCB0byA2KVxuICAgICAqL1xuICAgIGRheU9mV2VlayhzdGFydEZyb21Nb25kYXk6IGJvb2xlYW4gPSB0cnVlKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZGF5T2ZXZWVrID0gc3RhcnRGcm9tTW9uZGF5XG4gICAgICAgICAgICA/IHRoaXMudG9Mb2NhbE5hdGl2ZURhdGUoKS5nZXREYXkoKSAtIDFcbiAgICAgICAgICAgIDogdGhpcy50b0xvY2FsTmF0aXZlRGF0ZSgpLmdldERheSgpO1xuXG4gICAgICAgIHJldHVybiBkYXlPZldlZWsgPCAwID8gNiA6IGRheU9mV2VlaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgZGF0ZSBpcyBhZnRlciBjdXJyZW50XG4gICAgICovXG4gICAgZGF5QmVmb3JlKGFub3RoZXI6IFR1aURheSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tb250aEJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMubW9udGhTYW1lKGFub3RoZXIpICYmIHRoaXMuZGF5IDwgYW5vdGhlci5kYXkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIGRhdGUgaXMgYWZ0ZXIgb3IgZXF1YWxzIHRvIGN1cnJlbnRcbiAgICAgKi9cbiAgICBkYXlTYW1lT3JCZWZvcmUoYW5vdGhlcjogVHVpRGF5KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm1vbnRoQmVmb3JlKGFub3RoZXIpIHx8XG4gICAgICAgICAgICAodGhpcy5tb250aFNhbWUoYW5vdGhlcikgJiYgdGhpcy5kYXkgPD0gYW5vdGhlci5kYXkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIGRhdGUgaXMgdGhlIHNhbWUgYXMgY3VycmVudFxuICAgICAqL1xuICAgIGRheVNhbWUoYW5vdGhlcjogVHVpRGF5KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoU2FtZShhbm90aGVyKSAmJiB0aGlzLmRheSA9PT0gYW5vdGhlci5kYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIGRhdGUgaXMgZWl0aGVyIGJlZm9yZSBvciB0aGUgc2FtZSBhcyBjdXJyZW50XG4gICAgICovXG4gICAgZGF5U2FtZU9yQWZ0ZXIoYW5vdGhlcjogVHVpRGF5KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm1vbnRoQWZ0ZXIoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLm1vbnRoU2FtZShhbm90aGVyKSAmJiB0aGlzLmRheSA+PSBhbm90aGVyLmRheSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgZGF0ZSBpcyBiZWZvcmUgY3VycmVudFxuICAgICAqL1xuICAgIGRheUFmdGVyKGFub3RoZXI6IFR1aURheSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tb250aEFmdGVyKGFub3RoZXIpIHx8XG4gICAgICAgICAgICAodGhpcy5tb250aFNhbWUoYW5vdGhlcikgJiYgdGhpcy5kYXkgPiBhbm90aGVyLmRheSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGFtcGluZyBkYXRlIGJldHdlZW4gdHdvIGxpbWl0c1xuICAgICAqXG4gICAgICogQHBhcmFtIG1pblxuICAgICAqIEBwYXJhbSBtYXhcbiAgICAgKiBAcmV0dXJuIGNsYW1wZWQgZGF0ZVxuICAgICAqL1xuICAgIGRheUxpbWl0KG1pbjogVHVpRGF5IHwgbnVsbCwgbWF4OiBUdWlEYXkgfCBudWxsKTogVHVpRGF5IHtcbiAgICAgICAgaWYgKG1pbiAhPT0gbnVsbCAmJiB0aGlzLmRheUJlZm9yZShtaW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gbWluO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1heCAhPT0gbnVsbCAmJiB0aGlzLmRheUFmdGVyKG1heCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbW11dGFibHkgYWx0ZXJzIGN1cnJlbnQgZGF5IGJ5IHBhc3NlZCBvZmZzZXRcbiAgICAgKlxuICAgICAqIElmIHJlc3VsdGluZyBtb250aCBoYXMgbW9yZSBkYXlzIHRoYW4gb3JpZ2luYWwgb25lLCBkYXRlIGlzIHJvdW5kZWQgdG8gdGhlIG1heGltdW0gZGF5XG4gICAgICogaW4gdGhlIHJlc3VsdGluZyBtb250aC4gT2Zmc2V0IG9mIGRheXMgd2lsbCBiZSBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSByZXN1bHRlZCB5ZWFyIGFuZCBtb250aFxuICAgICAqIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBwYXJlbnQgY2xhc3NlcyBtZXRob2RzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAgICogQHJldHVybiBuZXcgZGF0ZSBvYmplY3QgYXMgYSByZXN1bHQgb2Ygb2Zmc2V0dGluZyBjdXJyZW50XG4gICAgICovXG4gICAgb3ZlcnJpZGUgYXBwZW5kKHt5ZWFyID0gMCwgbW9udGggPSAwLCBkYXkgPSAwfTogVHVpRGF5TGlrZSk6IFR1aURheSB7XG4gICAgICAgIGNvbnN0IHRvdGFsTW9udGhzID0gKHRoaXMueWVhciArIHllYXIpICogTU9OVEhTX0lOX1lFQVIgKyB0aGlzLm1vbnRoICsgbW9udGg7XG4gICAgICAgIGxldCB5ZWFycyA9IE1hdGguZmxvb3IodG90YWxNb250aHMgLyBNT05USFNfSU5fWUVBUik7XG4gICAgICAgIGxldCBtb250aHMgPSB0b3RhbE1vbnRocyAlIE1PTlRIU19JTl9ZRUFSO1xuXG4gICAgICAgIGxldCBkYXlzID1cbiAgICAgICAgICAgIE1hdGgubWluKFxuICAgICAgICAgICAgICAgIHRoaXMuZGF5LFxuICAgICAgICAgICAgICAgIFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KG1vbnRocywgVHVpWWVhci5pc0xlYXBZZWFyKHllYXJzKSksXG4gICAgICAgICAgICApICsgZGF5O1xuXG4gICAgICAgIHdoaWxlIChkYXlzID4gVHVpTW9udGguZ2V0TW9udGhEYXlzQ291bnQobW9udGhzLCBUdWlZZWFyLmlzTGVhcFllYXIoeWVhcnMpKSkge1xuICAgICAgICAgICAgZGF5cyAtPSBUdWlNb250aC5nZXRNb250aERheXNDb3VudChtb250aHMsIFR1aVllYXIuaXNMZWFwWWVhcih5ZWFycykpO1xuXG4gICAgICAgICAgICBpZiAobW9udGhzID09PSBUdWlNb250aE51bWJlci5EZWNlbWJlcikge1xuICAgICAgICAgICAgICAgIHllYXJzKys7XG4gICAgICAgICAgICAgICAgbW9udGhzID0gVHVpTW9udGhOdW1iZXIuSmFudWFyeTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9udGhzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoZGF5cyA8IE1JTl9EQVkpIHtcbiAgICAgICAgICAgIGlmIChtb250aHMgPT09IFR1aU1vbnRoTnVtYmVyLkphbnVhcnkpIHtcbiAgICAgICAgICAgICAgICB5ZWFycy0tO1xuICAgICAgICAgICAgICAgIG1vbnRocyA9IFR1aU1vbnRoTnVtYmVyLkRlY2VtYmVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb250aHMtLTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF5cyArPSBUdWlNb250aC5nZXRNb250aERheXNDb3VudChtb250aHMsIFR1aVllYXIuaXNMZWFwWWVhcih5ZWFycykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXkoeWVhcnMsIG1vbnRocywgZGF5cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBmb3JtYXR0ZWQgd2hvbGUgZGF0ZVxuICAgICAqL1xuICAgIGdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSwgc2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBuZ0Rldk1vZGUgJiZcbiAgICAgICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICAgICAgc2VwYXJhdG9yLmxlbmd0aCA9PT0gMSxcbiAgICAgICAgICAgICAgICBgU2VwYXJhdG9yIHNob3VsZCBjb25zaXN0IG9mIG9ubHkgMSBzeW1ib2xgLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBkZCA9IHRoaXMuZm9ybWF0dGVkRGF5UGFydDtcbiAgICAgICAgY29uc3QgbW0gPSB0aGlzLmZvcm1hdHRlZE1vbnRoUGFydDtcbiAgICAgICAgY29uc3QgeXl5eSA9IHRoaXMuZm9ybWF0dGVkWWVhcjtcblxuICAgICAgICBzd2l0Y2ggKGRhdGVGb3JtYXQpIHtcbiAgICAgICAgICAgIGNhc2UgYFlNRGA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3l5eXl9JHtzZXBhcmF0b3J9JHttbX0ke3NlcGFyYXRvcn0ke2RkfWA7XG4gICAgICAgICAgICBjYXNlIGBNRFlgOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHttbX0ke3NlcGFyYXRvcn0ke2RkfSR7c2VwYXJhdG9yfSR7eXl5eX1gO1xuICAgICAgICAgICAgY2FzZSBgRE1ZYDpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2RkfSR7c2VwYXJhdG9yfSR7bW19JHtzZXBhcmF0b3J9JHt5eXl5fWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVycmlkZSB0b1N0cmluZyhkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSA9IGBETVlgLCBzZXBhcmF0b3I6IHN0cmluZyA9IGAuYCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0LCBzZXBhcmF0b3IpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHRvSlNPTigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7c3VwZXIudG9KU09OKCl9LSR7dGhpcy5mb3JtYXR0ZWREYXlQYXJ0fWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBuYXRpdmUge0BsaW5rIERhdGV9IGJhc2VkIG9uIGxvY2FsIHRpbWUgem9uZVxuICAgICAqL1xuICAgIG92ZXJyaWRlIHRvTG9jYWxOYXRpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCB0aGlzLmRheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBuYXRpdmUge0BsaW5rIERhdGV9IGJhc2VkIG9uIFVUQ1xuICAgICAqL1xuICAgIG92ZXJyaWRlIHRvVXRjTmF0aXZlRGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5kYXkpKTtcbiAgICB9XG59XG4iXX0=
|
@@ -1,8 +1,5 @@
|
|
1
1
|
import { tuiAssert } from '@taiga-ui/cdk/classes';
|
2
2
|
import { RANGE_SEPARATOR_CHAR } from './date-time';
|
3
|
-
/**
|
4
|
-
* An immutable range of two {@link TuiMonth} objects
|
5
|
-
*/
|
6
3
|
export class TuiMonthRange {
|
7
4
|
constructor(from, to) {
|
8
5
|
this.from = from;
|
@@ -24,4 +21,4 @@ export class TuiMonthRange {
|
|
24
21
|
return `${this.from}${RANGE_SEPARATOR_CHAR}${this.to}`;
|
25
22
|
}
|
26
23
|
}
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGF0ZS10aW1lL21vbnRoLXJhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFNakQsTUFBTSxPQUFPLGFBQWE7SUFDdEIsWUFDYSxJQUFjLEVBQ2QsRUFBWTtRQURaLFNBQUksR0FBSixJQUFJLENBQVU7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFVO1FBRXJCLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWdCLEVBQUUsTUFBZ0I7UUFDMUMsT0FBTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBc0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzNELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpQXNzZXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuXG5pbXBvcnQge1JBTkdFX1NFUEFSQVRPUl9DSEFSfSBmcm9tICcuL2RhdGUtdGltZSc7XG5pbXBvcnQge1R1aU1vbnRofSBmcm9tICcuL21vbnRoJztcblxuLyoqXG4gKiBBbiBpbW11dGFibGUgcmFuZ2Ugb2YgdHdvIHtAbGluayBUdWlNb250aH0gb2JqZWN0c1xuICovXG5leHBvcnQgY2xhc3MgVHVpTW9udGhSYW5nZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGZyb206IFR1aU1vbnRoLFxuICAgICAgICByZWFkb25seSB0bzogVHVpTW9udGgsXG4gICAgKSB7XG4gICAgICAgIG5nRGV2TW9kZSAmJiB0dWlBc3NlcnQuYXNzZXJ0KGZyb20ubW9udGhTYW1lT3JCZWZvcmUodG8pKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc29ydChtb250aDE6IFR1aU1vbnRoLCBtb250aDI6IFR1aU1vbnRoKTogVHVpTW9udGhSYW5nZSB7XG4gICAgICAgIHJldHVybiBtb250aDEubW9udGhTYW1lT3JCZWZvcmUobW9udGgyKVxuICAgICAgICAgICAgPyBuZXcgVHVpTW9udGhSYW5nZShtb250aDEsIG1vbnRoMilcbiAgICAgICAgICAgIDogbmV3IFR1aU1vbnRoUmFuZ2UobW9udGgyLCBtb250aDEpO1xuICAgIH1cblxuICAgIGdldCBpc1NpbmdsZU1vbnRoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tLm1vbnRoU2FtZSh0aGlzLnRvKTtcbiAgICB9XG5cbiAgICBtb250aFNhbWUoYW5vdGhlcjogVHVpTW9udGhSYW5nZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tLm1vbnRoU2FtZShhbm90aGVyLmZyb20pICYmIHRoaXMudG8ubW9udGhTYW1lKGFub3RoZXIudG8pO1xuICAgIH1cblxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmZyb219JHtSQU5HRV9TRVBBUkFUT1JfQ0hBUn0ke3RoaXMudG99YDtcbiAgICB9XG59XG4iXX0=
|