@taiga-ui/cdk 2.26.0 → 2.29.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 (140) hide show
  1. package/README.md +4 -5
  2. package/abstract/control.d.ts +1 -1
  3. package/abstract/interactive.d.ts +4 -4
  4. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  5. package/bundles/taiga-ui-cdk-abstract.umd.js +3 -3
  6. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-abstract.umd.min.js +1 -1
  8. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-date-time.umd.js +366 -287
  10. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -1
  12. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +276 -0
  14. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -0
  15. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +16 -0
  16. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -0
  17. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-directives-media.umd.js +1 -1
  20. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -1
  22. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-services.umd.js +4 -4
  24. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
  26. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-tokens.umd.js +5 -0
  28. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  30. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +4 -1
  32. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
  34. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  35. package/date-time/date-separator.d.ts +2 -0
  36. package/date-time/day-range.d.ts +24 -12
  37. package/date-time/day.d.ts +71 -58
  38. package/date-time/index.d.ts +1 -0
  39. package/date-time/month-range.d.ts +1 -1
  40. package/date-time/month.d.ts +26 -26
  41. package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
  42. package/date-time/time.d.ts +12 -12
  43. package/date-time/year.d.ts +27 -27
  44. package/directives/copy-processor/copy-processor.directive.d.ts +7 -0
  45. package/directives/copy-processor/copy-processor.module.d.ts +2 -0
  46. package/directives/copy-processor/index.d.ts +2 -0
  47. package/directives/copy-processor/package.json +13 -0
  48. package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.d.ts +4 -0
  49. package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.metadata.json +1 -0
  50. package/directives/for/for.directive.d.ts +1 -1
  51. package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
  52. package/directives/media/media.directive.d.ts +1 -1
  53. package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
  54. package/esm2015/abstract/control.js +1 -1
  55. package/esm2015/abstract/interactive.js +4 -4
  56. package/esm2015/date-time/date-separator.js +5 -0
  57. package/esm2015/date-time/day-range.js +46 -23
  58. package/esm2015/date-time/day.js +164 -122
  59. package/esm2015/date-time/index.js +2 -1
  60. package/esm2015/date-time/month-range.js +6 -6
  61. package/esm2015/date-time/month.js +56 -56
  62. package/esm2015/date-time/time.js +40 -40
  63. package/esm2015/date-time/year.js +49 -49
  64. package/esm2015/directives/copy-processor/copy-processor.directive.js +37 -0
  65. package/esm2015/directives/copy-processor/copy-processor.module.js +13 -0
  66. package/esm2015/directives/copy-processor/index.js +3 -0
  67. package/esm2015/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +5 -0
  68. package/esm2015/directives/for/for.directive.js +1 -1
  69. package/esm2015/directives/media/media.directive.js +2 -2
  70. package/esm2015/services/destroy.service.js +6 -3
  71. package/esm2015/services/obscured.service.js +1 -1
  72. package/esm2015/services/pan.service.js +3 -3
  73. package/esm2015/services/static-request.service.js +1 -1
  74. package/esm2015/tokens/index.js +2 -1
  75. package/esm2015/tokens/touch-supported.js +6 -0
  76. package/esm2015/utils/miscellaneous/ease-in-out-quad.js +2 -2
  77. package/esm2015/utils/miscellaneous/identity.js +4 -1
  78. package/esm5/abstract/control.js +1 -1
  79. package/esm5/abstract/interactive.js +4 -4
  80. package/esm5/date-time/date-separator.js +5 -0
  81. package/esm5/date-time/day-range.js +51 -23
  82. package/esm5/date-time/day.js +168 -122
  83. package/esm5/date-time/index.js +2 -1
  84. package/esm5/date-time/month-range.js +6 -6
  85. package/esm5/date-time/month.js +56 -56
  86. package/esm5/date-time/time.js +41 -41
  87. package/esm5/date-time/year.js +49 -49
  88. package/esm5/directives/copy-processor/copy-processor.directive.js +38 -0
  89. package/esm5/directives/copy-processor/copy-processor.module.js +16 -0
  90. package/esm5/directives/copy-processor/index.js +3 -0
  91. package/esm5/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +5 -0
  92. package/esm5/directives/for/for.directive.js +1 -1
  93. package/esm5/directives/media/media.directive.js +2 -2
  94. package/esm5/services/destroy.service.js +4 -4
  95. package/esm5/services/obscured.service.js +1 -1
  96. package/esm5/services/pan.service.js +3 -3
  97. package/esm5/services/static-request.service.js +1 -1
  98. package/esm5/tokens/index.js +2 -1
  99. package/esm5/tokens/touch-supported.js +6 -0
  100. package/esm5/utils/miscellaneous/ease-in-out-quad.js +2 -2
  101. package/esm5/utils/miscellaneous/identity.js +4 -1
  102. package/fesm2015/taiga-ui-cdk-abstract.js +3 -3
  103. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  104. package/fesm2015/taiga-ui-cdk-date-time.js +343 -275
  105. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  106. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +52 -0
  107. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -0
  108. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  109. package/fesm2015/taiga-ui-cdk-directives-media.js +1 -1
  110. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  111. package/fesm2015/taiga-ui-cdk-services.js +7 -4
  112. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  113. package/fesm2015/taiga-ui-cdk-tokens.js +5 -1
  114. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  115. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +4 -1
  116. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  117. package/fesm5/taiga-ui-cdk-abstract.js +3 -3
  118. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  119. package/fesm5/taiga-ui-cdk-date-time.js +364 -287
  120. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  121. package/fesm5/taiga-ui-cdk-directives-copy-processor.js +56 -0
  122. package/fesm5/taiga-ui-cdk-directives-copy-processor.js.map +1 -0
  123. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  124. package/fesm5/taiga-ui-cdk-directives-media.js +1 -1
  125. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  126. package/fesm5/taiga-ui-cdk-services.js +5 -5
  127. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  128. package/fesm5/taiga-ui-cdk-tokens.js +5 -1
  129. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  130. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +4 -1
  131. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  132. package/package.json +4 -4
  133. package/services/destroy.service.d.ts +3 -2
  134. package/services/obscured.service.d.ts +1 -1
  135. package/services/static-request.service.d.ts +1 -1
  136. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  137. package/tokens/index.d.ts +1 -0
  138. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  139. package/tokens/touch-supported.d.ts +2 -0
  140. package/utils/miscellaneous/identity.d.ts +3 -0
