@taiga-ui/kit 2.27.1 → 2.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/abstract/slider/slider.d.ts +1 -1
- package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-kit-abstract.umd.js +6 -5
- package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-arrow.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-arrow.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -1
- package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-carousel.umd.js +4 -3
- package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.js +3 -10
- package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-field-error.umd.js +20 -8
- package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-field-error.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -6
- package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-range.umd.js +28 -13
- package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js +40 -23
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date.umd.js +27 -12
- package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -8
- package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -8
- package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -8
- package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-number.umd.js +12 -12
- package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -9
- package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +46 -25
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone.umd.js +3 -3
- package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.js +3 -3
- package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-time.umd.js +0 -7
- package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.js +1 -8
- package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-rating.umd.js +368 -0
- package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -0
- package/bundles/taiga-ui-kit-components-rating.umd.min.js +16 -0
- package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -0
- package/bundles/taiga-ui-kit-components-select.umd.js +3 -10
- package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.js +23 -13
- package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components.umd.js +12 -4
- package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-constants.umd.js +8 -0
- package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-constants.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-pipes-stringify.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-pipes-stringify.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-tokens.umd.js +7 -0
- package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-utils-mask.umd.js +44 -13
- package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-utils-mask.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +241 -6
- package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js +15 -1
- package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
- package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
- package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
- package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
- package/components/checkbox-block/checkbox-block.component.d.ts +1 -1
- package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -1
- package/components/combo-box/combo-box.component.d.ts +0 -1
- package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
- package/components/field-error/field-error.component.d.ts +3 -2
- package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
- package/components/index.d.ts +1 -0
- package/components/input-date/input-date.component.d.ts +5 -4
- package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
- package/components/input-date-range/input-date-range.component.d.ts +5 -4
- package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
- package/components/input-date-time/input-date-time.component.d.ts +5 -5
- package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
- package/components/input-file/input-file.component.d.ts +0 -1
- package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
- package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
- package/components/input-month/input-month.component.d.ts +0 -1
- package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
- package/components/input-month-range/input-month-range.component.d.ts +0 -1
- package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
- package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
- package/components/input-password/input-password.component.d.ts +0 -1
- package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
- package/components/input-phone-international/const/countries.d.ts +15 -7
- package/components/input-phone-international/country-iso-code.d.ts +1 -1
- package/components/input-phone-international/index.d.ts +2 -0
- package/components/input-phone-international/input-phone-international.component.d.ts +2 -2
- package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
- package/components/input-phone-international/tokens/countries-masks.d.ts +3 -0
- package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -0
- package/components/input-tag/input-tag.component.d.ts +1 -1
- package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
- package/components/input-time/input-time.component.d.ts +0 -1
- package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
- package/components/multi-select/multi-select.component.d.ts +0 -1
- package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
- package/components/rating/index.d.ts +3 -0
- package/components/rating/package.json +13 -0
- package/components/rating/rating-options.d.ts +9 -0
- package/components/rating/rating.component.d.ts +21 -0
- package/components/rating/rating.module.d.ts +2 -0
- package/components/rating/taiga-ui-kit-components-rating.d.ts +4 -0
- package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -0
- package/components/select/select.component.d.ts +0 -1
- package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
- package/components/taiga-ui-kit-components.metadata.json +1 -1
- package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
- package/components/tree/components/tree/tree.component.d.ts +3 -1
- package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
- package/constants/masks.d.ts +8 -0
- package/constants/taiga-ui-kit-constants.metadata.json +1 -1
- package/directives/lazy-loading/lazy-loading.service.d.ts +1 -1
- package/esm2015/abstract/input-slider.js +4 -2
- package/esm2015/abstract/slider/slider.js +1 -1
- package/esm2015/components/arrow/arrow.component.js +1 -1
- package/esm2015/components/calendar-month/calendar-month.component.js +5 -2
- package/esm2015/components/carousel/carousel-scroll.directive.js +5 -4
- package/esm2015/components/checkbox/checkbox.component.js +2 -2
- package/esm2015/components/checkbox-block/checkbox-block.component.js +1 -1
- package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
- package/esm2015/components/combo-box/combo-box.component.js +4 -7
- package/esm2015/components/field-error/field-error.component.js +15 -6
- package/esm2015/components/index.js +2 -1
- package/esm2015/components/input/input.component.js +2 -2
- package/esm2015/components/input-count/input-count.component.js +3 -7
- package/esm2015/components/input-date/input-date.component.js +31 -18
- package/esm2015/components/input-date-range/input-date-range.component.js +32 -19
- package/esm2015/components/input-date-time/input-date-time.component.js +45 -24
- package/esm2015/components/input-file/input-file.component.js +2 -5
- package/esm2015/components/input-inline/input-inline.component.js +3 -3
- package/esm2015/components/input-month/input-month.component.js +2 -5
- package/esm2015/components/input-month-range/input-month-range.component.js +2 -5
- package/esm2015/components/input-number/input-number.component.js +15 -15
- package/esm2015/components/input-password/input-password.component.js +3 -6
- package/esm2015/components/input-phone/input-phone.component.js +4 -4
- package/esm2015/components/input-phone-international/const/countries.js +21 -10
- package/esm2015/components/input-phone-international/country-iso-code.js +2 -2
- package/esm2015/components/input-phone-international/index.js +3 -1
- package/esm2015/components/input-phone-international/input-phone-international.component.js +15 -18
- package/esm2015/components/input-phone-international/tokens/countries-masks.js +6 -0
- package/esm2015/components/input-phone-international/utils/extract-value-from-event.js +9 -0
- package/esm2015/components/input-tag/input-tag.component.js +4 -4
- package/esm2015/components/input-time/input-time.component.js +1 -4
- package/esm2015/components/multi-select/multi-select.component.js +2 -5
- package/esm2015/components/progress/pipes/abstract-color-segments.js +1 -1
- package/esm2015/components/rating/index.js +4 -0
- package/esm2015/components/rating/rating-options.js +11 -0
- package/esm2015/components/rating/rating.component.js +91 -0
- package/esm2015/components/rating/rating.module.js +23 -0
- package/esm2015/components/rating/taiga-ui-kit-components-rating.js +5 -0
- package/esm2015/components/select/select.component.js +4 -7
- package/esm2015/components/tag/tag.component.js +2 -2
- package/esm2015/components/text-area/text-area.component.js +3 -3
- package/esm2015/components/toggle/toggle.component.js +1 -1
- package/esm2015/components/tree/components/tree/tree.component.js +11 -6
- package/esm2015/components/tree/tree.module.js +9 -2
- package/esm2015/constants/masks.js +9 -1
- package/esm2015/directives/lazy-loading/lazy-loading.service.js +1 -1
- package/esm2015/pipes/stringify/stringify.pipe.js +1 -1
- package/esm2015/tokens/date-inputs-value-transformers.js +5 -0
- package/esm2015/tokens/index.js +2 -1
- package/esm2015/tokens/validation-errors.js +1 -1
- package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +6 -4
- package/esm2015/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
- package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
- package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +2 -2
- package/esm2015/utils/mask/create-date-mask.js +16 -0
- package/esm2015/utils/mask/create-date-range-mask.js +14 -0
- package/esm2015/utils/mask/index.js +3 -1
- package/esm2015/utils/miscellaneous/get-precision.js +8 -0
- package/esm2015/utils/miscellaneous/index.js +2 -1
- package/esm2015/utils/miscellaneous/replay-control-value-changes-factory.js +10 -4
- package/esm5/abstract/input-slider.js +4 -2
- package/esm5/abstract/slider/slider.js +1 -1
- package/esm5/components/arrow/arrow.component.js +1 -1
- package/esm5/components/calendar-month/calendar-month.component.js +5 -2
- package/esm5/components/carousel/carousel-scroll.directive.js +5 -4
- package/esm5/components/checkbox/checkbox.component.js +2 -2
- package/esm5/components/checkbox-block/checkbox-block.component.js +1 -1
- package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
- package/esm5/components/combo-box/combo-box.component.js +4 -11
- package/esm5/components/field-error/field-error.component.js +19 -6
- package/esm5/components/index.js +2 -1
- package/esm5/components/input/input.component.js +2 -2
- package/esm5/components/input-count/input-count.component.js +3 -7
- package/esm5/components/input-date/input-date.component.js +33 -18
- package/esm5/components/input-date-range/input-date-range.component.js +34 -19
- package/esm5/components/input-date-time/input-date-time.component.js +45 -28
- package/esm5/components/input-file/input-file.component.js +2 -9
- package/esm5/components/input-inline/input-inline.component.js +3 -3
- package/esm5/components/input-month/input-month.component.js +2 -9
- package/esm5/components/input-month-range/input-month-range.component.js +2 -9
- package/esm5/components/input-number/input-number.component.js +14 -14
- package/esm5/components/input-password/input-password.component.js +3 -10
- package/esm5/components/input-phone/input-phone.component.js +4 -4
- package/esm5/components/input-phone-international/const/countries.js +21 -10
- package/esm5/components/input-phone-international/country-iso-code.js +2 -2
- package/esm5/components/input-phone-international/index.js +3 -1
- package/esm5/components/input-phone-international/input-phone-international.component.js +15 -18
- package/esm5/components/input-phone-international/tokens/countries-masks.js +6 -0
- package/esm5/components/input-phone-international/utils/extract-value-from-event.js +9 -0
- package/esm5/components/input-tag/input-tag.component.js +4 -4
- package/esm5/components/input-time/input-time.component.js +1 -8
- package/esm5/components/multi-select/multi-select.component.js +2 -9
- package/esm5/components/progress/pipes/abstract-color-segments.js +1 -1
- package/esm5/components/rating/index.js +4 -0
- package/esm5/components/rating/rating-options.js +11 -0
- package/esm5/components/rating/rating.component.js +111 -0
- package/esm5/components/rating/rating.module.js +26 -0
- package/esm5/components/rating/taiga-ui-kit-components-rating.js +5 -0
- package/esm5/components/select/select.component.js +4 -11
- package/esm5/components/tag/tag.component.js +1 -1
- package/esm5/components/text-area/text-area.component.js +3 -3
- package/esm5/components/toggle/toggle.component.js +1 -1
- package/esm5/components/tree/components/tree/tree.component.js +15 -9
- package/esm5/components/tree/tree.module.js +9 -2
- package/esm5/constants/masks.js +9 -1
- package/esm5/directives/lazy-loading/lazy-loading.service.js +1 -1
- package/esm5/pipes/stringify/stringify.pipe.js +1 -1
- package/esm5/tokens/date-inputs-value-transformers.js +5 -0
- package/esm5/tokens/index.js +2 -1
- package/esm5/tokens/validation-errors.js +1 -1
- package/esm5/utils/mask/create-auto-corrected-date-pipe.js +6 -4
- package/esm5/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
- package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
- package/esm5/utils/mask/create-auto-corrected-time-pipe.js +2 -2
- package/esm5/utils/mask/create-date-mask.js +17 -0
- package/esm5/utils/mask/create-date-range-mask.js +13 -0
- package/esm5/utils/mask/index.js +3 -1
- package/esm5/utils/miscellaneous/get-precision.js +9 -0
- package/esm5/utils/miscellaneous/index.js +2 -1
- package/esm5/utils/miscellaneous/replay-control-value-changes-factory.js +12 -4
- package/fesm2015/taiga-ui-kit-abstract.js +3 -1
- package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-arrow.js +1 -1
- package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -1
- package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-carousel.js +4 -3
- package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
- package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-combo-box.js +3 -6
- package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-field-error.js +14 -5
- package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-count.js +2 -6
- package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-range.js +31 -18
- package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-time.js +45 -24
- package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date.js +30 -17
- package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-file.js +1 -4
- package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-inline.js +2 -2
- package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -4
- package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-month.js +1 -4
- package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-number.js +14 -14
- package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-password.js +2 -5
- package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js +46 -28
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone.js +3 -3
- package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-tag.js +3 -3
- package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-time.js +0 -3
- package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select.js +1 -4
- package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-rating.js +123 -0
- package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -0
- package/fesm2015/taiga-ui-kit-components-select.js +3 -6
- package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
- package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
- package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tree.js +17 -8
- package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components.js +1 -0
- package/fesm2015/taiga-ui-kit-components.js.map +1 -1
- package/fesm2015/taiga-ui-kit-constants.js +8 -0
- package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
- package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
- package/fesm2015/taiga-ui-kit-pipes-stringify.js.map +1 -1
- package/fesm2015/taiga-ui-kit-tokens.js +5 -1
- package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-kit-utils-mask.js +46 -15
- package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
- package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +17 -3
- package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
- package/fesm5/taiga-ui-kit-abstract.js +3 -1
- package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-arrow.js +1 -1
- package/fesm5/taiga-ui-kit-components-calendar-month.js +4 -1
- package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-carousel.js +4 -3
- package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
- package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-combo-box.js +3 -10
- package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-field-error.js +18 -5
- package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-count.js +2 -6
- package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-date-range.js +33 -18
- package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-date-time.js +45 -28
- package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-date.js +32 -17
- package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-file.js +1 -8
- package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-inline.js +2 -2
- package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -8
- package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-month.js +1 -8
- package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-number.js +13 -13
- package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-password.js +2 -9
- package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-phone-international.js +46 -28
- package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-phone.js +3 -3
- package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-tag.js +3 -3
- package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-time.js +0 -7
- package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input.js +1 -1
- package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-multi-select.js +1 -8
- package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-rating.js +146 -0
- package/fesm5/taiga-ui-kit-components-rating.js.map +1 -0
- package/fesm5/taiga-ui-kit-components-select.js +3 -10
- package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
- package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-tree.js +21 -11
- package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
- package/fesm5/taiga-ui-kit-components.js +1 -0
- package/fesm5/taiga-ui-kit-components.js.map +1 -1
- package/fesm5/taiga-ui-kit-constants.js +8 -0
- package/fesm5/taiga-ui-kit-constants.js.map +1 -1
- package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
- package/fesm5/taiga-ui-kit-pipes-stringify.js.map +1 -1
- package/fesm5/taiga-ui-kit-tokens.js +5 -1
- package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
- package/fesm5/taiga-ui-kit-utils-mask.js +44 -15
- package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
- package/fesm5/taiga-ui-kit-utils-miscellaneous.js +20 -3
- package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
- package/package.json +6 -6
- package/tokens/date-inputs-value-transformers.d.ts +5 -0
- package/tokens/index.d.ts +1 -0
- package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
- package/tokens/validation-errors.d.ts +2 -1
- package/utils/mask/create-auto-corrected-date-pipe.d.ts +7 -3
- package/utils/mask/create-auto-corrected-date-range-pipe.d.ts +7 -2
- package/utils/mask/create-auto-corrected-date-time-pipe.d.ts +8 -3
- package/utils/mask/create-auto-corrected-time-pipe.d.ts +1 -1
- package/utils/mask/create-date-mask.d.ts +3 -0
- package/utils/mask/create-date-range-mask.d.ts +3 -0
- package/utils/mask/index.d.ts +2 -0
- package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
- package/utils/miscellaneous/get-precision.d.ts +4 -0
- package/utils/miscellaneous/index.d.ts +1 -0
- package/utils/miscellaneous/replay-control-value-changes-factory.d.ts +3 -2
- package/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.metadata.json +1 -1
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { __decorate, __extends, __param } from "tslib";
|
|
2
2
|
import { ChangeDetectorRef, Component, forwardRef, HostListener, Inject, Injector, Input, Optional, Self, Type, ViewChild, } from '@angular/core';
|
|
3
3
|
import { NgControl } from '@angular/forms';
|
|
4
|
-
import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, DATE_FILLER_LENGTH, DATE_RANGE_FILLER_LENGTH, nullableSame, RANGE_SEPARATOR_CHAR, setNativeFocused, TUI_DATE_FORMAT, TUI_FIRST_DAY, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_MOBILE, TUI_LAST_DAY, TuiDayRange, tuiDefaultProp, TuiMonth, } from '@taiga-ui/cdk';
|
|
4
|
+
import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, DATE_FILLER_LENGTH, DATE_RANGE_FILLER_LENGTH, nullableSame, RANGE_SEPARATOR_CHAR, setNativeFocused, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_FIRST_DAY, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_MOBILE, TUI_LAST_DAY, TuiDayRange, tuiDefaultProp, TuiMonth, } from '@taiga-ui/cdk';
|
|
5
5
|
import { sizeBigger, TUI_DEFAULT_MARKER_HANDLER, TUI_TEXTFIELD_EXAMPLE_TEXT, TUI_TEXTFIELD_SIZE, TuiDialogService, TuiMarkerHandler, TuiPrimitiveTextfieldComponent, TuiTextfieldExampleTextDirective, TuiTextfieldSizeDirective, TuiTextMaskOptions, TuiWithOptionalMinMax, } from '@taiga-ui/core';
|
|
6
|
-
import { EMPTY_MASK, MAX_DAY_RANGE_LENGTH_MAPPER
|
|
6
|
+
import { EMPTY_MASK, MAX_DAY_RANGE_LENGTH_MAPPER } from '@taiga-ui/kit/constants';
|
|
7
7
|
import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
|
|
8
|
-
import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_TEXTS, TUI_MOBILE_CALENDAR, } from '@taiga-ui/kit/tokens';
|
|
9
|
-
import { tuiCreateAutoCorrectedDateRangePipe } from '@taiga-ui/kit/utils/mask';
|
|
8
|
+
import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_DATE_TEXTS, TUI_MOBILE_CALENDAR, } from '@taiga-ui/kit/tokens';
|
|
9
|
+
import { tuiCreateAutoCorrectedDateRangePipe, tuiCreateDateRangeMask, } from '@taiga-ui/kit/utils/mask';
|
|
10
10
|
import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
|
|
11
11
|
import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
|
|
12
12
|
import { Observable } from 'rxjs';
|
|
13
|
-
import {
|
|
13
|
+
import { map, takeUntil } from 'rxjs/operators';
|
|
14
14
|
// TODO: remove in ivy compilation
|
|
15
|
-
export var RANGE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;
|
|
15
|
+
export var RANGE_STREAM_FACTORY = function (control, valueTransformer) { return TuiReplayControlValueChangesFactory(control, valueTransformer); };
|
|
16
|
+
// @dynamic
|
|
16
17
|
var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
17
18
|
__extends(TuiInputDateRangeComponent, _super);
|
|
18
|
-
function TuiInputDateRangeComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, textfieldExampleText, dateFormat, dateTexts
|
|
19
|
-
var _this = _super.call(this, control, changeDetectorRef) || this;
|
|
19
|
+
function TuiInputDateRangeComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, textfieldExampleText, dateFormat, dateSeparator, dateTexts$, valueTransformer) {
|
|
20
|
+
var _this = _super.call(this, control, changeDetectorRef, valueTransformer) || this;
|
|
20
21
|
_this.injector = injector;
|
|
21
22
|
_this.isMobile = isMobile;
|
|
22
23
|
_this.dialogService = dialogService;
|
|
@@ -24,9 +25,11 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
24
25
|
_this.textfieldSize = textfieldSize;
|
|
25
26
|
_this.textfieldExampleText = textfieldExampleText;
|
|
26
27
|
_this.dateFormat = dateFormat;
|
|
28
|
+
_this.dateSeparator = dateSeparator;
|
|
27
29
|
_this.dateTexts$ = dateTexts$;
|
|
30
|
+
_this.valueTransformer = valueTransformer;
|
|
28
31
|
_this.textMaskOptions = {
|
|
29
|
-
mask:
|
|
32
|
+
mask: tuiCreateDateRangeMask(_this.dateFormat, _this.dateSeparator),
|
|
30
33
|
pipe: tuiCreateAutoCorrectedDateRangePipe(_this),
|
|
31
34
|
guide: false,
|
|
32
35
|
};
|
|
@@ -40,7 +43,9 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
40
43
|
_this.maxLength = null;
|
|
41
44
|
_this.open = false;
|
|
42
45
|
_this.maxLengthMapper = MAX_DAY_RANGE_LENGTH_MAPPER;
|
|
43
|
-
_this.dateFiller$ = _this.dateTexts$.pipe(
|
|
46
|
+
_this.dateFiller$ = _this.dateTexts$.pipe(map(function (dateTexts) {
|
|
47
|
+
return changeDateSeparator(dateTexts[_this.dateFormat], _this.dateSeparator);
|
|
48
|
+
}));
|
|
44
49
|
return _this;
|
|
45
50
|
}
|
|
46
51
|
TuiInputDateRangeComponent_1 = TuiInputDateRangeComponent;
|
|
@@ -76,7 +81,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
76
81
|
});
|
|
77
82
|
Object.defineProperty(TuiInputDateRangeComponent.prototype, "canOpen", {
|
|
78
83
|
get: function () {
|
|
79
|
-
return
|
|
84
|
+
return this.interactive && !this.computedMobile;
|
|
80
85
|
},
|
|
81
86
|
enumerable: true,
|
|
82
87
|
configurable: true
|
|
@@ -114,7 +119,9 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
114
119
|
if (activePeriod) {
|
|
115
120
|
return String(activePeriod);
|
|
116
121
|
}
|
|
117
|
-
return value
|
|
122
|
+
return value
|
|
123
|
+
? value.getFormattedDayRange(this.dateFormat, this.dateSeparator)
|
|
124
|
+
: nativeValue;
|
|
118
125
|
},
|
|
119
126
|
enumerable: true,
|
|
120
127
|
configurable: true
|
|
@@ -189,7 +196,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
189
196
|
this.updateValue(null);
|
|
190
197
|
return;
|
|
191
198
|
}
|
|
192
|
-
var parsedValue = TuiDayRange.normalizeParse(value);
|
|
199
|
+
var parsedValue = TuiDayRange.normalizeParse(value, this.dateFormat);
|
|
193
200
|
this.updateValue(!this.minLength && !this.maxLength
|
|
194
201
|
? parsedValue
|
|
195
202
|
: this.clampValue(parsedValue));
|
|
@@ -229,7 +236,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
229
236
|
(this.nativeValue.length === DATE_FILLER_LENGTH ||
|
|
230
237
|
this.nativeValue.length ===
|
|
231
238
|
DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length)) {
|
|
232
|
-
this.updateValue(TuiDayRange.normalizeParse(this.nativeValue));
|
|
239
|
+
this.updateValue(TuiDayRange.normalizeParse(this.nativeValue, this.dateFormat));
|
|
233
240
|
}
|
|
234
241
|
};
|
|
235
242
|
TuiInputDateRangeComponent.prototype.writeValue = function (value) {
|
|
@@ -278,7 +285,9 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
278
285
|
{ type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] },
|
|
279
286
|
{ type: TuiTextfieldExampleTextDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_EXAMPLE_TEXT,] }] },
|
|
280
287
|
{ type: undefined, decorators: [{ type: Inject, args: [TUI_DATE_FORMAT,] }] },
|
|
281
|
-
{ type:
|
|
288
|
+
{ type: String, decorators: [{ type: Inject, args: [TUI_DATE_SEPARATOR,] }] },
|
|
289
|
+
{ type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] },
|
|
290
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [TUI_DATE_RANGE_VALUE_TRANSFORMER,] }] }
|
|
282
291
|
]; };
|
|
283
292
|
__decorate([
|
|
284
293
|
ViewChild(TuiPrimitiveTextfieldComponent)
|
|
@@ -321,7 +330,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
321
330
|
TuiInputDateRangeComponent = TuiInputDateRangeComponent_1 = __decorate([
|
|
322
331
|
Component({
|
|
323
332
|
selector: 'tui-input-date-range',
|
|
324
|
-
template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"innerPseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldExampleText]=\"computedExampleText\"\n [nativeId]=\"nativeId\"\n [filler]=\"getComputedRangeFiller(dateFiller)\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"computedMobile ?
|
|
333
|
+
template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"innerPseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldExampleText]=\"computedExampleText\"\n [nativeId]=\"nativeId\"\n [filler]=\"getComputedRangeFiller(dateFiller)\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"computedMobile ? mobileIconContent : iconContent\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #mobileIconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #iconContent>\n <tui-svg\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [value]=\"value\"\n (valueChange)=\"onRangeChange($event)\"\n ></tui-calendar-range>\n </ng-template>\n</tui-hosted-dropdown>\n",
|
|
325
334
|
providers: [
|
|
326
335
|
{
|
|
327
336
|
provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
|
|
@@ -329,7 +338,10 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
329
338
|
},
|
|
330
339
|
{
|
|
331
340
|
provide: TUI_CALENDAR_DATA_STREAM,
|
|
332
|
-
deps: [
|
|
341
|
+
deps: [
|
|
342
|
+
[new Optional(), new Self(), NgControl],
|
|
343
|
+
[new Optional(), forwardRef(function () { return TUI_DATE_RANGE_VALUE_TRANSFORMER; })],
|
|
344
|
+
],
|
|
333
345
|
useFactory: RANGE_STREAM_FACTORY,
|
|
334
346
|
},
|
|
335
347
|
LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
|
|
@@ -348,9 +360,12 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
|
|
|
348
360
|
__param(6, Inject(TUI_TEXTFIELD_SIZE)),
|
|
349
361
|
__param(7, Inject(TUI_TEXTFIELD_EXAMPLE_TEXT)),
|
|
350
362
|
__param(8, Inject(TUI_DATE_FORMAT)),
|
|
351
|
-
__param(9, Inject(
|
|
363
|
+
__param(9, Inject(TUI_DATE_SEPARATOR)),
|
|
364
|
+
__param(10, Inject(TUI_DATE_TEXTS)),
|
|
365
|
+
__param(11, Optional()),
|
|
366
|
+
__param(11, Inject(TUI_DATE_RANGE_VALUE_TRANSFORMER))
|
|
352
367
|
], TuiInputDateRangeComponent);
|
|
353
368
|
return TuiInputDateRangeComponent;
|
|
354
369
|
}(AbstractTuiNullableControl));
|
|
355
370
|
export { TuiInputDateRangeComponent };
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsWUFBWSxFQUtaLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILFVBQVUsRUFDViwyQkFBMkIsRUFDM0IsbUJBQW1CLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsbUJB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RCxpQ0FBQztDQUFBLEFBOVRELENBQ1ksMEJBQTBCLEdBNlRyQztTQTlUWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBEQVRFX0ZJTExFUl9MRU5HVEgsXG4gICAgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RILFxuICAgIG51bGxhYmxlU2FtZSxcbiAgICBSQU5HRV9TRVBBUkFUT1JfQ0hBUixcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9EQVRFX0ZPUk1BVCxcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICBUVUlfSVNfTU9CSUxFLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgVHVpRGF5TGlrZSxcbiAgICBUdWlEYXlSYW5nZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTWFwcGVyLFxuICAgIFR1aU1vbnRoLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgc2l6ZUJpZ2dlcixcbiAgICBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUixcbiAgICBUVUlfVEVYVEZJRUxEX0VYQU1QTEVfVEVYVCxcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpRGlhbG9nU2VydmljZSxcbiAgICBUdWlNYXJrZXJIYW5kbGVyLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpRGF5UmFuZ2VQZXJpb2R9IGZyb20gJ0B0YWlnYS11aS9raXQvY2xhc3Nlcyc7XG5pbXBvcnQge1xuICAgIEVNUFRZX01BU0ssXG4gICAgTUFYX0RBWV9SQU5HRV9MRU5HVEhfTUFQUEVSLFxuICAgIFRVSV9EQVRFX1JBTkdFX01BU0ssXG59IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7TEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWFzayc7XG5pbXBvcnQge1R1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtwbHVjaywgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBSQU5HRV9TVFJFQU1fRkFDVE9SWSA9IFR1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLXJhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IFJBTkdFX1NUUkVBTV9GQUNUT1JZLFxuICAgICAgICB9LFxuICAgICAgICBMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5UmFuZ2U+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5PiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRNYXNrT3B0aW9uczogVHVpVGV4dE1hc2tPcHRpb25zID0ge1xuICAgICAgICBtYXNrOiBUVUlfREFURV9SQU5HRV9NQVNLLFxuICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVJhbmdlUGlwZSh0aGlzKSxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkZWZhdWx0Vmlld2VkTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpdGVtczogUmVhZG9ubHlBcnJheTxUdWlEYXlSYW5nZVBlcmlvZD4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW5MZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXhMZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IG1heExlbmd0aE1hcHBlcjogVHVpTWFwcGVyPFR1aURheSwgVHVpRGF5PiA9IE1BWF9EQVlfUkFOR0VfTEVOR1RIX01BUFBFUjtcbiAgICByZWFkb25seSBkYXRlRmlsbGVyJCA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKHBsdWNrKHRoaXMuZGF0ZUZvcm1hdCkpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxhbnk+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0VYQU1QTEVfVEVYVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRFeGFtcGxlVGV4dDogVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRFeGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPyB0aGlzLnRleHRmaWVsZEV4YW1wbGVUZXh0LmV4YW1wbGVUZXh0IDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWFzaygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZVBlcmlvZCgpOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBudWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5mcm9tLmRheVNhbWUoYi5mcm9tLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnRvLmRheVNhbWUoYi50by5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSB8fCBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlUGVyaW9kfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVBlcmlvZCkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVQZXJpb2QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUuZm9ybWF0dGVkRGF5UmFuZ2UgOiBuYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXNlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gJycgOiB0aGlzLmdldERhdGVSYW5nZUZpbGxlcihkYXRlRmlsbGVyKTtcbiAgICB9XG5cbiAgICBvbk1vYmlsZUNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48VHVpRGF5UmFuZ2U+KFxuICAgICAgICAgICAgICAgIG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQodGhpcy5tb2JpbGVDYWxlbmRhciwgdGhpcy5pbmplY3RvciksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9uT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBUdWlEYXlSYW5nZS5ub3JtYWxpemVQYXJzZSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgICF0aGlzLm1pbkxlbmd0aCAmJiAhdGhpcy5tYXhMZW5ndGhcbiAgICAgICAgICAgICAgICA/IHBhcnNlZFZhbHVlXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNsYW1wVmFsdWUocGFyc2VkVmFsdWUpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uUmFuZ2VDaGFuZ2UocmFuZ2U6IFR1aURheVJhbmdlIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcblxuICAgICAgICBpZiAoIXJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW51bGxhYmxlU2FtZTxUdWlEYXlSYW5nZT4odGhpcy52YWx1ZSwgcmFuZ2UsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHJhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbVNlbGVjdChpdGVtOiBzdHJpbmcgfCBUdWlEYXlSYW5nZVBlcmlvZCkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcblxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGl0ZW0ucmFuZ2UuZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVBlcmlvZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFmb2N1c2VkICYmXG4gICAgICAgICAgICAhdGhpcy5pdGVtU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICh0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA9PT0gREFURV9GSUxMRVJfTEVOR1RIIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPT09XG4gICAgICAgICAgICAgICAgICAgIERBVEVfRklMTEVSX0xFTkdUSCArIFJBTkdFX1NFUEFSQVRPUl9DSEFSLmxlbmd0aClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFR1aURheVJhbmdlLm5vcm1hbGl6ZVBhcnNlKHRoaXMubmF0aXZlVmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXRlbVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBTdHJpbmcoaXRlbSkgPT09IHRoaXMubmF0aXZlVmFsdWUpICE9PSAtMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZSgpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LCB0cnVlLCBwcmV2ZW50U2Nyb2xsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xhbXBWYWx1ZSh2YWx1ZTogVHVpRGF5UmFuZ2UpOiBUdWlEYXlSYW5nZSB7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRCb3R0b20gPVxuICAgICAgICAgICAgdGhpcy5taW5MZW5ndGggJiYgdmFsdWUuZnJvbS5hcHBlbmQodGhpcy5taW5MZW5ndGgpLmRheUFmdGVyKHZhbHVlLnRvKVxuICAgICAgICAgICAgICAgID8gbmV3IFR1aURheVJhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmZyb20sXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZnJvbS5hcHBlbmQodGhpcy5taW5MZW5ndGgpLmFwcGVuZCh7ZGF5OiAtMX0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlTWF4ID0gdGhpcy5tYXhMZW5ndGhcbiAgICAgICAgICAgID8gY2xhbXBlZEJvdHRvbS5mcm9tLmFwcGVuZCh0aGlzLm1heExlbmd0aCkuYXBwZW5kKHtkYXk6IC0xfSlcbiAgICAgICAgICAgIDogdGhpcy5tYXg7XG5cbiAgICAgICAgcmV0dXJuIGNsYW1wZWRCb3R0b20udG8uZGF5QWZ0ZXIoYXZhaWxhYmxlTWF4KVxuICAgICAgICAgICAgPyBuZXcgVHVpRGF5UmFuZ2UoY2xhbXBlZEJvdHRvbS5mcm9tLCBhdmFpbGFibGVNYXgpXG4gICAgICAgICAgICA6IGNsYW1wZWRCb3R0b207XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRlUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2RhdGVGaWxsZXJ9JHtSQU5HRV9TRVBBUkFUT1JfQ0hBUn0ke2RhdGVGaWxsZXJ9YDtcbiAgICB9XG59XG4iXX0=
|
|
371
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsMkJBQTJCLEVBQzNCLGFBQWEsRUFDYixZQUFZLEVBTVosV0FBVyxFQUNYLGNBQWMsRUFHZCxRQUFRLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDViwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5QixnQ0FBZ0MsRUFDaEMseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFFLDJCQUEyQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEYsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4Qixn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QyxDQUFDLENBQUM7cUJBQ3ZFO29CQUNELFVBQVUsRUFBRSxvQkFBb0I7aUJBQ25DO2dCQUNELHlDQUF5QzthQUM1Qzs7U0FDSixDQUFDO1FBd0RPLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyQixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ3hCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRTNCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFFMUIsV0FBQSxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUVsQyxXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN2QixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQzFCLFlBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRXRCLFlBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixZQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO09BM0VwQywwQkFBMEIsQ0EwVXRDO0lBQUQsaUNBQUM7Q0FBQSxBQTFVRCxDQUNZLDBCQUEwQixHQXlVckM7U0ExVVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgY2hhbmdlRGF0ZVNlcGFyYXRvcixcbiAgICBEQVRFX0ZJTExFUl9MRU5HVEgsXG4gICAgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RILFxuICAgIG51bGxhYmxlU2FtZSxcbiAgICBSQU5HRV9TRVBBUkFUT1JfQ0hBUixcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9EQVRFX0ZPUk1BVCxcbiAgICBUVUlfREFURV9TRVBBUkFUT1IsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheUxpa2UsXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aURheVJhbmdlUGVyaW9kfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtFTVBUWV9NQVNLLCBNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7TEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgIFRVSV9EQVRFX1JBTkdFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGUsXG4gICAgdHVpQ3JlYXRlRGF0ZVJhbmdlTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBSQU5HRV9TVFJFQU1fRkFDVE9SWSA9IChcbiAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgIHZhbHVlVHJhbnNmb3JtZXI6IFR1aUNvbnRyb2xWYWx1ZVRyYW5zZm9ybWVyPFR1aURheVJhbmdlPixcbikgPT4gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3RvcnkoY29udHJvbCwgdmFsdWVUcmFuc2Zvcm1lcik7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLXJhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdLFxuICAgICAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgZm9yd2FyZFJlZigoKSA9PiBUVUlfREFURV9SQU5HRV9WQUxVRV9UUkFOU0ZPUk1FUildLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IFJBTkdFX1NUUkVBTV9GQUNUT1JZLFxuICAgICAgICB9LFxuICAgICAgICBMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5UmFuZ2U+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5PiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRNYXNrT3B0aW9uczogVHVpVGV4dE1hc2tPcHRpb25zID0ge1xuICAgICAgICBtYXNrOiB0dWlDcmVhdGVEYXRlUmFuZ2VNYXNrKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGUodGhpcyksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdFZpZXdlZE1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpRGF5UmFuZ2VQZXJpb2Q+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluTGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4TGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBtYXhMZW5ndGhNYXBwZXI6IFR1aU1hcHBlcjxUdWlEYXksIFR1aURheT4gPSBNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVI7XG4gICAgcmVhZG9ubHkgZGF0ZUZpbGxlciQgPSB0aGlzLmRhdGVUZXh0cyQucGlwZShcbiAgICAgICAgbWFwKGRhdGVUZXh0cyA9PlxuICAgICAgICAgICAgY2hhbmdlRGF0ZVNlcGFyYXRvcihkYXRlVGV4dHNbdGhpcy5kYXRlRm9ybWF0XSwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxhbnk+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0VYQU1QTEVfVEVYVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRFeGFtcGxlVGV4dDogVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9TRVBBUkFUT1IpIHJlYWRvbmx5IGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1JBTkdFX1ZBTFVFX1RSQU5TRk9STUVSKVxuICAgICAgICByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyOiBUdWlDb250cm9sVmFsdWVUcmFuc2Zvcm1lcjxUdWlEYXlSYW5nZSB8IG51bGw+IHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYsIHZhbHVlVHJhbnNmb3JtZXIpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAhIXRoaXMubW9iaWxlQ2FsZW5kYXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2l6ZUJpZ2dlcih0aGlzLnRleHRmaWVsZFNpemUuc2l6ZSlcbiAgICAgICAgICAgID8gJ3R1aUljb25DYWxlbmRhckxhcmdlJ1xuICAgICAgICAgICAgOiAndHVpSWNvbkNhbGVuZGFyJztcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgJiYgIXRoaXMuY29tcHV0ZWRNb2JpbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkRXhhbXBsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoID8gdGhpcy50ZXh0ZmllbGRFeGFtcGxlVGV4dC5leGFtcGxlVGV4dCA6ICcnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1hc2soKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gRU1QVFlfTUFTSyA6IHRoaXMudGV4dE1hc2tPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVQZXJpb2QoKTogVHVpRGF5UmFuZ2VQZXJpb2QgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuZmluZChpdGVtID0+XG4gICAgICAgICAgICAgICAgbnVsbGFibGVTYW1lKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJhbmdlLFxuICAgICAgICAgICAgICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGEuZnJvbS5kYXlTYW1lKGIuZnJvbS5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYS50by5kYXlTYW1lKGIudG8uZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICkgfHwgbnVsbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZVBlcmlvZH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChhY3RpdmVQZXJpb2QpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlUGVyaW9kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgPyB2YWx1ZS5nZXRGb3JtYXR0ZWREYXlSYW5nZSh0aGlzLmRhdGVGb3JtYXQsIHRoaXMuZGF0ZVNlcGFyYXRvcilcbiAgICAgICAgICAgIDogbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGlubmVyUHNldWRvRm9jdXNlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLnBzZXVkb0ZvY3VzZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuIHx8IHRoaXMuY29tcHV0ZWRGb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDb21wdXRlZFJhbmdlRmlsbGVyKGRhdGVGaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBlcmlvZCA/ICcnIDogdGhpcy5nZXREYXRlUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcik7XG4gICAgfVxuXG4gICAgb25Nb2JpbGVDbGljaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vYmlsZUNhbGVuZGFyKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuPFR1aURheVJhbmdlPihcbiAgICAgICAgICAgICAgICBuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KHRoaXMubW9iaWxlQ2FsZW5kYXIsIHRoaXMuaW5qZWN0b3IpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ2Z1bGxzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICBjbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluOiB0aGlzLm1heExlbmd0aE1hcHBlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF4TGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiB0aGlzLm1heExlbmd0aE1hcHBlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1heCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF4TGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoICE9PSBEQVRFX1JBTkdFX0ZJTExFUl9MRU5HVEgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gVHVpRGF5UmFuZ2Uubm9ybWFsaXplUGFyc2UodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgICF0aGlzLm1pbkxlbmd0aCAmJiAhdGhpcy5tYXhMZW5ndGhcbiAgICAgICAgICAgICAgICA/IHBhcnNlZFZhbHVlXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNsYW1wVmFsdWUocGFyc2VkVmFsdWUpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uUmFuZ2VDaGFuZ2UocmFuZ2U6IFR1aURheVJhbmdlIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcblxuICAgICAgICBpZiAoIXJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW51bGxhYmxlU2FtZTxUdWlEYXlSYW5nZT4odGhpcy52YWx1ZSwgcmFuZ2UsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHJhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbVNlbGVjdChpdGVtOiBzdHJpbmcgfCBUdWlEYXlSYW5nZVBlcmlvZCkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcblxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGl0ZW0ucmFuZ2UuZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVBlcmlvZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFmb2N1c2VkICYmXG4gICAgICAgICAgICAhdGhpcy5pdGVtU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICh0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA9PT0gREFURV9GSUxMRVJfTEVOR1RIIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPT09XG4gICAgICAgICAgICAgICAgICAgIERBVEVfRklMTEVSX0xFTkdUSCArIFJBTkdFX1NFUEFSQVRPUl9DSEFSLmxlbmd0aClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgICAgIFR1aURheVJhbmdlLm5vcm1hbGl6ZVBhcnNlKHRoaXMubmF0aXZlVmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5UmFuZ2UgfCBudWxsKSB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWUgPyB0aGlzLmNvbXB1dGVkVmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmRJbmRleChpdGVtID0+IFN0cmluZyhpdGVtKSA9PT0gdGhpcy5uYXRpdmVWYWx1ZSkgIT09IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlKCkge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dChwcmV2ZW50U2Nyb2xsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsIHRydWUsIHByZXZlbnRTY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGFtcFZhbHVlKHZhbHVlOiBUdWlEYXlSYW5nZSk6IFR1aURheVJhbmdlIHtcbiAgICAgICAgY29uc3QgY2xhbXBlZEJvdHRvbSA9XG4gICAgICAgICAgICB0aGlzLm1pbkxlbmd0aCAmJiB2YWx1ZS5mcm9tLmFwcGVuZCh0aGlzLm1pbkxlbmd0aCkuZGF5QWZ0ZXIodmFsdWUudG8pXG4gICAgICAgICAgICAgICAgPyBuZXcgVHVpRGF5UmFuZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLmFwcGVuZCh0aGlzLm1pbkxlbmd0aCkuYXBwZW5kKHtkYXk6IC0xfSksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB2YWx1ZTtcblxuICAgICAgICBjb25zdCBhdmFpbGFibGVNYXggPSB0aGlzLm1heExlbmd0aFxuICAgICAgICAgICAgPyBjbGFtcGVkQm90dG9tLmZyb20uYXBwZW5kKHRoaXMubWF4TGVuZ3RoKS5hcHBlbmQoe2RheTogLTF9KVxuICAgICAgICAgICAgOiB0aGlzLm1heDtcblxuICAgICAgICByZXR1cm4gY2xhbXBlZEJvdHRvbS50by5kYXlBZnRlcihhdmFpbGFibGVNYXgpXG4gICAgICAgICAgICA/IG5ldyBUdWlEYXlSYW5nZShjbGFtcGVkQm90dG9tLmZyb20sIGF2YWlsYWJsZU1heClcbiAgICAgICAgICAgIDogY2xhbXBlZEJvdHRvbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVSYW5nZUZpbGxlcihkYXRlRmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7ZGF0ZUZpbGxlcn0ke1JBTkdFX1NFUEFSQVRPUl9DSEFSfSR7ZGF0ZUZpbGxlcn1gO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { __decorate, __extends, __param, __read, __spread } from "tslib";
|
|
2
2
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostListener, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
|
|
3
3
|
import { NgControl } from '@angular/forms';
|
|
4
|
-
import { AbstractTuiControl, ALWAYS_FALSE_HANDLER, clamp, DATE_FILLER_LENGTH, nullableSame, TUI_DATE_FORMAT, TUI_FIRST_DAY, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_LAST_DAY, TuiDay, tuiDefaultProp, TuiMonth, tuiPure, TuiTime, } from '@taiga-ui/cdk';
|
|
4
|
+
import { AbstractTuiControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, clamp, DATE_FILLER_LENGTH, nullableSame, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_FIRST_DAY, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_LAST_DAY, TuiDay, tuiDefaultProp, TuiMonth, tuiPure, TuiTime, } from '@taiga-ui/cdk';
|
|
5
5
|
import { sizeBigger, TUI_TEXTFIELD_SIZE, TuiPrimitiveTextfieldComponent, TuiTextfieldSizeDirective, TuiTextMaskOptions, TuiWithOptionalMinMax, } from '@taiga-ui/core';
|
|
6
|
-
import { DATE_TIME_SEPARATOR
|
|
6
|
+
import { DATE_TIME_SEPARATOR } from '@taiga-ui/kit/constants';
|
|
7
7
|
import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
|
|
8
|
-
import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_TEXTS, TUI_TIME_TEXTS, } from '@taiga-ui/kit/tokens';
|
|
9
|
-
import { tuiCreateAutoCorrectedDateTimePipe, tuiCreateTimeMask, } from '@taiga-ui/kit/utils/mask';
|
|
8
|
+
import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_TEXTS, TUI_DATE_TIME_VALUE_TRANSFORMER, TUI_TIME_TEXTS, } from '@taiga-ui/kit/tokens';
|
|
9
|
+
import { tuiCreateAutoCorrectedDateTimePipe, tuiCreateDateMask, tuiCreateTimeMask, } from '@taiga-ui/kit/utils/mask';
|
|
10
10
|
import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
|
|
11
11
|
import { combineLatest, Observable } from 'rxjs';
|
|
12
12
|
import { map, pluck } from 'rxjs/operators';
|
|
13
13
|
// TODO: remove in ivy compilation
|
|
14
|
-
export var TIME_STREAM_FACTORY = TuiReplayControlValueChangesFactory;
|
|
14
|
+
export var TIME_STREAM_FACTORY = function (control, valueTransformer) { return TuiReplayControlValueChangesFactory(control, valueTransformer); };
|
|
15
15
|
// @dynamic
|
|
16
16
|
var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
17
17
|
__extends(TuiInputDateTimeComponent, _super);
|
|
18
|
-
function TuiInputDateTimeComponent(control, changeDetectorRef, textfieldSize, dateFormat, timeTexts$, dateTexts
|
|
19
|
-
var _this = _super.call(this, control, changeDetectorRef) || this;
|
|
18
|
+
function TuiInputDateTimeComponent(control, changeDetectorRef, textfieldSize, dateFormat, dateSeparator, timeTexts$, dateTexts$, valueTransformer) {
|
|
19
|
+
var _this = _super.call(this, control, changeDetectorRef, valueTransformer) || this;
|
|
20
20
|
_this.textfieldSize = textfieldSize;
|
|
21
21
|
_this.dateFormat = dateFormat;
|
|
22
|
+
_this.dateSeparator = dateSeparator;
|
|
22
23
|
_this.timeTexts$ = timeTexts$;
|
|
23
24
|
_this.dateTexts$ = dateTexts$;
|
|
25
|
+
_this.valueTransformer = valueTransformer;
|
|
24
26
|
_this.month = null;
|
|
25
27
|
_this.min = TUI_FIRST_DAY;
|
|
26
28
|
_this.max = TUI_LAST_DAY;
|
|
@@ -29,7 +31,9 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
29
31
|
_this.timeMode = 'HH:MM';
|
|
30
32
|
_this.open = false;
|
|
31
33
|
_this.filler$ = combineLatest([
|
|
32
|
-
_this.dateTexts$.pipe(
|
|
34
|
+
_this.dateTexts$.pipe(map(function (dateTexts) {
|
|
35
|
+
return changeDateSeparator(dateTexts[_this.dateFormat], _this.dateSeparator);
|
|
36
|
+
})),
|
|
33
37
|
_this.timeTexts$.pipe(pluck(_this.timeMode)),
|
|
34
38
|
]).pipe(map(function (fillers) { return _this.getDateTimeString.apply(_this, __spread(fillers)); }));
|
|
35
39
|
return _this;
|
|
@@ -44,7 +48,7 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
44
48
|
});
|
|
45
49
|
Object.defineProperty(TuiInputDateTimeComponent.prototype, "textMaskOptions", {
|
|
46
50
|
get: function () {
|
|
47
|
-
return this.calculateMask(this.value[0], this.calendarMinDay, this.calendarMaxDay, this.timeMode);
|
|
51
|
+
return this.calculateMask(this.value[0], this.calendarMinDay, this.calendarMaxDay, this.timeMode, this.dateFormat, this.dateSeparator);
|
|
48
52
|
},
|
|
49
53
|
enumerable: true,
|
|
50
54
|
configurable: true
|
|
@@ -126,13 +130,6 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
126
130
|
enumerable: true,
|
|
127
131
|
configurable: true
|
|
128
132
|
});
|
|
129
|
-
Object.defineProperty(TuiInputDateTimeComponent.prototype, "canOpen", {
|
|
130
|
-
get: function () {
|
|
131
|
-
return !this.computedDisabled && !this.readOnly;
|
|
132
|
-
},
|
|
133
|
-
enumerable: true,
|
|
134
|
-
configurable: true
|
|
135
|
-
});
|
|
136
133
|
TuiInputDateTimeComponent.prototype.onClick = function () {
|
|
137
134
|
this.open = !this.open;
|
|
138
135
|
};
|
|
@@ -145,7 +142,7 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
145
142
|
return;
|
|
146
143
|
}
|
|
147
144
|
var _a = __read(value.split(DATE_TIME_SEPARATOR), 2), date = _a[0], time = _a[1];
|
|
148
|
-
var parsedDate = TuiDay.normalizeParse(date);
|
|
145
|
+
var parsedDate = TuiDay.normalizeParse(date, this.dateFormat);
|
|
149
146
|
var parsedTime = time && time.length === this.timeMode.length
|
|
150
147
|
? this.clampTime(TuiTime.fromString(time), parsedDate)
|
|
151
148
|
: null;
|
|
@@ -204,16 +201,28 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
204
201
|
return (nullableSame(oldValue[0], newValue[0], function (a, b) { return a.daySame(b); }) &&
|
|
205
202
|
nullableSame(oldValue[1], newValue[1], function (a, b) { return a.toString() === b.toString(); }));
|
|
206
203
|
};
|
|
207
|
-
TuiInputDateTimeComponent.prototype.calculateMask = function (day, min, max, timeMode) {
|
|
204
|
+
TuiInputDateTimeComponent.prototype.calculateMask = function (day, min, max, timeMode, dateFormat, dateSeparator) {
|
|
208
205
|
return {
|
|
209
|
-
mask: __spread(
|
|
210
|
-
|
|
206
|
+
mask: __spread(tuiCreateDateMask(dateFormat, dateSeparator), [
|
|
207
|
+
',',
|
|
208
|
+
' '
|
|
209
|
+
], tuiCreateTimeMask(timeMode)),
|
|
210
|
+
pipe: tuiCreateAutoCorrectedDateTimePipe({
|
|
211
|
+
value: day,
|
|
212
|
+
min: min,
|
|
213
|
+
max: max,
|
|
214
|
+
dateFormat: dateFormat,
|
|
215
|
+
dateSeparator: dateSeparator,
|
|
216
|
+
timeMode: timeMode,
|
|
217
|
+
}),
|
|
211
218
|
guide: false,
|
|
212
219
|
};
|
|
213
220
|
};
|
|
214
221
|
TuiInputDateTimeComponent.prototype.getDateTimeString = function (date, time, timeMode) {
|
|
215
222
|
if (timeMode === void 0) { timeMode = 'HH:MM'; }
|
|
216
|
-
var dateString = date instanceof TuiDay
|
|
223
|
+
var dateString = date instanceof TuiDay
|
|
224
|
+
? date.toString(this.dateFormat, this.dateSeparator)
|
|
225
|
+
: date;
|
|
217
226
|
var timeString = time instanceof TuiTime ? time.toString(timeMode) : time || '';
|
|
218
227
|
return "" + dateString + DATE_TIME_SEPARATOR + timeString;
|
|
219
228
|
};
|
|
@@ -237,8 +246,10 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
237
246
|
{ type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
|
|
238
247
|
{ type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] },
|
|
239
248
|
{ type: undefined, decorators: [{ type: Inject, args: [TUI_DATE_FORMAT,] }] },
|
|
249
|
+
{ type: String, decorators: [{ type: Inject, args: [TUI_DATE_SEPARATOR,] }] },
|
|
240
250
|
{ type: Observable, decorators: [{ type: Inject, args: [TUI_TIME_TEXTS,] }] },
|
|
241
|
-
{ type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] }
|
|
251
|
+
{ type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] },
|
|
252
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [TUI_DATE_TIME_VALUE_TRANSFORMER,] }] }
|
|
242
253
|
]; };
|
|
243
254
|
__decorate([
|
|
244
255
|
ViewChild(TuiPrimitiveTextfieldComponent)
|
|
@@ -275,7 +286,7 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
275
286
|
TuiInputDateTimeComponent = TuiInputDateTimeComponent_1 = __decorate([
|
|
276
287
|
Component({
|
|
277
288
|
selector: 'tui-input-date-time',
|
|
278
|
-
template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"
|
|
289
|
+
template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"interactive\"\n [content]=\"dropdown\"\n [open]=\"open && interactive\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-input-date-time__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [filler]=\"filler$ | async\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"iconContent\"\n [disabled]=\"disabled\"\n [textMask]=\"textMaskOptions\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown=\"polymorpheus\" polymorpheus>\n <tui-calendar\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-input-date-time__calendar\"\n [min]=\"calendarMinDay\"\n [max]=\"calendarMaxDay\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"calendarValue\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n </ng-template>\n</tui-hosted-dropdown>\n",
|
|
279
290
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
280
291
|
providers: [
|
|
281
292
|
{
|
|
@@ -284,12 +295,15 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
284
295
|
},
|
|
285
296
|
{
|
|
286
297
|
provide: TUI_CALENDAR_DATA_STREAM,
|
|
287
|
-
deps: [
|
|
298
|
+
deps: [
|
|
299
|
+
[new Optional(), new Self(), NgControl],
|
|
300
|
+
[new Optional(), forwardRef(function () { return TUI_DATE_TIME_VALUE_TRANSFORMER; })],
|
|
301
|
+
],
|
|
288
302
|
useFactory: TIME_STREAM_FACTORY,
|
|
289
303
|
},
|
|
290
304
|
LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
|
|
291
305
|
],
|
|
292
|
-
styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.icon{
|
|
306
|
+
styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.icon{pointer-events:auto}.button{display:flex;height:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-base-03)}"]
|
|
293
307
|
}),
|
|
294
308
|
__param(0, Optional()),
|
|
295
309
|
__param(0, Self()),
|
|
@@ -297,10 +311,13 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
|
|
|
297
311
|
__param(1, Inject(ChangeDetectorRef)),
|
|
298
312
|
__param(2, Inject(TUI_TEXTFIELD_SIZE)),
|
|
299
313
|
__param(3, Inject(TUI_DATE_FORMAT)),
|
|
300
|
-
__param(4, Inject(
|
|
301
|
-
__param(5, Inject(
|
|
314
|
+
__param(4, Inject(TUI_DATE_SEPARATOR)),
|
|
315
|
+
__param(5, Inject(TUI_TIME_TEXTS)),
|
|
316
|
+
__param(6, Inject(TUI_DATE_TEXTS)),
|
|
317
|
+
__param(7, Optional()),
|
|
318
|
+
__param(7, Inject(TUI_DATE_TIME_VALUE_TRANSFORMER))
|
|
302
319
|
], TuiInputDateTimeComponent);
|
|
303
320
|
return TuiInputDateTimeComponent;
|
|
304
321
|
}(AbstractTuiControl));
|
|
305
322
|
export { TuiInputDateTimeComponent };
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLXRpbWUvIiwic291cmNlcyI6WyJpbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixZQUFZLEVBR1osTUFBTSxFQUNOLGNBQWMsRUFFZCxRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLGtCQUFrQixFQUNsQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsY0FBYyxHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsaUJBQWlCLEdBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLG1DQUFtQyxF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LFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN2QixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUV0QixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtPQWhEbEIseUJBQXlCLENBcVJyQztJQUFELGdDQUFDO0NBQUEsQUFyUkQsQ0FDWSxrQkFBa0IsR0FvUjdCO1NBclJZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgY2xhbXAsXG4gICAgREFURV9GSUxMRVJfTEVOR1RILFxuICAgIG51bGxhYmxlU2FtZSxcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURhdGVNb2RlLFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTW9udGgsXG4gICAgdHVpUHVyZSxcbiAgICBUdWlUaW1lLFxuICAgIFR1aVRpbWVNb2RlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgc2l6ZUJpZ2dlcixcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtEQVRFX1RJTUVfU0VQQVJBVE9SLCBUVUlfREFURV9NQVNLfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge0xFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfVElNRV9URVhUUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVRpbWVQaXBlLFxuICAgIHR1aUNyZWF0ZVRpbWVNYXNrLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21hc2snO1xuaW1wb3J0IHtUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgcGx1Y2t9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLy8gVE9ETzogcmVtb3ZlIGluIGl2eSBjb21waWxhdGlvblxuZXhwb3J0IGNvbnN0IFRJTUVfU1RSRUFNX0ZBQ1RPUlkgPSBUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeTtcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGUtdGltZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtdGltZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLXRpbWUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dERhdGVUaW1lQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgICAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgTmdDb250cm9sXV0sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBUSU1FX1NUUkVBTV9GQUNUT1JZLFxuICAgICAgICB9LFxuICAgICAgICBMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVUaW1lQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8W1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXT5cbiAgICBpbXBsZW1lbnRzXG4gICAgICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heDxUdWlEYXkgfCBbVHVpRGF5LCBUdWlUaW1lXT4sXG4gICAgICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBtb250aDogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSA9ICdISDpNTSc7XG5cbiAgICBvcGVuID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgZmlsbGVyJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmRhdGVUZXh0cyQucGlwZShwbHVjayh0aGlzLmRhdGVGb3JtYXQpKSxcbiAgICAgICAgdGhpcy50aW1lVGV4dHMkLnBpcGUocGx1Y2sodGhpcy50aW1lTW9kZSkpLFxuICAgIF0pLnBpcGUobWFwKGZpbGxlcnMgPT4gdGhpcy5nZXREYXRlVGltZVN0cmluZyguLi5maWxsZXJzKSkpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9GT1JNQVQpIHJlYWRvbmx5IGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9USU1FX1RFWFRTKVxuICAgICAgICByZWFkb25seSB0aW1lVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlUaW1lTW9kZSwgc3RyaW5nPj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBmaWxsZXJMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIERBVEVfRklMTEVSX0xFTkdUSCArIERBVEVfVElNRV9TRVBBUkFUT1IubGVuZ3RoICsgdGhpcy50aW1lTW9kZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IHRleHRNYXNrT3B0aW9ucygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVNYXNrKFxuICAgICAgICAgICAgdGhpcy52YWx1ZVswXSxcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJNaW5EYXksXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyTWF4RGF5LFxuICAgICAgICAgICAgdGhpcy50aW1lTW9kZSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZCAmJiB0aGlzLnRleHRmaWVsZC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNpemVCaWdnZXIodGhpcy50ZXh0ZmllbGRTaXplLnNpemUpXG4gICAgICAgICAgICA/ICd0dWlJY29uQ2FsZW5kYXJMYXJnZSdcbiAgICAgICAgICAgIDogJ3R1aUljb25DYWxlbmRhcic7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgdGltZU1vZGV9ID0gdGhpcztcbiAgICAgICAgY29uc3QgW2RhdGUsIHRpbWVdID0gdmFsdWU7XG4gICAgICAgIGNvbnN0IGhhc1RpbWVJbnB1dENoYXJzID0gbmF0aXZlVmFsdWUubGVuZ3RoID4gREFURV9GSUxMRVJfTEVOR1RIO1xuXG4gICAgICAgIGlmICghZGF0ZSB8fCAoIXRpbWUgJiYgaGFzVGltZUlucHV0Q2hhcnMpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlVGltZVN0cmluZyhkYXRlLCB0aW1lLCB0aW1lTW9kZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFyVmFsdWUoKTogVHVpRGF5IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlWzBdO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhck1pbkRheSgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1pbikgPyB0aGlzLm1pblswXSA6IHRoaXMubWluO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhck1heERheSgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1heCkgPyB0aGlzLm1heFswXSA6IHRoaXMubWF4O1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IHRoaXMudmFsdWVbMF0gfHwgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoIDwgREFURV9GSUxMRVJfTEVOR1RIKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtudWxsLCBudWxsXSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtkYXRlLCB0aW1lXSA9IHZhbHVlLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpO1xuXG4gICAgICAgIGNvbnN0IHBhcnNlZERhdGUgPSBUdWlEYXkubm9ybWFsaXplUGFyc2UoZGF0ZSk7XG4gICAgICAgIGNvbnN0IHBhcnNlZFRpbWUgPVxuICAgICAgICAgICAgdGltZSAmJiB0aW1lLmxlbmd0aCA9PT0gdGhpcy50aW1lTW9kZS5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHRoaXMuY2xhbXBUaW1lKFR1aVRpbWUuZnJvbVN0cmluZyh0aW1lKSwgcGFyc2VkRGF0ZSlcbiAgICAgICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW3BhcnNlZERhdGUsIHBhcnNlZFRpbWVdKTtcbiAgICB9XG5cbiAgICBvbkRheUNsaWNrKGRheTogVHVpRGF5KSB7XG4gICAgICAgIGNvbnN0IG1vZGlmaWVkVGltZSA9IHRoaXMudmFsdWVbMV0gJiYgdGhpcy5jbGFtcFRpbWUodGhpcy52YWx1ZVsxXSwgZGF5KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtkYXksIG1vZGlmaWVkVGltZV0pO1xuICAgICAgICB0aGlzLnVwZGF0ZU5hdGl2ZVZhbHVlKGRheSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbk1vbnRoQ2hhbmdlKG1vbnRoOiBUdWlNb250aCkge1xuICAgICAgICB0aGlzLm1vbnRoID0gbW9udGg7XG4gICAgfVxuXG4gICAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZm9jdXNlZCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZVswXSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZVsxXSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPD0gdGhpcy5maWxsZXJMZW5ndGggKyBEQVRFX1RJTUVfU0VQQVJBVE9SLmxlbmd0aCB8fFxuICAgICAgICAgICAgdGhpcy50aW1lTW9kZSA9PT0gJ0hIOk1NJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFssIHRpbWVdID0gdGhpcy5uYXRpdmVWYWx1ZS5zcGxpdChEQVRFX1RJTUVfU0VQQVJBVE9SKTtcblxuICAgICAgICBpZiAoIXRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcnNlZFRpbWUgPSBUdWlUaW1lLmZyb21TdHJpbmcodGltZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbdGhpcy52YWx1ZVswXSwgcGFyc2VkVGltZV0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUuZW5kc1dpdGgoJy4nKSB8fCB0aGlzLm5hdGl2ZVZhbHVlLmVuZHNXaXRoKCc6JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5uYXRpdmVWYWx1ZS5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlICYmICh2YWx1ZVswXSB8fCB2YWx1ZVsxXSkgPyB0aGlzLmNvbXB1dGVkVmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdIHtcbiAgICAgICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVJZGVudGljYWxDb21wYXJhdG9yKFxuICAgICAgICBvbGRWYWx1ZTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSxcbiAgICAgICAgbmV3VmFsdWU6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0sXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBudWxsYWJsZVNhbWUob2xkVmFsdWVbMF0sIG5ld1ZhbHVlWzBdLCAoYSwgYikgPT4gYS5kYXlTYW1lKGIpKSAmJlxuICAgICAgICAgICAgbnVsbGFibGVTYW1lKFxuICAgICAgICAgICAgICAgIG9sZFZhbHVlWzFdLFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlWzFdLFxuICAgICAgICAgICAgICAgIChhLCBiKSA9PiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlTWFzayhcbiAgICAgICAgZGF5OiBUdWlEYXkgfCBudWxsLFxuICAgICAgICBtaW46IFR1aURheSxcbiAgICAgICAgbWF4OiBUdWlEYXksXG4gICAgICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSxcbiAgICApOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFzazogWy4uLlRVSV9EQVRFX01BU0ssICcsJywgJyAnLCAuLi50dWlDcmVhdGVUaW1lTWFzayh0aW1lTW9kZSldLFxuICAgICAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVUaW1lUGlwZSh7dmFsdWU6IGRheSwgbWluLCBtYXh9LCB0aW1lTW9kZSksXG4gICAgICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldERhdGVUaW1lU3RyaW5nKFxuICAgICAgICBkYXRlOiBUdWlEYXkgfCBzdHJpbmcsXG4gICAgICAgIHRpbWU6IFR1aVRpbWUgfCBzdHJpbmcgfCBudWxsLFxuICAgICAgICB0aW1lTW9kZTogVHVpVGltZU1vZGUgPSAnSEg6TU0nLFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGVTdHJpbmcgPSBkYXRlIGluc3RhbmNlb2YgVHVpRGF5ID8gZGF0ZS50b1N0cmluZygpIDogZGF0ZTtcbiAgICAgICAgY29uc3QgdGltZVN0cmluZyA9IHRpbWUgaW5zdGFuY2VvZiBUdWlUaW1lID8gdGltZS50b1N0cmluZyh0aW1lTW9kZSkgOiB0aW1lIHx8ICcnO1xuXG4gICAgICAgIHJldHVybiBgJHtkYXRlU3RyaW5nfSR7REFURV9USU1FX1NFUEFSQVRPUn0ke3RpbWVTdHJpbmd9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU5hdGl2ZVZhbHVlKGRheTogVHVpRGF5KSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpWzFdIHx8ICcnO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmdldERhdGVUaW1lU3RyaW5nKGRheSwgdGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGFtcFRpbWUodGltZTogVHVpVGltZSwgZGF5OiBUdWlEYXkpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgbXMgPSB0aW1lLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKTtcbiAgICAgICAgY29uc3QgbWluID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5taW4pICYmIGRheS5kYXlTYW1lKHRoaXMuY2FsZW5kYXJNaW5EYXkpXG4gICAgICAgICAgICAgICAgPyB0aGlzLm1pblsxXS50b0Fic29sdXRlTWlsbGlzZWNvbmRzKClcbiAgICAgICAgICAgICAgICA6IC1JbmZpbml0eTtcbiAgICAgICAgY29uc3QgbWF4ID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5tYXgpICYmIGRheS5kYXlTYW1lKHRoaXMuY2FsZW5kYXJNYXhEYXkpXG4gICAgICAgICAgICAgICAgPyB0aGlzLm1heFsxXS50b0Fic29sdXRlTWlsbGlzZWNvbmRzKClcbiAgICAgICAgICAgICAgICA6IEluZmluaXR5O1xuXG4gICAgICAgIHJldHVybiBUdWlUaW1lLmZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhjbGFtcChtcywgbWluLCBtYXgpKTtcbiAgICB9XG59XG4iXX0=
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLXRpbWUvIiwic291cmNlcyI6WyJpbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsS0FBSyxFQUNMLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsMkJBQTJCLEVBQzNCLFlBQVksRUFJWixNQUFNLEVBQ04sY0FBYyxFQUVkLFFBQVEsRUFDUixPQUFPLEVBQ1AsT0FBTyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLHFCQUFxQixHQUN4QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBQyx5Q0FBeUMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLCtCQUErQixFQUMvQixjQUFjLEdBQ2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNILGtDQUFrQyxFQUNsQyxpQkFBaUIsRUFDakIsaUJBQWlCLEdBQ3BC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bnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yLFxuICAgIGNsYW1wLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9EQVRFX1NFUEFSQVRPUixcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlNb250aCxcbiAgICB0dWlQdXJlLFxuICAgIFR1aVRpbWUsXG4gICAgVHVpVGltZU1vZGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBzaXplQmlnZ2VyLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge0RBVEVfVElNRV9TRVBBUkFUT1J9IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7TEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9EQVRFX1RJTUVfVkFMVUVfVFJBTlNGT1JNRVIsXG4gICAgVFVJX1RJTUVfVEVYVFMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVUaW1lUGlwZSxcbiAgICB0dWlDcmVhdGVEYXRlTWFzayxcbiAgICB0dWlDcmVhdGVUaW1lTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHBsdWNrfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBUSU1FX1NUUkVBTV9GQUNUT1JZID0gKFxuICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgdmFsdWVUcmFuc2Zvcm1lcjogVHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXI8W1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXT4sXG4pID0+IFR1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5KGNvbnRyb2wsIHZhbHVlVHJhbnNmb3JtZXIpO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZS10aW1lJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS10aW1lLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUtdGltZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RGF0ZVRpbWVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdLFxuICAgICAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgZm9yd2FyZFJlZigoKSA9PiBUVUlfREFURV9USU1FX1ZBTFVFX1RSQU5TRk9STUVSKV0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogVElNRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5IHwgW1R1aURheSwgVHVpVGltZV0+LFxuICAgICAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB0aW1lTW9kZTogVHVpVGltZU1vZGUgPSAnSEg6TU0nO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIHJlYWRvbmx5IGZpbGxlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5kYXRlVGV4dHMkLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGF0ZVRleHRzID0+XG4gICAgICAgICAgICAgICAgY2hhbmdlRGF0ZVNlcGFyYXRvcihkYXRlVGV4dHNbdGhpcy5kYXRlRm9ybWF0XSwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIHRoaXMudGltZVRleHRzJC5waXBlKHBsdWNrKHRoaXMudGltZU1vZGUpKSxcbiAgICBdKS5waXBlKG1hcChmaWxsZXJzID0+IHRoaXMuZ2V0RGF0ZVRpbWVTdHJpbmcoLi4uZmlsbGVycykpKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9TRVBBUkFUT1IpIHJlYWRvbmx5IGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfVElNRV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgdGltZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpVGltZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBkYXRlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlEYXRlTW9kZSwgc3RyaW5nPj4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVElNRV9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lcjogVHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXI8XG4gICAgICAgICAgICBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdXG4gICAgICAgID4gfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZiwgdmFsdWVUcmFuc2Zvcm1lcik7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGxlckxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gREFURV9GSUxMRVJfTEVOR1RIICsgREFURV9USU1FX1NFUEFSQVRPUi5sZW5ndGggKyB0aGlzLnRpbWVNb2RlLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgdGV4dE1hc2tPcHRpb25zKCk6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1hc2soXG4gICAgICAgICAgICB0aGlzLnZhbHVlWzBdLFxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhck1pbkRheSxcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJNYXhEYXksXG4gICAgICAgICAgICB0aGlzLnRpbWVNb2RlLFxuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgdGhpcy5kYXRlU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2l6ZUJpZ2dlcih0aGlzLnRleHRmaWVsZFNpemUuc2l6ZSlcbiAgICAgICAgICAgID8gJ3R1aUljb25DYWxlbmRhckxhcmdlJ1xuICAgICAgICAgICAgOiAndHVpSWNvbkNhbGVuZGFyJztcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7dmFsdWUsIG5hdGl2ZVZhbHVlLCB0aW1lTW9kZX0gPSB0aGlzO1xuICAgICAgICBjb25zdCBbZGF0ZSwgdGltZV0gPSB2YWx1ZTtcbiAgICAgICAgY29uc3QgaGFzVGltZUlucHV0Q2hhcnMgPSBuYXRpdmVWYWx1ZS5sZW5ndGggPiBEQVRFX0ZJTExFUl9MRU5HVEg7XG5cbiAgICAgICAgaWYgKCFkYXRlIHx8ICghdGltZSAmJiBoYXNUaW1lSW5wdXRDaGFycykpIHtcbiAgICAgICAgICAgIHJldHVybiBuYXRpdmVWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGVUaW1lU3RyaW5nKGRhdGUsIHRpbWUsIHRpbWVNb2RlKTtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJWYWx1ZSgpOiBUdWlEYXkgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVbMF07XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFyTWluRGF5KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMubWluKSA/IHRoaXMubWluWzBdIDogdGhpcy5taW47XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFyTWF4RGF5KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMubWF4KSA/IHRoaXMubWF4WzBdIDogdGhpcy5tYXg7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQWN0aXZlWWVhck1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGggfHwgdGhpcy52YWx1ZVswXSB8fCB0aGlzLmRlZmF1bHRBY3RpdmVZZWFyTW9udGg7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8IERBVEVfRklMTEVSX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbbnVsbCwgbnVsbF0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbZGF0ZSwgdGltZV0gPSB2YWx1ZS5zcGxpdChEQVRFX1RJTUVfU0VQQVJBVE9SKTtcblxuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKGRhdGUsIHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHBhcnNlZFRpbWUgPVxuICAgICAgICAgICAgdGltZSAmJiB0aW1lLmxlbmd0aCA9PT0gdGhpcy50aW1lTW9kZS5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHRoaXMuY2xhbXBUaW1lKFR1aVRpbWUuZnJvbVN0cmluZyh0aW1lKSwgcGFyc2VkRGF0ZSlcbiAgICAgICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW3BhcnNlZERhdGUsIHBhcnNlZFRpbWVdKTtcbiAgICB9XG5cbiAgICBvbkRheUNsaWNrKGRheTogVHVpRGF5KSB7XG4gICAgICAgIGNvbnN0IG1vZGlmaWVkVGltZSA9IHRoaXMudmFsdWVbMV0gJiYgdGhpcy5jbGFtcFRpbWUodGhpcy52YWx1ZVsxXSwgZGF5KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtkYXksIG1vZGlmaWVkVGltZV0pO1xuICAgICAgICB0aGlzLnVwZGF0ZU5hdGl2ZVZhbHVlKGRheSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbk1vbnRoQ2hhbmdlKG1vbnRoOiBUdWlNb250aCkge1xuICAgICAgICB0aGlzLm1vbnRoID0gbW9udGg7XG4gICAgfVxuXG4gICAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZm9jdXNlZCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZVswXSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZVsxXSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPD0gdGhpcy5maWxsZXJMZW5ndGggKyBEQVRFX1RJTUVfU0VQQVJBVE9SLmxlbmd0aCB8fFxuICAgICAgICAgICAgdGhpcy50aW1lTW9kZSA9PT0gJ0hIOk1NJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFssIHRpbWVdID0gdGhpcy5uYXRpdmVWYWx1ZS5zcGxpdChEQVRFX1RJTUVfU0VQQVJBVE9SKTtcblxuICAgICAgICBpZiAoIXRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcnNlZFRpbWUgPSBUdWlUaW1lLmZyb21TdHJpbmcodGltZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbdGhpcy52YWx1ZVswXSwgcGFyc2VkVGltZV0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUuZW5kc1dpdGgoJy4nKSB8fCB0aGlzLm5hdGl2ZVZhbHVlLmVuZHNXaXRoKCc6JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5uYXRpdmVWYWx1ZS5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlICYmICh2YWx1ZVswXSB8fCB2YWx1ZVsxXSkgPyB0aGlzLmNvbXB1dGVkVmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdIHtcbiAgICAgICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVJZGVudGljYWxDb21wYXJhdG9yKFxuICAgICAgICBvbGRWYWx1ZTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSxcbiAgICAgICAgbmV3VmFsdWU6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0sXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBudWxsYWJsZVNhbWUob2xkVmFsdWVbMF0sIG5ld1ZhbHVlWzBdLCAoYSwgYikgPT4gYS5kYXlTYW1lKGIpKSAmJlxuICAgICAgICAgICAgbnVsbGFibGVTYW1lKFxuICAgICAgICAgICAgICAgIG9sZFZhbHVlWzFdLFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlWzFdLFxuICAgICAgICAgICAgICAgIChhLCBiKSA9PiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlTWFzayhcbiAgICAgICAgZGF5OiBUdWlEYXkgfCBudWxsLFxuICAgICAgICBtaW46IFR1aURheSxcbiAgICAgICAgbWF4OiBUdWlEYXksXG4gICAgICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSxcbiAgICAgICAgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICApOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFzazogW1xuICAgICAgICAgICAgICAgIC4uLnR1aUNyZWF0ZURhdGVNYXNrKGRhdGVGb3JtYXQsIGRhdGVTZXBhcmF0b3IpLFxuICAgICAgICAgICAgICAgICcsJyxcbiAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgLi4udHVpQ3JlYXRlVGltZU1hc2sodGltZU1vZGUpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlVGltZVBpcGUoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBkYXksXG4gICAgICAgICAgICAgICAgbWluLFxuICAgICAgICAgICAgICAgIG1heCxcbiAgICAgICAgICAgICAgICBkYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgIGRhdGVTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgdGltZU1vZGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0RGF0ZVRpbWVTdHJpbmcoXG4gICAgICAgIGRhdGU6IFR1aURheSB8IHN0cmluZyxcbiAgICAgICAgdGltZTogVHVpVGltZSB8IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSA9ICdISDpNTScsXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9XG4gICAgICAgICAgICBkYXRlIGluc3RhbmNlb2YgVHVpRGF5XG4gICAgICAgICAgICAgICAgPyBkYXRlLnRvU3RyaW5nKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKVxuICAgICAgICAgICAgICAgIDogZGF0ZTtcbiAgICAgICAgY29uc3QgdGltZVN0cmluZyA9IHRpbWUgaW5zdGFuY2VvZiBUdWlUaW1lID8gdGltZS50b1N0cmluZyh0aW1lTW9kZSkgOiB0aW1lIHx8ICcnO1xuXG4gICAgICAgIHJldHVybiBgJHtkYXRlU3RyaW5nfSR7REFURV9USU1FX1NFUEFSQVRPUn0ke3RpbWVTdHJpbmd9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU5hdGl2ZVZhbHVlKGRheTogVHVpRGF5KSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpWzFdIHx8ICcnO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmdldERhdGVUaW1lU3RyaW5nKGRheSwgdGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGFtcFRpbWUodGltZTogVHVpVGltZSwgZGF5OiBUdWlEYXkpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgbXMgPSB0aW1lLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKTtcbiAgICAgICAgY29uc3QgbWluID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5taW4pICYmIGRheS5kYXlTYW1lKHRoaXMuY2FsZW5kYXJNaW5EYXkpXG4gICAgICAgICAgICAgICAgPyB0aGlzLm1pblsxXS50b0Fic29sdXRlTWlsbGlzZWNvbmRzKClcbiAgICAgICAgICAgICAgICA6IC1JbmZpbml0eTtcbiAgICAgICAgY29uc3QgbWF4ID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5tYXgpICYmIGRheS5kYXlTYW1lKHRoaXMuY2FsZW5kYXJNYXhEYXkpXG4gICAgICAgICAgICAgICAgPyB0aGlzLm1heFsxXS50b0Fic29sdXRlTWlsbGlzZWNvbmRzKClcbiAgICAgICAgICAgICAgICA6IEluZmluaXR5O1xuXG4gICAgICAgIHJldHVybiBUdWlUaW1lLmZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhjbGFtcChtcywgbWluLCBtYXgpKTtcbiAgICB9XG59XG4iXX0=
|