vuetify 2.4.0 → 2.4.4

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 (105) hide show
  1. package/dist/json/attributes.json +47 -43
  2. package/dist/json/tags.json +1 -0
  3. package/dist/json/web-types.json +129 -86
  4. package/dist/vuetify.css +23 -10
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +174 -103
  7. package/dist/vuetify.js.map +1 -1
  8. package/dist/vuetify.min.css +2 -2
  9. package/dist/vuetify.min.js +2 -2
  10. package/es5/components/VBtn/VBtn.js +9 -6
  11. package/es5/components/VBtn/VBtn.js.map +1 -1
  12. package/es5/components/VCalendar/VCalendar.js +1 -1
  13. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  14. package/es5/components/VCalendar/mixins/calendar-with-events.js +2 -2
  15. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  16. package/es5/components/VDatePicker/VDatePicker.js +12 -38
  17. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  18. package/es5/components/VDatePicker/mixins/date-picker-table.js +9 -1
  19. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  20. package/es5/components/VDatePicker/util/index.js +8 -0
  21. package/es5/components/VDatePicker/util/index.js.map +1 -1
  22. package/es5/components/VDatePicker/util/sanitizeDateString.js +37 -0
  23. package/es5/components/VDatePicker/util/sanitizeDateString.js.map +1 -0
  24. package/es5/components/VPagination/VPagination.js +1 -0
  25. package/es5/components/VPagination/VPagination.js.map +1 -1
  26. package/es5/components/VRangeSlider/VRangeSlider.js +41 -11
  27. package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
  28. package/es5/components/VSelect/VSelect.js +1 -0
  29. package/es5/components/VSelect/VSelect.js.map +1 -1
  30. package/es5/components/VSlideGroup/VSlideGroup.js +12 -3
  31. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  32. package/es5/components/VSlider/VSlider.js +5 -3
  33. package/es5/components/VSlider/VSlider.js.map +1 -1
  34. package/es5/framework.js +1 -1
  35. package/es5/services/theme/utils.js +3 -1
  36. package/es5/services/theme/utils.js.map +1 -1
  37. package/lib/components/VBtn/VBtn.js +9 -6
  38. package/lib/components/VBtn/VBtn.js.map +1 -1
  39. package/lib/components/VCalendar/VCalendar.js +1 -1
  40. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  41. package/lib/components/VCalendar/mixins/calendar-with-events.js +2 -2
  42. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  43. package/lib/components/VDatePicker/VDatePicker.js +1 -12
  44. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  45. package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -2
  46. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  47. package/lib/components/VDatePicker/util/index.js +2 -1
  48. package/lib/components/VDatePicker/util/index.js.map +1 -1
  49. package/lib/components/VDatePicker/util/sanitizeDateString.js +12 -0
  50. package/lib/components/VDatePicker/util/sanitizeDateString.js.map +1 -0
  51. package/lib/components/VPagination/VPagination.js +1 -0
  52. package/lib/components/VPagination/VPagination.js.map +1 -1
  53. package/lib/components/VRangeSlider/VRangeSlider.js +38 -6
  54. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  55. package/lib/components/VSelect/VSelect.js +1 -0
  56. package/lib/components/VSelect/VSelect.js.map +1 -1
  57. package/lib/components/VSlideGroup/VSlideGroup.js +12 -3
  58. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  59. package/lib/components/VSlider/VSlider.js +5 -3
  60. package/lib/components/VSlider/VSlider.js.map +1 -1
  61. package/lib/framework.js +1 -1
  62. package/lib/services/theme/utils.js +2 -1
  63. package/lib/services/theme/utils.js.map +1 -1
  64. package/package.json +2 -2
  65. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +2 -2
  66. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +1 -1
  67. package/src/components/VBottomNavigation/__tests__/__snapshots__/VBottomNavigation.spec.ts.snap +4 -4
  68. package/src/components/VBtn/VBtn.sass +1 -5
  69. package/src/components/VBtn/VBtn.ts +11 -7
  70. package/src/components/VBtn/__tests__/VBtn.spec.ts +1 -33
  71. package/src/components/VBtn/__tests__/__snapshots__/VBtn.spec.ts.snap +10 -10
  72. package/src/components/VCalendar/VCalendar.ts +2 -2
  73. package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +13 -5
  74. package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +50 -50
  75. package/src/components/VCalendar/__tests__/__snapshots__/VCalendarDaily.spec.ts.snap +61 -61
  76. package/src/components/VCalendar/mixins/calendar-with-events.ts +2 -2
  77. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +9 -9
  78. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +5 -5
  79. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +49 -0
  80. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +16 -16
  81. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +10 -10
  82. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +102 -102
  83. package/src/components/VDataTable/__tests__/__snapshots__/VEditDialog.spec.ts.snap +3 -3
  84. package/src/components/VDatePicker/VDatePicker.ts +1 -7
  85. package/src/components/VDatePicker/__tests__/VDatePickerDateTable.spec.ts +32 -0
  86. package/src/components/VDatePicker/__tests__/VDatePickerMonthTable.spec.ts +32 -0
  87. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +16 -16
  88. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +10 -10
  89. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerHeader.spec.ts.snap +10 -10
  90. package/src/components/VDatePicker/mixins/date-picker-table.ts +10 -2
  91. package/src/components/VDatePicker/util/__tests__/sanitizeDateString.spec.ts +10 -0
  92. package/src/components/VDatePicker/util/index.ts +2 -0
  93. package/src/components/VDatePicker/util/sanitizeDateString.ts +8 -0
  94. package/src/components/VGrid/VGrid.sass +6 -0
  95. package/src/components/VPagination/VPagination.ts +1 -0
  96. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +6 -3
  97. package/src/components/VRangeSlider/VRangeSlider.ts +33 -5
  98. package/src/components/VRangeSlider/__tests__/VRangeSlider.spec.ts +1 -1
  99. package/src/components/VSelect/VSelect.ts +1 -0
  100. package/src/components/VSlideGroup/VSlideGroup.ts +15 -3
  101. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +56 -0
  102. package/src/components/VSlider/VSlider.ts +5 -2
  103. package/src/components/VTextField/VTextField.sass +14 -8
  104. package/src/services/theme/utils.ts +2 -1
  105. package/types/services/theme.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSelect/VSelect.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n menu: InstanceType<typeof VMenu>\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType<string | boolean | Element | VNode>,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.getText(this.selectedItems[0]) || '').toString().length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n !this.isInteractive ||\n this.getDisabled(item)\n )\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && !isDisabled,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (isDisabled) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n !this.isInteractive ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n // Attach to root el so that\n // menu covers prepend/append icons\n if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) || '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && keyCode !== keyCodes.tab) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n menu.activeTile && menu.activeTile.click()\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // When selecting multiple\n // adjust menu after each\n // selection\n this.$nextTick(() => {\n this.$refs.menu &&\n (this.$refs.menu as { [key: string]: any }).updateDimensions()\n })\n\n // We only need to reset list index for multiple\n // to keep highlight when an item is toggled\n // on and off\n if (!this.multiple) return\n\n const listIndex = this.getMenuIndex()\n\n this.setMenuIndex(-1)\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) return\n\n this.$nextTick(() => this.setMenuIndex(listIndex))\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n const oldValue = this.internalValue\n this.internalValue = value\n value !== oldValue && this.$emit('change', value)\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n"],"sourceRoot":"","file":"VSelect.js"}
