@oruga-ui/oruga-next
Version:
UI components for Vue.js and CSS framework agnostic
1 lines • 3.51 kB
Source Map (JSON)
{"version":3,"file":"skeleton.cjs","sources":["../../src/components/skeleton/Skeleton.vue","../../src/components/skeleton/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { getDefault } from \"@/utils/config\";\nimport { toCssDimension } from \"@/utils/helpers\";\nimport { defineClasses } from \"@/composables\";\n\nimport type { SkeletonProps } from \"./props\";\n\n/**\n * A placeholder for content to load.\n * @displayName Skeleton\n * @style _skeleton.scss\n */\ndefineOptions({\n isOruga: true,\n name: \"OSkeleton\",\n configField: \"skeleton\",\n});\n\nconst props = withDefaults(defineProps<SkeletonProps>(), {\n override: undefined,\n active: true,\n animated: () => getDefault(\"skeleton.animated\", true),\n width: undefined,\n height: undefined,\n circle: false,\n rounded: () => getDefault(\"skeleton.rounded\", true),\n count: 1,\n size: undefined,\n position: \"left\",\n});\n\nconst itemStyle = computed(() => ({\n height: toCssDimension(props.height),\n width: toCssDimension(props.width),\n borderRadius: props.circle ? \"50%\" : undefined,\n}));\n\n// --- Computed Component Classes ---\n\nconst rootClasses = defineClasses(\n [\"rootClass\", \"o-skeleton\"],\n [\n \"positionClass\",\n \"o-skeleton--\",\n computed(() => props.position),\n computed(() => !!props.position),\n ],\n);\n\nconst itemClasses = defineClasses(\n [\"itemClass\", \"o-skeleton__item\"],\n [\n \"roundedClass\",\n \"o-skeleton__item--rounded\",\n null,\n computed(() => props.rounded),\n ],\n [\n \"animatedClass\",\n \"o-skeleton__item--animated\",\n null,\n computed(() => props.animated),\n ],\n [\n \"sizeClass\",\n \"o-skeleton__item--\",\n computed(() => props.size),\n computed(() => !!props.size),\n ],\n);\n</script>\n\n<template>\n <div v-if=\"active\" data-oruga=\"skeleton\" :class=\"rootClasses\">\n <div\n v-for=\"i in count\"\n :key=\"i\"\n :class=\"itemClasses\"\n :style=\"itemStyle\" />\n </div>\n</template>\n","import type { App, Plugin } from \"vue\";\n\nimport Skeleton from \"./Skeleton.vue\";\n\nimport { registerComponent } from \"@/utils/plugins\";\n\n/** export skeleton plugin */\nexport default {\n install(app: App) {\n registerComponent(app, Skeleton);\n },\n} as Plugin;\n\n/** export skeleton components */\nexport { Skeleton as OSkeleton };\n"],"names":["computed","toCssDimension","defineClasses","registerComponent","Skeleton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,UAAM,QAAQ;AAaR,UAAA,YAAYA,IAAAA,SAAS,OAAO;AAAA,MAC9B,QAAQC,QAAAA,eAAe,MAAM,MAAM;AAAA,MACnC,OAAOA,QAAAA,eAAe,MAAM,KAAK;AAAA,MACjC,cAAc,MAAM,SAAS,QAAQ;AAAA,IAAA,EACvC;AAIF,UAAM,cAAcC,cAAA;AAAA,MAChB,CAAC,aAAa,YAAY;AAAA,MAC1B;AAAA,QACI;AAAA,QACA;AAAA,QACAF,aAAS,MAAM,MAAM,QAAQ;AAAA,QAC7BA,aAAS,MAAM,CAAC,CAAC,MAAM,QAAQ;AAAA,MAAA;AAAA,IAEvC;AAEA,UAAM,cAAcE,cAAA;AAAA,MAChB,CAAC,aAAa,kBAAkB;AAAA,MAChC;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACAF,IAAA,SAAS,MAAM,MAAM,OAAO;AAAA,MAChC;AAAA,MACA;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACAA,IAAA,SAAS,MAAM,MAAM,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACI;AAAA,QACA;AAAA,QACAA,aAAS,MAAM,MAAM,IAAI;AAAA,QACzBA,aAAS,MAAM,CAAC,CAAC,MAAM,IAAI;AAAA,MAAA;AAAA,IAEnC;;;;;;;;;;;;;;;;;;AChEA,MAAe,QAAA;AAAA,EACX,QAAQ,KAAU;AACdG,WAAA,kBAAkB,KAAKC,SAAQ;AAAA,EAAA;AAEvC;;;"}