vuetify 3.6.0 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/_component-variables-labs.sass +0 -2
  2. package/dist/_component-variables.sass +2 -0
  3. package/dist/json/importMap-labs.json +10 -30
  4. package/dist/json/importMap.json +114 -94
  5. package/dist/json/web-types.json +1 -1
  6. package/dist/vuetify-labs.css +2555 -2555
  7. package/dist/vuetify-labs.d.ts +4811 -4811
  8. package/dist/vuetify-labs.esm.js +10050 -10052
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +10050 -10052
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +679 -502
  13. package/dist/vuetify.d.ts +2872 -574
  14. package/dist/vuetify.esm.js +1711 -887
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +1711 -887
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +611 -557
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/{labs → components}/VConfirmEdit/VConfirmEdit.mjs +1 -1
  22. package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -0
  23. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +1 -0
  24. package/lib/components/VConfirmEdit/index.mjs.map +1 -0
  25. package/lib/{labs → components}/VEmptyState/VEmptyState.mjs +4 -4
  26. package/lib/components/VEmptyState/VEmptyState.mjs.map +1 -0
  27. package/lib/components/VEmptyState/index.mjs.map +1 -0
  28. package/lib/{labs → components}/VFab/VFab.mjs +1 -1
  29. package/lib/components/VFab/VFab.mjs.map +1 -0
  30. package/lib/components/VFab/index.mjs.map +1 -0
  31. package/lib/components/VSparkline/VBarline.mjs.map +1 -0
  32. package/lib/components/VSparkline/VSparkline.mjs +44 -320
  33. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  34. package/lib/components/VSparkline/VTrendline.mjs.map +1 -0
  35. package/lib/components/VSparkline/index.mjs +1 -3
  36. package/lib/components/VSparkline/index.mjs.map +1 -1
  37. package/lib/components/VSparkline/util/line.mjs.map +1 -0
  38. package/lib/components/VSparkline/util/path.mjs.map +1 -0
  39. package/lib/components/VSpeedDial/VSpeedDial.mjs +68 -85
  40. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  41. package/lib/components/VSpeedDial/VSpeedDial.sass +20 -72
  42. package/lib/components/VSpeedDial/index.mjs +1 -3
  43. package/lib/components/VSpeedDial/index.mjs.map +1 -1
  44. package/lib/components/index.d.mts +2840 -547
  45. package/lib/components/index.mjs +6 -2
  46. package/lib/components/index.mjs.map +1 -1
  47. package/lib/composables/directiveComponent.mjs +1 -3
  48. package/lib/composables/directiveComponent.mjs.map +1 -1
  49. package/lib/entry-bundler.mjs +1 -1
  50. package/lib/framework.mjs +1 -1
  51. package/lib/index.d.mts +40 -40
  52. package/lib/labs/VDateInput/VDateInput.mjs +2 -2
  53. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  54. package/lib/labs/VDateInput/index.d.mts +14 -14
  55. package/lib/labs/components.d.mts +1628 -3945
  56. package/lib/labs/components.mjs +0 -5
  57. package/lib/labs/components.mjs.map +1 -1
  58. package/package.json +2 -2
  59. package/lib/components/VSparkline/helpers/core.mjs +0 -49
  60. package/lib/components/VSparkline/helpers/core.mjs.map +0 -1
  61. package/lib/components/VSparkline/helpers/math.mjs +0 -34
  62. package/lib/components/VSparkline/helpers/math.mjs.map +0 -1
  63. package/lib/components/VSparkline/helpers/path.mjs +0 -27
  64. package/lib/components/VSparkline/helpers/path.mjs.map +0 -1
  65. package/lib/components/VSpeedDial/_variables.scss +0 -5
  66. package/lib/labs/VConfirmEdit/VConfirmEdit.mjs.map +0 -1
  67. package/lib/labs/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +0 -1
  68. package/lib/labs/VConfirmEdit/index.mjs.map +0 -1
  69. package/lib/labs/VEmptyState/VEmptyState.mjs.map +0 -1
  70. package/lib/labs/VEmptyState/index.mjs.map +0 -1
  71. package/lib/labs/VFab/VFab.mjs.map +0 -1
  72. package/lib/labs/VFab/index.mjs.map +0 -1
  73. package/lib/labs/VSparkline/VBarline.mjs.map +0 -1
  74. package/lib/labs/VSparkline/VSparkline.mjs +0 -49
  75. package/lib/labs/VSparkline/VSparkline.mjs.map +0 -1
  76. package/lib/labs/VSparkline/VTrendline.mjs.map +0 -1
  77. package/lib/labs/VSparkline/index.mjs +0 -2
  78. package/lib/labs/VSparkline/index.mjs.map +0 -1
  79. package/lib/labs/VSparkline/util/line.mjs.map +0 -1
  80. package/lib/labs/VSparkline/util/path.mjs.map +0 -1
  81. package/lib/labs/VSpeedDial/VSpeedDial.mjs +0 -76
  82. package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +0 -1
  83. package/lib/labs/VSpeedDial/VSpeedDial.sass +0 -27
  84. package/lib/labs/VSpeedDial/index.mjs +0 -2
  85. package/lib/labs/VSpeedDial/index.mjs.map +0 -1
  86. /package/lib/{labs → components}/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs +0 -0
  87. /package/lib/{labs → components}/VConfirmEdit/index.d.mts +0 -0
  88. /package/lib/{labs → components}/VConfirmEdit/index.mjs +0 -0
  89. /package/lib/{labs → components}/VEmptyState/VEmptyState.css +0 -0
  90. /package/lib/{labs → components}/VEmptyState/VEmptyState.sass +0 -0
  91. /package/lib/{labs → components}/VEmptyState/_variables.scss +0 -0
  92. /package/lib/{labs → components}/VEmptyState/index.d.mts +0 -0
  93. /package/lib/{labs → components}/VEmptyState/index.mjs +0 -0
  94. /package/lib/{labs → components}/VFab/VFab.css +0 -0
  95. /package/lib/{labs → components}/VFab/VFab.sass +0 -0
  96. /package/lib/{labs → components}/VFab/_mixins.scss +0 -0
  97. /package/lib/{labs → components}/VFab/_variables.scss +0 -0
  98. /package/lib/{labs → components}/VFab/index.d.mts +0 -0
  99. /package/lib/{labs → components}/VFab/index.mjs +0 -0
  100. /package/lib/{labs → components}/VSparkline/VBarline.mjs +0 -0
  101. /package/lib/{labs → components}/VSparkline/VTrendline.mjs +0 -0
  102. /package/lib/{labs → components}/VSparkline/index.d.mts +0 -0
  103. /package/lib/{labs → components}/VSparkline/util/line.mjs +0 -0
  104. /package/lib/{labs → components}/VSparkline/util/path.mjs +0 -0
  105. /package/lib/{labs → components}/VSpeedDial/VSpeedDial.css +0 -0
  106. /package/lib/{labs → components}/VSpeedDial/index.d.mts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
2
  // Components
3
- import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
3
+ import { VBtn } from "../VBtn/index.mjs"; // Composables
4
4
  import { useLocale } from "../../composables/index.mjs";