1
+ {"version":3,"sources":["../../../src/components/VSelect/VSelect.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n menu: InstanceType<typeof VMenu>\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType<string | boolean | Element | VNode>,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.getText(this.selectedItems[0]) || '').toString().length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n this.setMenuIndex(-1)\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n !this.isInteractive ||\n this.getDisabled(item)\n )\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && !isDisabled,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (isDisabled) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n !this.isInteractive ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n // Attach to root el so that\n // menu covers prepend/append icons\n if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) || '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && keyCode !== keyCodes.tab) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n menu.activeTile && menu.activeTile.click()\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // When selecting multiple\n // adjust menu after each\n // selection\n this.$nextTick(() => {\n this.$refs.menu &&\n (this.$refs.menu as { [key: string]: any }).updateDimensions()\n })\n\n // We only need to reset list index for multiple\n // to keep highlight when an item is toggled\n // on and off\n if (!this.multiple) return\n\n const listIndex = this.getMenuIndex()\n\n this.setMenuIndex(-1)\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) return\n\n this.$nextTick(() => this.setMenuIndex(listIndex))\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n const oldValue = this.internalValue\n this.internalValue = value\n value !== oldValue && this.$emit('change', value)\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n"],"sourceRoot":"","file":"VSelect.js"}
@@ -78,17 +78,17 @@ export const BaseSlideGroup = mixins(BaseItemGroup, Mobile).extend({
78
78
  // This matches the default 2.2 behavior
79
79
 
80
80
  case true:
81
- return this.isOverflowing;
81
+ return this.isOverflowing || Math.abs(this.scrollOffset) > 0;
82
82
  // Always show on mobile
83
83
 
84
84
  case 'mobile':
85
- return this.isMobile || this.isOverflowing;
85
+ return this.isMobile || this.isOverflowing || Math.abs(this.scrollOffset) > 0;
86
86
  // https://material.io/components/tabs#scrollable-tabs
87
87
  // Always show arrows when
88
88
  // overflowed on desktop
89
89
 
90
90
  default:
91
- return !this.isMobile && this.isOverflowing;
91
+ return !this.isMobile && (this.isOverflowing || Math.abs(this.scrollOffset) > 0);
92
92
  }
93
93
  },
