@taiga-ui/cdk 2.47.0 → 2.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/abstract/controller.d.ts +6 -0
  2. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-cdk-abstract.umd.js +12 -0
  4. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-abstract.umd.min.js +1 -1
  6. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +96 -35
  8. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -1
  10. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-enums.umd.js +12 -0
  12. package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-enums.umd.min.js +1 -1
  14. package/bundles/taiga-ui-cdk-enums.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-utils-browser.umd.js +2 -2
  16. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js +1 -1
  18. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-utils-focus.umd.js +1 -1
  20. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js +1 -1
  22. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  23. package/directives/auto-focus/autofocus.options.d.ts +1 -1
  24. package/directives/auto-focus/handlers/ios.handler.d.ts +26 -1
  25. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  26. package/enums/autocomplete.d.ts +10 -0
  27. package/enums/taiga-ui-cdk-enums.metadata.json +1 -1
  28. package/esm2015/abstract/controller.js +7 -1
  29. package/esm2015/directives/auto-focus/autofocus.options.js +7 -6
  30. package/esm2015/directives/auto-focus/handlers/ios.handler.js +80 -29
  31. package/esm2015/enums/autocomplete.js +12 -1
  32. package/esm2015/utils/browser/is-edge-older-than.js +2 -2
  33. package/esm2015/utils/browser/is-safari.js +2 -2
  34. package/esm2015/utils/focus/get-native-focused.js +2 -2
  35. package/esm5/abstract/controller.js +14 -1
  36. package/esm5/directives/auto-focus/autofocus.options.js +7 -6
  37. package/esm5/directives/auto-focus/handlers/ios.handler.js +92 -30
  38. package/esm5/enums/autocomplete.js +12 -1
  39. package/esm5/utils/browser/is-edge-older-than.js +2 -2
  40. package/esm5/utils/browser/is-safari.js +2 -2
  41. package/esm5/utils/focus/get-native-focused.js +2 -2
  42. package/fesm2015/taiga-ui-cdk-abstract.js +7 -1
  43. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  44. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +84 -33
  45. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  46. package/fesm2015/taiga-ui-cdk-enums.js +11 -0
  47. package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
  48. package/fesm2015/taiga-ui-cdk-utils-browser.js +2 -2
  49. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  50. package/fesm2015/taiga-ui-cdk-utils-focus.js +1 -1
  51. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  52. package/fesm5/taiga-ui-cdk-abstract.js +12 -1
  53. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  54. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +96 -34
  55. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  56. package/fesm5/taiga-ui-cdk-enums.js +11 -0
  57. package/fesm5/taiga-ui-cdk-enums.js.map +1 -1
  58. package/fesm5/taiga-ui-cdk-utils-browser.js +2 -2
  59. package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
  60. package/fesm5/taiga-ui-cdk-utils-focus.js +1 -1
  61. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  62. package/package.json +1 -1
  63. package/schematics/ng-update/constants/consts.js +28 -0
  64. package/schematics/ng-update/constants/enums.js +22 -0
  65. package/schematics/ng-update/constants/services.d.ts +8 -0
  66. package/schematics/ng-update/constants/services.js +43 -0
  67. package/schematics/ng-update/constants/types.d.ts +1 -0
  68. package/schematics/ng-update/constants/types.js +29 -0
  69. package/schematics/ng-update/constants/warnings.js +22 -0
  70. package/schematics/ng-update/index.js +2 -0
  71. package/schematics/ng-update/steps/rename-types.js +26 -17
  72. package/schematics/ng-update/steps/replace-const.js +2 -2
  73. package/schematics/ng-update/steps/replace-enums.js +2 -2
  74. package/schematics/ng-update/steps/replace-services.d.ts +1 -0
  75. package/schematics/ng-update/steps/replace-services.js +51 -0
  76. package/schematics/ng-update/steps/show-warnings.js +26 -9
  77. package/schematics/utils/{remove-import.d.ts → import-manipulations.d.ts} +1 -0
  78. package/schematics/utils/import-manipulations.js +19 -0
  79. package/schematics/utils/remove-import.js +0 -11
@@ -14,7 +14,7 @@
14
14
  return documentRef.activeElement;
15
15
  }
16
16
  var element = documentRef.activeElement.shadowRoot.activeElement;
