@taiga-ui/cdk 2.23.0 → 2.27.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 +7 -3
- package/abstract/control.d.ts +1 -1
- package/abstract/dialog.directive.d.ts +12 -0
- package/abstract/index.d.ts +1 -0
- package/abstract/interactive.d.ts +4 -4
- package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.js +45 -7
- package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.js +349 -349
- package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +276 -0
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +16 -0
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-item.umd.js +259 -0
- package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-item.umd.min.js +16 -0
- package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.js +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.js +5 -5
- package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js +5 -5
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js +5 -5
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.js +26 -18
- package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.js +11 -11
- package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +38 -38
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +11 -11
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.js +8 -10
- package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +14 -14
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
- package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
- package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
- package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
- package/date-time/day-range.d.ts +14 -14
- package/date-time/day.d.ts +57 -57
- package/date-time/index.d.ts +4 -4
- package/date-time/month-range.d.ts +1 -1
- package/date-time/month.d.ts +26 -26
- package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
- package/date-time/time.d.ts +12 -12
- package/date-time/year.d.ts +27 -27
- package/directives/active-zone/taiga-ui-cdk-directives-active-zone.metadata.json +1 -1
- package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
- package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
- package/directives/checked/taiga-ui-cdk-directives-checked.metadata.json +1 -1
- package/directives/copy-processor/copy-processor.directive.d.ts +7 -0
- package/directives/copy-processor/copy-processor.module.d.ts +2 -0
- package/directives/copy-processor/index.d.ts +2 -0
- package/directives/copy-processor/package.json +13 -0
- package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.d.ts +4 -0
- package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.metadata.json +1 -0
- package/directives/drag/taiga-ui-cdk-directives-drag.metadata.json +1 -1
- package/directives/droppable/taiga-ui-cdk-directives-droppable.metadata.json +1 -1
- package/directives/element/taiga-ui-cdk-directives-element.metadata.json +1 -1
- package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.metadata.json +1 -1
- package/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.metadata.json +1 -1
- package/directives/focusable/taiga-ui-cdk-directives-focusable.metadata.json +1 -1
- package/directives/focused/taiga-ui-cdk-directives-focused.metadata.json +1 -1
- package/directives/for/for.directive.d.ts +1 -1
- package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
- package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.metadata.json +1 -1
- package/directives/hovered/taiga-ui-cdk-directives-hovered.metadata.json +1 -1
- package/directives/index.d.ts +5 -4
- package/directives/input-mode/taiga-ui-cdk-directives-input-mode.metadata.json +1 -1
- package/directives/item/index.d.ts +2 -0
- package/directives/item/item.directive.d.ts +6 -0
- package/directives/item/item.module.d.ts +2 -0
- package/directives/item/package.json +13 -0
- package/directives/item/taiga-ui-cdk-directives-item.d.ts +4 -0
- package/directives/item/taiga-ui-cdk-directives-item.metadata.json +1 -0
- package/directives/let/taiga-ui-cdk-directives-let.metadata.json +1 -1
- package/directives/media/media.directive.d.ts +1 -1
- package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
- package/directives/obscured/taiga-ui-cdk-directives-obscured.metadata.json +1 -1
- package/directives/overscroll/taiga-ui-cdk-directives-overscroll.metadata.json +1 -1
- package/directives/pan/pan.directive.d.ts +3 -3
- package/directives/pan/taiga-ui-cdk-directives-pan.metadata.json +1 -1
- package/directives/pressed/taiga-ui-cdk-directives-pressed.metadata.json +1 -1
- package/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.metadata.json +1 -1
- package/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.metadata.json +1 -1
- package/directives/resize/taiga-ui-cdk-directives-resize.metadata.json +1 -1
- package/directives/swipe/swipe.directive.d.ts +4 -3
- package/directives/swipe/taiga-ui-cdk-directives-swipe.metadata.json +1 -1
- package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
- package/directives/validator/taiga-ui-cdk-directives-validator.metadata.json +1 -1
- package/directives/zoom/taiga-ui-cdk-directives-zoom.metadata.json +1 -1
- package/directives/zoom/zoom.directive.d.ts +4 -3
- package/enums/index.d.ts +1 -1
- package/enums/taiga-ui-cdk-enums.metadata.json +1 -1
- package/esm2015/abstract/control.js +1 -1
- package/esm2015/abstract/dialog.directive.js +35 -0
- package/esm2015/abstract/index.js +2 -1
- package/esm2015/abstract/interactive.js +4 -4
- package/esm2015/abstract/multiple-control.js +1 -1
- package/esm2015/abstract/nullable-control.js +1 -1
- package/esm2015/components/dialog-host/dialog-host.component.js +3 -3
- package/esm2015/components/dialog-host/dialog-host.module.js +1 -1
- package/esm2015/components/portal-host/portal-host.component.js +1 -1
- package/esm2015/components/portal-host/portal-host.module.js +1 -1
- package/esm2015/components/portal-host/portal.service.js +1 -1
- package/esm2015/constants/matcher.js +1 -1
- package/esm2015/date-time/date-fillers.js +1 -1
- package/esm2015/date-time/day-range.js +26 -26
- package/esm2015/date-time/day.js +120 -120
- package/esm2015/date-time/index.js +5 -5
- package/esm2015/date-time/month-range.js +6 -6
- package/esm2015/date-time/month.js +56 -56
- package/esm2015/date-time/time.js +40 -40
- package/esm2015/date-time/year.js +49 -49
- package/esm2015/directives/active-zone/active-zone.module.js +1 -1
- package/esm2015/directives/auto-focus/autofocus.module.js +1 -1
- package/esm2015/directives/autofilled/autofilled.module.js +1 -1
- package/esm2015/directives/checked/checked.module.js +1 -1
- package/esm2015/directives/copy-processor/copy-processor.directive.js +37 -0
- package/esm2015/directives/copy-processor/copy-processor.module.js +13 -0
- package/esm2015/directives/copy-processor/index.js +3 -0
- package/esm2015/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +5 -0
- package/esm2015/directives/drag/drag.module.js +1 -1
- package/esm2015/directives/droppable/droppable.module.js +1 -1
- package/esm2015/directives/element/element.module.js +1 -1
- package/esm2015/directives/focus-trap/focus-trap.module.js +1 -1
- package/esm2015/directives/focus-visible/focus-visible.module.js +1 -1
- package/esm2015/directives/focusable/focusable.module.js +1 -1
- package/esm2015/directives/focused/focused.module.js +1 -1
- package/esm2015/directives/for/for.directive.js +1 -1
- package/esm2015/directives/for/for.module.js +1 -1
- package/esm2015/directives/high-dpi/high-dpi.module.js +1 -1
- package/esm2015/directives/hovered/hovered.module.js +1 -1
- package/esm2015/directives/index.js +6 -5
- package/esm2015/directives/input-mode/input-mode.module.js +1 -1
- package/esm2015/directives/item/index.js +3 -0
- package/esm2015/directives/item/item.directive.js +15 -0
- package/esm2015/directives/item/item.module.js +13 -0
- package/esm2015/directives/item/taiga-ui-cdk-directives-item.js +5 -0
- package/esm2015/directives/let/let.directive.js +1 -1
- package/esm2015/directives/let/let.module.js +1 -1
- package/esm2015/directives/media/media.directive.js +2 -2
- package/esm2015/directives/media/media.module.js +1 -1
- package/esm2015/directives/obscured/obscured.module.js +1 -1
- package/esm2015/directives/overscroll/overscroll.module.js +1 -1
- package/esm2015/directives/pan/pan.directive.js +3 -2
- package/esm2015/directives/pan/pan.module.js +1 -1
- package/esm2015/directives/pressed/pressed.module.js +1 -1
- package/esm2015/directives/prevent-default/prevent-default.module.js +1 -1
- package/esm2015/directives/repeat-times/repeat-times.module.js +1 -1
- package/esm2015/directives/resize/resize.module.js +1 -1
- package/esm2015/directives/swipe/swipe.directive.js +3 -2
- package/esm2015/directives/swipe/swipe.module.js +1 -1
- package/esm2015/directives/validator/validator.module.js +1 -1
- package/esm2015/directives/zoom/zoom.directive.js +3 -2
- package/esm2015/directives/zoom/zoom.module.js +1 -1
- package/esm2015/enums/index.js +2 -2
- package/esm2015/interfaces/base-dialog-context.js +1 -1
- package/esm2015/interfaces/base-dialog.js +1 -1
- package/esm2015/interfaces/focusable-element-accessor.js +1 -1
- package/esm2015/interfaces/index.js +1 -1
- package/esm2015/observables/drag-and-drop-from.js +1 -1
- package/esm2015/observables/focus-visible-observable.js +1 -1
- package/esm2015/observables/mouse-drag-finish-from.js +1 -1
- package/esm2015/observables/pressed-observable.js +1 -1
- package/esm2015/pipes/filter/filter.module.js +1 -1
- package/esm2015/pipes/mapper/mapper.module.js +1 -1
- package/esm2015/services/focus-visible.service.js +1 -1
- package/esm2015/services/index.js +2 -2
- package/esm2015/services/obscured.service.js +1 -1
- package/esm2015/services/pan.service.js +3 -3
- package/esm2015/services/resize.service.js +1 -1
- package/esm2015/services/static-request.service.js +1 -1
- package/esm2015/tokens/active-element.js +4 -5
- package/esm2015/tokens/index.js +3 -3
- package/esm2015/tokens/is-android.js +1 -1
- package/esm2015/types/index.js +1 -1
- package/esm2015/utils/dom/contains-or-after.js +2 -4
- package/esm2015/utils/dom/get-element-obscurers.js +1 -1
- package/esm2015/utils/dom/index.js +2 -2
- package/esm2015/utils/focus/get-closest-keyboard-focusable.js +1 -1
- package/esm2015/utils/miscellaneous/index.js +3 -3
- package/esm5/abstract/control.js +1 -1
- package/esm5/abstract/dialog.directive.js +44 -0
- package/esm5/abstract/index.js +2 -1
- package/esm5/abstract/interactive.js +4 -4
- package/esm5/abstract/multiple-control.js +1 -1
- package/esm5/abstract/nullable-control.js +1 -1
- package/esm5/components/dialog-host/dialog-host.component.js +3 -3
- package/esm5/components/dialog-host/dialog-host.module.js +1 -1
- package/esm5/components/portal-host/portal-host.component.js +1 -1
- package/esm5/components/portal-host/portal-host.module.js +1 -1
- package/esm5/components/portal-host/portal.service.js +1 -1
- package/esm5/constants/matcher.js +1 -1
- package/esm5/date-time/date-fillers.js +1 -1
- package/esm5/date-time/day-range.js +26 -26
- package/esm5/date-time/day.js +120 -120
- package/esm5/date-time/index.js +5 -5
- package/esm5/date-time/month-range.js +6 -6
- package/esm5/date-time/month.js +56 -56
- package/esm5/date-time/time.js +41 -41
- package/esm5/date-time/year.js +49 -49
- package/esm5/directives/active-zone/active-zone.module.js +1 -1
- package/esm5/directives/auto-focus/autofocus.module.js +1 -1
- package/esm5/directives/autofilled/autofilled.module.js +1 -1
- package/esm5/directives/checked/checked.module.js +1 -1
- package/esm5/directives/copy-processor/copy-processor.directive.js +38 -0
- package/esm5/directives/copy-processor/copy-processor.module.js +16 -0
- package/esm5/directives/copy-processor/index.js +3 -0
- package/esm5/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +5 -0
- package/esm5/directives/drag/drag.module.js +1 -1
- package/esm5/directives/droppable/droppable.module.js +1 -1
- package/esm5/directives/element/element.module.js +1 -1
- package/esm5/directives/focus-trap/focus-trap.module.js +1 -1
- package/esm5/directives/focus-visible/focus-visible.module.js +1 -1
- package/esm5/directives/focusable/focusable.module.js +1 -1
- package/esm5/directives/focused/focused.module.js +1 -1
- package/esm5/directives/for/for.directive.js +1 -1
- package/esm5/directives/for/for.module.js +1 -1
- package/esm5/directives/high-dpi/high-dpi.module.js +1 -1
- package/esm5/directives/hovered/hovered.module.js +1 -1
- package/esm5/directives/index.js +6 -5
- package/esm5/directives/input-mode/input-mode.module.js +1 -1
- package/esm5/directives/item/index.js +3 -0
- package/esm5/directives/item/item.directive.js +18 -0
- package/esm5/directives/item/item.module.js +16 -0
- package/esm5/directives/item/taiga-ui-cdk-directives-item.js +5 -0
- package/esm5/directives/let/let.directive.js +1 -1
- package/esm5/directives/let/let.module.js +1 -1
- package/esm5/directives/media/media.directive.js +2 -2
- package/esm5/directives/media/media.module.js +1 -1
- package/esm5/directives/obscured/obscured.module.js +1 -1
- package/esm5/directives/overscroll/overscroll.module.js +1 -1
- package/esm5/directives/pan/pan.directive.js +3 -2
- package/esm5/directives/pan/pan.module.js +1 -1
- package/esm5/directives/pressed/pressed.module.js +1 -1
- package/esm5/directives/prevent-default/prevent-default.module.js +1 -1
- package/esm5/directives/repeat-times/repeat-times.module.js +1 -1
- package/esm5/directives/resize/resize.module.js +1 -1
- package/esm5/directives/swipe/swipe.directive.js +3 -2
- package/esm5/directives/swipe/swipe.module.js +1 -1
- package/esm5/directives/validator/validator.module.js +1 -1
- package/esm5/directives/zoom/zoom.directive.js +3 -2
- package/esm5/directives/zoom/zoom.module.js +1 -1
- package/esm5/enums/index.js +2 -2
- package/esm5/interfaces/base-dialog-context.js +1 -1
- package/esm5/interfaces/base-dialog.js +1 -1
- package/esm5/interfaces/focusable-element-accessor.js +1 -1
- package/esm5/interfaces/index.js +1 -1
- package/esm5/observables/drag-and-drop-from.js +1 -1
- package/esm5/observables/focus-visible-observable.js +1 -1
- package/esm5/observables/mouse-drag-finish-from.js +1 -1
- package/esm5/observables/pressed-observable.js +1 -1
- package/esm5/pipes/filter/filter.module.js +1 -1
- package/esm5/pipes/mapper/mapper.module.js +1 -1
- package/esm5/services/focus-visible.service.js +1 -1
- package/esm5/services/index.js +2 -2
- package/esm5/services/obscured.service.js +1 -1
- package/esm5/services/pan.service.js +3 -3
- package/esm5/services/resize.service.js +1 -1
- package/esm5/services/static-request.service.js +1 -1
- package/esm5/tokens/active-element.js +5 -5
- package/esm5/tokens/index.js +3 -3
- package/esm5/tokens/is-android.js +1 -1
- package/esm5/types/index.js +1 -1
- package/esm5/utils/dom/contains-or-after.js +2 -4
- package/esm5/utils/dom/get-element-obscurers.js +1 -1
- package/esm5/utils/dom/index.js +2 -2
- package/esm5/utils/focus/get-closest-keyboard-focusable.js +1 -1
- package/esm5/utils/miscellaneous/index.js +3 -3
- package/fesm2015/taiga-ui-cdk-abstract.js +36 -7
- package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-date-time.js +343 -343
- package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +52 -0
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-directives-drag.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-droppable.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-element.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focusable.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focused.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-input-mode.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-item.js +30 -0
- package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-directives-let.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-media.js +1 -1
- package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-obscured.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-pan.js +2 -1
- package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-pressed.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-resize.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-swipe.js +2 -1
- package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-zoom.js +2 -1
- package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives.js +5 -4
- package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-enums.js +11 -11
- package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-filter.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-mapper.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-services.js +29 -29
- package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +10 -11
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-dom.js +8 -10
- package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +13 -13
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
- package/fesm5/taiga-ui-cdk-abstract.js +45 -7
- package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
- package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
- package/fesm5/taiga-ui-cdk-date-time.js +343 -343
- package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-active-zone.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-checked.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-copy-processor.js +56 -0
- package/fesm5/taiga-ui-cdk-directives-copy-processor.js.map +1 -0
- package/fesm5/taiga-ui-cdk-directives-drag.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-droppable.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-element.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-focusable.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-focused.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-hovered.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-input-mode.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-item.js +36 -0
- package/fesm5/taiga-ui-cdk-directives-item.js.map +1 -0
- package/fesm5/taiga-ui-cdk-directives-let.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-media.js +1 -1
- package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-obscured.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-overscroll.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-pan.js +2 -1
- package/fesm5/taiga-ui-cdk-directives-pan.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-pressed.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-resize.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-swipe.js +2 -1
- package/fesm5/taiga-ui-cdk-directives-swipe.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-validator.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-zoom.js +2 -1
- package/fesm5/taiga-ui-cdk-directives-zoom.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives.js +5 -4
- package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm5/taiga-ui-cdk-enums.js +11 -11
- package/fesm5/taiga-ui-cdk-enums.js.map +1 -1
- package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm5/taiga-ui-cdk-pipes-filter.js.map +1 -1
- package/fesm5/taiga-ui-cdk-pipes-mapper.js.map +1 -1
- package/fesm5/taiga-ui-cdk-services.js +39 -39
- package/fesm5/taiga-ui-cdk-services.js.map +1 -1
- package/fesm5/taiga-ui-cdk-tokens.js +11 -11
- package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-dom.js +8 -10
- package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +14 -14
- package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
- package/interfaces/focusable-element-accessor.d.ts +2 -0
- package/interfaces/index.d.ts +1 -1
- package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
- package/observables/taiga-ui-cdk-observables.metadata.json +1 -1
- package/package.json +3 -3
- package/pipes/filter/taiga-ui-cdk-pipes-filter.metadata.json +1 -1
- package/pipes/mapper/taiga-ui-cdk-pipes-mapper.metadata.json +1 -1
- package/services/index.d.ts +1 -1
- package/services/taiga-ui-cdk-services.metadata.json +1 -1
- package/tokens/index.d.ts +2 -2
- package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
- package/types/index.d.ts +1 -1
- package/types/taiga-ui-cdk-types.metadata.json +1 -1
- package/utils/dom/index.d.ts +1 -1
- package/utils/dom/taiga-ui-cdk-utils-dom.metadata.json +1 -1
- package/utils/miscellaneous/index.d.ts +2 -2
- package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { tuiAssert } from '@taiga-ui/cdk/classes';
|
|
2
2
|
import { FormArray, FormGroup } from '@angular/forms';
|
|
3
3
|
|
|
4
|
+
function distanceBetweenTouches({ touches }) {
|
|
5
|
+
return Math.hypot(touches[0].clientX - touches[1].clientX, touches[0].clientY - touches[1].clientY);
|
|
6
|
+
}
|
|
7
|
+
|
|
4
8
|
function easeInOutQuad(t) {
|
|
5
9
|
tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');
|
|
6
10
|
return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
|
|
@@ -44,6 +48,15 @@ function getOriginalArrayFromQueryList(queryList) {
|
|
|
44
48
|
return array;
|
|
45
49
|
}
|
|
46
50
|
|
|
51
|
+
function getSwipeDirection(deltaX, deltaY) {
|
|
52
|
+
if (Math.abs(deltaY) > Math.abs(deltaX)) {
|
|
53
|
+
return deltaY > 0 ? 'top' : 'bottom';
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return deltaX > 0 ? 'left' : 'right';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
47
60
|
function identity(item) {
|
|
48
61
|
return item;
|
|
49
62
|
}
|
|
@@ -98,19 +111,6 @@ function uniqBy(array, key) {
|
|
|
98
111
|
.values());
|
|
99
112
|
}
|
|
100
113
|
|
|
101
|
-
function getSwipeDirection(deltaX, deltaY) {
|
|
102
|
-
if (Math.abs(deltaY) > Math.abs(deltaX)) {
|
|
103
|
-
return deltaY > 0 ? 'top' : 'bottom';
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
return deltaX > 0 ? 'left' : 'right';
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function distanceBetweenTouches({ touches }) {
|
|
111
|
-
return Math.hypot(touches[0].clientX - touches[1].clientX, touches[0].clientY - touches[1].clientY);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
114
|
/**
|
|
115
115
|
* Generated bundle index. Do not edit.
|
|
116
116
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts","ng://@taiga-ui/cdk/utils/miscellaneous/
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts","ng://@taiga-ui/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<ReadonlyArray<unknown>>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): ReadonlyArray<T> {\n let array: ReadonlyArray<T> = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","export function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: ReadonlyArray<T>,\n key: keyof T,\n): ReadonlyArray<T> {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { __decorate, __extends, __assign, __spread, __param } from 'tslib';
|
|
2
|
-
import { EventEmitter, Input, Output, HostBinding, Directive, ChangeDetectorRef, Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Input, Output, HostBinding, Directive, ChangeDetectorRef, Inject, Injectable, TemplateRef } from '@angular/core';
|
|
3
3
|
import { NgModel, NgControl } from '@angular/forms';
|
|
4
4
|
import { tuiAssert } from '@taiga-ui/cdk/classes';
|
|
5
5
|
import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
|
|
6
6
|
import { tuiDefaultProp } from '@taiga-ui/cdk/decorators';
|
|
7
|
-
import { Subject, merge, BehaviorSubject, Observable } from 'rxjs';
|
|
8
|
-
import { takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { Subject, merge, BehaviorSubject, Observable, EMPTY } from 'rxjs';
|
|
8
|
+
import { takeUntil, switchMap, ignoreElements, endWith } from 'rxjs/operators';
|
|
9
|
+
import { PolymorpheusTemplate } from '@tinkoff/ng-polymorpheus';
|
|
9
10
|
import { TuiIdService } from '@taiga-ui/cdk/services';
|
|
10
11
|
import { DOCUMENT } from '@angular/common';
|
|
11
12
|
|
|
@@ -15,9 +16,6 @@ var TUI = 'tui_interactive_';
|
|
|
15
16
|
*/
|
|
16
17
|
var AbstractTuiInteractive = /** @class */ (function () {
|
|
17
18
|
function AbstractTuiInteractive() {
|
|
18
|
-
this.hovered = false;
|
|
19
|
-
this.pressed = false;
|
|
20
|
-
this.focusVisible = false;
|
|
21
19
|
this.pseudoHovered = null;
|
|
22
20
|
this.pseudoPressed = null;
|
|
23
21
|
this.pseudoFocused = null;
|
|
@@ -33,6 +31,9 @@ var AbstractTuiInteractive = /** @class */ (function () {
|
|
|
33
31
|
this.pressedChange = new EventEmitter();
|
|
34
32
|
this.hoveredChange = new EventEmitter();
|
|
35
33
|
this.focusVisibleChange = new EventEmitter();
|
|
34
|
+
this.hovered = false;
|
|
35
|
+
this.pressed = false;
|
|
36
|
+
this.focusVisible = false;
|
|
36
37
|
this.autoIdString = "" + TUI + AbstractTuiInteractive_1.autoId++ + Date.now();
|
|
37
38
|
}
|
|
38
39
|
AbstractTuiInteractive_1 = AbstractTuiInteractive;
|
|
@@ -427,6 +428,43 @@ var AbstractTuiDialogService = /** @class */ (function (_super) {
|
|
|
427
428
|
return AbstractTuiDialogService;
|
|
428
429
|
}(Observable));
|
|
429
430
|
|
|
431
|
+
var AbstractTuiDialogDirective = /** @class */ (function (_super) {
|
|
432
|
+
__extends(AbstractTuiDialogDirective, _super);
|
|
433
|
+
function AbstractTuiDialogDirective(templateRef, changeDetectorRef, service) {
|
|
434
|
+
var _this = _super.call(this, templateRef, changeDetectorRef) || this;
|
|
435
|
+
_this.service = service;
|
|
436
|
+
_this.open$ = new Subject();
|
|
437
|
+
_this.options = {};
|
|
438
|
+
_this.openChange = _this.open$.pipe(switchMap(function (open) {
|
|
439
|
+
return open
|
|
440
|
+
? _this.service
|
|
441
|
+
.open(_this, _this.options)
|
|
442
|
+
.pipe(ignoreElements(), endWith(false))
|
|
443
|
+
: EMPTY;
|
|
444
|
+
}));
|
|
445
|
+
return _this;
|
|
446
|
+
}
|
|
447
|
+
Object.defineProperty(AbstractTuiDialogDirective.prototype, "open", {
|
|
448
|
+
set: function (open) {
|
|
449
|
+
this.open$.next(open);
|
|
450
|
+
},
|
|
451
|
+
enumerable: true,
|
|
452
|
+
configurable: true
|
|
453
|
+
});
|
|
454
|
+
AbstractTuiDialogDirective.ctorParameters = function () { return [
|
|
455
|
+
{ type: TemplateRef, decorators: [{ type: Inject, args: [TemplateRef,] }] },
|
|
456
|
+
{ type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
|
|
457
|
+
{ type: AbstractTuiDialogService, decorators: [{ type: Inject, args: [AbstractTuiDialogService,] }] }
|
|
458
|
+
]; };
|
|
459
|
+
AbstractTuiDialogDirective = __decorate([
|
|
460
|
+
Directive(),
|
|
461
|
+
__param(0, Inject(TemplateRef)),
|
|
462
|
+
__param(1, Inject(ChangeDetectorRef)),
|
|
463
|
+
__param(2, Inject(AbstractTuiDialogService))
|
|
464
|
+
], AbstractTuiDialogDirective);
|
|
465
|
+
return AbstractTuiDialogDirective;
|
|
466
|
+
}(PolymorpheusTemplate));
|
|
467
|
+
|
|
430
468
|
var AbstractTuiMultipleControl = /** @class */ (function (_super) {
|
|
431
469
|
__extends(AbstractTuiMultipleControl, _super);
|
|
432
470
|
function AbstractTuiMultipleControl() {
|
|
@@ -513,5 +551,5 @@ var AbstractTuiThemeSwitcher = /** @class */ (function () {
|
|
|
513
551
|
* Generated bundle index. Do not edit.
|
|
514
552
|
*/
|
|
515
553
|
|
|
516
|
-
export { AbstractTuiControl, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiThemeSwitcher, TuiController };
|
|
554
|
+
export { AbstractTuiControl, AbstractTuiDialogDirective, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiThemeSwitcher, TuiController };
|
|
517
555
|
//# sourceMappingURL=taiga-ui-cdk-abstract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private readonly autoIdString: string;\n\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n hovered = false;\n\n pressed = false;\n\n focusVisible = false;\n\n abstract focused: boolean;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && (this.pseudoHovered ?? this.hovered);\n }\n\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && (this.pseudoPressed ?? this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focusVisible);\n }\n\n get id(): string {\n return !!this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateHovered(hovered: boolean) {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n protected updatePressed(pressed: boolean) {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean) {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n !this.readOnly &&\n !this.disabled &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | number | null {\n return this.controlName;\n }\n\n protected get controlName(): string | number | null {\n return this.ngControl && this.ngControl.name;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n return ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n }\n\n ngOnInit() {\n if (\n !this.ngControl ||\n !this.ngControl.valueChanges ||\n !this.ngControl.statusChanges\n ) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.refreshLocalValue(this.safeCurrentValue);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate() {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T) => void) {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n\n setDisabledState() {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null) {\n this.refreshLocalValue(\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value,\n );\n }\n\n protected abstract getFallbackValue(): T;\n\n protected updateFocused(focused: boolean) {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T) {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched() {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T) {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null) {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n}\n","import {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges() {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T extends {}> extends Observable<\n readonly TuiDialog<T, any>[]\n> {\n protected abstract readonly component: PolymorpheusContent<TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<readonly TuiDialog<T, any>[]>([]);\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G) => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {Directive} from '@angular/core';\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n ReadonlyArray<T>\n> {\n clear() {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): ReadonlyArray<T> {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy() {\n this.removeTheme();\n }\n\n private addTheme() {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme() {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/dialog.directive.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n abstract focused: boolean;\n\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n hovered = false;\n\n pressed = false;\n\n focusVisible = false;\n\n constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && (this.pseudoHovered ?? this.hovered);\n }\n\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && (this.pseudoPressed ?? this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focusVisible);\n }\n\n get id(): string {\n return !!this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateHovered(hovered: boolean) {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n protected updatePressed(pressed: boolean) {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean) {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n !this.readOnly &&\n !this.disabled &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | number | null {\n return this.controlName;\n }\n\n protected get controlName(): string | number | null {\n return this.ngControl && this.ngControl.name;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n return ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n }\n\n ngOnInit() {\n if (\n !this.ngControl ||\n !this.ngControl.valueChanges ||\n !this.ngControl.statusChanges\n ) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.refreshLocalValue(this.safeCurrentValue);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate() {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T) => void) {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n\n setDisabledState() {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null) {\n this.refreshLocalValue(\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value,\n );\n }\n\n protected updateFocused(focused: boolean) {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T) {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched() {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T) {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null) {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n}\n","import {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges() {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T extends {}> extends Observable<\n readonly TuiDialog<T, any>[]\n> {\n protected abstract readonly component: PolymorpheusContent<TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<readonly TuiDialog<T, any>[]>([]);\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G) => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n ReadonlyArray<T>\n> {\n clear() {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): ReadonlyArray<T> {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy() {\n this.removeTheme();\n }\n\n private addTheme() {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme() {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ var TuiDialogHostComponent = /** @class */ (function () {
|
|
|
72
72
|
TuiDialogHostComponent = __decorate([
|
|
73
73
|
Component({
|
|
74
74
|
selector: 'tui-dialog-host',
|
|
75
|
-
template: "<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n
|
|
75
|
+
template: "<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"dialog\"\n [@tuiParentAnimation]\n [attr.aria-labelledby]=\"item.id\"\n [content]=\"item.component\"\n [context]=\"item\"\n ></section>\n <div\n *tuiLet=\"isDialogClosesOnBack$ | async as isDialogClosesOnBack\"\n class=\"overlay\"\n [class.overlay_visible]=\"dialogs.length\"\n (window:popstate)=\"closeLast(dialogs, isDialogClosesOnBack)\"\n (transitionend)=\"onDialog($event, !!dialogs.length, isDialogClosesOnBack)\"\n ></div>\n</ng-container>\n",
|
|
76
76
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
77
77
|
animations: [TUI_PARENT_ANIMATION],
|
|
78
78
|
styles: [":host{position:fixed;left:0;bottom:0;width:100%;height:0}.dialog,.overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-start;outline:0;overflow:auto;overflow:overlay}.overlay{height:100vh;pointer-events:none;touch-action:none;opacity:0;letter-spacing:normal;transition:opacity var(--tui-duration),letter-spacing 10ms;background:rgba(0,0,0,.75)}.overlay_visible{opacity:1;letter-spacing:1px}.dialog:last-of-type{z-index:1}"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-components-dialog-host.js","sources":["ng://@taiga-ui/cdk/components/dialog-host/dialog-host.component.ts","ng://@taiga-ui/cdk/components/dialog-host/dialog-host.module.ts","ng://@taiga-ui/cdk/components/dialog-host/taiga-ui-cdk-components-dialog-host.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-components-dialog-host.js","sources":["ng://@taiga-ui/cdk/components/dialog-host/dialog-host.component.ts","ng://@taiga-ui/cdk/components/dialog-host/dialog-host.module.ts","ng://@taiga-ui/cdk/components/dialog-host/taiga-ui-cdk-components-dialog-host.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n inject,\n InjectionToken,\n} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {HISTORY, WINDOW} from '@ng-web-apis/common';\nimport {TUI_PARENT_ANIMATION} from '@taiga-ui/cdk/constants';\nimport {TUI_DIALOGS} from '@taiga-ui/cdk/tokens';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {isInsideIframe} from '@taiga-ui/cdk/utils';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport const TUI_DIALOG_CLOSES_ON_BACK = new InjectionToken<Observable<boolean>>(\n 'Is closing dialog on browser backward navigation enabled',\n {\n /**\n * TODO enable this feature for iframes too\n * when the legacy frame manager (with an iframe inside) will be removed on all internal projects\n */\n factory: () => of(!isInsideIframe(inject(WINDOW))),\n },\n);\n\n// TODO: remove in ivy compilation\nexport const FAKE_HISTORY_STATE = {label: 'ignoreMe'} as const;\n// TODO: remove in ivy compilation\nexport const isFakeHistoryState = (\n historyState: Record<string, unknown>,\n): historyState is typeof FAKE_HISTORY_STATE =>\n historyState?.label === FAKE_HISTORY_STATE.label;\n\n// @dynamic\n@Component({\n selector: 'tui-dialog-host',\n templateUrl: './dialog-host.template.html',\n styleUrls: ['./dialog-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [TUI_PARENT_ANIMATION],\n})\nexport class TuiDialogHostComponent<T extends TuiDialog<unknown, unknown>> {\n readonly dialogs$ = combineLatest(this.dialogsByType).pipe(\n map(allTypesDialogs =>\n new Array<T>()\n .concat(...allTypesDialogs)\n .sort((a, b) => a.createdAt - b.createdAt),\n ),\n );\n\n constructor(\n @Inject(TUI_DIALOG_CLOSES_ON_BACK)\n readonly isDialogClosesOnBack$: Observable<boolean>,\n @Inject(TUI_DIALOGS) private readonly dialogsByType: Observable<readonly T[]>[],\n @Inject(HISTORY) private readonly historyRef: History,\n @Inject(Title) private readonly titleService: Title,\n ) {}\n\n closeLast(dialogs: readonly T[], isDialogClosesOnBack: boolean) {\n if (!isDialogClosesOnBack) {\n return;\n }\n\n const [last] = dialogs.slice(-1);\n\n if (!last) {\n return;\n }\n\n if (dialogs.length > 1) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n }\n\n last.$implicit.complete();\n }\n\n onDialog(\n {propertyName}: TransitionEvent,\n popupOpened: boolean,\n isDialogClosesOnBack: boolean,\n ) {\n if (!isDialogClosesOnBack || propertyName !== 'letter-spacing') {\n return;\n }\n\n if (popupOpened) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n } else if (isFakeHistoryState(this.historyRef.state)) {\n this.historyRef.back();\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk/directives';\nimport {TuiFocusTrapModule} from '@taiga-ui/cdk/directives/focus-trap';\nimport {TuiOverscrollModule} from '@taiga-ui/cdk/directives/overscroll';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogHostComponent} from './dialog-host.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiOverscrollModule,\n TuiFocusTrapModule,\n TuiLetModule,\n ],\n declarations: [TuiDialogHostComponent],\n exports: [TuiDialogHostComponent],\n})\nexport class TuiDialogHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.component.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.module.ts","ng://@taiga-ui/cdk/components/portal-host/taiga-ui-cdk-components-portal-host.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n} from '@angular/core';\nimport {TuiPortalHostComponent} from './portal-host.component';\n\nconst NO_HOST = 'Portals cannot be used without TuiPortalHostComponent';\n\n/**\n * Service for displaying portals\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPortalService {\n private host?: TuiPortalHostComponent;\n\n private get safeHost(): TuiPortalHostComponent {\n if (!this.host) {\n throw new Error(NO_HOST);\n }\n\n return this.host;\n }\n\n attach(host: TuiPortalHostComponent) {\n this.host = host;\n }\n\n add<C>(componentFactory: ComponentFactory<C>, injector: Injector): ComponentRef<C> {\n return this.safeHost.addComponentChild(componentFactory, injector);\n }\n\n remove<C>({hostView}: ComponentRef<C>) {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>) {\n viewRef.destroy();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {TuiPortalService} from './portal.service';\n\nconst BLANK_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n selector: 'tui-portal-host',\n templateUrl: './portal-host.template.html',\n styleUrls: ['./portal-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPortalHostComponent {\n @ViewChild('positionFixedOffset')\n private readonly positionFixedOffsetRef?: ElementRef<HTMLDivElement>;\n\n constructor(\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(\n componentFactory: ComponentFactory<C>,\n injector: Injector,\n ): ComponentRef<C> {\n return this.viewContainerRef.createComponent<C>(\n componentFactory,\n undefined,\n Injector.create({\n parent: injector,\n providers: [\n {\n provide: TuiPortalHostComponent,\n useValue: this,\n },\n ],\n }),\n );\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n\n fixedPositionOffset(): ClientRect {\n return this.positionFixedOffsetRef\n ? this.positionFixedOffsetRef.nativeElement.getBoundingClientRect()\n : BLANK_CLIENT_RECT;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiPortalHostComponent} from './portal-host.component';\n\n@NgModule({\n declarations: [TuiPortalHostComponent],\n exports: [TuiPortalHostComponent],\n})\nexport class TuiPortalHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.component.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.module.ts","ng://@taiga-ui/cdk/components/portal-host/taiga-ui-cdk-components-portal-host.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiPortalHostComponent} from './portal-host.component';\n\nconst NO_HOST = 'Portals cannot be used without TuiPortalHostComponent';\n\n/**\n * Service for displaying portals\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPortalService {\n private host?: TuiPortalHostComponent;\n\n private get safeHost(): TuiPortalHostComponent {\n if (!this.host) {\n throw new Error(NO_HOST);\n }\n\n return this.host;\n }\n\n attach(host: TuiPortalHostComponent) {\n this.host = host;\n }\n\n add<C>(componentFactory: ComponentFactory<C>, injector: Injector): ComponentRef<C> {\n return this.safeHost.addComponentChild(componentFactory, injector);\n }\n\n remove<C>({hostView}: ComponentRef<C>) {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>) {\n viewRef.destroy();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {TuiPortalService} from './portal.service';\n\nconst BLANK_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n selector: 'tui-portal-host',\n templateUrl: './portal-host.template.html',\n styleUrls: ['./portal-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPortalHostComponent {\n @ViewChild('positionFixedOffset')\n private readonly positionFixedOffsetRef?: ElementRef<HTMLDivElement>;\n\n constructor(\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(\n componentFactory: ComponentFactory<C>,\n injector: Injector,\n ): ComponentRef<C> {\n return this.viewContainerRef.createComponent<C>(\n componentFactory,\n undefined,\n Injector.create({\n parent: injector,\n providers: [\n {\n provide: TuiPortalHostComponent,\n useValue: this,\n },\n ],\n }),\n );\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n\n fixedPositionOffset(): ClientRect {\n return this.positionFixedOffsetRef\n ? this.positionFixedOffsetRef.nativeElement.getBoundingClientRect()\n : BLANK_CLIENT_RECT;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiPortalHostComponent} from './portal-host.component';\n\n@NgModule({\n declarations: [TuiPortalHostComponent],\n exports: [TuiPortalHostComponent],\n})\nexport class TuiPortalHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAWA,IAAM,OAAO,GAAG,uDAAuD,CAAC;AAExE;;;;IAMA;KA8BC;IA3BG,sBAAY,sCAAQ;aAApB;YACI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;aAC5B;YAED,OAAO,IAAI,CAAC,IAAI,CAAC;SACpB;;;OAAA;IAED,iCAAM,GAAN,UAAO,IAA4B;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAED,8BAAG,GAAH,UAAO,gBAAqC,EAAE,QAAkB;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;KACtE;IAED,iCAAM,GAAN,UAAU,EAA2B;YAA1B,sBAAQ;QACf,QAAQ,CAAC,OAAO,EAAE,CAAC;KACtB;IAED,sCAAW,GAAX,UAAe,WAA2B,EAAE,OAAW;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,yCAAc,GAAd,UAAkB,OAA2B;QACzC,OAAO,CAAC,OAAO,EAAE,CAAC;KACrB;;IA7BQ,gBAAgB;QAH5B,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;OACW,gBAAgB,CA8B5B;2BAjDD;CAmBA;;ACHA,IAAM,iBAAiB,GAAe;IAClC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;CACX,CAAC;AAEF;;;;IAaI,gCAEqB,gBAAkC,EAElC,UAAmC,EAC1B,aAA+B;QAHxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAElC,eAAU,GAAV,UAAU,CAAyB;QAGpD,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC9B;+BAZQ,sBAAsB;IAc/B,sBAAI,8CAAU;aAAd;YACI,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;SAChE;;;OAAA;IAED,kDAAiB,GAAjB,UACI,gBAAqC,EACrC,QAAkB;QAElB,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACxC,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,MAAM,CAAC;YACZ,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,wBAAsB;oBAC/B,QAAQ,EAAE,IAAI;iBACjB;aACJ;SACJ,CAAC,CACL,CAAC;KACL;IAED,iDAAgB,GAAhB,UAAoB,WAA2B,EAAE,OAAW;QACxD,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KACzE;IAED,oDAAmB,GAAnB;QACI,OAAO,IAAI,CAAC,sBAAsB;cAC5B,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,qBAAqB,EAAE;cACjE,iBAAiB,CAAC;KAC3B;;;gBAvCsC,gBAAgB,uBADlD,MAAM,SAAC,gBAAgB;gBAGK,UAAU,uBADtC,MAAM,SAAC,UAAU;gBAEuB,gBAAgB,uBAAxD,MAAM,SAAC,gBAAgB;;IAP5B;QADC,SAAS,CAAC,qBAAqB,CAAC;0EACoC;IAF5D,sBAAsB;QANlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,yGAA0C;YAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;QAMO,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAExB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAElB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;OATpB,sBAAsB,CA8ClC;IAAD,6BAAC;CA9CD;;;IC1BA;KAAmC;IAAtB,mBAAmB;QAJ/B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACRA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = () => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = () => true;\n","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: Function = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<any> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n) => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n) => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger('tuiParentAnimation', [\n transition(':enter', [\n style({overflow: 'hidden'}),\n query('@*', [animateChild()], {optional: true}),\n ]),\n transition(':leave', [\n style({overflow: 'hidden'}),\n query('@*', [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}.\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200b';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;IAGa,oBAAoB,GAAG,cAAM,OAAA,KAAK;;ACH/C;;;IAGa,mBAAmB,GAAG,cAAM,OAAA,IAAI;;ICHhC,2BAA2B,GAAG;;ACG3C;;;;;IAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;IACnC,WAAW,GAAO,GAAG;IACrB,cAAc,GAAa,gBAAS;AACjD;IACa,eAAe,GAAgB,cAAM,OAAA,IAAI;;ACVtD;;;IAGa,qBAAqB,GAA0B,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC;;
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = () => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = () => true;\n","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: Function = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<any> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n) => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n) => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger('tuiParentAnimation', [\n transition(':enter', [\n style({overflow: 'hidden'}),\n query('@*', [animateChild()], {optional: true}),\n ]),\n transition(':leave', [\n style({overflow: 'hidden'}),\n query('@*', [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}.\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200b';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;IAGa,oBAAoB,GAAG,cAAM,OAAA,KAAK;;ACH/C;;;IAGa,mBAAmB,GAAG,cAAM,OAAA,IAAI;;ICHhC,2BAA2B,GAAG;;ACG3C;;;;;IAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;IACnC,WAAW,GAAO,GAAG;IACrB,cAAc,GAAa,gBAAS;AACjD;IACa,eAAe,GAAgB,cAAM,OAAA,IAAI;;ACVtD;;;IAGa,qBAAqB,GAA0B,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC;;ACDhF;;;;;;IAMa,mBAAmB,GAAG,UAC/B,IAAO,EACP,MAAc,EACd,SAAwD;IAAxD,0BAAA,EAAA,iCAAwD;IACvD,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAA5D,EAA6D;AAElE;;;;;;IAMa,kBAAkB,GAAG,UAC9B,IAAO,EACP,MAAc,EACd,SAAwD;IAAxD,0BAAA,EAAA,iCAAwD;IACvD,OAAA,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;AAAtD,EAAuD;AAE5D;;;;;;;IAOa,4BAA4B,GAAgC,UAAC,KAAK,EAAE,KAAK;IAClF,OAAA,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;AAA1C,EAA2C;AAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1F;;ICtCa,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,QAAQ,EAAE;QACjB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAClD,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;QACjB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAClD,CAAC;CACL;;ICXY,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;IACa,aAAa,IAAgB,UAAC,IAAU;IACjD,OAAA,iBAAiB,IAAI,IAAI;UACnB,UAAU,CAAC,aAAa;UACxB,UAAU,CAAC,aAAa;AAF9B,CAE8B;;ACLlC;;;IAGa,mBAAmB,GAAG,SAAS;AAE5C;;;IAGa,YAAY,GAAG,SAAS;AAErC;;;IAGa,WAAW,GAAG,SAAS;AAEpC;;;IAGa,aAAa,GAAG,SAAS;AAEtC;;;IAGa,kBAAkB,GAAG,SAAS;AAE3C;;;IAGa,qBAAqB,GAAG;;AC5BrC;;;;;;"}
|