94
94
 
@@ -279,6 +279,15 @@ export const BaseSlideGroup = mixins(BaseItemGroup, Mobile).extend({
279
279
  scrollIntoView
280
280
  /* istanbul ignore next */
281
281
  () {
282
+ if (!this.selectedItem && this.items.length) {
283
+ const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect();
284
+ const wrapperPosition = this.$refs.wrapper.getBoundingClientRect();
285
+
286
+ if (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right || !this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left) {
287
+ this.scrollTo('prev');
288
+ }
289
+ }
290
+
282
291
  if (!this.selectedItem) {
283
292
  return;
284
293
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroup.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\n\ninterface TouchEvent {\n touchstartX: number\n touchmoveX: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nexport const BaseSlideGroup = mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof BaseItemGroup,\n typeof Mobile,\n ]>\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n internalItemsLength: 0,\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n this.isOverflowing\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n this.isOverflowing\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n this.$refs.content.style.transform = `translateX(${-val}px)`\n },\n },\n\n beforeUpdate () {\n this.internalItemsLength = (this.$children || []).length\n },\n\n updated () {\n if (this.internalItemsLength === (this.$children || []).length) return\n this.setWidths()\n },\n\n methods: {\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.next || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n }, this.$slots.default)\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : this.$slots.prev || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n this.scrollOffset = this.startX - e.touchmoveX\n },\n onTouchEnd () {\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = this.calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = this.calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n calculateUpdatedOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean, currentScrollOffset: number): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n },\n calculateCenteredOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths /* istanbul ignore next */ () {\n window.requestAnimationFrame(() => {\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n this.isOverflowing = this.widths.wrapper < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VSlideGroup.js"}
1
+ {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroup.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\n\ninterface TouchEvent {\n touchstartX: number\n touchmoveX: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nexport const BaseSlideGroup = mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof BaseItemGroup,\n typeof Mobile,\n ]>\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n internalItemsLength: 0,\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n this.$refs.content.style.transform = `translateX(${-val}px)`\n },\n },\n\n beforeUpdate () {\n this.internalItemsLength = (this.$children || []).length\n },\n\n updated () {\n if (this.internalItemsLength === (this.$children || []).length) return\n this.setWidths()\n },\n\n methods: {\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.next || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n }, this.$slots.default)\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : this.$slots.prev || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n this.scrollOffset = this.startX - e.touchmoveX\n },\n onTouchEnd () {\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = this.calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = this.calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n calculateUpdatedOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean, currentScrollOffset: number): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n },\n calculateCenteredOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths /* istanbul ignore next */ () {\n window.requestAnimationFrame(() => {\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n this.isOverflowing = this.widths.wrapper < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VSlideGroup.js"}
@@ -231,13 +231,14 @@ export default mixins(VInput, Loadable
231
231
  value: this.onBlur
232
232
  }],
233
233
  on: {
234
- click: this.onSliderClick
234
+ click: this.onSliderClick,
235
+ mousedown: this.onSliderMouseDown
235
236
  }
236
237
  }, this.genChildren());