17
- while (element && element.shadowRoot) {
17
+ while (element === null || element === void 0 ? void 0 : element.shadowRoot) {
18
18
  element = element.shadowRoot.activeElement;
19
19
  }
20
20
  return element;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-focus.umd.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"],"names":["svgNodeFilter"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-focus.umd.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"],"names":["svgNodeFilter"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@taiga-ui/cdk/constants")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/focus",["exports","@taiga-ui/cdk/constants"],t):t(((e=e||self)["taiga-ui"]=e["taiga-ui"]||{},e["taiga-ui"].cdk=e["taiga-ui"].cdk||{},e["taiga-ui"].cdk.utils=e["taiga-ui"].cdk.utils||{},e["taiga-ui"].cdk.utils.focus={}),e["taiga-ui"].cdk.constants)}(this,(function(e,t){"use strict";function n(e){if(!e.activeElement||!e.activeElement.shadowRoot)return e.activeElement;for(var t=e.activeElement.shadowRoot.activeElement;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}function i(e,t,n){void 0===t&&(t=!0),void 0===n&&(n=!1),t?e.focus({preventScroll:n}):e.blur()}function o(e){if(e.hasAttribute("disabled")||"-1"===e.getAttribute("tabIndex"))return!1;if(e instanceof HTMLElement&&e.isContentEditable||"0"===e.getAttribute("tabIndex"))return!0;switch(e.tagName){case"BUTTON":case"SELECT":case"TEXTAREA":return!0;case"VIDEO":case"AUDIO":return e.hasAttribute("controls");case"INPUT":return"hidden"!==e.getAttribute("type");case"A":case"LINK":return e.hasAttribute("href");default:return!1}}function u(e){return!e.hasAttribute("disabled")&&("-1"===e.getAttribute("tabIndex")||o(e))}function a(e,n,i,a){if(void 0===n&&(n=!1),void 0===a&&(a=!0),!i.ownerDocument)return null;var r=a?o:u,c=i.ownerDocument.createTreeWalker(i,NodeFilter.SHOW_ELEMENT,t.svgNodeFilter,!1);for(c.currentNode=e;n?c.previousNode():c.nextNode();)if(c.currentNode instanceof HTMLElement&&(e=c.currentNode),r(e))return e;return null}var r=a;function c(e){return!!e&&!!e.ownerDocument&&n(e.ownerDocument)===e}e.blurNativeFocused=function(e){var t=n(e);t instanceof HTMLElement&&i(t,!1)},e.getClosestFocusable=a,e.getClosestKeyboardFocusable=r,e.getNativeFocused=n,e.isNativeFocused=c,e.isNativeFocusedIn=function(e){if(!e.ownerDocument||!e.contains)return!1;var t=n(e.ownerDocument);return null!==t&&e.contains(t)},e.isNativeKeyboardFocusable=o,e.isNativeMouseFocusable=u,e.moveFocus=function(e,t,n){for(e+=n;e>=0&&e<t.length;){if(i(t[e]),c(t[e]))return;e+=n}},e.setNativeFocused=i,e.setNativeMouseFocused=function(e,t,n){if(void 0===t&&(t=!0),void 0===n&&(n=!1),e.ownerDocument){if("function"==typeof Event)e.dispatchEvent(new Event("mousedown",{bubbles:!0,cancelable:!0}));else{var o=e.ownerDocument.createEvent("Event");o.initEvent("mousedown",!0,!0),e.dispatchEvent(o)}i(e,t,n)}},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@taiga-ui/cdk/constants")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/focus",["exports","@taiga-ui/cdk/constants"],t):t(((e=e||self)["taiga-ui"]=e["taiga-ui"]||{},e["taiga-ui"].cdk=e["taiga-ui"].cdk||{},e["taiga-ui"].cdk.utils=e["taiga-ui"].cdk.utils||{},e["taiga-ui"].cdk.utils.focus={}),e["taiga-ui"].cdk.constants)}(this,(function(e,t){"use strict";function n(e){if(!e.activeElement||!e.activeElement.shadowRoot)return e.activeElement;for(var t=e.activeElement.shadowRoot.activeElement;null==t?void 0:t.shadowRoot;)t=t.shadowRoot.activeElement;return t}function i(e,t,n){void 0===t&&(t=!0),void 0===n&&(n=!1),t?e.focus({preventScroll:n}):e.blur()}function o(e){if(e.hasAttribute("disabled")||"-1"===e.getAttribute("tabIndex"))return!1;if(e instanceof HTMLElement&&e.isContentEditable||"0"===e.getAttribute("tabIndex"))return!0;switch(e.tagName){case"BUTTON":case"SELECT":case"TEXTAREA":return!0;case"VIDEO":case"AUDIO":return e.hasAttribute("controls");case"INPUT":return"hidden"!==e.getAttribute("type");case"A":case"LINK":return e.hasAttribute("href");default:return!1}}function u(e){return!e.hasAttribute("disabled")&&("-1"===e.getAttribute("tabIndex")||o(e))}function a(e,n,i,a){if(void 0===n&&(n=!1),void 0===a&&(a=!0),!i.ownerDocument)return null;var r=a?o:u,c=i.ownerDocument.createTreeWalker(i,NodeFilter.SHOW_ELEMENT,t.svgNodeFilter,!1);for(c.currentNode=e;n?c.previousNode():c.nextNode();)if(c.currentNode instanceof HTMLElement&&(e=c.currentNode),r(e))return e;return null}var r=a;function c(e){return!!e&&!!e.ownerDocument&&n(e.ownerDocument)===e}e.blurNativeFocused=function(e){var t=n(e);t instanceof HTMLElement&&i(t,!1)},e.getClosestFocusable=a,e.getClosestKeyboardFocusable=r,e.getNativeFocused=n,e.isNativeFocused=c,e.isNativeFocusedIn=function(e){if(!e.ownerDocument||!e.contains)return!1;var t=n(e.ownerDocument);return null!==t&&e.contains(t)},e.isNativeKeyboardFocusable=o,e.isNativeMouseFocusable=u,e.moveFocus=function(e,t,n){for(e+=n;e>=0&&e<t.length;){if(i(t[e]),c(t[e]))return;e+=n}},e.setNativeFocused=i,e.setNativeMouseFocused=function(e,t,n){if(void 0===t&&(t=!0),void 0===n&&(n=!1),e.ownerDocument){if("function"==typeof Event)e.dispatchEvent(new Event("mousedown",{bubbles:!0,cancelable:!0}));else{var o=e.ownerDocument.createEvent("Event");o.initEvent("mousedown",!0,!0),e.dispatchEvent(o)}i(e,t,n)}},Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=taiga-ui-cdk-utils-focus.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"names":["getNativeFocused","documentRef","activeElement","shadowRoot","element","setNativeFocused","focused","preventScroll","focus","blur","isNativeKeyboardFocusable","hasAttribute","getAttribute","HTMLElement","isContentEditable","tagName","isNativeMouseFocusable","getClosestFocusable","initial","prev","root","keyboard","ownerDocument","check","treeWalker","createTreeWalker","NodeFilter","SHOW_ELEMENT","svgNodeFilter","currentNode","previousNode","nextNode","getClosestKeyboardFocusable","isNativeFocused","node","contains","nativeFocused","currentIndex","elements","step","length","Event","dispatchEvent","bubbles","cancelable","event_1","createEvent","initEvent"],"mappings":"udAKgBA,EAAiBC,GAC7B,IAAKA,EAAYC,gBAAkBD,EAAYC,cAAcC,WACzD,OAAOF,EAAYC,cAKvB,IAFA,IAAIE,EAAUH,EAAYC,cAAcC,WAAWD,cAE5CE,GAAWA,EAAQD,YACtBC,EAAUA,EAAQD,WAAWD,cAGjC,OAAOE,WCPKC,EACZD,EACAE,EACAC,QADA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEID,EACAF,EAAQI,MAAM,CAACD,cAAaA,IAE5BH,EAAQK,gBCXAC,EAA0BN,GACtC,GAAIA,EAAQO,aAAa,aAAoD,OAArCP,EAAQQ,aAAa,YACzD,OAAO,EAIX,GACKR,aAAmBS,aAAeT,EAAQU,mBACN,MAArCV,EAAQQ,aAAa,YAErB,OAAO,EAGX,OAAQR,EAAQW,SACZ,IAAK,SACL,IAAK,SACL,IAAK,WACD,OAAO,EACX,IAAK,QACL,IAAK,QACD,OAAOX,EAAQO,aAAa,YAChC,IAAK,QACD,MAAwC,WAAjCP,EAAQQ,aAAa,QAChC,IAAK,IACL,IAAK,OACD,OAAOR,EAAQO,aAAa,QAChC,QACI,OAAO,YC/BHK,EAAuBZ,GACnC,OACKA,EAAQO,aAAa,cACgB,OAArCP,EAAQQ,aAAa,aAAwBF,EAA0BN,aCShEa,EACZC,EACAC,EACAC,EACAC,GAEA,QAJA,IAAAF,IAAAA,GAAA,QAEA,IAAAE,IAAAA,GAAA,IAEKD,EAAKE,cACN,OAAO,KAGX,IAAMC,EAAQF,EAAWX,EAA4BM,EAI/CQ,EAAaJ,EAAKE,cAAcG,iBAClCL,EACAM,WAAWC,aACXC,EAAAA,eACA,GAKJ,IAFAJ,EAAWK,YAAcX,EAElBC,EAAOK,EAAWM,eAAiBN,EAAWO,YAMjD,GAJIP,EAAWK,uBAAuBhB,cAClCK,EAAUM,EAAWK,aAGrBN,EAAML,GACN,OAAOA,EAIf,OAAO,SAIEc,EAA8Bf,WC1C3BgB,EAAgBC,GAC5B,QACMA,KAAUA,EAAKZ,eAAiBtB,EAAiBkC,EAAKZ,iBAAmBY,+BCNjDjC,GAC9B,IAAMC,EAAgBF,EAAiBC,GAGnCC,aAAyBW,aACzBR,EAAiBH,GAAe,kICHNgC,GAE9B,IAAKA,EAAKZ,gBAAkBY,EAAKC,SAC7B,OAAO,EAGX,IAAMC,EAAgBpC,EAAiBkC,EAAKZ,eAE5C,OAAyB,OAAlBc,GAA0BF,EAAKC,SAASC,kFCL/CC,EACAC,EACAC,GAIA,IAFAF,GAAgBE,EAETF,GAAgB,GAAKA,EAAeC,EAASE,QAAQ,CAGxD,GAFAnC,EAAiBiC,EAASD,IAEtBJ,EAAgBK,EAASD,IACzB,OAGJA,GAAgBE,0DCdpBnC,EACAE,EACAC,GAEA,QAHA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEKH,EAAQkB,cAAb,CAIA,GAAqB,mBAAVmB,MACPrC,EAAQsC,cAAc,IAAID,MAAM,YAAa,CAACE,SAAS,EAAMC,YAAY,SACtE,CACH,IAAMC,EAAQzC,EAAQkB,cAAcwB,YAAY,SAEhDD,EAAME,UAAU,aAAa,GAAM,GACnC3C,EAAQsC,cAAcG,GAG1BxC,EAAiBD,EAASE,EAASC","sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts"],"names":["getNativeFocused","documentRef","activeElement","shadowRoot","element","setNativeFocused","focused","preventScroll","focus","blur","isNativeKeyboardFocusable","hasAttribute","getAttribute","HTMLElement","isContentEditable","tagName","isNativeMouseFocusable","getClosestFocusable","initial","prev","root","keyboard","ownerDocument","check","treeWalker","createTreeWalker","NodeFilter","SHOW_ELEMENT","svgNodeFilter","currentNode","previousNode","nextNode","getClosestKeyboardFocusable","isNativeFocused","node","contains","nativeFocused","currentIndex","elements","step","length","Event","dispatchEvent","bubbles","cancelable","event_1","createEvent","initEvent"],"mappings":"udAKgBA,EAAiBC,GAC7B,IAAKA,EAAYC,gBAAkBD,EAAYC,cAAcC,WACzD,OAAOF,EAAYC,cAKvB,IAFA,IAAIE,EAAUH,EAAYC,cAAcC,WAAWD,cAE5CE,MAAAA,OAAO,EAAPA,EAASD,YACZC,EAAUA,EAAQD,WAAWD,cAGjC,OAAOE,WCPKC,EACZD,EACAE,EACAC,QADA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEID,EACAF,EAAQI,MAAM,CAACD,cAAaA,IAE5BH,EAAQK,gBCXAC,EAA0BN,GACtC,GAAIA,EAAQO,aAAa,aAAoD,OAArCP,EAAQQ,aAAa,YACzD,OAAO,EAIX,GACKR,aAAmBS,aAAeT,EAAQU,mBACN,MAArCV,EAAQQ,aAAa,YAErB,OAAO,EAGX,OAAQR,EAAQW,SACZ,IAAK,SACL,IAAK,SACL,IAAK,WACD,OAAO,EACX,IAAK,QACL,IAAK,QACD,OAAOX,EAAQO,aAAa,YAChC,IAAK,QACD,MAAwC,WAAjCP,EAAQQ,aAAa,QAChC,IAAK,IACL,IAAK,OACD,OAAOR,EAAQO,aAAa,QAChC,QACI,OAAO,YC/BHK,EAAuBZ,GACnC,OACKA,EAAQO,aAAa,cACgB,OAArCP,EAAQQ,aAAa,aAAwBF,EAA0BN,aCShEa,EACZC,EACAC,EACAC,EACAC,GAEA,QAJA,IAAAF,IAAAA,GAAA,QAEA,IAAAE,IAAAA,GAAA,IAEKD,EAAKE,cACN,OAAO,KAGX,IAAMC,EAAQF,EAAWX,EAA4BM,EAI/CQ,EAAaJ,EAAKE,cAAcG,iBAClCL,EACAM,WAAWC,aACXC,EAAAA,eACA,GAKJ,IAFAJ,EAAWK,YAAcX,EAElBC,EAAOK,EAAWM,eAAiBN,EAAWO,YAMjD,GAJIP,EAAWK,uBAAuBhB,cAClCK,EAAUM,EAAWK,aAGrBN,EAAML,GACN,OAAOA,EAIf,OAAO,SAIEc,EAA8Bf,WC1C3BgB,EAAgBC,GAC5B,QACMA,KAAUA,EAAKZ,eAAiBtB,EAAiBkC,EAAKZ,iBAAmBY,+BCNjDjC,GAC9B,IAAMC,EAAgBF,EAAiBC,GAGnCC,aAAyBW,aACzBR,EAAiBH,GAAe,kICHNgC,GAE9B,IAAKA,EAAKZ,gBAAkBY,EAAKC,SAC7B,OAAO,EAGX,IAAMC,EAAgBpC,EAAiBkC,EAAKZ,eAE5C,OAAyB,OAAlBc,GAA0BF,EAAKC,SAASC,kFCL/CC,EACAC,EACAC,GAIA,IAFAF,GAAgBE,EAETF,GAAgB,GAAKA,EAAeC,EAASE,QAAQ,CAGxD,GAFAnC,EAAiBiC,EAASD,IAEtBJ,EAAgBK,EAASD,IACzB,OAGJA,GAAgBE,0DCdpBnC,EACAE,EACAC,GAEA,QAHA,IAAAD,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GAEKH,EAAQkB,cAAb,CAIA,GAAqB,mBAAVmB,MACPrC,EAAQsC,cAAc,IAAID,MAAM,YAAa,CAACE,SAAS,EAAMC,YAAY,SACtE,CACH,IAAMC,EAAQzC,EAAQkB,cAAcwB,YAAY,SAEhDD,EAAME,UAAU,aAAa,GAAM,GACnC3C,EAAQsC,cAAcG,GAG1BxC,EAAiBD,EAASE,EAASC","sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n"]}
@@ -5,7 +5,7 @@ export interface TuiAutofocusHandler {
5
5
  setFocus(): void;
6
6
  }
7
7
  export declare const TUI_AUTOFOCUS_HANDLER: InjectionToken<TuiAutofocusHandler>;
8
- export declare function tuiAutofocusHandlerFactory(tuiFocusableComponent: TuiFocusableElementAccessor | null, elementRef: ElementRef<HTMLElement>, animationFrame$: Observable<number>, renderer: Renderer2, ngZone: NgZone): TuiAutofocusHandler;
8
+ export declare function tuiAutofocusHandlerFactory(tuiFocusableComponent: TuiFocusableElementAccessor | null, elementRef: ElementRef<HTMLElement>, animationFrame$: Observable<number>, renderer: Renderer2, ngZone: NgZone, windowRef: Window): TuiAutofocusHandler;
9
9
  export declare const TUI_AUTOFOCUS_PROVIDERS: {
10
10
  provide: InjectionToken<TuiAutofocusHandler>;
11
11
  useFactory: typeof tuiAutofocusHandlerFactory;
@@ -4,7 +4,32 @@ import { AbstractTuiAutofocusHandler } from './abstract.handler';
4
4
  export declare class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {
5
5
  private readonly renderer;
6
6
  private readonly ngZone;
7
- constructor(tuiFocusableComponent: TuiFocusableElementAccessor | null, elementRef: ElementRef<HTMLElement>, renderer: Renderer2, ngZone: NgZone);
7
+ private readonly windowRef;
8
+ constructor(tuiFocusableComponent: TuiFocusableElementAccessor | null, elementRef: ElementRef<HTMLElement>, renderer: Renderer2, ngZone: NgZone, windowRef: Window);
8
9
  setFocus(): void;
9
10
  private iosWebkitAutofocus;
11
+ /**
12
+ * @note:
13
+ * emulate textfield position in layout with cursor
14
+ * before focus to real textfield element
15
+ */
16
+ private makeFakeInput;
17
+ private getDurationTimeBeforeFocus;
18
+ /**
19
+ * @note:
20
+ * unfortunately, in older versions of iOS
21
+ * there is a bug that the fake input cursor
22
+ * will move along with the dialog animation
23
+ * and then that dialog will be shaking
24
+ */
25
+ private insideDialog;
26
+ /**
27
+ * @note:
28
+ * This is necessary so that the viewport isn't recalculated
29
+ * and then the dialogs don't shake.
30
+ *
31
+ * Also, we need to fixed height viewport,
32
+ * so that when focusing the dialogs don't shake
33
+ */
34
+ private patchCssStyles;
10
35
  }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiAutoFocusDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[tuiAutoFocus]","providers":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_PROVIDERS"}}]}],"members":{"autoFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiAutofocusHandler"}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"TuiAutoFocusModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}],"exports":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}]}]}],"members":{}},"TuiAutofocusHandler":{"__symbolic":"interface"},"TUI_AUTOFOCUS_HANDLER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":21,"character":41},"arguments":["Autofocusing handler"]},"tuiAutofocusHandlerFactory":{"__symbolic":"function","parameters":["tuiFocusableComponent","elementRef","animationFrame$","renderer","ngZone"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":33,"character":11},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_IS_APPLE","line":33,"character":18}]},"thenExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiIosAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"renderer"},{"__symbolic":"reference","name":"ngZone"}]},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiDefaultAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"animationFrame$"}]}}},"TUI_AUTOFOCUS_PROVIDERS":[{"provide":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"},"useFactory":{"__symbolic":"reference","name":"tuiAutofocusHandlerFactory"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":17}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":48,"character":33}},{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":48,"character":41}],{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":49,"character":12},{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":50,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":51,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":52,"character":12}]}],"AbstractTuiAutofocusHandler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":11,"character":50},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":12,"character":50,"context":{"typeName":"HTMLElement"},"module":"./handlers/abstract.handler"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiDefaultAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":17,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":18,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":21,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":19,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/default.handler"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiIosAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":17,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":18,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":19,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":21,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":24,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":20,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":21,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/ios.handler"}]},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":23,"character":35},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":25,"character":33}]}],"setFocus":[{"__symbolic":"method"}],"iosWebkitAutofocus":[{"__symbolic":"method"}]}}},"origins":{"TuiAutoFocusDirective":"./autofocus.directive","TuiAutoFocusModule":"./autofocus.module","TuiAutofocusHandler":"./autofocus.options","TUI_AUTOFOCUS_HANDLER":"./autofocus.options","tuiAutofocusHandlerFactory":"./autofocus.options","TUI_AUTOFOCUS_PROVIDERS":"./autofocus.options","AbstractTuiAutofocusHandler":"./handlers/abstract.handler","TuiDefaultAutofocusHandler":"./handlers/default.handler","TuiIosAutofocusHandler":"./handlers/ios.handler"},"importAs":"@taiga-ui/cdk/directives/auto-focus"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiAutoFocusDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[tuiAutoFocus]","providers":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_PROVIDERS"}}]}],"members":{"autoFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiAutofocusHandler"}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"TuiAutoFocusModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}],"exports":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}]}]}],"members":{}},"TuiAutofocusHandler":{"__symbolic":"interface"},"TUI_AUTOFOCUS_HANDLER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":21,"character":41},"arguments":["Autofocusing handler"]},"tuiAutofocusHandlerFactory":{"__symbolic":"function","parameters":["tuiFocusableComponent","elementRef","animationFrame$","renderer","ngZone","windowRef"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":34,"character":11},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_IS_IOS","line":34,"character":18}]},"thenExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiIosAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"renderer"},{"__symbolic":"reference","name":"ngZone"},{"__symbolic":"reference","name":"windowRef"}]},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiDefaultAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"animationFrame$"}]}}},"TUI_AUTOFOCUS_PROVIDERS":[{"provide":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"},"useFactory":{"__symbolic":"reference","name":"tuiAutofocusHandlerFactory"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":55,"character":17}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":55,"character":33}},{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":55,"character":41}],{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":56,"character":12},{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":57,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":58,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":59,"character":12},{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":60,"character":12}]}],"AbstractTuiAutofocusHandler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":11,"character":50},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":12,"character":50,"context":{"typeName":"HTMLElement"},"module":"./handlers/abstract.handler"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiDefaultAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":17,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":18,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":21,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":19,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/default.handler"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiIosAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":17,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":21,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":24,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":25,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":26,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":27,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":23,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":24,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/ios.handler"}]},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":25,"character":54},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":26,"character":49},{"__symbolic":"error","message":"Could not resolve type","line":27,"character":52,"context":{"typeName":"Window"},"module":"./handlers/ios.handler"}]}],"setFocus":[{"__symbolic":"method"}],"iosWebkitAutofocus":[{"__symbolic":"method"}],"makeFakeInput":[{"__symbolic":"method"}],"getDurationTimeBeforeFocus":[{"__symbolic":"method"}],"insideDialog":[{"__symbolic":"method"}],"patchCssStyles":[{"__symbolic":"method"}]}}},"origins":{"TuiAutoFocusDirective":"./autofocus.directive","TuiAutoFocusModule":"./autofocus.module","TuiAutofocusHandler":"./autofocus.options","TUI_AUTOFOCUS_HANDLER":"./autofocus.options","tuiAutofocusHandlerFactory":"./autofocus.options","TUI_AUTOFOCUS_PROVIDERS":"./autofocus.options","AbstractTuiAutofocusHandler":"./handlers/abstract.handler","TuiDefaultAutofocusHandler":"./handlers/default.handler","TuiIosAutofocusHandler":"./handlers/ios.handler"},"importAs":"@taiga-ui/cdk/directives/auto-focus"}
