@taiga-ui/cdk 5.0.0-canary.d110bd1 → 5.0.0-canary.df52b8a
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/constants/used-icons.d.ts +1 -1
- package/constants/version.d.ts +1 -1
- package/constants/version.js +1 -1
- package/directives/transitioned/transitioned.directive.d.ts +0 -1
- package/fesm2022/taiga-ui-cdk-constants.mjs +2 -3
- package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +2 -5
- package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-font-size.mjs +2 -3
- package/fesm2022/taiga-ui-cdk-directives-font-size.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-hovered.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-hovered.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-item.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-item.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-pan.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-pan.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-platform.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-platform.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-resizer.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-resizer.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs +6 -3
- package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-zoom.mjs +2 -8
- package/fesm2022/taiga-ui-cdk-directives-zoom.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes-filter.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-pipes-filter.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-tokens.mjs +1 -3
- package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +23 -18
- package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
- package/package.json +18 -18
- package/schematics/constants/file-globs.d.ts +1 -0
- package/schematics/constants/file-globs.js +2 -1
- package/schematics/constants/file-globs.js.map +1 -1
- package/schematics/constants/taiga-styles.d.ts +2 -2
- package/schematics/constants/taiga-styles.js +2 -2
- package/schematics/constants/taiga-styles.js.map +1 -1
- package/schematics/ng-add/constants/versions.d.ts +1 -1
- package/schematics/ng-update/interfaces/replacement-attribute.d.ts +9 -3
- package/schematics/ng-update/steps/icons/replace-imports.js +1 -3
- package/schematics/ng-update/steps/icons/replace-imports.js.map +1 -1
- package/schematics/ng-update/steps/rename-types.js +1 -1
- package/schematics/ng-update/steps/rename-types.js.map +1 -1
- package/schematics/ng-update/steps/replace-identifier.js +1 -3
- package/schematics/ng-update/steps/replace-identifier.js.map +1 -1
- package/schematics/ng-update/utils/add-comment-for-styles.d.ts +4 -0
- package/schematics/ng-update/utils/add-comment-for-styles.js +20 -0
- package/schematics/ng-update/utils/add-comment-for-styles.js.map +1 -0
- package/schematics/ng-update/utils/templates/dom-traversal.d.ts +5 -0
- package/schematics/ng-update/utils/templates/dom-traversal.js +29 -0
- package/schematics/ng-update/utils/templates/dom-traversal.js.map +1 -0
- package/schematics/ng-update/utils/templates/index.d.ts +1 -0
- package/schematics/ng-update/utils/templates/index.js +1 -0
- package/schematics/ng-update/utils/templates/index.js.map +1 -1
- package/schematics/ng-update/v4/migrate-css-vars/palette.js +4 -4
- package/schematics/ng-update/v4/migrate-css-vars/palette.js.map +1 -1
- package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js +4 -12
- package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js.map +1 -1
- package/schematics/ng-update/v4/steps/constants/html-comments.js +1 -2
- package/schematics/ng-update/v4/steps/constants/html-comments.js.map +1 -1
- package/schematics/ng-update/v4/steps/drop-universal-mock.js +1 -1
- package/schematics/ng-update/v4/steps/drop-universal-mock.js.map +1 -1
- package/schematics/ng-update/v4/steps/migrate-editor.js +1 -1
- package/schematics/ng-update/v4/steps/migrate-editor.js.map +1 -1
- package/schematics/ng-update/v4/steps/migrate-templates.js +1 -3
- package/schematics/ng-update/v4/steps/migrate-templates.js.map +1 -1
- package/schematics/ng-update/v4/steps/styles/index.js +2 -1
- package/schematics/ng-update/v4/steps/styles/index.js.map +1 -1
- package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.js +1 -3
- package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.js.map +1 -1
- package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js +17 -14
- package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js.map +1 -1
- package/schematics/ng-update/v4/steps/templates/migrate-filter-pipe.js +1 -1
- package/schematics/ng-update/v4/steps/templates/migrate-filter-pipe.js.map +1 -1
- package/schematics/ng-update/v5/index.js +49 -13
- package/schematics/ng-update/v5/index.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/attr-with-values-to-replace.d.ts +2 -0
- package/schematics/ng-update/v5/steps/constants/attr-with-values-to-replace.js +14 -0
- package/schematics/ng-update/v5/steps/constants/attr-with-values-to-replace.js.map +1 -0
- package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +13 -1
- package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/html-comments.js +22 -0
- package/schematics/ng-update/v5/steps/constants/html-comments.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js +230 -0
- package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/migration-warnings.d.ts +2 -0
- package/schematics/ng-update/v5/steps/constants/migration-warnings.js +16 -0
- package/schematics/ng-update/v5/steps/constants/migration-warnings.js.map +1 -0
- package/schematics/ng-update/v5/steps/constants/modules-to-remove.d.ts +2 -0
- package/schematics/ng-update/v5/steps/constants/modules-to-remove.js +10 -0
- package/schematics/ng-update/v5/steps/constants/modules-to-remove.js.map +1 -0
- package/schematics/ng-update/v5/steps/constants/tags-to-replace.js +5 -0
- package/schematics/ng-update/v5/steps/constants/tags-to-replace.js.map +1 -1
- package/schematics/ng-update/v5/steps/migrate-css-variables.d.ts +1 -0
- package/schematics/ng-update/v5/steps/migrate-css-variables.js +29 -11
- package/schematics/ng-update/v5/steps/migrate-css-variables.js.map +1 -1
- package/schematics/ng-update/v5/steps/migrate-templates.js +9 -3
- package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -1
- package/schematics/ng-update/v5/steps/styles/index.d.ts +1 -0
- package/schematics/ng-update/v5/steps/styles/index.js +17 -0
- package/schematics/ng-update/v5/steps/styles/index.js.map +1 -0
- package/schematics/ng-update/v5/steps/templates/migrate-accordion.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-accordion.js +199 -0
- package/schematics/ng-update/v5/steps/templates/migrate-accordion.js.map +1 -0
- package/schematics/ng-update/v5/steps/templates/migrate-avatar.js +1 -1
- package/schematics/ng-update/v5/steps/templates/migrate-avatar.js.map +1 -1
- package/schematics/ng-update/v5/steps/templates/migrate-input-range.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-input-range.js +25 -0
- package/schematics/ng-update/v5/steps/templates/migrate-input-range.js.map +1 -0
- package/schematics/ng-update/v5/steps/templates/migrate-repeat-times.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-repeat-times.js +77 -0
- package/schematics/ng-update/v5/steps/templates/migrate-repeat-times.js.map +1 -0
- package/schematics/utils/add-import-to-closest-module.js +1 -3
- package/schematics/utils/add-import-to-closest-module.js.map +1 -1
- package/schematics/utils/add-unique-import.js +1 -3
- package/schematics/utils/add-unique-import.js.map +1 -1
- package/schematics/utils/create-angular-json.js +1 -1
- package/schematics/utils/format-migration-stats.d.ts +5 -0
- package/schematics/utils/format-migration-stats.js +18 -0
- package/schematics/utils/format-migration-stats.js.map +1 -0
- package/schematics/utils/make-angular-json-with-assets.js +1 -1
- package/schematics/utils/run-migration.d.ts +2 -0
- package/schematics/utils/run-migration.js +5 -3
- package/schematics/utils/run-migration.js.map +1 -1
- package/schematics/utils/run-steps.d.ts +6 -0
- package/schematics/utils/run-steps.js +12 -0
- package/schematics/utils/run-steps.js.map +1 -0
- package/utils/miscellaneous/font-size-watcher.d.ts +1 -1
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Array of icons used in ./projects
|
|
6
6
|
*/
|
|
7
|
-
export declare const TUI_USED_ICONS: readonly ["@tui.mir", "@tui.visa", "@tui.electron", "@img.mastercard", "@img.maestro", "@img.amex", "@img.diners-club", "@img.discover", "@img.humo", "@img.jcb", "@img.ru-pay", "@img.union-pay", "@img.uzcard", "@img.verve", "@tui.search", "@tui.sun", "@tui.moon", "@tui.code", "@tui.menu", "@tui.copy", "@tui.check", "@tui.link", "@tui.
|
|
7
|
+
export declare const TUI_USED_ICONS: readonly ["@tui.mir", "@tui.visa", "@tui.electron", "@img.mastercard", "@img.maestro", "@img.amex", "@img.diners-club", "@img.discover", "@img.humo", "@img.jcb", "@img.ru-pay", "@img.union-pay", "@img.uzcard", "@img.verve", "@tui.search", "@tui.sun", "@tui.moon", "@tui.code", "@tui.menu", "@tui.copy", "@tui.check", "@tui.link", "@tui.languages", "@tui.shrink", "@tui.expand", "@tui.case-upper", "@tui.arrow-left", "@tui.eye-off", "@tui.eye", "@tui.grip-vertical", "@tui.chevron-up", "@tui.chevron-down", "@tui.chevrons-up-down", "@tui.minus", "@tui.info", "@tui.circle-check", "@tui.circle-x", "@tui.circle-alert", "@tui.circle-help", "@tui.x", "@tui.chevron-right", "@tui.ellipsis", "@tui.chevron-left", "@tui.clock", "@tui.trash", "@tui.file", "@tui.calendar", "@tui.plus", "@tui.heart", "@tui.heart-filled", "@tui.rotate-ccw-square", "@tui.arrow-right", "@tui.minimize", "@tui.star", "@tui.filter", "@tui.layout-grid"];
|
package/constants/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TUI_VERSION = "5.0.0-canary.
|
|
1
|
+
export declare const TUI_VERSION = "5.0.0-canary.df52b8a";
|
package/constants/version.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class TuiTransitioned {
|
|
3
|
-
private readonly el;
|
|
4
3
|
constructor();
|
|
5
4
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiTransitioned, never>;
|
|
6
5
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTransitioned, "[tuiTransitioned]", never, {}, {}, never, never, true, never>;
|
|
@@ -155,7 +155,6 @@ const TUI_USED_ICONS = [
|
|
|
155
155
|
'@tui.copy',
|
|
156
156
|
'@tui.check',
|
|
157
157
|
'@tui.link',
|
|
158
|
-
'@tui.external-link',
|
|
159
158
|
'@tui.languages',
|
|
160
159
|
'@tui.shrink',
|
|
161
160
|
'@tui.expand',
|
|
@@ -167,6 +166,7 @@ const TUI_USED_ICONS = [
|
|
|
167
166
|
'@tui.chevron-up',
|
|
168
167
|
'@tui.chevron-down',
|
|
169
168
|
'@tui.chevrons-up-down',
|
|
169
|
+
'@tui.minus',
|
|
170
170
|
'@tui.info',
|
|
171
171
|
'@tui.circle-check',
|
|
172
172
|
'@tui.circle-x',
|
|
@@ -178,7 +178,6 @@ const TUI_USED_ICONS = [
|
|
|
178
178
|
'@tui.chevron-left',
|
|
179
179
|
'@tui.clock',
|
|
180
180
|
'@tui.trash',
|
|
181
|
-
'@tui.minus',
|
|
182
181
|
'@tui.file',
|
|
183
182
|
'@tui.calendar',
|
|
184
183
|
'@tui.plus',
|
|
@@ -192,7 +191,7 @@ const TUI_USED_ICONS = [
|
|
|
192
191
|
'@tui.layout-grid',
|
|
193
192
|
];
|
|
194
193
|
|
|
195
|
-
const TUI_VERSION = '5.0.0-canary.
|
|
194
|
+
const TUI_VERSION = '5.0.0-canary.df52b8a';
|
|
196
195
|
|
|
197
196
|
/**
|
|
198
197
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-constants.mjs","sources":["../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/handlers.ts","../../../projects/cdk/constants/matchers.ts","../../../projects/cdk/constants/regexp.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["const rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON: () => rect,\n};\n","import {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * Handler that always returns `false`.\n */\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\nexport const TUI_TRUE_HANDLER = (): true => true;\nexport const TUI_STRINGIFY: PolymorpheusContent = ({$implicit}) => String($implicit);\n","import {type TuiHandler, type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter: Exclude<NodeFilter, (node: Node) => number> = {\n acceptNode(node: Node): number {\n return 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n },\n};\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = '\\u2014';\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = '\\u00AB';\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = '\\u00BB';\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = '\\u002D';\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in ./projects\n */\nexport const TUI_USED_ICONS = [\n '@tui.mir',\n '@tui.visa',\n '@tui.electron',\n '@img.mastercard',\n '@img.maestro',\n '@img.amex',\n '@img.diners-club',\n '@img.discover',\n '@img.humo',\n '@img.jcb',\n '@img.ru-pay',\n '@img.union-pay',\n '@img.uzcard',\n '@img.verve',\n '@tui.search',\n '@tui.sun',\n '@tui.moon',\n '@tui.code',\n '@tui.menu',\n '@tui.copy',\n '@tui.check',\n '@tui.link',\n '@tui.
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-constants.mjs","sources":["../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/handlers.ts","../../../projects/cdk/constants/matchers.ts","../../../projects/cdk/constants/regexp.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["const rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON: () => rect,\n};\n","import {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * Handler that always returns `false`.\n */\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\nexport const TUI_TRUE_HANDLER = (): true => true;\nexport const TUI_STRINGIFY: PolymorpheusContent = ({$implicit}) => String($implicit);\n","import {type TuiHandler, type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter: Exclude<NodeFilter, (node: Node) => number> = {\n acceptNode(node: Node): number {\n return 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n },\n};\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = '\\u2014';\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = '\\u00AB';\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = '\\u00BB';\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = '\\u002D';\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in ./projects\n */\nexport const TUI_USED_ICONS = [\n '@tui.mir',\n '@tui.visa',\n '@tui.electron',\n '@img.mastercard',\n '@img.maestro',\n '@img.amex',\n '@img.diners-club',\n '@img.discover',\n '@img.humo',\n '@img.jcb',\n '@img.ru-pay',\n '@img.union-pay',\n '@img.uzcard',\n '@img.verve',\n '@tui.search',\n '@tui.sun',\n '@tui.moon',\n '@tui.code',\n '@tui.menu',\n '@tui.copy',\n '@tui.check',\n '@tui.link',\n '@tui.languages',\n '@tui.shrink',\n '@tui.expand',\n '@tui.case-upper',\n '@tui.arrow-left',\n '@tui.eye-off',\n '@tui.eye',\n '@tui.grip-vertical',\n '@tui.chevron-up',\n '@tui.chevron-down',\n '@tui.chevrons-up-down',\n '@tui.minus',\n '@tui.info',\n '@tui.circle-check',\n '@tui.circle-x',\n '@tui.circle-alert',\n '@tui.circle-help',\n '@tui.x',\n '@tui.chevron-right',\n '@tui.ellipsis',\n '@tui.chevron-left',\n '@tui.clock',\n '@tui.trash',\n '@tui.file',\n '@tui.calendar',\n '@tui.plus',\n '@tui.heart',\n '@tui.heart-filled',\n '@tui.rotate-ccw-square',\n '@tui.arrow-right',\n '@tui.minimize',\n '@tui.star',\n '@tui.filter',\n '@tui.layout-grid',\n] as const;\n","export const TUI_VERSION = '5.0.0-canary.df52b8a';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,8 @@ class AbstractTuiAutofocusHandler {
|
|
|
15
15
|
this.options = options;
|
|
16
16
|
}
|
|
17
17
|
get element() {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
? this.el.nativeElement.querySelector(this.options.query)
|
|
21
|
-
: this.el.nativeElement;
|
|
22
|
-
return el || this.el.nativeElement;
|
|
18
|
+
return (this.el.nativeElement.querySelector(this.options.query) ??
|
|
19
|
+
this.el.nativeElement);
|
|
23
20
|
}
|
|
24
21
|
get isTextFieldElement() {
|
|
25
22
|
return this.element.matches(this.options.query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-auto-focus.mjs","sources":["../../../projects/cdk/directives/auto-focus/handlers/abstract.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/default.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/ios.handler.ts","../../../projects/cdk/directives/auto-focus/autofocus.options.ts","../../../projects/cdk/directives/auto-focus/autofocus.directive.ts","../../../projects/cdk/directives/auto-focus/handlers/sync.handler.ts","../../../projects/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {type ElementRef} from '@angular/core';\n\nimport {type TuiAutofocusHandler, type TuiAutofocusOptions} from '../autofocus.options';\n\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n constructor(\n protected readonly el: ElementRef<HTMLElement>,\n protected readonly options: TuiAutofocusOptions,\n ) {}\n\n public abstract setFocus(): void;\n\n protected get element(): HTMLElement {\n // TODO: Remove when legacy controls are dropped\n const el = this.el.nativeElement.tagName.includes('-')\n ? this.el.nativeElement.querySelector<HTMLElement>(this.options.query)\n : this.el.nativeElement;\n\n return el || this.el.nativeElement;\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches(this.options.query);\n }\n}\n","import {type ElementRef, type NgZone} from '@angular/core';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {map, type Observable, race, skipWhile, take, throttleTime, timer} from 'rxjs';\n\nimport {type TuiAutofocusOptions} from '../autofocus.options';\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = '.ng-animating';\n\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n el: ElementRef<HTMLElement>,\n private readonly animationFrame$: Observable<number>,\n private readonly zone: NgZone,\n options: TuiAutofocusOptions,\n ) {\n super(el, options);\n }\n\n public setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(this.options.delay || TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(100, tuiZonefreeScheduler(this.zone)),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() =>\n this.element.focus({preventScroll: this.options.preventScroll}),\n );\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n}\n","import {type ElementRef, type NgZone, type Renderer2} from '@angular/core';\nimport {tuiIsPresent, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiAutofocusOptions} from '../autofocus.options';\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TEXTFIELD_ATTRS = [\n 'type',\n 'inputMode',\n 'autocomplete',\n 'accept',\n 'min',\n 'max',\n 'step',\n 'pattern',\n 'size',\n 'maxlength',\n] as const;\n\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n el: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2,\n private readonly zone: NgZone,\n private readonly win: Window,\n options: TuiAutofocusOptions,\n ) {\n super(el, options);\n }\n\n public setFocus(): void {\n if (this.isTextFieldElement) {\n this.zone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLInputElement = this.makeFakeInput();\n const duration = this.getDurationTimeBeforeFocus();\n let fakeFocusTimeoutId = 0;\n let elementFocusTimeoutId = 0;\n\n const blurHandler = (): void => fakeInput.focus({preventScroll: true});\n const focusHandler = (): void => {\n clearTimeout(fakeFocusTimeoutId);\n\n fakeFocusTimeoutId = this.win.setTimeout(() => {\n clearTimeout(elementFocusTimeoutId);\n\n fakeInput.removeEventListener('blur', blurHandler);\n fakeInput.removeEventListener('focus', focusHandler);\n\n elementFocusTimeoutId = this.win.setTimeout(() => {\n this.element.focus({preventScroll: this.options.preventScroll});\n fakeInput.remove();\n }, duration);\n });\n };\n\n fakeInput.addEventListener('blur', blurHandler, {once: true});\n fakeInput.addEventListener('focus', focusHandler);\n\n if (this.insideDialog()) {\n this.win.document.body.appendChild(fakeInput);\n } else {\n this.element.parentElement?.appendChild(fakeInput);\n }\n\n fakeInput.focus({preventScroll: true});\n }\n\n /**\n * @note:\n * emulate textfield position in layout with cursor\n * before focus to real textfield element\n *\n * required note:\n * [fakeInput.readOnly = true] ~\n * don't use {readOnly: true} value, it's doesn't work for emulate autofill\n *\n * [fakeInput.style.opacity = 0] ~\n * don't use {opacity: 0}, sometimes it's doesn't work for emulate real input\n *\n * [fakeInput.style.fontSize = 16px] ~\n * disable possible auto zoom\n *\n * [fakeInput.style.top/left] ~\n * emulate position cursor before focus to real textfield element\n */\n private makeFakeInput(): HTMLInputElement {\n const fakeInput: HTMLInputElement = this.renderer.createElement('input');\n const rect: DOMRect = this.element.getBoundingClientRect();\n\n this.patchFakeInputFromFocusableElement(fakeInput);\n\n fakeInput.style.height = tuiPx(rect.height);\n fakeInput.style.width = tuiPx(rect.width / 2);\n fakeInput.style.position = 'fixed';\n fakeInput.style.zIndex = '-99999999';\n fakeInput.style.caretColor = 'transparent';\n fakeInput.style.border = 'none';\n fakeInput.style.outline = 'none';\n fakeInput.style.color = 'transparent';\n fakeInput.style.background = 'transparent';\n fakeInput.style.cursor = 'none';\n fakeInput.style.fontSize = tuiPx(16);\n fakeInput.style.top = tuiPx(rect.top);\n fakeInput.style.left = tuiPx(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.win\n .getComputedStyle(this.element)\n .getPropertyValue('--tui-duration'),\n ) || 0\n );\n }\n\n /**\n * @note:\n * unfortunately, in older versions of iOS\n * there is a bug that the fake input cursor\n * will move along with the dialog animation\n * and then that dialog will be shaking\n */\n private insideDialog(): boolean {\n return !!this.element.closest('tui-dialog');\n }\n\n /**\n * @note:\n * inherit basic attributes values from real input\n * for help iOS detect what do you want see on keyboard,\n * for example [inputMode=numeric, autocomplete=cc-number]\n */\n private patchFakeInputFromFocusableElement(fakeInput: HTMLInputElement): void {\n TEXTFIELD_ATTRS.forEach((attr) => {\n const value = this.element.getAttribute(attr);\n\n if (tuiIsPresent(value)) {\n fakeInput.setAttribute(attr, value);\n }\n });\n }\n}\n","import {ElementRef, InjectionToken, NgZone, Renderer2} from '@angular/core';\nimport {WA_ANIMATION_FRAME, WA_WINDOW} from '@ng-web-apis/common';\nimport {WA_IS_IOS} from '@ng-web-apis/platform';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport interface TuiAutofocusOptions {\n readonly delay: number;\n readonly query: string;\n readonly preventScroll: boolean;\n}\n\nexport const [TUI_AUTOFOCUS_OPTIONS, tuiAutoFocusOptionsProvider] =\n tuiCreateOptions<TuiAutofocusOptions>({\n delay: NaN, // NaN = no delay/sync\n query: 'input, textarea, select, [contenteditable]',\n preventScroll: false,\n });\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n ngDevMode ? 'TUI_AUTOFOCUS_HANDLER' : '',\n);\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n deps: [\n ElementRef,\n WA_ANIMATION_FRAME,\n Renderer2,\n NgZone,\n WA_WINDOW,\n WA_IS_IOS,\n TUI_AUTOFOCUS_OPTIONS,\n ],\n // eslint-disable-next-line @typescript-eslint/max-params,max-params\n useFactory: (\n el: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n zone: NgZone,\n win: Window,\n isIos: boolean,\n options: TuiAutofocusOptions,\n ) =>\n isIos\n ? new TuiIosAutofocusHandler(el, renderer, zone, win, options)\n : new TuiDefaultAutofocusHandler(el, animationFrame$, zone, options),\n },\n];\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {type AfterViewInit, DestroyRef, Directive, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {timer} from 'rxjs';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_OPTIONS,\n TUI_AUTOFOCUS_PROVIDERS,\n} from './autofocus.options';\n\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocus implements AfterViewInit {\n private readonly handler = inject(TUI_AUTOFOCUS_HANDLER);\n private readonly options = inject(TUI_AUTOFOCUS_OPTIONS);\n private readonly destroyRef = inject(DestroyRef);\n\n public readonly autoFocus = input<BooleanInput, any>(undefined, {\n alias: 'tuiAutoFocus',\n transform: coerceBooleanProperty,\n });\n\n public ngAfterViewInit(): void {\n if (this.autoFocus()) {\n this.focus();\n }\n }\n\n public focus(): void {\n if (Number.isNaN(this.options.delay)) {\n void Promise.resolve().then(() => this.handler.setFocus());\n } else {\n timer(this.options.delay)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.handler.setFocus());\n }\n }\n}\n","import {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nexport class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {\n public setFocus(): void {\n this.element.focus({preventScroll: true});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-auto-focus.mjs","sources":["../../../projects/cdk/directives/auto-focus/handlers/abstract.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/default.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/ios.handler.ts","../../../projects/cdk/directives/auto-focus/autofocus.options.ts","../../../projects/cdk/directives/auto-focus/autofocus.directive.ts","../../../projects/cdk/directives/auto-focus/handlers/sync.handler.ts","../../../projects/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {type ElementRef} from '@angular/core';\n\nimport {type TuiAutofocusHandler, type TuiAutofocusOptions} from '../autofocus.options';\n\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n constructor(\n protected readonly el: ElementRef<HTMLElement>,\n protected readonly options: TuiAutofocusOptions,\n ) {}\n\n public abstract setFocus(): void;\n\n protected get element(): HTMLElement {\n return (\n this.el.nativeElement.querySelector<HTMLElement>(this.options.query) ??\n this.el.nativeElement\n );\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches(this.options.query);\n }\n}\n","import {type ElementRef, type NgZone} from '@angular/core';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {map, type Observable, race, skipWhile, take, throttleTime, timer} from 'rxjs';\n\nimport {type TuiAutofocusOptions} from '../autofocus.options';\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = '.ng-animating';\n\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n el: ElementRef<HTMLElement>,\n private readonly animationFrame$: Observable<number>,\n private readonly zone: NgZone,\n options: TuiAutofocusOptions,\n ) {\n super(el, options);\n }\n\n public setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(this.options.delay || TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(100, tuiZonefreeScheduler(this.zone)),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() =>\n this.element.focus({preventScroll: this.options.preventScroll}),\n );\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n}\n","import {type ElementRef, type NgZone, type Renderer2} from '@angular/core';\nimport {tuiIsPresent, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiAutofocusOptions} from '../autofocus.options';\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TEXTFIELD_ATTRS = [\n 'type',\n 'inputMode',\n 'autocomplete',\n 'accept',\n 'min',\n 'max',\n 'step',\n 'pattern',\n 'size',\n 'maxlength',\n] as const;\n\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n el: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2,\n private readonly zone: NgZone,\n private readonly win: Window,\n options: TuiAutofocusOptions,\n ) {\n super(el, options);\n }\n\n public setFocus(): void {\n if (this.isTextFieldElement) {\n this.zone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLInputElement = this.makeFakeInput();\n const duration = this.getDurationTimeBeforeFocus();\n let fakeFocusTimeoutId = 0;\n let elementFocusTimeoutId = 0;\n\n const blurHandler = (): void => fakeInput.focus({preventScroll: true});\n const focusHandler = (): void => {\n clearTimeout(fakeFocusTimeoutId);\n\n fakeFocusTimeoutId = this.win.setTimeout(() => {\n clearTimeout(elementFocusTimeoutId);\n\n fakeInput.removeEventListener('blur', blurHandler);\n fakeInput.removeEventListener('focus', focusHandler);\n\n elementFocusTimeoutId = this.win.setTimeout(() => {\n this.element.focus({preventScroll: this.options.preventScroll});\n fakeInput.remove();\n }, duration);\n });\n };\n\n fakeInput.addEventListener('blur', blurHandler, {once: true});\n fakeInput.addEventListener('focus', focusHandler);\n\n if (this.insideDialog()) {\n this.win.document.body.appendChild(fakeInput);\n } else {\n this.element.parentElement?.appendChild(fakeInput);\n }\n\n fakeInput.focus({preventScroll: true});\n }\n\n /**\n * @note:\n * emulate textfield position in layout with cursor\n * before focus to real textfield element\n *\n * required note:\n * [fakeInput.readOnly = true] ~\n * don't use {readOnly: true} value, it's doesn't work for emulate autofill\n *\n * [fakeInput.style.opacity = 0] ~\n * don't use {opacity: 0}, sometimes it's doesn't work for emulate real input\n *\n * [fakeInput.style.fontSize = 16px] ~\n * disable possible auto zoom\n *\n * [fakeInput.style.top/left] ~\n * emulate position cursor before focus to real textfield element\n */\n private makeFakeInput(): HTMLInputElement {\n const fakeInput: HTMLInputElement = this.renderer.createElement('input');\n const rect: DOMRect = this.element.getBoundingClientRect();\n\n this.patchFakeInputFromFocusableElement(fakeInput);\n\n fakeInput.style.height = tuiPx(rect.height);\n fakeInput.style.width = tuiPx(rect.width / 2);\n fakeInput.style.position = 'fixed';\n fakeInput.style.zIndex = '-99999999';\n fakeInput.style.caretColor = 'transparent';\n fakeInput.style.border = 'none';\n fakeInput.style.outline = 'none';\n fakeInput.style.color = 'transparent';\n fakeInput.style.background = 'transparent';\n fakeInput.style.cursor = 'none';\n fakeInput.style.fontSize = tuiPx(16);\n fakeInput.style.top = tuiPx(rect.top);\n fakeInput.style.left = tuiPx(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.win\n .getComputedStyle(this.element)\n .getPropertyValue('--tui-duration'),\n ) || 0\n );\n }\n\n /**\n * @note:\n * unfortunately, in older versions of iOS\n * there is a bug that the fake input cursor\n * will move along with the dialog animation\n * and then that dialog will be shaking\n */\n private insideDialog(): boolean {\n return !!this.element.closest('tui-dialog');\n }\n\n /**\n * @note:\n * inherit basic attributes values from real input\n * for help iOS detect what do you want see on keyboard,\n * for example [inputMode=numeric, autocomplete=cc-number]\n */\n private patchFakeInputFromFocusableElement(fakeInput: HTMLInputElement): void {\n TEXTFIELD_ATTRS.forEach((attr) => {\n const value = this.element.getAttribute(attr);\n\n if (tuiIsPresent(value)) {\n fakeInput.setAttribute(attr, value);\n }\n });\n }\n}\n","import {ElementRef, InjectionToken, NgZone, Renderer2} from '@angular/core';\nimport {WA_ANIMATION_FRAME, WA_WINDOW} from '@ng-web-apis/common';\nimport {WA_IS_IOS} from '@ng-web-apis/platform';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport interface TuiAutofocusOptions {\n readonly delay: number;\n readonly query: string;\n readonly preventScroll: boolean;\n}\n\nexport const [TUI_AUTOFOCUS_OPTIONS, tuiAutoFocusOptionsProvider] =\n tuiCreateOptions<TuiAutofocusOptions>({\n delay: NaN, // NaN = no delay/sync\n query: 'input, textarea, select, [contenteditable]',\n preventScroll: false,\n });\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n ngDevMode ? 'TUI_AUTOFOCUS_HANDLER' : '',\n);\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n deps: [\n ElementRef,\n WA_ANIMATION_FRAME,\n Renderer2,\n NgZone,\n WA_WINDOW,\n WA_IS_IOS,\n TUI_AUTOFOCUS_OPTIONS,\n ],\n // eslint-disable-next-line @typescript-eslint/max-params,max-params\n useFactory: (\n el: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n zone: NgZone,\n win: Window,\n isIos: boolean,\n options: TuiAutofocusOptions,\n ) =>\n isIos\n ? new TuiIosAutofocusHandler(el, renderer, zone, win, options)\n : new TuiDefaultAutofocusHandler(el, animationFrame$, zone, options),\n },\n];\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {type AfterViewInit, DestroyRef, Directive, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {timer} from 'rxjs';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_OPTIONS,\n TUI_AUTOFOCUS_PROVIDERS,\n} from './autofocus.options';\n\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocus implements AfterViewInit {\n private readonly handler = inject(TUI_AUTOFOCUS_HANDLER);\n private readonly options = inject(TUI_AUTOFOCUS_OPTIONS);\n private readonly destroyRef = inject(DestroyRef);\n\n public readonly autoFocus = input<BooleanInput, any>(undefined, {\n alias: 'tuiAutoFocus',\n transform: coerceBooleanProperty,\n });\n\n public ngAfterViewInit(): void {\n if (this.autoFocus()) {\n this.focus();\n }\n }\n\n public focus(): void {\n if (Number.isNaN(this.options.delay)) {\n void Promise.resolve().then(() => this.handler.setFocus());\n } else {\n timer(this.options.delay)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.handler.setFocus());\n }\n }\n}\n","import {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nexport class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {\n public setFocus(): void {\n this.element.focus({preventScroll: true});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;MAIsB,2BAA2B,CAAA;IAC7C,WACuB,CAAA,EAA2B,EAC3B,OAA4B,EAAA;QAD5B,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAO,CAAA,OAAA,GAAP,OAAO;;AAK9B,IAAA,IAAc,OAAO,GAAA;AACjB,QAAA,QACI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAc,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACpE,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa;;AAI7B,IAAA,IAAc,kBAAkB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEtD;;ACfD,MAAM,OAAO,GAAG,IAAI;AACpB,MAAM,qBAAqB,GAAG,eAAe;AAEvC,MAAO,0BAA2B,SAAQ,2BAA2B,CAAA;AACvE,IAAA,WAAA,CACI,EAA2B,EACV,eAAmC,EACnC,IAAY,EAC7B,OAA4B,EAAA;AAE5B,QAAA,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC;QAJD,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAI,CAAA,IAAA,GAAJ,IAAI;;IAMlB,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CACA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CACrB,YAAY,CAAC,GAAG,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAClD,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,EACtD,SAAS,CAAC,OAAO,CAAC,EAClB,IAAI,CAAC,CAAC,CAAC,CACV,CACJ,CAAC,SAAS,CAAC,MACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAC,CAAC,CAClE;;aACE;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;;;AAGpD;;AC/BD,MAAM,eAAe,GAAG;IACpB,MAAM;IACN,WAAW;IACX,cAAc;IACd,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,SAAS;IACT,MAAM;IACN,WAAW;CACL;AAEJ,MAAO,sBAAuB,SAAQ,2BAA2B,CAAA;IACnE,WACI,CAAA,EAA2B,EACV,QAAmB,EACnB,IAAY,EACZ,GAAW,EAC5B,OAA4B,EAAA;AAE5B,QAAA,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC;QALD,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAG,CAAA,GAAA,GAAH,GAAG;;IAMjB,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;;aACzD;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;;;IAIzC,kBAAkB,GAAA;AACtB,QAAA,MAAM,SAAS,GAAqB,IAAI,CAAC,aAAa,EAAE;AACxD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,EAAE;QAClD,IAAI,kBAAkB,GAAG,CAAC;QAC1B,IAAI,qBAAqB,GAAG,CAAC;AAE7B,QAAA,MAAM,WAAW,GAAG,MAAY,SAAS,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;QACtE,MAAM,YAAY,GAAG,MAAW;YAC5B,YAAY,CAAC,kBAAkB,CAAC;YAEhC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAK;gBAC1C,YAAY,CAAC,qBAAqB,CAAC;AAEnC,gBAAA,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC;AAClD,gBAAA,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC;gBAEpD,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAK;AAC7C,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAC,CAAC;oBAC/D,SAAS,CAAC,MAAM,EAAE;iBACrB,EAAE,QAAQ,CAAC;AAChB,aAAC,CAAC;AACN,SAAC;AAED,QAAA,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;AAC7D,QAAA,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC;AAEjD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;;aAC1C;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC;;QAGtD,SAAS,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;;AAG1C;;;;;;;;;;;;;;;;;AAiBG;IACK,aAAa,GAAA;QACjB,MAAM,SAAS,GAAqB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QACxE,MAAM,IAAI,GAAY,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;AAE1D,QAAA,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC;QAElD,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7C,QAAA,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AAClC,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW;AACpC,QAAA,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa;AAC1C,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;AAC/B,QAAA,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAChC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa;AACrC,QAAA,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa;AAC1C,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;QAC/B,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;QACpC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACrC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAEvC,QAAA,OAAO,SAAS;;IAGZ,0BAA0B,GAAA;AAC9B,QAAA,QACI,UAAU,CACN,IAAI,CAAC;AACA,aAAA,gBAAgB,CAAC,IAAI,CAAC,OAAO;AAC7B,aAAA,gBAAgB,CAAC,gBAAgB,CAAC,CAC1C,IAAI,CAAC;;AAId;;;;;;AAMG;IACK,YAAY,GAAA;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;;AAG/C;;;;;AAKG;AACK,IAAA,kCAAkC,CAAC,SAA2B,EAAA;AAClE,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAE7C,YAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACrB,gBAAA,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;;AAE3C,SAAC,CAAC;;AAET;;MCnIY,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,GAC7D,gBAAgB,CAAsB;IAClC,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,4CAA4C;AACnD,IAAA,aAAa,EAAE,KAAK;AACvB,CAAA;AAEQ,MAAA,qBAAqB,GAAG,IAAI,cAAc,CACnD,SAAS,GAAG,uBAAuB,GAAG,EAAE;AAG/B,MAAA,uBAAuB,GAAG;AACnC,IAAA;AACI,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,IAAI,EAAE;YACF,UAAU;YACV,kBAAkB;YAClB,SAAS;YACT,MAAM;YACN,SAAS;YACT,SAAS;YACT,qBAAqB;AACxB,SAAA;;AAED,QAAA,UAAU,EAAE,CACR,EAA2B,EAC3B,eAAmC,EACnC,QAAmB,EACnB,IAAY,EACZ,GAAW,EACX,KAAc,EACd,OAA4B,KAE5B;AACI,cAAE,IAAI,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO;cAC3D,IAAI,0BAA0B,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC;AAC/E,KAAA;;;MCxCQ,YAAY,CAAA;AAJzB,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAoB,SAAS,EAAE;AAC5D,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,SAAS,EAAE,qBAAqB;AACnC,SAAA,CAAC;AAiBL;IAfU,eAAe,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,EAAE;;;IAIb,KAAK,GAAA;QACR,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;;aACvD;AACH,YAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;AACnB,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;;;+GAtB5C,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,gNAFV,uBAAuB,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEzB,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,SAAS,EAAE,uBAAuB;AACrC,iBAAA;;;ACZK,MAAO,8BAA+B,SAAQ,2BAA2B,CAAA;IACpE,QAAQ,GAAA;QACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;;AAEhD;;ACND;;AAEG;;;;"}
|
|
@@ -22,9 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
22
22
|
type: Directive,
|
|
23
23
|
args: [{
|
|
24
24
|
selector: '[tuiCopyProcessor]',
|
|
25
|
-
host: {
|
|
26
|
-
'(copy.prevent)': 'onCopy($event)',
|
|
27
|
-
},
|
|
25
|
+
host: { '(copy.prevent)': 'onCopy($event)' },
|
|
28
26
|
}]
|
|
29
27
|
}] });
|
|
30
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-copy-processor.mjs","sources":["../../../projects/cdk/directives/copy-processor/copy-processor.directive.ts","../../../projects/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, inject, input} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiGetSelectedText} from '@taiga-ui/cdk/utils/dom';\nimport {identity} from 'rxjs';\n\n@Directive({\n selector: '[tuiCopyProcessor]',\n host: {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-copy-processor.mjs","sources":["../../../projects/cdk/directives/copy-processor/copy-processor.directive.ts","../../../projects/cdk/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.ts"],"sourcesContent":["import {Directive, inject, input} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiGetSelectedText} from '@taiga-ui/cdk/utils/dom';\nimport {identity} from 'rxjs';\n\n@Directive({\n selector: '[tuiCopyProcessor]',\n host: {'(copy.prevent)': 'onCopy($event)'},\n})\nexport class TuiCopyProcessor {\n private readonly win = inject(WA_WINDOW);\n\n public readonly tuiCopyProcessor = input<TuiStringHandler<string>>(identity);\n\n protected onCopy(event: ClipboardEvent): void {\n const text = tuiGetSelectedText(this.win);\n\n if (text) {\n event.clipboardData?.setData('text/plain', this.tuiCopyProcessor()(text));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAUa,gBAAgB,CAAA;AAJ7B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAExB,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAA2B,QAAQ,CAAC;AAS/E;AAPa,IAAA,MAAM,CAAC,KAAqB,EAAA;QAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;QAEzC,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;;;+GATxE,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE,EAAC,gBAAgB,EAAE,gBAAgB,EAAC;AAC7C,iBAAA;;;ACTD;;AAEG;;;;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
1
|
+
import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, inject, DestroyRef, PLATFORM_ID, Directive } from '@angular/core';
|
|
4
|
-
import { WA_WINDOW } from '@ng-web-apis/common';
|
|
5
4
|
import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
|
|
6
5
|
import { tuiFontSizeWatcher } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
7
6
|
|
|
@@ -12,7 +11,7 @@ class TuiFontSize {
|
|
|
12
11
|
this.nothing = inject(DestroyRef).onDestroy(this.handler &&
|
|
13
12
|
isPlatformBrowser(inject(PLATFORM_ID)) &&
|
|
14
13
|
typeof ResizeObserver !== 'undefined'
|
|
15
|
-
? tuiFontSizeWatcher(this.handler, inject(
|
|
14
|
+
? tuiFontSizeWatcher(this.handler, inject(DOCUMENT).createElement('iframe'))
|
|
16
15
|
: EMPTY_FUNCTION);
|
|
17
16
|
}
|
|
18
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiFontSize, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-font-size.mjs","sources":["../../../projects/cdk/directives/font-size/font-size.directive.ts","../../../projects/cdk/directives/font-size/taiga-ui-cdk-directives-font-size.ts"],"sourcesContent":["import {isPlatformBrowser} from '@angular/common';\nimport {DestroyRef, Directive, inject, InjectionToken, PLATFORM_ID} from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-font-size.mjs","sources":["../../../projects/cdk/directives/font-size/font-size.directive.ts","../../../projects/cdk/directives/font-size/taiga-ui-cdk-directives-font-size.ts"],"sourcesContent":["import {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {DestroyRef, Directive, inject, InjectionToken, PLATFORM_ID} from '@angular/core';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiFontSizeWatcher} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_FONT_SIZE_HANDLER = new InjectionToken<(size: number) => void>(\n ngDevMode ? 'TUI_FONT_SIZE_HANDLER' : '',\n);\n\n@Directive()\nexport class TuiFontSize {\n private readonly handler = inject(TUI_FONT_SIZE_HANDLER, {optional: true});\n protected readonly nothing = inject(DestroyRef).onDestroy(\n this.handler &&\n isPlatformBrowser(inject(PLATFORM_ID)) &&\n typeof ResizeObserver !== 'undefined'\n ? tuiFontSizeWatcher(this.handler, inject(DOCUMENT).createElement('iframe'))\n : EMPTY_FUNCTION,\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAKa,MAAA,qBAAqB,GAAG,IAAI,cAAc,CACnD,SAAS,GAAG,uBAAuB,GAAG,EAAE;MAI/B,WAAW,CAAA;AADxB,IAAA,WAAA,GAAA;QAEqB,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QACvD,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CACrD,IAAI,CAAC,OAAO;AACR,YAAA,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACtC,OAAO,cAAc,KAAK;AAC1B,cAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;cACzE,cAAc,CACvB;AACJ;+GATY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;ACTD;;AAEG;;;;"}
|
|
@@ -15,9 +15,7 @@ class TuiHighDpi {
|
|
|
15
15
|
}
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiHighDpi, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
|
-
args: [{
|
|
19
|
-
selector: '[tuiHighDpi]',
|
|
20
|
-
}]
|
|
18
|
+
args: [{ selector: '[tuiHighDpi]' }]
|
|
21
19
|
}] });
|
|
22
20
|
|
|
23
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-high-dpi.mjs","sources":["../../../projects/cdk/directives/high-dpi/high-dpi.directive.ts","../../../projects/cdk/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.ts"],"sourcesContent":["import {Directive, inject, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\n\n/**\n * Only adds current content if user has High DPI display\n */\n@Directive({
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-high-dpi.mjs","sources":["../../../projects/cdk/directives/high-dpi/high-dpi.directive.ts","../../../projects/cdk/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.ts"],"sourcesContent":["import {Directive, inject, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\n\n/**\n * Only adds current content if user has High DPI display\n */\n@Directive({selector: '[tuiHighDpi]'})\nexport class TuiHighDpi {\n protected readonly ref =\n inject(WA_WINDOW).devicePixelRatio > 1 &&\n inject(ViewContainerRef).createEmbeddedView(inject(TemplateRef));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;AAEG;MAEU,UAAU,CAAA;AADvB,IAAA,WAAA,GAAA;QAEuB,IAAG,CAAA,GAAA,GAClB,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,GAAG,CAAC;YACtC,MAAM,CAAC,gBAAgB,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACvE;+GAJY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,SAAS;mBAAC,EAAC,QAAQ,EAAE,cAAc,EAAC;;;ACNrC;;AAEG;;;;"}
|
|
@@ -28,9 +28,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
28
28
|
type: Injectable
|
|
29
29
|
}], ctorParameters: () => [] });
|
|
30
30
|
function tuiHovered() {
|
|
31
|
-
return toSignal(inject(WA_IS_MOBILE) ? of(false) : inject(TuiHoveredService).pipe(tuiWatch()), {
|
|
32
|
-
initialValue: false,
|
|
33
|
-
});
|
|
31
|
+
return toSignal(inject(WA_IS_MOBILE) ? of(false) : inject(TuiHoveredService).pipe(tuiWatch()), { initialValue: false });
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
class TuiHovered {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-hovered.mjs","sources":["../../../projects/cdk/directives/hovered/hovered.service.ts","../../../projects/cdk/directives/hovered/hovered.directive.ts","../../../projects/cdk/directives/hovered/taiga-ui-cdk-directives-hovered.ts"],"sourcesContent":["import {inject, Injectable, NgZone, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiTypedFromEvent, tuiWatch, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {distinctUntilChanged, filter, map, merge, Observable, of} from 'rxjs';\n\nfunction movedOut({currentTarget, relatedTarget}: MouseEvent): boolean {\n return (\n !tuiIsElement(relatedTarget) ||\n !tuiIsElement(currentTarget) ||\n !currentTarget.contains(relatedTarget)\n );\n}\n\n@Injectable()\nexport class TuiHoveredService extends Observable<boolean> {\n private readonly el = tuiInjectElement();\n private readonly zone = inject(NgZone);\n\n private readonly stream$ = merge(\n tuiTypedFromEvent(this.el, 'mouseenter').pipe(map(TUI_TRUE_HANDLER)),\n tuiTypedFromEvent(this.el, 'mouseleave').pipe(map(TUI_FALSE_HANDLER)),\n // Hello, Safari\n tuiTypedFromEvent(this.el, 'mouseout').pipe(\n filter(movedOut),\n map(TUI_FALSE_HANDLER),\n ),\n ).pipe(distinctUntilChanged(), tuiZoneOptimized(this.zone));\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n}\n\nexport function tuiHovered(): Signal<boolean> {\n return toSignal(\n inject(WA_IS_MOBILE) ? of(false) : inject(TuiHoveredService).pipe(tuiWatch()),\n {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-hovered.mjs","sources":["../../../projects/cdk/directives/hovered/hovered.service.ts","../../../projects/cdk/directives/hovered/hovered.directive.ts","../../../projects/cdk/directives/hovered/taiga-ui-cdk-directives-hovered.ts"],"sourcesContent":["import {inject, Injectable, NgZone, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiTypedFromEvent, tuiWatch, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {distinctUntilChanged, filter, map, merge, Observable, of} from 'rxjs';\n\nfunction movedOut({currentTarget, relatedTarget}: MouseEvent): boolean {\n return (\n !tuiIsElement(relatedTarget) ||\n !tuiIsElement(currentTarget) ||\n !currentTarget.contains(relatedTarget)\n );\n}\n\n@Injectable()\nexport class TuiHoveredService extends Observable<boolean> {\n private readonly el = tuiInjectElement();\n private readonly zone = inject(NgZone);\n\n private readonly stream$ = merge(\n tuiTypedFromEvent(this.el, 'mouseenter').pipe(map(TUI_TRUE_HANDLER)),\n tuiTypedFromEvent(this.el, 'mouseleave').pipe(map(TUI_FALSE_HANDLER)),\n // Hello, Safari\n tuiTypedFromEvent(this.el, 'mouseout').pipe(\n filter(movedOut),\n map(TUI_FALSE_HANDLER),\n ),\n ).pipe(distinctUntilChanged(), tuiZoneOptimized(this.zone));\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n}\n\nexport function tuiHovered(): Signal<boolean> {\n return toSignal(\n inject(WA_IS_MOBILE) ? of(false) : inject(TuiHoveredService).pipe(tuiWatch()),\n {initialValue: false},\n );\n}\n","import {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\n\nimport {TuiHoveredService} from './hovered.service';\n\n@Directive({\n selector: '[tuiHoveredChange]',\n providers: [TuiHoveredService],\n})\nexport class TuiHovered {\n public readonly tuiHoveredChange = outputFromObservable(inject(TuiHoveredService));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAQA,SAAS,QAAQ,CAAC,EAAC,aAAa,EAAE,aAAa,EAAa,EAAA;AACxD,IAAA,QACI,CAAC,YAAY,CAAC,aAAa,CAAC;QAC5B,CAAC,YAAY,CAAC,aAAa,CAAC;AAC5B,QAAA,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE9C;AAGM,MAAO,iBAAkB,SAAQ,UAAmB,CAAA;AActD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAd5C,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAErB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAC5B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EACpE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;;AAErE,QAAA,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,EAChB,GAAG,CAAC,iBAAiB,CAAC,CACzB,CACJ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;+GAZlD,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;SAoBe,UAAU,GAAA;AACtB,IAAA,OAAO,QAAQ,CACX,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC7E,EAAC,YAAY,EAAE,KAAK,EAAC,CACxB;AACL;;MChCa,UAAU,CAAA;AAJvB,IAAA,WAAA,GAAA;QAKoB,IAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACrF;+GAFY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAFR,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAErB,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,iBAAiB,CAAC;AACjC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -10,9 +10,7 @@ class TuiItem {
|
|
|
10
10
|
}
|
|
11
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiItem, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
|
-
args: [{
|
|
14
|
-
selector: '[tuiItem]',
|
|
15
|
-
}]
|
|
13
|
+
args: [{ selector: '[tuiItem]' }]
|
|
16
14
|
}] });
|
|
17
15
|
|
|
18
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-item.mjs","sources":["../../../projects/cdk/directives/item/item.directive.ts","../../../projects/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive for queries via `@ContentChildren` / `@ViewChildren` / `querySelector`\n */\n@Directive({
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-item.mjs","sources":["../../../projects/cdk/directives/item/item.directive.ts","../../../projects/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive for queries via `@ContentChildren` / `@ViewChildren` / `querySelector`\n */\n@Directive({selector: '[tuiItem]'})\nexport class TuiItem {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;AAEG;MAEU,OAAO,CAAA;+GAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBADnB,SAAS;mBAAC,EAAC,QAAQ,EAAE,WAAW,EAAC;;;ACLlC;;AAEG;;;;"}
|
|
@@ -33,9 +33,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
33
33
|
args: [{
|
|
34
34
|
selector: '[tuiNativeValidator]',
|
|
35
35
|
providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],
|
|
36
|
-
host: {
|
|
37
|
-
'(focusout)': 'handleValidation()',
|
|
38
|
-
},
|
|
36
|
+
host: { '(focusout)': 'handleValidation()' },
|
|
39
37
|
}]
|
|
40
38
|
}] });
|
|
41
39
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-native-validator.mjs","sources":["../../../projects/cdk/directives/native-validator/native-validator.directive.ts","../../../projects/cdk/directives/native-validator/taiga-ui-cdk-directives-native-validator.ts"],"sourcesContent":["import {Directive, input} from '@angular/core';\nimport {type AbstractControl, NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiTakeUntilDestroyed, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, delay, of, switchMap} from 'rxjs';\n\n@Directive({\n selector: '[tuiNativeValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],\n host: {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-native-validator.mjs","sources":["../../../projects/cdk/directives/native-validator/native-validator.directive.ts","../../../projects/cdk/directives/native-validator/taiga-ui-cdk-directives-native-validator.ts"],"sourcesContent":["import {Directive, input} from '@angular/core';\nimport {type AbstractControl, NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiTakeUntilDestroyed, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, delay, of, switchMap} from 'rxjs';\n\n@Directive({\n selector: '[tuiNativeValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],\n host: {'(focusout)': 'handleValidation()'},\n})\nexport class TuiNativeValidator implements Validator {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly control$ = new BehaviorSubject<AbstractControl | null>(null);\n\n protected readonly sub = this.control$\n .pipe(\n switchMap((control: any) => control?.events || of(null)),\n delay(0),\n tuiZonefree(),\n tuiTakeUntilDestroyed(),\n )\n .subscribe(() => this.handleValidation());\n\n public readonly tuiNativeValidator = input('Invalid');\n\n public validate(control: AbstractControl): null {\n this.control$.next(control);\n\n return null;\n }\n\n protected handleValidation(): void {\n const invalid = !!this.control$.value?.touched && this.control$.value?.invalid;\n\n // TODO: Replace with :has(:invalid) when supported\n this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);\n this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator() : '');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAYa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;QAMqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAyB,IAAI,CAAC;QAE1D,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC;AACzB,aAAA,IAAI,CACD,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EACxD,KAAK,CAAC,CAAC,CAAC,EACR,WAAW,EAAE,EACb,qBAAqB,EAAE;aAE1B,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE7B,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC;AAexD;AAbU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAE3B,QAAA,OAAO,IAAI;;IAGL,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO;;AAG9E,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;AAC1E,QAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC;;+GA1BhE,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAHhB,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGvD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAAsB,kBAAA,EAAA,IAAI,CAAC,CAAC;AAChE,oBAAA,IAAI,EAAE,EAAC,YAAY,EAAE,oBAAoB,EAAC;AAC7C,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
@@ -11,9 +11,7 @@ class TuiPanService extends Observable {
|
|
|
11
11
|
const el = tuiInjectElement();
|
|
12
12
|
const doc = inject(DOCUMENT);
|
|
13
13
|
super((subscriber) => merge(tuiTypedFromEvent(el, 'touchstart', { passive: true }), tuiTypedFromEvent(el, 'mousedown'))
|
|
14
|
-
.pipe(switchMap(() => merge(tuiTypedFromEvent(doc, 'touchmove', {
|
|
15
|
-
passive: true,
|
|
16
|
-
}).pipe(filter(({ touches }) => touches.length < 2), map(({ touches }) => touches[0])), tuiTypedFromEvent(doc, 'mousemove'))), pairwise(), map(([first, second]) => {
|
|
14
|
+
.pipe(switchMap(() => merge(tuiTypedFromEvent(doc, 'touchmove', { passive: true }).pipe(filter(({ touches }) => touches.length < 2), map(({ touches }) => touches[0])), tuiTypedFromEvent(doc, 'mousemove'))), pairwise(), map(([first, second]) => {
|
|
17
15
|
const deltaX = (second?.clientX ?? 0) - (first?.clientX ?? 0);
|
|
18
16
|
const deltaY = (second?.clientY ?? 0) - (first?.clientY ?? 0);
|
|
19
17
|
return [deltaX, deltaY];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-pan.mjs","sources":["../../../projects/cdk/directives/pan/pan.service.ts","../../../projects/cdk/directives/pan/pan.directive.ts","../../../projects/cdk/directives/pan/taiga-ui-cdk-directives-pan.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n filter,\n map,\n merge,\n Observable,\n pairwise,\n repeat,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor() {\n const el = tuiInjectElement();\n const doc = inject(DOCUMENT);\n\n super((subscriber) =>\n merge(\n tuiTypedFromEvent(el, 'touchstart', {passive: true}),\n tuiTypedFromEvent(el, 'mousedown'),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, 'touchmove', {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-pan.mjs","sources":["../../../projects/cdk/directives/pan/pan.service.ts","../../../projects/cdk/directives/pan/pan.directive.ts","../../../projects/cdk/directives/pan/taiga-ui-cdk-directives-pan.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n filter,\n map,\n merge,\n Observable,\n pairwise,\n repeat,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor() {\n const el = tuiInjectElement();\n const doc = inject(DOCUMENT);\n\n super((subscriber) =>\n merge(\n tuiTypedFromEvent(el, 'touchstart', {passive: true}),\n tuiTypedFromEvent(el, 'mousedown'),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, 'touchmove', {passive: true}).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n tuiTypedFromEvent(doc, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = (second?.clientX ?? 0) - (first?.clientX ?? 0);\n const deltaY = (second?.clientY ?? 0) - (first?.clientY ?? 0);\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n tuiTypedFromEvent(doc, 'touchend'),\n tuiTypedFromEvent(doc, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\n\nimport {TuiPanService} from './pan.service';\n\n@Directive({\n selector: '[tuiPan]',\n providers: [TuiPanService],\n})\nexport class TuiPan {\n public readonly tuiPan = outputFromObservable(inject(TuiPanService));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAgBM,MAAO,aAAc,SAAQ,UAAqC,CAAA;AACpE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,EAAE,GAAG,gBAAgB,EAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE5B,KAAK,CAAC,CAAC,UAAU,KACb,KAAK,CACD,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EACpD,iBAAiB,CAAC,EAAE,EAAE,WAAW,CAAC;AAEjC,aAAA,IAAI,CACD,SAAS,CAAC,MACN,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EACzC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACjC,EACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CACtC,CACJ,EACD,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAI;AACpB,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAC7D,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAE7D,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAqB;SAC9C,CAAC,EACF,SAAS,CACL,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,EAClC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CACpC,CACJ,EACD,MAAM,EAAE;AAEX,aAAA,SAAS,CAAC,UAAU,CAAC,CAC7B;;+GApCI,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAb,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;;MCNY,MAAM,CAAA;AAJnB,IAAA,WAAA,GAAA;QAKoB,IAAM,CAAA,MAAA,GAAG,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACvE;+GAFY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAFJ,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEjB,MAAM,EAAA,UAAA,EAAA,CAAA;kBAJlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC7B,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -24,9 +24,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
24
24
|
useFactory: () => inject(TuiPlatform).tuiPlatform(),
|
|
25
25
|
},
|
|
26
26
|
],
|
|
27
|
-
host: {
|
|
28
|
-
'[attr.data-platform]': 'tuiPlatform()',
|
|
29
|
-
},
|
|
27
|
+
host: { '[attr.data-platform]': 'tuiPlatform()' },
|
|
30
28
|
}]
|
|
31
29
|
}] });
|
|
32
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-platform.mjs","sources":["../../../projects/cdk/directives/platform/platform.directive.ts","../../../projects/cdk/directives/platform/taiga-ui-cdk-directives-platform.ts"],"sourcesContent":["import {Directive, inject, input} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\n\n@Directive({\n selector: '[tuiPlatform]',\n providers: [\n {\n provide: TUI_PLATFORM,\n useFactory: () => inject(TuiPlatform).tuiPlatform(),\n },\n ],\n host: {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-platform.mjs","sources":["../../../projects/cdk/directives/platform/platform.directive.ts","../../../projects/cdk/directives/platform/taiga-ui-cdk-directives-platform.ts"],"sourcesContent":["import {Directive, inject, input} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\n\n@Directive({\n selector: '[tuiPlatform]',\n providers: [\n {\n provide: TUI_PLATFORM,\n useFactory: () => inject(TuiPlatform).tuiPlatform(),\n },\n ],\n host: {'[attr.data-platform]': 'tuiPlatform()'},\n})\nexport class TuiPlatform {\n public readonly tuiPlatform = input(inject(TUI_PLATFORM, {skipSelf: true}));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAaa,WAAW,CAAA;AAVxB,IAAA,WAAA,GAAA;AAWoB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAC9E;+GAFY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EART,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;AACtD,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,WAAW,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,YAAY;4BACrB,UAAU,EAAE,MAAM,MAAM,CAAa,WAAA,CAAA,CAAC,WAAW,EAAE;AACtD,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE,EAAC,sBAAsB,EAAE,eAAe,EAAC;AAClD,iBAAA;;;ACZD;;AAEG;;;;"}
|
|
@@ -9,9 +9,7 @@ class TuiResizable extends TuiElement {
|
|
|
9
9
|
}
|
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiResizable, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
|
-
args: [{
|
|
13
|
-
selector: '[tuiResizable]',
|
|
14
|
-
}]
|
|
12
|
+
args: [{ selector: '[tuiResizable]' }]
|
|
15
13
|
}] });
|
|
16
14
|
|
|
17
15
|
class TuiResizer {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-resizer.mjs","sources":["../../../projects/cdk/directives/resizer/resizable.directive.ts","../../../projects/cdk/directives/resizer/resizer.directive.ts","../../../projects/cdk/directives/resizer/taiga-ui-cdk-directives-resizer.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\n\n@Directive({
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-resizer.mjs","sources":["../../../projects/cdk/directives/resizer/resizable.directive.ts","../../../projects/cdk/directives/resizer/resizer.directive.ts","../../../projects/cdk/directives/resizer/taiga-ui-cdk-directives-resizer.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\n\n@Directive({selector: '[tuiResizable]'})\nexport class TuiResizable extends TuiElement {}\n","import {Directive, type ElementRef, inject, input, output} from '@angular/core';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiResizable} from './resizable.directive';\n\n@Directive({\n selector: '[tuiResizer]',\n host: {\n '[style.cursor]': 'cursor',\n '[style.touchAction]': '\"none\"',\n '(pointerdown.zoneless.prevent)': 'onPointerDown($event.x, $event.y)',\n '(document:pointermove.zoneless)': 'onPointerMove($event)',\n '(document:pointerup.zoneless)': 'onPointerUp()',\n },\n})\nexport class TuiResizer {\n private readonly resizable: ElementRef<HTMLElement> = inject(TuiResizable);\n\n protected x = NaN;\n protected y = NaN;\n protected width = 0;\n protected height = 0;\n\n public readonly tuiResizer = input<readonly [x: number, y: number]>([0, 0]);\n\n public readonly tuiSizeChange = output<readonly [x: number, y: number]>();\n\n protected get cursor(): string {\n const tuiResizer = this.tuiResizer();\n\n if (!tuiResizer[0]) {\n return 'ns-resize';\n }\n\n if (!tuiResizer[1]) {\n return 'ew-resize';\n }\n\n if (tuiResizer[0] * tuiResizer[1] > 0) {\n return 'nwse-resize';\n }\n\n return 'nesw-resize';\n }\n\n protected onPointerDown(x: number, y: number): void {\n this.x = x;\n this.y = y;\n this.width = this.resizable.nativeElement.clientWidth;\n this.height = this.resizable.nativeElement.clientHeight;\n }\n\n protected onPointerMove({x, y, buttons}: PointerEvent): void {\n if (!buttons) {\n this.onPointerUp();\n } else {\n this.onMove(x, y);\n }\n }\n\n protected onPointerUp(): void {\n this.x = NaN;\n }\n\n protected onMove(x: number, y: number): void {\n const tuiResizer = this.tuiResizer();\n\n if (Number.isNaN(this.x)) {\n return;\n }\n\n const {style} = this.resizable.nativeElement;\n const size = [\n this.width + tuiResizer[0] * (x - this.x),\n this.height + tuiResizer[1] * (y - this.y),\n ] as const;\n\n if (tuiResizer[0]) {\n style.width = tuiPx(size[0]);\n }\n\n if (tuiResizer[1]) {\n style.height = tuiPx(size[1]);\n }\n\n this.tuiSizeChange.emit(size);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
+
import { inject, PLATFORM_ID, Directive } from '@angular/core';
|
|
3
4
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
4
5
|
|
|
5
6
|
class TuiTransitioned {
|
|
6
7
|
constructor() {
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
const el = tuiInjectElement();
|
|
9
|
+
if (isPlatformBrowser(inject(PLATFORM_ID))) {
|
|
10
|
+
requestAnimationFrame(() => el.style.setProperty('transition', ''));
|
|
11
|
+
}
|
|
9
12
|
}
|
|
10
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiTransitioned, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
14
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TuiTransitioned, isStandalone: true, selector: "[tuiTransitioned]", host: { properties: { "style.transition": "\"none\"" } }, ngImport: i0 }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-transitioned.mjs","sources":["../../../projects/cdk/directives/transitioned/transitioned.directive.ts","../../../projects/cdk/directives/transitioned/taiga-ui-cdk-directives-transitioned.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-transitioned.mjs","sources":["../../../projects/cdk/directives/transitioned/transitioned.directive.ts","../../../projects/cdk/directives/transitioned/taiga-ui-cdk-directives-transitioned.ts"],"sourcesContent":["import {isPlatformBrowser} from '@angular/common';\nimport {Directive, inject, PLATFORM_ID} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\n@Directive({\n selector: '[tuiTransitioned]',\n host: {'[style.transition]': '\"none\"'},\n})\nexport class TuiTransitioned {\n constructor() {\n const el = tuiInjectElement();\n\n if (isPlatformBrowser(inject(PLATFORM_ID))) {\n requestAnimationFrame(() => el.style.setProperty('transition', ''));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAQa,eAAe,CAAA;AACxB,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,EAAE,GAAG,gBAAgB,EAAE;QAE7B,IAAI,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE;AACxC,YAAA,qBAAqB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;;;+GALlE,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE,EAAC,oBAAoB,EAAE,QAAQ,EAAC;AACzC,iBAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -21,9 +21,7 @@ class TuiValueChanges {
|
|
|
21
21
|
}
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiValueChanges, decorators: [{
|
|
23
23
|
type: Directive,
|
|
24
|
-
args: [{
|
|
25
|
-
selector: '[tuiValueChanges]',
|
|
26
|
-
}]
|
|
24
|
+
args: [{ selector: '[tuiValueChanges]' }]
|
|
27
25
|
}] });
|
|
28
26
|
|
|
29
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-value-changes.mjs","sources":["../../../projects/cdk/directives/value-changes/value-changes.directive.ts","../../../projects/cdk/directives/value-changes/taiga-ui-cdk-directives-value-changes.ts"],"sourcesContent":["import {Directive, type DoCheck, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {ControlContainer, NgControl} from '@angular/forms';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, skip, Subject, switchMap} from 'rxjs';\n\n@Directive({
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-value-changes.mjs","sources":["../../../projects/cdk/directives/value-changes/value-changes.directive.ts","../../../projects/cdk/directives/value-changes/taiga-ui-cdk-directives-value-changes.ts"],"sourcesContent":["import {Directive, type DoCheck, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {ControlContainer, NgControl} from '@angular/forms';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, skip, Subject, switchMap} from 'rxjs';\n\n@Directive({selector: '[tuiValueChanges]'})\nexport class TuiValueChanges<T> implements DoCheck {\n private readonly container = inject(ControlContainer, {optional: true});\n private readonly control = inject(NgControl, {optional: true});\n private readonly control$ = new Subject<ControlContainer | NgControl | null>();\n\n private readonly tuiValueChanges$ = this.control$.pipe(\n distinctUntilChanged(),\n switchMap(tuiControlValue<T>),\n distinctUntilChanged(),\n skip(1),\n );\n\n public readonly tuiValueChanges = outputFromObservable(this.tuiValueChanges$);\n\n public ngDoCheck(): void {\n this.control$.next(this.control || this.container);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAOa,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;QAEqB,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QACtD,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAuC;QAE7D,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAClD,oBAAoB,EAAE,EACtB,SAAS,EAAC,eAAkB,EAAC,EAC7B,oBAAoB,EAAE,EACtB,IAAI,CAAC,CAAC,CAAC,CACV;AAEe,QAAA,IAAA,CAAA,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAKhF;IAHU,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;;+GAf7C,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;mBAAC,EAAC,QAAQ,EAAE,mBAAmB,EAAC;;;ACN1C;;AAEG;;;;"}
|
|
@@ -27,9 +27,7 @@ class TuiVisualViewport {
|
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiVisualViewport, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: '[tuiVisualViewport]',
|
|
32
|
-
}]
|
|
30
|
+
args: [{ selector: '[tuiVisualViewport]' }]
|
|
33
31
|
}] });
|
|
34
32
|
|
|
35
33
|
/**
|