@genesislcap/foundation-testing 10.3.1 → 11.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/dts/playwright/setup.d.ts.map +1 -1
- package/dist/dts/playwright/test.d.ts +32 -5
- package/dist/dts/playwright/test.d.ts.map +1 -1
- package/dist/dts/suite/suite.d.ts +8 -1
- package/dist/dts/suite/suite.d.ts.map +1 -1
- package/dist/dts/utils/harness.d.ts +75 -0
- package/dist/dts/utils/harness.d.ts.map +1 -0
- package/dist/dts/utils/index.d.ts +2 -0
- package/dist/dts/utils/index.d.ts.map +1 -1
- package/dist/dts/utils/types.d.ts +11 -0
- package/dist/dts/utils/types.d.ts.map +1 -0
- package/dist/esm/component/fixture.js +0 -1
- package/dist/esm/component/index.js +0 -1
- package/dist/esm/index.federated.js +0 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/jsdom/setup.js +0 -1
- package/dist/esm/playwright/index.js +0 -1
- package/dist/esm/playwright/setup.js +5 -1
- package/dist/esm/playwright/test.js +42 -13
- package/dist/esm/suite/index.js +0 -1
- package/dist/esm/suite/suite.js +1 -2
- package/dist/esm/utils/harness.js +55 -0
- package/dist/esm/utils/index.js +2 -1
- package/dist/esm/utils/logger.js +0 -1
- package/dist/esm/utils/types.js +2 -0
- package/dist/esm/uvu/index.js +0 -1
- package/dist/esm/uvu/uvu.js +0 -1
- package/dist/foundation-testing.api.json +506 -0
- package/dist/foundation-testing.d.ts +100 -0
- package/docs/api/foundation-testing.equal.md +13 -0
- package/docs/api/foundation-testing.expect.md +13 -0
- package/docs/api/foundation-testing.filterconditionally.md +15 -0
- package/docs/api/foundation-testing.md +9 -0
- package/docs/api/foundation-testing.resettestharness.md +24 -0
- package/docs/api/foundation-testing.sinonwrapper.md +17 -0
- package/docs/api/foundation-testing.spiedfunctions.md +15 -0
- package/docs/api/foundation-testing.suitecallback.md +15 -0
- package/docs/api/foundation-testing.testspy.md +38 -0
- package/docs/api/foundation-testing.withtestharness.md +17 -0
- package/docs/api-report.md +123 -87
- package/package.json +12 -7
- package/dist/1.0.0.remoteEntry.js +0 -1
- package/dist/191.0099ca6c24422254d51d36c222dc6023.js.map +0 -1
- package/dist/191.191.613504f8a55556ba573c.js +0 -2
- package/dist/259.1ff0e7689abdc0527a57f2eb20369ada.js.map +0 -1
- package/dist/259.259.724449a74ba114ef0d82.js +0 -2
- package/dist/415.32cf4cabeed75f5d759d12434a4de5c7.js.map +0 -1
- package/dist/415.415.ee8e35767118401bccab.js +0 -3
- package/dist/415.415.ee8e35767118401bccab.js.LICENSE.txt +0 -4
- package/dist/623.1b885cabcffad0807eeb0de7ad5dd497.js.map +0 -1
- package/dist/623.623.148af50848667bfda381.js +0 -3
- package/dist/623.623.148af50848667bfda381.js.LICENSE.txt +0 -4
- package/dist/755.497b49c90948bc3e157823cb2632c52a.js.map +0 -1
- package/dist/755.755.5f9603173373118bd373.js +0 -2
- package/dist/772.1d442e2541aac79f2c1091cc41a66926.js.map +0 -1
- package/dist/772.772.76d81e3af1ce835f1f47.js +0 -2
- package/dist/dashboard.json +0 -1
- package/dist/esm/component/fixture.js.map +0 -1
- package/dist/esm/component/index.js.map +0 -1
- package/dist/esm/index.federated.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/jsdom/setup.js.map +0 -1
- package/dist/esm/playwright/index.js.map +0 -1
- package/dist/esm/playwright/setup.js.map +0 -1
- package/dist/esm/playwright/test.js.map +0 -1
- package/dist/esm/suite/index.js.map +0 -1
- package/dist/esm/suite/suite.js.map +0 -1
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/logger.js.map +0 -1
- package/dist/esm/uvu/index.js.map +0 -1
- package/dist/esm/uvu/uvu.js.map +0 -1
- package/dist/favicon.ico +0 -0
- package/dist/foundation-testing.iife.min.js +0 -15
- package/dist/foundation-testing.js +0 -6991
- package/dist/foundation-testing.min.js +0 -15
- package/dist/foundationTesting.f38614af33c4c4be86b1918f8d126cd9.js.map +0 -1
- package/dist/index.ejs +0 -23
- package/dist/index.html +0 -14
- package/dist/info.ejs +0 -13
- package/dist/main.484382eb648d01b1b33d.js +0 -2
- package/dist/main.f58a8d7f17348e63bf4abb67acf3e598.js.map +0 -1
- package/dist/npm.consola.713.2f64f3cac7864c3b4057.js +0 -2
- package/dist/npm.consola.8813a44257414a02ed3be5608793f087.js.map +0 -1
- package/dist/npm.diff.83d06b572c2ee1bd4957fc9f121bf65a.js.map +0 -1
- package/dist/npm.diff.852.9166591dbfda57fefcc7.js +0 -2
- package/dist/npm.microsoft.127.8c2d0309b2c5ee49f9ed.js +0 -1469
- package/dist/npm.microsoft.127.8c2d0309b2c5ee49f9ed.js.LICENSE.txt +0 -14
- package/dist/npm.microsoft.53571229b0cfc6a6b1b069cfe9a8483d.js.map +0 -1
- package/dist/remoteEntry.js +0 -2
- package/dist/serve.json +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/observer/observer.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/logger/logger.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/utils/logger.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/data/inMemoryDatabase.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/decorators/renderOnChange.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/designSystem/designSystem.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/directives/sync/sync.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/env/index.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/formatters/datetime.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/mappers/dto/serverRow.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/mixins/pendingState/pendingState.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/mixins/lifecycle/lifecycle.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/resource/types.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/serializers/json/json.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/styles/color.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/styles/dom.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/styles/slotted-styles.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/styles/typography.js","webpack://@genesislcap/foundation-testing/../node_modules/uuid/dist/esm-browser/rng.js","webpack://@genesislcap/foundation-testing/../node_modules/uuid/dist/esm-browser/regex.js","webpack://@genesislcap/foundation-testing/../node_modules/uuid/dist/esm-browser/validate.js","webpack://@genesislcap/foundation-testing/../node_modules/uuid/dist/esm-browser/stringify.js","webpack://@genesislcap/foundation-testing/../node_modules/uuid/dist/esm-browser/v4.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/uuid/uuid.js","webpack://@genesislcap/foundation-testing/../foundation-utils/dist/esm/window/window.js"],"names":["createObserver","listeners","subscribe","listener","push","filter","l","publish","event","forEach","defaultLoggerOptions","level","createLogger","name","options","withTag","logger","InMemoryDatabase","constructor","uuid","this","isWorking","records","beforeUpdateListeners","afterUpdateListeners","create","newValue","__awaiter","id","createRemoteId","update","read","record","debug","JSON","stringify","err","error","value","Object","assign","dataRecord","delete","success","visit","visitor","values","onBeforeUpdate","onAfterUpdate","renderOnChange","target","render","assureDesignSystem","module","Error","provideDesignSystem","defaultEventMap","Map","customUpdateTarget","targetName","bind","source","context","updateTarget","originalBind","call","addEventListener","changeEvent","changeHandler","unbind","originalUnbind","removeEventListener","SyncDirective","HTMLBindingDirective","binding","convert","eventName","keyAttr","super","conversionType","createBehavior","behavior","_a","tag","tagName","get","determineChangeEvent","checked","last","bindingObserver","key","propertySource","propertyName","msSinceEpoch","Date","getTime","isNaN","undefined","length","Number","String","Boolean","sync","isDev","isoDateSliceEnd","formatDateTimestamp","timestamp","toISOString","slice","isoDateTimeSliceEnd","formatDateTimeTimestamp","replace","formatTimestamp","withTime","DefaultServerRowDTOMapper","fromDTO","dto","_b","_c","serverRowMetadata","operation","DETAILS","OPERATION","toLowerCase","rowRef","ROW_REF","toDTO","entity","toUpperCase","ServerRowDTOMapper","DI","x","singleton","PendingStateEvents","PendingState","Base","Pending","arguments","pendingCount","resolvedCount","hasPendingChildren","progress","connectedCallback","state","onPendingState","disconnectedCallback","detail","promise","$emit","message","__decorate","observable","prototype","LifecycleMixin","_instances","__containingLayout","__tryFindContainingLayout","args","add","set","cloneNode","deep","thisClone","deepClone","Array","from","childNodes","child","appendChild","copy","document","createElement","getAttributeNames","at","setAttribute","getAttribute","shouldRunDisconnect","__classPrivateFieldGet","dragging","shouldRunConnect","__classPrivateFieldSet","WeakMap","WeakSet","e","getRootNode","Document","DocumentFragment","shadowHost","host","ResourceType","local","remote","DefaultJSONSerializer","serialize","object","deserialize","input","ok","text","then","parse","data","JSONSerializer","DesignToken","activeColorScheme","withDefault","elem","insertDocumentCSSRule","cssRule","styleElementId","styleElement","getElementById","headElement","head","getElementsByTagName","styleIndex","sheet","insertRule","deleteRule","removeChild","insertDocumentLink","href","links","querySelectorAll","index","link","rel","SlottedStyles","FASTElement","stylesChanged","prev","next","parentElement","$fastController","removeStyles","addStyles","customElement","loadFontFaces","fontFaceRules","FontStyle","FontWeight","getFontMixin","family","style","Normal","weight","Regular","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","byteToHex","i","toString","substr","arr","offset","TypeError","buf","rnds","random","UUIDService","createId","withLogging","UUID","inIFrame","window","self","top","inSymphonyDesktop","userAgent","navigator","includes","POPUP_DEFAULT_WIDTH","POPUP_DEFAULT_HEIGHT","openPopup","urlNavigate","popUpWidth","popUpHeight","left","innerWidth","screenX","innerHeight","screenY","popupWindow","open","focus"],"mappings":"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","file":"259.259.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["export const createObserver = () => {\n let listeners = [];\n return {\n subscribe(listener) {\n listeners.push(listener);\n return () => (listeners = listeners.filter((l) => l !== listener));\n },\n publish(event) {\n listeners.forEach((l) => l(event));\n },\n };\n};\n//# sourceMappingURL=observer.js.map","import consola from 'consola/src/browser';\nexport { LogLevel } from 'consola';\nconst logLevelDebug = 4;\nexport const defaultLoggerOptions = {\n level: logLevelDebug,\n};\nexport function createLogger(name, options = defaultLoggerOptions) {\n const baseLogger = consola.create(options);\n const logger = baseLogger.withTag(name);\n return logger;\n}\n//# sourceMappingURL=logger.js.map","import { createLogger } from '../logger';\nexport const logger = createLogger('foundation-utils');\n//# sourceMappingURL=logger.js.map","import { __awaiter } from \"tslib\";\nimport { createObserver } from '../observer';\nimport { logger } from '../utils';\nexport class InMemoryDatabase {\n constructor(uuid) {\n this.uuid = uuid;\n this.isWorking = false;\n this.records = {};\n this.beforeUpdateListeners = createObserver();\n this.afterUpdateListeners = createObserver();\n }\n create(newValue) {\n return __awaiter(this, void 0, void 0, function* () {\n const id = yield this.uuid.createRemoteId();\n return this.update(id, newValue);\n });\n }\n read(id) {\n return __awaiter(this, void 0, void 0, function* () {\n let record;\n try {\n this.isWorking = true;\n record = this.records[id];\n logger.debug(`Database.read ${JSON.stringify(record)}`);\n }\n catch (err) {\n logger.error('Database.read error', err);\n throw err;\n }\n finally {\n this.isWorking = false;\n }\n return {\n value: record,\n };\n });\n }\n update(id, newValue) {\n return __awaiter(this, void 0, void 0, function* () {\n const record = Object.assign(Object.assign({}, newValue), { id });\n const dataRecord = record;\n try {\n this.isWorking = true;\n this.beforeUpdateListeners.publish({\n value: this.records[id],\n newValue: record,\n });\n this.records[id] = dataRecord;\n this.afterUpdateListeners.publish({\n value: record,\n });\n logger.debug(`Database.create success ${JSON.stringify(dataRecord)}`);\n }\n catch (err) {\n logger.error('Database.create error', err);\n throw err;\n }\n finally {\n this.isWorking = false;\n }\n return {\n value: record,\n };\n });\n }\n delete(id) {\n return __awaiter(this, void 0, void 0, function* () {\n let success = true;\n try {\n this.isWorking = true;\n success = delete this.records[id];\n logger.debug(`Database.delete ${id}`);\n }\n catch (err) {\n logger.error('Database.delete error', err);\n throw err;\n }\n finally {\n this.isWorking = false;\n }\n return {\n id,\n success,\n };\n });\n }\n visit(visitor) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n this.isWorking = true;\n Object.values(this.records).forEach(visitor);\n logger.debug(`Database.visit complete`);\n }\n catch (err) {\n logger.error('Database.visit error', err);\n throw err;\n }\n finally {\n this.isWorking = false;\n }\n });\n }\n onBeforeUpdate(listener) {\n return this.beforeUpdateListeners.subscribe(listener);\n }\n onAfterUpdate(listener) {\n return this.afterUpdateListeners.subscribe(listener);\n }\n}\n//# sourceMappingURL=inMemoryDatabase.js.map","export function renderOnChange(target, name) {\n target[name + 'Changed'] = target.render;\n}\n//# sourceMappingURL=renderOnChange.js.map","export function assureDesignSystem(module) {\n if (!module) {\n throw new Error('Undefined design system module');\n }\n if (typeof module.provideDesignSystem !== 'function') {\n throw new Error('Required `provideDesignSystem` function missing from design system module');\n }\n return module;\n}\n//# sourceMappingURL=designSystem.js.map","import { HTMLBindingDirective, } from '@microsoft/fast-element';\nexport const defaultEventMap = new Map([\n ['FAST-TEXT-AREA', 'input'],\n ['FAST-TEXT-FIELD', 'input'],\n ['FOUNDATION-TEXT-AREA', 'input'],\n ['FOUNDATION-TEXT-FIELD', 'input'],\n ['INPUT', 'input'],\n ['ZERO-TEXT-FIELD', 'input'],\n]);\nfunction customUpdateTarget(value) {\n if (this['keyAttr']) {\n }\n else {\n this.target[this.targetName] = value;\n }\n}\nfunction bind(source, context) {\n if (this['keyAttr']) {\n this.updateTarget = customUpdateTarget;\n }\n this.originalBind.call(this, source, context);\n this.target.addEventListener(this.changeEvent, this.changeHandler);\n}\nfunction unbind() {\n this.originalUnbind.call(this);\n this.target.removeEventListener(this.changeEvent, this.changeHandler);\n}\nfunction determineChangeEvent(target, eventName) {\n var _a;\n const tag = target.tagName;\n if (eventName === 'default') {\n return (_a = defaultEventMap.get(tag)) !== null && _a !== void 0 ? _a : 'change';\n }\n return eventName;\n}\nclass SyncDirective extends HTMLBindingDirective {\n constructor(binding, convert, eventName, keyAttr) {\n super(binding);\n this.keyAttr = keyAttr;\n this.conversionType = convert;\n this.eventName = eventName;\n }\n createBehavior(target) {\n const behavior = super.createBehavior(target);\n behavior.originalBind = behavior.bind;\n behavior.originalUnbind = behavior.unbind;\n behavior.keyAttr = this.keyAttr;\n behavior.bind = bind;\n behavior.unbind = unbind;\n behavior.changeEvent = determineChangeEvent(target, this.eventName);\n behavior.changeHandler = () => {\n const value = this.conversionType === 'boolean' ? behavior.target.checked : behavior.target.value;\n if (this.keyAttr) {\n const last = behavior.bindingObserver.last;\n const key = behavior.target[this.keyAttr];\n last.propertySource[last.propertyName][key] = this.convert(value);\n }\n else {\n const last = behavior.bindingObserver.last;\n last.propertySource[last.propertyName] = this.convert(value);\n }\n };\n return behavior;\n }\n convert(value) {\n if (value === undefined || value === null)\n return value;\n switch (this.conversionType) {\n case 'time':\n const msSinceEpoch = new Date(value).getTime();\n return isNaN(msSinceEpoch) ? undefined : msSinceEpoch;\n case 'number':\n return value.length ? Number(value) : undefined;\n case 'string':\n return String(value);\n case 'boolean':\n return Boolean(value);\n default:\n return value;\n }\n }\n}\nexport function sync(binding, conversionType = 'string', eventName = 'default', keyAttr) {\n return new SyncDirective(binding, conversionType, eventName, keyAttr);\n}\n//# sourceMappingURL=sync.js.map","export const isDev = () => !process.env.NODE_ENV || process.env.NODE_ENV === 'development';\n//# sourceMappingURL=index.js.map","const isoDateSliceEnd = 10;\nexport function formatDateTimestamp(timestamp) {\n if (!timestamp || isNaN(timestamp))\n return null;\n return new Date(timestamp).toISOString().slice(0, isoDateSliceEnd);\n}\nconst isoDateTimeSliceEnd = 19;\nexport function formatDateTimeTimestamp(timestamp) {\n if (!timestamp || isNaN(timestamp))\n return null;\n return new Date(timestamp).toISOString().slice(0, isoDateTimeSliceEnd).replace('T', ' ');\n}\nexport function formatTimestamp(timestamp, withTime) {\n if (withTime) {\n return formatDateTimeTimestamp(timestamp);\n }\n return formatDateTimestamp(timestamp);\n}\n//# sourceMappingURL=datetime.js.map","import { DI } from '@microsoft/fast-foundation';\nexport class DefaultServerRowDTOMapper {\n constructor() {\n this.fromDTO = (dto) => {\n var _a, _b, _c;\n return ({\n serverRowMetadata: {\n operation: (_b = (_a = dto === null || dto === void 0 ? void 0 : dto.DETAILS) === null || _a === void 0 ? void 0 : _a.OPERATION) === null || _b === void 0 ? void 0 : _b.toLowerCase(),\n rowRef: (_c = dto === null || dto === void 0 ? void 0 : dto.DETAILS) === null || _c === void 0 ? void 0 : _c.ROW_REF,\n },\n });\n };\n this.toDTO = (entity) => {\n var _a, _b, _c;\n return ({\n DETAILS: {\n OPERATION: (_b = (_a = entity === null || entity === void 0 ? void 0 : entity.serverRowMetadata) === null || _a === void 0 ? void 0 : _a.operation) === null || _b === void 0 ? void 0 : _b.toUpperCase(),\n ROW_REF: (_c = entity === null || entity === void 0 ? void 0 : entity.serverRowMetadata) === null || _c === void 0 ? void 0 : _c.rowRef,\n },\n });\n };\n }\n}\nexport const ServerRowDTOMapper = DI.createInterface((x) => x.singleton(DefaultServerRowDTOMapper));\n//# sourceMappingURL=serverRow.js.map","import { __awaiter, __decorate } from \"tslib\";\nimport { observable } from '@microsoft/fast-element';\nimport { logger } from '../../utils';\nexport var PendingStateEvents;\n(function (PendingStateEvents) {\n PendingStateEvents[\"state\"] = \"pending-state\";\n PendingStateEvents[\"error\"] = \"pending-state-error\";\n})(PendingStateEvents || (PendingStateEvents = {}));\nexport const PendingState = (Base) => {\n class Pending extends Base {\n constructor() {\n super(...arguments);\n this.pendingCount = 0;\n this.resolvedCount = 0;\n this.hasPendingChildren = false;\n }\n get progress() {\n return this.resolvedCount / this.pendingCount;\n }\n connectedCallback() {\n super.connectedCallback();\n logger.debug(`PendingState mixin is now connected to the DOM`);\n this.addEventListener(PendingStateEvents.state, this.onPendingState);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n logger.debug(`PendingState mixin is now disconnected from the DOM`);\n this.removeEventListener(PendingStateEvents.state, this.onPendingState);\n }\n onPendingState({ detail }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { promise } = detail;\n if (promise) {\n this.hasPendingChildren = true;\n this.pendingCount += 1;\n try {\n yield promise;\n }\n catch (error) {\n this.$emit(PendingStateEvents.error, {\n message: `Error in pending-state promise: ${error}`,\n error,\n });\n }\n finally {\n this.resolvedCount += 1;\n if (this.pendingCount === this.resolvedCount) {\n this.hasPendingChildren = false;\n }\n }\n }\n });\n }\n }\n __decorate([\n observable\n ], Pending.prototype, \"hasPendingChildren\", void 0);\n return Pending;\n};\n//# sourceMappingURL=pendingState.js.map","import { __classPrivateFieldGet, __classPrivateFieldSet } from \"tslib\";\nexport const LifecycleMixin = (Base) => { var _instances, __containingLayout, __tryFindContainingLayout, _a; return _a = class extends Base {\n constructor(...args) {\n super(args);\n _instances.add(this);\n __containingLayout.set(this, null);\n }\n cloneNode(deep) {\n const thisClone = this.deepClone();\n if (deep) {\n Array.from(this.childNodes).forEach((child) => {\n thisClone.appendChild(child.cloneNode(true));\n });\n }\n return thisClone;\n }\n deepClone() {\n const copy = document.createElement(this.tagName.toLowerCase());\n this.getAttributeNames().forEach((at) => copy.setAttribute(at, this.getAttribute(at)));\n return copy;\n }\n get shouldRunDisconnect() {\n if (__classPrivateFieldGet(this, __containingLayout, \"f\") === null)\n return true;\n return !__classPrivateFieldGet(this, __containingLayout, \"f\").dragging;\n }\n get shouldRunConnect() {\n return this.shouldRunDisconnect;\n }\n connectedCallback() {\n super.connectedCallback();\n if (__classPrivateFieldGet(this, __containingLayout, \"f\") === null) {\n __classPrivateFieldSet(this, __containingLayout, __classPrivateFieldGet(this, _instances, \"m\", __tryFindContainingLayout).call(this, this), \"f\");\n }\n }\n },\n __containingLayout = new WeakMap(),\n _instances = new WeakSet(),\n __tryFindContainingLayout = function __tryFindContainingLayout(e) {\n if (e.getRootNode() instanceof Document || e.getRootNode() instanceof DocumentFragment) {\n return null;\n }\n const shadowHost = e.getRootNode().host;\n if (shadowHost.constructor.name === 'FoundationLayout') {\n return shadowHost;\n }\n return __classPrivateFieldGet(this, _instances, \"m\", __tryFindContainingLayout).call(this, shadowHost);\n },\n _a; };\n//# sourceMappingURL=lifecycle.js.map","export const ResourceType = {\n local: 'local',\n remote: 'remote',\n};\n//# sourceMappingURL=types.js.map","import { DI } from '@microsoft/fast-foundation';\nclass DefaultJSONSerializer {\n constructor() {\n this.serialize = (object) => JSON.stringify(object);\n }\n deserialize(input) {\n if (input && input.ok) {\n return input.text().then((text) => JSON.parse(text));\n }\n if (input && input.data) {\n input = input.data;\n }\n return JSON.parse(input);\n }\n}\nexport const JSONSerializer = DI.createInterface((x) => x.singleton(DefaultJSONSerializer));\n//# sourceMappingURL=json.js.map","import { baseLayerLuminance, StandardLuminance } from '@microsoft/fast-components';\nimport { DesignToken } from '@microsoft/fast-foundation';\nconst { create } = DesignToken;\nexport const activeColorScheme = create('active-color-scheme').withDefault((elem) => baseLayerLuminance.getValueFor(elem) === StandardLuminance.LightMode ? 'light' : 'dark');\n//# sourceMappingURL=color.js.map","import { logger } from '../utils/logger';\nexport const insertDocumentCSSRule = (cssRule, styleElementId) => {\n var _a;\n let styleElement = document.getElementById(styleElementId);\n if (styleElement) {\n logger.debug(`\n An element with the id of '${styleElementId}' already exists and likely has the css rules applied.\n `);\n return;\n }\n const headElement = (_a = document.head) !== null && _a !== void 0 ? _a : document.getElementsByTagName('head')[0];\n styleElement = document.createElement('style');\n styleElement.id = styleElementId;\n headElement.appendChild(styleElement);\n const styleIndex = styleElement.sheet.insertRule(cssRule);\n return () => {\n if (!styleElement) {\n return;\n }\n styleElement.sheet.deleteRule(styleIndex);\n headElement.removeChild(styleElement);\n };\n};\nexport const insertDocumentLink = (href) => {\n const links = document.head.querySelectorAll('link');\n for (const index in links)\n if (links[index].href === href)\n return;\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n document.head.appendChild(link);\n};\n//# sourceMappingURL=dom.js.map","import { __decorate } from \"tslib\";\nimport { customElement, FASTElement, observable } from '@microsoft/fast-element';\nlet SlottedStyles = class SlottedStyles extends FASTElement {\n stylesChanged(prev, next) {\n if (prev) {\n this.parentElement.$fastController.removeStyles(prev);\n }\n this.parentElement.$fastController.addStyles(next);\n }\n};\n__decorate([\n observable\n], SlottedStyles.prototype, \"styles\", void 0);\nSlottedStyles = __decorate([\n customElement({\n name: 'slotted-styles',\n })\n], SlottedStyles);\nexport { SlottedStyles };\n//# sourceMappingURL=slotted-styles.js.map","import { insertDocumentCSSRule } from './dom';\nexport const loadFontFaces = (fontFaceRules, styleElementId) => {\n insertDocumentCSSRule(fontFaceRules, styleElementId);\n};\nexport var FontStyle;\n(function (FontStyle) {\n FontStyle[\"Italic\"] = \"italic\";\n FontStyle[\"Normal\"] = \"normal\";\n})(FontStyle || (FontStyle = {}));\nexport var FontWeight;\n(function (FontWeight) {\n FontWeight[FontWeight[\"Thin\"] = 100] = \"Thin\";\n FontWeight[FontWeight[\"Light\"] = 300] = \"Light\";\n FontWeight[FontWeight[\"Regular\"] = 400] = \"Regular\";\n FontWeight[FontWeight[\"Medium\"] = 500] = \"Medium\";\n FontWeight[FontWeight[\"Bold\"] = 700] = \"Bold\";\n FontWeight[FontWeight[\"Black\"] = 900] = \"Black\";\n})(FontWeight || (FontWeight = {}));\nexport const getFontMixin = (family, style = FontStyle.Normal, weight = FontWeight.Regular) => `\n font-family: ${family};\n font-style: ${style};\n font-weight: ${weight};\n`;\n//# sourceMappingURL=typography.js.map","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { __awaiter } from \"tslib\";\nimport { v4 as uuidv4 } from 'uuid';\nimport { DI } from '@microsoft/fast-foundation';\nimport { logger } from '../utils';\nclass UUIDService {\n constructor() { }\n createId(withLogging = false) {\n const id = uuidv4();\n withLogging && logger.debug(`UUID.createID ${id}`);\n return id;\n }\n createRemoteId(withLogging = false) {\n return __awaiter(this, void 0, void 0, function* () {\n const id = uuidv4();\n withLogging && logger.debug(`UUID.createRemoteID ${id}`);\n return id;\n });\n }\n}\nexport const UUID = DI.createInterface((x) => x.singleton(UUIDService));\n//# sourceMappingURL=uuid.js.map","export const inIFrame = () => {\n try {\n return window.self !== window.top;\n }\n catch (e) {\n return true;\n }\n};\nexport const inSymphonyDesktop = () => {\n const userAgent = navigator === null || navigator === void 0 ? void 0 : navigator.userAgent;\n return (userAgent === null || userAgent === void 0 ? void 0 : userAgent.includes('Symphony')) && (userAgent === null || userAgent === void 0 ? void 0 : userAgent.includes('Electron'));\n};\nexport const POPUP_DEFAULT_WIDTH = 483;\nexport const POPUP_DEFAULT_HEIGHT = 600;\nexport const openPopup = (urlNavigate, target, popUpWidth = POPUP_DEFAULT_WIDTH, popUpHeight = POPUP_DEFAULT_HEIGHT) => {\n const left = window.innerWidth / 2 - popUpWidth / 2 + window.screenX;\n const top = window.innerHeight / 2 - popUpHeight / 2 + window.screenY;\n const popupWindow = window.open(urlNavigate, target, 'width=' +\n popUpWidth +\n ', height=' +\n popUpHeight +\n ', top=' +\n top +\n ', left=' +\n left +\n ', scrollbars=yes');\n if (popupWindow.focus) {\n popupWindow.focus();\n }\n return popupWindow;\n};\n//# sourceMappingURL=window.js.map"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_genesislcap_foundation_testing=self.webpackChunk_genesislcap_foundation_testing||[]).push([[259],{259:(e,t,n)=>{"use strict";n.r(t),n.d(t,{DefaultServerRowDTOMapper:()=>k,FontStyle:()=>V,FontWeight:()=>G,InMemoryDatabase:()=>l,JSONSerializer:()=>U,LifecycleMixin:()=>I,LogLevel:()=>s.LogLevel,POPUP_DEFAULT_HEIGHT:()=>se,POPUP_DEFAULT_WIDTH:()=>oe,PendingState:()=>O,PendingStateEvents:()=>N,ResourceType:()=>L,ServerRowDTOMapper:()=>R,SlottedStyles:()=>x,UUID:()=>ne,activeColorScheme:()=>W,assureDesignSystem:()=>h,createLogger:()=>c,createObserver:()=>i,defaultEventMap:()=>v,defaultLoggerOptions:()=>a,formatDateTimeTimestamp:()=>T,formatDateTimestamp:()=>E,formatTimestamp:()=>_,getFontMixin:()=>J,inIFrame:()=>re,inSymphonyDesktop:()=>ie,insertDocumentCSSRule:()=>$,insertDocumentLink:()=>B,isDev:()=>w,loadFontFaces:()=>H,openPopup:()=>ae,renderOnChange:()=>u,sync:()=>b});var r=n(304);const i=()=>{let e=[];return{subscribe:t=>(e.push(t),()=>e=e.filter((e=>e!==t))),publish(t){e.forEach((e=>e(t)))}}};var o=n(100),s=n(708);const a={level:4};function c(e,t=a){return o.Z.create(t).withTag(e)}const d=c("foundation-utils");class l{constructor(e){this.uuid=e,this.isWorking=!1,this.records={},this.beforeUpdateListeners=i(),this.afterUpdateListeners=i()}create(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=yield this.uuid.createRemoteId();return this.update(t,e)}))}read(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){let t;try{this.isWorking=!0,t=this.records[e],d.debug(`Database.read ${JSON.stringify(t)}`)}catch(e){throw d.error("Database.read error",e),e}finally{this.isWorking=!1}return{value:t}}))}update(e,t){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const n=Object.assign(Object.assign({},t),{id:e}),r=n;try{this.isWorking=!0,this.beforeUpdateListeners.publish({value:this.records[e],newValue:n}),this.records[e]=r,this.afterUpdateListeners.publish({value:n}),d.debug(`Database.create success ${JSON.stringify(r)}`)}catch(e){throw d.error("Database.create error",e),e}finally{this.isWorking=!1}return{value:n}}))}delete(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){let t=!0;try{this.isWorking=!0,t=delete this.records[e],d.debug(`Database.delete ${e}`)}catch(e){throw d.error("Database.delete error",e),e}finally{this.isWorking=!1}return{id:e,success:t}}))}visit(e){return(0,r.__awaiter)(this,void 0,void 0,(function*(){try{this.isWorking=!0,Object.values(this.records).forEach(e),d.debug("Database.visit complete")}catch(e){throw d.error("Database.visit error",e),e}finally{this.isWorking=!1}}))}onBeforeUpdate(e){return this.beforeUpdateListeners.subscribe(e)}onAfterUpdate(e){return this.afterUpdateListeners.subscribe(e)}}function u(e,t){e[t+"Changed"]=e.render}function h(e){if(!e)throw new Error("Undefined design system module");if("function"!=typeof e.provideDesignSystem)throw new Error("Required `provideDesignSystem` function missing from design system module");return e}var g=n(147);const v=new Map([["FAST-TEXT-AREA","input"],["FAST-TEXT-FIELD","input"],["FOUNDATION-TEXT-AREA","input"],["FOUNDATION-TEXT-FIELD","input"],["INPUT","input"],["ZERO-TEXT-FIELD","input"]]);function f(e){this.keyAttr||(this.target[this.targetName]=e)}function p(e,t){this.keyAttr&&(this.updateTarget=f),this.originalBind.call(this,e,t),this.target.addEventListener(this.changeEvent,this.changeHandler)}function m(){this.originalUnbind.call(this),this.target.removeEventListener(this.changeEvent,this.changeHandler)}class y extends g.HTMLBindingDirective{constructor(e,t,n,r){super(e),this.keyAttr=r,this.conversionType=t,this.eventName=n}createBehavior(e){const t=super.createBehavior(e);return t.originalBind=t.bind,t.originalUnbind=t.unbind,t.keyAttr=this.keyAttr,t.bind=p,t.unbind=m,t.changeEvent=function(e,t){var n;const r=e.tagName;return"default"===t?null!==(n=v.get(r))&&void 0!==n?n:"change":t}(e,this.eventName),t.changeHandler=()=>{const e="boolean"===this.conversionType?t.target.checked:t.target.value;if(this.keyAttr){const n=t.bindingObserver.last,r=t.target[this.keyAttr];n.propertySource[n.propertyName][r]=this.convert(e)}else{const n=t.bindingObserver.last;n.propertySource[n.propertyName]=this.convert(e)}},t}convert(e){if(null==e)return e;switch(this.conversionType){case"time":const t=new Date(e).getTime();return isNaN(t)?void 0:t;case"number":return e.length?Number(e):void 0;case"string":return String(e);case"boolean":return Boolean(e);default:return e}}}function b(e,t="string",n="default",r){return new y(e,t,n,r)}const w=()=>!1,D=10;function E(e){return!e||isNaN(e)?null:new Date(e).toISOString().slice(0,D)}const S=19;function T(e){return!e||isNaN(e)?null:new Date(e).toISOString().slice(0,S).replace("T"," ")}function _(e,t){return t?T(e):E(e)}var C=n(951);class k{constructor(){this.fromDTO=e=>{var t,n,r;return{serverRowMetadata:{operation:null===(n=null===(t=null==e?void 0:e.DETAILS)||void 0===t?void 0:t.OPERATION)||void 0===n?void 0:n.toLowerCase(),rowRef:null===(r=null==e?void 0:e.DETAILS)||void 0===r?void 0:r.ROW_REF}}},this.toDTO=e=>{var t,n,r;return{DETAILS:{OPERATION:null===(n=null===(t=null==e?void 0:e.serverRowMetadata)||void 0===t?void 0:t.operation)||void 0===n?void 0:n.toUpperCase(),ROW_REF:null===(r=null==e?void 0:e.serverRowMetadata)||void 0===r?void 0:r.rowRef}}}}}const R=C.DI.createInterface((e=>e.singleton(k)));var N;!function(e){e.state="pending-state",e.error="pending-state-error"}(N||(N={}));const O=e=>{class t extends e{constructor(){super(...arguments),this.pendingCount=0,this.resolvedCount=0,this.hasPendingChildren=!1}get progress(){return this.resolvedCount/this.pendingCount}connectedCallback(){super.connectedCallback(),d.debug("PendingState mixin is now connected to the DOM"),this.addEventListener(N.state,this.onPendingState)}disconnectedCallback(){super.disconnectedCallback(),d.debug("PendingState mixin is now disconnected from the DOM"),this.removeEventListener(N.state,this.onPendingState)}onPendingState({detail:e}){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const{promise:t}=e;if(t){this.hasPendingChildren=!0,this.pendingCount+=1;try{yield t}catch(e){this.$emit(N.error,{message:`Error in pending-state promise: ${e}`,error:e})}finally{this.resolvedCount+=1,this.pendingCount===this.resolvedCount&&(this.hasPendingChildren=!1)}}}))}}return(0,r.__decorate)([g.observable],t.prototype,"hasPendingChildren",void 0),t},I=e=>{var t,n,i,o;return o=class extends e{constructor(...e){super(e),t.add(this),n.set(this,null)}cloneNode(e){const t=this.deepClone();return e&&Array.from(this.childNodes).forEach((e=>{t.appendChild(e.cloneNode(!0))})),t}deepClone(){const e=document.createElement(this.tagName.toLowerCase());return this.getAttributeNames().forEach((t=>e.setAttribute(t,this.getAttribute(t)))),e}get shouldRunDisconnect(){return null===(0,r.__classPrivateFieldGet)(this,n,"f")||!(0,r.__classPrivateFieldGet)(this,n,"f").dragging}get shouldRunConnect(){return this.shouldRunDisconnect}connectedCallback(){super.connectedCallback(),null===(0,r.__classPrivateFieldGet)(this,n,"f")&&(0,r.__classPrivateFieldSet)(this,n,(0,r.__classPrivateFieldGet)(this,t,"m",i).call(this,this),"f")}},n=new WeakMap,t=new WeakSet,i=function e(n){if(n.getRootNode()instanceof Document||n.getRootNode()instanceof DocumentFragment)return null;const i=n.getRootNode().host;return"FoundationLayout"===i.constructor.name?i:(0,r.__classPrivateFieldGet)(this,t,"m",e).call(this,i)},o},L={local:"local",remote:"remote"};class A{constructor(){this.serialize=e=>JSON.stringify(e)}deserialize(e){return e&&e.ok?e.text().then((e=>JSON.parse(e))):(e&&e.data&&(e=e.data),JSON.parse(e))}}const U=C.DI.createInterface((e=>e.singleton(A)));var F=n(193),P=n(251);const{create:M}=C.DesignToken,W=M("active-color-scheme").withDefault((e=>F.q2.getValueFor(e)===P.h.LightMode?"light":"dark")),$=(e,t)=>{var n;let r=document.getElementById(t);if(r)return void d.debug(`\n An element with the id of '${t}' already exists and likely has the css rules applied.\n `);const i=null!==(n=document.head)&&void 0!==n?n:document.getElementsByTagName("head")[0];r=document.createElement("style"),r.id=t,i.appendChild(r);const o=r.sheet.insertRule(e);return()=>{r&&(r.sheet.deleteRule(o),i.removeChild(r))}},B=e=>{const t=document.head.querySelectorAll("link");for(const n in t)if(t[n].href===e)return;const n=document.createElement("link");n.rel="stylesheet",n.href=e,document.head.appendChild(n)};let x=class extends g.FASTElement{stylesChanged(e,t){e&&this.parentElement.$fastController.removeStyles(e),this.parentElement.$fastController.addStyles(t)}};(0,r.__decorate)([g.observable],x.prototype,"styles",void 0),x=(0,r.__decorate)([(0,g.customElement)({name:"slotted-styles"})],x);const H=(e,t)=>{$(e,t)};var V,G;!function(e){e.Italic="italic",e.Normal="normal"}(V||(V={})),function(e){e[e.Thin=100]="Thin",e[e.Light=300]="Light",e[e.Regular=400]="Regular",e[e.Medium=500]="Medium",e[e.Bold=700]="Bold",e[e.Black=900]="Black"}(G||(G={}));const J=(e,t=V.Normal,n=G.Regular)=>`\n font-family: ${e};\n font-style: ${t};\n font-weight: ${n};\n`;var X,j=new Uint8Array(16);function q(){if(!X&&!(X="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return X(j)}const z=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;const Z=function(e){return"string"==typeof e&&z.test(e)};for(var Y=[],K=0;K<256;++K)Y.push((K+256).toString(16).substr(1));const Q=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(Y[e[t+0]]+Y[e[t+1]]+Y[e[t+2]]+Y[e[t+3]]+"-"+Y[e[t+4]]+Y[e[t+5]]+"-"+Y[e[t+6]]+Y[e[t+7]]+"-"+Y[e[t+8]]+Y[e[t+9]]+"-"+Y[e[t+10]]+Y[e[t+11]]+Y[e[t+12]]+Y[e[t+13]]+Y[e[t+14]]+Y[e[t+15]]).toLowerCase();if(!Z(n))throw TypeError("Stringified UUID is invalid");return n};const ee=function(e,t,n){var r=(e=e||{}).random||(e.rng||q)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(var i=0;i<16;++i)t[n+i]=r[i];return t}return Q(r)};class te{constructor(){}createId(e=!1){const t=ee();return e&&d.debug(`UUID.createID ${t}`),t}createRemoteId(e=!1){return(0,r.__awaiter)(this,void 0,void 0,(function*(){const t=ee();return e&&d.debug(`UUID.createRemoteID ${t}`),t}))}}const ne=C.DI.createInterface((e=>e.singleton(te))),re=()=>{try{return window.self!==window.top}catch(e){return!0}},ie=()=>{const e=null===navigator||void 0===navigator?void 0:navigator.userAgent;return(null==e?void 0:e.includes("Symphony"))&&(null==e?void 0:e.includes("Electron"))},oe=483,se=600,ae=(e,t,n=oe,r=se)=>{const i=window.innerWidth/2-n/2+window.screenX,o=window.innerHeight/2-r/2+window.screenY,s=window.open(e,t,"width="+n+", height="+r+", top="+o+", left="+i+", scrollbars=yes");return s.focus&&s.focus(),s}}}]);
|
|
2
|
-
//# sourceMappingURL=259.1ff0e7689abdc0527a57f2eb20369ada.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://@genesislcap/foundation-testing/../node_modules/exenv-es6/dist/can-use-dom.js","webpack://@genesislcap/foundation-testing/../node_modules/tabbable/dist/index.esm.js"],"names":["canUseDOM","window","document","createElement","candidateSelectors","candidateSelector","join","NoElement","Element","matches","prototype","msMatchesSelector","webkitMatchesSelector","getRootNode","element","ownerDocument","getTabindex","node","isScope","tabIndex","test","tagName","isContentEditable","isNaN","parseInt","getAttribute","isInput","isNonTabbableRadio","type","isRadio","name","radioSet","radioScope","form","queryRadios","querySelectorAll","CSS","escape","err","console","error","message","checked","nodes","i","length","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","getBoundingClientRect","width","height","isNodeMatchingSelectorFocusable","options","disabled","isHiddenInput","_ref","displayCheck","getShadowRoot","getComputedStyle","visibility","nodeUnderDetails","call","parentElement","nodeRootHost","host","nodeIsAttached","contains","originalNode","rootNode","shadowRoot","assignedSlot","getClientRects","isHidden","Array","slice","apply","children","some","child","isDetailsWithSummary","parentNode","item","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isTabbable","Error","focusableCandidateSelector","concat","isFocusable"],"mappings":"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","file":"415.415.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["/**\n * Checks if the DOM is available to access and use\n */\nexport function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n","/*!\n* tabbable 5.3.3\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n } // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n\n\n var nodeRootHost = getRootNode(node).host;\n var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n\n if (nodeIsAttached) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n } // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n } // visible, as far as we can tell, or per current `displayCheck` mode\n\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n } // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n\n\n return false;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 415.415.ee8e35767118401bccab.js.LICENSE.txt */
|
|
2
|
-
(self.webpackChunk_genesislcap_foundation_testing=self.webpackChunk_genesislcap_foundation_testing||[]).push([[415,623],{861:(e,t,n)=>{"use strict";function o(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}n.d(t,{N:()=>o})},642:(e,t,n)=>{"use strict";n.d(t,{EB:()=>w,Wq:()=>m});var o=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],r=o.join(","),i="undefined"==typeof Element,a=i?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,u=!i&&Element.prototype.getRootNode?function(e){return e.getRootNode()}:function(e){return e.ownerDocument},c=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},l=function(e){return"INPUT"===e.tagName},d=function(e){return function(e){return l(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||u(e),o=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=o(window.CSS.escape(e.name));else try{t=o(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var r=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!r||r===e}(e)},f=function(e){var t=e.getBoundingClientRect(),n=t.width,o=t.height;return 0===n&&0===o},s=function(e,t){return!(t.disabled||function(e){return l(e)&&"hidden"===e.type}(t)||function(e,t){var n=t.displayCheck,o=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var r=a.call(e,"details>summary:first-of-type")?e.parentElement:e;if(a.call(r,"details:not([open]) *"))return!0;var i=u(e).host,c=(null==i?void 0:i.ownerDocument.contains(i))||e.ownerDocument.contains(e);if(n&&"full"!==n){if("non-zero-area"===n)return f(e)}else{if("function"==typeof o){for(var l=e;e;){var d=e.parentElement,s=u(e);if(d&&!d.shadowRoot&&!0===o(d))return f(e);e=e.assignedSlot?e.assignedSlot:d||s===e.ownerDocument?d:s.host}e=l}if(c)return!e.getClientRects().length}return!1}(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var o=t.children.item(n);if("LEGEND"===o.tagName)return!!a.call(t,"fieldset[disabled] *")||!o.contains(e)}return!0}t=t.parentElement}return!1}(t))},p=function(e,t){return!(d(t)||c(t)<0||!s(e,t))},m=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,r)&&p(t,e)},h=o.concat("iframe").join(","),w=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,h)&&s(t,e)}}}]);
|
|
3
|
-
//# sourceMappingURL=415.32cf4cabeed75f5d759d12434a4de5c7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://@genesislcap/foundation-testing/../node_modules/exenv-es6/dist/can-use-dom.js","webpack://@genesislcap/foundation-testing/../node_modules/tabbable/dist/index.esm.js"],"names":["canUseDOM","window","document","createElement","candidateSelectors","candidateSelector","join","NoElement","Element","matches","prototype","msMatchesSelector","webkitMatchesSelector","getRootNode","element","ownerDocument","getTabindex","node","isScope","tabIndex","test","tagName","isContentEditable","isNaN","parseInt","getAttribute","isInput","isNonTabbableRadio","type","isRadio","name","radioSet","radioScope","form","queryRadios","querySelectorAll","CSS","escape","err","console","error","message","checked","nodes","i","length","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","getBoundingClientRect","width","height","isNodeMatchingSelectorFocusable","options","disabled","isHiddenInput","_ref","displayCheck","getShadowRoot","getComputedStyle","visibility","nodeUnderDetails","call","parentElement","nodeRootHost","host","nodeIsAttached","contains","originalNode","rootNode","shadowRoot","assignedSlot","getClientRects","isHidden","Array","slice","apply","children","some","child","isDetailsWithSummary","parentNode","item","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isTabbable","Error","focusableCandidateSelector","concat","isFocusable"],"mappings":"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","file":"623.623.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["/**\n * Checks if the DOM is available to access and use\n */\nexport function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n","/*!\n* tabbable 5.3.3\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n } // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n\n\n var nodeRootHost = getRootNode(node).host;\n var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n\n if (nodeIsAttached) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n } // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n } // visible, as far as we can tell, or per current `displayCheck` mode\n\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n } // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n\n\n return false;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 623.623.148af50848667bfda381.js.LICENSE.txt */
|
|
2
|
-
(self.webpackChunk_genesislcap_foundation_testing=self.webpackChunk_genesislcap_foundation_testing||[]).push([[623,415],{861:(e,t,n)=>{"use strict";function o(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}n.d(t,{N:()=>o})},642:(e,t,n)=>{"use strict";n.d(t,{EB:()=>w,Wq:()=>m});var o=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],r=o.join(","),i="undefined"==typeof Element,a=i?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,u=!i&&Element.prototype.getRootNode?function(e){return e.getRootNode()}:function(e){return e.ownerDocument},c=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},l=function(e){return"INPUT"===e.tagName},d=function(e){return function(e){return l(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||u(e),o=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=o(window.CSS.escape(e.name));else try{t=o(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var r=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!r||r===e}(e)},f=function(e){var t=e.getBoundingClientRect(),n=t.width,o=t.height;return 0===n&&0===o},s=function(e,t){return!(t.disabled||function(e){return l(e)&&"hidden"===e.type}(t)||function(e,t){var n=t.displayCheck,o=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var r=a.call(e,"details>summary:first-of-type")?e.parentElement:e;if(a.call(r,"details:not([open]) *"))return!0;var i=u(e).host,c=(null==i?void 0:i.ownerDocument.contains(i))||e.ownerDocument.contains(e);if(n&&"full"!==n){if("non-zero-area"===n)return f(e)}else{if("function"==typeof o){for(var l=e;e;){var d=e.parentElement,s=u(e);if(d&&!d.shadowRoot&&!0===o(d))return f(e);e=e.assignedSlot?e.assignedSlot:d||s===e.ownerDocument?d:s.host}e=l}if(c)return!e.getClientRects().length}return!1}(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var o=t.children.item(n);if("LEGEND"===o.tagName)return!!a.call(t,"fieldset[disabled] *")||!o.contains(e)}return!0}t=t.parentElement}return!1}(t))},p=function(e,t){return!(d(t)||c(t)<0||!s(e,t))},m=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,r)&&p(t,e)},h=o.concat("iframe").join(","),w=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,h)&&s(t,e)}}}]);
|
|
3
|
-
//# sourceMappingURL=623.1b885cabcffad0807eeb0de7ad5dd497.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://@genesislcap/foundation-testing/./src/index.federated.ts"],"names":[],"mappings":"uIAAA,sE","file":"755.755.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["import('./index');\n"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://@genesislcap/foundation-testing/./src/component/fixture.ts","webpack://@genesislcap/foundation-testing/../node_modules/kleur/index.mjs","webpack://@genesislcap/foundation-testing/../node_modules/uvu/diff/index.mjs","webpack://@genesislcap/foundation-testing/../node_modules/uvu/dist/index.mjs","webpack://@genesislcap/foundation-testing/../node_modules/dequal/dist/index.mjs","webpack://@genesislcap/foundation-testing/../node_modules/uvu/assert/index.mjs","webpack://@genesislcap/foundation-testing/./src/suite/suite.ts","webpack://@genesislcap/foundation-testing/./src/utils/logger.ts"],"names":["fixture","templateNameOrRegistry","options","document","globalThis","parent","createElement","source","context","defaultExecutionContext","html","ViewTemplate","register","Array","isArray","first","ds","designSystem","DesignSystem","prefix","container","dsContext","elementPrefix","elementName","definition","baseName","view","create","element","current","firstChild","nodeType","nextSibling","findElement","isConnected","bind","appendTo","customElements","upgrade","Promise","resolve","template","connect","body","appendChild","disconnect","removeChild","FORCE_COLOR","NODE_DISABLE_COLORS","NO_COLOR","TERM","isTTY","process","env","stdout","$","enabled","reset","init","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","grey","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","run","arr","str","tmp","i","beg","end","length","open","close","indexOf","replace","rgx","blk","RegExp","txt","this","has","push","keys","ctx","chain","colors","kleur","TITLE","TAB","SPACE","NL","LOG","sym","PRETTY","LINE","num","x","String","padStart","line","obj","prev","pad","char","removed","added","value","split","out","lines","input","expect","linenum","output","count","chars","l1","l2","p1","p2","del","repeat","direct","Math","max","lenA","lenB","gutter","lenC","typeA","typeB","delA","delB","sort","k","isArr","Object","prototype","hasOwnProperty","call","stringify","JSON","cache","Set","key","val","add","compare","isObj","j","arrays","isA","isB","test","isCLI","isNode","hrtime","now","Date","toFixed","write","console","log","into","name","handler","state","tests","before","after","bEach","aEach","only","skips","hook","defineProperty","global","get","argv","some","milli","performance","UVU_QUEUE","QUOTE","GUTTER","FAIL","PASS","IGNORE","FAILURE","FILE","SUITE","format","err","suite","details","operator","idx","stack","startsWith","includes","actual","expected","message","join","substring","trim","async","runner","errors","total","__test__","msg","skipped","timer","setup","__suite__","each","skip","copy","assign","UVU_INDEX","clearTimeout","setTimeout","exec","bail","done","code","group","shift","errs","ran","exit","exitCode","find","iter","tar","dequal","foo","bar","ctor","len","constructor","getTime","toString","size","Map","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","dedent","match","min","Assertion","Error","opts","super","captureStackTrace","generated","expects","assert","bool","detailer","backup","ok","is","exp","equal","unreachable","type","instance","snapshot","lineNums","y","not","createComponentSuite","title","elementNameOrGetter","registrations","Suite","undefined","c","DI","fixtureOptions","createLogicSuite","runCases","fn","cases","forEach","throws","logger","createLogger"],"mappings":"khBAiIO,SAAeA,EACpBC,EAQAC,EAA0B,CAAC,G,sDAE3B,MAAMC,EAAWD,EAAQC,UAAYC,WAAWD,SAC1CE,EAASH,EAAQG,QAAUF,EAASG,cAAc,OAClDC,EAASL,EAAQK,QAAU,CAAC,EAC5BC,EAAUN,EAAQM,SAAW,EAAAC,wBAEnC,GAAsC,iBAA3BR,EAAqC,CAC9C,MAAMS,EAAO,IAAIT,OAA4BA,KAC7CA,EAAyB,IAAI,EAAAU,aAAaD,EAAM,G,KAhCnB,mBAiCFT,EAjCXW,WAkChBX,EAAyB,CAACA,IAG5B,GAAIY,MAAMC,QAAQb,GAAyB,CACzC,MAAMc,EAAQd,EAAuB,GAC/Be,EAAKd,EAAQe,cAAgB,EAAAC,aAAA,YAAyBb,GAC5D,IAAIc,EAAS,GAEbH,EAAGJ,SAASX,EAAwB,CAClCW,SAASQ,EAAsBC,GAC7BF,EAASE,EAAUC,aACrB,IAGF,MAAMC,EAAc,GAAGJ,KAAUJ,EAAMS,WAAWC,WAC5Cf,EAAO,IAAIa,OAAiBA,KAClCtB,EAAyB,IAAI,EAAAU,aAAaD,EAAM,G,CAGlD,MAAMgB,EAAOzB,EAAuB0B,SAC9BC,EAnER,SAAqBF,GACnB,IAAIG,EAAuBH,EAAKI,WAEhC,KAAmB,OAAZD,GAAyC,IAArBA,EAAQE,UACjCF,EAAUA,EAAQG,YAGpB,OAAOH,CACT,CA2DkBI,CAAYP,GAC5B,IAAIQ,GAAc,EAElBR,EAAKS,KAAK5B,EAAQC,GAClBkB,EAAKU,SAAS/B,GAEdgC,eAAeC,QAAQjC,SAIjBkC,QAAQC,UAsBd,MAAO,CACLrC,WACAsC,SAAUxC,EACVyB,OACArB,SACAuB,UACAc,QA1Bc,KAAY,+CACtBR,IAIJA,GAAc,EACd/B,EAASwC,KAAKC,YAAYvC,SACpBkC,QAAQC,UAChB,IAmBEK,WAjBiB,KAAY,+CACxBX,IAILA,GAAc,EACd/B,EAASwC,KAAKG,YAAYzC,SACpBkC,QAAQC,UAChB,IAWF,G,CChNA,IAAIO,EAAaC,EAAqBC,EAAUC,EAAMC,GAAM,EACrC,oBAAZC,YACPL,cAAaC,sBAAqBC,WAAUC,QAASE,QAAQC,KAAO,CAAC,GACxEF,EAAQC,QAAQE,QAAUF,QAAQE,OAAOH,OAG1C,MAAMI,EAAI,CACTC,SAAUR,GAAmC,MAAZC,GAA6B,SAATC,IACrC,MAAfH,GAAuC,MAAhBA,GAAuBI,GAI/CM,MAAOC,EAAK,EAAG,GACfC,KAAMD,EAAK,EAAG,IACdE,IAAKF,EAAK,EAAG,IACbG,OAAQH,EAAK,EAAG,IAChBI,UAAWJ,EAAK,EAAG,IACnBK,QAASL,EAAK,EAAG,IACjBM,OAAQN,EAAK,EAAG,IAChBO,cAAeP,EAAK,EAAG,IAGvBQ,MAAOR,EAAK,GAAI,IAChBS,IAAKT,EAAK,GAAI,IACdU,MAAOV,EAAK,GAAI,IAChBW,OAAQX,EAAK,GAAI,IACjBY,KAAMZ,EAAK,GAAI,IACfa,QAASb,EAAK,GAAI,IAClBc,KAAMd,EAAK,GAAI,IACfe,MAAOf,EAAK,GAAI,IAChBgB,KAAMhB,EAAK,GAAI,IACfiB,KAAMjB,EAAK,GAAI,IAGfkB,QAASlB,EAAK,GAAI,IAClBmB,MAAOnB,EAAK,GAAI,IAChBoB,QAASpB,EAAK,GAAI,IAClBqB,SAAUrB,EAAK,GAAI,IACnBsB,OAAQtB,EAAK,GAAI,IACjBuB,UAAWvB,EAAK,GAAI,IACpBwB,OAAQxB,EAAK,GAAI,IACjByB,QAASzB,EAAK,GAAI,KAGnB,SAAS0B,EAAIC,EAAKC,GACjB,IAASC,EAALC,EAAE,EAAQC,EAAI,GAAIC,EAAI,GAC1B,KAAOF,EAAIH,EAAIM,OAAQH,IACtBD,EAAMF,EAAIG,GACVC,GAAOF,EAAIK,KACXF,GAAOH,EAAIM,OACJP,EAAIQ,QAAQP,EAAIM,SACtBP,EAAMA,EAAIS,QAAQR,EAAIS,IAAKT,EAAIM,MAAQN,EAAIK,OAG7C,OAAOH,EAAMH,EAAMI,CACpB,CAqCA,SAAShC,EAAKkC,EAAMC,GACnB,IAAII,EAAM,CACTL,KAAM,KAAQA,KACdC,MAAO,KAAQA,KACfG,IAAK,IAAIE,OAAO,WAAWL,KAAU,MAEtC,OAAO,SAAUM,GAChB,YAAa,IAATC,WAAgC,IAAbA,KAAKC,MACxBD,KAAKC,IAAIP,QAAQF,KAAUQ,KAAKC,IAAIC,KAAKV,GAAMQ,KAAKG,KAAKD,KAAKL,SAClD,IAARE,EAAiBC,KAAO7C,EAAEC,QAAU4B,EAAIgB,KAAKG,KAAMJ,EAAI,IAAMA,EAAI,SAE1D,IAARA,EA9CT,SAAeE,EAAKE,GACnB,IAAIC,EAAM,CAAEH,MAAKE,QA+BjB,OA7BAC,EAAI/C,MAAQF,EAAEE,MAAMtB,KAAKqE,GACzBA,EAAI7C,KAAOJ,EAAEI,KAAKxB,KAAKqE,GACvBA,EAAI5C,IAAML,EAAEK,IAAIzB,KAAKqE,GACrBA,EAAI3C,OAASN,EAAEM,OAAO1B,KAAKqE,GAC3BA,EAAI1C,UAAYP,EAAEO,UAAU3B,KAAKqE,GACjCA,EAAIzC,QAAUR,EAAEQ,QAAQ5B,KAAKqE,GAC7BA,EAAIxC,OAAST,EAAES,OAAO7B,KAAKqE,GAC3BA,EAAIvC,cAAgBV,EAAEU,cAAc9B,KAAKqE,GAEzCA,EAAItC,MAAQX,EAAEW,MAAM/B,KAAKqE,GACzBA,EAAIrC,IAAMZ,EAAEY,IAAIhC,KAAKqE,GACrBA,EAAIpC,MAAQb,EAAEa,MAAMjC,KAAKqE,GACzBA,EAAInC,OAASd,EAAEc,OAAOlC,KAAKqE,GAC3BA,EAAIlC,KAAOf,EAAEe,KAAKnC,KAAKqE,GACvBA,EAAIjC,QAAUhB,EAAEgB,QAAQpC,KAAKqE,GAC7BA,EAAIhC,KAAOjB,EAAEiB,KAAKrC,KAAKqE,GACvBA,EAAI/B,MAAQlB,EAAEkB,MAAMtC,KAAKqE,GACzBA,EAAI9B,KAAOnB,EAAEmB,KAAKvC,KAAKqE,GACvBA,EAAI7B,KAAOpB,EAAEoB,KAAKxC,KAAKqE,GAEvBA,EAAI5B,QAAUrB,EAAEqB,QAAQzC,KAAKqE,GAC7BA,EAAI3B,MAAQtB,EAAEsB,MAAM1C,KAAKqE,GACzBA,EAAI1B,QAAUvB,EAAEuB,QAAQ3C,KAAKqE,GAC7BA,EAAIzB,SAAWxB,EAAEwB,SAAS5C,KAAKqE,GAC/BA,EAAIxB,OAASzB,EAAEyB,OAAO7C,KAAKqE,GAC3BA,EAAIvB,UAAY1B,EAAE0B,UAAU9C,KAAKqE,GACjCA,EAAItB,OAAS3B,EAAE2B,OAAO/C,KAAKqE,GAC3BA,EAAIrB,QAAU5B,EAAE4B,QAAQhD,KAAKqE,GAEtBA,CACR,CAa0BC,CAAM,CAACb,GAAO,CAACK,IAAQ1C,EAAEC,QAAU4B,EAAI,CAACa,GAAME,EAAI,IAAMA,EAAI,EACrF,CACD,CAEA,U,aC1GA,MAAMO,EAAS,CACd,KAAMC,EAAMxC,IACZ,KAAMwC,EAAMhC,KACZ,KAAMgC,EAAMvC,OAGPwC,EAAQD,EAAM/C,MAAMC,OACpBgD,EAAIF,EAAM/C,IAAI,KAAMkD,EAAMH,EAAM/C,IAAI,KAAMmD,EAAGJ,EAAM/C,IAAI,KACvDoD,EAAM,CAACC,EAAK3B,IAAQoB,EAAOO,GAAKA,EAAMC,EAAO5B,IAAQ,KACrD6B,EAAO,CAACC,EAAKC,IAAMV,EAAM/C,IAAI,IAAM0D,OAAOF,GAAKG,SAASF,EAAG,KAAO,KAClEH,EAAS5B,GAAOA,EAAIS,QAAQ,OAAQe,GAAOf,QAAQ,MAAOc,GAAKd,QAAQ,WAAYgB,GAEzF,SAASS,EAAKC,EAAKC,EAAMC,GACxB,IAESpC,EAFLqC,EAAOH,EAAII,QAAU,KAAOJ,EAAIK,MAAQ,KAAO,KAC/CzC,EAAMoC,EAAIM,MAAMhC,QAAQ,SAAU,IAAIiC,MAAM,MAC5CxC,EAAE,EAAQyC,EAAI,GAKlB,IAHIR,EAAIK,MAAOG,GAAOvB,EAAOkB,KAAQ9D,UAAU8C,EAAM,cAAgB,KAC5Da,EAAII,UAASI,GAAOvB,EAAOkB,KAAQ9D,UAAU8C,EAAM,YAAc,MAEnEpB,EAAIH,EAAIM,OAAQH,IACtBD,EAAMF,EAAIG,GACC,MAAPD,IACCmC,IAAMO,GAAOd,EAAKO,EAAOlC,EAAGmC,IAChCM,GAAOjB,EAAIY,EAAMrC,GAAO,OAI1B,OAAO0C,CACR,CAgCO,SAASC,EAAMC,EAAOC,EAAQC,EAAU,GAC9C,IAAS9C,EAALC,EAAE,EAAQ8C,EAAO,GACjBjD,EAAM,KAAe8C,EAAOC,GAC5BT,EAAML,OAAOc,EAAOJ,MAAM,UAAUrC,OAAS0C,GAAS1C,OAE1D,KAAOH,EAAIH,EAAIM,OAAQH,IACtB8C,GAAUd,EAAKjC,EAAMF,EAAIG,GAAI6C,EAASV,GAClCU,IAAY9C,EAAIsC,UAASQ,GAAW9C,EAAIgD,OAG7C,OAAOD,CACR,CAEO,SAASE,EAAML,EAAOC,GAC5B,IACoB7C,EADhBF,EAAM,KAAe8C,EAAOC,GAC5B5C,EAAE,EAAG8C,EAAO,GAEZG,EAAKN,EAAMxC,OACX+C,EAAKN,EAAOzC,OAEZgD,EAAKzB,EAAOiB,GACZS,EAAK1B,EAAOkB,GAIhB,GAFA7C,EAAMF,EAAIG,GAENiD,IAAOC,QAEJ,GAAInD,EAAIsC,SAAWxC,EAAIG,EAAI,GAAI,CACrC,IAAIqD,EAAMtD,EAAIgD,MAAQlD,EAAIG,EAAI,GAAG+C,MACtB,GAAPM,IAEOA,EAAM,GAChBT,EAAS,IAAIU,OAAOD,GAAOT,EAC3BQ,EAAK,IAAIE,OAAOD,GAAOD,EACvBF,GAAMG,GACIA,EAAM,IAChBV,EAAQ,IAAIW,QAAQD,GAAOV,EAC3BQ,EAAK,IAAIG,QAAQD,GAAOF,EACxBF,IAAOI,GAET,CAIA,GAFAP,GAAUS,EAAOJ,EAAIC,EAAIH,EAAIC,GAEzBD,IAAOC,EACV,IAAKnD,EAAI,KAAMC,EAAIiD,EAAIjD,IACtBD,GAAO4C,EAAM3C,KAAO4C,EAAO5C,GAAK,IAAM,SAGvC,IAAKD,EAAI,KAAMC,EAAIH,EAAIM,OAAQH,IAC9BD,IAASF,EAAIG,GAAGsC,OAASzC,EAAIG,GAAGqC,QAAW,IAAM,KAAKiB,OAAOE,KAAKC,IAAI5D,EAAIG,GAAG+C,MAAO,IAChF/C,EAAI,EAAIH,EAAIM,SAAYN,EAAIG,GAAGsC,OAASzC,EAAIG,EAAE,GAAGqC,SAAaxC,EAAIG,GAAGqC,SAAWxC,EAAIG,EAAE,GAAGsC,SAC5FzC,EAAIG,EAAI,GAAG+C,OAASlD,EAAIG,GAAG+C,OAK9B,OAAOD,EAAS3B,EAAMxC,IAAIoB,EAC3B,CAEO,SAASwD,EAAOZ,EAAOC,EAAQc,EAAO5B,OAAOa,GAAOxC,OAAQwD,EAAO7B,OAAOc,GAAQzC,QACxF,IAAIyD,EAAS,EACTC,EAAOL,KAAKC,IAAIC,EAAMC,GACtBG,SAAanB,EAAOoB,SAAanB,EAErC,GAAIkB,IAAUC,EAAO,CACpBH,EAAS,EAET,IAAII,EAAOJ,EAASC,EAAOH,EACvBO,EAAOL,EAASC,EAAOF,EAE3BhB,GAAS,IAAIW,OAAOU,GAAQ7C,EAAM/C,IAAI,IAAI0F,MAC1ClB,GAAU,IAAIU,OAAOW,GAAQ9C,EAAM/C,IAAI,IAAI2F,MAE3CL,GAAQM,EAAOF,EAAM3D,OAAS,EAC9BwD,GAAQM,EAAOF,EAAM5D,OAAS,EAC9B0D,EAAOL,KAAKC,IAAIC,EAAMC,EACvB,CAGA,OADazC,EAAO,MAAM,KAAO0B,EAAS,IAAIU,OAAOM,EAASC,EAAOF,GAAQvC,EAAM,eAAiB,KACpFF,EAAO,MAAM,KAAOyB,EAAQ,IAAIW,OAAOM,EAASC,EAAOH,GAAQtC,EAAM,aAAe,IACrG,CAEO,SAAS8C,EAAKvB,EAAOC,GAC3B,IAAIuB,EAAQpE,EAALC,EAAE,EAAQoE,EAAQ/I,MAAMC,QAAQqH,GACnC5B,EAAK,GAAI0B,EAAI2B,EAAQ/I,MAAMsH,EAAMxC,QAAU,CAAC,EAEhD,GAAIiE,EACH,IAAKpE,EAAE,EAAGA,EAAIyC,EAAItC,OAAQH,IACzBD,EAAM4C,EAAM3C,GAEPyC,EAAIzC,GADJD,GAAsB,iBAARA,EACLmE,EAAKnE,EAAK6C,EAAO5C,IADeD,MAGzC,CACN,IAAKoE,KAAKvB,EACT7B,EAAKD,KAAKqD,GAEX,KAAOnE,EAAIe,EAAKZ,OAAQH,IACnBqE,OAAOC,UAAUC,eAAeC,KAAK7B,EAAOwB,EAAIpD,EAAKf,OAClDD,EAAM4C,EAAMwB,KAAsB,iBAARpE,EAC3B0C,EAAI0B,GAAKD,EAAKnE,EAAK6C,EAAOuB,IADmB1B,EAAI0B,GAAKpE,GAK7D,IAAKoE,KAAKxB,EACJF,EAAI8B,eAAeJ,KACvB1B,EAAI0B,GAAKxB,EAAMwB,GAGlB,CAEA,OAAO1B,CACR,CAaO,SAASgC,EAAU9B,GACzB,OAAO+B,KAAKD,UAAU9B,GAXlBgC,EAAQ,IAAIC,IACT,SAAeC,EAAKC,GAC1B,YAAY,IAARA,EAAuB,aACR,iBAARA,GAAoBA,GAAQA,EAAY,YAC9CA,GAAsB,iBAARA,EACfH,EAAM9D,IAAIiE,GAAa,cAC3BH,EAAMI,IAAID,GAAaA,GAFqBA,CAG7C,GAIyC,GAAGvE,QAAQ,iBAAkB,OAAOA,QAAQ,kBAAmB,aAZlG,IACFoE,CAYL,CAEO,SAASK,EAAQrC,EAAOC,GAC9B,GAAIvH,MAAMC,QAAQsH,IAAWvH,MAAMC,QAAQqH,GAAQ,OA9J7C,SAAgBA,EAAOC,GAC7B,IACmB7C,EAAK+E,EAAK1C,EAAM6C,EAAOnF,EADtCD,EAAM,KAAgB8C,EAAOC,GAC7B5C,EAAE,EAAGkF,EAAE,EAAGf,EAAE,EACZ1B,EAAMjB,EAAI,KAAM,KAEpB,KAAOxB,EAAIH,EAAIM,OAAQH,IAStB,IARAoC,GAAQrC,EAAMF,EAAIG,IAAIqC,QAAU,KAAOtC,EAAIuC,MAAQ,KAAO,KAEtDvC,EAAIuC,MACPG,GAAOvB,EAAOkB,KAAQ9D,UAAU8C,EAAM,cAAgB,KAC5CrB,EAAIsC,UACdI,GAAOvB,EAAOkB,KAAQ9D,UAAU8C,EAAM,YAAc,MAGhD8D,EAAE,EAAGA,EAAInF,EAAIwC,MAAMpC,OAAQ+E,IAG/B,IAFAD,EAASlF,EAAIwC,MAAM2C,IAA8B,iBAAjBnF,EAAIwC,MAAM2C,GAC1CJ,EAAML,EAAU1E,EAAIwC,MAAM2C,IAAI1C,MAAM,UAC/B2B,EAAE,EAAGA,EAAIW,EAAI3E,QACjBL,EAAM,KAAOgF,EAAIX,MAAQc,EAAQ,GAAK,KAClCA,GAASd,IAAMW,EAAI3E,QAAW+E,EAAI,EAAKnF,EAAIwC,MAAMpC,SAAQL,GAAO,KACpE2C,GAAOjB,EAAIY,EAAMtC,GAKpB,OAAO2C,EAAMjB,EAAI,KAAM,IACxB,CAoI2D2D,CAAOxC,EAAOC,GACxE,GAAIA,aAAkBlC,OAAQ,OAAOsC,EAAM,GAAGL,EAAO,GAAGC,GAExD,IAAIwC,EAAMzC,GAAyB,iBAATA,EACtB0C,EAAMzC,GAA2B,iBAAVA,EAc3B,OAZIwC,GAAOC,IAAK1C,EAAQuB,EAAKvB,EAAOC,IAChCyC,IAAKzC,EAAS6B,EAAU7B,IACxBwC,IAAKzC,EAAQ8B,EAAU9B,IAEvBC,GAA2B,iBAAVA,IACpBD,EAAQ8B,EAAUP,EAAKvB,EAAOC,IAC9BA,EAAS6B,EAAU7B,IAGpBwC,EAAsB,iBAATzC,EACb0C,EAAuB,iBAAVzC,EAETwC,GAAO,QAAQE,KAAK3C,GAAeD,EAAMC,EAAO,GAAGC,GACnDyC,GAAO,QAAQC,KAAK1C,GAAgBF,EAAM,GAAGC,EAAOC,GACpDwC,GAAOC,EAAYrC,EAAML,EAAOC,GAE7BW,EAAOZ,EAAOC,EACtB,CCtNA,IAAI2C,GAAQ,EAAOC,GAAS,EACxBC,EAAS,CAACC,EAAMC,KAAKD,QAAU,KAAOC,KAAKD,MAAQA,GAAKE,QAAQ,GAAK,KACrEC,EAAQC,QAAQC,IAEpB,MAAMC,EAAO,CAAChF,EAAK6D,IAAQ,CAACoB,EAAMC,IAAYlF,EAAI6D,GAAK/D,KAAK,CAAEmF,OAAMC,YAC9DlL,EAAWmL,IAAU,CAAGC,MAAM,GAAIC,OAAO,GAAIC,MAAM,GAAIC,MAAM,GAAIC,MAAM,GAAIC,KAAK,GAAIC,MAAM,EAAGP,UAE7FQ,EAAO,CAAC3F,EAAK6D,IAAQqB,GAAWlF,EAAI6D,GAAK/D,KAAKoF,GAEpD,GAAIV,SAAgB5H,QAAU,YAAcA,QAAQE,OAAS,IAAK,CAEvC,iBAAflD,YACVyJ,OAAOuC,eAAeC,OAAQ,aAAc,CAC3CC,IAAK,WAAc,OAAOlG,IAAK,IAIjC,IAAIJ,EAAM,wCACV+E,EAAQ3H,QAAQmJ,KAAKC,MAAKnF,GAAKrB,EAAI8E,KAAKzD,KAGxCgE,EAAQhE,GAAKjE,QAAQE,OAAO+H,MAAMhE,GAClC4D,EAAS,CAACC,EAAM9H,QAAQ6H,WAAa,KAAMwB,OAhBf,KAAfpH,EAgBoCjC,QAAQ6H,OAAOC,IAhBvC,GAAS7F,EAAI,GAAG,KAAK+F,QAAQ,GAAK,KAA9C/F,KAgBwD,CACtE,aAAkBqH,YAAc,MAC/BzB,EAAS,CAACC,EAAMwB,YAAYxB,QAAU,KAAOwB,YAAYxB,MAAQA,GAAKE,QAAQ,GAAK,MAGpFhL,WAAWuM,UAAYvM,WAAWuM,WAAa,GAC/C5B,GAAS4B,UAAUrG,KAAK,CAAC,OAEzB,MAAMsG,EAAQjG,EAAM/C,IAAI,KAAMiJ,EAAS,aACjCC,EAAOnG,EAAMxC,IAAI,MAAO4I,EAAOpG,EAAMjC,KAAK,MAC1CsI,EAAS,+CACTC,EAAUtG,EAAMhD,OAAOkB,MAAM,UAC7BqI,EAAOvG,EAAMhD,OAAOG,YAAYW,MAChC0I,EAAQxG,EAAMxB,UAAUxB,KAc9B,SAASyJ,EAAO3B,EAAM4B,EAAKC,EAAQ,IAClC,IAAI,QAAEC,EAAO,SAAEC,EAAS,IAAOH,EAC3BI,EAAMJ,EAAIK,OAASL,EAAIK,MAAM5H,QAAQ,MACrCuH,EAAI5B,KAAKkC,WAAW,oBAAsBH,EAASI,SAAS,SAAQL,EAAU/C,EAAQ6C,EAAIQ,OAAQR,EAAIS,WAC1G,IAAIxI,EAAM,KAAO2H,GAAWK,EAAQ3G,EAAMxC,IAAIgJ,EAAM,IAAIG,OAAa,IAAM,IAAMV,EAAQjG,EAAMxC,MAAMR,KAAK8H,GAAQmB,EAIlH,OAHAtH,GAAO,SAAW+H,EAAIU,SAAWP,EAAW7G,EAAM9C,SAASD,IAAI,MAAM4J,MAAe,IAAM,KACtFD,IAASjI,GAAOuH,EAASU,EAAQvF,MAAM,MAAMgG,KAAKnB,KAC/CY,IAAKnI,GAnBb,SAAeoI,EAAOD,GACrB,IAASjG,EAALhC,EAAE,EAASyC,EAAI,GACf5C,EAAMqI,EAAMO,UAAUR,GAAK1H,QAAQ,MAAO,KAAKiC,MAAM,MACzD,KAAOxC,EAAIH,EAAIM,OAAQH,IACtBgC,EAAOnC,EAAIG,GAAG0I,OACV1G,EAAK7B,SAAWqH,EAAOlC,KAAKtD,KAC/BS,GAAO,SAAWT,GAGpB,OAAOb,EAAMhC,KAAKsD,GAAO,IAC1B,CASoByF,CAAML,EAAIK,MAAOD,IAC7BnI,EAAM,IACd,CAEA6I,eAAeC,EAAO5H,EAAKiF,GAC1B,IACIU,EAAMrB,GADN,KAAEmB,EAAI,MAAEL,EAAK,OAAEC,EAAM,MAAEC,EAAK,MAAEC,EAAK,MAAEC,EAAK,MAAEL,GAAUnF,EAC1CnB,EAAM4G,EAAKtG,OAASsG,EAAOL,EACvCxE,EAAI,EAAGiH,EAAO,GAAIC,EAAMjJ,EAAIM,OAEhC,IAEC,IAAKwG,KADDV,GAAMJ,EAAM8B,EAAMxG,EAAMzC,MAAM,IAAIuH,OAAY,KACrCI,SAAcM,EAAKR,GAEhC,IAAKb,KAAQzF,EAAK,CACjBsG,EAAM4C,SAAWzD,EAAKW,KACtB,IACC,IAAKU,KAAQJ,QAAaI,EAAKR,GAE/B,IAAKQ,WADCrB,EAAKY,QAAQC,GACNK,SAAaG,EAAKR,GAC/BN,EAAM0B,GACN3F,GACD,CAAE,MAAOiG,GACR,IAAKlB,KAAQH,QAAaG,EAAKR,GAC3B0C,EAAO1I,SAAQ0I,GAAU,MAC7BA,GAAUjB,EAAOtC,EAAKW,KAAM4B,EAAK5B,GACjCJ,EAAMyB,EACP,CACD,CACD,CAAE,QAED,IAAKX,KADLR,EAAM4C,SAAW,GACJzC,SAAaK,EAAKR,GAC/B,IAAI6C,EAAM,MAAMpH,OAASkH,OACrBG,GAAWxC,EAAKtG,OAASiG,EAAMjG,OAAS,GAAKa,EAAI0F,MAErD,OADAb,EAAMgD,EAAO1I,OAASgB,EAAMxC,IAAIqK,GAAO7H,EAAMvC,MAAMoK,IAC5C,CAACH,IAAU,EAAMjH,EAAKqH,EAASH,EACvC,CACD,CAEA,IAAII,EAMJ,SAASC,EAAMnI,EAAKiF,EAAO,IAC1BjF,EAAImF,MAAM4C,SAAW,GACrB/H,EAAImF,MAAMiD,UAAYnD,EACtB,MAAMX,EAAOU,EAAKhF,EAAK,SAcvB,OAbAsE,EAAKe,OAASM,EAAK3F,EAAK,UACxBsE,EAAKe,OAAOgD,KAAO1C,EAAK3F,EAAK,SAC7BsE,EAAKgB,MAAQK,EAAK3F,EAAK,SACvBsE,EAAKgB,MAAM+C,KAAO1C,EAAK3F,EAAK,SAC5BsE,EAAKmB,KAAOT,EAAKhF,EAAK,QACtBsE,EAAKgE,KAAO,KAAQtI,EAAI0F,OAAK,EAC7BpB,EAAK1F,IAAM,KACV,IAAI2J,EAAO,IAAKvI,GACZpB,EAAMgJ,EAAOjM,KAAK,EAAG4M,EAAMtD,GAC/B5B,OAAOmF,OAAOxI,EAAKhG,EAAQuO,EAAKpD,QAChCgB,UAAUvM,WAAW6O,WAAa,GAAG3I,KAAKlB,GAC1C2F,IAnBDmE,aAAaR,GACbA,EAAQS,WAAWC,IAkBF,EAEVtE,CACR,CAEO,MAAMwC,EAAQ,CAAC7B,EAAO,GAAIE,EAAQ,CAAC,IAAMgD,EAAMnO,EAAQmL,GAAQF,GACzDX,EAAOwC,IAEba,eAAeiB,GAAKC,GAC1B,IAAIX,EAAQzD,IACRqE,EAAK,EAAGhB,EAAM,EAAGpC,EAAM,EAAGqD,EAAK,EAEnC,IAAK,IAAIC,KAAS7C,UAAW,CACxB2B,GAAOjD,EAAM,MAEjB,IAAII,EAAO+D,EAAMC,QACL,MAARhE,GAAcJ,EAAM6B,EAAKzB,GAAQ,MAErC,IAAK,IAAIX,KAAQ0E,EAAO,CACvB,IAAKE,EAAMC,EAAKb,EAAM7F,SAAa6B,IAEnC,GADAwD,GAASrF,EAAKqG,GAAQK,EAAKzD,GAAS4C,EAChCY,EAAK/J,SACR0F,EAAM,KAAOqE,EAAO,MAAOH,EAAK,EAC5BF,GAAM,OAAOrE,GAAU5H,QAAQwM,KAAK,EAE1C,CACD,CAEAvE,EAAM,kBAAoBiD,GAC1BjD,GAAOkE,EAAO5I,EAAMxC,IAAMwC,EAAMvC,OAAO,kBAAoBkL,IAC3DjE,EAAM,mBAAqBa,EAAQvF,EAAMtC,OAAO6H,GAASA,IACzDb,EAAM,kBAAoBqD,IAAU,QAEhC1D,IAAQ5H,QAAQyM,SAAWN,EAChC,CCxJA,IAAIlJ,GAAMwD,OAAOC,UAAUC,eAE3B,SAAS+F,GAAKC,EAAMC,EAAK3F,GACxB,IAAKA,KAAO0F,EAAKxJ,OAChB,GAAI0J,GAAO5F,EAAK2F,GAAM,OAAO3F,CAE/B,CAEO,SAAS4F,GAAOC,EAAKC,GAC3B,IAAIC,EAAMC,EAAK9K,EACf,GAAI2K,IAAQC,EAAK,OAAO,EAExB,GAAID,GAAOC,IAAQC,EAAKF,EAAII,eAAiBH,EAAIG,YAAa,CAC7D,GAAIF,IAASjF,KAAM,OAAO+E,EAAIK,YAAcJ,EAAII,UAChD,GAAIH,IAASlK,OAAQ,OAAOgK,EAAIM,aAAeL,EAAIK,WAEnD,GAAIJ,IAASvP,MAAO,CACnB,IAAKwP,EAAIH,EAAIvK,UAAYwK,EAAIxK,OAC5B,KAAO0K,KAASJ,GAAOC,EAAIG,GAAMF,EAAIE,MAEtC,OAAgB,IAATA,CACR,CAEA,GAAID,IAAShG,IAAK,CACjB,GAAI8F,EAAIO,OAASN,EAAIM,KACpB,OAAO,EAER,IAAKJ,KAAOH,EAAK,CAEhB,IADA3K,EAAM8K,IACoB,iBAAR9K,KACjBA,EAAMuK,GAAKK,EAAK5K,IACN,OAAO,EAElB,IAAK4K,EAAI9J,IAAId,GAAM,OAAO,CAC3B,CACA,OAAO,CACR,CAEA,GAAI6K,IAASM,IAAK,CACjB,GAAIR,EAAIO,OAASN,EAAIM,KACpB,OAAO,EAER,IAAKJ,KAAOH,EAAK,CAEhB,IADA3K,EAAM8K,EAAI,KACgB,iBAAR9K,KACjBA,EAAMuK,GAAKK,EAAK5K,IACN,OAAO,EAElB,IAAK0K,GAAOI,EAAI,GAAIF,EAAI7D,IAAI/G,IAC3B,OAAO,CAET,CACA,OAAO,CACR,CAEA,GAAI6K,IAASO,YACZT,EAAM,IAAIU,WAAWV,GACrBC,EAAM,IAAIS,WAAWT,QACf,GAAIC,IAASS,SAAU,CAC7B,IAAKR,EAAIH,EAAIY,cAAgBX,EAAIW,WAChC,KAAOT,KAASH,EAAIa,QAAQV,KAASF,EAAIY,QAAQV,KAElD,OAAgB,IAATA,CACR,CAEA,GAAIM,YAAYK,OAAOd,GAAM,CAC5B,IAAKG,EAAIH,EAAIY,cAAgBX,EAAIW,WAChC,KAAOT,KAASH,EAAIG,KAASF,EAAIE,KAElC,OAAgB,IAATA,CACR,CAEA,IAAKD,GAAuB,iBAARF,EAAkB,CAErC,IAAKE,KADLC,EAAM,EACOH,EAAK,CACjB,GAAI7J,GAAI2D,KAAKkG,EAAKE,MAAWC,IAAQhK,GAAI2D,KAAKmG,EAAKC,GAAO,OAAO,EACjE,KAAMA,KAAQD,KAASF,GAAOC,EAAIE,GAAOD,EAAIC,IAAQ,OAAO,CAC7D,CACA,OAAOvG,OAAOtD,KAAK4J,GAAKxK,SAAW0K,CACpC,CACD,CAEA,OAAOH,GAAQA,GAAOC,GAAQA,CAC/B,CChFA,SAASc,GAAO3L,GAEd,IAAID,GADLC,EAAMA,EAAIS,QAAQ,SAAU,OACbmL,MAAM,mBAChB1L,EAAI,EAAG2L,EAAM,IAAKd,GAAOhL,GAAK,IAAIM,OACtC,KAAOH,EAAI6K,EAAK7K,IAAK2L,EAAMnI,KAAKmI,IAAIA,EAAK9L,EAAIG,GAAGG,QAChD,OAAO0K,GAAOc,EAAM7L,EAAIS,QAAQ,IAAIG,OAAO,WAAWiL,KAAQ,MAAO,IAAM7L,CAC7E,CAEO,MAAM8L,WAAkBC,MAC9Bf,YAAYgB,EAAK,CAAC,GACjBC,MAAMD,EAAKvD,SACX3H,KAAKqF,KAAO,YACZrF,KAAKmJ,KAAO,gBACR8B,MAAMG,mBACTH,MAAMG,kBAAkBpL,KAAMA,KAAKkK,aAEpClK,KAAKmH,QAAU+D,EAAK/D,UAAW,EAC/BnH,KAAKqL,YAAcH,EAAKG,UACxBrL,KAAKoH,SAAW8D,EAAK9D,SACrBpH,KAAKsL,QAAUJ,EAAKI,QACpBtL,KAAKyH,OAASyD,EAAKzD,MACpB,EAGD,SAAS8D,GAAOC,EAAM/D,EAAQ6D,EAASlE,EAAUqE,EAAUC,EAAQtD,GAClE,GAAIoD,EAAM,OACV,IAAI7D,EAAUS,GAAOsD,EACrB,GAAItD,aAAe6C,MAAO,MAAM7C,EAChC,IAAIjB,EAAUsE,GAAYA,EAAShE,EAAQ6D,GAC3C,MAAM,IAAIN,GAAU,CAAEvD,SAAQ6D,UAASlE,WAAUO,UAASR,UAASkE,WAAYjD,GAChF,CAEO,SAASuD,GAAGzH,EAAKkE,GACvBmD,KAASrH,GAAK,GAAO,EAAM,MAAM,EAAO,8BAA+BkE,EACxE,CAEO,SAASwD,GAAG1H,EAAK2H,EAAKzD,GAC5BmD,GAAOrH,IAAQ2H,EAAK3H,EAAK2H,EAAK,KAAMzH,EAAS,wCAAyCgE,EACvF,CAEO,SAAS0D,GAAM5H,EAAK2H,EAAKzD,GAC/BmD,GAAO1B,GAAO3F,EAAK2H,GAAM3H,EAAK2H,EAAK,QAASzH,EAAS,sCAAuCgE,EAC7F,CAEO,SAAS2D,GAAY3D,GAC3BmD,IAAO,GAAO,GAAM,EAAO,eAAe,EAAO,8BAA+BnD,EACjF,CAEO,SAAS4D,GAAK9H,EAAK2H,EAAKzD,GAC9B,IAAIjJ,SAAa+E,EACjBqH,GAAOpM,IAAQ0M,EAAK1M,EAAK0M,EAAK,QAAQ,EAAO,aAAa1M,aAAe0M,KAAQzD,EAClF,CAEO,SAAS6D,GAAS/H,EAAK2H,EAAKzD,GAElCmD,GAAOrH,aAAe2H,EAAK3H,EAAK2H,EAAK,YAAY,EAAO,uCAD7C,KAAOA,EAAIxG,MAAQwG,EAAI3B,YAAY7E,MAAQ,MACiD+C,EACxG,CAEO,SAAS0C,GAAM5G,EAAK2H,EAAKzD,GACZ,iBAARyD,EACVN,GAAOrH,EAAIsD,SAASqE,GAAM3H,EAAK2H,EAAK,SAAS,EAAO,8BAA8BA,eAAkBzD,GAEpGmD,GAAOM,EAAInH,KAAKR,GAAMA,EAAK2H,EAAK,SAAS,EAAO,6BAA6B3K,OAAO2K,eAAkBzD,EAExG,CAEO,SAAS8D,GAAShI,EAAK2H,EAAKzD,GAElCmD,IADArH,EAAI2G,GAAO3G,OAAM2H,EAAIhB,GAAOgB,IACR3H,EAAK2H,EAAK,WAAY/J,EAAO,oCAAqCsG,EACvF,CAEA,MAAM+D,GAAW,CAAClL,EAAGmL,IAAMtK,EAAMb,EAAGmL,EAAG,GAChC,SAAS,GAAQlI,EAAK2H,EAAKzD,GAEjCmD,IADArH,EAAI2G,GAAO3G,OAAM2H,EAAIhB,GAAOgB,IACR3H,EAAK2H,EAAK,UAAWM,GAAU,mCAAoC/D,EACxF,CAEO,SAAS,GAAOvI,EAAKgM,EAAKzD,GAC3BA,GAAsB,iBAARyD,IAClBzD,EAAMyD,EAAKA,EAAM,MAGlB,IACChM,IACA0L,IAAO,GAAO,GAAO,EAAM,UAAU,EAAO,6BAA8BnD,EAC3E,CAAE,MAAOnB,GACR,GAAIA,aAAe+D,GAAW,MAAM/D,EAEjB,mBAAR4E,EACVN,GAAOM,EAAI5E,IAAM,GAAO,EAAM,UAAU,EAAO,gDAAiDmB,GACtFyD,aAAe/L,QACzByL,GAAOM,EAAInH,KAAKuC,EAAIU,UAAU,GAAO,EAAM,UAAU,EAAO,mDAAmDzG,OAAO2K,eAAkBzD,EAE1I,CACD,CAIO,SAASiE,GAAInI,EAAKkE,GACxBmD,IAAQrH,GAAK,GAAM,EAAO,OAAO,EAAO,8BAA+BkE,EACxE,CCEO,SAASkE,GACdC,EACAC,EACApS,EACAqS,EAAqC,IAErC,MAAMC,EAAQxF,EAAkCqF,EAAO,OAAF,QACnD/Q,aAASmR,EACTlQ,gBAAYkQ,EACZ9R,kBAAc8R,EACd3R,eAAW2R,GACRvS,IAmCL,OAhCAsS,EAAMjH,OAAOgD,MAAYmE,IAAM,+CAC7B,MAAM3S,EAASF,SAASG,cAAc,OAChCW,EAAe,EAAAC,aAAA,YAAyBb,GAAQO,YAAYiS,GAC5DzR,EAAY,EAAA6R,GAAA,wBAA2B5S,GACvC6S,EAAiC,CACrC7S,SACAY,iBAMI,QAAEW,EAAO,QAAEc,EAAO,WAAEG,SAAqB,EACd,iBAAxB+P,EAAmCA,EAAsBA,IAChEM,GAEFF,EAAEpR,QAAUA,EACZoR,EAAEnQ,WAAaA,EACfmQ,EAAE/R,aAAeA,EACjB+R,EAAE5R,UAAYA,QACRsB,GACR,MAGAoQ,EAAMhH,MAAM+C,MAAYmE,IAAM,qDACtBA,EAAEnQ,aACRmQ,EAAEpR,aAAUmR,EACZC,EAAEnQ,gBAAakQ,EACfC,EAAE/R,kBAAe8R,EACjBC,EAAE5R,eAAY2R,CAChB,MAEOD,CACT,CAkCO,SAASK,GACdR,EACAnS,GASA,OAPc8M,EAAgBqF,EAAO,OAAF,QACjCS,SAAU,CAACC,EAAIC,KACb,GAAYD,EAAI,YAChBC,EAAMC,SAAQ,EAAE1F,EAAQ6D,EAASlD,KAAS,GAAU6E,KAAMxF,GAAS6D,EAASlD,IAAK,GAEhFhO,GAGP,CD7FAiS,GAAIV,GAAKU,GAETT,GAAGS,IAAM,SAAUnI,EAAK2H,EAAKzD,GAC5BmD,GAAOrH,IAAQ2H,EAAK3H,EAAK2H,EAAK,UAAU,EAAO,2CAA4CzD,EAC5F,EAEAiE,GAAIP,MAAQ,SAAU5H,EAAK2H,EAAKzD,GAC/BmD,IAAQ1B,GAAO3F,EAAK2H,GAAM3H,EAAK2H,EAAK,aAAa,EAAO,yCAA0CzD,EACnG,EAEAiE,GAAIL,KAAO,SAAU9H,EAAK2H,EAAKzD,GAC9B,IAAIjJ,SAAa+E,EACjBqH,GAAOpM,IAAQ0M,EAAK1M,EAAK0M,EAAK,YAAY,EAAO,aAAa1M,iBAAmB0M,KAAQzD,EAC1F,EAEAiE,GAAIJ,SAAW,SAAU/H,EAAK2H,EAAKzD,GAElCmD,KAASrH,aAAe2H,GAAM3H,EAAK2H,EAAK,gBAAgB,EAAO,2CADpD,KAAOA,EAAIxG,MAAQwG,EAAI3B,YAAY7E,MAAQ,MAC4D+C,EACnH,EAEAiE,GAAIH,SAAW,SAAUhI,EAAK2H,EAAKzD,GAElCmD,IADArH,EAAI2G,GAAO3G,OAAM2H,EAAIhB,GAAOgB,IACR3H,EAAK2H,EAAK,gBAAgB,EAAO,uCAAwCzD,EAC9F,EAEAiE,GAAIzS,QAAU,SAAUsK,EAAK2H,EAAKzD,GAEjCmD,IADArH,EAAI2G,GAAO3G,OAAM2H,EAAIhB,GAAOgB,IACR3H,EAAK2H,EAAK,eAAe,EAAO,sCAAuCzD,EAC5F,EAEAiE,GAAIvB,MAAQ,SAAU5G,EAAK2H,EAAKzD,GACZ,iBAARyD,EACVN,IAAQrH,EAAIsD,SAASqE,GAAM3H,EAAK2H,EAAK,aAAa,EAAO,kCAAkCA,eAAkBzD,GAE7GmD,IAAQM,EAAInH,KAAKR,GAAMA,EAAK2H,EAAK,aAAa,EAAO,iCAAiC3K,OAAO2K,eAAkBzD,EAEjH,EAEAiE,GAAIe,OAAS,SAAUvN,EAAKgM,EAAKzD,GAC3BA,GAAsB,iBAARyD,IAClBzD,EAAMyD,EAAKA,EAAM,MAGlB,IACChM,GACD,CAAE,MAAOoH,GACW,mBAAR4E,EACVN,IAAQM,EAAI5E,IAAM,GAAM,EAAO,cAAc,EAAO,oDAAqDmB,GAC/FyD,aAAe/L,OACzByL,IAAQM,EAAInH,KAAKuC,EAAIU,UAAU,GAAM,EAAO,cAAc,EAAO,uDAAuDzG,OAAO2K,eAAkBzD,GACtIyD,GACXN,IAAO,GAAO,GAAM,EAAO,cAAc,EAAO,iCAAkCnD,EAEpF,CACD,EEvJO,MAAMiF,IAAS,E,OAAAC,cAAa,qB","file":"772.772.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["import {\n Constructable,\n defaultExecutionContext,\n ExecutionContext,\n HTMLView,\n ViewTemplate,\n} from '@microsoft/fast-element';\nimport {\n Container,\n DesignSystem,\n DesignSystemRegistrationContext,\n FoundationElementDefinition,\n FoundationElementRegistry,\n} from '@microsoft/fast-foundation';\n\n/**\n * Options used to customize the creation of the unit test fixture.\n * @public\n */\nexport interface FixtureOptions {\n /**\n * The document to run the fixture in.\n * @defaultValue `globalThis.document`\n */\n document?: Document;\n\n /**\n * The parent element to append the fixture to.\n * @defaultValue An instance of `HTMLDivElement`.\n */\n parent?: HTMLElement;\n\n /**\n * The data source to bind the HTML to.\n * @defaultValue An empty object.\n */\n source?: any;\n\n /**\n * The execution context to use during binding.\n * @defaultValue {@link @microsoft/fast-element#defaultExecutionContext}\n */\n context?: ExecutionContext;\n\n /**\n * A pre-configured design system instance used in setting up the fixture.\n */\n designSystem?: DesignSystem;\n}\n\n/**\n * Unit test fixture.\n * @public\n */\nexport interface Fixture<TElement = HTMLElement> {\n /**\n * The document the fixture is running in.\n */\n document: Document;\n\n /**\n * The template the fixture was created from.\n */\n template: ViewTemplate;\n\n /**\n * The view that was created from the fixture's template.\n */\n view: HTMLView;\n\n /**\n * The parent element that the view was appended to.\n * @remarks\n * This element will be appended to the DOM only\n * after {@link Fixture.connect} has been called.\n */\n parent: HTMLElement;\n\n /**\n * The first element in the {@link Fixture.view}.\n */\n element: TElement;\n\n /**\n * Adds the {@link Fixture.parent} to the DOM, causing the\n * connect lifecycle to begin.\n * @remarks\n * Yields control to the caller one Microtask later, in order to\n * ensure that the DOM has settled.\n */\n connect(): Promise<void>;\n\n /**\n * Removes the {@link Fixture.parent} from the DOM, causing the\n * disconnect lifecycle to begin.\n * @remarks\n * Yields control to the caller one Microtask later, in order to\n * ensure that the DOM has settled.\n */\n disconnect(): Promise<void>;\n}\n\nfunction findElement(view: HTMLView): HTMLElement {\n let current: Node | null = view.firstChild;\n\n while (current !== null && current.nodeType !== 1) {\n current = current.nextSibling;\n }\n\n return current as any;\n}\n\nfunction isElementRegistry<T>(\n obj: any\n): obj is FoundationElementRegistry<FoundationElementDefinition, any> {\n return typeof obj.register === 'function';\n}\n\n/**\n * Creates a test fixture suitable for testing custom elements, templates, and bindings.\n * @param templateNameOrRegistry - An HTML template or single element name to create the fixture for.\n * @param options - Enables customizing fixture creation behavior.\n * @returns A promise of the test fixture {@link Fixture}.\n *\n * @public\n * @remarks\n * Yields control to the caller one Microtask later, in order to\n * ensure that the DOM has settled. This has changed in the latest version of FAST!\n */\nexport async function fixture<TElement = HTMLElement>(\n templateNameOrRegistry:\n | ViewTemplate\n | string\n | FoundationElementRegistry<FoundationElementDefinition, Constructable<TElement>>\n | [\n FoundationElementRegistry<FoundationElementDefinition, Constructable<TElement>>,\n ...FoundationElementRegistry<FoundationElementDefinition, Constructable>[]\n ],\n options: FixtureOptions = {}\n): Promise<Fixture<TElement>> {\n const document = options.document || globalThis.document;\n const parent = options.parent || document.createElement('div');\n const source = options.source || {};\n const context = options.context || defaultExecutionContext;\n\n if (typeof templateNameOrRegistry === 'string') {\n const html = `<${templateNameOrRegistry}></${templateNameOrRegistry}>`;\n templateNameOrRegistry = new ViewTemplate(html, []);\n } else if (isElementRegistry(templateNameOrRegistry)) {\n templateNameOrRegistry = [templateNameOrRegistry];\n }\n\n if (Array.isArray(templateNameOrRegistry)) {\n const first = templateNameOrRegistry[0];\n const ds = options.designSystem || DesignSystem.getOrCreate(parent);\n let prefix = '';\n\n ds.register(templateNameOrRegistry, {\n register(container: Container, dsContext: DesignSystemRegistrationContext) {\n prefix = dsContext.elementPrefix;\n },\n });\n\n const elementName = `${prefix}-${first.definition.baseName}`;\n const html = `<${elementName}></${elementName}>`;\n templateNameOrRegistry = new ViewTemplate(html, []);\n }\n\n const view = templateNameOrRegistry.create();\n const element = findElement(view) as any;\n let isConnected = false;\n\n view.bind(source, context);\n view.appendTo(parent);\n\n customElements.upgrade(parent);\n\n // Hook into the Microtask Queue to ensure the DOM is settled\n // before yielding control to the caller.\n await Promise.resolve();\n\n const connect = async () => {\n if (isConnected) {\n return;\n }\n\n isConnected = true;\n document.body.appendChild(parent);\n await Promise.resolve();\n };\n\n const disconnect = async () => {\n if (!isConnected) {\n return;\n }\n\n isConnected = false;\n document.body.removeChild(parent);\n await Promise.resolve();\n };\n\n return {\n document,\n template: templateNameOrRegistry,\n view,\n parent,\n element,\n connect,\n disconnect,\n };\n}\n","'use strict';\n\nlet FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;\nif (typeof process !== 'undefined') {\n\t({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});\n\tisTTY = process.stdout && process.stdout.isTTY;\n}\n\nconst $ = {\n\tenabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (\n\t\tFORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY\n\t),\n\n\t// modifiers\n\treset: init(0, 0),\n\tbold: init(1, 22),\n\tdim: init(2, 22),\n\titalic: init(3, 23),\n\tunderline: init(4, 24),\n\tinverse: init(7, 27),\n\thidden: init(8, 28),\n\tstrikethrough: init(9, 29),\n\n\t// colors\n\tblack: init(30, 39),\n\tred: init(31, 39),\n\tgreen: init(32, 39),\n\tyellow: init(33, 39),\n\tblue: init(34, 39),\n\tmagenta: init(35, 39),\n\tcyan: init(36, 39),\n\twhite: init(37, 39),\n\tgray: init(90, 39),\n\tgrey: init(90, 39),\n\n\t// background colors\n\tbgBlack: init(40, 49),\n\tbgRed: init(41, 49),\n\tbgGreen: init(42, 49),\n\tbgYellow: init(43, 49),\n\tbgBlue: init(44, 49),\n\tbgMagenta: init(45, 49),\n\tbgCyan: init(46, 49),\n\tbgWhite: init(47, 49)\n};\n\nfunction run(arr, str) {\n\tlet i=0, tmp, beg='', end='';\n\tfor (; i < arr.length; i++) {\n\t\ttmp = arr[i];\n\t\tbeg += tmp.open;\n\t\tend += tmp.close;\n\t\tif (!!~str.indexOf(tmp.close)) {\n\t\t\tstr = str.replace(tmp.rgx, tmp.close + tmp.open);\n\t\t}\n\t}\n\treturn beg + str + end;\n}\n\nfunction chain(has, keys) {\n\tlet ctx = { has, keys };\n\n\tctx.reset = $.reset.bind(ctx);\n\tctx.bold = $.bold.bind(ctx);\n\tctx.dim = $.dim.bind(ctx);\n\tctx.italic = $.italic.bind(ctx);\n\tctx.underline = $.underline.bind(ctx);\n\tctx.inverse = $.inverse.bind(ctx);\n\tctx.hidden = $.hidden.bind(ctx);\n\tctx.strikethrough = $.strikethrough.bind(ctx);\n\n\tctx.black = $.black.bind(ctx);\n\tctx.red = $.red.bind(ctx);\n\tctx.green = $.green.bind(ctx);\n\tctx.yellow = $.yellow.bind(ctx);\n\tctx.blue = $.blue.bind(ctx);\n\tctx.magenta = $.magenta.bind(ctx);\n\tctx.cyan = $.cyan.bind(ctx);\n\tctx.white = $.white.bind(ctx);\n\tctx.gray = $.gray.bind(ctx);\n\tctx.grey = $.grey.bind(ctx);\n\n\tctx.bgBlack = $.bgBlack.bind(ctx);\n\tctx.bgRed = $.bgRed.bind(ctx);\n\tctx.bgGreen = $.bgGreen.bind(ctx);\n\tctx.bgYellow = $.bgYellow.bind(ctx);\n\tctx.bgBlue = $.bgBlue.bind(ctx);\n\tctx.bgMagenta = $.bgMagenta.bind(ctx);\n\tctx.bgCyan = $.bgCyan.bind(ctx);\n\tctx.bgWhite = $.bgWhite.bind(ctx);\n\n\treturn ctx;\n}\n\nfunction init(open, close) {\n\tlet blk = {\n\t\topen: `\\x1b[${open}m`,\n\t\tclose: `\\x1b[${close}m`,\n\t\trgx: new RegExp(`\\\\x1b\\\\[${close}m`, 'g')\n\t};\n\treturn function (txt) {\n\t\tif (this !== void 0 && this.has !== void 0) {\n\t\t\t!!~this.has.indexOf(open) || (this.has.push(open),this.keys.push(blk));\n\t\t\treturn txt === void 0 ? this : $.enabled ? run(this.keys, txt+'') : txt+'';\n\t\t}\n\t\treturn txt === void 0 ? chain([open], [blk]) : $.enabled ? run([blk], txt+'') : txt+'';\n\t};\n}\n\nexport default $;\n","import kleur from 'kleur';\nimport * as diff from 'diff';\n\nconst colors = {\n\t'--': kleur.red,\n\t'··': kleur.grey,\n\t'++': kleur.green,\n};\n\nconst TITLE = kleur.dim().italic;\nconst TAB=kleur.dim('→'), SPACE=kleur.dim('·'), NL=kleur.dim('↵');\nconst LOG = (sym, str) => colors[sym](sym + PRETTY(str)) + '\\n';\nconst LINE = (num, x) => kleur.dim('L' + String(num).padStart(x, '0') + ' ');\nconst PRETTY = str => str.replace(/[ ]/g, SPACE).replace(/\\t/g, TAB).replace(/(\\r?\\n)/g, NL);\n\nfunction line(obj, prev, pad) {\n\tlet char = obj.removed ? '--' : obj.added ? '++' : '··';\n\tlet arr = obj.value.replace(/\\r?\\n$/, '').split('\\n');\n\tlet i=0, tmp, out='';\n\n\tif (obj.added) out += colors[char]().underline(TITLE('Expected:')) + '\\n';\n\telse if (obj.removed) out += colors[char]().underline(TITLE('Actual:')) + '\\n';\n\n\tfor (; i < arr.length; i++) {\n\t\ttmp = arr[i];\n\t\tif (tmp != null) {\n\t\t\tif (prev) out += LINE(prev + i, pad);\n\t\t\tout += LOG(char, tmp || '\\n');\n\t\t}\n\t}\n\n\treturn out;\n}\n\n// TODO: want better diffing\n//~> complex items bail outright\nexport function arrays(input, expect) {\n\tlet arr = diff.diffArrays(input, expect);\n\tlet i=0, j=0, k=0, tmp, val, char, isObj, str;\n\tlet out = LOG('··', '[');\n\n\tfor (; i < arr.length; i++) {\n\t\tchar = (tmp = arr[i]).removed ? '--' : tmp.added ? '++' : '··';\n\n\t\tif (tmp.added) {\n\t\t\tout += colors[char]().underline(TITLE('Expected:')) + '\\n';\n\t\t} else if (tmp.removed) {\n\t\t\tout += colors[char]().underline(TITLE('Actual:')) + '\\n';\n\t\t}\n\n\t\tfor (j=0; j < tmp.value.length; j++) {\n\t\t\tisObj = (tmp.value[j] && typeof tmp.value[j] === 'object');\n\t\t\tval = stringify(tmp.value[j]).split(/\\r?\\n/g);\n\t\t\tfor (k=0; k < val.length;) {\n\t\t\t\tstr = ' ' + val[k++] + (isObj ? '' : ',');\n\t\t\t\tif (isObj && k === val.length && (j + 1) < tmp.value.length) str += ',';\n\t\t\t\tout += LOG(char, str);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out + LOG('··', ']');\n}\n\nexport function lines(input, expect, linenum = 0) {\n\tlet i=0, tmp, output='';\n\tlet arr = diff.diffLines(input, expect);\n\tlet pad = String(expect.split(/\\r?\\n/g).length - linenum).length;\n\n\tfor (; i < arr.length; i++) {\n\t\toutput += line(tmp = arr[i], linenum, pad);\n\t\tif (linenum && !tmp.removed) linenum += tmp.count;\n\t}\n\n\treturn output;\n}\n\nexport function chars(input, expect) {\n\tlet arr = diff.diffChars(input, expect);\n\tlet i=0, output='', tmp;\n\n\tlet l1 = input.length;\n\tlet l2 = expect.length;\n\n\tlet p1 = PRETTY(input);\n\tlet p2 = PRETTY(expect);\n\n\ttmp = arr[i];\n\n\tif (l1 === l2) {\n\t\t// no length offsets\n\t} else if (tmp.removed && arr[i + 1]) {\n\t\tlet del = tmp.count - arr[i + 1].count;\n\t\tif (del == 0) {\n\t\t\t// wash~\n\t\t} else if (del > 0) {\n\t\t\texpect = ' '.repeat(del) + expect;\n\t\t\tp2 = ' '.repeat(del) + p2;\n\t\t\tl2 += del;\n\t\t} else if (del < 0) {\n\t\t\tinput = ' '.repeat(-del) + input;\n\t\t\tp1 = ' '.repeat(-del) + p1;\n\t\t\tl1 += -del;\n\t\t}\n\t}\n\n\toutput += direct(p1, p2, l1, l2);\n\n\tif (l1 === l2) {\n\t\tfor (tmp=' '; i < l1; i++) {\n\t\t\ttmp += input[i] === expect[i] ? ' ' : '^';\n\t\t}\n\t} else {\n\t\tfor (tmp=' '; i < arr.length; i++) {\n\t\t\ttmp += ((arr[i].added || arr[i].removed) ? '^' : ' ').repeat(Math.max(arr[i].count, 0));\n\t\t\tif (i + 1 < arr.length && ((arr[i].added && arr[i+1].removed) || (arr[i].removed && arr[i+1].added))) {\n\t\t\t\tarr[i + 1].count -= arr[i].count;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output + kleur.red(tmp);\n}\n\nexport function direct(input, expect, lenA = String(input).length, lenB = String(expect).length) {\n\tlet gutter = 4;\n\tlet lenC = Math.max(lenA, lenB);\n\tlet typeA=typeof input, typeB=typeof expect;\n\n\tif (typeA !== typeB) {\n\t\tgutter = 2;\n\n\t\tlet delA = gutter + lenC - lenA;\n\t\tlet delB = gutter + lenC - lenB;\n\n\t\tinput += ' '.repeat(delA) + kleur.dim(`[${typeA}]`);\n\t\texpect += ' '.repeat(delB) + kleur.dim(`[${typeB}]`);\n\n\t\tlenA += delA + typeA.length + 2;\n\t\tlenB += delB + typeB.length + 2;\n\t\tlenC = Math.max(lenA, lenB);\n\t}\n\n\tlet output = colors['++']('++' + expect + ' '.repeat(gutter + lenC - lenB) + TITLE('(Expected)')) + '\\n';\n\treturn output + colors['--']('--' + input + ' '.repeat(gutter + lenC - lenA) + TITLE('(Actual)')) + '\\n';\n}\n\nexport function sort(input, expect) {\n\tvar k, i=0, tmp, isArr = Array.isArray(input);\n\tvar keys=[], out=isArr ? Array(input.length) : {};\n\n\tif (isArr) {\n\t\tfor (i=0; i < out.length; i++) {\n\t\t\ttmp = input[i];\n\t\t\tif (!tmp || typeof tmp !== 'object') out[i] = tmp;\n\t\t\telse out[i] = sort(tmp, expect[i]); // might not be right\n\t\t}\n\t} else {\n\t\tfor (k in expect)\n\t\t\tkeys.push(k);\n\n\t\tfor (; i < keys.length; i++) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(input, k = keys[i])) {\n\t\t\t\tif (!(tmp = input[k]) || typeof tmp !== 'object') out[k] = tmp;\n\t\t\t\telse out[k] = sort(tmp, expect[k]);\n\t\t\t}\n\t\t}\n\n\t\tfor (k in input) {\n\t\t\tif (!out.hasOwnProperty(k)) {\n\t\t\t\tout[k] = input[k]; // expect didnt have\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out;\n}\n\nexport function circular() {\n\tvar cache = new Set;\n\treturn function print(key, val) {\n\t\tif (val === void 0) return '[__VOID__]';\n\t\tif (typeof val === 'number' && val !== val) return '[__NAN__]';\n\t\tif (!val || typeof val !== 'object') return val;\n\t\tif (cache.has(val)) return '[Circular]';\n\t\tcache.add(val); return val;\n\t}\n}\n\nexport function stringify(input) {\n\treturn JSON.stringify(input, circular(), 2).replace(/\"\\[__NAN__\\]\"/g, 'NaN').replace(/\"\\[__VOID__\\]\"/g, 'undefined');\n}\n\nexport function compare(input, expect) {\n\tif (Array.isArray(expect) && Array.isArray(input)) return arrays(input, expect);\n\tif (expect instanceof RegExp) return chars(''+input, ''+expect);\n\n\tlet isA = input && typeof input == 'object';\n\tlet isB = expect && typeof expect == 'object';\n\n\tif (isA && isB) input = sort(input, expect);\n\tif (isB) expect = stringify(expect);\n\tif (isA) input = stringify(input);\n\n\tif (expect && typeof expect == 'object') {\n\t\tinput = stringify(sort(input, expect));\n\t\texpect = stringify(expect);\n\t}\n\n\tisA = typeof input == 'string';\n\tisB = typeof expect == 'string';\n\n\tif (isA && /\\r?\\n/.test(input)) return lines(input, ''+expect);\n\tif (isB && /\\r?\\n/.test(expect)) return lines(''+input, expect);\n\tif (isA && isB) return chars(input, expect);\n\n\treturn direct(input, expect);\n}\n","import kleur from 'kleur';\nimport { compare } from 'uvu/diff';\n\nlet isCLI = false, isNode = false;\nlet hrtime = (now = Date.now()) => () => (Date.now() - now).toFixed(2) + 'ms';\nlet write = console.log;\n\nconst into = (ctx, key) => (name, handler) => ctx[key].push({ name, handler });\nconst context = (state) => ({ tests:[], before:[], after:[], bEach:[], aEach:[], only:[], skips:0, state });\nconst milli = arr => (arr[0]*1e3 + arr[1]/1e6).toFixed(2) + 'ms';\nconst hook = (ctx, key) => handler => ctx[key].push(handler);\n\nif (isNode = typeof process < 'u' && typeof process.stdout < 'u') {\n\t// globalThis polyfill; Node < 12\n\tif (typeof globalThis !== 'object') {\n\t\tObject.defineProperty(global, 'globalThis', {\n\t\t\tget: function () { return this }\n\t\t});\n\t}\n\n\tlet rgx = /(\\.bin[\\\\+\\/]uvu$|uvu[\\\\+\\/]bin\\.js)/i;\n\tisCLI = process.argv.some(x => rgx.test(x));\n\n\t// attach node-specific utils\n\twrite = x => process.stdout.write(x);\n\thrtime = (now = process.hrtime()) => () => milli(process.hrtime(now));\n} else if (typeof performance < 'u') {\n\thrtime = (now = performance.now()) => () => (performance.now() - now).toFixed(2) + 'ms';\n}\n\nglobalThis.UVU_QUEUE = globalThis.UVU_QUEUE || [];\nisCLI || UVU_QUEUE.push([null]);\n\nconst QUOTE = kleur.dim('\"'), GUTTER = '\\n ';\nconst FAIL = kleur.red('✘ '), PASS = kleur.gray('• ');\nconst IGNORE = /^\\s*at.*(?:\\(|\\s)(?:node|(internal\\/[\\w/]*))/;\nconst FAILURE = kleur.bold().bgRed(' FAIL ');\nconst FILE = kleur.bold().underline().white;\nconst SUITE = kleur.bgWhite().bold;\n\nfunction stack(stack, idx) {\n\tlet i=0, line, out='';\n\tlet arr = stack.substring(idx).replace(/\\\\/g, '/').split('\\n');\n\tfor (; i < arr.length; i++) {\n\t\tline = arr[i].trim();\n\t\tif (line.length && !IGNORE.test(line)) {\n\t\t\tout += '\\n ' + line;\n\t\t}\n\t}\n\treturn kleur.grey(out) + '\\n';\n}\n\nfunction format(name, err, suite = '') {\n\tlet { details, operator='' } = err;\n\tlet idx = err.stack && err.stack.indexOf('\\n');\n\tif (err.name.startsWith('AssertionError') && !operator.includes('not')) details = compare(err.actual, err.expected); // TODO?\n\tlet str = ' ' + FAILURE + (suite ? kleur.red(SUITE(` ${suite} `)) : '') + ' ' + QUOTE + kleur.red().bold(name) + QUOTE;\n\tstr += '\\n ' + err.message + (operator ? kleur.italic().dim(` (${operator})`) : '') + '\\n';\n\tif (details) str += GUTTER + details.split('\\n').join(GUTTER);\n\tif (!!~idx) str += stack(err.stack, idx);\n\treturn str + '\\n';\n}\n\nasync function runner(ctx, name) {\n\tlet { only, tests, before, after, bEach, aEach, state } = ctx;\n\tlet hook, test, arr = only.length ? only : tests;\n\tlet num=0, errors='', total=arr.length;\n\n\ttry {\n\t\tif (name) write(SUITE(kleur.black(` ${name} `)) + ' ');\n\t\tfor (hook of before) await hook(state);\n\n\t\tfor (test of arr) {\n\t\t\tstate.__test__ = test.name;\n\t\t\ttry {\n\t\t\t\tfor (hook of bEach) await hook(state);\n\t\t\t\tawait test.handler(state);\n\t\t\t\tfor (hook of aEach) await hook(state);\n\t\t\t\twrite(PASS);\n\t\t\t\tnum++;\n\t\t\t} catch (err) {\n\t\t\t\tfor (hook of aEach) await hook(state);\n\t\t\t\tif (errors.length) errors += '\\n';\n\t\t\t\terrors += format(test.name, err, name);\n\t\t\t\twrite(FAIL);\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tstate.__test__ = '';\n\t\tfor (hook of after) await hook(state);\n\t\tlet msg = ` (${num} / ${total})\\n`;\n\t\tlet skipped = (only.length ? tests.length : 0) + ctx.skips;\n\t\twrite(errors.length ? kleur.red(msg) : kleur.green(msg));\n\t\treturn [errors || true, num, skipped, total];\n\t}\n}\n\nlet timer;\nfunction defer() {\n\tclearTimeout(timer);\n\ttimer = setTimeout(exec);\n}\n\nfunction setup(ctx, name = '') {\n\tctx.state.__test__ = '';\n\tctx.state.__suite__ = name;\n\tconst test = into(ctx, 'tests');\n\ttest.before = hook(ctx, 'before');\n\ttest.before.each = hook(ctx, 'bEach');\n\ttest.after = hook(ctx, 'after');\n\ttest.after.each = hook(ctx, 'aEach');\n\ttest.only = into(ctx, 'only');\n\ttest.skip = () => { ctx.skips++ };\n\ttest.run = () => {\n\t\tlet copy = { ...ctx };\n\t\tlet run = runner.bind(0, copy, name);\n\t\tObject.assign(ctx, context(copy.state));\n\t\tUVU_QUEUE[globalThis.UVU_INDEX || 0].push(run);\n\t\tisCLI || defer();\n\t};\n\treturn test;\n}\n\nexport const suite = (name = '', state = {}) => setup(context(state), name);\nexport const test = suite();\n\nexport async function exec(bail) {\n\tlet timer = hrtime();\n\tlet done=0, total=0, skips=0, code=0;\n\n\tfor (let group of UVU_QUEUE) {\n\t\tif (total) write('\\n');\n\n\t\tlet name = group.shift();\n\t\tif (name != null) write(FILE(name) + '\\n');\n\n\t\tfor (let test of group) {\n\t\t\tlet [errs, ran, skip, max] = await test();\n\t\t\ttotal += max; done += ran; skips += skip;\n\t\t\tif (errs.length) {\n\t\t\t\twrite('\\n' + errs + '\\n'); code=1;\n\t\t\t\tif (bail) return isNode && process.exit(1);\n\t\t\t}\n\t\t}\n\t}\n\n\twrite('\\n Total: ' + total);\n\twrite((code ? kleur.red : kleur.green)('\\n Passed: ' + done));\n\twrite('\\n Skipped: ' + (skips ? kleur.yellow(skips) : skips));\n\twrite('\\n Duration: ' + timer() + '\\n\\n');\n\n\tif (isNode) process.exitCode = code;\n}\n","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import { dequal } from 'dequal';\nimport { compare, lines } from 'uvu/diff';\n\nfunction dedent(str) {\n\tstr = str.replace(/\\r?\\n/g, '\\n');\n let arr = str.match(/^[ \\t]*(?=\\S)/gm);\n let i = 0, min = 1/0, len = (arr||[]).length;\n for (; i < len; i++) min = Math.min(min, arr[i].length);\n return len && min ? str.replace(new RegExp(`^[ \\\\t]{${min}}`, 'gm'), '') : str;\n}\n\nexport class Assertion extends Error {\n\tconstructor(opts={}) {\n\t\tsuper(opts.message);\n\t\tthis.name = 'Assertion';\n\t\tthis.code = 'ERR_ASSERTION';\n\t\tif (Error.captureStackTrace) {\n\t\t\tError.captureStackTrace(this, this.constructor);\n\t\t}\n\t\tthis.details = opts.details || false;\n\t\tthis.generated = !!opts.generated;\n\t\tthis.operator = opts.operator;\n\t\tthis.expects = opts.expects;\n\t\tthis.actual = opts.actual;\n\t}\n}\n\nfunction assert(bool, actual, expects, operator, detailer, backup, msg) {\n\tif (bool) return;\n\tlet message = msg || backup;\n\tif (msg instanceof Error) throw msg;\n\tlet details = detailer && detailer(actual, expects);\n\tthrow new Assertion({ actual, expects, operator, message, details, generated: !msg });\n}\n\nexport function ok(val, msg) {\n\tassert(!!val, false, true, 'ok', false, 'Expected value to be truthy', msg);\n}\n\nexport function is(val, exp, msg) {\n\tassert(val === exp, val, exp, 'is', compare, 'Expected values to be strictly equal:', msg);\n}\n\nexport function equal(val, exp, msg) {\n\tassert(dequal(val, exp), val, exp, 'equal', compare, 'Expected values to be deeply equal:', msg);\n}\n\nexport function unreachable(msg) {\n\tassert(false, true, false, 'unreachable', false, 'Expected not to be reached!', msg);\n}\n\nexport function type(val, exp, msg) {\n\tlet tmp = typeof val;\n\tassert(tmp === exp, tmp, exp, 'type', false, `Expected \"${tmp}\" to be \"${exp}\"`, msg);\n}\n\nexport function instance(val, exp, msg) {\n\tlet name = '`' + (exp.name || exp.constructor.name) + '`';\n\tassert(val instanceof exp, val, exp, 'instance', false, `Expected value to be an instance of ${name}`, msg);\n}\n\nexport function match(val, exp, msg) {\n\tif (typeof exp === 'string') {\n\t\tassert(val.includes(exp), val, exp, 'match', false, `Expected value to include \"${exp}\" substring`, msg);\n\t} else {\n\t\tassert(exp.test(val), val, exp, 'match', false, `Expected value to match \\`${String(exp)}\\` pattern`, msg);\n\t}\n}\n\nexport function snapshot(val, exp, msg) {\n\tval=dedent(val); exp=dedent(exp);\n\tassert(val === exp, val, exp, 'snapshot', lines, 'Expected value to match snapshot:', msg);\n}\n\nconst lineNums = (x, y) => lines(x, y, 1);\nexport function fixture(val, exp, msg) {\n\tval=dedent(val); exp=dedent(exp);\n\tassert(val === exp, val, exp, 'fixture', lineNums, 'Expected value to match fixture:', msg);\n}\n\nexport function throws(blk, exp, msg) {\n\tif (!msg && typeof exp === 'string') {\n\t\tmsg = exp; exp = null;\n\t}\n\n\ttry {\n\t\tblk();\n\t\tassert(false, false, true, 'throws', false, 'Expected function to throw', msg);\n\t} catch (err) {\n\t\tif (err instanceof Assertion) throw err;\n\n\t\tif (typeof exp === 'function') {\n\t\t\tassert(exp(err), false, true, 'throws', false, 'Expected function to throw matching exception', msg);\n\t\t} else if (exp instanceof RegExp) {\n\t\t\tassert(exp.test(err.message), false, true, 'throws', false, `Expected function to throw exception matching \\`${String(exp)}\\` pattern`, msg);\n\t\t}\n\t}\n}\n\n// ---\n\nexport function not(val, msg) {\n\tassert(!val, true, false, 'not', false, 'Expected value to be falsey', msg);\n}\n\nnot.ok = not;\n\nis.not = function (val, exp, msg) {\n\tassert(val !== exp, val, exp, 'is.not', false, 'Expected values not to be strictly equal', msg);\n}\n\nnot.equal = function (val, exp, msg) {\n\tassert(!dequal(val, exp), val, exp, 'not.equal', false, 'Expected values not to be deeply equal', msg);\n}\n\nnot.type = function (val, exp, msg) {\n\tlet tmp = typeof val;\n\tassert(tmp !== exp, tmp, exp, 'not.type', false, `Expected \"${tmp}\" not to be \"${exp}\"`, msg);\n}\n\nnot.instance = function (val, exp, msg) {\n\tlet name = '`' + (exp.name || exp.constructor.name) + '`';\n\tassert(!(val instanceof exp), val, exp, 'not.instance', false, `Expected value not to be an instance of ${name}`, msg);\n}\n\nnot.snapshot = function (val, exp, msg) {\n\tval=dedent(val); exp=dedent(exp);\n\tassert(val !== exp, val, exp, 'not.snapshot', false, 'Expected value not to match snapshot', msg);\n}\n\nnot.fixture = function (val, exp, msg) {\n\tval=dedent(val); exp=dedent(exp);\n\tassert(val !== exp, val, exp, 'not.fixture', false, 'Expected value not to match fixture', msg);\n}\n\nnot.match = function (val, exp, msg) {\n\tif (typeof exp === 'string') {\n\t\tassert(!val.includes(exp), val, exp, 'not.match', false, `Expected value not to include \"${exp}\" substring`, msg);\n\t} else {\n\t\tassert(!exp.test(val), val, exp, 'not.match', false, `Expected value not to match \\`${String(exp)}\\` pattern`, msg);\n\t}\n}\n\nnot.throws = function (blk, exp, msg) {\n\tif (!msg && typeof exp === 'string') {\n\t\tmsg = exp; exp = null;\n\t}\n\n\ttry {\n\t\tblk();\n\t} catch (err) {\n\t\tif (typeof exp === 'function') {\n\t\t\tassert(!exp(err), true, false, 'not.throws', false, 'Expected function not to throw matching exception', msg);\n\t\t} else if (exp instanceof RegExp) {\n\t\t\tassert(!exp.test(err.message), true, false, 'not.throws', false, `Expected function not to throw exception matching \\`${String(exp)}\\` pattern`, msg);\n\t\t} else if (!exp) {\n\t\t\tassert(false, true, false, 'not.throws', false, 'Expected function not to throw', msg);\n\t\t}\n\t}\n}\n","import type {\n FoundationElement,\n FoundationElementDefinition,\n FoundationElementRegistry,\n Registration,\n} from '@microsoft/fast-foundation';\nimport { Container, DesignSystem, DI } from '@microsoft/fast-foundation';\nimport { assert, suite, uvu } from '../uvu';\nimport { Fixture, fixture as FASTFixture, FixtureOptions } from '../component';\n\n/**\n * @public\n */\nexport type ElementGetter = () => FoundationElementRegistry<\n FoundationElementDefinition,\n FoundationElement\n>;\n\n/**\n * Component suite context interface\n * @public\n */\nexport interface ComponentContext<TElement = HTMLElement>\n extends Pick<Fixture<TElement>, 'element' | 'disconnect'> {\n designSystem: DesignSystem;\n container: Container;\n}\n\n/**\n * Logic suite context interface\n * @public\n */\nexport interface LogicContext {\n runCases?(fn: (value: any) => any, cases: [any, any, assert.Message?][]): void;\n}\n\n/**\n * Create component test suite.\n *\n * @example\n * Simple suite using the tag name of the component.\n * ```ts\n * import { createComponentSuite } from '@genesislcap/foundation-testing';\n * import { Component } from './component';\n * Component; // < As we're using tag name in the Suite, we hold a reference to avoid tree shaking.\n * const Suite = createComponentSuite<Component>('Component', 'my-component');\n * // test cases...\n * Suite.run();\n * ```\n *\n * @example\n * Mocking a DI dependency for a composable component.\n * ```ts\n * const connectMock = new ConnectMock();\n * const mocks = [Registration.instance(Connect, connectMock)];\n * const Suite = createComponentSuite<ConnectionIndicator>('ConnectionIndicator Component', () => connectionIndicator(), null, mocks);\n * // test cases...\n * Suite.run();\n * ```\n *\n * @example\n * An element will be required to test anything that directly or in-directly makes use of the DI container, for example,\n * a service that can be injected into components, or has its own injected dependencies.\n * ```ts\n * import { Service } from './service';\n * @customElement({\n * name: 'test-element',\n * template: html`<slot></slot>`,\n * })\n * class TestElement extends FASTElement {}\n * const mocks = [...];\n * const Suite = createComponentSuite<TestElement>('Service', 'test-element', null, mocks);\n * // test cases...\n * Suite.run();\n * ```\n *\n * Importing the service should invoke the Service's DI registration, so in your test cases you can simply query the\n * container to get a reference to your service.\n * ```ts\n * Suite('Service.x does something expected', async ({ container }) => {\n * const myService = container.get(Service);\n * // assert\n * });\n * ```\n *\n * You can optionally add the service to the test element for lookup convenience, but this is not required.\n * ```ts\n * class TestElement extends FASTElement {\n * @Service service: Service;\n * }\n * Suite('Element has service injected', async ({ element }) => {\n * assert.ok(element.service);\n * });\n * ```\n *\n * @typeParam TElement - The element interface.\n * @param title - Title of the test suite\n * @param elementNameOrGetter - Element tag name or getter which is used to create the element within the fixture\n * @param context - Optional component context {@link ComponentContext}\n * @param registrations - Optional array of DI container registrations\n * @returns The test suite\n * @public\n * @remarks\n * Used to test function output given certain input arguments.\n */\nexport function createComponentSuite<TElement = HTMLElement>(\n title: string,\n elementNameOrGetter: string | ElementGetter,\n context?: ComponentContext<TElement>,\n registrations: Registration<any>[] = []\n): uvu.Test<ComponentContext<TElement>> {\n const Suite = suite<ComponentContext<TElement>>(title, {\n element: undefined,\n disconnect: undefined,\n designSystem: undefined,\n container: undefined,\n ...context,\n });\n\n Suite.before.each(async (c) => {\n const parent = document.createElement('div');\n const designSystem = DesignSystem.getOrCreate(parent).register(...registrations);\n const container = DI.getOrCreateDOMContainer(parent);\n const fixtureOptions: FixtureOptions = {\n parent,\n designSystem,\n };\n /**\n * We might need to spread element getters for some test case, for example look at the following Fast test:\n * packages/web-components/fast-foundation/src/picker/picker.spec.ts\n */\n const { element, connect, disconnect } = await FASTFixture<TElement>(\n typeof elementNameOrGetter === 'string' ? elementNameOrGetter : elementNameOrGetter(),\n fixtureOptions\n );\n c.element = element;\n c.disconnect = disconnect;\n c.designSystem = designSystem;\n c.container = container;\n await connect();\n });\n\n /* eslint-disable require-atomic-updates */\n Suite.after.each(async (c) => {\n await c.disconnect();\n c.element = undefined;\n c.disconnect = undefined;\n c.designSystem = undefined;\n c.container = undefined;\n });\n\n return Suite;\n}\n\n/**\n * Create logic test suite.\n *\n * @example\n * ```ts\n * import { createLogicSuite } from '@genesislcap/foundation-testing';\n * import { myFunction } from './logic';\n * const Suite = createLogicSuite('myFunction');\n * Suite('myFunction should provide expected results', ({ runCases }) => {\n * runCases(myFunction, [\n * [['1'], true],\n * [[123], true],\n * [['60%'], true],\n * [['$60'], false],\n * [['1.1'], false],\n * [[''], false],\n * [[true], false],\n * [[null], false],\n * [[undefined], false],\n * ]);\n * });\n * Suite.run();\n * ```\n *\n * @typeParam TContext - The context interface.\n * @param title - Title of the test suite\n * @param context - Optional context which extends {@link LogicContext}\n * @returns The test suite\n * @public\n * @remarks\n * Used to test function output given certain input arguments.\n */\nexport function createLogicSuite<TContext = LogicContext>(\n title: string,\n context?: TContext\n): uvu.Test<TContext> {\n const Suite = suite<TContext>(title, {\n runCases: (fn, cases) => {\n assert.type(fn, 'function');\n cases.forEach(([actual, expects, msg]) => assert.is(fn(...actual), expects, msg));\n },\n ...context,\n });\n return Suite;\n}\n","import { createLogger } from '@genesislcap/foundation-utils';\n\n/**\n * Test logger\n * @public\n * @remarks\n * Exported so you can set log levels differently across packages when needed.\n */\nexport const logger = createLogger('foundation-testing');\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_genesislcap_foundation_testing=self.webpackChunk_genesislcap_foundation_testing||[]).push([[772],{772:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Registration:()=>o.Registration,assert:()=>r,createComponentSuite:()=>ve,createLogicSuite:()=>xe,fixture:()=>s,logger:()=>Ee,suite:()=>H,test:()=>Z});var r={};n.r(r),n.d(r,{Assertion:()=>ie,equal:()=>le,fixture:()=>be,instance:()=>fe,is:()=>ce,match:()=>ge,not:()=>me,ok:()=>se,snapshot:()=>pe,throws:()=>ye,type:()=>de,unreachable:()=>ue});var o=n(951),i=n(304),a=n(147);function s(e,t={}){return(0,i.__awaiter)(this,void 0,void 0,(function*(){const n=t.document||globalThis.document,r=t.parent||n.createElement("div"),s=t.source||{},c=t.context||a.defaultExecutionContext;if("string"==typeof e){const t=`<${e}></${e}>`;e=new a.ViewTemplate(t,[])}else"function"==typeof e.register&&(e=[e]);if(Array.isArray(e)){const n=e[0],i=t.designSystem||o.DesignSystem.getOrCreate(r);let s="";i.register(e,{register(e,t){s=t.elementPrefix}});const c=`${s}-${n.definition.baseName}`,l=`<${c}></${c}>`;e=new a.ViewTemplate(l,[])}const l=e.create(),u=function(e){let t=e.firstChild;for(;null!==t&&1!==t.nodeType;)t=t.nextSibling;return t}(l);let d=!1;l.bind(s,c),l.appendTo(r),customElements.upgrade(r),yield Promise.resolve();return{document:n,template:e,view:l,parent:r,element:u,connect:()=>(0,i.__awaiter)(this,void 0,void 0,(function*(){d||(d=!0,n.body.appendChild(r),yield Promise.resolve())})),disconnect:()=>(0,i.__awaiter)(this,void 0,void 0,(function*(){d&&(d=!1,n.body.removeChild(r),yield Promise.resolve())}))}}))}let c,l,u,d,f=!0;"undefined"!=typeof process&&(({FORCE_COLOR:c,NODE_DISABLE_COLORS:l,NO_COLOR:u,TERM:d}=process.env||{}),f=process.stdout&&process.stdout.isTTY);const g={enabled:!l&&null==u&&"dumb"!==d&&(null!=c&&"0"!==c||f),reset:h(0,0),bold:h(1,22),dim:h(2,22),italic:h(3,23),underline:h(4,24),inverse:h(7,27),hidden:h(8,28),strikethrough:h(9,29),black:h(30,39),red:h(31,39),green:h(32,39),yellow:h(33,39),blue:h(34,39),magenta:h(35,39),cyan:h(36,39),white:h(37,39),gray:h(90,39),grey:h(90,39),bgBlack:h(40,49),bgRed:h(41,49),bgGreen:h(42,49),bgYellow:h(43,49),bgBlue:h(44,49),bgMagenta:h(45,49),bgCyan:h(46,49),bgWhite:h(47,49)};function p(e,t){let n,r=0,o="",i="";for(;r<e.length;r++)n=e[r],o+=n.open,i+=n.close,~t.indexOf(n.close)&&(t=t.replace(n.rgx,n.close+n.open));return o+t+i}function h(e,t){let n={open:`[${e}m`,close:`[${t}m`,rgx:new RegExp(`\\x1b\\[${t}m`,"g")};return function(t){return void 0!==this&&void 0!==this.has?(~this.has.indexOf(e)||(this.has.push(e),this.keys.push(n)),void 0===t?this:g.enabled?p(this.keys,t+""):t+""):void 0===t?function(e,t){let n={has:e,keys:t};return n.reset=g.reset.bind(n),n.bold=g.bold.bind(n),n.dim=g.dim.bind(n),n.italic=g.italic.bind(n),n.underline=g.underline.bind(n),n.inverse=g.inverse.bind(n),n.hidden=g.hidden.bind(n),n.strikethrough=g.strikethrough.bind(n),n.black=g.black.bind(n),n.red=g.red.bind(n),n.green=g.green.bind(n),n.yellow=g.yellow.bind(n),n.blue=g.blue.bind(n),n.magenta=g.magenta.bind(n),n.cyan=g.cyan.bind(n),n.white=g.white.bind(n),n.gray=g.gray.bind(n),n.grey=g.grey.bind(n),n.bgBlack=g.bgBlack.bind(n),n.bgRed=g.bgRed.bind(n),n.bgGreen=g.bgGreen.bind(n),n.bgYellow=g.bgYellow.bind(n),n.bgBlue=g.bgBlue.bind(n),n.bgMagenta=g.bgMagenta.bind(n),n.bgCyan=g.bgCyan.bind(n),n.bgWhite=g.bgWhite.bind(n),n}([e],[n]):g.enabled?p([n],t+""):t+""}}const b=g;var y=n(797);const m={"--":b.red,"··":b.grey,"++":b.green},v=b.dim().italic,x=b.dim("→"),E=b.dim("·"),w=b.dim("↵"),_=(e,t)=>m[e](e+S(t))+"\n",k=(e,t)=>b.dim("L"+String(e).padStart(t,"0")+" "),S=e=>e.replace(/[ ]/g,E).replace(/\t/g,x).replace(/(\r?\n)/g,w);function $(e,t,n){let r,o=e.removed?"--":e.added?"++":"··",i=e.value.replace(/\r?\n$/,"").split("\n"),a=0,s="";for(e.added?s+=m[o]().underline(v("Expected:"))+"\n":e.removed&&(s+=m[o]().underline(v("Actual:"))+"\n");a<i.length;a++)r=i[a],null!=r&&(t&&(s+=k(t+a,n)),s+=_(o,r||"\n"));return s}function O(e,t,n=0){let r,o=0,i="",a=y.Mp(e,t),s=String(t.split(/\r?\n/g).length-n).length;for(;o<a.length;o++)i+=$(r=a[o],n,s),n&&!r.removed&&(n+=r.count);return i}function A(e,t){let n,r=y.Kx(e,t),o=0,i="",a=e.length,s=t.length,c=S(e),l=S(t);if(n=r[o],a===s);else if(n.removed&&r[o+1]){let i=n.count-r[o+1].count;0==i||(i>0?(t=" ".repeat(i)+t,l=" ".repeat(i)+l,s+=i):i<0&&(e=" ".repeat(-i)+e,c=" ".repeat(-i)+c,a+=-i))}if(i+=U(c,l,a,s),a===s)for(n=" ";o<a;o++)n+=e[o]===t[o]?" ":"^";else for(n=" ";o<r.length;o++)n+=(r[o].added||r[o].removed?"^":" ").repeat(Math.max(r[o].count,0)),o+1<r.length&&(r[o].added&&r[o+1].removed||r[o].removed&&r[o+1].added)&&(r[o+1].count-=r[o].count);return i+b.red(n)}function U(e,t,n=String(e).length,r=String(t).length){let o=4,i=Math.max(n,r),a=typeof e,s=typeof t;if(a!==s){o=2;let c=o+i-n,l=o+i-r;e+=" ".repeat(c)+b.dim(`[${a}]`),t+=" ".repeat(l)+b.dim(`[${s}]`),n+=c+a.length+2,r+=l+s.length+2,i=Math.max(n,r)}return m["++"]("++"+t+" ".repeat(o+i-r)+v("(Expected)"))+"\n"+m["--"]("--"+e+" ".repeat(o+i-n)+v("(Actual)"))+"\n"}function C(e,t){var n,r,o=0,i=Array.isArray(e),a=[],s=i?Array(e.length):{};if(i)for(o=0;o<s.length;o++)r=e[o],s[o]=r&&"object"==typeof r?C(r,t[o]):r;else{for(n in t)a.push(n);for(;o<a.length;o++)Object.prototype.hasOwnProperty.call(e,n=a[o])&&((r=e[n])&&"object"==typeof r?s[n]=C(r,t[n]):s[n]=r);for(n in e)s.hasOwnProperty(n)||(s[n]=e[n])}return s}function T(e){return JSON.stringify(e,(t=new Set,function(e,n){return void 0===n?"[__VOID__]":"number"==typeof n&&n!=n?"[__NAN__]":n&&"object"==typeof n?t.has(n)?"[Circular]":(t.add(n),n):n}),2).replace(/"\[__NAN__\]"/g,"NaN").replace(/"\[__VOID__\]"/g,"undefined");var t}function j(e,t){if(Array.isArray(t)&&Array.isArray(e))return function(e,t){let n,r,o,i,a,s=y.Bm(e,t),c=0,l=0,u=0,d=_("··","[");for(;c<s.length;c++)for(o=(n=s[c]).removed?"--":n.added?"++":"··",n.added?d+=m[o]().underline(v("Expected:"))+"\n":n.removed&&(d+=m[o]().underline(v("Actual:"))+"\n"),l=0;l<n.value.length;l++)for(i=n.value[l]&&"object"==typeof n.value[l],r=T(n.value[l]).split(/\r?\n/g),u=0;u<r.length;)a=" "+r[u++]+(i?"":","),i&&u===r.length&&l+1<n.value.length&&(a+=","),d+=_(o,a);return d+_("··","]")}(e,t);if(t instanceof RegExp)return A(""+e,""+t);let n=e&&"object"==typeof e,r=t&&"object"==typeof t;return n&&r&&(e=C(e,t)),r&&(t=T(t)),n&&(e=T(e)),t&&"object"==typeof t&&(e=T(C(e,t)),t=T(t)),n="string"==typeof e,r="string"==typeof t,n&&/\r?\n/.test(e)?O(e,""+t):r&&/\r?\n/.test(t)?O(""+e,t):n&&r?A(e,t):U(e,t)}let R=!1,D=!1,L=(e=Date.now())=>()=>(Date.now()-e).toFixed(2)+"ms",N=console.log;const V=(e,t)=>(n,r)=>e[t].push({name:n,handler:r}),M=e=>({tests:[],before:[],after:[],bEach:[],aEach:[],only:[],skips:0,state:e}),B=(e,t)=>n=>e[t].push(n);if(D=typeof process<"u"&&typeof process.stdout<"u"){"object"!=typeof globalThis&&Object.defineProperty(global,"globalThis",{get:function(){return this}});let e=/(\.bin[\\+\/]uvu$|uvu[\\+\/]bin\.js)/i;R=process.argv.some((t=>e.test(t))),N=e=>process.stdout.write(e),L=(e=process.hrtime())=>()=>{return(1e3*(t=process.hrtime(e))[0]+t[1]/1e6).toFixed(2)+"ms";var t}}else typeof performance<"u"&&(L=(e=performance.now())=>()=>(performance.now()-e).toFixed(2)+"ms");globalThis.UVU_QUEUE=globalThis.UVU_QUEUE||[],R||UVU_QUEUE.push([null]);const I=b.dim('"'),P="\n ",q=b.red("✘ "),F=b.gray("• "),Q=/^\s*at.*(?:\(|\s)(?:node|(internal\/[\w/]*))/,W=b.bold().bgRed(" FAIL "),z=b.bold().underline().white,Y=b.bgWhite().bold;function G(e,t,n=""){let{details:r,operator:o=""}=t,i=t.stack&&t.stack.indexOf("\n");t.name.startsWith("AssertionError")&&!o.includes("not")&&(r=j(t.actual,t.expected));let a=" "+W+(n?b.red(Y(` ${n} `)):"")+" "+I+b.red().bold(e)+I;return a+="\n "+t.message+(o?b.italic().dim(` (${o})`):"")+"\n",r&&(a+=P+r.split("\n").join(P)),~i&&(a+=function(e,t){let n,r=0,o="",i=e.substring(t).replace(/\\/g,"/").split("\n");for(;r<i.length;r++)n=i[r].trim(),n.length&&!Q.test(n)&&(o+="\n "+n);return b.grey(o)+"\n"}(t.stack,i)),a+"\n"}async function J(e,t){let n,r,{only:o,tests:i,before:a,after:s,bEach:c,aEach:l,state:u}=e,d=o.length?o:i,f=0,g="",p=d.length;try{for(n of(t&&N(Y(b.black(` ${t} `))+" "),a))await n(u);for(r of d){u.__test__=r.name;try{for(n of c)await n(u);for(n of(await r.handler(u),l))await n(u);N(F),f++}catch(e){for(n of l)await n(u);g.length&&(g+="\n"),g+=G(r.name,e,t),N(q)}}}finally{for(n of(u.__test__="",s))await n(u);let t=` (${f} / ${p})\n`,r=(o.length?i.length:0)+e.skips;return N(g.length?b.red(t):b.green(t)),[g||!0,f,r,p]}}let K;function X(e,t=""){e.state.__test__="",e.state.__suite__=t;const n=V(e,"tests");return n.before=B(e,"before"),n.before.each=B(e,"bEach"),n.after=B(e,"after"),n.after.each=B(e,"aEach"),n.only=V(e,"only"),n.skip=()=>{e.skips++},n.run=()=>{let n={...e},r=J.bind(0,n,t);Object.assign(e,M(n.state)),UVU_QUEUE[globalThis.UVU_INDEX||0].push(r),R||(clearTimeout(K),K=setTimeout(ee))},n}const H=(e="",t={})=>X(M(t),e),Z=H();async function ee(e){let t=L(),n=0,r=0,o=0,i=0;for(let t of UVU_QUEUE){r&&N("\n");let a=t.shift();null!=a&&N(z(a)+"\n");for(let a of t){let[t,s,c,l]=await a();if(r+=l,n+=s,o+=c,t.length&&(N("\n"+t+"\n"),i=1,e))return D&&process.exit(1)}}N("\n Total: "+r),N((i?b.red:b.green)("\n Passed: "+n)),N("\n Skipped: "+(o?b.yellow(o):o)),N("\n Duration: "+t()+"\n\n"),D&&(process.exitCode=i)}var te=Object.prototype.hasOwnProperty;function ne(e,t,n){for(n of e.keys())if(re(n,t))return n}function re(e,t){var n,r,o;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&re(e[r],t[r]););return-1===r}if(n===Set){if(e.size!==t.size)return!1;for(r of e){if((o=r)&&"object"==typeof o&&!(o=ne(t,o)))return!1;if(!t.has(o))return!1}return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e){if((o=r[0])&&"object"==typeof o&&!(o=ne(t,o)))return!1;if(!re(r[1],t.get(o)))return!1}return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return-1===r}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return-1===r}if(!n||"object"==typeof e){for(n in r=0,e){if(te.call(e,n)&&++r&&!te.call(t,n))return!1;if(!(n in t)||!re(e[n],t[n]))return!1}return Object.keys(t).length===r}}return e!=e&&t!=t}function oe(e){let t=(e=e.replace(/\r?\n/g,"\n")).match(/^[ \t]*(?=\S)/gm),n=0,r=1/0,o=(t||[]).length;for(;n<o;n++)r=Math.min(r,t[n].length);return o&&r?e.replace(new RegExp(`^[ \\t]{${r}}`,"gm"),""):e}class ie extends Error{constructor(e={}){super(e.message),this.name="Assertion",this.code="ERR_ASSERTION",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.details=e.details||!1,this.generated=!!e.generated,this.operator=e.operator,this.expects=e.expects,this.actual=e.actual}}function ae(e,t,n,r,o,i,a){if(e)return;let s=a||i;if(a instanceof Error)throw a;let c=o&&o(t,n);throw new ie({actual:t,expects:n,operator:r,message:s,details:c,generated:!a})}function se(e,t){ae(!!e,!1,!0,"ok",!1,"Expected value to be truthy",t)}function ce(e,t,n){ae(e===t,e,t,"is",j,"Expected values to be strictly equal:",n)}function le(e,t,n){ae(re(e,t),e,t,"equal",j,"Expected values to be deeply equal:",n)}function ue(e){ae(!1,!0,!1,"unreachable",!1,"Expected not to be reached!",e)}function de(e,t,n){let r=typeof e;ae(r===t,r,t,"type",!1,`Expected "${r}" to be "${t}"`,n)}function fe(e,t,n){ae(e instanceof t,e,t,"instance",!1,`Expected value to be an instance of ${"`"+(t.name||t.constructor.name)+"`"}`,n)}function ge(e,t,n){"string"==typeof t?ae(e.includes(t),e,t,"match",!1,`Expected value to include "${t}" substring`,n):ae(t.test(e),e,t,"match",!1,`Expected value to match \`${String(t)}\` pattern`,n)}function pe(e,t,n){ae((e=oe(e))===(t=oe(t)),e,t,"snapshot",O,"Expected value to match snapshot:",n)}const he=(e,t)=>O(e,t,1);function be(e,t,n){ae((e=oe(e))===(t=oe(t)),e,t,"fixture",he,"Expected value to match fixture:",n)}function ye(e,t,n){n||"string"!=typeof t||(n=t,t=null);try{e(),ae(!1,!1,!0,"throws",!1,"Expected function to throw",n)}catch(e){if(e instanceof ie)throw e;"function"==typeof t?ae(t(e),!1,!0,"throws",!1,"Expected function to throw matching exception",n):t instanceof RegExp&&ae(t.test(e.message),!1,!0,"throws",!1,`Expected function to throw exception matching \`${String(t)}\` pattern`,n)}}function me(e,t){ae(!e,!0,!1,"not",!1,"Expected value to be falsey",t)}function ve(e,t,n,r=[]){const a=H(e,Object.assign({element:void 0,disconnect:void 0,designSystem:void 0,container:void 0},n));return a.before.each((e=>(0,i.__awaiter)(this,void 0,void 0,(function*(){const n=document.createElement("div"),i=o.DesignSystem.getOrCreate(n).register(...r),a=o.DI.getOrCreateDOMContainer(n),c={parent:n,designSystem:i},{element:l,connect:u,disconnect:d}=yield s("string"==typeof t?t:t(),c);e.element=l,e.disconnect=d,e.designSystem=i,e.container=a,yield u()})))),a.after.each((e=>(0,i.__awaiter)(this,void 0,void 0,(function*(){yield e.disconnect(),e.element=void 0,e.disconnect=void 0,e.designSystem=void 0,e.container=void 0})))),a}function xe(e,t){return H(e,Object.assign({runCases:(e,t)=>{de(e,"function"),t.forEach((([t,n,r])=>ce(e(...t),n,r)))}},t))}me.ok=me,ce.not=function(e,t,n){ae(e!==t,e,t,"is.not",!1,"Expected values not to be strictly equal",n)},me.equal=function(e,t,n){ae(!re(e,t),e,t,"not.equal",!1,"Expected values not to be deeply equal",n)},me.type=function(e,t,n){let r=typeof e;ae(r!==t,r,t,"not.type",!1,`Expected "${r}" not to be "${t}"`,n)},me.instance=function(e,t,n){ae(!(e instanceof t),e,t,"not.instance",!1,`Expected value not to be an instance of ${"`"+(t.name||t.constructor.name)+"`"}`,n)},me.snapshot=function(e,t,n){ae((e=oe(e))!==(t=oe(t)),e,t,"not.snapshot",!1,"Expected value not to match snapshot",n)},me.fixture=function(e,t,n){ae((e=oe(e))!==(t=oe(t)),e,t,"not.fixture",!1,"Expected value not to match fixture",n)},me.match=function(e,t,n){"string"==typeof t?ae(!e.includes(t),e,t,"not.match",!1,`Expected value not to include "${t}" substring`,n):ae(!t.test(e),e,t,"not.match",!1,`Expected value not to match \`${String(t)}\` pattern`,n)},me.throws=function(e,t,n){n||"string"!=typeof t||(n=t,t=null);try{e()}catch(e){"function"==typeof t?ae(!t(e),!0,!1,"not.throws",!1,"Expected function not to throw matching exception",n):t instanceof RegExp?ae(!t.test(e.message),!0,!1,"not.throws",!1,`Expected function not to throw exception matching \`${String(t)}\` pattern`,n):t||ae(!1,!0,!1,"not.throws",!1,"Expected function not to throw",n)}};const Ee=(0,n(622).createLogger)("foundation-testing")}}]);
|
|
2
|
-
//# sourceMappingURL=772.1d442e2541aac79f2c1091cc41a66926.js.map
|
package/dist/dashboard.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"dependencies":[{"name":"@microsoft/fast-element","version":"1.11"},{"name":"@microsoft/fast-foundation","version":"2.47"},{"name":"tslib","version":"2.5"}],"devDependencies":[{"name":"@microsoft/api-documenter","version":"7.21"},{"name":"@microsoft/api-extractor","version":"7.34"},{"name":"@module-federation/dashboard-plugin","version":"2.3"},{"name":"@playwright/test","version":"1.31"},{"name":"@rollup/plugin-commonjs","version":"21.1"},{"name":"@rollup/plugin-node-resolve","version":"13.3"},{"name":"@rollup/plugin-typescript","version":"8.5"},{"name":"analytics","version":"0.8"},{"name":"c8","version":"7.13"},{"name":"camel-case","version":"4.1"},{"name":"clean-webpack-plugin","version":"4.0"},{"name":"cross-env","version":"7.0"},{"name":"csp-html-webpack-plugin","version":"5.1"},{"name":"css-loader","version":"6.7"},{"name":"cssnano","version":"5.1"},{"name":"esm","version":"3.2"},{"name":"file-loader","version":"6.2"},{"name":"html-webpack-plugin","version":"5.5"},{"name":"jsdom","version":"19.0"},{"name":"mini-css-extract-plugin","version":"2.7"},{"name":"playwright-test","version":"7.4"},{"name":"portfinder-sync","version":"0.0"},{"name":"postcss","version":"8.4"},{"name":"postcss-import","version":"14.1"},{"name":"postcss-loader","version":"6.2"},{"name":"postcss-preset-env","version":"7.8"},{"name":"rollup","version":"2.79"},{"name":"rollup-plugin-commonjs","version":"10.1"},{"name":"rollup-plugin-filesize","version":"9.1"},{"name":"rollup-plugin-node-resolve","version":"5.2"},{"name":"rollup-plugin-terser","version":"7.0"},{"name":"rollup-plugin-visualizer","version":"5.9"},{"name":"terser-webpack-plugin","version":"5.3"},{"name":"to-string-loader","version":"1.2"},{"name":"ts-loader","version":"9.3"},{"name":"tsconfig-paths-webpack-plugin","version":"3.5"},{"name":"tsm","version":"2.3"},{"name":"typescript","version":"4.9"},{"name":"uvu","version":"0.5"},{"name":"watchlist","version":"0.3"},{"name":"webpack","version":"5.45"},{"name":"webpack-bundle-analyzer","version":"4.8"},{"name":"webpack-cli","version":"4.10"},{"name":"webpack-dev-server","version":"4.11"},{"name":"webpack-merge","version":"5.8"}],"optionalDependencies":[],"id":"foundationTesting","name":"foundationTesting","remote":"","metadata":{},"overrides":[{"id":"@microsoft/fast-foundation","name":"@microsoft/fast-foundation","version":"2.47","location":"@microsoft/fast-foundation","applicationID":"foundationTesting"},{"id":"@microsoft/fast-element","name":"@microsoft/fast-element","version":"1.11","location":"@microsoft/fast-element","applicationID":"foundationTesting"},{"id":"tslib","name":"tslib","version":"2.5","location":"tslib","applicationID":"foundationTesting"},{"id":"@genesislcap/foundation-utils","name":"@genesislcap/foundation-utils","version":"","location":"@genesislcap/foundation-utils","applicationID":"foundationTesting"}],"consumes":[],"modules":[{"id":"foundationTesting:index","name":"index","applicationID":"foundationTesting","requires":[],"file":"./src/index.federated.ts"}],"version":"1.0.0"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../src/component/fixture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/component/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.federated.js","sourceRoot":"","sources":["../../src/index.federated.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,SAAS,CAAC,CAAC"}
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/jsdom/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/playwright/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/playwright/setup.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AACH,SAAe,KAAK,CAAC,MAAkB;;QACrC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,OAAO,SAAe,QAAQ;;gBAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBACvB,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,CAAC;SAAA,CAAC;IACJ,CAAC;CAAA;AAED,eAAe,KAAK,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/playwright/test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAUhD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAW;IACxC,QAAQ,EAAE,CAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;QAChC;;;;;;WAMG;QACH,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,CAAA;CACF,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/suite/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|