@@ -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/is-cypress.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/window-height.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_IS_CYPRESS","Cypress","TUI_SANITIZER","TUI_SWIPE_OPTIONS","timeout","threshold","TUI_TAKE_ONLY_TRUSTED_EVENTS","TUI_WINDOW_HEIGHT","innerHeight","shareReplay","refCount","bufferSize","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';\n\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';\n\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 {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, 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 {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';\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 {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"]}
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/is-cypress.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/touch-supported.ts","ng://@taiga-ui/cdk/tokens/window-height.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_IS_CYPRESS","Cypress","TUI_SANITIZER","TUI_SWIPE_OPTIONS","timeout","threshold","TUI_TAKE_ONLY_TRUSTED_EVENTS","TUI_TOUCH_SUPPORTED","matchMedia","TUI_WINDOW_HEIGHT","innerHeight","shareReplay","refCount","bufferSize","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';\n\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';\n\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 {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, 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 {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';\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';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {\n factory: () => inject(WINDOW).matchMedia('(any-pointer: coarse)').matches,\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 {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"]}
@@ -10,7 +10,7 @@
10
10
  }
11
11
 
12
12
  function easeInOutQuad(t) {
13
- classes.tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');
13
+ classes.tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive but received ', t);
14
14
  return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
15
15
  }
16
16
 
@@ -61,6 +61,9 @@
61
61
  }
62
62
  }
63
63
 
64
+ /**
65
+ * @deprecated: use identity from rxjs
66
+ */
64
67
  function identity(item) {
65
68
  return item;
66
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.umd.js","sources":["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/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/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"],"sourcesContent":["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","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","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"],"names":["tuiAssert","FormArray","FormGroup"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.umd.js","sources":["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/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/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"],"sourcesContent":["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(\n 0 <= t && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","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","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","/**\n * @deprecated: use identity from rxjs\n */\nexport 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":"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"}
@@ -1,2 +1,2 @@
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})}));
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 but received ",e),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/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
+ {"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,GAO1B,OANAC,EAAAA,UAAUC,OACN,GAAKF,GAAKA,GAAK,EACf,wDACAA,GAGGA,EAAI,GAAM,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,4BCDDP,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,6BCHTG,GACxB,OAAOA,gCCJuBC,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(\n 0 <= t && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","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","/**\n * @deprecated: use identity from rxjs\n */\nexport 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"]}
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const TUI_DATE_SEPARATOR: InjectionToken<string>;
@@ -1,5 +1,11 @@
1
+ import { TuiDateMode } from '@taiga-ui/cdk/types';
1
2
  import { TuiDay } from './day';