237
238
  },
238
239
 
239
240
  genChildren() {
240
- return [this.genInput(), this.genTrackContainer(), this.genSteps(), this.genThumbContainer(this.internalValue, this.inputWidth, this.isActive, this.isFocused, this.onThumbMouseDown, this.onFocus, this.onBlur)];
241
+ return [this.genInput(), this.genTrackContainer(), this.genSteps(), this.genThumbContainer(this.internalValue, this.inputWidth, this.isActive, this.isFocused, this.onSliderMouseDown, this.onFocus, this.onBlur)];
241
242
  },
242
243
 
243
244
  genInput() {
@@ -388,7 +389,7 @@ export default mixins(VInput, Loadable
388
389
  };
389
390
  },
390
391
 
391
- onThumbMouseDown(e) {
392
+ onSliderMouseDown(e) {
392
393
  e.preventDefault();
393
394
  this.oldValue = this.internalValue;
394
395
  this.keyPressed = 2;
@@ -405,6 +406,7 @@ export default mixins(VInput, Loadable
405
406
  this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions);
406
407
  addOnceEventListener(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions);
407
408
  } else {
409
+ this.onMouseMove(e);
408
410
  this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions);
409
411
  addOnceEventListener(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions);
410
412
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSlider/VSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof VInput,\n typeof Loadable\n ]>\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n ticks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n keyPressed: 0,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.keyPressed >= 2 ? 'none' : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n return (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n },\n },\n\n // If done in as immediate in\n // value watcher, causes issues\n // with vue-test-utils\n beforeMount () {\n this.internalValue = this.value\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onThumbMouseDown,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onDrag: Function,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n ...this.$attrs,\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n touchstart: onDrag,\n mousedown: onDrag,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onThumbMouseDown (e: MouseEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.keyPressed = 2\n this.isActive = true\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n if ('touches' in e) {\n this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions)\n } else {\n this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n }\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n this.keyPressed = 0\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent) {\n const { value } = this.parseMouseMove(e)\n this.internalValue = value\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onKeyUp () {\n this.keyPressed = 0\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect() as any\n const clickOffset = 'touches' in e ? (e as any).touches[0][click] : e[click] // Can we get rid of any here?\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n const isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength\n const value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n\n return { value, isInsideTrack }\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n this.keyPressed += 1\n\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n"],"sourceRoot":"","file":"VSlider.js"}
1
+ {"version":3,"sources":["../../../src/components/VSlider/VSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof VInput,\n typeof Loadable\n ]>\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n ticks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n keyPressed: 0,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.keyPressed >= 2 ? 'none' : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n return (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n },\n },\n\n // If done in as immediate in\n // value watcher, causes issues\n // with vue-test-utils\n beforeMount () {\n this.internalValue = this.value\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onSliderMouseDown,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onDrag: Function,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n ...this.$attrs,\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n touchstart: onDrag,\n mousedown: onDrag,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.keyPressed = 2\n this.isActive = true\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n if ('touches' in e) {\n this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions)\n } else {\n this.onMouseMove(e)\n this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n }\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n this.keyPressed = 0\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent) {\n const { value } = this.parseMouseMove(e)\n this.internalValue = value\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onKeyUp () {\n this.keyPressed = 0\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect() as any\n const clickOffset = 'touches' in e ? (e as any).touches[0][click] : e[click] // Can we get rid of any here?\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n const isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength\n const value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n\n return { value, isInsideTrack }\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n this.keyPressed += 1\n\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n"],"sourceRoot":"","file":"VSlider.js"}
package/lib/framework.js CHANGED
@@ -46,7 +46,7 @@ export default class Vuetify {
46
46
  }
47
47
  Vuetify.install = install;
48
48
  Vuetify.installed = false;
49
- Vuetify.version = "2.4.0";
49
+ Vuetify.version = "2.4.4";
50
50
  Vuetify.config = {
51
51
  silent: false
52
52
  };