{"version":3,"file":"polygonjs_editor_components.c6591f7081d5fa5f6e91.css","mappings":";AA+GA;CACC,uBAAuB;CACvB,iBAAiB;AAClB","sources":["webpack:///../src/docs/expressions/Expressions.vue"],"sourcesContent":["<template>\n\t<h1 class=\"mb-16\">\n\t\t<span> Expressions</span>\n\t</h1>\n\n\t<ul role=\"list\" class=\"list-none border-l border-transparent\">\n\t\t<li class=\"relative py-0 my-0\" v-for=\"(expressionName, i) in expressionNames\">\n\t\t\t<router-link\n\t\t\t\tclass=\"group flex justify-between gap-2 py-1 my-0 text-sm pl-4 text-zinc-600 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white no-underline hover:no-underline hover:bg-zinc-800/50\"\n\t\t\t\t:to=\"docsExpression(expressionName)\"\n\t\t\t>\n\t\t\t\t<span class=\"absolute inset-y-0 left-0 w-px bg-zinc-200/10 group-hover:bg-emerald-500\"></span>\n\t\t\t\t<span>\n\t\t\t\t\t<span class=\"\">{{ expressionName }}</span\n\t\t\t\t\t><span\n\t\t\t\t\t\tv-if=\"examplesCountList[i] > 0\"\n\t\t\t\t\t\tclass=\"bg-orange-500 text-white text-xs ml-2 px-2 py-px rounded-full leading-none opacity-80 group-hover:opacity-100\"\n\t\t\t\t\t\t>{{ examplesCountLabels[i] }}</span\n\t\t\t\t\t>\n\t\t\t\t</span>\n\t\t\t</router-link>\n\t\t</li>\n\t</ul>\n\n\t<div>\n\t\t<div ref=\"descriptionElement\" v-html=\"description\"></div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport {ExpressionType} from '../../../@polygonjs/polygonjs/src/engine/expressions/methods/Common';\nimport {defineComponent, ref, Ref, onMounted, ComputedRef, computed, nextTick} from 'vue';\nimport {getRegisteredExpressions} from './Common';\nimport {docsExpression} from '../../routes';\nimport type {ExamplesRegisterClass} from '../../engine/examples/ExamplesRegister';\nimport {ExamplesRegisterAsync} from '../../engine/examples/ExamplesRegisterAsync';\nimport {DocumentExpressions} from '../documents/DocumentExpressions';\nimport {replaceAnchorsByRouterLinks} from '../common/RouteUtils';\nimport {useRoute} from 'vue-router';\n\nexport default defineComponent({\n\tname: 'docs-expressions',\n\tcomponents: {},\n\n\tprops: {},\n\n\tsetup() {\n\t\tconst examplesLoaded = ref(false);\n\t\tlet ExamplesRegister: ExamplesRegisterClass | undefined;\n\t\tonMounted(loadExamples);\n\t\tasync function loadExamples() {\n\t\t\texamplesLoaded.value = false;\n\t\t\tExamplesRegister = await ExamplesRegisterAsync();\n\t\t\texamplesLoaded.value = true;\n\t\t}\n\n\t\tconst expressionNames: Ref<ExpressionType[]> = ref([]);\n\n\t\tconst examplesCountList: ComputedRef<number[]> = computed(() => {\n\t\t\treturn expressionNames.value.map((expressionName) => {\n\t\t\t\tconst examples =\n\t\t\t\t\texamplesLoaded.value && ExamplesRegister\n\t\t\t\t\t\t? ExamplesRegister.examplesFromExpression(expressionName)\n\t\t\t\t\t\t: [];\n\t\t\t\treturn examples?.length || 0;\n\t\t\t});\n\t\t});\n\t\tconst examplesCountLabels: ComputedRef<string[]> = computed(() => {\n\t\t\treturn examplesCountList.value.map((count) => {\n\t\t\t\treturn count == 1 ? '1 example' : `${count} examples`;\n\t\t\t});\n\t\t});\n\n\t\tonMounted(loadRegisteredExpressions);\n\t\tasync function loadRegisteredExpressions() {\n\t\t\tawait getRegisteredExpressions({\n\t\t\t\texpressionNames: expressionNames.value,\n\t\t\t});\n\t\t}\n\n\t\tconst route = useRoute();\n\t\tconst descriptionElement: Ref<HTMLElement | null> = ref(null);\n\t\tconst description: Ref<string> = ref('loading...');\n\t\tonMounted(_loadDescription);\n\t\tasync function _loadDescription() {\n\t\t\tconst result = await DocumentExpressions.fetch();\n\t\t\tif (result) {\n\t\t\t\tdescription.value = result.markdown;\n\t\t\t\tnextTick(_replaceAnchorsByRouterLinks);\n\t\t\t}\n\t\t}\n\t\tfunction _replaceAnchorsByRouterLinks() {\n\t\t\tif (!descriptionElement.value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceAnchorsByRouterLinks(descriptionElement.value, route);\n\t\t}\n\n\t\treturn {\n\t\t\texpressionNames,\n\t\t\tdocsExpression,\n\t\t\texamplesCountList,\n\t\t\texamplesCountLabels,\n\t\t\tdescriptionElement,\n\t\t\tdescription,\n\t\t};\n\t},\n});\n</script>\n\n<style>\ncode {\n\tbackground-color: black;\n\tpadding: 5px 10px;\n}\n</style>\n"],"names":[],"sourceRoot":""}