@taiga-ui/kit 2.42.0 → 2.43.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/abstract/slider/slider.d.ts +3 -3
- package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-kit-abstract.umd.js +1 -0
- package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-avatar.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -10
- package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +65 -45
- package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.js +8 -7
- package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-time.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-line-clamp.umd.js +7 -94
- package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio-block.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio.umd.js +4 -2
- package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-range.umd.js +67 -13
- package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-range.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-select.umd.js +1 -7
- package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-slider.umd.js +49 -48
- package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
- package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -0
- package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tabs.umd.js +6 -4
- package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.min.js +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-enums.umd.js +2 -2
- package/bundles/taiga-ui-kit-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-enums.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-utils-math.umd.js +253 -4
- package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-utils-math.umd.min.js +15 -1
- package/bundles/taiga-ui-kit-utils-math.umd.min.js.map +1 -1
- package/bundles/taiga-ui-kit-utils.umd.js +12 -4
- package/bundles/taiga-ui-kit-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-utils.umd.min.js +1 -1
- package/components/accordion/accordion-item/accordion-item.component.d.ts +2 -2
- package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
- package/components/combo-box/combo-box.component.d.ts +1 -2
- package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
- package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +5 -4
- package/components/data-list-wrapper/data-list-wrapper.component.d.ts +3 -13
- package/components/data-list-wrapper/data-list-wrapper.d.ts +15 -0
- package/components/data-list-wrapper/index.d.ts +1 -0
- package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
- package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
- package/components/input-file/file/file.component.d.ts +2 -2
- package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
- package/components/input-phone/input-phone.component.d.ts +2 -2
- package/components/input-range/input-range.component.d.ts +1 -1
- package/components/input-tag/input-tag.component.d.ts +3 -6
- package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
- package/components/input-time/input-time.component.d.ts +2 -2
- package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
- package/components/line-clamp/index.d.ts +0 -1
- package/components/line-clamp/line-clamp.component.d.ts +0 -1
- package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
- package/components/multi-select/multi-select.component.d.ts +2 -2
- package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
- package/components/radio/radio.component.d.ts +2 -2
- package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
- package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
- package/components/range/range.component.d.ts +11 -2
- package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
- package/components/select/select.component.d.ts +0 -1
- package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
- package/components/slider/slider-readonly.directive.d.ts +4 -1
- package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
- package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
- package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +2 -2
- package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
- package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
- package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
- package/directives/dropdown-selection/dropdown-selection.directive.d.ts +1 -1
- package/enums/dropdown-position.d.ts +2 -1
- package/enums/step-state.d.ts +2 -1
- package/enums/taiga-ui-kit-enums.metadata.json +1 -1
- package/esm2015/abstract/slider/slider.js +3 -2
- package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
- package/esm2015/components/avatar/avatar.component.js +2 -2
- package/esm2015/components/combo-box/combo-box.component.js +3 -12
- package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
- package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +7 -40
- package/esm2015/components/data-list-wrapper/data-list-wrapper.js +51 -0
- package/esm2015/components/data-list-wrapper/index.js +2 -1
- package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
- package/esm2015/components/input-file/file/file.component.js +1 -1
- package/esm2015/components/input-files/input-files.component.js +1 -1
- package/esm2015/components/input-month/input-month.component.js +2 -2
- package/esm2015/components/input-phone/input-phone.component.js +1 -1
- package/esm2015/components/input-range/input-range.component.js +1 -1
- package/esm2015/components/input-tag/input-tag.component.js +9 -8
- package/esm2015/components/input-time/input-time.component.js +2 -2
- package/esm2015/components/line-clamp/index.js +1 -2
- package/esm2015/components/line-clamp/line-clamp.component.js +3 -6
- package/esm2015/components/line-clamp/line-clamp.module.js +2 -3
- package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
- package/esm2015/components/multi-select/multi-select.component.js +2 -2
- package/esm2015/components/radio/radio.component.js +5 -3
- package/esm2015/components/radio-block/radio-block.component.js +2 -2
- package/esm2015/components/radio-labeled/radio-labeled.component.js +2 -2
- package/esm2015/components/range/range.component.js +70 -13
- package/esm2015/components/select/select.component.js +3 -9
- package/esm2015/components/slider/slider-key-steps.directive.js +9 -28
- package/esm2015/components/slider/slider-readonly.directive.js +38 -9
- package/esm2015/components/stepper/stepper.component.js +3 -2
- package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
- package/esm2015/components/text-area/text-area.component.js +3 -3
- package/esm2015/components/tree/components/tree/tree.component.js +2 -2
- package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
- package/esm2015/enums/dropdown-position.js +2 -2
- package/esm2015/enums/step-state.js +2 -2
- package/esm2015/utils/index.js +2 -1
- package/esm2015/utils/math/index.js +2 -1
- package/esm2015/utils/math/key-steps.js +23 -0
- package/esm5/abstract/slider/slider.js +3 -2
- package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
- package/esm5/components/avatar/avatar.component.js +2 -2
- package/esm5/components/combo-box/combo-box.component.js +3 -12
- package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
- package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +12 -55
- package/esm5/components/data-list-wrapper/data-list-wrapper.js +64 -0
- package/esm5/components/data-list-wrapper/index.js +2 -1
- package/esm5/components/input-date-time/input-date-time.component.js +2 -2
- package/esm5/components/input-file/file/file.component.js +1 -1
- package/esm5/components/input-files/input-files.component.js +1 -1
- package/esm5/components/input-month/input-month.component.js +2 -2
- package/esm5/components/input-phone/input-phone.component.js +1 -1
- package/esm5/components/input-range/input-range.component.js +1 -1
- package/esm5/components/input-tag/input-tag.component.js +9 -8
- package/esm5/components/input-time/input-time.component.js +2 -2
- package/esm5/components/line-clamp/index.js +1 -2
- package/esm5/components/line-clamp/line-clamp.component.js +3 -10
- package/esm5/components/line-clamp/line-clamp.module.js +2 -3
- package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
- package/esm5/components/multi-select/multi-select.component.js +2 -2
- package/esm5/components/radio/radio.component.js +5 -3
- package/esm5/components/radio-block/radio-block.component.js +2 -2
- package/esm5/components/radio-labeled/radio-labeled.component.js +2 -2
- package/esm5/components/range/range.component.js +68 -12
- package/esm5/components/select/select.component.js +3 -9
- package/esm5/components/slider/slider-key-steps.directive.js +11 -43
- package/esm5/components/slider/slider-readonly.directive.js +45 -9
- package/esm5/components/stepper/stepper.component.js +3 -2
- package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
- package/esm5/components/text-area/text-area.component.js +3 -3
- package/esm5/components/tree/components/tree/tree.component.js +2 -2
- package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
- package/esm5/enums/dropdown-position.js +2 -2
- package/esm5/enums/step-state.js +2 -2
- package/esm5/utils/index.js +2 -1
- package/esm5/utils/math/index.js +2 -1
- package/esm5/utils/math/key-steps.js +30 -0
- package/fesm2015/taiga-ui-kit-abstract.js +2 -1
- package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
- package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-combo-box.js +2 -11
- package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +56 -38
- package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-tag.js +8 -7
- package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-time.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-line-clamp.js +9 -91
- package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -2
- package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-radio-block.js +1 -1
- package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-radio-labeled.js +1 -1
- package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-radio.js +4 -2
- package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-range.js +70 -14
- package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-select.js +2 -8
- package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-slider.js +41 -34
- package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-stepper.js +2 -1
- package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tabs.js +7 -5
- package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
- package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tree.js +1 -1
- package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
- package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
- package/fesm2015/taiga-ui-kit-enums.js +2 -2
- package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
- package/fesm2015/taiga-ui-kit-utils-math.js +25 -1
- package/fesm2015/taiga-ui-kit-utils-math.js.map +1 -1
- package/fesm2015/taiga-ui-kit-utils.js +1 -0
- package/fesm2015/taiga-ui-kit-utils.js.map +1 -1
- package/fesm5/taiga-ui-kit-abstract.js +2 -1
- package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-avatar.js +1 -1
- package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-combo-box.js +2 -11
- package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +66 -45
- package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
- package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
- package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-tag.js +8 -7
- package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-input-time.js +1 -1
- package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-line-clamp.js +9 -97
- package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-multi-select.js +2 -2
- package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-radio-block.js +1 -1
- package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-radio-labeled.js +1 -1
- package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-radio.js +4 -2
- package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-range.js +68 -13
- package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-select.js +2 -8
- package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-slider.js +49 -48
- package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-stepper.js +2 -1
- package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-tabs.js +7 -5
- package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
- package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
- package/fesm5/taiga-ui-kit-components-tree.js +1 -1
- package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
- package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
- package/fesm5/taiga-ui-kit-enums.js +2 -2
- package/fesm5/taiga-ui-kit-enums.js.map +1 -1
- package/fesm5/taiga-ui-kit-utils-math.js +32 -1
- package/fesm5/taiga-ui-kit-utils-math.js.map +1 -1
- package/fesm5/taiga-ui-kit-utils.js +1 -0
- package/fesm5/taiga-ui-kit-utils.js.map +1 -1
- package/package.json +4 -4
- package/utils/index.d.ts +1 -0
- package/utils/math/index.d.ts +1 -0
- package/utils/math/key-steps.d.ts +4 -0
- package/utils/math/taiga-ui-kit-utils-math.metadata.json +1 -1
- package/utils/taiga-ui-kit-utils.metadata.json +1 -1
- package/components/line-clamp/line-clamp.directive.d.ts +0 -11
- package/esm2015/components/line-clamp/line-clamp.directive.js +0 -87
- package/esm5/components/line-clamp/line-clamp.directive.js +0 -89
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-dropdown-selection.js","sources":["ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.directive.ts","ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.module.ts","ng://@taiga-ui/kit/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ALWAYS_TRUE_HANDLER,\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n getNativeFocused,\n px,\n TuiActiveZoneDirective,\n TuiBooleanHandler,\n TuiDestroyService,\n TuiParentsScrollService,\n TuiPortalService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n AbstractTuiDropdown,\n TUI_DOCUMENT_OR_SHADOW_ROOT,\n TUI_DROPDOWN_DIRECTIVE,\n TUI_ELEMENT_REF,\n TuiDropdown,\n} from '@taiga-ui/core';\nimport {getWordRange} from '@taiga-ui/kit/utils/dom';\nimport {merge} from 'rxjs';\nimport {map, switchMapTo, takeUntil} from 'rxjs/operators';\n\nconst EMPTY_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n// @dynamic\n@Directive({\n selector: '[tuiDropdownSelection]:not(ng-container)',\n providers: [\n {\n provide: TUI_DROPDOWN_DIRECTIVE,\n useExisting: forwardRef(() => TuiDropdownSelectionDirective),\n },\n TuiParentsScrollService,\n TuiDestroyService,\n ],\n})\nexport class TuiDropdownSelectionDirective\n extends AbstractTuiDropdown\n implements TuiDropdown, OnDestroy\n{\n private visibilityHandler: TuiBooleanHandler<Range> = ALWAYS_TRUE_HANDLER;\n private readonly documentRef: Document;\n private ghost?: HTMLElement;\n private range?: Range;\n\n @Input()\n set tuiDropdownSelection(handler: TuiBooleanHandler<Range> | undefined) {\n if (!handler || !this.range) {\n return;\n }\n\n const inHostAndValid =\n this.elementRef.nativeElement.contains(this.range.commonAncestorContainer) &&\n handler(this.range);\n\n this.visibilityHandler = handler;\n this.toggleDropdownBox(inHostAndValid);\n }\n\n @Input('tuiDropdownSelectionPosition')\n position: 'selection' | 'word' | 'tag' = 'selection';\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(ComponentFactoryResolver)\n componentFactoryResolver: ComponentFactoryResolver,\n @Inject(Injector) injector: Injector,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n @Host() @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(TuiActiveZoneDirective)\n @Optional()\n activeZone: TuiActiveZoneDirective | null,\n @Inject(TUI_DOCUMENT_OR_SHADOW_ROOT)\n @Optional()\n shadowRootRef: Document | null,\n @Inject(TUI_ELEMENT_REF)\n @Optional()\n customElementRef: ElementRef<HTMLElement> | null,\n @Inject(TuiDestroyService)\n destroy$: TuiDestroyService,\n @Inject(TuiParentsScrollService) readonly refresh$: TuiParentsScrollService,\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(ViewContainerRef) private readonly viewContainerRef: ViewContainerRef,\n ) {\n super(\n componentFactoryResolver,\n injector,\n portalService,\n customElementRef || elementRef,\n activeZone,\n );\n this.documentRef = shadowRootRef || documentRef;\n\n // SSR protection\n if (!this.documentRef.createRange) {\n return;\n }\n\n this.range = this.documentRef.createRange();\n\n const {nativeElement} = this.elementRef;\n\n merge(\n typedFromEvent(this.documentRef, 'mouseup'),\n typedFromEvent(nativeElement, 'mousedown').pipe(\n switchMapTo(\n typedFromEvent(nativeElement, 'mousemove').pipe(\n takeUntil(typedFromEvent(this.documentRef, 'mouseup')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'keyup'),\n )\n .pipe(\n map(() => {\n const active = getNativeFocused(this.documentRef);\n const selection = this.documentRef.getSelection();\n\n // TODO: iframe warning\n if (\n (active instanceof HTMLInputElement ||\n active instanceof HTMLTextAreaElement) &&\n nativeElement.contains(active)\n ) {\n return this.veryVerySadInputFix(active);\n }\n\n return selection && selection.rangeCount\n ? selection.getRangeAt(0)\n : this.range;\n }),\n takeUntil(destroy$),\n )\n .subscribe(range => {\n const contained =\n !!range && nativeElement.contains(range.commonAncestorContainer);\n\n this.range = contained ? range : this.range;\n\n const valid =\n contained &&\n (!this.visibilityHandler ||\n !this.range ||\n this.visibilityHandler(this.range));\n\n this.toggleDropdownBox(!!range && (valid || this.inDropdown(range)));\n });\n }\n\n get clientRect(): ClientRect {\n const {defaultView} = this.documentRef;\n const {rangeRect} = this;\n const frameElement = defaultView ? defaultView.frameElement : null;\n\n if (!frameElement) {\n return rangeRect;\n }\n\n const documentRect = frameElement.getBoundingClientRect();\n\n return {\n top: rangeRect.top + documentRect.top,\n left: rangeRect.left + documentRect.left,\n right: rangeRect.left + documentRect.left + rangeRect.width,\n bottom: rangeRect.top + documentRect.top + rangeRect.height,\n width: rangeRect.width,\n height: rangeRect.height,\n };\n }\n\n ngOnDestroy() {\n this.closeDropdownBox();\n\n if (this.ghost) {\n this.renderer.removeChild(\n this.viewContainerRef.element.nativeElement,\n this.ghost,\n );\n }\n }\n\n /**\n * get ClientRect of current Range according to provided position\n */\n private get rangeRect(): ClientRect {\n if (!this.range) {\n return EMPTY_RECT;\n }\n\n switch (this.position) {\n case 'tag': {\n const {commonAncestorContainer} = this.range;\n const element =\n commonAncestorContainer.nodeType === Node.ELEMENT_NODE\n ? commonAncestorContainer\n : commonAncestorContainer.parentNode;\n\n return (element as Element).getBoundingClientRect();\n }\n case 'word':\n return getWordRange(this.range).getBoundingClientRect();\n default:\n return this.range.getBoundingClientRect();\n }\n }\n\n /**\n * Toggle dropdown visibility (has to be in ngZone.run because it could be initiated inside iframe in Editor)\n */\n private toggleDropdownBox(visible: boolean) {\n this.ngZone.run(() => {\n if (visible) {\n this.openDropdownBox();\n } else {\n this.closeDropdownBox();\n }\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Check if Node is inside dropdown\n */\n private boxContains(node: Node): boolean {\n return (\n !!this.dropdownBoxRef &&\n this.dropdownBoxRef.location.nativeElement.contains(node)\n );\n }\n\n /**\n * Check if given range is at least partially inside dropdown\n */\n private inDropdown(range: Range): boolean {\n const {startContainer, endContainer} = range;\n const inDropdown = this.boxContains(range.commonAncestorContainer);\n const hostToDropdown =\n this.boxContains(endContainer) &&\n this.elementRef.nativeElement.contains(startContainer);\n const dropdownToHost =\n this.boxContains(startContainer) &&\n this.elementRef.nativeElement.contains(endContainer);\n\n return inDropdown || hostToDropdown || dropdownToHost;\n }\n\n /**\n * Position invisible DIV and create Range similar to selected range inside input/textarea\n */\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(element)} = this;\n const {top, left, width, height} = element.getBoundingClientRect();\n const {selectionStart, selectionEnd} = element;\n const range = this.documentRef.createRange();\n const hostRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n ghost.style.top = px(top - hostRect.top);\n ghost.style.left = px(left - hostRect.left);\n ghost.style.width = px(width);\n ghost.style.height = px(height);\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + element.value + CHAR_NO_BREAK_SPACE;\n\n range.setStart(ghost.firstChild!, selectionStart || 0);\n range.setEnd(ghost.firstChild!, selectionEnd || 0);\n\n return range;\n }\n\n /**\n * Create an invisible DIV styled exactly like input/textarea element inside directive\n */\n private initGhost(element: HTMLInputElement | HTMLTextAreaElement): HTMLElement {\n const ghost = this.renderer.createElement('div');\n const {nativeElement} = this.viewContainerRef.element;\n const {font, letterSpacing, textTransform, padding} = getComputedStyle(element);\n\n ghost.style.position = 'absolute';\n ghost.style.pointerEvents = 'none';\n ghost.style.opacity = '0';\n ghost.style.whiteSpace = 'pre-wrap';\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.renderer.appendChild(nativeElement, ghost);\n this.ghost = ghost;\n\n return ghost;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiDropdownBoxModule} from '@taiga-ui/core';\n\nimport {TuiDropdownSelectionDirective} from './dropdown-selection.directive';\n\n@NgModule({\n imports: [TuiDropdownBoxModule],\n declarations: [TuiDropdownSelectionDirective],\n exports: [TuiDropdownSelectionDirective],\n})\nexport class TuiDropdownSelectionModule {}\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-kit-directives-dropdown-selection.js","sources":["ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.directive.ts","ng://@taiga-ui/kit/directives/dropdown-selection/dropdown-selection.module.ts","ng://@taiga-ui/kit/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ALWAYS_TRUE_HANDLER,\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n getNativeFocused,\n px,\n TuiActiveZoneDirective,\n TuiBooleanHandler,\n TuiDestroyService,\n TuiParentsScrollService,\n TuiPortalService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n AbstractTuiDropdown,\n TUI_DOCUMENT_OR_SHADOW_ROOT,\n TUI_DROPDOWN_DIRECTIVE,\n TUI_ELEMENT_REF,\n TuiDropdown,\n} from '@taiga-ui/core';\nimport {getWordRange} from '@taiga-ui/kit/utils/dom';\nimport {merge} from 'rxjs';\nimport {map, switchMapTo, takeUntil} from 'rxjs/operators';\n\nconst EMPTY_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n// @dynamic\n@Directive({\n selector: '[tuiDropdownSelection]:not(ng-container)',\n providers: [\n {\n provide: TUI_DROPDOWN_DIRECTIVE,\n useExisting: forwardRef(() => TuiDropdownSelectionDirective),\n },\n TuiParentsScrollService,\n TuiDestroyService,\n ],\n})\nexport class TuiDropdownSelectionDirective\n extends AbstractTuiDropdown\n implements TuiDropdown, OnDestroy\n{\n private visibilityHandler: TuiBooleanHandler<Range> = ALWAYS_TRUE_HANDLER;\n private readonly documentRef: Document;\n private ghost?: HTMLElement;\n private range?: Range;\n\n @Input()\n set tuiDropdownSelection(handler: TuiBooleanHandler<Range> | '') {\n if (!handler || !this.range) {\n return;\n }\n\n const inHostAndValid =\n this.elementRef.nativeElement.contains(this.range.commonAncestorContainer) &&\n handler(this.range);\n\n this.visibilityHandler = handler;\n this.toggleDropdownBox(inHostAndValid);\n }\n\n @Input('tuiDropdownSelectionPosition')\n position: 'selection' | 'word' | 'tag' = 'selection';\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(ComponentFactoryResolver)\n componentFactoryResolver: ComponentFactoryResolver,\n @Inject(Injector) injector: Injector,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n @Host() @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(TuiActiveZoneDirective)\n @Optional()\n activeZone: TuiActiveZoneDirective | null,\n @Inject(TUI_DOCUMENT_OR_SHADOW_ROOT)\n @Optional()\n shadowRootRef: Document | null,\n @Inject(TUI_ELEMENT_REF)\n @Optional()\n customElementRef: ElementRef<HTMLElement> | null,\n @Inject(TuiDestroyService)\n destroy$: TuiDestroyService,\n @Inject(TuiParentsScrollService) readonly refresh$: TuiParentsScrollService,\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(ViewContainerRef) private readonly viewContainerRef: ViewContainerRef,\n ) {\n super(\n componentFactoryResolver,\n injector,\n portalService,\n customElementRef || elementRef,\n activeZone,\n );\n this.documentRef = shadowRootRef || documentRef;\n\n // SSR protection\n if (!this.documentRef.createRange) {\n return;\n }\n\n this.range = this.documentRef.createRange();\n\n const {nativeElement} = this.elementRef;\n\n merge(\n typedFromEvent(this.documentRef, 'mouseup'),\n typedFromEvent(nativeElement, 'mousedown').pipe(\n switchMapTo(\n typedFromEvent(nativeElement, 'mousemove').pipe(\n takeUntil(typedFromEvent(this.documentRef, 'mouseup')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'keyup'),\n )\n .pipe(\n map(() => {\n const active = getNativeFocused(this.documentRef);\n const selection = this.documentRef.getSelection();\n\n // TODO: iframe warning\n if (\n (active instanceof HTMLInputElement ||\n active instanceof HTMLTextAreaElement) &&\n nativeElement.contains(active)\n ) {\n return this.veryVerySadInputFix(active);\n }\n\n return selection && selection.rangeCount\n ? selection.getRangeAt(0)\n : this.range;\n }),\n takeUntil(destroy$),\n )\n .subscribe(range => {\n const contained =\n !!range && nativeElement.contains(range.commonAncestorContainer);\n\n this.range = contained ? range : this.range;\n\n const valid =\n contained &&\n (!this.visibilityHandler ||\n !this.range ||\n this.visibilityHandler(this.range));\n\n this.toggleDropdownBox(!!range && (valid || this.inDropdown(range)));\n });\n }\n\n get clientRect(): ClientRect {\n const {defaultView} = this.documentRef;\n const {rangeRect} = this;\n const frameElement = defaultView ? defaultView.frameElement : null;\n\n if (!frameElement) {\n return rangeRect;\n }\n\n const documentRect = frameElement.getBoundingClientRect();\n\n return {\n top: rangeRect.top + documentRect.top,\n left: rangeRect.left + documentRect.left,\n right: rangeRect.left + documentRect.left + rangeRect.width,\n bottom: rangeRect.top + documentRect.top + rangeRect.height,\n width: rangeRect.width,\n height: rangeRect.height,\n };\n }\n\n ngOnDestroy() {\n this.closeDropdownBox();\n\n if (this.ghost) {\n this.renderer.removeChild(\n this.viewContainerRef.element.nativeElement,\n this.ghost,\n );\n }\n }\n\n /**\n * get ClientRect of current Range according to provided position\n */\n private get rangeRect(): ClientRect {\n if (!this.range) {\n return EMPTY_RECT;\n }\n\n switch (this.position) {\n case 'tag': {\n const {commonAncestorContainer} = this.range;\n const element =\n commonAncestorContainer.nodeType === Node.ELEMENT_NODE\n ? commonAncestorContainer\n : commonAncestorContainer.parentNode;\n\n return (element as Element).getBoundingClientRect();\n }\n case 'word':\n return getWordRange(this.range).getBoundingClientRect();\n default:\n return this.range.getBoundingClientRect();\n }\n }\n\n /**\n * Toggle dropdown visibility (has to be in ngZone.run because it could be initiated inside iframe in Editor)\n */\n private toggleDropdownBox(visible: boolean) {\n this.ngZone.run(() => {\n if (visible) {\n this.openDropdownBox();\n } else {\n this.closeDropdownBox();\n }\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Check if Node is inside dropdown\n */\n private boxContains(node: Node): boolean {\n return (\n !!this.dropdownBoxRef &&\n this.dropdownBoxRef.location.nativeElement.contains(node)\n );\n }\n\n /**\n * Check if given range is at least partially inside dropdown\n */\n private inDropdown(range: Range): boolean {\n const {startContainer, endContainer} = range;\n const inDropdown = this.boxContains(range.commonAncestorContainer);\n const hostToDropdown =\n this.boxContains(endContainer) &&\n this.elementRef.nativeElement.contains(startContainer);\n const dropdownToHost =\n this.boxContains(startContainer) &&\n this.elementRef.nativeElement.contains(endContainer);\n\n return inDropdown || hostToDropdown || dropdownToHost;\n }\n\n /**\n * Position invisible DIV and create Range similar to selected range inside input/textarea\n */\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(element)} = this;\n const {top, left, width, height} = element.getBoundingClientRect();\n const {selectionStart, selectionEnd} = element;\n const range = this.documentRef.createRange();\n const hostRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n ghost.style.top = px(top - hostRect.top);\n ghost.style.left = px(left - hostRect.left);\n ghost.style.width = px(width);\n ghost.style.height = px(height);\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + element.value + CHAR_NO_BREAK_SPACE;\n\n range.setStart(ghost.firstChild!, selectionStart || 0);\n range.setEnd(ghost.firstChild!, selectionEnd || 0);\n\n return range;\n }\n\n /**\n * Create an invisible DIV styled exactly like input/textarea element inside directive\n */\n private initGhost(element: HTMLInputElement | HTMLTextAreaElement): HTMLElement {\n const ghost = this.renderer.createElement('div');\n const {nativeElement} = this.viewContainerRef.element;\n const {font, letterSpacing, textTransform, padding} = getComputedStyle(element);\n\n ghost.style.position = 'absolute';\n ghost.style.pointerEvents = 'none';\n ghost.style.opacity = '0';\n ghost.style.whiteSpace = 'pre-wrap';\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.renderer.appendChild(nativeElement, ghost);\n this.ghost = ghost;\n\n return ghost;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiDropdownBoxModule} from '@taiga-ui/core';\n\nimport {TuiDropdownSelectionDirective} from './dropdown-selection.directive';\n\n@NgModule({\n imports: [TuiDropdownBoxModule],\n declarations: [TuiDropdownSelectionDirective],\n exports: [TuiDropdownSelectionDirective],\n})\nexport class TuiDropdownSelectionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var TuiBorders;
|
|
|
8
8
|
})(TuiBorders || (TuiBorders = {}));
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* @deprecated use
|
|
11
|
+
* @deprecated use {@link TuiDropdownPositionT}
|
|
12
12
|
*/
|
|
13
13
|
var TuiDropdownPosition;
|
|
14
14
|
(function (TuiDropdownPosition) {
|
|
@@ -57,7 +57,7 @@ var TuiStatus;
|
|
|
57
57
|
})(TuiStatus || (TuiStatus = {}));
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
|
-
* @deprecated use
|
|
60
|
+
* @deprecated use {@link TuiStepStateT}
|
|
61
61
|
*/
|
|
62
62
|
var TuiStepState;
|
|
63
63
|
(function (TuiStepState) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-enums.js","sources":["ng://@taiga-ui/kit/enums/borders.ts","ng://@taiga-ui/kit/enums/dropdown-position.ts","ng://@taiga-ui/kit/enums/file-state.ts","ng://@taiga-ui/kit/enums/marker-icon-mode.ts","ng://@taiga-ui/kit/enums/status.ts","ng://@taiga-ui/kit/enums/step-state.ts","ng://@taiga-ui/kit/enums/text-align.ts","ng://@taiga-ui/kit/enums/taiga-ui-kit-enums.ts"],"sourcesContent":["/**\n * @deprecated use string values\n */\nexport const enum TuiBorders {\n All = 'all',\n TopBottom = 'top-bottom',\n}\n","/**\n * @deprecated use
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-enums.js","sources":["ng://@taiga-ui/kit/enums/borders.ts","ng://@taiga-ui/kit/enums/dropdown-position.ts","ng://@taiga-ui/kit/enums/file-state.ts","ng://@taiga-ui/kit/enums/marker-icon-mode.ts","ng://@taiga-ui/kit/enums/status.ts","ng://@taiga-ui/kit/enums/step-state.ts","ng://@taiga-ui/kit/enums/text-align.ts","ng://@taiga-ui/kit/enums/taiga-ui-kit-enums.ts"],"sourcesContent":["/**\n * @deprecated use string values\n */\nexport const enum TuiBorders {\n All = 'all',\n TopBottom = 'top-bottom',\n}\n","/**\n * @deprecated use {@link TuiDropdownPositionT}\n */\nexport const enum TuiDropdownPosition {\n Selection = 'selection',\n Word = 'word',\n Tag = 'tag',\n}\n\nexport type TuiDropdownPositionT = 'selection' | 'word' | 'tag';\n","/**\n * @internal\n */\nexport const enum TuiFileState {\n Error = 'error',\n Deleted = 'deleted',\n Loading = 'loading',\n Normal = 'normal',\n}\n\nexport type TuiFileStateT = 'error' | 'deleted' | 'loading' | 'normal';\n","/**\n * @deprecated use join type {@link TuiMarkerIconModeT}\n */\nexport const enum TuiMarkerIconMode {\n Link = 'link',\n Primary = 'primary',\n Warning = 'warning',\n White = 'white',\n Secondary = 'secondary',\n Success = 'success',\n Error = 'error',\n OnDark = 'onDark',\n}\n","/**\n * @deprecated use join type {@link TuiStatusT}\n */\nexport const enum TuiStatus {\n Default = 'default',\n Primary = 'primary',\n Custom = 'custom',\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n}\n","/**\n * @deprecated use {@link TuiStepStateT}\n */\nexport const enum TuiStepState {\n Normal = 'normal',\n Error = 'error',\n Pass = 'pass',\n}\n\nexport type TuiStepStateT = 'normal' | 'error' | 'pass';\n","/**\n * @deprecated use string values\n */\nexport const enum TuiTextAlign {\n Left = 'left',\n Center = 'center',\n Right = 'right',\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;;IAGkB;AAAlB,WAAkB,UAAU;IACxB,yBAAW,CAAA;IACX,sCAAwB,CAAA;AAC5B,CAAC,EAHiB,UAAU,KAAV,UAAU;;ACH5B;;;IAGkB;AAAlB,WAAkB,mBAAmB;IACjC,8CAAuB,CAAA;IACvB,oCAAa,CAAA;IACb,kCAAW,CAAA;AACf,CAAC,EAJiB,mBAAmB,KAAnB,mBAAmB;;ACHrC;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;AACrB,CAAC,EALiB,YAAY,KAAZ,YAAY;;ACH9B;;;IAGkB;AAAlB,WAAkB,iBAAiB;IAC/B,kCAAa,CAAA;IACb,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,oCAAe,CAAA;IACf,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,oCAAe,CAAA;IACf,sCAAiB,CAAA;AACrB,CAAC,EATiB,iBAAiB,KAAjB,iBAAiB;;ACHnC;;;IAGkB;AAAlB,WAAkB,SAAS;IACvB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACvB,CAAC,EAPiB,SAAS,KAAT,SAAS;;ACH3B;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,6BAAa,CAAA;AACjB,CAAC,EAJiB,YAAY,KAAZ,YAAY;;ACH9B;;;IAGkB;AAAlB,WAAkB,YAAY;IAC1B,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AACnB,CAAC,EAJiB,YAAY,KAAZ,YAAY;;ACH9B;;;;;;"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { __read } from 'tslib';
|
|
2
|
+
import { round } from '@taiga-ui/cdk';
|
|
3
|
+
import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* @internal
|
|
3
7
|
*/
|
|
@@ -10,9 +14,36 @@ function horizontalDirectionToNumber(direction) {
|
|
|
10
14
|
}
|
|
11
15
|
}
|
|
12
16
|
|
|
17
|
+
function tuiFindKeyStepsBoundariesByFn(keySteps, fn) {
|
|
18
|
+
var keyStepUpperIndex = keySteps.findIndex(function (keyStep, i) { return i && fn(keyStep); });
|
|
19
|
+
var lowerStep = keySteps[keyStepUpperIndex - 1];
|
|
20
|
+
var upperStep = keySteps[keyStepUpperIndex];
|
|
21
|
+
return [lowerStep, upperStep];
|
|
22
|
+
}
|
|
23
|
+
function tuiPercentageToKeyStepValue(valuePercentage, keySteps) {
|
|
24
|
+
var _a = __read(tuiFindKeyStepsBoundariesByFn(keySteps, function (_a) {
|
|
25
|
+
var _b = __read(_a, 2), keyStepPercentage = _b[0], _ = _b[1];
|
|
26
|
+
return valuePercentage <= keyStepPercentage;
|
|
27
|
+
}), 2), _b = __read(_a[0], 2), lowerStepPercent = _b[0], lowerStepValue = _b[1], _c = __read(_a[1], 2), upperStepPercent = _c[0], upperStepValue = _c[1];
|
|
28
|
+
var ratio = (valuePercentage - lowerStepPercent) / (upperStepPercent - lowerStepPercent);
|
|
29
|
+
var controlValue = (upperStepValue - lowerStepValue) * ratio + lowerStepValue;
|
|
30
|
+
return round(controlValue, TUI_FLOATING_PRECISION);
|
|
31
|
+
}
|
|
32
|
+
function tuiKeyStepValueToPercentage(value, keySteps) {
|
|
33
|
+
var _a = __read(tuiFindKeyStepsBoundariesByFn(keySteps, function (_a) {
|
|
34
|
+
var _b = __read(_a, 2), _ = _b[0], keyStepValue = _b[1];
|
|
35
|
+
return value <= keyStepValue;
|
|
36
|
+
}), 2), _b = __read(_a[0], 2), lowerStepPercent = _b[0], lowerStepValue = _b[1], _c = __read(_a[1], 2), upperStepPercent = _c[0], upperStepValue = _c[1];
|
|
37
|
+
var ratio = (value - lowerStepValue) / (upperStepValue - lowerStepValue);
|
|
38
|
+
return (upperStepPercent - lowerStepPercent) * ratio + lowerStepPercent;
|
|
39
|
+
}
|
|
40
|
+
function tuiCheckKeyStepsHaveMinMaxPercents(steps) {
|
|
41
|
+
return !steps.length || (steps[0][0] === 0 && steps[steps.length - 1][0] === 100);
|
|
42
|
+
}
|
|
43
|
+
|
|
13
44
|
/**
|
|
14
45
|
* Generated bundle index. Do not edit.
|
|
15
46
|
*/
|
|
16
47
|
|
|
17
|
-
export { horizontalDirectionToNumber };
|
|
48
|
+
export { horizontalDirectionToNumber, tuiCheckKeyStepsHaveMinMaxPercents, tuiKeyStepValueToPercentage, tuiPercentageToKeyStepValue };
|
|
18
49
|
//# sourceMappingURL=taiga-ui-kit-utils-math.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-utils-math.js","sources":["ng://@taiga-ui/kit/utils/math/horizontal-direction-to-number.ts","ng://@taiga-ui/kit/utils/math/taiga-ui-kit-utils-math.ts"],"sourcesContent":["import {TuiHorizontalDirection} from '@taiga-ui/core';\n\n/**\n * @internal\n */\nexport function horizontalDirectionToNumber(direction: TuiHorizontalDirection): -1 | 1 {\n switch (direction) {\n case 'left':\n return -1;\n case 'right':\n return 1;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAEA;;;SAGgB,2BAA2B,CAAC,SAAiC;IACzE,QAAQ,SAAS;QACb,KAAK,MAAM;YACP,OAAO,CAAC,CAAC,CAAC;QACd,KAAK,OAAO;YACR,OAAO,CAAC,CAAC;KAChB;AACL;;
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-utils-math.js","sources":["ng://@taiga-ui/kit/utils/math/horizontal-direction-to-number.ts","ng://@taiga-ui/kit/utils/math/key-steps.ts","ng://@taiga-ui/kit/utils/math/taiga-ui-kit-utils-math.ts"],"sourcesContent":["import {TuiHorizontalDirection} from '@taiga-ui/core';\n\n/**\n * @internal\n */\nexport function horizontalDirectionToNumber(direction: TuiHorizontalDirection): -1 | 1 {\n switch (direction) {\n case 'left':\n return -1;\n case 'right':\n return 1;\n }\n}\n","import {round} from '@taiga-ui/cdk';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\n\nfunction tuiFindKeyStepsBoundariesByFn(\n keySteps: TuiKeySteps,\n fn: ([keyStepPercent, keyStepValue]: [number, number]) => boolean,\n): [[number, number], [number, number]] {\n const keyStepUpperIndex = keySteps.findIndex((keyStep, i) => i && fn(keyStep));\n const lowerStep = keySteps[keyStepUpperIndex - 1];\n const upperStep = keySteps[keyStepUpperIndex];\n\n return [lowerStep, upperStep];\n}\n\nexport function tuiPercentageToKeyStepValue(\n valuePercentage: number,\n keySteps: TuiKeySteps,\n): number {\n const [[lowerStepPercent, lowerStepValue], [upperStepPercent, upperStepValue]] =\n tuiFindKeyStepsBoundariesByFn(\n keySteps,\n ([keyStepPercentage, _]) => valuePercentage <= keyStepPercentage,\n );\n const ratio =\n (valuePercentage - lowerStepPercent) / (upperStepPercent - lowerStepPercent);\n const controlValue = (upperStepValue - lowerStepValue) * ratio + lowerStepValue;\n\n return round(controlValue, TUI_FLOATING_PRECISION);\n}\n\nexport function tuiKeyStepValueToPercentage(\n value: number,\n keySteps: TuiKeySteps,\n): number {\n const [[lowerStepPercent, lowerStepValue], [upperStepPercent, upperStepValue]] =\n tuiFindKeyStepsBoundariesByFn(\n keySteps,\n ([_, keyStepValue]) => value <= keyStepValue,\n );\n const ratio = (value - lowerStepValue) / (upperStepValue - lowerStepValue);\n\n return (upperStepPercent - lowerStepPercent) * ratio + lowerStepPercent;\n}\n\nexport function tuiCheckKeyStepsHaveMinMaxPercents(steps: TuiKeySteps): boolean {\n return !steps.length || (steps[0][0] === 0 && steps[steps.length - 1][0] === 100);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEA;;;SAGgB,2BAA2B,CAAC,SAAiC;IACzE,QAAQ,SAAS;QACb,KAAK,MAAM;YACP,OAAO,CAAC,CAAC,CAAC;QACd,KAAK,OAAO;YACR,OAAO,CAAC,CAAC;KAChB;AACL;;ACRA,SAAS,6BAA6B,CAClC,QAAqB,EACrB,EAAiE;IAEjE,IAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAC,OAAO,EAAE,CAAC,IAAK,OAAA,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAA,CAAC,CAAC;IAC/E,IAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;IAClD,IAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAE9C,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClC,CAAC;SAEe,2BAA2B,CACvC,eAAuB,EACvB,QAAqB;IAEf,IAAA;;;UAID,EAJE,qBAAkC,EAAjC,wBAAgB,EAAE,sBAAc,EAAG,qBAAkC,EAAjC,wBAAgB,EAAE,sBAIzD,CAAC;IACN,IAAM,KAAK,GACP,CAAC,eAAe,GAAG,gBAAgB,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IACjF,IAAM,YAAY,GAAG,CAAC,cAAc,GAAG,cAAc,IAAI,KAAK,GAAG,cAAc,CAAC;IAEhF,OAAO,KAAK,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AACvD,CAAC;SAEe,2BAA2B,CACvC,KAAa,EACb,QAAqB;IAEf,IAAA;;;UAID,EAJE,qBAAkC,EAAjC,wBAAgB,EAAE,sBAAc,EAAG,qBAAkC,EAAjC,wBAAgB,EAAE,sBAIzD,CAAC;IACN,IAAM,KAAK,GAAG,CAAC,KAAK,GAAG,cAAc,KAAK,cAAc,GAAG,cAAc,CAAC,CAAC;IAE3E,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,KAAK,GAAG,gBAAgB,CAAC;AAC5E,CAAC;SAEe,kCAAkC,CAAC,KAAkB;IACjE,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AACtF;;AC/CA;;;;;;"}
|
|
@@ -2,6 +2,7 @@ export * from '@taiga-ui/kit/utils/dom';
|
|
|
2
2
|
export * from '@taiga-ui/kit/utils/files';
|
|
3
3
|
export * from '@taiga-ui/kit/utils/format';
|
|
4
4
|
export * from '@taiga-ui/kit/utils/mask';
|
|
5
|
+
export * from '@taiga-ui/kit/utils/math';
|
|
5
6
|
export * from '@taiga-ui/kit/utils/miscellaneous';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-utils.js","sources":["ng://@taiga-ui/kit/utils/taiga-ui-kit-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-utils.js","sources":["ng://@taiga-ui/kit/utils/taiga-ui-kit-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/kit",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.43.0",
|
|
4
4
|
"description": "Taiga UI Angular main components kit",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"@angular/router": ">=9.0.0",
|
|
25
25
|
"@ng-web-apis/common": ">=1.12.1 < 2",
|
|
26
26
|
"@ng-web-apis/mutation-observer": ">=1.1.0",
|
|
27
|
-
"@taiga-ui/cdk": ">=2.
|
|
28
|
-
"@taiga-ui/core": ">=2.
|
|
29
|
-
"@taiga-ui/i18n": ">=2.
|
|
27
|
+
"@taiga-ui/cdk": ">=2.43.0",
|
|
28
|
+
"@taiga-ui/core": ">=2.43.0",
|
|
29
|
+
"@taiga-ui/i18n": ">=2.43.0",
|
|
30
30
|
"@tinkoff/ng-polymorpheus": ">=3.1.12 < 4",
|
|
31
31
|
"rxjs": ">=6.0.0"
|
|
32
32
|
},
|
package/utils/index.d.ts
CHANGED
package/utils/math/index.d.ts
CHANGED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TuiKeySteps } from '@taiga-ui/kit/types';
|
|
2
|
+
export declare function tuiPercentageToKeyStepValue(valuePercentage: number, keySteps: TuiKeySteps): number;
|
|
3
|
+
export declare function tuiKeyStepValueToPercentage(value: number, keySteps: TuiKeySteps): number;
|
|
4
|
+
export declare function tuiCheckKeyStepsHaveMinMaxPercents(steps: TuiKeySteps): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"horizontalDirectionToNumber":{"__symbolic":"function"}},"origins":{"horizontalDirectionToNumber":"./horizontal-direction-to-number"},"importAs":"@taiga-ui/kit/utils/math"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"horizontalDirectionToNumber":{"__symbolic":"function"},"tuiPercentageToKeyStepValue":{"__symbolic":"function"},"tuiKeyStepValueToPercentage":{"__symbolic":"function"},"tuiCheckKeyStepsHaveMinMaxPercents":{"__symbolic":"function","parameters":["steps"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"steps"},"member":"length"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"index","expression":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"steps"},"index":0},"index":0},"right":0},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"index","expression":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"steps"},"index":{"__symbolic":"binop","operator":"-","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"steps"},"member":"length"},"right":1}},"index":0},"right":100}}}}},"origins":{"horizontalDirectionToNumber":"./horizontal-direction-to-number","tuiPercentageToKeyStepValue":"./key-steps","tuiKeyStepValueToPercentage":"./key-steps","tuiCheckKeyStepsHaveMinMaxPercents":"./key-steps"},"importAs":"@taiga-ui/kit/utils/math"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"exports":[{"from":"@taiga-ui/kit/utils/dom"},{"from":"@taiga-ui/kit/utils/files"},{"from":"@taiga-ui/kit/utils/format"},{"from":"@taiga-ui/kit/utils/mask"},{"from":"@taiga-ui/kit/utils/miscellaneous"}],"metadata":{},"origins":{},"importAs":"@taiga-ui/kit/utils"}
|
|
1
|
+
{"__symbolic":"module","version":4,"exports":[{"from":"@taiga-ui/kit/utils/dom"},{"from":"@taiga-ui/kit/utils/files"},{"from":"@taiga-ui/kit/utils/format"},{"from":"@taiga-ui/kit/utils/mask"},{"from":"@taiga-ui/kit/utils/math"},{"from":"@taiga-ui/kit/utils/miscellaneous"}],"metadata":{},"origins":{},"importAs":"@taiga-ui/kit/utils"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ElementRef, NgZone, Renderer2, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { TuiDestroyService } from '@taiga-ui/cdk';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { TuiLineClampComponent } from './line-clamp.component';
|
|
5
|
-
export declare class TuiLineClampDirective {
|
|
6
|
-
constructor(component: TuiLineClampComponent, viewContainerRef: ViewContainerRef, documentRef: Document, renderer: Renderer2, ngZone: NgZone, { nativeElement }: ElementRef<HTMLElement>, destroy$: TuiDestroyService, animationFrame$: Observable<number>,
|
|
7
|
-
/**
|
|
8
|
-
* TODO: remove "any" in new TS version; https://github.com/ng-web-apis/common/pull/6
|
|
9
|
-
*/
|
|
10
|
-
cssRef: any);
|
|
11
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { __decorate, __param } from "tslib";
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { Directive, ElementRef, Inject, NgZone, Renderer2, ViewContainerRef, } from '@angular/core';
|
|
4
|
-
import { ANIMATION_FRAME, CSS } from '@ng-web-apis/common';
|
|
5
|
-
import { CHAR_ELLIPSIS, px, TuiDestroyService, tuiZonefree } from '@taiga-ui/cdk';
|
|
6
|
-
import { setRangeOffset } from '@taiga-ui/kit/utils/dom';
|
|
7
|
-
import { Observable } from 'rxjs';
|
|
8
|
-
import { map, takeUntil } from 'rxjs/operators';
|
|
9
|
-
import { TuiLineClampComponent } from './line-clamp.component';
|
|
10
|
-
const HIDDEN_LEFT = -200;
|
|
11
|
-
// @dynamic
|
|
12
|
-
let TuiLineClampDirective = class TuiLineClampDirective {
|
|
13
|
-
constructor(component, viewContainerRef, documentRef, renderer, ngZone, { nativeElement }, destroy$, animationFrame$,
|
|
14
|
-
/**
|
|
15
|
-
* TODO: remove "any" in new TS version; https://github.com/ng-web-apis/common/pull/6
|
|
16
|
-
*/
|
|
17
|
-
cssRef) {
|
|
18
|
-
if (cssRef.supports('-webkit-line-clamp', '1') ||
|
|
19
|
-
!documentRef.createRange ||
|
|
20
|
-
!(nativeElement.parentElement instanceof HTMLElement)) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const range = documentRef.createRange();
|
|
24
|
-
const ellipsis = renderer.createElement('div');
|
|
25
|
-
const { parentElement } = nativeElement;
|
|
26
|
-
const { style } = ellipsis;
|
|
27
|
-
style.position = 'absolute';
|
|
28
|
-
style.bottom = '0';
|
|
29
|
-
style.left = px(HIDDEN_LEFT);
|
|
30
|
-
ellipsis.textContent = CHAR_ELLIPSIS;
|
|
31
|
-
viewContainerRef.element.nativeElement.appendChild(ellipsis);
|
|
32
|
-
animationFrame$
|
|
33
|
-
.pipe(map(() => {
|
|
34
|
-
// 4px buffer for IE/Edge incorrectly rounding scrollHeight
|
|
35
|
-
if (component.oneLine ||
|
|
36
|
-
nativeElement.scrollHeight - parentElement.clientHeight < 4) {
|
|
37
|
-
return HIDDEN_LEFT;
|
|
38
|
-
}
|
|
39
|
-
let result = 0;
|
|
40
|
-
const length = nativeElement.textContent
|
|
41
|
-
? nativeElement.textContent.length
|
|
42
|
-
: 0;
|
|
43
|
-
for (let char = 0; char < length - 2; char++) {
|
|
44
|
-
setRangeOffset(range, nativeElement, char, 'setStart');
|
|
45
|
-
setRangeOffset(range, nativeElement, char + 1, 'setEnd');
|
|
46
|
-
const rangeRect = range.getBoundingClientRect();
|
|
47
|
-
const clientRect = parentElement.getBoundingClientRect();
|
|
48
|
-
if (Math.round(rangeRect.top - clientRect.bottom) >= 0) {
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
result = rangeRect.right - clientRect.left;
|
|
52
|
-
}
|
|
53
|
-
return result;
|
|
54
|
-
}), tuiZonefree(ngZone), takeUntil(destroy$))
|
|
55
|
-
.subscribe(left => {
|
|
56
|
-
style.left = px(left);
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
TuiLineClampDirective.ctorParameters = () => [
|
|
61
|
-
{ type: TuiLineClampComponent, decorators: [{ type: Inject, args: [TuiLineClampComponent,] }] },
|
|
62
|
-
{ type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
|
|
63
|
-
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
|
64
|
-
{ type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
|
|
65
|
-
{ type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
|
|
66
|
-
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
67
|
-
{ type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
|
|
68
|
-
{ type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
|
|
69
|
-
{ type: undefined, decorators: [{ type: Inject, args: [CSS,] }] }
|
|
70
|
-
];
|
|
71
|
-
TuiLineClampDirective = __decorate([
|
|
72
|
-
Directive({
|
|
73
|
-
selector: '[lineClamp]',
|
|
74
|
-
providers: [TuiDestroyService],
|
|
75
|
-
}),
|
|
76
|
-
__param(0, Inject(TuiLineClampComponent)),
|
|
77
|
-
__param(1, Inject(ViewContainerRef)),
|
|
78
|
-
__param(2, Inject(DOCUMENT)),
|
|
79
|
-
__param(3, Inject(Renderer2)),
|
|
80
|
-
__param(4, Inject(NgZone)),
|
|
81
|
-
__param(5, Inject(ElementRef)),
|
|
82
|
-
__param(6, Inject(TuiDestroyService)),
|
|
83
|
-
__param(7, Inject(ANIMATION_FRAME)),
|
|
84
|
-
__param(8, Inject(CSS))
|
|
85
|
-
], TuiLineClampDirective);
|
|
86
|
-
export { TuiLineClampDirective };
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImxpbmUtY2xhbXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFFekIsV0FBVztBQUtYLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQzlCLFlBQ21DLFNBQWdDLEVBQ3JDLGdCQUFrQyxFQUMxQyxXQUFxQixFQUNwQixRQUFtQixFQUN0QixNQUFjLEVBQ1YsRUFBQyxhQUFhLEVBQTBCLEVBQ2pDLFFBQTJCLEVBQzdCLGVBQW1DO0lBQzVEOztPQUVHO0lBQ1UsTUFBVztRQUV4QixJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDO1lBQzFDLENBQUMsV0FBVyxDQUFDLFdB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UCxRQUFRLEVBQUUsYUFBYTtRQUN2QixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUNqQyxDQUFDO0lBR08sV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM3QixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ3hCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hCLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2pCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2QsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN6QixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUl2QixXQUFBLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtHQWJQLHFCQUFxQixDQTBFakM7U0ExRVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgQ1NTfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7Q0hBUl9FTExJUFNJUywgcHgsIFR1aURlc3Ryb3lTZXJ2aWNlLCB0dWlab25lZnJlZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge3NldFJhbmdlT2Zmc2V0fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL2RvbSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aUxpbmVDbGFtcENvbXBvbmVudH0gZnJvbSAnLi9saW5lLWNsYW1wLmNvbXBvbmVudCc7XG5cbmNvbnN0IEhJRERFTl9MRUZUID0gLTIwMDtcblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2xpbmVDbGFtcF0nLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTGluZUNsYW1wRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlMaW5lQ2xhbXBDb21wb25lbnQpIGNvbXBvbmVudDogVHVpTGluZUNsYW1wQ29tcG9uZW50LFxuICAgICAgICBASW5qZWN0KFZpZXdDb250YWluZXJSZWYpIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRPRE86IHJlbW92ZSBcImFueVwiIGluIG5ldyBUUyB2ZXJzaW9uOyBodHRwczovL2dpdGh1Yi5jb20vbmctd2ViLWFwaXMvY29tbW9uL3B1bGwvNlxuICAgICAgICAgKi9cbiAgICAgICAgQEluamVjdChDU1MpIGNzc1JlZjogYW55LFxuICAgICkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjc3NSZWYuc3VwcG9ydHMoJy13ZWJraXQtbGluZS1jbGFtcCcsICcxJykgfHxcbiAgICAgICAgICAgICFkb2N1bWVudFJlZi5jcmVhdGVSYW5nZSB8fFxuICAgICAgICAgICAgIShuYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50UmVmLmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIGNvbnN0IGVsbGlwc2lzOiBIVE1MRWxlbWVudCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjb25zdCB7cGFyZW50RWxlbWVudH0gPSBuYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB7c3R5bGV9ID0gZWxsaXBzaXM7XG5cbiAgICAgICAgc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICBzdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICAgIHN0eWxlLmxlZnQgPSBweChISURERU5fTEVGVCk7XG4gICAgICAgIGVsbGlwc2lzLnRleHRDb250ZW50ID0gQ0hBUl9FTExJUFNJUztcblxuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChlbGxpcHNpcyk7XG5cbiAgICAgICAgYW5pbWF0aW9uRnJhbWUkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyA0cHggYnVmZmVyIGZvciBJRS9FZGdlIGluY29ycmVjdGx5IHJvdW5kaW5nIHNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQub25lTGluZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBwYXJlbnRFbGVtZW50LmNsaWVudEhlaWdodCA8IDRcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSElEREVOX0xFRlQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gbmF0aXZlRWxlbWVudC50ZXh0Q29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBuYXRpdmVFbGVtZW50LnRleHRDb250ZW50Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNoYXIgPSAwOyBjaGFyIDwgbGVuZ3RoIC0gMjsgY2hhcisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSYW5nZU9mZnNldChyYW5nZSwgbmF0aXZlRWxlbWVudCwgY2hhciwgJ3NldFN0YXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSYW5nZU9mZnNldChyYW5nZSwgbmF0aXZlRWxlbWVudCwgY2hhciArIDEsICdzZXRFbmQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VSZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gcGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQocmFuZ2VSZWN0LnRvcCAtIGNsaWVudFJlY3QuYm90dG9tKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJhbmdlUmVjdC5yaWdodCAtIGNsaWVudFJlY3QubGVmdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdHVpWm9uZWZyZWUobmdab25lKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShsZWZ0ID0+IHtcbiAgICAgICAgICAgICAgICBzdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { __decorate, __param } from "tslib";
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { Directive, ElementRef, Inject, NgZone, Renderer2, ViewContainerRef, } from '@angular/core';
|
|
4
|
-
import { ANIMATION_FRAME, CSS } from '@ng-web-apis/common';
|
|
5
|
-
import { CHAR_ELLIPSIS, px, TuiDestroyService, tuiZonefree } from '@taiga-ui/cdk';
|
|
6
|
-
import { setRangeOffset } from '@taiga-ui/kit/utils/dom';
|
|
7
|
-
import { Observable } from 'rxjs';
|
|
8
|
-
import { map, takeUntil } from 'rxjs/operators';
|
|
9
|
-
import { TuiLineClampComponent } from './line-clamp.component';
|
|
10
|
-
var HIDDEN_LEFT = -200;
|
|
11
|
-
// @dynamic
|
|
12
|
-
var TuiLineClampDirective = /** @class */ (function () {
|
|
13
|
-
function TuiLineClampDirective(component, viewContainerRef, documentRef, renderer, ngZone, _a, destroy$, animationFrame$,
|
|
14
|
-
/**
|
|
15
|
-
* TODO: remove "any" in new TS version; https://github.com/ng-web-apis/common/pull/6
|
|
16
|
-
*/
|
|
17
|
-
cssRef) {
|
|
18
|
-
var nativeElement = _a.nativeElement;
|
|
19
|
-
if (cssRef.supports('-webkit-line-clamp', '1') ||
|
|
20
|
-
!documentRef.createRange ||
|
|
21
|
-
!(nativeElement.parentElement instanceof HTMLElement)) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
var range = documentRef.createRange();
|
|
25
|
-
var ellipsis = renderer.createElement('div');
|
|
26
|
-
var parentElement = nativeElement.parentElement;
|
|
27
|
-
var style = ellipsis.style;
|
|
28
|
-
style.position = 'absolute';
|
|
29
|
-
style.bottom = '0';
|
|
30
|
-
style.left = px(HIDDEN_LEFT);
|
|
31
|
-
ellipsis.textContent = CHAR_ELLIPSIS;
|
|
32
|
-
viewContainerRef.element.nativeElement.appendChild(ellipsis);
|
|
33
|
-
animationFrame$
|
|
34
|
-
.pipe(map(function () {
|
|
35
|
-
// 4px buffer for IE/Edge incorrectly rounding scrollHeight
|
|
36
|
-
if (component.oneLine ||
|
|
37
|
-
nativeElement.scrollHeight - parentElement.clientHeight < 4) {
|
|
38
|
-
return HIDDEN_LEFT;
|
|
39
|
-
}
|
|
40
|
-
var result = 0;
|
|
41
|
-
var length = nativeElement.textContent
|
|
42
|
-
? nativeElement.textContent.length
|
|
43
|
-
: 0;
|
|
44
|
-
for (var char = 0; char < length - 2; char++) {
|
|
45
|
-
setRangeOffset(range, nativeElement, char, 'setStart');
|
|
46
|
-
setRangeOffset(range, nativeElement, char + 1, 'setEnd');
|
|
47
|
-
var rangeRect = range.getBoundingClientRect();
|
|
48
|
-
var clientRect = parentElement.getBoundingClientRect();
|
|
49
|
-
if (Math.round(rangeRect.top - clientRect.bottom) >= 0) {
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
result = rangeRect.right - clientRect.left;
|
|
53
|
-
}
|
|
54
|
-
return result;
|
|
55
|
-
}), tuiZonefree(ngZone), takeUntil(destroy$))
|
|
56
|
-
.subscribe(function (left) {
|
|
57
|
-
style.left = px(left);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
TuiLineClampDirective.ctorParameters = function () { return [
|
|
61
|
-
{ type: TuiLineClampComponent, decorators: [{ type: Inject, args: [TuiLineClampComponent,] }] },
|
|
62
|
-
{ type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
|
|
63
|
-
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
|
64
|
-
{ type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
|
|
65
|
-
{ type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
|
|
66
|
-
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
67
|
-
{ type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
|
|
68
|
-
{ type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
|
|
69
|
-
{ type: undefined, decorators: [{ type: Inject, args: [CSS,] }] }
|
|
70
|
-
]; };
|
|
71
|
-
TuiLineClampDirective = __decorate([
|
|
72
|
-
Directive({
|
|
73
|
-
selector: '[lineClamp]',
|
|
74
|
-
providers: [TuiDestroyService],
|
|
75
|
-
}),
|
|
76
|
-
__param(0, Inject(TuiLineClampComponent)),
|
|
77
|
-
__param(1, Inject(ViewContainerRef)),
|
|
78
|
-
__param(2, Inject(DOCUMENT)),
|
|
79
|
-
__param(3, Inject(Renderer2)),
|
|
80
|
-
__param(4, Inject(NgZone)),
|
|
81
|
-
__param(5, Inject(ElementRef)),
|
|
82
|
-
__param(6, Inject(TuiDestroyService)),
|
|
83
|
-
__param(7, Inject(ANIMATION_FRAME)),
|
|
84
|
-
__param(8, Inject(CSS))
|
|
85
|
-
], TuiLineClampDirective);
|
|
86
|
-
return TuiLineClampDirective;
|
|
87
|
-
}());
|
|
88
|
-
export { TuiLineClampDirective };
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImxpbmUtY2xhbXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsSUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFFekIsV0FBVztBQUtYO0lBQ0ksK0JBQ21DLFNBQWdDLEVBQ3JDLGdCQUFrQyxFQUMxQyxXQUFxQixFQUNwQixRQUFtQixFQUN0QixNQUFjLEVBQ1YsRUFBd0MsRUFDakMsUUFBMkIsRUFDN0IsZUFBbUM7SUFDNUQ7O09BRUc7SUFDVSxNQUFXO1lBTkgsZ0NBQWE7UUFRbEMsSUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQztZQUMxQyxDQUFDLFdBQVcsQ0FBQyxXQUFXO1lBQ3hCLENBQUMsQ0FBQyxhQUFhLENBQUMs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QUFxQixDQUFDLENBQUE7UUFDN0IsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN4QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNqQixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNkLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFJdkIsV0FBQSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7T0FiUCxxQkFBcUIsQ0EwRWpDO0lBQUQsNEJBQUM7Q0FBQSxBQTFFRCxJQTBFQztTQTFFWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBDU1N9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtDSEFSX0VMTElQU0lTLCBweCwgVHVpRGVzdHJveVNlcnZpY2UsIHR1aVpvbmVmcmVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7c2V0UmFuZ2VPZmZzZXR9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvZG9tJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpTGluZUNsYW1wQ29tcG9uZW50fSBmcm9tICcuL2xpbmUtY2xhbXAuY29tcG9uZW50JztcblxuY29uc3QgSElEREVOX0xFRlQgPSAtMjAwO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGluZUNsYW1wXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMaW5lQ2xhbXBEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUxpbmVDbGFtcENvbXBvbmVudCkgY29tcG9uZW50OiBUdWlMaW5lQ2xhbXBDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoVmlld0NvbnRhaW5lclJlZikgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFJlbmRlcmVyMikgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHtuYXRpdmVFbGVtZW50fTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICAgICAvKipcbiAgICAgICAgICogVE9ETzogcmVtb3ZlIFwiYW55XCIgaW4gbmV3IFRTIHZlcnNpb247IGh0dHBzOi8vZ2l0aHViLmNvbS9uZy13ZWItYXBpcy9jb21tb24vcHVsbC82XG4gICAgICAgICAqL1xuICAgICAgICBASW5qZWN0KENTUykgY3NzUmVmOiBhbnksXG4gICAgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNzc1JlZi5zdXBwb3J0cygnLXdlYmtpdC1saW5lLWNsYW1wJywgJzEnKSB8fFxuICAgICAgICAgICAgIWRvY3VtZW50UmVmLmNyZWF0ZVJhbmdlIHx8XG4gICAgICAgICAgICAhKG5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnRSZWYuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgY29uc3QgZWxsaXBzaXM6IEhUTUxFbGVtZW50ID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNvbnN0IHtwYXJlbnRFbGVtZW50fSA9IG5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSBlbGxpcHNpcztcblxuICAgICAgICBzdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgIHN0eWxlLmJvdHRvbSA9ICcwJztcbiAgICAgICAgc3R5bGUubGVmdCA9IHB4KEhJRERFTl9MRUZUKTtcbiAgICAgICAgZWxsaXBzaXMudGV4dENvbnRlbnQgPSBDSEFSX0VMTElQU0lTO1xuXG4gICAgICAgIHZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGVsbGlwc2lzKTtcblxuICAgICAgICBhbmltYXRpb25GcmFtZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIDRweCBidWZmZXIgZm9yIElFL0VkZ2UgaW5jb3JyZWN0bHkgcm91bmRpbmcgc2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vbmVMaW5lIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIHBhcmVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IDwgNFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBISURERU5fTEVGVDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBuYXRpdmVFbGVtZW50LnRleHRDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY2hhciA9IDA7IGNoYXIgPCBsZW5ndGggLSAyOyBjaGFyKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJhbmdlT2Zmc2V0KHJhbmdlLCBuYXRpdmVFbGVtZW50LCBjaGFyLCAnc2V0U3RhcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJhbmdlT2Zmc2V0KHJhbmdlLCBuYXRpdmVFbGVtZW50LCBjaGFyICsgMSwgJ3NldEVuZCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYW5nZVJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZChyYW5nZVJlY3QudG9wIC0gY2xpZW50UmVjdC5ib3R0b20pID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmFuZ2VSZWN0LnJpZ2h0IC0gY2xpZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0dWlab25lZnJlZShuZ1pvbmUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGxlZnQgPT4ge1xuICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|