@@ -3,7 +3,17 @@ export declare const enum TuiCreditCardAutofillName {
3
3
  CcName = "cc-name",
4
4
  CcNumber = "cc-number",
5
5
  CcCsc = "cc-csc",
6
+ CcExpMonth = "cc-exp-month",
7
+ /**
8
+ * @deprecated
9
+ * TODO: 3.0 replace with {@link CcExpMonth}
10
+ */
6
11
  CcExp_mounth = "cc-exp-month",
12
+ CcExpYear = "cc-exp-year",
13
+ /**
14
+ * @deprecated
15
+ * TODO: 3.0 replace with {@link CcExpYear}
16
+ */
7
17
  CcExp_year = "cc-exp-year",
8
18
  CcExp = "cc-exp",
9
19
  CcType = "cc-type"
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiCreditCardAutofillName":{"Off":"off","CcName":"cc-name","CcNumber":"cc-number","CcCsc":"cc-csc","CcExp_mounth":"cc-exp-month","CcExp_year":"cc-exp-year","CcExp":"cc-exp","CcType":"cc-type"},"TuiNameAutofillName":{"Off":"off","Name":"name","GivenName":"given-name","AdditionalName":"additional-name","FamilyName":"family-name"},"TuiAccountAutofillName":{"Off":"off","Username":"username","NewPassword":"new-password","CurrentPassword":"current-password"},"TuiEmailAutofillName":{"Off":"off","Email":"email"},"TuiAddressAutofillName":{"Off":"off","StreetAddress":"street-address","PostalCode":"postal-code","CountryName":"country-name"},"TuiPhoneAutofillName":{"Off":"off","Tel":"tel"},"TuiDateAutofillName":{"Off":"off","Bday":"bday"},"TuiTransactionAutofillName":{"Off":"off","TransactionCurrency":"transaction-currency","TransactionAmount":"transaction-amount"},"TuiAutofillFieldNameT":{"__symbolic":"interface"},"TuiAutofillFieldName":{"__symbolic":"interface"},"TuiDayOfWeek":{"Sunday":0,"Monday":1,"Tuesday":2,"Wednesday":3,"Thursday":4,"Friday":5,"Saturday":6},"TuiInputMode":{"None":"none","Text":"text","Decimal":"decimal","Numeric":"numeric","Tel":"tel","Email":"email","Url":"url","Search":"search"},"TuiInputType":{"Text":"text","Tel":"tel","Email":"email","Url":"url","Password":"password"},"TuiMonthNumber":{"January":0,"February":1,"March":2,"April":3,"May":4,"June":5,"July":6,"August":7,"September":8,"October":9,"November":10,"December":11},"TuiOverscrollMode":{"All":"all","Scroll":"scroll","None":"none"}},"origins":{"TuiCreditCardAutofillName":"./autocomplete","TuiNameAutofillName":"./autocomplete","TuiAccountAutofillName":"./autocomplete","TuiEmailAutofillName":"./autocomplete","TuiAddressAutofillName":"./autocomplete","TuiPhoneAutofillName":"./autocomplete","TuiDateAutofillName":"./autocomplete","TuiTransactionAutofillName":"./autocomplete","TuiAutofillFieldNameT":"./autocomplete","TuiAutofillFieldName":"./autocomplete","TuiDayOfWeek":"./day-of-week","TuiInputMode":"./input-mode","TuiInputType":"./input-type","TuiMonthNumber":"./month-number","TuiOverscrollMode":"./overscroll-mode"},"importAs":"@taiga-ui/cdk/enums"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiCreditCardAutofillName":{"Off":"off","CcName":"cc-name","CcNumber":"cc-number","CcCsc":"cc-csc","CcExpMonth":"cc-exp-month","CcExp_mounth":"cc-exp-month","CcExpYear":"cc-exp-year","CcExp_year":"cc-exp-year","CcExp":"cc-exp","CcType":"cc-type"},"TuiNameAutofillName":{"Off":"off","Name":"name","GivenName":"given-name","AdditionalName":"additional-name","FamilyName":"family-name"},"TuiAccountAutofillName":{"Off":"off","Username":"username","NewPassword":"new-password","CurrentPassword":"current-password"},"TuiEmailAutofillName":{"Off":"off","Email":"email"},"TuiAddressAutofillName":{"Off":"off","StreetAddress":"street-address","PostalCode":"postal-code","CountryName":"country-name"},"TuiPhoneAutofillName":{"Off":"off","Tel":"tel"},"TuiDateAutofillName":{"Off":"off","Bday":"bday"},"TuiTransactionAutofillName":{"Off":"off","TransactionCurrency":"transaction-currency","TransactionAmount":"transaction-amount"},"TuiAutofillFieldNameT":{"__symbolic":"interface"},"TuiAutofillFieldName":{"__symbolic":"interface"},"TuiDayOfWeek":{"Sunday":0,"Monday":1,"Tuesday":2,"Wednesday":3,"Thursday":4,"Friday":5,"Saturday":6},"TuiInputMode":{"None":"none","Text":"text","Decimal":"decimal","Numeric":"numeric","Tel":"tel","Email":"email","Url":"url","Search":"search"},"TuiInputType":{"Text":"text","Tel":"tel","Email":"email","Url":"url","Password":"password"},"TuiMonthNumber":{"January":0,"February":1,"March":2,"April":3,"May":4,"June":5,"July":6,"August":7,"September":8,"October":9,"November":10,"December":11},"TuiOverscrollMode":{"All":"all","Scroll":"scroll","None":"none"}},"origins":{"TuiCreditCardAutofillName":"./autocomplete","TuiNameAutofillName":"./autocomplete","TuiAccountAutofillName":"./autocomplete","TuiEmailAutofillName":"./autocomplete","TuiAddressAutofillName":"./autocomplete","TuiPhoneAutofillName":"./autocomplete","TuiDateAutofillName":"./autocomplete","TuiTransactionAutofillName":"./autocomplete","TuiAutofillFieldNameT":"./autocomplete","TuiAutofillFieldName":"./autocomplete","TuiDayOfWeek":"./day-of-week","TuiInputMode":"./input-mode","TuiInputType":"./input-type","TuiMonthNumber":"./month-number","TuiOverscrollMode":"./overscroll-mode"},"importAs":"@taiga-ui/cdk/enums"}
@@ -1,4 +1,8 @@
1
1
  import { Subject } from 'rxjs';
