@arcgis/lumina-compiler 4.31.0-next.100
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/LICENSE.md +13 -0
- package/README.md +21 -0
- package/dist/chunk-BQ4U6HQL.js +1 -0
- package/dist/chunk-JFKSI6I7.js +1 -0
- package/dist/context/index.d.ts +241 -0
- package/dist/context/types.d.ts +34 -0
- package/dist/context/utils.d.ts +23 -0
- package/dist/context/utils.spec.d.ts +1 -0
- package/dist/defaultAssetsUrl.d.ts +21 -0
- package/dist/defaultAssetsUrl.spec.d.ts +1 -0
- package/dist/dependencies/arcgisCore.d.ts +30 -0
- package/dist/dependencies/discover.d.ts +62 -0
- package/dist/dependencies/index.d.ts +11 -0
- package/dist/dependencies/lit.d.ts +2 -0
- package/dist/dependencies/loaders.d.ts +8 -0
- package/dist/dependencies/stencil.d.ts +6 -0
- package/dist/dependencies/testSetupFiles.d.ts +21 -0
- package/dist/dependencies/updateLumina.d.ts +8 -0
- package/dist/dependencies/updateLumina.spec.d.ts +1 -0
- package/dist/dependencies/utils.d.ts +23 -0
- package/dist/entrypoints/addNonLazyImports.d.ts +13 -0
- package/dist/entrypoints/config.d.ts +23 -0
- package/dist/entrypoints/dtsUtils.d.ts +22 -0
- package/dist/entrypoints/dtsUtils.spec.d.ts +1 -0
- package/dist/entrypoints/findUtils.d.ts +21 -0
- package/dist/entrypoints/findUtils.spec.d.ts +1 -0
- package/dist/entrypoints/handleComponentImports.d.ts +13 -0
- package/dist/entrypoints/pathMapping.d.ts +25 -0
- package/dist/entrypoints/resolveTagName.d.ts +14 -0
- package/dist/entrypoints/resolveTagName.spec.d.ts +1 -0
- package/dist/frameworkTypes/index.d.ts +15 -0
- package/dist/frameworkTypes/lumina.d.ts +5 -0
- package/dist/frameworkTypes/preact.d.ts +6 -0
- package/dist/frameworkTypes/react.d.ts +6 -0
- package/dist/frameworkTypes/stencil.d.ts +5 -0
- package/dist/frameworkTypes/utils.d.ts +8 -0
- package/dist/frameworkTypes/vanilla.d.ts +3 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +248 -0
- package/dist/jsxToLitHtml/autoAddNothing.d.ts +8 -0
- package/dist/jsxToLitHtml/comments.d.ts +19 -0
- package/dist/jsxToLitHtml/config.d.ts +148 -0
- package/dist/jsxToLitHtml/convertProps.d.ts +10 -0
- package/dist/jsxToLitHtml/escapeForTemplateLiteral.d.ts +45 -0
- package/dist/jsxToLitHtml/imports.d.ts +32 -0
- package/dist/jsxToLitHtml/index.d.ts +17 -0
- package/dist/jsxToLitHtml/inferPropType.d.ts +40 -0
- package/dist/jsxToLitHtml/insertRepeatCall.d.ts +49 -0
- package/dist/jsxToLitHtml/jsxVisitor.d.ts +11 -0
- package/dist/jsxToLitHtml/templateParts.d.ts +17 -0
- package/dist/jsxToLitHtml/throwOnImportingExternalized.d.ts +10 -0
- package/dist/jsxToLitHtml/types.d.ts +80 -0
- package/dist/jsxToLitHtml/utils.d.ts +14 -0
- package/dist/jsxToLitHtml/utils.spec.d.ts +1 -0
- package/dist/manifests/complexTypes/addComponentMetadata.d.ts +5 -0
- package/dist/manifests/complexTypes/addMethodMetadata.d.ts +6 -0
- package/dist/manifests/complexTypes/addPropMetadata.d.ts +8 -0
- package/dist/manifests/complexTypes/docsUtils.d.ts +18 -0
- package/dist/manifests/complexTypes/event.d.ts +9 -0
- package/dist/manifests/complexTypes/getComplexPropertyType.d.ts +11 -0
- package/dist/manifests/complexTypes/transformUtils.d.ts +130 -0
- package/dist/manifests/complexTypes/transformUtils.spec.d.ts +1 -0
- package/dist/manifests/complexTypes/typeToEnum.d.ts +14 -0
- package/dist/manifests/complexTypes/typeToEnum.spec.d.ts +1 -0
- package/dist/manifests/complexTypes/types.d.ts +135 -0
- package/dist/manifests/config.d.ts +2 -0
- package/dist/manifests/createManifest.d.ts +39 -0
- package/dist/manifests/customElementDecoratorPlugins.d.ts +58 -0
- package/dist/manifests/customElementDecoratorPlugins.spec.d.ts +1 -0
- package/dist/manifests/hideUntilHydrated.d.ts +15 -0
- package/dist/manifests/index.d.ts +12 -0
- package/dist/manifests/kebabCaseAttributes.d.ts +18 -0
- package/dist/manifests/lazy.d.ts +22 -0
- package/dist/manifests/lazy.spec.d.ts +1 -0
- package/dist/manifests/stencilManifest.d.ts +17 -0
- package/dist/manifests/storybookManifest.d.ts +6 -0
- package/dist/manifests/types.d.ts +1 -0
- package/dist/manifests/utils.d.ts +17 -0
- package/dist/plugins/buildCdn.d.ts +14 -0
- package/dist/plugins/buildStencilHydrate.d.ts +16 -0
- package/dist/plugins/buildWrappers.d.ts +3 -0
- package/dist/plugins/configureVite.d.ts +19 -0
- package/dist/plugins/externalizeDependencies.d.ts +34 -0
- package/dist/plugins/externalizeDependencies.spec.d.ts +1 -0
- package/dist/plugins/generateDocs.d.ts +10 -0
- package/dist/plugins/handleDynamicAssets.d.ts +3 -0
- package/dist/plugins/handleStaticAssets.d.ts +9 -0
- package/dist/plugins/loadLitCss.d.ts +89 -0
- package/dist/plugins/printTotalBuildSize.d.ts +7 -0
- package/dist/plugins/provideAssets.d.ts +53 -0
- package/dist/plugins/provideAssets.spec.d.ts +1 -0
- package/dist/plugins/setAssetsPath.d.ts +10 -0
- package/dist/plugins/updatePackageJson.d.ts +9 -0
- package/dist/plugins/updatePackageJson.spec.d.ts +1 -0
- package/dist/publicTypes.d.ts +626 -0
- package/dist/puppeteer-testing/globalSetup.d.ts +72 -0
- package/dist/puppeteer-testing/globalSetup.js +11 -0
- package/dist/puppeteer-testing/index.d.ts +9 -0
- package/dist/puppeteer-testing/index.js +6 -0
- package/dist/puppeteer-testing/injected.d.ts +8 -0
- package/dist/puppeteer-testing/puppeteer/browser.d.ts +6 -0
- package/dist/puppeteer-testing/puppeteer/element.d.ts +219 -0
- package/dist/puppeteer-testing/puppeteer/events.d.ts +21 -0
- package/dist/puppeteer-testing/puppeteer/page.d.ts +5 -0
- package/dist/puppeteer-testing/puppeteer/types.d.ts +124 -0
- package/dist/puppeteer-testing/vitest/matchers/attributes.d.ts +4 -0
- package/dist/puppeteer-testing/vitest/matchers/classList.d.ts +4 -0
- package/dist/puppeteer-testing/vitest/matchers/events.d.ts +7 -0
- package/dist/puppeteer-testing/vitest/matchers/index.d.ts +38 -0
- package/dist/puppeteer-testing/vitest/matchers/text.d.ts +2 -0
- package/dist/puppeteer-testing/vitest/matchers/utils.d.ts +1 -0
- package/dist/puppeteer-testing/vitest/runner.d.ts +15 -0
- package/dist/puppeteer-testing/vitest/setupFile.d.ts +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.js +1 -0
- package/dist/testing/mount.d.ts +106 -0
- package/dist/testing/setupFile.d.ts +1 -0
- package/dist/testing/snapshotSerializer.d.ts +12 -0
- package/dist/testing/wrapController.d.ts +33 -0
- package/dist/tests/utils.d.ts +4 -0
- package/dist/transformers/guardAgainstInternalJsDoc.d.ts +11 -0
- package/dist/transformers/index.d.ts +22 -0
- package/dist/transformers/injectRuntimeOptions.d.ts +3 -0
- package/dist/transformers/internalTypeScriptApis.d.ts +29 -0
- package/dist/transformers/liftDecorators.d.ts +21 -0
- package/dist/transformers/members.d.ts +12 -0
- package/dist/transformers/property.d.ts +9 -0
- package/dist/transformers/propertyOptions.d.ts +111 -0
- package/dist/transformers/updateOriginalFile.d.ts +20 -0
- package/dist/transformers/utils.d.ts +14 -0
- package/dist/types/astTransformers.d.ts +3 -0
- package/dist/types/hideInternalLitElement.d.ts +9 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/liftSetterTypes.d.ts +33 -0
- package/dist/types/textTransformers.d.ts +4 -0
- package/dist/types/transformComponentMembers.d.ts +10 -0
- package/dist/useLumina.d.ts +13 -0
- package/dist/utils/error.d.ts +4 -0
- package/dist/utils/packageJson.d.ts +24 -0
- package/dist/utils/path.d.ts +25 -0
- package/dist/utils/path.spec.d.ts +1 -0
- package/package.json +80 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import{a as Ot,b as Pe,c as E,d as Q,e as d}from"./chunk-BQ4U6HQL.js";import{a as $}from"./chunk-JFKSI6I7.js";import{nodeExternals as ps}from"rollup-plugin-node-externals";function Wn(e){let{externalize:t=[],bundleIn:n=[],...r}=e.options?.build?.dependencies??{},i={...ps({...r,include:[/^lit[-/]/u,/^@lit[-/]/u,/^lit$/u,...Array.isArray(t)?t.map(Hn):[]],exclude:Array.isArray(n)?n.map(Hn):[]}),configResolved(){e.isInStorybook&&(i.resolveId=void 0)}};return i}var Hn=e=>e?typeof e=="string"?new RegExp(`^${e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u"):e:void 0;import zs from"vite-plugin-dts";var Me="customElement.js",Kn="customElement.d.ts",We=new WeakMap,Un="playwright";function zn(e,t){let r=e.sourcePath.split(d.sep).slice(2),o=t.componentPathMapping;return r.forEach((i,s)=>{s===r.length-1?o[""]??=e.tagName:(o[i]??={},o=o[i])}),o[""]}function se(e,t,n){if(!e.startsWith(t))return e;let r=e.slice(t.length),o=ls(r,n);return`${t}${o}`}function ls(e,t){let n=e.split(d.sep);n.push(".");let r=t.componentPathMapping,o=0;for(let i of n)if(r[i]===void 0){let s=r[""];return typeof s=="string"?[s,...n.slice(o,-1)].join(d.sep):e}else r=r[i],o+=1;return e}var Vn=({filePath:e,content:t},n)=>{let r=e.startsWith(n.dir.distComponents)?se(qn(e),n.dir.distComponents,n):e,o=d.dirname(e);return{filePath:r,content:Jt(t,n,e===r?o:d.dirname(r),o)}};function qn(e,t=".d.ts"){let r=(t===""?e:e.slice(0,-t.length)).split(d.sep);return r.at(ds)!==r.at(cs)?e:d.join(r.slice(0,-1).join(d.sep),t===""?Me:Kn)}var ds=-1,cs=-2,ms=/["']\.\.?\/[^'"]+/gu,Jt=(e,t,n,r)=>e.replaceAll(ms,o=>{let i=o.slice(1);if(!i.startsWith("./")&&!i.startsWith("../"))return o;let s=d.join(r,i),a=!i.endsWith(".js")&&!i.split("/").at(-1).includes(".")?qn(s,""):s,l=se(a,t.dir.distComponents,t);if(n===r&&s===l)return o;let p=Y(n,l);return`${o[0]}${p}`}),Y=(e,t)=>{let n=d.relative(e,t);return n.startsWith(".")?n:`.${d.sep}${n}`};import{mappedFind as fs}from"@arcgis/components-utils";import Z from"typescript";function Ce(e,t){let n=us(t.getJsDocTags()),r=Z.displayPartsToString(t.getDocumentationComment(e))||void 0,o=n.at(-1);if(o?.text){let i=o?.text?.indexOf(`
|
|
2
|
+
|
|
3
|
+
`);i!==-1&&(r=`${r}${o.text.slice(i)}`,o.text=o.text.slice(0,i))}return{docsTags:n,description:r}}var Ke="notPublic",ee="internal",us=e=>e.map(t=>({name:t.name.toLowerCase()===Ke.toLowerCase()?ee:t.name,text:t.text?.map(n=>n.text).join("")})),nt=({modifiers:e=[]},t)=>fs(e,n=>Z.isDecorator(n)&&Z.isCallExpression(n.expression)&&Z.isIdentifier(n.expression.expression)&&n.expression.expression.text===t?n.expression:void 0),Bt=e=>e!==void 0&&(Z.isLiteralExpression(e)||e.kind===Z.SyntaxKind.TrueKeyword||e.kind===Z.SyntaxKind.FalseKeyword||Z.isPrefixUnaryExpression(e)&&Z.isLiteralExpression(e.operand));function Gn(e){let t=e.split("|").filter(n=>{let r=n.trim();return r!=="undefined"&&r!=="null"}).join("|").trim();return t.length===0?e:t}var Qn=e=>(t,n)=>[ys,hs,xs,gs,Vn,Cs,Ts,bs,...e.options.types?.declarationTextTransformers??[],...e.declarationTextTransformers].reduce((r,o)=>r===!1?!1:o(r,e),{filePath:t,content:n}),ys=(e,t)=>t.isInStorybook?!1:e,gs=(e,t)=>e.filePath.endsWith(_n)&&e.filePath===d.join(t.dir.dist,_n)?!1:e,_n="lumina.d.ts",hs=(e,t)=>{let n=t.dir.dist,r=`${n}src/`;return e.filePath.startsWith(r)?{...e,filePath:`${n}${e.filePath.slice(r.length)}`}:!1},Ht=e=>e.includes("__test")||e.includes(".e2e.")||e.includes(".spec.")||e.includes(".test."),xs=e=>Ht(e.filePath)?!1:e,Cs=e=>({filePath:e.filePath,content:e.content.replaceAll(`* @${Ke}`,`* @${ee}`)}),Ts=e=>e.content.includes("__esri.")?{filePath:e.filePath,content:`/// <reference types="@arcgis/core/interfaces.d.ts" />
|
|
4
|
+
${e.content}`}:e,Xn=new WeakMap,bs=(e,t)=>{let n=Xn.get(t);return n||(n={regex:new RegExp(`(${t.manifestComponents.map(r=>r.name).join("|")})\\[['"\`]el['"\`]\\]`,"ug"),replacements:Object.fromEntries(t.manifestComponents.map(r=>[r.name,r.typeName]))},Xn.set(t,n)),{filePath:e.filePath,content:e.content.replace(n.regex,(r,o)=>n.replacements[o])}};import vs from"typescript";import Yn from"typescript";var U=(e,t=!1)=>e.declarations?.filter(n=>n.kind==="class"&&(!t||"tagName"in n&&"customElement"in n))??[];function Zn(e,t){return e===void 0?void 0:U(t).find(({name:r})=>r===e)}function ke(e,t){let n=rt(t);return e.members?.find(r=>r.name===n)}function rt(e){if(!(!Yn.isIdentifier(e.name)&&!Yn.isStringLiteralLike(e.name)))return e.name.text}function er(e,t,n){let r=d.relative(t,e);return n.modules.find(o=>o.path===r)}function ot(e,t,n,r){let o={compiler:e,fileManifest:e.isInPuppeteerTestBackEnd?void 0:er(n.fileName,e.dir.root,e.manifest),transformation:t},i=n.statements,s=n.statements;return Object.defineProperty(n,"statements",{get:()=>s,configurable:!0}),r.forEach(a=>{s=a(n,o)}),Object.defineProperty(n,"statements",{value:i}),Es(n,s)}var Es=(e,t)=>vs.factory.updateSourceFile(e,t,e.isDeclarationFile,e.referencedFiles,e.typeReferenceDirectives,e.hasNoDefaultLib,e.libReferenceDirectives),rr=e=>`${tr}${" ".repeat(e.length-tr.length-nr.length)}${nr}`,tr="/*",nr="*/";import ae from"typescript";var or=e=>e.statements.map(Ms),Ss="@arcgis/lumina",ws="LitElement",Ps="PublicLitElement";function Ms(e){if(ae.isImportDeclaration(e)&&ae.isStringLiteral(e.moduleSpecifier)&&e.moduleSpecifier.text===Ss&&e.importClause?.namedBindings&&ae.isNamedImports(e.importClause.namedBindings)){let t=e.importClause.namedBindings.elements.findIndex(r=>(r.propertyName??r.name).text===ws);if(t===-1)return e;let n=e.importClause.namedBindings.elements[t];return ae.factory.updateImportDeclaration(e,e.modifiers,ae.factory.updateImportClause(e.importClause,e.importClause.isTypeOnly,e.importClause.name,ae.factory.updateNamedImports(e.importClause.namedBindings,[...e.importClause.namedBindings.elements.slice(0,t),ae.factory.updateImportSpecifier(n,n.isTypeOnly,ae.factory.createIdentifier(Ps),n.name),...e.importClause.namedBindings.elements.slice(t+1)])),e.moduleSpecifier,e.attributes)}else return e}import N from"typescript";import{isNotUndefined as js}from"@arcgis/components-utils";import J from"typescript";import ks from"typescript";var ir=5,sr=1,ar=1,pr=3,lr=4,it=ks;Fs(it.createSourceMapGenerator);Ds(it.createTextWriter);As(it.getNewLineCharacter);var Te=it;function Fs(e){if(typeof e!="function")throw new Error("Failed to find ts.createSourceMapGenerator() function. Lumina needs to be updated to support the new TypeScript version");if(e.length!==ir)throw new Error(`ts.createSourceMapGenerator() signature changed. Expected ${ir} arguments. Lumina needs to be updated to support the new TypeScript version`)}function Ds(e){if(typeof e!="function")throw new Error("Failed to find ts.createTextWriter() function. Lumina needs to be updated to support the new TypeScript version");if(e.length!==sr)throw new Error(`ts.createTextWriter() signature changed. Expected ${sr} arguments. Lumina needs to be updated to support the new TypeScript version`)}function As(e){if(typeof e!="function")throw new Error("Failed to find ts.getNewLineCharacter() function. Lumina needs to be updated to support the new TypeScript version");if(e.length!==ar)throw new Error(`ts.getNewLineCharacter() signature changed. Expected ${ar} argument. Lumina needs to be updated to support the new TypeScript version`)}function $s(e){if(typeof e!="function")throw new Error("Failed to find ts.Printer.writeFile() function. Lumina needs to be updated to support the new TypeScript version");if(e.length!==pr)throw new Error(`ts.Printer.writeFile() signature changed. Expected ${pr} arguments. Lumina needs to be updated to support the new TypeScript version`)}function Ns(e){if(typeof e!="function")throw new Error("Failed to find ts.Printer.writeNode() function. Lumina needs to be updated to support the new TypeScript version");if(e.length!==lr)throw new Error(`ts.Printer.writeNode() signature changed. Expected ${lr} arguments. Lumina needs to be updated to support the new TypeScript version`)}function Fe(e){let t=dr.get(e);return t===void 0&&(t=Ls(e),dr.set(e,t)),t}function Ls(e){let t=Te.createPrinter(e);return $s(t.writeFile),Ns(t.writeNode),t}var dr=new WeakMap;var Wt="_setterTypes";function cr(e,t,n){let r=Fe(n.typeScriptConfig.options);return J.factory.createPropertyDeclaration([J.factory.createModifier(J.SyntaxKind.ReadonlyKeyword)],J.factory.createIdentifier(Wt),void 0,J.factory.createTypeLiteralNode(e.map(o=>{let[i,s]=Is(o.name,o.type,r,t);return J.factory.createPropertySignature(void 0,i,o.isRequired?J.factory.createToken(J.SyntaxKind.QuestionToken):void 0,s)})),void 0)}function Is(e,t,n,r){let o=n.printNode(J.EmitHint.Unspecified,e,r),i=n.printNode(J.EmitHint.Unspecified,t,r),s=`declare class A { ${o}: ${i} }`,p=J.createSourceFile("a.d.ts",s,J.ScriptTarget.Latest,!1,J.ScriptKind.TS).statements[0].members[0];return[p.name,p.type]}var fr=(e,t)=>t.fileManifest===void 0?e.statements:e.statements.map(n=>Rs(n,e,t));function Rs(e,t,n){if(N.isClassDeclaration(e)){let r=e,o=r.name?.text,i=n.fileManifest.declarations?.find(l=>l.name===o&&l.tagName);if(i===void 0)return e;let s=[],a=r.members.map(l=>Os(l,i,s)).filter(js);return s.length>0&&a.push(cr(s,t,n.compiler)),N.factory.updateClassDeclaration(r,r.modifiers,r.name,r.typeParameters,r.heritageClauses,a)}else return e}function Os(e,t,n){if(N.isPropertyDeclaration(e)){if(Kt(e))return;let r=Ut(e),o=zt(t,r);return o===void 0?Js(t,r)===void 0?void 0:N.factory.updatePropertyDeclaration(e,mr(e.modifiers),e.name,void 0,Bs(e.type),e.initializer):o.readonly?N.factory.updatePropertyDeclaration(e,mr(e.modifiers),e.name,void 0,e.type,e.initializer):e}else if(N.isGetAccessor(e)||N.isSetAccessor(e)){if(Kt(e))return;let r=zt(t,Ut(e));if(r===void 0)return;if(N.isSetAccessor(e)){if(r.readonly)return;let o=r.getterType!==void 0,s=e.parameters[0].type;o&&s&&n.push({name:e.name,type:s,isRequired:r.docsTags?.some(a=>a.name==="required")??!1})}return e}else if(N.isMethodDeclaration(e))return Kt(e)||zt(t,Ut(e))===void 0?void 0:e}var Kt=e=>e.modifiers?.some(t=>t.kind===N.SyntaxKind.StaticKeyword)??!1,Ut=e=>N.isIdentifier(e.name)||N.isStringLiteralLike(e.name)?e.name.text:void 0,zt=(e,t)=>t===void 0?void 0:e.members?.find(n=>n.name===t),Js=(e,t)=>t===void 0?void 0:e.events?.find(n=>n.name===t);function mr(e){return e?.some(n=>n.kind===N.SyntaxKind.ReadonlyKeyword)?e:[N.factory.createModifier(N.SyntaxKind.ReadonlyKeyword),...e??[]]}function Bs(e){if(e!==void 0)return N.isImportTypeNode(e)&&e.qualifier&&N.isIdentifier(e.qualifier)&&e.qualifier.escapedText==="EventEmitter"?N.factory.createTypeReferenceNode("CustomEvent",e.typeArguments):e}var Hs=[or,fr];function ur(e){let t,n=Ws(e);return{name:"@arcgis/lumina:componentDtsTransformer",supports(r){return t??=new Set(e.componentFiles),r.endsWith(".tsx")&&t.has(r)},transform({id:r}){if(e.isInStorybook)return[];let o=e.typeScriptProgram.getSourceFile(r);if(!o)throw new Error(`Could not find source file: ${E(r)}`);let i=[];return e.typeScriptProgram.emit(o,(l,p)=>{i.push({path:l,content:p})},void 0,!0,{afterDeclarations:[n]}),i}}}var Ws=e=>t=>n=>ot(e,t,n,[...Hs,...e.options.types?.declarationAstTransformers??[]]);var yr=e=>new Proxy(e,{get:Ks,set:Us});function Ks(e,t,n){if(t in e)return Reflect.get(e,t,n);throw new Error(`Requested unexpected property ${String(t)}`)}function Us(e,t){throw new Error(`Unexpectedly tried to set the ${String(t)} property.`)}function gr(e){let t=e.options.types??{},n=!1,r={...t?.compilerOptions,rootDir:"."},o=zs({...t,compilerOptions:r,tsconfigPath:e.typeScriptConfigPath,strictOutput:!0,afterDiagnostic(i){let s=i.length>0,a=e.viteCommand==="build";if(s&&a)throw new Error("TypeScript errors reported. See error messages above");return t?.afterDiagnostic?.(i)},beforeWriteFile:Qn(e),resolvers:[{name:"@arcgis/lumina:getHostReference",supports:()=>!n,transform({program:i,host:s}){return n=!0,e.typeScriptProgram=i,e.typeScriptTypeChecker=i.getTypeChecker(),e.typeScriptHost=s,t?.typeScriptInstanceCreated?.(i,s),[]}},...t?.resolvers??[],ur(e)]});return{...o,async configResolved(i){r.sourceMap=i.build.sourcemap!==!1;let s=o.configResolved;if(typeof s!="function")throw new Error("Expected configResolved to be a function");await s.call(this,i)},async buildStart(i){let s=o.buildStart;if(typeof s!="function")throw new Error("Expected buildStart to be a function");let a=o.transform;if(typeof a!="function")throw new Error("Expected transform to be a function");if(await s.call(this,i),await a.call(yr({}),"",d.join(e.dir.src,"__fakeFile.ts")),!n)throw new Error("Expected resolver to get called")},apply:()=>e.viteCommand==="build"}}import{isNotUndefined as xd}from"@arcgis/components-utils";var Vs=/\r\n|[\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/gu,qs=new Map(Object.entries({" ":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":`
|
|
5
|
+
`,"\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\x85":"\\u0085","\r\n":"\\r\\n"}));function xr(e){return`\\u${`0000${e.toString(Gs).toUpperCase()}`.slice(-_s)}`}var Gs=16,_s=4;function Xs(e,t,n){if(e.charCodeAt(0)===Zs){let r=n.charCodeAt(t+e.length);return r>=ea&&r<=ta?"\\x00":"\\0"}return qs.get(e)||xr(e.charCodeAt(0))}var Qs=e=>e.replace(Vs,Xs),hr=/[^\u0000-\u007F]/g;function Ys(e){return e=Qs(e),hr.test(e)?e.replace(hr,t=>xr(t.charCodeAt(0))):e}var Cr=Ys,Zs=0,ea=48,ta=57,na=/\$\{/gu,Tr=e=>e.replace(na,"\\${");var br="@arcgis/lumina:jsxToLitHtml";function vr(e){if(e.length===0)return"";let t=e[0];if(e.includes(`
|
|
6
|
+
`)){let o=t===`
|
|
7
|
+
`,i=e.lastIndexOf(`
|
|
8
|
+
`),a=e.slice(i+1).trim().length===0,l=o?e.trimStart():e;return a?l.trimEnd():l}return e.trim().length===0?t:e}var be=e=>Tr(Cr(e)),Er=e=>!ra.test(e),ra=/^[^\s"'=<>`]+$/u,oa=/[&<>]/gu,ia={"&":"&","<":"<",">":">"},st=e=>e.replace(oa,t=>ia[t]);import O from"typescript";import{existsSync as sa,readFileSync as yc}from"node:fs";import{access as aa,constants as pa,mkdir as hc,writeFile as xc}from"node:fs/promises";import{dirname as Sr,join as wr,resolve as Pr,sep as at}from"node:path";import{fileURLToPath as Mr}from"node:url";function pt(e,t=process.cwd()){let r=(t.startsWith("file:///")?Sr(Mr(t)):Pr(t)).split(at);for(;r.length>2;){let o=wr(...at==="/"?["/"]:[],...r,e);if(sa(o))return o;r.pop()}}async function kr(e,t=process.cwd()){let r=(t.startsWith("file:///")?Sr(Mr(t)):Pr(t)).split(at);for(;r.length>2;){let o=wr(...at==="/"?["/"]:[],...r,e);if(await B(o))return o;r.pop()}}var B=async e=>await aa(e,pa.F_OK).then(()=>!0).catch(()=>!1);import{readFileSync as la}from"node:fs";import{readFile as da}from"node:fs/promises";var Ue={},Fr={},ca;function I(e){let t=e?d.resolve(e,"package.json"):ca??=pt("package.json");return Ue[t]??=JSON.parse(la(t,"utf-8")),Ue[t]}async function pe(e=Q()){let t=d.resolve(e,"package.json");if(t in Ue)return Ue[t];Fr[t]??=ma(t);let n=await Fr[t];return Ue[t]??=n,n}var ma=async e=>JSON.parse(await da(e,"utf-8")),lt={},Dr={};async function le(e,t){if(e in lt)return lt[e];Dr[e]??=kr(d.join("node_modules",e,"package.json"),t).then(r=>{if(r===void 0)throw new Error(`@arcgis/lumina-compiler: Unable to resolve package.json location for "${e}" package. Current working directory: ${process.cwd()}`);return d.dirname(r)});let n=await Dr[e];return lt[e]??=n,lt[e]}import{isNotUndefined as fa}from"@arcgis/components-utils";import{readdir as ua}from"node:fs/promises";var Ar=async e=>Object.fromEntries((await e.componentFilesPromise).map(t=>[Vt(t),t])),Vt=(e,t=d.resolve("src"))=>d.relative(t,d.join(e,"..",Me.slice(0,-3))),ze=async(e,t,n=t)=>await ua(n,{recursive:!0}).then(r=>{let o=r.map(i=>{if(!i.endsWith(".tsx"))return;let s=d.join(n,i);return de(s,t)?s:void 0}).filter(fa);return e.componentFiles=o,o}).catch(r=>{if(String(r).includes("ENOENT"))return console.log("Unable to find the src/components/ directory"),[];throw r});function de(e,t){if(!e.startsWith(t)||!e.endsWith(".tsx"))return!1;let[n,r]=e.slice(0,-4).split(d.sep).slice(ya);return n===r}var ya=-2;function $r(e){return e==="boolean"?{type:"boolean",raw:e}:Number.isNaN(Number.parseFloat(e))?(e.startsWith('"')||e.startsWith("'"))&&e.startsWith(e.at(-1))?{value:e.slice(1,-1),type:"string",raw:e}:{type:e,raw:e}:{value:e,type:"number",raw:e}}var _t="@arcgis/lumina:addPropMetadata";function ct(e){let t=O.isUnionTypeNode(e)?e.types.map(dt):[dt(e)],n=new Set(t),r=n.delete("true"),o=n.delete("false");(r||o)&&n.add("boolean");let i=Array.from(n).sort();return i.length>1&&(i=i.map(s=>s.includes("=>")?`(${s})`:s)),i.map($r)}var mt=e=>e.map(t=>t.raw).join(" | ");function dt(e){ga.writeNode(O.EmitHint.Unspecified,e,void 0,qt);let t=qt.getText();return qt.clear(),t}var ga=Fe({removeComments:!0}),qt=Te.createTextWriter(`
|
|
9
|
+
`),ha=O.TypeFormatFlags.NoTruncation|O.TypeFormatFlags.WriteArrayAsGenericType|O.TypeFormatFlags.SuppressAnyReturnType|O.TypeFormatFlags.MultilineObjectLiterals|O.TypeFormatFlags.InTypeAlias|O.TypeFormatFlags.InElementType,xa=ha&O.TypeFormatFlags.NodeBuilderFlagsMask,Ca=xa|O.NodeBuilderFlags.IgnoreErrors|O.NodeBuilderFlags.NoTruncation;function Ta(e,t,n){let r=new Map;Gt(t,r,n);let o=e.typeToTypeNode(t,void 0,Ca);return r.forEach(ba),o===void 0?(console.error("Failed to convert type to type node."),O.factory.createTypeReferenceNode(O.factory.createIdentifier("unknown"),void 0)):o}function ve(e,t,n,r){let o=[],i=new Set;return{typeNode:Ta(e,t,(a,l)=>{if(!a.symbol)return;let p=l?a.aliasTypeArguments?.[0]?.symbol?.escapedName??"":a.symbol.name;if(i.has(p)||p.startsWith("_"))return;let c=l?{name:p,package:void 0,module:"index.js"}:va(a.symbol,p,n,r);o.push(c),i.add(p)}),references:o}}function Gt(e,t,n){if(typeof e!="object"||e===null||!("checker"in e))return;let r=e;if(t.has(r))return;let o=(r.flags&O.TypeFlags.Object)!==0&&(r.aliasTypeArguments?.[0]?.objectFlags??0&O.ObjectFlags.Class)!==0&&r.aliasSymbol?.escapedName==="ToElement";if(n?.(r,o),o)t.set(r,{origin:void 0,aliasSymbol:void 0,aliasTypeArguments:void 0});else{let i=r.origin,s=r.aliasSymbol,a=r.aliasTypeArguments;i&&(r.origin=void 0),s&&(r.aliasSymbol=void 0),a&&(r.aliasTypeArguments=void 0),t.set(r,{origin:i,aliasSymbol:s,aliasTypeArguments:a})}Object.entries(r).forEach(([i,s])=>{(i.includes("type")||i.includes("Type")||i==="constraint")&&i!=="resolvedBaseConstructorType"&&i!=="resolvedBaseTypes"&&i!=="typeParameters"&&i!=="typeParameter"&&(Array.isArray(s)?s.forEach(a=>Gt(a,t,n)):Gt(s,t,n))})}function ba(e,t){e.origin!==void 0&&(t.origin=e.origin),e.aliasSymbol!==void 0&&(t.aliasSymbol=e.aliasSymbol),e.aliasTypeArguments!==void 0&&(t.aliasTypeArguments=e.aliasTypeArguments)}function va(e,t,n,r){let o=e?.declarations?.map(a=>a.getSourceFile())??[];if(o.length===0){if(t==="Array")return{name:"Array",package:"typescript",module:"lib/lib.es5.d.ts"};console.error(`${_t} Unable to resolve the declaration file name for type ${t} in ${E(n.fileName)}`)}if(o.length===0)return{name:t,package:Xt,module:void 0};let{packageName:i,moduleName:s}=Ea(o[0].fileName,r);return i?{name:t,package:i,module:s.length>0?s:void 0}:{name:t,package:void 0,module:s}}var Xt="global:";function Ea(e,t){let n=e.split("/node_modules/");if(n.length>1){let s=n.at(-1);return Qt(s)}let o=e.split("/dist/");if(o.length>1){let s=o.slice(0,-1).join("/"),l=I(s).name,p=o.at(-1);return{packageName:l,moduleName:p}}return{packageName:void 0,moduleName:d.relative(t.root,wa(Sa(e,t)))}}function Sa(e,t){return de(e,t.srcComponents)?d.join(t.dist,Vt(e,t.src)):e.startsWith(t.src)?d.join(t.dist,e.slice(t.src.length)):e}var wa=e=>e.endsWith(".js")?e:`${e.endsWith(".ts")?e.slice(0,-3):e.endsWith(".tsx")?e.slice(0,-4):e}.d.ts`;function Qt(e){let t=e.split("/"),r=e[0].startsWith("@")?2:1,o=t.slice(0,r).join("/"),i=t.slice(r).join("/");return{packageName:o,moduleName:i}}var Nr=e=>e.includes("/node_modules/")||e.includes("/dist/");var Pa=["css","less","sass","scss","styl","stylus","pcss","postcss","sss"],Lr=new RegExp(`\\.(${Pa.join("|")})(\\?|$)`,"u"),Ma=/^import ["'](?<specifier>[^"']+)["'];$/gmu,ka=()=>"throwError",Ir="@arcgis/lumina:loadLitCss",ce="?layered",Ve="?global",jr=e=>({name:Ir,enforce:"pre",configResolved(t){let n=t.plugins.find(({name:o})=>o==="vite:css-post");if(n===void 0)throw new Error("Unable to find the vite's built-in vite:css-post plugin");let r=n.transform;if(typeof r!="function")throw new Error("Expected vite:css-post to declare a transform() function");n.transform=async function(i,s){let a=s.endsWith(ce);a&&(s=s.slice(0,-ce.length));let l=s.endsWith(Ve);if(l&&(s=s.slice(0,-Ve.length)),!Lr.test(s)||s.includes("?"))return await r.call(this,i,s);let p=`${s}?inline`,c=await r.call(this,i,p),{code:m,...f}=typeof c=="string"?{code:c}:c??{};return typeof m!="string"||!m.startsWith(Rr)||!m.endsWith(Or)?(console.warn(`${Ir} Expected vite:css-post to return a JS module with a string literal for ${E(s)}.`),console.log(c),c):l?(e.globalCssString=Jr(m),{code:"",map:{mappings:""}}):{...f,code:$a(m,e.hmrEnabled,e.shouldMinify,a),map:{mappings:""}}}},transform(t,n){if(!(n.endsWith(".js")||n.endsWith(".ts")||n.endsWith(".tsx")||e.isInStorybook&&n.endsWith(".mdx")))return;let o=0,i=Nr(n);return{code:t.replaceAll(Ma,(a,l)=>{if(!Lr.test(l)||l.includes("?"))return a;if(i){if((e.options.css?.sideEffectImportHandling??ka)(l,n)==="drop")return rr(a);{let m=E(d.relative(Q(),n));throw new Error(`Found a side-effect CSS import \`${a}\` in "${m}". Such import is not allowed as it won't work with shadow DOM. This file appears to be external so such import may not be under your control. To ignore this import, please set the css.sideEffectImportHandling property in useLumina() plugin to a function that will return "drop" for this import to indicate that you wish to have this style import dropped. Then, you would have to import the dropped manually in your component like so: \`import { styles } from "example.css";\` and then add \`static override styles = styles;\` to your component`)}}else if(e.isInStorybook&&La(n,e)){let p=`storybookCss$${o}`;return o+=1,["import ",p," from ",a.slice(6),`
|
|
10
|
+
`,"document.adoptedStyleSheets = [...document.adoptedStyleSheets, ",p,".styleSheet];"].join("")}else{if(l.endsWith(Ve))return a;{let p=E(d.relative(Q(),n));throw new Error(`Found a side-effect CSS import \`${a}\` in "${p}". Such import is not allowed as it won't work with shadow DOM. Please use \`import { styles } from "example.css";\` instead and then add \`static override styles = styles;\` to your component`)}}}),map:null}}}),Rr='export default "',Or='"',Fa="import { css } from 'lit';\nexport const styles = css`",Da="`;\nexport default styles;",Aa=`
|
|
11
|
+
|
|
12
|
+
if(import.meta.hot) {
|
|
13
|
+
import.meta.hot.data.styles ??= styles;
|
|
14
|
+
import.meta.hot.accept(nextExports=>{
|
|
15
|
+
const hasSyntaxError = nextExports === undefined;
|
|
16
|
+
if(hasSyntaxError) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
import.meta.hot.data.styles.styleSheet.replaceSync(nextExports.styles.cssText);
|
|
20
|
+
});
|
|
21
|
+
}`,Jr=e=>e.slice(Rr.length,-Or.length);function $a(e,t,n,r){let i=Jr(e).replaceAll('\\"','"').replaceAll("`","\\`"),s=be(Na(i)),a=r?`@layer{${n?"":`
|
|
22
|
+
`}${s}${n?"":`
|
|
23
|
+
`}}`:s;return`${Fa}${a}${Da}${t?Aa:""}`}var Na=e=>e.replaceAll("\\n",`
|
|
24
|
+
`),La=(e,t)=>e.endsWith(".mdx")||e.includes(".stories.")||e.includes(".story.")||e.startsWith(`${t.dir.root}stories/`);import{camelToKebab as _a}from"@arcgis/components-utils";import{lazyMetaSubItemJoiner as Xa,lazyMetaItemJoiner as nn,lazyMetaGroupJoiner as Qa}from"@arcgis/lumina/config";import{create as Ia}from"@custom-elements-manifest/analyzer/src/browser-entrypoint.js";import ja from"typescript";import{isNotUndefined as Ra,kebabToPascal as Oa,uncapitalize as Ja}from"@arcgis/components-utils";var De="@arcgis/lumina-compiler",Hr="4.31.0-next.100";function Yt(e,t,n){e.modules.sort((s,a)=>{let l=s.fileName.split("/"),p=l.pop(),c=l.join("/"),m=a.fileName.split("/"),f=m.pop(),y=m.join("/");return c===y?p<f?-1:1:c.startsWith(y)?1:y.startsWith(c)||c<y?-1:1});let r=Ia(e);r.modules.forEach(s=>{s.path=d.relative(t.dir.root,s.path),s.exports?.forEach(a=>{typeof a.declaration.module=="string"&&(a.declaration.module=d.relative(t.dir.root,a.declaration.module))})});let o={timestamp:new Date().toISOString().split(".")[0],compiler:{name:De,version:Hr,typescriptVersion:ja.version},...r};n||(t.componentPathMapping={});let i=o.modules.flatMap(s=>U(s,!0).map(a=>{a.sourcePath=s.path;let l=zn(a,t);return a.importPath=["components",l].join(d.sep),a.typeName=`HTML${Oa(a.tagName)}Element`,a}));return n?r:(t.manifest=o,t.manifestComponents=i,t.manifestComponents.forEach(s=>{Ba(s,t)}),t.options.manifests?.afterManifestCreate?.(o),o)}var Zt=new Set(["componentOnReady"]);function Ba(e,t){if(t.viteCommand==="serve")return;let n=new Map(t.manifestComponents.map(r=>[r.name,r.typeName]));e.attributes=e.attributes?.map(r=>{let o=r.fieldName,i=e.members?.find(p=>p.kind==="field"&&p.name===o);if(i===void 0)throw new Error(`Unable to find the "${o}" property for the "${r.name}" attribute in ${e.name}`);if(r.type=i.type,r.inheritedFrom=i.inheritedFrom,r.default=i.default,r.description=i.description,i.readonly&&i.reflects!==!0){i.attribute=void 0;return}if(!i.isAttributeEligible){i.attribute=void 0;return}return r}).filter(Ra),e.members?.forEach(r=>{if(r.kind==="field"){let s=r;s.isAttributeEligible=void 0}if(Wr(r.type,n,t),!r.inheritedFrom)return;let i=r.kind==="method"&&r.name==="componentOnReady";if(i&&(r.inheritedFrom.module=void 0,r.inheritedFrom.package="@arcgis/lumina"),i){let s=Ja(e.name);r.docsTags=[{name:"example",text:`const ${s} = document.createElement("${e.tagName}");
|
|
25
|
+
document.body.append(${s});
|
|
26
|
+
${s}.componentOnReady().then(() => {
|
|
27
|
+
console.log("${e.tagName} is ready to go!");
|
|
28
|
+
});`}]}r.inheritedFrom?.module&&d.isAbsolute(r.inheritedFrom.module)&&(r.inheritedFrom.module=d.relative(t.dir.root,r.inheritedFrom.module))}),e.events?.forEach(r=>{r.inheritedFrom?.module&&d.isAbsolute(r.inheritedFrom.module)&&(r.inheritedFrom.module=d.relative(t.dir.root,r.inheritedFrom.module)),Wr(r.type,n,t)})}function Wr(e,t,n){e&&(e.references?.forEach(r=>Ha(r,t,n)),typeof e.text=="string"&&(e.text=e.text.replaceAll(Ka,(r,o)=>t.get(o)??r)),e.values?.forEach(Wa,t))}function Ha(e,t,n){e.package===void 0&&(e.module?.startsWith("dist/components/")?e.module=se(e.module,"dist/components/",n):e.module==="index.js"&&e.name&&(e.name=t.get(e.name)??e.name))}function Wa(e){e.type.startsWith("ToElement<")&&(e.type=this.get(e.type.slice(10,-1))??e.type)}var Ka=/ToElement<(\w+)>/gu,Ua={kind:"method",name:"componentOnReady",return:{type:{text:"Promise<void>"}},description:"Create a promise that resolves once component is fully loaded.",type:{signature:"() => Promise<void>",references:[{name:"Promise",package:"typescript",module:"lib/lib.es5.d.ts"}]},async:!0},za={kind:"class",description:"The base public interface for all `@arcgis/lumina` components",name:"LitElement",typeName:"LitElement",members:[Ua],attributes:[],docsTags:[],tagName:"lit-element",customElement:!0,sourcePath:"src/LitElement.ts",importPath:"",encapsulation:"shadow"},Va={timestamp:"2000-00-00T00:00:00",compiler:{name:"@arcgis/lumina",version:"X.X.X",typescriptVersion:"X.X.X"},schemaVersion:"1.0.0",modules:[{kind:"javascript-module",path:"dist/index.js",declarations:[za],exports:[{kind:"custom-element-definition",name:"lit-element",declaration:{name:"LitElement",module:"dist/index.js"}}]}]},Kr={thirdPartyCEMs:[Va],states:[]};function Ur(e){return`import("@storybook/web-components").then(({ setCustomElementsManifest }) => {
|
|
29
|
+
setCustomElementsManifest(${qa(e)});
|
|
30
|
+
});`}var qa=e=>`JSON.parse(\`${JSON.stringify(JSON.stringify(e)).slice(1,-1).replaceAll('\\"','"').replaceAll("`","\\`")}\`)`;function zr(e){Ga(e);let t=e.options.css?.globalStylesPath;if(!t)return"";let n=Y(e.dir.src,t);return e.viteCommand==="serve"?[`import globalStyles from "${n}${ce}";`,"document.adoptedStyleSheets = [...document.adoptedStyleSheets, globalStyles.styleSheet!];",tn("",e)].join(`
|
|
31
|
+
`):`import "${n}${Ve}";`}var en="hydrated";function Ga(e){e.globalHydratedCssString=[":not([",e.options.css?.hydratedAttribute??en,"]):is(",e.manifestComponents.map(t=>t.tagName).join(","),"){visibility:hidden}"].join("")}function tn(e,t){return["const globalCss = new CSSStyleSheet();",`globalCss.replaceSync("@layer{${`${t.globalHydratedCssString}${t.shouldMinify?"":"\\n\\n"}${e||""}`}}");`,"document.adoptedStyleSheets = [...document.adoptedStyleSheets, globalCss];"].join(`
|
|
32
|
+
`)}var Vr=e=>`${e.globalHydratedCssString}${e.shouldMinify?"":`
|
|
33
|
+
|
|
34
|
+
`}${e.globalCssString?JSON.parse(`"${e.globalCssString}"`):""}`;function qr(e){let t=e.manifestComponents.map(r=>Ya(r,e));return[e.viteCommand==="build"&&e.options.build?.ssr?.stencilCompatibility?.enabled===!0?'import "@lit-labs/ssr-client/lit-element-hydrate-support.js";':"",'import { runtime } from "./runtime";','import { makeDefineCustomElements } from "@arcgis/lumina";',zr(e),e.hmrEnabled?ep:"","",e.isInStorybook?Ur(e.manifest):"","","export const defineCustomElements = makeDefineCustomElements(runtime, {",t.join(`,
|
|
35
|
+
`),"});",e.hmrEnabled?tp(e.manifestComponents.map(r=>r.sourcePath)):""].join(`
|
|
36
|
+
`)}var Gr=`import "./index";
|
|
37
|
+
export declare const defineCustomElements: import("@arcgis/lumina").DefineCustomElements;`,Ya=(e,t)=>[` "${e.tagName}": [`,`()=>import("${d.join(t.dir.root,e.sourcePath)}"),`,Za(e),"]"].join("");function Za(e){let{properties:t,asyncMethods:n,syncMethods:r}=rn(e),o=t.map(c=>c.join(Xa)).join(nn),i=n.join(nn),s=r.join(nn),a=[o,i,s],l=a.findLastIndex(c=>c.length>0),p=a.slice(0,l+1);return p.length>0?`"${p.join(Qa)}"`:""}function rn(e){let t=(e.members??[]).filter(i=>i.kind==="field"&&!Zt.has(i.name)).map(i=>{let s=i,a=typeof s.attribute=="string",l=a&&s.attribute!==_a(s.name);return a&&!l?[s.name]:[s.name,l?String(s.attribute):""]}),n=(e.members??[]).filter(i=>i.kind==="method"&&!Zt.has(i.name)),r=n.filter(i=>i.async===!0).map(i=>i.name),o=n.filter(i=>i.async!==!0).map(i=>i.name);return{tagName:e.tagName,properties:t,asyncMethods:r,syncMethods:o}}var ep=`import { handleHmrUpdate, handleComponentMetaUpdate } from "@arcgis/lumina";
|
|
38
|
+
`,tp=e=>`
|
|
39
|
+
if(import.meta.hot) {
|
|
40
|
+
import.meta.hot.on("component-meta-update", handleComponentMetaUpdate);
|
|
41
|
+
import.meta.hot.accept([
|
|
42
|
+
${Array.from(new Set(e)).map(t=>` "/${t}",`).join(`
|
|
43
|
+
`)}
|
|
44
|
+
], handleHmrUpdate);
|
|
45
|
+
}`;import Ee from"typescript";import z from"typescript";import{isNotUndefined as np}from"@arcgis/components-utils";import{defaultEventBubbles as _r,defaultEventCancelable as Xr,defaultEventComposed as Qr}from"@arcgis/lumina/config";function Yr(e,t,n,r,o){let i=n.getProperty("emit");if(!i?.valueDeclaration)return;let s=i.valueDeclaration,p=e.getTypeOfSymbolAtLocation(i,s).getCallSignatures().map(m=>{let f=m.getReturnType();if(f.symbol?.name!=="CustomEvent")return;let y=e.getTypeArguments(f)?.at(0);if(y===void 0)return{original:"any",resolved:"any",references:[]};let{typeNode:g,references:C}=ve(e,y,r,o),u=dt(g);return{original:u,resolved:u,references:C}}).filter(np);if(p.length===0)return;let c=rp(r,t);return{...op(p),...c}}var ft="createEvent";function rp(e,t){if(!z.isIdentifier(t.name)&&!z.isStringLiteral(t.name))throw new Error(`Expected event property name to be an identifier or a string literal. Found ${t.name.getText(e)}`);let n=t.name.text,r={eventName:n,cancelable:Xr,bubbles:_r,composed:Qr};if(!t.initializer||!z.isCallExpression(t.initializer))return r;let o=t.initializer;if(!z.isIdentifier(o.expression)||o.expression.text!==ft)return r;let i=o.arguments[0];if(!i)return r;if(!z.isObjectLiteralExpression(i))throw new Error(`Expected object literal expression as first argument of ${ft}(). Found ${n} = createEvent(${i.getText(e)})`);if(i.properties.some(s=>z.isSpreadAssignment(s)))throw new Error(`Unexpected spread syntax in ${ft}() argument. ${ft}() arguments must be statically parsable at compile time`);return r.cancelable=qe(i,"cancelable")??Xr,r.bubbles=qe(i,"bubbles")??_r,r.composed=qe(i,"composed")??Qr,r}function qe(e,t){let n=e.properties.find(o=>z.isPropertyAssignment(o)&&z.isIdentifier(o.name)&&o.name.text===t);if(n===void 0)return;if(!z.isPropertyAssignment(n))throw new Error(`Expected boolean literal as ${t} property. Found ${n.getText()}`);let r=n.initializer;if(r.kind===z.SyntaxKind.TrueKeyword)return!0;if(r.kind===z.SyntaxKind.FalseKeyword)return!1;throw new Error(`Expected boolean literal as ${t} property. Found ${n.getText()}`)}var op=e=>({isReadonly:!1,values:void 0,original:e.map(t=>t.original).join(" | "),resolved:e.map(t=>t.resolved).join(" | "),references:e.flatMap(t=>t.references),isAttributeEligible:!1});var Zr=(e,t,n,r)=>{let o=Ee.isSetAccessor(r)?r.parameters[0]:r,i=n.getSourceFile(),s=e.getTypeAtLocation(o),{typeNode:a,references:l}=ve(e,s,i,t),p=Ee.isGetAccessor(r)||Ee.isSetAccessor(r)?void 0:Yr(e,r,s,i,t);if(p)return p;let c=nt(n,"property");if(!c)return;let m=ct(a),f=mt(m),y=o.type?ip(o.type.getText(i)):f,g=o.questionToken!==void 0;return{isReadonly:sp(c),original:g&&!y.includes("null")&&!y.includes("undefined")&&!y.includes("Nil")?`${y} | undefined`:y,resolved:f,references:l,values:m.map(({raw:C,...u})=>u),isAttributeEligible:ap(c,m)}},ip=e=>e.startsWith("| ")?e.slice(2):e;function sp(e){let t=e.arguments[0];return!t||!Ee.isObjectLiteralExpression(t)?!1:qe(t,"readOnly")??!1}function ap(e,t){let n=on(t),r=e.arguments[0];return!r||!Ee.isObjectLiteralExpression(r)?n:r.properties.some(i=>Ee.isPropertyAssignment(i)&&Ee.isIdentifier(i.name)&&(i.name.text==="type"||i.name.text==="converter"||i.name.text==="attribute"))||n}var on=e=>e.some(t=>t.type==="number"||t.type==="boolean"||t.type==="string");import me from"typescript";function eo(e){return{name:_t,analyzePhase({ts:t,node:n,context:r}){if(!t.isPropertyDeclaration(n)&&!t.isAccessor(n))return;let o=r;if(o.state===void 0)return;let{component:i,events:s}=o.state,a=ke(i,n);if(a===void 0||a.kind!=="field")return;if(a.name.startsWith("on"))throw new Error(`Do not start property names with "on" as that can confuse third-party frameworks and lint rules. Found ${a.name} in ${i.name}`);let l=e.typeScriptTypeChecker,p=l.getSymbolAtLocation(n.name),c=p===void 0?{}:Ce(l,p);a.description=c.description??a.description;let m=me.isGetAccessor(n)?p?.declarations?.find(me.isSetAccessor)??n:n,f=Zr(l,e.dir,n,m);if(!(typeof f=="object")){let u=o.lastAccessors[a.name];if(u!==void 0)if(u===n){if("original"in a.type)return}else return;let x=i.members.indexOf(a);i.members.splice(x,1);return}let g=c.docsTags?.some(u=>u.name==="readonly")??!1,C=f.isReadonly||o.lonelyGetters.has(a.name);if(n.questionToken&&(a.hasQuestionToken=!0),a.type={text:f.resolved,original:f.original,values:f.values,references:[...a.type?.references??[],...f.references]},m!==n&&me.isSetAccessor(m)&&me.isGetAccessor(n)){let u=n.type,T=m.parameters[0].type?.getText(),v=u?.getText();T!==v&&v!==void 0&&(a.getterType={text:v,original:v,values:[{type:v}]})}if(a.default&&"initializer"in n&&n.initializer&&!Bt(to(n.initializer))&&!c.docsTags?.some(u=>u.name==="default")&&(a.default=void 0),"eventName"in f){s.push(f);return}if(!g&&!C&&!c.docsTags?.some(u=>u.name==="required")&&(a.type.text=Gn(a.type.text),a.type.values)){let u=a.type.values.filter(x=>x.type!=="null"&&x.type!=="undefined");u.length>0&&(a.type.values=u)}if(a.isAttributeEligible=f.isAttributeEligible,"initializer"in n&&n.initializer&&(!a.default||!a.description)){let u=n.initializer,x=l.getSymbolAtLocation(u),T=x!==void 0&&(x.flags??0)&me.SymbolFlags.Alias?l.getAliasedSymbol(x):x,v=T?.getDeclarations()??[];if(T){let D=Ce(l,T);if(D.description&&(a.description||=D?.description),(D.docsTags?.length??0)>0){let W=new Set(c.docsTags?.map(A=>A.name));c.docsTags=[...c.docsTags??[],...D.docsTags?.filter(A=>A.name==="default"?(a.default||(a.default=A.text),!1):!W.has(A.name))??[]]}}v.forEach(D=>{if(!("initializer"in D))return;let W=D;if(g||=W.modifiers?.some(A=>A.kind===me.SyntaxKind.ReadonlyKeyword)??!1,!a.default){let A=W.initializer;Bt(A)&&(a.default=A.getText(W.getSourceFile()))}})}c.docsTags=c.docsTags?.filter(u=>u.name!=="readonly"&&u.name!=="default"&&u.name!=="deprecated"),(c.docsTags?.length??0)>0&&(a.docsTags=c.docsTags),g||C?a.readonly=!0:a.readonly=void 0,g&&!C&&(a.docsOnlyReadonly=!0),!a.default&&a.type.values&&a.type.values.length>0&&a.type.values?.every(u=>u.type==="boolean")&&(a.default="false")},moduleLinkPhase({context:t}){let{states:n}=t;n.forEach(({component:r,events:o})=>{let i=r.members??[];o?.forEach(({eventName:s,bubbles:a,cancelable:l,composed:p})=>{let c=i.findIndex(v=>v.name===s);if(c===-1)throw new Error(`Event property ${s} not found in component ${r.name}`);let m=i[c];if(m.kind!=="field")throw new Error(`Event property ${s} in ${r.name} is not a field`);if(i.splice(c,1),r.events??=[],r.events.some(v=>v.name===s))throw new Error(`Event ${s} included in ${r.name} twice`);let{default:y,kind:g,static:C,type:u,...x}=m;if(u===void 0)throw new Error(`Event property ${s} in ${r.name} is missing a type`);let T={...x,name:s,type:u,bubbles:a,cancelable:l,composed:p};r.events.push(T)})})}}}function to(e){return me.isSatisfiesExpression(e)||me.isParenthesizedExpression(e)?to(e.expression):e}import Se from"typescript";var sn="@arcgis/lumina:addMethodMetadata";function no(e){return{name:sn,analyzePhase({node:t,ts:n,context:r}){if(!n.isMethodDeclaration(t))return;let o=r,{sourceFile:i,state:{component:s}={}}=o;if(i===void 0||s===void 0)return;let a=ke(s,t);if(!(a===void 0||a.kind!=="method")){if(!nt(t,"method")){let l=s.members.indexOf(a);s.members.splice(l,1);return}if(e.viteCommand==="build"){let l=e.typeScriptTypeChecker,p=pp(t,a.parameters,l,i,e.dir);a.description=p?.description??a.description,a.docsTags=p?.docsTags,a.type=p?.type??{signature:`()=>${a.return?.type?.text??"void"}`,references:[]}}dp(t)&&(a.async=!0)}}}}function pp(e,t,n,r,o){let i=n.getSignatureFromDeclaration(e);if(i===void 0)return;e.parameters.forEach(p=>{let c=p.name;if(!Se.isIdentifier(c)){console.warn(`${sn}: Object binding patterns are not yet supported in the docs. Found ${c?.getText()} in ${e.name.getText()} in ${E(r.fileName)}`);return}let m=t?.find(x=>x.name===c.text);if(!m){console.warn(`${sn}: Unable to find the parameter ${c?.getText()} for ${e.name.getText()} in the manifest`);return}let f=n.getTypeAtLocation(p),{typeNode:y,references:g}=ve(n,f,r,o),C=ct(y),u={original:m.type?.text??p.type?.getText(r)??"unknown",text:mt(C),references:g,values:void 0};m.type=u});let s=n.getReturnTypeOfSignature(i),a=ve(n,s,r,o),l=n.signatureToString(i,e,lp,Se.SignatureKind.Call);return{...Ce(n,i),type:{signature:l,references:a.references}}}var lp=Se.TypeFormatFlags.WriteArrowStyleSignature|Se.TypeFormatFlags.NoTruncation|Se.TypeFormatFlags.MultilineObjectLiterals|Se.TypeFormatFlags.InTypeAlias,dp=e=>e.modifiers?.some?.(t=>t.kind===Se.SyntaxKind.AsyncKeyword)??!1;import{camelToKebab as ro}from"@arcgis/components-utils";function oo(e){e.members?.forEach(t=>{"attribute"in t&&typeof t.attribute=="string"&&t.attribute.toLowerCase()!==t.attribute&&(t.attribute=ro(t.attribute))}),e.attributes?.forEach(t=>{"name"in t&&typeof t.name=="string"&&t.name.toLowerCase()!==t.name&&(t.name=ro(t.name))})}import Ge from"typescript";function io(e){return{name:"@arcgis/lumina:addComponentMetadata",analyzePhase({moduleDoc:t,node:n,ts:r,context:o}){if(!r.isClassDeclaration(n))return;let i=Zn(n.name?.text,t);if(i===void 0)return;let s=o;s.state={component:i,events:[]},s.states.push(s.state);let a=!1;s.lastAccessors={};let l=new Set;if(s.lonelyGetters=new Set,n.members.forEach(p=>{if(Ge.isAccessor(p)){let c=p.name.getText();s.lastAccessors[c]=p,Ge.isSetAccessor(p)?(l.add(c),s.lonelyGetters.delete(c)):l.has(c)||s.lonelyGetters.add(c)}a||=e.viteCommand==="build"&&Ge.isPropertyDeclaration(p)&&Ge.isIdentifier(p.name)&&p.name.text==="shadowRootOptions"&&p.initializer!==void 0&&Ge.isIdentifier(p.initializer)&&p.initializer.text==="noShadowRoot"}),i.members=i.members?.filter(cp),i.members?.forEach(p=>{p.name=ut(p.name),"attribute"in p&&typeof p.attribute=="string"&&(p.attribute=ut(p.attribute))}),i.attributes?.forEach(p=>{p.name=ut(p.name),typeof p.fieldName=="string"&&(p.fieldName=ut(p.fieldName))}),e.viteCommand==="build"){let p=e.typeScriptTypeChecker,c=i,m=n.name===void 0?void 0:p.getSymbolAtLocation(n.name),f=m===void 0?void 0:Ce(p,m);c.description=f?.description??c.description,c.docsTags=f?.docsTags?.filter(y=>y.name!=="cssprop"&&y.name!=="cssproperty"&&y.name!=="csspart"&&y.name!=="slot"),c.encapsulation=a?"none":"shadow"}},moduleLinkPhase({moduleDoc:t}){U(t).forEach(n=>{oo(n),e.viteCommand==="build"&&(n.members?.sort((r,o)=>r.name.localeCompare(o.name)),n.attributes?.sort((r,o)=>r.name.localeCompare(o.name)),n.events?.sort((r,o)=>r.name.localeCompare(o.name))),n.superclass?.module&&d.isAbsolute(n.superclass.module)&&(n.superclass.module=d.relative(e.dir.root,n.superclass.module))})}}}function ut(e){return e.startsWith("'")||e.startsWith('"')?e.slice(1,-1):e.startsWith('\\"')||e.startsWith("\\'")?e.slice(2,-1*2):e}var cp=e=>!e.name.startsWith("_")&&!e.static&&e.privacy!=="private"&&e.privacy!=="protected";import{litPlugin as Np}from"@custom-elements-manifest/analyzer/src/browser-entrypoint.js";import Lp from"typescript";import q from"typescript";var so="Fragment",yt="DynamicHtmlTag",gt="DynamicSvgTag",_e=Symbol("dynamic html tag name"),Xe=Symbol("dynamic svg tag name"),ao=!0,ht=new Set(["id","class","tabIndex","role","itemProp","itemScope","itemType","itemId","itemRef","about","datatype","inlist","property","resource","typeof","vocab"]),xt=new Set(["width","height","href","hreflang","form","download","rowSpan","colSpan","viewBox","src","exportParts","hreflang","media"]),Qe={button:new Set(["popoverTarget"]),input:new Set(["list","capture"]),meta:new Set(["charset"]),math:new Set(["dir","displaystyle","scriptlevel"]),menu:new Set(["label","type"]),results:new Set(["input"]),textarea:new Set(["dirname"]),quote:new Set(["cite"])},V={common:{normal:{translate:"translate",hidden:"hidden",inert:"inert",draggable:"draggable",spellcheck:"spellcheck",contentEditable:"contenteditable",popover:"popover",autofocus:"autofocus",tabIndex:"tabindex",role:"role",ariaAtomic:"aria-atomic",ariaAutoComplete:"aria-autocomplete",ariaBusy:"aria-busy",ariaBrailleLabel:"aria-braillelabel",ariaBrailleRoleDescription:"aria-brailleroledescription",ariaChecked:"aria-checked",ariaColCount:"aria-colcount",ariaColIndex:"aria-colindex",ariaColSpan:"aria-colspan",ariaCurrent:"aria-current",ariaDescription:"aria-description",ariaDisabled:"aria-disabled",ariaExpanded:"aria-expanded",ariaHasPopup:"aria-haspopup",ariaHidden:"aria-hidden",ariaInvalid:"aria-invalid",ariaKeyShortcuts:"aria-keyshortcuts",ariaLabel:"aria-label",ariaLevel:"aria-level",ariaLive:"aria-live",ariaModal:"aria-modal",ariaMultiLine:"aria-multiline",ariaMultiSelectable:"aria-multiselectable",ariaOrientation:"aria-orientation",ariaPlaceholder:"aria-placeholder",ariaPosInSet:"aria-posinset",ariaPressed:"aria-pressed",ariaReadOnly:"aria-readonly",ariaRelevant:"aria-relevant",ariaRequired:"aria-required",ariaRoleDescription:"aria-roledescription",ariaRowCount:"aria-rowcount",ariaRowIndex:"aria-rowindex",ariaRowSpan:"aria-rowspan",ariaSelected:"aria-selected",ariaSetSize:"aria-setsize",ariaSort:"aria-sort",ariaValueMax:"aria-valuemax",ariaValueMin:"aria-valuemin",ariaValueNow:"aria-valuenow",ariaValueText:"aria-valuetext",ariaColIndexText:"aria-colindextext",ariaRowIndexText:"aria-rowindextext",ariaVirtualContent:"aria-virtualcontent"},stringified:{title:"title",lang:"lang",dir:"dir",accessKey:"accesskey",autocapitalize:"autocapitalize",enterKeyHint:"enterkeyhint",inputMode:"inputmode",virtualKeyboardPolicy:"virtualkeyboardpolicy",writingSuggestions:"writingsuggestions",focusgroup:"focusgroup",id:"id",className:"class",slot:"slot",elementTiming:"elementtiming"}},perElement:{a:{stringified:{target:"target",download:"download",ping:"ping",rel:"rel",hreflang:"hreflang",type:"type",referrerPolicy:"referrerpolicy",coords:"coords",charset:"charset",name:"name",rev:"rev",shape:"shape",href:"href",interestAction:"interestaction",hrefTranslate:"hreftranslate",attributionSrc:"attributionsrc"}},area:{normal:{noHref:"nohref"},stringified:{alt:"alt",coords:"coords",download:"download",shape:"shape",target:"target",ping:"ping",rel:"rel",referrerPolicy:"referrerpolicy",href:"href",interestAction:"interestaction"}},audio:{normal:{crossOrigin:"crossorigin",autoplay:"autoplay",loop:"loop",controls:"controls",defaultMuted:"muted",disableRemotePlayback:"disableremoteplayback"},stringified:{src:"src",preload:"preload"}},base:{stringified:{href:"href",target:"target"}},blockquote:{stringified:{cite:"cite"}},body:{stringified:{text:"text",link:"link",vLink:"vlink",aLink:"alink",bgColor:"bgcolor",background:"background"}},br:{stringified:{clear:"clear"}},button:{normal:{disabled:"disabled",formNoValidate:"formnovalidate"},stringified:{formAction:"formaction",formEnctype:"formenctype",formMethod:"formmethod",formTarget:"formtarget",name:"name",type:"type",value:"value",popoverTargetAction:"popovertargetaction",command:"command",interestAction:"interestaction"}},canvas:{normal:{width:"width",height:"height"}},caption:{stringified:{align:"align"}},col:{normal:{span:"span"},stringified:{align:"align",ch:"char",chOff:"charoff",vAlign:"valign",width:"width"}},colgroup:{normal:{span:"span"},stringified:{align:"align",ch:"char",chOff:"charoff",vAlign:"valign",width:"width"}},data:{stringified:{value:"value"}},del:{stringified:{cite:"cite",dateTime:"datetime"}},details:{normal:{open:"open"},stringified:{name:"name"}},dialog:{normal:{open:"open"}},div:{stringified:{align:"align"}},dl:{normal:{compact:"compact"}},embed:{stringified:{src:"src",type:"type",width:"width",height:"height",align:"align",name:"name"}},fieldset:{normal:{disabled:"disabled"},stringified:{name:"name"}},form:{normal:{noValidate:"novalidate"},stringified:{acceptCharset:"accept-charset",action:"action",autocomplete:"autocomplete",enctype:"enctype",encoding:"enctype",method:"method",name:"name",target:"target",rel:"rel"}},h1:{stringified:{align:"align"}},h2:{stringified:{align:"align"}},h3:{stringified:{align:"align"}},h4:{stringified:{align:"align"}},h5:{stringified:{align:"align"}},h6:{stringified:{align:"align"}},hr:{normal:{noShade:"noshade"},stringified:{align:"align",color:"color",size:"size",width:"width"}},html:{stringified:{version:"version"}},iframe:{normal:{allowFullscreen:"allowfullscreen",credentialless:"credentialless",allowPaymentRequest:"allowpaymentrequest",browsingTopics:"browsingtopics",adAuctionHeaders:"adauctionheaders",sharedStorageWritable:"sharedstoragewritable"},stringified:{src:"src",srcdoc:"srcdoc",name:"name",width:"width",height:"height",referrerPolicy:"referrerpolicy",csp:"csp",allow:"allow",loading:"loading",align:"align",scrolling:"scrolling",frameBorder:"frameborder",longDesc:"longdesc",marginHeight:"marginheight",marginWidth:"marginwidth",policy:"policy",privateToken:"privatetoken"}},img:{normal:{crossOrigin:"crossorigin",isMap:"ismap",width:"width",height:"height",hspace:"hspace",vspace:"vspace",sharedStorageWritable:"sharedstoragewritable"},stringified:{alt:"alt",src:"src",srcset:"srcset",sizes:"sizes",useMap:"usemap",referrerPolicy:"referrerpolicy",decoding:"decoding",fetchPriority:"fetchpriority",loading:"loading",name:"name",lowsrc:"lowsrc",align:"align",longDesc:"longdesc",border:"border",attributionSrc:"attributionsrc"}},input:{normal:{defaultChecked:"checked",disabled:"disabled",formNoValidate:"formnovalidate",height:"height",maxLength:"maxlength",minLength:"minlength",multiple:"multiple",readOnly:"readonly",required:"required",size:"size",width:"width",webkitdirectory:"webkitdirectory",incremental:"incremental"},stringified:{accept:"accept",alt:"alt",autocomplete:"autocomplete",dirName:"dirname",formAction:"formaction",formEnctype:"formenctype",formMethod:"formmethod",formTarget:"formtarget",max:"max",min:"min",name:"name",pattern:"pattern",placeholder:"placeholder",src:"src",step:"step",type:"type",defaultValue:"value",align:"align",useMap:"usemap",popoverTargetAction:"popovertargetaction",command:"command",interestAction:"interestaction"}},ins:{stringified:{cite:"cite",dateTime:"datetime"}},label:{stringified:{htmlFor:"for"}},legend:{stringified:{align:"align"}},li:{normal:{value:"value"},stringified:{type:"type"}},link:{normal:{disabled:"disabled",crossOrigin:"crossorigin"},stringified:{href:"href",rel:"rel",media:"media",hreflang:"hreflang",type:"type",as:"as",referrerPolicy:"referrerpolicy",fetchPriority:"fetchpriority",imageSrcset:"imagesrcset",imageSizes:"imagesizes",charset:"charset",rev:"rev",target:"target",integrity:"integrity"}},map:{stringified:{name:"name"}},menu:{normal:{compact:"compact"}},meta:{stringified:{name:"name",httpEquiv:"http-equiv",content:"content",media:"media",scheme:"scheme"}},meter:{normal:{value:"value",min:"min",max:"max",low:"low",high:"high",optimum:"optimum"}},object:{normal:{declare:"declare",hspace:"hspace",vspace:"vspace"},stringified:{data:"data",type:"type",name:"name",useMap:"usemap",width:"width",height:"height",align:"align",archive:"archive",code:"code",standby:"standby",codeBase:"codebase",codeType:"codetype",border:"border"}},ol:{normal:{reversed:"reversed",start:"start",compact:"compact"},stringified:{type:"type"}},optgroup:{normal:{disabled:"disabled"},stringified:{label:"label"}},option:{normal:{disabled:"disabled",defaultSelected:"selected"},stringified:{label:"label",value:"value"}},output:{stringified:{name:"name"}},p:{stringified:{align:"align"}},pre:{normal:{width:"width"}},progress:{normal:{value:"value",max:"max"}},q:{stringified:{cite:"cite"}},script:{normal:{noModule:"nomodule",async:"async",defer:"defer",crossOrigin:"crossorigin",referrerPolicy:"referrerpolicy"},stringified:{src:"src",type:"type",charset:"charset",fetchPriority:"fetchpriority",event:"event",htmlFor:"for",integrity:"integrity",attributionSrc:"attributionsrc"}},select:{normal:{disabled:"disabled",multiple:"multiple",required:"required",size:"size"},stringified:{autocomplete:"autocomplete",name:"name"}},slot:{stringified:{name:"name"}},source:{normal:{width:"width",height:"height"},stringified:{src:"src",type:"type",srcset:"srcset",sizes:"sizes",media:"media"}},style:{stringified:{media:"media",type:"type"}},table:{stringified:{align:"align",border:"border",frame:"frame",rules:"rules",summary:"summary",width:"width",bgColor:"bgcolor",cellPadding:"cellpadding",cellSpacing:"cellspacing"}},tbody:{stringified:{align:"align",ch:"char",chOff:"charoff",vAlign:"valign"}},td:{normal:{colSpan:"colspan",rowSpan:"rowspan",noWrap:"nowrap"},stringified:{headers:"headers",align:"align",axis:"axis",height:"height",width:"width",ch:"char",chOff:"charoff",vAlign:"valign",bgColor:"bgcolor",abbr:"abbr",scope:"scope"}},template:{normal:{shadowRootDelegatesFocus:"shadowrootdelegatesfocus",shadowRootClonable:"shadowrootclonable",shadowRootSerializable:"shadowrootserializable",parseparts:"parseparts"},stringified:{shadowRootMode:"shadowrootmode"}},textarea:{normal:{cols:"cols",disabled:"disabled",maxLength:"maxlength",minLength:"minlength",readOnly:"readonly",required:"required",rows:"rows"},stringified:{autocomplete:"autocomplete",dirName:"dirname",name:"name",placeholder:"placeholder",wrap:"wrap"}},tfoot:{stringified:{align:"align",ch:"char",chOff:"charoff",vAlign:"valign"}},th:{normal:{colSpan:"colspan",rowSpan:"rowspan",noWrap:"nowrap"},stringified:{headers:"headers",align:"align",axis:"axis",height:"height",width:"width",ch:"char",chOff:"charoff",vAlign:"valign",bgColor:"bgcolor",abbr:"abbr",scope:"scope"}},thead:{stringified:{align:"align",ch:"char",chOff:"charoff",vAlign:"valign"}},time:{stringified:{dateTime:"datetime"}},tr:{stringified:{align:"align",ch:"char",chOff:"charoff",vAlign:"valign",bgColor:"bgcolor"}},track:{normal:{default:"default"},stringified:{kind:"kind",src:"src",srclang:"srclang",label:"label"}},ul:{normal:{compact:"compact"},stringified:{type:"type"}},video:{normal:{width:"width",height:"height",playsInline:"playsinline",disablePictureInPicture:"disablepictureinpicture",crossOrigin:"crossorigin",autoplay:"autoplay",loop:"loop",controls:"controls",defaultMuted:"muted",disableRemotePlayback:"disableremoteplayback"},stringified:{poster:"poster",src:"src",preload:"preload"}}}};po(V.common);Object.values(V.perElement).forEach(po);function po(e){e?.normal&&(e.normal=Object.assign(Object.create(null),e.normal)),e?.stringified&&(e.stringified=Object.assign(Object.create(null),e.stringified))}var an=new Set(["itemScope"]),Ct=new Set(["abort","animationCancel","animationEnd","animationIteration","animationStart","auxClick","beforeInput","blur","canPlay","canPlayThrough","cancel","change","click","close","compositionEnd","compositionStart","compositionUpdate","contextMenu","copy","cueChange","cut","dblClick","drag","dragEnd","dragEnter","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","error","focus","focusIn","focusOut","formData","fullscreenChange","fullscreenError","gotPointerCapture","input","invalid","keyDown","keyUp","load","loadStart","loadedData","loadedMetadata","lostPointerCapture","mouseDown","mouseEnter","mouseLeave","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","pointerCancel","pointerDown","pointerEnter","pointerLeave","pointerMove","pointerOut","pointerOver","pointerUp","progress","rateChange","reset","resize","scroll","scrollEnd","securityPolicyViolation","seeked","seeking","select","selectStart","slotChange","stalled","submit","suspend","timeUpdate","toggle","touchCancel","touchEnd","touchMove","touchStart","transitionCancel","transitionEnd","transitionRun","transitionStart","volumeChange","waiting","wheel"]),lo=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),Ae=new Set(["animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","switch","symbol","text","textPath","tspan","use","view"]),$e=new Set(["annotation-xml","annotation","maction","menclose","merror","mfenced","mfrac","mi","mmultiscripts","mn","mo","mover","mpadded","mphantom","mprescripts","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msubsup","msup","mtable","mtd","mtext","mtr","munder","munderover","semantics"]),Ne=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]);var co="customElement",Tt=new WeakMap,yo=e=>({name:"@arcgis/lumina:addCustomElementDecorator",initialize(){Tt.has(e)||Tt.set(e,{}),e.declarationTextTransformers.includes(mo)||e.declarationTextTransformers.push(mo)},analyzePhase({node:t,moduleDoc:n,ts:r,context:o}){if(!r.isSourceFile(t)||!t.fileName.endsWith(".tsx"))return;let i=o;i.sourceFile=t,i.states=[],i.state=void 0;let s=t.text;if(s.includes(`
|
|
46
|
+
@customElement(`))throw new Error(`You shouldn't call @customElement() decorator directly in your component file as it will be added automatically at build time. Found in ${E(t.fileName)}. Instead, make sure your component file has the following:
|
|
47
|
+
declare global {
|
|
48
|
+
interface DeclareElements {
|
|
49
|
+
"arcgis-your-component": ArcgisYourComponent;
|
|
50
|
+
}
|
|
51
|
+
}`);let l=pn(s);l&&(Tt.get(e)[t.fileName]=l);let p=new Set;l?.forEach(([c,m])=>{if(mp(c,m),p.has(m))throw new Error(`Unexpectedly ${m} was used to define multiple custom elements (${c} and others). Expected one tag name to correspond to one class`);p.add(m),n.exports??=[],n.exports.some(y=>y.kind==="custom-element-definition"&&y.name===c)||n.exports.push({kind:"custom-element-definition",name:c,declaration:{name:m,module:n.path}})})},packageLinkPhase({customElementsManifest:t}){t.modules.forEach(n=>{if(!n.exports)return;let r=new Set(n.exports.map(o=>o.kind==="custom-element-definition"?o.declaration.name:""));n.exports=n.exports.filter(o=>o.kind!=="js"||!r.has(o.name))})}}),mo=(e,t)=>{let{filePath:n,content:r}=e;if(!n.startsWith(t.dir.distComponents))return e;let o=ho(r);if(o){let i=r.replace(o,"");return{filePath:n,content:i}}else return e},go=(e,t)=>{let n=e.fileName,r=Tt.get(t.compiler)??{};if(!(n in r))return e.statements;let o=r[n],i=d.relative(d.dirname(n),d.join(t.compiler.dir.src,"runtime")),s=q.factory.createImportDeclaration(void 0,q.factory.createImportClause(!1,void 0,q.factory.createNamedImports([q.factory.createImportSpecifier(!1,void 0,q.factory.createIdentifier(co))])),q.factory.createStringLiteral(i)),a=o.map(([l,p])=>{let c=e.text.indexOf(`class ${p} `);if(c===-1&&(c=e.text.indexOf(`class ${p}
|
|
52
|
+
`)),c===-1&&(c=e.text.indexOf(`class ${p}<`)),c===-1)throw new Error(`Unable to find the declaration of the "${p}" class in ${E(n)}`);return q.factory.createExpressionStatement(q.factory.createCallExpression(q.factory.createIdentifier(co),void 0,[q.factory.createStringLiteral(l),q.factory.createIdentifier(p)]))});return[s,...e.statements,...a]};function pn(e){let t=ho(e);return t===void 0?void 0:t.split(`
|
|
53
|
+
`).filter(r=>r.includes(":")).map(r=>r.replace(";","").replaceAll('"',"").split(":")).map(([r,o])=>[r.trim(),o.trim()]).filter(([r])=>!r.startsWith("/")&&!r.startsWith("*"))}function mp(e,t){if(!e.includes("-"))throw new Error(`Expected custom element tag name to include a hyphen. Found "${e}"`);if(e.toLowerCase()!==e)throw new Error(`Expected custom element tag name to be lowercase. Found "${e}"`);if(!fo.test(e))throw new Error(`Potentially invalid custom element name: "${e}". Expected tag name to match regex: ${fo.toString()}. This regex is stricter than what the custom elements spec allows in order to catch possible typos. Please contact Lumina maintainers if you need to loosen this check.`);if(Ne.has(e))throw new Error(`"${e}" is a reserved html element tag name. Declaring components with this name is forbidden by the custom elements specification.`);let n=uo(e),r=uo(e.split("-").slice(1).join("-"));if(n!==t.toLowerCase()&&r!==t.toLowerCase())throw new Error(`The custom element tag name "${e}" does not seem to match the class name it is assigned to: "${t}". Make sure tag name and class name use the same characters in the same order (case insensitive, hyphens removed). The class name may omit the "Arcgis"/"Calcite" prefix if desired.`)}var fo=/^[a-z]+(?:-[a-z\d]+)+$/u,uo=e=>e.replaceAll("-","").toLowerCase();function ho(e){let t=e.indexOf("declare global {");if(t===-1)return;let n=e.indexOf(`
|
|
54
|
+
}`,t)+2;if(e.indexOf("declare global {",n)!==-1)throw new Error(`Detected multiple "declare global {" in a single file. Declaring multiple components in a single file is supported, but they should share the same "declare global {" block. Example:
|
|
55
|
+
declare global {
|
|
56
|
+
interface DeclareElements {
|
|
57
|
+
"arcgis-test1": ArcgisTest1;
|
|
58
|
+
"arcgis-test2": ArcgisTest2;
|
|
59
|
+
}
|
|
60
|
+
}`);return e.slice(t,n)}import{readFile as No,writeFile as Ip}from"node:fs/promises";import{isNotUndefined as Dp}from"@arcgis/components-utils";import{isNotUndefined as dn}from"@arcgis/components-utils";import{readFile as ln,readdir as fp}from"node:fs/promises";async function bt(e){return fe??=up(e),await fe}function Co(){if(cn===void 0)throw new Error("Component dependencies have not yet been initialized. Await componentDependenciesPromise promise first.");return cn}function vt(){if(mn===void 0)throw new Error("Component dependencies have not yet been initialized. Await componentDependenciesPromise promise first.");return mn}async function up(e){let n=I(e).peerDependencies??{},o=(await Promise.all(Object.keys(n).flatMap(async i=>await fn(i,e)))).filter(dn);return cn??=o,mn=Object.fromEntries(o.flatMap(i=>Object.entries(i.components))),o}var cn,mn,fe;async function fn(e,t){let n=await le(e,t),r=await pe(n),o="exports"in r,i=Tp.bind(void 0,o),s=d.join(n,"dist/esm/loader.js");if(await B(s)){let f=await ln(s,"utf8"),y=yp(f,"bootstrapLazy("),g=f.indexOf(", options",y),C=f.slice(y,g),u=C.startsWith('JSON.parse("')?C.slice(12,-2).replaceAll('\\"','"'):C;try{let x=JSON.parse(u),T=xp(x,{packageName:e,getImportPath:i});return{packageName:e,type:"stencil",components:T}}catch{console.warn(`${br}: Failed to parse dist/esm/loader.js for ${e}`)}}let l=xo(r.customElements);if(l){let f=d.join(n,l),y=JSON.parse(await ln(f,"utf-8")),g=gp(y),C=un(y,{packageName:e,getImportPath:i});return{type:g?"@arcgis/lumina":"unknown",packageName:e,components:C}}let p=xo(r["web-types"]);if(p){let f=d.join(n,p),y=JSON.parse(await ln(f,"utf-8")),g=hp(y,{packageName:e,getImportPath:i,packageRoot:n});return{type:"unknown",packageName:e,components:g}}let c=d.join(n,"dist/components");if(await B(c)){let f=await Cp(c,{packageName:e,getImportPath:i});return{type:"unknown",packageName:e,components:f}}}var xo=e=>Array.isArray(e)?e[0]:e;function yp(e,t){let n=e.indexOf(t);return n===-1?-1:n+t.length}var un=(e,t)=>Object.fromEntries(e.modules.flatMap(n=>n.declarations?.filter(r=>r.kind==="class"&&"tagName"in r&&"customElement"in r).map(r=>{let o=r,i=o,s=o.tagName;return[s,{packageName:t.packageName,moduleName:i.importPath??t.getImportPath(s),propToAttribute:Object.fromEntries((o.attributes??[]).map(a=>[a.fieldName??a.name,a.name]).filter(dn))}]})).filter(dn)),gp=e=>e.compiler?.name===De,hp=(e,t)=>Object.fromEntries((e.contributions?.html?.elements??e.contributions?.html?.tags)?.map(n=>[n.name,{packageName:t.packageName,moduleName:t.getImportPath(n.name),propToAttribute:{}}])??[]);var xp=(e,t)=>Object.fromEntries(e.flatMap(([n,r])=>r.map(([o,i,s={}])=>[i,{packageName:t.packageName,moduleName:t.getImportPath(i),propToAttribute:Object.fromEntries(Object.entries(s).filter(([a,[l]])=>l&15).map(([a,[l,p=a]])=>[a,p]))}]))),Cp=async(e,t)=>Object.fromEntries((await fp(e)).filter(n=>n.endsWith(".d.ts")).map(n=>{let r=n.slice(0,-5);return[r,{packageName:t.packageName,moduleName:t.getImportPath(r),propToAttribute:{}}]})),Tp=(e,t)=>e?`components/${t}`:`dist/components/${t}`;var bp=e=>e.startsWith("/")?e:`/${e}`,Le=(e,t)=>`${e}@fs${bp(t)}`;function te(e=I(),t=!1,n=e.name==="@esri/calcite-components"){let r=e.version.includes("next"),o=t||r?"jsdev.arcgis.com":"js.arcgis.com",i=vp(e.name),s=Ep(e.version,n);return["https://",o,i.length>0?"/":"",i,"/",s,"/"].join("")}var vp=e=>e.split("/").pop()??e;function Ep(e,t){if(/\d+\.\d+\.\d+-(?:.*)$/u.test(e))return"next";let r=/^(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/u,o=e.match(r);if(o?.groups){let{major:i,minor:s,patch:a}=o.groups,l=`${i}.${s}`;return t?`${l}.${a}`:l}return"next"}import{isNotUndefined as Mp}from"@arcgis/components-utils";import{readdir as kp}from"node:fs/promises";import{build as Pp}from"esbuild";import{getPreamble as Sp,identity as wp}from"@arcgis/components-utils";import ue from"typescript";function To(e){let t=e&&d.isAbsolute(e)?e:pt(e??"tsconfig.json");if(!t)throw new Error(`Unable to find ${E(String(e))} in ${process.cwd()}. Please make sure the file exists, or provide types.tsconfigPath option to useLumina()`);let n=ue.readConfigFile(t,ue.sys.readFile);if(n.error)throw new Error(ue.formatDiagnosticsWithColorAndContext([n.error],{getCanonicalFileName:wp,getCurrentDirectory:ue.sys.getCurrentDirectory,getNewLine:()=>ue.sys.newLine}));let r=ue.parseJsonConfigFileContent(n.config,ue.sys,d.dirname(t));return{path:t,config:r}}function bo(e=I()){let t=e.version??"0.0.1";return Sp(t)}var vo=e=>`/*!
|
|
61
|
+
${e.split(`
|
|
62
|
+
`).map(t=>` * ${t}`).join(`
|
|
63
|
+
`)}
|
|
64
|
+
*/`,L=e=>(t,n)=>{Object.defineProperty(t,n,{get(){throw new Error(`Tried to access '${String(n)}' before it was set. You can't access this property in global scope. However, it will be accessible by the time the following Vite plugin hook is called: ${e}`)},set(o){Object.defineProperty(t,n,{value:o,configurable:!0,writable:!0,enumerable:!0})},configurable:!0,enumerable:!0})};function Et(e){let t=e.options.target;if(t===void 0)throw new Error('TypeScript config must have a "target" property specified (or any parent tsconfig.json file if this config is extending another tsconfig.json)');let n=ue.ScriptTarget[t].toLowerCase();return n==="latest"?"esnext":n}function Ie(e){if(d.isAbsolute(e))throw new Error(`Documentation file name was expected to be a relative path (relative to dist). Instead, received an absolute path: ${e}`);return Pe(e)}var yn=new Set(["chunks","components","docs","types","controllers","cjs","esm","loader","utils","collection","extras","support"]),je="cdn";function Eo(e){let{skip:t=!1,namespace:n=je,esbuildOptions:r={}}=e.options.build?.cdn??{};if(n.toLowerCase()!==n)throw new Error(`Expected CDN namespace to be all lowercase. Received: ${n}`);if(yn.has(n))throw new Error(`Namespace name "${n}" is restricted as it collides with a well-known Lumina dist/ folder name or Stencil dist/ folder name.`);let o=n===je?"index":n;if(e.provideAssets([{type:"dynamic",source:()=>Vr(e),destination:`../${o}.css`}]),!t)return{name:"@arcgis/lumina:buildCdn",async writeBundle(){if(e.isInStorybook)return;let i=e.environment,s=Date.now();await Pp({bundle:!0,minify:i==="production",treeShaking:!0,sourcemap:i==="development"?"inline":e.options.build?.enableSourceMapsInProduction?"linked":!1,format:"esm",splitting:!0,outdir:e.dir.distCdn,legalComments:"none",logLevel:"warning",external:["@arcgis/core"],chunkNames:"[hash]",resolveExtensions:[".js",".json"],entryNames:`${o}.esm`,banner:{js:e.banner},target:Et(e.typeScriptConfig),...r,define:{"process.env.CDN":"true",...r.define},stdin:{contents:['import { defineCustomElements } from "./loader";',tn(e.globalCssString,e),"defineCustomElements();"].join(`
|
|
65
|
+
`),sourcefile:`${o}.esm.js`,resolveDir:"dist",loader:"js",...r.stdin}});let a=Date.now();console.log(`CDN was built in ${a-s}ms`)}}}async function wo(e,t,n,r){let o=await le(t),{hasCss:i,cdnName:s}=await gn(d.join(o,"dist"))??{};if(n==="storybookBuild"){let l=await pe(o),p=te(l,!0);return[...i?[{tag:"link",attrs:{rel:"stylesheet",src:`${p}${s}.css`}}]:[],{tag:"script",attrs:{type:"module",src:`${p}${s}.esm.js`}}]}return[{javascriptCode:[...i?[`import styles$${r} from "${t}/dist/${s}/${s}.css${ce}";`,`document.adoptedStyleSheets = [...document.adoptedStyleSheets, styles$${r}.styleSheet];`]:[],`import { defineCustomElements as defineCustomElements$${r} } from "${t}/dist/esm/loader.js";`,`defineCustomElements$${r}(globalThis.window, {`,` resourcesUrl: "${Le(e,o)}/dist/${s}/",`,"});"]}]}async function gn(e){let n=(await kp(e)).filter(o=>!yn.has(o)&&!o.includes(".")),r=n.find(o=>o.startsWith("arcgis-"));return r?await So(e,r):await Promise.all(n.map(async o=>await So(e,o))).then(o=>o.find(Mp))}async function So(e,t){let n=d.join(e,t,`${t}.css`),r=d.join(e,t,"assets"),[o,i]=await Promise.all([B(n),B(r)]);return o||i?{hasCss:o,cdnName:t}:void 0}async function Po(e,t,n,r){let o=await le(t),i=await gn(d.join(o,"dist"));if(i===void 0)throw new Error(`Failed to infer the CDN namespace name for the ${t}`);let{cdnName:s}=i;if(n==="storybookBuild"){let a=await pe(o);return{tag:"script",attrs:{type:"module",src:`${te(a,!0)}${s}.esm.js`}}}return{javascriptCode:[`import { defineCustomElements as defineCustomElements$${r} } from "${t}/loader";`,`defineCustomElements$${r}({`,` resourcesUrl: "${Le(e,o)}/dist/${s}/",`,"});"]}}var ko="@arcgis/core",Fp=I(),hn=ko in(Fp.peerDependencies??{});async function Fo(e,t){if(!hn)return[];let n=await le(ko);if(t==="storybookBuild"){let r=await pe(n),o=te({name:"",version:r.version},!0);return[{tag:"script",attrs:{type:"importmap"},children:JSON.stringify({imports:{"@arcgis/core/":`${o}@arcgis/core/`}})},Mo(o)]}else return[Mo(Le(e,`${n}/assets/`))]}var Mo=e=>({cssHref:`${e}esri/themes/light/main.css`,id:"arcgisCoreStylesheet"});var St=new WeakMap;async function wt(e){let t=e.isInStorybook&&e.viteCommand==="build"?"storybookBuild":"lazy",n=e.viteConfig.base,r=async s=>(await Promise.all(s.map(async(a,l)=>a.type==="stencil"?await wo(n,a.packageName,t,l):a.type==="@arcgis/lumina"?await Po(n,a.packageName,t,l):void 0))).filter(Dp).flat(),o=await Promise.all([fe.then(r),St.get(e).then(r),Fo(n,t)]);return[...e.viteCommand==="serve"?[xn]:[],...o.flat(),{javascriptCode:[`import { defineCustomElements } from "${d.join(e.dir.src,"loader.ts")}";`,`defineCustomElements(${t==="storybookBuild"?`{resourcesUrl:"./${e.options.build?.cdn?.namespace??je}/"}`:""});`]}]}var xn={javascriptCode:["globalThis.litIssuedWarnings ??= new Set();","globalThis.litIssuedWarnings.add(",'"Lit is in dev mode. Not recommended for production! See https://lit.dev/msg/dev-mode for more information.",',");"]};var Cn="/@arcgis/lumina-compiler/testLitSetupFile",Tn="/@arcgis/lumina-compiler/testSetupFile",bn=[Cn,Tn],Ao=xn.javascriptCode.join(`
|
|
66
|
+
`);async function $o(e){if(!e.viteConfig.test?.browser?.enabled)return Do(e);let n=(await wt(e)).map((r,o)=>{if("javascriptCode"in r)return r.javascriptCode.join(`
|
|
67
|
+
`);if("cssHref"in r)return[`import styles$t${o} from "${r.cssHref}${ce}";`,`document.adoptedStyleSheets = [...document.adoptedStyleSheets, styles$t${o}.styleSheet];`].join(`
|
|
68
|
+
`);throw new Error(`Unexpected loader type for the browser test environment: ${JSON.stringify(r)}`)}).join(`
|
|
69
|
+
|
|
70
|
+
`);return[Do(e),n].join("")}var Do=e=>[e.isInPuppeteerTestBackEnd?Ap:"",$p].join(""),Ap=`import { setupPuppeteerTest } from "@arcgis/lumina-compiler/puppeteer-testing";
|
|
71
|
+
setupPuppeteerTest();
|
|
72
|
+
`,$p=`import { setupLuminaTest } from "@arcgis/lumina-compiler/testing";
|
|
73
|
+
setupLuminaTest();
|
|
74
|
+
`;function Lo(e){let t;async function n(){let u=t===void 0;u&&e.viteCommand==="serve"&&(e.typeScriptHost=Lp.createCompilerHost(e.typeScriptConfig.options,!1)),t??=[Np().find(({name:v})=>v==="CORE - LIT-PROPERTY-DECORATOR"),yo(e),io(e),...e.viteCommand==="build"?[eo(e)]:[],no(e),...e.options.manifests?.plugins??[]],u||(e.componentFilesPromise=ze(e,e.dir.srcComponents));let x=await e.componentFilesPromise,T=await jp(e,x);return Yt({plugins:t,modules:T,context:Kr},e,!1)}function r(u,x){if(s===void 0)return!1;let T=e.getSourceFile(u,x),{modules:[v]}=Yt({plugins:t,modules:[T]},e,!0),D=e.manifest.modules.findIndex(K=>K.path===v.path),W=e.manifest.modules[D],A=Array.from(e.manifest.modules);A.splice(D,1,v),e.manifest={...e.manifest,modules:A};let X=[],xe=U(v,!0);e.manifestComponents=e.manifestComponents.filter(K=>K.sourcePath===W.path?(X.push(K),!1):!0);let He=xe.length!==X.length,Rt=xe.map(K=>{let ss=X.find(as=>as.tagName===K.tagName)===void 0;return He||=ss,K});return He?!1:(Rt.forEach(K=>{let Bn=rn(K);e.server.ws.send({type:"custom",event:"component-meta-update",data:Bn}),e.manifestComponents.push(K),K.sourcePath=v.path}),g(),!0)}let o=!1,i,s,a,l,p,c="@arcgis/lumina:generateManifestPlugin",m={name:c,configResolved(){l=d.join(e.dir.root,"src","loader.ts"),p=E(l)},resolveId:u=>u===l||u===p?l:void 0,async load(u){let x=u.startsWith(Cn),T=u.startsWith(Tn);if(!(!u.endsWith(".tsx")&&u!==l&&!x&&!T)){if(!s&&!e.isInPuppeteerTestBackEnd){a||clearTimeout(i),a??=n().catch(D=>{throw o=!0,D});let v=await a;s??=v}return u===l?qr(e):x?Ao:T?await $o(e):void 0}},async writeBundle(){e.isInStorybook||await Ip(d.join(e.dir.dist,"loader.d.ts"),Gr)},async handleHotUpdate({file:u,modules:x,read:T}){let v=await f(u,T);return v===void 0?void 0:v?x:(y(),[])},configureServer(u){if(e.isInPuppeteerTestBackEnd)return;e.isInTest&&u.watcher.on("change",T=>{f(T,async()=>await No(T,"utf8")).catch(console.error)}),u.watcher.on("add",x),u.watcher.on("unlink",x),u.watcher.on("addDir",T=>T.startsWith(e.dir.srcComponents)?void ze(e,e.dir.srcComponents,T).then(v=>v.length>0?y():void 0):void 0),u.watcher.on("unlinkDir",T=>{e.componentFiles.some(D=>D.startsWith(T))&&y()});function x(T){de(T,e.dir.srcComponents)&&y()}u.watcher.on("change",()=>{if(!o)return;o=!1,i=setTimeout(()=>y(!0),1e3)})}};async function f(u,x){if(!de(u,e.dir.srcComponents))return;let v=await x();return r(u,v)}function y(u=!1){!u&&s===void 0||(s=void 0,a=void 0,g(),C())}function g(){let u=e.server.moduleGraph.getModuleById(l);u?e.server.moduleGraph.invalidateModule(u):(console.warn(`${c}: Failed to find HMR module for src/loader.ts`),e.server.moduleGraph.invalidateAll())}let C=()=>e.server.ws.send({type:"full-reload",path:d.join("/",d.relative(e.dir.root,l))});return m}async function jp(e,t){if(e.viteCommand==="build"){let n=e.typeScriptProgram.getSourceFiles(),r=new Set(t);return n.filter(o=>r.has(o.fileName))}else return await Promise.all(t.map(async n=>{let r=await No(n,"utf8");return e.getSourceFile(n,r)}))}import Rp from"mime-types";import{copyFile as Op,readFile as jo,readdir as Jp,mkdir as vn,writeFile as Ro}from"node:fs/promises";var Bp="@arcgis/lumina:provideAssets";function ye(e,t,n=Mt){if(e.viteCommand!=="serve")throw new Error("serveAssets() is only available when Vite is running in serve mode");let r=e.serverConfigured,o=e.server.middlewares.stack.length;if(t.forEach(i=>{let s=Oo(i),a=Bo(e.dir,Jo(s)),l=Wp(e.viteConfig.base,a,e.dir.distCdn);e.server.middlewares.use(l,(p,c,m)=>{let f=Kp(p.url),y=s.type==="directory"?d.resolve(s.source,f.slice(1)):s.source,g=d.join(a,f),C=n.find(u=>u.match(g,e));return(typeof y=="function"?Promise.resolve(y()):jo(y)).then(u=>{let x=(typeof y=="function"?void 0:C?.transform(u.toString("utf8"),g,e))??u;c.setHeader("Cache-Control","max-age=31536000, immutable"),c.setHeader("Content-Type",Rp.lookup(f)||"application/octet-stream"),c.write(x),c.end()}).catch(u=>{(s.type!=="directory"||process.env.DEBUG)&&console.error(Bp,`Error occurred when trying to serve a file in response to request for "${p.originalUrl??f}":`,u),m()}),!0})}),r){let i=e.server.middlewares.stack.splice(o);e.server.middlewares.stack.splice(0,0,...i)}}async function Pt(e,t,n=Mt){await Promise.all(t.map(async r=>{let o=Oo(r),i=Bo(e.dir,Jo(o));if(o.type==="directory"){let s=d.resolve(o.source),l=(await Jp(s,{recursive:!0,withFileTypes:!0})).filter(p=>p.isFile()).map(p=>{let c=d.resolve(p.path,p.name),m=d.relative(s,c),f=d.join(i,m);return[c,f]});await En(l.map(([p,c])=>c)),await Promise.all(l.map(async([p,c])=>await Io(p,c,n,e)))}else if(o.type==="file")await vn(d.dirname(i),{recursive:!0}),await Io(o.source,i,n,e);else if(o.type==="dynamic"){await vn(d.dirname(i),{recursive:!0});let s=await Promise.resolve(o.source());await Ro(i,s)}}))}var Oo=Ot?e=>e:e=>e.type==="dynamic"?{...e,destination:Pe(e.destination)}:{...e,source:Pe(e.source),destination:Pe(e.destination)};async function Io(e,t,n,r){let o=n.find(i=>i.match(t,r));if(o===void 0)await Op(e,t);else{let i=await jo(e,"utf8"),s=o.transform(i,t,r);await Ro(t,s)}}function Jo(e){if(e.type==="dynamic")return e.destination;if(e.source.endsWith(d.sep)){if(e.type==="file")throw new Error(`Unexpectedly tried to provide an asset with type "file", whose source looks like a directory: ${E(e.source)}. If source is meant to be a directory, change to "type":"directory". If source is a file, make sure source path does not end with / or \\`);return e.destination}return e.destination===""?d.basename(e.source):e.destination.endsWith(d.sep)?e.type==="directory"&&e.destination===d.sep?e.destination:d.join(e.destination,d.basename(e.source)):e.destination}function Bo({dist:e,distCdnAssets:t},n){let r=Hp(n),o=d.join(t,r?d.relative(t,n):n),i=d.relative(e,o),s=Ho(i);return d.join(e,s)}function Hp(e){if(e.startsWith(d.sep)){let t=Q(),n=t.startsWith(d.sep)?t.split(d.sep)[1]??"":"";return e.startsWith(`/${n}/`)||e.startsWith("/Users/")}else return!!(!Ot&&d.isAbsolute(e))}function Wp(e,t,n){let r=Ho(d.relative(n,t)),o=r.startsWith("/")?r.slice(1):r;return`${e}${o}`}var Ho=e=>e.replaceAll("../",""),Kp=(e="")=>e.split("?")[0].split("#")[0];async function En(e){let t=new Set(e.map(d.dirname));await Promise.all(Array.from(t,async n=>await vn(n,{recursive:!0})))}var Up={match:(e,t)=>t.environment==="production"&&e.endsWith(".json"),transform:e=>JSON.stringify(JSON.parse(e))},Mt=[Up];import{isNotUndefined as zp}from"@arcgis/components-utils";function Wo(e){let t,n=()=>[...e.options.assets?.transformers??[],...Mt];return{name:"@arcgis/lumina:handleStaticAssets",configResolved(){t=Vp(e)},async configureServer(r){e.server=r,!e.isInPuppeteerTestBackEnd&&(ye(e,await t,n()),r.watcher.on("addDir",o=>{if(o.endsWith("assets")){let i=d.dirname(o);d.join(i,"/")===e.dir.root?ye(e,[Uo],n()):o.startsWith(e.dir.srcComponents)&&ye(e,[Ko(o,i,e.dir.srcComponents)],n())}}))},async writeBundle(){await Pt(e,await t,n())}}}async function Vp(e){let t=B("assets"),n=await e.componentFilesPromise,r=await Promise.all(n.map(async o=>{let i=d.dirname(o),s=d.join(i,"assets");return await B(s)?Ko(s,i,e.dir.srcComponents):void 0}));return await t&&r.push(Uo),r.filter(zp)}var Ko=(e,t,n)=>({type:"directory",source:e,destination:d.relative(n,t)}),Uo={type:"directory",source:"assets/",destination:""};import{mkdir as qp,writeFile as kt}from"node:fs/promises";function zo(e){let{stencilCompatibility:t}=e.options.build?.ssr??{};if(t?.enabled===!0)return{name:"@arcgis/lumina:buildStencilHydrate",async writeBundle(){if(e.isInStorybook)return;let n=I()?.name??e.options.build?.cdn?.namespace??d.basename(e.dir.root),r=`${n}/hydrate`,o=d.resolve(e.dir.root,t.path??"hydrate"),i="index.d.ts",s="index.js",a="index.mjs",l=d.join(o,"index.d.ts"),p=d.join(o,"index.js"),c=d.join(o,"index.mjs"),m=Y(o,e.dir.dist),y=`${Array.from(new Set(e.manifestComponents.map(g=>`import "${m}/${g.importPath}";`))).join(`
|
|
75
|
+
`)}
|
|
76
|
+
export * from "@arcgis/lumina/stencil-ssr-compatibility";`;await qp(o,{recursive:!0}),await Promise.all([kt(d.join(o,"package.json"),`${JSON.stringify({name:r,description:`${n} component hydration app.`,type:"module",main:s,module:a,types:i,exports:{".":{types:`./${i}`,import:`./${a}`,require:`./${s}`}},dependencies:{"@arcgis/lumina":"*"}},null,2)}
|
|
77
|
+
`),kt(l,y),kt(p,y),kt(c,y)])}}}var _o=e=>({name:"@arcgis/lumina:printTotalBuildSize",apply:()=>e.viteCommand==="build",configResolved(t){let n=t.plugins.find(({name:o})=>o==="vite:reporter");if(n===void 0){console.warn("Unable to find the vite's built-in vite:reporter plugin");return}let r=n.writeBundle;if(typeof r!="function")throw new Error("Expected vite:reporter to declare a writeBundle() function");n.writeBundle=async function(i,s){let a=0,l=0,p=0,c=0,m=console.log;console.log=function(...y){if(m.apply(console,y),y.length===1&&typeof y[0]=="string"){let[g,C]=y[0].match(_p)??[];if(!g)return;c||(c=y[0].slice(0,y[0].indexOf(g)+g.length).replaceAll(Xp,"").length);let u=Number.parseFloat(g.replace(" kB","").replaceAll(",",""));C?(p+=Number.parseFloat(C.replace(" kB","").replaceAll(",","")),l+=u):a+=u}};try{await r.call(this,i,s)}finally{console.log=m}if(l>0){let y=p>0?l:a,g=Go(y),C=e.dir.relativeDist;console.log([qo,C,Gp,"*"," ".repeat(c-`${C}*`.length-g.length),g,Vo,p>0?` ${qo}\u2502 gzip: ${Go(p)}${Vo}`:""].join(""))}}}}),Vo="\x1B[22m\x1B[1m\x1B[22m",qo="\x1B[2m",Gp="\x1B[22m\x1B[36m",_p=/\d+(?:,\d+)?\.\d{2} kB/gu,Xp=/\x1B\[\d+m/gu,Qp=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),Go=e=>`${Qp.format(e)} kB`;var Xo=e=>({name:"@arcgis/lumina:configureVite",async config({server:t,publicDir:n,build:{target:r,sourcemap:o,lib:i,rollupOptions:{output:s=[]}={}}={},test:{testTimeout:a,include:l,browser:p,environment:c,inspect:m,inspectBrk:f}={}}){if(e.isInPuppeteerTestBackEnd){if(p?.enabled===!0)throw new Error("Can't enable both Vitest browser mode and Puppeteer testing at the same time");return{test:{puppeteerLaunchOptions:e.options.puppeteerTesting?.launchOptions,globalSetup:["@arcgis/lumina-compiler/puppeteer-testing/globalSetup"],runner:"@arcgis/lumina-compiler/puppeteer-testing",include:l??["**/*.e2e.?(c|m)[jt]s?(x)"],environment:c??"happy-dom",setupFiles:bn}}}return{server:{open:t?.open??!0},publicDir:n??!1,build:{target:r??Et(e.typeScriptConfig),sourcemap:o??(e.environment==="development"?"inline":e.options.build?.enableSourceMapsInProduction??!1),lib:{entry:{index:"src/index.ts",loader:"src/loader.ts",...await Ar(e)},formats:(i?i.formats:void 0)??["es"]},rollupOptions:{output:{chunkFileNames:(Array.isArray(s)?void 0:s.chunkFileNames)||"chunks/[name].js",banner:(Array.isArray(s)?void 0:s.banner)||e.banner,generatedCode:(Array.isArray(s)?void 0:s.generatedCode)??"es2015"}}},test:{include:l??[p?.enabled??!0?"**/*.e2e.?(c|m)[jt]s?(x)":"**/*.{test,spec}.?(c|m)[jt]s?(x)"],testTimeout:a??(m||f?Yp:void 0),browser:{enabled:p?.enabled??!0,name:p?.name??"chromium",provider:p?.provider??Un},setupFiles:bn}}}}),Yp=1e3*60*60;var Qo=e=>({name:"@arcgis/lumina:setAssetPath",apply:()=>e.viteCommand==="build",config:t=>({base:t.base??e.options.assets?.defaultPath??te()})});import Sn from"typescript";var Re={vsCodeHtml:"docs/vscode.html-custom-data.json",vsCodeCss:"docs/vscode.css-custom-data.json",webTypes:"docs/web-types.json",manifest:"docs/manifest.json",stencilLikeDocsJson:"docs/docs.json"};var Ft="@arcgis/lumina:compilerContextPlugin",P=class{constructor(t){this._typeScriptSourceFiles={};this.plugin={name:Ft,enforce:"pre",apply:(t,n)=>(this._inferBuildSetup(n,t.define),!0),configResolved:{order:"pre",handler:t=>{this.viteConfig=t,this.shouldMinify=this.viteCommand!=="serve"&&t.build.minify!==!1;let n=d.join(t.root,d.sep),r=d.join(n,"src",d.sep),o=d.join(r,"components",d.sep),i=d.join(d.resolve(n,t.build.outDir),d.sep),s=d.join(d.relative(n,i),d.sep),a=d.join(i,"components",d.sep),l=d.join(i,this.options.build?.cdn?.namespace??je,d.sep),p=d.join(l,"assets",d.sep);this.dir={root:n,src:r,srcComponents:o,relativeDist:s,dist:i,distComponents:a,distCdn:l,distCdnAssets:p},t.root!==Q()?console.warn(`${Ft}: Vite's config.root is not equal process.cwd(). This is not officially supported by Lumina and may lead to unexpected behavior. Contact Lumina maintainers if you need this to be supported.`):i===n?console.warn(`${Ft}: Vite output directory is set to the root directory. This can produce unexpected behavior. Please set the output directory to a subdirectory of the root directory (i.e dist/)`):s.startsWith("..")&&console.warn(`${Ft}: Vite output directory is outside the root directory. This is not officially supported by Lumina and may lead to unexpected behavior. Contact Lumina maintainers if you need this to be supported.`),this.typeScriptConfig.options.sourceMap=t.build.sourcemap!==!1,this.isInStorybook=t.resolve.conditions.includes("storybook"),this.hmrEnabled=this.viteCommand==="serve"&&!this.isInTest&&!!(t.server?.hmr??!0)}},configureServer:{order:"post",handler:()=>{this.serverConfigured=!0}}};this.isInCi=!!process.env.CI;this.declarationTextTransformers=[];this.serverConfigured=!1;this.assetsToProvide=[];this.options=t;let n=t.documentation??{};this.documentationFileNames={manifest:n.manifestFileName?Ie(n.manifestFileName):Re.manifest,stencilLikeDocsJson:n.stencilLikeDocsJsonFileName?Ie(n.stencilLikeDocsJsonFileName):Re.stencilLikeDocsJson,webTypes:n.jetBrains?.webTypesFileName?Ie(n.jetBrains.webTypesFileName):Re.webTypes,vsCodeHtml:n.vsCode?.htmlFileName?Ie(n.vsCode.htmlFileName):Re.vsCodeHtml,vsCodeCss:n.vsCode?.cssFileName?Ie(n.vsCode.cssFileName):Re.vsCodeCss},bt().catch(console.error),this.componentFilesPromise=ze(this,d.resolve("src/components"));let r=To(t.types?.tsconfigPath);this.typeScriptConfigPath=r.path,this.typeScriptConfig=r.config;let o=t.build?.preamble??bo();this.banner=vo(o)}_inferBuildSetup({command:t,mode:n},r){this.isInTest=process.env.NODE_ENV==="test",n==="production"||n==="development"?this.environment=n:n==="test"||n==="benchmark"?(this.environment="development",this.isInTest=!0):(console.warn(`${De}: Vite is running in unknown mode "${n}". Assuming development`),this.environment="development"),this.viteCommand=t;let o=r?.__IS_IN_PUPPETEER__===!0,i=this.viteCommand==="serve"&&this.isInTest&&this.options.puppeteerTesting?.enabled!==!1;this.isInPuppeteerTestBackEnd=i&&!o,this.isInPuppeteerTestFrontEnd=i&&o}getSourceFile(t,n){let r=this.typeScriptProgram?.getSourceFile(t);if(!r){if(this.viteCommand==="build")throw new Error(`Unable to find the TypeScript source file for ${t}`);{let i=this._typeScriptSourceFiles[t];i!==void 0&&i.text===n&&(r=i)}}return n!==r?.text&&(r=Sn.createSourceFile(t,n,r?.languageVersion??this.typeScriptConfig.options.target??Sn.ScriptTarget.Latest,!0,Sn.ScriptKind.TSX),this.viteCommand==="serve"&&(this._typeScriptSourceFiles[t]=r)),r}provideAssets(t,n,r){if(Array.isArray(this.assetsToProvide))this.assetsToProvide.push({assets:t,transformers:n,apply:r});else if(this.viteCommand==="serve")r==="serve"&&ye(this,t,n);else throw new Error("It is too late to call provideAssets() as Vite already wrote the bundle to disk. Please call provideAssets() before Vite's writeBundle()")}};$([L("buildStart() in build mode or load() serve mode")],P.prototype,"typeScriptHost",2),$([L("configResolved()")],P.prototype,"shouldMinify",2),$([L("configResolved()")],P.prototype,"dir",2),$([L("load()")],P.prototype,"manifest",2),$([L("load()")],P.prototype,"manifestComponents",2),$([L("load() when in build mode")],P.prototype,"componentPathMapping",2),$([L("apply()")],P.prototype,"environment",2),$([L("apply()")],P.prototype,"isInTest",2),$([L("apply()")],P.prototype,"isInPuppeteerTestBackEnd",2),$([L("apply()")],P.prototype,"isInPuppeteerTestFrontEnd",2),$([L("configResolved()")],P.prototype,"isInStorybook",2),$([L("configResolved()")],P.prototype,"hmrEnabled",2),$([L("apply()")],P.prototype,"viteCommand",2),$([L("configResolved()")],P.prototype,"viteConfig",2),$([L("configResolved()")],P.prototype,"server",2),$([L("transform()")],P.prototype,"globalHydratedCssString",2),$([L("config()")],P.prototype,"componentFiles",2);import{isNotUndefined as ol}from"@arcgis/components-utils";import{readFile as Zp,writeFile as el}from"node:fs/promises";async function Dt(e,t,n,r){let o=tl(e,n,r),i=d.join(t,"lumina.ts");(await B(i)?await Zp(i,"utf8"):"")!==o&&await el(i,o)}function tl(e,t,n,r=I()){let o=e.filter(m=>m.type==="@arcgis/lumina").map(m=>`
|
|
78
|
+
/// <reference types="${m.packageName}/types/lumina" />`),i=e.filter(m=>m.type==="stencil"),s=i.map((m,f)=>`
|
|
79
|
+
import type { JSX as JSX$${f} } from "${m.packageName}/dist/types/components";`),a=i.length===0?"":`
|
|
80
|
+
|
|
81
|
+
declare global {
|
|
82
|
+
interface ImportStencilElements extends ${i.map((m,f)=>`JSX$${f}.IntrinsicElements`).join(", ")} {}
|
|
83
|
+
}`,l=r.devDependencies??{},p=n==="preview"?"matchers":n==="webdriverio"?"webdriverio":"playwright";return[...nl,t?rl:"","vitest"in l?`
|
|
84
|
+
/// <reference types="vitest/config" />`:"","@vitest/browser"in l?`
|
|
85
|
+
/// <reference types="@vitest/browser/jest-dom.d.ts" />`:"","@vitest/browser"in l?`
|
|
86
|
+
/// <reference types="@vitest/browser/providers/${p}" />`:"",...o,...s,a,`
|
|
87
|
+
`].join("")}var nl=`/**
|
|
88
|
+
* This file is autogenerated by \`@arcgis/lumina-compiler\` - do not edit it manually.
|
|
89
|
+
* Manual edits will be overwritten.
|
|
90
|
+
*
|
|
91
|
+
* This file provides JSX typings for the component libraries your package uses,
|
|
92
|
+
* as well as @arcgis/core typings if you use @arcgis/core.
|
|
93
|
+
*
|
|
94
|
+
* If you need to provide additional typings, create a separate file.
|
|
95
|
+
*/
|
|
96
|
+
/// <reference types="@arcgis/lumina/typings" />`,rl=`
|
|
97
|
+
/// <reference types="@arcgis/core/interfaces" />`;var Yo="@arcgis/lumina:dependencySupport",Zo=e=>({name:Yo,configResolved(){if(!(e.viteCommand==="serve"||e.isInStorybook))return;let n=e.options?.serve?.extraDependencies??[];St.set(e,Promise.all(n.map(async r=>await fn(r))).then(r=>r.filter(ol))),e.environment==="development"&&!e.isInTest&&il(e).catch(r=>console.error(`${Yo}: Failed to update package's src/lumina.ts`,r))},transformIndexHtml:{order:"pre",async handler(t,n){return e.viteCommand==="serve"||e.isInStorybook&&n.path==="/iframe.html"?(await wt(e)).map(i=>"javascriptCode"in i?{tag:"script",attrs:{type:"module"},children:i.javascriptCode.join(`
|
|
98
|
+
`)}:"cssHref"in i?{tag:"link",attrs:{rel:"stylesheet",href:i.cssHref,id:i.id}}:i):void 0}}});async function il(e){let n=(await Promise.all([fe,St.get(e)])).flat();await Dt(n,e.dir.src,hn,e.viteConfig.test?.browser?.provider)}import{writeFile as ri}from"node:fs/promises";function ti(e,t,n){let r=vt()[t]??wn(e.manifest)[t];if(r===void 0){let o=E(n);throw new Error(`Unable to resolve the definition of the "${t}" custom element. Used in ${o}. If this is coming from an external package, make sure that package is installed as a peerDependency. If in development-only you wish to use a component package that is defined as a devDependency, then provide serve.extraDependencies option to useLumina()`)}return r}function ni(e,t){return e.packageName===void 0?Y(t,e.moduleName):d.join(e.packageName,e.moduleName)}var ei=new WeakMap;function wn(e){let t=ei.get(e);if(t)return t;let n=un(e,{packageName:void 0,getImportPath(){throw new Error("not supposed to be called for local components")}});return ei.set(e,n),n}var oi=e=>({name:"@arcgis/lumina:addNonLazyImports",apply:()=>e.viteCommand==="build",generateBundle(t,n){Object.entries(n).forEach(([r,o])=>{let i=se(r,"components/",e);if(i!==r&&(o.fileName=i),o.type==="chunk"){let s=d.dirname(d.join(e.dir.dist,r)),a=i===r?s:d.dirname(d.join(e.dir.dist,i));o.code=Jt(o.code,e,a,s)}})},async writeBundle(){if(e.isInStorybook)return;let t=We.get(e)??{},n=Object.entries(t),r=new Set(n.map(([i])=>i).filter(i=>de(i,e.dir.srcComponents)));n.forEach(([i,{referencedTagNames:s,referencedBy:a}])=>{if(r.has(i)||s.length===0)return;let l=ii(t,a,r);if(l.forEach(p=>{t[p].referencedTagNames.splice(0,0,...s)}),s.length>0&&l.length===0){let p=E(i);throw new Error(`Unable to determine what files imported ${p}. This is necessary because this file referenced other web components (${s.join(", ")}), and so the compiler needs to know what component entrypoints these imports should be added to. Please double check if you are referencing ${p} in the code dynamically in the way that Lumina can not detect, and report this issue to the Lumina maintainers.`)}});let o=n.flatMap(([i,{referencedTagNames:s}])=>{if(!r.has(i))return[];let a=d.dirname(i),l=se(a,e.dir.srcComponents,e),p=d.relative(e.dir.src,l),c=s.map(y=>ni(ti(e,y,i),p)).filter(y=>y!==`./${p}`),f=`${Array.from(new Set(c),y=>`import "${y}";
|
|
99
|
+
`).join("").trimStart()}export * from "./${Me}";`;return[ri(d.join(e.dir.dist,p,sl),f),ri(d.join(e.dir.dist,p,al),f)]});await Promise.all(o)}}),sl="index.js",al="index.d.ts",ii=(e,t,n,r=new Set)=>t.flatMap(o=>n.has(o)?[o]:r.has(o)?[]:(r.add(o),ii(e,e[o].referencedBy,n,r)));import Hl from"typescript";import Ml from"typescript";import b from"typescript";import S from"typescript";import Pn from"typescript";var ne="staticHtml",re="staticSvg",G="html",oe="svg",Mn="css",kn="mathml",pl=[Mn,G,kn,ne,re,oe],si=new Set(pl),Oe=e=>Pn.isJsxElement(e)||Pn.isJsxSelfClosingElement(e)||Pn.isJsxFragment(e);import{mappedFind as cl,uncapitalize as ai}from"@arcgis/components-utils";import h from"typescript";function Fn(e,t){return Je(e)?e:(t.neededImports.add("nothing"),h.factory.createParenthesizedExpression(h.factory.createBinaryExpression(h.factory.createParenthesizedExpression(e),h.factory.createToken(h.SyntaxKind.QuestionQuestionToken),h.factory.createIdentifier("nothing"))))}function Je(e){return typeof e=="string"||ll.has(e.kind)||h.isConditionalExpression(e)&&Je(e.whenTrue)&&Je(e.whenFalse)||h.isBinaryExpression(e)&&(dl.has(e.operatorToken.kind)||Je(e.left)&&Je(e.right))||(h.isParenthesizedExpression(e)||h.isSatisfiesExpression(e)||h.isAsExpression(e))&&Je(e.expression)||h.isTaggedTemplateExpression(e)&&h.isIdentifier(e.tag)&&si.has(e.tag.text)}var ll=new Set([h.SyntaxKind.NumericLiteral,h.SyntaxKind.BigIntLiteral,h.SyntaxKind.StringLiteral,h.SyntaxKind.RegularExpressionLiteral,h.SyntaxKind.NoSubstitutionTemplateLiteral,h.SyntaxKind.FalseKeyword,h.SyntaxKind.NullKeyword,h.SyntaxKind.TrueKeyword,h.SyntaxKind.ArrayLiteralExpression,h.SyntaxKind.ObjectLiteralExpression,h.SyntaxKind.FunctionExpression,h.SyntaxKind.ArrowFunction,h.SyntaxKind.TypeOfExpression,h.SyntaxKind.PrefixUnaryExpression,h.SyntaxKind.PostfixUnaryExpression,h.SyntaxKind.TemplateExpression,h.SyntaxKind.ClassExpression,h.SyntaxKind.NonNullExpression]),dl=new Set([h.SyntaxKind.PlusEqualsToken,h.SyntaxKind.MinusEqualsToken,h.SyntaxKind.AsteriskAsteriskEqualsToken,h.SyntaxKind.AsteriskEqualsToken,h.SyntaxKind.SlashEqualsToken,h.SyntaxKind.PercentEqualsToken,h.SyntaxKind.AmpersandEqualsToken,h.SyntaxKind.BarEqualsToken,h.SyntaxKind.CaretEqualsToken,h.SyntaxKind.LessThanLessThanEqualsToken,h.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken,h.SyntaxKind.GreaterThanGreaterThanEqualsToken,h.SyntaxKind.AmpersandToken,h.SyntaxKind.BarToken,h.SyntaxKind.CaretToken,h.SyntaxKind.EqualsEqualsToken,h.SyntaxKind.EqualsEqualsEqualsToken,h.SyntaxKind.ExclamationEqualsEqualsToken,h.SyntaxKind.ExclamationEqualsToken,h.SyntaxKind.LessThanToken,h.SyntaxKind.LessThanEqualsToken,h.SyntaxKind.GreaterThanToken,h.SyntaxKind.GreaterThanEqualsToken,h.SyntaxKind.InstanceOfKeyword,h.SyntaxKind.InKeyword,h.SyntaxKind.LessThanLessThanToken,h.SyntaxKind.GreaterThanGreaterThanToken,h.SyntaxKind.GreaterThanGreaterThanGreaterThanToken,h.SyntaxKind.PlusToken,h.SyntaxKind.MinusToken,h.SyntaxKind.AsteriskToken,h.SyntaxKind.SlashToken,h.SyntaxKind.PercentToken,h.SyntaxKind.AsteriskAsteriskToken]);var di={property(e,t,n,r){let o=ml(r,n,e),i=o!==void 0;if(i){let l=An(t);if(l===!0)return[o.attributeName];if(l===!1)return[]}let s=t===void 0?["=",S.factory.createToken(S.SyntaxKind.TrueKeyword)]:At(e,t,i),a=s[0]!=="=";if(i){if(a)return[o.attributeName,...s];if(o.type==="stringified"){let[p,c]=s,m=Fn(c,e);if(!(m===c))return[o.attributeName,p,m]}}return[`.${n}`,...s]},attribute(e,t,n){let r=t===void 0||An(t);if(r===!0)return[n];if(r===!1)return[];let o=At(e,t,!0),s=o[0]!=="="?o:[o[0],Fn(o[1],e)];return[n,...s]},booleanAttribute(e,t,n){let r=t===void 0||An(t);return r===!0?[n]:r===!1?[]:[`?${n}`,...At(e,t,!1)]},event(e,t,n){if(!t||!S.isJsxExpression(t)||!t.expression)throw new Error(`Event prop value must be an expression. Found ${String(t?.getText())}`);let r=n.slice(2),o=ai(r);return[`@${Ct.has(o)?r.toLowerCase():ao?ai(r):r}=`,...$t(e,t)]},directives(e,t){if(!t||!S.isJsxExpression(t))throw new Error(`Directives prop must be an expression. Found ${String(t?.getText())}`);if(!t.expression||!S.isArrayLiteralExpression(t.expression))throw new Error(`Directives prop must be an array rather than a variable or ternary expression. This limitation can be relaxed in the future if needed. Still, the following are allowed: directives={[directiveA, condition ? a : b, c()]}. Found ${String(t.expression?.getText())}`);return t.expression.elements.flatMap(o=>{if(S.isSpreadElement(o))throw new Error(`Directives prop can not contain a spread argument - it needs to be statically analyzable. This limitation can be relaxed in the future if needed. Still, the following are allowed: directives={[directiveA, condition ? a : b, c()]}. Found ${String(t.expression?.getText())}`);return ie(e,o)})},ref(e,t){if(e.neededImports.add("ref"),!t||!S.isJsxExpression(t)||!t.expression)throw new Error(`ref prop value must be an expression. Found ${String(t?.getText())}`);return[S.factory.createCallExpression(S.factory.createIdentifier("ref"),void 0,[ie(e,t.expression)])]},class:li,style:li,key:(e,t)=>[Ye(t)]};function ml(e,t,n){if(typeof e=="string"){let i=(n.externalComponents[e]??n.localComponents[e])?.propToAttribute?.[t];if(i)return{attributeName:i,type:"normal"}}let r=Dn(V.common,t);if(r)return r;if(typeof e=="string"){let o=Dn(V.perElement[e],t);if(o)return o}else{let o=cl(Object.values(V.perElement),i=>{let s=Dn(i,t);return s?.type==="stringified"?s:void 0});if(o)return o}}function Dn(e,t){let n=e?.normal?.[t];if(n)return{attributeName:n,type:"normal"};let r=e?.stringified?.[t];if(r)return{attributeName:r,type:"stringified"}}function Ye(e){if(e&&S.isJsxExpression(e)&&e.expression)return e.expression;if(e&&S.isStringLiteral(e))return e;throw new Error(`key prop value must be an expression. Found ${String(e?.getText())}`)}function An(e){if(e===void 0)return!0;if(e&&S.isJsxExpression(e)){if(e.expression?.kind===S.SyntaxKind.TrueKeyword||e.expression===void 0)return!0;if(e.expression?.kind===S.SyntaxKind.FalseKeyword)return!1}}function At(e,t,n=!1){if(Oe(t))throw new Error(`Invalid JSX syntax detected or there is a bug in Lumina. Found ${t.getText()}. Expected JSX attribute value to be wrapped in { }`);if(S.isStringLiteral(t))return pi(t,n);if(S.isJsxExpression(t)&&t.expression){if(S.isStringLiteral(t.expression))return pi(t.expression,n);if(n){if(S.isNumericLiteral(t.expression))return[`=${t.expression.text}`];if(S.isPrefixUnaryExpression(t.expression)&&S.isNumericLiteral(t.expression.operand))return[`=${t.expression.getText(e.sourceFile)}`]}}return["=",...$t(e,t)]}function pi(e,t){if(!t)return["=",e];let n=e.text;if(n.length===0)return[];let r=st(n);if(Er(r)){let o=r.replaceAll('"',""");if(o.length>r.length){let i=r.replaceAll("'","'");if(i.length<o.length)return[`='${i}'`]}return[`="${o}"`]}else return[`=${r}`]}function li(e,t,n){if(t&&S.isStringLiteral(t))return[`${n}="${t.text}"`];if(!t||!S.isJsxExpression(t)||!t.expression)throw new Error(`${n} prop value must be an expression. Found ${String(t?.getText())}`);let r=t.expression;if(fl(r)){let i=n==="class"?"safeClassMap":"safeStyleMap";e.neededImports.add(i);let s=S.factory.createCallExpression(S.factory.createIdentifier(i),void 0,[ie(e,r)]);return[`${n}=`,s]}else return[n,...At(e,t,!0)]}var fl=e=>S.isObjectLiteralExpression(e)||S.isPropertyAccessExpression(e)||S.isIdentifier(e)||S.isCallExpression(e)||S.isBinaryExpression(e)||S.isConditionalExpression(e);import Ze from"typescript";function mi(e){if(e&&Ze.isJsxExpression(e)&&e.expression&&Ze.isCallExpression(e.expression)&&Ze.isIdentifier(e.expression.expression)&&e.expression.expression.text in ci&&e.expression.arguments.length<=1)return{propType:ci[e.expression.expression.text],initializer:Ze.factory.createJsxExpression(void 0,e.expression.arguments[0])}}var ci={bindProperty:"property",bindAttribute:"attribute",bindBooleanAttribute:"booleanAttribute",bindEvent:"event"};function fi(e,t,n){return yl.has(e)?e:e.startsWith("on")&&t!==void 0&&Ze.isJsxExpression(t)&&t.expression!==void 0?"event":ht.has(e)||e.includes("-")?"attribute":!(typeof n=="string"&&n.includes("-")&&!Ne.has(n))&&(xt.has(e)||(n===Xe?!1:n===_e?Object.values(Qe).some(s=>s.has(e)):Qe[n]?.has(e)===!0))?an.has(e)?"booleanAttribute":"attribute":n==="svg"||n==="math"||n===Xe||n!==_e&&(Ae.has(n)||$e.has(n))?e in V.common.normal||e in V.common.stringified?"property":an.has(e)?"booleanAttribute":"attribute":"property"}var ul=["class","style","ref","directives","key"],yl=new Set(ul);import H from"typescript";var ui=e=>typeof e!="string"||e.trim().length>0;function et({key:e,parts:t,litTag:n},r){let o=gl(t);if(o.length%2===0)throw new Error("Normalized template parts array length must be odd");let[i,...s]=o;if(typeof i!="string")throw new Error("First normalized template part must be a string");if(n===void 0){if(s.length===0)return $n(r,e,H.factory.createStringLiteral(i));if(i===""&&s.length===2&&s[1]==="")return $n(r,e,typeof s[0]=="string"?H.factory.createStringLiteral(i):s[0])}let a=n??G;r.neededImports.add(a);let l=be(i),p=H.factory.createTaggedTemplateExpression(H.factory.createIdentifier(a),void 0,s.length===0?H.factory.createNoSubstitutionTemplateLiteral(l,l):H.factory.createTemplateExpression(H.factory.createTemplateHead(l,l),hl(s)));return $n(r,e,p)}var gl=e=>e.reduce((t,n,r)=>{let o=t.at(-1),i=typeof o=="string",s=typeof n=="string";if(i&&s)return[...t.slice(0,-1),`${o}${n}`];let l=r===e.length-1;return!s&&l?[...t,n,""]:!s&&!l?[...t,n,""]:[...t,n]},[""]);function hl(e){if(!(e.length%2===0))throw new Error("templatePartsToSpans should be called with normalized parts array without the first item");let n=e.length/2;return Array.from({length:n},(r,o)=>{let i=o*2,s=e[i];if(typeof s=="string")throw new Error("Expected to receive a normalized array of parts");let a=i+1,l=e[a];if(typeof l!="string")throw new Error("Expected to receive a normalized array of parts");let p=o===n-1,c=be(l);return H.factory.createTemplateSpan(s,p?H.factory.createTemplateTail(c,c):H.factory.createTemplateMiddle(c,c))})}function $n(e,t,n){return t===void 0?n:(e.neededImports.add("keyed"),H.factory.createCallExpression(H.factory.createIdentifier("keyed"),void 0,[t,n]))}import Ln from"typescript";var In=(e,t)=>e.getFullText(t.sourceFile).slice(0,e.getLeadingTriviaWidth(t.sourceFile));function jn(e,t){let n=Nt(e);return n.length===0?t:Ln.setSyntheticLeadingComments(t,n.map(r=>({...r,pos:-1,end:-1,text:gi(e.slice(r.pos,r.end))})))}var Nt=e=>e.trim().length===0?[]:Ln.getLeadingCommentRanges(e,0)??[];function yi(e){let t=Nt(e);if(t.length===0)return[e];let n=t.reduceRight(([o,...i],s)=>{let a=be(gi(Nn(o).slice(s.pos,s.end)));return[Nn(o).slice(0,s.pos),Ln.factory.createNoSubstitutionTemplateLiteral(a,a),Nn(o).slice(s.end),...i]},[e]);(typeof n[0]!="string"||n[0].trim()!=="")&&n.unshift(" ");let r=n.at(-1);return(typeof r!="string"||r.trim()!=="")&&n.push(" "),n}var gi=e=>e.startsWith("//")?e.slice(2):e.slice(2,-2);function Nn(e){if(typeof e=="string")return e;throw new Error(`Expected string, got ${typeof e}: ${String(e)}`)}import{isNotUndefined as bl}from"@arcgis/components-utils";import k from"typescript";function hi(e,t){if(!(k.isPropertyAccessExpression(t.expression)&&t.expression.name.text==="map"))return t;let r=t.arguments[0];if(!(t.arguments.length===1&&k.isArrowFunction(r)))return t;let i=r.parameters.at(0);if(!(typeof i=="object"&&r.parameters.length<=2))return t;let a=k.isParenthesizedExpression(r.body)?r.body.expression:r.body;if(!k.isJsxElement(a)&&!k.isJsxSelfClosingElement(a))return t;let l=k.isJsxElement(a)?a.openingElement:a,p=Rn(l);if(p===-1)return t;let c=l.attributes.properties[p],m=c&&k.isJsxAttribute(c)?Ye(c.initializer):void 0;if(!m)return t;let f=Array.from(l.attributes.properties);f.splice(p,1);let y=k.factory.updateJsxAttributes(l.attributes,f);return e.neededImports.add("repeat"),k.factory.updateCallExpression(t,k.factory.createIdentifier("repeat"),t.typeArguments,[t.expression.expression,k.factory.createArrowFunction(void 0,void 0,[xl(i,m)],void 0,void 0,m),k.factory.updateArrowFunction(r,r.modifiers,r.typeParameters,r.parameters,r.type,r.equalsGreaterThanToken,k.isJsxElement(a)?k.factory.updateJsxElement(a,k.factory.updateJsxOpeningElement(a.openingElement,a.openingElement.tagName,a.openingElement.typeArguments,y),a.children,a.closingElement):k.factory.updateJsxSelfClosingElement(a,a.tagName,a.typeArguments,y))])}function xl(e,t){return k.factory.updateParameterDeclaration(e,e.modifiers,e.dotDotDotToken,k.isObjectBindingPattern(e.name)?Cl(e.name,t.getText()):e.name,e.questionToken,e.type,e.initializer)}function Cl(e,t){let n=!1,r=e.elements.filter(o=>k.isIdentifier(o.name)?t.includes(o.name.getText())||o.propertyName&&t.includes(o.name.getText()):(n=!0,!0));return n||r.length===0?e:k.factory.updateObjectBindingPattern(e,r)}var Ci=e=>e.manifestComponents.map(({name:t,importPath:n})=>`import type { ${t} } from "./${n}";`).join(`
|
|
100
|
+
`),Tl=/^[a-zA-Z_$][a-zA-Z\d_$]*$/u,we=e=>!Tl.test(e),_=e=>we(e)?`"${e}"`:e;function ge(e,t=[]){let n=t?.filter(m=>m.kind==="field"&&m.readonly!==!0),r=[],o=[],i=!1;n.forEach(m=>{let f=m;if(f.getterType){i=!0;return}f.docsTags?.some(g=>g.name==="required")?r.push(m.name):o.push(m.name)});let s=xi(r),a=xi(o),l=[s?`Required<Pick<${e}, ${s}>>`:"",a?`Partial<Pick<${e}, ${a}>>`:"",i?`${e}SetterTypes`:""],p=i?`
|
|
101
|
+
type ${e}SetterTypes = ${e}["${Wt}"]`:"",c=l.filter(Boolean).join(", ");return[c.length===0?"":`${c}, `,p]}var xi=e=>e.map(t=>`'${t}'`).join(" | ");function ie(e,t){return Ti(e,t)}function Ti(e,t){if(Oe(t))return bi(e,t);let n=b.isCallExpression(t)?hi(e,t):t;return b.visitEachChild(n,Ti.bind(null,e),e.transformationContext)}function bi(e,t){let n=vi(e,t);return et(n,e)}function vi(e,t){let n="children"in t?t.children:[];if(b.isJsxFragment(t))return{key:void 0,...Lt(n,e)};let o=b.isJsxElement(t)?t.openingElement:t,i=o.tagName;if(b.isJsxNamespacedName(i)){let x=E(e.sourceFile.fileName);throw new Error(`JSX namespaced elements are not supported. Found ${i.getText()} in "${x}"`)}if(!b.isIdentifier(i)||!i.text.startsWith(i.text[0].toLowerCase())&&i.text!==yt&&i.text!==gt){let T=b.isIdentifier(i)&&i.text===so?Lt(n,e):{litTag:void 0,parts:[El(e,t,i,n)]};return{key:vl(o),...T}}let a=i.text===yt?_e:i.text===gt?Xe:i.text,l=i.text===yt?ne:i.text===gt?re:Ae.has(a)?oe:G;typeof a=="string"&&a.includes("-")&&!Ne.has(a)&&e.customElementsToImport.add(a);let p,c=[],m=o.attributes.properties.flatMap(x=>{if(b.isJsxSpreadAttribute(x))throw new Error(`JSX spread attribute syntax is not supported. See alternatives: https://qawebgis.esri.com/arcgis-components/?path=/docs/references-lumina-jsx--docs#spread-attributes
|
|
102
|
+
Found ${x.getText()}`);let{name:T,initializer:v}=x;if(b.isJsxNamespacedName(T)){let Rt=E(e.sourceFile.fileName);throw new Error(`JSX namespaced attributes are not supported. Found ${T.getText()} in "${Rt}"`)}let D=T.text,W=mi(v),A=W?.propType??fi(D,v,a),X=di[A](e,W?.initializer??v,D,a);if(X.length===0)return[];let xe=e.compiler.shouldMinify?" ":yi(In(T,e));if(A==="key")return p=typeof X[0]=="object"?X[0]:void 0,Array.isArray(xe)&&xe.some(ui)?xe:[];let He=[...xe,...X];return A==="directives"||A==="ref"?(c.push(...He),[]):He});if(c.length>0&&m.push(...c),typeof a=="string"&&$e.has(a))throw new Error(`JSX syntax for MathML elements is not yet supported. If you need it, please request it. Otherwise, use the \`math\` function from Lit directly. Tried to use the "${a}" element`);let f=typeof a=="string"&&lo.has(a),y=Lt(n,e);if(f&&y.parts.length>0){let x=E(e.sourceFile.fileName);throw new Error(`Void HTML elements like <${a}> cannot have children. Found ${t.getText()} in "${x}"`)}let g=(l===oe||l===re)&&y.parts.length===0,C=["<",typeof a=="string"?a:i,...m,g?`${m.length===0?"":" "}/>`:">"],u=f||g?C:[...C,...y.litTag!==void 0&&y.litTag!==l?[et({key:void 0,...y},e)]:y.parts,"</",typeof a=="string"?a:i,">"];return{key:p,parts:u,litTag:l}}function vl(e){let t=e.attributes.properties[Rn(e)];return t&&b.isJsxAttribute(t)?Ye(t.initializer):void 0}var Rn=e=>e.attributes.properties.findIndex(({name:t})=>t&&b.isIdentifier(t)&&t.text==="key");function El(e,t,n,r){let i=(b.isJsxElement(t)?t.openingElement:t).attributes.properties.map(l=>{if(b.isJsxSpreadAttribute(l))return jn(In(l,e),b.factory.createSpreadAssignment(l.expression));let{name:p,initializer:c}=l;if(b.isJsxNamespacedName(p)){let y=E(e.sourceFile.fileName);throw new Error(`JSX namespaced attributes are not supported. Found ${p.getText(e.sourceFile)} in "${y}"`)}if(p.text==="key")return;let m=c===void 0?b.factory.createTrue():b.isStringLiteral(c)?c:Oe(c)?bi(e,c):ie(e,c.expression??b.factory.createIdentifier("undefined")),f=we(p.text)?b.factory.createStringLiteral(p.text):p;return b.factory.createPropertyAssignment(f,m)}),{parts:s,litTag:a}=Lt(r,e);return s.length>0&&i.push(b.factory.createPropertyAssignment(b.factory.createIdentifier("children"),et({key:void 0,parts:s,litTag:a},e))),b.factory.createCallExpression(n,void 0,[b.factory.createObjectLiteralExpression(i.filter(bl))])}function Lt(e,t){let n,r=e.flatMap(o=>{if(b.isJsxText(o))return[t.compiler.shouldMinify?vr(o.text):o.text];if(b.isJsxExpression(o))return $t(t,Sl(o));{let i=vi(t,o);if(i.key===void 0&&i.litTag!==ne&&i.litTag!==re){if(n!==void 0&&i.litTag!==void 0&&n!==i.litTag)throw new Error(`Unexpectedly found both ${n} and ${i.litTag} child elements inside the same element.`);return n=i.litTag,i.parts}else return[et(i,t)]}});return{litTag:n,parts:r}}function Sl(e){return e.expression&&b.isBinaryExpression(e.expression)&&(e.expression.operatorToken.kind===b.SyntaxKind.AmpersandAmpersandToken||e.expression.operatorToken.kind===b.SyntaxKind.QuestionQuestionToken||e.expression.operatorToken.kind===b.SyntaxKind.BarBarToken)?e.expression.operatorToken.kind===b.SyntaxKind.BarBarToken&&(b.isStringLiteral(e.expression.right)||Oe(e.expression.right)||b.isNumericLiteral(e.expression.right)||b.isPrefixUnaryExpression(e.expression.right)||b.isNoSubstitutionTemplateLiteral(e.expression.right)||b.isTemplateExpression(e.expression.right))?e:b.factory.updateJsxExpression(e,b.factory.createBinaryExpression(e.expression,b.factory.createToken(b.SyntaxKind.BarBarToken),b.factory.createStringLiteral(""))):e}function $t(e,t){if(t.expression===void 0){if(e.compiler.shouldMinify)return[];let n=t.getText(e.sourceFile).slice(1,-1);return Nt(n).length===0?[]:[jn(n,b.factory.createIdentifier("undefined"))]}return b.isStringLiteral(t.expression)?[st(t.expression.text)]:e.compiler.viteCommand==="serve"&&e.compiler.typeScriptConfig.options.sourceMap&&!e.compiler.shouldMinify&&b.isArrowFunction(t.expression)&&!b.isBlock(t.expression.body)?[ie(e,b.factory.updateArrowFunction(t.expression,t.expression.modifiers,t.expression.typeParameters,t.expression.parameters,t.expression.type,t.expression.equalsGreaterThanToken,b.factory.createBlock([b.factory.createReturnStatement(t.expression.body)],!0)))]:[ie(e,t.expression)]}import F from"typescript";var Si=e=>e.reduce((t,[n,r])=>(t[n]??=[],t[n].push(r),t),{}),Ei=["lit-html/static.js","lit-html/static-html.js","lit-html/static-svg.js","lit/static-html.js","lit/static-svg.js"],Be={[G]:["lit-html","lit/html.js","lit"],[ne]:Ei,[oe]:["lit-html","lit/html.js","lit"],[re]:Ei,[kn]:["lit-html","lit/html.js","lit"],[Mn]:["lit-html","lit/html.js","lit"],safeClassMap:["@arcgis/lumina"],safeStyleMap:["@arcgis/lumina"],keyed:["lit-html/directives/keyed.js","lit/directives/keyed.js"],repeat:["lit-html/directives/repeat.js","lit/directives/repeat.js"],ref:["lit-html/directives/ref.js","lit/directives/ref.js"],nothing:["lit-html","lit/html.js","lit-element/lit-element.js","lit","@arcgis/lumina"]},wi=Si(Object.entries(Be).flatMap(([e,t])=>t.map(n=>[n,e]))),Pi=new Set(Object.keys(wi));function Mi(e,t){let n=t.importClause,r=t.moduleSpecifier;if(!F.isStringLiteral(r))return t;let o=wl(e.sourceFile.fileName,r.text,""),i=!n?.isTypeOnly;if(i&&e.existingImportedModules.add(o),!n)return t;let s=n.namedBindings;if(!s||!F.isNamedImports(s))return t;let a=!Pi.has(r.text);return s.elements.forEach(l=>{let p=l.name.text,c=p in Be?Be[p]:void 0,m=p===G&&Be.staticHtml.includes(o)||p===oe&&Be.staticSvg.includes(o);if(m&&l.propertyName===void 0)throw new Error(`If importing the static version of "${G}" or "${oe}", please re-name them to "${ne}" and "${re}" respectively (i.e. import { html as staticHtml} from ...). Without this, it's hard for JSX to lit-html converter to automatically add correct imports at build-time.`);let f=m?l.propertyName.text:p;a&&c?.some(C=>C===r.text)&&e.existingLitImports.add(f);let y=f.startsWith(f[0].toUpperCase()),g=d.isAbsolute(o);i&&!l.isTypeOnly&&y&&g&&e.importedFunctionComponentsFromModules.add(o)}),t}var wl=(e,t,n)=>t.startsWith(".")?d.resolve(e,"..",`${t}${n}`):t;function ki(e){return F.isImportDeclaration(e)?Pl(this,e):e}function Pl(e,t){let n=t.importClause,r=n?.namedBindings,o=t.moduleSpecifier;if(!F.isStringLiteral(o)||!r||!F.isNamedImports(r)||!Pi.has(o.text))return t;let i=n.isTypeOnly,s=!1,a=r.elements.map(l=>{let p=l.name.text;return e.neededImports.has(p)?(e.existingLitImports.delete(p),e.neededImports.delete(p),s=!0,F.factory.updateImportSpecifier(l,!1,l.propertyName,l.name)):i?F.factory.updateImportSpecifier(l,!0,l.propertyName,l.name):l});return wi[o.text]?.forEach(l=>{!e.neededImports.has(l)||e.existingLitImports.has(l)||(e.neededImports.delete(l),s=!0,a.push(Di(l)))}),s?F.factory.updateImportDeclaration(t,t.modifiers,F.factory.updateImportClause(n,!1,n.name,F.factory.updateNamedImports(r,a)),t.moduleSpecifier,t.attributes):t}function Fi(e){let t=Si(Array.from(e.neededImports,n=>[Be[n][0],n]));return Object.entries(t).map(([n,r])=>F.factory.createImportDeclaration(void 0,F.factory.createImportClause(!1,void 0,F.factory.createNamedImports(r.map(o=>(e.neededImports.delete(o),Di(o))))),F.factory.createStringLiteral(n)))}var Di=e=>e===ne||e===re?F.factory.createImportSpecifier(!1,F.factory.createIdentifier(e===ne?G:oe),F.factory.createIdentifier(e)):F.factory.createImportSpecifier(!1,void 0,F.factory.createIdentifier(e));function Ai(e){let t=Co().map(({packageName:n})=>n);return e.existingImportedModules.forEach(n=>{if(d.isAbsolute(n))return;let{packageName:r,moduleName:o}=Qt(n);if(t.includes(r??"")&&(o.startsWith("dist/components")||o.startsWith("components"))){let i=E(e.sourceFile.fileName);throw new Error(`Did not expect to find any explicit imports for "${n}". Found import in ${i}. Imports for web components that your component consumes will be added automatically at build-time as appropriate for a given output target. Type-only imports are still allowed. If you believe this is an error, please notify Lumina maintainers.`)}}),[]}function $i(e){if(e.compiler.viteCommand==="serve")return e.customElementsToImport.clear(),[];let t=We.get(e.compiler);return t||(t={},We.set(e.compiler,t)),t[e.sourceFile.fileName]??={referencedBy:[],referencedTagNames:[]},t[e.sourceFile.fileName].referencedTagNames=Array.from(e.customElementsToImport),e.customElementsToImport.clear(),e.importedFunctionComponentsFromModules.forEach(n=>{let r=`${n}.tsx`;t[r]??={referencedBy:[],referencedTagNames:[]},t[r].referencedBy.push(e.sourceFile.fileName)}),[]}var Ni=(e,t)=>{let n=e.pragmas;if(n?.has("jsx")??n?.has("jsxImportSource"))return e.statements;let r={compiler:t.compiler,externalComponents:vt(),localComponents:t.compiler.isInPuppeteerTestBackEnd?{}:wn(t.compiler.manifest),sourceFile:e,transformationContext:t.transformation,existingImportedModules:new Set,importedFunctionComponentsFromModules:new Set,existingLitImports:new Set,customElementsToImport:new Set,neededImports:new Set};e.statements.forEach(a=>{Ml.isImportDeclaration(a)&&Mi(r,a)});let o=ie(r,e),i=r.neededImports.size>0?o.statements.map(ki,r):o.statements;if(r.existingLitImports.size>0)throw new Error("Expected context.existingLitImports to be empty by now");let s=[Fi,Ai,$i].flatMap(a=>a(r));if(r.neededImports.size>0)throw new Error("Expected context.neededLitImports to be empty by now");return[...s,...i]};var Li=(e,t)=>{if(t.fileManifest!==void 0&&e.text.includes(`* @${ee}`))throw new Error(`Do not use @${ee} JSDoc tag as it is not yet handled correctly by doc extraction (see https://github.com/open-wc/custom-elements-manifest/issues/263). Please use @${Ke} instead. Found @${ee} in ${E(d.relative(t.compiler.dir.root,e.fileName))}`);return e.statements};import M from"typescript";import j from"typescript";import{PropertyFlags as he}from"@arcgis/lumina/config";function Ii(e,t,n){return t.size===0?e:[j.factory.createPropertyDeclaration([j.factory.createModifier(j.SyntaxKind.StaticKeyword),j.factory.createModifier(j.SyntaxKind.OverrideKeyword)],"properties",void 0,void 0,j.factory.createObjectLiteralExpression(Array.from(t.entries()).map(([r,o])=>j.factory.createPropertyAssignment(we(r)?j.factory.createStringLiteral(r):r,kl(o,n))))),...e]}function kl(e,t){let n=0,r=!0,o=e.properties.filter(a=>{if(!j.isPropertyAssignment(a)||!j.isIdentifier(a.name))return!0;let l=a.name.text,p=a.initializer,c=p.kind===j.SyntaxKind.TrueKeyword,m=p.kind===j.SyntaxKind.FalseKeyword;if(l==="attribute")return r=!1,n|=c?he.ATTRIBUTE:0,!c&&!m;if(l==="reflect")return n|=c?he.REFLECT:0,!1;if(l==="type"&&j.isIdentifier(p)){if(p.text==="Boolean")return n|=he.BOOLEAN,!1;if(p.text==="Number")return n|=he.NUMBER,!1}else{if(l==="state")return r=!1,n|=c?he.STATE:0,!1;if(l==="readOnly")return n|=c?he.READ_ONLY:0,!1;l==="noAccessor"&&(n|=c?he.NO_ACCESSOR:0)}return!0});r&&(n|=he.ATTRIBUTE);let i=t?o:e.properties,s=j.factory.createNumericLiteral(n);return i.length===0?s:j.factory.createArrayLiteralExpression([s,j.factory.createObjectLiteralExpression(i)])}import{identity as Rl}from"@arcgis/components-utils";import{readFileSync as Il,writeFileSync as jl}from"node:fs";import tt from"typescript";import R from"typescript";import w from"typescript";import{camelToKebab as Fl}from"@arcgis/components-utils";function ji(e,t,n,r,o,i){let s=-1,a=!1,l=-1,p=-1;t.options?.properties.forEach((g,C)=>{if(w.isSpreadAssignment(g))throw new Error(`Spread property assignment is not allowed in @property() as that is not statically analyzable. Found ${g.getText(r)}`);if(w.isIdentifier(g.name)){let u=g.name.text;u==="type"?s=C:u==="converter"?a=!0:u==="attribute"?l=C:u==="readOnly"&&(p=C)}});let c=i?.attribute===void 0&&l===-1,m=i?.readonly===!0&&i.docsOnlyReadonly!==!0&&p===-1,f=Dl(e,t,n,r,o,i,s,l,a),y=[...c?[w.factory.createPropertyAssignment("attribute",w.factory.createFalse())]:[],...m?[w.factory.createPropertyAssignment("readOnly",w.factory.createTrue())]:[],...f!==void 0?[f]:[]];return y.length>0?t.options===void 0?w.factory.createObjectLiteralExpression(y,!1):w.factory.updateObjectLiteralExpression(t.options,[...t.options.properties,...y]):t.options}function Dl(e,t,n,r,o,i,s,a,l){if(i?.attribute===void 0)return;if(t.options&&t.options.properties.length===0&&o(t.options.getStart(r),t.options.getEnd(),""),a!==-1){let g=t.options.properties[a],C=Fl(i.name);if(w.isPropertyAssignment(g)&&(g.initializer.kind===w.SyntaxKind.TrueKeyword||w.isStringLiteral(g.initializer)&&g.initializer.text===C)&&on(i.type?.values??[])){let x=t.options.properties[a+1]?.getFullStart()??g.getEnd();o(g.getFullStart(),x,"")}}let p=$l(e),c=n.compiler.viteCommand==="serve"||p!=="Other"?p:Al(i.type?.values);if(c==="Other"||i.readonly&&(c!=="Boolean"||!i.reflects))return;let m=t.options?.properties[s];if(m){let g="initializer"in m?m.initializer:void 0;if(!l&&g&&w.isIdentifier(g)){let C=`Found property "${i.name}" in "${E(r.fileName)}" that has @property({ type: ${g.text} })`,u='. If this is a false warning, you can silence it by adding "converter: undefined" option to @property()';if(g.text==="Boolean"&&c==="Number")console.warn(`${C} where as expected to see @property({ type: Number }) because the property type is number${u}`);else if(g.text==="Number"&&c==="Boolean")console.warn(`${C} where as expected to see @property({ type: Boolean }) because the property type is boolean${u}`);else if(!Nl.has(g.text))console.warn(`${C}. The default Lit attribute<-->property converter does not define any behavior for @property({ type: ${g.text} }). Consider removing this "type", or adding a custom converter @property({ converter: ... }) to handle this type${u}`);else if(p!=="Other"&&g.text===p){let T=t.options.properties[s+1]?.getFullStart()??m.getEnd();o(m.getFullStart(),T,"")}}return}if(p==="Other"){let g=`type: ${c}`;if(t.options===void 0){let C=t.decorator.getEnd()-1;o(C,C,`{ ${g} }`)}else{let C=t.options.getStart(r)+1;o(C,C,` ${g},`)}}return w.factory.createPropertyAssignment(w.factory.createIdentifier("type"),w.factory.createIdentifier(c))}function Al(e){let t=!1,n=!1,r=!1;if(e?.forEach(o=>{t||=o.type==="number",n||=o.type==="boolean",r||=o.type==="string"||o.type==="any"||o.type==="unknown"}),r||=t&&n,!r){if(t)return"Number";if(n)return"Boolean"}return"Other"}function $l(e){let t=e.type??(w.isSetAccessor(e)?e.parameters[0].type:void 0);if(t===void 0){if("initializer"in e&&e.initializer){if(w.isNumericLiteral(e.initializer)||w.isPrefixUnaryExpression(e.initializer)&&e.initializer.operator===w.SyntaxKind.MinusToken&&w.isNumericLiteral(e.initializer.operand))return"Number";if(e.initializer.kind===w.SyntaxKind.FalseKeyword||e.initializer.kind===w.SyntaxKind.TrueKeyword)return"Boolean"}}else{if(t.kind===w.SyntaxKind.NumberKeyword)return"Number";if(t.kind===w.SyntaxKind.BooleanKeyword)return"Boolean"}return"Other"}var Nl=new Set(["Number","Boolean","Array","Object"]);function It(e,t,n,r,o,i){if(t.modifiers===void 0)return t;let s=-1,a=-1;if(t.modifiers.forEach((l,p)=>{if(R.isDecorator(l)&&R.isCallExpression(l.expression)&&R.isIdentifier(l.expression.expression)){let c=l.expression.expression.text;c==="property"&&(s=p),c==="state"&&(a=p)}}),s!==-1&&a!==-1)throw new Error(`Property cannot have both @property and @state decorators. Found property that has both: ${t.getText(r)}`);if(s!==-1){let l=Ll(e,t,n,r),p=Ri(t,s,r),c=ji(t,p,e,r,o,l),m=!1;return i!==void 0&&l&&(i.set(l.name,c??R.factory.createObjectLiteralExpression()),m=!0),p.options=c,Oi(t,p,s,m)}else if(a!==-1&&i!==void 0){let l=Ri(t,a,r),p=R.factory.createPropertyAssignment("state",R.factory.createTrue()),c=l.options===void 0?R.factory.createObjectLiteralExpression([p]):R.factory.updateObjectLiteralExpression(l.options,[...l.options.properties,p]),m=rt(t);if(m===void 0)throw new Error("Failed to statically determine the state property name");return i.set(m,c),Oi(t,l,a,!0)}else return t}function Ll(e,t,n,r){let o=U(e.fileManifest??{},!0).find(s=>s.name===n)??(e.compiler.isInTest?{name:""}:void 0);if(o===void 0)return;let i=ke(o,t)??(e.compiler.isInTest?{kind:"field",attribute:"",readonly:!1,name:"",type:void 0}:void 0);if(!(i===void 0||i.kind!=="field")){if(i.name===""){let s=rt(t);if(s===void 0)throw new Error(`Failed to statically determine the property name: ${t.getText(r)}`);i.name=s}return i}}function Ri(e,t,n){let r=e.modifiers[t],o=r.expression,i=o.arguments.at(0);if(i&&!R.isObjectLiteralExpression(i))throw new Error(`First argument to @property() or @state() decorator must be an object literal as otherwise it is not statically analyzable. Found ${i.getText(n)}`);return{decorator:r,callExpression:o,options:i}}function Oi(e,t,n,r){if(t.callExpression.arguments.length>1)throw new Error(`Expected at most 1 argument to @property() or @state() decorator. Found ${t.callExpression.arguments.length} in ${e.getText()}`);let o=r?void 0:R.factory.updateDecorator(t.decorator,R.factory.updateCallExpression(t.callExpression,t.callExpression.expression,t.callExpression.typeArguments,t.options===void 0?[]:[t.options])),i=[...e.modifiers.slice(0,n),...o===void 0?[]:[o],...e.modifiers.slice(n+1)];return R.isGetAccessorDeclaration(e)?R.factory.updateGetAccessorDeclaration(e,i,e.name,e.parameters,e.type,e.body):R.isSetAccessorDeclaration(e)?R.factory.updateSetAccessorDeclaration(e,i,e.name,e.parameters,e.body):R.factory.updatePropertyDeclaration(e,i,e.name,e.questionToken??e.exclamationToken,e.type,e.initializer)}function Ji(e,t){try{let n=Il(t,"utf-8"),r=tt.createSourceFile(t,n,e.compiler.typeScriptConfig.options.target??tt.ScriptTarget.Latest,!1,tt.ScriptKind.TSX),o=[],i=(l,p)=>tt.isPropertyDeclaration(l)||tt.isAccessor(l)?It(e,l,p,r,(...c)=>o.push(c)):l;r.statements.forEach(l=>jt(i,l,e));let a=o.sort((l,p)=>p[0]-l[0]).reduce((l,[p,c,m])=>`${l.slice(0,p)}${m}${l.slice(c)}`,n);jl(t,a)}catch(n){console.error(`Failed applying automated edits to the ${E(t)} file.: Error ${String(n)}`)}}var Bi=(e,t)=>{if(t.fileManifest===void 0&&!t.compiler.isInTest)return e.statements;let n=!1;function r(){n=!0}let o;function i(){o=new Map}let s=p=>Ii(p,o,t.compiler.shouldMinify),a=(p,c)=>Jl(t,p,c,e,r,o),l=e.statements.map(p=>jt(a,p,t,i,s));return!t.compiler.isInCi&&!t.compiler.isInTest&&n&&Ji(t,e.fileName),l};function jt(e,t,n,r,o=Rl){if(M.isClassDeclaration(t)&&t.heritageClauses?.some(s=>s.token===M.SyntaxKind.ExtendsKeyword)){let s=!1,a=t.name?.text;r?.();let l=o(t.members.map(c=>{let m=e(c,a);return s||=m!==c,m}));return s?M.factory.updateClassDeclaration(t,t.modifiers,t.name,t.typeParameters,t.heritageClauses,l):t}return n.compiler.isInTest?M.visitEachChild(t,s=>jt(e,s,n,r,o),n.transformation):t}var Ol=new Set(["connectedCallback","disconnectedCallback"]);function Jl(e,t,n,r,o,i){if(M.isMethodDeclaration(t)&&t.modifiers){let s=t.modifiers.filter(a=>!M.isDecorator(a)||!Bl(a));if(s.length!==t.modifiers.length)return M.factory.updateMethodDeclaration(t,s,t.asteriskToken,t.name,t.questionToken,t.typeParameters,t.parameters,t.type,t.body);if("text"in t.name&&Ol.has(t.name.text)&&t.body){let a=t.name.text;return t.body.statements.some(p=>M.isExpressionStatement(p)&&M.isCallExpression(p.expression)&&M.isPropertyAccessExpression(p.expression.expression)&&p.expression.expression.expression.kind===M.SyntaxKind.SuperKeyword&&p.expression.expression.name.text===a)?t:M.factory.updateMethodDeclaration(t,t.modifiers,t.asteriskToken,t.name,t.questionToken,t.typeParameters,t.parameters,t.type,M.factory.updateBlock(t.body,[M.factory.createExpressionStatement(M.factory.createCallExpression(M.factory.createPropertyAccessExpression(M.factory.createSuper(),a),void 0,[])),...t.body.statements]))}}return M.isPropertyDeclaration(t)||M.isAccessor(t)?It(e,t,n,r,o,i):t}var Bl=e=>M.isCallExpression(e.expression)&&M.isIdentifier(e.expression.expression)&&e.expression.expression.text==="method";var Hi="makeRuntime(";function Wi(e,t){let n=e.indexOf(Hi);if(n===-1)throw new Error("Failed to find makeRuntime() function call in src/runtime.ts");let r=n+Hi.length,o=t.options.css?.commonStylesPath;return{code:[o===void 0?"":`import commonStyles from "${Y(t.dir.src,o)}";`,e.slice(0,r),"{","defaultAssetPath:import.meta.env.BASE_URL,",'hydratedAttribute:"',t.options.css?.hydratedAttribute??en,'",',o===void 0?"":"commonStyles","}",e.slice(r)].join(""),map:null}}var Wl=[Li,Ni,go,Bi],Ui=e=>({name:"@arcgis/lumina:transformComponents",transform:{order:"pre",async handler(t,n){if(!n.endsWith(".tsx")){if(e.isInTest&&n.endsWith(".ts")&&Ht(n)&&t.includes("extends LitElement"))console.warn("It looks like you may be trying to define a component inside a test file. This is supported, but you must use the .tsx file extension for you test");else if(n===`${e.dir.src}runtime.ts`)return Wi(t,e);return}let r=e.getSourceFile(n,t);await fe;let i=Hl.transform(r,[f=>()=>ot(e,f,r,[...e.options.types?.sourceFileTransformers??[],...Wl])]).transformed[0],s=Kl(e),a=Fe(s),l=s.sourceMap?Te.createSourceMapGenerator(e.typeScriptHost,d.basename(n),"",d.dirname(n),s):void 0,p=Te.createTextWriter(Te.getNewLineCharacter(s));a.writeFile(i,p,l);let c=p.getText(),m=l?.toJSON();return{code:c,map:m??null}}}}),Ki=new WeakMap;function Kl(e){let t=Ki.get(e);if(!t){let n=e.typeScriptConfig.options;t={...n,declaration:!1,declarationMap:!1,emitDeclarationOnly:!1,sourceMap:n.sourceMap??n.inlineSourceMap,inlineSourceMap:!1,allowSyntheticDefaultImports:!0,suppressOutputPathCheck:!0,noLib:!0,noResolve:!0,skipLibCheck:!0},Ki.set(e,t)}return t}var Vi=e=>({name:"@arcgis/lumina:handleDynamicAssets",configureServer(t){e.server=t,!e.isInPuppeteerTestBackEnd&&zi(e).forEach(({assets:n,transformers:r})=>ye(e,n,r))},async writeBundle(){await Promise.all(zi(e).map(async({assets:t,transformers:n})=>await Pt(e,t,n)))}});function zi(e){let t=[],n=e.assetsToProvide?.filter(r=>r.apply===void 0||r.apply===e.viteCommand)??[];return e.options.assets?.extra?.forEach(r=>{"type"in r?t.push(r):"assets"in r&&t.push(...r.assets)}),t.length>1&&n.push({assets:t}),e.assetsToProvide=void 0,n}import{readFile as Ul}from"node:fs/promises";import{writeFileSync as zl}from"node:fs";var qi="@arcgis/lumina:updatePackageJson",Gi=e=>({name:qi,apply:()=>e.viteCommand==="serve"&&e.environment==="development"&&!e.isInTest&&!e.isInCi,configResolved(){Vl(e).catch(t=>console.error(`${qi}: Failed to update package's package.json`,t))}});async function Vl(e){let t=d.join(e.dir.root,"package.json"),n=JSON.parse(await Ul(t,"utf-8")),r=ql(n,e);r&&zl(t,JSON.stringify(r,null,2))}function ql(e,t){let n=e?.devDependencies??{};Object.keys(e?.peerDependencies??{}).forEach(f=>{f in n||console.error(`Every peerDependency must also be a devDependency, or else some tools will get confused (like Turbo Build). Found "${f}" that is not a devDependency. Please edit your package.json`)});let r=!1,o=f=>d.relative(t.dir.root,d.join(t.dir.dist,f)),i=e["css.customData"]??[],s=t.documentationFileNames,a=o(s.vsCodeCss);i.includes(a)||(e["css.customData"]=[...i,a],r=!0);let l=o(s.manifest);e.customElements!==l&&(e.customElements=l,r=!0);let p=e["html.customData"]??[],c=o(s.vsCodeHtml);p.includes(c)||(e["html.customData"]=[...p,c],r=!0);let m=o(s.webTypes);if(e["web-types"]!==m&&(r=!0,e["web-types"]=m),r)return e}import{getVsCodeCssCustomData as td,getVsCodeHtmlCustomData as nd}from"custom-element-vs-code-integration";import{isNotUndefined as _i}from"@arcgis/components-utils";import{defaultEventBubbles as Gl,defaultEventCancelable as _l,defaultEventComposed as Xl}from"@arcgis/lumina/config";var Xi=e=>({timestamp:e.manifest.timestamp,compiler:e.manifest.compiler,components:e.manifestComponents.map(Ql),typeLibrary:{}});function Ql(e){let t=e.superclass?[{name:"superclass",text:JSON.stringify(e.superclass)}]:[];return{filePath:e.sourcePath,tag:e.tagName??"",overview:"",readme:"",usage:{},docs:e.description??"",docsTags:[...e.docsTags??[],...t],encapsulation:e.encapsulation??"shadow",dependents:[],dependencies:[],dependencyGraph:{},deprecation:typeof e.deprecated=="boolean"?e.deprecated?"":void 0:e.deprecated,props:e.members?.map(Yl).filter(_i)??[],methods:e.members?.map(Zl).filter(_i)??[],events:e.events?.map(ed)??[],styles:e.cssProperties?.map(n=>({name:n.name,annotation:"prop",docs:n.description??"",mode:void 0}))??[],slots:e.slots?.map(({name:n,description:r=""})=>({name:n,docs:r}))??[],parts:e.cssParts?.map(({name:n,description:r=""})=>({name:n,docs:r}))??[],listeners:[]}}function Yl(e){if(e.kind!=="field")return;let t=e,n=t.inheritedFrom?[{name:"inheritedFrom",text:JSON.stringify(t.inheritedFrom)}]:[],r=t.readonly?[{name:"readonly",text:""}]:[];return{name:t.name,type:t.type?.text??"unknown",complexType:t.type===void 0?void 0:{original:t.type.original,resolved:t.type.text,references:On(t.type.references)},mutable:!0,attr:"attribute"in t&&typeof t.attribute=="string"?t.attribute:void 0,reflectToAttr:"reflects"in t&&t.reflects===!0,docs:t.description??"",docsTags:[...t.docsTags??[],...r,...n],default:t.default??void 0,deprecation:typeof t.deprecated=="boolean"?t.deprecated?"":void 0:t.deprecated,values:t.type?.values??[],optional:t.hasQuestionToken??!1,required:t.docsTags?.some(o=>o.name==="required")??!1}}var On=e=>Object.fromEntries(e?.map(t=>[t.name,{location:t.package===Xt?"global":t.package===void 0?"local":"import",path:typeof t.module=="string"&&typeof t.package=="string"?d.join(t.package,t.module):t.module??t.package,id:"notImplemented"}])??[]);function Zl(e){if(e.kind!=="method")return;let t=e,n=e.inheritedFrom?[{name:"inheritedFrom",text:JSON.stringify(e.inheritedFrom)}]:[],r=t.parameters?.map(({name:o,type:i,description:s})=>({name:o,type:i?.text??"unknown",docs:s??""}))??[];return{name:t.name,returns:{type:t.return?.type?.text??"void",docs:t.docsTags?.filter(({name:o})=>o==="return"||o==="returns").map(({text:o})=>o).join(`
|
|
103
|
+
`)??""},complexType:{signature:"()=>unknown",parameters:r,...t.type,return:t.return?.type?.text??"void",references:On(t.type?.references)},signature:`${t.name}${t.type?.signature??"()=>unknown"}`,parameters:r,docs:t.description??"",docsTags:[...t.docsTags??[],...n],deprecation:typeof t.deprecated=="boolean"?t.deprecated?"":void 0:t.deprecated}}function ed(e){let t=e,n=t.inheritedFrom?[{name:"inheritedFrom",text:JSON.stringify(t.inheritedFrom)}]:[];return{event:t.name,detail:t.type.text,bubbles:t.bubbles??Gl,complexType:{original:t.type.original,resolved:t.type.text,references:On(t.type.references)},cancelable:t.cancelable??_l,composed:t.composed??Xl,docs:t.description??"",docsTags:[...t.docsTags??[],...n],deprecation:typeof t.deprecated=="boolean"?t.deprecated?"":void 0:t.deprecated}}import{writeFile as Jn}from"node:fs/promises";var rd="@arcgis/lumina:generateDocs";function Qi(e){return e.provideAssets([{type:"dynamic",source:()=>JSON.stringify(Xi(e),null,2),destination:d.join("../..",e.documentationFileNames.stencilLikeDocsJson)},{type:"dynamic",source:()=>JSON.stringify(e.manifest,null,2),destination:d.join("../..",e.documentationFileNames.manifest)}]),{name:rd,async writeBundle(){if(e.isInStorybook)return;let t=d.join(e.dir.dist,e.documentationFileNames.vsCodeHtml),n=d.join(e.dir.dist,e.documentationFileNames.vsCodeCss),r=d.join(e.dir.dist,e.documentationFileNames.webTypes),o=En([t,n,r]),i=import("custom-element-jet-brains-integration"),[{getWebTypesData:s}]=await Promise.all([i,o]),a=e.manifest,{vsCode:l,jetBrains:p,getComponentDocsUrl:c,getComponentDemoUrl:m}=e.options.documentation??{},f=l?.hideLogs!==!1&&p?.hideLogs!==!1,y=console.log;f&&(console.log=()=>{});let g="",C="",u="";try{let x={hideLogs:!0,referencesTemplate:typeof c=="function"||typeof m=="function"?(T,v)=>c===void 0?[{name:"Demo",url:m(v,T)}]:m===void 0?[{name:"Docs",url:c(v,T)}]:[{name:"Docs",url:c(v,T)},{name:"Demo",url:m(v,T)}]:void 0,...l};g=JSON.stringify(JSON.parse(nd(a,x)),null,2),C=JSON.stringify(JSON.parse(td(a,x)),null,2),u=JSON.stringify(JSON.parse(s(a,{hideLogs:!0,referenceTemplate:typeof c=="function"||typeof m=="function"?(T,v)=>typeof c=="function"?{name:"Docs",url:c(v,T)}:{name:"Demo",url:m(v,T)}:void 0,...p})),null,2)}finally{f&&(console.log=y)}await Promise.all([Jn(t,g),Jn(n,C),Jn(r,u)])}}}var Yi=e=>`import { h } from "@arcgis/lumina";
|
|
104
|
+
|
|
105
|
+
type EventHandler<E> = { bivarianceHack(event: E): void }["bivarianceHack"];
|
|
106
|
+
|
|
107
|
+
type TargetedEvent<Target extends EventTarget = EventTarget, TypedEvent extends Event = Event> = Omit<
|
|
108
|
+
TypedEvent,
|
|
109
|
+
"currentTarget"
|
|
110
|
+
> & {
|
|
111
|
+
readonly currentTarget: Target;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
${e.map(od).join(`
|
|
115
|
+
|
|
116
|
+
`)}
|
|
117
|
+
|
|
118
|
+
declare module "@arcgis/lumina" {
|
|
119
|
+
export namespace h.JSX {
|
|
120
|
+
interface IntrinsicElements {
|
|
121
|
+
${e.map(({name:t,tagName:n})=>` "${n}": Lumina${t};`).join(`
|
|
122
|
+
`)}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}`;function od({name:e,typeName:t,members:n,events:r=[]}){let[o,i]=ge(e,n);return[`interface Lumina${e} extends ${o}h.JSX.HTMLAttributes<${t}> {
|
|
126
|
+
`,r.map(s=>` ${_(`on${s.name}`)}?: EventHandler<TargetedEvent<${t}, CustomEvent<${e}["${s.name}"]["detail"]>>>;
|
|
127
|
+
`).join(""),"}",i].join("")}function Zi(e){let t=` interface IntrinsicElements extends PreactJsx.IntrinsicElements {
|
|
128
|
+
${e.map(({name:n,tagName:r})=>` "${r}": Preact${n};`).join(`
|
|
129
|
+
`)}
|
|
130
|
+
}`;return`import { JSX as PreactJsx } from "preact";
|
|
131
|
+
|
|
132
|
+
${e.map(id).join(`
|
|
133
|
+
|
|
134
|
+
`)}
|
|
135
|
+
|
|
136
|
+
declare module 'preact' {
|
|
137
|
+
namespace createElement.JSX {
|
|
138
|
+
${t}
|
|
139
|
+
}
|
|
140
|
+
namespace h.JSX {
|
|
141
|
+
${t}
|
|
142
|
+
}
|
|
143
|
+
}`}function id({name:e,typeName:t,members:n,events:r=[]}){let[o,i]=ge(e,n);return[`interface Preact${e} extends ${o}PreactJsx.HTMLAttributes<${t}> {
|
|
144
|
+
`,r.map(s=>` ${_(`on${s.name}`)}?: PreactJsx.EventHandler<PreactJsx.TargetedEvent<${t}, CustomEvent<${e}["${s.name}"]["detail"]>>>;
|
|
145
|
+
`).join(""),"}",i].join("")}function es(e){let t=e.map(({name:n,tagName:r})=>` "${r}": React${n};`).join(`
|
|
146
|
+
`);return`import type { Ref, HTMLAttributes, EventHandler, SyntheticEvent } from 'react';
|
|
147
|
+
|
|
148
|
+
${e.map(sd).join(`
|
|
149
|
+
|
|
150
|
+
`)}
|
|
151
|
+
|
|
152
|
+
declare module "react" {
|
|
153
|
+
namespace createElement.JSX {
|
|
154
|
+
interface IntrinsicElements {
|
|
155
|
+
${t}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
declare module "react/jsx-runtime" {
|
|
160
|
+
namespace JSX {
|
|
161
|
+
interface IntrinsicElements {
|
|
162
|
+
${t}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
declare module "react/jsx-dev-runtime" {
|
|
167
|
+
namespace JSX {
|
|
168
|
+
interface IntrinsicElements {
|
|
169
|
+
${t}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}`}function sd({name:e,typeName:t,members:n,events:r=[]}){let[o,i]=ge(e,n);return[`interface React${e} extends ${o}HTMLAttributes<${t}> {
|
|
173
|
+
`,` ref?: Ref<${t}>;
|
|
174
|
+
`,r.map(s=>` ${_(`on${s.name}`)}?: EventHandler<SyntheticEvent<${t}, CustomEvent<${e}["${s.name}"]["detail"]>>>;
|
|
175
|
+
`).join(""),"}",i].join("")}var ts=e=>`import { JSXBase as StencilJsx } from "@stencil/core/internal";
|
|
176
|
+
|
|
177
|
+
type EventHandler<E> = { bivarianceHack(event: E): void }["bivarianceHack"];
|
|
178
|
+
|
|
179
|
+
type TargetedEvent<Target extends EventTarget = EventTarget, TypedEvent extends Event = Event> = Omit<
|
|
180
|
+
TypedEvent,
|
|
181
|
+
"currentTarget"
|
|
182
|
+
> & {
|
|
183
|
+
readonly currentTarget: Target;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
${e.map(ad).join(`
|
|
187
|
+
|
|
188
|
+
`)}
|
|
189
|
+
|
|
190
|
+
declare module "@stencil/core/internal/stencil-public-runtime" {
|
|
191
|
+
export namespace h.JSX {
|
|
192
|
+
interface IntrinsicElements {
|
|
193
|
+
${e.map(({name:t,tagName:n})=>` "${n}": Stencil${t};`).join(`
|
|
194
|
+
`)}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}`;function ad({name:e,typeName:t,members:n,events:r=[]}){let[o,i]=ge(e,n);return[`interface Stencil${e} extends ${o}StencilJsx.HTMLAttributes<${t}> {
|
|
198
|
+
`,r.map(s=>` ${_(`on${s.name[0].toUpperCase()}${s.name.slice(1)}`)}?: EventHandler<TargetedEvent<${t}, CustomEvent<${e}["${s.name}"]["detail"]>>>;
|
|
199
|
+
`).join(""),"}",i].join("")}import{mkdir as cd,writeFile as rs}from"node:fs/promises";var ns=(e,t,n)=>[n,t,pd(e),ld(e)].join(`
|
|
200
|
+
|
|
201
|
+
`),pd=e=>e.filter(t=>(t.events?.length??0)>0).map(({name:t,typeName:n})=>`export interface ${t}CustomEvent<T> extends CustomEvent<T> {
|
|
202
|
+
detail: T;
|
|
203
|
+
target: ${n};
|
|
204
|
+
}`).join(`
|
|
205
|
+
`),ld=e=>`declare global {
|
|
206
|
+
interface HTMLElementTagNameMap {
|
|
207
|
+
${e.map(({typeName:t,tagName:n})=>` "${n}": ${t};`).join(`
|
|
208
|
+
`)}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
${e.map(dd).join(`
|
|
212
|
+
`).split(`
|
|
213
|
+
`).map(t=>t.length>0?` ${t}`:t).join(`
|
|
214
|
+
`)}
|
|
215
|
+
}`;function dd({name:e,typeName:t,events:n=[]}){let r=n.length>0;return[r?`interface ${t}EventMap {
|
|
216
|
+
${n.map(o=>` "${o.name}": ${e}["${o.name}"]["detail"];`).join(`
|
|
217
|
+
`)}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
`:"",`interface ${t} extends ${e} {
|
|
221
|
+
${r?` addEventListener<K extends keyof ${t}EventMap>(type: K, listener: (this: ${t}, ev: ${e}CustomEvent<${t}EventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
222
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
223
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
224
|
+
removeEventListener<K extends keyof ${t}EventMap>(type: K, listener: (this: ${t}, ev: ${e}CustomEvent<${t}EventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
225
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
226
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;`:""}
|
|
227
|
+
}`].join("")}function os(e){let t;return{name:"@arcgis/lumina:generateFrameworkTypes",generateBundle(){if(e.isInStorybook)return;t=Ci(e);let n=d.join(e.dir.dist,"index.d.ts");e.declarationTextTransformers.push(r=>{let{filePath:o,content:i}=r;return o===n?{filePath:o,content:ns(e.manifestComponents,i,t)}:r})},async writeBundle(){if(e.isInStorybook)return;let n=d.join(e.dir.dist,"types");await cd(n);let r=`/// <reference types="../index.d.ts" />
|
|
228
|
+
${t.replaceAll("./","../")}`,o=Object.entries({react:es(e.manifestComponents),preact:Zi(e.manifestComponents),stencil:ts(e.manifestComponents),lumina:Yi(e.manifestComponents)}).map(async([i,s])=>await rs(d.join(n,`${i}.d.ts`),`${r}
|
|
229
|
+
${s}`));o.push(rs(d.join(n,"components.d.ts"),`/**
|
|
230
|
+
* This file exists only for backwards-compatibility. Going
|
|
231
|
+
* forward, import from the package root index.d.ts file instead
|
|
232
|
+
*/
|
|
233
|
+
export * from "../";`)),await Promise.all(o)}}}import{mkdir as md,writeFile as fd}from"node:fs/promises";import{isNotUndefined as ud}from"@arcgis/components-utils";function is(e){return{name:"@arcgis/lumina:buildWrappers",apply:()=>e.viteCommand==="build"&&!!e.options.build?.wrappers?.length,async writeBundle(){e.isInStorybook||await Promise.all(e.options.build?.wrappers?.map(async t=>{t.type==="react18"&&await gd(e,t)})??[])}}}var yd=`
|
|
234
|
+
import React from "react";
|
|
235
|
+
import { createComponent } from "@lit/react";
|
|
236
|
+
import type { EventName } from "@lit/react";
|
|
237
|
+
import { createPrototypeProxy } from "@arcgis/lumina";
|
|
238
|
+
`;async function gd(e,t){let{name:n}=I(),r=e.manifest.modules.flatMap(s=>U(s,!0).map(a=>a.docsTags?.some(l=>l.name===ee)?void 0:hd(a))).filter(ud),o=[`/// <reference types="${n}" preserve="true" />`,yd,...r].join(""),i=d.resolve(t.proxiesFile);await md(d.dirname(i),{recursive:!0}),await fd(i,o)}function hd(e){let t=e.events?.map(n=>` ${_(`on${n.name}`)}: "${n.name}" as EventName<${e.typeName}["${n.name}"]>,`).join(`
|
|
239
|
+
`);return`
|
|
240
|
+
export const ${e.name} = /*@__PURE__*/ createComponent({
|
|
241
|
+
react: React,
|
|
242
|
+
tagName: "${e.tagName}",
|
|
243
|
+
elementClass: createPrototypeProxy<${e.typeName}>("${e.tagName}"),
|
|
244
|
+
events: {${t?`
|
|
245
|
+
${t}
|
|
246
|
+
`:""}},
|
|
247
|
+
});
|
|
248
|
+
`}function Cd(e={}){let t=new P(e),n=[t.plugin,Xo(t),Qo(t),Gi(t),gr(t),Lo(t),os(t),Qi(t),Ui(t),jr(t),Wo(t),Vi(t),oi(t),Zo(t),Wn(t),Eo(t),zo(t),is(t),_o(t)].filter(xd);return n.context=t,n}var vx={initializeComponentDependencies:bt,updateLuminaTs:Dt,propertyToAttributeMappings:V,findDeclaredComponents:pn,nativeEvents:Ct,svgElements:Ae,mathMlElements:$e,alwaysAttributes:ht,nativeAlwaysAttributes:xt,htmlAlwaysAttributes:Qe,isPropertyEscapeNeeded:we};export{vx as exportsForCodemod,te as inferCdnUrl,Cd as useLumina};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TemplatePart } from "./templateParts";
|
|
2
|
+
import { type JsxContext } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* If JSX prop value could possibly be `undefined`, we add `?? nothing` to it.
|
|
5
|
+
*
|
|
6
|
+
* See comment on ElementPropertyToAttributeMappings.stringified for reason why.
|
|
7
|
+
*/
|
|
8
|
+
export declare function autoAddNothing(part: TemplatePart, context: JsxContext): TemplatePart;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import type { JsxContext } from "./types";
|
|
3
|
+
import type { TemplatePart } from "./templateParts";
|
|
4
|
+
/**
|
|
5
|
+
* Extract comments and whitespace from a node (called "trivia" in TypeScript)
|
|
6
|
+
*/
|
|
7
|
+
export declare const getNodeTrivia: (node: ts.Node, context: JsxContext) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Attach trivia comments to a node.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* Does not attach whitespace as doing so in TypeScript AST is much harder than
|
|
13
|
+
* it seems. There is one hacky workaround, but I could easily see it break
|
|
14
|
+
* something: https://stackoverflow.com/a/69240365/8584605
|
|
15
|
+
*/
|
|
16
|
+
export declare function attachComments<T extends ts.Node>(triviaText: string, node: T): T;
|
|
17
|
+
export declare const findCommentRanges: (trivia: string) => ts.CommentRange[];
|
|
18
|
+
/** Convert trivia into parts that can be converted to template expressions */
|
|
19
|
+
export declare function triviaToTemplateParts(trivia: string): TemplatePart[];
|