@taiga-ui/cdk 2.20.0 → 2.24.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 (204) hide show
  1. package/README.md +7 -3
  2. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  3. package/abstract/theme-switcher.d.ts +2 -1
  4. package/bundles/taiga-ui-cdk-abstract.umd.js +29 -15
  5. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
  9. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
  10. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +1 -1
  11. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -1
  12. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +13 -31
  13. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  14. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +2 -2
  15. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-directives-pan.umd.js +266 -0
  17. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -0
  18. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +16 -0
  19. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -0
  20. package/bundles/taiga-ui-cdk-directives-swipe.umd.js +266 -0
  21. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -0
  22. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +16 -0
  23. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -0
  24. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +269 -0
  25. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -0
  26. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +16 -0
  27. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -0
  28. package/bundles/taiga-ui-cdk-directives.umd.js +28 -4
  29. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  31. package/bundles/taiga-ui-cdk-services.umd.js +154 -5
  32. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-services.umd.min.js +2 -2
  34. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-tokens.umd.js +16 -4
  36. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  38. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-utils-dom.umd.js +1 -3
  40. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +17 -0
  43. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  44. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
  45. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  46. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  47. package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
  48. package/directives/autofilled/autofilled.directive.d.ts +4 -5
  49. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
  50. package/directives/index.d.ts +3 -0
  51. package/directives/pan/index.d.ts +2 -0
  52. package/directives/pan/package.json +13 -0
  53. package/directives/pan/pan.directive.d.ts +5 -0
  54. package/directives/pan/pan.module.d.ts +5 -0
  55. package/directives/pan/taiga-ui-cdk-directives-pan.d.ts +4 -0
  56. package/directives/pan/taiga-ui-cdk-directives-pan.metadata.json +1 -0
  57. package/directives/swipe/index.d.ts +2 -0
  58. package/directives/swipe/package.json +13 -0
  59. package/directives/swipe/swipe.directive.d.ts +5 -0
  60. package/directives/swipe/swipe.module.d.ts +5 -0
  61. package/directives/swipe/taiga-ui-cdk-directives-swipe.d.ts +4 -0
  62. package/directives/swipe/taiga-ui-cdk-directives-swipe.metadata.json +1 -0
  63. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  64. package/directives/zoom/index.d.ts +2 -0
  65. package/directives/zoom/package.json +13 -0
  66. package/directives/zoom/taiga-ui-cdk-directives-zoom.d.ts +4 -0
  67. package/directives/zoom/taiga-ui-cdk-directives-zoom.metadata.json +1 -0
  68. package/directives/zoom/zoom.directive.d.ts +5 -0
  69. package/directives/zoom/zoom.module.d.ts +5 -0
  70. package/esm2015/abstract/control.js +7 -5
  71. package/esm2015/abstract/interactive.js +9 -6
  72. package/esm2015/abstract/theme-switcher.js +17 -7
  73. package/esm2015/components/dialog-host/dialog-host.component.js +1 -1
  74. package/esm2015/components/portal-host/portal-host.component.js +1 -1
  75. package/esm2015/directives/autofilled/autofilled.directive.js +11 -31
  76. package/esm2015/directives/index.js +4 -1
  77. package/esm2015/directives/pan/index.js +3 -0
  78. package/esm2015/directives/pan/pan.directive.js +22 -0
  79. package/esm2015/directives/pan/pan.module.js +16 -0
  80. package/esm2015/directives/pan/taiga-ui-cdk-directives-pan.js +5 -0
  81. package/esm2015/directives/swipe/index.js +3 -0
  82. package/esm2015/directives/swipe/swipe.directive.js +22 -0
  83. package/esm2015/directives/swipe/swipe.module.js +16 -0
  84. package/esm2015/directives/swipe/taiga-ui-cdk-directives-swipe.js +5 -0
  85. package/esm2015/directives/zoom/index.js +3 -0
  86. package/esm2015/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
  87. package/esm2015/directives/zoom/zoom.directive.js +25 -0
  88. package/esm2015/directives/zoom/zoom.module.js +16 -0
  89. package/esm2015/interfaces/index.js +1 -1
  90. package/esm2015/interfaces/swipe.js +1 -0
  91. package/esm2015/interfaces/zoom.js +1 -0
  92. package/esm2015/services/hovered.service.js +2 -2
  93. package/esm2015/services/index.js +4 -1
  94. package/esm2015/services/pan.service.js +35 -0
  95. package/esm2015/services/swipe.service.js +52 -0
  96. package/esm2015/services/zoom.service.js +55 -0
  97. package/esm2015/tokens/active-element.js +4 -5
  98. package/esm2015/tokens/index.js +3 -1
  99. package/esm2015/tokens/swipe-options.js +5 -0
  100. package/esm2015/tokens/zoom-options.js +7 -0
  101. package/esm2015/utils/dom/contains-or-after.js +2 -4
  102. package/esm2015/utils/miscellaneous/distance-between-touches.js +4 -0
  103. package/esm2015/utils/miscellaneous/fallback-value.js +2 -1
  104. package/esm2015/utils/miscellaneous/get-swipe-direction.js +9 -0
  105. package/esm2015/utils/miscellaneous/index.js +3 -1
  106. package/esm5/abstract/control.js +7 -5
  107. package/esm5/abstract/interactive.js +9 -6
  108. package/esm5/abstract/theme-switcher.js +15 -5
  109. package/esm5/components/dialog-host/dialog-host.component.js +1 -1
  110. package/esm5/components/portal-host/portal-host.component.js +1 -1
  111. package/esm5/directives/autofilled/autofilled.directive.js +14 -33
  112. package/esm5/directives/index.js +4 -1
  113. package/esm5/directives/pan/index.js +3 -0
  114. package/esm5/directives/pan/pan.directive.js +23 -0
  115. package/esm5/directives/pan/pan.module.js +19 -0
  116. package/esm5/directives/pan/taiga-ui-cdk-directives-pan.js +5 -0
  117. package/esm5/directives/swipe/index.js +3 -0
  118. package/esm5/directives/swipe/swipe.directive.js +23 -0
  119. package/esm5/directives/swipe/swipe.module.js +19 -0
  120. package/esm5/directives/swipe/taiga-ui-cdk-directives-swipe.js +5 -0
  121. package/esm5/directives/zoom/index.js +3 -0
  122. package/esm5/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
  123. package/esm5/directives/zoom/zoom.directive.js +26 -0
  124. package/esm5/directives/zoom/zoom.module.js +19 -0
  125. package/esm5/interfaces/index.js +1 -1
  126. package/esm5/interfaces/swipe.js +1 -0
  127. package/esm5/interfaces/zoom.js +1 -0
  128. package/esm5/services/hovered.service.js +2 -2
  129. package/esm5/services/index.js +4 -1
  130. package/esm5/services/pan.service.js +45 -0
  131. package/esm5/services/swipe.service.js +60 -0
  132. package/esm5/services/zoom.service.js +65 -0
  133. package/esm5/tokens/active-element.js +5 -5
  134. package/esm5/tokens/index.js +3 -1
  135. package/esm5/tokens/swipe-options.js +5 -0
  136. package/esm5/tokens/zoom-options.js +7 -0
  137. package/esm5/utils/dom/contains-or-after.js +2 -4
  138. package/esm5/utils/miscellaneous/distance-between-touches.js +5 -0
  139. package/esm5/utils/miscellaneous/fallback-value.js +2 -1
  140. package/esm5/utils/miscellaneous/get-swipe-direction.js +9 -0
  141. package/esm5/utils/miscellaneous/index.js +3 -1
  142. package/fesm2015/taiga-ui-cdk-abstract.js +27 -14
  143. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  144. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
  145. package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
  146. package/fesm2015/taiga-ui-cdk-directives-autofilled.js +10 -30
  147. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  148. package/fesm2015/taiga-ui-cdk-directives-pan.js +40 -0
  149. package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -0
  150. package/fesm2015/taiga-ui-cdk-directives-swipe.js +40 -0
  151. package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -0
  152. package/fesm2015/taiga-ui-cdk-directives-zoom.js +43 -0
  153. package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -0
  154. package/fesm2015/taiga-ui-cdk-directives.js +3 -0
  155. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  156. package/fesm2015/taiga-ui-cdk-services.js +125 -6
  157. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  158. package/fesm2015/taiga-ui-cdk-tokens.js +14 -5
  159. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  160. package/fesm2015/taiga-ui-cdk-utils-dom.js +1 -3
  161. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  162. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +15 -1
  163. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  164. package/fesm5/taiga-ui-cdk-abstract.js +26 -12
  165. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  166. package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
  167. package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
  168. package/fesm5/taiga-ui-cdk-directives-autofilled.js +13 -32
  169. package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  170. package/fesm5/taiga-ui-cdk-directives-pan.js +44 -0
  171. package/fesm5/taiga-ui-cdk-directives-pan.js.map +1 -0
  172. package/fesm5/taiga-ui-cdk-directives-swipe.js +44 -0
  173. package/fesm5/taiga-ui-cdk-directives-swipe.js.map +1 -0
  174. package/fesm5/taiga-ui-cdk-directives-zoom.js +47 -0
  175. package/fesm5/taiga-ui-cdk-directives-zoom.js.map +1 -0
  176. package/fesm5/taiga-ui-cdk-directives.js +3 -0
  177. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  178. package/fesm5/taiga-ui-cdk-services.js +153 -6
  179. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  180. package/fesm5/taiga-ui-cdk-tokens.js +15 -5
  181. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  182. package/fesm5/taiga-ui-cdk-utils-dom.js +1 -3
  183. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  184. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +16 -1
  185. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  186. package/interfaces/index.d.ts +2 -0
  187. package/interfaces/swipe.d.ts +9 -0
  188. package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
  189. package/interfaces/zoom.d.ts +9 -0
  190. package/package.json +3 -3
  191. package/services/index.d.ts +3 -0
  192. package/services/pan.service.d.ts +8 -0
  193. package/services/swipe.service.d.ts +9 -0
  194. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  195. package/services/zoom.service.d.ts +6 -0
  196. package/tokens/index.d.ts +2 -0
  197. package/tokens/swipe-options.d.ts +3 -0
  198. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  199. package/tokens/zoom-options.d.ts +3 -0
  200. package/utils/miscellaneous/distance-between-touches.d.ts +1 -0
  201. package/utils/miscellaneous/fallback-value.d.ts +1 -0
  202. package/utils/miscellaneous/get-swipe-direction.d.ts +2 -0
  203. package/utils/miscellaneous/index.d.ts +2 -0
  204. package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/window-height.ts"],"names":["__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","TUI_REMOVED_ELEMENT","InjectionToken","factory","stub","onRemovalComplete","element$","BehaviorSubject","engine","_a","inject","ɵAnimationEngine","InjectFlags","Optional","_b","element","context","pipe","switchMap","timer","mapTo","startWith","share","TUI_ACTIVE_ELEMENT","removedElement$","windowRef","WINDOW","documentRef","DOCUMENT","focusout$","typedFromEvent","focusin$","blur$","mousedown$","mouseup$","merge","takeUntil","repeatWhen","withLatestFrom","filter","event","removedElement","isValidFocusout","getActualTarget","map","relatedTarget","activeElement","matches","target","root","getDocumentOrShadowRoot","of","shadowRootActiveElement","body","take","distinctUntilChanged","ownerDocument","disabled","contains","TUI_DEFAULT_RENDERER","RendererFactory2","createRenderer","TUI_DIALOGS","TUI_FOCUSABLE_ITEM_ACCESSOR","IOS_REG_EXP","TUI_IS_IOS","test","USER_AGENT","toLowerCase","firstRegex","secondRegex","TUI_IS_MOBILE","substr","TUI_IS_ANDROID","TUI_SANITIZER","TUI_IS_CYPRESS","Cypress","TUI_TAKE_ONLY_TRUSTED_EVENTS","TUI_WINDOW_HEIGHT","innerHeight","shareReplay","refCount","bufferSize"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(ɵAnimationEngine, InjectFlags.Optional) ?? stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n takeUntil(mousedown$),\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n takeUntil(timer(0)),\n mapTo(getActualTarget(event)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n target.ownerDocument?.activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(({target}) => isValidFocusout(target, null)),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<ReadonlyArray<TuiAriaDialogContext>>>\n>('A stream of dialogs');\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () => IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/;\n\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).substr(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({refCount: true, bufferSize: 1}),\n );\n },\n },\n);\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts"],"names":["__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","TUI_REMOVED_ELEMENT","InjectionToken","factory","stub","onRemovalComplete","element$","BehaviorSubject","engine","_a","inject","ɵAnimationEngine","InjectFlags","Optional","_b","element","context","pipe","switchMap","timer","mapTo","startWith","share","TUI_ACTIVE_ELEMENT","removedElement$","windowRef","WINDOW","documentRef","DOCUMENT","focusout$","typedFromEvent","focusin$","blur$","mousedown$","mouseup$","merge","takeUntil","repeatWhen","withLatestFrom","filter","event","removedElement","isValidFocusout","getActualTarget","map","relatedTarget","activeElement","matches","target","root","getDocumentOrShadowRoot","of","shadowRootActiveElement","body","take","distinctUntilChanged","disabled","contains","TUI_DEFAULT_RENDERER","RendererFactory2","createRenderer","TUI_DIALOGS","TUI_FOCUSABLE_ITEM_ACCESSOR","IOS_REG_EXP","TUI_IS_IOS","test","USER_AGENT","toLowerCase","firstRegex","secondRegex","TUI_IS_MOBILE","substr","TUI_IS_ANDROID","TUI_SANITIZER","TUI_IS_CYPRESS","Cypress","TUI_TAKE_ONLY_TRUSTED_EVENTS","TUI_WINDOW_HEIGHT","innerHeight","shareReplay","refCount","bufferSize","TUI_SWIPE_OPTIONS","timeout","threshold","TUI_ZOOM_OPTIONS","wheelSensitivity"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(ɵAnimationEngine, InjectFlags.Optional) ?? stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n takeUntil(mousedown$),\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n takeUntil(timer(0)),\n mapTo(getActualTarget(event)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<ReadonlyArray<TuiAriaDialogContext>>>\n>('A stream of dialogs');\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () => IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/;\n\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).substr(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({refCount: true, bufferSize: 1}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\n }),\n});\n"]}