2
+ /**
3
+ * @deprecated
4
+ * TODO: 3.0 replace with {@link AbstractTuiController}
5
+ */
2
6
  export class TuiController {
3
7
  constructor() {
4
8
  this.change$ = new Subject();
@@ -7,4 +11,6 @@ export class TuiController {
7
11
  this.change$.next();
8
12
  }
9
13
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvYWJzdHJhY3QvIiwic291cmNlcyI6WyJjb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0IsTUFBTSxPQUFnQixhQUFhO0lBQW5DO1FBQ2EsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFLM0MsQ0FBQztJQUhHLFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUdWlDb250cm9sbGVyIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICByZWFkb25seSBjaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgIH1cbn1cbiJdfQ==
14
+ export class AbstractTuiController extends TuiController {
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvYWJzdHJhY3QvIiwic291cmNlcyI6WyJjb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0I7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixhQUFhO0lBQW5DO1FBQ2EsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFLM0MsQ0FBQztJQUhHLFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBZ0IscUJBQXNCLFNBQVEsYUFBYTtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQge09uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBUT0RPOiAzLjAgcmVwbGFjZSB3aXRoIHtAbGluayBBYnN0cmFjdFR1aUNvbnRyb2xsZXJ9XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUdWlDb250cm9sbGVyIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICByZWFkb25seSBjaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpQ29udHJvbGxlciBleHRlbmRzIFR1aUNvbnRyb2xsZXIge31cbiJdfQ==
@@ -1,13 +1,13 @@
1
1
  import { ElementRef, inject, InjectionToken, NgZone, Optional, Renderer2, Self, } from '@angular/core';
2
- import { ANIMATION_FRAME } from '@ng-web-apis/common';
3
- import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_APPLE } from '@taiga-ui/cdk/tokens';
2
+ import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
3
+ import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
4
4
  import { TuiDefaultAutofocusHandler } from './handlers/default.handler';
5
5
  import { TuiIosAutofocusHandler } from './handlers/ios.handler';
6
6
  export const TUI_AUTOFOCUS_HANDLER = new InjectionToken('Autofocusing handler');
7
7
  // TODO: 3.0 remove in ivy compilation
8
- export function tuiAutofocusHandlerFactory(tuiFocusableComponent, elementRef, animationFrame$, renderer, ngZone) {
9
- return inject(TUI_IS_APPLE)
10
- ? new TuiIosAutofocusHandler(tuiFocusableComponent, elementRef, renderer, ngZone)
8
+ export function tuiAutofocusHandlerFactory(tuiFocusableComponent, elementRef, animationFrame$, renderer, ngZone, windowRef) {
9
+ return inject(TUI_IS_IOS)
10
+ ? new TuiIosAutofocusHandler(tuiFocusableComponent, elementRef, renderer, ngZone, windowRef)
11
11
  : new TuiDefaultAutofocusHandler(tuiFocusableComponent, elementRef, animationFrame$);
12
12
  }
13
13
  export const TUI_AUTOFOCUS_PROVIDERS = [
@@ -21,7 +21,8 @@ export const TUI_AUTOFOCUS_PROVIDERS = [
21
21
  ANIMATION_FRAME,
22
22
  Renderer2,
23
23
  NgZone,
24
+ WINDOW,
24
25
  ],
25
26
  },
26
27
  ];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLm9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImF1dG9mb2N1cy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBQywyQkFBMkIsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUcvRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQU05RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQsc0JBQXNCLENBQ3pCLENBQUM7QUFFRixzQ0FBc0M7QUFDdEMsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxxQkFBeUQsRUFDekQsVUFBbUMsRUFDbkMsZUFBbUMsRUFDbkMsUUFBbUIsRUFDbkIsTUFBYztJQUVkLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN2QixDQUFDLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztRQUNqRixDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FDMUIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixlQUFlLENBQ2xCLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkM7UUFDSSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLG9DQUFvQztRQUNwQyxVQUFVLEVBQUUsMEJBQTBCO1FBQ3RDLElBQUksRUFBRTtZQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLDJCQUEyQixDQUFDO1lBQ3pELFVBQVU7WUFDVixlQUFlO1lBQ2YsU0FBUztZQUNULE1BQU07U0FDVDtLQUNKO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsIFRVSV9JU19BUFBMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9kZWZhdWx0LmhhbmRsZXInO1xuaW1wb3J0IHtUdWlJb3NBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL2lvcy5oYW5kbGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlBdXRvZm9jdXNIYW5kbGVyIHtcbiAgICBzZXRGb2N1cygpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0FVVE9GT0NVU19IQU5ETEVSID0gbmV3IEluamVjdGlvblRva2VuPFR1aUF1dG9mb2N1c0hhbmRsZXI+KFxuICAgICdBdXRvZm9jdXNpbmcgaGFuZGxlcicsXG4pO1xuXG4vLyBUT0RPOiAzLjAgcmVtb3ZlIGluIGl2eSBjb21waWxhdGlvblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUF1dG9mb2N1c0hhbmRsZXJGYWN0b3J5KFxuICAgIHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIG5nWm9uZTogTmdab25lLFxuKTogVHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgcmV0dXJuIGluamVjdChUVUlfSVNfQVBQTEUpXG4gICAgICAgID8gbmV3IFR1aUlvc0F1dG9mb2N1c0hhbmRsZXIodHVpRm9jdXNhYmxlQ29tcG9uZW50LCBlbGVtZW50UmVmLCByZW5kZXJlciwgbmdab25lKVxuICAgICAgICA6IG5ldyBUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcihcbiAgICAgICAgICAgICAgdHVpRm9jdXNhYmxlQ29tcG9uZW50LFxuICAgICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgICBhbmltYXRpb25GcmFtZSQsXG4gICAgICAgICAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9BVVRPRk9DVVNfUFJPVklERVJTID0gW1xuICAgIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0FVVE9GT0NVU19IQU5ETEVSLFxuICAgICAgICAvLyBUT0RPOiByZXBsYWNlIHRvIHVzZUNsYXNzIGluIHYzLjBcbiAgICAgICAgdXNlRmFjdG9yeTogdHVpQXV0b2ZvY3VzSGFuZGxlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtcbiAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SXSxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBBTklNQVRJT05fRlJBTUUsXG4gICAgICAgICAgICBSZW5kZXJlcjIsXG4gICAgICAgICAgICBOZ1pvbmUsXG4gICAgICAgIF0sXG4gICAgfSxcbl07XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLm9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImF1dG9mb2N1cy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHN0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFNOUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ25ELHNCQUFzQixDQUN6QixDQUFDO0FBRUYsc0NBQXNDO0FBQ3RDLE1BQU0sVUFBVSwwQkFBMEIsQ0FDdEMscUJBQXlELEVBQ3pELFVBQW1DLEVBQ25DLGVBQW1DLEVBQ25DLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxTQUFpQjtJQUVqQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDckIsQ0FBQyxDQUFDLElBQUksc0JBQXNCLENBQ3RCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLENBQ1o7UUFDSCxDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FDMUIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixlQUFlLENBQ2xCLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkM7UUFDSSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLG9DQUFvQztRQUNwQyxVQUFVLEVBQUUsMEJBQTBCO1FBQ3RDLElBQUksRUFBRTtZQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLDJCQUEyQixDQUFDO1lBQ3pELFVBQVU7WUFDVixlQUFlO1lBQ2YsU0FBUztZQUNULE1BQU07WUFDTixNQUFNO1NBQ1Q7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsIFRVSV9JU19JT1N9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpRGVmYXVsdEF1dG9mb2N1c0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvZGVmYXVsdC5oYW5kbGVyJztcbmltcG9ydCB7VHVpSW9zQXV0b2ZvY3VzSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9pb3MuaGFuZGxlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgc2V0Rm9jdXMoKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9BVVRPRk9DVVNfSEFORExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUdWlBdXRvZm9jdXNIYW5kbGVyPihcbiAgICAnQXV0b2ZvY3VzaW5nIGhhbmRsZXInLFxuKTtcblxuLy8gVE9ETzogMy4wIHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBmdW5jdGlvbiB0dWlBdXRvZm9jdXNIYW5kbGVyRmFjdG9yeShcbiAgICB0dWlGb2N1c2FibGVDb21wb25lbnQ6IFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB8IG51bGwsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICB3aW5kb3dSZWY6IFdpbmRvdyxcbik6IFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIHJldHVybiBpbmplY3QoVFVJX0lTX0lPUylcbiAgICAgICAgPyBuZXcgVHVpSW9zQXV0b2ZvY3VzSGFuZGxlcihcbiAgICAgICAgICAgICAgdHVpRm9jdXNhYmxlQ29tcG9uZW50LFxuICAgICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgICByZW5kZXJlcixcbiAgICAgICAgICAgICAgbmdab25lLFxuICAgICAgICAgICAgICB3aW5kb3dSZWYsXG4gICAgICAgICAgKVxuICAgICAgICA6IG5ldyBUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcihcbiAgICAgICAgICAgICAgdHVpRm9jdXNhYmxlQ29tcG9uZW50LFxuICAgICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgICBhbmltYXRpb25GcmFtZSQsXG4gICAgICAgICAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9BVVRPRk9DVVNfUFJPVklERVJTID0gW1xuICAgIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0FVVE9GT0NVU19IQU5ETEVSLFxuICAgICAgICAvLyBUT0RPOiByZXBsYWNlIHRvIHVzZUNsYXNzIGluIHYzLjBcbiAgICAgICAgdXNlRmFjdG9yeTogdHVpQXV0b2ZvY3VzSGFuZGxlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtcbiAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SXSxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBBTklNQVRJT05fRlJBTUUsXG4gICAgICAgICAgICBSZW5kZXJlcjIsXG4gICAgICAgICAgICBOZ1pvbmUsXG4gICAgICAgICAgICBXSU5ET1csXG4gICAgICAgIF0sXG4gICAgfSxcbl07XG4iXX0=
@@ -1,12 +1,17 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { Directive, ElementRef, Inject, NgZone, Optional, Renderer2, Self, } from '@angular/core';
3
+ import { WINDOW } from '@ng-web-apis/common';
3
4
  import { TUI_FOCUSABLE_ITEM_ACCESSOR } from '@taiga-ui/cdk/tokens';
5
+ import { px } from '@taiga-ui/cdk/utils';
4
6
  import { AbstractTuiAutofocusHandler } from './abstract.handler';
7
+ // @dynamic
5
8
  let TuiIosAutofocusHandler = class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {
6
- constructor(tuiFocusableComponent, elementRef, renderer, ngZone) {
9
+ constructor(tuiFocusableComponent, elementRef, renderer, ngZone, windowRef) {
7
10
  super(tuiFocusableComponent, elementRef);
8
11
  this.renderer = renderer;
9
12
  this.ngZone = ngZone;
13
+ this.windowRef = windowRef;
14
+ this.patchCssStyles();
10
15
  }
11
16
  setFocus() {
12
17
  if (this.isTextFieldElement) {
@@ -18,44 +23,89 @@ let TuiIosAutofocusHandler = class TuiIosAutofocusHandler extends AbstractTuiAut
18
23
  }
19
24
  iosWebkitAutofocus() {
20
25
  var _a;
21
- const fakeInput = this.renderer.createElement('input');
22
- fakeInput.style.position = 'absolute';
23
- fakeInput.style.opacity = '0';
24
- fakeInput.style.height = '0';
25
- const blurHandler = () => fakeInput.focus();
26
+ const fakeInput = this.makeFakeInput();
27
+ const duration = this.getDurationTimeBeforeFocus();
28
+ let fakeFocusTimeoutId = 0;
29
+ let elementFocusTimeoutId = 0;
30
+ const blurHandler = () => fakeInput.focus({ preventScroll: true });
26
31
  const focusHandler = () => {
27
- setTimeout(() => {
28
- this.element.focus();
29
- /**
30
- * @note:
31
- * We can't remove the element immediately, because it breaks flow
32
- */
33
- setTimeout(() => {
34
- fakeInput.removeEventListener('blur', blurHandler);
35
- fakeInput.removeEventListener('focus', focusHandler);
32
+ clearTimeout(fakeFocusTimeoutId);
33
+ fakeFocusTimeoutId = this.windowRef.setTimeout(() => {
34
+ clearTimeout(elementFocusTimeoutId);
35
+ fakeInput.removeEventListener('blur', blurHandler);
36
+ fakeInput.removeEventListener('focus', focusHandler);
37
+ elementFocusTimeoutId = this.windowRef.setTimeout(() => {
38
+ this.element.focus({ preventScroll: false });
36
39
  fakeInput.remove();
37
- });
40
+ }, duration);
38
41
  });
39
42
  };
40
- /**
41
- * @note: ping-pong eager strategy hack
42
- * After creating an element and bringing it into DOM,
43
- * the browser automatically focuses on the invisible element.
44
- * And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,
45
- * then we try to focus again on an invisible element, so that the keyboard slowly appears.
46
- * This ping pong allows the keyboard to not overlap the modal window.
47
- */
48
43
  fakeInput.addEventListener('blur', blurHandler, { once: true });
49
44
  fakeInput.addEventListener('focus', focusHandler);
50
- (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(fakeInput);
51
- fakeInput.focus();
45
+ if (this.insideDialog()) {
46
+ this.windowRef.document.body.appendChild(fakeInput);
47
+ }
48
+ else {
49
+ (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(fakeInput);
50
+ }
51
+ fakeInput.focus({ preventScroll: true });
52
+ }
53
+ /**
54
+ * @note:
55
+ * emulate textfield position in layout with cursor
56
+ * before focus to real textfield element
57
+ */
58
+ makeFakeInput() {
59
+ const fakeInput = this.renderer.createElement('input');
60
+ const rect = this.element.getBoundingClientRect();
61
+ fakeInput.style.height = px(rect.height);
62
+ fakeInput.style.width = px(rect.width / 2);
63
+ fakeInput.style.position = 'fixed';
64
+ fakeInput.style.opacity = '0';
65
+ fakeInput.style.fontSize = px(16); // disable possible auto zoom
66
+ fakeInput.readOnly = true; // prevent keyboard for fake input
67
+ // @note: emulate position cursor before focus to real textfield element
68
+ fakeInput.style.top = px(rect.top);
69
+ fakeInput.style.left = px(rect.left);
70
+ return fakeInput;
71
+ }
72
+ getDurationTimeBeforeFocus() {
73
+ return (parseFloat(this.windowRef
74
+ .getComputedStyle(this.element)
75
+ .getPropertyValue('--tui-duration')) || 0);
76
+ }
77
+ /**
78
+ * @note:
79
+ * unfortunately, in older versions of iOS
80
+ * there is a bug that the fake input cursor
81
+ * will move along with the dialog animation
82
+ * and then that dialog will be shaking
83
+ */
84
+ insideDialog() {
85
+ return !!this.element.closest('tui-dialog');
86
+ }
87
+ /**
88
+ * @note:
89
+ * This is necessary so that the viewport isn't recalculated
90
+ * and then the dialogs don't shake.
91
+ *
92
+ * Also, we need to fixed height viewport,
93
+ * so that when focusing the dialogs don't shake
94
+ */
95
+ patchCssStyles() {
96
+ const documentRef = this.windowRef.document;
97
+ for (const element of [documentRef.documentElement, documentRef.body]) {
98
+ element.style.setProperty('overflow', 'auto');
99
+ element.style.setProperty('height', '100%');
100
+ }
52
101
  }
53
102
  };
54
103
  TuiIosAutofocusHandler.ctorParameters = () => [
55
104
  { type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
56
105
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
57
106
  { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
58
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }
107
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
108
+ { type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] }
59
109
  ];
60
110
  TuiIosAutofocusHandler = __decorate([
61
111
  Directive(),
@@ -64,7 +114,8 @@ TuiIosAutofocusHandler = __decorate([
64
114
  __param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
65
115
  __param(1, Inject(ElementRef)),
66
116
  __param(2, Inject(Renderer2)),
67
- __param(3, Inject(NgZone))
117
+ __param(3, Inject(NgZone)),
118
+ __param(4, Inject(WINDOW))
68
119
  ], TuiIosAutofocusHandler);
69
120
  export { TuiIosAutofocusHandler };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9zLmhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImhhbmRsZXJzL2lvcy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRy9ELElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXVCLFNBQVEsMkJBQTJCO0lBQ25FLFlBSUkscUJBQXlELEVBQ3JDLFVBQW1DLEVBRXRDLFFBQW1CLEVBRW5CLE1BQWM7UUFFL0IsS0FBSyxDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBSnhCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUduQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFTyxrQkFBa0I7O1FBQ3RCLE1BQU0sU0FBUyxHQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRSxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDdEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUU3QixNQUFNLFdBQVcsR0FBRyxHQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEQsTUFBTSxZQUFZLEdBQUcsR0FBUyxFQUFFO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFFckI7OzttQkFHRztnQkFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ25ELFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQ3JELFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGOzs7Ozs7O1dBT0c7UUFDSCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzlELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFbEQsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsMENBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRTtRQUVuRCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNKLENBQUE7OzRDQTVEUSxRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQywyQkFBMkI7WUFFSCxVQUFVLHVCQUF6QyxNQUFNLFNBQUMsVUFBVTtZQUVTLFNBQVMsdUJBRG5DLE1BQU0sU0FBQyxTQUFTO1lBR1EsTUFBTSx1QkFEOUIsTUFBTSxTQUFDLE1BQU07O0FBVFQsc0JBQXNCO0lBRGxDLFNBQVMsRUFBRTtJQUdILFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUVuQyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVqQixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtHQVRWLHNCQUFzQixDQThEbEM7U0E5RFksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1J9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcblxuaW1wb3J0IHtBYnN0cmFjdFR1aUF1dG9mb2N1c0hhbmRsZXJ9IGZyb20gJy4vYWJzdHJhY3QuaGFuZGxlcic7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFR1aUlvc0F1dG9mb2N1c0hhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SKVxuICAgICAgICB0dWlGb2N1c2FibGVDb21wb25lbnQ6IFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoUmVuZGVyZXIyKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTmdab25lKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICkge1xuICAgICAgICBzdXBlcih0dWlGb2N1c2FibGVDb21wb25lbnQsIGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIHNldEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1RleHRGaWVsZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuaW9zV2Via2l0QXV0b2ZvY3VzKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlvc1dlYmtpdEF1dG9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmFrZUlucHV0OiBIVE1MRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcblxuICAgICAgICBmYWtlSW5wdXQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmhlaWdodCA9ICcwJztcblxuICAgICAgICBjb25zdCBibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IGZha2VJbnB1dC5mb2N1cygpO1xuICAgICAgICBjb25zdCBmb2N1c0hhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEBub3RlOlxuICAgICAgICAgICAgICAgICAqIFdlIGNhbid0IHJlbW92ZSB0aGUgZWxlbWVudCBpbW1lZGlhdGVseSwgYmVjYXVzZSBpdCBicmVha3MgZmxvd1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIGJsdXJIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZm9jdXNIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBub3RlOiBwaW5nLXBvbmcgZWFnZXIgc3RyYXRlZ3kgaGFja1xuICAgICAgICAgKiBBZnRlciBjcmVhdGluZyBhbiBlbGVtZW50IGFuZCBicmluZ2luZyBpdCBpbnRvIERPTSxcbiAgICAgICAgICogdGhlIGJyb3dzZXIgYXV0b21hdGljYWxseSBmb2N1c2VzIG9uIHRoZSBpbnZpc2libGUgZWxlbWVudC5cbiAgICAgICAgICogQW5kIHRoZW4sIGFmdGVyIGZvY3VzIGlzIHRyaWdnZXJlZCwgd2UgdHJ5IHRvIGZvY3VzIG9uIHRhcmdldCBlbGVtZW50LCBhbmQgaWYgd2UgbWFuYWdlZCB0byByZWZvY3VzLFxuICAgICAgICAgKiB0aGVuIHdlIHRyeSB0byBmb2N1cyBhZ2FpbiBvbiBhbiBpbnZpc2libGUgZWxlbWVudCwgc28gdGhhdCB0aGUga2V5Ym9hcmQgc2xvd2x5IGFwcGVhcnMuXG4gICAgICAgICAqIFRoaXMgcGluZyBwb25nIGFsbG93cyB0aGUga2V5Ym9hcmQgdG8gbm90IG92ZXJsYXAgdGhlIG1vZGFsIHdpbmRvdy5cbiAgICAgICAgICovXG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgYmx1ckhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7XG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZvY3VzSGFuZGxlcik7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQ/LmFwcGVuZENoaWxkKGZha2VJbnB1dCk7XG5cbiAgICAgICAgZmFrZUlucHV0LmZvY3VzKCk7XG4gICAgfVxufVxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9zLmhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImhhbmRsZXJzL2lvcy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdkMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFL0QsV0FBVztBQUVYLElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXVCLFNBQVEsMkJBQTJCO0lBQ25FLFlBSUkscUJBQXlELEVBQ3JDLFVBQW1DLEVBQ25CLFFBQW1CLEVBQ3RCLE1BQWMsRUFDZCxTQUFpQjtRQUVsRCxLQUFLLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFKTCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBR2xELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJ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LENBQUMsQ0FBQTtJQUVuQyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNqQixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0dBVFYsc0JBQXNCLENBc0hsQztTQXRIWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtweH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2Fic3RyYWN0LmhhbmRsZXInO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgVHVpSW9zQXV0b2ZvY3VzSGFuZGxlciBleHRlbmRzIEFic3RyYWN0VHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IpXG4gICAgICAgIHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICkge1xuICAgICAgICBzdXBlcih0dWlGb2N1c2FibGVDb21wb25lbnQsIGVsZW1lbnRSZWYpO1xuICAgICAgICB0aGlzLnBhdGNoQ3NzU3R5bGVzKCk7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzVGV4dEZpZWxkRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5pb3NXZWJraXRBdXRvZm9jdXMoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW9zV2Via2l0QXV0b2ZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmYWtlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLm1ha2VGYWtlSW5wdXQoKTtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmdldER1cmF0aW9uVGltZUJlZm9yZUZvY3VzKCk7XG4gICAgICAgIGxldCBmYWtlRm9jdXNUaW1lb3V0SWQgPSAwO1xuICAgICAgICBsZXQgZWxlbWVudEZvY3VzVGltZW91dElkID0gMDtcblxuICAgICAgICBjb25zdCBibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IGZha2VJbnB1dC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICBjb25zdCBmb2N1c0hhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZmFrZUZvY3VzVGltZW91dElkKTtcblxuICAgICAgICAgICAgZmFrZUZvY3VzVGltZW91dElkID0gdGhpcy53aW5kb3dSZWYuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGVsZW1lbnRGb2N1c1RpbWVvdXRJZCk7XG5cbiAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIGJsdXJIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBmb2N1c0hhbmRsZXIpO1xuXG4gICAgICAgICAgICAgICAgZWxlbWVudEZvY3VzVGltZW91dElkID0gdGhpcy53aW5kb3dSZWYuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH0sIGR1cmF0aW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgYmx1ckhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7XG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZvY3VzSGFuZGxlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5zaWRlRGlhbG9nKCkpIHtcbiAgICAgICAgICAgIHRoaXMud2luZG93UmVmLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmFrZUlucHV0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50Py5hcHBlbmRDaGlsZChmYWtlSW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZmFrZUlucHV0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG5vdGU6XG4gICAgICogZW11bGF0ZSB0ZXh0ZmllbGQgcG9zaXRpb24gaW4gbGF5b3V0IHdpdGggY3Vyc29yXG4gICAgICogYmVmb3JlIGZvY3VzIHRvIHJlYWwgdGV4dGZpZWxkIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIG1ha2VGYWtlSW5wdXQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGZha2VJbnB1dDogSFRNTElucHV0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgY29uc3QgcmVjdDogRE9NUmVjdCA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmYWtlSW5wdXQuc3R5bGUuaGVpZ2h0ID0gcHgocmVjdC5oZWlnaHQpO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUud2lkdGggPSBweChyZWN0LndpZHRoIC8gMik7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUuZm9udFNpemUgPSBweCgxNik7IC8vIGRpc2FibGUgcG9zc2libGUgYXV0byB6b29tXG4gICAgICAgIGZha2VJbnB1dC5yZWFkT25seSA9IHRydWU7IC8vIHByZXZlbnQga2V5Ym9hcmQgZm9yIGZha2UgaW5wdXRcblxuICAgICAgICAvLyBAbm90ZTogZW11bGF0ZSBwb3NpdGlvbiBjdXJzb3IgYmVmb3JlIGZvY3VzIHRvIHJlYWwgdGV4dGZpZWxkIGVsZW1lbnRcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLnRvcCA9IHB4KHJlY3QudG9wKTtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmxlZnQgPSBweChyZWN0LmxlZnQpO1xuXG4gICAgICAgIHJldHVybiBmYWtlSW5wdXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREdXJhdGlvblRpbWVCZWZvcmVGb2N1cygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcGFyc2VGbG9hdChcbiAgICAgICAgICAgICAgICB0aGlzLndpbmRvd1JlZlxuICAgICAgICAgICAgICAgICAgICAuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKCctLXR1aS1kdXJhdGlvbicpLFxuICAgICAgICAgICAgKSB8fCAwXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG5vdGU6XG4gICAgICogdW5mb3J0dW5hdGVseSwgaW4gb2xkZXIgdmVyc2lvbnMgb2YgaU9TXG4gICAgICogdGhlcmUgaXMgYSBidWcgdGhhdCB0aGUgZmFrZSBpbnB1dCBjdXJzb3JcbiAgICAgKiB3aWxsIG1vdmUgYWxvbmcgd2l0aCB0aGUgZGlhbG9nIGFuaW1hdGlvblxuICAgICAqIGFuZCB0aGVuIHRoYXQgZGlhbG9nIHdpbGwgYmUgc2hha2luZ1xuICAgICAqL1xuICAgIHByaXZhdGUgaW5zaWRlRGlhbG9nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmVsZW1lbnQuY2xvc2VzdCgndHVpLWRpYWxvZycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBub3RlOlxuICAgICAqIFRoaXMgaXMgbmVjZXNzYXJ5IHNvIHRoYXQgdGhlIHZpZXdwb3J0IGlzbid0IHJlY2FsY3VsYXRlZFxuICAgICAqIGFuZCB0aGVuIHRoZSBkaWFsb2dzIGRvbid0IHNoYWtlLlxuICAgICAqXG4gICAgICogQWxzbywgd2UgbmVlZCB0byBmaXhlZCBoZWlnaHQgdmlld3BvcnQsXG4gICAgICogc28gdGhhdCB3aGVuIGZvY3VzaW5nIHRoZSBkaWFsb2dzIGRvbid0IHNoYWtlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYXRjaENzc1N0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRSZWYgPSB0aGlzLndpbmRvd1JlZi5kb2N1bWVudDtcblxuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgW2RvY3VtZW50UmVmLmRvY3VtZW50RWxlbWVudCwgZG9jdW1lbnRSZWYuYm9keV0pIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93JywgJ2F1dG8nKTtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsICcxMDAlJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,10 +1,21 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
1
2
  export var TuiCreditCardAutofillName;
2
3
  (function (TuiCreditCardAutofillName) {
3
4
  TuiCreditCardAutofillName["Off"] = "off";
4
5
  TuiCreditCardAutofillName["CcName"] = "cc-name";
5
6
  TuiCreditCardAutofillName["CcNumber"] = "cc-number";
6
7
  TuiCreditCardAutofillName["CcCsc"] = "cc-csc";
8
+ TuiCreditCardAutofillName["CcExpMonth"] = "cc-exp-month";
9
+ /**
10
+ * @deprecated
11
+ * TODO: 3.0 replace with {@link CcExpMonth}
12
+ */
7
13
  TuiCreditCardAutofillName["CcExp_mounth"] = "cc-exp-month";
14
+ TuiCreditCardAutofillName["CcExpYear"] = "cc-exp-year";
15
+ /**
16
+ * @deprecated
17
+ * TODO: 3.0 replace with {@link CcExpYear}
18
+ */
8
19
  TuiCreditCardAutofillName["CcExp_year"] = "cc-exp-year";
9
20
  TuiCreditCardAutofillName["CcExp"] = "cc-exp";
10
21
  TuiCreditCardAutofillName["CcType"] = "cc-type";
@@ -52,4 +63,4 @@ export var TuiTransactionAutofillName;
52
63
  TuiTransactionAutofillName["TransactionCurrency"] = "transaction-currency";
53
64
  TuiTransactionAutofillName["TransactionAmount"] = "transaction-amount";
54
65
  })(TuiTransactionAutofillName || (TuiTransactionAutofillName = {}));
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9lbnVtcy8iLCJzb3VyY2VzIjpbImF1dG9jb21wbGV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBa0IseUJBU2pCO0FBVEQsV0FBa0IseUJBQXlCO0lBQ3ZDLHdDQUFXLENBQUE7SUFDWCwrQ0FBa0IsQ0FBQTtJQUNsQixtREFBc0IsQ0FBQTtJQUN0Qiw2Q0FBZ0IsQ0FBQTtJQUNoQiwwREFBNkIsQ0FBQTtJQUM3Qix1REFBMEIsQ0FBQTtJQUMxQiw2Q0FBZ0IsQ0FBQTtJQUNoQiwrQ0FBa0IsQ0FBQTtBQUN0QixDQUFDLEVBVGlCLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFTMUM7QUFFRCxNQUFNLENBQU4sSUFBa0IsbUJBTWpCO0FBTkQsV0FBa0IsbUJBQW1CO0lBQ2pDLGtDQUFXLENBQUE7SUFDWCxvQ0FBYSxDQUFBO0lBQ2IsK0NBQXdCLENBQUE7SUFDeEIseURBQWtDLENBQUE7SUFDbEMsaURBQTBCLENBQUE7QUFDOUIsQ0FBQyxFQU5pQixtQkFBbUIsS0FBbkIsbUJBQW1CLFFBTXBDO0FBRUQsTUFBTSxDQUFOLElBQWtCLHNCQUtqQjtBQUxELFdBQWtCLHNCQUFzQjtJQUNwQyxxQ0FBVyxDQUFBO0lBQ1gsK0NBQXFCLENBQUE7SUFDckIsc0RBQTRCLENBQUE7SUFDNUIsOERBQW9DLENBQUE7QUFDeEMsQ0FBQyxFQUxpQixzQkFBc0IsS0FBdEIsc0JBQXNCLFFBS3ZDO0FBRUQsTUFBTSxDQUFOLElBQWtCLG9CQUdqQjtBQUhELFdBQWtCLG9CQUFvQjtJQUNsQyxtQ0FBVyxDQUFBO0lBQ1gsdUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSGlCLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHckM7QUFFRCxNQUFNLENBQU4sSUFBa0Isc0JBS2pCO0FBTEQsV0FBa0Isc0JBQXNCO0lBQ3BDLHFDQUFXLENBQUE7SUFDWCwwREFBZ0MsQ0FBQTtJQUNoQyxvREFBMEIsQ0FBQTtJQUMxQixzREFBNEIsQ0FBQTtBQUNoQyxDQUFDLEVBTGlCLHNCQUFzQixLQUF0QixzQkFBc0IsUUFLdkM7QUFFRCxNQUFNLENBQU4sSUFBa0Isb0JBR2pCO0FBSEQsV0FBa0Isb0JBQW9CO0lBQ2xDLG1DQUFXLENBQUE7SUFDWCxtQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQUhpQixvQkFBb0IsS0FBcEIsb0JBQW9CLFFBR3JDO0FBRUQsTUFBTSxDQUFOLElBQWtCLG1CQUdqQjtBQUhELFdBQWtCLG1CQUFtQjtJQUNqQyxrQ0FBVyxDQUFBO0lBQ1gsb0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSGlCLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHcEM7QUFFRCxNQUFNLENBQU4sSUFBa0IsMEJBSWpCO0FBSkQsV0FBa0IsMEJBQTBCO0lBQ3hDLHlDQUFXLENBQUE7SUFDWCwwRUFBNEMsQ0FBQTtJQUM1QyxzRUFBd0MsQ0FBQTtBQUM1QyxDQUFDLEVBSmlCLDBCQUEwQixLQUExQiwwQkFBMEIsUUFJM0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lIHtcbiAgICBPZmYgPSAnb2ZmJyxcbiAgICBDY05hbWUgPSAnY2MtbmFtZScsXG4gICAgQ2NOdW1iZXIgPSAnY2MtbnVtYmVyJyxcbiAgICBDY0NzYyA9ICdjYy1jc2MnLFxuICAgIENjRXhwX21vdW50aCA9ICdjYy1leHAtbW9udGgnLFxuICAgIENjRXhwX3llYXIgPSAnY2MtZXhwLXllYXInLFxuICAgIENjRXhwID0gJ2NjLWV4cCcsXG4gICAgQ2NUeXBlID0gJ2NjLXR5cGUnLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBUdWlOYW1lQXV0b2ZpbGxOYW1lIHtcbiAgICBPZmYgPSAnb2ZmJyxcbiAgICBOYW1lID0gJ25hbWUnLFxuICAgIEdpdmVuTmFtZSA9ICdnaXZlbi1uYW1lJyxcbiAgICBBZGRpdGlvbmFsTmFtZSA9ICdhZGRpdGlvbmFsLW5hbWUnLFxuICAgIEZhbWlseU5hbWUgPSAnZmFtaWx5LW5hbWUnLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBUdWlBY2NvdW50QXV0b2ZpbGxOYW1lIHtcbiAgICBPZmYgPSAnb2ZmJyxcbiAgICBVc2VybmFtZSA9ICd1c2VybmFtZScsXG4gICAgTmV3UGFzc3dvcmQgPSAnbmV3LXBhc3N3b3JkJyxcbiAgICBDdXJyZW50UGFzc3dvcmQgPSAnY3VycmVudC1wYXNzd29yZCcsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFR1aUVtYWlsQXV0b2ZpbGxOYW1lIHtcbiAgICBPZmYgPSAnb2ZmJyxcbiAgICBFbWFpbCA9ICdlbWFpbCcsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFR1aUFkZHJlc3NBdXRvZmlsbE5hbWUge1xuICAgIE9mZiA9ICdvZmYnLFxuICAgIFN0cmVldEFkZHJlc3MgPSAnc3RyZWV0LWFkZHJlc3MnLFxuICAgIFBvc3RhbENvZGUgPSAncG9zdGFsLWNvZGUnLFxuICAgIENvdW50cnlOYW1lID0gJ2NvdW50cnktbmFtZScsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFR1aVBob25lQXV0b2ZpbGxOYW1lIHtcbiAgICBPZmYgPSAnb2ZmJyxcbiAgICBUZWwgPSAndGVsJyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gVHVpRGF0ZUF1dG9maWxsTmFtZSB7XG4gICAgT2ZmID0gJ29mZicsXG4gICAgQmRheSA9ICdiZGF5Jyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gVHVpVHJhbnNhY3Rpb25BdXRvZmlsbE5hbWUge1xuICAgIE9mZiA9ICdvZmYnLFxuICAgIFRyYW5zYWN0aW9uQ3VycmVuY3kgPSAndHJhbnNhY3Rpb24tY3VycmVuY3knLFxuICAgIFRyYW5zYWN0aW9uQW1vdW50ID0gJ3RyYW5zYWN0aW9uLWFtb3VudCcsXG59XG5cbmV4cG9ydCB0eXBlIFR1aUF1dG9maWxsRmllbGROYW1lVCA9XG4gICAgfCAnb2ZmJ1xuICAgIC8vIFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWVcbiAgICB8ICdjYy1uYW1lJ1xuICAgIHwgJ2NjLW51bWJlcidcbiAgICB8ICdjYy1jc2MnXG4gICAgfCAnY2MtZXhwLW1vbnRoJ1xuICAgIHwgJ2NjLWV4cC15ZWFyJ1xuICAgIHwgJ2NjLWV4cCdcbiAgICB8ICdjYy10eXBlJ1xuICAgIC8vIFR1aU5hbWVBdXRvZmlsbE5hbWVcbiAgICB8ICduYW1lJ1xuICAgIHwgJ2dpdmVuLW5hbWUnXG4gICAgfCAnYWRkaXRpb25hbC1uYW1lJ1xuICAgIHwgJ2ZhbWlseS1uYW1lJ1xuICAgIC8vIFR1aUFjY291bnRBdXRvZmlsbE5hbWVcbiAgICB8ICd1c2VybmFtZSdcbiAgICB8ICduZXctcGFzc3dvcmQnXG4gICAgfCAnY3VycmVudC1wYXNzd29yZCdcbiAgICAvLyBUdWlFbWFpbEF1dG9maWxsTmFtZVxuICAgIHwgJ2VtYWlsJ1xuICAgIC8vIFR1aUFkZHJlc3NBdXRvZmlsbE5hbWVcbiAgICB8ICdzdHJlZXQtYWRkcmVzcydcbiAgICB8ICdwb3N0YWwtY29kZSdcbiAgICB8ICdjb3VudHJ5LW5hbWUnXG4gICAgLy8gVHVpUGhvbmVBdXRvZmlsbE5hbWVcbiAgICB8ICd0ZWwnXG4gICAgLy8gVHVpRGF0ZUF1dG9maWxsTmFtZVxuICAgIHwgJ2JkYXknXG4gICAgLy8gVHVpVHJhbnNhY3Rpb25BdXRvZmlsbE5hbWVcbiAgICB8ICd0cmFuc2FjdGlvbi1jdXJyZW5jeSdcbiAgICB8ICd0cmFuc2FjdGlvbi1hbW91bnQnO1xuXG5leHBvcnQgdHlwZSBUdWlBdXRvZmlsbEZpZWxkTmFtZSA9XG4gICAgfCBUdWlBdXRvZmlsbEZpZWxkTmFtZVRcbiAgICB8IFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWVcbiAgICB8IFR1aU5hbWVBdXRvZmlsbE5hbWVcbiAgICB8IFR1aUFjY291bnRBdXRvZmlsbE5hbWVcbiAgICB8IFR1aUVtYWlsQXV0b2ZpbGxOYW1lXG4gICAgfCBUdWlBZGRyZXNzQXV0b2ZpbGxOYW1lXG4gICAgfCBUdWlQaG9uZUF1dG9maWxsTmFtZVxuICAgIHwgVHVpRGF0ZUF1dG9maWxsTmFtZVxuICAgIHwgVHVpVHJhbnNhY3Rpb25BdXRvZmlsbE5hbWU7XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9lbnVtcy8iLCJzb3VyY2VzIjpbImF1dG9jb21wbGV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsTUFBTSxDQUFOLElBQWtCLHlCQW1CakI7QUFuQkQsV0FBa0IseUJBQXlCO0lBQ3ZDLHdDQUFXLENBQUE7SUFDWCwrQ0FBa0IsQ0FBQTtJQUNsQixtREFBc0IsQ0FBQTtJQUN0Qiw2Q0FBZ0IsQ0FBQTtJQUNoQix3REFBMkIsQ0FBQTtJQUMzQjs7O09BR0c7SUFDSCwwREFBNkIsQ0FBQTtJQUM3QixzREFBeUIsQ0FBQTtJQUN6Qjs7O09BR0c7SUFDSCx1REFBMEIsQ0FBQTtJQUMxQiw2Q0FBZ0IsQ0FBQTtJQUNoQiwrQ0FBa0IsQ0FBQTtBQUN0QixDQUFDLEVBbkJpQix5QkFBeUIsS0FBekIseUJBQXlCLFFBbUIxQztBQUVELE1BQU0sQ0FBTixJQUFrQixtQkFNakI7QUFORCxXQUFrQixtQkFBbUI7SUFDakMsa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYiwrQ0FBd0IsQ0FBQTtJQUN4Qix5REFBa0MsQ0FBQTtJQUNsQyxpREFBMEIsQ0FBQTtBQUM5QixDQUFDLEVBTmlCLG1CQUFtQixLQUFuQixtQkFBbUIsUUFNcEM7QUFFRCxNQUFNLENBQU4sSUFBa0Isc0JBS2pCO0FBTEQsV0FBa0Isc0JBQXNCO0lBQ3BDLHFDQUFXLENBQUE7SUFDWCwrQ0FBcUIsQ0FBQTtJQUNyQixzREFBNEIsQ0FBQTtJQUM1Qiw4REFBb0MsQ0FBQTtBQUN4QyxDQUFDLEVBTGlCLHNCQUFzQixLQUF0QixzQkFBc0IsUUFLdkM7QUFFRCxNQUFNLENBQU4sSUFBa0Isb0JBR2pCO0FBSEQsV0FBa0Isb0JBQW9CO0lBQ2xDLG1DQUFXLENBQUE7SUFDWCx1Q0FBZSxDQUFBO0FBQ25CLENBQUMsRUFIaUIsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUdyQztBQUVELE1BQU0sQ0FBTixJQUFrQixzQkFLakI7QUFMRCxXQUFrQixzQkFBc0I7SUFDcEMscUNBQVcsQ0FBQTtJQUNYLDBEQUFnQyxDQUFBO0lBQ2hDLG9EQUEwQixDQUFBO0lBQzFCLHNEQUE0QixDQUFBO0FBQ2hDLENBQUMsRUFMaUIsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUt2QztBQUVELE1BQU0sQ0FBTixJQUFrQixvQkFHakI7QUFIRCxXQUFrQixvQkFBb0I7SUFDbEMsbUNBQVcsQ0FBQTtJQUNYLG1DQUFXLENBQUE7QUFDZixDQUFDLEVBSGlCLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHckM7QUFFRCxNQUFNLENBQU4sSUFBa0IsbUJBR2pCO0FBSEQsV0FBa0IsbUJBQW1CO0lBQ2pDLGtDQUFXLENBQUE7SUFDWCxvQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFIaUIsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUdwQztBQUVELE1BQU0sQ0FBTixJQUFrQiwwQkFJakI7QUFKRCxXQUFrQiwwQkFBMEI7SUFDeEMseUNBQVcsQ0FBQTtJQUNYLDBFQUE0QyxDQUFBO0lBQzVDLHNFQUF3QyxDQUFBO0FBQzVDLENBQUMsRUFKaUIsMEJBQTBCLEtBQTFCLDBCQUEwQixRQUkzQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSB7XG4gICAgT2ZmID0gJ29mZicsXG4gICAgQ2NOYW1lID0gJ2NjLW5hbWUnLFxuICAgIENjTnVtYmVyID0gJ2NjLW51bWJlcicsXG4gICAgQ2NDc2MgPSAnY2MtY3NjJyxcbiAgICBDY0V4cE1vbnRoID0gJ2NjLWV4cC1tb250aCcsXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBUT0RPOiAzLjAgcmVwbGFjZSB3aXRoIHtAbGluayBDY0V4cE1vbnRofVxuICAgICAqL1xuICAgIENjRXhwX21vdW50aCA9ICdjYy1leHAtbW9udGgnLFxuICAgIENjRXhwWWVhciA9ICdjYy1leHAteWVhcicsXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBUT0RPOiAzLjAgcmVwbGFjZSB3aXRoIHtAbGluayBDY0V4cFllYXJ9XG4gICAgICovXG4gICAgQ2NFeHBfeWVhciA9ICdjYy1leHAteWVhcicsXG4gICAgQ2NFeHAgPSAnY2MtZXhwJyxcbiAgICBDY1R5cGUgPSAnY2MtdHlwZScsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFR1aU5hbWVBdXRvZmlsbE5hbWUge1xuICAgIE9mZiA9ICdvZmYnLFxuICAgIE5hbWUgPSAnbmFtZScsXG4gICAgR2l2ZW5OYW1lID0gJ2dpdmVuLW5hbWUnLFxuICAgIEFkZGl0aW9uYWxOYW1lID0gJ2FkZGl0aW9uYWwtbmFtZScsXG4gICAgRmFtaWx5TmFtZSA9ICdmYW1pbHktbmFtZScsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFR1aUFjY291bnRBdXRvZmlsbE5hbWUge1xuICAgIE9mZiA9ICdvZmYnLFxuICAgIFVzZXJuYW1lID0gJ3VzZXJuYW1lJyxcbiAgICBOZXdQYXNzd29yZCA9ICduZXctcGFzc3dvcmQnLFxuICAgIEN1cnJlbnRQYXNzd29yZCA9ICdjdXJyZW50LXBhc3N3b3JkJyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gVHVpRW1haWxBdXRvZmlsbE5hbWUge1xuICAgIE9mZiA9ICdvZmYnLFxuICAgIEVtYWlsID0gJ2VtYWlsJyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gVHVpQWRkcmVzc0F1dG9maWxsTmFtZSB7XG4gICAgT2ZmID0gJ29mZicsXG4gICAgU3RyZWV0QWRkcmVzcyA9ICdzdHJlZXQtYWRkcmVzcycsXG4gICAgUG9zdGFsQ29kZSA9ICdwb3N0YWwtY29kZScsXG4gICAgQ291bnRyeU5hbWUgPSAnY291bnRyeS1uYW1lJyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gVHVpUGhvbmVBdXRvZmlsbE5hbWUge1xuICAgIE9mZiA9ICdvZmYnLFxuICAgIFRlbCA9ICd0ZWwnLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBUdWlEYXRlQXV0b2ZpbGxOYW1lIHtcbiAgICBPZmYgPSAnb2ZmJyxcbiAgICBCZGF5ID0gJ2JkYXknLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBUdWlUcmFuc2FjdGlvbkF1dG9maWxsTmFtZSB7XG4gICAgT2ZmID0gJ29mZicsXG4gICAgVHJhbnNhY3Rpb25DdXJyZW5jeSA9ICd0cmFuc2FjdGlvbi1jdXJyZW5jeScsXG4gICAgVHJhbnNhY3Rpb25BbW91bnQgPSAndHJhbnNhY3Rpb24tYW1vdW50Jyxcbn1cblxuZXhwb3J0IHR5cGUgVHVpQXV0b2ZpbGxGaWVsZE5hbWVUID1cbiAgICB8ICdvZmYnXG4gICAgLy8gVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZVxuICAgIHwgJ2NjLW5hbWUnXG4gICAgfCAnY2MtbnVtYmVyJ1xuICAgIHwgJ2NjLWNzYydcbiAgICB8ICdjYy1leHAtbW9udGgnXG4gICAgfCAnY2MtZXhwLXllYXInXG4gICAgfCAnY2MtZXhwJ1xuICAgIHwgJ2NjLXR5cGUnXG4gICAgLy8gVHVpTmFtZUF1dG9maWxsTmFtZVxuICAgIHwgJ25hbWUnXG4gICAgfCAnZ2l2ZW4tbmFtZSdcbiAgICB8ICdhZGRpdGlvbmFsLW5hbWUnXG4gICAgfCAnZmFtaWx5LW5hbWUnXG4gICAgLy8gVHVpQWNjb3VudEF1dG9maWxsTmFtZVxuICAgIHwgJ3VzZXJuYW1lJ1xuICAgIHwgJ25ldy1wYXNzd29yZCdcbiAgICB8ICdjdXJyZW50LXBhc3N3b3JkJ1xuICAgIC8vIFR1aUVtYWlsQXV0b2ZpbGxOYW1lXG4gICAgfCAnZW1haWwnXG4gICAgLy8gVHVpQWRkcmVzc0F1dG9maWxsTmFtZVxuICAgIHwgJ3N0cmVldC1hZGRyZXNzJ1xuICAgIHwgJ3Bvc3RhbC1jb2RlJ1xuICAgIHwgJ2NvdW50cnktbmFtZSdcbiAgICAvLyBUdWlQaG9uZUF1dG9maWxsTmFtZVxuICAgIHwgJ3RlbCdcbiAgICAvLyBUdWlEYXRlQXV0b2ZpbGxOYW1lXG4gICAgfCAnYmRheSdcbiAgICAvLyBUdWlUcmFuc2FjdGlvbkF1dG9maWxsTmFtZVxuICAgIHwgJ3RyYW5zYWN0aW9uLWN1cnJlbmN5J1xuICAgIHwgJ3RyYW5zYWN0aW9uLWFtb3VudCc7XG5cbmV4cG9ydCB0eXBlIFR1aUF1dG9maWxsRmllbGROYW1lID1cbiAgICB8IFR1aUF1dG9maWxsRmllbGROYW1lVFxuICAgIHwgVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZVxuICAgIHwgVHVpTmFtZUF1dG9maWxsTmFtZVxuICAgIHwgVHVpQWNjb3VudEF1dG9maWxsTmFtZVxuICAgIHwgVHVpRW1haWxBdXRvZmlsbE5hbWVcbiAgICB8IFR1aUFkZHJlc3NBdXRvZmlsbE5hbWVcbiAgICB8IFR1aVBob25lQXV0b2ZpbGxOYW1lXG4gICAgfCBUdWlEYXRlQXV0b2ZpbGxOYW1lXG4gICAgfCBUdWlUcmFuc2FjdGlvbkF1dG9maWxsTmFtZTtcbiJdfQ==