@taiga-ui/cdk 2.50.0 → 2.50.1

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 (31) hide show
  1. package/bundles/taiga-ui-cdk-services.umd.js +3 -1
  2. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  4. package/bundles/taiga-ui-cdk-utils-dom.umd.js +46 -0
  5. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  6. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js +1 -1
  7. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  8. package/esm2015/services/directive-styles.service.js +4 -2
  9. package/esm2015/utils/dom/get-viewport-height.js +21 -0
  10. package/esm2015/utils/dom/get-viewport-width.js +21 -0
  11. package/esm2015/utils/dom/index.js +3 -1
  12. package/esm5/services/directive-styles.service.js +4 -2
  13. package/esm5/utils/dom/get-viewport-height.js +22 -0
  14. package/esm5/utils/dom/get-viewport-width.js +22 -0
  15. package/esm5/utils/dom/index.js +3 -1
  16. package/fesm2015/taiga-ui-cdk-services.js +3 -1
  17. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  18. package/fesm2015/taiga-ui-cdk-utils-dom.js +43 -1
  19. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  20. package/fesm5/taiga-ui-cdk-services.js +3 -1
  21. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  22. package/fesm5/taiga-ui-cdk-utils-dom.js +45 -1
  23. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  24. package/package.json +1 -1
  25. package/schematics/ng-update/constants/templates.js +23 -0
  26. package/schematics/ng-update/steps/migrate-templates.js +32 -1
  27. package/services/directive-styles.service.d.ts +3 -1
  28. package/utils/dom/get-viewport-height.d.ts +18 -0
  29. package/utils/dom/get-viewport-width.d.ts +18 -0
  30. package/utils/dom/index.d.ts +2 -0
  31. package/utils/dom/taiga-ui-cdk-utils-dom.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","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","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","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","ReplaySubject","TuiDirectiveStylesService","resolver","injector","documentRef","renderer","map","Map","addComponent","component","has","set","resolveComponentFactory","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","ComponentFactoryResolver","type","Inject","args","Injector","INJECTOR","Document","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","elementRef","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","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","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","elapsed","easeInOutQuad","clamp","percent","timer","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","bufferSize","refCount","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","preventDefault","scan","prev","distance","distanceBetweenTouches","delta","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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\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(): void {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} 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 private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addComponent(component: Type<unknown>): void {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n\n /** @deprecated use components approach */\n addStyle(styles: string, attribute: string): void {\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) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\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 | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly 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 // eslint-disable-next-line rxjs/no-unsafe-takeuntil\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 debounceTime(0),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\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 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 takeUntil(timer(duration)),\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({bufferSize: 1, refCount: false}));\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 preventDefault(),\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 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 takeUntil(typedFromEvent(nativeElement, 'touchend')),\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","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","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","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","ReplaySubject","TuiDirectiveStylesService","resolver","injector","documentRef","renderer","map","Map","addComponent","component","has","set","resolveComponentFactory","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","ComponentFactoryResolver","type","Inject","args","Injector","INJECTOR","Document","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","elementRef","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","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","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","elapsed","easeInOutQuad","clamp","percent","timer","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","bufferSize","refCount","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","preventDefault","scan","prev","distance","distanceBetweenTouches","delta","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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\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(): void {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} 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 private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addComponent(component: Type<unknown>): void {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n\n /** @deprecated use components approach\n * TODO: delete in v3.0\n */\n addStyle(styles: string, attribute: string): void {\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) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\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 | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly 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 // eslint-disable-next-line rxjs/no-unsafe-takeuntil\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 debounceTime(0),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\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 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 takeUntil(timer(duration)),\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({bufferSize: 1, refCount: false}));\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 preventDefault(),\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 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 takeUntil(typedFromEvent(nativeElement, 'touchend')),\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"]}
@@ -181,6 +181,50 @@
181
181
  return getScrollParent(element.parentElement, vertical);
182
182
  }
183
183
 