@@ -48,9 +48,7 @@
48
48
 
49
49
  function containsOrAfter(current, node) {
50
50
  return (current.contains(node) ||
51
- !!(
52
- // tslint:disable:no-bitwise
53
- (node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)));
51
+ !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING));
54
52
  }
55
53
 
56
54
  /** @deprecated only needed for IE, remove in 3.0 */
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(\n // tslint:disable:no-bitwise\n (node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n )\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): ReadonlyArray<Element> | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n"],"names":["clamp","isPresent","tuiAssert"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): ReadonlyArray<Element> | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n"],"names":["clamp","isPresent","tuiAssert"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts"],"names":["getClosestElement","element","selector","closest","Element","prototype","call","matchesSelector","matches","msMatchesSelector","parentElement","getDocumentOrShadowRoot","node","isConnected","getRootNode","ownerDocument","rootElement","vertical","scrollEnd","currentElement","Math","floor","scrollTop","ceil","clientHeight","scrollHeight","canScrollVertical","scrollLeft","clientWidth","scrollWidth","canScrollHorizontal","current","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","event","composedPath","target","format","clipboardData","getData","defaultView","_a","innerWidth","innerHeight","documentRef","rect","getBoundingClientRect","left","clamp","round","top","right","bottom","horizontalMiddle","width","verticalMiddle","height","nonNull","elementFromPoint","filter","isPresent","length","filtered","el","host","tuiAssert","assert","offsetTop","offsetLeft","offsetParent","HTMLElement","getScrollParent","currentTarget","windowRef","parent","nodeType","TEXT_NODE","ELEMENT_NODE","name","_b","_c","bubbles","_d","cancelable","_e","detail","CustomEvent","customEvent","createEvent","initCustomEvent"],"mappings":"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","sourcesContent":["/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(\n // tslint:disable:no-bitwise\n (node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n )\n );\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): ReadonlyArray<Element> | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts"],"names":["getClosestElement","element","selector","closest","Element","prototype","call","matchesSelector","matches","msMatchesSelector","parentElement","getDocumentOrShadowRoot","node","isConnected","getRootNode","ownerDocument","rootElement","vertical","scrollEnd","currentElement","Math","floor","scrollTop","ceil","clientHeight","scrollHeight","canScrollVertical","scrollLeft","clientWidth","scrollWidth","canScrollHorizontal","current","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","event","composedPath","target","format","clipboardData","getData","defaultView","_a","innerWidth","innerHeight","documentRef","rect","getBoundingClientRect","left","clamp","round","top","right","bottom","horizontalMiddle","width","verticalMiddle","height","nonNull","elementFromPoint","filter","isPresent","length","filtered","el","host","tuiAssert","assert","offsetTop","offsetLeft","offsetParent","HTMLElement","getScrollParent","currentTarget","windowRef","parent","nodeType","TEXT_NODE","ELEMENT_NODE","name","_b","_c","bubbles","_d","cancelable","_e","detail","CustomEvent","customEvent","createEvent","initCustomEvent"],"mappings":"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","sourcesContent":["/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): ReadonlyArray<Element> | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n"]}
@@ -17,6 +17,7 @@
17
17
  * If the value is null or undefined, returns default value
18
18
  * @param value
19
19
  * @param fallback alternative fallback
20
+ * @deprecated use nullish coalescing operator
20
21
  */
21
22
  function fallbackValue(value, fallback) {
22
23
  return isPresent(value) ? value : fallback;
@@ -100,10 +101,26 @@
100
101
  .values());
101
102
  }