2
3
  import { TuiMonthRange } from './month-range';
4
+ /**
5
+ * Temporary type guard to satisfy ts-overloading of normalizeParse method
6
+ * @deprecated TODO rm in v3.0
7
+ */
8
+ export declare const isDateMode: (dateMode: string) => dateMode is TuiDateMode;
3
9
  /**
4
10
  * An immutable range of two {@link TuiDay} objects
5
11
  */
@@ -7,9 +13,24 @@ export declare class TuiDayRange extends TuiMonthRange {
7
13
  readonly from: TuiDay;
8
14
  readonly to: TuiDay;
9
15
  constructor(from: TuiDay, to: TuiDay);
16
+ /**
17
+ * Creates range from two days after sorting them
18
+ *
19
+ * @param day1
20
+ * @param day2
21
+ * @return new range with sorted days
22
+ */
23
+ static sort(day1: TuiDay, day2: TuiDay): TuiDayRange;
24
+ /**
25
+ * @deprecated
26
+ * TODO rm deprecated version in v3.0
27
+ */
28
+ static normalizeParse(rangeString: string, dateFiller: string, dateRangeFiller: string): TuiDayRange;
29
+ static normalizeParse(rangeString: string, dateMode?: TuiDateMode): TuiDayRange;
10
30
  get isSingleDay(): boolean;
11
31
  /**
12
32
  * Human readable format.
33
+ * @deprecated use {@link getFormattedDayRange} instead
13
34
  */
14
35
  get formattedDayRange(): string;
15
36
  /**
@@ -28,17 +49,8 @@ export declare class TuiDayRange extends TuiMonthRange {
28
49
  */
29
50
  dayLimit(min: TuiDay | null, max: TuiDay | null): TuiDayRange;
30
51
  /**
31
- * Creates range from two days after sorting them
32
- *
33
- * @param day1
34
- * @param day2
35
- * @return new range with sorted days
36
- */
37
- static sort(day1: TuiDay, day2: TuiDay): TuiDayRange;
38
- /**
39
- * @deprecated
40
- * TODO rm deprecated version in v3.0
52
+ * Human readable format.
41
53
  */
42
- static normalizeParse(rangeString: string, dateFiller: string, dateRangeFiller: string): TuiDayRange;
43
- static normalizeParse(rangeString: string): TuiDayRange;
54
+ getFormattedDayRange(dateFormat: TuiDateMode, dateSeparator: string): string;
55
+ toString(dateFormat?: TuiDateMode, dateSeparator?: string): string;
44
56
  }
@@ -1,4 +1,5 @@
1
1
  import { TuiDayLike } from '@taiga-ui/cdk/interfaces';
2
+ import { TuiDateMode } from '@taiga-ui/cdk/types';
2
3
  import { TuiMonth } from './month';
