@vuetify/nightly 3.6.13-pr-20185.5bf1ff4 → 3.6.14-master.2024-08-02

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 (143) hide show
  1. package/dist/json/attributes.json +96 -96
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +136 -136
  4. package/dist/json/web-types.json +188 -188
  5. package/dist/vuetify-labs.css +3094 -3095
  6. package/dist/vuetify-labs.esm.js +6 -6
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +6 -6
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +2736 -2737
  11. package/dist/vuetify.d.ts +46 -46
  12. package/dist/vuetify.esm.js +6 -6
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +6 -6
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +5 -5
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  21. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  22. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  23. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  24. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  25. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  26. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  27. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  28. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +1 -1
  29. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  30. package/lib/components/VDataTable/VDataTableColumn.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  32. package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
  33. package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
  34. package/lib/components/VDataTable/composables/group.mjs.map +1 -1
  35. package/lib/components/VDataTable/composables/headers.mjs.map +1 -1
  36. package/lib/components/VDataTable/composables/options.mjs +1 -1
  37. package/lib/components/VDataTable/composables/options.mjs.map +1 -1
  38. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  39. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  40. package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
  41. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
  42. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  43. package/lib/components/VEmptyState/VEmptyState.mjs.map +1 -1
  44. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  45. package/lib/components/VFab/VFab.mjs.map +1 -1
  46. package/lib/components/VField/VField.mjs.map +1 -1
  47. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  48. package/lib/components/VGrid/VCol.mjs.map +1 -1
  49. package/lib/components/VGrid/VRow.mjs.map +1 -1
  50. package/lib/components/VImg/VImg.mjs.map +1 -1
  51. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  52. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  53. package/lib/components/VInput/VInput.mjs.map +1 -1
  54. package/lib/components/VList/VList.mjs.map +1 -1
  55. package/lib/components/VList/VListGroup.mjs.map +1 -1
  56. package/lib/components/VList/VListItem.mjs.map +1 -1
  57. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  58. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  59. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  60. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  61. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  62. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  63. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  64. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  65. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  66. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  67. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  68. package/lib/components/VRating/VRating.mjs.map +1 -1
  69. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  70. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  71. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  72. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  73. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  74. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  75. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  76. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  77. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  78. package/lib/components/VSparkline/util/path.mjs.map +1 -1
  79. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  80. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  81. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  82. package/lib/components/VTabs/VTab.mjs.map +1 -1
  83. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  84. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  85. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  86. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  87. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  88. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  89. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  90. package/lib/components/transitions/createTransition.mjs.map +1 -1
  91. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  92. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  93. package/lib/composables/border.mjs.map +1 -1
  94. package/lib/composables/color.mjs.map +1 -1
  95. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  96. package/lib/composables/density.mjs.map +1 -1
  97. package/lib/composables/display.mjs.map +1 -1
  98. package/lib/composables/elevation.mjs.map +1 -1
  99. package/lib/composables/focus.mjs.map +1 -1
  100. package/lib/composables/form.mjs.map +1 -1
  101. package/lib/composables/goto.mjs.map +1 -1
  102. package/lib/composables/group.mjs.map +1 -1
  103. package/lib/composables/icons.mjs.map +1 -1
  104. package/lib/composables/layout.mjs.map +1 -1
  105. package/lib/composables/loader.mjs.map +1 -1
  106. package/lib/composables/locale.mjs.map +1 -1
  107. package/lib/composables/location.mjs.map +1 -1
  108. package/lib/composables/position.mjs.map +1 -1
  109. package/lib/composables/proxiedModel.mjs.map +1 -1
  110. package/lib/composables/rounded.mjs.map +1 -1
  111. package/lib/composables/scroll.mjs.map +1 -1
  112. package/lib/composables/size.mjs.map +1 -1
  113. package/lib/composables/teleport.mjs.map +1 -1
  114. package/lib/composables/theme.mjs.map +1 -1
  115. package/lib/composables/touch.mjs.map +1 -1
  116. package/lib/composables/validation.mjs.map +1 -1
  117. package/lib/composables/variant.mjs.map +1 -1
  118. package/lib/directives/color/index.mjs.map +1 -1
  119. package/lib/directives/ripple/index.mjs.map +1 -1
  120. package/lib/entry-bundler.mjs +1 -1
  121. package/lib/entry-bundler.mjs.map +1 -1
  122. package/lib/framework.mjs +1 -1
  123. package/lib/framework.mjs.map +1 -1
  124. package/lib/index.d.mts +46 -46
  125. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  126. package/lib/labs/VCalendar/VCalendarInterval.mjs.map +1 -1
  127. package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -1
  128. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  129. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -1
  130. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  131. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  132. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  133. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  134. package/lib/locale/fr.mjs.map +1 -1
  135. package/lib/locale/it.mjs.map +1 -1
  136. package/lib/services/goto/index.mjs.map +1 -1
  137. package/lib/services/goto/util.mjs.map +1 -1
  138. package/lib/util/colorUtils.mjs.map +1 -1
  139. package/lib/util/console.mjs.map +1 -1
  140. package/lib/util/getCurrentInstance.mjs.map +1 -1
  141. package/lib/util/helpers.mjs +2 -2
  142. package/lib/util/helpers.mjs.map +1 -1
  143. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VSkeletonLoader.mjs","names":["useBackgroundColor","makeDimensionProps","useDimension","makeElevationProps","useElevation","useLocale","makeThemeProps","provideTheme","computed","toRef","genericComponent","propsFactory","useRender","wrapInArray","rootTypes","actions","article","avatar","button","card","chip","divider","heading","image","ossein","paragraph","sentences","subtitle","table","text","genBone","type","children","arguments","length","undefined","_createVNode","genBones","bone","split","Array","from","map","genStructure","includes","mapBones","push","bones","replace","makeVSkeletonLoaderProps","boilerplate","Boolean","color","String","loading","loadingText","default","VSkeletonLoader","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","dimensionStyles","elevationClasses","themeClasses","t","items","join","isLoading","loadingProps","ariaLive","ariaLabel","role","_mergeProps","value"],"sources":["../../../src/components/VSkeletonLoader/VSkeletonLoader.tsx"],"sourcesContent":["// Styles\nimport './VSkeletonLoader.sass'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useLocale } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\ntype VSkeletonBone<T> = T | VSkeletonBone<T>[]\n\nexport type VSkeletonBones = VSkeletonBone<VNode>\nexport type VSkeletonLoaderType = keyof typeof rootTypes\n\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n ossein: 'ossein',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n} as const\n\nfunction genBone (type: string, children: VSkeletonBones = []) {\n return (\n <div\n class={[\n 'v-skeleton-loader__bone',\n `v-skeleton-loader__${type}`,\n ]}\n >\n { children }\n </div>\n )\n}\n\nfunction genBones (bone: string) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [VSkeletonLoaderType, number]\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(() => genStructure(type))\n}\n\nfunction genStructure (type?: string): VSkeletonBones {\n let children: VSkeletonBones = []\n\n if (!type) return children\n\n // TODO: figure out a better way to type this\n const bone = (rootTypes as Record<string, string>)[type]\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone))\n\n return [genBone(type, children)]\n}\n\nfunction mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure)\n}\n\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading',\n },\n type: {\n type: [String, Array] as PropType<\n | VSkeletonLoaderType | (string & {})\n | ReadonlyArray<VSkeletonLoaderType | (string & {})>\n >,\n default: 'ossein',\n },\n\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps(),\n}, 'VSkeletonLoader')\n\nexport const VSkeletonLoader = genericComponent()({\n name: 'VSkeletonLoader',\n\n props: makeVSkeletonLoaderProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { themeClasses } = provideTheme(props)\n const { t } = useLocale()\n\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')))\n\n useRender(() => {\n const isLoading = !slots.default || props.loading\n const loadingProps = (props.boilerplate || !isLoading) ? {} : {\n ariaLive: 'polite',\n ariaLabel: t(props.loadingText),\n role: 'alert',\n }\n\n return (\n <div\n class={[\n 'v-skeleton-loader',\n {\n 'v-skeleton-loader--boilerplate': props.boilerplate,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n isLoading ? dimensionStyles.value : {},\n ]}\n { ...loadingProps }\n >\n { isLoading ? items.value : slots.default?.() }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSkeletonLoader = InstanceType<typeof VSkeletonLoader>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSkeletonLoader.mjs","names":["useBackgroundColor","makeDimensionProps","useDimension","makeElevationProps","useElevation","useLocale","makeThemeProps","provideTheme","computed","toRef","genericComponent","propsFactory","useRender","wrapInArray","rootTypes","actions","article","avatar","button","card","chip","divider","heading","image","ossein","paragraph","sentences","subtitle","table","text","genBone","type","children","arguments","length","undefined","_createVNode","genBones","bone","split","Array","from","map","genStructure","includes","mapBones","push","bones","replace","makeVSkeletonLoaderProps","boilerplate","Boolean","color","String","loading","loadingText","default","VSkeletonLoader","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","dimensionStyles","elevationClasses","themeClasses","t","items","join","isLoading","loadingProps","ariaLive","ariaLabel","role","_mergeProps","value"],"sources":["../../../src/components/VSkeletonLoader/VSkeletonLoader.tsx"],"sourcesContent":["// Styles\nimport './VSkeletonLoader.sass'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useLocale } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\ntype VSkeletonBone<T> = T | VSkeletonBone<T>[]\n\nexport type VSkeletonBones = VSkeletonBone<VNode>\nexport type VSkeletonLoaderType = keyof typeof rootTypes\n\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n ossein: 'ossein',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n} as const\n\nfunction genBone (type: string, children: VSkeletonBones = []) {\n return (\n <div\n class={[\n 'v-skeleton-loader__bone',\n `v-skeleton-loader__${type}`,\n ]}\n >\n { children }\n </div>\n )\n}\n\nfunction genBones (bone: string) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [VSkeletonLoaderType, number]\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(() => genStructure(type))\n}\n\nfunction genStructure (type?: string): VSkeletonBones {\n let children: VSkeletonBones = []\n\n if (!type) return children\n\n // TODO: figure out a better way to type this\n const bone = (rootTypes as Record<string, string>)[type]\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone))\n\n return [genBone(type, children)]\n}\n\nfunction mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure)\n}\n\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading',\n },\n type: {\n type: [String, Array] as PropType<\n | VSkeletonLoaderType | (string & {})\n | ReadonlyArray<VSkeletonLoaderType | (string & {})>\n >,\n default: 'ossein',\n },\n\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps(),\n}, 'VSkeletonLoader')\n\nexport const VSkeletonLoader = genericComponent()({\n name: 'VSkeletonLoader',\n\n props: makeVSkeletonLoaderProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { themeClasses } = provideTheme(props)\n const { t } = useLocale()\n\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')))\n\n useRender(() => {\n const isLoading = !slots.default || props.loading\n const loadingProps = (props.boilerplate || !isLoading) ? {} : {\n ariaLive: 'polite',\n ariaLabel: t(props.loadingText),\n role: 'alert',\n }\n\n return (\n <div\n class={[\n 'v-skeleton-loader',\n {\n 'v-skeleton-loader--boilerplate': props.boilerplate,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n isLoading ? dimensionStyles.value : {},\n ]}\n { ...loadingProps }\n >\n { isLoading ? items.value : slots.default?.() }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSkeletonLoader = InstanceType<typeof VSkeletonLoader>\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","makeComponentProps","useRounded","computed","inject","convertToUnit","genericComponent","propsFactory","useRender","makeVSliderTrackProps","start","type","Number","required","stop","VSliderTrack","name","props","emits","setup","_ref","slots","slider","Error","color","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","indexFromEnd","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionValue","position","undefined","_createVNode","label","class","style"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Tick } from './slider'\n\nexport type VSliderTrackSlots = {\n 'tick-label': { tick: Tick, index: number }\n}\n\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n\n ...makeComponentProps(),\n}, 'VSliderTrack')\n\nexport const VSliderTrack = genericComponent<VSliderTrackSlots>()({\n name: 'VSliderTrack',\n\n props: makeVSliderTrackProps(),\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [startDir.value]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n },\n props.style,\n ]}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","makeComponentProps","useRounded","computed","inject","convertToUnit","genericComponent","propsFactory","useRender","makeVSliderTrackProps","start","type","Number","required","stop","VSliderTrack","name","props","emits","setup","_ref","slots","slider","Error","color","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","indexFromEnd","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionValue","position","undefined","_createVNode","label","class","style"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Tick } from './slider'\n\nexport type VSliderTrackSlots = {\n 'tick-label': { tick: Tick, index: number }\n}\n\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n\n ...makeComponentProps(),\n}, 'VSliderTrack')\n\nexport const VSliderTrack = genericComponent<VSliderTrackSlots>()({\n name: 'VSliderTrack',\n\n props: makeVSliderTrackProps(),\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [startDir.value]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n },\n props.style,\n ]}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","makeVOverlayProps","VProgressLinear","useLayout","forwardRefs","VuetifyLayoutKey","makeLocationProps","makePositionProps","usePosition","useProxiedModel","makeRoundedProps","useRounded","useScopeId","makeThemeProps","provideTheme","useToggleScope","genOverlays","makeVariantProps","useVariant","computed","inject","mergeProps","nextTick","onMounted","onScopeDispose","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","refElement","useRender","useCountdown","milliseconds","time","timer","clear","clearInterval","reset","value","start","el","style","getComputedStyle","transitionDuration","interval","parseFloat","startTime","performance","now","window","setInterval","elapsed","Math","max","makeVSnackbarProps","multiLine","Boolean","text","String","timeout","type","Number","default","vertical","location","transition","VSnackbar","name","props","emits","v","setup","_ref","slots","isActive","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","countdown","overlay","timerRef","isHovering","startY","mainStyles","hasLayout","undefined","layout","startTimeout","activeTimeout","clearTimeout","element","setTimeout","onPointerenter","onPointerleave","onTouchstart","event","touches","clientY","onTouchend","abs","changedTouches","locationClasses","split","reduce","acc","loc","overlayProps","filterProps","hasContent","_createVNode","_mergeProps","class","$event","contentProps","actions","VBtn","variant","ripple","slim","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record<string, any> }\n default: never\n actions: { isActive: Ref<boolean> }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref<VOverlay>()\n const timerRef = ref<VProgressLinear>()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record<string, any>)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical,\n },\n locationClasses.value,\n positionClasses.value,\n props.class,\n ]}\n style={[\n mainStyles.value,\n props.style,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n onTouchstartPassive={ onTouchstart }\n onTouchend={ onTouchend }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n <div key=\"timer\" class=\"v-snackbar__timer\">\n <VProgressLinear\n ref={ timerRef }\n color={ typeof props.timer === 'string' ? props.timer : 'info' }\n max={ props.timeout }\n model-value={ countdown.time.value }\n />\n </div>\n )}\n\n { hasContent && (\n <div\n key=\"content\"\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions({ isActive }) }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","makeVOverlayProps","VProgressLinear","useLayout","forwardRefs","VuetifyLayoutKey","makeLocationProps","makePositionProps","usePosition","useProxiedModel","makeRoundedProps","useRounded","useScopeId","makeThemeProps","provideTheme","useToggleScope","genOverlays","makeVariantProps","useVariant","computed","inject","mergeProps","nextTick","onMounted","onScopeDispose","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","refElement","useRender","useCountdown","milliseconds","time","timer","clear","clearInterval","reset","value","start","el","style","getComputedStyle","transitionDuration","interval","parseFloat","startTime","performance","now","window","setInterval","elapsed","Math","max","makeVSnackbarProps","multiLine","Boolean","text","String","timeout","type","Number","default","vertical","location","transition","VSnackbar","name","props","emits","v","setup","_ref","slots","isActive","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","countdown","overlay","timerRef","isHovering","startY","mainStyles","hasLayout","undefined","layout","startTimeout","activeTimeout","clearTimeout","element","setTimeout","onPointerenter","onPointerleave","onTouchstart","event","touches","clientY","onTouchend","abs","changedTouches","locationClasses","split","reduce","acc","loc","overlayProps","filterProps","hasContent","_createVNode","_mergeProps","class","$event","contentProps","actions","VBtn","variant","ripple","slim","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record<string, any> }\n default: never\n actions: { isActive: Ref<boolean> }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref<VOverlay>()\n const timerRef = ref<VProgressLinear>()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record<string, any>)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical,\n },\n locationClasses.value,\n positionClasses.value,\n props.class,\n ]}\n style={[\n mainStyles.value,\n props.style,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n onTouchstartPassive={ onTouchstart }\n onTouchend={ onTouchend }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n <div key=\"timer\" class=\"v-snackbar__timer\">\n <VProgressLinear\n ref={ timerRef }\n color={ typeof props.timer === 'string' ? props.timer : 'info' }\n max={ props.timeout }\n model-value={ countdown.time.value }\n />\n </div>\n )}\n\n { hasContent && (\n <div\n key=\"content\"\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions({ isActive }) }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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","ignoreList":[]}
