@taiga-ui/cdk 4.52.0-canary.e444d19 → 4.52.0-canary.e53e79e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/classes/control.d.ts +4 -6
- package/classes/index.d.ts +0 -1
- package/constants/index.d.ts +0 -1
- package/constants/used-icons.d.ts +2 -2
- package/constants/version.d.ts +1 -1
- package/constants/version.js +1 -1
- package/date-time/date-fillers.d.ts +5 -5
- package/date-time/day-range.d.ts +1 -1
- package/date-time/day.d.ts +4 -4
- package/date-time/time.d.ts +2 -2
- package/date-time/types.d.ts +1 -12
- package/directives/active-zone/active-zone.directive.d.ts +4 -5
- package/directives/animated/animated.directive.d.ts +1 -4
- package/directives/animated/index.d.ts +0 -1
- package/directives/auto-focus/autofocus.directive.d.ts +2 -3
- package/directives/auto-focus/autofocus.options.d.ts +2 -2
- package/directives/copy-processor/copy-processor.directive.d.ts +2 -2
- package/directives/hovered/hovered.directive.d.ts +1 -2
- package/directives/index.d.ts +1 -5
- package/directives/media/media.directive.d.ts +8 -12
- package/directives/native-validator/native-validator.directive.d.ts +2 -2
- package/directives/obscured/obscured.directive.d.ts +4 -4
- package/directives/pan/pan.directive.d.ts +1 -2
- package/directives/platform/platform.directive.d.ts +2 -2
- package/directives/resizer/resizer.directive.d.ts +3 -4
- package/directives/swipe/swipe.directive.d.ts +1 -2
- package/directives/transitioned/transitioned.directive.d.ts +1 -0
- package/directives/value-changes/value-changes.directive.d.ts +2 -2
- package/directives/with-styles/index.d.ts +1 -0
- package/directives/with-styles/with-styles.directive.d.ts +10 -0
- package/fesm2022/taiga-ui-cdk-classes.mjs +8 -91
- package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-constants.mjs +15 -17
- package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-date-time.mjs +35 -23
- package/fesm2022/taiga-ui-cdk-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs +28 -37
- package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-animated.mjs +38 -84
- package/fesm2022/taiga-ui-cdk-directives-animated.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +10 -13
- package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-control.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-directives-control.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +7 -10
- package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-element.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-directives-element.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs +12 -23
- package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-font-size.mjs +4 -7
- package/fesm2022/taiga-ui-cdk-directives-font-size.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-hovered.mjs +10 -13
- package/fesm2022/taiga-ui-cdk-directives-hovered.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-item.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-directives-item.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-media.mjs +32 -57
- package/fesm2022/taiga-ui-cdk-directives-media.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +7 -10
- package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +13 -19
- package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-pan.mjs +10 -12
- package/fesm2022/taiga-ui-cdk-directives-pan.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-platform.mjs +9 -12
- package/fesm2022/taiga-ui-cdk-directives-platform.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-resizer.mjs +19 -23
- package/fesm2022/taiga-ui-cdk-directives-resizer.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-swipe.mjs +10 -12
- package/fesm2022/taiga-ui-cdk-directives-swipe.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs +7 -14
- package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-validator.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-directives-validator.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +8 -9
- package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs +29 -0
- package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs.map +1 -0
- package/fesm2022/taiga-ui-cdk-directives-zoom.mjs +6 -7
- package/fesm2022/taiga-ui-cdk-directives-zoom.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives.mjs +1 -5
- package/fesm2022/taiga-ui-cdk-directives.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-observables.mjs +10 -28
- package/fesm2022/taiga-ui-cdk-observables.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes-filter.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-pipes-filter.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs +3 -4
- package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +5 -5
- package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes.mjs +0 -6
- package/fesm2022/taiga-ui-cdk-pipes.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-portals.mjs +126 -0
- package/fesm2022/taiga-ui-cdk-portals.mjs.map +1 -0
- package/fesm2022/taiga-ui-cdk-tokens.mjs +19 -52
- package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-browser.mjs +3 -26
- package/fesm2022/taiga-ui-cdk-utils-browser.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-di.mjs +46 -6
- package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-dom.mjs +16 -96
- package/fesm2022/taiga-ui-cdk-utils-dom.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-focus.mjs +27 -44
- package/fesm2022/taiga-ui-cdk-utils-focus.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-math.mjs +1 -12
- package/fesm2022/taiga-ui-cdk-utils-math.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +45 -125
- package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils.mjs +0 -1
- package/fesm2022/taiga-ui-cdk-utils.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk.mjs +1 -1
- package/index.d.ts +1 -1
- package/observables/index.d.ts +0 -2
- package/package.json +21 -63
- package/pipes/index.d.ts +0 -6
- package/pipes/obfuscate/obfuscate.options.d.ts +2 -2
- package/portals/directive.d.ts +11 -0
- package/portals/index.d.ts +4 -0
- package/portals/portal.d.ts +24 -0
- package/portals/portals.d.ts +12 -0
- package/portals/service.d.ts +15 -0
- package/schematics/collection.json +2 -1
- package/schematics/migrate-tui-let/index.js +4 -3
- package/schematics/migrate-tui-let/index.js.map +1 -1
- package/schematics/migrate-tui-let/schema.json +7 -0
- package/schematics/ng-add/constants/versions.d.ts +1 -1
- package/schematics/ng-update/interfaces/html-comment.d.ts +1 -1
- package/schematics/ng-update/interfaces/removable-input.d.ts +1 -1
- package/schematics/ng-update/interfaces/replacement-attribute-to-directive.d.ts +1 -1
- package/schematics/ng-update/interfaces/replacement-attribute-value.d.ts +1 -1
- package/schematics/ng-update/interfaces/replacement-attribute.d.ts +1 -1
- package/schematics/ng-update/interfaces/replacement-tag.d.ts +1 -1
- package/schematics/ng-update/{v4/steps → utils}/replace-functions.d.ts +1 -1
- package/schematics/ng-update/{v4/steps → utils}/replace-functions.js +1 -1
- package/schematics/ng-update/utils/replace-functions.js.map +1 -0
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v4/index.js.map +1 -1
- package/schematics/ng-update/v4/migrate-css-vars/rename-css-vars.js +1 -1
- package/schematics/ng-update/v4/migrate-css-vars/rename-css-vars.js.map +1 -1
- package/schematics/ng-update/v4/steps/constants/migration-warnings.js +1 -1
- package/schematics/ng-update/v4/steps/constants/migration-warnings.js.map +1 -1
- package/schematics/ng-update/v4/steps/migrate-templates.d.ts +2 -2
- package/schematics/ng-update/v4/steps/restore-tui-mapper.js +1 -1
- package/schematics/ng-update/v4/steps/restore-tui-mapper.js.map +1 -1
- package/schematics/ng-update/v4/steps/restore-tui-matcher.js +1 -1
- package/schematics/ng-update/v4/steps/restore-tui-matcher.js.map +1 -1
- package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js +1 -1
- package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js.map +1 -1
- package/schematics/ng-update/v5/index.js +12 -0
- package/schematics/ng-update/v5/index.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/attrs-to-replace.d.ts +2 -0
- package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +22 -0
- package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -0
- package/schematics/ng-update/v5/steps/constants/functions.d.ts +2 -0
- package/schematics/ng-update/v5/steps/constants/functions.js +67 -0
- package/schematics/ng-update/v5/steps/constants/functions.js.map +1 -0
- package/schematics/ng-update/v5/steps/constants/html-comments.d.ts +2 -0
- package/schematics/ng-update/v5/steps/constants/html-comments.js +11 -0
- package/schematics/ng-update/v5/steps/constants/html-comments.js.map +1 -0
- package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.d.ts +2 -0
- package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js +22 -0
- package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js.map +1 -0
- package/schematics/ng-update/v5/steps/migrate-templates.d.ts +17 -0
- package/schematics/ng-update/v5/steps/migrate-templates.js +46 -0
- package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -0
- package/schematics/ng-update/v5/steps/templates/migrate-avatar.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-avatar.js +111 -0
- package/schematics/ng-update/v5/steps/templates/migrate-avatar.js.map +1 -0
- package/schematics/ng-update/v5/steps/templates/migrate-input-year.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-input-year.js +52 -0
- package/schematics/ng-update/v5/steps/templates/migrate-input-year.js.map +1 -0
- package/schematics/utils/angular-json-manipulations.js +0 -2
- package/schematics/utils/angular-json-manipulations.js.map +1 -1
- package/schematics/utils/run-migration.d.ts +14 -0
- package/schematics/utils/run-migration.js +27 -0
- package/schematics/utils/run-migration.js.map +1 -0
- package/schematics/utils/templates/elements.js +4 -12
- package/schematics/utils/templates/elements.js.map +1 -1
- package/schematics/utils/templates/ng-component-input-manipulations.d.ts +3 -3
- package/schematics/utils/templates/ng-component-input-manipulations.js +1 -3
- package/schematics/utils/templates/ng-component-input-manipulations.js.map +1 -1
- package/tokens/environment.d.ts +5 -13
- package/tokens/index.d.ts +0 -2
- package/tokens/removed-element.d.ts +0 -3
- package/types/index.d.ts +0 -2
- package/utils/browser/index.d.ts +0 -2
- package/utils/di/create-options.d.ts +2 -2
- package/utils/di/index.d.ts +3 -0
- package/utils/di/provide-options.d.ts +2 -0
- package/utils/dom/get-element-obscurers.d.ts +1 -1
- package/utils/dom/index.d.ts +0 -6
- package/utils/focus/get-closest-focusable.d.ts +1 -6
- package/utils/focus/{get-native-focused.d.ts → get-focused.d.ts} +1 -1
- package/utils/focus/index.d.ts +4 -6
- package/utils/focus/{is-native-keyboard-focusable.d.ts → is-focusable.d.ts} +1 -1
- package/utils/focus/{is-native-focused-in.d.ts → is-focused-in.d.ts} +1 -1
- package/utils/focus/{is-native-focused.d.ts → is-focused.d.ts} +1 -1
- package/utils/index.d.ts +0 -1
- package/utils/math/index.d.ts +0 -2
- package/utils/miscellaneous/generate-id.d.ts +1 -0
- package/utils/miscellaneous/index.d.ts +2 -11
- package/utils/miscellaneous/sanitize-text.d.ts +23 -0
- package/classes/portals.d.ts +0 -33
- package/constants/allow-signal-writes.d.ts +0 -2
- package/directives/animated/animated-parent.directive.d.ts +0 -10
- package/directives/click-outside/click-outside.directive.d.ts +0 -14
- package/directives/click-outside/index.d.ts +0 -1
- package/directives/droppable/droppable.directive.d.ts +0 -8
- package/directives/droppable/index.d.ts +0 -1
- package/directives/let/index.d.ts +0 -2
- package/directives/let/let-context.d.ts +0 -11
- package/directives/let/let.directive.d.ts +0 -19
- package/directives/popover/index.d.ts +0 -1
- package/directives/popover/popover.directive.d.ts +0 -14
- package/directives/repeat-times/index.d.ts +0 -1
- package/directives/repeat-times/repeat-times.directive.d.ts +0 -22
- package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs +0 -39
- package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-directives-droppable.mjs +0 -37
- package/fesm2022/taiga-ui-cdk-directives-droppable.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-directives-let.mjs +0 -54
- package/fesm2022/taiga-ui-cdk-directives-let.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-directives-popover.mjs +0 -32
- package/fesm2022/taiga-ui-cdk-directives-popover.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs +0 -61
- package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-pipes-animation.mjs +0 -33
- package/fesm2022/taiga-ui-cdk-pipes-animation.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs +0 -25
- package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-pipes-keys.mjs +0 -24
- package/fesm2022/taiga-ui-cdk-pipes-keys.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs +0 -25
- package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-pipes-replace.mjs +0 -26
- package/fesm2022/taiga-ui-cdk-pipes-replace.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs +0 -24
- package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-services.mjs +0 -151
- package/fesm2022/taiga-ui-cdk-services.mjs.map +0 -1
- package/fesm2022/taiga-ui-cdk-utils-color.mjs +0 -195
- package/fesm2022/taiga-ui-cdk-utils-color.mjs.map +0 -1
- package/observables/must-be-present.d.ts +0 -5
- package/observables/query-list-observable.d.ts +0 -6
- package/pipes/animation/animation.pipe.d.ts +0 -13
- package/pipes/animation/index.d.ts +0 -1
- package/pipes/is-present/index.d.ts +0 -1
- package/pipes/is-present/is-present.pipe.d.ts +0 -7
- package/pipes/keys/index.d.ts +0 -1
- package/pipes/keys/keys.pipe.d.ts +0 -7
- package/pipes/repeat-times/index.d.ts +0 -7
- package/pipes/replace/index.d.ts +0 -1
- package/pipes/replace/replace.pipe.d.ts +0 -7
- package/pipes/to-array/index.d.ts +0 -1
- package/pipes/to-array/to-array.pipe.d.ts +0 -7
- package/schematics/ng-update/v4/steps/replace-functions.js.map +0 -1
- package/services/id.service.d.ts +0 -8
- package/services/index.d.ts +0 -4
- package/services/popover.service.d.ts +0 -25
- package/services/scroll.service.d.ts +0 -13
- package/services/theme-color.service.d.ts +0 -18
- package/tokens/base-href.d.ts +0 -2
- package/tokens/range.d.ts +0 -5
- package/types/safe-html.d.ts +0 -2
- package/types/values-of.d.ts +0 -1
- package/utils/browser/is-apple.d.ts +0 -11
- package/utils/browser/is-ios.d.ts +0 -6
- package/utils/color/get-gradient-data.d.ts +0 -1
- package/utils/color/hex-to-rgb.d.ts +0 -1
- package/utils/color/hex-to-rgba.d.ts +0 -3
- package/utils/color/hsv-to-rgb.d.ts +0 -4
- package/utils/color/index.d.ts +0 -9
- package/utils/color/parse-color.d.ts +0 -1
- package/utils/color/parse-gradient.d.ts +0 -10
- package/utils/color/rgb-to-hex.d.ts +0 -1
- package/utils/color/rgb-to-hsv.d.ts +0 -1
- package/utils/color/rgba-to-hex.d.ts +0 -2
- package/utils/dom/get-element-point.d.ts +0 -2
- package/utils/dom/is-current-target.d.ts +0 -1
- package/utils/dom/is-inside-iframe.d.ts +0 -4
- package/utils/dom/is-node-in.d.ts +0 -8
- package/utils/dom/retarget-boundary-crossing.d.ts +0 -1
- package/utils/dom/value-binding.d.ts +0 -3
- package/utils/focus/blur-native-focused.d.ts +0 -4
- package/utils/focus/is-native-mouse-focusable.d.ts +0 -1
- package/utils/math/to-integer.d.ts +0 -1
- package/utils/math/to-radians.d.ts +0 -4
- package/utils/miscellaneous/change-date-separator.d.ts +0 -1
- package/utils/miscellaneous/create-token.d.ts +0 -9
- package/utils/miscellaneous/directive-listener.d.ts +0 -9
- package/utils/miscellaneous/flat-length.d.ts +0 -6
- package/utils/miscellaneous/get-original-array-from-query-list.d.ts +0 -8
- package/utils/miscellaneous/is-falsy.d.ts +0 -1
- package/utils/miscellaneous/is-valid-url.d.ts +0 -4
- package/utils/miscellaneous/provide-options.d.ts +0 -2
- package/utils/miscellaneous/uniq-by.d.ts +0 -1
- /package/utils/{miscellaneous → di}/directive-binding.d.ts +0 -0
- /package/utils/{miscellaneous → di}/provide.d.ts +0 -0
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { FormArray, FormGroup } from '@angular/forms';
|
|
2
2
|
import { tuiToInt } from '@taiga-ui/cdk/utils/math';
|
|
3
|
-
import { InjectionToken, isSignal, signal, inject, effect, DestroyRef, EnvironmentInjector, createComponent } from '@angular/core';
|
|
4
|
-
import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
|
|
5
3
|
import { SIGNAL } from '@angular/core/primitives/signals';
|
|
6
|
-
import {
|
|
4
|
+
import { InjectionToken, inject, DestroyRef, EnvironmentInjector, createComponent } from '@angular/core';
|
|
7
5
|
|
|
8
6
|
function tuiArrayRemove(array, index) {
|
|
9
7
|
return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
function tuiArrayShallowEquals(a, b) {
|
|
13
|
-
return a.length === b.length && a.every((item, index) => item
|
|
11
|
+
return a.length === b.length && a.every((item, index) => Object.is(item, b[index]));
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
function tuiArrayToggle(array, item, identity) {
|
|
@@ -20,9 +18,6 @@ function tuiArrayToggle(array, item, identity) {
|
|
|
20
18
|
return index === -1 ? [...array, item] : tuiArrayRemove(array, index);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
/* internal */
|
|
24
|
-
const changeDateSeparator = (dateString, newDateSeparator) => dateString.replaceAll(/[^0-9A-Za-zА-Яа-я]/gi, newDateSeparator);
|
|
25
|
-
|
|
26
21
|
function tuiIsControlEmpty({ value = null }) {
|
|
27
22
|
return value === null || value === '' || (Array.isArray(value) && !value.length);
|
|
28
23
|
}
|
|
@@ -37,21 +32,6 @@ function tuiCountFilledControls(control) {
|
|
|
37
32
|
return tuiToInt(!tuiIsControlEmpty(control));
|
|
38
33
|
}
|
|
39
34
|
|
|
40
|
-
/**
|
|
41
|
-
* @deprecated: drop in v5.0
|
|
42
|
-
*/
|
|
43
|
-
function tuiCreateToken(defaults) {
|
|
44
|
-
return defaults === undefined
|
|
45
|
-
? new InjectionToken('')
|
|
46
|
-
: tuiCreateTokenFromFactory(() => defaults);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* @deprecated: drop in v5.0
|
|
50
|
-
*/
|
|
51
|
-
function tuiCreateTokenFromFactory(factory) {
|
|
52
|
-
return factory ? new InjectionToken('', { factory }) : new InjectionToken('');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
35
|
function tuiIsString(value) {
|
|
56
36
|
return typeof value === 'string';
|
|
57
37
|
}
|
|
@@ -66,48 +46,6 @@ function tuiDefaultSort(x, y) {
|
|
|
66
46
|
return x > y ? 1 : -1;
|
|
67
47
|
}
|
|
68
48
|
|
|
69
|
-
function tuiSetSignal(signal, value) {
|
|
70
|
-
if ('set' in signal) {
|
|
71
|
-
signal.set(value);
|
|
72
|
-
}
|
|
73
|
-
else if ('applyValueToInputSignal' in signal[SIGNAL]) {
|
|
74
|
-
signal[SIGNAL].applyValueToInputSignal(signal[SIGNAL], value);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
ngDevMode && console.assert(false, 'tuiSetSignal was called on read-only signal');
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function tuiDirectiveBinding(token, key, initial, options = { self: true }) {
|
|
82
|
-
const result = isSignal(initial) ? initial : signal(initial);
|
|
83
|
-
const directive = inject(token, options);
|
|
84
|
-
const output = directive[`${key.toString()}Change`];
|
|
85
|
-
// TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)
|
|
86
|
-
let previous;
|
|
87
|
-
effect(() => {
|
|
88
|
-
const value = result();
|
|
89
|
-
if (previous === value) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
if (isSignal(directive[key])) {
|
|
93
|
-
tuiSetSignal(directive[key], value);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
directive[key] = value;
|
|
97
|
-
}
|
|
98
|
-
directive.ngOnChanges?.({});
|
|
99
|
-
output?.emit?.(value);
|
|
100
|
-
previous = value;
|
|
101
|
-
}, TUI_ALLOW_SIGNAL_WRITES);
|
|
102
|
-
return result;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/** @deprecated remove in v5 */
|
|
106
|
-
function tuiDirectiveListener(token, key, options = { self: true }) {
|
|
107
|
-
const prop = inject(token, options)?.[key];
|
|
108
|
-
return isSignal(prop) ? prop : toSignal(prop);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
49
|
function tuiDistanceBetweenTouches({ touches }) {
|
|
112
50
|
return Math.hypot((touches[0]?.clientX ?? 0) - (touches[1]?.clientX ?? 0), (touches[0]?.clientY ?? 0) - (touches[1]?.clientY ?? 0));
|
|
113
51
|
}
|
|
@@ -119,15 +57,6 @@ function tuiEaseInOutQuad(t) {
|
|
|
119
57
|
return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
|
|
120
58
|
}
|
|
121
59
|
|
|
122
|
-
/**
|
|
123
|
-
* Flattens two-dimensional array and calculates resulting length
|
|
124
|
-
*
|
|
125
|
-
* @param array twi dimensional array
|
|
126
|
-
*/
|
|
127
|
-
function tuiFlatLength(array) {
|
|
128
|
-
return array.reduce((count, section) => count + section.length, 0);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
60
|
const IFRAME = 'position: fixed; visibility: hidden; pointer-events: none';
|
|
132
61
|
const BODY = 'height: fit-content; line-height: 1em;';
|
|
133
62
|
const CLASS = 'tui-font-size-watcher';
|
|
@@ -158,23 +87,9 @@ function tuiFontSizeWatcher(callback, win = window) {
|
|
|
158
87
|
};
|
|
159
88
|
}
|
|
160
89
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
* @param queryList
|
|
165
|
-
* @returns original array from {@link QueryList}.
|
|
166
|
-
*/
|
|
167
|
-
function tuiGetOriginalArrayFromQueryList(queryList) {
|
|
168
|
-
let array = [];
|
|
169
|
-
queryList.find((_item, _index, originalArray) => {
|
|
170
|
-
array = originalArray;
|
|
171
|
-
return true;
|
|
172
|
-
});
|
|
173
|
-
return array;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
function tuiIsFalsy(value) {
|
|
177
|
-
return !value;
|
|
90
|
+
let autoId = 0;
|
|
91
|
+
function tuiGenerateId() {
|
|
92
|
+
return `tui_${autoId++}${Date.now()}`;
|
|
178
93
|
}
|
|
179
94
|
|
|
180
95
|
function tuiIsNumber(value) {
|
|
@@ -189,19 +104,6 @@ function tuiIsPresent(value) {
|
|
|
189
104
|
return value !== null && value !== undefined;
|
|
190
105
|
}
|
|
191
106
|
|
|
192
|
-
/**
|
|
193
|
-
* @deprecated: drop in v5.0
|
|
194
|
-
*/
|
|
195
|
-
function tuiIsValidUrl(url) {
|
|
196
|
-
return new RegExp(String.raw `^([a-zA-Z]+:\/\/)?` + // protocol
|
|
197
|
-
String.raw `((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|localhost|` + // domain name
|
|
198
|
-
String.raw `((\d{1,3}\.){3}\d{1,3}))` + // OR IP (v4) address
|
|
199
|
-
String.raw `(\:\d+)?(\/[-a-z\d%_.~+\:]*)*` + // port and path
|
|
200
|
-
String.raw `(\?[)(;&a-z\d%_.~+=-]*)?` + // query string
|
|
201
|
-
String.raw `(\#[-a-z\d_]*)?$`, // fragment locator
|
|
202
|
-
'i').test(url);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
107
|
function tuiMarkControlAsTouchedAndValidate(control) {
|
|
206
108
|
if (control instanceof FormArray) {
|
|
207
109
|
control.controls.forEach((nestedControl) => {
|
|
@@ -288,23 +190,6 @@ function getObfuscateIndexes(value, match) {
|
|
|
288
190
|
return obfuscateIndexes;
|
|
289
191
|
}
|
|
290
192
|
|
|
291
|
-
function tuiProvide(provide, useExisting, multi = false) {
|
|
292
|
-
return { provide, useExisting, multi };
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
// TODO: Drop ProviderToken in v.5
|
|
296
|
-
function tuiProvideOptions(provide, options, fallback) {
|
|
297
|
-
return {
|
|
298
|
-
provide,
|
|
299
|
-
useFactory: () => ({
|
|
300
|
-
...(inject(provide, { optional: true, skipSelf: true }) || fallback),
|
|
301
|
-
...(inject(options, { optional: true }) ||
|
|
302
|
-
// @ts-ignore
|
|
303
|
-
(typeof options === 'function' ? options() : options)),
|
|
304
|
-
}),
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
|
|
308
193
|
/// <reference types="@taiga-ui/tsconfig/ng-dev-mode" />
|
|
309
194
|
function decorateMethod(originalMethod) {
|
|
310
195
|
let previousArgs = [];
|
|
@@ -397,10 +282,45 @@ function tuiPx(value) {
|
|
|
397
282
|
return `${value}px`;
|
|
398
283
|
}
|
|
399
284
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
285
|
+
/**
|
|
286
|
+
* Sanitizes pasted or dropped text by removing invisible and control characters
|
|
287
|
+
* that can appear in clipboard or drag-and-drop data.
|
|
288
|
+
*
|
|
289
|
+
* Removes:
|
|
290
|
+
* 1. ASCII control characters (0x00–0x1F) — non-printable characters like
|
|
291
|
+
* NULL, BEL, BS, CR, LF, TAB, ESC, etc.
|
|
292
|
+
* 2. Extended control characters (0x7F–0x9F) — C1 control codes from ISO-8859-1,
|
|
293
|
+
* often found in legacy or malformed text encodings.
|
|
294
|
+
* 3. Zero-width and special Unicode characters:
|
|
295
|
+
* - U+200B ZERO WIDTH SPACE
|
|
296
|
+
* - U+200C ZERO WIDTH NON-JOINER
|
|
297
|
+
* - U+200D ZERO WIDTH JOINER
|
|
298
|
+
* - U+FEFF BYTE ORDER MARK (BOM)
|
|
299
|
+
*
|
|
300
|
+
* @param {string} value - The input string from clipboard or drag event.
|
|
301
|
+
* @returns {string} - A cleaned string without control or invisible characters.
|
|
302
|
+
*
|
|
303
|
+
* @example
|
|
304
|
+
* tuiSanitizeText('Hello\u0000World\u200B!');
|
|
305
|
+
* // → "HelloWorld!"
|
|
306
|
+
*/
|
|
307
|
+
function tuiSanitizeText(value) {
|
|
308
|
+
// eslint-disable-next-line no-control-regex
|
|
309
|
+
const controlCharsRegex = /[\x00-\x1F\x7F-\x9F]/g;
|
|
310
|
+
const zeroWidthCharsRegex = /[\u200B-\u200D\uFEFF]/g;
|
|
311
|
+
return value.replaceAll(controlCharsRegex, '').replaceAll(zeroWidthCharsRegex, '');
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
function tuiSetSignal(signal, value) {
|
|
315
|
+
if ('set' in signal) {
|
|
316
|
+
signal.set(value);
|
|
317
|
+
}
|
|
318
|
+
else if ('applyValueToInputSignal' in signal[SIGNAL]) {
|
|
319
|
+
signal[SIGNAL].applyValueToInputSignal(signal[SIGNAL], value);
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
ngDevMode && console.assert(false, 'tuiSetSignal was called on read-only signal');
|
|
323
|
+
}
|
|
404
324
|
}
|
|
405
325
|
|
|
406
326
|
const MAP = new InjectionToken(ngDevMode ? 'MAP' : '', {
|
|
@@ -423,5 +343,5 @@ function tuiWithStyles(component) {
|
|
|
423
343
|
* Generated bundle index. Do not edit.
|
|
424
344
|
*/
|
|
425
345
|
|
|
426
|
-
export { TuiPureException,
|
|
346
|
+
export { TuiPureException, tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiCountFilledControls, tuiDefaultSort, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFontSizeWatcher, tuiGenerateId, tuiIsControlEmpty, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObfuscate, tuiPure, tuiPx, tuiSanitizeText, tuiSetSignal, tuiWithStyles };
|
|
427
347
|
//# sourceMappingURL=taiga-ui-cdk-utils-miscellaneous.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.mjs","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/change-date-separator.ts","../../../projects/cdk/utils/miscellaneous/is-control-empty.ts","../../../projects/cdk/utils/miscellaneous/count-filled-controls.ts","../../../projects/cdk/utils/miscellaneous/create-token.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/set-signal.ts","../../../projects/cdk/utils/miscellaneous/directive-binding.ts","../../../projects/cdk/utils/miscellaneous/directive-listener.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/font-size-watcher.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-valid-url.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/obfuscate.ts","../../../projects/cdk/utils/miscellaneous/provide.ts","../../../projects/cdk/utils/miscellaneous/provide-options.ts","../../../projects/cdk/utils/miscellaneous/pure.ts","../../../projects/cdk/utils/miscellaneous/px.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/with-styles.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(\n array: readonly T[],\n item: T,\n identity?: TuiIdentityMatcher<T>,\n): T[] {\n const index = identity\n ? array.findIndex((it) => identity(it, item))\n : array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","/* internal */\nexport const changeDateSeparator = (\n dateString: string,\n newDateSeparator: string,\n): string => dateString.replaceAll(/[^0-9A-Za-zА-Яа-я]/gi, newDateSeparator);\n","import {type AbstractControl} from '@angular/forms';\n\nexport function tuiIsControlEmpty({value = null}: AbstractControl): boolean {\n return value === null || value === '' || (Array.isArray(value) && !value.length);\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\nimport {tuiToInt} from '@taiga-ui/cdk/utils/math';\n\nimport {tuiIsControlEmpty} from './is-control-empty';\n\nexport function tuiCountFilledControls(control: AbstractControl): number {\n if (control instanceof FormArray) {\n return control.controls.reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n if (control instanceof FormGroup) {\n return Object.values(control.controls).reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n return tuiToInt(!tuiIsControlEmpty(control));\n}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @deprecated: drop in v5.0\n */\nexport function tuiCreateToken<T>(defaults?: T): InjectionToken<T> {\n return defaults === undefined\n ? new InjectionToken('')\n : tuiCreateTokenFromFactory(() => defaults);\n}\n\n/**\n * @deprecated: drop in v5.0\n */\nexport function tuiCreateTokenFromFactory<T>(factory?: () => T): InjectionToken<T> {\n return factory ? new InjectionToken<T>('', {factory}) : new InjectionToken<T>('');\n}\n","export function tuiIsString(value: unknown): value is string {\n return typeof value === 'string';\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","import {type InputSignal, type WritableSignal} from '@angular/core';\nimport {SIGNAL} from '@angular/core/primitives/signals';\n\nexport function tuiSetSignal<T>(\n signal: InputSignal<T> | WritableSignal<T>,\n value: T,\n): void {\n if ('set' in signal) {\n signal.set(value);\n } else if ('applyValueToInputSignal' in signal[SIGNAL]) {\n signal[SIGNAL].applyValueToInputSignal(signal[SIGNAL], value);\n } else {\n ngDevMode && console.assert(false, 'tuiSetSignal was called on read-only signal');\n }\n}\n","import {\n effect,\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\n\nimport {tuiSetSignal} from './set-signal';\n\ntype SignalLikeTypeOf<T> = T extends Signal<infer R> ? R : T;\n\ntype SignalLike<T> = Signal<T> | T;\n\nexport function tuiDirectiveBinding<\n T,\n G extends keyof T,\n I extends SignalLike<SignalLikeTypeOf<T[G]>>,\n>(\n token: ProviderToken<T>,\n key: G,\n initial: I,\n options: InjectOptions = {self: true},\n): I extends Signal<any> ? I : WritableSignal<I> {\n const result: any = isSignal(initial) ? initial : signal(initial);\n const directive: any = inject(token, options);\n const output = directive[`${key.toString()}Change`];\n\n // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)\n let previous: any;\n\n effect(() => {\n const value: any = result();\n\n if (previous === value) {\n return;\n }\n\n if (isSignal(directive[key])) {\n tuiSetSignal(directive[key] as any, value);\n } else {\n directive[key] = value;\n }\n\n directive.ngOnChanges?.({});\n output?.emit?.(value);\n previous = value;\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n return result;\n}\n","import {\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type Observable} from 'rxjs';\n\ntype OutputKeysOf<T> = {\n [K in keyof T]: T[K] extends Observable<any> | Signal<any> ? K : never;\n}[keyof T];\n\ntype OutputTypeOf<T> =\n T extends Signal<infer R> ? R : T extends Observable<infer O> ? O : never;\n\n/** @deprecated remove in v5 */\nexport function tuiDirectiveListener<T, K extends OutputKeysOf<T>>(\n token: ProviderToken<T>,\n key: K,\n options: InjectOptions = {self: true},\n): Signal<OutputTypeOf<T[K]>> {\n const prop: any = inject(token, options)?.[key];\n\n return isSignal(prop) ? prop : toSignal<any>(prop);\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n (touches[0]?.clientX ?? 0) - (touches[1]?.clientX ?? 0),\n (touches[0]?.clientY ?? 0) - (touches[1]?.clientY ?? 0),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n console.assert(\n t >= 0 && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","const IFRAME = 'position: fixed; visibility: hidden; pointer-events: none';\nconst BODY = 'height: fit-content; line-height: 1em;';\nconst CLASS = 'tui-font-size-watcher';\n\nexport function tuiFontSizeWatcher(\n callback: (fontSize: number) => void,\n win: Window = window,\n): () => void {\n if (win.document.querySelector(`.${CLASS}`)) {\n return () => {};\n }\n\n const iframe = win.document.createElement('iframe');\n const resize = (): void => {\n const {innerWidth, outerWidth, devicePixelRatio} = win;\n\n iframe.width = `${innerWidth === outerWidth ? innerWidth : innerWidth / devicePixelRatio}`;\n };\n\n win.document.body.append(iframe);\n win.addEventListener('resize', resize);\n\n const doc = iframe.contentWindow?.document;\n const observer = new ResizeObserver(() => callback(doc?.body.offsetHeight || 0));\n\n iframe.setAttribute('class', CLASS);\n iframe.setAttribute('style', IFRAME);\n doc?.documentElement.style.setProperty('font', '-apple-system-body');\n doc?.body.setAttribute('style', BODY);\n doc?.body.insertAdjacentText('beforeend', '.'.repeat(1000));\n observer.observe(doc?.body || iframe);\n resize();\n\n return () => {\n observer.disconnect();\n iframe.remove();\n win.removeEventListener('resize', resize);\n };\n}\n","import {type QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n return typeof value === 'object' && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","/**\n * @deprecated: drop in v5.0\n */\nexport function tuiIsValidUrl(url: string): boolean {\n return new RegExp(\n String.raw`^([a-zA-Z]+:\\/\\/)?` + // protocol\n String.raw`((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|` + // domain name\n String.raw`((\\d{1,3}\\.){3}\\d{1,3}))` + // OR IP (v4) address\n String.raw`(\\:\\d+)?(\\/[-a-z\\d%_.~+\\:]*)*` + // port and path\n String.raw`(\\?[)(;&a-z\\d%_.~+=-]*)?` + // query string\n String.raw`(\\#[-a-z\\d_]*)?$`, // fragment locator\n 'i',\n ).test(url);\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * Obfuscates a string by replacing certain characters with a symbol.\n *\n * @param value the input string to obfuscate\n * @param symbol the symbol for obfuscation\n * @return the obfuscated string\n *\n * The function determines which characters to obfuscate using a regular expression and the string's length:\n * - 8 or more: show first 2 and last 2 characters\n * - 4 to 7: show first and last character\n * - less than 4: obfuscate all characters\n * - obfuscates only alphanumeric characters\n */\nexport function tuiObfuscate(value: string, symbol: string): string {\n if (!value) {\n return value;\n }\n\n const match = /[\\p{L}\\p{N}]/gu;\n\n let visible = 0;\n let obfuscateIndexes: number[] = getObfuscateIndexes(value, match);\n\n if (obfuscateIndexes.length >= 8) {\n visible = 2;\n } else if (obfuscateIndexes.length >= 4) {\n visible = 1;\n }\n\n obfuscateIndexes = obfuscateIndexes.slice(visible, obfuscateIndexes.length);\n\n const lastIndex = (obfuscateIndexes.length satisfies number) - visible;\n\n obfuscateIndexes = obfuscateIndexes.slice(0, lastIndex < 0 ? 0 : lastIndex);\n\n const result = value.split('');\n\n obfuscateIndexes.forEach((index) => {\n result[index] = symbol;\n });\n\n return result.join('');\n}\n\nfunction getObfuscateIndexes(value: string, match?: RegExp): number[] {\n if (!match) {\n return Array.from({length: value.length}).map((_, index) => index);\n }\n\n const obfuscateIndexes: number[] = [];\n let matchResult;\n let count = 0;\n\n while ((matchResult = match.exec(value)) !== null && count < value.length) {\n const start = matchResult.index;\n const end = match.lastIndex - 1;\n\n for (let i = start; i <= end; i++) {\n obfuscateIndexes.push(i);\n }\n\n count++;\n }\n\n return obfuscateIndexes;\n}\n","import {type ExistingProvider, type ProviderToken} from '@angular/core';\n\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T | T[]>,\n useExisting: ProviderToken<T>,\n multi: boolean,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n multi = false,\n): ExistingProvider {\n return {provide, useExisting, multi};\n}\n","import {\n type FactoryProvider,\n inject,\n type InjectionToken,\n type ProviderToken,\n} from '@angular/core';\n\n// TODO: Drop ProviderToken in v.5\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T> | ProviderToken<Partial<T>> | (() => Partial<T>),\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n useFactory: (): T => ({\n ...(inject(provide, {optional: true, skipSelf: true}) || fallback),\n ...(inject(options as any, {optional: true}) ||\n // @ts-ignore\n (typeof options === 'function' ? options() : options)),\n }),\n };\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nfunction decorateMethod(\n originalMethod: (...args: unknown[]) => unknown,\n): (this: object, ...args: unknown[]) => unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n return function tuiPureMethodPatched(this: object, ...args: unknown[]): unknown {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalMethod.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n}\n\nfunction decorateGetter(\n originalGetter: () => unknown,\n propertyKey: string | symbol,\n enumerable = true,\n): (this: object) => unknown {\n return function tuiPureGetterPatched(this: object): unknown {\n const value = originalGetter.call(this);\n\n Object.defineProperty(this, propertyKey, {enumerable, value});\n\n return value;\n };\n}\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * @throws error if used not on getter or function\n *\n * CAUTION: they must be pure.\n * TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n */\nexport function tuiPure<T>(\n target: object,\n propertyKey: string,\n {get, enumerable, value}: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T>;\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * CAUTION: they must be pure.\n */\nexport function tuiPure<A extends unknown[], R>(\n target: (...args: A) => R,\n context: ClassGetterDecoratorContext | ClassMethodDecoratorContext,\n): (...args: A) => R;\n\nexport function tuiPure(\n target: object | ((...args: unknown[]) => unknown),\n propertyKeyOrContext:\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext\n | string,\n descriptor?: TypedPropertyDescriptor<(...args: unknown[]) => unknown>,\n): TypedPropertyDescriptor<unknown> | ((...args: unknown[]) => unknown) {\n if (typeof target === 'function') {\n const context = propertyKeyOrContext as\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext;\n\n if (context.kind === 'getter') {\n return decorateGetter(target as () => unknown, context.name);\n }\n\n if (context.kind === 'method') {\n return decorateMethod(target as (...args: unknown[]) => unknown);\n }\n\n throw new TuiPureException();\n }\n\n // TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n const {get, enumerable, value} = descriptor!;\n const propertyKey = propertyKeyOrContext as string;\n\n if (get) {\n return {\n configurable: true,\n enumerable,\n get: decorateGetter(get, propertyKey, enumerable),\n };\n }\n\n if (typeof value !== 'function') {\n throw new TuiPureException();\n }\n\n const original = value;\n\n return {\n configurable: true,\n enumerable,\n get(): unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = original.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, {\n configurable: true,\n value: patched,\n });\n\n return patched as unknown;\n },\n };\n}\n\nexport class TuiPureException extends Error {\n constructor() {\n super(ngDevMode ? 'tuiPure can only be used with functions or getters' : '');\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && console.assert(Number.isFinite(value), 'Value must be finite number');\n\n return `${value}px`;\n}\n","import {type TuiValuesOf} from '@taiga-ui/cdk/types';\n\nexport function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<TuiValuesOf<T>, T>(),\n )\n .values(),\n );\n}\n","import {\n createComponent,\n DestroyRef,\n EnvironmentInjector,\n inject,\n InjectionToken,\n type Type,\n} from '@angular/core';\n\nconst MAP = new InjectionToken(ngDevMode ? 'MAP' : '', {\n factory: () => {\n const map = new Map();\n\n inject(DestroyRef).onDestroy(() =>\n map.forEach((component) => component.destroy()),\n );\n\n return map;\n },\n});\n\nexport function tuiWithStyles(component: Type<unknown>): undefined {\n const map = inject(MAP);\n const environmentInjector = inject(EnvironmentInjector);\n\n if (!map.has(component)) {\n map.set(component, createComponent(component, {environmentInjector}));\n }\n\n return undefined;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAgB,SAAA,cAAc,CAAI,KAAmB,EAAE,KAAa,EAAA;AAChE,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzF;;ACFgB,SAAA,qBAAqB,CAAI,CAAe,EAAE,CAAe,EAAA;IACrE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/E;;SCEgB,cAAc,CAC1B,KAAmB,EACnB,IAAO,EACP,QAAgC,EAAA;IAEhC,MAAM,KAAK,GAAG;AACV,UAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;AAC5C,UAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzB,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;AACzE;;ACdA;AACa,MAAA,mBAAmB,GAAG,CAC/B,UAAkB,EAClB,gBAAwB,KACf,UAAU,CAAC,UAAU,CAAC,sBAAsB,EAAE,gBAAgB;;SCF3D,iBAAiB,CAAC,EAAC,KAAK,GAAG,IAAI,EAAkB,EAAA;IAC7D,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACpF;;ACCM,SAAU,sBAAsB,CAAC,OAAwB,EAAA;AAC3D,IAAA,IAAI,OAAO,YAAY,SAAS,EAAE;QAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,aAAa,KAAK,GAAG,GAAG,sBAAsB,CAAC,aAAa,CAAC,EACnE,CAAC,CACJ;;AAGL,IAAA,IAAI,OAAO,YAAY,SAAS,EAAE;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,aAAa,KAAK,GAAG,GAAG,sBAAsB,CAAC,aAAa,CAAC,EACnE,CAAC,CACJ;;IAGL,OAAO,QAAQ,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAChD;;ACnBA;;AAEG;AACG,SAAU,cAAc,CAAI,QAAY,EAAA;IAC1C,OAAO,QAAQ,KAAK;AAChB,UAAE,IAAI,cAAc,CAAC,EAAE;UACrB,yBAAyB,CAAC,MAAM,QAAQ,CAAC;AACnD;AAEA;;AAEG;AACG,SAAU,yBAAyB,CAAI,OAAiB,EAAA;IAC1D,OAAO,OAAO,GAAG,IAAI,cAAc,CAAI,EAAE,EAAE,EAAC,OAAO,EAAC,CAAC,GAAG,IAAI,cAAc,CAAI,EAAE,CAAC;AACrF;;AChBM,SAAU,WAAW,CAAC,KAAc,EAAA;AACtC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ;AACpC;;ACAgB,SAAA,cAAc,CAAI,CAAI,EAAE,CAAI,EAAA;AACxC,IAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACT,QAAA,OAAO,CAAC;;IAGZ,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AAClC,QAAA,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;;AAG7B,IAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB;;ACTgB,SAAA,YAAY,CACxB,MAA0C,EAC1C,KAAQ,EAAA;AAER,IAAA,IAAI,KAAK,IAAI,MAAM,EAAE;AACjB,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;;AACd,SAAA,IAAI,yBAAyB,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;AACpD,QAAA,MAAM,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;;SAC1D;QACH,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,6CAA6C,CAAC;;AAEzF;;ACIgB,SAAA,mBAAmB,CAK/B,KAAuB,EACvB,GAAM,EACN,OAAU,EACV,OAAyB,GAAA,EAAC,IAAI,EAAE,IAAI,EAAC,EAAA;AAErC,IAAA,MAAM,MAAM,GAAQ,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACjE,MAAM,SAAS,GAAQ,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;IAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAA,EAAG,GAAG,CAAC,QAAQ,EAAE,CAAQ,MAAA,CAAA,CAAC;;AAGnD,IAAA,IAAI,QAAa;IAEjB,MAAM,CAAC,MAAK;AACR,QAAA,MAAM,KAAK,GAAQ,MAAM,EAAE;AAE3B,QAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;YACpB;;QAGJ,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1B,YAAY,CAAC,SAAS,CAAC,GAAG,CAAQ,EAAE,KAAK,CAAC;;aACvC;AACH,YAAA,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;;AAG1B,QAAA,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;AAC3B,QAAA,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;QACrB,QAAQ,GAAG,KAAK;KACnB,EAAE,uBAAuB,CAAC;AAE3B,IAAA,OAAO,MAAM;AACjB;;ACrCA;AACgB,SAAA,oBAAoB,CAChC,KAAuB,EACvB,GAAM,EACN,OAAA,GAAyB,EAAC,IAAI,EAAE,IAAI,EAAC,EAAA;AAErC,IAAA,MAAM,IAAI,GAAQ,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAE/C,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAM,IAAI,CAAC;AACtD;;AC1BgB,SAAA,yBAAyB,CAAC,EAAC,OAAO,EAAa,EAAA;IAC3D,OAAO,IAAI,CAAC,KAAK,CACb,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,EACvD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAC1D;AACL;;ACLA;AAEM,SAAU,gBAAgB,CAAC,CAAS,EAAA;IACtC,SAAS;AACL,QAAA,OAAO,CAAC,MAAM,CACV,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAChB,uDAAuD,EACvD,CAAC,CACJ;IAEL,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACrD;;ACXA;;;;AAIG;AACG,SAAU,aAAa,CAAC,KAAwC,EAAA;AAClE,IAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AACtE;;ACPA,MAAM,MAAM,GAAG,2DAA2D;AAC1E,MAAM,IAAI,GAAG,wCAAwC;AACrD,MAAM,KAAK,GAAG,uBAAuB;SAErB,kBAAkB,CAC9B,QAAoC,EACpC,MAAc,MAAM,EAAA;IAEpB,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC,EAAE;AACzC,QAAA,OAAO,MAAO,GAAC;;IAGnB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IACnD,MAAM,MAAM,GAAG,MAAW;QACtB,MAAM,EAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAC,GAAG,GAAG;AAEtD,QAAA,MAAM,CAAC,KAAK,GAAG,GAAG,UAAU,KAAK,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,EAAE;AAC9F,KAAC;IAED,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,IAAA,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;AAEtC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ;AAC1C,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;AAEhF,IAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AACnC,IAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;IACpC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACpE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;AACrC,IAAA,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,MAAM,CAAC;AACrC,IAAA,MAAM,EAAE;AAER,IAAA,OAAO,MAAK;QACR,QAAQ,CAAC,UAAU,EAAE;QACrB,MAAM,CAAC,MAAM,EAAE;AACf,QAAA,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC7C,KAAC;AACL;;ACpCA;;;;;AAKG;AACG,SAAU,gCAAgC,CAC5C,SAAuB,EAAA;IAEvB,IAAI,KAAK,GAAiB,EAAE;IAE5B,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,KAAI;QAC5C,KAAK,GAAG,aAAa;AAErB,QAAA,OAAO,IAAI;AACf,KAAC,CAAC;AAEF,IAAA,OAAO,KAAK;AAChB;;ACpBM,SAAU,UAAU,CAAC,KAAc,EAAA;IACrC,OAAO,CAAC,KAAK;AACjB;;ACFM,SAAU,WAAW,CAAC,KAAc,EAAA;AACtC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ;AACpC;;ACFM,SAAU,WAAW,CACvB,KAAc,EAAA;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK;AAC/C;;ACJM,SAAU,YAAY,CAAI,KAAgB,EAAA;AAC5C,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAChD;;ACFA;;AAEG;AACG,SAAU,aAAa,CAAC,GAAW,EAAA;IACrC,OAAO,IAAI,MAAM,CACb,MAAM,CAAC,GAAG,CAAA,CAAoB,kBAAA,CAAA;AAC1B,QAAA,MAAM,CAAC,GAAG,CAAA,CAAA,sDAAA,CAAwD;AAClE,QAAA,MAAM,CAAC,GAAG,CAAA,CAAA,wBAAA,CAA0B;AACpC,QAAA,MAAM,CAAC,GAAG,CAAA,CAAA,6BAAA,CAA+B;AACzC,QAAA,MAAM,CAAC,GAAG,CAAA,CAAA,wBAAA,CAA0B;AACpC,QAAA,MAAM,CAAC,GAAG,CAAA,CAAA,gBAAA,CAAkB;AAChC,IAAA,GAAG,CACN,CAAC,IAAI,CAAC,GAAG,CAAC;AACf;;ACXM,SAAU,kCAAkC,CAAC,OAAwB,EAAA;AACvE,IAAA,IAAI,OAAO,YAAY,SAAS,EAAE;QAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,KAAI;YACvC,kCAAkC,CAAC,aAAa,CAAC;AACrD,SAAC,CAAC;;AAGN,IAAA,IAAI,OAAO,YAAY,SAAS,EAAE;AAC9B,QAAA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,KAAI;YACtD,kCAAkC,CAAC,aAAa,CAAC;AACrD,SAAC,CAAC;;IAGN,OAAO,CAAC,aAAa,EAAE;IACvB,OAAO,CAAC,sBAAsB,EAAE;AACpC;;ACfA;;;;;;;AAOG;SACa,eAAe,CAC3B,CAAW,EACX,CAAW,EACX,OAA8B,EAAA;AAE9B,IAAA,IAAI,CAAC,KAAK,IAAI,EAAE;QACZ,OAAO,CAAC,KAAK,IAAI;;AAGrB,IAAA,IAAI,CAAC,KAAK,IAAI,EAAE;AACZ,QAAA,OAAO,KAAK;;AAGhB,IAAA,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB;;ACxBA;;;;;;;;;;;;AAYG;AACa,SAAA,YAAY,CAAC,KAAa,EAAE,MAAc,EAAA;IACtD,IAAI,CAAC,KAAK,EAAE;AACR,QAAA,OAAO,KAAK;;IAGhB,MAAM,KAAK,GAAG,gBAAgB;IAE9B,IAAI,OAAO,GAAG,CAAC;IACf,IAAI,gBAAgB,GAAa,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;AAElE,IAAA,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;QAC9B,OAAO,GAAG,CAAC;;AACR,SAAA,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;QACrC,OAAO,GAAG,CAAC;;IAGf,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;AAE3E,IAAA,MAAM,SAAS,GAAI,gBAAgB,CAAC,MAAwB,GAAG,OAAO;AAEtE,IAAA,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE3E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAE9B,IAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC/B,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM;AAC1B,KAAC,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B;AAEA,SAAS,mBAAmB,CAAC,KAAa,EAAE,KAAc,EAAA;IACtD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;;IAGtE,MAAM,gBAAgB,GAAa,EAAE;AACrC,IAAA,IAAI,WAAW;IACf,IAAI,KAAK,GAAG,CAAC;AAEb,IAAA,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE;AACvE,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK;AAC/B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC;AAE/B,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AAC/B,YAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;;AAG5B,QAAA,KAAK,EAAE;;AAGX,IAAA,OAAO,gBAAgB;AAC3B;;ACtDM,SAAU,UAAU,CACtB,OAAyB,EACzB,WAA6B,EAC7B,KAAK,GAAG,KAAK,EAAA;AAEb,IAAA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC;AACxC;;ACVA;SACgB,iBAAiB,CAC7B,OAA0B,EAC1B,OAAoE,EACpE,QAAW,EAAA;IAEX,OAAO;QACH,OAAO;AACP,QAAA,UAAU,EAAE,OAAU;AAClB,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,QAAQ,CAAC;YAClE,IAAI,MAAM,CAAC,OAAc,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;;AAExC,iBAAC,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;SAC7D,CAAC;KACL;AACL;;ACtBA;AAEA,SAAS,cAAc,CACnB,cAA+C,EAAA;IAE/C,IAAI,YAAY,GAAuB,EAAE;IACzC,IAAI,8BAA8B,GAAG,KAAK;AAC1C,IAAA,IAAI,SAAkB;AAEtB,IAAA,OAAO,SAAS,oBAAoB,CAAe,GAAG,IAAe,EAAA;QACjE,MAAM,MAAM,GACR,8BAA8B;AAC9B,YAAA,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;AACnC,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;QAE3D,IAAI,MAAM,EAAE;AACR,YAAA,OAAO,SAAS;;QAGpB,YAAY,GAAG,IAAI;QACnB,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;QAC5C,8BAA8B,GAAG,IAAI;AAErC,QAAA,OAAO,SAAS;AACpB,KAAC;AACL;AAEA,SAAS,cAAc,CACnB,cAA6B,EAC7B,WAA4B,EAC5B,UAAU,GAAG,IAAI,EAAA;AAEjB,IAAA,OAAO,SAAS,oBAAoB,GAAA;QAChC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAEvC,QAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC;AAE7D,QAAA,OAAO,KAAK;AAChB,KAAC;AACL;SA8BgB,OAAO,CACnB,MAAkD,EAClD,oBAGY,EACZ,UAAqE,EAAA;AAErE,IAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;QAC9B,MAAM,OAAO,GAAG,oBAEiB;AAEjC,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,OAAO,cAAc,CAAC,MAAuB,EAAE,OAAO,CAAC,IAAI,CAAC;;AAGhE,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC3B,YAAA,OAAO,cAAc,CAAC,MAAyC,CAAC;;QAGpE,MAAM,IAAI,gBAAgB,EAAE;;;IAIhC,MAAM,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAC,GAAG,UAAW;IAC5C,MAAM,WAAW,GAAG,oBAA8B;IAElD,IAAI,GAAG,EAAE;QACL,OAAO;AACH,YAAA,YAAY,EAAE,IAAI;YAClB,UAAU;YACV,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC;SACpD;;AAGL,IAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC7B,MAAM,IAAI,gBAAgB,EAAE;;IAGhC,MAAM,QAAQ,GAAG,KAAK;IAEtB,OAAO;AACH,QAAA,YAAY,EAAE,IAAI;QAClB,UAAU;QACV,GAAG,GAAA;YACC,IAAI,YAAY,GAAuB,EAAE;YACzC,IAAI,8BAA8B,GAAG,KAAK;AAC1C,YAAA,IAAI,SAAkB;AAEtB,YAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,KAAa;gBAC5C,MAAM,MAAM,GACR,8BAA8B;AAC9B,oBAAA,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;AACnC,oBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;gBAE3D,IAAI,MAAM,EAAE;AACR,oBAAA,OAAO,SAAS;;gBAGpB,YAAY,GAAG,IAAI;gBACnB,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;gBACtC,8BAA8B,GAAG,IAAI;AAErC,gBAAA,OAAO,SAAS;AACpB,aAAC;AAED,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;AACrC,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,KAAK,EAAE,OAAO;AACjB,aAAA,CAAC;AAEF,YAAA,OAAO,OAAkB;SAC5B;KACJ;AACL;AAEM,MAAO,gBAAiB,SAAQ,KAAK,CAAA;AACvC,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,SAAS,GAAG,oDAAoD,GAAG,EAAE,CAAC;;AAEnF;;ACtJD;AAEA;;AAEG;AACG,SAAU,KAAK,CAAC,KAAa,EAAA;AAC/B,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC;IAElF,OAAO,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI;AACvB;;ACPgB,SAAA,SAAS,CACrB,KAAmB,EACnB,GAAY,EAAA;AAEZ,IAAA,OAAO,KAAK,CAAC,IAAI,CACb;AACK,SAAA,MAAM,CACH,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EACpE,IAAI,GAAG,EAAqB;SAE/B,MAAM,EAAE,CAChB;AACL;;ACLA,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,KAAK,GAAG,EAAE,EAAE;IACnD,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE;QAErB,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MACzB,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAClD;AAED,QAAA,OAAO,GAAG;KACb;AACJ,CAAA,CAAC;AAEI,SAAU,aAAa,CAAC,SAAwB,EAAA;AAClD,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACvB,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAEvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACrB,QAAA,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,EAAC,mBAAmB,EAAC,CAAC,CAAC;;AAGzE,IAAA,OAAO,SAAS;AACpB;;AC9BA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.mjs","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/is-control-empty.ts","../../../projects/cdk/utils/miscellaneous/count-filled-controls.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/font-size-watcher.ts","../../../projects/cdk/utils/miscellaneous/generate-id.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/obfuscate.ts","../../../projects/cdk/utils/miscellaneous/pure.ts","../../../projects/cdk/utils/miscellaneous/px.ts","../../../projects/cdk/utils/miscellaneous/sanitize-text.ts","../../../projects/cdk/utils/miscellaneous/set-signal.ts","../../../projects/cdk/utils/miscellaneous/with-styles.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => Object.is(item, b[index]));\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(\n array: readonly T[],\n item: T,\n identity?: TuiIdentityMatcher<T>,\n): T[] {\n const index = identity\n ? array.findIndex((it) => identity(it, item))\n : array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","import {type AbstractControl} from '@angular/forms';\n\nexport function tuiIsControlEmpty({value = null}: AbstractControl): boolean {\n return value === null || value === '' || (Array.isArray(value) && !value.length);\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\nimport {tuiToInt} from '@taiga-ui/cdk/utils/math';\n\nimport {tuiIsControlEmpty} from './is-control-empty';\n\nexport function tuiCountFilledControls(control: AbstractControl): number {\n if (control instanceof FormArray) {\n return control.controls.reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n if (control instanceof FormGroup) {\n return Object.values(control.controls).reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n return tuiToInt(!tuiIsControlEmpty(control));\n}\n","export function tuiIsString(value: unknown): value is string {\n return typeof value === 'string';\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n (touches[0]?.clientX ?? 0) - (touches[1]?.clientX ?? 0),\n (touches[0]?.clientY ?? 0) - (touches[1]?.clientY ?? 0),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n console.assert(\n t >= 0 && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","const IFRAME = 'position: fixed; visibility: hidden; pointer-events: none';\nconst BODY = 'height: fit-content; line-height: 1em;';\nconst CLASS = 'tui-font-size-watcher';\n\nexport function tuiFontSizeWatcher(\n callback: (fontSize: number) => void,\n win: Window = window,\n): () => void {\n if (win.document.querySelector(`.${CLASS}`)) {\n return () => {};\n }\n\n const iframe = win.document.createElement('iframe');\n const resize = (): void => {\n const {innerWidth, outerWidth, devicePixelRatio} = win;\n\n iframe.width = `${innerWidth === outerWidth ? innerWidth : innerWidth / devicePixelRatio}`;\n };\n\n win.document.body.append(iframe);\n win.addEventListener('resize', resize);\n\n const doc = iframe.contentWindow?.document;\n const observer = new ResizeObserver(() => callback(doc?.body.offsetHeight || 0));\n\n iframe.setAttribute('class', CLASS);\n iframe.setAttribute('style', IFRAME);\n doc?.documentElement.style.setProperty('font', '-apple-system-body');\n doc?.body.setAttribute('style', BODY);\n doc?.body.insertAdjacentText('beforeend', '.'.repeat(1000));\n observer.observe(doc?.body || iframe);\n resize();\n\n return () => {\n observer.disconnect();\n iframe.remove();\n win.removeEventListener('resize', resize);\n };\n}\n","let autoId = 0;\n\nexport function tuiGenerateId(): string {\n return `tui_${autoId++}${Date.now()}`;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n return typeof value === 'object' && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * Obfuscates a string by replacing certain characters with a symbol.\n *\n * @param value the input string to obfuscate\n * @param symbol the symbol for obfuscation\n * @return the obfuscated string\n *\n * The function determines which characters to obfuscate using a regular expression and the string's length:\n * - 8 or more: show first 2 and last 2 characters\n * - 4 to 7: show first and last character\n * - less than 4: obfuscate all characters\n * - obfuscates only alphanumeric characters\n */\nexport function tuiObfuscate(value: string, symbol: string): string {\n if (!value) {\n return value;\n }\n\n const match = /[\\p{L}\\p{N}]/gu;\n\n let visible = 0;\n let obfuscateIndexes: number[] = getObfuscateIndexes(value, match);\n\n if (obfuscateIndexes.length >= 8) {\n visible = 2;\n } else if (obfuscateIndexes.length >= 4) {\n visible = 1;\n }\n\n obfuscateIndexes = obfuscateIndexes.slice(visible, obfuscateIndexes.length);\n\n const lastIndex = (obfuscateIndexes.length satisfies number) - visible;\n\n obfuscateIndexes = obfuscateIndexes.slice(0, lastIndex < 0 ? 0 : lastIndex);\n\n const result = value.split('');\n\n obfuscateIndexes.forEach((index) => {\n result[index] = symbol;\n });\n\n return result.join('');\n}\n\nfunction getObfuscateIndexes(value: string, match?: RegExp): number[] {\n if (!match) {\n return Array.from({length: value.length}).map((_, index) => index);\n }\n\n const obfuscateIndexes: number[] = [];\n let matchResult;\n let count = 0;\n\n while ((matchResult = match.exec(value)) !== null && count < value.length) {\n const start = matchResult.index;\n const end = match.lastIndex - 1;\n\n for (let i = start; i <= end; i++) {\n obfuscateIndexes.push(i);\n }\n\n count++;\n }\n\n return obfuscateIndexes;\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nfunction decorateMethod(\n originalMethod: (...args: unknown[]) => unknown,\n): (this: object, ...args: unknown[]) => unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n return function tuiPureMethodPatched(this: object, ...args: unknown[]): unknown {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalMethod.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n}\n\nfunction decorateGetter(\n originalGetter: () => unknown,\n propertyKey: string | symbol,\n enumerable = true,\n): (this: object) => unknown {\n return function tuiPureGetterPatched(this: object): unknown {\n const value = originalGetter.call(this);\n\n Object.defineProperty(this, propertyKey, {enumerable, value});\n\n return value;\n };\n}\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * @throws error if used not on getter or function\n *\n * CAUTION: they must be pure.\n * TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n */\nexport function tuiPure<T>(\n target: object,\n propertyKey: string,\n {get, enumerable, value}: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T>;\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * CAUTION: they must be pure.\n */\nexport function tuiPure<A extends unknown[], R>(\n target: (...args: A) => R,\n context: ClassGetterDecoratorContext | ClassMethodDecoratorContext,\n): (...args: A) => R;\n\nexport function tuiPure(\n target: object | ((...args: unknown[]) => unknown),\n propertyKeyOrContext:\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext\n | string,\n descriptor?: TypedPropertyDescriptor<(...args: unknown[]) => unknown>,\n): TypedPropertyDescriptor<unknown> | ((...args: unknown[]) => unknown) {\n if (typeof target === 'function') {\n const context = propertyKeyOrContext as\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext;\n\n if (context.kind === 'getter') {\n return decorateGetter(target as () => unknown, context.name);\n }\n\n if (context.kind === 'method') {\n return decorateMethod(target as (...args: unknown[]) => unknown);\n }\n\n throw new TuiPureException();\n }\n\n // TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n const {get, enumerable, value} = descriptor!;\n const propertyKey = propertyKeyOrContext as string;\n\n if (get) {\n return {\n configurable: true,\n enumerable,\n get: decorateGetter(get, propertyKey, enumerable),\n };\n }\n\n if (typeof value !== 'function') {\n throw new TuiPureException();\n }\n\n const original = value;\n\n return {\n configurable: true,\n enumerable,\n get(): unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = original.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, {\n configurable: true,\n value: patched,\n });\n\n return patched as unknown;\n },\n };\n}\n\nexport class TuiPureException extends Error {\n constructor() {\n super(ngDevMode ? 'tuiPure can only be used with functions or getters' : '');\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && console.assert(Number.isFinite(value), 'Value must be finite number');\n\n return `${value}px`;\n}\n","/**\n * Sanitizes pasted or dropped text by removing invisible and control characters\n * that can appear in clipboard or drag-and-drop data.\n *\n * Removes:\n * 1. ASCII control characters (0x00–0x1F) — non-printable characters like\n * NULL, BEL, BS, CR, LF, TAB, ESC, etc.\n * 2. Extended control characters (0x7F–0x9F) — C1 control codes from ISO-8859-1,\n * often found in legacy or malformed text encodings.\n * 3. Zero-width and special Unicode characters:\n * - U+200B ZERO WIDTH SPACE\n * - U+200C ZERO WIDTH NON-JOINER\n * - U+200D ZERO WIDTH JOINER\n * - U+FEFF BYTE ORDER MARK (BOM)\n *\n * @param {string} value - The input string from clipboard or drag event.\n * @returns {string} - A cleaned string without control or invisible characters.\n *\n * @example\n * tuiSanitizeText('Hello\\u0000World\\u200B!');\n * // → \"HelloWorld!\"\n */\nexport function tuiSanitizeText(value: string): string {\n // eslint-disable-next-line no-control-regex\n const controlCharsRegex = /[\\x00-\\x1F\\x7F-\\x9F]/g;\n const zeroWidthCharsRegex = /[\\u200B-\\u200D\\uFEFF]/g;\n\n return value.replaceAll(controlCharsRegex, '').replaceAll(zeroWidthCharsRegex, '');\n}\n","import {type InputSignal, type WritableSignal} from '@angular/core';\nimport {SIGNAL} from '@angular/core/primitives/signals';\n\nexport function tuiSetSignal<T>(\n signal: InputSignal<T> | WritableSignal<T>,\n value: T,\n): void {\n if ('set' in signal) {\n signal.set(value);\n } else if ('applyValueToInputSignal' in signal[SIGNAL]) {\n signal[SIGNAL].applyValueToInputSignal(signal[SIGNAL], value);\n } else {\n ngDevMode && console.assert(false, 'tuiSetSignal was called on read-only signal');\n }\n}\n","import {\n createComponent,\n DestroyRef,\n EnvironmentInjector,\n inject,\n InjectionToken,\n type Type,\n} from '@angular/core';\n\nconst MAP = new InjectionToken(ngDevMode ? 'MAP' : '', {\n factory: () => {\n const map = new Map();\n\n inject(DestroyRef).onDestroy(() =>\n map.forEach((component) => component.destroy()),\n );\n\n return map;\n },\n});\n\nexport function tuiWithStyles(component: Type<unknown>): undefined {\n const map = inject(MAP);\n const environmentInjector = inject(EnvironmentInjector);\n\n if (!map.has(component)) {\n map.set(component, createComponent(component, {environmentInjector}));\n }\n\n return undefined;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils.mjs","sources":["../../../projects/cdk/utils/taiga-ui-cdk-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils.mjs","sources":["../../../projects/cdk/utils/taiga-ui-cdk-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;AAEG"}
|
|
@@ -4,7 +4,7 @@ export * from '@taiga-ui/cdk/date-time';
|
|
|
4
4
|
export * from '@taiga-ui/cdk/directives';
|
|
5
5
|
export * from '@taiga-ui/cdk/observables';
|
|
6
6
|
export * from '@taiga-ui/cdk/pipes';
|
|
7
|
-
export * from '@taiga-ui/cdk/
|
|
7
|
+
export * from '@taiga-ui/cdk/portals';
|
|
8
8
|
export * from '@taiga-ui/cdk/tokens';
|
|
9
9
|
export * from '@taiga-ui/cdk/utils';
|
|
10
10
|
|
package/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export * from '@taiga-ui/cdk/date-time';
|
|
|
4
4
|
export * from '@taiga-ui/cdk/directives';
|
|
5
5
|
export * from '@taiga-ui/cdk/observables';
|
|
6
6
|
export * from '@taiga-ui/cdk/pipes';
|
|
7
|
-
export * from '@taiga-ui/cdk/
|
|
7
|
+
export * from '@taiga-ui/cdk/portals';
|
|
8
8
|
export * from '@taiga-ui/cdk/tokens';
|
|
9
9
|
export type * from '@taiga-ui/cdk/types';
|
|
10
10
|
export * from '@taiga-ui/cdk/utils';
|
package/observables/index.d.ts
CHANGED
|
@@ -3,8 +3,6 @@ export * from './control-value';
|
|
|
3
3
|
export * from './drag-and-drop-from';
|
|
4
4
|
export * from './events';
|
|
5
5
|
export * from './if-map';
|
|
6
|
-
export * from './must-be-present';
|
|
7
|
-
export * from './query-list-observable';
|
|
8
6
|
export * from './scroll-from';
|
|
9
7
|
export * from './take-until-destroyed';
|
|
10
8
|
export * from './typed-from-event';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/cdk",
|
|
3
|
-
"version": "4.52.0-canary.
|
|
3
|
+
"version": "4.52.0-canary.e53e79e",
|
|
4
4
|
"description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
"directive"
|
|
13
13
|
],
|
|
14
14
|
"homepage": "https://github.com/taiga-family/taiga-ui",
|
|
15
|
-
"repository":
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/taiga-family/taiga-ui"
|
|
18
|
+
},
|
|
16
19
|
"license": "Apache-2.0",
|
|
17
20
|
"exports": {
|
|
18
21
|
"./schematics/*": "./schematics/*",
|
|
@@ -23,10 +26,6 @@
|
|
|
23
26
|
"types": "./index.d.ts",
|
|
24
27
|
"default": "./fesm2022/taiga-ui-cdk.mjs"
|
|
25
28
|
},
|
|
26
|
-
"./classes": {
|
|
27
|
-
"types": "./classes/index.d.ts",
|
|
28
|
-
"default": "./fesm2022/taiga-ui-cdk-classes.mjs"
|
|
29
|
-
},
|
|
30
29
|
"./constants": {
|
|
31
30
|
"types": "./constants/index.d.ts",
|
|
32
31
|
"default": "./fesm2022/taiga-ui-cdk-constants.mjs"
|
|
@@ -39,6 +38,10 @@
|
|
|
39
38
|
"types": "./directives/index.d.ts",
|
|
40
39
|
"default": "./fesm2022/taiga-ui-cdk-directives.mjs"
|
|
41
40
|
},
|
|
41
|
+
"./classes": {
|
|
42
|
+
"types": "./classes/index.d.ts",
|
|
43
|
+
"default": "./fesm2022/taiga-ui-cdk-classes.mjs"
|
|
44
|
+
},
|
|
42
45
|
"./observables": {
|
|
43
46
|
"types": "./observables/index.d.ts",
|
|
44
47
|
"default": "./fesm2022/taiga-ui-cdk-observables.mjs"
|
|
@@ -47,9 +50,9 @@
|
|
|
47
50
|
"types": "./pipes/index.d.ts",
|
|
48
51
|
"default": "./fesm2022/taiga-ui-cdk-pipes.mjs"
|
|
49
52
|
},
|
|
50
|
-
"./
|
|
51
|
-
"types": "./
|
|
52
|
-
"default": "./fesm2022/taiga-ui-cdk-
|
|
53
|
+
"./portals": {
|
|
54
|
+
"types": "./portals/index.d.ts",
|
|
55
|
+
"default": "./fesm2022/taiga-ui-cdk-portals.mjs"
|
|
53
56
|
},
|
|
54
57
|
"./tokens": {
|
|
55
58
|
"types": "./tokens/index.d.ts",
|
|
@@ -75,10 +78,6 @@
|
|
|
75
78
|
"types": "./directives/auto-focus/index.d.ts",
|
|
76
79
|
"default": "./fesm2022/taiga-ui-cdk-directives-auto-focus.mjs"
|
|
77
80
|
},
|
|
78
|
-
"./directives/click-outside": {
|
|
79
|
-
"types": "./directives/click-outside/index.d.ts",
|
|
80
|
-
"default": "./fesm2022/taiga-ui-cdk-directives-click-outside.mjs"
|
|
81
|
-
},
|
|
82
81
|
"./directives/control": {
|
|
83
82
|
"types": "./directives/control/index.d.ts",
|
|
84
83
|
"default": "./fesm2022/taiga-ui-cdk-directives-control.mjs"
|
|
@@ -87,10 +86,6 @@
|
|
|
87
86
|
"types": "./directives/copy-processor/index.d.ts",
|
|
88
87
|
"default": "./fesm2022/taiga-ui-cdk-directives-copy-processor.mjs"
|
|
89
88
|
},
|
|
90
|
-
"./directives/droppable": {
|
|
91
|
-
"types": "./directives/droppable/index.d.ts",
|
|
92
|
-
"default": "./fesm2022/taiga-ui-cdk-directives-droppable.mjs"
|
|
93
|
-
},
|
|
94
89
|
"./directives/element": {
|
|
95
90
|
"types": "./directives/element/index.d.ts",
|
|
96
91
|
"default": "./fesm2022/taiga-ui-cdk-directives-element.mjs"
|
|
@@ -115,10 +110,6 @@
|
|
|
115
110
|
"types": "./directives/item/index.d.ts",
|
|
116
111
|
"default": "./fesm2022/taiga-ui-cdk-directives-item.mjs"
|
|
117
112
|
},
|
|
118
|
-
"./directives/let": {
|
|
119
|
-
"types": "./directives/let/index.d.ts",
|
|
120
|
-
"default": "./fesm2022/taiga-ui-cdk-directives-let.mjs"
|
|
121
|
-
},
|
|
122
113
|
"./directives/media": {
|
|
123
114
|
"types": "./directives/media/index.d.ts",
|
|
124
115
|
"default": "./fesm2022/taiga-ui-cdk-directives-media.mjs"
|
|
@@ -139,14 +130,6 @@
|
|
|
139
130
|
"types": "./directives/platform/index.d.ts",
|
|
140
131
|
"default": "./fesm2022/taiga-ui-cdk-directives-platform.mjs"
|
|
141
132
|
},
|
|
142
|
-
"./directives/popover": {
|
|
143
|
-
"types": "./directives/popover/index.d.ts",
|
|
144
|
-
"default": "./fesm2022/taiga-ui-cdk-directives-popover.mjs"
|
|
145
|
-
},
|
|
146
|
-
"./directives/repeat-times": {
|
|
147
|
-
"types": "./directives/repeat-times/index.d.ts",
|
|
148
|
-
"default": "./fesm2022/taiga-ui-cdk-directives-repeat-times.mjs"
|
|
149
|
-
},
|
|
150
133
|
"./directives/resizer": {
|
|
151
134
|
"types": "./directives/resizer/index.d.ts",
|
|
152
135
|
"default": "./fesm2022/taiga-ui-cdk-directives-resizer.mjs"
|
|
@@ -171,26 +154,18 @@
|
|
|
171
154
|
"types": "./directives/visual-viewport/index.d.ts",
|
|
172
155
|
"default": "./fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs"
|
|
173
156
|
},
|
|
157
|
+
"./directives/with-styles": {
|
|
158
|
+
"types": "./directives/with-styles/index.d.ts",
|
|
159
|
+
"default": "./fesm2022/taiga-ui-cdk-directives-with-styles.mjs"
|
|
160
|
+
},
|
|
174
161
|
"./directives/zoom": {
|
|
175
162
|
"types": "./directives/zoom/index.d.ts",
|
|
176
163
|
"default": "./fesm2022/taiga-ui-cdk-directives-zoom.mjs"
|
|
177
164
|
},
|
|
178
|
-
"./pipes/animation": {
|
|
179
|
-
"types": "./pipes/animation/index.d.ts",
|
|
180
|
-
"default": "./fesm2022/taiga-ui-cdk-pipes-animation.mjs"
|
|
181
|
-
},
|
|
182
165
|
"./pipes/filter": {
|
|
183
166
|
"types": "./pipes/filter/index.d.ts",
|
|
184
167
|
"default": "./fesm2022/taiga-ui-cdk-pipes-filter.mjs"
|
|
185
168
|
},
|
|
186
|
-
"./pipes/is-present": {
|
|
187
|
-
"types": "./pipes/is-present/index.d.ts",
|
|
188
|
-
"default": "./fesm2022/taiga-ui-cdk-pipes-is-present.mjs"
|
|
189
|
-
},
|
|
190
|
-
"./pipes/keys": {
|
|
191
|
-
"types": "./pipes/keys/index.d.ts",
|
|
192
|
-
"default": "./fesm2022/taiga-ui-cdk-pipes-keys.mjs"
|
|
193
|
-
},
|
|
194
169
|
"./pipes/mapper": {
|
|
195
170
|
"types": "./pipes/mapper/index.d.ts",
|
|
196
171
|
"default": "./fesm2022/taiga-ui-cdk-pipes-mapper.mjs"
|
|
@@ -199,26 +174,10 @@
|
|
|
199
174
|
"types": "./pipes/obfuscate/index.d.ts",
|
|
200
175
|
"default": "./fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs"
|
|
201
176
|
},
|
|
202
|
-
"./pipes/repeat-times": {
|
|
203
|
-
"types": "./pipes/repeat-times/index.d.ts",
|
|
204
|
-
"default": "./fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs"
|
|
205
|
-
},
|
|
206
|
-
"./pipes/replace": {
|
|
207
|
-
"types": "./pipes/replace/index.d.ts",
|
|
208
|
-
"default": "./fesm2022/taiga-ui-cdk-pipes-replace.mjs"
|
|
209
|
-
},
|
|
210
|
-
"./pipes/to-array": {
|
|
211
|
-
"types": "./pipes/to-array/index.d.ts",
|
|
212
|
-
"default": "./fesm2022/taiga-ui-cdk-pipes-to-array.mjs"
|
|
213
|
-
},
|
|
214
177
|
"./utils/browser": {
|
|
215
178
|
"types": "./utils/browser/index.d.ts",
|
|
216
179
|
"default": "./fesm2022/taiga-ui-cdk-utils-browser.mjs"
|
|
217
180
|
},
|
|
218
|
-
"./utils/color": {
|
|
219
|
-
"types": "./utils/color/index.d.ts",
|
|
220
|
-
"default": "./fesm2022/taiga-ui-cdk-utils-color.mjs"
|
|
221
|
-
},
|
|
222
181
|
"./utils/di": {
|
|
223
182
|
"types": "./utils/di/index.d.ts",
|
|
224
183
|
"default": "./fesm2022/taiga-ui-cdk-utils-di.mjs"
|
|
@@ -244,16 +203,15 @@
|
|
|
244
203
|
"tslib": "2.8.1"
|
|
245
204
|
},
|
|
246
205
|
"peerDependencies": {
|
|
247
|
-
"@angular/animations": ">=19.0.0",
|
|
248
206
|
"@angular/cdk": ">=19.0.0",
|
|
249
207
|
"@angular/common": ">=19.0.0",
|
|
250
208
|
"@angular/core": ">=19.0.0",
|
|
251
209
|
"@angular/forms": ">=19.0.0",
|
|
252
|
-
"@ng-web-apis/common": "^4.12.
|
|
253
|
-
"@ng-web-apis/mutation-observer": "^4.12.
|
|
254
|
-
"@ng-web-apis/platform": "^4.12.
|
|
255
|
-
"@ng-web-apis/resize-observer": "^4.12.
|
|
256
|
-
"@ng-web-apis/screen-orientation": "^4.12.
|
|
210
|
+
"@ng-web-apis/common": "^4.12.2",
|
|
211
|
+
"@ng-web-apis/mutation-observer": "^4.12.2",
|
|
212
|
+
"@ng-web-apis/platform": "^4.12.1",
|
|
213
|
+
"@ng-web-apis/resize-observer": "^4.12.2",
|
|
214
|
+
"@ng-web-apis/screen-orientation": "^4.12.1",
|
|
257
215
|
"@taiga-ui/event-plugins": "^4.7.0",
|
|
258
216
|
"@taiga-ui/polymorpheus": "^4.9.0",
|
|
259
217
|
"rxjs": ">=7.0.0"
|
package/pipes/index.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
export * from '@taiga-ui/cdk/pipes/animation';
|
|
2
1
|
export * from '@taiga-ui/cdk/pipes/filter';
|
|
3
|
-
export * from '@taiga-ui/cdk/pipes/is-present';
|
|
4
|
-
export * from '@taiga-ui/cdk/pipes/keys';
|
|
5
2
|
export * from '@taiga-ui/cdk/pipes/mapper';
|
|
6
3
|
export * from '@taiga-ui/cdk/pipes/obfuscate';
|
|
7
|
-
export * from '@taiga-ui/cdk/pipes/repeat-times';
|
|
8
|
-
export * from '@taiga-ui/cdk/pipes/replace';
|
|
9
|
-
export * from '@taiga-ui/cdk/pipes/to-array';
|
|
@@ -6,7 +6,7 @@ export interface TuiObfuscateOptions {
|
|
|
6
6
|
* Default function used to obfuscate a string
|
|
7
7
|
* if no recipe was found.
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
default(value: string, symbol?: string): string;
|
|
10
10
|
/**
|
|
11
11
|
* Collection of named recipes for different obfuscation scenarios.
|
|
12
12
|
*/
|
|
@@ -16,4 +16,4 @@ export declare const TUI_OBFUSCATE_DEFAULT_OPTIONS: TuiObfuscateOptions;
|
|
|
16
16
|
/**
|
|
17
17
|
* Injection token for obfuscation options.
|
|
18
18
|
*/
|
|
19
|
-
export declare const TUI_OBFUSCATE_OPTIONS: import("@angular/core").InjectionToken<TuiObfuscateOptions>, tuiObfuscateOptionsProvider: (item: Partial<TuiObfuscateOptions> |
|
|
19
|
+
export declare const TUI_OBFUSCATE_OPTIONS: import("@angular/core").InjectionToken<TuiObfuscateOptions>, tuiObfuscateOptionsProvider: (item: Partial<TuiObfuscateOptions> | (() => Partial<TuiObfuscateOptions>)) => import("@angular/core").FactoryProvider;
|