{"version":3,"file":"/Users/anthonygubler/development/dojo-org/parade/src/Example.tsx","sourceRoot":"","sources":["Example.tsx"],"names":[],"mappings":"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","sourcesContent":["import { create, tsx, destroy } from '@dojo/framework/core/vdom';\nimport theme from '@dojo/framework/core/middleware/theme';\nimport icache from '@dojo/framework/core/middleware/icache';\nimport global from '@dojo/framework/shim/global';\nimport { isThemeInjectorPayloadWithVariant } from '@dojo/framework/core/ThemeInjector';\n\nimport HorizontalRule from './HorizontalRule';\nimport ThemeTable from './ThemeTable';\nimport InterfaceTable from './InterfaceTable';\nimport { TransformedConfig } from '.';\n\nconst middleware = create({ destroy, icache });\n\nconst postMessage = middleware(({ middleware: { destroy, icache } }) => {\n\tconst callback = (e: any) => {\n\t\tconst dimensions = JSON.parse(e.data);\n\t\ticache.set('iframe-dimensions', dimensions);\n\t};\n\tglobal.window.addEventListener('message', callback);\n\tdestroy(() => {\n\t\tglobal.window.removeEventListener('message', callback);\n\t});\n\treturn () => icache.getOrSet<{ height: string }>('iframe-dimensions', { height: '0px' });\n});\n\nconst factory = create({ theme, icache, postMessage }).properties<{\n\twidgetName: string;\n\texampleName?: string;\n\twidgetReadmes: any;\n\twidgetExamples: any;\n\twidgetProperties: any;\n\twidgetThemes: any;\n\tconfig: TransformedConfig;\n}>();\n\nexport default factory(function Example({\n\tproperties,\n\tmiddleware: { icache, theme, postMessage }\n}) {\n\tconst {\n\t\tconfig,\n\t\twidgetName,\n\t\texampleName,\n\t\twidgetReadmes,\n\t\twidgetExamples,\n\t\twidgetProperties,\n\t\twidgetThemes\n\t} = properties();\n\n\tconst currentTheme = theme.get();\n\tlet themeName = config.themes[0].label;\n\tconfig.themes.forEach((theme: any, i: number) => {\n\t\tif (isThemeInjectorPayloadWithVariant(currentTheme)) {\n\t\t\tif (currentTheme.theme.theme === theme.theme.theme) {\n\t\t\t\tthemeName = theme.label;\n\t\t\t}\n\t\t} else if (currentTheme && currentTheme.theme === theme.theme) {\n\t\t\tthemeName = theme.label;\n\t\t}\n\t});\n\tconst isOverview = !exampleName;\n\tconst example =\n\t\tconfig.widgets &&\n\t\tconfig.widgets[widgetName].find((e: any) =>\n\t\t\tisOverview ? e.overview : e.filename.toLowerCase() === exampleName\n\t\t);\n\tif (!example) {\n\t\treturn;\n\t}\n\tconst codesandboxPath =\n\t\tconfig.codesandboxPath && config.codesandboxPath(widgetName, example.filename, themeName);\n\tconst examplePath = config.examplePath(widgetName, example.filename);\n\tconst readmePath = config.readmePath(widgetName);\n\n\tconst widgetReadme = widgetReadmes[readmePath];\n\tconst widgetExample = widgetExamples[examplePath];\n\tconst { properties: widgetProperty, children: widgetChildren, messages, locales } =\n\t\twidgetProperties[widgetName] || ({} as any);\n\tconst widgetTheme = widgetThemes[widgetName];\n\tconst hasThemeKeys = Object.keys(widgetTheme).length > 0;\n\n\tconst dimensions = postMessage();\n\n\tif (example.size === 'small') {\n\t\tdimensions.height = '100px';\n\t} else if (example.size === 'medium') {\n\t\tdimensions.height = '300px';\n\t} else if (example.size === 'large') {\n\t\tdimensions.height = '600px';\n\t}\n\n\tconst isFullscreen = icache.get('isFullscreen');\n\tconst isCodeShowing = icache.getOrSet('isCodeShowing', true);\n\n\tlet description;\n\tif (example.description) {\n\t\tdescription =\n\t\t\ttypeof example.description === 'string' ? example.description : <example.description />;\n\t}\n\n\treturn (\n\t\t<div>\n\t\t\t{isOverview && <div innerHTML={widgetReadme} />}\n\t\t\t{isOverview && <HorizontalRule />}\n\t\t\t<h2 classes=\"text-2xl h mb-4\">{example.title || 'Example'}</h2>\n\t\t\t<div\n\t\t\t\tclasses={`bg-white overflow-hidden border-t border-l border-r border-gray-400 ${\n\t\t\t\t\t!isCodeShowing ? 'border-b' : 'border-b-0'\n\t\t\t\t} ${isFullscreen ? 'fixed top-0 left-0 w-screen h-screen z-50' : 'rounded-t-lg'}`}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclasses={`border border-gray-400 border-t-0 border-l-0 border-r-0 flex justify-end ${\n\t\t\t\t\t\tisFullscreen ? 'p-6' : 'px-4 py-2'\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclasses={`border-0 appearance-none bg-transparent cursor-pointer p-0 ${\n\t\t\t\t\t\t\tisFullscreen ? 'text-black mr-6' : 'text-gray-500 mr-4'\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tonclick={() => icache.set('isFullscreen', !isFullscreen)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isFullscreen ? (\n\t\t\t\t\t\t\t<i class=\"fas fa-compress-alt\"></i>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<i class=\"fas fa-expand-alt\"></i>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclasses={`border-0 appearance-none bg-transparent cursor-pointer p-0 ${\n\t\t\t\t\t\t\tisCodeShowing ? 'text-black' : 'text-gray-500'\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tonclick={() => icache.set('isCodeShowing', !isCodeShowing)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<i class=\"fas fa-code\"></i>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div classes=\"p-4\">\n\t\t\t\t\t{example.sandbox ? (\n\t\t\t\t\t\t<iframe\n\t\t\t\t\t\t\tsrc={`?cacheBust=${widgetName}-${\n\t\t\t\t\t\t\t\texample.filename\n\t\t\t\t\t\t\t}-${themeName}#widget/${widgetName}/sandbox/${example.filename.toLowerCase()}?theme=${themeName}`}\n\t\t\t\t\t\t\tclasses=\"w-full iframe\"\n\t\t\t\t\t\t\tstyles={dimensions}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div key=\"example-container\" styles={example.size ? dimensions : {}}>\n\t\t\t\t\t\t\t<example.module />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{isCodeShowing && (\n\t\t\t\t<div classes=\"rounded-b-lg bg-gray-800\">\n\t\t\t\t\t<pre classes=\"bg-blue-900 language-ts rounded px-4 py-4\">\n\t\t\t\t\t\t<code classes=\"language-ts\" innerHTML={widgetExample} />\n\t\t\t\t\t</pre>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{codesandboxPath && (\n\t\t\t\t<div classes=\"my-4\">\n\t\t\t\t\t<a href={codesandboxPath}>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\talt={`Edit ${examplePath} example`}\n\t\t\t\t\t\t\tsrc=\"https://codesandbox.io/static/img/play-codesandbox.svg\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{description && (\n\t\t\t\t<virtual>\n\t\t\t\t\t<HorizontalRule />\n\t\t\t\t\t<h2 classes=\"text-2xl mb-4\">Description</h2>\n\t\t\t\t\t{description}\n\t\t\t\t</virtual>\n\t\t\t)}\n\t\t\t{isOverview && widgetProperty && <InterfaceTable props={widgetProperty} />}\n\t\t\t{isOverview && widgetChildren && widgetChildren.length && (\n\t\t\t\t<InterfaceTable props={widgetChildren} tableName=\"Children\" />\n\t\t\t)}\n\t\t\t{isOverview && messages.length && (\n\t\t\t\t<InterfaceTable\n\t\t\t\t\tprops={messages}\n\t\t\t\t\ttableName=\"i18n Messages\"\n\t\t\t\t\tdescriptionLabel=\"Default\"\n\t\t\t\t\tshowTypes={false}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{isOverview && locales.length && (\n\t\t\t\t<InterfaceTable\n\t\t\t\t\tprops={locales}\n\t\t\t\t\ttableName=\"Supported Locales\"\n\t\t\t\t\tshowComments={false}\n\t\t\t\t\tshowTypes={false}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{isOverview && hasThemeKeys && <ThemeTable themes={widgetTheme} />}\n\t\t</div>\n\t);\n});\n"]}