@taiga-ui/testing 3.54.0 → 3.55.0-canary.17e839c
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-testing-core.umd.js +55 -55
- package/bundles/taiga-ui-testing-core.umd.js.map +1 -1
- package/bundles/taiga-ui-testing-cypress.umd.js +7 -7
- package/bundles/taiga-ui-testing-cypress.umd.js.map +1 -1
- package/bundles/taiga-ui-testing-mocks.umd.js +3 -1
- package/bundles/taiga-ui-testing-mocks.umd.js.map +1 -1
- package/bundles/taiga-ui-testing-setup-jest.umd.js +1 -1
- package/bundles/taiga-ui-testing-setup-jest.umd.js.map +1 -1
- package/bundles/taiga-ui-testing-utils.umd.js +1 -1
- package/bundles/taiga-ui-testing-utils.umd.js.map +1 -1
- package/esm2015/core/primitive-calender.harness.js +16 -16
- package/esm2015/core/primitive-year-picker.harness.js +10 -10
- package/esm2015/cypress/snapshot/command.js +8 -8
- package/esm2015/mocks/event.js +4 -2
- package/esm2015/setup-jest/index.js +2 -2
- package/esm2015/utils/input/cleaner.unit-common.js +2 -2
- package/fesm2015/taiga-ui-testing-core.js +24 -24
- package/fesm2015/taiga-ui-testing-core.js.map +1 -1
- package/fesm2015/taiga-ui-testing-cypress.js +7 -7
- package/fesm2015/taiga-ui-testing-cypress.js.map +1 -1
- package/fesm2015/taiga-ui-testing-mocks.js +3 -1
- package/fesm2015/taiga-ui-testing-mocks.js.map +1 -1
- package/fesm2015/taiga-ui-testing-setup-jest.js +1 -1
- package/fesm2015/taiga-ui-testing-setup-jest.js.map +1 -1
- package/fesm2015/taiga-ui-testing-utils.js +1 -1
- package/fesm2015/taiga-ui-testing-utils.js.map +1 -1
- package/package.json +17 -17
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-testing-utils.umd.js","sources":["../../../projects/testing/utils/keyboard-event.ts","../../../projects/testing/utils/active-element.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/testing/utils/configure-test-suite.ts","../../../projects/testing/utils/date.ts","../../../projects/testing/utils/helpers.ts","../../../projects/testing/utils/input/cleaner.unit-common.ts","../../../projects/testing/utils/input/filler.unit-common.ts","../../../projects/testing/utils/input/form-control-state.unit-common.ts","../../../projects/testing/utils/input/placeholder.unit-common.ts","../../../projects/testing/utils/input/tooltip.unit-common.ts","../../../projects/testing/utils/page-object.ts","../../../projects/testing/utils/replace-nbsp.ts","../../../projects/testing/utils/native-input.page-object.ts","../../../projects/testing/utils/viewport.ts","../../../projects/testing/utils/taiga-ui-testing-utils.ts"],"sourcesContent":["export function tuiCreateKeyboardEvent(\n key: string,\n eventType: string = `keydown`,\n): KeyboardEvent {\n const event = new KeyboardEvent(eventType, {bubbles: true});\n\n delete (event as any).target;\n Object.defineProperty(event, `type`, {value: eventType});\n\n delete (event as any).key;\n Object.defineProperty(event, `key`, {value: key});\n\n return event;\n}\n","import {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\n\nexport function tuiDispatchOnActive<T>(key: string, fixture?: ComponentFixture<T>): void {\n document.activeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n\n fixture?.detectChanges();\n}\n\nexport function tuiActiveText(): string {\n return document.activeElement?.textContent?.trim() ?? ``;\n}\n\nexport function tuiIsActive(element: Element): boolean {\n return document.activeElement === element;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {ComponentFixture, getTestBed, TestBed} from '@angular/core/testing';\n\nexport const configureTestSuite = (configureModule?: () => void): void => {\n const testBedApi = getTestBed();\n const originReset = TestBed.resetTestingModule;\n\n beforeAll(() => {\n TestBed.resetTestingModule();\n TestBed.resetTestingModule = () => TestBed;\n });\n\n // Custom hook\n if (configureModule) {\n beforeAll(async () => {\n configureModule();\n await TestBed.compileComponents();\n });\n }\n\n afterEach(() => {\n // @ts-ignore\n testBedApi._activeFixtures.forEach((fixture: ComponentFixture<unknown>) =>\n fixture.destroy(),\n );\n // reset ViewEngine TestBed\n // @ts-ignore\n testBedApi._instantiated = false;\n // reset Ivy TestBed\n // @ts-ignore\n testBedApi._testModuleRef = null;\n });\n\n afterAll(() => {\n TestBed.resetTestingModule = originReset;\n TestBed.resetTestingModule();\n });\n};\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\ndeclare const global: {Date: typeof Date};\n\nconst OriginalDate = global.Date;\n\nexport function tuiMockCurrentDate(dateOrNumber: Date | number): void {\n const date: Date = tuiIsNumber(dateOrNumber)\n ? new OriginalDate(dateOrNumber)\n : dateOrNumber;\n\n class MockDate extends OriginalDate {\n constructor() {\n super();\n\n return date;\n }\n }\n\n global.Date = MockDate as typeof Date;\n}\n\nexport function tuiRestoreRealDate(): void {\n global.Date = OriginalDate;\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\n/**\n * Decorator to add default static 'with' method.\n * Use in conjunction with {@link tuiHarnessWith} mixin.\n */\nexport function tuiWithPredicate<\n T extends ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n },\n>(original: T): T {\n original.with = (options: BaseHarnessFilters = {}) =>\n new HarnessPredicate(original, options);\n\n return original;\n}\n\n/**\n * Mixin to extend {@link ComponentHarness} and add typed\n * static 'with' method. Use {@link tuiWithPredicate} decorator\n * to monkey-patch default static 'with' method.\n */\nexport function tuiHarnessWith<T>(\n hostSelector: string,\n): ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n} {\n return class extends ComponentHarness {\n static hostSelector = hostSelector;\n\n // @ts-ignore\n static with(_options: BaseHarnessFilters = {}): HarnessPredicate<T> {\n throw new Error(`Hummus`);\n }\n } as unknown as ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n };\n}\n\nexport class TuiComponentHarness extends ComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\nexport class TuiContentContainerComponentHarness extends ContentContainerComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n","/// <reference types=\"jasmine\" />\n\nimport {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n cleaner: boolean;\n control?: FormControl;\n disabled?: boolean;\n readOnly: boolean;\n value?: unknown;\n}\n\nexport function tuiTestCleaner(\n context: TestParams,\n setValue: any = `value`,\n clearValue: any = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Cross for field cleaning`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.autoDetectChanges();\n });\n\n describe(`Cross included`, () => {\n beforeEach(() => {\n testComponent.cleaner = true;\n });\n\n it(`If no value is specified, the cross is not shown`, () => {\n updateValue(clearValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is readonly, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is disabled, the cross is not shown`, () => {\n updateValue(setValue);\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n testComponent.disabled = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If a value is specified, a cross is shown`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).not.toBeNull();\n });\n\n it(`When you click on the cross, the field value is cleared`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n getCleaner()!.nativeElement.click();\n fixture.detectChanges();\n\n expect(inputPO.value).toBe(``);\n\n if (testComponent.control !== undefined) {\n expect(testComponent.control.value).toEqual(clearValue);\n }\n\n if (testComponent.value !== undefined) {\n expect(testComponent.value).toEqual(clearValue);\n }\n });\n });\n\n describe(`Cross disabled`, () => {\n it(`The value is set, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.cleaner = false;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getCleaner(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}cleaner`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFiller(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Filler (mask)`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n describe(`if there is no value in the field`, () => {\n beforeEach(() => {\n testComponent.control.setValue(clearValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`when focusing appears`, async () => {\n inputPO.focus();\n fixture.detectChanges();\n await fixture.whenStable();\n expect(getFiller()).not.toBeNull();\n });\n });\n\n describe(`if the field has a value`, () => {\n beforeEach(() => {\n testComponent.control.setValue(setValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`also not visible when focusing`, () => {\n inputPO.nativeElement?.focus();\n fixture.detectChanges();\n\n expect(getFiller()).toBeNull();\n });\n });\n });\n\n function getFiller(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}filler`);\n }\n}\n","import {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFormControlState(context: TestParams): void {\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`FormControl state`, () => {\n beforeEach(() => {\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n it(`After initializing control dirty === false`, () => {\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After control initialization touched === false`, () => {\n expect(testComponent.control.touched).toBe(false);\n });\n\n it(`After setting value from outside dirty === false`, () => {\n testComponent.control.setValue(`123`);\n fixture.detectChanges();\n\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After entering the value dirty === true`, () => {\n inputPO.sendText(`123`);\n\n expect(testComponent.control.dirty).toBe(true);\n });\n\n it(`After setting and de-focusing touched === true`, async () => {\n inputPO.focus();\n inputPO.blur();\n\n await fixture.whenStable();\n\n fixture.detectChanges();\n expect(testComponent.control.touched).toBe(true);\n });\n });\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n labelOutside: boolean;\n size: 'l' | 'm' | 's';\n value?: unknown;\n}\n\nexport function tuiTestPlaceholder(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = ``,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Placeholder`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`in size S`, () => {\n beforeEach(() => {\n testComponent.size = `s`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if specified, not shown`, () => {\n updateValue(setValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size M`, () => {\n beforeEach(() => {\n testComponent.size = `m`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size L`, () => {\n beforeEach(() => {\n testComponent.size = `l`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getPlaceholder(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}placeholder`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n disabled?: boolean;\n hintContent: string | null;\n readOnly: boolean;\n size: unknown;\n}\n\nexport function tuiTestTooltip(context: TestParams): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Tooltip in a field`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`There is tooltip content`, () => {\n it(`if field is disabled, there is no tooltip`, () => {\n testComponent.disabled = true;\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n\n it(`if field is not disabled, there is tooltip`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n\n it(`if field is readonly, there is tooltip`, () => {\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n });\n\n describe(`There is no tooltip content`, () => {\n beforeEach(() => {\n testComponent.hintContent = null;\n fixture.detectChanges();\n });\n\n it(`tooltip without content is hidden`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n });\n });\n\n function getTooltip(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}tooltip`);\n }\n}\n","import {DebugElement, Predicate} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nexport class TuiPageObject<T> {\n constructor(protected fixture: ComponentFixture<T>) {}\n\n static getIds({nativeElement}: DebugElement): string[] {\n const attributeValue: string | null = nativeElement.getAttribute(`automation-id`);\n\n return attributeValue === null ? [] : attributeValue.split(` `);\n }\n\n static containsId(debugElement: DebugElement, automationId: string): boolean {\n return TuiPageObject.getIds(debugElement).includes(automationId);\n }\n\n private static byAutomationId(automationId: string): Predicate<DebugElement> {\n return debugElement => TuiPageObject.containsId(debugElement, automationId);\n }\n\n getByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement | null {\n return debugElement.query(TuiPageObject.byAutomationId(automationId));\n }\n\n // Syncing result order with DOM order: https://github.com/angular/angular/issues/13066\n getAllByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement[] {\n const debugEls = debugElement.queryAll(\n TuiPageObject.byAutomationId(automationId),\n );\n const domEls = Array.from(\n debugElement.nativeElement.querySelectorAll(\n `[automation-id='${automationId}']`,\n ),\n );\n\n return debugEls.sort(\n (a, b) => domEls.indexOf(a.nativeElement) - domEls.indexOf(b.nativeElement),\n );\n }\n}\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\n\nexport function tuiReplaceNbsp(content?: string): string {\n return content?.replace(new RegExp(CHAR_NO_BREAK_SPACE, `g`), ` `) ?? ``;\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\nimport {TuiPageObject} from './page-object';\nimport {tuiReplaceNbsp} from './replace-nbsp';\n\nexport class TuiNativeInputPO {\n private readonly pageObject: TuiPageObject<unknown>;\n\n constructor(\n private readonly fixture: ComponentFixture<unknown>,\n private readonly automationId: string,\n private readonly hostDebugElement?: DebugElement,\n ) {\n this.pageObject = new TuiPageObject(fixture);\n }\n\n get nativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return (\n this.pageObject.getByAutomationId(this.automationId, this.hostDebugElement)\n ?.nativeElement ?? null\n );\n }\n\n get value(): string {\n return tuiReplaceNbsp(this.nativeElement?.value ?? ``);\n }\n\n get focused(): boolean {\n return document.activeElement === this.nativeElement;\n }\n\n sendText(value: string): void {\n this.focus(); // need focus before initial value for emulate user interaction\n\n const nativeElement = this.nativeElement;\n\n if (nativeElement) {\n nativeElement.value = value;\n nativeElement.dispatchEvent(new Event(`input`, {bubbles: true}));\n }\n\n this.fixture.detectChanges();\n }\n\n // @bad TODO: Fix this with actually moving focus rather than just blurring\n sendTextAndBlur(value: string): void {\n this.focus();\n this.sendText(value);\n this.blur();\n }\n\n sendKeydown(key: string): void {\n this.nativeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n this.fixture.detectChanges();\n }\n\n focus(): void {\n this.nativeElement?.focus();\n this.fixture.detectChanges();\n }\n\n blur(): void {\n this.nativeElement?.blur();\n this.fixture.detectChanges();\n }\n\n click(): void {\n this.nativeElement?.click();\n this.fixture.detectChanges();\n }\n}\n","export function tuiTestingViewport(width: number, height: number): void {\n Object.defineProperty(global, `innerWidth`, {\n writable: true,\n configurable: true,\n value: width,\n });\n\n Object.defineProperty(global.document.documentElement, `clientWidth`, {\n writable: true,\n configurable: true,\n value: width - 15,\n });\n\n Object.defineProperty(global, `innerHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n\n Object.defineProperty(global.document.documentElement, `clientHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getTestBed","TestBed","tuiIsNumber","HarnessPredicate","ComponentHarness","ContentContainerComponentHarness","CHAR_NO_BREAK_SPACE"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"taiga-ui-testing-utils.umd.js","sources":["../../../projects/testing/utils/keyboard-event.ts","../../../projects/testing/utils/active-element.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/testing/utils/configure-test-suite.ts","../../../projects/testing/utils/date.ts","../../../projects/testing/utils/helpers.ts","../../../projects/testing/utils/input/cleaner.unit-common.ts","../../../projects/testing/utils/input/filler.unit-common.ts","../../../projects/testing/utils/input/form-control-state.unit-common.ts","../../../projects/testing/utils/input/placeholder.unit-common.ts","../../../projects/testing/utils/input/tooltip.unit-common.ts","../../../projects/testing/utils/page-object.ts","../../../projects/testing/utils/replace-nbsp.ts","../../../projects/testing/utils/native-input.page-object.ts","../../../projects/testing/utils/viewport.ts","../../../projects/testing/utils/taiga-ui-testing-utils.ts"],"sourcesContent":["export function tuiCreateKeyboardEvent(\n key: string,\n eventType: string = `keydown`,\n): KeyboardEvent {\n const event = new KeyboardEvent(eventType, {bubbles: true});\n\n delete (event as any).target;\n Object.defineProperty(event, `type`, {value: eventType});\n\n delete (event as any).key;\n Object.defineProperty(event, `key`, {value: key});\n\n return event;\n}\n","import {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\n\nexport function tuiDispatchOnActive<T>(key: string, fixture?: ComponentFixture<T>): void {\n document.activeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n\n fixture?.detectChanges();\n}\n\nexport function tuiActiveText(): string {\n return document.activeElement?.textContent?.trim() ?? ``;\n}\n\nexport function tuiIsActive(element: Element): boolean {\n return document.activeElement === element;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {ComponentFixture, getTestBed, TestBed} from '@angular/core/testing';\n\nexport const configureTestSuite = (configureModule?: () => void): void => {\n const testBedApi = getTestBed();\n const originReset = TestBed.resetTestingModule;\n\n beforeAll(() => {\n TestBed.resetTestingModule();\n TestBed.resetTestingModule = () => TestBed;\n });\n\n // Custom hook\n if (configureModule) {\n beforeAll(async () => {\n configureModule();\n await TestBed.compileComponents();\n });\n }\n\n afterEach(() => {\n // @ts-ignore\n testBedApi._activeFixtures.forEach((fixture: ComponentFixture<unknown>) =>\n fixture.destroy(),\n );\n // reset ViewEngine TestBed\n // @ts-ignore\n testBedApi._instantiated = false;\n // reset Ivy TestBed\n // @ts-ignore\n testBedApi._testModuleRef = null;\n });\n\n afterAll(() => {\n TestBed.resetTestingModule = originReset;\n TestBed.resetTestingModule();\n });\n};\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\ndeclare const global: {Date: typeof Date};\n\nconst OriginalDate = global.Date;\n\nexport function tuiMockCurrentDate(dateOrNumber: Date | number): void {\n const date: Date = tuiIsNumber(dateOrNumber)\n ? new OriginalDate(dateOrNumber)\n : dateOrNumber;\n\n class MockDate extends OriginalDate {\n constructor() {\n super();\n\n return date;\n }\n }\n\n global.Date = MockDate as typeof Date;\n}\n\nexport function tuiRestoreRealDate(): void {\n global.Date = OriginalDate;\n}\n","import {\n BaseHarnessFilters,\n ComponentHarness,\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\n/**\n * Decorator to add default static 'with' method.\n * Use in conjunction with {@link tuiHarnessWith} mixin.\n */\nexport function tuiWithPredicate<\n T extends ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n },\n>(original: T): T {\n original.with = (options: BaseHarnessFilters = {}) =>\n new HarnessPredicate(original, options);\n\n return original;\n}\n\n/**\n * Mixin to extend {@link ComponentHarness} and add typed\n * static 'with' method. Use {@link tuiWithPredicate} decorator\n * to monkey-patch default static 'with' method.\n */\nexport function tuiHarnessWith<T>(\n hostSelector: string,\n): ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n} {\n return class extends ComponentHarness {\n static hostSelector = hostSelector;\n\n // @ts-ignore\n static with(_options: BaseHarnessFilters = {}): HarnessPredicate<T> {\n throw new Error(`Hummus`);\n }\n } as unknown as ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n };\n}\n\nexport class TuiComponentHarness extends ComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\nexport class TuiContentContainerComponentHarness extends ContentContainerComponentHarness {\n static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n","/// <reference types=\"jest\" />\n\nimport {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n cleaner: boolean;\n control?: FormControl;\n disabled?: boolean;\n readOnly: boolean;\n value?: unknown;\n}\n\nexport function tuiTestCleaner(\n context: TestParams,\n setValue: any = `value`,\n clearValue: any = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Cross for field cleaning`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.autoDetectChanges();\n });\n\n describe(`Cross included`, () => {\n beforeEach(() => {\n testComponent.cleaner = true;\n });\n\n it(`If no value is specified, the cross is not shown`, () => {\n updateValue(clearValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is readonly, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If the field is disabled, the cross is not shown`, () => {\n updateValue(setValue);\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n testComponent.disabled = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it(`If a value is specified, a cross is shown`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).not.toBeNull();\n });\n\n it(`When you click on the cross, the field value is cleared`, () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n getCleaner()!.nativeElement.click();\n fixture.detectChanges();\n\n expect(inputPO.value).toBe(``);\n\n if (testComponent.control !== undefined) {\n expect(testComponent.control.value).toEqual(clearValue);\n }\n\n if (testComponent.value !== undefined) {\n expect(testComponent.value).toEqual(clearValue);\n }\n });\n });\n\n describe(`Cross disabled`, () => {\n it(`The value is set, the cross is not shown`, () => {\n updateValue(setValue);\n\n testComponent.cleaner = false;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getCleaner(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}cleaner`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFiller(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`Filler (mask)`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n describe(`if there is no value in the field`, () => {\n beforeEach(() => {\n testComponent.control.setValue(clearValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`when focusing appears`, async () => {\n inputPO.focus();\n fixture.detectChanges();\n await fixture.whenStable();\n expect(getFiller()).not.toBeNull();\n });\n });\n\n describe(`if the field has a value`, () => {\n beforeEach(() => {\n testComponent.control.setValue(setValue);\n fixture.detectChanges();\n });\n\n it(`not visible`, () => {\n expect(getFiller()).toBeNull();\n });\n\n it(`also not visible when focusing`, () => {\n inputPO.nativeElement?.focus();\n fixture.detectChanges();\n\n expect(getFiller()).toBeNull();\n });\n });\n });\n\n function getFiller(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}filler`);\n }\n}\n","import {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiNativeInputPO} from '../native-input.page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control: FormControl;\n}\n\nexport function tuiTestFormControlState(context: TestParams): void {\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n let inputPO: TuiNativeInputPO;\n\n describe(`FormControl state`, () => {\n beforeEach(() => {\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n it(`After initializing control dirty === false`, () => {\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After control initialization touched === false`, () => {\n expect(testComponent.control.touched).toBe(false);\n });\n\n it(`After setting value from outside dirty === false`, () => {\n testComponent.control.setValue(`123`);\n fixture.detectChanges();\n\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it(`After entering the value dirty === true`, () => {\n inputPO.sendText(`123`);\n\n expect(testComponent.control.dirty).toBe(true);\n });\n\n it(`After setting and de-focusing touched === true`, async () => {\n inputPO.focus();\n inputPO.blur();\n\n await fixture.whenStable();\n\n fixture.detectChanges();\n expect(testComponent.control.touched).toBe(true);\n });\n });\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n labelOutside: boolean;\n size: 'l' | 'm' | 's';\n value?: unknown;\n}\n\nexport function tuiTestPlaceholder(\n context: TestParams,\n setValue: unknown = `value`,\n clearValue: unknown = ``,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Placeholder`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`in size S`, () => {\n beforeEach(() => {\n testComponent.size = `s`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if specified, not shown`, () => {\n updateValue(setValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size M`, () => {\n beforeEach(() => {\n testComponent.size = `m`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe(`in size L`, () => {\n beforeEach(() => {\n testComponent.size = `l`;\n fixture.detectChanges();\n });\n\n it(`if no value, then shown`, () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if a value is given, then`, () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it(`if value is given but label is outside, then not shown`, () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getPlaceholder(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}placeholder`);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {FormControl} from '@angular/forms';\n\nimport {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: TestComponent;\n}\n\ninterface TestComponent {\n control?: FormControl;\n disabled?: boolean;\n hintContent: string | null;\n readOnly: boolean;\n size: unknown;\n}\n\nexport function tuiTestTooltip(context: TestParams): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: TestComponent;\n\n describe(`Tooltip in a field`, () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe(`There is tooltip content`, () => {\n it(`if field is disabled, there is no tooltip`, () => {\n testComponent.disabled = true;\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n\n it(`if field is not disabled, there is tooltip`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n\n it(`if field is readonly, there is tooltip`, () => {\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n });\n\n describe(`There is no tooltip content`, () => {\n beforeEach(() => {\n testComponent.hintContent = null;\n fixture.detectChanges();\n });\n\n it(`tooltip without content is hidden`, () => {\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n });\n });\n\n function getTooltip(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}tooltip`);\n }\n}\n","import {DebugElement, Predicate} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nexport class TuiPageObject<T> {\n constructor(protected fixture: ComponentFixture<T>) {}\n\n static getIds({nativeElement}: DebugElement): string[] {\n const attributeValue: string | null = nativeElement.getAttribute(`automation-id`);\n\n return attributeValue === null ? [] : attributeValue.split(` `);\n }\n\n static containsId(debugElement: DebugElement, automationId: string): boolean {\n return TuiPageObject.getIds(debugElement).includes(automationId);\n }\n\n private static byAutomationId(automationId: string): Predicate<DebugElement> {\n return debugElement => TuiPageObject.containsId(debugElement, automationId);\n }\n\n getByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement | null {\n return debugElement.query(TuiPageObject.byAutomationId(automationId));\n }\n\n // Syncing result order with DOM order: https://github.com/angular/angular/issues/13066\n getAllByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement[] {\n const debugEls = debugElement.queryAll(\n TuiPageObject.byAutomationId(automationId),\n );\n const domEls = Array.from(\n debugElement.nativeElement.querySelectorAll(\n `[automation-id='${automationId}']`,\n ),\n );\n\n return debugEls.sort(\n (a, b) => domEls.indexOf(a.nativeElement) - domEls.indexOf(b.nativeElement),\n );\n }\n}\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\n\nexport function tuiReplaceNbsp(content?: string): string {\n return content?.replace(new RegExp(CHAR_NO_BREAK_SPACE, `g`), ` `) ?? ``;\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\nimport {TuiPageObject} from './page-object';\nimport {tuiReplaceNbsp} from './replace-nbsp';\n\nexport class TuiNativeInputPO {\n private readonly pageObject: TuiPageObject<unknown>;\n\n constructor(\n private readonly fixture: ComponentFixture<unknown>,\n private readonly automationId: string,\n private readonly hostDebugElement?: DebugElement,\n ) {\n this.pageObject = new TuiPageObject(fixture);\n }\n\n get nativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return (\n this.pageObject.getByAutomationId(this.automationId, this.hostDebugElement)\n ?.nativeElement ?? null\n );\n }\n\n get value(): string {\n return tuiReplaceNbsp(this.nativeElement?.value ?? ``);\n }\n\n get focused(): boolean {\n return document.activeElement === this.nativeElement;\n }\n\n sendText(value: string): void {\n this.focus(); // need focus before initial value for emulate user interaction\n\n const nativeElement = this.nativeElement;\n\n if (nativeElement) {\n nativeElement.value = value;\n nativeElement.dispatchEvent(new Event(`input`, {bubbles: true}));\n }\n\n this.fixture.detectChanges();\n }\n\n // @bad TODO: Fix this with actually moving focus rather than just blurring\n sendTextAndBlur(value: string): void {\n this.focus();\n this.sendText(value);\n this.blur();\n }\n\n sendKeydown(key: string): void {\n this.nativeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));\n this.fixture.detectChanges();\n }\n\n focus(): void {\n this.nativeElement?.focus();\n this.fixture.detectChanges();\n }\n\n blur(): void {\n this.nativeElement?.blur();\n this.fixture.detectChanges();\n }\n\n click(): void {\n this.nativeElement?.click();\n this.fixture.detectChanges();\n }\n}\n","export function tuiTestingViewport(width: number, height: number): void {\n Object.defineProperty(global, `innerWidth`, {\n writable: true,\n configurable: true,\n value: width,\n });\n\n Object.defineProperty(global.document.documentElement, `clientWidth`, {\n writable: true,\n configurable: true,\n value: width - 15,\n });\n\n Object.defineProperty(global, `innerHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n\n Object.defineProperty(global.document.documentElement, `clientHeight`, {\n writable: true,\n configurable: true,\n value: height,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getTestBed","TestBed","tuiIsNumber","HarnessPredicate","ComponentHarness","ContentContainerComponentHarness","CHAR_NO_BREAK_SPACE"],"mappings":"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"}
|
@@ -1,21 +1,6 @@
|
|
1
1
|
import { __awaiter } from "tslib";
|
2
2
|
import { ComponentHarness, HarnessPredicate, } from '@angular/cdk/testing';
|
3
3
|
import { TuiComponentHarness } from '@taiga-ui/testing/utils';
|
4
|
-
export class TuiPrimitiveCalendarHarness extends TuiComponentHarness {
|
5
|
-
clickDay(day) {
|
6
|
-
return __awaiter(this, void 0, void 0, function* () {
|
7
|
-
const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
|
8
|
-
return dayCell.click();
|
9
|
-
});
|
10
|
-
}
|
11
|
-
hoverDay(day) {
|
12
|
-
return __awaiter(this, void 0, void 0, function* () {
|
13
|
-
const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
|
14
|
-
return dayCell.hover();
|
15
|
-
});
|
16
|
-
}
|
17
|
-
}
|
18
|
-
TuiPrimitiveCalendarHarness.hostSelector = `tui-primitive-calendar`;
|
19
4
|
class TuiDayCellHarness extends ComponentHarness {
|
20
5
|
static with(options) {
|
21
6
|
return new HarnessPredicate(TuiDayCellHarness, options).addOption(`day`, options.day, (harness, text) => __awaiter(this, void 0, void 0, function* () { return HarnessPredicate.stringMatches(harness.getText(), `${text}`); }));
|
@@ -37,4 +22,19 @@ class TuiDayCellHarness extends ComponentHarness {
|
|
37
22
|
}
|
38
23
|
}
|
39
24
|
TuiDayCellHarness.hostSelector = `.t-cell:not(.t-cell_unavailable)`;
|
40
|
-
|
25
|
+
export class TuiPrimitiveCalendarHarness extends TuiComponentHarness {
|
26
|
+
clickDay(day) {
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
28
|
+
const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
|
29
|
+
return dayCell.click();
|
30
|
+
});
|
31
|
+
}
|
32
|
+
hoverDay(day) {
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
34
|
+
const dayCell = yield this.locatorFor(TuiDayCellHarness.with({ day, ancestor: `#date-rows` }))();
|
35
|
+
return dayCell.hover();
|
36
|
+
});
|
37
|
+
}
|
38
|
+
}
|
39
|
+
TuiPrimitiveCalendarHarness.hostSelector = `tui-primitive-calendar`;
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLWNhbGVuZGVyLmhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXN0aW5nL2NvcmUvcHJpbWl0aXZlLWNhbGVuZGVyLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ25CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFNNUQsTUFBTSxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFHNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFpQztRQUN6QyxPQUFPLElBQUksZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUM3RCxLQUFLLEVBQ0wsT0FBTyxDQUFDLEdBQUcsRUFDWCxDQUFPLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxnREFDcEIsT0FBQSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQSxHQUFBLENBQ25FLENBQUM7SUFDTixDQUFDO0lBRUssT0FBTzs7WUFDVCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxDQUFDO0tBQUE7SUFFSyxLQUFLOztZQUNQLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZDLENBQUM7S0FBQTtJQUVLLEtBQUs7O1lBQ1AsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQztLQUFBOztBQXJCTSw4QkFBWSxHQUFHLGtDQUFrQyxDQUFDO0FBd0I3RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQW1CO0lBRzFELFFBQVEsQ0FBQyxHQUFXOztZQUN0QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQ2pDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FDeEQsRUFBRSxDQUFDO1lBRUosT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsQ0FBQztLQUFBO0lBRUssUUFBUSxDQUFDLEdBQVc7O1lBQ3RCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FDakMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUMsQ0FBQyxDQUN4RCxFQUFFLENBQUM7WUFFSixPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixDQUFDO0tBQUE7O0FBaEJNLHdDQUFZLEdBQUcsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJhc2VIYXJuZXNzRmlsdGVycyxcbiAgICBDb21wb25lbnRIYXJuZXNzLFxuICAgIEhhcm5lc3NQcmVkaWNhdGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7VHVpQ29tcG9uZW50SGFybmVzc30gZnJvbSAnQHRhaWdhLXVpL3Rlc3RpbmcvdXRpbHMnO1xuXG5pbnRlcmZhY2UgVHVpRGF5Q2VsbEhhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgQmFzZUhhcm5lc3NGaWx0ZXJzIHtcbiAgICBkYXk6IG51bWJlcjtcbn1cblxuY2xhc3MgVHVpRGF5Q2VsbEhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gYC50LWNlbGw6bm90KC50LWNlbGxfdW5hdmFpbGFibGUpYDtcblxuICAgIHN0YXRpYyB3aXRoKG9wdGlvbnM6IFR1aURheUNlbGxIYXJuZXNzRmlsdGVycyk6IEhhcm5lc3NQcmVkaWNhdGU8VHVpRGF5Q2VsbEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKFR1aURheUNlbGxIYXJuZXNzLCBvcHRpb25zKS5hZGRPcHRpb24oXG4gICAgICAgICAgICBgZGF5YCxcbiAgICAgICAgICAgIG9wdGlvbnMuZGF5LFxuICAgICAgICAgICAgYXN5bmMgKGhhcm5lc3MsIHRleHQpID0+XG4gICAgICAgICAgICAgICAgSGFybmVzc1ByZWRpY2F0ZS5zdHJpbmdNYXRjaGVzKGhhcm5lc3MuZ2V0VGV4dCgpLCBgJHt0ZXh0fWApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxvY2F0b3JGb3IoYC50LWl0ZW1gKSgpKS50ZXh0KCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaG92ZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmhvdmVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlQ2FsZW5kYXJIYXJuZXNzIGV4dGVuZHMgVHVpQ29tcG9uZW50SGFybmVzcyB7XG4gICAgc3RhdGljIGhvc3RTZWxlY3RvciA9IGB0dWktcHJpbWl0aXZlLWNhbGVuZGFyYDtcblxuICAgIGFzeW5jIGNsaWNrRGF5KGRheTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGRheUNlbGwgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoXG4gICAgICAgICAgICBUdWlEYXlDZWxsSGFybmVzcy53aXRoKHtkYXksIGFuY2VzdG9yOiBgI2RhdGUtcm93c2B9KSxcbiAgICAgICAgKSgpO1xuXG4gICAgICAgIHJldHVybiBkYXlDZWxsLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaG92ZXJEYXkoZGF5OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZGF5Q2VsbCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihcbiAgICAgICAgICAgIFR1aURheUNlbGxIYXJuZXNzLndpdGgoe2RheSwgYW5jZXN0b3I6IGAjZGF0ZS1yb3dzYH0pLFxuICAgICAgICApKCk7XG5cbiAgICAgICAgcmV0dXJuIGRheUNlbGwuaG92ZXIoKTtcbiAgICB9XG59XG4iXX0=
|
@@ -1,15 +1,6 @@
|
|
1
1
|
import { __awaiter } from "tslib";
|
2
2
|
import { ComponentHarness, HarnessPredicate, } from '@angular/cdk/testing';
|
3
3
|
import { TuiComponentHarness } from '@taiga-ui/testing/utils';
|
4
|
-
export class TuiPrimitiveYearPickerHarness extends TuiComponentHarness {
|
5
|
-
clickYear(year) {
|
6
|
-
return __awaiter(this, void 0, void 0, function* () {
|
7
|
-
const yearCell = yield this.locatorFor(TuiYearCellHarness.with({ year }))();
|
8
|
-
return yearCell.click();
|
9
|
-
});
|
10
|
-
}
|
11
|
-
}
|
12
|
-
TuiPrimitiveYearPickerHarness.hostSelector = `tui-primitive-year-picker`;
|
13
4
|
class TuiYearCellHarness extends ComponentHarness {
|
14
5
|
static with(options) {
|
15
6
|
return new HarnessPredicate(TuiYearCellHarness, options).addOption(`year`, options.year, (harness, text) => __awaiter(this, void 0, void 0, function* () { return HarnessPredicate.stringMatches(harness.getText(), text); }));
|
@@ -26,4 +17,13 @@ class TuiYearCellHarness extends ComponentHarness {
|
|
26
17
|
}
|
27
18
|
}
|
28
19
|
TuiYearCellHarness.hostSelector = `.t-cell`;
|
29
|
-
|
20
|
+
export class TuiPrimitiveYearPickerHarness extends TuiComponentHarness {
|
21
|
+
clickYear(year) {
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
23
|
+
const yearCell = yield this.locatorFor(TuiYearCellHarness.with({ year }))();
|
24
|
+
return yearCell.click();
|
25
|
+
});
|
26
|
+
}
|
27
|
+
}
|
28
|
+
TuiPrimitiveYearPickerHarness.hostSelector = `tui-primitive-year-picker`;
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXllYXItcGlja2VyLmhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXN0aW5nL2NvcmUvcHJpbWl0aXZlLXllYXItcGlja2VyLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ25CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFNNUQsTUFBTSxrQkFBbUIsU0FBUSxnQkFBZ0I7SUFHN0MsTUFBTSxDQUFDLElBQUksQ0FDUCxPQUFrQztRQUVsQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUM5RCxNQUFNLEVBQ04sT0FBTyxDQUFDLElBQUksRUFDWixDQUFPLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxnREFDcEIsT0FBQSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBLEdBQUEsQ0FDOUQsQ0FBQztJQUNOLENBQUM7SUFFSyxPQUFPOztZQUNULE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELENBQUM7S0FBQTtJQUVLLEtBQUs7O1lBQ1AsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQztLQUFBOztBQW5CTSwrQkFBWSxHQUFHLFNBQVMsQ0FBQztBQXNCcEMsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQUc1RCxTQUFTLENBQUMsSUFBWTs7WUFDeEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTFFLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUM7S0FBQTs7QUFOTSwwQ0FBWSxHQUFHLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCYXNlSGFybmVzc0ZpbHRlcnMsXG4gICAgQ29tcG9uZW50SGFybmVzcyxcbiAgICBIYXJuZXNzUHJlZGljYXRlLFxufSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQge1R1aUNvbXBvbmVudEhhcm5lc3N9IGZyb20gJ0B0YWlnYS11aS90ZXN0aW5nL3V0aWxzJztcblxuaW50ZXJmYWNlIFR1aVllYXJDZWxsSGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBCYXNlSGFybmVzc0ZpbHRlcnMge1xuICAgIHllYXI6IHN0cmluZztcbn1cblxuY2xhc3MgVHVpWWVhckNlbGxIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gICAgc3RhdGljIGhvc3RTZWxlY3RvciA9IGAudC1jZWxsYDtcblxuICAgIHN0YXRpYyB3aXRoKFxuICAgICAgICBvcHRpb25zOiBUdWlZZWFyQ2VsbEhhcm5lc3NGaWx0ZXJzLFxuICAgICk6IEhhcm5lc3NQcmVkaWNhdGU8VHVpWWVhckNlbGxIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiBuZXcgSGFybmVzc1ByZWRpY2F0ZShUdWlZZWFyQ2VsbEhhcm5lc3MsIG9wdGlvbnMpLmFkZE9wdGlvbihcbiAgICAgICAgICAgIGB5ZWFyYCxcbiAgICAgICAgICAgIG9wdGlvbnMueWVhcixcbiAgICAgICAgICAgIGFzeW5jIChoYXJuZXNzLCB0ZXh0KSA9PlxuICAgICAgICAgICAgICAgIEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldFRleHQoKSwgdGV4dCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0VGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubG9jYXRvckZvcihgLnQtaXRlbWApKCkpLnRleHQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBjbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuY2xpY2soKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVZZWFyUGlja2VySGFybmVzcyBleHRlbmRzIFR1aUNvbXBvbmVudEhhcm5lc3Mge1xuICAgIHN0YXRpYyBob3N0U2VsZWN0b3IgPSBgdHVpLXByaW1pdGl2ZS15ZWFyLXBpY2tlcmA7XG5cbiAgICBhc3luYyBjbGlja1llYXIoeWVhcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHllYXJDZWxsID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFR1aVllYXJDZWxsSGFybmVzcy53aXRoKHt5ZWFyfSkpKCk7XG5cbiAgICAgICAgcmV0dXJuIHllYXJDZWxsLmNsaWNrKCk7XG4gICAgfVxufVxuIl19
|
@@ -3,6 +3,13 @@
|
|
3
3
|
import { tuiIsObject, tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
|
4
4
|
import { matchImageSnapshotCommand } from 'cypress-image-snapshot/command';
|
5
5
|
import { tuiWaitAllImgInside } from '../commands/wait-all-img-inside.command';
|
6
|
+
function makeScreenshotName(name) {
|
7
|
+
return (name !== null && name !== void 0 ? name : Cypress.currentTest.titlePath
|
8
|
+
.join(`-`)
|
9
|
+
.replace(/\s|-/g, `.`)
|
10
|
+
.replace(/['[\]`()]/g, ``)
|
11
|
+
.toLowerCase());
|
12
|
+
}
|
6
13
|
export function tuiAddMatchImageSnapshotCommand(options) {
|
7
14
|
const matchSnapshotFn = matchImageSnapshotCommand(options);
|
8
15
|
Cypress.Commands.add(`matchImageSnapshot`, { prevSubject: [`optional`, `element`, `window`, `document`] }, (prevSubject, nameOrOptions, options) => {
|
@@ -15,11 +22,4 @@ export function tuiAddMatchImageSnapshotCommand(options) {
|
|
15
22
|
matchSnapshotFn(prevSubject, makeScreenshotName(name), overloadedOptions);
|
16
23
|
});
|
17
24
|
}
|
18
|
-
|
19
|
-
return (name !== null && name !== void 0 ? name : Cypress.currentTest.titlePath
|
20
|
-
.join(`-`)
|
21
|
-
.replace(/\s|-/g, `.`)
|
22
|
-
.replace(/['[\]`()]/g, ``)
|
23
|
-
.toLowerCase());
|
24
|
-
}
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlc3RpbmcvY3lwcmVzcy9zbmFwc2hvdC9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxnRUFBZ0U7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQXFCNUUsTUFBTSxVQUFVLCtCQUErQixDQUMzQyxPQUE0QztJQUU1QyxNQUFNLGVBQWUsR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUzRCxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDaEIsb0JBQW9CLEVBQ3BCLEVBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUMsRUFDNUQsQ0FDSSxXQUFXLEVBQ1gsYUFBNkQsRUFDN0QsT0FBNkMsRUFDL0MsRUFBRTs7UUFDQSxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BFLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNoRCxDQUFDLENBQUMsYUFBYTtZQUNmLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFZCxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsTUFBQSxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxhQUFhLG1DQUFJLElBQUksQ0FBQyxDQUFDO1FBRTNFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQ0osQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLElBQWE7SUFDckMsT0FBTyxDQUNILElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUztTQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ1QsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7U0FDckIsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7U0FDekIsV0FBVyxFQUFFLENBQ3JCLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJjeXByZXNzXCIgLz5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdGFpZ2EtdWkvZXhwZXJpZW5jZS9uby1kZWVwLWltcG9ydHNcbmltcG9ydCB7dHVpSXNPYmplY3QsIHR1aUlzU3RyaW5nfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICdjeXByZXNzLWltYWdlLXNuYXBzaG90JztcbmltcG9ydCB7bWF0Y2hJbWFnZVNuYXBzaG90Q29tbWFuZH0gZnJvbSAnY3lwcmVzcy1pbWFnZS1zbmFwc2hvdC9jb21tYW5kJztcblxuaW1wb3J0IHt0dWlXYWl0QWxsSW1nSW5zaWRlfSBmcm9tICcuLi9jb21tYW5kcy93YWl0LWFsbC1pbWctaW5zaWRlLmNvbW1hbmQnO1xuXG5kZWNsYXJlIG1vZHVsZSAnY3lwcmVzcy1pbWFnZS1zbmFwc2hvdC9jb21tYW5kJyB7XG4gICAgZnVuY3Rpb24gbWF0Y2hJbWFnZVNuYXBzaG90Q29tbWFuZChvcHRpb25zOiBPcHRpb25zKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIFR1aVNuYXBzaG90Q29tbWFuZE9wdGlvbnMge1xuICAgIHdhaXRBbGxJbWFnZXM/OiBib29sZWFuO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgbmFtZXNwYWNlIEN5cHJlc3Mge1xuICAgICAgICBpbnRlcmZhY2UgQ2hhaW5hYmxlIHtcbiAgICAgICAgICAgIG1hdGNoSW1hZ2VTbmFwc2hvdChcbiAgICAgICAgICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgb3B0aW9ucz86IE9wdGlvbnMgJiBUdWlTbmFwc2hvdENvbW1hbmRPcHRpb25zLFxuICAgICAgICAgICAgKTogdm9pZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUFkZE1hdGNoSW1hZ2VTbmFwc2hvdENvbW1hbmQoXG4gICAgb3B0aW9uczogT3B0aW9ucyAmIFR1aVNuYXBzaG90Q29tbWFuZE9wdGlvbnMsXG4pOiB2b2lkIHtcbiAgICBjb25zdCBtYXRjaFNuYXBzaG90Rm4gPSBtYXRjaEltYWdlU25hcHNob3RDb21tYW5kKG9wdGlvbnMpO1xuXG4gICAgQ3lwcmVzcy5Db21tYW5kcy5hZGQoXG4gICAgICAgIGBtYXRjaEltYWdlU25hcHNob3RgLFxuICAgICAgICB7cHJldlN1YmplY3Q6IFtgb3B0aW9uYWxgLCBgZWxlbWVudGAsIGB3aW5kb3dgLCBgZG9jdW1lbnRgXX0sXG4gICAgICAgIChcbiAgICAgICAgICAgIHByZXZTdWJqZWN0LFxuICAgICAgICAgICAgbmFtZU9yT3B0aW9uczogc3RyaW5nIHwgKE9wdGlvbnMgJiBUdWlTbmFwc2hvdENvbW1hbmRPcHRpb25zKSxcbiAgICAgICAgICAgIG9wdGlvbnM/OiBPcHRpb25zICYgVHVpU25hcHNob3RDb21tYW5kT3B0aW9ucyxcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gdHVpSXNTdHJpbmcobmFtZU9yT3B0aW9ucykgPyBuYW1lT3JPcHRpb25zIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qgb3ZlcmxvYWRlZE9wdGlvbnMgPSB0dWlJc09iamVjdChuYW1lT3JPcHRpb25zKVxuICAgICAgICAgICAgICAgID8gbmFtZU9yT3B0aW9uc1xuICAgICAgICAgICAgICAgIDogb3B0aW9ucztcblxuICAgICAgICAgICAgdHVpV2FpdEFsbEltZ0luc2lkZShwcmV2U3ViamVjdCwgb3ZlcmxvYWRlZE9wdGlvbnM/LndhaXRBbGxJbWFnZXMgPz8gdHJ1ZSk7XG5cbiAgICAgICAgICAgIG1hdGNoU25hcHNob3RGbihwcmV2U3ViamVjdCwgbWFrZVNjcmVlbnNob3ROYW1lKG5hbWUpLCBvdmVybG9hZGVkT3B0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gbWFrZVNjcmVlbnNob3ROYW1lKG5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICAgIG5hbWUgPz9cbiAgICAgICAgQ3lwcmVzcy5jdXJyZW50VGVzdC50aXRsZVBhdGhcbiAgICAgICAgICAgIC5qb2luKGAtYClcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHN8LS9nLCBgLmApXG4gICAgICAgICAgICAucmVwbGFjZSgvWydbXFxdYCgpXS9nLCBgYClcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgKTtcbn1cbiJdfQ==
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlc3RpbmcvY3lwcmVzcy9zbmFwc2hvdC9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxnRUFBZ0U7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQXFCNUUsU0FBUyxrQkFBa0IsQ0FBQyxJQUFhO0lBQ3JDLE9BQU8sQ0FDSCxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FDSixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVM7U0FDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNULE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1NBQ3pCLFdBQVcsRUFBRSxDQUNyQixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FDM0MsT0FBNEM7SUFFNUMsTUFBTSxlQUFlLEdBQUcseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFM0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ2hCLG9CQUFvQixFQUNwQixFQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFDLEVBQzVELENBQ0ksV0FBVyxFQUNYLGFBQTZELEVBQzdELE9BQTZDLEVBQy9DLEVBQUU7O1FBQ0EsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNwRSxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFDaEQsQ0FBQyxDQUFDLGFBQWE7WUFDZixDQUFDLENBQUMsT0FBTyxDQUFDO1FBRWQsbUJBQW1CLENBQUMsV0FBVyxFQUFFLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsYUFBYSxtQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUUzRSxlQUFlLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJjeXByZXNzXCIgLz5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdGFpZ2EtdWkvZXhwZXJpZW5jZS9uby1kZWVwLWltcG9ydHNcbmltcG9ydCB7dHVpSXNPYmplY3QsIHR1aUlzU3RyaW5nfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICdjeXByZXNzLWltYWdlLXNuYXBzaG90JztcbmltcG9ydCB7bWF0Y2hJbWFnZVNuYXBzaG90Q29tbWFuZH0gZnJvbSAnY3lwcmVzcy1pbWFnZS1zbmFwc2hvdC9jb21tYW5kJztcblxuaW1wb3J0IHt0dWlXYWl0QWxsSW1nSW5zaWRlfSBmcm9tICcuLi9jb21tYW5kcy93YWl0LWFsbC1pbWctaW5zaWRlLmNvbW1hbmQnO1xuXG5kZWNsYXJlIG1vZHVsZSAnY3lwcmVzcy1pbWFnZS1zbmFwc2hvdC9jb21tYW5kJyB7XG4gICAgZnVuY3Rpb24gbWF0Y2hJbWFnZVNuYXBzaG90Q29tbWFuZChvcHRpb25zOiBPcHRpb25zKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIFR1aVNuYXBzaG90Q29tbWFuZE9wdGlvbnMge1xuICAgIHdhaXRBbGxJbWFnZXM/OiBib29sZWFuO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgbmFtZXNwYWNlIEN5cHJlc3Mge1xuICAgICAgICBpbnRlcmZhY2UgQ2hhaW5hYmxlIHtcbiAgICAgICAgICAgIG1hdGNoSW1hZ2VTbmFwc2hvdChcbiAgICAgICAgICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgb3B0aW9ucz86IE9wdGlvbnMgJiBUdWlTbmFwc2hvdENvbW1hbmRPcHRpb25zLFxuICAgICAgICAgICAgKTogdm9pZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gbWFrZVNjcmVlbnNob3ROYW1lKG5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICAgIG5hbWUgPz9cbiAgICAgICAgQ3lwcmVzcy5jdXJyZW50VGVzdC50aXRsZVBhdGhcbiAgICAgICAgICAgIC5qb2luKGAtYClcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHN8LS9nLCBgLmApXG4gICAgICAgICAgICAucmVwbGFjZSgvWydbXFxdYCgpXS9nLCBgYClcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUFkZE1hdGNoSW1hZ2VTbmFwc2hvdENvbW1hbmQoXG4gICAgb3B0aW9uczogT3B0aW9ucyAmIFR1aVNuYXBzaG90Q29tbWFuZE9wdGlvbnMsXG4pOiB2b2lkIHtcbiAgICBjb25zdCBtYXRjaFNuYXBzaG90Rm4gPSBtYXRjaEltYWdlU25hcHNob3RDb21tYW5kKG9wdGlvbnMpO1xuXG4gICAgQ3lwcmVzcy5Db21tYW5kcy5hZGQoXG4gICAgICAgIGBtYXRjaEltYWdlU25hcHNob3RgLFxuICAgICAgICB7cHJldlN1YmplY3Q6IFtgb3B0aW9uYWxgLCBgZWxlbWVudGAsIGB3aW5kb3dgLCBgZG9jdW1lbnRgXX0sXG4gICAgICAgIChcbiAgICAgICAgICAgIHByZXZTdWJqZWN0LFxuICAgICAgICAgICAgbmFtZU9yT3B0aW9uczogc3RyaW5nIHwgKE9wdGlvbnMgJiBUdWlTbmFwc2hvdENvbW1hbmRPcHRpb25zKSxcbiAgICAgICAgICAgIG9wdGlvbnM/OiBPcHRpb25zICYgVHVpU25hcHNob3RDb21tYW5kT3B0aW9ucyxcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gdHVpSXNTdHJpbmcobmFtZU9yT3B0aW9ucykgPyBuYW1lT3JPcHRpb25zIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qgb3ZlcmxvYWRlZE9wdGlvbnMgPSB0dWlJc09iamVjdChuYW1lT3JPcHRpb25zKVxuICAgICAgICAgICAgICAgID8gbmFtZU9yT3B0aW9uc1xuICAgICAgICAgICAgICAgIDogb3B0aW9ucztcblxuICAgICAgICAgICAgdHVpV2FpdEFsbEltZ0luc2lkZShwcmV2U3ViamVjdCwgb3ZlcmxvYWRlZE9wdGlvbnM/LndhaXRBbGxJbWFnZXMgPz8gdHJ1ZSk7XG5cbiAgICAgICAgICAgIG1hdGNoU25hcHNob3RGbihwcmV2U3ViamVjdCwgbWFrZVNjcmVlbnNob3ROYW1lKG5hbWUpLCBvdmVybG9hZGVkT3B0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgKTtcbn1cbiJdfQ==
|
package/esm2015/mocks/event.js
CHANGED
@@ -3,10 +3,12 @@ export class TuiMockEvent extends Event {
|
|
3
3
|
super(type, options);
|
4
4
|
const event = new Event(type);
|
5
5
|
for (const key in options) {
|
6
|
-
|
6
|
+
if (options.hasOwnProperty(key)) {
|
7
|
+
Object.defineProperty(event, key, { value: options[key] });
|
8
|
+
}
|
7
9
|
}
|
8
10
|
// @ts-ignore
|
9
11
|
return event;
|
10
12
|
}
|
11
13
|
}
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXN0aW5nL21vY2tzL2V2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFnQixTQUFRLEtBQUs7SUFDdEMsWUFBWSxJQUFZLEVBQUUsVUFBb0QsRUFBRTtRQUM1RSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXJCLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlCLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3ZCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDNUQ7U0FDSjtRQUVELGFBQWE7UUFDYixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVHVpTW9ja0V2ZW50PFQ+IGV4dGVuZHMgRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZywgb3B0aW9uczogQ3VzdG9tRXZlbnRJbml0PFQ+ICYgUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KSB7XG4gICAgICAgIHN1cGVyKHR5cGUsIG9wdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KHR5cGUpO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsIGtleSwge3ZhbHVlOiBvcHRpb25zW2tleV19KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH1cbn1cbiJdfQ==
|
@@ -3,7 +3,7 @@ const { TextEncoder: TextEncoderMock, TextDecoder: TextDecoderMock } = require(`
|
|
3
3
|
global.TextEncoder = TextEncoderMock;
|
4
4
|
global.TextDecoder = TextDecoderMock;
|
5
5
|
// @ts-ignore
|
6
|
-
global.document.execCommand =
|
6
|
+
global.document.execCommand = () => { };
|
7
7
|
// you can also pass the mock implementation
|
8
8
|
// to jest.fn as an argument
|
9
9
|
global.window.IntersectionObserver = jest.fn(() => ({
|
@@ -116,4 +116,4 @@ if (!(`Zone` in global)) {
|
|
116
116
|
require(`zone.js/testing`);
|
117
117
|
}
|
118
118
|
export {};
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXN0aW5nL3NldHVwLWplc3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCO0FBRTlCLE1BQU0sRUFBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFckYsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDckMsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFFckMsYUFBYTtBQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLFNBQVMsZUFBZSxLQUFJLENBQUMsQ0FBQztBQUU1RCw0Q0FBNEM7QUFDNUMsNEJBQTRCO0FBQzNCLE1BQU0sQ0FBQyxNQUFjLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0lBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0lBQ3BCLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUosZ0NBQWdDO0FBQ2hDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFbEQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO0lBQzVCLE1BQU0sQ0FBQyxNQUFjLENBQUMsVUFBVSxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNyRSxNQUFNLENBQUMsTUFBYyxDQUFDLFdBQVcsR0FBRyxL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QUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFDLFNBQVMsR0FBRyxpQkFBZ0QsQ0FBQztBQUNwRSxNQUFNLENBQUMsY0FBYyxHQUFHLGlCQUFxRCxDQUFDO0FBRTlFOzs7Ozs7R0FNRztBQUNILElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRTtJQUNyQixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Q0FDOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cImplc3RcIiAvPlxuXG5jb25zdCB7VGV4dEVuY29kZXI6IFRleHRFbmNvZGVyTW9jaywgVGV4dERlY29kZXI6IFRleHREZWNvZGVyTW9ja30gPSByZXF1aXJlKGB1dGlsYCk7XG5cbmdsb2JhbC5UZXh0RW5jb2RlciA9IFRleHRFbmNvZGVyTW9jaztcbmdsb2JhbC5UZXh0RGVjb2RlciA9IFRleHREZWNvZGVyTW9jaztcblxuLy8gQHRzLWlnbm9yZVxuZ2xvYmFsLmRvY3VtZW50LmV4ZWNDb21tYW5kID0gZnVuY3Rpb24gZXhlY0NvbW1hbmRNb2NrKCkge307XG5cbi8vIHlvdSBjYW4gYWxzbyBwYXNzIHRoZSBtb2NrIGltcGxlbWVudGF0aW9uXG4vLyB0byBqZXN0LmZuIGFzIGFuIGFyZ3VtZW50XG4oZ2xvYmFsLndpbmRvdyBhcyBhbnkpLkludGVyc2VjdGlvbk9ic2VydmVyID0gamVzdC5mbigoKSA9PiAoe1xuICAgIG9ic2VydmU6IGplc3QuZm4oKSxcbiAgICB1bm9ic2VydmU6IGplc3QuZm4oKSxcbiAgICBkaXNjb25uZWN0OiBqZXN0LmZuKCksXG59KSk7XG5cbi8vIFNpbXVsYXRlIHdpbmRvdyByZXNpemUgZXZlbnRzXG5jb25zdCByZXNpemVFdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KGBFdmVudGApO1xuXG5yZXNpemVFdmVudC5pbml0RXZlbnQoYHJlc2l6ZWAsIHRydWUsIHRydWUpO1xuXG5nbG9iYWwud2luZG93LnJlc2l6ZVRvID0gd2lkdGggPT4ge1xuICAgIChnbG9iYWwud2luZG93IGFzIGFueSkuaW5uZXJXaWR0aCA9IHdpZHRoIHx8IGdsb2JhbC53aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAoZ2xvYmFsLndpbmRvdyBhcyBhbnkpLmlubmVySGVpZ2h0ID0gd2lkdGggfHwgZ2xvYmFsLndpbmRvdy5pbm5lckhlaWdodDtcbiAgICBnbG9iYWwud2luZG93LmRpc3BhdGNoRXZlbnQocmVzaXplRXZlbnQpO1xufTtcblxuZ2xvYmFsLlVSTC5jcmVhdGVPYmplY3RVUkwgPSBqZXN0LmZuKGJsb2IgPT4gYCR7YmxvYn1gKTtcbmdsb2JhbC5VUkwucmV2b2tlT2JqZWN0VVJMID0gamVzdC5mbigpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLndpbmRvdywgYENTU2AsIHt2YWx1ZTogbnVsbH0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLndpbmRvdywgYGdldENvbXB1dGVkU3R5bGVgLCB7XG4gICAgdmFsdWU6ICgpID0+ICh7XG4gICAgICAgIGRpc3BsYXk6IGBub25lYCxcbiAgICAgICAgYXBwZWFyYW5jZTogW2Atd2Via2l0LWFwcGVhcmFuY2VgXSxcbiAgICB9KSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLmRvY3VtZW50LCBgZG9jdHlwZWAsIHtcbiAgICB2YWx1ZTogYDwhRE9DVFlQRSBodG1sPmAsXG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbC5kb2N1bWVudC5ib2R5LnN0eWxlLCBgdHJhbnNmb3JtYCwge1xuICAgIHZhbHVlOiAoKSA9PiAoe1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSksXG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbC53aW5kb3csIGBtYXRjaE1lZGlhYCwge1xuICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIHZhbHVlOiBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKHF1ZXJ5ID0+ICh7XG4gICAgICAgIG1hdGNoZXM6IGZhbHNlLFxuICAgICAgICBtZWRpYTogcXVlcnksXG4gICAgICAgIG9uY2hhbmdlOiBudWxsLFxuICAgICAgICBhZGRMaXN0ZW5lcjogamVzdC5mbigpLFxuICAgICAgICByZW1vdmVMaXN0ZW5lcjogamVzdC5mbigpLFxuICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBqZXN0LmZuKCksXG4gICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGplc3QuZm4oKSxcbiAgICAgICAgZGlzcGF0Y2hFdmVudDogamVzdC5mbigpLFxuICAgIH0pKSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLmRvY3VtZW50LCBgZWxlbWVudEZyb21Qb2ludGAsIHtcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICB2YWx1ZTogamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBudWxsKSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLmRvY3VtZW50LCBgY3JlYXRlUmFuZ2VgLCB7XG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgdmFsdWU6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgUmFuZ2UoKTtcblxuICAgICAgICByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSAoKSA9PiAoe1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgIHRvSlNPTjogKCkgPT4ge30sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJhbmdlLmdldENsaWVudFJlY3RzID0gKCkgPT4gKHtcbiAgICAgICAgICAgIGl0ZW06ICgpID0+IG51bGwsXG4gICAgICAgICAgICBsZW5ndGg6IDAsXG4gICAgICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogamVzdC5mbigpLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmFuZ2U7XG4gICAgfSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCBgc2Nyb2xsVG9gLCBqZXN0LmZuKCkpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLndpbmRvdywgYGdldENvbXB1dGVkU3R5bGVgLCB7XG4gICAgdmFsdWU6ICgpID0+ICh7XG4gICAgICAgIGdldFByb3BlcnR5VmFsdWU6IChfcHJvcDogc3RyaW5nKSA9PiBgYCxcbiAgICB9KSxcbn0pO1xuXG5nbG9iYWwuRGF0YVRyYW5zZmVyID0gY2xhc3Mge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0YSA9IG5ldyBNYXAoKTtcblxuICAgIHNldERhdGEoZm9ybWF0OiBzdHJpbmcsIGRhdGE6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuc2V0KGZvcm1hdCwgZGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0RGF0YShmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0KGZvcm1hdCk7XG4gICAgfVxufSBhcyB1bmtub3duIGFzIHR5cGVvZiBEYXRhVHJhbnNmZXI7XG5cbmNsYXNzIFRyYW5zZmVyTW9ja0V2ZW50IHtcbiAgICBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlcjtcbiAgICByZWxhdGVkVGFyZ2V0OiBFdmVudFRhcmdldDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSB0eXBlOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGNsaXBib2FyZERhdGE6IERhdGFUcmFuc2ZlcjtcbiAgICAgICAgICAgIHJlbGF0ZWRUYXJnZXQ6IEV2ZW50VGFyZ2V0O1xuICAgICAgICB9LFxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGFUcmFuc2ZlciA9IG9wdGlvbnMuY2xpcGJvYXJkRGF0YTtcbiAgICAgICAgdGhpcy5yZWxhdGVkVGFyZ2V0ID0gb3B0aW9ucy5yZWxhdGVkVGFyZ2V0O1xuICAgIH1cbn1cblxuZ2xvYmFsLkRyYWdFdmVudCA9IFRyYW5zZmVyTW9ja0V2ZW50IGFzIHVua25vd24gYXMgdHlwZW9mIERyYWdFdmVudDtcbmdsb2JhbC5DbGlwYm9hcmRFdmVudCA9IFRyYW5zZmVyTW9ja0V2ZW50IGFzIHVua25vd24gYXMgdHlwZW9mIENsaXBib2FyZEV2ZW50O1xuXG4vKipcbiAqIGluIG91ciBqZXN0IHNldHVwRmlsZXNBZnRlckVudiBmaWxlLFxuICogaG93ZXZlciB3aGVuIHJ1bm5pbmcgd2l0aCBuZyB0ZXN0IHRob3NlXG4gKiBpbXBvcnRzIGFyZSBhbHJlYWR5IGRvbmUgYnkgYW5ndWxhclxuICogcmVzdWx0aW5nIGluIGR1cGxpY2F0ZSBpbXBvcnRzXG4gKiBhbmQgY29uZmxpY3RzIHJlc3VsdGluZyBpbiB0aGUgYWJvdmUgZXJyb3JcbiAqL1xuaWYgKCEoYFpvbmVgIGluIGdsb2JhbCkpIHtcbiAgICByZXF1aXJlKGB6b25lLmpzYCk7XG4gICAgcmVxdWlyZShgem9uZS5qcy90ZXN0aW5nYCk7XG59XG5cbi8vIEBub3RlOiBidWlsZCBlbXB0eSBlbnRyeSBwb2ludFxuZXhwb3J0IHt9O1xuIl19
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXN0aW5nL3NldHVwLWplc3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCO0FBRTlCLE1BQU0sRUFBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFckYsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDckMsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFFckMsYUFBYTtBQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUV2Qyw0Q0FBNEM7QUFDNUMsNEJBQTRCO0FBQzNCLE1BQU0sQ0FBQyxNQUFjLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0lBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0lBQ3BCLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUosZ0NBQWdDO0FBQ2hDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFbEQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO0lBQzVCLE1BQU0sQ0FBQyxNQUFjLENBQUMsVUFBVSxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNyRSxNQUFNLENBQUMsTUFBYyxDQUFDLFdBQVcsR0FBRyxL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QUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFDLFNBQVMsR0FBRyxpQkFBZ0QsQ0FBQztBQUNwRSxNQUFNLENBQUMsY0FBYyxHQUFHLGlCQUFxRCxDQUFDO0FBRTlFOzs7Ozs7R0FNRztBQUNILElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRTtJQUNyQixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Q0FDOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cImplc3RcIiAvPlxuXG5jb25zdCB7VGV4dEVuY29kZXI6IFRleHRFbmNvZGVyTW9jaywgVGV4dERlY29kZXI6IFRleHREZWNvZGVyTW9ja30gPSByZXF1aXJlKGB1dGlsYCk7XG5cbmdsb2JhbC5UZXh0RW5jb2RlciA9IFRleHRFbmNvZGVyTW9jaztcbmdsb2JhbC5UZXh0RGVjb2RlciA9IFRleHREZWNvZGVyTW9jaztcblxuLy8gQHRzLWlnbm9yZVxuZ2xvYmFsLmRvY3VtZW50LmV4ZWNDb21tYW5kID0gKCkgPT4ge307XG5cbi8vIHlvdSBjYW4gYWxzbyBwYXNzIHRoZSBtb2NrIGltcGxlbWVudGF0aW9uXG4vLyB0byBqZXN0LmZuIGFzIGFuIGFyZ3VtZW50XG4oZ2xvYmFsLndpbmRvdyBhcyBhbnkpLkludGVyc2VjdGlvbk9ic2VydmVyID0gamVzdC5mbigoKSA9PiAoe1xuICAgIG9ic2VydmU6IGplc3QuZm4oKSxcbiAgICB1bm9ic2VydmU6IGplc3QuZm4oKSxcbiAgICBkaXNjb25uZWN0OiBqZXN0LmZuKCksXG59KSk7XG5cbi8vIFNpbXVsYXRlIHdpbmRvdyByZXNpemUgZXZlbnRzXG5jb25zdCByZXNpemVFdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KGBFdmVudGApO1xuXG5yZXNpemVFdmVudC5pbml0RXZlbnQoYHJlc2l6ZWAsIHRydWUsIHRydWUpO1xuXG5nbG9iYWwud2luZG93LnJlc2l6ZVRvID0gd2lkdGggPT4ge1xuICAgIChnbG9iYWwud2luZG93IGFzIGFueSkuaW5uZXJXaWR0aCA9IHdpZHRoIHx8IGdsb2JhbC53aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAoZ2xvYmFsLndpbmRvdyBhcyBhbnkpLmlubmVySGVpZ2h0ID0gd2lkdGggfHwgZ2xvYmFsLndpbmRvdy5pbm5lckhlaWdodDtcbiAgICBnbG9iYWwud2luZG93LmRpc3BhdGNoRXZlbnQocmVzaXplRXZlbnQpO1xufTtcblxuZ2xvYmFsLlVSTC5jcmVhdGVPYmplY3RVUkwgPSBqZXN0LmZuKGJsb2IgPT4gYCR7YmxvYn1gKTtcbmdsb2JhbC5VUkwucmV2b2tlT2JqZWN0VVJMID0gamVzdC5mbigpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLndpbmRvdywgYENTU2AsIHt2YWx1ZTogbnVsbH0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLndpbmRvdywgYGdldENvbXB1dGVkU3R5bGVgLCB7XG4gICAgdmFsdWU6ICgpID0+ICh7XG4gICAgICAgIGRpc3BsYXk6IGBub25lYCxcbiAgICAgICAgYXBwZWFyYW5jZTogW2Atd2Via2l0LWFwcGVhcmFuY2VgXSxcbiAgICB9KSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLmRvY3VtZW50LCBgZG9jdHlwZWAsIHtcbiAgICB2YWx1ZTogYDwhRE9DVFlQRSBodG1sPmAsXG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbC5kb2N1bWVudC5ib2R5LnN0eWxlLCBgdHJhbnNmb3JtYCwge1xuICAgIHZhbHVlOiAoKSA9PiAoe1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSksXG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbC53aW5kb3csIGBtYXRjaE1lZGlhYCwge1xuICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIHZhbHVlOiBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKHF1ZXJ5ID0+ICh7XG4gICAgICAgIG1hdGNoZXM6IGZhbHNlLFxuICAgICAgICBtZWRpYTogcXVlcnksXG4gICAgICAgIG9uY2hhbmdlOiBudWxsLFxuICAgICAgICBhZGRMaXN0ZW5lcjogamVzdC5mbigpLFxuICAgICAgICByZW1vdmVMaXN0ZW5lcjogamVzdC5mbigpLFxuICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBqZXN0LmZuKCksXG4gICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGplc3QuZm4oKSxcbiAgICAgICAgZGlzcGF0Y2hFdmVudDogamVzdC5mbigpLFxuICAgIH0pKSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLmRvY3VtZW50LCBgZWxlbWVudEZyb21Qb2ludGAsIHtcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICB2YWx1ZTogamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBudWxsKSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLmRvY3VtZW50LCBgY3JlYXRlUmFuZ2VgLCB7XG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgdmFsdWU6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgUmFuZ2UoKTtcblxuICAgICAgICByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSAoKSA9PiAoe1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgIHRvSlNPTjogKCkgPT4ge30sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJhbmdlLmdldENsaWVudFJlY3RzID0gKCkgPT4gKHtcbiAgICAgICAgICAgIGl0ZW06ICgpID0+IG51bGwsXG4gICAgICAgICAgICBsZW5ndGg6IDAsXG4gICAgICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogamVzdC5mbigpLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmFuZ2U7XG4gICAgfSxcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCBgc2Nyb2xsVG9gLCBqZXN0LmZuKCkpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsLndpbmRvdywgYGdldENvbXB1dGVkU3R5bGVgLCB7XG4gICAgdmFsdWU6ICgpID0+ICh7XG4gICAgICAgIGdldFByb3BlcnR5VmFsdWU6IChfcHJvcDogc3RyaW5nKSA9PiBgYCxcbiAgICB9KSxcbn0pO1xuXG5nbG9iYWwuRGF0YVRyYW5zZmVyID0gY2xhc3Mge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0YSA9IG5ldyBNYXAoKTtcblxuICAgIHNldERhdGEoZm9ybWF0OiBzdHJpbmcsIGRhdGE6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuc2V0KGZvcm1hdCwgZGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0RGF0YShmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0KGZvcm1hdCk7XG4gICAgfVxufSBhcyB1bmtub3duIGFzIHR5cGVvZiBEYXRhVHJhbnNmZXI7XG5cbmNsYXNzIFRyYW5zZmVyTW9ja0V2ZW50IHtcbiAgICBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlcjtcbiAgICByZWxhdGVkVGFyZ2V0OiBFdmVudFRhcmdldDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSB0eXBlOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGNsaXBib2FyZERhdGE6IERhdGFUcmFuc2ZlcjtcbiAgICAgICAgICAgIHJlbGF0ZWRUYXJnZXQ6IEV2ZW50VGFyZ2V0O1xuICAgICAgICB9LFxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGFUcmFuc2ZlciA9IG9wdGlvbnMuY2xpcGJvYXJkRGF0YTtcbiAgICAgICAgdGhpcy5yZWxhdGVkVGFyZ2V0ID0gb3B0aW9ucy5yZWxhdGVkVGFyZ2V0O1xuICAgIH1cbn1cblxuZ2xvYmFsLkRyYWdFdmVudCA9IFRyYW5zZmVyTW9ja0V2ZW50IGFzIHVua25vd24gYXMgdHlwZW9mIERyYWdFdmVudDtcbmdsb2JhbC5DbGlwYm9hcmRFdmVudCA9IFRyYW5zZmVyTW9ja0V2ZW50IGFzIHVua25vd24gYXMgdHlwZW9mIENsaXBib2FyZEV2ZW50O1xuXG4vKipcbiAqIGluIG91ciBqZXN0IHNldHVwRmlsZXNBZnRlckVudiBmaWxlLFxuICogaG93ZXZlciB3aGVuIHJ1bm5pbmcgd2l0aCBuZyB0ZXN0IHRob3NlXG4gKiBpbXBvcnRzIGFyZSBhbHJlYWR5IGRvbmUgYnkgYW5ndWxhclxuICogcmVzdWx0aW5nIGluIGR1cGxpY2F0ZSBpbXBvcnRzXG4gKiBhbmQgY29uZmxpY3RzIHJlc3VsdGluZyBpbiB0aGUgYWJvdmUgZXJyb3JcbiAqL1xuaWYgKCEoYFpvbmVgIGluIGdsb2JhbCkpIHtcbiAgICByZXF1aXJlKGB6b25lLmpzYCk7XG4gICAgcmVxdWlyZShgem9uZS5qcy90ZXN0aW5nYCk7XG59XG5cbi8vIEBub3RlOiBidWlsZCBlbXB0eSBlbnRyeSBwb2ludFxuZXhwb3J0IHt9O1xuIl19
|