102
103
 
104
+ function getSwipeDirection(deltaX, deltaY) {
105
+ if (Math.abs(deltaY) > Math.abs(deltaX)) {
106
+ return deltaY > 0 ? 'top' : 'bottom';
107
+ }
108
+ else {
109
+ return deltaX > 0 ? 'left' : 'right';
110
+ }
111
+ }
112
+
113
+ function distanceBetweenTouches(_a) {
114
+ var touches = _a.touches;
115
+ return Math.hypot(touches[0].clientX - touches[1].clientX, touches[0].clientY - touches[1].clientY);
116
+ }
117
+
118
+ exports.distanceBetweenTouches = distanceBetweenTouches;
103
119
  exports.easeInOutQuad = easeInOutQuad;
104
120
  exports.fallbackValue = fallbackValue;
105
121
  exports.flatLength = flatLength;
106
122
  exports.getOriginalArrayFromQueryList = getOriginalArrayFromQueryList;
123
+ exports.getSwipeDirection = getSwipeDirection;
107
124
  exports.identity = identity;
108
125
  exports.isElementEditable = isElementEditable;
109
126
  exports.isNumber = isNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.umd.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<ReadonlyArray<unknown>>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): ReadonlyArray<T> {\n let array: ReadonlyArray<T> = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","export function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: ReadonlyArray<T>,\n key: keyof T,\n): ReadonlyArray<T> {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n"],"names":["tuiAssert","FormArray","FormGroup"],"mappings":";;;;;;aAEgB,aAAa,CAAC,CAAS;QACnCA,iBAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,0CAA0C,CAAC,CAAC;QAE/E,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD;;aCNgB,SAAS,CAAI,KAAgB;QACzC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;IACjD;;ICAA;;;;;aAKgB,aAAa,CAAI,KAA2B,EAAE,QAAW;QACrE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC/C;;ICTA;;;;;aAKgB,UAAU,CAAC,KAA4C;QACnE,OAAO,KAAK,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,OAAO,IAAK,OAAA,KAAK,GAAG,OAAO,CAAC,MAAM,GAAA,EAAE,CAAC,CAAC,CAAC;IACvE;;ICLA;;;;;;aAMgB,6BAA6B,CACzC,SAAuB;QAEvB,IAAI,KAAK,GAAqB,EAAE,CAAC;QAEjC,SAAS,CAAC,IAAI,CAAC,UAAC,KAAK,EAAE,MAAM,EAAE,aAAa;YACxC,KAAK,GAAG,aAAa,CAAC;YAEtB,OAAO,IAAI,CAAC;SACf,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB;;aCpBgB,QAAQ,CAAI,IAAO;QAC/B,OAAO,IAAI,CAAC;IAChB;;aCFgB,iBAAiB,CAAC,OAAoB;;QAElD,QACI,CAAC,OAAO,YAAY,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ;aACxD,OAAO,YAAY,mBAAmB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC7D,OAAO,CAAC,iBAAiB,EAC3B;IACN;;aCPgB,QAAQ,CAAC,KAAc;QACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC;;aCAgB,+BAA+B,CAAC,OAAwB;QACpE,IAAI,OAAO,YAAYC,eAAS,EAAE;YAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,aAAa;gBAClC,+BAA+B,CAAC,aAAa,CAAC,CAAC;aAClD,CAAC,CAAC;SACN;QAED,IAAI,OAAO,YAAYC,eAAS,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAA,aAAa;gBACjD,+BAA+B,CAAC,aAAa,CAAC,CAAC;aAClD,CAAC,CAAC;SACN;QAED,OAAO,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,CAAC,sBAAsB,EAAE,CAAC;IACrC;;ICfA;;;;;;;;aAQgB,YAAY,CACxB,CAAW,EACX,CAAW,EACX,OAA8B;QAE9B,IAAI,CAAC,KAAK,IAAI,EAAE;YACZ,OAAO,CAAC,KAAK,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,KAAK,IAAI,EAAE;YACZ,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB;;aCxBgB,MAAM,CAClB,KAAuB,EACvB,GAAY;QAEZ,OAAO,KAAK,CAAC,IAAI,CACb,KAAK;aACA,MAAM,CACH,UAAC,GAAG,EAAE,IAAI,IAAK,QAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAC,EACpE,IAAI,GAAG,EAAiB,CAC3B;aACA,MAAM,EAAE,CAChB,CAAC;IACN;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.umd.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<ReadonlyArray<unknown>>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): ReadonlyArray<T> {\n let array: ReadonlyArray<T> = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","export function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: ReadonlyArray<T>,\n key: keyof T,\n): ReadonlyArray<T> {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n"],"names":["tuiAssert","FormArray","FormGroup"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@taiga-ui/cdk/classes"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/miscellaneous",["exports","@taiga-ui/cdk/classes","@angular/forms"],n):n(((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.miscellaneous={}),e["taiga-ui"].cdk.classes,e.ng.forms)}(this,(function(e,n,t){"use strict";function u(e){return null!=e}e.easeInOutQuad=function(e){return n.tuiAssert.assert(0<=e&&e<=1,"Input must be between 0 and 1 inclusive."),e<.5?2*e*e:(4-2*e)*e-1},e.fallbackValue=function(e,n){return u(e)?e:n},e.flatLength=function(e){return e.reduce((function(e,n){return e+n.length}),0)},e.getOriginalArrayFromQueryList=function(e){var n=[];return e.find((function(e,t,u){return n=u,!0})),n},e.identity=function(e){return e},e.isElementEditable=function(e){return e instanceof HTMLInputElement&&!e.readOnly||e instanceof HTMLTextAreaElement&&!e.readOnly||e.isContentEditable},e.isNumber=function(e){return"number"==typeof e},e.isPresent=u,e.markControlAsTouchedAndValidate=function e(n){n instanceof t.FormArray&&n.controls.forEach((function(n){e(n)})),n instanceof t.FormGroup&&Object.values(n.controls).forEach((function(n){e(n)})),n.markAsTouched(),n.updateValueAndValidity()},e.nullableSame=function(e,n,t){return null===e?null===n:null!==n&&t(e,n)},e.uniqBy=function(e,n){return Array.from(e.reduce((function(e,t){return e.has(t[n])?e:e.set(t[n],t)}),new Map).values())},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@taiga-ui/cdk/classes"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/miscellaneous",["exports","@taiga-ui/cdk/classes","@angular/forms"],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.miscellaneous={}),e["taiga-ui"].cdk.classes,e.ng.forms)}(this,(function(e,t,n){"use strict";function i(e){return null!=e}e.distanceBetweenTouches=function(e){var t=e.touches;return Math.hypot(t[0].clientX-t[1].clientX,t[0].clientY-t[1].clientY)},e.easeInOutQuad=function(e){return t.tuiAssert.assert(0<=e&&e<=1,"Input must be between 0 and 1 inclusive."),e<.5?2*e*e:(4-2*e)*e-1},e.fallbackValue=function(e,t){return i(e)?e:t},e.flatLength=function(e){return e.reduce((function(e,t){return e+t.length}),0)},e.getOriginalArrayFromQueryList=function(e){var t=[];return e.find((function(e,n,i){return t=i,!0})),t},e.getSwipeDirection=function(e,t){return Math.abs(t)>Math.abs(e)?t>0?"top":"bottom":e>0?"left":"right"},e.identity=function(e){return e},e.isElementEditable=function(e){return e instanceof HTMLInputElement&&!e.readOnly||e instanceof HTMLTextAreaElement&&!e.readOnly||e.isContentEditable},e.isNumber=function(e){return"number"==typeof e},e.isPresent=i,e.markControlAsTouchedAndValidate=function e(t){t instanceof n.FormArray&&t.controls.forEach((function(t){e(t)})),t instanceof n.FormGroup&&Object.values(t.controls).forEach((function(t){e(t)})),t.markAsTouched(),t.updateValueAndValidity()},e.nullableSame=function(e,t,n){return null===e?null===t:null!==t&&n(e,t)},e.uniqBy=function(e,t){return Array.from(e.reduce((function(e,n){return e.has(n[t])?e:e.set(n[t],n)}),new Map).values())},Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=taiga-ui-cdk-utils-miscellaneous.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts"],"names":["isPresent","value","t","tuiAssert","assert","fallback","array","reduce","count","section","length","queryList","find","_item","_index","originalArray","item","element","HTMLInputElement","readOnly","HTMLTextAreaElement","isContentEditable","markControlAsTouchedAndValidate","control","FormArray","controls","forEach","nestedControl","FormGroup","Object","values","markAsTouched","updateValueAndValidity","a","b","handler","key","Array","from","map","has","set","Map"],"mappings":"yhBAAgBA,EAAaC,GACzB,OAAOA,MAAAA,2BCCmBC,GAG1B,OAFAC,EAAAA,UAAUC,OAAO,GAAKF,GAAKA,GAAK,EAAG,4CAE5BA,EAAI,GAAM,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,4BCEDD,EAA6BI,GAC1D,OAAOL,EAAUC,GAASA,EAAQI,yBCHXC,GACvB,OAAOA,EAAMC,QAAO,SAACC,EAAOC,GAAY,OAAAD,EAAQC,EAAQC,SAAQ,6CCGhEC,GAEA,IAAIL,EAA0B,GAQ9B,OANAK,EAAUC,MAAK,SAACC,EAAOC,EAAQC,GAG3B,OAFAT,EAAQS,GAED,KAGJT,uBCnBiBU,GACxB,OAAOA,gCCDuBC,GAE9B,OACKA,aAAmBC,mBAAqBD,EAAQE,UAChDF,aAAmBG,sBAAwBH,EAAQE,UACpDF,EAAQI,uCCLSpB,GACrB,MAAwB,iBAAVA,4DCCFqB,EAAgCC,GACxCA,aAAmBC,EAAAA,WACnBD,EAAQE,SAASC,SAAQ,SAAAC,GACrBL,EAAgCK,MAIpCJ,aAAmBK,EAAAA,WACnBC,OAAOC,OAAOP,EAAQE,UAAUC,SAAQ,SAAAC,GACpCL,EAAgCK,MAIxCJ,EAAQQ,gBACRR,EAAQS,kDCLRC,EACAC,EACAC,GAEA,OAAU,OAANF,EACa,OAANC,EAGD,OAANA,GAIGC,EAAQF,EAAGC,sBCtBlB5B,EACA8B,GAEA,OAAOC,MAAMC,KACThC,EACKC,QACG,SAACgC,EAAKvB,GAAS,OAACuB,EAAIC,IAAIxB,EAAKoB,IAAQG,EAAMA,EAAIE,IAAIzB,EAAKoB,GAAMpB,KAC9D,IAAI0B,KAEPZ","sourcesContent":["export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<ReadonlyArray<unknown>>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): ReadonlyArray<T> {\n let array: ReadonlyArray<T> = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","export function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: ReadonlyArray<T>,\n key: keyof T,\n): ReadonlyArray<T> {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts"],"names":["isPresent","value","_a","touches","Math","hypot","clientX","clientY","t","tuiAssert","assert","fallback","array","reduce","count","section","length","queryList","find","_item","_index","originalArray","deltaX","deltaY","abs","item","element","HTMLInputElement","readOnly","HTMLTextAreaElement","isContentEditable","markControlAsTouchedAndValidate","control","FormArray","controls","forEach","nestedControl","FormGroup","Object","values","markAsTouched","updateValueAndValidity","a","b","handler","key","Array","from","map","has","set","Map"],"mappings":"yhBAAgBA,EAAaC,GACzB,OAAOA,MAAAA,oCCD4BC,OAACC,EAAAD,EAAAC,QACpC,OAAOC,KAAKC,MACRF,EAAQ,GAAGG,QAAUH,EAAQ,GAAGG,QAChCH,EAAQ,GAAGI,QAAUJ,EAAQ,GAAGI,mCCDVC,GAG1B,OAFAC,EAAAA,UAAUC,OAAO,GAAKF,GAAKA,GAAK,EAAG,4CAE5BA,EAAI,GAAM,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,4BCGDP,EAA6BU,GAC1D,OAAOX,EAAUC,GAASA,EAAQU,yBCJXC,GACvB,OAAOA,EAAMC,QAAO,SAACC,EAAOC,GAAY,OAAAD,EAAQC,EAAQC,SAAQ,6CCGhEC,GAEA,IAAIL,EAA0B,GAQ9B,OANAK,EAAUC,MAAK,SAACC,EAAOC,EAAQC,GAG3B,OAFAT,EAAQS,GAED,KAGJT,gCCjBuBU,EAAgBC,GAC9C,OAAInB,KAAKoB,IAAID,GAAUnB,KAAKoB,IAAIF,GACrBC,EAAS,EAAI,MAAQ,SAErBD,EAAS,EAAI,OAAS,6BCNTG,GACxB,OAAOA,gCCDuBC,GAE9B,OACKA,aAAmBC,mBAAqBD,EAAQE,UAChDF,aAAmBG,sBAAwBH,EAAQE,UACpDF,EAAQI,uCCLS7B,GACrB,MAAwB,iBAAVA,4DCCF8B,EAAgCC,GACxCA,aAAmBC,EAAAA,WACnBD,EAAQE,SAASC,SAAQ,SAAAC,GACrBL,EAAgCK,MAIpCJ,aAAmBK,EAAAA,WACnBC,OAAOC,OAAOP,EAAQE,UAAUC,SAAQ,SAAAC,GACpCL,EAAgCK,MAIxCJ,EAAQQ,gBACRR,EAAQS,kDCLRC,EACAC,EACAC,GAEA,OAAU,OAANF,EACa,OAANC,EAGD,OAANA,GAIGC,EAAQF,EAAGC,sBCtBlB/B,EACAiC,GAEA,OAAOC,MAAMC,KACTnC,EACKC,QACG,SAACmC,EAAKvB,GAAS,OAACuB,EAAIC,IAAIxB,EAAKoB,IAAQG,EAAMA,EAAIE,IAAIzB,EAAKoB,GAAMpB,KAC9D,IAAI0B,KAEPZ","sourcesContent":["export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<ReadonlyArray<unknown>>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): ReadonlyArray<T> {\n let array: ReadonlyArray<T> = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","export function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: ReadonlyArray<T>,\n key: keyof T,\n): ReadonlyArray<T> {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TUI_DIALOG_CLOSES_ON_BACK":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":45},"arguments":["Is closing dialog on browser backward navigation enabled",{"__symbolic":"error","message":"Lambda not supported","line":23,"character":17,"module":"./dialog-host.component"}]},"FAKE_HISTORY_STATE":{"label":"ignoreMe"},"isFakeHistoryState":{"__symbolic":"error","message":"Lambda not supported","line":30,"character":34,"module":"./dialog-host.component"},"TuiDialogHostComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":36,"character":1},"arguments":[{"selector":"tui-dialog-host","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":40,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","module":"@taiga-ui/cdk/constants","name":"TUI_PARENT_ANIMATION","line":41,"character":17}],"template":"<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n class=\"dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"item.id\"\n [content]=\"item.component\"\n [context]=\"item\"\n [@tuiParentAnimation]\n ></section>\n <div\n *tuiLet=\"isDialogClosesOnBack$ | async as isDialogClosesOnBack\"\n class=\"overlay\"\n (window:popstate)=\"closeLast(dialogs, isDialogClosesOnBack)\"\n (transitionend)=\"onDialog($event, !!dialogs.length, isDialogClosesOnBack)\"\n [class.overlay_visible]=\"dialogs.length\"\n ></div>\n</ng-container>\n","styles":[":host{position:fixed;left:0;bottom:0;width:100%;height:0}.dialog,.overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-start;outline:0;overflow:auto;overflow:overlay}.overlay{height:100vh;pointer-events:none;touch-action:none;opacity:0;letter-spacing:normal;transition:opacity var(--tui-duration),letter-spacing 10ms;background:rgba(0,0,0,.75)}.overlay_visible{opacity:1;letter-spacing:1px}.dialog:last-of-type{z-index:1}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_DIALOG_CLOSES_ON_BACK"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":55,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_DIALOGS","line":55,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"HISTORY","line":56,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":57,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"Title","line":57,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":55,"character":72,"module":"./dialog-host.component"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":55,"character":72,"module":"./dialog-host.component"}]}]},{"__symbolic":"error","message":"Could not resolve type","line":56,"character":54,"context":{"typeName":"History"},"module":"./dialog-host.component"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"Title","line":57,"character":54}]}],"closeLast":[{"__symbolic":"method"}],"onDialog":[{"__symbolic":"method"}]}},"TuiDialogHostModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":11,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk/directives/overscroll","name":"TuiOverscrollModule","line":12,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk/directives/focus-trap","name":"TuiFocusTrapModule","line":13,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk/directives","name":"TuiLetModule","line":14,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiDialogHostComponent"}],"exports":[{"__symbolic":"reference","name":"TuiDialogHostComponent"}]}]}],"members":{}}},"origins":{"TUI_DIALOG_CLOSES_ON_BACK":"./dialog-host.component","FAKE_HISTORY_STATE":"./dialog-host.component","isFakeHistoryState":"./dialog-host.component","TuiDialogHostComponent":"./dialog-host.component","TuiDialogHostModule":"./dialog-host.module"},"importAs":"@taiga-ui/cdk/components/dialog-host"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TUI_DIALOG_CLOSES_ON_BACK":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":45},"arguments":["Is closing dialog on browser backward navigation enabled",{"__symbolic":"error","message":"Lambda not supported","line":23,"character":17,"module":"./dialog-host.component"}]},"FAKE_HISTORY_STATE":{"label":"ignoreMe"},"isFakeHistoryState":{"__symbolic":"error","message":"Lambda not supported","line":30,"character":34,"module":"./dialog-host.component"},"TuiDialogHostComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":36,"character":1},"arguments":[{"selector":"tui-dialog-host","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":40,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","module":"@taiga-ui/cdk/constants","name":"TUI_PARENT_ANIMATION","line":41,"character":17}],"template":"<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"dialog\"\n [@tuiParentAnimation]\n [attr.aria-labelledby]=\"item.id\"\n [content]=\"item.component\"\n [context]=\"item\"\n ></section>\n <div\n *tuiLet=\"isDialogClosesOnBack$ | async as isDialogClosesOnBack\"\n class=\"overlay\"\n [class.overlay_visible]=\"dialogs.length\"\n (window:popstate)=\"closeLast(dialogs, isDialogClosesOnBack)\"\n (transitionend)=\"onDialog($event, !!dialogs.length, isDialogClosesOnBack)\"\n ></div>\n</ng-container>\n","styles":[":host{position:fixed;left:0;bottom:0;width:100%;height:0}.dialog,.overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-start;outline:0;overflow:auto;overflow:overlay}.overlay{height:100vh;pointer-events:none;touch-action:none;opacity:0;letter-spacing:normal;transition:opacity var(--tui-duration),letter-spacing 10ms;background:rgba(0,0,0,.75)}.overlay_visible{opacity:1;letter-spacing:1px}.dialog:last-of-type{z-index:1}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_DIALOG_CLOSES_ON_BACK"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":55,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_DIALOGS","line":55,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"HISTORY","line":56,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":57,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"Title","line":57,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":55,"character":72,"module":"./dialog-host.component"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":55,"character":72,"module":"./dialog-host.component"}]}]},{"__symbolic":"error","message":"Could not resolve type","line":56,"character":54,"context":{"typeName":"History"},"module":"./dialog-host.component"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"Title","line":57,"character":54}]}],"closeLast":[{"__symbolic":"method"}],"onDialog":[{"__symbolic":"method"}]}},"TuiDialogHostModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":11,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk/directives/overscroll","name":"TuiOverscrollModule","line":12,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk/directives/focus-trap","name":"TuiFocusTrapModule","line":13,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk/directives","name":"TuiLetModule","line":14,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiDialogHostComponent"}],"exports":[{"__symbolic":"reference","name":"TuiDialogHostComponent"}]}]}],"members":{}}},"origins":{"TUI_DIALOG_CLOSES_ON_BACK":"./dialog-host.component","FAKE_HISTORY_STATE":"./dialog-host.component","isFakeHistoryState":"./dialog-host.component","TuiDialogHostComponent":"./dialog-host.component","TuiDialogHostModule":"./dialog-host.module"},"importAs":"@taiga-ui/cdk/components/dialog-host"}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiPortalService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":15,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"attach":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"addTemplate":[{"__symbolic":"method"}],"removeTemplate":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiPortalHostComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"tui-portal-host","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":31,"character":21},"member":"OnPush"},"template":"<div #positionFixedOffset class=\"position-fixed-offset\"></div>\n<ng-content></ng-content>\n","styles":[":host{position:relative;display:block;height:100%;z-index:0}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]}]}],"members":{"positionFixedOffsetRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":34,"character":5},"arguments":["positionFixedOffset"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":38,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":40,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":42,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiPortalService"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":39,"character":43},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":41,"character":48,"context":{"typeName":"HTMLElement"},"module":"./portal-host.component"}]},{"__symbolic":"reference","name":"TuiPortalService"}]}],"addComponentChild":[{"__symbolic":"method"}],"addTemplateChild":[{"__symbolic":"method"}],"fixedPositionOffset":[{"__symbolic":"method"}]}},"TuiPortalHostModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiPortalHostComponent"}],"exports":[{"__symbolic":"reference","name":"TuiPortalHostComponent"}]}]}],"members":{}}},"origins":{"TuiPortalService":"./portal.service","TuiPortalHostComponent":"./portal-host.component","TuiPortalHostModule":"./portal-host.module"},"importAs":"@taiga-ui/cdk/components/portal-host"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiPortalService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":15,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"attach":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"addTemplate":[{"__symbolic":"method"}],"removeTemplate":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiPortalHostComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"tui-portal-host","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":31,"character":21},"member":"OnPush"},"template":"<div #positionFixedOffset class=\"position-fixed-offset\"></div>\n<ng-content></ng-content>\n","styles":[":host{position:relative;z-index:0;display:block;height:100%}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]}]}],"members":{"positionFixedOffsetRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":34,"character":5},"arguments":["positionFixedOffset"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":38,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":40,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":42,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiPortalService"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":39,"character":43},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":41,"character":48,"context":{"typeName":"HTMLElement"},"module":"./portal-host.component"}]},{"__symbolic":"reference","name":"TuiPortalService"}]}],"addComponentChild":[{"__symbolic":"method"}],"addTemplateChild":[{"__symbolic":"method"}],"fixedPositionOffset":[{"__symbolic":"method"}]}},"TuiPortalHostModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiPortalHostComponent"}],"exports":[{"__symbolic":"reference","name":"TuiPortalHostComponent"}]}]}],"members":{}}},"origins":{"TuiPortalService":"./portal.service","TuiPortalHostComponent":"./portal-host.component","TuiPortalHostModule":"./portal-host.module"},"importAs":"@taiga-ui/cdk/components/portal-host"}
