UNPKG

@oruga-ui/oruga-next

Version:

UI components for Vue.js and CSS framework agnostic

1 lines 3.86 kB
{"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","active","_createElementBlock","_unref","_Fragment","_renderList","count","registerComponent","Skeleton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,UAAM,QAAQ;AAad,UAAM,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,cAAAA;AAAAA,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,IACnC;AAGJ,UAAM,cAAcE,cAAAA;AAAAA,MAChB,CAAC,aAAa,kBAAkB;AAAA,MAChC;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACAF,IAAAA,SAAS,MAAM,MAAM,OAAO;AAAA,MAAA;AAAA,MAEhC;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACAA,IAAAA,SAAS,MAAM,MAAM,QAAQ;AAAA,MAAA;AAAA,MAEjC;AAAA,QACI;AAAA,QACA;AAAA,QACAA,aAAS,MAAM,MAAM,IAAI;AAAA,QACzBA,aAAS,MAAM,CAAC,CAAC,MAAM,IAAI;AAAA,MAAA;AAAA,IAC/B;;aAKWG,KAAAA,2BAAXC,IAAAA,mBAMM,OAAA;AAAA;QANa,cAAW;AAAA,QAAY,0BAAOC,IAAAA,MAAA,WAAA,CAAW;AAAA,MAAA;8BACxDD,IAAAA,mBAIyBE,IAAAA,UAAA,MAAAC,IAAAA,WAHTC,KAAAA,OAAK,CAAV,MAAC;kCADZJ,IAAAA,mBAIyB,OAAA;AAAA,YAFpB,KAAK;AAAA,YACL,0BAAOC,UAAA,WAAA,CAAW;AAAA,YAClB,0BAAO,UAAA,KAAS;AAAA,UAAA;;;;;;ACzE7B,MAAA,QAAe;AAAA,EACX,QAAQ,KAAU;AACdI,WAAAA,kBAAkB,KAAKC,SAAQ;AAAA,EACnC;AACJ;;;"}