@taiga-ui/core 2.26.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/abstract/abstract-dropdown.d.ts +1 -1
- package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.js +20 -20
- package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-error.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-error.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.js +4 -4
- package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.js +6 -6
- package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +9 -9
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +2 -2
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js +2 -15
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +3 -3
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +17 -14
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +3 -3
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.js +2 -2
- package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.js +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.js +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.min.js +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-enums.umd.js +1 -0
- package/bundles/taiga-ui-core-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-core-enums.umd.min.js +1 -1
- package/bundles/taiga-ui-core-enums.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-services.umd.js +1 -1
- package/bundles/taiga-ui-core-services.umd.js.map +1 -1
- package/bundles/taiga-ui-core-services.umd.min.js +1 -1
- package/bundles/taiga-ui-core-services.umd.min.js.map +1 -1
- package/components/data-list/data-list.component.d.ts +4 -4
- package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
- package/components/dropdown-box/dropdown-box.component.d.ts +2 -2
- package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
- package/components/error/taiga-ui-core-components-error.metadata.json +1 -1
- package/components/expand/expand.component.d.ts +2 -2
- package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
- package/components/hints-host/hint-box/hint-box.component.d.ts +1 -1
- package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
- package/components/hosted-dropdown/hosted-dropdown.component.d.ts +3 -3
- package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
- package/components/primitive-calendar/primitive-calendar.component.d.ts +3 -3
- package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
- package/components/primitive-checkbox/primitive-checkbox.component.d.ts +1 -3
- package/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.metadata.json +1 -1
- package/components/primitive-spin-button/primitive-spin-button.component.d.ts +1 -1
- package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
- package/components/primitive-textfield/primitive-textfield.component.d.ts +2 -3
- package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
- package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +2 -1
- package/components/primitive-year-picker/primitive-year-picker.component.d.ts +3 -3
- package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.metadata.json +1 -1
- package/components/scrollbar/scrollbar.component.d.ts +2 -2
- package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
- package/components/svg/svg.component.d.ts +3 -3
- package/components/svg/taiga-ui-core-components-svg.metadata.json +1 -1
- package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
- package/components/tooltip/tooltip.component.d.ts +1 -1
- package/constants/taiga-ui-core-constants.metadata.json +1 -1
- package/constants/version.d.ts +1 -1
- package/directives/hint/hint.directive.d.ts +1 -1
- package/directives/hint/taiga-ui-core-directives-hint.metadata.json +1 -1
- package/directives/pointer-hint/pointer-hint.directive.d.ts +1 -1
- package/directives/pointer-hint/taiga-ui-core-directives-pointer-hint.metadata.json +1 -1
- package/enums/appearance.d.ts +1 -0
- package/enums/taiga-ui-core-enums.metadata.json +1 -1
- package/esm2015/abstract/abstract-dropdown.js +1 -1
- package/esm2015/components/data-list/data-list.component.js +17 -17
- package/esm2015/components/dropdown-box/dropdown-box.component.js +1 -1
- package/esm2015/components/error/error.component.js +1 -1
- package/esm2015/components/expand/expand.component.js +5 -5
- package/esm2015/components/hints-host/hint-box/hint-box.component.js +7 -7
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +10 -10
- package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
- package/esm2015/components/primitive-checkbox/primitive-checkbox.component.js +4 -13
- package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +4 -4
- package/esm2015/components/primitive-textfield/primitive-textfield.component.js +7 -10
- package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +9 -3
- package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +4 -4
- package/esm2015/components/scrollbar/scrollbar.component.js +3 -3
- package/esm2015/components/svg/svg.component.js +2 -2
- package/esm2015/components/tooltip/tooltip.component.js +2 -2
- package/esm2015/constants/version.js +2 -2
- package/esm2015/directives/hint/hint.directive.js +2 -2
- package/esm2015/directives/pointer-hint/pointer-hint.directive.js +2 -2
- package/esm2015/enums/appearance.js +2 -1
- package/esm2015/services/hint.service.js +1 -1
- package/esm2015/services/svg.service.js +2 -2
- package/esm5/abstract/abstract-dropdown.js +1 -1
- package/esm5/components/data-list/data-list.component.js +21 -21
- package/esm5/components/dropdown-box/dropdown-box.component.js +1 -1
- package/esm5/components/error/error.component.js +1 -1
- package/esm5/components/expand/expand.component.js +5 -5
- package/esm5/components/hints-host/hint-box/hint-box.component.js +7 -7
- package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +10 -10
- package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
- package/esm5/components/primitive-checkbox/primitive-checkbox.component.js +4 -17
- package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +4 -4
- package/esm5/components/primitive-textfield/primitive-textfield.component.js +7 -14
- package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +13 -3
- package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +4 -4
- package/esm5/components/scrollbar/scrollbar.component.js +3 -3
- package/esm5/components/svg/svg.component.js +2 -2
- package/esm5/components/tooltip/tooltip.component.js +2 -2
- package/esm5/constants/version.js +2 -2
- package/esm5/directives/hint/hint.directive.js +2 -2
- package/esm5/directives/pointer-hint/pointer-hint.directive.js +2 -2
- package/esm5/enums/appearance.js +2 -1
- package/esm5/services/hint.service.js +1 -1
- package/esm5/services/svg.service.js +2 -2
- package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-data-list.js +17 -17
- package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-expand.js +5 -5
- package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hints-host.js +7 -7
- package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +10 -10
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js +3 -3
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-checkbox.js +3 -12
- package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +4 -4
- package/fesm2015/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js +14 -11
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +3 -3
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-scrollbar.js +2 -2
- package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-svg.js +1 -1
- package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm2015/taiga-ui-core-constants.js +1 -1
- package/fesm2015/taiga-ui-core-constants.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-pointer-hint.js +1 -1
- package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-enums.js +1 -0
- package/fesm2015/taiga-ui-core-enums.js.map +1 -1
- package/fesm2015/taiga-ui-core-services.js +1 -1
- package/fesm2015/taiga-ui-core-services.js.map +1 -1
- package/fesm5/taiga-ui-core-abstract.js.map +1 -1
- package/fesm5/taiga-ui-core-components-data-list.js +21 -21
- package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
- package/fesm5/taiga-ui-core-components-error.js.map +1 -1
- package/fesm5/taiga-ui-core-components-expand.js +5 -5
- package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hints-host.js +7 -7
- package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js +10 -10
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-calendar.js +3 -3
- package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-checkbox.js +3 -16
- package/fesm5/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-spin-button.js +4 -4
- package/fesm5/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-textfield.js +18 -15
- package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-year-picker.js +3 -3
- package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm5/taiga-ui-core-components-scrollbar.js +2 -2
- package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
- package/fesm5/taiga-ui-core-components-svg.js +1 -1
- package/fesm5/taiga-ui-core-components-svg.js.map +1 -1
- package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm5/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm5/taiga-ui-core-constants.js +1 -1
- package/fesm5/taiga-ui-core-constants.js.map +1 -1
- package/fesm5/taiga-ui-core-directives-hint.js +1 -1
- package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm5/taiga-ui-core-directives-pointer-hint.js +1 -1
- package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
- package/fesm5/taiga-ui-core-enums.js +1 -0
- package/fesm5/taiga-ui-core-enums.js.map +1 -1
- package/fesm5/taiga-ui-core-services.js +1 -1
- package/fesm5/taiga-ui-core-services.js.map +1 -1
- package/package.json +3 -3
- package/services/hint.service.d.ts +3 -3
- package/services/svg.service.d.ts +1 -1
- package/styles/theme/variables.less +1 -1
- package/styles/theme/wrapper/accent.less +31 -0
- package/styles/theme/wrapper/icon.less +1 -0
- package/styles/theme/wrapper/outline.less +1 -0
- package/styles/theme/wrapper/primary.less +1 -0
- package/styles/theme/wrapper/secondary.less +1 -0
- package/styles/theme/wrapper/whiteblock.less +2 -0
- package/styles/theme/wrapper.less +1 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import { Directive, ChangeDetectorRef, Inject, Input, ContentChild, TemplateRef, HostBinding,
|
|
2
|
+
import { Directive, ChangeDetectorRef, Inject, ViewChild, Input, ContentChild, TemplateRef, HostBinding, HostListener, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { isCurrentTarget, tuiDefaultProp, tuiRequiredSetter } from '@taiga-ui/cdk';
|
|
4
4
|
import { TUI_EXPAND_LOADED } from '@taiga-ui/core/constants';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
@@ -25,9 +25,9 @@ const LOADER_HEIGHT = 48;
|
|
|
25
25
|
let TuiExpandComponent = class TuiExpandComponent {
|
|
26
26
|
constructor(changeDetectorRef) {
|
|
27
27
|
this.changeDetectorRef = changeDetectorRef;
|
|
28
|
+
this.state = State.Idle;
|
|
28
29
|
this.async = false;
|
|
29
30
|
this.expanded = null;
|
|
30
|
-
this.state = State.Idle;
|
|
31
31
|
}
|
|
32
32
|
set expandedSetter(expanded) {
|
|
33
33
|
if (this.expanded === null) {
|
|
@@ -95,6 +95,9 @@ let TuiExpandComponent = class TuiExpandComponent {
|
|
|
95
95
|
TuiExpandComponent.ctorParameters = () => [
|
|
96
96
|
{ type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] }
|
|
97
97
|
];
|
|
98
|
+
__decorate([
|
|
99
|
+
ViewChild('wrapper')
|
|
100
|
+
], TuiExpandComponent.prototype, "contentWrapper", void 0);
|
|
98
101
|
__decorate([
|
|
99
102
|
Input(),
|
|
100
103
|
tuiDefaultProp()
|
|
@@ -110,9 +113,6 @@ __decorate([
|
|
|
110
113
|
HostBinding('class._expanded'),
|
|
111
114
|
HostBinding('attr.aria-expanded')
|
|
112
115
|
], TuiExpandComponent.prototype, "expanded", void 0);
|
|
113
|
-
__decorate([
|
|
114
|
-
ViewChild('wrapper')
|
|
115
|
-
], TuiExpandComponent.prototype, "contentWrapper", void 0);
|
|
116
116
|
__decorate([
|
|
117
117
|
HostBinding('class._overflow')
|
|
118
118
|
], TuiExpandComponent.prototype, "overflow", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-expand.js","sources":["ng://@taiga-ui/core/components/expand/expand-content.directive.ts","ng://@taiga-ui/core/components/expand/expand.component.ts","ng://@taiga-ui/core/components/expand/expand.module.ts","ng://@taiga-ui/core/components/expand/taiga-ui-core-components-expand.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n// @bad TODO Replace with PolymorpheusContent\n@Directive({\n selector: '[tuiExpandContent]',\n})\nexport class TuiExpandContentDirective {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {isCurrentTarget, tuiDefaultProp, tuiRequiredSetter} from '@taiga-ui/cdk';\nimport {TUI_EXPAND_LOADED} from '@taiga-ui/core/constants';\n\nimport {TuiExpandContentDirective} from './expand-content.directive';\n\nenum State {\n Idle,\n Loading,\n Prepared,\n Animated,\n}\n\nconst LOADER_HEIGHT = 48;\n\n@Component({\n selector: 'tui-expand',\n templateUrl: './expand.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./expand.style.less'],\n})\nexport class TuiExpandComponent {\n @Input()\n @tuiDefaultProp()\n async = false;\n\n @Input('expanded')\n @tuiRequiredSetter()\n set expandedSetter(expanded: boolean) {\n if (this.expanded === null) {\n this.expanded = expanded;\n\n return;\n }\n\n if (this.state !== State.Idle) {\n this.expanded = expanded;\n this.state = State.Animated;\n\n return;\n }\n\n this.expanded = expanded;\n this.retrigger(this.async && expanded ? State.Loading : State.Animated);\n }\n\n @ContentChild(TuiExpandContentDirective, {read: TemplateRef})\n content?: TemplateRef<{}>;\n\n @HostBinding('class._expanded')\n @HostBinding('attr.aria-expanded')\n expanded: boolean | null = null;\n\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-expand.js","sources":["ng://@taiga-ui/core/components/expand/expand-content.directive.ts","ng://@taiga-ui/core/components/expand/expand.component.ts","ng://@taiga-ui/core/components/expand/expand.module.ts","ng://@taiga-ui/core/components/expand/taiga-ui-core-components-expand.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n// @bad TODO Replace with PolymorpheusContent\n@Directive({\n selector: '[tuiExpandContent]',\n})\nexport class TuiExpandContentDirective {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {isCurrentTarget, tuiDefaultProp, tuiRequiredSetter} from '@taiga-ui/cdk';\nimport {TUI_EXPAND_LOADED} from '@taiga-ui/core/constants';\n\nimport {TuiExpandContentDirective} from './expand-content.directive';\n\nenum State {\n Idle,\n Loading,\n Prepared,\n Animated,\n}\n\nconst LOADER_HEIGHT = 48;\n\n@Component({\n selector: 'tui-expand',\n templateUrl: './expand.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./expand.style.less'],\n})\nexport class TuiExpandComponent {\n @ViewChild('wrapper')\n private contentWrapper?: ElementRef<HTMLDivElement>;\n\n private state = State.Idle;\n\n @Input()\n @tuiDefaultProp()\n async = false;\n\n @Input('expanded')\n @tuiRequiredSetter()\n set expandedSetter(expanded: boolean) {\n if (this.expanded === null) {\n this.expanded = expanded;\n\n return;\n }\n\n if (this.state !== State.Idle) {\n this.expanded = expanded;\n this.state = State.Animated;\n\n return;\n }\n\n this.expanded = expanded;\n this.retrigger(this.async && expanded ? State.Loading : State.Animated);\n }\n\n @ContentChild(TuiExpandContentDirective, {read: TemplateRef})\n content?: TemplateRef<{}>;\n\n @HostBinding('class._expanded')\n @HostBinding('attr.aria-expanded')\n expanded: boolean | null = null;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n @HostBinding('class._overflow')\n get overflow(): boolean {\n return this.state !== State.Idle;\n }\n\n @HostBinding('class._loading')\n get loading(): boolean {\n return !!this.expanded && this.async && this.state === State.Loading;\n }\n\n @HostBinding('style.height.px')\n get height(): number | null {\n const {expanded, state, contentWrapper} = this;\n\n if (\n (expanded && state === State.Prepared) ||\n (!expanded && state === State.Animated)\n ) {\n return 0;\n }\n\n if (\n contentWrapper &&\n ((!expanded && state === State.Prepared) ||\n (expanded && state === State.Animated))\n ) {\n return contentWrapper.nativeElement.offsetHeight;\n }\n\n if (contentWrapper && expanded && state === State.Loading) {\n return Math.max(contentWrapper.nativeElement.offsetHeight, LOADER_HEIGHT);\n }\n\n return null;\n }\n\n get contentVisible(): boolean {\n return this.expanded || this.state !== State.Idle;\n }\n\n @HostListener('transitionend', ['$event'])\n onTransitionEnd(event: TransitionEvent) {\n if (\n isCurrentTarget(event) &&\n event.propertyName === 'opacity' &&\n this.state === State.Animated\n ) {\n this.state = State.Idle;\n }\n }\n\n @HostListener(TUI_EXPAND_LOADED, ['$event'])\n onExpandLoaded(event: Event) {\n event.stopPropagation();\n\n if (this.state === State.Loading) {\n this.retrigger(State.Animated);\n }\n }\n\n private retrigger(state: State) {\n this.state = State.Prepared;\n\n // We need delay to retrigger CSS height transition from the correct number\n setTimeout(() => {\n if (this.state !== State.Prepared) {\n return;\n }\n\n this.state = state;\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLoaderModule} from '@taiga-ui/core/components/loader';\n\nimport {TuiExpandComponent} from './expand.component';\nimport {TuiExpandContentDirective} from './expand-content.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLoaderModule],\n declarations: [TuiExpandComponent, TuiExpandContentDirective],\n exports: [TuiExpandComponent, TuiExpandContentDirective],\n})\nexport class TuiExpandModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAEA;IAIa,yBAAyB,GAAtC,MAAa,yBAAyB;EAAG;AAA5B,yBAAyB;IAHrC,SAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;KACjC,CAAC;GACW,yBAAyB,CAAG;;ACYzC,IAAK,KAKJ;AALD,WAAK,KAAK;IACN,iCAAI,CAAA;IACJ,uCAAO,CAAA;IACP,yCAAQ,CAAA;IACR,yCAAQ,CAAA;AACZ,CAAC,EALI,KAAK,KAAL,KAAK,QAKT;AAED,MAAM,aAAa,GAAG,EAAE,CAAC;IAQZ,kBAAkB,GAA/B,MAAa,kBAAkB;IAqC3B,YACgD,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAlC5E,UAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QAI3B,UAAK,GAAG,KAAK,CAAC;QA2Bd,aAAQ,GAAmB,IAAI,CAAC;KAI5B;IA3BJ,IAAI,cAAc,CAAC,QAAiB;QAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAEzB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;YAE5B,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC3E;IAcD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;KACpC;IAGD,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC;KACxE;IAGD,IAAI,MAAM;QACN,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC;QAE/C,IACI,CAAC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ;aACpC,CAAC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,EACzC;YACE,OAAO,CAAC,CAAC;SACZ;QAED,IACI,cAAc;aACb,CAAC,CAAC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ;iBAClC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC7C;YACE,OAAO,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC;SACpD;QAED,IAAI,cAAc,IAAI,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;YACvD,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;SAC7E;QAED,OAAO,IAAI,CAAC;KACf;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;KACrD;IAGD,eAAe,CAAC,KAAsB;QAClC,IACI,eAAe,CAAC,KAAK,CAAC;YACtB,KAAK,CAAC,YAAY,KAAK,SAAS;YAChC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAC/B;YACE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;SAC3B;KACJ;IAGD,cAAc,CAAC,KAAY;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAClC;KACJ;IAEO,SAAS,CAAC,KAAY;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;;QAG5B,UAAU,CAAC;YACP,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAAE;gBAC/B,OAAO;aACV;YAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACzC,CAAC,CAAC;KACN;EACJ;;YA5EsE,iBAAiB,uBAA/E,MAAM,SAAC,iBAAiB;;AApC7B;IADC,SAAS,CAAC,SAAS,CAAC;0DAC+B;AAMpD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;iDACH;AAId;IAFC,KAAK,CAAC,UAAU,CAAC;IACjB,iBAAiB,EAAE;wDAiBnB;AAGD;IADC,YAAY,CAAC,yBAAyB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;mDACnC;AAI1B;IAFC,WAAW,CAAC,iBAAiB,CAAC;IAC9B,WAAW,CAAC,oBAAoB,CAAC;oDACF;AAOhC;IADC,WAAW,CAAC,iBAAiB,CAAC;kDAG9B;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;iDAG7B;AAGD;IADC,WAAW,CAAC,iBAAiB,CAAC;gDAwB9B;AAOD;IADC,YAAY,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC;yDASzC;AAGD;IADC,YAAY,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;wDAO3C;AAnGQ,kBAAkB;IAN9B,SAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,oaAAqC;QACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAElD,CAAC;IAuCO,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAtCrB,kBAAkB,CAkH9B;;ICvIY,eAAe,GAA5B,MAAa,eAAe;EAAG;AAAlB,eAAe;IAL3B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;QACxC,YAAY,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;QAC7D,OAAO,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KAC3D,CAAC;GACW,eAAe,CAAG;;ACZ/B;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import { Inject, ElementRef, Component, ChangeDetectionStrategy, NgZone,
|
|
2
|
+
import { Inject, ElementRef, Component, ChangeDetectionStrategy, NgZone, ViewChild, Input, HostBinding, NgModule } from '@angular/core';
|
|
3
3
|
import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
|
|
4
4
|
import { tuiZonefree, px, TuiDestroyService, tuiPure, TuiHoveredModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
|
|
5
5
|
import { TuiPointerHintDirective } from '@taiga-ui/core/directives/pointer-hint';
|
|
@@ -81,9 +81,9 @@ let TuiHintBoxComponent = class TuiHintBoxComponent {
|
|
|
81
81
|
this.windowRef = windowRef;
|
|
82
82
|
this.media = media;
|
|
83
83
|
this.hintsHost = hintsHost;
|
|
84
|
-
animationFrame
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
animationFrame$
|
|
85
|
+
.pipe(tuiZonefree(ngZone), takeUntil(destroy$))
|
|
86
|
+
.subscribe(() => this.calculatePosition());
|
|
87
87
|
}
|
|
88
88
|
get isUntouchable() {
|
|
89
89
|
return this.hint instanceof TuiPointerHintDirective;
|
|
@@ -234,12 +234,12 @@ TuiHintBoxComponent.ctorParameters = () => [
|
|
|
234
234
|
{ type: undefined, decorators: [{ type: Inject, args: [TUI_MEDIA,] }] },
|
|
235
235
|
{ type: TuiHintsHostComponent, decorators: [{ type: Inject, args: [TuiHintsHostComponent,] }] }
|
|
236
236
|
];
|
|
237
|
-
__decorate([
|
|
238
|
-
Input()
|
|
239
|
-
], TuiHintBoxComponent.prototype, "hint", void 0);
|
|
240
237
|
__decorate([
|
|
241
238
|
ViewChild('arrow')
|
|
242
239
|
], TuiHintBoxComponent.prototype, "arrow", void 0);
|
|
240
|
+
__decorate([
|
|
241
|
+
Input()
|
|
242
|
+
], TuiHintBoxComponent.prototype, "hint", void 0);
|
|
243
243
|
__decorate([
|
|
244
244
|
tuiPure,
|
|
245
245
|
HostBinding('class._untouchable')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-hints-host.js","sources":["ng://@taiga-ui/core/components/hints-host/hints-host.component.ts","ng://@taiga-ui/core/components/hints-host/hint-box/hint-box.component.ts","ng://@taiga-ui/core/components/hints-host/hint-box/hint-box.module.ts","ng://@taiga-ui/core/components/hints-host/hints-host.module.ts","ng://@taiga-ui/core/components/hints-host/taiga-ui-core-components-hints-host.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, ElementRef, Inject} from '@angular/core';\nimport {AbstractTuiHint} from '@taiga-ui/core/abstract';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TuiHintService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\n\n@Component({\n selector: 'tui-hints-host',\n templateUrl: './hints-host.template.html',\n styleUrls: ['./hints-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n host: {\n 'aria-live': 'polite',\n },\n})\nexport class TuiHintsHostComponent {\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiHintService) readonly hints$: TuiHintService,\n ) {}\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n onHovered(hovered: boolean, directive: AbstractTuiHint) {\n if (directive instanceof TuiHintDirective) {\n directive.componentHovered$.next(hovered);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n ViewChild,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {px, TuiDestroyService, tuiPure, tuiZonefree} from '@taiga-ui/cdk';\nimport {AbstractTuiHint} from '@taiga-ui/core/abstract';\nimport {TuiPointerHintDirective} from '@taiga-ui/core/directives/pointer-hint';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {TUI_MEDIA} from '@taiga-ui/core/tokens';\nimport {TuiDirection, TuiHintModeT} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiHintsHostComponent} from '../hints-host.component';\n\nconst SPACE = 8;\nconst BORDER_WIDTH = 1;\nconst LEFT_PADDING = 16;\nconst TOP_PADDING = 12;\nconst ARROW_SIZE = 8;\nconst ARROW_OFFSET = 16;\nconst ARROWHEAD_OFFSET = ARROW_OFFSET + (ARROW_SIZE * Math.sqrt(2)) / 2;\nconst reverseDirectionsVertical: {[key in TuiDirection]: TuiDirection} = {\n 'top-left': 'bottom-left',\n 'top-right': 'bottom-right',\n 'bottom-left': 'top-left',\n 'bottom-right': 'top-right',\n left: 'right',\n right: 'left',\n};\nconst reverseDirectionsHorizontal: {[key in TuiDirection]: TuiDirection} = {\n 'top-left': 'top-right',\n 'top-right': 'top-left',\n 'bottom-left': 'bottom-right',\n 'bottom-right': 'bottom-left',\n left: 'right',\n right: 'left',\n};\n\n// TODO: consider abstracting UI and move to CDK, split hint and overflow\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-hint-box[hint]',\n templateUrl: './hint-box.template.html',\n styleUrls: ['./hint-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiHintBoxComponent {\n @Input()\n hint!: AbstractTuiHint;\n\n @ViewChild('arrow')\n private readonly arrow?: ElementRef<HTMLElement>;\n\n constructor(\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(TUI_MEDIA) private readonly media: TuiMedia,\n @Inject(TuiHintsHostComponent)\n private readonly hintsHost: TuiHintsHostComponent,\n ) {\n animationFrame$.pipe(tuiZonefree(ngZone), takeUntil(destroy$)).subscribe(() => {\n this.calculatePosition();\n });\n }\n\n @tuiPure\n @HostBinding('class._untouchable')\n get isUntouchable(): boolean {\n return this.hint instanceof TuiPointerHintDirective;\n }\n\n @HostBinding('attr.data-mode')\n get mode(): TuiHintModeT | null {\n return this.hint.mode;\n }\n\n get isMobile(): boolean {\n return this.windowRef.innerWidth <= this.media.mobile;\n }\n\n /**\n * Calculates wrapper position.\n * Styles are set directly to avoid visual shake of element\n */\n private calculatePosition() {\n if (this.mode !== 'overflow') {\n this.calculateCoordinates();\n } else {\n this.setOverflowStyles();\n }\n }\n\n private calculateCoordinates() {\n if (this.isMobile) {\n this.calculateMobileCoordinates();\n\n return;\n }\n\n const hostRect = this.hint.getElementClientRect();\n const portalRect = this.hintsHost.clientRect;\n const tooltip = this.elementRef.nativeElement;\n const {style} = tooltip;\n const tooltipRect = tooltip.getBoundingClientRect();\n const isHostLong = hostRect.width > ARROWHEAD_OFFSET * 2;\n const directions: TuiDirection[] = [\n 'left',\n 'right',\n 'bottom-left',\n 'bottom-right',\n 'top-left',\n 'top-right',\n ];\n\n let top = 0;\n let left = 0;\n let {direction} = this.hint;\n\n const horizontalTop =\n hostRect.top + hostRect.height / 2 - tooltipRect.height / 2 - portalRect.top;\n const horizontalLeft =\n hostRect.left - tooltipRect.width - SPACE - portalRect.left;\n const horizontalRight = hostRect.left + hostRect.width + SPACE - portalRect.left;\n const verticalBottom = hostRect.bottom + SPACE - portalRect.top;\n const verticalTop = hostRect.top - tooltipRect.height - SPACE - portalRect.top;\n const verticalRight = isHostLong\n ? hostRect.left - portalRect.left\n : hostRect.left + hostRect.width / 2 - ARROWHEAD_OFFSET - portalRect.left;\n const verticalLeft = isHostLong\n ? hostRect.left - tooltipRect.width + hostRect.width - portalRect.left\n : hostRect.left -\n tooltipRect.width +\n hostRect.width / 2 +\n ARROWHEAD_OFFSET -\n portalRect.left;\n\n directions.splice(directions.indexOf(direction), 1);\n\n while (true) {\n switch (direction) {\n case 'left':\n top = horizontalTop;\n left = horizontalLeft;\n break;\n case 'right':\n top = horizontalTop;\n left = horizontalRight;\n break;\n case 'top-right':\n top = verticalTop;\n left = verticalRight;\n break;\n case 'top-left':\n top = verticalTop;\n left = verticalLeft;\n break;\n case 'bottom-right':\n top = verticalBottom;\n left = verticalRight;\n break;\n case 'bottom-left':\n top = verticalBottom;\n left = verticalLeft;\n break;\n }\n\n const verticalFit =\n top + portalRect.top > SPACE &&\n top + tooltipRect.height + SPACE + portalRect.top <\n this.windowRef.innerHeight;\n const horizontalFit =\n left > SPACE &&\n left + tooltipRect.width + SPACE + portalRect.left < portalRect.width;\n\n if (directions.length === 0 || (verticalFit && horizontalFit)) {\n break;\n }\n\n direction = verticalFit\n ? reverseDirectionsHorizontal[direction]\n : reverseDirectionsVertical[direction];\n direction =\n directions.splice(directions.indexOf(direction), 1)[0] || direction;\n }\n\n style.top = px(top);\n style.left = px(left);\n\n tooltip.setAttribute('data-tui-host-direction', direction);\n }\n\n private calculateMobileCoordinates() {\n const hostRect = this.hint.getElementClientRect();\n const portalRect = this.hintsHost.clientRect;\n const tooltip = this.elementRef.nativeElement;\n const {style} = tooltip;\n const tooltipRect = tooltip.getBoundingClientRect();\n const verticalTop = hostRect.top - tooltipRect.height - SPACE - portalRect.top;\n const verticalBottom = hostRect.bottom + SPACE - portalRect.top;\n const verticalTopFit =\n verticalTop + portalRect.top > SPACE &&\n hostRect.top < this.windowRef.innerHeight;\n const verticalBottomFit =\n hostRect.bottom > 0 &&\n hostRect.bottom + 2 * SPACE + tooltipRect.height < this.windowRef.innerHeight;\n const direction =\n (this.hint.direction.includes('top') && verticalTopFit) || !verticalBottomFit\n ? 'top'\n : 'bottom';\n const attemptedLeft =\n portalRect.left + hostRect.left + hostRect.width / 2 - tooltipRect.width / 2;\n const left = Math.max(\n attemptedLeft + tooltipRect.width + SPACE > portalRect.right\n ? portalRect.right - SPACE - tooltipRect.width\n : attemptedLeft,\n SPACE * 2,\n );\n\n style.left = px(left);\n style.top = direction === 'top' ? px(verticalTop) : px(verticalBottom);\n\n if (this.arrow) {\n this.arrow.nativeElement.style.left = px(\n hostRect.left <= SPACE * 2 && hostRect.width > ARROW_OFFSET * 2\n ? ARROW_OFFSET\n : hostRect.left + hostRect.width / 2 - left - ARROW_SIZE / 2,\n );\n }\n\n tooltip.setAttribute('data-tui-host-direction', direction);\n }\n\n private setOverflowStyles() {\n const hostRect = this.hint.getElementClientRect();\n const {style} = this.elementRef.nativeElement;\n\n style.top = px(hostRect.top - window.innerHeight - TOP_PADDING - BORDER_WIDTH);\n style.left = px(hostRect.left - LEFT_PADDING - BORDER_WIDTH);\n style.width = px(hostRect.width + LEFT_PADDING * 2 + BORDER_WIDTH * 2);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiHintBoxComponent} from './hint-box.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TuiHintBoxComponent],\n exports: [TuiHintBoxComponent],\n})\nexport class TuiHintBoxModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiHoveredModule} from '@taiga-ui/cdk';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHintBoxModule} from './hint-box/hint-box.module';\nimport {TuiHintsHostComponent} from './hints-host.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiHoveredModule,\n TuiHintBoxModule,\n TuiActiveZoneModule,\n ],\n declarations: [TuiHintsHostComponent],\n exports: [TuiHintsHostComponent],\n entryComponents: [TuiHintsHostComponent],\n})\nexport class TuiHintsHostModule {}\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-core-components-hints-host.js","sources":["ng://@taiga-ui/core/components/hints-host/hints-host.component.ts","ng://@taiga-ui/core/components/hints-host/hint-box/hint-box.component.ts","ng://@taiga-ui/core/components/hints-host/hint-box/hint-box.module.ts","ng://@taiga-ui/core/components/hints-host/hints-host.module.ts","ng://@taiga-ui/core/components/hints-host/taiga-ui-core-components-hints-host.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, ElementRef, Inject} from '@angular/core';\nimport {AbstractTuiHint} from '@taiga-ui/core/abstract';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TuiHintService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\n\n@Component({\n selector: 'tui-hints-host',\n templateUrl: './hints-host.template.html',\n styleUrls: ['./hints-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n host: {\n 'aria-live': 'polite',\n },\n})\nexport class TuiHintsHostComponent {\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiHintService) readonly hints$: TuiHintService,\n ) {}\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n onHovered(hovered: boolean, directive: AbstractTuiHint) {\n if (directive instanceof TuiHintDirective) {\n directive.componentHovered$.next(hovered);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n ViewChild,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {px, TuiDestroyService, tuiPure, tuiZonefree} from '@taiga-ui/cdk';\nimport {AbstractTuiHint} from '@taiga-ui/core/abstract';\nimport {TuiPointerHintDirective} from '@taiga-ui/core/directives/pointer-hint';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {TUI_MEDIA} from '@taiga-ui/core/tokens';\nimport {TuiDirection, TuiHintModeT} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiHintsHostComponent} from '../hints-host.component';\n\nconst SPACE = 8;\nconst BORDER_WIDTH = 1;\nconst LEFT_PADDING = 16;\nconst TOP_PADDING = 12;\nconst ARROW_SIZE = 8;\nconst ARROW_OFFSET = 16;\nconst ARROWHEAD_OFFSET = ARROW_OFFSET + (ARROW_SIZE * Math.sqrt(2)) / 2;\nconst reverseDirectionsVertical: {[key in TuiDirection]: TuiDirection} = {\n 'top-left': 'bottom-left',\n 'top-right': 'bottom-right',\n 'bottom-left': 'top-left',\n 'bottom-right': 'top-right',\n left: 'right',\n right: 'left',\n};\nconst reverseDirectionsHorizontal: {[key in TuiDirection]: TuiDirection} = {\n 'top-left': 'top-right',\n 'top-right': 'top-left',\n 'bottom-left': 'bottom-right',\n 'bottom-right': 'bottom-left',\n left: 'right',\n right: 'left',\n};\n\n// TODO: consider abstracting UI and move to CDK, split hint and overflow\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-hint-box[hint]',\n templateUrl: './hint-box.template.html',\n styleUrls: ['./hint-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiHintBoxComponent {\n @ViewChild('arrow')\n private readonly arrow?: ElementRef<HTMLElement>;\n\n @Input()\n hint!: AbstractTuiHint;\n\n constructor(\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(TUI_MEDIA) private readonly media: TuiMedia,\n @Inject(TuiHintsHostComponent)\n private readonly hintsHost: TuiHintsHostComponent,\n ) {\n animationFrame$\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => this.calculatePosition());\n }\n\n @tuiPure\n @HostBinding('class._untouchable')\n get isUntouchable(): boolean {\n return this.hint instanceof TuiPointerHintDirective;\n }\n\n @HostBinding('attr.data-mode')\n get mode(): TuiHintModeT | null {\n return this.hint.mode;\n }\n\n get isMobile(): boolean {\n return this.windowRef.innerWidth <= this.media.mobile;\n }\n\n /**\n * Calculates wrapper position.\n * Styles are set directly to avoid visual shake of element\n */\n private calculatePosition() {\n if (this.mode !== 'overflow') {\n this.calculateCoordinates();\n } else {\n this.setOverflowStyles();\n }\n }\n\n private calculateCoordinates() {\n if (this.isMobile) {\n this.calculateMobileCoordinates();\n\n return;\n }\n\n const hostRect = this.hint.getElementClientRect();\n const portalRect = this.hintsHost.clientRect;\n const tooltip = this.elementRef.nativeElement;\n const {style} = tooltip;\n const tooltipRect = tooltip.getBoundingClientRect();\n const isHostLong = hostRect.width > ARROWHEAD_OFFSET * 2;\n const directions: TuiDirection[] = [\n 'left',\n 'right',\n 'bottom-left',\n 'bottom-right',\n 'top-left',\n 'top-right',\n ];\n\n let top = 0;\n let left = 0;\n let {direction} = this.hint;\n\n const horizontalTop =\n hostRect.top + hostRect.height / 2 - tooltipRect.height / 2 - portalRect.top;\n const horizontalLeft =\n hostRect.left - tooltipRect.width - SPACE - portalRect.left;\n const horizontalRight = hostRect.left + hostRect.width + SPACE - portalRect.left;\n const verticalBottom = hostRect.bottom + SPACE - portalRect.top;\n const verticalTop = hostRect.top - tooltipRect.height - SPACE - portalRect.top;\n const verticalRight = isHostLong\n ? hostRect.left - portalRect.left\n : hostRect.left + hostRect.width / 2 - ARROWHEAD_OFFSET - portalRect.left;\n const verticalLeft = isHostLong\n ? hostRect.left - tooltipRect.width + hostRect.width - portalRect.left\n : hostRect.left -\n tooltipRect.width +\n hostRect.width / 2 +\n ARROWHEAD_OFFSET -\n portalRect.left;\n\n directions.splice(directions.indexOf(direction), 1);\n\n while (true) {\n switch (direction) {\n case 'left':\n top = horizontalTop;\n left = horizontalLeft;\n break;\n case 'right':\n top = horizontalTop;\n left = horizontalRight;\n break;\n case 'top-right':\n top = verticalTop;\n left = verticalRight;\n break;\n case 'top-left':\n top = verticalTop;\n left = verticalLeft;\n break;\n case 'bottom-right':\n top = verticalBottom;\n left = verticalRight;\n break;\n case 'bottom-left':\n top = verticalBottom;\n left = verticalLeft;\n break;\n }\n\n const verticalFit =\n top + portalRect.top > SPACE &&\n top + tooltipRect.height + SPACE + portalRect.top <\n this.windowRef.innerHeight;\n const horizontalFit =\n left > SPACE &&\n left + tooltipRect.width + SPACE + portalRect.left < portalRect.width;\n\n if (directions.length === 0 || (verticalFit && horizontalFit)) {\n break;\n }\n\n direction = verticalFit\n ? reverseDirectionsHorizontal[direction]\n : reverseDirectionsVertical[direction];\n direction =\n directions.splice(directions.indexOf(direction), 1)[0] || direction;\n }\n\n style.top = px(top);\n style.left = px(left);\n\n tooltip.setAttribute('data-tui-host-direction', direction);\n }\n\n private calculateMobileCoordinates() {\n const hostRect = this.hint.getElementClientRect();\n const portalRect = this.hintsHost.clientRect;\n const tooltip = this.elementRef.nativeElement;\n const {style} = tooltip;\n const tooltipRect = tooltip.getBoundingClientRect();\n const verticalTop = hostRect.top - tooltipRect.height - SPACE - portalRect.top;\n const verticalBottom = hostRect.bottom + SPACE - portalRect.top;\n const verticalTopFit =\n verticalTop + portalRect.top > SPACE &&\n hostRect.top < this.windowRef.innerHeight;\n const verticalBottomFit =\n hostRect.bottom > 0 &&\n hostRect.bottom + 2 * SPACE + tooltipRect.height < this.windowRef.innerHeight;\n const direction =\n (this.hint.direction.includes('top') && verticalTopFit) || !verticalBottomFit\n ? 'top'\n : 'bottom';\n const attemptedLeft =\n portalRect.left + hostRect.left + hostRect.width / 2 - tooltipRect.width / 2;\n const left = Math.max(\n attemptedLeft + tooltipRect.width + SPACE > portalRect.right\n ? portalRect.right - SPACE - tooltipRect.width\n : attemptedLeft,\n SPACE * 2,\n );\n\n style.left = px(left);\n style.top = direction === 'top' ? px(verticalTop) : px(verticalBottom);\n\n if (this.arrow) {\n this.arrow.nativeElement.style.left = px(\n hostRect.left <= SPACE * 2 && hostRect.width > ARROW_OFFSET * 2\n ? ARROW_OFFSET\n : hostRect.left + hostRect.width / 2 - left - ARROW_SIZE / 2,\n );\n }\n\n tooltip.setAttribute('data-tui-host-direction', direction);\n }\n\n private setOverflowStyles() {\n const hostRect = this.hint.getElementClientRect();\n const {style} = this.elementRef.nativeElement;\n\n style.top = px(hostRect.top - window.innerHeight - TOP_PADDING - BORDER_WIDTH);\n style.left = px(hostRect.left - LEFT_PADDING - BORDER_WIDTH);\n style.width = px(hostRect.width + LEFT_PADDING * 2 + BORDER_WIDTH * 2);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiHintBoxComponent} from './hint-box.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TuiHintBoxComponent],\n exports: [TuiHintBoxComponent],\n})\nexport class TuiHintBoxModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiHoveredModule} from '@taiga-ui/cdk';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHintBoxModule} from './hint-box/hint-box.module';\nimport {TuiHintsHostComponent} from './hints-host.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiHoveredModule,\n TuiHintBoxModule,\n TuiActiveZoneModule,\n ],\n declarations: [TuiHintsHostComponent],\n exports: [TuiHintsHostComponent],\n entryComponents: [TuiHintsHostComponent],\n})\nexport class TuiHintsHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import { Directive, EventEmitter, ElementRef, Inject,
|
|
2
|
+
import { Directive, EventEmitter, ElementRef, Inject, ContentChild, ViewChild, Input, Output, HostBinding, HostListener, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
|
|
3
3
|
import { isNativeKeyboardFocusable, getClosestFocusable, isNativeFocusedIn, isElementEditable, setNativeFocused, tuiDefaultProp, TuiActiveZoneDirective, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiObscuredModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
|
|
4
4
|
import { TuiDropdownDirective, TuiDropdownModule } from '@taiga-ui/core/directives/dropdown';
|
|
5
5
|
import { TuiDropdownControllerDirective, TUI_DROPDOWN_WATCHED_CONTROLLER, DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/core/directives/dropdown-controller';
|
|
@@ -153,6 +153,15 @@ TuiHostedDropdownComponent.ctorParameters = () => [
|
|
|
153
153
|
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
154
154
|
{ type: TuiDropdownControllerDirective, decorators: [{ type: Inject, args: [TUI_DROPDOWN_WATCHED_CONTROLLER,] }] }
|
|
155
155
|
];
|
|
156
|
+
__decorate([
|
|
157
|
+
ContentChild(TuiHostedDropdownConnectorDirective, { read: ElementRef })
|
|
158
|
+
], TuiHostedDropdownComponent.prototype, "dropdownHost", void 0);
|
|
159
|
+
__decorate([
|
|
160
|
+
ViewChild('wrapper', { read: ElementRef })
|
|
161
|
+
], TuiHostedDropdownComponent.prototype, "wrapper", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
ViewChild(TuiDropdownDirective)
|
|
164
|
+
], TuiHostedDropdownComponent.prototype, "dropdownDirective", void 0);
|
|
156
165
|
__decorate([
|
|
157
166
|
Input(),
|
|
158
167
|
tuiDefaultProp()
|
|
@@ -174,15 +183,6 @@ __decorate([
|
|
|
174
183
|
__decorate([
|
|
175
184
|
ViewChild(TuiActiveZoneDirective)
|
|
176
185
|
], TuiHostedDropdownComponent.prototype, "activeZone", void 0);
|
|
177
|
-
__decorate([
|
|
178
|
-
ContentChild(TuiHostedDropdownConnectorDirective, { read: ElementRef })
|
|
179
|
-
], TuiHostedDropdownComponent.prototype, "dropdownHost", void 0);
|
|
180
|
-
__decorate([
|
|
181
|
-
ViewChild('wrapper', { read: ElementRef })
|
|
182
|
-
], TuiHostedDropdownComponent.prototype, "wrapper", void 0);
|
|
183
|
-
__decorate([
|
|
184
|
-
ViewChild(TuiDropdownDirective)
|
|
185
|
-
], TuiHostedDropdownComponent.prototype, "dropdownDirective", void 0);
|
|
186
186
|
__decorate([
|
|
187
187
|
HostBinding('class._hosted_dropdown_focused')
|
|
188
188
|
], TuiHostedDropdownComponent.prototype, "focused", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-hosted-dropdown.js","sources":["ng://@taiga-ui/core/components/hosted-dropdown/hosted-dropdown-connector.directive.ts","ng://@taiga-ui/core/components/hosted-dropdown/hosted-dropdown.component.ts","ng://@taiga-ui/core/components/hosted-dropdown/hosted-dropdown.module.ts","ng://@taiga-ui/core/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[tuiHostedDropdownHost]',\n})\nexport class TuiHostedDropdownConnectorDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n getClosestFocusable,\n isElementEditable,\n isNativeFocusedIn,\n isNativeKeyboardFocusable,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiActiveZoneDirective,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {\n DROPDOWN_CONTROLLER_PROVIDER,\n TUI_DROPDOWN_WATCHED_CONTROLLER,\n TuiDropdownControllerDirective,\n} from '@taiga-ui/core/directives/dropdown-controller';\nimport {isEditingKey} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\n@Component({\n selector: 'tui-hosted-dropdown',\n templateUrl: './hosted-dropdown.template.html',\n styleUrls: ['./hosted-dropdown.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiHostedDropdownComponent),\n },\n DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiHostedDropdownComponent implements TuiFocusableElementAccessor {\n @Input()\n @tuiDefaultProp()\n content: PolymorpheusContent = '';\n\n @Input()\n @tuiDefaultProp()\n canOpen = true;\n\n @Input()\n @tuiDefaultProp()\n open = false;\n\n @Output()\n readonly openChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @ViewChild(TuiActiveZoneDirective)\n readonly activeZone?: TuiActiveZoneDirective;\n\n @ContentChild(TuiHostedDropdownConnectorDirective, {read: ElementRef})\n private dropdownHost?: ElementRef<HTMLElement>;\n\n @ViewChild('wrapper', {read: ElementRef})\n private wrapper?: ElementRef<HTMLDivElement>;\n\n @ViewChild(TuiDropdownDirective)\n private dropdownDirective?: TuiDropdownDirective;\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef,\n @Inject(TUI_DROPDOWN_WATCHED_CONTROLLER)\n readonly controller: TuiDropdownControllerDirective,\n ) {}\n\n get host(): HTMLElement {\n return this.dropdownHost\n ? this.dropdownHost.nativeElement\n : this.elementRef.nativeElement;\n }\n\n get dropdown(): HTMLElement | null {\n return !this.dropdownDirective || this.dropdownDirective.dropdownBoxRef === null\n ? null\n : this.dropdownDirective.dropdownBoxRef.location.nativeElement;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return isNativeKeyboardFocusable(this.host)\n ? this.host\n : getClosestFocusable(this.host, false, this.elementRef.nativeElement);\n }\n\n @HostBinding('class._hosted_dropdown_focused')\n get focused(): boolean {\n return (\n isNativeFocusedIn(this.host) ||\n (this.open && !!this.wrapper && isNativeFocusedIn(this.wrapper.nativeElement))\n );\n }\n\n @HostListener('focusin', ['$event.target'])\n onFocusIn(target: HTMLElement) {\n const host = this.dropdownHost\n ? this.dropdownHost.nativeElement\n : this.nativeFocusableElement || this.elementRef.nativeElement;\n\n if (!host.contains(target)) {\n this.updateOpen(false);\n }\n }\n\n @HostListener('click', ['$event.target'])\n onClick(target: HTMLElement) {\n const host = this.nativeFocusableElement || this.host;\n const dropdownHost = this.dropdownHost ? this.dropdownHost.nativeElement : host;\n\n if (!this.hostEditable && dropdownHost.contains(target)) {\n this.updateOpen(!this.open);\n }\n }\n\n @HostListener('keydown.esc', ['$event'])\n onKeyDownEsc(event: KeyboardEvent) {\n if (!this.canOpen || !this.open) {\n return;\n }\n\n event.stopPropagation();\n this.closeDropdown();\n }\n\n @HostListener('keydown.arrowDown', ['$event', 'true'])\n @HostListener('keydown.arrowUp', ['$event', 'false'])\n onArrow(event: KeyboardEvent, down: boolean) {\n this.focusDropdown(event, down);\n }\n\n onKeydown({key, target, defaultPrevented}: KeyboardEvent) {\n if (\n !defaultPrevented &&\n isEditingKey(key) &&\n this.hostEditable &&\n // TODO: iframe warning\n target instanceof HTMLElement &&\n !isElementEditable(target)\n ) {\n this.focusHost();\n }\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n\n if (!active) {\n this.updateOpen(false);\n }\n }\n\n onHostObscured(obscured: boolean) {\n if (obscured) {\n this.closeDropdown();\n }\n }\n\n updateOpen(open: boolean) {\n if (open && !this.canOpen) {\n return;\n }\n\n this.open = open;\n this.openChange.emit(open);\n }\n\n private get hostEditable(): boolean {\n const host = this.nativeFocusableElement || this.host;\n\n // TODO: iframe warning\n return host instanceof HTMLElement && isElementEditable(host);\n }\n\n private focusDropdown(event: KeyboardEvent, first: boolean) {\n const host = this.nativeFocusableElement;\n\n // TODO: iframe warning\n if (\n !host ||\n !(host instanceof HTMLElement) ||\n !(event.target instanceof Node) ||\n !host.contains(event.target)\n ) {\n return;\n }\n\n if (\n !this.wrapper ||\n !this.open ||\n this.dropdown === null ||\n // TODO: iframe warning\n !(this.wrapper.nativeElement.nextElementSibling instanceof HTMLElement)\n ) {\n this.updateOpen(true);\n\n if (!isElementEditable(host)) {\n event.preventDefault();\n }\n\n return;\n }\n\n const initial = first\n ? this.wrapper.nativeElement\n : this.wrapper.nativeElement.nextElementSibling;\n const focusable = getClosestFocusable(\n initial,\n !first,\n this.wrapper.nativeElement,\n );\n\n if (focusable === null) {\n return;\n }\n\n setNativeFocused(focusable);\n event.preventDefault();\n }\n\n private closeDropdown() {\n if (this.focused) {\n this.focusHost();\n }\n\n this.updateOpen(false);\n }\n\n private focusHost() {\n const host = this.nativeFocusableElement;\n\n if (host !== null) {\n setNativeFocused(host, true, true);\n }\n }\n\n private updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiObscuredModule} from '@taiga-ui/cdk';\nimport {TuiDropdownModule} from '@taiga-ui/core/directives/dropdown';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHostedDropdownComponent} from './hosted-dropdown.component';\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiObscuredModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiDropdownModule,\n ],\n declarations: [TuiHostedDropdownComponent, TuiHostedDropdownConnectorDirective],\n exports: [TuiHostedDropdownComponent, TuiHostedDropdownConnectorDirective],\n})\nexport class TuiHostedDropdownModule {}\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-core-components-hosted-dropdown.js","sources":["ng://@taiga-ui/core/components/hosted-dropdown/hosted-dropdown-connector.directive.ts","ng://@taiga-ui/core/components/hosted-dropdown/hosted-dropdown.component.ts","ng://@taiga-ui/core/components/hosted-dropdown/hosted-dropdown.module.ts","ng://@taiga-ui/core/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[tuiHostedDropdownHost]',\n})\nexport class TuiHostedDropdownConnectorDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n getClosestFocusable,\n isElementEditable,\n isNativeFocusedIn,\n isNativeKeyboardFocusable,\n setNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiActiveZoneDirective,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {\n DROPDOWN_CONTROLLER_PROVIDER,\n TUI_DROPDOWN_WATCHED_CONTROLLER,\n TuiDropdownControllerDirective,\n} from '@taiga-ui/core/directives/dropdown-controller';\nimport {isEditingKey} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\n@Component({\n selector: 'tui-hosted-dropdown',\n templateUrl: './hosted-dropdown.template.html',\n styleUrls: ['./hosted-dropdown.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiHostedDropdownComponent),\n },\n DROPDOWN_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiHostedDropdownComponent implements TuiFocusableElementAccessor {\n @ContentChild(TuiHostedDropdownConnectorDirective, {read: ElementRef})\n private dropdownHost?: ElementRef<HTMLElement>;\n\n @ViewChild('wrapper', {read: ElementRef})\n private wrapper?: ElementRef<HTMLDivElement>;\n\n @ViewChild(TuiDropdownDirective)\n private dropdownDirective?: TuiDropdownDirective;\n\n @Input()\n @tuiDefaultProp()\n content: PolymorpheusContent = '';\n\n @Input()\n @tuiDefaultProp()\n canOpen = true;\n\n @Input()\n @tuiDefaultProp()\n open = false;\n\n @Output()\n readonly openChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @ViewChild(TuiActiveZoneDirective)\n readonly activeZone?: TuiActiveZoneDirective;\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef,\n @Inject(TUI_DROPDOWN_WATCHED_CONTROLLER)\n readonly controller: TuiDropdownControllerDirective,\n ) {}\n\n get host(): HTMLElement {\n return this.dropdownHost\n ? this.dropdownHost.nativeElement\n : this.elementRef.nativeElement;\n }\n\n get dropdown(): HTMLElement | null {\n return !this.dropdownDirective || this.dropdownDirective.dropdownBoxRef === null\n ? null\n : this.dropdownDirective.dropdownBoxRef.location.nativeElement;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return isNativeKeyboardFocusable(this.host)\n ? this.host\n : getClosestFocusable(this.host, false, this.elementRef.nativeElement);\n }\n\n @HostBinding('class._hosted_dropdown_focused')\n get focused(): boolean {\n return (\n isNativeFocusedIn(this.host) ||\n (this.open && !!this.wrapper && isNativeFocusedIn(this.wrapper.nativeElement))\n );\n }\n\n @HostListener('focusin', ['$event.target'])\n onFocusIn(target: HTMLElement) {\n const host = this.dropdownHost\n ? this.dropdownHost.nativeElement\n : this.nativeFocusableElement || this.elementRef.nativeElement;\n\n if (!host.contains(target)) {\n this.updateOpen(false);\n }\n }\n\n @HostListener('click', ['$event.target'])\n onClick(target: HTMLElement) {\n const host = this.nativeFocusableElement || this.host;\n const dropdownHost = this.dropdownHost ? this.dropdownHost.nativeElement : host;\n\n if (!this.hostEditable && dropdownHost.contains(target)) {\n this.updateOpen(!this.open);\n }\n }\n\n @HostListener('keydown.esc', ['$event'])\n onKeyDownEsc(event: KeyboardEvent) {\n if (!this.canOpen || !this.open) {\n return;\n }\n\n event.stopPropagation();\n this.closeDropdown();\n }\n\n @HostListener('keydown.arrowDown', ['$event', 'true'])\n @HostListener('keydown.arrowUp', ['$event', 'false'])\n onArrow(event: KeyboardEvent, down: boolean) {\n this.focusDropdown(event, down);\n }\n\n onKeydown({key, target, defaultPrevented}: KeyboardEvent) {\n if (\n !defaultPrevented &&\n isEditingKey(key) &&\n this.hostEditable &&\n // TODO: iframe warning\n target instanceof HTMLElement &&\n !isElementEditable(target)\n ) {\n this.focusHost();\n }\n }\n\n onActiveZone(active: boolean) {\n this.updateFocused(active);\n\n if (!active) {\n this.updateOpen(false);\n }\n }\n\n onHostObscured(obscured: boolean) {\n if (obscured) {\n this.closeDropdown();\n }\n }\n\n updateOpen(open: boolean) {\n if (open && !this.canOpen) {\n return;\n }\n\n this.open = open;\n this.openChange.emit(open);\n }\n\n private get hostEditable(): boolean {\n const host = this.nativeFocusableElement || this.host;\n\n // TODO: iframe warning\n return host instanceof HTMLElement && isElementEditable(host);\n }\n\n private focusDropdown(event: KeyboardEvent, first: boolean) {\n const host = this.nativeFocusableElement;\n\n // TODO: iframe warning\n if (\n !host ||\n !(host instanceof HTMLElement) ||\n !(event.target instanceof Node) ||\n !host.contains(event.target)\n ) {\n return;\n }\n\n if (\n !this.wrapper ||\n !this.open ||\n this.dropdown === null ||\n // TODO: iframe warning\n !(this.wrapper.nativeElement.nextElementSibling instanceof HTMLElement)\n ) {\n this.updateOpen(true);\n\n if (!isElementEditable(host)) {\n event.preventDefault();\n }\n\n return;\n }\n\n const initial = first\n ? this.wrapper.nativeElement\n : this.wrapper.nativeElement.nextElementSibling;\n const focusable = getClosestFocusable(\n initial,\n !first,\n this.wrapper.nativeElement,\n );\n\n if (focusable === null) {\n return;\n }\n\n setNativeFocused(focusable);\n event.preventDefault();\n }\n\n private closeDropdown() {\n if (this.focused) {\n this.focusHost();\n }\n\n this.updateOpen(false);\n }\n\n private focusHost() {\n const host = this.nativeFocusableElement;\n\n if (host !== null) {\n setNativeFocused(host, true, true);\n }\n }\n\n private updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiObscuredModule} from '@taiga-ui/cdk';\nimport {TuiDropdownModule} from '@taiga-ui/core/directives/dropdown';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHostedDropdownComponent} from './hosted-dropdown.component';\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiObscuredModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiDropdownModule,\n ],\n declarations: [TuiHostedDropdownComponent, TuiHostedDropdownConnectorDirective],\n exports: [TuiHostedDropdownComponent, TuiHostedDropdownConnectorDirective],\n})\nexport class TuiHostedDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
2
|
import { EventEmitter, Inject, Input, Output, HostBinding, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
|
-
import { TuiMonth, ALWAYS_FALSE_HANDLER,
|
|
3
|
+
import { TuiDay, TuiMonth, ALWAYS_FALSE_HANDLER, TuiDayRange, nullableSame, tuiDefaultProp, TuiLetModule, TuiMapperPipeModule, TuiRepeatTimesModule, TuiHoveredModule, TuiPressedModule } from '@taiga-ui/cdk';
|
|
4
4
|
import { TUI_DEFAULT_MARKER_HANDLER } from '@taiga-ui/core/constants';
|
|
5
5
|
import { TUI_ORDERED_SHORT_WEEK_DAYS } from '@taiga-ui/core/tokens';
|
|
6
6
|
import { Observable } from 'rxjs';
|
|
@@ -12,6 +12,8 @@ import { TuiCalendarSheetPipeModule } from '@taiga-ui/core/pipes';
|
|
|
12
12
|
let TuiPrimitiveCalendarComponent = class TuiPrimitiveCalendarComponent {
|
|
13
13
|
constructor(weekDays$) {
|
|
14
14
|
this.weekDays$ = weekDays$;
|
|
15
|
+
this.pressedItem = null;
|
|
16
|
+
this.today = TuiDay.currentLocal();
|
|
15
17
|
this.month = TuiMonth.currentLocal();
|
|
16
18
|
this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
|
|
17
19
|
this.markerHandler = TUI_DEFAULT_MARKER_HANDLER;
|
|
@@ -20,8 +22,6 @@ let TuiPrimitiveCalendarComponent = class TuiPrimitiveCalendarComponent {
|
|
|
20
22
|
this.showAdjacent = true;
|
|
21
23
|
this.hoveredItemChange = new EventEmitter();
|
|
22
24
|
this.dayClick = new EventEmitter();
|
|
23
|
-
this.pressedItem = null;
|
|
24
|
-
this.today = TuiDay.currentLocal();
|
|
25
25
|
this.toMarkers = (day, today, inRange) => {
|
|
26
26
|
if (today || inRange) {
|
|
27
27
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-primitive-calendar.js","sources":["ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.component.ts","ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.module.ts","ng://@taiga-ui/core/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_MARKER_HANDLER} from '@taiga-ui/core/constants';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\nimport {TUI_ORDERED_SHORT_WEEK_DAYS, WEEK_DAYS_NAMES} from '@taiga-ui/core/tokens';\nimport {TuiColor, TuiMarkerHandler} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-calendar',\n templateUrl: './primitive-calendar.template.html',\n styleUrls: ['./primitive-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveCalendarComponent {\n @Input()\n @tuiDefaultProp()\n month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n value: TuiDayRange | TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n hoveredItem: TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n showAdjacent = true;\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n readonly dayClick = new EventEmitter<TuiDay>();\n\n private pressedItem: TuiDay | null = null;\n\n private today = TuiDay.currentLocal();\n\n readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n inRange: boolean,\n ): null | [TuiColor | string] | [TuiColor | string, TuiColor | string] => {\n if (today || inRange) {\n return null;\n }\n\n const markers = this.markerHandler(day);\n\n return markers.length === 0 ? null : markers;\n };\n\n constructor(\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<WEEK_DAYS_NAMES>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiDay || this.value.isSingleDay)\n );\n }\n\n getItemState(item: TuiDay): TuiInteractiveState | null {\n const {disabledItemHandler, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandler(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem && pressedItem.daySame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem && hoveredItem.daySame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiDay): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay) {\n return value.daySame(item) ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayAfter(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayBefore(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayBefore(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayAfter(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.End;\n }\n\n return value.isSingleDay && value.from.daySame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsDisabled(day: TuiDay): boolean {\n const {disabledItemHandler} = this;\n\n return disabledItemHandler(day);\n }\n\n itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiDay) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n onItemHovered(item: TuiDay | false) {\n this.updateHoveredItem(item || null);\n }\n\n onItemPressed(item: TuiDay | false) {\n this.pressedItem = item || null;\n }\n\n onItemClick(item: TuiDay) {\n this.dayClick.emit(item);\n }\n\n private updateHoveredItem(day: TuiDay | null) {\n if (nullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiColorModule} from '@taiga-ui/core/directives/color';\nimport {TuiCalendarSheetPipeModule} from '@taiga-ui/core/pipes';\n\nimport {TuiPrimitiveCalendarComponent} from './primitive-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiColorModule,\n TuiCalendarSheetPipeModule,\n ],\n declarations: [TuiPrimitiveCalendarComponent],\n exports: [TuiPrimitiveCalendarComponent],\n})\nexport class TuiPrimitiveCalendarModule {}\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-core-components-primitive-calendar.js","sources":["ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.component.ts","ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.module.ts","ng://@taiga-ui/core/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_MARKER_HANDLER} from '@taiga-ui/core/constants';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\nimport {TUI_ORDERED_SHORT_WEEK_DAYS, WEEK_DAYS_NAMES} from '@taiga-ui/core/tokens';\nimport {TuiColor, TuiMarkerHandler} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-calendar',\n templateUrl: './primitive-calendar.template.html',\n styleUrls: ['./primitive-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveCalendarComponent {\n private pressedItem: TuiDay | null = null;\n private today = TuiDay.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n value: TuiDayRange | TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n hoveredItem: TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n showAdjacent = true;\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n readonly dayClick = new EventEmitter<TuiDay>();\n\n constructor(\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<WEEK_DAYS_NAMES>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiDay || this.value.isSingleDay)\n );\n }\n\n readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n inRange: boolean,\n ): null | [TuiColor | string] | [TuiColor | string, TuiColor | string] => {\n if (today || inRange) {\n return null;\n }\n\n const markers = this.markerHandler(day);\n\n return markers.length === 0 ? null : markers;\n };\n\n getItemState(item: TuiDay): TuiInteractiveState | null {\n const {disabledItemHandler, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandler(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem && pressedItem.daySame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem && hoveredItem.daySame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiDay): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay) {\n return value.daySame(item) ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayAfter(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayBefore(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayBefore(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayAfter(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.End;\n }\n\n return value.isSingleDay && value.from.daySame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsDisabled(day: TuiDay): boolean {\n const {disabledItemHandler} = this;\n\n return disabledItemHandler(day);\n }\n\n itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiDay) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n onItemHovered(item: TuiDay | false) {\n this.updateHoveredItem(item || null);\n }\n\n onItemPressed(item: TuiDay | false) {\n this.pressedItem = item || null;\n }\n\n onItemClick(item: TuiDay) {\n this.dayClick.emit(item);\n }\n\n private updateHoveredItem(day: TuiDay | null) {\n if (nullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiColorModule} from '@taiga-ui/core/directives/color';\nimport {TuiCalendarSheetPipeModule} from '@taiga-ui/core/pipes';\n\nimport {TuiPrimitiveCalendarComponent} from './primitive-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiColorModule,\n TuiCalendarSheetPipeModule,\n ],\n declarations: [TuiPrimitiveCalendarComponent],\n exports: [TuiPrimitiveCalendarComponent],\n})\nexport class TuiPrimitiveCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InjectionToken, Inject, Input, HostBinding, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
2
2
|
import { __decorate, __param } from 'tslib';
|
|
3
|
-
import { tuiDefaultProp
|
|
3
|
+
import { tuiDefaultProp } from '@taiga-ui/cdk';
|
|
4
4
|
import { TuiSvgModule } from '@taiga-ui/core/components/svg';
|
|
5
5
|
import { TuiWrapperModule } from '@taiga-ui/core/components/wrapper';
|
|
6
6
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
@@ -30,13 +30,13 @@ const TUI_CHECKBOX_OPTIONS = new InjectionToken('Default parameters for checkbox
|
|
|
30
30
|
let TuiPrimitiveCheckboxComponent = class TuiPrimitiveCheckboxComponent {
|
|
31
31
|
constructor(options) {
|
|
32
32
|
this.options = options;
|
|
33
|
-
this.icon = this.options.icons.checked;
|
|
34
33
|
this.size = this.options.size;
|
|
35
34
|
this.disabled = false;
|
|
36
35
|
this.focused = false;
|
|
37
36
|
this.hovered = false;
|
|
38
37
|
this.pressed = false;
|
|
39
38
|
this.invalid = false;
|
|
39
|
+
this.icon = this.options.icons.checked;
|
|
40
40
|
this.value = false;
|
|
41
41
|
}
|
|
42
42
|
set valueSetter(value) {
|
|
@@ -58,12 +58,6 @@ let TuiPrimitiveCheckboxComponent = class TuiPrimitiveCheckboxComponent {
|
|
|
58
58
|
get empty() {
|
|
59
59
|
return this.value === false;
|
|
60
60
|
}
|
|
61
|
-
get context() {
|
|
62
|
-
return this.getContext(this.size);
|
|
63
|
-
}
|
|
64
|
-
getContext($implicit) {
|
|
65
|
-
return { $implicit };
|
|
66
|
-
}
|
|
67
61
|
setCurrentIcon(value) {
|
|
68
62
|
this.icon =
|
|
69
63
|
value === null
|
|
@@ -103,13 +97,10 @@ __decorate([
|
|
|
103
97
|
Input('value'),
|
|
104
98
|
tuiDefaultProp()
|
|
105
99
|
], TuiPrimitiveCheckboxComponent.prototype, "valueSetter", null);
|
|
106
|
-
__decorate([
|
|
107
|
-
tuiPure
|
|
108
|
-
], TuiPrimitiveCheckboxComponent.prototype, "getContext", null);
|
|
109
100
|
TuiPrimitiveCheckboxComponent = __decorate([
|
|
110
101
|
Component({
|
|
111
102
|
selector: 'tui-primitive-checkbox',
|
|
112
|
-
template: "<tui-wrapper\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focused]=\"focused\"\n [hovered]=\"hovered\"\n [pressed]=\"pressed\"\n [invalid]=\"invalid\"\n>\n <span polymorpheus-outlet [content]=\"icon\" [context]=\"
|
|
103
|
+
template: "<tui-wrapper\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focused]=\"focused\"\n [hovered]=\"hovered\"\n [pressed]=\"pressed\"\n [invalid]=\"invalid\"\n>\n <span polymorpheus-outlet [content]=\"icon\" [context]=\"{$implicit: size}\">\n <ng-template let-icon>\n <tui-svg\n class=\"mark\"\n [class.mark_on]=\"!empty\"\n [src]=\"icon\"\n ></tui-svg>\n </ng-template>\n </span>\n</tui-wrapper>\n",
|
|
113
104
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
114
105
|
styles: [":host{display:block;font-size:0;flex-shrink:0}:host[data-tui-host-size='m']{width:1rem;height:1rem;border-radius:var(--tui-radius-xs)}:host[data-tui-host-size='l']{width:1.5rem;height:1.5rem;border-radius:var(--tui-radius-s)}.mark{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:block;width:100%;height:100%;transform:scale(0)}.mark_on{transform:scale(1)}"]
|
|
115
106
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-primitive-checkbox.js","sources":["ng://@taiga-ui/core/components/primitive-checkbox/checkbox-options.ts","ng://@taiga-ui/core/components/primitive-checkbox/primitive-checkbox.component.ts","ng://@taiga-ui/core/components/primitive-checkbox/primitive-checkbox.module.ts","ng://@taiga-ui/core/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TuiSizeL} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface CheckboxOptions {\n readonly size: TuiSizeL;\n readonly appearances: Readonly<{\n unchecked: string;\n checked: string;\n indeterminate: string;\n }>;\n readonly icons: Readonly<{\n checked: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n indeterminate: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n }>;\n}\n\n/** Default values for the checkbox options. */\nexport const TUI_CHECKBOX_DEFAULT_OPTIONS: CheckboxOptions = {\n size: 'm',\n appearances: {\n unchecked: TuiAppearance.Outline,\n checked: TuiAppearance.Primary,\n indeterminate: TuiAppearance.Primary,\n },\n icons: {\n checked({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconCheck' : 'tuiIconCheckLarge';\n },\n indeterminate({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconMinus' : 'tuiIconMinusLarge';\n },\n },\n};\n\nexport const TUI_CHECKBOX_OPTIONS = new InjectionToken<CheckboxOptions>(\n 'Default parameters for checkbox component',\n {\n factory: () => TUI_CHECKBOX_DEFAULT_OPTIONS,\n },\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {TuiContextWithImplicit, tuiDefaultProp
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-primitive-checkbox.js","sources":["ng://@taiga-ui/core/components/primitive-checkbox/checkbox-options.ts","ng://@taiga-ui/core/components/primitive-checkbox/primitive-checkbox.component.ts","ng://@taiga-ui/core/components/primitive-checkbox/primitive-checkbox.module.ts","ng://@taiga-ui/core/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TuiSizeL} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface CheckboxOptions {\n readonly size: TuiSizeL;\n readonly appearances: Readonly<{\n unchecked: string;\n checked: string;\n indeterminate: string;\n }>;\n readonly icons: Readonly<{\n checked: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n indeterminate: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>>;\n }>;\n}\n\n/** Default values for the checkbox options. */\nexport const TUI_CHECKBOX_DEFAULT_OPTIONS: CheckboxOptions = {\n size: 'm',\n appearances: {\n unchecked: TuiAppearance.Outline,\n checked: TuiAppearance.Primary,\n indeterminate: TuiAppearance.Primary,\n },\n icons: {\n checked({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconCheck' : 'tuiIconCheckLarge';\n },\n indeterminate({$implicit}: TuiContextWithImplicit<TuiSizeL>): string {\n return $implicit === 'm' ? 'tuiIconMinus' : 'tuiIconMinusLarge';\n },\n },\n};\n\nexport const TUI_CHECKBOX_OPTIONS = new InjectionToken<CheckboxOptions>(\n 'Default parameters for checkbox component',\n {\n factory: () => TUI_CHECKBOX_DEFAULT_OPTIONS,\n },\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {TuiContextWithImplicit, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeL} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {CheckboxOptions, TUI_CHECKBOX_OPTIONS} from './checkbox-options';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-checkbox',\n templateUrl: './primitive-checkbox.template.html',\n styleUrls: ['./primitive-checkbox.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveCheckboxComponent {\n @Input()\n @HostBinding('attr.data-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeL = this.options.size;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n focused = false;\n\n @Input()\n @tuiDefaultProp()\n hovered = false;\n\n @Input()\n @tuiDefaultProp()\n pressed = false;\n\n @Input()\n @tuiDefaultProp()\n invalid = false;\n\n @Input('value')\n @tuiDefaultProp()\n set valueSetter(value: boolean | null) {\n if (value !== false) {\n this.setCurrentIcon(value);\n }\n\n this.value = value;\n }\n\n icon: PolymorpheusContent<TuiContextWithImplicit<TuiSizeL>> =\n this.options.icons.checked;\n\n value: boolean | null = false;\n\n constructor(\n @Inject(TUI_CHECKBOX_OPTIONS) private readonly options: CheckboxOptions,\n ) {}\n\n get appearance(): string {\n switch (this.value) {\n case false:\n return this.options.appearances.unchecked;\n case true:\n return this.options.appearances.checked;\n default:\n return this.options.appearances.indeterminate;\n }\n }\n\n get empty(): boolean {\n return this.value === false;\n }\n\n private setCurrentIcon(value: null | boolean) {\n this.icon =\n value === null\n ? this.options.icons.indeterminate\n : this.options.icons.checked;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiWrapperModule} from '@taiga-ui/core/components/wrapper';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPrimitiveCheckboxComponent} from './primitive-checkbox.component';\n\n@NgModule({\n imports: [TuiSvgModule, TuiWrapperModule, PolymorpheusModule],\n declarations: [TuiPrimitiveCheckboxComponent],\n exports: [TuiPrimitiveCheckboxComponent],\n})\nexport class TuiPrimitiveCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import { EventEmitter, Inject, Input, Output,
|
|
2
|
+
import { EventEmitter, Inject, ViewChild, Input, Output, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { AbstractTuiInteractive, isNativeFocused, tuiDefaultProp, TuiFocusVisibleModule, TuiFocusedModule, TuiFocusableModule, TuiPreventDefaultModule } from '@taiga-ui/cdk';
|
|
4
4
|
import { TUI_SPIN_TEXTS } from '@taiga-ui/core/tokens';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
@@ -47,6 +47,9 @@ let TuiPrimitiveSpinButtonComponent = class TuiPrimitiveSpinButtonComponent exte
|
|
|
47
47
|
TuiPrimitiveSpinButtonComponent.ctorParameters = () => [
|
|
48
48
|
{ type: Observable, decorators: [{ type: Inject, args: [TUI_SPIN_TEXTS,] }] }
|
|
49
49
|
];
|
|
50
|
+
__decorate([
|
|
51
|
+
ViewChild('wrapper')
|
|
52
|
+
], TuiPrimitiveSpinButtonComponent.prototype, "wrapper", void 0);
|
|
50
53
|
__decorate([
|
|
51
54
|
Input(),
|
|
52
55
|
tuiDefaultProp()
|
|
@@ -69,9 +72,6 @@ __decorate([
|
|
|
69
72
|
__decorate([
|
|
70
73
|
Output()
|
|
71
74
|
], TuiPrimitiveSpinButtonComponent.prototype, "rightClick", void 0);
|
|
72
|
-
__decorate([
|
|
73
|
-
ViewChild('wrapper')
|
|
74
|
-
], TuiPrimitiveSpinButtonComponent.prototype, "wrapper", void 0);
|
|
75
75
|
TuiPrimitiveSpinButtonComponent = __decorate([
|
|
76
76
|
Component({
|
|
77
77
|
selector: 'tui-primitive-spin-button',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-primitive-spin-button.js","sources":["ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.component.ts","ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.module.ts","ng://@taiga-ui/core/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {AbstractTuiInteractive, isNativeFocused, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TUI_SPIN_TEXTS} from '@taiga-ui/core/tokens';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-spin-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './primitive-spin-button.template.html',\n styleUrls: ['./primitive-spin-button.style.less'],\n})\nexport class TuiPrimitiveSpinButtonComponent extends AbstractTuiInteractive {\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n mode: TuiAppearance = TuiAppearance.Flat;\n\n @Input()\n @tuiDefaultProp()\n leftDisabled = false;\n\n @Input()\n @tuiDefaultProp()\n rightDisabled = false;\n\n @Output()\n readonly leftClick = new EventEmitter<void>();\n\n @Output()\n readonly rightClick = new EventEmitter<void>();\n\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-primitive-spin-button.js","sources":["ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.component.ts","ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.module.ts","ng://@taiga-ui/core/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {AbstractTuiInteractive, isNativeFocused, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TUI_SPIN_TEXTS} from '@taiga-ui/core/tokens';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-spin-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './primitive-spin-button.template.html',\n styleUrls: ['./primitive-spin-button.style.less'],\n})\nexport class TuiPrimitiveSpinButtonComponent extends AbstractTuiInteractive {\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n mode: TuiAppearance = TuiAppearance.Flat;\n\n @Input()\n @tuiDefaultProp()\n leftDisabled = false;\n\n @Input()\n @tuiDefaultProp()\n rightDisabled = false;\n\n @Output()\n readonly leftClick = new EventEmitter<void>();\n\n @Output()\n readonly rightClick = new EventEmitter<void>();\n\n constructor(\n @Inject(TUI_SPIN_TEXTS) readonly spinTexts$: Observable<[string, string]>,\n ) {\n super();\n }\n\n get focused(): boolean {\n return !!this.wrapper && isNativeFocused(this.wrapper.nativeElement);\n }\n\n get leftComputedDisabled(): boolean {\n return this.computedDisabled || this.leftDisabled;\n }\n\n get rightComputedDisabled(): boolean {\n return this.computedDisabled || this.rightDisabled;\n }\n\n onLeftClick() {\n if (!this.leftComputedDisabled) {\n this.leftClick.emit();\n }\n }\n\n onRightClick() {\n if (!this.rightComputedDisabled) {\n this.rightClick.emit();\n }\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiButtonModule} from '@taiga-ui/core/components/button';\n\nimport {TuiPrimitiveSpinButtonComponent} from './primitive-spin-button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusVisibleModule,\n TuiFocusedModule,\n TuiFocusableModule,\n TuiPreventDefaultModule,\n TuiButtonModule,\n ],\n declarations: [TuiPrimitiveSpinButtonComponent],\n exports: [TuiPrimitiveSpinButtonComponent],\n})\nexport class TuiPrimitiveSpinButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAeA;IAOa,+BAA+B,GAA5C,MAAa,+BAAgC,SAAQ,sBAAsB;IA0BvE,YACqC,UAAwC;QAEzE,KAAK,EAAE,CAAC;QAFyB,eAAU,GAAV,UAAU,CAA8B;QArB7E,aAAQ,GAAG,KAAK,CAAC;QAIjB,SAAI,qBAAqC;QAIzC,iBAAY,GAAG,KAAK,CAAC;QAIrB,kBAAa,GAAG,KAAK,CAAC;QAGb,cAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;QAGrC,eAAU,GAAG,IAAI,YAAY,EAAQ,CAAC;KAM9C;IAED,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACxE;IAED,IAAI,oBAAoB;QACpB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC;KACrD;IAED,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC;KACtD;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACzB;KACJ;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1B;KACJ;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,cAAc,CAAC,YAAqB;QAChC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACzC;EACJ;;YApCoD,UAAU,uBAAtD,MAAM,SAAC,cAAc;;AAzB1B;IADC,SAAS,CAAC,SAAS,CAAC;gEAC8B;AAInD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;iEACA;AAIjB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;6DACwB;AAIzC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qEACI;AAIrB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;sEACK;AAGtB;IADC,MAAM,EAAE;kEACqC;AAG9C;IADC,MAAM,EAAE;mEACsC;AAxBtC,+BAA+B;IAN3C,SAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,4uCAAoD;;KAEvD,CAAC;IA4BO,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;GA3BlB,+BAA+B,CA+D3C;;IC7DY,4BAA4B,GAAzC,MAAa,4BAA4B;EAAG;AAA/B,4BAA4B;IAZxC,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,qBAAqB;YACrB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,eAAe;SAClB;QACD,YAAY,EAAE,CAAC,+BAA+B,CAAC;QAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;KAC7C,CAAC;GACW,4BAA4B,CAAG;;ACxB5C;;;;;;"}
|