@@ -1,8 +1,7 @@
1
- import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
1
+ import { ElementRef } from '@angular/core';
2
2
  import { TuiDirectiveStylesService } from '@taiga-ui/cdk/services';
3
- import { Observable } from 'rxjs';
4
3
  export declare class TuiAutofilledDirective {
5
- readonly tuiAutofilledChange: EventEmitter<boolean>;
6
- onAnimationStart({ animationName }: AnimationEvent): void;
7
- constructor(directiveStyles: TuiDirectiveStylesService, { nativeElement }: ElementRef<HTMLInputElement>, changeDetectorRef: ChangeDetectorRef, destroy$: Observable<void>);
4
+ private readonly elementRef;
5
+ readonly tuiAutofilledChange: import("rxjs").Observable<boolean>;
6
+ constructor(elementRef: ElementRef<HTMLInputElement>, directiveStyles: TuiDirectiveStylesService);
8
7
  }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiAutofilledDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":38,"character":1},"arguments":[{"selector":"input[tuiAutofilledChange]","host":{"class":"tui-autofill"},"providers":[{"__symbolic":"reference","module":"@taiga-ui/cdk/services","name":"TuiDestroyService","line":43,"character":16}]}]}],"members":{"tuiAutofilledChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":46,"character":5}}]}],"onAnimationStart":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":49,"character":5},"arguments":["animationstart",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":59,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/services","name":"TuiDirectiveStylesService","line":59,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":61,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":61,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":62,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":62,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":63,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/services","name":"TuiDestroyService","line":63,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/services","name":"TuiDirectiveStylesService","line":60,"character":25},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":61,"character":56,"context":{"typeName":"HTMLInputElement"},"module":"./autofilled.directive"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":62,"character":54},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":63,"character":56,"module":"./autofilled.directive"}]}]}]}},"TuiAutofilledModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiAutofilledDirective"}],"exports":[{"__symbolic":"reference","name":"TuiAutofilledDirective"}]}]}],"members":{}}},"origins":{"TuiAutofilledDirective":"./autofilled.directive","TuiAutofilledModule":"./autofilled.module"},"importAs":"@taiga-ui/cdk/directives/autofilled"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiAutofilledDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":29,"character":1},"arguments":[{"selector":"input[tuiAutofilledChange]","host":{"class":"tui-autofill"}}]}],"members":{"tuiAutofilledChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":46,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/services","name":"TuiDirectiveStylesService","line":47,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":68,"context":{"typeName":"HTMLInputElement"},"module":"./autofilled.directive"}]},{"__symbolic":"reference","module":"@taiga-ui/cdk/services","name":"TuiDirectiveStylesService","line":48,"character":25}]}]}},"TuiAutofilledModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiAutofilledDirective"}],"exports":[{"__symbolic":"reference","name":"TuiAutofilledDirective"}]}]}],"members":{}}},"origins":{"TuiAutofilledDirective":"./autofilled.directive","TuiAutofilledModule":"./autofilled.module"},"importAs":"@taiga-ui/cdk/directives/autofilled"}
