@taiga-ui/cdk 2.28.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 (51) hide show
  1. package/README.md +4 -5
  2. package/bundles/taiga-ui-cdk-date-time.umd.js +93 -14
  3. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  4. package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -1
  5. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-cdk-services.umd.js +2 -2
  7. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
  9. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +1 -1
  11. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  12. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
  13. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  14. package/date-time/date-separator.d.ts +2 -0
  15. package/date-time/day-range.d.ts +13 -1
  16. package/date-time/day.d.ts +16 -3
  17. package/date-time/index.d.ts +1 -0
  18. package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
  19. package/esm2015/date-time/date-separator.js +5 -0
  20. package/esm2015/date-time/day-range.js +28 -5
  21. package/esm2015/date-time/day.js +53 -11
  22. package/esm2015/date-time/index.js +2 -1
  23. package/esm2015/services/destroy.service.js +6 -3
  24. package/esm2015/services/obscured.service.js +1 -1
  25. package/esm2015/services/static-request.service.js +1 -1
  26. package/esm2015/utils/miscellaneous/ease-in-out-quad.js +2 -2
  27. package/esm5/date-time/date-separator.js +5 -0
  28. package/esm5/date-time/day-range.js +33 -5
  29. package/esm5/date-time/day.js +57 -11
  30. package/esm5/date-time/index.js +2 -1
  31. package/esm5/services/destroy.service.js +4 -4
  32. package/esm5/services/obscured.service.js +1 -1
  33. package/esm5/services/static-request.service.js +1 -1
  34. package/esm5/utils/miscellaneous/ease-in-out-quad.js +2 -2
  35. package/fesm2015/taiga-ui-cdk-date-time.js +83 -15
  36. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  37. package/fesm2015/taiga-ui-cdk-services.js +5 -2
  38. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  39. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +1 -1
  40. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  41. package/fesm5/taiga-ui-cdk-date-time.js +92 -15
  42. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  43. package/fesm5/taiga-ui-cdk-services.js +3 -3
  44. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  45. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +1 -1
  46. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  47. package/package.json +3 -3
  48. package/services/destroy.service.d.ts +3 -2
  49. package/services/obscured.service.d.ts +1 -1
  50. package/services/static-request.service.d.ts +1 -1
  51. package/services/taiga-ui-cdk-services.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","Subject","TuiDirectiveStylesService","documentRef","renderer","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","Document","type","Inject","args","DOCUMENT","Renderer2","TUI_DEFAULT_RENDERER","providedIn","TuiFocusVisibleService","_a","changeDetectorRef","destroy$","nativeElement","_this","subscriber","focusVisible$","subscribe","focusVisibleObservable","pipe","watch","takeUntil","ElementRef","ChangeDetectorRef","Observable","TuiHoveredService","ngZone","documentEvents$","merge","typedFromEvent","capture","createHovered$","options","passive","switchMap","filter","event","contains","getActualTarget","tuiZoneOptimized","take","mapTo","startWith","distinctUntilChanged","NgZone","TuiIdService","generate","TuiIdService_1","autoId","Date","now","TuiParentsScrollService","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","map","element","Window","WINDOW","TuiObscuredService","parentsScroll$","animationFrame$","obscured$","fromEvent","delay","throttleTime","POLLING_TIME","getElementObscurers","Self","ANIMATION_FRAME","TuiPanService","switchMapTo","touches","pairwise","_b","first","second","clientX","clientY","repeat","TuiResizeService","elementRef","support","box","catchError","clientWidth","clientHeight","EMPTY_ARRAY","debounceTime","tuiZonefree","RESIZE_OBSERVER_SUPPORT","RESIZE_OPTION_BOX","ResizeObserverService","TuiScrollService","performanceRef","scroll$","scrollTop","scrollLeft","duration","tuiAssert","assert","initialTop","initialLeft","deltaTop","deltaLeft","of","start","timer","elapsed","easeInOutQuad","clamp","percent","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","Map","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","set","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","scan","prev","distance","distanceBetweenTouches","delta","preventDefault","wheel","deltaY","TUI_ZOOM_OPTIONS"],"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 {Injectable, OnDestroy} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | ReadonlyArray<Element>> {\n private obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","ReplaySubject","TuiDirectiveStylesService","documentRef","renderer","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","Document","type","Inject","args","DOCUMENT","Renderer2","TUI_DEFAULT_RENDERER","providedIn","TuiFocusVisibleService","_a","changeDetectorRef","destroy$","nativeElement","_this","subscriber","focusVisible$","subscribe","focusVisibleObservable","pipe","watch","takeUntil","ElementRef","ChangeDetectorRef","Observable","TuiHoveredService","ngZone","documentEvents$","merge","typedFromEvent","capture","createHovered$","options","passive","switchMap","filter","event","contains","getActualTarget","tuiZoneOptimized","take","mapTo","startWith","distinctUntilChanged","NgZone","TuiIdService","generate","TuiIdService_1","autoId","Date","now","TuiParentsScrollService","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","map","element","Window","WINDOW","TuiObscuredService","parentsScroll$","animationFrame$","obscured$","fromEvent","delay","throttleTime","POLLING_TIME","getElementObscurers","Self","ANIMATION_FRAME","TuiPanService","switchMapTo","touches","pairwise","_b","first","second","clientX","clientY","repeat","TuiResizeService","elementRef","support","box","catchError","clientWidth","clientHeight","EMPTY_ARRAY","debounceTime","tuiZonefree","RESIZE_OBSERVER_SUPPORT","RESIZE_OPTION_BOX","ResizeObserverService","TuiScrollService","performanceRef","scroll$","scrollTop","scrollLeft","duration","tuiAssert","assert","initialTop","initialLeft","deltaTop","deltaLeft","of","start","timer","elapsed","easeInOutQuad","clamp","percent","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","Map","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","set","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","scan","prev","distance","distanceBetweenTouches","delta","preventDefault","wheel","deltaY","TUI_ZOOM_OPTIONS"],"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 {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | ReadonlyArray<Element>> {\n private readonly obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\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
 
@@ -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","/**\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
+ {"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,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(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","/**\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"]}
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
  */
@@ -20,10 +26,11 @@ export declare class TuiDayRange extends TuiMonthRange {
20
26
  * TODO rm deprecated version in v3.0
21
27
  */
22
28
  static normalizeParse(rangeString: string, dateFiller: string, dateRangeFiller: string): TuiDayRange;
23
- static normalizeParse(rangeString: string): TuiDayRange;
29
+ static normalizeParse(rangeString: string, dateMode?: TuiDateMode): TuiDayRange;
24
30
  get isSingleDay(): boolean;
25
31
  /**
26
32
  * Human readable format.
33
+ * @deprecated use {@link getFormattedDayRange} instead
27
34
  */
28
35
  get formattedDayRange(): string;
29
36
  /**
@@ -41,4 +48,9 @@ export declare class TuiDayRange extends TuiMonthRange {
41
48
  * @return range — clamped range
42
49
  */
43
50
  dayLimit(min: TuiDay | null, max: TuiDay | null): TuiDayRange;
51
+ /**
52
+ * Human readable format.
53
+ */
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
@@ -48,13 +49,19 @@ export declare class TuiDay extends TuiMonth {
48
49
  */
49
50
  static normalizeOf(year: number, month: number, day: number): TuiDay;
50
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
+ };
51
57
  /**
52
58
  * Parsing a string with date with normalization
53
59
  *
54
- * @param yearMonthDayString date string in format of DD.MM.Yyyy
60
+ * @param rawDate date string
61
+ * @param dateMode date format of the date string (DMY | MDY | YMD)
55
62
  * @return normalized date
56
63
  */
57
- static normalizeParse(yearMonthDayString: string): TuiDay;
64
+ static normalizeParse(rawDate: string, dateMode?: TuiDateMode): TuiDay;
58
65
  /**
59
66
  * Parsing a date stringified in a toJSON format
60
67
  * @param yearMonthDayString date string in format of YYYY-MM-DD
@@ -65,6 +72,8 @@ export declare class TuiDay extends TuiMonth {
65
72
  protected static normalizeDayPart(day: number, month: number, year: number): number;
66
73
  get formattedDayPart(): string;
67
74
  /**
75
+ * @deprecated use {@link getFormattedDay} instead
76
+ * TODO remove in 3.0
68
77
  * Formatted whole date
69
78
  */
70
79
  get formattedDay(): string;
@@ -116,7 +125,11 @@ export declare class TuiDay extends TuiMonth {
116
125
  * @return new date object as a result of offsetting current
117
126
  */
118
127
  append({ year, month, day }: TuiDayLike, backwards?: boolean): TuiDay;
119
- toString(): string;
128
+ /**
129
+ * Returns formatted whole date
130
+ */
131
+ getFormattedDay(dateFormat: TuiDateMode, separator: string): string;
132
+ toString(dateFormat?: TuiDateMode, separator?: string): string;
120
133
  toJSON(): string;
121
134
  /**
122
135
  * Returns native {@link Date} based on local time zone
@@ -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';