3
4
  /**
4
5
  * Immutable date object, consisting of day, month and year
@@ -6,8 +7,73 @@ import { TuiMonth } from './month';
6
7
  export declare class TuiDay extends TuiMonth {
7
8
  readonly day: number;
8
9
  constructor(year: number, month: number, day: number);
10
+ /**
11
+ * Creates {@link TuiDay} from native {@link Date} based on local time zone
12
+ */
13
+ static fromLocalNativeDate(date: Date): TuiDay;
14
+ /**
15
+ * Creates {@link TuiDay} from native {@link Date} using UTC
16
+ */
17
+ static fromUtcNativeDate(date: Date): TuiDay;
18
+ /**
19
+ * Check validity of year, month and day
20
+ *
21
+ * @param year
22
+ * @param month
23
+ * @param day
24
+ * @return boolean validity
25
+ */
26
+ static isValidDay(year: number, month: number, day: number): boolean;
27
+ /**
28
+ * @deprecated DONT USE IT (will be deleted soon)
29
+ *
30
+ * Calculated day on a calendar grid
31
+ *
32
+ * @param month
33
+ * @param row row in a calendar
34
+ * @param col column in a calendar
35
+ * @return resulting day on these coordinates (could exceed passed month)
36
+ */
37
+ static getDayFromMonthRowCol(month: TuiMonth, row: number, col: number): TuiDay;
38
+ /**
39
+ * Current day based on local time zone
40
+ */
41
+ static currentLocal(): TuiDay;
42
+ /**
43
+ * Calculates {@link TuiDay} normalizing year, month and day. {@link NaN} is turned into minimal value.
44
+ *
45
+ * @param year any year value, including invalid
46
+ * @param month any month value, including invalid (months start with 0)
47
+ * @param day any day value, including invalid
48
+ * @return normalized date
49
+ */
50
+ static normalizeOf(year: number, month: number, day: number): TuiDay;
51
+ static lengthBetween(from: TuiDay, to: TuiDay): number;
52
+ static parseRawDateString(date: string, dateMode?: TuiDateMode): {
53
+ day: number;
54
+ month: number;
55
+ year: number;
56
+ };
57
+ /**
58
+ * Parsing a string with date with normalization
59
+ *
60
+ * @param rawDate date string
61
+ * @param dateMode date format of the date string (DMY | MDY | YMD)
62
+ * @return normalized date
63
+ */
64
+ static normalizeParse(rawDate: string, dateMode?: TuiDateMode): TuiDay;
65
+ /**
66
+ * Parsing a date stringified in a toJSON format
67
+ * @param yearMonthDayString date string in format of YYYY-MM-DD
68
+ * @return date
69
+ * @throws exceptions if any part of the date is invalid
70
+ */
71
+ static jsonParse(yearMonthDayString: string): TuiDay;
72
+ protected static normalizeDayPart(day: number, month: number, year: number): number;
9
73
  get formattedDayPart(): string;
10
74
  /**
75
+ * @deprecated use {@link getFormattedDay} instead
76
+ * TODO remove in 3.0
11
77
  * Formatted whole date
12
78
  */
13
79
  get formattedDay(): string;
@@ -59,7 +125,11 @@ export declare class TuiDay extends TuiMonth {
59
125
  * @return new date object as a result of offsetting current
60
126
  */
61
127
  append({ year, month, day }: TuiDayLike, backwards?: boolean): TuiDay;
62
- toString(): string;
128
+ /**
129
+ * Returns formatted whole date
130
+ */
131
+ getFormattedDay(dateFormat: TuiDateMode, separator: string): string;
132
+ toString(dateFormat?: TuiDateMode, separator?: string): string;
63
133
  toJSON(): string;
64
134
  /**
65
135
  * Returns native {@link Date} based on local time zone
@@ -69,61 +139,4 @@ export declare class TuiDay extends TuiMonth {
69
139
  * Returns native {@link Date} based on UTC
70
140
  */
71
141
  toUtcNativeDate(): Date;
72
- /**
73
- * Creates {@link TuiDay} from native {@link Date} based on local time zone
74
- */
75
- static fromLocalNativeDate(date: Date): TuiDay;
76
- /**
77
- * Creates {@link TuiDay} from native {@link Date} using UTC
78
- */
79
- static fromUtcNativeDate(date: Date): TuiDay;
80
- /**
81
- * Check validity of year, month and day
82
- *
83
- * @param year
84
- * @param month
85
- * @param day
86
- * @return boolean validity
87
- */
88
- static isValidDay(year: number, month: number, day: number): boolean;
89
- /**
90
- * @deprecated DONT USE IT (will be deleted soon)
91
- *
92
- * Calculated day on a calendar grid
93
- *
94
- * @param month
95
- * @param row row in a calendar
96
- * @param col column in a calendar
97
- * @return resulting day on these coordinates (could exceed passed month)
98
- */
99
- static getDayFromMonthRowCol(month: TuiMonth, row: number, col: number): TuiDay;
100
- /**
101
- * Current day based on local time zone
102
- */
103
- static currentLocal(): TuiDay;
104
- /**
105
- * Calculates {@link TuiDay} normalizing year, month and day. {@link NaN} is turned into minimal value.
106
- *
107
- * @param year any year value, including invalid
108
- * @param month any month value, including invalid (months start with 0)
109
- * @param day any day value, including invalid
110
- * @return normalized date
111
- */
112
- static normalizeOf(year: number, month: number, day: number): TuiDay;
113
- static lengthBetween(from: TuiDay, to: TuiDay): number;
114
- /**
115
- * Parsing a string with date with normalization
116
- *
117
- * @param yearMonthDayString date string in format of DD.MM.Yyyy
118
- * @return normalized date
119
- */
120
- static normalizeParse(yearMonthDayString: string): TuiDay;
121
- /**
122
- * Parsing a date stringified in a toJSON format
123
- * @param yearMonthDayString date string in format of YYYY-MM-DD
124
- * @return date
125
- * @throws exceptions if any part of the date is invalid
126
- */
127
- static jsonParse(yearMonthDayString: string): TuiDay;
128
- protected static normalizeDayPart(day: number, month: number, year: number): number;
129
142
  }
