UNPKG

@dialpad/dialtone

Version:

Dialpad's Dialtone design system monorepo

100 lines (99 loc) 2.9 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const skeleton = require("../../common/mixins/skeleton.cjs"); const skeleton_constants = require("./skeleton_constants.cjs"); const vue = require("vue"); const _pluginVue_exportHelper = require("../../_virtual/_plugin-vue_export-helper.cjs"); const _sfc_main = { compatConfig: { MODE: 3 }, name: "DtSkeletonShape", mixins: [skeleton.default], props: { /** * Defines the shape of the skeleton, accepts circle or square. * @values circle, square */ shape: { type: String, default: "circle", validator: (shape) => Object.keys(skeleton_constants.SKELETON_SHAPES).includes(shape) }, /** * Size of the shape * @values xs, sm, md, lg, xl */ size: { type: String, default: "md" }, /** * Duration time of the animation (ms), set -1 for an infinite animation. */ animationDuration: { type: Number, default: -1 }, /** * This property has higher priority than "option.animate" * @values true, false */ animate: { type: Boolean, default: true }, /** * RippleDuration controls how long the delay is for the animation of a * placeholder 1000 pixels from the top of the page. Each placeholder * from the top down will have a delay duration from 0 to this offset. * The delay of each placeholder animation is based on how far down the page * the placeholder is rendered. This is a linear relationship. The unit * is milliseconds. */ offset: { type: Number, default: 1 }, /** * Additional class name for the content. */ contentClass: { type: [String, Object, Array], default: "" } }, data() { return { SKELETON_SHAPES: skeleton_constants.SKELETON_SHAPES }; }, computed: { shapeStyles() { const size = skeleton_constants.SKELETON_SHAPE_SIZES[this.size] || this.size; return { ...this.skeletonStyle, "min-width": size, "max-width": size, "min-height": size, "max-height": size }; } } }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("div", { ref: "skeleton", "data-qa": "skeleton-shape", class: vue.normalizeClass([ "d-skeleton-placeholder", $data.SKELETON_SHAPES[$props.shape], { "d-skeleton-placeholder--animate": $props.animate }, $props.contentClass ]), style: vue.normalizeStyle($options.shapeStyles) }, null, 6); } const DtSkeletonShape = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]); exports.default = DtSkeletonShape; //# sourceMappingURL=skeleton-shape.vue.cjs.map