@@ -1 +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
+ {"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 +1 @@
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":[]}
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,WACnB,OAAOf,KAAK,CAACsB,KAAK,IAAIR,QAAQ,CAACF,WAAW,CAACG,KAAK,EAAE,EAAE,CAAC;MAAE,GAC5DG,SAAS,GACJf,KAAK;IAGrB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VTrendline.mjs","names":["computed","nextTick","ref","watch","makeLineProps","genPath","_genPath","genericComponent","getPropertyFromItem","getUid","propsFactory","useRender","makeVTrendlineProps","fill","Boolean","VTrendline","name","props","setup","_ref","slots","uid","id","autoDrawDuration","Number","lastLength","path","genPoints","values","boundary","minX","maxX","minY","maxY","totalValues","length","maxValue","max","Math","minValue","min","gridX","gridY","map","value","index","x","y","hasLabels","showLabels","labels","label","lineWidth","parseFloat","totalWidth","width","padding","parseInt","height","items","modelValue","item","itemValue","parsedLabels","points","len","i","push","String","autoDraw","pathRef","getTotalLength","style","strokeDasharray","strokeDashoffset","getBoundingClientRect","transition","autoDrawEasing","transformOrigin","transform","immediate","smooth","gradientData","gradient","slice","reverse","_createVNode","gradientDirection","color","textAnchor","dominantBaseline","labelSize"],"sources":["../../../src/components/VSparkline/VTrendline.tsx"],"sourcesContent":["// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { makeLineProps } from './util/line'\nimport { genPath as _genPath } from './util/path'\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VTrendlineSlots = {\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 Point {\n x: number\n y: number\n value: number\n}\n\nexport const makeVTrendlineProps = propsFactory({\n fill: Boolean,\n\n ...makeLineProps(),\n}, 'VTrendline')\n\nexport const VTrendline = genericComponent<VTrendlineSlots>()({\n name: 'VTrendline',\n\n props: makeVTrendlineProps(),\n\n setup (props, { slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `trendline-${uid}`)\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000))\n\n const lastLength = ref(0)\n const path = ref<SVGPathElement | null>(null)\n\n function genPoints (\n values: number[],\n boundary: Boundary\n ): Point[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n const maxValue = props.max != null ? Number(props.max) : Math.max(...values)\n const minValue = props.min != null ? Number(props.min) : Math.min(...values)\n\n const gridX = (maxX - minX) / (totalValues - 1)\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value,\n }\n })\n }\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n const lineWidth = computed(() => {\n return parseFloat(props.lineWidth) || 4\n })\n const totalWidth = computed(() => Number(props.width))\n\n const boundary = computed<Boundary>(() => {\n const padding = Number(props.padding)\n\n return {\n minX: padding,\n maxX: totalWidth.value - padding,\n minY: padding,\n maxY: parseInt(props.height, 10) - padding,\n }\n })\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)))\n const parsedLabels = computed(() => {\n const labels = []\n const points = genPoints(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 watch(() => props.modelValue, async () => {\n await nextTick()\n\n if (!props.autoDraw || !path.value) return\n\n const pathRef = path.value\n const length = pathRef.getTotalLength()\n\n if (!props.fill) {\n // Initial setup to \"hide\" the line by using the stroke dash array\n pathRef.style.strokeDasharray = `${length}`\n pathRef.style.strokeDashoffset = `${length}`\n\n // Force reflow to ensure the transition starts from this state\n pathRef.getBoundingClientRect()\n\n // Animate the stroke dash offset to \"draw\" the line\n pathRef.style.transition = `stroke-dashoffset ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.strokeDashoffset = '0'\n } else {\n // Your existing logic for filled paths remains the same\n pathRef.style.transformOrigin = 'bottom center'\n pathRef.style.transition = 'none'\n pathRef.style.transform = `scaleY(0)`\n pathRef.getBoundingClientRect()\n pathRef.style.transition = `transform ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.transform = `scaleY(1)`\n }\n\n lastLength.value = length\n }, { immediate: true })\n\n function genPath (fill: boolean) {\n return _genPath(\n genPoints(items.value, boundary.value),\n props.smooth ? 8 : Number(props.smooth),\n fill,\n parseInt(props.height, 10)\n )\n }\n\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse()\n\n return (\n <svg\n display=\"block\"\n stroke-width={ parseFloat(props.lineWidth) ?? 4 }\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 { 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 + (lineWidth.value / 2) + lineWidth.value / 2 }\n y={ (parseInt(props.height, 10) - 4) + (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 <path\n ref={ path }\n d={ genPath(props.fill) }\n fill={ props.fill ? `url(#${id.value})` : 'none' }\n stroke={ props.fill ? 'none' : `url(#${id.value})` }\n />\n\n { props.fill && (\n <path\n d={ genPath(false) }\n fill=\"none\"\n stroke={ props.color ?? props.gradient?.[0] }\n />\n )}\n </svg>\n )\n })\n },\n})\n\nexport type VTrendline = InstanceType<typeof VTrendline>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTrendline.mjs","names":["computed","nextTick","ref","watch","makeLineProps","genPath","_genPath","genericComponent","getPropertyFromItem","getUid","propsFactory","useRender","makeVTrendlineProps","fill","Boolean","VTrendline","name","props","setup","_ref","slots","uid","id","autoDrawDuration","Number","lastLength","path","genPoints","values","boundary","minX","maxX","minY","maxY","totalValues","length","maxValue","max","Math","minValue","min","gridX","gridY","map","value","index","x","y","hasLabels","showLabels","labels","label","lineWidth","parseFloat","totalWidth","width","padding","parseInt","height","items","modelValue","item","itemValue","parsedLabels","points","len","i","push","String","autoDraw","pathRef","getTotalLength","style","strokeDasharray","strokeDashoffset","getBoundingClientRect","transition","autoDrawEasing","transformOrigin","transform","immediate","smooth","gradientData","gradient","slice","reverse","_createVNode","gradientDirection","color","textAnchor","dominantBaseline","labelSize"],"sources":["../../../src/components/VSparkline/VTrendline.tsx"],"sourcesContent":["// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { makeLineProps } from './util/line'\nimport { genPath as _genPath } from './util/path'\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VTrendlineSlots = {\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 Point {\n x: number\n y: number\n value: number\n}\n\nexport const makeVTrendlineProps = propsFactory({\n fill: Boolean,\n\n ...makeLineProps(),\n}, 'VTrendline')\n\nexport const VTrendline = genericComponent<VTrendlineSlots>()({\n name: 'VTrendline',\n\n props: makeVTrendlineProps(),\n\n setup (props, { slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `trendline-${uid}`)\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000))\n\n const lastLength = ref(0)\n const path = ref<SVGPathElement | null>(null)\n\n function genPoints (\n values: number[],\n boundary: Boundary\n ): Point[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n const maxValue = props.max != null ? Number(props.max) : Math.max(...values)\n const minValue = props.min != null ? Number(props.min) : Math.min(...values)\n\n const gridX = (maxX - minX) / (totalValues - 1)\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value,\n }\n })\n }\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n const lineWidth = computed(() => {\n return parseFloat(props.lineWidth) || 4\n })\n const totalWidth = computed(() => Number(props.width))\n\n const boundary = computed<Boundary>(() => {\n const padding = Number(props.padding)\n\n return {\n minX: padding,\n maxX: totalWidth.value - padding,\n minY: padding,\n maxY: parseInt(props.height, 10) - padding,\n }\n })\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)))\n const parsedLabels = computed(() => {\n const labels = []\n const points = genPoints(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 watch(() => props.modelValue, async () => {\n await nextTick()\n\n if (!props.autoDraw || !path.value) return\n\n const pathRef = path.value\n const length = pathRef.getTotalLength()\n\n if (!props.fill) {\n // Initial setup to \"hide\" the line by using the stroke dash array\n pathRef.style.strokeDasharray = `${length}`\n pathRef.style.strokeDashoffset = `${length}`\n\n // Force reflow to ensure the transition starts from this state\n pathRef.getBoundingClientRect()\n\n // Animate the stroke dash offset to \"draw\" the line\n pathRef.style.transition = `stroke-dashoffset ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.strokeDashoffset = '0'\n } else {\n // Your existing logic for filled paths remains the same\n pathRef.style.transformOrigin = 'bottom center'\n pathRef.style.transition = 'none'\n pathRef.style.transform = `scaleY(0)`\n pathRef.getBoundingClientRect()\n pathRef.style.transition = `transform ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.transform = `scaleY(1)`\n }\n\n lastLength.value = length\n }, { immediate: true })\n\n function genPath (fill: boolean) {\n return _genPath(\n genPoints(items.value, boundary.value),\n props.smooth ? 8 : Number(props.smooth),\n fill,\n parseInt(props.height, 10)\n )\n }\n\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse()\n\n return (\n <svg\n display=\"block\"\n stroke-width={ parseFloat(props.lineWidth) ?? 4 }\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 { 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 + (lineWidth.value / 2) + lineWidth.value / 2 }\n y={ (parseInt(props.height, 10) - 4) + (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 <path\n ref={ path }\n d={ genPath(props.fill) }\n fill={ props.fill ? `url(#${id.value})` : 'none' }\n stroke={ props.fill ? 'none' : `url(#${id.value})` }\n />\n\n { props.fill && (\n <path\n d={ genPath(false) }\n fill=\"none\"\n stroke={ props.color ?? props.gradient?.[0] }\n />\n )}\n </svg>\n )\n })\n },\n})\n\nexport type VTrendline = InstanceType<typeof VTrendline>\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"path.mjs","names":["genPath","points","radius","fill","arguments","length","undefined","height","start","shift","end","x","y","map","point","index","next","prev","isCollinear","checkCollinear","threshold","Math","min","getDistance","isTooCloseForRadius","radiusForPoint","before","moveTo","after","join","int","value","parseInt","p0","p1","p2","sqrt","pow","to","from","vector","unitVector"],"sources":["../../../../src/components/VSparkline/util/path.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { Point } from '../VSparkline'\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath (points: Point[], radius: number, fill = false, height = 75) {\n if (points.length === 0) return ''\n const start = points.shift()!\n const end = points[points.length - 1]\n\n return (\n (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) +\n points\n .map((point, index) => {\n const next = points[index + 1]\n const prev = points[index - 1] || start\n const isCollinear = next && checkCollinear(next, point, prev)\n\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`\n }\n\n const threshold = Math.min(\n getDistance(prev, point),\n getDistance(next, point)\n )\n const isTooCloseForRadius = threshold / 2 < radius\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius\n\n const before = moveTo(prev, point, radiusForPoint)\n const after = moveTo(next, point, radiusForPoint)\n\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`\n })\n .join('') +\n (fill ? `L${end.x} ${height - start.x + 2} Z` : '')\n )\n}\n\nfunction int (value: string | number): number {\n return parseInt(value, 10)\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear (p0: Point, p1: Point, p2: Point): boolean {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y)\n}\n\nexport function getDistance (p1: Point, p2: Point): number {\n return Math.sqrt(\n Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)\n )\n}\n\nexport function moveTo (to: Point, from: Point, radius: number) {\n const vector = { x: to.x - from.x, y: to.y - from.y }\n const length = Math.sqrt((vector.x * vector.x) + (vector.y * vector.y))\n const unitVector = { x: vector.x / length, y: vector.y / length }\n\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"path.mjs","names":["genPath","points","radius","fill","arguments","length","undefined","height","start","shift","end","x","y","map","point","index","next","prev","isCollinear","checkCollinear","threshold","Math","min","getDistance","isTooCloseForRadius","radiusForPoint","before","moveTo","after","join","int","value","parseInt","p0","p1","p2","sqrt","pow","to","from","vector","unitVector"],"sources":["../../../../src/components/VSparkline/util/path.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { Point } from '../VSparkline'\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath (points: Point[], radius: number, fill = false, height = 75) {\n if (points.length === 0) return ''\n const start = points.shift()!\n const end = points[points.length - 1]\n\n return (\n (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) +\n points\n .map((point, index) => {\n const next = points[index + 1]\n const prev = points[index - 1] || start\n const isCollinear = next && checkCollinear(next, point, prev)\n\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`\n }\n\n const threshold = Math.min(\n getDistance(prev, point),\n getDistance(next, point)\n )\n const isTooCloseForRadius = threshold / 2 < radius\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius\n\n const before = moveTo(prev, point, radiusForPoint)\n const after = moveTo(next, point, radiusForPoint)\n\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`\n })\n .join('') +\n (fill ? `L${end.x} ${height - start.x + 2} Z` : '')\n )\n}\n\nfunction int (value: string | number): number {\n return parseInt(value, 10)\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear (p0: Point, p1: Point, p2: Point): boolean {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y)\n}\n\nexport function getDistance (p1: Point, p2: Point): number {\n return Math.sqrt(\n Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)\n )\n}\n\nexport function moveTo (to: Point, from: Point, radius: number) {\n const vector = { x: to.x - from.x, y: to.y - from.y }\n const length = Math.sqrt((vector.x * vector.x) + (vector.y * vector.y))\n const unitVector = { x: vector.x / length, y: vector.y / length }\n\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VSpeedDial.mjs","names":["VDefaultsProvider","makeVMenuProps","VMenu","makeComponentProps","useProxiedModel","MaybeTransition","computed","ref","genericComponent","propsFactory","useRender","makeVSpeedDialProps","offset","minWidth","openDelay","closeDelay","location","transition","VSpeedDial","name","props","emits","value","setup","_ref","slots","model","menuRef","y","x","split","locationClasses","replace","menuProps","filterProps","_createVNode","_mergeProps","$event","class","style","default","slotProps","VBtn","size"],"sources":["../../../src/components/VSpeedDial/VSpeedDial.tsx"],"sourcesContent":["// Styles\nimport './VSpeedDial.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVMenuProps, VMenu } from '@/components/VMenu/VMenu'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { Anchor } from '@/util'\n\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center' as const,\n transition: 'scale-transition',\n }),\n}, 'VSpeedDial')\n\nexport const VSpeedDial = genericComponent<OverlaySlots>()({\n name: 'VSpeedDial',\n\n props: makeVSpeedDialProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const menuRef = ref<VMenu>()\n\n const location = computed(() => {\n const [y, x = 'center'] = props.location.split(' ')\n\n return `${y} ${x}`\n }) as ComputedRef<Anchor>\n\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true,\n }))\n\n useRender(() => {\n const menuProps = VMenu.filterProps(props)\n\n return (\n <VMenu\n { ...menuProps }\n v-model={ model.value }\n class={ props.class }\n style={ props.style }\n contentClass={[\n 'v-speed-dial__content',\n locationClasses.value,\n ]}\n location={ location.value }\n ref={ menuRef }\n transition=\"fade-transition\"\n >\n {{\n ...slots,\n default: slotProps => (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n size: 'small',\n },\n }}\n >\n <MaybeTransition\n appear\n group\n transition={ props.transition }\n >\n { slots.default?.(slotProps) }\n </MaybeTransition>\n </VDefaultsProvider>\n ),\n }}\n </VMenu>\n )\n })\n\n return {}\n },\n})\n\nexport type VSpeedDial = InstanceType<typeof VSpeedDial>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,cAAc,EAAEC,KAAK,8BAE9B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,eAAe,4CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC1BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAKA,OAAO,MAAMC,mBAAmB,GAAGF,YAAY,CAAC;EAC9C,GAAGN,kBAAkB,CAAC,CAAC;EACvB,GAAGF,cAAc,CAAC;IAChBW,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,CAAC;IACXC,SAAS,EAAE,CAAC;IACZC,UAAU,EAAE,GAAG;IACfC,QAAQ,EAAE,YAAqB;IAC/BC,UAAU,EAAE;EACd,CAAC;AACH,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMC,UAAU,GAAGV,gBAAgB,CAAe,CAAC,CAAC;EACzDW,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAET,mBAAmB,CAAC,CAAC;EAE5BU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK;EAC3C,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGtB,eAAe,CAACgB,KAAK,EAAE,YAAY,CAAC;IAElD,MAAMO,OAAO,GAAGpB,GAAG,CAAQ,CAAC;IAE5B,MAAMS,QAAQ,GAAGV,QAAQ,CAAC,MAAM;MAC9B,MAAM,CAACsB,CAAC,EAAEC,CAAC,GAAG,QAAQ,CAAC,GAAGT,KAAK,CAACJ,QAAQ,CAACc,KAAK,CAAC,GAAG,CAAC;MAEnD,OAAQ,GAAEF,CAAE,IAAGC,CAAE,EAAC;IACpB,CAAC,CAAwB;IAEzB,MAAME,eAAe,GAAGzB,QAAQ,CAAC,OAAO;MACtC,CAAE,0BAAyBU,QAAQ,CAACM,KAAK,CAACU,OAAO,CAAC,GAAG,EAAE,GAAG,CAAE,EAAC,GAAG;IAClE,CAAC,CAAC,CAAC;IAEHtB,SAAS,CAAC,MAAM;MACd,MAAMuB,SAAS,GAAG/B,KAAK,CAACgC,WAAW,CAACd,KAAK,CAAC;MAE1C,OAAAe,YAAA,CAAAjC,KAAA,EAAAkC,WAAA,CAESH,SAAS;QAAA,cACJP,KAAK,CAACJ,KAAK;QAAA,uBAAAe,MAAA,IAAXX,KAAK,CAACJ,KAAK,GAAAe,MAAA;QAAA,SACbjB,KAAK,CAACkB,KAAK;QAAA,SACXlB,KAAK,CAACmB,KAAK;QAAA,gBACL,CACZ,uBAAuB,EACvBR,eAAe,CAACT,KAAK,CACtB;QAAA,YACUN,QAAQ,CAACM,KAAK;QAAA,OACnBK,OAAO;QAAA;MAAA;QAIX,GAAGF,KAAK;QACRe,OAAO,EAAEC,SAAS,IAAAN,YAAA,CAAAnC,iBAAA;UAAA,YAEJ;YACR0C,IAAI,EAAE;cACJC,IAAI,EAAE;YACR;UACF;QAAC;UAAAH,OAAA,EAAAA,CAAA,MAAAL,YAAA,CAAA9B,eAAA;YAAA;YAAA;YAAA,cAKce,KAAK,CAACH;UAAU;YAAAuB,OAAA,EAAAA,CAAA,MAE3Bf,KAAK,CAACe,OAAO,GAAGC,SAAS,CAAC;UAAA;QAAA;MAGjC;IAIT,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VSpeedDial.mjs","names":["VDefaultsProvider","makeVMenuProps","VMenu","makeComponentProps","useProxiedModel","MaybeTransition","computed","ref","genericComponent","propsFactory","useRender","makeVSpeedDialProps","offset","minWidth","openDelay","closeDelay","location","transition","VSpeedDial","name","props","emits","value","setup","_ref","slots","model","menuRef","y","x","split","locationClasses","replace","menuProps","filterProps","_createVNode","_mergeProps","$event","class","style","default","slotProps","VBtn","size"],"sources":["../../../src/components/VSpeedDial/VSpeedDial.tsx"],"sourcesContent":["// Styles\nimport './VSpeedDial.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVMenuProps, VMenu } from '@/components/VMenu/VMenu'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { Anchor } from '@/util'\n\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center' as const,\n transition: 'scale-transition',\n }),\n}, 'VSpeedDial')\n\nexport const VSpeedDial = genericComponent<OverlaySlots>()({\n name: 'VSpeedDial',\n\n props: makeVSpeedDialProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const menuRef = ref<VMenu>()\n\n const location = computed(() => {\n const [y, x = 'center'] = props.location.split(' ')\n\n return `${y} ${x}`\n }) as ComputedRef<Anchor>\n\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true,\n }))\n\n useRender(() => {\n const menuProps = VMenu.filterProps(props)\n\n return (\n <VMenu\n { ...menuProps }\n v-model={ model.value }\n class={ props.class }\n style={ props.style }\n contentClass={[\n 'v-speed-dial__content',\n locationClasses.value,\n ]}\n location={ location.value }\n ref={ menuRef }\n transition=\"fade-transition\"\n >\n {{\n ...slots,\n default: slotProps => (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n size: 'small',\n },\n }}\n >\n <MaybeTransition\n appear\n group\n transition={ props.transition }\n >\n { slots.default?.(slotProps) }\n </MaybeTransition>\n </VDefaultsProvider>\n ),\n }}\n </VMenu>\n )\n })\n\n return {}\n },\n})\n\nexport type VSpeedDial = InstanceType<typeof VSpeedDial>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,cAAc,EAAEC,KAAK,8BAE9B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,eAAe,4CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC1BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAKA,OAAO,MAAMC,mBAAmB,GAAGF,YAAY,CAAC;EAC9C,GAAGN,kBAAkB,CAAC,CAAC;EACvB,GAAGF,cAAc,CAAC;IAChBW,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,CAAC;IACXC,SAAS,EAAE,CAAC;IACZC,UAAU,EAAE,GAAG;IACfC,QAAQ,EAAE,YAAqB;IAC/BC,UAAU,EAAE;EACd,CAAC;AACH,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMC,UAAU,GAAGV,gBAAgB,CAAe,CAAC,CAAC;EACzDW,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAET,mBAAmB,CAAC,CAAC;EAE5BU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK;EAC3C,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGtB,eAAe,CAACgB,KAAK,EAAE,YAAY,CAAC;IAElD,MAAMO,OAAO,GAAGpB,GAAG,CAAQ,CAAC;IAE5B,MAAMS,QAAQ,GAAGV,QAAQ,CAAC,MAAM;MAC9B,MAAM,CAACsB,CAAC,EAAEC,CAAC,GAAG,QAAQ,CAAC,GAAGT,KAAK,CAACJ,QAAQ,CAACc,KAAK,CAAC,GAAG,CAAC;MAEnD,OAAO,GAAGF,CAAC,IAAIC,CAAC,EAAE;IACpB,CAAC,CAAwB;IAEzB,MAAME,eAAe,GAAGzB,QAAQ,CAAC,OAAO;MACtC,CAAC,0BAA0BU,QAAQ,CAACM,KAAK,CAACU,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG;IAClE,CAAC,CAAC,CAAC;IAEHtB,SAAS,CAAC,MAAM;MACd,MAAMuB,SAAS,GAAG/B,KAAK,CAACgC,WAAW,CAACd,KAAK,CAAC;MAE1C,OAAAe,YAAA,CAAAjC,KAAA,EAAAkC,WAAA,CAESH,SAAS;QAAA,cACJP,KAAK,CAACJ,KAAK;QAAA,uBAAAe,MAAA,IAAXX,KAAK,CAACJ,KAAK,GAAAe,MAAA;QAAA,SACbjB,KAAK,CAACkB,KAAK;QAAA,SACXlB,KAAK,CAACmB,KAAK;QAAA,gBACL,CACZ,uBAAuB,EACvBR,eAAe,CAACT,KAAK,CACtB;QAAA,YACUN,QAAQ,CAACM,KAAK;QAAA,OACnBK,OAAO;QAAA;MAAA;QAIX,GAAGF,KAAK;QACRe,OAAO,EAAEC,SAAS,IAAAN,YAAA,CAAAnC,iBAAA;UAAA,YAEJ;YACR0C,IAAI,EAAE;cACJC,IAAI,EAAE;YACR;UACF;QAAC;UAAAH,OAAA,EAAAA,CAAA,MAAAL,YAAA,CAAA9B,eAAA;YAAA;YAAA;YAAA,cAKce,KAAK,CAACH;UAAU;YAAAuB,OAAA,EAAAA,CAAA,MAE3Bf,KAAK,CAACe,OAAO,GAAGC,SAAS,CAAC;UAAA;QAAA;MAGjC;IAIT,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VStepper.mjs","names":["VStepperSymbol","makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeDisplayProps","useDisplay","makeGroupProps","useGroup","computed","toRefs","genericComponent","getPropertyFromItem","only","propsFactory","useRender","makeStepperProps","altLabels","Boolean","bgColor","String","completeIcon","editIcon","editable","errorIcon","hideActions","items","type","Array","default","itemTitle","itemValue","nonLinear","flat","makeVStepperProps","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","displayClasses","mobile","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_ref2","_Fragment","icon","subtitle"],"sources":["../../../src/components/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StepperItem, StepperItemSlot } from './VStepperItem'\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: String,\n editIcon: String,\n editable: Boolean,\n errorIcon: String,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeDisplayProps(),\n}, 'Stepper')\n\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { displayClasses, mobile } = useDisplay(props)\n const { completeIcon, editIcon, errorIcon, color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': mobile.value,\n },\n displayClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map(({ raw, ...item }, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n v-slots={ slots }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType<typeof VStepper>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VStepper.mjs","names":["VStepperSymbol","makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeDisplayProps","useDisplay","makeGroupProps","useGroup","computed","toRefs","genericComponent","getPropertyFromItem","only","propsFactory","useRender","makeStepperProps","altLabels","Boolean","bgColor","String","completeIcon","editIcon","editable","errorIcon","hideActions","items","type","Array","default","itemTitle","itemValue","nonLinear","flat","makeVStepperProps","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","displayClasses","mobile","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_ref2","_Fragment","icon","subtitle"],"sources":["../../../src/components/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StepperItem, StepperItemSlot } from './VStepperItem'\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: String,\n editIcon: String,\n editable: Boolean,\n errorIcon: String,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeDisplayProps(),\n}, 'Stepper')\n\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { displayClasses, mobile } = useDisplay(props)\n const { completeIcon, editIcon, errorIcon, color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': mobile.value,\n },\n displayClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map(({ raw, ...item }, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n v-slots={ slots }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType<typeof VStepper>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,cAAc;AAAA,SACdC,wBAAwB,EAAEC,eAAe;AAAA,SACzCC,cAAc;AAAA,SACdC,YAAY;AAAA,SACZC,cAAc;AAAA,SACdC,kBAAkB;AAAA,SAClBC,QAAQ;AAAA,SACRC,eAAe,EAAEC,MAAM,gCAEhC;AAAA,SACSC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,cAAc,EAAEC,QAAQ,uCAEjC;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,mBAAmB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAE7E;AAyBA,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,SAAS,EAAEC,OAAO;EAClBC,OAAO,EAAEC,MAAM;EACfC,YAAY,EAAED,MAAM;EACpBE,QAAQ,EAAEF,MAAM;EAChBG,QAAQ,EAAEL,OAAO;EACjBM,SAAS,EAAEJ,MAAM;EACjBK,WAAW,EAAEP,OAAO;EACpBQ,KAAK,EAAE;IACLC,IAAI,EAAEC,KAAyC;IAC/CC,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAEP,MAAM;IACZS,OAAO,EAAE;EACX,CAAC;EACDE,SAAS,EAAE;IACTJ,IAAI,EAAEP,MAAM;IACZS,OAAO,EAAE;EACX,CAAC;EACDG,SAAS,EAAEd,OAAO;EAClBe,IAAI,EAAEf,OAAO;EAEb,GAAGb,gBAAgB,CAAC;AACtB,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,MAAM6B,iBAAiB,GAAGpB,YAAY,CAAC;EAC5C,GAAGE,gBAAgB,CAAC,CAAC;EACrB,GAAGT,cAAc,CAAC;IAChB4B,SAAS,EAAE,OAAgB;IAC3BC,aAAa,EAAE;EACjB,CAAC,CAAC;EACF,GAAGlC,eAAe,CAAC,CAAC;EACpB,GAAGW,IAAI,CAAClB,wBAAwB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;AAC9D,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAM0C,QAAQ,GAAG1B,gBAAgB,CAAgB,CAAC,CAAC;EACxD2B,IAAI,EAAE,UAAU;EAEhBC,KAAK,EAAEL,iBAAiB,CAAC,CAAC;EAE1BM,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEjB,KAAK,EAAEmB,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGxC,QAAQ,CAAC+B,KAAK,EAAE7C,cAAc,CAAC;IAC/E,MAAM;MAAEuD,cAAc;MAAEC;IAAO,CAAC,GAAG5C,UAAU,CAACiC,KAAK,CAAC;IACpD,MAAM;MAAElB,YAAY;MAAEC,QAAQ;MAAEE,SAAS;MAAE2B,KAAK;MAAE5B,QAAQ;MAAE6B,QAAQ;MAAEC;IAAS,CAAC,GAAG3C,MAAM,CAAC6B,KAAK,CAAC;IAEhG,MAAMb,KAAK,GAAGjB,QAAQ,CAAC,MAAM8B,KAAK,CAACb,KAAK,CAAC4B,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MAC5D,MAAMC,KAAK,GAAG7C,mBAAmB,CAAC2C,IAAI,EAAEhB,KAAK,CAACT,SAAS,EAAEyB,IAAI,CAAC;MAC9D,MAAMG,KAAK,GAAG9C,mBAAmB,CAAC2C,IAAI,EAAEhB,KAAK,CAACR,SAAS,EAAEyB,KAAK,GAAG,CAAC,CAAC;MAEnE,OAAO;QACLC,KAAK;QACLC,KAAK;QACLC,GAAG,EAAEJ;MACP,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAMK,WAAW,GAAGnD,QAAQ,CAAC,MAAM;MACjC,OAAOoC,MAAM,CAACa,KAAK,CAACG,SAAS,CAACN,IAAI,IAAIP,QAAQ,CAACU,KAAK,CAACI,QAAQ,CAACP,IAAI,CAACQ,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,MAAMC,QAAQ,GAAGvD,QAAQ,CAAC,MAAM;MAC9B,IAAI8B,KAAK,CAACyB,QAAQ,EAAE,OAAOzB,KAAK,CAACyB,QAAQ;MACzC,IAAIJ,WAAW,CAACF,KAAK,KAAK,CAAC,EAAE,OAAO,MAAM;MAC1C,IAAIE,WAAW,CAACF,KAAK,KAAKb,MAAM,CAACa,KAAK,CAACO,MAAM,GAAG,CAAC,EAAE,OAAO,MAAM;MAEhE,OAAO,KAAK;IACd,CAAC,CAAC;IAEF7D,eAAe,CAAC;MACdN,YAAY,EAAE;QACZyB,QAAQ;QACRC,SAAS;QACTH,YAAY;QACZC,QAAQ;QACR8B,QAAQ;QACRC;MACF,CAAC;MACDzD,eAAe,EAAE;QACfuD,KAAK;QACLa,QAAQ;QACRZ,QAAQ;QACRC;MACF;IACF,CAAC,CAAC;IAEFtC,SAAS,CAAC,MAAM;MACd,MAAMmD,UAAU,GAAG/D,MAAM,CAACgE,WAAW,CAAC5B,KAAK,CAAC;MAE5C,MAAM6B,SAAS,GAAG,CAAC,EAAExB,KAAK,CAACyB,MAAM,IAAI9B,KAAK,CAACb,KAAK,CAACuC,MAAM,CAAC;MACxD,MAAMK,SAAS,GAAG/B,KAAK,CAACb,KAAK,CAACuC,MAAM,GAAG,CAAC;MACxC,MAAMM,UAAU,GAAG,CAAChC,KAAK,CAACd,WAAW,IAAI,CAAC,EAAE6C,SAAS,IAAI1B,KAAK,CAAC4B,OAAO,CAAC;MAEvE,OAAAC,YAAA,CAAAtE,MAAA,EAAAuE,WAAA,CAESR,UAAU;QAAA,SACP3B,KAAK,CAACpB,OAAO;QAAA,SACd,CACL,WAAW,EACX;UACE,uBAAuB,EAAEoB,KAAK,CAACtB,SAAS;UACxC,iBAAiB,EAAEsB,KAAK,CAACN,IAAI;UAC7B,uBAAuB,EAAEM,KAAK,CAACP,SAAS;UACxC,mBAAmB,EAAEkB,MAAM,CAACQ;QAC9B,CAAC,EACDT,cAAc,CAACS,KAAK,EACpBnB,KAAK,CAACoC,KAAK,CACZ;QAAA,SACOpC,KAAK,CAACqC;MAAK;QAAA/C,OAAA,EAAAA,CAAA,MAEjBuC,SAAS,IAAAK,YAAA,CAAA5E,cAAA;UAAA;QAAA;UAAAgC,OAAA,EAAAA,CAAA,MAELH,KAAK,CAACgC,KAAK,CAACJ,GAAG,CAAC,CAAAuB,KAAA,EAAmBrB,KAAK;YAAA,IAAvB;cAAEG,GAAG;cAAE,GAAGJ;YAAK,CAAC,GAAAsB,KAAA;YAAA,OAAAJ,YAAA,CAAAK,SAAA,SAE7B,CAAC,CAACtB,KAAK,IAAAiB,YAAA,CAAAxE,QAAA,aAAkB,EAAAwE,YAAA,CAAA3E,YAAA,EAGpByD,IAAI,EACA;cACP1B,OAAO,EAAEe,KAAK,CAAC,eAAeW,IAAI,CAACG,KAAK,EAAE,CAAC,IAAId,KAAK,CAACyB,MAAM;cAC3DU,IAAI,EAAEnC,KAAK,CAACmC,IAAI;cAChBtB,KAAK,EAAEb,KAAK,CAACa,KAAK;cAClBuB,QAAQ,EAAEpC,KAAK,CAACoC;YAClB,CAAC;UAAA,CAGN,CAAC;QAAA,EAEL,EAECV,SAAS,IAAAG,YAAA,CAAA1E,cAAA;UAAA;QAAA;UAAA8B,OAAA,EAAAA,CAAA,MAELH,KAAK,CAACgC,KAAK,CAACJ,GAAG,CAACC,IAAI,IAAAkB,YAAA,CAAAzE,kBAAA;YAAA,SAEVuD,IAAI,CAACG;UAAK,GACT;YACP7B,OAAO,EAAEA,CAAA,KAAMe,KAAK,CAAC,QAAQW,IAAI,CAACG,KAAK,EAAE,CAAC,GAAGH,IAAI,CAAC,IAAIX,KAAK,CAACW,IAAI,GAAGA,IAAI;UACzE,CAAC,CAEJ,CAAC;QAAA,EAEL,EAECX,KAAK,CAACf,OAAO,GAAG;UAAEkB,IAAI;UAAED;QAAK,CAAC,CAAC,EAE/ByB,UAAU,KACV3B,KAAK,CAAC4B,OAAO,GAAG;UAAE1B,IAAI;UAAEC;QAAK,CAAC,CAAC,IAAA0B,YAAA,CAAA7E,eAAA;UAAA;UAAA,gBAGZmD,IAAI;UAAA,gBACJD;QAAI,GACTF,KAAK,CAElB,CACF;MAAA;IAGP,CAAC,CAAC;IAEF,OAAO;MACLG,IAAI;MACJD;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}