184
+ /**
185
+ * @description:
186
+ * Cross-browser @media (height)
187
+ *
188
+ * 1. window.innerWidth
189
+ * 1.1. gets CSS viewport @media (height) which include scrollbars
190
+ * 1.2. initial-scale and zoom variations may cause mobile values to
191
+ * wrongly scale down to what PPK calls the visual
192
+ * viewport and be smaller than the @media values
193
+ * 1.3. zoom may cause values to be 1px off due to native rounding
194
+ *
195
+ * 2. document.documentElement.clientHeight
196
+ * 2.1. equals CSS viewport width minus scrollbar width
197
+ * 2.2. matches @media (height) when there is no scrollbar
198
+ * 2.3. available cross-browser
199
+ * 2.4. inaccurate if doctype is missing
200
+ */
201
+ function tuiGetViewportHeight(_a) {
202
+ var document = _a.document, innerHeight = _a.innerHeight;
203
+ return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);
204
+ }
205
+
206
+ /**
207
+ * @description:
208
+ * Cross-browser @media (width)
209
+ *
210
+ * 1. window.innerWidth
211
+ * 1.1. gets CSS viewport @media (width) which include scrollbars
212
+ * 1.2. initial-scale and zoom variations may cause mobile values to
213
+ * wrongly scale down to what PPK calls the visual
214
+ * viewport and be smaller than the @media values
215
+ * 1.3. zoom may cause values to be 1px off due to native rounding
216
+ *
217
+ * 2. document.documentElement.clientWidth
218
+ * 2.1. equals CSS viewport width minus scrollbar width
219
+ * 2.2. matches @media (width) when there is no scrollbar
220
+ * 2.3. available cross-browser
221
+ * 2.4. inaccurate if doctype is missing
222
+ */
223
+ function tuiGetViewportWidth(_a) {
224
+ var document = _a.document, innerWidth = _a.innerWidth;
225
+ return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);
226
+ }
227
+
184
228
  function isCurrentTarget(_a) {
185
229
  var target = _a.target, currentTarget = _a.currentTarget;
186
230
  return target === currentTarget;
@@ -220,6 +264,8 @@
220
264
  exports.isInsideIframe = isInsideIframe;
221
265
  exports.isNodeIn = isNodeIn;
222
266
  exports.tuiCustomEvent = tuiCustomEvent;
267
+ exports.tuiGetViewportHeight = tuiGetViewportHeight;
268
+ exports.tuiGetViewportWidth = tuiGetViewportWidth;
223
269
 
224
270
  Object.defineProperty(exports, '__esModule', { value: true });
225
271
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n"],"names":["clamp","isPresent","tuiAssert"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/get-viewport-height.ts","ng://@taiga-ui/cdk/utils/dom/get-viewport-width.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","/**\n * @description:\n * Cross-browser @media (height)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (height) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n","/**\n * @description:\n * Cross-browser @media (width)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientWidth\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (width) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n"],"names":["clamp","isPresent","tuiAssert"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@taiga-ui/cdk/utils/math"),require("@taiga-ui/cdk/utils/miscellaneous"),require("@taiga-ui/cdk/classes")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/dom",["exports","@taiga-ui/cdk/utils/math","@taiga-ui/cdk/utils/miscellaneous","@taiga-ui/cdk/classes"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].cdk=t["taiga-ui"].cdk||{},t["taiga-ui"].cdk.utils=t["taiga-ui"].cdk.utils||{},t["taiga-ui"].cdk.utils.dom={}),t["taiga-ui"].cdk.utils.math,t["taiga-ui"].cdk.utils.miscellaneous,t["taiga-ui"].cdk.classes)}(this,(function(t,e,n,i){"use strict";function o(t,e){var n=Element.prototype.closest;if(n)return n.call(t,e);var i=Element.prototype.matches||Element.prototype.msMatchesSelector;do{if(i.call(t,e))return t;t=t.parentElement}while(null!==t);return null}function r(t){return"getRootNode"in t&&t.isConnected?t.getRootNode():t.ownerDocument}t.canScroll=function(t,e,n,i){return n?function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollTop)>0&&!n||Math.ceil(i.scrollTop+i.clientHeight)<i.scrollHeight&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i):function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollLeft)>0&&!n||Math.ceil(i.scrollLeft+i.clientWidth)<i.scrollWidth&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i)},t.containsOrAfter=function(t,e){return t.contains(e)||!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)},t.getActualTarget=function(t){return"composedPath"in t?t.composedPath()[0]:t.target},t.getClipboardDataText=function(t,e){return void 0===e&&(e="text/plain"),"clipboardData"in t&&null!==t.clipboardData?t.clipboardData.getData(e)||t.clipboardData.getData("text/plain"):t.target.ownerDocument.defaultView.clipboardData.getData("text")},t.getClosestElement=o,t.getDocumentOrShadowRoot=r,t.getElementObscurers=function(t){var i=t.ownerDocument;if(!i||!i.defaultView)return null;var o=i.defaultView,a=o.innerWidth,l=o.innerHeight,u=r(t),c=t.getBoundingClientRect(),s=e.clamp(Math.round(c.left)+2,0,a),f=e.clamp(Math.round(c.top)+2,0,l),d=e.clamp(Math.round(c.right)-2,0,a),m=e.clamp(Math.round(c.bottom)-2,0,l),p=e.clamp(Math.round(c.left+c.width/2),0,a),g=e.clamp(Math.round(c.top+c.height/2),0,l),h=[u.elementFromPoint(p,f),u.elementFromPoint(p,m),u.elementFromPoint(s,g),u.elementFromPoint(d,g)].filter(n.isPresent);if(!h.length)return h;var E=h.filter((function(e){return!t.contains(e)}));return 4===E.length?E:null},t.getElementOffset=function(t,e){i.tuiAssert.assert(t.contains(e),"Host must contain element");for(var n=e.offsetTop,o=e.offsetLeft,r=e.offsetParent;r&&r instanceof HTMLElement&&r!==t;)n+=r.offsetTop,o+=r.offsetLeft,r=r.offsetParent;return{offsetTop:n,offsetLeft:o}},t.getScrollParent=function t(e,n){return void 0===n&&(n=!0),null===e?null:n&&e.scrollHeight>e.clientHeight||!n&&e.scrollWidth>e.clientWidth?e:t(e.parentElement,n)},t.isCurrentTarget=function(t){return t.target===t.currentTarget},t.isInsideIframe=function(t){return t.parent!==t},t.isNodeIn=function(t,e){return t.nodeType===Node.TEXT_NODE?!!t.parentElement&&!!o(t.parentElement,e):t.nodeType===Node.ELEMENT_NODE&&!!o(t,e)},t.tuiCustomEvent=function(t,e,n){var i=void 0===e?{}:e,o=i.bubbles,r=void 0!==o&&o,a=i.cancelable,l=void 0!==a&&a,u=i.detail,c=void 0===u?null:u;if("function"==typeof CustomEvent)return new CustomEvent(t,{bubbles:r,cancelable:l,detail:c});var s=n.createEvent("CustomEvent");return s.initCustomEvent(t,r,l,c),s},Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@taiga-ui/cdk/utils/math"),require("@taiga-ui/cdk/utils/miscellaneous"),require("@taiga-ui/cdk/classes")):"function"==typeof define&&define.amd?define("@taiga-ui/cdk/utils/dom",["exports","@taiga-ui/cdk/utils/math","@taiga-ui/cdk/utils/miscellaneous","@taiga-ui/cdk/classes"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].cdk=t["taiga-ui"].cdk||{},t["taiga-ui"].cdk.utils=t["taiga-ui"].cdk.utils||{},t["taiga-ui"].cdk.utils.dom={}),t["taiga-ui"].cdk.utils.math,t["taiga-ui"].cdk.utils.miscellaneous,t["taiga-ui"].cdk.classes)}(this,(function(t,e,n,i){"use strict";function r(t,e){var n=Element.prototype.closest;if(n)return n.call(t,e);var i=Element.prototype.matches||Element.prototype.msMatchesSelector;do{if(i.call(t,e))return t;t=t.parentElement}while(null!==t);return null}function o(t){return"getRootNode"in t&&t.isConnected?t.getRootNode():t.ownerDocument}t.canScroll=function(t,e,n,i){return n?function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollTop)>0&&!n||Math.ceil(i.scrollTop+i.clientHeight)<i.scrollHeight&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i):function(t,e,n){var i=t;for(;i!==e.parentElement;){if(Math.floor(i.scrollLeft)>0&&!n||Math.ceil(i.scrollLeft+i.clientWidth)<i.scrollWidth&&n)return!0;if(!i.parentElement)return!1;i=i.parentElement}return!1}(t,e,i)},t.containsOrAfter=function(t,e){return t.contains(e)||!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)},t.getActualTarget=function(t){return"composedPath"in t?t.composedPath()[0]:t.target},t.getClipboardDataText=function(t,e){return void 0===e&&(e="text/plain"),"clipboardData"in t&&null!==t.clipboardData?t.clipboardData.getData(e)||t.clipboardData.getData("text/plain"):t.target.ownerDocument.defaultView.clipboardData.getData("text")},t.getClosestElement=r,t.getDocumentOrShadowRoot=o,t.getElementObscurers=function(t){var i=t.ownerDocument;if(!i||!i.defaultView)return null;var r=i.defaultView,a=r.innerWidth,l=r.innerHeight,u=o(t),c=t.getBoundingClientRect(),s=e.clamp(Math.round(c.left)+2,0,a),f=e.clamp(Math.round(c.top)+2,0,l),d=e.clamp(Math.round(c.right)-2,0,a),m=e.clamp(Math.round(c.bottom)-2,0,l),p=e.clamp(Math.round(c.left+c.width/2),0,a),g=e.clamp(Math.round(c.top+c.height/2),0,l),h=[u.elementFromPoint(p,f),u.elementFromPoint(p,m),u.elementFromPoint(s,g),u.elementFromPoint(d,g)].filter(n.isPresent);if(!h.length)return h;var E=h.filter((function(e){return!t.contains(e)}));return 4===E.length?E:null},t.getElementOffset=function(t,e){i.tuiAssert.assert(t.contains(e),"Host must contain element");for(var n=e.offsetTop,r=e.offsetLeft,o=e.offsetParent;o&&o instanceof HTMLElement&&o!==t;)n+=o.offsetTop,r+=o.offsetLeft,o=o.offsetParent;return{offsetTop:n,offsetLeft:r}},t.getScrollParent=function t(e,n){return void 0===n&&(n=!0),null===e?null:n&&e.scrollHeight>e.clientHeight||!n&&e.scrollWidth>e.clientWidth?e:t(e.parentElement,n)},t.isCurrentTarget=function(t){return t.target===t.currentTarget},t.isInsideIframe=function(t){return t.parent!==t},t.isNodeIn=function(t,e){return t.nodeType===Node.TEXT_NODE?!!t.parentElement&&!!r(t.parentElement,e):t.nodeType===Node.ELEMENT_NODE&&!!r(t,e)},t.tuiCustomEvent=function(t,e,n){var i=void 0===e?{}:e,r=i.bubbles,o=void 0!==r&&r,a=i.cancelable,l=void 0!==a&&a,u=i.detail,c=void 0===u?null:u;if("function"==typeof CustomEvent)return new CustomEvent(t,{bubbles:o,cancelable:l,detail:c});var s=n.createEvent("CustomEvent");return s.initCustomEvent(t,o,l,c),s},t.tuiGetViewportHeight=function(t){var e=t.document,n=t.innerHeight;return Math.max(e.documentElement.clientHeight||0,n||0)},t.tuiGetViewportWidth=function(t){var e=t.document,n=t.innerWidth;return Math.max(e.documentElement.clientWidth||0,n||0)},Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=taiga-ui-cdk-utils-dom.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts"],"names":["getClosestElement","element","selector","closest","Element","prototype","call","matchesSelector","matches","msMatchesSelector","parentElement","getDocumentOrShadowRoot","node","isConnected","getRootNode","ownerDocument","rootElement","vertical","scrollEnd","currentElement","Math","floor","scrollTop","ceil","clientHeight","scrollHeight","canScrollVertical","scrollLeft","clientWidth","scrollWidth","canScrollHorizontal","current","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","event","composedPath","target","format","clipboardData","getData","defaultView","_a","innerWidth","innerHeight","documentRef","rect","getBoundingClientRect","left","clamp","round","top","right","bottom","horizontalMiddle","width","verticalMiddle","height","nonNull","elementFromPoint","filter","isPresent","length","filtered","el","host","tuiAssert","assert","offsetTop","offsetLeft","offsetParent","HTMLElement","getScrollParent","currentTarget","windowRef","parent","nodeType","TEXT_NODE","ELEMENT_NODE","name","_b","_c","bubbles","_d","cancelable","_e","detail","CustomEvent","customEvent","createEvent","initCustomEvent"],"mappings":"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","sourcesContent":["/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n"]}
1
+ {"version":3,"sources":["ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-viewport-height.ts","ng://@taiga-ui/cdk/utils/dom/get-viewport-width.ts"],"names":["getClosestElement","element","selector","closest","Element","prototype","call","matchesSelector","matches","msMatchesSelector","parentElement","getDocumentOrShadowRoot","node","isConnected","getRootNode","ownerDocument","rootElement","vertical","scrollEnd","currentElement","Math","floor","scrollTop","ceil","clientHeight","scrollHeight","canScrollVertical","scrollLeft","clientWidth","scrollWidth","canScrollHorizontal","current","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","event","composedPath","target","format","clipboardData","getData","defaultView","_a","innerWidth","innerHeight","documentRef","rect","getBoundingClientRect","left","clamp","round","top","right","bottom","horizontalMiddle","width","verticalMiddle","height","nonNull","elementFromPoint","filter","isPresent","length","filtered","el","host","tuiAssert","assert","offsetTop","offsetLeft","offsetParent","HTMLElement","getScrollParent","currentTarget","windowRef","parent","nodeType","TEXT_NODE","ELEMENT_NODE","name","_b","_c","bubbles","_d","cancelable","_e","detail","CustomEvent","customEvent","createEvent","initCustomEvent","document","max","documentElement"],"mappings":"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","sourcesContent":["/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @description:\n * Cross-browser @media (height)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (height) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n","/**\n * @description:\n * Cross-browser @media (width)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientWidth\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (width) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n"]}
@@ -22,7 +22,9 @@ let TuiDirectiveStylesService = class TuiDirectiveStylesService {
22
22
  this.map.set(component, this.resolver.resolveComponentFactory(component).create(this.injector));
23
23
  }
