{"version":3,"file":"import-map-overrides.js","sources":["../src/api/js-api.js","../node_modules/style-inject/dist/style-inject.es.js","../node_modules/preact/dist/preact.module.js","../src/ui/list/module-dialog.component.js","../src/ui/list/list.component.js","../src/ui/popup.component.js","../src/ui/dev-lib-overrides.component.js","../src/ui/full-ui.component.js","../src/ui/custom-elements.js"],"sourcesContent":["const localStoragePrefix = \"import-map-override:\";\n\nconst portRegex = /^\\d+$/g;\n\nwindow.importMapOverrides = {\n addOverride(moduleName, url) {\n if (portRegex.test(url)) {\n url = window.importMapOverrides.getUrlFromPort(moduleName, url);\n }\n const key = localStoragePrefix + moduleName;\n localStorage.setItem(key, url);\n fireChangedEvent();\n return window.importMapOverrides.getOverrideMap();\n },\n getOverrideMap() {\n const overrides = { imports: {} };\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key.startsWith(localStoragePrefix)) {\n overrides.imports[\n key.slice(localStoragePrefix.length)\n ] = localStorage.getItem(key);\n }\n }\n\n return overrides;\n },\n removeOverride(moduleName) {\n const key = localStoragePrefix + moduleName;\n const hasItem = localStorage.getItem(key) !== null;\n localStorage.removeItem(key);\n fireChangedEvent();\n return hasItem;\n },\n resetOverrides() {\n Object.keys(window.importMapOverrides.getOverrideMap().imports).forEach(\n moduleName => {\n window.importMapOverrides.removeOverride(moduleName);\n }\n );\n fireChangedEvent();\n return window.importMapOverrides.getOverrideMap();\n },\n hasOverrides() {\n return (\n Object.keys(window.importMapOverrides.getOverrideMap().imports).length > 0\n );\n },\n getUrlFromPort(moduleName, port) {\n const fileName = moduleName.replace(/@/g, \"\").replace(/\\//g, \"-\");\n return `//localhost:${port}/${fileName}.js`;\n },\n enableUI() {\n const customElementName = \"import-map-overrides-full\";\n const showWhenLocalStorage = \"show-when-local-storage\";\n let customElement = document.querySelector(customElementName);\n\n if (!customElement) {\n customElement = document.createElement(customElementName);\n customElement.setAttribute(showWhenLocalStorage, \"devtools\");\n document.body.appendChild(customElement);\n }\n\n const localStorageKey = customElement.getAttribute(showWhenLocalStorage);\n if (localStorageKey) {\n localStorage.setItem(localStorageKey, true);\n customElement.renderWithPreact();\n }\n }\n};\n\nfunction fireChangedEvent() {\n // Set timeout so that event fires after the change has totally finished\n setTimeout(() => {\n if (window.CustomEvent) {\n window.dispatchEvent(new CustomEvent(\"import-map-overrides:change\"));\n }\n });\n}\n\nconst overrideMap = window.importMapOverrides.getOverrideMap();\nconst importMapMetaElement = document.querySelector(\n 'meta[name=\"importmap-type\"]'\n);\nexport const importMapType = importMapMetaElement\n ? importMapMetaElement.getAttribute(\"content\")\n : \"importmap\";\n\nif (Object.keys(overrideMap.imports).length > 0) {\n const overrideMapElement = document.createElement(\"script\");\n overrideMapElement.type = importMapType;\n overrideMapElement.id = \"import-map-overrides\"; // for debugging and for UI to identify this import map as special\n overrideMapElement.innerHTML = JSON.stringify(overrideMap);\n\n const importMaps = document.querySelectorAll(\n `script[type=\"${importMapType}\"]`\n );\n if (importMaps.length > 0) {\n importMaps[importMaps.length - 1].insertAdjacentElement(\n \"afterend\",\n overrideMapElement\n );\n } else {\n document.head.appendChild(overrideMapElement);\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function v(n,l,u){var i,t=arguments,o={};for(i in l)\"key\"!==i&&\"ref\"!==i&&(o[i]=l[i]);if(arguments.length>3)for(u=[u],i=3;i2&&(l.children=e.slice.call(arguments,2)),h(n.type,l,l.key||n.key,l.ref||n.ref)}function L(n){var l={},u={__c:\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var i,t=this;return this.getChildContext||(i=[],this.getChildContext=function(){return l[u.__c]=t,l},this.shouldComponentUpdate=function(l){n.value!==l.value&&i.some(function(n){n.context=l.value,g(n)})},this.sub=function(n){i.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){i.splice(i.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u}n={__e:function(n,l){for(var u,i;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(i=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(i=!0,u.componentDidCatch(n)),i)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},y.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),g(this))},y.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},y.prototype.render=d,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=f,r=0;export{E as render,H as hydrate,v as createElement,v as h,d as Fragment,p as createRef,l as isValidElement,y as Component,I as cloneElement,L as createContext,b as toChildArray,j as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import { h, Component } from \"preact\";\n\nexport default class ModuleDialog extends Component {\n getInitialOverrideUrl = () => {\n const regex = new RegExp(`//localhost:([0-9]+)/`);\n const match = regex.exec(this.props.module.overrideUrl);\n if (\n match &&\n this.props.module.overrideUrl ===\n window.importMapOverrides.getUrlFromPort(\n this.props.module.moduleName,\n match[1]\n )\n ) {\n return match[1];\n } else if (this.props.module.overrideUrl) {\n return this.props.module.overrideUrl;\n } else {\n return \"\";\n }\n };\n state = {\n overrideUrl: this.getInitialOverrideUrl(),\n moduleName: \"\"\n };\n inputEl = null;\n moduleNameEl = null;\n componentDidMount() {\n this.focusFirstInput();\n this.dialogEl.addEventListener(\"keydown\", this.keyDown);\n }\n componentDidUpdate(prevProps, prevState) {\n if (this.props.module !== prevProps.module) {\n this.setState(\n { overrideUrl: this.props.module.overrideUrl || \"\" },\n () => {\n this.focusFirstInput();\n }\n );\n }\n }\n componentWillUnmount() {\n this.dialogEl.removeEventListener(\"keydown\", this.keyDown);\n }\n render({ module }) {\n return (\n
\n
\n 0 ? \"imo-overridden\" : \"imo-default\"\n }`}\n open\n ref={this.dialogRef}\n >\n
\n

{module.moduleName}

\n \n \n {!module.isNew && (\n \n \n \n \n )}\n {module.isNew && (\n \n \n \n \n )}\n \n \n \n \n {portRegex.test(this.state.overrideUrl) && (\n \n \n \n \n )}\n \n
Default URL:{module.defaultUrl}
\n Module Name:\n \n \n this.setState({ moduleName: evt.target.value })\n }\n ref={this.handleModuleNameRef}\n required\n />\n \n
{\"\\u24E7\"}
\n \n
\n Override URL:\n \n \n this.setState({ overrideUrl: evt.target.value })\n }\n />\n \n
{\"\\u24E7\"}
\n \n
Derived url:{this.getDerivedUrl()}
\n
\n \n Cancel\n \n \n {this.state.overrideUrl ? \"Apply override\" : \"Reset to default\"}\n \n
\n
\n \n
\n );\n }\n\n handleInputRef = el => {\n this.inputEl = el;\n };\n\n handleModuleNameRef = el => {\n this.moduleNameEl = el;\n };\n\n dialogRef = el => {\n this.dialogEl = el;\n };\n\n handleSubmit = evt => {\n evt.preventDefault();\n if (this.props.module.isNew) {\n this.props.addNewModule(this.state.moduleName, this.state.overrideUrl);\n } else {\n this.props.updateModuleUrl(this.state.overrideUrl);\n }\n };\n\n getDerivedUrl = () => {\n const moduleName = this.props.module.isNew\n ? this.state.moduleName\n : this.props.module.moduleName;\n return portRegex.test(this.state.overrideUrl)\n ? window.importMapOverrides.getUrlFromPort(\n moduleName,\n this.state.overrideUrl\n )\n : this.state.overrideUrl;\n };\n\n keyDown = evt => {\n if (evt.key === \"Escape\") {\n evt.stopPropagation();\n this.props.cancel();\n }\n };\n\n focusFirstInput = () => {\n const firstInput = this.moduleNameEl || this.inputEl;\n firstInput.select();\n };\n\n clearModuleName = () => {\n this.setState({ moduleName: \"\" }, () => {\n this.focusFirstInput();\n });\n };\n\n clearInput = () => {\n this.setState({ overrideUrl: \"\" }, () => {\n this.focusFirstInput();\n });\n };\n}\n\nconst portRegex = /^\\d+$/;\n","import { h, Component, render } from \"preact\";\nimport { importMapType } from \"../../api/js-api\";\nimport ModuleDialog from \"./module-dialog.component\";\n\nexport default class List extends Component {\n state = {\n notOverriddenMap: { imports: {} },\n dialogModule: null,\n searchVal: \"\"\n };\n componentDidMount() {\n getDefaultMap().then(notOverriddenMap => {\n this.setState({ notOverriddenMap });\n });\n window.addEventListener(\"import-map-overrides:change\", this.doUpdate);\n }\n componentWillUnmount() {\n window.removeEventListener(\"import-map-overrides:change\", this.doUpdate);\n }\n componentDidUpdate(prevProps, prevState) {\n if (!prevState.dialogModule && this.state.dialogModule) {\n this.dialogContainer = document.createElement(\"div\");\n document.body.appendChild(this.dialogContainer);\n render(\n ,\n this.dialogContainer\n );\n } else if (prevState.dialogModule && !this.state.dialogModule) {\n render(null, this.dialogContainer);\n this.dialogContainer.remove();\n delete this.dialogContainer;\n }\n }\n render() {\n const overriddenModules = [],\n defaultModules = [];\n\n const overrideMap = window.importMapOverrides.getOverrideMap().imports;\n\n Object.keys(this.state.notOverriddenMap.imports)\n .filter(this.filterModuleNames)\n .forEach(moduleName => {\n const mod = {\n moduleName,\n defaultUrl: this.state.notOverriddenMap.imports[moduleName],\n overrideUrl: overrideMap[moduleName]\n };\n if (overrideMap[moduleName]) {\n overriddenModules.push(mod);\n } else {\n defaultModules.push(mod);\n }\n });\n\n Object.keys(overrideMap)\n .filter(this.filterModuleNames)\n .forEach(overrideKey => {\n if (!overriddenModules.some(m => m.moduleName === overrideKey)) {\n overriddenModules.push({\n moduleName: overrideKey,\n defaultUrl: null,\n overrideUrl: overrideMap[overrideKey]\n });\n }\n });\n\n overriddenModules.sort(sorter);\n defaultModules.sort(sorter);\n\n return (\n
\n
\n this.setState({ searchVal: evt.target.value })}\n autoFocus\n />\n
\n
\n

Overridden Modules

\n
\n {overriddenModules.length === 0 && (\n
(No overridden modules)
\n )}\n {overriddenModules.map(mod => (\n
\n this.setState({ dialogModule: mod })}\n >\n {mod.moduleName}\n \n
\n ))}\n
\n
\n
\n \n this.setState({\n dialogModule: { moduleName: \"New module\", isNew: true }\n })\n }\n >\n Add new module\n \n
\n
\n

Default Modules

\n
\n {defaultModules.length === 0 &&
(No default modules)
}\n {defaultModules.map(mod => (\n
\n this.setState({ dialogModule: mod })}\n >\n {mod.moduleName}\n \n
\n ))}\n
\n
\n
\n );\n }\n\n cancel = () => {\n this.setState({ dialogModule: null });\n };\n\n updateModuleUrl = newUrl => {\n newUrl = newUrl || null;\n\n if (newUrl === null) {\n window.importMapOverrides.removeOverride(\n this.state.dialogModule.moduleName\n );\n } else {\n window.importMapOverrides.addOverride(\n this.state.dialogModule.moduleName,\n newUrl\n );\n }\n\n this.setState({ dialogModule: null });\n };\n\n doUpdate = () => this.forceUpdate();\n\n addNewModule = (name, url) => {\n if (name && url) {\n window.importMapOverrides.addOverride(name, url);\n }\n this.setState({ dialogModule: null });\n };\n\n filterModuleNames = moduleName => {\n return this.state.searchVal.trim().length > 0\n ? moduleName.includes(this.state.searchVal)\n : true;\n };\n}\n\nexport function getDefaultMap() {\n return Array.prototype.reduce.call(\n document.querySelectorAll(`script[type=\"${importMapType}\"]`),\n (promise, scriptEl) => {\n if (scriptEl.id === \"import-map-overrides\") {\n return promise;\n } else {\n let nextPromise;\n if (scriptEl.src) {\n nextPromise = fetch(scriptEl.src).then(resp => resp.json());\n } else {\n nextPromise = Promise.resolve(JSON.parse(scriptEl.textContent));\n }\n\n return Promise.all([promise, nextPromise]).then(\n ([originalMap, newMap]) => mergeImportMap(originalMap, newMap)\n );\n }\n },\n Promise.resolve({ imports: {} })\n );\n}\n\nfunction mergeImportMap(originalMap, newMap) {\n for (let i in newMap.imports) {\n originalMap.imports[i] = newMap.imports[i];\n }\n for (let i in newMap.scopes) {\n originalMap.scopes[i] = newMap.scopes[i];\n }\n return originalMap;\n}\n\nfunction sorter(first, second) {\n return first.moduleName > second.moduleName;\n}\n","import { h, Component } from \"preact\";\nimport List from \"./list/list.component\";\n\nexport default class Popup extends Component {\n componentDidMount() {\n window.addEventListener(\"keydown\", this.keydownListener);\n window.addEventListener(\"import-map-overrides:change\", this.doUpdate);\n }\n componentWillUnmount() {\n window.removeEventListener(\"keydown\", this.keydownListener);\n window.removeEventListener(\"import-map-overrides:change\", this.doUpdate);\n }\n doUpdate = () => this.forceUpdate();\n render(props) {\n return (\n
\n
\n
\n

Import Map Overrides

\n

\n This developer tool allows you to view and override your import\n maps.{\" \"}\n \n See documentation for more info\n \n .\n

\n
\n \n
\n \n
\n );\n }\n keydownListener = evt => {\n if (evt.key === \"Escape\" && this.props.close) {\n this.props.close();\n }\n };\n}\n","import { h, Component } from \"preact\";\nimport { getDefaultMap } from \"./list/list.component\";\n\nexport default class DevLibOverrides extends Component {\n componentDidMount() {\n getDefaultMap().then(addDevLibOverrides);\n }\n render() {\n return null;\n }\n}\n\nconst devLibs = {\n react: url => url.replace(\"production.min\", \"development\"),\n \"react-dom\": url => url.replace(\"production.min\", \"development\")\n};\n\nfunction addDevLibOverrides(notOverriddenMap) {\n Object.keys(notOverriddenMap.imports)\n .filter(libName => devLibs[libName])\n .forEach(libName => {\n window.importMapOverrides.addOverride(\n libName,\n devLibs[libName](notOverriddenMap.imports[libName])\n );\n });\n}\n\nexport function overridesBesidesDevLibs() {\n return (\n Object.keys(window.importMapOverrides.getOverrideMap().imports).filter(\n k => !devLibs[k]\n ).length > 0\n );\n}\n","import { h, Component } from \"preact\";\nimport Popup from \"./popup.component\";\nimport DevLibOverrides, {\n overridesBesidesDevLibs\n} from \"./dev-lib-overrides.component\";\n\nexport default class FullUI extends Component {\n state = {\n showingPopup: false\n };\n componentDidMount() {\n window.addEventListener(\"import-map-overrides:change\", this.doUpdate);\n }\n componentWillUnmount() {\n window.removeEventListener(\"import-map-overrides:change\", this.doUpdate);\n }\n doUpdate = () => this.forceUpdate();\n render(props, state) {\n const shouldShow =\n !props.customElement.hasAttribute(\"show-when-local-storage\") ||\n localStorage.getItem(\n props.customElement.getAttribute(\"show-when-local-storage\")\n ) === \"true\";\n\n if (!shouldShow) {\n return null;\n }\n\n return (\n
\n \n {\"{\\u00B7\\u00B7\\u00B7}\"}\n \n {this.useDevLibs() && }\n {state.showingPopup && (\n \n )}\n
\n );\n }\n toggleTrigger = () => {\n this.setState(prevState => ({\n showingPopup: !prevState.showingPopup\n }));\n };\n importMapChanged = () => {\n this.forceUpdate();\n };\n useDevLibs = () => {\n const localStorageValue = localStorage.getItem(\n \"import-map-overrides-dev-libs\"\n );\n return localStorageValue\n ? localStorageValue === \"true\"\n : this.props.customElement.hasAttribute(\"dev-libs\");\n };\n atLeastOneOverride = () => {\n if (this.useDevLibs()) {\n return overridesBesidesDevLibs();\n } else {\n return (\n Object.keys(window.importMapOverrides.getOverrideMap().imports).length >\n 0\n );\n }\n };\n}\n","import \"./import-map-overrides.css\";\nimport { render, h } from \"preact\";\nimport FullUI from \"./full-ui.component\";\nimport Popup from \"./popup.component\";\nimport List from \"./list/list.component\";\n\nif (window.customElements) {\n window.customElements.define(\n \"import-map-overrides-full\",\n preactCustomElement(FullUI, [\"show-when-local-storage\"])\n );\n window.customElements.define(\n \"import-map-overrides-popup\",\n preactCustomElement(Popup)\n );\n window.customElements.define(\n \"import-map-overrides-list\",\n preactCustomElement(List)\n );\n}\n\nfunction preactCustomElement(Comp, observedAttributes = []) {\n return class PreactCustomElement extends HTMLElement {\n connectedCallback() {\n this.renderWithPreact();\n }\n disconnectedCallback() {\n render(null, this);\n this.renderedEl = null;\n }\n static get observedAttributes() {\n return observedAttributes;\n }\n attributeChangedCallback() {\n this.renderWithPreact();\n }\n renderWithPreact() {\n this.renderedEl = render(\n h(Comp, { customElement: this }),\n this,\n this.renderedEl\n );\n }\n };\n}\n"],"names":["portRegex","fireChangedEvent","setTimeout","window","CustomEvent","dispatchEvent","importMapOverrides","addOverride","moduleName","url","test","getUrlFromPort","key","localStorage","setItem","getOverrideMap","overrides","imports","i","length","startsWith","slice","getItem","removeOverride","hasItem","removeItem","resetOverrides","Object","keys","forEach","hasOverrides","port","fileName","replace","enableUI","customElement","document","querySelector","createElement","setAttribute","body","appendChild","localStorageKey","getAttribute","renderWithPreact","overrideMap","importMapMetaElement","importMapType","overrideMapElement","type","id","innerHTML","JSON","stringify","importMaps","querySelectorAll","insertAdjacentElement","head","css","ref","insertAt","getElementsByTagName","style","firstChild","insertBefore","styleSheet","cssText","createTextNode","n","u","t","o","f","e","c","s","l","a","parentNode","removeChild","v","arguments","push","children","defaultProps","h","props","__k","__","__b","__e","__d","__c","constructor","vnode","d","y","this","context","m","indexOf","w","base","g","debounceRendering","k","r","sort","__v","pop","__P","z","__n","ownerSVGElement","A","_","p","b","nextSibling","value","j","$","Array","isArray","P","setProperty","C","toLowerCase","addEventListener","N","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","event","x","contextType","__E","prototype","render","D","sub","state","__h","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","__r","getChildContext","getSnapshotBeforeUpdate","T","diffed","some","call","nodeType","localName","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","name","__html","checked","current","unmount","componentWillUnmount","E","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","ModuleDialog","match","RegExp","exec","_this","module","overrideUrl","getInitialOverrideUrl","el","inputEl","moduleNameEl","dialogEl","evt","preventDefault","isNew","addNewModule","updateModuleUrl","stopPropagation","cancel","select","focusFirstInput","keyDown","prevProps","prevState","_this2","className","open","dialogRef","method","onSubmit","handleSubmit","marginTop","defaultUrl","position","tabIndex","onInput","_this3","target","handleModuleNameRef","required","role","onClick","clearModuleName","handleInputRef","clearInput","getDerivedUrl","marginRight","Component","List","notOverriddenMap","dialogModule","searchVal","newUrl","trim","includes","getDefaultMap","doUpdate","dialogContainer","remove","overriddenModules","defaultModules","filter","filterModuleNames","mod","overrideKey","sorter","placeholder","autoFocus","map","reduce","promise","scriptEl","nextPromise","src","fetch","resp","json","parse","textContent","all","originalMap","newMap","scopes","mergeImportMap","first","second","Popup","close","keydownListener","href","importMapChanged","DevLibOverrides","addDevLibOverrides","devLibs","react","libName","overridesBesidesDevLibs","FullUI","showingPopup","localStorageValue","hasAttribute","useDevLibs","toggleTrigger","atLeastOneOverride","preactCustomElement","Comp","observedAttributes","renderedEl","HTMLElement","customElements","define"],"mappings":"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"}