5
5
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
6
6
  import { computed, ref, toRaw, watchEffect } from 'vue';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VConfirmEdit.mjs","names":["VBtn","useLocale","useProxiedModel","computed","ref","toRaw","watchEffect","deepEqual","genericComponent","propsFactory","useRender","makeVConfirmEditProps","modelValue","color","String","cancelText","type","default","okText","VConfirmEdit","name","props","emits","cancel","save","value","setup","_ref","emit","slots","model","internalModel","structuredClone","t","isPristine","actionsUsed","actions","_createVNode","_Fragment"],"sources":["../../../src/components/VConfirmEdit/VConfirmEdit.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRaw, watchEffect } from 'vue'\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Ref, VNode } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VConfirmEditSlots<T> = {\n default: {\n model: Ref<T>\n get actions (): VNode\n }\n}\n\nexport const makeVConfirmEditProps = propsFactory({\n modelValue: null,\n color: String,\n cancelText: {\n type: String,\n default: '$vuetify.confirmEdit.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.confirmEdit.ok',\n },\n}, 'VConfirmEdit')\n\nexport const VConfirmEdit = genericComponent<new <T> (\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n 'onSave'?: (value: T) => void\n },\n slots: VConfirmEditSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VConfirmEdit',\n\n props: makeVConfirmEditProps(),\n\n emits: {\n cancel: () => true,\n save: (value: any) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const internalModel = ref()\n watchEffect(() => {\n internalModel.value = structuredClone(toRaw(model.value))\n })\n\n const { t } = useLocale()\n\n const isPristine = computed(() => {\n return deepEqual(model.value, internalModel.value)\n })\n\n function save () {\n model.value = internalModel.value\n emit('save', internalModel.value)\n }\n\n function cancel () {\n internalModel.value = structuredClone(toRaw(model.value))\n emit('cancel')\n }\n\n let actionsUsed = false\n useRender(() => {\n const actions = (\n <>\n <VBtn\n disabled={ isPristine.value }\n variant=\"text\"\n color={ props.color }\n onClick={ cancel }\n text={ t(props.cancelText) }\n />\n\n <VBtn\n disabled={ isPristine.value }\n variant=\"text\"\n color={ props.color }\n onClick={ save }\n text={ t(props.okText) }\n />\n </>\n )\n return (\n <>\n {\n slots.default?.({\n model: internalModel,\n get actions () {\n actionsUsed = true\n return actions\n },\n })\n }\n\n { !actionsUsed && actions }\n </>\n )\n })\n },\n})\n\nexport type VConfirmEdit = InstanceType<typeof VConfirmEdit>\n"],"mappings":";AAAA;AAAA,SACSA,IAAI,6BAEb;AAAA,SACSC,SAAS;AAAA,SACTC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAC9CC,SAAS,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAE7D;AAWA,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChDG,UAAU,EAAE,IAAI;EAChBC,KAAK,EAAEC,MAAM;EACbC,UAAU,EAAE;IACVC,IAAI,EAAEF,MAAM;IACZG,OAAO,EAAE;EACX,CAAC;EACDC,MAAM,EAAE;IACNF,IAAI,EAAEF,MAAM;IACZG,OAAO,EAAE;EACX;AACF,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAME,YAAY,GAAGX,gBAAgB,CAOG,CAAC,CAAC;EAC/CY,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAEV,qBAAqB,CAAC,CAAC;EAE9BW,KAAK,EAAE;IACLC,MAAM,EAAEA,CAAA,KAAM,IAAI;IAClBC,IAAI,EAAGC,KAAU,IAAK,IAAI;IAC1B,mBAAmB,EAAGA,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,KAAK,GAAG5B,eAAe,CAACmB,KAAK,EAAE,YAAY,CAAC;IAClD,MAAMU,aAAa,GAAG3B,GAAG,CAAC,CAAC;IAC3BE,WAAW,CAAC,MAAM;MAChByB,aAAa,CAACN,KAAK,GAAGO,eAAe,CAAC3B,KAAK,CAACyB,KAAK,CAACL,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,MAAM;MAAEQ;IAAE,CAAC,GAAGhC,SAAS,CAAC,CAAC;IAEzB,MAAMiC,UAAU,GAAG/B,QAAQ,CAAC,MAAM;MAChC,OAAOI,SAAS,CAACuB,KAAK,CAACL,KAAK,EAAEM,aAAa,CAACN,KAAK,CAAC;IACpD,CAAC,CAAC;IAEF,SAASD,IAAIA,CAAA,EAAI;MACfM,KAAK,CAACL,KAAK,GAAGM,aAAa,CAACN,KAAK;MACjCG,IAAI,CAAC,MAAM,EAAEG,aAAa,CAACN,KAAK,CAAC;IACnC;IAEA,SAASF,MAAMA,CAAA,EAAI;MACjBQ,aAAa,CAACN,KAAK,GAAGO,eAAe,CAAC3B,KAAK,CAACyB,KAAK,CAACL,KAAK,CAAC,CAAC;MACzDG,IAAI,CAAC,QAAQ,CAAC;IAChB;IAEA,IAAIO,WAAW,GAAG,KAAK;IACvBzB,SAAS,CAAC,MAAM;MACd,MAAM0B,OAAO,GAAAC,YAAA,CAAAC,SAAA,SAAAD,YAAA,CAAArC,IAAA;QAAA,YAGIkC,UAAU,CAACT,KAAK;QAAA;QAAA,SAEnBJ,KAAK,CAACR,KAAK;QAAA,WACTU,MAAM;QAAA,QACTU,CAAC,CAACZ,KAAK,CAACN,UAAU;MAAC,UAAAsB,YAAA,CAAArC,IAAA;QAAA,YAIfkC,UAAU,CAACT,KAAK;QAAA;QAAA,SAEnBJ,KAAK,CAACR,KAAK;QAAA,WACTW,IAAI;QAAA,QACPS,CAAC,CAACZ,KAAK,CAACH,MAAM;MAAC,UAG3B;MACD,OAAAmB,YAAA,CAAAC,SAAA,SAGMT,KAAK,CAACZ,OAAO,GAAG;QACda,KAAK,EAAEC,aAAa;QACpB,IAAIK,OAAOA,CAAA,EAAI;UACbD,WAAW,GAAG,IAAI;UAClB,OAAOC,OAAO;QAChB;MACF,CAAC,CAAC,EAGF,CAACD,WAAW,IAAIC,OAAO;IAG/B,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VConfirmEdit.spec.cy.mjs","names":["VConfirmEdit","ref","describe","it","externalModel","cy","mount","_createVNode","value","default","_ref","model","get","should","then","$event","_ref2","_Fragment","join","onClick","push","_createTextVNode","click","expect","to","deep","equal","contains","_ref3","_ref4","actions","_ref5"],"sources":["../../../../src/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.tsx"],"sourcesContent":["/// <reference types=\"../../../../types/cypress\" />\n\nimport { VConfirmEdit } from '..'\n\n// Utilities\nimport { ref } from 'vue'\n\n// Tests\ndescribe('VConfirmEdit', () => {\n it('mirrors external updates', () => {\n const externalModel = ref('foo')\n\n cy.mount(() => (\n <VConfirmEdit modelValue={ externalModel.value }>\n { ({ model }) => (\n <p>{ model.value }</p>\n )}\n </VConfirmEdit>\n )).get('p')\n .should('have.text', 'foo')\n .then(() => {\n externalModel.value = 'bar'\n })\n .get('p')\n .should('have.text', 'bar')\n })\n\n it(`doesn't mutate the original value`, () => {\n const externalModel = ref(['foo'])\n\n cy.mount(\n <VConfirmEdit v-model={ externalModel.value } modelValue={ externalModel.value }>\n { ({ model }) => (\n <>\n <p>{ model.value.join(',') }</p>\n <button data-test=\"push\" onClick={ () => model.value.push('bar') }>Push</button>\n </>\n )}\n </VConfirmEdit>\n ).get('p')\n .should('have.text', 'foo')\n .get('[data-test=\"push\"]').click()\n .get('p')\n .should('have.text', 'foo,bar')\n .then(() => {\n expect(externalModel.value).to.deep.equal(['foo'])\n })\n cy.contains('.v-btn', 'OK').click()\n cy.get('p')\n .should('have.text', 'foo,bar')\n .then(() => {\n expect(externalModel.value).to.deep.equal(['foo', 'bar'])\n })\n })\n\n it('hides actions if used from the slot', () => {\n cy.mount(\n <VConfirmEdit></VConfirmEdit>\n ).get('.v-btn').should('have.length', 2)\n\n cy.mount(\n <VConfirmEdit>\n { ({ model }) => {\n void model\n }}\n </VConfirmEdit>\n ).get('.v-btn').should('have.length', 2)\n\n cy.mount(\n <VConfirmEdit>\n { ({ actions }) => {\n void actions\n }}\n </VConfirmEdit>\n ).get('.v-btn').should('have.length', 0)\n\n cy.mount(\n <VConfirmEdit>\n { ({ actions }) => actions }\n </VConfirmEdit>\n ).get('.v-btn').should('have.length', 2)\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["VConfirmEdit"],"sources":["../../../src/components/VConfirmEdit/index.ts"],"sourcesContent":["export { VConfirmEdit } from './VConfirmEdit'\n"],"mappings":"SAASA,YAAY","ignoreList":[]}
@@ -3,10 +3,10 @@ import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
3
3
  import "./VEmptyState.css";
4
4
 
5
5
  // Components
6
- import { VBtn } from "../../components/VBtn/index.mjs";
7
- import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
8
- import { VIcon } from "../../components/VIcon/index.mjs";
9
- import { VImg } from "../../components/VImg/index.mjs"; // Composables
6
+ import { VBtn } from "../VBtn/index.mjs";
7
+ import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
8
+ import { VIcon } from "../VIcon/index.mjs";
9
+ import { VImg } from "../VImg/index.mjs"; // Composables
10
10
  import { useBackgroundColor } from "../../composables/color.mjs";
11
11
  import { makeComponentProps } from "../../composables/component.mjs";
12
12
  import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VEmptyState.mjs","names":["VBtn","VDefaultsProvider","VIcon","VImg","useBackgroundColor","makeComponentProps","makeDimensionProps","useDimension","useDisplay","IconValue","makeSizeProps","makeThemeProps","provideTheme","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVEmptyStateProps","actionText","String","bgColor","color","icon","image","justify","type","default","headline","title","text","textWidth","Number","href","to","size","undefined","VEmptyState","name","props","emits","e","setup","_ref","emit","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","dimensionStyles","displayClasses","onClickAction","hasActions","actions","hasHeadline","hasTitle","hasText","hasMedia","media","_createVNode","value","class","style","_Fragment","src","height","maxWidth","onClick"],"sources":["../../../src/components/VEmptyState/VEmptyState.tsx"],"sourcesContent":["// Styles\nimport './VEmptyState.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\n\nexport type VEmptyStateSlots = {\n actions: {\n props: {\n onClick: (e: Event) => void\n }\n }\n default: never\n headline: never\n title: never\n media: never\n text: never\n}\n\nexport const makeVEmptyStateProps = propsFactory({\n actionText: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n image: String,\n justify: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n headline: String,\n title: String,\n text: String,\n textWidth: {\n type: [Number, String],\n default: 500,\n },\n href: String,\n to: String,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeSizeProps({ size: undefined }),\n ...makeThemeProps(),\n}, 'VEmptyState')\n\nexport const VEmptyState = genericComponent<VEmptyStateSlots>()({\n name: 'VEmptyState',\n\n props: makeVEmptyStateProps(),\n\n emits: {\n 'click:action': (e: Event) => true,\n },\n\n setup (props, { emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { dimensionStyles } = useDimension(props)\n const { displayClasses } = useDisplay()\n\n function onClickAction (e: Event) {\n emit('click:action', e)\n }\n\n useRender(() => {\n const hasActions = !!(slots.actions || props.actionText)\n const hasHeadline = !!(slots.headline || props.headline)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(slots.text || props.text)\n const hasMedia = !!(slots.media || props.image || props.icon)\n const size = props.size || (props.image ? 200 : 96)\n\n return (\n <div\n class={[\n 'v-empty-state',\n {\n [`v-empty-state--${props.justify}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n displayClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n >\n { hasMedia && (\n <div key=\"media\" class=\"v-empty-state__media\">\n { !slots.media ? (\n <>\n { props.image ? (\n <VImg\n key=\"image\"\n src={ props.image }\n height={ size }\n />\n ) : props.icon ? (\n <VIcon\n key=\"icon\"\n color={ props.color }\n size={ size }\n icon={ props.icon }\n />\n ) : undefined }\n </>\n ) : (\n <VDefaultsProvider\n key=\"media-defaults\"\n defaults={{\n VImg: {\n src: props.image,\n height: size,\n },\n VIcon: {\n size,\n icon: props.icon,\n },\n }}\n >\n { slots.media() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { hasHeadline && (\n <div key=\"headline\" class=\"v-empty-state__headline\">\n { slots.headline?.() ?? props.headline }\n </div>\n )}\n\n { hasTitle && (\n <div key=\"title\" class=\"v-empty-state__title\">\n { slots.title?.() ?? props.title }\n </div>\n )}\n\n { hasText && (\n <div\n key=\"text\"\n class=\"v-empty-state__text\"\n style={{\n maxWidth: convertToUnit(props.textWidth),\n }}\n >\n { slots.text?.() ?? props.text }\n </div>\n )}\n\n { slots.default && (\n <div key=\"content\" class=\"v-empty-state__content\">\n { slots.default() }\n </div>\n )}\n\n { hasActions && (\n <div key=\"actions\" class=\"v-empty-state__actions\">\n <VDefaultsProvider\n defaults={{\n VBtn: {\n class: 'v-empty-state__action-btn',\n color: props.color,\n text: props.actionText,\n },\n }}\n >\n {\n slots.actions?.({ props: { onClick: onClickAction } }) ?? (\n <VBtn onClick={ onClickAction } />\n )\n }\n </VDefaultsProvider>\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VEmptyState = InstanceType<typeof VEmptyState>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB;AAAA,SACjBC,KAAK;AAAA,SACLC,IAAI,6BAEb;AAAA,SACSC,kBAAkB;AAAA,SAClBC,kBAAkB;AAAA,SAClBC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,UAAU;AAAA,SACVC,SAAS;AAAA,SACTC,aAAa;AAAA,SACbC,cAAc,EAAEC,YAAY,uCAErC;AACA,SAASC,KAAK,QAAQ,KAAK;AAAA,SAClBC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAEjE;AAGA;AAeA,OAAO,MAAMC,oBAAoB,GAAGF,YAAY,CAAC;EAC/CG,UAAU,EAAEC,MAAM;EAClBC,OAAO,EAAED,MAAM;EACfE,KAAK,EAAEF,MAAM;EACbG,IAAI,EAAEd,SAAS;EACfe,KAAK,EAAEJ,MAAM;EACbK,OAAO,EAAE;IACPC,IAAI,EAAEN,MAA8C;IACpDO,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAER,MAAM;EAChBS,KAAK,EAAET,MAAM;EACbU,IAAI,EAAEV,MAAM;EACZW,SAAS,EAAE;IACTL,IAAI,EAAE,CAACM,MAAM,EAAEZ,MAAM,CAAC;IACtBO,OAAO,EAAE;EACX,CAAC;EACDM,IAAI,EAAEb,MAAM;EACZc,EAAE,EAAEd,MAAM;EAEV,GAAGf,kBAAkB,CAAC,CAAC;EACvB,GAAGC,kBAAkB,CAAC,CAAC;EACvB,GAAGI,aAAa,CAAC;IAAEyB,IAAI,EAAEC;EAAU,CAAC,CAAC;EACrC,GAAGzB,cAAc,CAAC;AACpB,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAM0B,WAAW,GAAGtB,gBAAgB,CAAmB,CAAC,CAAC;EAC9DuB,IAAI,EAAE,aAAa;EAEnBC,KAAK,EAAErB,oBAAoB,CAAC,CAAC;EAE7BsB,KAAK,EAAE;IACL,cAAc,EAAGC,CAAQ,IAAK;EAChC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAa,CAAC,GAAGlC,YAAY,CAAC2B,KAAK,CAAC;IAC5C,MAAM;MAAEQ,sBAAsB;MAAEC;IAAsB,CAAC,GAAG5C,kBAAkB,CAACS,KAAK,CAAC0B,KAAK,EAAE,SAAS,CAAC,CAAC;IACrG,MAAM;MAAEU;IAAgB,CAAC,GAAG1C,YAAY,CAACgC,KAAK,CAAC;IAC/C,MAAM;MAAEW;IAAe,CAAC,GAAG1C,UAAU,CAAC,CAAC;IAEvC,SAAS2C,aAAaA,CAAEV,CAAQ,EAAE;MAChCG,IAAI,CAAC,cAAc,EAAEH,CAAC,CAAC;IACzB;IAEAxB,SAAS,CAAC,MAAM;MACd,MAAMmC,UAAU,GAAG,CAAC,EAAEP,KAAK,CAACQ,OAAO,IAAId,KAAK,CAACpB,UAAU,CAAC;MACxD,MAAMmC,WAAW,GAAG,CAAC,EAAET,KAAK,CAACjB,QAAQ,IAAIW,KAAK,CAACX,QAAQ,CAAC;MACxD,MAAM2B,QAAQ,GAAG,CAAC,EAAEV,KAAK,CAAChB,KAAK,IAAIU,KAAK,CAACV,KAAK,CAAC;MAC/C,MAAM2B,OAAO,GAAG,CAAC,EAAEX,KAAK,CAACf,IAAI,IAAIS,KAAK,CAACT,IAAI,CAAC;MAC5C,MAAM2B,QAAQ,GAAG,CAAC,EAAEZ,KAAK,CAACa,KAAK,IAAInB,KAAK,CAACf,KAAK,IAAIe,KAAK,CAAChB,IAAI,CAAC;MAC7D,MAAMY,IAAI,GAAGI,KAAK,CAACJ,IAAI,KAAKI,KAAK,CAACf,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;MAEnD,OAAAmC,YAAA;QAAA,SAEW,CACL,eAAe,EACf;UACE,CAAE,kBAAiBpB,KAAK,CAACd,OAAQ,EAAC,GAAG;QACvC,CAAC,EACDqB,YAAY,CAACc,KAAK,EAClBb,sBAAsB,CAACa,KAAK,EAC5BV,cAAc,CAACU,KAAK,EACpBrB,KAAK,CAACsB,KAAK,CACZ;QAAA,SACM,CACLb,qBAAqB,CAACY,KAAK,EAC3BX,eAAe,CAACW,KAAK,EACrBrB,KAAK,CAACuB,KAAK;MACZ,IAECL,QAAQ,IAAAE,YAAA;QAAA;QAAA;MAAA,IAEJ,CAACd,KAAK,CAACa,KAAK,GAAAC,YAAA,CAAAI,SAAA,SAERxB,KAAK,CAACf,KAAK,GAAAmC,YAAA,CAAAxD,IAAA;QAAA;QAAA,OAGHoC,KAAK,CAACf,KAAK;QAAA,UACRW;MAAI,WAEbI,KAAK,CAAChB,IAAI,GAAAoC,YAAA,CAAAzD,KAAA;QAAA;QAAA,SAGFqC,KAAK,CAACjB,KAAK;QAAA,QACZa,IAAI;QAAA,QACJI,KAAK,CAAChB;MAAI,WAEjBa,SAAS,KAAAuB,YAAA,CAAA1D,iBAAA;QAAA;QAAA,YAKH;UACRE,IAAI,EAAE;YACJ6D,GAAG,EAAEzB,KAAK,CAACf,KAAK;YAChByC,MAAM,EAAE9B;UACV,CAAC;UACDjC,KAAK,EAAE;YACLiC,IAAI;YACJZ,IAAI,EAAEgB,KAAK,CAAChB;UACd;QACF;MAAC;QAAAI,OAAA,EAAAA,CAAA,MAECkB,KAAK,CAACa,KAAK,CAAC,CAAC;MAAA,EAElB,EAEJ,EAECJ,WAAW,IAAAK,YAAA;QAAA;QAAA;MAAA,IAEPd,KAAK,CAACjB,QAAQ,GAAG,CAAC,IAAIW,KAAK,CAACX,QAAQ,EAEzC,EAEC2B,QAAQ,IAAAI,YAAA;QAAA;QAAA;MAAA,IAEJd,KAAK,CAAChB,KAAK,GAAG,CAAC,IAAIU,KAAK,CAACV,KAAK,EAEnC,EAEC2B,OAAO,IAAAG,YAAA;QAAA;QAAA;QAAA,SAIE;UACLO,QAAQ,EAAEpD,aAAa,CAACyB,KAAK,CAACR,SAAS;QACzC;MAAC,IAECc,KAAK,CAACf,IAAI,GAAG,CAAC,IAAIS,KAAK,CAACT,IAAI,EAEjC,EAECe,KAAK,CAAClB,OAAO,IAAAgC,YAAA;QAAA;QAAA;MAAA,IAETd,KAAK,CAAClB,OAAO,CAAC,CAAC,EAEpB,EAECyB,UAAU,IAAAO,YAAA;QAAA;QAAA;MAAA,IAAAA,YAAA,CAAA1D,iBAAA;QAAA,YAGI;UACRD,IAAI,EAAE;YACJ6D,KAAK,EAAE,2BAA2B;YAClCvC,KAAK,EAAEiB,KAAK,CAACjB,KAAK;YAClBQ,IAAI,EAAES,KAAK,CAACpB;UACd;QACF;MAAC;QAAAQ,OAAA,EAAAA,CAAA,MAGCkB,KAAK,CAACQ,OAAO,GAAG;UAAEd,KAAK,EAAE;YAAE4B,OAAO,EAAEhB;UAAc;QAAE,CAAC,CAAC,IAAAQ,YAAA,CAAA3D,IAAA;UAAA,WACpCmD;QAAa,QAC9B;MAAA,IAIR;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["VEmptyState"],"sources":["../../../src/components/VEmptyState/index.ts"],"sourcesContent":["export { VEmptyState } from './VEmptyState'\n"],"mappings":"SAASA,WAAW","ignoreList":[]}
@@ -3,7 +3,7 @@ import { withDirectives as _withDirectives, createVNode as _createVNode, mergePr
3
3
  import "./VFab.css";
4
4
 
5
5
  // Components
6
- import { makeVBtnProps, VBtn } from "../../components/VBtn/VBtn.mjs"; // Composables
6
+ import { makeVBtnProps, VBtn } from "../VBtn/VBtn.mjs"; // Composables
7
7
  import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.mjs";
8
8
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
9
9
  import { useResizeObserver } from "../../composables/resizeObserver.mjs";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VFab.mjs","names":["makeVBtnProps","VBtn","makeLayoutItemProps","useLayoutItem","useProxiedModel","useResizeObserver","useToggleScope","makeTransitionProps","MaybeTransition","computed","ref","shallowRef","toRef","watchEffect","genericComponent","omit","propsFactory","useRender","locations","makeVFabProps","app","Boolean","appear","extended","layout","location","type","String","default","offset","modelValue","active","transition","VFab","name","props","emits","value","setup","_ref","slots","model","height","layoutItemStyles","resizeRef","entries","length","target","clientHeight","hasPosition","absolute","position","split","shift","orientation","id","order","parseInt","layoutSize","elementSize","vFabRef","btnProps","filterProps","_createVNode","class","width","undefined","style","_withDirectives","_mergeProps","_vShow"],"sources":["../../../src/components/VFab/VFab.tsx"],"sourcesContent":["// Styles\nimport './VFab.sass'\n\n// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType } from 'vue'\nimport type { Position } from '@/composables/layout'\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVFabProps = propsFactory({\n app: Boolean,\n appear: Boolean,\n extended: Boolean,\n layout: Boolean,\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'bottom end',\n },\n offset: Boolean,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...omit(makeVBtnProps({ active: true }), ['location']),\n ...makeLayoutItemProps(),\n ...makeTransitionProps({ transition: 'fab-transition' }),\n}, 'VFab')\n\nexport const VFab = genericComponent()({\n name: 'VFab',\n\n props: makeVFabProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const height = shallowRef(56)\n const layoutItemStyles = ref()\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n height.value = entries[0].target.clientHeight\n })\n\n const hasPosition = computed(() => props.app || props.absolute)\n\n const position = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location.split(' ').shift()\n }) as ComputedRef<Position>\n\n const orientation = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location.split(' ')[1] ?? 'end'\n })\n\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position,\n layoutSize: computed(() => props.layout ? height.value + 24 : 0),\n elementSize: computed(() => height.value + 24),\n active: computed(() => props.app && model.value),\n absolute: toRef(props, 'absolute'),\n })\n\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value\n })\n })\n\n const vFabRef = ref()\n\n useRender(() => {\n const btnProps = VBtn.filterProps(props)\n\n return (\n <div\n ref={ vFabRef }\n class={[\n 'v-fab',\n {\n 'v-fab--absolute': props.absolute,\n 'v-fab--app': !!props.app,\n 'v-fab--extended': props.extended,\n 'v-fab--offset': props.offset,\n [`v-fab--${position.value}`]: hasPosition.value,\n [`v-fab--${orientation.value}`]: hasPosition.value,\n },\n props.class,\n ]}\n style={[\n props.app ? {\n ...layoutItemStyles.value,\n } : {\n height: 'inherit',\n width: undefined,\n },\n props.style,\n ]}\n >\n <div class=\"v-fab__container\">\n <MaybeTransition\n appear={ props.appear }\n transition={ props.transition }\n >\n <VBtn\n v-show={ props.active }\n ref={ resizeRef }\n { ...btnProps }\n active={ undefined }\n location={ undefined }\n v-slots={ slots }\n />\n </MaybeTransition>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VFab = InstanceType<typeof VFab>\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["VFab"],"sources":["../../../src/components/VFab/index.ts"],"sourcesContent":["export { VFab } from './VFab'\n"],"mappings":"SAASA,IAAI","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VBarline.mjs","names":["computed","makeLineProps","genericComponent","getPropertyFromItem","getUid","propsFactory","useRender","makeVBarlineProps","autoLineWidth","Boolean","VBarline","name","props","setup","_ref","slots","uid","id","autoDrawDuration","Number","hasLabels","showLabels","labels","length","label","lineWidth","parseFloat","totalWidth","Math","max","modelValue","value","width","boundary","minX","maxX","minY","maxY","parseInt","height","items","map","item","itemValue","genBars","values","totalValues","maxValue","minValue","min","gridX","gridY","horizonY","abs","index","x","y","parsedLabels","points","len","i","push","String","bars","offsetX","gradientData","gradient","slice","reverse","_createVNode","gradientDirection","color","smooth","autoDraw","_Fragment","textAnchor","dominantBaseline","fill","labelSize"],"sources":["../../../src/components/VSparkline/VBarline.tsx"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { makeLineProps } from './util/line'\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VBarlineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Bar {\n x: number\n y: number\n height: number\n value: number\n}\n\nexport const makeVBarlineProps = propsFactory({\n autoLineWidth: Boolean,\n\n ...makeLineProps(),\n}, 'VBarline')\n\nexport const VBarline = genericComponent<VBarlineSlots>()({\n name: 'VBarline',\n\n props: makeVBarlineProps(),\n\n setup (props, { slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `barline-${uid}`)\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || 500)\n\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n\n const lineWidth = computed(() => parseFloat(props.lineWidth) || 4)\n\n const totalWidth = computed(() => Math.max(props.modelValue.length * lineWidth.value, Number(props.width)))\n\n const boundary = computed<Boundary>(() => {\n return {\n minX: 0,\n maxX: totalWidth.value,\n minY: 0,\n maxY: parseInt(props.height, 10),\n }\n })\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)))\n\n function genBars (\n values: number[],\n boundary: Boundary\n ): Bar[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n let maxValue = props.max != null ? Number(props.max) : Math.max(...values)\n let minValue = props.min != null ? Number(props.min) : Math.min(...values)\n\n if (minValue > 0 && props.min == null) minValue = 0\n if (maxValue < 0 && props.max == null) maxValue = 0\n\n const gridX = maxX / totalValues\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n const horizonY = maxY - Math.abs(minValue * gridY)\n\n return values.map((value, index) => {\n const height = Math.abs(gridY * value)\n\n return {\n x: minX + index * gridX,\n y: horizonY - height +\n +(value < 0) * height,\n height,\n value,\n }\n })\n }\n\n const parsedLabels = computed(() => {\n const labels = []\n const points = genBars(items.value, boundary.value)\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = props.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n })\n\n const bars = computed(() => genBars(items.value, boundary.value))\n const offsetX = computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2)\n\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse()\n return (\n <svg\n display=\"block\"\n >\n <defs>\n <linearGradient\n id={ id.value }\n gradientUnits=\"userSpaceOnUse\"\n x1={ props.gradientDirection === 'left' ? '100%' : '0' }\n y1={ props.gradientDirection === 'top' ? '100%' : '0' }\n x2={ props.gradientDirection === 'right' ? '100%' : '0' }\n y2={ props.gradientDirection === 'bottom' ? '100%' : '0' }\n >\n {\n gradientData.map((color, index) => (\n <stop offset={ index / (Math.max(gradientData.length - 1, 1)) } stop-color={ color || 'currentColor' } />\n ))\n }\n </linearGradient>\n </defs>\n\n <clipPath id={ `${id.value}-clip` }>\n {\n bars.value.map(item => (\n <rect\n x={ item.x + offsetX.value }\n y={ item.y }\n width={ lineWidth.value }\n height={ item.height }\n rx={ typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0 }\n ry={ typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0 }\n >\n { props.autoDraw && (\n <>\n <animate\n attributeName=\"y\"\n from={ item.y + item.height }\n to={ item.y }\n dur={ `${autoDrawDuration.value}ms` }\n fill=\"freeze\"\n />\n <animate\n attributeName=\"height\"\n from=\"0\"\n to={ item.height }\n dur={ `${autoDrawDuration.value}ms` }\n fill=\"freeze\"\n />\n </>\n )}\n </rect>\n ))\n }\n </clipPath>\n\n { hasLabels.value && (\n <g\n key=\"labels\"\n style={{\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor',\n }}\n >\n {\n parsedLabels.value.map((item, i) => (\n <text\n x={ item.x + offsetX.value + lineWidth.value / 2 }\n y={ (parseInt(props.height, 10) - 2) + (parseInt(props.labelSize, 10) || 7 * 0.75) }\n font-size={ Number(props.labelSize) || 7 }\n >\n { slots.label?.({ index: i, value: item.value }) ?? item.value }\n </text>\n ))\n }\n </g>\n )}\n\n <g\n clip-path={ `url(#${id.value}-clip)` }\n fill={ `url(#${id.value})` }\n >\n <rect\n x={ 0 }\n y={ 0 }\n width={ Math.max(props.modelValue.length * lineWidth.value, Number(props.width)) }\n height={ props.height }\n ></rect>\n </g>\n </svg>\n )\n })\n },\n})\n\nexport type VBarline = InstanceType<typeof VBarline>\n"],"mappings":"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","ignoreList":[]}
@@ -1,325 +1,49 @@
1
- // @ts-nocheck
2
- /* eslint-disable */
3
- // Mixins
4
- import Colorable from "../../mixins/colorable.mjs"; // Utilities
5
- import mixins from "../../util/mixins.mjs";
6
- import { genPoints, genBars } from "./helpers/core.mjs";
7
- import { genPath } from "./helpers/path.mjs"; // Types
8
- export default mixins(Colorable).extend({
9
- name: 'VSparkline',
10
- inheritAttrs: false,
11
- props: {
12
- autoDraw: Boolean,
13
- autoDrawDuration: {
14
- type: Number,
15
- default: 2000
16
- },
17
- autoDrawEasing: {
18
- type: String,
19
- default: 'ease'
20
- },
21
- autoLineWidth: {
22
- type: Boolean,
23
- default: false
24
- },
25
- color: {
26
- type: String,
27
- default: 'primary'
28
- },
29
- fill: {
30
- type: Boolean,
31
- default: false
32
- },
33
- gradient: {
34
- type: Array,
35
- default: () => []
36
- },
37
- gradientDirection: {
38
- type: String,
39
- validator: val => ['top', 'bottom', 'left', 'right'].includes(val),
40
- default: 'top'
41
- },
42
- height: {
43
- type: [String, Number],
44
- default: 75
45
- },
46
- labels: {
47
- type: Array,
48
- default: () => []
49
- },
50
- labelSize: {
51
- type: [Number, String],
52
- default: 7
53
- },
54
- lineWidth: {
55
- type: [String, Number],
56
- default: 4
57
- },
58
- padding: {
59
- type: [String, Number],
60
- default: 8
61
- },
62
- showLabels: Boolean,
63
- smooth: {
64
- type: [Boolean, Number, String],
65
- default: false
66
- },
67
- type: {
68
- type: String,
69
- default: 'trend',
70
- validator: val => ['trend', 'bar'].includes(val)
71
- },
72
- value: {
73
- type: Array,
74
- default: () => []
75
- },
76
- width: {
77
- type: [Number, String],
78
- default: 300
79
- }
80
- },
81
- data: () => ({
82
- lastLength: 0
83
- }),
84
- computed: {
85
- parsedPadding() {
86
- return Number(this.padding);
87
- },
88
- parsedWidth() {
89
- return Number(this.width);
90
- },
91
- parsedHeight() {
92
- return parseInt(this.height, 10);
93
- },
94
- parsedLabelSize() {
95
- return parseInt(this.labelSize, 10) || 7;
96
- },
97
- totalHeight() {
98
- let height = this.parsedHeight;
99
- if (this.hasLabels) height += parseInt(this.labelSize, 10) * 1.5;
100
- return height;
101
- },
102
- totalWidth() {
103
- let width = this.parsedWidth;
104
- if (this.type === 'bar') width = Math.max(this.value.length * this._lineWidth, width);
105
- return width;
106
- },
107
- totalValues() {
108
- return this.value.length;
109
- },
110
- _lineWidth() {
111
- if (this.autoLineWidth && this.type !== 'trend') {
112
- const totalPadding = this.parsedPadding * (this.totalValues + 1);
113
- return (this.parsedWidth - totalPadding) / this.totalValues;
114
- } else {
115
- return parseFloat(this.lineWidth) || 4;
116
- }
117
- },
118
- boundary() {
119
- if (this.type === 'bar') return {
120
- minX: 0,
121
- maxX: this.totalWidth,
122
- minY: 0,
123
- maxY: this.parsedHeight
124
- };
125
- const padding = this.parsedPadding;
126
- return {
127
- minX: padding,
128
- maxX: this.totalWidth - padding,
129
- minY: padding,
130
- maxY: this.parsedHeight - padding
131
- };
132
- },
133
- hasLabels() {
134
- return Boolean(this.showLabels || this.labels.length > 0 || this.$scopedSlots.label);
135
- },
136
- parsedLabels() {
137
- const labels = [];
138
- const points = this._values;
139
- const len = points.length;
140
- for (let i = 0; labels.length < len; i++) {
141
- const item = points[i];
142
- let value = this.labels[i];
143
- if (!value) {
144
- value = typeof item === 'object' ? item.value : item;
145
- }
146
- labels.push({
147
- x: item.x,
148
- value: String(value)
149
- });
150
- }
151
- return labels;
152
- },
153
- normalizedValues() {
154
- return this.value.map(item => typeof item === 'number' ? item : item.value);
155
- },
156
- _values() {
157
- return this.type === 'trend' ? genPoints(this.normalizedValues, this.boundary) : genBars(this.normalizedValues, this.boundary);
158
- },
159
- textY() {
160
- let y = this.parsedHeight;
161
- if (this.type === 'trend') y -= 4;
162
- return y;
163
- },
164
- _radius() {
165
- return this.smooth === true ? 8 : Number(this.smooth);
166
- }
167
- },
168
- watch: {
169
- value: {
170
- immediate: true,
171
- handler() {
172
- this.$nextTick(() => {
173
- if (!this.autoDraw || this.type === 'bar' || !this.$refs.path) return;
174
- const path = this.$refs.path;
175
- const length = path.getTotalLength();
176
- if (!this.fill) {
177
- path.style.transition = 'none';
178
- path.style.strokeDasharray = length + ' ' + length;
179
- path.style.strokeDashoffset = Math.abs(length - (this.lastLength || 0)).toString();
180
- path.getBoundingClientRect();
181
- path.style.transition = `stroke-dashoffset ${this.autoDrawDuration}ms ${this.autoDrawEasing}`;
182
- path.style.strokeDashoffset = '0';
183
- } else {
184
- path.style.transformOrigin = 'bottom center';
185
- path.style.transition = 'none';
186
- path.style.transform = `scaleY(0)`;
187
- path.getBoundingClientRect();
188
- path.style.transition = `transform ${this.autoDrawDuration}ms ${this.autoDrawEasing}`;
189
- path.style.transform = `scaleY(1)`;
190
- }
191
- this.lastLength = length;
192
- });
193
- }
194
- }
195
- },
196
- methods: {
197
- genGradient() {
198
- const gradientDirection = this.gradientDirection;
199
- const gradient = this.gradient.slice();
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
2
+ // Components
3
+ import { makeVBarlineProps, VBarline } from "./VBarline.mjs";
4
+ import { makeVTrendlineProps, VTrendline } from "./VTrendline.mjs"; // Composables
5
+ import { useTextColor } from "../../composables/color.mjs"; // Utilities
6
+ import { computed, toRef } from 'vue';
7
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
8
+ // Types
200
9
 
201
- // Pushes empty string to force
202
- // a fallback to currentColor
203
- if (!gradient.length) gradient.push('');
204
- const len = Math.max(gradient.length - 1, 1);
205
- const stops = gradient.reverse().map((color, index) => this.$createElement('stop', {
206
- attrs: {
207
- offset: index / len,
208
- 'stop-color': color || 'currentColor'
209
- }
210
- }));
211
- return this.$createElement('defs', [this.$createElement('linearGradient', {
212
- attrs: {
213
- id: this._uid,
214
- gradientUnits: 'userSpaceOnUse',
215
- x1: gradientDirection === 'left' ? '100%' : '0',
216
- y1: gradientDirection === 'top' ? '100%' : '0',
217
- x2: gradientDirection === 'right' ? '100%' : '0',
218
- y2: gradientDirection === 'bottom' ? '100%' : '0'
219
- }
220
- }, stops)]);
221
- },
222
- genG(children) {
223
- return this.$createElement('g', {
224
- style: {
225
- fontSize: '8',
226
- textAnchor: 'middle',
227
- dominantBaseline: 'mathematical',
228
- fill: 'currentColor'
229
- } // TODO: TS 3.5 is too eager with the array type here
230
- }, children);
231
- },
232
- genPath() {
233
- const points = genPoints(this.normalizedValues, this.boundary);
234
- return this.$createElement('path', {
235
- attrs: {
236
- d: genPath(points, this._radius, this.fill, this.parsedHeight),
237
- fill: this.fill ? `url(#${this._uid})` : 'none',
238
- stroke: this.fill ? 'none' : `url(#${this._uid})`
239
- },
240
- ref: 'path'
241
- });
242
- },
243
- genLabels(offsetX) {
244
- const children = this.parsedLabels.map((item, i) => this.$createElement('text', {
245
- attrs: {
246
- x: item.x + offsetX + this._lineWidth / 2,
247
- y: this.textY + this.parsedLabelSize * 0.75,
248
- 'font-size': Number(this.labelSize) || 7
249
- }
250
- }, [this.genLabel(item, i)]));
251
- return this.genG(children);
252
- },
253
- genLabel(item, index) {
254
- return this.$scopedSlots.label ? this.$scopedSlots.label({
255
- index,
256
- value: item.value
257
- }) : item.value;
258
- },
259
- genBars() {
260
- if (!this.value || this.totalValues < 2) return undefined;
261
- const bars = genBars(this.normalizedValues, this.boundary);
262
- const offsetX = (Math.abs(bars[0].x - bars[1].x) - this._lineWidth) / 2;
263
- return this.$createElement('svg', {
264
- attrs: {
265
- display: 'block',
266
- viewBox: `0 0 ${this.totalWidth} ${this.totalHeight}`
267
- }
268
- }, [this.genGradient(), this.genClipPath(bars, offsetX, this._lineWidth, 'sparkline-bar-' + this._uid), this.hasLabels ? this.genLabels(offsetX) : undefined, this.$createElement('g', {
269
- attrs: {
270
- 'clip-path': `url(#sparkline-bar-${this._uid}-clip)`,
271
- fill: `url(#${this._uid})`
272
- }
273
- }, [this.$createElement('rect', {
274
- attrs: {
275
- x: 0,
276
- y: 0,
277
- width: this.totalWidth,
278
- height: this.height
279
- }
280
- })])]);
281
- },
282
- genClipPath(bars, offsetX, lineWidth, id) {
283
- const rounding = typeof this.smooth === 'number' ? this.smooth : this.smooth ? 2 : 0;
284
- return this.$createElement('clipPath', {
285
- attrs: {
286
- id: `${id}-clip`
287
- }
288
- }, bars.map(item => {
289
- return this.$createElement('rect', {
290
- attrs: {
291
- x: item.x + offsetX,
292
- y: item.y,
293
- width: lineWidth,
294
- height: item.height,
295
- rx: rounding,
296
- ry: rounding
297
- }
298
- }, [this.autoDraw ? this.$createElement('animate', {
299
- attrs: {
300
- attributeName: 'height',
301
- from: 0,
302
- to: item.height,
303
- dur: `${this.autoDrawDuration}ms`,
304
- fill: 'freeze'
305
- }
306
- }) : undefined]);
307
- }));
308
- },
309
- genTrend() {
310
- return this.$createElement('svg', this.setTextColor(this.color, {
311
- attrs: {
312
- ...this.$attrs,
313
- display: 'block',
314
- 'stroke-width': this._lineWidth || 1,
315
- viewBox: `0 0 ${this.width} ${this.totalHeight}`
316
- }
317
- }), [this.genGradient(), this.hasLabels && this.genLabels(-(this._lineWidth / 2)), this.genPath()]);
318
- }
10
+ export const makeVSparklineProps = propsFactory({
11
+ type: {
12
+ type: String,
13
+ default: 'trend'
319
14
  },
320
- render(h) {
321
- if (this.totalValues < 2) return undefined;
322
- return this.type === 'trend' ? this.genTrend() : this.genBars();
15
+ ...makeVBarlineProps(),
16
+ ...makeVTrendlineProps()
17
+ }, 'VSparkline');
18
+ export const VSparkline = genericComponent()({
19
+ name: 'VSparkline',
20
+ props: makeVSparklineProps(),
21
+ setup(props, _ref) {
22
+ let {
23
+ slots
24
+ } = _ref;
25
+ const {
26
+ textColorClasses,
27
+ textColorStyles
28
+ } = useTextColor(toRef(props, 'color'));
29
+ const hasLabels = computed(() => {
30
+ return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);
31
+ });
32
+ const totalHeight = computed(() => {
33
+ let height = parseInt(props.height, 10);
34
+ if (hasLabels.value) height += parseInt(props.labelSize, 10) * 1.5;
35
+ return height;
36
+ });
37
+ useRender(() => {
38
+ const Tag = props.type === 'trend' ? VTrendline : VBarline;
39
+ const lineProps = props.type === 'trend' ? VTrendline.filterProps(props) : VBarline.filterProps(props);
40
+ return _createVNode(Tag, _mergeProps({
41
+ "key": props.type,
42
+ "class": textColorClasses.value,
43
+ "style": textColorStyles.value,
44
+ "viewBox": `0 0 ${props.width} ${parseInt(totalHeight.value, 10)}`
45
+ }, lineProps), slots);
46
+ });
323
47
  }
324
48
  });
325
49
  //# sourceMappingURL=VSparkline.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VSparkline.mjs","names":["Colorable","mixins","genPoints","genBars","genPath","extend","name","inheritAttrs","props","autoDraw","Boolean","autoDrawDuration","type","Number","default","autoDrawEasing","String","autoLineWidth","color","fill","gradient","Array","gradientDirection","validator","val","includes","height","labels","labelSize","lineWidth","padding","showLabels","smooth","value","width","data","lastLength","computed","parsedPadding","parsedWidth","parsedHeight","parseInt","parsedLabelSize","totalHeight","hasLabels","totalWidth","Math","max","length","_lineWidth","totalValues","totalPadding","parseFloat","boundary","minX","maxX","minY","maxY","$scopedSlots","label","parsedLabels","points","_values","len","i","item","push","x","normalizedValues","map","textY","y","_radius","watch","immediate","handler","$nextTick","$refs","path","getTotalLength","style","transition","strokeDasharray","strokeDashoffset","abs","toString","getBoundingClientRect","transformOrigin","transform","methods","genGradient","slice","stops","reverse","index","$createElement","attrs","offset","id","_uid","gradientUnits","x1","y1","x2","y2","genG","children","fontSize","textAnchor","dominantBaseline","d","stroke","ref","genLabels","offsetX","genLabel","undefined","bars","display","viewBox","genClipPath","rounding","rx","ry","attributeName","from","to","dur","genTrend","setTextColor","$attrs","render","h"],"sources":["../../../src/components/VSparkline/VSparkline.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { genPoints, genBars } from './helpers/core'\nimport { genPath } from './helpers/path'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { Prop, PropValidator } from 'vue/types/options'\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Point {\n x: number\n y: number\n value: number\n}\n\nexport interface Bar {\n x: number\n y: number\n height: number\n value: number\n}\n\ninterface options extends Vue {\n $refs: {\n path: SVGPathElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof Colorable\n ]>\n/* eslint-enable indent */\n>(\n Colorable\n).extend({\n name: 'VSparkline',\n\n inheritAttrs: false,\n\n props: {\n autoDraw: Boolean,\n autoDrawDuration: {\n type: Number,\n default: 2000,\n },\n autoDrawEasing: {\n type: String,\n default: 'ease',\n },\n autoLineWidth: {\n type: Boolean,\n default: false,\n },\n color: {\n type: String,\n default: 'primary',\n },\n fill: {\n type: Boolean,\n default: false,\n },\n gradient: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n gradientDirection: {\n type: String as Prop<'top' | 'bottom' | 'left' | 'right'>,\n validator: (val: string) => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top',\n },\n height: {\n type: [String, Number],\n default: 75,\n },\n labels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<SparklineItem[]>,\n labelSize: {\n type: [Number, String],\n default: 7,\n },\n lineWidth: {\n type: [String, Number],\n default: 4,\n },\n padding: {\n type: [String, Number],\n default: 8,\n },\n showLabels: Boolean,\n smooth: {\n type: [Boolean, Number, String],\n default: false,\n },\n type: {\n type: String as Prop<'trend' | 'bar'>,\n default: 'trend',\n validator: (val: string) => ['trend', 'bar'].includes(val),\n },\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator<SparklineItem[]>,\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n lastLength: 0,\n }),\n\n computed: {\n parsedPadding (): number {\n return Number(this.padding)\n },\n parsedWidth (): number {\n return Number(this.width)\n },\n parsedHeight (): number {\n return parseInt(this.height, 10)\n },\n parsedLabelSize (): number {\n return parseInt(this.labelSize, 10) || 7\n },\n totalHeight (): number {\n let height = this.parsedHeight\n\n if (this.hasLabels) height += parseInt(this.labelSize, 10) * 1.5\n\n return height\n },\n totalWidth (): number {\n let width = this.parsedWidth\n if (this.type === 'bar') width = Math.max(this.value.length * this._lineWidth, width)\n\n return width\n },\n totalValues (): number {\n return this.value.length\n },\n _lineWidth (): number {\n if (this.autoLineWidth && this.type !== 'trend') {\n const totalPadding = this.parsedPadding * (this.totalValues + 1)\n return (this.parsedWidth - totalPadding) / this.totalValues\n } else {\n return parseFloat(this.lineWidth) || 4\n }\n },\n boundary (): Boundary {\n if (this.type === 'bar') return { minX: 0, maxX: this.totalWidth, minY: 0, maxY: this.parsedHeight }\n\n const padding = this.parsedPadding\n\n return {\n minX: padding,\n maxX: this.totalWidth - padding,\n minY: padding,\n maxY: this.parsedHeight - padding,\n }\n },\n hasLabels (): boolean {\n return Boolean(\n this.showLabels ||\n this.labels.length > 0 ||\n this.$scopedSlots.label\n )\n },\n parsedLabels (): SparklineText[] {\n const labels = []\n const points = this._values\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = this.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n },\n normalizedValues (): number[] {\n return this.value.map(item => (typeof item === 'number' ? item : item.value))\n },\n _values (): Point[] | Bar[] {\n return this.type === 'trend' ? genPoints(this.normalizedValues, this.boundary) : genBars(this.normalizedValues, this.boundary)\n },\n textY (): number {\n let y = this.parsedHeight\n if (this.type === 'trend') y -= 4\n return y\n },\n _radius (): number {\n return this.smooth === true ? 8 : Number(this.smooth)\n },\n },\n\n watch: {\n value: {\n immediate: true,\n handler () {\n this.$nextTick(() => {\n if (\n !this.autoDraw ||\n this.type === 'bar' ||\n !this.$refs.path\n ) return\n\n const path = this.$refs.path\n const length = path.getTotalLength()\n\n if (!this.fill) {\n path.style.transition = 'none'\n path.style.strokeDasharray = length + ' ' + length\n path.style.strokeDashoffset = Math.abs(length - (this.lastLength || 0)).toString()\n path.getBoundingClientRect()\n path.style.transition = `stroke-dashoffset ${this.autoDrawDuration}ms ${this.autoDrawEasing}`\n path.style.strokeDashoffset = '0'\n } else {\n path.style.transformOrigin = 'bottom center'\n path.style.transition = 'none'\n path.style.transform = `scaleY(0)`\n path.getBoundingClientRect()\n path.style.transition = `transform ${this.autoDrawDuration}ms ${this.autoDrawEasing}`\n path.style.transform = `scaleY(1)`\n }\n this.lastLength = length\n })\n },\n },\n },\n\n methods: {\n genGradient () {\n const gradientDirection = this.gradientDirection\n const gradient = this.gradient.slice()\n\n // Pushes empty string to force\n // a fallback to currentColor\n if (!gradient.length) gradient.push('')\n\n const len = Math.max(gradient.length - 1, 1)\n const stops = gradient.reverse().map((color, index) =>\n this.$createElement('stop', {\n attrs: {\n offset: index / len,\n 'stop-color': color || 'currentColor',\n },\n })\n )\n\n return this.$createElement('defs', [\n this.$createElement('linearGradient', {\n attrs: {\n id: this._uid,\n gradientUnits: 'userSpaceOnUse',\n x1: gradientDirection === 'left' ? '100%' : '0',\n y1: gradientDirection === 'top' ? '100%' : '0',\n x2: gradientDirection === 'right' ? '100%' : '0',\n y2: gradientDirection === 'bottom' ? '100%' : '0',\n },\n }, stops),\n ])\n },\n genG (children: VNode[]) {\n return this.$createElement('g', {\n style: {\n fontSize: '8',\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor',\n } as object, // TODO: TS 3.5 is too eager with the array type here\n }, children)\n },\n genPath () {\n const points = genPoints(this.normalizedValues, this.boundary)\n\n return this.$createElement('path', {\n attrs: {\n d: genPath(points, this._radius, this.fill, this.parsedHeight),\n fill: this.fill ? `url(#${this._uid})` : 'none',\n stroke: this.fill ? 'none' : `url(#${this._uid})`,\n },\n ref: 'path',\n })\n },\n genLabels (offsetX: number) {\n const children = this.parsedLabels.map((item, i) => (\n this.$createElement('text', {\n attrs: {\n x: item.x + offsetX + this._lineWidth / 2,\n y: this.textY + (this.parsedLabelSize * 0.75),\n 'font-size': Number(this.labelSize) || 7,\n },\n }, [this.genLabel(item, i)])\n ))\n\n return this.genG(children)\n },\n genLabel (item: SparklineText, index: number) {\n return this.$scopedSlots.label\n ? this.$scopedSlots.label({ index, value: item.value })\n : item.value\n },\n genBars () {\n if (!this.value || this.totalValues < 2) return undefined as never\n\n const bars = genBars(this.normalizedValues, this.boundary)\n const offsetX = (Math.abs(bars[0].x - bars[1].x) - this._lineWidth) / 2\n\n return this.$createElement('svg', {\n attrs: {\n display: 'block',\n viewBox: `0 0 ${this.totalWidth} ${this.totalHeight}`,\n },\n }, [\n this.genGradient(),\n this.genClipPath(bars, offsetX, this._lineWidth, 'sparkline-bar-' + this._uid),\n this.hasLabels ? this.genLabels(offsetX) : undefined as never,\n this.$createElement('g', {\n attrs: {\n 'clip-path': `url(#sparkline-bar-${this._uid}-clip)`,\n fill: `url(#${this._uid})`,\n },\n }, [\n this.$createElement('rect', {\n attrs: {\n x: 0,\n y: 0,\n width: this.totalWidth,\n height: this.height,\n },\n }),\n ]),\n ])\n },\n genClipPath (bars: Bar[], offsetX: number, lineWidth: number, id: string) {\n const rounding = typeof this.smooth === 'number'\n ? this.smooth\n : this.smooth ? 2 : 0\n\n return this.$createElement('clipPath', {\n attrs: {\n id: `${id}-clip`,\n },\n }, bars.map(item => {\n return this.$createElement('rect', {\n attrs: {\n x: item.x + offsetX,\n y: item.y,\n width: lineWidth,\n height: item.height,\n rx: rounding,\n ry: rounding,\n },\n }, [\n this.autoDraw ? this.$createElement('animate', {\n attrs: {\n attributeName: 'height',\n from: 0,\n to: item.height,\n dur: `${this.autoDrawDuration}ms`,\n fill: 'freeze',\n },\n }) : undefined as never,\n ])\n }))\n },\n genTrend () {\n return this.$createElement('svg', this.setTextColor(this.color, {\n attrs: {\n ...this.$attrs,\n display: 'block',\n 'stroke-width': this._lineWidth || 1,\n viewBox: `0 0 ${this.width} ${this.totalHeight}`,\n },\n }), [\n this.genGradient(),\n this.hasLabels && this.genLabels(-(this._lineWidth / 2)),\n this.genPath(),\n ])\n },\n },\n\n render (h): VNode {\n if (this.totalValues < 2) return undefined as never\n\n return this.type === 'trend' ? this.genTrend() : this.genBars()\n },\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSparkline.mjs","names":["makeVBarlineProps","VBarline","makeVTrendlineProps","VTrendline","useTextColor","computed","toRef","genericComponent","propsFactory","useRender","makeVSparklineProps","type","String","default","VSparkline","name","props","setup","_ref","slots","textColorClasses","textColorStyles","hasLabels","Boolean","showLabels","labels","length","label","totalHeight","height","parseInt","value","labelSize","Tag","lineProps","filterProps","_createVNode","_mergeProps","width"],"sources":["../../../src/components/VSparkline/VSparkline.tsx"],"sourcesContent":["// Components\nimport { makeVBarlineProps, VBarline } from './VBarline'\nimport { makeVTrendlineProps, VTrendline } from './VTrendline'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\n\nexport const makeVSparklineProps = propsFactory({\n type: {\n type: String as PropType<'trend' | 'bar'>,\n default: 'trend',\n },\n\n ...makeVBarlineProps(),\n ...makeVTrendlineProps(),\n}, 'VSparkline')\n\nexport type VSparklineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport const VSparkline = genericComponent<VSparklineSlots>()({\n name: 'VSparkline',\n\n props: makeVSparklineProps(),\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n const totalHeight = computed(() => {\n let height = parseInt(props.height, 10)\n\n if (hasLabels.value) height += parseInt(props.labelSize, 10) * 1.5\n\n return height\n })\n\n useRender(() => {\n const Tag = props.type === 'trend' ? VTrendline : VBarline\n const lineProps = props.type === 'trend' ? VTrendline.filterProps(props) : VBarline.filterProps(props)\n\n return (\n <Tag\n key={ props.type }\n class={ textColorClasses.value }\n style={ textColorStyles.value }\n viewBox={ `0 0 ${props.width} ${parseInt(totalHeight.value, 10)}` }\n { ...lineProps }\n v-slots={ slots }\n />\n )\n })\n },\n})\n\nexport type VSparkline = InstanceType<typeof VSparkline>\n"],"mappings":";AAAA;AAAA,SACSA,iBAAiB,EAAEC,QAAQ;AAAA,SAC3BC,mBAAmB,EAAEC,UAAU,4BAExC;AAAA,SACSC,YAAY,uCAErB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA;;AAEA,OAAO,MAAMC,mBAAmB,GAAGF,YAAY,CAAC;EAC9CG,IAAI,EAAE;IACJA,IAAI,EAAEC,MAAmC;IACzCC,OAAO,EAAE;EACX,CAAC;EAED,GAAGb,iBAAiB,CAAC,CAAC;EACtB,GAAGE,mBAAmB,CAAC;AACzB,CAAC,EAAE,YAAY,CAAC;AAOhB,OAAO,MAAMY,UAAU,GAAGP,gBAAgB,CAAkB,CAAC,CAAC;EAC5DQ,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAEN,mBAAmB,CAAC,CAAC;EAE5BO,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,gBAAgB;MAAEC;IAAgB,CAAC,GAAGjB,YAAY,CAACE,KAAK,CAACU,KAAK,EAAE,OAAO,CAAC,CAAC;IACjF,MAAMM,SAAS,GAAGjB,QAAQ,CAAC,MAAM;MAC/B,OAAOkB,OAAO,CACZP,KAAK,CAACQ,UAAU,IAChBR,KAAK,CAACS,MAAM,CAACC,MAAM,GAAG,CAAC,IACvB,CAAC,CAACP,KAAK,EAAEQ,KACX,CAAC;IACH,CAAC,CAAC;IACF,MAAMC,WAAW,GAAGvB,QAAQ,CAAC,MAAM;MACjC,IAAIwB,MAAM,GAAGC,QAAQ,CAACd,KAAK,CAACa,MAAM,EAAE,EAAE,CAAC;MAEvC,IAAIP,SAAS,CAACS,KAAK,EAAEF,MAAM,IAAIC,QAAQ,CAACd,KAAK,CAACgB,SAAS,EAAE,EAAE,CAAC,GAAG,GAAG;MAElE,OAAOH,MAAM;IACf,CAAC,CAAC;IAEFpB,SAAS,CAAC,MAAM;MACd,MAAMwB,GAAG,GAAGjB,KAAK,CAACL,IAAI,KAAK,OAAO,GAAGR,UAAU,GAAGF,QAAQ;MAC1D,MAAMiC,SAAS,GAAGlB,KAAK,CAACL,IAAI,KAAK,OAAO,GAAGR,UAAU,CAACgC,WAAW,CAACnB,KAAK,CAAC,GAAGf,QAAQ,CAACkC,WAAW,CAACnB,KAAK,CAAC;MAEtG,OAAAoB,YAAA,CAAAH,GAAA,EAAAI,WAAA;QAAA,OAEUrB,KAAK,CAACL,IAAI;QAAA,SACRS,gBAAgB,CAACW,KAAK;QAAA,SACtBV,eAAe,CAACU,KAAK;QAAA,WAClB,OAAMf,KAAK,CAACsB,KAAM,IAAGR,QAAQ,CAACF,WAAW,CAACG,KAAK,EAAE,EAAE,CAAE;MAAC,GAC5DG,SAAS,GACJf,KAAK;IAGrB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}