@@ -1,5 +1,6 @@
1
1
  export * from './date-fillers';
2
2
  export * from './date-format';
3
+ export * from './date-separator';
3
4
  export * from './date-time';
4
5
  export * from './day';
5
6
  export * from './day-range';
@@ -6,9 +6,9 @@ export declare class TuiMonthRange {
6
6
  readonly from: TuiMonth;
7
7
  readonly to: TuiMonth;
8
8
  constructor(from: TuiMonth, to: TuiMonth);
9
+ static sort(month1: TuiMonth, month2: TuiMonth): TuiMonthRange;
9
10
  get isSingleMonth(): boolean;
10
11
  get formattedMonthRange(): string;
11
12
  monthSame(another: TuiMonthRange): boolean;
12
13
  toString(): string;
13
- static sort(month1: TuiMonth, month2: TuiMonth): TuiMonthRange;
14
14
  }
@@ -10,6 +10,32 @@ export declare class TuiMonth extends TuiYear implements TuiMonthLike {
10
10
  * @param month (starting with 0)
11
11
  */
12
12
  constructor(year: number, month: number);
13
+ /**
14
+ * Tests month and year for validity
15
+ */
16
+ static isValidMonth(year: number, month: number): boolean;
17
+ /**
18
+ * Returns number of days in a month
19
+ */
20
+ static getMonthDaysCount(month: number, isLeapYear: boolean): number;
21
+ /**
22
+ * Returns current month and year based on local time zone
23
+ * @nosideeffects
24
+ */
25
+ static currentLocal(): TuiMonth;
26
+ /**
27
+ * Returns current month and year based on UTC
28
+ */
29
+ static currentUtc(): TuiMonth;
30
+ static lengthBetween(from: TuiMonth, to: TuiMonth): number;
31
+ /**
32
+ * Normalizes number by clamping it between min and max month
33
+ */
34
+ protected static normalizeMonthPart(month: number): number;
35
+ /**
36
+ * Tests month for validity
37
+ */
38
+ private static isValidMonthPart;
13
39
  get formattedMonthPart(): string;
14
40
  /**
15
41
  * Formatter month and year
@@ -69,30 +95,4 @@ export declare class TuiMonth extends TuiYear implements TuiMonthLike {
69
95
  * Returns native {@link Date} based on UTC
70
96
  */
71
97
  toUtcNativeDate(): Date;
72
- /**
73
- * Tests month and year for validity
74
- */
75
- static isValidMonth(year: number, month: number): boolean;
76
- /**
77
- * Returns number of days in a month
78
- */
79
- static getMonthDaysCount(month: number, isLeapYear: boolean): number;
80
- /**
81
- * Returns current month and year based on local time zone
82
- * @nosideeffects
83
- */
84
- static currentLocal(): TuiMonth;
85
- /**
86
- * Returns current month and year based on UTC
87
- */
88
- static currentUtc(): TuiMonth;
89
- static lengthBetween(from: TuiMonth, to: TuiMonth): number;
90
- /**
91
- * Normalizes number by clamping it between min and max month
92
- */
93
- protected static normalizeMonthPart(month: number): number;
94
- /**
95
- * Tests month for validity
96
- */
97
- private static isValidMonthPart;
98
98
  }