@@ -22,3 +22,6 @@ export * from '@taiga-ui/cdk/directives/resize';
22
22
  export * from '@taiga-ui/cdk/directives/prevent-default';
23
23
  export * from '@taiga-ui/cdk/directives/repeat-times';
24
24
  export * from '@taiga-ui/cdk/directives/validator';
25
+ export * from '@taiga-ui/cdk/directives/pan';
26
+ export * from '@taiga-ui/cdk/directives/swipe';
27
+ export * from '@taiga-ui/cdk/directives/zoom';
@@ -0,0 +1,2 @@
1
+ export * from './pan.directive';
2
+ export * from './pan.module';
@@ -0,0 +1,13 @@
1
+ {
2
+ "main": "../../bundles/taiga-ui-cdk-directives-pan.umd.js",
3
+ "module": "../../fesm5/taiga-ui-cdk-directives-pan.js",
4
+ "es2015": "../../fesm2015/taiga-ui-cdk-directives-pan.js",
5
+ "esm5": "../../esm5/directives/pan/taiga-ui-cdk-directives-pan.js",
6
+ "esm2015": "../../esm2015/directives/pan/taiga-ui-cdk-directives-pan.js",
7
+ "fesm5": "../../fesm5/taiga-ui-cdk-directives-pan.js",
8
+ "fesm2015": "../../fesm2015/taiga-ui-cdk-directives-pan.js",
9
+ "typings": "taiga-ui-cdk-directives-pan.d.ts",
10
+ "metadata": "taiga-ui-cdk-directives-pan.metadata.json",
11
+ "sideEffects": false,
12
+ "name": "@taiga-ui/cdk/directives/pan"
13
+ }
@@ -0,0 +1,5 @@
1
+ import { TuiPanService } from '@taiga-ui/cdk/services';
2
+ export declare class TuiPanDirective {
3
+ readonly tuiPan: TuiPanService;
4
+ constructor(tuiPan: TuiPanService);
5
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @experimental
3
+ */
4
+ export declare class TuiPanModule {
5
+ }