@cuby-ui/core 0.0.194 → 0.0.195
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/animations/animations.d.ts +36 -36
- package/animations/index.d.ts +1 -1
- package/classes/accessors.d.ts +17 -17
- package/classes/driver.d.ts +16 -16
- package/classes/index.d.ts +3 -3
- package/classes/vehicle.d.ts +6 -6
- package/components/accordion/accordion-item/accordion-item.component.d.ts +11 -11
- package/components/accordion/accordion.component.d.ts +5 -5
- package/components/accordion/accordion.module.d.ts +11 -11
- package/components/accordion/index.d.ts +3 -3
- package/components/alert/alert.component.d.ts +13 -13
- package/components/alert/alert.interfaces.d.ts +9 -9
- package/components/alert/alert.module.d.ts +11 -11
- package/components/alert/alert.service.d.ts +7 -7
- package/components/alert/alert.tokens.d.ts +16 -16
- package/components/alert/alert.types.d.ts +3 -3
- package/components/alert/alerts.component.d.ts +17 -17
- package/components/alert/index.d.ts +8 -8
- package/components/badge/badge.component.d.ts +10 -10
- package/components/badge/badge.module.d.ts +8 -8
- package/components/badge/badge.options.d.ts +8 -8
- package/components/badge/index.d.ts +2 -2
- package/components/banner/banner.component.d.ts +21 -21
- package/components/banner/banner.module.d.ts +11 -11
- package/components/banner/banner.options.d.ts +13 -13
- package/components/banner/index.d.ts +3 -3
- package/components/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +6 -6
- package/components/breadcrumbs/breadcrumbs.component.d.ts +7 -7
- package/components/breadcrumbs/breadcrumbs.module.d.ts +10 -10
- package/components/breadcrumbs/index.d.ts +3 -3
- package/components/button/button.component.d.ts +38 -38
- package/components/button/button.module.d.ts +9 -9
- package/components/button/button.options.d.ts +9 -9
- package/components/button/index.d.ts +3 -3
- package/components/button-group/button-group.component.d.ts +5 -5
- package/components/button-group/button-group.module.d.ts +7 -7
- package/components/button-group/index.d.ts +2 -2
- package/components/checkbox/checkbox.component.d.ts +5 -5
- package/components/checkbox/checkbox.module.d.ts +7 -7
- package/components/checkbox/index.d.ts +2 -2
- package/components/context-menu/context-menu.component.d.ts +39 -39
- package/components/context-menu/context-menu.module.d.ts +9 -9
- package/components/context-menu/index.d.ts +2 -2
- package/components/dialog/dialog-actions/dialog-actions.component.d.ts +5 -5
- package/components/dialog/dialog-header/dialog-header.component.d.ts +13 -13
- package/components/dialog/dialog.component.d.ts +33 -33
- package/components/dialog/dialog.interfaces.d.ts +11 -11
- package/components/dialog/dialog.module.d.ts +14 -14
- package/components/dialog/dialog.service.d.ts +7 -7
- package/components/dialog/dialog.tokens.d.ts +8 -8
- package/components/dialog/dialogs.component.d.ts +18 -18
- package/components/dialog/index.d.ts +8 -8
- package/components/form-field/form-field.component.d.ts +5 -5
- package/components/form-field/form-field.module.d.ts +7 -7
- package/components/form-field/index.d.ts +2 -2
- package/components/hint/hint.component.d.ts +7 -7
- package/components/hint/hint.module.d.ts +7 -7
- package/components/hint/index.d.ts +2 -2
- package/components/icon-button/icon-button.component.d.ts +13 -13
- package/components/icon-button/icon-button.module.d.ts +9 -9
- package/components/icon-button/index.d.ts +2 -2
- package/components/index.d.ts +26 -26
- package/components/input-number/index.d.ts +2 -2
- package/components/input-number/input-number.component.d.ts +38 -38
- package/components/input-number/input-number.module.d.ts +12 -12
- package/components/input-password/index.d.ts +2 -2
- package/components/input-password/input-password.component.d.ts +31 -31
- package/components/input-password/input-password.module.d.ts +11 -11
- package/components/input-text/index.d.ts +2 -2
- package/components/input-text/input-text.component.d.ts +31 -31
- package/components/input-text/input-text.module.d.ts +11 -11
- package/components/input-time/index.d.ts +3 -3
- package/components/input-time/input-time.component.d.ts +36 -36
- package/components/input-time/input-time.module.d.ts +12 -12
- package/components/input-time/input-time.options.d.ts +7 -7
- package/components/label/index.d.ts +2 -2
- package/components/label/label.component.d.ts +6 -6
- package/components/label/label.module.d.ts +8 -8
- package/components/notification/index.d.ts +3 -3
- package/components/notification/notification.component.d.ts +18 -18
- package/components/notification/notification.module.d.ts +9 -9
- package/components/notification/notification.options.d.ts +17 -17
- package/components/radio/index.d.ts +2 -2
- package/components/radio/radio.component.d.ts +5 -5
- package/components/radio/radio.module.d.ts +7 -7
- package/components/root/index.d.ts +3 -3
- package/components/root/root.component.d.ts +11 -11
- package/components/root/root.module.d.ts +11 -11
- package/components/root/root.options.d.ts +1 -1
- package/components/select/index.d.ts +2 -2
- package/components/select/select.component.d.ts +53 -53
- package/components/select/select.module.d.ts +11 -11
- package/components/svg/index.d.ts +2 -2
- package/components/svg/svg.component.d.ts +16 -16
- package/components/svg/svg.module.d.ts +8 -8
- package/components/tabs/index.d.ts +3 -3
- package/components/tabs/tab/index.d.ts +1 -1
- package/components/tabs/tab/tab.component.d.ts +8 -8
- package/components/tabs/tabs.component.d.ts +16 -16
- package/components/tabs/tabs.module.d.ts +8 -8
- package/components/textarea/index.d.ts +2 -2
- package/components/textarea/textarea.component.d.ts +10 -10
- package/components/textarea/textarea.module.d.ts +7 -7
- package/components/toggle/index.d.ts +2 -2
- package/components/toggle/toggle.component.d.ts +5 -5
- package/components/toggle/toggle.module.d.ts +7 -7
- package/directives/index.d.ts +2 -2
- package/directives/text-field-controller/index.d.ts +8 -8
- package/directives/text-field-controller/text-field-controller.module.d.ts +11 -11
- package/directives/text-field-controller/text-field-controller.provider.d.ts +4 -4
- package/directives/text-field-controller/text-field-icon-left.directive.d.ts +9 -9
- package/directives/text-field-controller/text-field-id.directive.d.ts +8 -8
- package/directives/text-field-controller/text-field-is-error.directive.d.ts +8 -8
- package/directives/text-field-controller/text-field-placeholder.directive.d.ts +8 -8
- package/directives/text-field-controller/text-field-size.directive.d.ts +9 -9
- package/directives/text-field-controller/text-field.controller.d.ts +20 -20
- package/directives/tooltip/index.d.ts +16 -16
- package/directives/tooltip/tooltip-describe.directive.d.ts +16 -16
- package/directives/tooltip/tooltip-driver.directive.d.ts +7 -7
- package/directives/tooltip/tooltip-host.directive.d.ts +9 -9
- package/directives/tooltip/tooltip-hover.directive.d.ts +21 -21
- package/directives/tooltip/tooltip-manual.directive.d.ts +13 -13
- package/directives/tooltip/tooltip-options.directive.d.ts +36 -36
- package/directives/tooltip/tooltip-overflow.directive.d.ts +8 -8
- package/directives/tooltip/tooltip-pointer.directive.d.ts +10 -10
- package/directives/tooltip/tooltip-position.directive.d.ts +20 -20
- package/directives/tooltip/tooltip-unstyled.component.d.ts +17 -17
- package/directives/tooltip/tooltip.component.d.ts +33 -33
- package/directives/tooltip/tooltip.d.ts +13 -13
- package/directives/tooltip/tooltip.directive.d.ts +26 -26
- package/directives/tooltip/tooltip.providers.d.ts +5 -5
- package/directives/tooltip/tooltip.service.d.ts +13 -13
- package/directives/tooltip/tooltips.component.d.ts +12 -12
- package/esm2022/animations/animations.mjs +271 -271
- package/esm2022/animations/index.mjs +1 -1
- package/esm2022/classes/accessors.mjs +30 -30
- package/esm2022/classes/driver.mjs +34 -34
- package/esm2022/classes/index.mjs +3 -3
- package/esm2022/classes/vehicle.mjs +6 -6
- package/esm2022/components/accordion/accordion-item/accordion-item.component.mjs +27 -27
- package/esm2022/components/accordion/accordion.component.mjs +10 -10
- package/esm2022/components/accordion/accordion.module.mjs +36 -36
- package/esm2022/components/accordion/index.mjs +3 -3
- package/esm2022/components/alert/alert.component.mjs +35 -35
- package/esm2022/components/alert/alert.interfaces.mjs +1 -1
- package/esm2022/components/alert/alert.module.mjs +39 -39
- package/esm2022/components/alert/alert.service.mjs +16 -16
- package/esm2022/components/alert/alert.tokens.mjs +19 -19
- package/esm2022/components/alert/alert.types.mjs +1 -1
- package/esm2022/components/alert/alerts.component.mjs +35 -35
- package/esm2022/components/alert/index.mjs +8 -8
- package/esm2022/components/badge/badge.component.mjs +30 -30
- package/esm2022/components/badge/badge.module.mjs +17 -17
- package/esm2022/components/badge/badge.options.mjs +7 -7
- package/esm2022/components/badge/index.mjs +2 -2
- package/esm2022/components/banner/banner.component.mjs +67 -67
- package/esm2022/components/banner/banner.module.mjs +30 -30
- package/esm2022/components/banner/banner.options.mjs +5 -5
- package/esm2022/components/banner/index.mjs +3 -3
- package/esm2022/components/breadcrumbs/breadcrumb/breadcrumb.component.mjs +15 -15
- package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +16 -16
- package/esm2022/components/breadcrumbs/breadcrumbs.module.mjs +32 -32
- package/esm2022/components/breadcrumbs/index.mjs +3 -3
- package/esm2022/components/button/button.component.mjs +137 -137
- package/esm2022/components/button/button.module.mjs +23 -23
- package/esm2022/components/button/button.options.mjs +9 -9
- package/esm2022/components/button/index.mjs +3 -3
- package/esm2022/components/button-group/button-group.component.mjs +10 -10
- package/esm2022/components/button-group/button-group.module.mjs +15 -15
- package/esm2022/components/button-group/index.mjs +2 -2
- package/esm2022/components/checkbox/checkbox.component.mjs +10 -10
- package/esm2022/components/checkbox/checkbox.module.mjs +15 -15
- package/esm2022/components/checkbox/index.mjs +2 -2
- package/esm2022/components/context-menu/context-menu.component.mjs +147 -147
- package/esm2022/components/context-menu/context-menu.module.mjs +23 -23
- package/esm2022/components/context-menu/index.mjs +2 -2
- package/esm2022/components/dialog/dialog-actions/dialog-actions.component.mjs +10 -10
- package/esm2022/components/dialog/dialog-header/dialog-header.component.mjs +27 -27
- package/esm2022/components/dialog/dialog.component.mjs +66 -66
- package/esm2022/components/dialog/dialog.interfaces.mjs +1 -1
- package/esm2022/components/dialog/dialog.module.mjs +48 -48
- package/esm2022/components/dialog/dialog.service.mjs +16 -16
- package/esm2022/components/dialog/dialog.tokens.mjs +11 -11
- package/esm2022/components/dialog/dialogs.component.mjs +50 -50
- package/esm2022/components/dialog/index.mjs +8 -8
- package/esm2022/components/form-field/form-field.component.mjs +10 -10
- package/esm2022/components/form-field/form-field.module.mjs +15 -15
- package/esm2022/components/form-field/index.mjs +2 -2
- package/esm2022/components/hint/hint.component.mjs +18 -18
- package/esm2022/components/hint/hint.module.mjs +15 -15
- package/esm2022/components/hint/index.mjs +2 -2
- package/esm2022/components/icon-button/icon-button.component.mjs +31 -31
- package/esm2022/components/icon-button/icon-button.module.mjs +23 -23
- package/esm2022/components/icon-button/index.mjs +2 -2
- package/esm2022/components/index.mjs +26 -26
- package/esm2022/components/input-number/index.mjs +2 -2
- package/esm2022/components/input-number/input-number.component.mjs +112 -112
- package/esm2022/components/input-number/input-number.module.mjs +35 -35
- package/esm2022/components/input-password/index.mjs +2 -2
- package/esm2022/components/input-password/input-password.component.mjs +88 -88
- package/esm2022/components/input-password/input-password.module.mjs +32 -32
- package/esm2022/components/input-text/index.mjs +2 -2
- package/esm2022/components/input-text/input-text.component.mjs +86 -86
- package/esm2022/components/input-text/input-text.module.mjs +32 -32
- package/esm2022/components/input-time/index.mjs +3 -3
- package/esm2022/components/input-time/input-time.component.mjs +98 -98
- package/esm2022/components/input-time/input-time.module.mjs +35 -35
- package/esm2022/components/input-time/input-time.options.mjs +7 -7
- package/esm2022/components/label/index.mjs +2 -2
- package/esm2022/components/label/label.component.mjs +16 -16
- package/esm2022/components/label/label.module.mjs +17 -17
- package/esm2022/components/notification/index.mjs +3 -3
- package/esm2022/components/notification/notification.component.mjs +46 -46
- package/esm2022/components/notification/notification.module.mjs +23 -23
- package/esm2022/components/notification/notification.options.mjs +52 -52
- package/esm2022/components/radio/index.mjs +2 -2
- package/esm2022/components/radio/radio.component.mjs +10 -10
- package/esm2022/components/radio/radio.module.mjs +15 -15
- package/esm2022/components/root/index.mjs +3 -3
- package/esm2022/components/root/root.component.mjs +31 -31
- package/esm2022/components/root/root.module.mjs +30 -30
- package/esm2022/components/root/root.options.mjs +1 -1
- package/esm2022/components/select/index.mjs +2 -2
- package/esm2022/components/select/select.component.mjs +171 -171
- package/esm2022/components/select/select.module.mjs +31 -31
- package/esm2022/components/svg/index.mjs +2 -2
- package/esm2022/components/svg/svg.component.mjs +49 -49
- package/esm2022/components/svg/svg.module.mjs +17 -17
- package/esm2022/components/tabs/index.mjs +3 -3
- package/esm2022/components/tabs/tab/index.mjs +1 -1
- package/esm2022/components/tabs/tab/tab.component.mjs +20 -20
- package/esm2022/components/tabs/tabs.component.mjs +48 -48
- package/esm2022/components/tabs/tabs.module.mjs +17 -17
- package/esm2022/components/textarea/index.mjs +2 -2
- package/esm2022/components/textarea/textarea.component.mjs +34 -34
- package/esm2022/components/textarea/textarea.module.mjs +15 -15
- package/esm2022/components/toggle/index.mjs +2 -2
- package/esm2022/components/toggle/toggle.component.mjs +10 -10
- package/esm2022/components/toggle/toggle.module.mjs +15 -15
- package/esm2022/cuby-ui-core.mjs +4 -4
- package/esm2022/directives/index.mjs +2 -2
- package/esm2022/directives/text-field-controller/index.mjs +8 -8
- package/esm2022/directives/text-field-controller/text-field-controller.module.mjs +39 -39
- package/esm2022/directives/text-field-controller/text-field-controller.provider.mjs +23 -23
- package/esm2022/directives/text-field-controller/text-field-icon-left.directive.mjs +20 -20
- package/esm2022/directives/text-field-controller/text-field-id.directive.mjs +20 -20
- package/esm2022/directives/text-field-controller/text-field-is-error.directive.mjs +23 -23
- package/esm2022/directives/text-field-controller/text-field-placeholder.directive.mjs +20 -20
- package/esm2022/directives/text-field-controller/text-field-size.directive.mjs +23 -23
- package/esm2022/directives/text-field-controller/text-field.controller.mjs +24 -24
- package/esm2022/directives/tooltip/index.mjs +16 -16
- package/esm2022/directives/tooltip/tooltip-describe.directive.mjs +44 -44
- package/esm2022/directives/tooltip/tooltip-driver.directive.mjs +17 -17
- package/esm2022/directives/tooltip/tooltip-host.directive.mjs +25 -25
- package/esm2022/directives/tooltip/tooltip-hover.directive.mjs +52 -52
- package/esm2022/directives/tooltip/tooltip-manual.directive.mjs +30 -30
- package/esm2022/directives/tooltip/tooltip-options.directive.mjs +82 -82
- package/esm2022/directives/tooltip/tooltip-overflow.directive.mjs +30 -30
- package/esm2022/directives/tooltip/tooltip-pointer.directive.mjs +30 -30
- package/esm2022/directives/tooltip/tooltip-position.directive.mjs +96 -96
- package/esm2022/directives/tooltip/tooltip-unstyled.component.mjs +39 -39
- package/esm2022/directives/tooltip/tooltip.component.mjs +98 -98
- package/esm2022/directives/tooltip/tooltip.directive.mjs +91 -91
- package/esm2022/directives/tooltip/tooltip.mjs +26 -26
- package/esm2022/directives/tooltip/tooltip.providers.mjs +6 -6
- package/esm2022/directives/tooltip/tooltip.service.mjs +27 -27
- package/esm2022/directives/tooltip/tooltips.component.mjs +32 -32
- package/esm2022/index.mjs +8 -7
- package/esm2022/interceptors/index.mjs +2 -0
- package/esm2022/interceptors/x-ndjson.interceptor.mjs +48 -0
- package/esm2022/interfaces/context-menu-item.mjs +1 -1
- package/esm2022/interfaces/index.mjs +3 -3
- package/esm2022/interfaces/option.mjs +1 -1
- package/esm2022/services/index.mjs +4 -4
- package/esm2022/services/position.service.mjs +22 -22
- package/esm2022/services/theme.options.mjs +5 -5
- package/esm2022/services/theme.service.mjs +29 -29
- package/esm2022/services/visual-viewport.service.mjs +27 -27
- package/esm2022/tokens/animations-speed.mjs +7 -7
- package/esm2022/tokens/index.mjs +3 -3
- package/esm2022/tokens/reduced-motion.mjs +5 -5
- package/esm2022/tokens/viewport.mjs +30 -30
- package/esm2022/types/appearance.mjs +1 -1
- package/esm2022/types/hint-type.mjs +1 -1
- package/esm2022/types/index.mjs +9 -9
- package/esm2022/types/point.mjs +1 -1
- package/esm2022/types/portal-item.mjs +1 -1
- package/esm2022/types/position.mjs +1 -1
- package/esm2022/types/resizing.mjs +1 -1
- package/esm2022/types/shape.mjs +1 -1
- package/esm2022/types/size.mjs +1 -1
- package/esm2022/types/status.mjs +1 -1
- package/esm2022/utils/format/index.mjs +2 -2
- package/esm2022/utils/format/remove-spaces.mjs +3 -3
- package/esm2022/utils/format/replace.mjs +4 -4
- package/esm2022/utils/index.mjs +2 -2
- package/esm2022/utils/miscellaneous/index.mjs +3 -3
- package/esm2022/utils/miscellaneous/is-obscured.mjs +7 -7
- package/esm2022/utils/miscellaneous/override-options.mjs +10 -10
- package/esm2022/utils/miscellaneous/to-animation-options.mjs +13 -13
- package/fesm2022/cuby-ui-core.mjs +3230 -3183
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/index.d.ts +7 -6
- package/interceptors/index.d.ts +1 -0
- package/interceptors/x-ndjson.interceptor.d.ts +2 -0
- package/interfaces/context-menu-item.d.ts +7 -7
- package/interfaces/index.d.ts +2 -2
- package/interfaces/option.d.ts +5 -5
- package/package.json +6 -6
- package/services/index.d.ts +4 -4
- package/services/position.service.d.ts +10 -10
- package/services/theme.options.d.ts +5 -5
- package/services/theme.service.d.ts +12 -12
- package/services/visual-viewport.service.d.ts +9 -9
- package/styles/reset.scss +111 -0
- package/tokens/animations-speed.d.ts +4 -4
- package/tokens/index.d.ts +3 -3
- package/tokens/reduced-motion.d.ts +1 -1
- package/tokens/viewport.d.ts +7 -7
- package/types/appearance.d.ts +8 -8
- package/types/hint-type.d.ts +1 -1
- package/types/index.d.ts +9 -9
- package/types/point.d.ts +1 -1
- package/types/portal-item.d.ts +9 -9
- package/types/position.d.ts +2 -2
- package/types/resizing.d.ts +2 -2
- package/types/shape.d.ts +1 -1
- package/types/size.d.ts +4 -4
- package/types/status.d.ts +1 -1
- package/utils/format/index.d.ts +2 -2
- package/utils/format/remove-spaces.d.ts +1 -1
- package/utils/format/replace.d.ts +1 -1
- package/utils/index.d.ts +2 -2
- package/utils/miscellaneous/index.d.ts +3 -3
- package/utils/miscellaneous/is-obscured.d.ts +4 -4
- package/utils/miscellaneous/override-options.d.ts +1 -1
- package/utils/miscellaneous/to-animation-options.d.ts +4 -4
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Directive, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
3
|
-
import { EMPTY_CLIENT_RECT, CUI_IS_MOBILE, cuiPure } from '@cuby-ui/cdk';
|
|
4
|
-
import { cuiFallbackAccessor, CuiPositionAccessor, CuiRectAccessor, } from '../../classes';
|
|
5
|
-
import { CUI_VIEWPORT } from '../../tokens';
|
|
6
|
-
import { CuiTooltipDirective } from './tooltip.directive';
|
|
7
|
-
import { CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS } from './tooltip-options.directive';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
const GAP = 8;
|
|
10
|
-
const ARROW_OFFSET = 24;
|
|
11
|
-
const TOP = 0;
|
|
12
|
-
const LEFT = 1;
|
|
13
|
-
export class CuiTooltipPosition extends CuiPositionAccessor {
|
|
14
|
-
constructor() {
|
|
15
|
-
super(...arguments);
|
|
16
|
-
this.offset = inject(CUI_IS_MOBILE) ? 16 : 5;
|
|
17
|
-
this.viewport = inject(CUI_VIEWPORT);
|
|
18
|
-
this.accessor = cuiFallbackAccessor('hint')(inject(CuiRectAccessor), inject(CuiTooltipDirective));
|
|
19
|
-
this.points = CUI_TOOLTIP_DIRECTIONS.reduce((acc, direction) => ({ ...acc, [direction]: [0, 0] }), {});
|
|
20
|
-
this.direction = inject(CUI_TOOLTIP_OPTIONS).direction;
|
|
21
|
-
this.directionChange = new EventEmitter();
|
|
22
|
-
this.type = 'hint';
|
|
23
|
-
}
|
|
24
|
-
emitDirection(direction) {
|
|
25
|
-
this.directionChange.emit(direction);
|
|
26
|
-
}
|
|
27
|
-
getPosition(rect, el) {
|
|
28
|
-
const width = el?.clientWidth ?? rect.width;
|
|
29
|
-
const height = el?.clientHeight ?? rect.height;
|
|
30
|
-
const hostRect = this.accessor.getClientRect() ?? EMPTY_CLIENT_RECT;
|
|
31
|
-
const leftCenter = hostRect.left + hostRect.width / 2;
|
|
32
|
-
const topCenter = hostRect.top + hostRect.height / 2;
|
|
33
|
-
this.points['top-left'][TOP] = hostRect.top - height - this.offset;
|
|
34
|
-
this.points['top-left'][LEFT] = leftCenter - width + ARROW_OFFSET;
|
|
35
|
-
this.points.top[TOP] = this.points['top-left'][TOP];
|
|
36
|
-
this.points.top[LEFT] = leftCenter - width / 2;
|
|
37
|
-
this.points['top-right'][TOP] = this.points['top-left'][TOP];
|
|
38
|
-
this.points['top-right'][LEFT] = leftCenter - ARROW_OFFSET;
|
|
39
|
-
this.points['bottom-left'][TOP] = hostRect.bottom + this.offset;
|
|
40
|
-
this.points['bottom-left'][LEFT] = this.points['top-left'][LEFT];
|
|
41
|
-
this.points.bottom[TOP] = this.points['bottom-left'][TOP];
|
|
42
|
-
this.points.bottom[LEFT] = this.points.top[LEFT];
|
|
43
|
-
this.points['bottom-right'][TOP] = this.points['bottom-left'][TOP];
|
|
44
|
-
this.points['bottom-right'][LEFT] = this.points['top-right'][LEFT];
|
|
45
|
-
this.points['left-top'][TOP] = topCenter - height + ARROW_OFFSET;
|
|
46
|
-
this.points['left-top'][LEFT] = hostRect.left - width - this.offset;
|
|
47
|
-
this.points.left[TOP] = topCenter - height / 2;
|
|
48
|
-
this.points.left[LEFT] = this.points['left-top'][LEFT];
|
|
49
|
-
this.points['left-bottom'][TOP] = topCenter - ARROW_OFFSET;
|
|
50
|
-
this.points['left-bottom'][LEFT] = this.points['left-top'][LEFT];
|
|
51
|
-
this.points['right-top'][TOP] = this.points['left-top'][TOP];
|
|
52
|
-
this.points['right-top'][LEFT] = hostRect.right + this.offset;
|
|
53
|
-
this.points.right[TOP] = this.points.left[TOP];
|
|
54
|
-
this.points.right[LEFT] = this.points['right-top'][LEFT];
|
|
55
|
-
this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];
|
|
56
|
-
this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];
|
|
57
|
-
const priorityDirections = Array.isArray(this.direction)
|
|
58
|
-
? this.direction
|
|
59
|
-
: [this.direction];
|
|
60
|
-
const sortedDirections = priorityDirections.concat(CUI_TOOLTIP_DIRECTIONS);
|
|
61
|
-
const direction = sortedDirections.find((direction) => this.checkPosition(this.points[direction], width, height));
|
|
62
|
-
this.emitDirection(direction || this.fallback);
|
|
63
|
-
return this.points[direction || this.fallback];
|
|
64
|
-
}
|
|
65
|
-
get fallback() {
|
|
66
|
-
return this.points.top[TOP] >
|
|
67
|
-
this.viewport.getClientRect().bottom - this.points.bottom[TOP]
|
|
68
|
-
? 'top'
|
|
69
|
-
: 'bottom';
|
|
70
|
-
}
|
|
71
|
-
checkPosition([top, left], width, height) {
|
|
72
|
-
const viewport = this.viewport.getClientRect();
|
|
73
|
-
return (top > GAP &&
|
|
74
|
-
left > GAP &&
|
|
75
|
-
top + height < viewport.bottom - GAP &&
|
|
76
|
-
left + width < viewport.right - GAP);
|
|
77
|
-
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
79
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CuiTooltipPosition, isStandalone: true, inputs: { direction: ["cuiTooltipDirection", "direction"] }, outputs: { directionChange: "cuiTooltipDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
|
|
80
|
-
}
|
|
81
|
-
__decorate([
|
|
82
|
-
cuiPure
|
|
83
|
-
], CuiTooltipPosition.prototype, "emitDirection", null);
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipPosition, decorators: [{
|
|
85
|
-
type: Directive,
|
|
86
|
-
args: [{
|
|
87
|
-
standalone: true,
|
|
88
|
-
}]
|
|
89
|
-
}], propDecorators: { direction: [{
|
|
90
|
-
type: Input,
|
|
91
|
-
args: ['cuiTooltipDirection']
|
|
92
|
-
}], directionChange: [{
|
|
93
|
-
type: Output,
|
|
94
|
-
args: ['cuiTooltipDirectionChange']
|
|
95
|
-
}], emitDirection: [] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1wb3NpdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLXBvc2l0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEUsT0FBTyxFQUNILG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDOztBQUV4RixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDZCxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBS2YsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG1CQUFtQjtJQUgzRDs7UUFJcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsbUJBQW1CLENBQWtCLE1BQU0sQ0FBQyxDQUNwRSxNQUFNLENBQU0sZUFBZSxDQUFDLEVBQzVCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUM5QixDQUFDO1FBRWUsV0FBTSxHQUNuQixzQkFBc0IsQ0FBQyxNQUFNLENBQ3pCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUNuRCxFQUFtRCxDQUN0RCxDQUFDO1FBR0MsY0FBUyxHQUFtQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFHekUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUUxRCxTQUFJLEdBQUcsTUFBTSxDQUFDO0tBeUVqQztJQXRFVSxhQUFhLENBQUMsU0FBOEI7UUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFhLEVBQUUsRUFBZ0I7UUFDOUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLEVBQUUsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLGlCQUFpQixDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLEdBQUcsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsR0FBRyxZQUFZLENBQUM7UUFFM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFB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QUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUM5RCxDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbkIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQVcsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUN0RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRS9DLE9BQU8sQ0FDSCxHQUFHLEdBQUcsR0FBRztZQUNULElBQUksR0FBRyxHQUFHO1lBQ1YsR0FBRyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUc7WUFDcEMsSUFBSSxHQUFHLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FDdEMsQ0FBQztJQUNOLENBQUM7K0dBNUZRLGtCQUFrQjttR0FBbEIsa0JBQWtCOztBQXVCM0I7SUFEQyxPQUFPO3VEQUdQOzRGQXpCUSxrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQWdCVSxTQUFTO3NCQURmLEtBQUs7dUJBQUMscUJBQXFCO2dCQUlaLGVBQWU7c0JBRDlCLE1BQU07dUJBQUMsMkJBQTJCO2dCQU01QixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtFTVBUWV9DTElFTlRfUkVDVCwgQ1VJX0lTX01PQklMRSwgY3VpUHVyZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcbmltcG9ydCB7XHJcbiAgICBjdWlGYWxsYmFja0FjY2Vzc29yLFxyXG4gICAgQ3VpUG9zaXRpb25BY2Nlc3NvcixcclxuICAgIEN1aVJlY3RBY2Nlc3NvcixcclxufSBmcm9tICcuLi8uLi9jbGFzc2VzJztcclxuaW1wb3J0IHtDVUlfVklFV1BPUlR9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB0eXBlIHtDdWlQb2ludH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5cclxuaW1wb3J0IHtDdWlUb29sdGlwRGlyZWN0aXZlfSBmcm9tICcuL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHR5cGUge0N1aVRvb2x0aXBEaXJlY3Rpb24sIEN1aVRvb2x0aXBPcHRpb25zfSBmcm9tICcuL3Rvb2x0aXAtb3B0aW9ucy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge0NVSV9UT09MVElQX0RJUkVDVElPTlMsIENVSV9UT09MVElQX09QVElPTlN9IGZyb20gJy4vdG9vbHRpcC1vcHRpb25zLmRpcmVjdGl2ZSc7XHJcblxyXG5jb25zdCBHQVAgPSA4O1xyXG5jb25zdCBBUlJPV19PRkZTRVQgPSAyNDtcclxuY29uc3QgVE9QID0gMDtcclxuY29uc3QgTEVGVCA9IDE7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlUb29sdGlwUG9zaXRpb24gZXh0ZW5kcyBDdWlQb3NpdGlvbkFjY2Vzc29yIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2Zmc2V0ID0gaW5qZWN0KENVSV9JU19NT0JJTEUpID8gMTYgOiA1O1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3cG9ydCA9IGluamVjdChDVUlfVklFV1BPUlQpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2Nlc3NvciA9IGN1aUZhbGxiYWNrQWNjZXNzb3I8Q3VpUmVjdEFjY2Vzc29yPignaGludCcpKFxyXG4gICAgICAgIGluamVjdDxhbnk+KEN1aVJlY3RBY2Nlc3NvciksXHJcbiAgICAgICAgaW5qZWN0KEN1aVRvb2x0aXBEaXJlY3RpdmUpLFxyXG4gICAgKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvaW50czogUmVjb3JkPEN1aVRvb2x0aXBEaXJlY3Rpb24sIFtudW1iZXIsIG51bWJlcl0+ID1cclxuICAgICAgICBDVUlfVE9PTFRJUF9ESVJFQ1RJT05TLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywgZGlyZWN0aW9uKSA9PiAoey4uLmFjYywgW2RpcmVjdGlvbl06IFswLCAwXX0pLFxyXG4gICAgICAgICAgICB7fSBhcyBSZWNvcmQ8Q3VpVG9vbHRpcERpcmVjdGlvbiwgW251bWJlciwgbnVtYmVyXT4sXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBASW5wdXQoJ2N1aVRvb2x0aXBEaXJlY3Rpb24nKVxyXG4gICAgcHVibGljIGRpcmVjdGlvbjogQ3VpVG9vbHRpcE9wdGlvbnNbJ2RpcmVjdGlvbiddID0gaW5qZWN0KENVSV9UT09MVElQX09QVElPTlMpLmRpcmVjdGlvbjtcclxuXHJcbiAgICBAT3V0cHV0KCdjdWlUb29sdGlwRGlyZWN0aW9uQ2hhbmdlJylcclxuICAgIHB1YmxpYyByZWFkb25seSBkaXJlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1aVRvb2x0aXBEaXJlY3Rpb24+KCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnaGludCc7XHJcblxyXG4gICAgQGN1aVB1cmVcclxuICAgIHB1YmxpYyBlbWl0RGlyZWN0aW9uKGRpcmVjdGlvbjogQ3VpVG9vbHRpcERpcmVjdGlvbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uQ2hhbmdlLmVtaXQoZGlyZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UG9zaXRpb24ocmVjdDogRE9NUmVjdCwgZWw/OiBIVE1MRWxlbWVudCk6IEN1aVBvaW50IHtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IGVsPy5jbGllbnRXaWR0aCA/PyByZWN0LndpZHRoO1xyXG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGVsPy5jbGllbnRIZWlnaHQgPz8gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmFjY2Vzc29yLmdldENsaWVudFJlY3QoKSA/PyBFTVBUWV9DTElFTlRfUkVDVDtcclxuICAgICAgICBjb25zdCBsZWZ0Q2VudGVyID0gaG9zdFJlY3QubGVmdCArIGhvc3RSZWN0LndpZHRoIC8gMjtcclxuICAgICAgICBjb25zdCB0b3BDZW50ZXIgPSBob3N0UmVjdC50b3AgKyBob3N0UmVjdC5oZWlnaHQgLyAyO1xyXG5cclxuICAgICAgICB0aGlzLnBvaW50c1sndG9wLWxlZnQnXVtUT1BdID0gaG9zdFJlY3QudG9wIC0gaGVpZ2h0IC0gdGhpcy5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3RvcC1sZWZ0J11bTEVGVF0gPSBsZWZ0Q2VudGVyIC0gd2lkdGggKyBBUlJPV19PRkZTRVQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHMudG9wW1RPUF0gPSB0aGlzLnBvaW50c1sndG9wLWxlZnQnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzLnRvcFtMRUZUXSA9IGxlZnRDZW50ZXIgLSB3aWR0aCAvIDI7XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3RvcC1yaWdodCddW1RPUF0gPSB0aGlzLnBvaW50c1sndG9wLWxlZnQnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWyd0b3AtcmlnaHQnXVtMRUZUXSA9IGxlZnRDZW50ZXIgLSBBUlJPV19PRkZTRVQ7XHJcblxyXG4gICAgICAgIHRoaXMucG9pbnRzWydib3R0b20tbGVmdCddW1RPUF0gPSBob3N0UmVjdC5ib3R0b20gKyB0aGlzLm9mZnNldDtcclxuICAgICAgICB0aGlzLnBvaW50c1snYm90dG9tLWxlZnQnXVtMRUZUXSA9IHRoaXMucG9pbnRzWyd0b3AtbGVmdCddW0xFRlRdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzLmJvdHRvbVtUT1BdID0gdGhpcy5wb2ludHNbJ2JvdHRvbS1sZWZ0J11bVE9QXTtcclxuICAgICAgICB0aGlzLnBvaW50cy5ib3R0b21bTEVGVF0gPSB0aGlzLnBvaW50cy50b3BbTEVGVF07XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ2JvdHRvbS1yaWdodCddW1RPUF0gPSB0aGlzLnBvaW50c1snYm90dG9tLWxlZnQnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWydib3R0b20tcmlnaHQnXVtMRUZUXSA9IHRoaXMucG9pbnRzWyd0b3AtcmlnaHQnXVtMRUZUXTtcclxuXHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ2xlZnQtdG9wJ11bVE9QXSA9IHRvcENlbnRlciAtIGhlaWdodCArIEFSUk9XX09GRlNFVDtcclxuICAgICAgICB0aGlzLnBvaW50c1snbGVmdC10b3AnXVtMRUZUXSA9IGhvc3RSZWN0LmxlZnQgLSB3aWR0aCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgICAgIHRoaXMucG9pbnRzLmxlZnRbVE9QXSA9IHRvcENlbnRlciAtIGhlaWdodCAvIDI7XHJcbiAgICAgICAgdGhpcy5wb2ludHMubGVmdFtMRUZUXSA9IHRoaXMucG9pbnRzWydsZWZ0LXRvcCddW0xFRlRdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWydsZWZ0LWJvdHRvbSddW1RPUF0gPSB0b3BDZW50ZXIgLSBBUlJPV19PRkZTRVQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ2xlZnQtYm90dG9tJ11bTEVGVF0gPSB0aGlzLnBvaW50c1snbGVmdC10b3AnXVtMRUZUXTtcclxuXHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3JpZ2h0LXRvcCddW1RPUF0gPSB0aGlzLnBvaW50c1snbGVmdC10b3AnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWydyaWdodC10b3AnXVtMRUZUXSA9IGhvc3RSZWN0LnJpZ2h0ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHMucmlnaHRbVE9QXSA9IHRoaXMucG9pbnRzLmxlZnRbVE9QXTtcclxuICAgICAgICB0aGlzLnBvaW50cy5yaWdodFtMRUZUXSA9IHRoaXMucG9pbnRzWydyaWdodC10b3AnXVtMRUZUXTtcclxuICAgICAgICB0aGlzLnBvaW50c1sncmlnaHQtYm90dG9tJ11bVE9QXSA9IHRoaXMucG9pbnRzWydsZWZ0LWJvdHRvbSddW1RPUF07XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3JpZ2h0LWJvdHRvbSddW0xFRlRdID0gdGhpcy5wb2ludHNbJ3JpZ2h0LXRvcCddW0xFRlRdO1xyXG5cclxuICAgICAgICBjb25zdCBwcmlvcml0eURpcmVjdGlvbnMgPSBBcnJheS5pc0FycmF5KHRoaXMuZGlyZWN0aW9uKVxyXG4gICAgICAgICAgICA/IHRoaXMuZGlyZWN0aW9uXHJcbiAgICAgICAgICAgIDogW3RoaXMuZGlyZWN0aW9uXTtcclxuICAgICAgICBjb25zdCBzb3J0ZWREaXJlY3Rpb25zID0gcHJpb3JpdHlEaXJlY3Rpb25zLmNvbmNhdChDVUlfVE9PTFRJUF9ESVJFQ1RJT05TKTtcclxuXHJcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc29ydGVkRGlyZWN0aW9ucy5maW5kKChkaXJlY3Rpb24pID0+XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tQb3NpdGlvbih0aGlzLnBvaW50c1tkaXJlY3Rpb25dLCB3aWR0aCwgaGVpZ2h0KSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmVtaXREaXJlY3Rpb24oZGlyZWN0aW9uIHx8IHRoaXMuZmFsbGJhY2spO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wb2ludHNbZGlyZWN0aW9uIHx8IHRoaXMuZmFsbGJhY2tdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IGZhbGxiYWNrKCk6IEN1aVRvb2x0aXBEaXJlY3Rpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvaW50cy50b3BbVE9QXSA+XHJcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnQuZ2V0Q2xpZW50UmVjdCgpLmJvdHRvbSAtIHRoaXMucG9pbnRzLmJvdHRvbVtUT1BdXHJcbiAgICAgICAgICAgID8gJ3RvcCdcclxuICAgICAgICAgICAgOiAnYm90dG9tJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrUG9zaXRpb24oW3RvcCwgbGVmdF06IEN1aVBvaW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydC5nZXRDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRvcCA+IEdBUCAmJlxyXG4gICAgICAgICAgICBsZWZ0ID4gR0FQICYmXHJcbiAgICAgICAgICAgIHRvcCArIGhlaWdodCA8IHZpZXdwb3J0LmJvdHRvbSAtIEdBUCAmJlxyXG4gICAgICAgICAgICBsZWZ0ICsgd2lkdGggPCB2aWV3cG9ydC5yaWdodCAtIEdBUFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Directive, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
3
|
+
import { EMPTY_CLIENT_RECT, CUI_IS_MOBILE, cuiPure } from '@cuby-ui/cdk';
|
|
4
|
+
import { cuiFallbackAccessor, CuiPositionAccessor, CuiRectAccessor, } from '../../classes';
|
|
5
|
+
import { CUI_VIEWPORT } from '../../tokens';
|
|
6
|
+
import { CuiTooltipDirective } from './tooltip.directive';
|
|
7
|
+
import { CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS } from './tooltip-options.directive';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const GAP = 8;
|
|
10
|
+
const ARROW_OFFSET = 24;
|
|
11
|
+
const TOP = 0;
|
|
12
|
+
const LEFT = 1;
|
|
13
|
+
export class CuiTooltipPosition extends CuiPositionAccessor {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.offset = inject(CUI_IS_MOBILE) ? 16 : 5;
|
|
17
|
+
this.viewport = inject(CUI_VIEWPORT);
|
|
18
|
+
this.accessor = cuiFallbackAccessor('hint')(inject(CuiRectAccessor), inject(CuiTooltipDirective));
|
|
19
|
+
this.points = CUI_TOOLTIP_DIRECTIONS.reduce((acc, direction) => ({ ...acc, [direction]: [0, 0] }), {});
|
|
20
|
+
this.direction = inject(CUI_TOOLTIP_OPTIONS).direction;
|
|
21
|
+
this.directionChange = new EventEmitter();
|
|
22
|
+
this.type = 'hint';
|
|
23
|
+
}
|
|
24
|
+
emitDirection(direction) {
|
|
25
|
+
this.directionChange.emit(direction);
|
|
26
|
+
}
|
|
27
|
+
getPosition(rect, el) {
|
|
28
|
+
const width = el?.clientWidth ?? rect.width;
|
|
29
|
+
const height = el?.clientHeight ?? rect.height;
|
|
30
|
+
const hostRect = this.accessor.getClientRect() ?? EMPTY_CLIENT_RECT;
|
|
31
|
+
const leftCenter = hostRect.left + hostRect.width / 2;
|
|
32
|
+
const topCenter = hostRect.top + hostRect.height / 2;
|
|
33
|
+
this.points['top-left'][TOP] = hostRect.top - height - this.offset;
|
|
34
|
+
this.points['top-left'][LEFT] = leftCenter - width + ARROW_OFFSET;
|
|
35
|
+
this.points.top[TOP] = this.points['top-left'][TOP];
|
|
36
|
+
this.points.top[LEFT] = leftCenter - width / 2;
|
|
37
|
+
this.points['top-right'][TOP] = this.points['top-left'][TOP];
|
|
38
|
+
this.points['top-right'][LEFT] = leftCenter - ARROW_OFFSET;
|
|
39
|
+
this.points['bottom-left'][TOP] = hostRect.bottom + this.offset;
|
|
40
|
+
this.points['bottom-left'][LEFT] = this.points['top-left'][LEFT];
|
|
41
|
+
this.points.bottom[TOP] = this.points['bottom-left'][TOP];
|
|
42
|
+
this.points.bottom[LEFT] = this.points.top[LEFT];
|
|
43
|
+
this.points['bottom-right'][TOP] = this.points['bottom-left'][TOP];
|
|
44
|
+
this.points['bottom-right'][LEFT] = this.points['top-right'][LEFT];
|
|
45
|
+
this.points['left-top'][TOP] = topCenter - height + ARROW_OFFSET;
|
|
46
|
+
this.points['left-top'][LEFT] = hostRect.left - width - this.offset;
|
|
47
|
+
this.points.left[TOP] = topCenter - height / 2;
|
|
48
|
+
this.points.left[LEFT] = this.points['left-top'][LEFT];
|
|
49
|
+
this.points['left-bottom'][TOP] = topCenter - ARROW_OFFSET;
|
|
50
|
+
this.points['left-bottom'][LEFT] = this.points['left-top'][LEFT];
|
|
51
|
+
this.points['right-top'][TOP] = this.points['left-top'][TOP];
|
|
52
|
+
this.points['right-top'][LEFT] = hostRect.right + this.offset;
|
|
53
|
+
this.points.right[TOP] = this.points.left[TOP];
|
|
54
|
+
this.points.right[LEFT] = this.points['right-top'][LEFT];
|
|
55
|
+
this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];
|
|
56
|
+
this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];
|
|
57
|
+
const priorityDirections = Array.isArray(this.direction)
|
|
58
|
+
? this.direction
|
|
59
|
+
: [this.direction];
|
|
60
|
+
const sortedDirections = priorityDirections.concat(CUI_TOOLTIP_DIRECTIONS);
|
|
61
|
+
const direction = sortedDirections.find((direction) => this.checkPosition(this.points[direction], width, height));
|
|
62
|
+
this.emitDirection(direction || this.fallback);
|
|
63
|
+
return this.points[direction || this.fallback];
|
|
64
|
+
}
|
|
65
|
+
get fallback() {
|
|
66
|
+
return this.points.top[TOP] >
|
|
67
|
+
this.viewport.getClientRect().bottom - this.points.bottom[TOP]
|
|
68
|
+
? 'top'
|
|
69
|
+
: 'bottom';
|
|
70
|
+
}
|
|
71
|
+
checkPosition([top, left], width, height) {
|
|
72
|
+
const viewport = this.viewport.getClientRect();
|
|
73
|
+
return (top > GAP &&
|
|
74
|
+
left > GAP &&
|
|
75
|
+
top + height < viewport.bottom - GAP &&
|
|
76
|
+
left + width < viewport.right - GAP);
|
|
77
|
+
}
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
79
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CuiTooltipPosition, isStandalone: true, inputs: { direction: ["cuiTooltipDirection", "direction"] }, outputs: { directionChange: "cuiTooltipDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
|
|
80
|
+
}
|
|
81
|
+
__decorate([
|
|
82
|
+
cuiPure
|
|
83
|
+
], CuiTooltipPosition.prototype, "emitDirection", null);
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipPosition, decorators: [{
|
|
85
|
+
type: Directive,
|
|
86
|
+
args: [{
|
|
87
|
+
standalone: true,
|
|
88
|
+
}]
|
|
89
|
+
}], propDecorators: { direction: [{
|
|
90
|
+
type: Input,
|
|
91
|
+
args: ['cuiTooltipDirection']
|
|
92
|
+
}], directionChange: [{
|
|
93
|
+
type: Output,
|
|
94
|
+
args: ['cuiTooltipDirectionChange']
|
|
95
|
+
}], emitDirection: [] } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1wb3NpdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLXBvc2l0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEUsT0FBTyxFQUNILG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDOztBQUV4RixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDZCxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBS2YsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG1CQUFtQjtJQUgzRDs7UUFJcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsbUJBQW1CLENBQWtCLE1BQU0sQ0FBQyxDQUNwRSxNQUFNLENBQU0sZUFBZSxDQUFDLEVBQzVCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUM5QixDQUFDO1FBRWUsV0FBTSxHQUNuQixzQkFBc0IsQ0FBQyxNQUFNLENBQ3pCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUNuRCxFQUFtRCxDQUN0RCxDQUFDO1FBR0MsY0FBUyxHQUFtQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFHekUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUUxRCxTQUFJLEdBQUcsTUFBTSxDQUFDO0tBeUVqQztJQXRFVSxhQUFhLENBQUMsU0FBOEI7UUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFhLEVBQUUsRUFBZ0I7UUFDOUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLEVBQUUsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLGlCQUFpQixDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLEdBQUcsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsR0FBRyxZQUFZLENBQUM7UUFFM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFB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QUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUM5RCxDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbkIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQVcsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUN0RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRS9DLE9BQU8sQ0FDSCxHQUFHLEdBQUcsR0FBRztZQUNULElBQUksR0FBRyxHQUFHO1lBQ1YsR0FBRyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUc7WUFDcEMsSUFBSSxHQUFHLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FDdEMsQ0FBQztJQUNOLENBQUM7K0dBNUZRLGtCQUFrQjttR0FBbEIsa0JBQWtCOztBQXVCcEI7SUFETixPQUFPO3VEQUdQOzRGQXpCUSxrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQWdCVSxTQUFTO3NCQURmLEtBQUs7dUJBQUMscUJBQXFCO2dCQUlaLGVBQWU7c0JBRDlCLE1BQU07dUJBQUMsMkJBQTJCO2dCQU01QixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtFTVBUWV9DTElFTlRfUkVDVCwgQ1VJX0lTX01PQklMRSwgY3VpUHVyZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcbmltcG9ydCB7XHJcbiAgICBjdWlGYWxsYmFja0FjY2Vzc29yLFxyXG4gICAgQ3VpUG9zaXRpb25BY2Nlc3NvcixcclxuICAgIEN1aVJlY3RBY2Nlc3NvcixcclxufSBmcm9tICcuLi8uLi9jbGFzc2VzJztcclxuaW1wb3J0IHtDVUlfVklFV1BPUlR9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB0eXBlIHtDdWlQb2ludH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5cclxuaW1wb3J0IHtDdWlUb29sdGlwRGlyZWN0aXZlfSBmcm9tICcuL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHR5cGUge0N1aVRvb2x0aXBEaXJlY3Rpb24sIEN1aVRvb2x0aXBPcHRpb25zfSBmcm9tICcuL3Rvb2x0aXAtb3B0aW9ucy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge0NVSV9UT09MVElQX0RJUkVDVElPTlMsIENVSV9UT09MVElQX09QVElPTlN9IGZyb20gJy4vdG9vbHRpcC1vcHRpb25zLmRpcmVjdGl2ZSc7XHJcblxyXG5jb25zdCBHQVAgPSA4O1xyXG5jb25zdCBBUlJPV19PRkZTRVQgPSAyNDtcclxuY29uc3QgVE9QID0gMDtcclxuY29uc3QgTEVGVCA9IDE7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlUb29sdGlwUG9zaXRpb24gZXh0ZW5kcyBDdWlQb3NpdGlvbkFjY2Vzc29yIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2Zmc2V0ID0gaW5qZWN0KENVSV9JU19NT0JJTEUpID8gMTYgOiA1O1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3cG9ydCA9IGluamVjdChDVUlfVklFV1BPUlQpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2Nlc3NvciA9IGN1aUZhbGxiYWNrQWNjZXNzb3I8Q3VpUmVjdEFjY2Vzc29yPignaGludCcpKFxyXG4gICAgICAgIGluamVjdDxhbnk+KEN1aVJlY3RBY2Nlc3NvciksXHJcbiAgICAgICAgaW5qZWN0KEN1aVRvb2x0aXBEaXJlY3RpdmUpLFxyXG4gICAgKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvaW50czogUmVjb3JkPEN1aVRvb2x0aXBEaXJlY3Rpb24sIFtudW1iZXIsIG51bWJlcl0+ID1cclxuICAgICAgICBDVUlfVE9PTFRJUF9ESVJFQ1RJT05TLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywgZGlyZWN0aW9uKSA9PiAoey4uLmFjYywgW2RpcmVjdGlvbl06IFswLCAwXX0pLFxyXG4gICAgICAgICAgICB7fSBhcyBSZWNvcmQ8Q3VpVG9vbHRpcERpcmVjdGlvbiwgW251bWJlciwgbnVtYmVyXT4sXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBASW5wdXQoJ2N1aVRvb2x0aXBEaXJlY3Rpb24nKVxyXG4gICAgcHVibGljIGRpcmVjdGlvbjogQ3VpVG9vbHRpcE9wdGlvbnNbJ2RpcmVjdGlvbiddID0gaW5qZWN0KENVSV9UT09MVElQX09QVElPTlMpLmRpcmVjdGlvbjtcclxuXHJcbiAgICBAT3V0cHV0KCdjdWlUb29sdGlwRGlyZWN0aW9uQ2hhbmdlJylcclxuICAgIHB1YmxpYyByZWFkb25seSBkaXJlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1aVRvb2x0aXBEaXJlY3Rpb24+KCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnaGludCc7XHJcblxyXG4gICAgQGN1aVB1cmVcclxuICAgIHB1YmxpYyBlbWl0RGlyZWN0aW9uKGRpcmVjdGlvbjogQ3VpVG9vbHRpcERpcmVjdGlvbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uQ2hhbmdlLmVtaXQoZGlyZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UG9zaXRpb24ocmVjdDogRE9NUmVjdCwgZWw/OiBIVE1MRWxlbWVudCk6IEN1aVBvaW50IHtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IGVsPy5jbGllbnRXaWR0aCA/PyByZWN0LndpZHRoO1xyXG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGVsPy5jbGllbnRIZWlnaHQgPz8gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmFjY2Vzc29yLmdldENsaWVudFJlY3QoKSA/PyBFTVBUWV9DTElFTlRfUkVDVDtcclxuICAgICAgICBjb25zdCBsZWZ0Q2VudGVyID0gaG9zdFJlY3QubGVmdCArIGhvc3RSZWN0LndpZHRoIC8gMjtcclxuICAgICAgICBjb25zdCB0b3BDZW50ZXIgPSBob3N0UmVjdC50b3AgKyBob3N0UmVjdC5oZWlnaHQgLyAyO1xyXG5cclxuICAgICAgICB0aGlzLnBvaW50c1sndG9wLWxlZnQnXVtUT1BdID0gaG9zdFJlY3QudG9wIC0gaGVpZ2h0IC0gdGhpcy5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3RvcC1sZWZ0J11bTEVGVF0gPSBsZWZ0Q2VudGVyIC0gd2lkdGggKyBBUlJPV19PRkZTRVQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHMudG9wW1RPUF0gPSB0aGlzLnBvaW50c1sndG9wLWxlZnQnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzLnRvcFtMRUZUXSA9IGxlZnRDZW50ZXIgLSB3aWR0aCAvIDI7XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3RvcC1yaWdodCddW1RPUF0gPSB0aGlzLnBvaW50c1sndG9wLWxlZnQnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWyd0b3AtcmlnaHQnXVtMRUZUXSA9IGxlZnRDZW50ZXIgLSBBUlJPV19PRkZTRVQ7XHJcblxyXG4gICAgICAgIHRoaXMucG9pbnRzWydib3R0b20tbGVmdCddW1RPUF0gPSBob3N0UmVjdC5ib3R0b20gKyB0aGlzLm9mZnNldDtcclxuICAgICAgICB0aGlzLnBvaW50c1snYm90dG9tLWxlZnQnXVtMRUZUXSA9IHRoaXMucG9pbnRzWyd0b3AtbGVmdCddW0xFRlRdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzLmJvdHRvbVtUT1BdID0gdGhpcy5wb2ludHNbJ2JvdHRvbS1sZWZ0J11bVE9QXTtcclxuICAgICAgICB0aGlzLnBvaW50cy5ib3R0b21bTEVGVF0gPSB0aGlzLnBvaW50cy50b3BbTEVGVF07XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ2JvdHRvbS1yaWdodCddW1RPUF0gPSB0aGlzLnBvaW50c1snYm90dG9tLWxlZnQnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWydib3R0b20tcmlnaHQnXVtMRUZUXSA9IHRoaXMucG9pbnRzWyd0b3AtcmlnaHQnXVtMRUZUXTtcclxuXHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ2xlZnQtdG9wJ11bVE9QXSA9IHRvcENlbnRlciAtIGhlaWdodCArIEFSUk9XX09GRlNFVDtcclxuICAgICAgICB0aGlzLnBvaW50c1snbGVmdC10b3AnXVtMRUZUXSA9IGhvc3RSZWN0LmxlZnQgLSB3aWR0aCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgICAgIHRoaXMucG9pbnRzLmxlZnRbVE9QXSA9IHRvcENlbnRlciAtIGhlaWdodCAvIDI7XHJcbiAgICAgICAgdGhpcy5wb2ludHMubGVmdFtMRUZUXSA9IHRoaXMucG9pbnRzWydsZWZ0LXRvcCddW0xFRlRdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWydsZWZ0LWJvdHRvbSddW1RPUF0gPSB0b3BDZW50ZXIgLSBBUlJPV19PRkZTRVQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ2xlZnQtYm90dG9tJ11bTEVGVF0gPSB0aGlzLnBvaW50c1snbGVmdC10b3AnXVtMRUZUXTtcclxuXHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3JpZ2h0LXRvcCddW1RPUF0gPSB0aGlzLnBvaW50c1snbGVmdC10b3AnXVtUT1BdO1xyXG4gICAgICAgIHRoaXMucG9pbnRzWydyaWdodC10b3AnXVtMRUZUXSA9IGhvc3RSZWN0LnJpZ2h0ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5wb2ludHMucmlnaHRbVE9QXSA9IHRoaXMucG9pbnRzLmxlZnRbVE9QXTtcclxuICAgICAgICB0aGlzLnBvaW50cy5yaWdodFtMRUZUXSA9IHRoaXMucG9pbnRzWydyaWdodC10b3AnXVtMRUZUXTtcclxuICAgICAgICB0aGlzLnBvaW50c1sncmlnaHQtYm90dG9tJ11bVE9QXSA9IHRoaXMucG9pbnRzWydsZWZ0LWJvdHRvbSddW1RPUF07XHJcbiAgICAgICAgdGhpcy5wb2ludHNbJ3JpZ2h0LWJvdHRvbSddW0xFRlRdID0gdGhpcy5wb2ludHNbJ3JpZ2h0LXRvcCddW0xFRlRdO1xyXG5cclxuICAgICAgICBjb25zdCBwcmlvcml0eURpcmVjdGlvbnMgPSBBcnJheS5pc0FycmF5KHRoaXMuZGlyZWN0aW9uKVxyXG4gICAgICAgICAgICA/IHRoaXMuZGlyZWN0aW9uXHJcbiAgICAgICAgICAgIDogW3RoaXMuZGlyZWN0aW9uXTtcclxuICAgICAgICBjb25zdCBzb3J0ZWREaXJlY3Rpb25zID0gcHJpb3JpdHlEaXJlY3Rpb25zLmNvbmNhdChDVUlfVE9PTFRJUF9ESVJFQ1RJT05TKTtcclxuXHJcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc29ydGVkRGlyZWN0aW9ucy5maW5kKChkaXJlY3Rpb24pID0+XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tQb3NpdGlvbih0aGlzLnBvaW50c1tkaXJlY3Rpb25dLCB3aWR0aCwgaGVpZ2h0KSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmVtaXREaXJlY3Rpb24oZGlyZWN0aW9uIHx8IHRoaXMuZmFsbGJhY2spO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wb2ludHNbZGlyZWN0aW9uIHx8IHRoaXMuZmFsbGJhY2tdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IGZhbGxiYWNrKCk6IEN1aVRvb2x0aXBEaXJlY3Rpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvaW50cy50b3BbVE9QXSA+XHJcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnQuZ2V0Q2xpZW50UmVjdCgpLmJvdHRvbSAtIHRoaXMucG9pbnRzLmJvdHRvbVtUT1BdXHJcbiAgICAgICAgICAgID8gJ3RvcCdcclxuICAgICAgICAgICAgOiAnYm90dG9tJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrUG9zaXRpb24oW3RvcCwgbGVmdF06IEN1aVBvaW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydC5nZXRDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRvcCA+IEdBUCAmJlxyXG4gICAgICAgICAgICBsZWZ0ID4gR0FQICYmXHJcbiAgICAgICAgICAgIHRvcCArIGhlaWdodCA8IHZpZXdwb3J0LmJvdHRvbSAtIEdBUCAmJlxyXG4gICAgICAgICAgICBsZWZ0ICsgd2lkdGggPCB2aWV3cG9ydC5yaWdodCAtIEdBUFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Directive, inject, TemplateRef, } from '@angular/core';
|
|
2
|
-
import { cuiParentAnimation } from '../../animations';
|
|
3
|
-
import { injectContext, PolymorpheusComponent, PolymorpheusOutlet, } from '@taiga-ui/polymorpheus';
|
|
4
|
-
import { CuiTooltipDirective } from './tooltip.directive';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class CuiTooltipUnstyledComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.context = injectContext();
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyledComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CuiTooltipUnstyledComponent, isStandalone: true, selector: "ng-component", host: { properties: { "@cuiParentAnimation": "" } }, ngImport: i0, template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />', isInline: true, dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [cuiParentAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyledComponent, decorators: [{
|
|
14
|
-
type: Component,
|
|
15
|
-
args: [{
|
|
16
|
-
standalone: true,
|
|
17
|
-
imports: [PolymorpheusOutlet],
|
|
18
|
-
template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />',
|
|
19
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
20
|
-
animations: [cuiParentAnimation],
|
|
21
|
-
host: { '[@cuiParentAnimation]': '' },
|
|
22
|
-
}]
|
|
23
|
-
}] });
|
|
24
|
-
export class CuiTooltipUnstyled {
|
|
25
|
-
constructor() {
|
|
26
|
-
const hint = inject((CuiTooltipDirective));
|
|
27
|
-
hint.component = new PolymorpheusComponent(CuiTooltipUnstyledComponent);
|
|
28
|
-
hint.content.set(inject((TemplateRef)));
|
|
29
|
-
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyled, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
31
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CuiTooltipUnstyled, isStandalone: true, selector: "ng-template[cuiTooltip]", ngImport: i0 }); }
|
|
32
|
-
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyled, decorators: [{
|
|
34
|
-
type: Directive,
|
|
35
|
-
args: [{
|
|
36
|
-
standalone: true,
|
|
37
|
-
selector: 'ng-template[cuiTooltip]',
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: function () { return []; } });
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Directive, inject, TemplateRef, } from '@angular/core';
|
|
2
|
+
import { cuiParentAnimation } from '../../animations';
|
|
3
|
+
import { injectContext, PolymorpheusComponent, PolymorpheusOutlet, } from '@taiga-ui/polymorpheus';
|
|
4
|
+
import { CuiTooltipDirective } from './tooltip.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CuiTooltipUnstyledComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.context = injectContext();
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyledComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CuiTooltipUnstyledComponent, isStandalone: true, selector: "ng-component", host: { properties: { "@cuiParentAnimation": "" } }, ngImport: i0, template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />', isInline: true, dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [cuiParentAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyledComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{
|
|
16
|
+
standalone: true,
|
|
17
|
+
imports: [PolymorpheusOutlet],
|
|
18
|
+
template: '<ng-container *polymorpheusOutlet="context.$implicit.content()" />',
|
|
19
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
20
|
+
animations: [cuiParentAnimation],
|
|
21
|
+
host: { '[@cuiParentAnimation]': '' },
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
export class CuiTooltipUnstyled {
|
|
25
|
+
constructor() {
|
|
26
|
+
const hint = inject((CuiTooltipDirective));
|
|
27
|
+
hint.component = new PolymorpheusComponent(CuiTooltipUnstyledComponent);
|
|
28
|
+
hint.content.set(inject((TemplateRef)));
|
|
29
|
+
}
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyled, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
31
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CuiTooltipUnstyled, isStandalone: true, selector: "ng-template[cuiTooltip]", ngImport: i0 }); }
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CuiTooltipUnstyled, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{
|
|
36
|
+
standalone: true,
|
|
37
|
+
selector: 'ng-template[cuiTooltip]',
|
|
38
|
+
}]
|
|
39
|
+
}], ctorParameters: function () { return []; } });
|
|
40
40
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC11bnN0eWxlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLXVuc3R5bGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUdwRCxPQUFPLEVBQ0gsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixrQkFBa0IsR0FDckIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFVeEQsTUFBTSxPQUFPLDJCQUEyQjtJQVJ4QztRQVN1QixZQUFPLEdBQ3RCLGFBQWEsRUFFVixDQUFDO0tBQ1g7K0dBTFksMkJBQTJCO21HQUEzQiwyQkFBMkIsNkhBTDFCLG9FQUFvRSw0REFEcEUsa0JBQWtCLGdIQUdoQixDQUFDLGtCQUFrQixDQUFDOzs0RkFHdkIsMkJBQTJCO2tCQVJ2QyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsUUFBUSxFQUFFLG9FQUFvRTtvQkFDOUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNoQyxJQUFJLEVBQUUsRUFBQyx1QkFBdUIsRUFBRSxFQUFFLEVBQUM7aUJBQ3RDOztBQVlELE1BQU0sT0FBTyxrQkFBa0I7SUFDM0I7UUFDSSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQSxtQkFBc0IsQ0FBQSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHFCQUFxQixDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUEsV0FBYyxDQUFBLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBTlEsa0JBQWtCO21HQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1dyaXRhYmxlU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0LFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHtDdWlDb250ZXh0fSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQge2N1aVBhcmVudEFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB0eXBlIHtDdWlQb3J0YWxJdGVtfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcclxuaW1wb3J0IHtcclxuICAgIGluamVjdENvbnRleHQsXHJcbiAgICBQb2x5bW9ycGhldXNDb21wb25lbnQsXHJcbiAgICBQb2x5bW9ycGhldXNPdXRsZXQsXHJcbn0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XHJcblxyXG5pbXBvcnQge0N1aVRvb2x0aXBEaXJlY3RpdmV9IGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1BvbHltb3JwaGV1c091dGxldF0sXHJcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRleHQuJGltcGxpY2l0LmNvbnRlbnQoKVwiIC8+JyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgYW5pbWF0aW9uczogW2N1aVBhcmVudEFuaW1hdGlvbl0sXHJcbiAgICBob3N0OiB7J1tAY3VpUGFyZW50QW5pbWF0aW9uXSc6ICcnfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aVRvb2x0aXBVbnN0eWxlZENvbXBvbmVudCB7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dCA9XHJcbiAgICAgICAgaW5qZWN0Q29udGV4dDxcclxuICAgICAgICAgIEN1aUNvbnRleHQ8Q3VpUG9ydGFsSXRlbSAmIHtjb250ZW50OiBXcml0YWJsZVNpZ25hbDxQb2x5bW9ycGhldXNDb250ZW50Pn0+XHJcbiAgICAgICAgPigpO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2N1aVRvb2x0aXBdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aVRvb2x0aXBVbnN0eWxlZDxDPiB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBjb25zdCBoaW50ID0gaW5qZWN0KEN1aVRvb2x0aXBEaXJlY3RpdmU8Qz4pO1xyXG5cclxuICAgICAgICBoaW50LmNvbXBvbmVudCA9IG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQoQ3VpVG9vbHRpcFVuc3R5bGVkQ29tcG9uZW50KTtcclxuICAgICAgICBoaW50LmNvbnRlbnQuc2V0KGluamVjdChUZW1wbGF0ZVJlZjxDPikpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|