24
24
  }
25
- /** @deprecated use components approach */
25
+ /** @deprecated use components approach
26
+ * TODO: delete in v3.0
27
+ */
26
28
  addStyle(styles, attribute) {
27
29
  if (this.documentRef.head.querySelector(`style[${attribute}]`)) {
28
30
  return;
@@ -50,4 +52,4 @@ TuiDirectiveStylesService = __decorate([
50
52
  __param(3, Inject(TUI_DEFAULT_RENDERER))
51
53
  ], TuiDirectiveStylesService);
52
54
  export { TuiDirectiveStylesService };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLXN0eWxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcy8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZS1zdHlsZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFMUQ7OztHQUdHO0FBSUgsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFHbEMsWUFFcUIsUUFBa0MsRUFDaEIsUUFBa0IsRUFDbEIsV0FBcUIsRUFDVCxRQUFtQjtRQUhqRCxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ1QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVByRCxRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFRdEQsQ0FBQztJQUVKLFlBQVksQ0FBQyxTQUF3QjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1IsU0FBUyxFQUNULElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekUsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxRQUFRLENBQUMsTUFBYyxFQUFFLFNBQWlCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUM1RCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDSixDQUFBOztZQTNCa0Msd0JBQXdCLHVCQURsRCxNQUFNLFNBQUMsd0JBQXdCO1lBRWEsUUFBUSx1QkFBcEQsTUFBTSxTQUFDLFFBQVE7WUFDZ0MsUUFBUSx1QkFBdkQsTUFBTSxTQUFDLFFBQVE7WUFDeUMsU0FBUyx1QkFBakUsTUFBTSxTQUFDLG9CQUFvQjs7O0FBUnZCLHlCQUF5QjtJQUhyQyxVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0lBS08sV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUVoQyxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNoQixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNoQixXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0dBUnhCLHlCQUF5QixDQWdDckM7U0FoQ1kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIElOSkVDVE9SLFxuICAgIEluamVjdG9yLFxuICAgIFJlbmRlcmVyMixcbiAgICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX0RFRkFVTFRfUkVOREVSRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHVzZSBzdHlsZXMgd2l0aCBkaXJlY3RpdmVzXG4gKiBAZHluYW1pY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEaXJlY3RpdmVTdHlsZXNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hcCA9IG5ldyBNYXA8VHlwZTx1bmtub3duPiwgdW5rbm93bj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBASW5qZWN0KElOSkVDVE9SKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoVFVJX0RFRkFVTFRfUkVOREVSRVIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICApIHt9XG5cbiAgICBhZGRDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPHVua25vd24+KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tYXAuaGFzKGNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubWFwLnNldChcbiAgICAgICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpLmNyZWF0ZSh0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGNvbXBvbmVudHMgYXBwcm9hY2ggKi9cbiAgICBhZGRTdHlsZShzdHlsZXM6IHN0cmluZywgYXR0cmlidXRlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRSZWYuaGVhZC5xdWVyeVNlbGVjdG9yKGBzdHlsZVske2F0dHJpYnV0ZX1dYCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoc3R5bGUsICd0ZXh0Q29udGVudCcsIHN0eWxlcyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN0eWxlLCBhdHRyaWJ1dGUsICcnKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFJlZi5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLXN0eWxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcy8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZS1zdHlsZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFMUQ7OztHQUdHO0FBSUgsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFHbEMsWUFFcUIsUUFBa0MsRUFDaEIsUUFBa0IsRUFDbEIsV0FBcUIsRUFDVCxRQUFtQjtRQUhqRCxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ1QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVByRCxRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFRdEQsQ0FBQztJQUVKLFlBQVksQ0FBQyxTQUF3QjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1IsU0FBUyxFQUNULElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekUsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLE1BQWMsRUFBRSxTQUFpQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDNUQsT0FBTztTQUNWO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0osQ0FBQTs7WUE3QmtDLHdCQUF3Qix1QkFEbEQsTUFBTSxTQUFDLHdCQUF3QjtZQUVhLFFBQVEsdUJBQXBELE1BQU0sU0FBQyxRQUFRO1lBQ2dDLFFBQVEsdUJBQXZELE1BQU0sU0FBQyxRQUFRO1lBQ3lDLFNBQVMsdUJBQWpFLE1BQU0sU0FBQyxvQkFBb0I7OztBQVJ2Qix5QkFBeUI7SUFIckMsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztJQUtPLFdBQUEsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFFaEMsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtHQVJ4Qix5QkFBeUIsQ0FrQ3JDO1NBbENZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJTkpFQ1RPUixcbiAgICBJbmplY3RvcixcbiAgICBSZW5kZXJlcjIsXG4gICAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9ERUZBVUxUX1JFTkRFUkVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5cbi8qKlxuICogU2VydmljZSB0byB1c2Ugc3R5bGVzIHdpdGggZGlyZWN0aXZlc1xuICogQGR5bmFtaWNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRGlyZWN0aXZlU3R5bGVzU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXAgPSBuZXcgTWFwPFR5cGU8dW5rbm93bj4sIHVua25vd24+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgQEluamVjdChJTkpFQ1RPUikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFRVSV9ERUZBVUxUX1JFTkRFUkVSKSBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgKSB7fVxuXG4gICAgYWRkQ29tcG9uZW50KGNvbXBvbmVudDogVHlwZTx1bmtub3duPik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubWFwLmhhcyhjb21wb25lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLm1hcC5zZXQoXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KS5jcmVhdGUodGhpcy5pbmplY3RvciksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSBjb21wb25lbnRzIGFwcHJvYWNoXG4gICAgICogVE9ETzogZGVsZXRlIGluIHYzLjBcbiAgICAgKi9cbiAgICBhZGRTdHlsZShzdHlsZXM6IHN0cmluZywgYXR0cmlidXRlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRSZWYuaGVhZC5xdWVyeVNlbGVjdG9yKGBzdHlsZVske2F0dHJpYnV0ZX1dYCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoc3R5bGUsICd0ZXh0Q29udGVudCcsIHN0eWxlcyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN0eWxlLCBhdHRyaWJ1dGUsICcnKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFJlZi5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @description:
3
+ * Cross-browser @media (height)
4
+ *
5
+ * 1. window.innerWidth
6
+ * 1.1. gets CSS viewport @media (height) which include scrollbars
7
+ * 1.2. initial-scale and zoom variations may cause mobile values to
8
+ * wrongly scale down to what PPK calls the visual
9
+ * viewport and be smaller than the @media values
10
+ * 1.3. zoom may cause values to be 1px off due to native rounding
11
+ *
12
+ * 2. document.documentElement.clientHeight
13
+ * 2.1. equals CSS viewport width minus scrollbar width
14
+ * 2.2. matches @media (height) when there is no scrollbar
15
+ * 2.3. available cross-browser
16
+ * 2.4. inaccurate if doctype is missing
17
+ */
18
+ export function tuiGetViewportHeight({ document, innerHeight }) {
19
+ return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZXdwb3J0LWhlaWdodC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiZ2V0LXZpZXdwb3J0LWhlaWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQVM7SUFDaEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxJQUFJLENBQUMsRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uOlxuICogQ3Jvc3MtYnJvd3NlciBAbWVkaWEgKGhlaWdodClcbiAqXG4gKiAxLiB3aW5kb3cuaW5uZXJXaWR0aFxuICogMS4xLiBnZXRzIENTUyB2aWV3cG9ydCBAbWVkaWEgKGhlaWdodCkgd2hpY2ggaW5jbHVkZSBzY3JvbGxiYXJzXG4gKiAxLjIuIGluaXRpYWwtc2NhbGUgYW5kIHpvb20gdmFyaWF0aW9ucyBtYXkgY2F1c2UgbW9iaWxlIHZhbHVlcyB0b1xuICogICAgICB3cm9uZ2x5IHNjYWxlIGRvd24gdG8gd2hhdCBQUEsgY2FsbHMgdGhlIHZpc3VhbFxuICogICAgICB2aWV3cG9ydCBhbmQgYmUgc21hbGxlciB0aGFuIHRoZSBAbWVkaWEgdmFsdWVzXG4gKiAgMS4zLiB6b29tIG1heSBjYXVzZSB2YWx1ZXMgdG8gYmUgMXB4IG9mZiBkdWUgdG8gbmF0aXZlIHJvdW5kaW5nXG4gKlxuICogIDIuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcbiAqICAyLjEuIGVxdWFscyBDU1Mgdmlld3BvcnQgd2lkdGggbWludXMgc2Nyb2xsYmFyIHdpZHRoXG4gKiAgMi4yLiBtYXRjaGVzIEBtZWRpYSAoaGVpZ2h0KSB3aGVuIHRoZXJlIGlzIG5vIHNjcm9sbGJhclxuICogIDIuMy4gYXZhaWxhYmxlIGNyb3NzLWJyb3dzZXJcbiAqICAyLjQuIGluYWNjdXJhdGUgaWYgZG9jdHlwZSBpcyBtaXNzaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0dWlHZXRWaWV3cG9ydEhlaWdodCh7ZG9jdW1lbnQsIGlubmVySGVpZ2h0fTogV2luZG93KTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCB8fCAwLCBpbm5lckhlaWdodCB8fCAwKTtcbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @description:
3
+ * Cross-browser @media (width)
4
+ *
5
+ * 1. window.innerWidth
6
+ * 1.1. gets CSS viewport @media (width) which include scrollbars
7
+ * 1.2. initial-scale and zoom variations may cause mobile values to
8
+ * wrongly scale down to what PPK calls the visual
9
+ * viewport and be smaller than the @media values
10
+ * 1.3. zoom may cause values to be 1px off due to native rounding
11
+ *
12
+ * 2. document.documentElement.clientWidth
13
+ * 2.1. equals CSS viewport width minus scrollbar width
14
+ * 2.2. matches @media (width) when there is no scrollbar
15
+ * 2.3. available cross-browser
16
+ * 2.4. inaccurate if doctype is missing
17
+ */
18
+ export function tuiGetViewportWidth({ document, innerWidth }) {
19
+ return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZXdwb3J0LXdpZHRoLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9kb20vIiwic291cmNlcyI6WyJnZXQtdmlld3BvcnQtd2lkdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBQyxRQUFRLEVBQUUsVUFBVSxFQUFTO0lBQzlELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsSUFBSSxDQUFDLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbjpcbiAqIENyb3NzLWJyb3dzZXIgQG1lZGlhICh3aWR0aClcbiAqXG4gKiAxLiB3aW5kb3cuaW5uZXJXaWR0aFxuICogMS4xLiBnZXRzIENTUyB2aWV3cG9ydCBAbWVkaWEgKHdpZHRoKSB3aGljaCBpbmNsdWRlIHNjcm9sbGJhcnNcbiAqIDEuMi4gaW5pdGlhbC1zY2FsZSBhbmQgem9vbSB2YXJpYXRpb25zIG1heSBjYXVzZSBtb2JpbGUgdmFsdWVzIHRvXG4gKiAgICAgIHdyb25nbHkgc2NhbGUgZG93biB0byB3aGF0IFBQSyBjYWxscyB0aGUgdmlzdWFsXG4gKiAgICAgIHZpZXdwb3J0IGFuZCBiZSBzbWFsbGVyIHRoYW4gdGhlIEBtZWRpYSB2YWx1ZXNcbiAqICAxLjMuIHpvb20gbWF5IGNhdXNlIHZhbHVlcyB0byBiZSAxcHggb2ZmIGR1ZSB0byBuYXRpdmUgcm91bmRpbmdcbiAqXG4gKiAgMi4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gKiAgMi4xLiBlcXVhbHMgQ1NTIHZpZXdwb3J0IHdpZHRoIG1pbnVzIHNjcm9sbGJhciB3aWR0aFxuICogIDIuMi4gbWF0Y2hlcyBAbWVkaWEgKHdpZHRoKSB3aGVuIHRoZXJlIGlzIG5vIHNjcm9sbGJhclxuICogIDIuMy4gYXZhaWxhYmxlIGNyb3NzLWJyb3dzZXJcbiAqICAyLjQuIGluYWNjdXJhdGUgaWYgZG9jdHlwZSBpcyBtaXNzaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0dWlHZXRWaWV3cG9ydFdpZHRoKHtkb2N1bWVudCwgaW5uZXJXaWR0aH06IFdpbmRvdyk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAwLCBpbm5lcldpZHRoIHx8IDApO1xufVxuIl19