@taiga-ui/cdk 2.34.0 → 2.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-cdk-date-time.umd.js +6 -0
- package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +31 -48
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +2 -2
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
- package/date-time/month-range.d.ts +4 -0
- package/date-time/month.d.ts +2 -0
- package/directives/auto-focus/autofocus.directive.d.ts +3 -6
- package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
- package/esm2015/date-time/month-range.js +5 -1
- package/esm2015/date-time/month.js +3 -1
- package/esm2015/directives/auto-focus/autofocus.directive.js +29 -45
- package/esm2015/services/parents-scroll.service.js +3 -2
- package/esm5/date-time/month-range.js +5 -1
- package/esm5/date-time/month.js +3 -1
- package/esm5/directives/auto-focus/autofocus.directive.js +29 -47
- package/esm5/services/parents-scroll.service.js +3 -3
- package/fesm2015/taiga-ui-cdk-date-time.js +6 -0
- package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +28 -44
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-services.js +2 -1
- package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
- package/fesm5/taiga-ui-cdk-date-time.js +6 -0
- package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js +28 -46
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-services.js +2 -2
- package/fesm5/taiga-ui-cdk-services.js.map +1 -1
- package/package.json +1 -1
- package/services/parents-scroll.service.d.ts +1 -1
- package/services/taiga-ui-cdk-services.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","ReplaySubject","TuiDirectiveStylesService","documentRef","renderer","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","Document","type","Inject","args","DOCUMENT","Renderer2","TUI_DEFAULT_RENDERER","providedIn","TuiFocusVisibleService","_a","changeDetectorRef","destroy$","nativeElement","_this","subscriber","focusVisible$","subscribe","focusVisibleObservable","pipe","watch","takeUntil","ElementRef","ChangeDetectorRef","Observable","TuiHoveredService","ngZone","documentEvents$","merge","typedFromEvent","capture","createHovered$","options","passive","switchMap","filter","event","contains","getActualTarget","tuiZoneOptimized","take","mapTo","startWith","distinctUntilChanged","NgZone","TuiIdService","generate","TuiIdService_1","autoId","Date","now","TuiParentsScrollService","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","map","element","Window","WINDOW","TuiObscuredService","parentsScroll$","animationFrame$","obscured$","fromEvent","delay","throttleTime","POLLING_TIME","getElementObscurers","Self","ANIMATION_FRAME","TuiPanService","switchMapTo","touches","pairwise","_b","first","second","clientX","clientY","repeat","TuiResizeService","elementRef","support","box","catchError","clientWidth","clientHeight","EMPTY_ARRAY","debounceTime","tuiZonefree","RESIZE_OBSERVER_SUPPORT","RESIZE_OPTION_BOX","ResizeObserverService","TuiScrollService","performanceRef","scroll$","scrollTop","scrollLeft","duration","tuiAssert","assert","initialTop","initialLeft","deltaTop","deltaLeft","of","start","timer","elapsed","easeInOutQuad","clamp","percent","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","Map","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","set","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","scan","prev","distance","distanceBetweenTouches","delta","preventDefault","wheel","deltaY","TUI_ZOOM_OPTIONS"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | ReadonlyArray<Element>> {\n private readonly obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","TuiDestroyService","_super","ngOnDestroy","complete","Injectable","ReplaySubject","TuiDirectiveStylesService","documentRef","renderer","addStyle","styles","attribute","head","querySelector","style","createElement","setProperty","setAttribute","appendChild","Document","type","Inject","args","DOCUMENT","Renderer2","TUI_DEFAULT_RENDERER","providedIn","TuiFocusVisibleService","_a","changeDetectorRef","destroy$","nativeElement","_this","subscriber","focusVisible$","subscribe","focusVisibleObservable","pipe","watch","takeUntil","ElementRef","ChangeDetectorRef","Observable","TuiHoveredService","ngZone","documentEvents$","merge","typedFromEvent","capture","createHovered$","options","passive","switchMap","filter","event","contains","getActualTarget","tuiZoneOptimized","take","mapTo","startWith","distinctUntilChanged","NgZone","TuiIdService","generate","TuiIdService_1","autoId","Date","now","TuiParentsScrollService","elementRef","windowRef","callback$","defer","eventTargets","parentElement","apply","concat","__spread","map","element","Window","WINDOW","TuiObscuredService","parentsScroll$","animationFrame$","obscured$","fromEvent","delay","throttleTime","POLLING_TIME","getElementObscurers","Self","ANIMATION_FRAME","TuiPanService","switchMapTo","touches","pairwise","_b","first","second","clientX","clientY","repeat","TuiResizeService","support","box","catchError","clientWidth","clientHeight","EMPTY_ARRAY","debounceTime","tuiZonefree","RESIZE_OBSERVER_SUPPORT","RESIZE_OPTION_BOX","ResizeObserverService","TuiScrollService","performanceRef","scroll$","scrollTop","scrollLeft","duration","tuiAssert","assert","initialTop","initialLeft","deltaTop","deltaLeft","of","start","timer","elapsed","easeInOutQuad","clamp","percent","tap","Performance","PERFORMANCE","TuiStaticRequestService","cache","Map","request","url","get","piped","observer","xhr","XMLHttpRequest","onreadystatechange","readyState","response","responseType","responseText","status","open","send","abort","shareReplay","set","TuiSwipeService","timeout","threshold","identifier","changedTouches","end","startX","startY","distanceX","distanceY","timeStamp","Math","abs","direction","getSwipeDirection","events","isPresent","TUI_SWIPE_OPTIONS","TuiZoomService","wheelSensitivity","startEvent","scan","prev","distance","distanceBetweenTouches","delta","preventDefault","wheel","deltaY","TUI_ZOOM_OPTIONS"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) 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 | ReadonlyArray<Element>> {\n private readonly obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n"]}
|
|
@@ -8,6 +8,10 @@ export declare class TuiMonthRange {
|
|
|
8
8
|
constructor(from: TuiMonth, to: TuiMonth);
|
|
9
9
|
static sort(month1: TuiMonth, month2: TuiMonth): TuiMonthRange;
|
|
10
10
|
get isSingleMonth(): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated
|
|
13
|
+
* TODO remove in 3.0
|
|
14
|
+
*/
|
|
11
15
|
get formattedMonthRange(): string;
|
|
12
16
|
monthSame(another: TuiMonthRange): boolean;
|
|
13
17
|
toString(): string;
|
package/date-time/month.d.ts
CHANGED
|
@@ -38,6 +38,8 @@ export declare class TuiMonth extends TuiYear implements TuiMonthLike {
|
|
|
38
38
|
private static isValidMonthPart;
|
|
39
39
|
get formattedMonthPart(): string;
|
|
40
40
|
/**
|
|
41
|
+
* @deprecated
|
|
42
|
+
* TODO remove in 3.0
|
|
41
43
|
* Formatter month and year
|
|
42
44
|
*/
|
|
43
45
|
get formattedMonth(): string;
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
1
|
+
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
|
|
2
2
|
import { TuiFocusableElementAccessor } from '@taiga-ui/cdk/interfaces';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
export declare class TuiAutoFocusDirective implements AfterViewInit {
|
|
5
|
-
private readonly
|
|
5
|
+
private readonly injector;
|
|
6
6
|
private readonly elementRef;
|
|
7
7
|
private readonly tuiFocusableComponent;
|
|
8
8
|
private readonly isIos;
|
|
9
|
-
private readonly renderer;
|
|
10
|
-
private readonly viewContainerRef;
|
|
11
9
|
private readonly animationFrame$;
|
|
12
10
|
autoFocus: boolean;
|
|
13
|
-
constructor(
|
|
11
|
+
constructor(injector: Injector, elementRef: ElementRef<HTMLElement>, tuiFocusableComponent: TuiFocusableElementAccessor | null, isIos: boolean, animationFrame$: Observable<number>);
|
|
14
12
|
ngAfterViewInit(): void;
|
|
15
|
-
private veryVerySadIosFix;
|
|
16
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"TuiAutoFocusDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[tuiAutoFocus]"}]}],"members":{"autoFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"TuiAutoFocusDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[tuiAutoFocus]"}]}],"members":{"autoFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"INJECTOR","line":34,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":35,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":35,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":37,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":38,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_IS_IOS","line":40,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":41,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":41,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":34,"character":53},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":35,"character":68,"context":{"typeName":"HTMLElement"},"module":"./autofocus.directive"}]},{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":39,"character":48},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"TuiAutoFocusModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}],"exports":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}]}]}],"members":{}}},"origins":{"TuiAutoFocusDirective":"./autofocus.directive","TuiAutoFocusModule":"./autofocus.module"},"importAs":"@taiga-ui/cdk/directives/auto-focus"}
|
|
@@ -17,6 +17,10 @@ export class TuiMonthRange {
|
|
|
17
17
|
get isSingleMonth() {
|
|
18
18
|
return this.from.monthSame(this.to);
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated
|
|
22
|
+
* TODO remove in 3.0
|
|
23
|
+
*/
|
|
20
24
|
get formattedMonthRange() {
|
|
21
25
|
return `${this.from.formattedMonth}${RANGE_SEPARATOR_CHAR}${this.to.formattedMonth}`;
|
|
22
26
|
}
|
|
@@ -27,4 +31,4 @@ export class TuiMonthRange {
|
|
|
27
31
|
return `${this.from}${RANGE_SEPARATOR_CHAR}${this.to}`;
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcmFuZ2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RhdGUtdGltZS8iLCJzb3VyY2VzIjpbIm1vbnRoLXJhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFHakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUFxQixJQUFjLEVBQVcsRUFBWTtRQUFyQyxTQUFJLEdBQUosSUFBSSxDQUFVO1FBQVcsT0FBRSxHQUFGLEVBQUUsQ0FBVTtRQUN0RCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWdCLEVBQUUsTUFBZ0I7UUFDMUMsT0FBTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6RixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQXNCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcblxuaW1wb3J0IHtSQU5HRV9TRVBBUkFUT1JfQ0hBUn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlNb250aH0gZnJvbSAnLi9tb250aCc7XG5cbi8qKlxuICogQW4gaW1tdXRhYmxlIHJhbmdlIG9mIHR3byB7QGxpbmsgVHVpTW9udGh9IG9iamVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aU1vbnRoUmFuZ2Uge1xuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZyb206IFR1aU1vbnRoLCByZWFkb25seSB0bzogVHVpTW9udGgpIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChmcm9tLm1vbnRoU2FtZU9yQmVmb3JlKHRvKSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNvcnQobW9udGgxOiBUdWlNb250aCwgbW9udGgyOiBUdWlNb250aCk6IFR1aU1vbnRoUmFuZ2Uge1xuICAgICAgICByZXR1cm4gbW9udGgxLm1vbnRoU2FtZU9yQmVmb3JlKG1vbnRoMilcbiAgICAgICAgICAgID8gbmV3IFR1aU1vbnRoUmFuZ2UobW9udGgxLCBtb250aDIpXG4gICAgICAgICAgICA6IG5ldyBUdWlNb250aFJhbmdlKG1vbnRoMiwgbW9udGgxKTtcbiAgICB9XG5cbiAgICBnZXQgaXNTaW5nbGVNb250aCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbS5tb250aFNhbWUodGhpcy50byk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBUT0RPIHJlbW92ZSBpbiAzLjBcbiAgICAgKi9cbiAgICBnZXQgZm9ybWF0dGVkTW9udGhSYW5nZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5mcm9tLmZvcm1hdHRlZE1vbnRofSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHt0aGlzLnRvLmZvcm1hdHRlZE1vbnRofWA7XG4gICAgfVxuXG4gICAgbW9udGhTYW1lKGFub3RoZXI6IFR1aU1vbnRoUmFuZ2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbS5tb250aFNhbWUoYW5vdGhlci5mcm9tKSAmJiB0aGlzLnRvLm1vbnRoU2FtZShhbm90aGVyLnRvKTtcbiAgICB9XG5cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5mcm9tfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHt0aGlzLnRvfWA7XG4gICAgfVxufVxuIl19
|
|
@@ -75,6 +75,8 @@ export class TuiMonth extends TuiYear {
|
|
|
75
75
|
return padStart(String(this.month + 1), 2, '0');
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
+
* @deprecated
|
|
79
|
+
* TODO remove in 3.0
|
|
78
80
|
* Formatter month and year
|
|
79
81
|
*/
|
|
80
82
|
get formattedMonth() {
|
|
@@ -175,4 +177,4 @@ export class TuiMonth extends TuiYear {
|
|
|
175
177
|
return new Date(Date.UTC(this.year, this.month));
|
|
176
178
|
}
|
|
177
179
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RhdGUtdGltZS8iLCJzb3VyY2VzIjpbIm1vbnRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUdoRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDL0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUUvQjs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsT0FBTztJQUNqQzs7O09BR0c7SUFDSCxZQUFZLElBQVksRUFBVyxLQUFhO1FBQzVDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURtQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBRTVDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzNDLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxVQUFtQjtRQUN2RCxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRW5ELFFBQVEsS0FBSyxFQUFFO1lBQ1g7Z0JBQ0ksT0FB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QixLQUFLO1FBQ2xFLElBQUksU0FBUyxFQUFFO1lBQ1gsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ1gsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2Y7UUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxRQUFRLENBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLEVBQ3hDLFdBQVcsR0FBRyxjQUFjLENBQy9CLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ1gsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0dWlBc3NlcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aU1vbnRoTnVtYmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2VudW1zJztcbmltcG9ydCB7VHVpTW9udGhMaWtlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtwYWRTdGFydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb3JtYXQnO1xuaW1wb3J0IHtpblJhbmdlLCBub3JtYWxpemVUb0ludE51bWJlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcblxuaW1wb3J0IHtEQVlTX0lOX1dFRUssIE1BWF9NT05USCwgTUlOX01PTlRILCBNT05USFNfSU5fWUVBUn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlZZWFyfSBmcm9tICcuL3llYXInO1xuXG4vKipcbiAqIEltbXV0YWJsZSBvYmplY3QgY29uc2lzdGluZyBvZiB5ZWFyIGFuZCBtb250aFxuICovXG5leHBvcnQgY2xhc3MgVHVpTW9udGggZXh0ZW5kcyBUdWlZZWFyIGltcGxlbWVudHMgVHVpTW9udGhMaWtlIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0geWVhclxuICAgICAqIEBwYXJhbSBtb250aCAoc3RhcnRpbmcgd2l0aCAwKVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHllYXI6IG51bWJlciwgcmVhZG9ubHkgbW9udGg6IG51bWJlcikge1xuICAgICAgICBzdXBlcih5ZWFyKTtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChUdWlNb250aC5pc1ZhbGlkTW9udGgoeWVhciwgbW9udGgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUZXN0cyBtb250aCBhbmQgeWVhciBmb3IgdmFsaWRpdHlcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZE1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gVHVpWWVhci5pc1ZhbGlkWWVhcih5ZWFyKSAmJiBUdWlNb250aC5pc1ZhbGlkTW9udGhQYXJ0KG1vbnRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGhcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0TW9udGhEYXlzQ291bnQobW9udGg6IG51bWJlciwgaXNMZWFwWWVhcjogYm9vbGVhbik6IG51bWJlciB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoVHVpTW9udGguaXNWYWxpZE1vbnRoUGFydChtb250aCkpO1xuXG4gICAgICAgIHN3aXRjaCAobW9udGgpIHtcbiAgICAgICAgICAgIGNhc2UgVHVpTW9udGhOdW1iZXIuRmVicnVhcnk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIgPyAyOSA6IDI4O1xuICAgICAgICAgICAgY2FzZSBUdWlNb250aE51bWJlci5BcHJpbDpcbiAgICAgICAgICAgIGNhc2UgVHVpTW9udGhOdW1iZXIuSnVuZTpcbiAgICAgICAgICAgIGNhc2UgVHVpTW9udGhOdW1iZXIuU2VwdGVtYmVyOlxuICAgICAgICAgICAgY2FzZSBUdWlNb250aE51bWJlci5Ob3ZlbWJlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gMzA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAzMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VycmVudCBtb250aCBhbmQgeWVhciBiYXNlZCBvbiBsb2NhbCB0aW1lIHpvbmVcbiAgICAgKiBAbm9zaWRlZWZmZWN0c1xuICAgICAqL1xuICAgIHN0YXRpYyBjdXJyZW50TG9jYWwoKTogVHVpTW9udGgge1xuICAgICAgICBjb25zdCBuYXRpdmVEYXRlID0gbmV3IERhdGUoKTtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aU1vbnRoKG5hdGl2ZURhdGUuZ2V0RnVsbFllYXIoKSwgbmF0aXZlRGF0ZS5nZXRNb250aCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1cnJlbnQgbW9udGggYW5kIHllYXIgYmFzZWQgb24gVVRDXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnRVdGMoKTogVHVpTW9udGgge1xuICAgICAgICBjb25zdCBuYXRpdmVEYXRlID0gbmV3IERhdGUoKTtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aU1vbnRoKG5hdGl2ZURhdGUuZ2V0VVRDRnVsbFllYXIoKSwgbmF0aXZlRGF0ZS5nZXRVVENNb250aCgpKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbGVuZ3RoQmV0d2Vlbihmcm9tOiBUdWlNb250aCwgdG86IFR1aU1vbnRoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVGcm9tID0gZnJvbS5tb250aCArIGZyb20ueWVhciAqIDEyO1xuICAgICAgICBjb25zdCBhYnNvbHV0ZVRvID0gdG8ubW9udGggKyB0by55ZWFyICogMTI7XG5cbiAgICAgICAgcmV0dXJuIGFic29sdXRlVG8gLSBhYnNvbHV0ZUZyb207XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTm9ybWFsaXplcyBudW1iZXIgYnkgY2xhbXBpbmcgaXQgYmV0d2VlbiBtaW4gYW5kIG1heCBtb250aFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdGF0aWMgbm9ybWFsaXplTW9udGhQYXJ0KG1vbnRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplVG9JbnROdW1iZXIobW9udGgsIE1JTl9NT05USCwgTUFYX01PTlRIKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUZXN0cyBtb250aCBmb3IgdmFsaWRpdHlcbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyBpc1ZhbGlkTW9udGhQYXJ0KG1vbnRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIobW9udGgpICYmIGluUmFuZ2UobW9udGgsIE1JTl9NT05USCwgTUFYX01PTlRIICsgMSk7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1hdHRlZE1vbnRoUGFydCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcGFkU3RhcnQoU3RyaW5nKHRoaXMubW9udGggKyAxKSwgMiwgJzAnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXR0ZXIgbW9udGggYW5kIHllYXJcbiAgICAgKi9cbiAgICBnZXQgZm9ybWF0dGVkTW9udGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZm9ybWF0dGVkTW9udGhQYXJ0fS4ke3RoaXMuZm9ybWF0dGVkWWVhcn1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUICh3aWxsIGJlIGRlbGV0ZWQgc29vbilcbiAgICAgKlxuICAgICAqIENhbGN1bGF0ZXMgbnVtYmVyIG9mIHdlZWtzIGluIGEgbW9udGggKGNvdW50aW5nIG5vbi1mdWxsIHdlZWtzKVxuICAgICAqL1xuICAgIGdldCB3ZWVrc1Jvd3NDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLm1vbnRoU3RhcnREYXlzT2Zmc2V0ICsgdGhpcy5kYXlzQ291bnQpIC8gREFZU19JTl9XRUVLKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGRheXMgaW4gYSBtb250aFxuICAgICAqL1xuICAgIGdldCBkYXlzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KHRoaXMubW9udGgsIHRoaXMuaXNMZWFwWWVhcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRE9OVCBVU0UgSVQgKHdpbGwgYmUgZGVsZXRlZCBzb29uKVxuICAgICAqXG4gICAgICogQ29tcHV0ZXMgZGF5IG9mIHdlZWsgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1vbnRoXG4gICAgICovXG4gICAgZ2V0IG1vbnRoU3RhcnREYXlzT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnllYXJTdGFydERheXNPZmZzZXQ7XG5cbiAgICAgICAgZm9yIChsZXQgY3VycmVudE1vbnRoID0gMDsgY3VycmVudE1vbnRoIDw9IHRoaXMubW9udGggLSAxOyBjdXJyZW50TW9udGgrKykge1xuICAgICAgICAgICAgcmVzdWx0ICs9IFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KGN1cnJlbnRNb250aCwgdGhpcy5pc0xlYXBZZWFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQgJSBEQVlTX0lOX1dFRUs7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIG1vbnRoIGFuZCB5ZWFyIGFyZSBhZnRlciBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhCZWZvcmUoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMueWVhclNhbWUoYW5vdGhlcikgJiYgdGhpcy5tb250aCA8IGFub3RoZXIubW9udGgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIG1vbnRoIGFuZCB5ZWFyIGFyZSBhZnRlciBvciB0aGUgc2FtZSBhcyBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhTYW1lT3JCZWZvcmUoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMueWVhclNhbWUoYW5vdGhlcikgJiYgdGhpcy5tb250aCA8PSBhbm90aGVyLm1vbnRoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgdGhlIHNhbWUgYXMgY3VycmVudFxuICAgICAqL1xuICAgIG1vbnRoU2FtZShhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyU2FtZShhbm90aGVyKSAmJiB0aGlzLm1vbnRoID09PSBhbm90aGVyLm1vbnRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgZWl0aGVyIGJlZm9yZSBvciBlcXVhbCB0byBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhTYW1lT3JBZnRlcihhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy55ZWFyQWZ0ZXIoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPj0gYW5vdGhlci5tb250aClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgbW9udGggYW5kIHllYXIgYXJlIGJlZm9yZSBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhBZnRlcihhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy55ZWFyQWZ0ZXIoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPiBhbm90aGVyLm1vbnRoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IENvbnNpZGVyIHJlbW92aW5nIGBiYWNrd2FyZHNgIG9wdGlvblxuICAgIC8qKlxuICAgICAqIEltbXV0YWJseSBhbHRlcnMgY3VycmVudCBtb250aCBhbmQgeWVhciBieSBwYXNzZWQgb2Zmc2V0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAgICogQHBhcmFtIGJhY2t3YXJkcyBzaGlmdCBkYXRlIGJhY2t3YXJkc1xuICAgICAqIEByZXR1cm4gbmV3IG1vbnRoIGFuZCB5ZWFyIG9iamVjdCBhcyBhIHJlc3VsdCBvZiBvZmZzZXR0aW5nIGN1cnJlbnRcbiAgICAgKi9cbiAgICBhcHBlbmQoe3llYXIgPSAwLCBtb250aCA9IDB9OiBUdWlNb250aExpa2UsIGJhY2t3YXJkczogYm9vbGVhbiA9IGZhbHNlKTogVHVpTW9udGgge1xuICAgICAgICBpZiAoYmFja3dhcmRzKSB7XG4gICAgICAgICAgICB5ZWFyICo9IC0xO1xuICAgICAgICAgICAgbW9udGggKj0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b3RhbE1vbnRocyA9ICh0aGlzLnllYXIgKyB5ZWFyKSAqIE1PTlRIU19JTl9ZRUFSICsgdGhpcy5tb250aCArIG1vbnRoO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpTW9udGgoXG4gICAgICAgICAgICBNYXRoLmZsb29yKHRvdGFsTW9udGhzIC8gTU9OVEhTX0lOX1lFQVIpLFxuICAgICAgICAgICAgdG90YWxNb250aHMgJSBNT05USFNfSU5fWUVBUixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRNb250aDtcbiAgICB9XG5cbiAgICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3N1cGVyLnRvSlNPTigpfS0ke3RoaXMuZm9ybWF0dGVkTW9udGhQYXJ0fWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBuYXRpdmUge0BsaW5rIERhdGV9IGJhc2VkIG9uIGxvY2FsIHRpbWUgem9uZVxuICAgICAqL1xuICAgIHRvTG9jYWxOYXRpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG5hdGl2ZSB7QGxpbmsgRGF0ZX0gYmFzZWQgb24gVVRDXG4gICAgICovXG4gICAgdG9VdGNOYXRpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLCB0aGlzLm1vbnRoKSk7XG4gICAgfVxufVxuIl19
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RhdGUtdGltZS8iLCJzb3VyY2VzIjpbIm1vbnRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUdoRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDL0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUUvQjs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsT0FBTztJQUNqQzs7O09BR0c7SUFDSCxZQUFZLElBQVksRUFBVyxLQUFhO1FBQzVDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURtQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBRTVDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzNDLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxVQUFtQjtRQUN2RCxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRW5ELFFBQVEsS0FBSyxFQUFFO1lBQ1g7Z0JBQ0ksT0FB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QXFCLEtBQUs7UUFDbEUsSUFBSSxTQUFTLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDZjtRQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFN0UsT0FBTyxJQUFJLFFBQVEsQ0FDZixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFDeEMsV0FBVyxHQUFHLGNBQWMsQ0FDL0IsQ0FBQztJQUNOLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUI7UUFDYixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDWCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpTW9udGhOdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvZW51bXMnO1xuaW1wb3J0IHtUdWlNb250aExpa2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge3BhZFN0YXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge2luUmFuZ2UsIG5vcm1hbGl6ZVRvSW50TnVtYmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuXG5pbXBvcnQge0RBWVNfSU5fV0VFSywgTUFYX01PTlRILCBNSU5fTU9OVEgsIE1PTlRIU19JTl9ZRUFSfSBmcm9tICcuL2RhdGUtdGltZSc7XG5pbXBvcnQge1R1aVllYXJ9IGZyb20gJy4veWVhcic7XG5cbi8qKlxuICogSW1tdXRhYmxlIG9iamVjdCBjb25zaXN0aW5nIG9mIHllYXIgYW5kIG1vbnRoXG4gKi9cbmV4cG9ydCBjbGFzcyBUdWlNb250aCBleHRlbmRzIFR1aVllYXIgaW1wbGVtZW50cyBUdWlNb250aExpa2Uge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB5ZWFyXG4gICAgICogQHBhcmFtIG1vbnRoIChzdGFydGluZyB3aXRoIDApXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoeWVhcjogbnVtYmVyLCByZWFkb25seSBtb250aDogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKHllYXIpO1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFR1aU1vbnRoLmlzVmFsaWRNb250aCh5ZWFyLCBtb250aCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlc3RzIG1vbnRoIGFuZCB5ZWFyIGZvciB2YWxpZGl0eVxuICAgICAqL1xuICAgIHN0YXRpYyBpc1ZhbGlkTW9udGgoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBUdWlZZWFyLmlzVmFsaWRZZWFyKHllYXIpICYmIFR1aU1vbnRoLmlzVmFsaWRNb250aFBhcnQobW9udGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRNb250aERheXNDb3VudChtb250aDogbnVtYmVyLCBpc0xlYXBZZWFyOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChUdWlNb250aC5pc1ZhbGlkTW9udGhQYXJ0KG1vbnRoKSk7XG5cbiAgICAgICAgc3dpdGNoIChtb250aCkge1xuICAgICAgICAgICAgY2FzZSBUdWlNb250aE51bWJlci5GZWJydWFyeTpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMZWFwWWVhciA/IDI5IDogMjg7XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLkFwcmlsOlxuICAgICAgICAgICAgY2FzZSBUdWlNb250aE51bWJlci5KdW5lOlxuICAgICAgICAgICAgY2FzZSBUdWlNb250aE51bWJlci5TZXB0ZW1iZXI6XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLk5vdmVtYmVyOlxuICAgICAgICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDMxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXJyZW50IG1vbnRoIGFuZCB5ZWFyIGJhc2VkIG9uIGxvY2FsIHRpbWUgem9uZVxuICAgICAqIEBub3NpZGVlZmZlY3RzXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnRMb2NhbCgpOiBUdWlNb250aCB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZURhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpTW9udGgobmF0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLCBuYXRpdmVEYXRlLmdldE1vbnRoKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VycmVudCBtb250aCBhbmQgeWVhciBiYXNlZCBvbiBVVENcbiAgICAgKi9cbiAgICBzdGF0aWMgY3VycmVudFV0YygpOiBUdWlNb250aCB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZURhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpTW9udGgobmF0aXZlRGF0ZS5nZXRVVENGdWxsWWVhcigpLCBuYXRpdmVEYXRlLmdldFVUQ01vbnRoKCkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBsZW5ndGhCZXR3ZWVuKGZyb206IFR1aU1vbnRoLCB0bzogVHVpTW9udGgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBhYnNvbHV0ZUZyb20gPSBmcm9tLm1vbnRoICsgZnJvbS55ZWFyICogMTI7XG4gICAgICAgIGNvbnN0IGFic29sdXRlVG8gPSB0by5tb250aCArIHRvLnllYXIgKiAxMjtcblxuICAgICAgICByZXR1cm4gYWJzb2x1dGVUbyAtIGFic29sdXRlRnJvbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOb3JtYWxpemVzIG51bWJlciBieSBjbGFtcGluZyBpdCBiZXR3ZWVuIG1pbiBhbmQgbWF4IG1vbnRoXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBub3JtYWxpemVNb250aFBhcnQobW9udGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVUb0ludE51bWJlcihtb250aCwgTUlOX01PTlRILCBNQVhfTU9OVEgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlc3RzIG1vbnRoIGZvciB2YWxpZGl0eVxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGlzVmFsaWRNb250aFBhcnQobW9udGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihtb250aCkgJiYgaW5SYW5nZShtb250aCwgTUlOX01PTlRILCBNQVhfTU9OVEggKyAxKTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkTW9udGhQYXJ0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwYWRTdGFydChTdHJpbmcodGhpcy5tb250aCArIDEpLCAyLCAnMCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogVE9ETyByZW1vdmUgaW4gMy4wXG4gICAgICogRm9ybWF0dGVyIG1vbnRoIGFuZCB5ZWFyXG4gICAgICovXG4gICAgZ2V0IGZvcm1hdHRlZE1vbnRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmZvcm1hdHRlZE1vbnRoUGFydH0uJHt0aGlzLmZvcm1hdHRlZFllYXJ9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBET05UIFVTRSBJVCAod2lsbCBiZSBkZWxldGVkIHNvb24pXG4gICAgICpcbiAgICAgKiBDYWxjdWxhdGVzIG51bWJlciBvZiB3ZWVrcyBpbiBhIG1vbnRoIChjb3VudGluZyBub24tZnVsbCB3ZWVrcylcbiAgICAgKi9cbiAgICBnZXQgd2Vla3NSb3dzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCgodGhpcy5tb250aFN0YXJ0RGF5c09mZnNldCArIHRoaXMuZGF5c0NvdW50KSAvIERBWVNfSU5fV0VFSyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBkYXlzIGluIGEgbW9udGhcbiAgICAgKi9cbiAgICBnZXQgZGF5c0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBUdWlNb250aC5nZXRNb250aERheXNDb3VudCh0aGlzLm1vbnRoLCB0aGlzLmlzTGVhcFllYXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUICh3aWxsIGJlIGRlbGV0ZWQgc29vbilcbiAgICAgKlxuICAgICAqIENvbXB1dGVzIGRheSBvZiB3ZWVrIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBtb250aFxuICAgICAqL1xuICAgIGdldCBtb250aFN0YXJ0RGF5c09mZnNldCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy55ZWFyU3RhcnREYXlzT2Zmc2V0O1xuXG4gICAgICAgIGZvciAobGV0IGN1cnJlbnRNb250aCA9IDA7IGN1cnJlbnRNb250aCA8PSB0aGlzLm1vbnRoIC0gMTsgY3VycmVudE1vbnRoKyspIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBUdWlNb250aC5nZXRNb250aERheXNDb3VudChjdXJyZW50TW9udGgsIHRoaXMuaXNMZWFwWWVhcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0ICUgREFZU19JTl9XRUVLO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgYWZ0ZXIgY3VycmVudFxuICAgICAqL1xuICAgIG1vbnRoQmVmb3JlKGFub3RoZXI6IFR1aU1vbnRoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnllYXJCZWZvcmUoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPCBhbm90aGVyLm1vbnRoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgYWZ0ZXIgb3IgdGhlIHNhbWUgYXMgY3VycmVudFxuICAgICAqL1xuICAgIG1vbnRoU2FtZU9yQmVmb3JlKGFub3RoZXI6IFR1aU1vbnRoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnllYXJCZWZvcmUoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPD0gYW5vdGhlci5tb250aClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgbW9udGggYW5kIHllYXIgYXJlIHRoZSBzYW1lIGFzIGN1cnJlbnRcbiAgICAgKi9cbiAgICBtb250aFNhbWUoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhclNhbWUoYW5vdGhlcikgJiYgdGhpcy5tb250aCA9PT0gYW5vdGhlci5tb250aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgbW9udGggYW5kIHllYXIgYXJlIGVpdGhlciBiZWZvcmUgb3IgZXF1YWwgdG8gY3VycmVudFxuICAgICAqL1xuICAgIG1vbnRoU2FtZU9yQWZ0ZXIoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckFmdGVyKGFub3RoZXIpIHx8XG4gICAgICAgICAgICAodGhpcy55ZWFyU2FtZShhbm90aGVyKSAmJiB0aGlzLm1vbnRoID49IGFub3RoZXIubW9udGgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIG1vbnRoIGFuZCB5ZWFyIGFyZSBiZWZvcmUgY3VycmVudFxuICAgICAqL1xuICAgIG1vbnRoQWZ0ZXIoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckFmdGVyKGFub3RoZXIpIHx8XG4gICAgICAgICAgICAodGhpcy55ZWFyU2FtZShhbm90aGVyKSAmJiB0aGlzLm1vbnRoID4gYW5vdGhlci5tb250aClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBDb25zaWRlciByZW1vdmluZyBgYmFja3dhcmRzYCBvcHRpb25cbiAgICAvKipcbiAgICAgKiBJbW11dGFibHkgYWx0ZXJzIGN1cnJlbnQgbW9udGggYW5kIHllYXIgYnkgcGFzc2VkIG9mZnNldFxuICAgICAqXG4gICAgICogQHBhcmFtIG9mZnNldFxuICAgICAqIEBwYXJhbSBiYWNrd2FyZHMgc2hpZnQgZGF0ZSBiYWNrd2FyZHNcbiAgICAgKiBAcmV0dXJuIG5ldyBtb250aCBhbmQgeWVhciBvYmplY3QgYXMgYSByZXN1bHQgb2Ygb2Zmc2V0dGluZyBjdXJyZW50XG4gICAgICovXG4gICAgYXBwZW5kKHt5ZWFyID0gMCwgbW9udGggPSAwfTogVHVpTW9udGhMaWtlLCBiYWNrd2FyZHM6IGJvb2xlYW4gPSBmYWxzZSk6IFR1aU1vbnRoIHtcbiAgICAgICAgaWYgKGJhY2t3YXJkcykge1xuICAgICAgICAgICAgeWVhciAqPSAtMTtcbiAgICAgICAgICAgIG1vbnRoICo9IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdG90YWxNb250aHMgPSAodGhpcy55ZWFyICsgeWVhcikgKiBNT05USFNfSU5fWUVBUiArIHRoaXMubW9udGggKyBtb250aDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aU1vbnRoKFxuICAgICAgICAgICAgTWF0aC5mbG9vcih0b3RhbE1vbnRocyAvIE1PTlRIU19JTl9ZRUFSKSxcbiAgICAgICAgICAgIHRvdGFsTW9udGhzICUgTU9OVEhTX0lOX1lFQVIsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkTW9udGg7XG4gICAgfVxuXG4gICAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtzdXBlci50b0pTT04oKX0tJHt0aGlzLmZvcm1hdHRlZE1vbnRoUGFydH1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbmF0aXZlIHtAbGluayBEYXRlfSBiYXNlZCBvbiBsb2NhbCB0aW1lIHpvbmVcbiAgICAgKi9cbiAgICB0b0xvY2FsTmF0aXZlRGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBuYXRpdmUge0BsaW5rIERhdGV9IGJhc2VkIG9uIFVUQ1xuICAgICAqL1xuICAgIHRvVXRjTmF0aXZlRGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhciwgdGhpcy5tb250aCkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,72 +1,44 @@
|
|
|
1
1
|
import { __decorate, __param } from "tslib";
|
|
2
|
-
import { AfterViewInit,
|
|
2
|
+
import { AfterViewInit, Directive, ElementRef, Inject, INJECTOR, Injector, Input, Optional, Renderer2, Self, ViewContainerRef, } from '@angular/core';
|
|
3
3
|
import { ANIMATION_FRAME } from '@ng-web-apis/common';
|
|
4
4
|
import { POLLING_TIME } from '@taiga-ui/cdk/constants';
|
|
5
5
|
import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
|
|
6
|
-
import { getClosestElement } from '@taiga-ui/cdk/utils/dom';
|
|
7
6
|
import { setNativeFocused } from '@taiga-ui/cdk/utils/focus';
|
|
8
7
|
import { Observable, race, timer } from 'rxjs';
|
|
9
8
|
import { filter, map, take, throttleTime } from 'rxjs/operators';
|
|
10
|
-
const
|
|
9
|
+
const TIMEOUT = 1000;
|
|
11
10
|
const NG_ANIMATION_SELECTOR = '.ng-animating';
|
|
12
11
|
// @bad TODO: Consider removing iOS hacks
|
|
13
12
|
// TODO: in 3.0 change input name to tuiAutoFocus and handle empty string
|
|
14
13
|
let TuiAutoFocusDirective = class TuiAutoFocusDirective {
|
|
15
|
-
constructor(
|
|
16
|
-
this.
|
|
14
|
+
constructor(injector, elementRef, tuiFocusableComponent, isIos, animationFrame$) {
|
|
15
|
+
this.injector = injector;
|
|
17
16
|
this.elementRef = elementRef;
|
|
18
17
|
this.tuiFocusableComponent = tuiFocusableComponent;
|
|
19
18
|
this.isIos = isIos;
|
|
20
|
-
this.renderer = renderer;
|
|
21
|
-
this.viewContainerRef = viewContainerRef;
|
|
22
19
|
this.animationFrame$ = animationFrame$;
|
|
23
20
|
this.autoFocus = true;
|
|
24
21
|
}
|
|
25
22
|
ngAfterViewInit() {
|
|
23
|
+
var _a;
|
|
26
24
|
if (!this.autoFocus) {
|
|
27
25
|
return;
|
|
28
26
|
}
|
|
29
|
-
const element = this.tuiFocusableComponent === null
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (!(element instanceof HTMLElement)) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (!this.isIos) {
|
|
37
|
-
setTimeout(() => {
|
|
38
|
-
setNativeFocused(element);
|
|
39
|
-
this.changeDetectorRef.markForCheck();
|
|
40
|
-
});
|
|
41
|
-
return;
|
|
27
|
+
const element = ((_a = this.tuiFocusableComponent) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) ||
|
|
28
|
+
this.elementRef.nativeElement;
|
|
29
|
+
if (this.isIos) {
|
|
30
|
+
veryVerySadIosFix(this.injector);
|
|
42
31
|
}
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
veryVerySadIosFix(element) {
|
|
46
|
-
const { nativeElement } = this.viewContainerRef.element;
|
|
47
|
-
const decoy = this.renderer.createElement('input');
|
|
48
|
-
decoy.style.position = 'absolute';
|
|
49
|
-
decoy.style.opacity = '0';
|
|
50
|
-
decoy.style.height = '0';
|
|
51
|
-
this.renderer.setAttribute(decoy, 'readonly', 'readonly');
|
|
52
|
-
this.renderer.appendChild(nativeElement, decoy);
|
|
53
|
-
setNativeFocused(decoy);
|
|
54
|
-
race(timer(IOS_TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(() => getClosestElement(element, NG_ANIMATION_SELECTOR)), filter(element => !element), take(1))).subscribe(() => {
|
|
55
|
-
setTimeout(() => {
|
|
56
|
-
setNativeFocused(element);
|
|
57
|
-
this.changeDetectorRef.markForCheck();
|
|
58
|
-
this.renderer.removeChild(nativeElement, decoy);
|
|
59
|
-
});
|
|
32
|
+
race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(() => element.closest(NG_ANIMATION_SELECTOR)), filter(v => !v), take(1))).subscribe(() => {
|
|
33
|
+
setNativeFocused(element);
|
|
60
34
|
});
|
|
61
35
|
}
|
|
62
36
|
};
|
|
63
37
|
TuiAutoFocusDirective.ctorParameters = () => [
|
|
64
|
-
{ type:
|
|
38
|
+
{ type: Injector, decorators: [{ type: Inject, args: [INJECTOR,] }] },
|
|
65
39
|
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
66
40
|
{ type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
|
|
67
41
|
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
|
|
68
|
-
{ type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
|
|
69
|
-
{ type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
|
|
70
42
|
{ type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] }
|
|
71
43
|
];
|
|
72
44
|
__decorate([
|
|
@@ -76,15 +48,27 @@ TuiAutoFocusDirective = __decorate([
|
|
|
76
48
|
Directive({
|
|
77
49
|
selector: '[tuiAutoFocus]',
|
|
78
50
|
}),
|
|
79
|
-
__param(0, Inject(
|
|
51
|
+
__param(0, Inject(INJECTOR)),
|
|
80
52
|
__param(1, Inject(ElementRef)),
|
|
81
53
|
__param(2, Optional()),
|
|
82
54
|
__param(2, Self()),
|
|
83
55
|
__param(2, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
|
|
84
56
|
__param(3, Inject(TUI_IS_IOS)),
|
|
85
|
-
__param(4, Inject(
|
|
86
|
-
__param(5, Inject(ViewContainerRef)),
|
|
87
|
-
__param(6, Inject(ANIMATION_FRAME))
|
|
57
|
+
__param(4, Inject(ANIMATION_FRAME))
|
|
88
58
|
], TuiAutoFocusDirective);
|
|
89
59
|
export { TuiAutoFocusDirective };
|
|
90
|
-
|
|
60
|
+
function veryVerySadIosFix(injector) {
|
|
61
|
+
const renderer = injector.get(Renderer2);
|
|
62
|
+
const { nativeElement } = injector.get(ViewContainerRef).element;
|
|
63
|
+
const decoy = renderer.createElement('input');
|
|
64
|
+
decoy.style.position = 'absolute';
|
|
65
|
+
decoy.style.opacity = '0';
|
|
66
|
+
decoy.style.height = '0';
|
|
67
|
+
renderer.setAttribute(decoy, 'readonly', 'readonly');
|
|
68
|
+
renderer.appendChild(nativeElement, decoy);
|
|
69
|
+
decoy.addEventListener('blur', () => renderer.removeChild(nativeElement, decoy), {
|
|
70
|
+
once: true,
|
|
71
|
+
});
|
|
72
|
+
setNativeFocused(decoy);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDckIsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUM7QUFFOUMseUNBQXlDO0FBQ3pDLHlFQUF5RTtBQUl6RSxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUk5QixZQUN1QyxRQUFrQixFQUNoQixVQUFtQyxFQUl2RCxxQkFBeUQsRUFDckMsS0FBYyxFQUNULGVBQW1DO1FBUDFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFJdkQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFv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Z0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJTkpFQ1RPUixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7UE9MTElOR19USU1FfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLCBUVUlfSVNfSU9TfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3NldE5hdGl2ZUZvY3VzZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCByYWNlLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YWtlLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgVElNRU9VVCA9IDEwMDA7XG5jb25zdCBOR19BTklNQVRJT05fU0VMRUNUT1IgPSAnLm5nLWFuaW1hdGluZyc7XG5cbi8vIEBiYWQgVE9ETzogQ29uc2lkZXIgcmVtb3ZpbmcgaU9TIGhhY2tzXG4vLyBUT0RPOiBpbiAzLjAgY2hhbmdlIGlucHV0IG5hbWUgdG8gdHVpQXV0b0ZvY3VzIGFuZCBoYW5kbGUgZW1wdHkgc3RyaW5nXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0dWlBdXRvRm9jdXNdJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQXV0b0ZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBhdXRvRm9jdXMgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSU5KRUNUT1IpIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHVpRm9jdXNhYmxlQ29tcG9uZW50OiBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHByaXZhdGUgcmVhZG9ubHkgaXNJb3M6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICB0aGlzLnR1aUZvY3VzYWJsZUNvbXBvbmVudD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJb3MpIHtcbiAgICAgICAgICAgIHZlcnlWZXJ5U2FkSW9zRml4KHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmFjZShcbiAgICAgICAgICAgIHRpbWVyKFRJTUVPVVQpLFxuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25GcmFtZSQucGlwZShcbiAgICAgICAgICAgICAgICB0aHJvdHRsZVRpbWUoUE9MTElOR19USU1FKSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gZWxlbWVudC5jbG9zZXN0KE5HX0FOSU1BVElPTl9TRUxFQ1RPUikpLFxuICAgICAgICAgICAgICAgIGZpbHRlcih2ID0+ICF2KSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChlbGVtZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2ZXJ5VmVyeVNhZElvc0ZpeChpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCByZW5kZXJlciA9IGluamVjdG9yLmdldChSZW5kZXJlcjIpO1xuICAgIGNvbnN0IHtuYXRpdmVFbGVtZW50fSA9IGluamVjdG9yLmdldChWaWV3Q29udGFpbmVyUmVmKS5lbGVtZW50O1xuICAgIGNvbnN0IGRlY295OiBIVE1MRWxlbWVudCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG5cbiAgICBkZWNveS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgZGVjb3kuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICBkZWNveS5zdHlsZS5oZWlnaHQgPSAnMCc7XG5cbiAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUoZGVjb3ksICdyZWFkb25seScsICdyZWFkb25seScpO1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKG5hdGl2ZUVsZW1lbnQsIGRlY295KTtcbiAgICBkZWNveS5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gcmVuZGVyZXIucmVtb3ZlQ2hpbGQobmF0aXZlRWxlbWVudCwgZGVjb3kpLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgfSk7XG5cbiAgICBzZXROYXRpdmVGb2N1c2VkKGRlY295KTtcbn1cbiJdfQ==
|