vuetify 2.2.11 → 2.2.15

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 (116) hide show
  1. package/dist/json/attributes.json +12 -4
  2. package/dist/json/tags.json +2 -0
  3. package/dist/json/web-types.json +36 -13
  4. package/dist/vuetify.css +19 -8
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +123 -78
  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/VAutocomplete/VAutocomplete.js +4 -4
  11. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  12. package/es5/components/VChip/VChip.js +2 -1
  13. package/es5/components/VChip/VChip.js.map +1 -1
  14. package/es5/components/VData/VData.js +6 -1
  15. package/es5/components/VData/VData.js.map +1 -1
  16. package/es5/components/VDataIterator/VDataIterator.js +16 -3
  17. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  18. package/es5/components/VDataTable/VDataTable.js +3 -13
  19. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  20. package/es5/components/VDialog/VDialog.js +33 -27
  21. package/es5/components/VDialog/VDialog.js.map +1 -1
  22. package/es5/components/VIcon/VIcon.js +2 -2
  23. package/es5/components/VIcon/VIcon.js.map +1 -1
  24. package/es5/components/VList/VList.js +1 -1
  25. package/es5/components/VList/VList.js.map +1 -1
  26. package/es5/components/VMenu/VMenu.js +13 -11
  27. package/es5/components/VMenu/VMenu.js.map +1 -1
  28. package/es5/components/VRangeSlider/VRangeSlider.js +1 -0
  29. package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
  30. package/es5/components/VSelect/VSelect.js +4 -3
  31. package/es5/components/VSelect/VSelect.js.map +1 -1
  32. package/es5/components/VTimePicker/VTimePicker.js +2 -1
  33. package/es5/components/VTimePicker/VTimePicker.js.map +1 -1
  34. package/es5/components/VTimePicker/VTimePickerTitle.js +6 -2
  35. package/es5/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  36. package/es5/components/VTooltip/VTooltip.js +6 -4
  37. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  38. package/es5/framework.js +1 -1
  39. package/es5/mixins/menuable/index.js +11 -4
  40. package/es5/mixins/menuable/index.js.map +1 -1
  41. package/es5/services/icons/presets/fa4.js +1 -1
  42. package/es5/services/icons/presets/fa4.js.map +1 -1
  43. package/lib/components/VAutocomplete/VAutocomplete.js +4 -4
  44. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  45. package/lib/components/VChip/VChip.js +2 -1
  46. package/lib/components/VChip/VChip.js.map +1 -1
  47. package/lib/components/VData/VData.js +7 -1
  48. package/lib/components/VData/VData.js.map +1 -1
  49. package/lib/components/VDataIterator/VDataIterator.js +16 -4
  50. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  51. package/lib/components/VDataTable/VDataTable.js +3 -14
  52. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  53. package/lib/components/VDialog/VDialog.js +31 -26
  54. package/lib/components/VDialog/VDialog.js.map +1 -1
  55. package/lib/components/VIcon/VIcon.js +2 -2
  56. package/lib/components/VIcon/VIcon.js.map +1 -1
  57. package/lib/components/VList/VList.js +1 -1
  58. package/lib/components/VList/VList.js.map +1 -1
  59. package/lib/components/VMenu/VMenu.js +9 -9
  60. package/lib/components/VMenu/VMenu.js.map +1 -1
  61. package/lib/components/VRangeSlider/VRangeSlider.js +1 -0
  62. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  63. package/lib/components/VSelect/VSelect.js +4 -3
  64. package/lib/components/VSelect/VSelect.js.map +1 -1
  65. package/lib/components/VTimePicker/VTimePicker.js +2 -1
  66. package/lib/components/VTimePicker/VTimePicker.js.map +1 -1
  67. package/lib/components/VTimePicker/VTimePickerTitle.js +6 -2
  68. package/lib/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  69. package/lib/components/VTooltip/VTooltip.js +2 -2
  70. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  71. package/lib/framework.js +1 -1
  72. package/lib/mixins/menuable/index.js +7 -2
  73. package/lib/mixins/menuable/index.js.map +1 -1
  74. package/lib/services/icons/presets/fa4.js +1 -1
  75. package/lib/services/icons/presets/fa4.js.map +1 -1
  76. package/package.json +2 -2
  77. package/src/components/VAutocomplete/VAutocomplete.ts +4 -4
  78. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +11 -0
  79. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +1 -1
  80. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +34 -0
  81. package/src/components/VChip/VChip.ts +1 -0
  82. package/src/components/VChip/__tests__/__snapshots__/VChip.spec.ts.snap +1 -0
  83. package/src/components/VData/VData.ts +6 -1
  84. package/src/components/VDataIterator/VDataIterator.ts +14 -3
  85. package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +26 -0
  86. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +8 -8
  87. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +8 -8
  88. package/src/components/VDataTable/VDataTable.ts +3 -14
  89. package/src/components/VDataTable/VSimpleTable.sass +12 -6
  90. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +119 -0
  91. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +620 -53
  92. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +15 -15
  93. package/src/components/VDialog/VDialog.ts +29 -25
  94. package/src/components/VIcon/VIcon.ts +2 -2
  95. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +2 -2
  96. package/src/components/VList/VList.ts +1 -1
  97. package/src/components/VMenu/VMenu.ts +11 -13
  98. package/src/components/VMenu/__tests__/VMenu.spec.ts +17 -0
  99. package/src/components/VMenu/__tests__/__snapshots__/VMenu.spec.ts.snap +18 -0
  100. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +0 -66
  101. package/src/components/VRangeSlider/VRangeSlider.ts +1 -0
  102. package/src/components/VRangeSlider/__tests__/VRangeSlider.spec.ts +8 -0
  103. package/src/components/VRangeSlider/__tests__/__snapshots__/VRangeSlider.spec.ts.snap +4 -4
  104. package/src/components/VSelect/VSelect.ts +4 -3
  105. package/src/components/VSelect/__tests__/__snapshots__/VSelect.spec.ts.snap +8 -8
  106. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
  107. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +2 -2
  108. package/src/components/VSlideGroup/VSlideGroup.sass +2 -2
  109. package/src/components/VTimePicker/VTimePicker.ts +2 -1
  110. package/src/components/VTimePicker/VTimePickerTitle.sass +5 -0
  111. package/src/components/VTimePicker/VTimePickerTitle.ts +6 -2
  112. package/src/components/VTimePicker/__tests__/__snapshots__/VTimePicker.spec.ts.snap +94 -14
  113. package/src/components/VTooltip/VTooltip.ts +2 -2
  114. package/src/mixins/menuable/index.ts +5 -2
  115. package/src/services/icons/__tests__/__snapshots__/icons.spec.ts.snap +1 -1
  116. package/src/services/icons/presets/fa4.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Detachable,\n Menuable,\n Returnable,\n Toggleable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n this.$refs.content.scrollTop = tile.offsetTop - tile.clientHeight\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, this.showLazyContent(() => [content]))\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: () => { this.isActive = false },\n args: {\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n } as any)\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement(\n 'div',\n options,\n [this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, this.getContentSlot())]\n )\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n this.isActive = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.genTransition(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
1
+ {"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Detachable,\n Menuable,\n Returnable,\n Toggleable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n this.$refs.content.scrollTop = tile.offsetTop - tile.clientHeight\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: () => { this.isActive = false },\n args: {\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n } as any)\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n this.isActive = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
@@ -124,6 +124,7 @@ var _default2 = _VSlider.default.extend({
124
124
  input.data = input.data || {};
125
125
  input.data.attrs = input.data.attrs || {};
126
126
  input.data.attrs.value = _this3.internalValue[i];
127
+ input.data.attrs.id = "input-".concat(i ? 'max' : 'min', "-").concat(_this3._uid);
127
128
  return input;
128
129
  });
129
130
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VRangeSlider/VRangeSlider.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VRangeSlider.sass'\n\n// Components\nimport VSlider from '../VSlider'\n\n// Helpers\nimport {\n createRange,\n deepEqual,\n} from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VSlider.extend({\n name: 'v-range-slider',\n\n props: {\n value: {\n type: Array,\n default: () => ([0, 0]),\n } as unknown as PropValidator<[number, number]>,\n },\n\n data () {\n return {\n activeThumb: null as null | number,\n lazyValue: this.value,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSlider.options.computed.classes.call(this),\n 'v-input--range-slider': true,\n }\n },\n internalValue: {\n get (): number[] {\n return this.lazyValue\n },\n set (val: number[]) {\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n let value = val.map((v = 0) => this.roundValue(Math.min(Math.max(v, this.minValue), this.maxValue)))\n\n // Switch values if range and wrong order\n if (value[0] > value[1] || value[1] < value[0]) {\n if (this.activeThumb !== null) {\n const toFocus = this.activeThumb === 1 ? 0 : 1\n const el = this.$refs[`thumb_${toFocus}`] as HTMLElement\n el.focus()\n }\n value = [value[1], value[0]]\n }\n\n this.lazyValue = value\n if (!deepEqual(value, this.value)) this.$emit('input', value)\n\n this.validate()\n },\n },\n inputWidth (): number[] {\n return this.internalValue.map((v: number) => (\n this.roundValue(v) - this.minValue) / (this.maxValue - this.minValue) * 100\n )\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const styles = VSlider.options.computed.trackFillStyles.call(this)\n const fillPercent = Math.abs(this.inputWidth[0] - this.inputWidth[1])\n const dir = this.vertical ? 'height' : 'width'\n const start = this.vertical ? this.$vuetify.rtl ? 'top' : 'bottom' : this.$vuetify.rtl ? 'right' : 'left'\n\n styles[dir] = `${fillPercent}%`\n styles[start] = `${this.inputWidth[0]}%`\n\n return styles\n },\n },\n\n methods: {\n getTrackStyle (startLength: number, endLength: number, startPadding = 0, endPadding = 0) {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'top' : 'bottom' : this.$vuetify.rtl ? 'right' : 'left'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = `calc(${startLength}% + ${startPadding}px)`\n const end = `calc(${endLength}% + ${endPadding}px)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n getIndexOfClosestValue (arr: number[], v: number) {\n if (Math.abs(arr[0] - v) < Math.abs(arr[1] - v)) return 0\n else return 1\n },\n genInput () {\n return createRange(2).map(i => {\n const input = VSlider.options.methods.genInput.call(this)\n\n input.data = input.data || {}\n input.data.attrs = input.data.attrs || {}\n input.data.attrs.value = this.internalValue[i]\n\n return input\n })\n },\n genTrackContainer () {\n const children = []\n\n if (this.disabled) {\n const disabledPadding = 10\n const sections: [number, number, number, number][] = [\n [0, this.inputWidth[0], 0, -disabledPadding],\n [this.inputWidth[0], Math.abs(this.inputWidth[1] - this.inputWidth[0]), disabledPadding, disabledPadding * -2],\n [this.inputWidth[1], Math.abs(100 - this.inputWidth[1]), disabledPadding, 0],\n ]\n\n if (this.$vuetify.rtl) sections.reverse()\n\n children.push(...sections.map(section => this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.getTrackStyle(...section),\n }))))\n } else {\n children.push(\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.getTrackStyle(0, 100),\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n }))\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genChildren () {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n createRange(2).map(index => {\n const value = this.internalValue[index]\n const onDrag = (e: MouseEvent) => {\n this.isActive = true\n this.activeThumb = index\n this.onThumbMouseDown(e)\n }\n const onFocus = (e: Event) => {\n this.isFocused = true\n this.activeThumb = index\n\n this.$emit('focus', e)\n }\n\n const onBlur = (e: Event) => {\n this.isFocused = false\n this.activeThumb = null\n\n this.$emit('blur', e)\n }\n\n const valueWidth = this.inputWidth[index]\n const isActive = this.isActive && this.activeThumb === index\n const isFocused = this.isFocused && this.activeThumb === index\n\n return this.genThumbContainer(value, valueWidth, isActive, isFocused, onDrag, onFocus, onBlur, `thumb_${index}`)\n }),\n ]\n },\n onSliderClick (e: MouseEvent) {\n if (!this.isActive) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n\n const { value, isInsideTrack } = this.parseMouseMove(e)\n\n if (isInsideTrack) {\n this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value)\n const refName = `thumb_${this.activeThumb}`\n const thumbRef = this.$refs[refName] as HTMLElement\n thumbRef.focus()\n }\n\n this.setInternalValue(value)\n\n this.$emit('change', this.internalValue)\n }\n },\n onMouseMove (e: MouseEvent) {\n const { value, isInsideTrack } = this.parseMouseMove(e)\n\n if (isInsideTrack && this.activeThumb === null) {\n this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value)\n }\n\n this.setInternalValue(value)\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.activeThumb === null) return\n\n const value = this.parseKeyDown(e, this.internalValue[this.activeThumb])\n\n if (value == null) return\n\n this.setInternalValue(value)\n this.$emit('change', this.internalValue)\n },\n setInternalValue (value: number) {\n this.internalValue = this.internalValue.map((v: number, i: number) => {\n if (i === this.activeThumb) return value\n else return Number(v)\n })\n },\n },\n})\n"],"sourceRoot":"","file":"VRangeSlider.js"}
1
+ {"version":3,"sources":["../../../src/components/VRangeSlider/VRangeSlider.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VRangeSlider.sass'\n\n// Components\nimport VSlider from '../VSlider'\n\n// Helpers\nimport {\n createRange,\n deepEqual,\n} from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VSlider.extend({\n name: 'v-range-slider',\n\n props: {\n value: {\n type: Array,\n default: () => ([0, 0]),\n } as unknown as PropValidator<[number, number]>,\n },\n\n data () {\n return {\n activeThumb: null as null | number,\n lazyValue: this.value,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSlider.options.computed.classes.call(this),\n 'v-input--range-slider': true,\n }\n },\n internalValue: {\n get (): number[] {\n return this.lazyValue\n },\n set (val: number[]) {\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n let value = val.map((v = 0) => this.roundValue(Math.min(Math.max(v, this.minValue), this.maxValue)))\n\n // Switch values if range and wrong order\n if (value[0] > value[1] || value[1] < value[0]) {\n if (this.activeThumb !== null) {\n const toFocus = this.activeThumb === 1 ? 0 : 1\n const el = this.$refs[`thumb_${toFocus}`] as HTMLElement\n el.focus()\n }\n value = [value[1], value[0]]\n }\n\n this.lazyValue = value\n if (!deepEqual(value, this.value)) this.$emit('input', value)\n\n this.validate()\n },\n },\n inputWidth (): number[] {\n return this.internalValue.map((v: number) => (\n this.roundValue(v) - this.minValue) / (this.maxValue - this.minValue) * 100\n )\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const styles = VSlider.options.computed.trackFillStyles.call(this)\n const fillPercent = Math.abs(this.inputWidth[0] - this.inputWidth[1])\n const dir = this.vertical ? 'height' : 'width'\n const start = this.vertical ? this.$vuetify.rtl ? 'top' : 'bottom' : this.$vuetify.rtl ? 'right' : 'left'\n\n styles[dir] = `${fillPercent}%`\n styles[start] = `${this.inputWidth[0]}%`\n\n return styles\n },\n },\n\n methods: {\n getTrackStyle (startLength: number, endLength: number, startPadding = 0, endPadding = 0) {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'top' : 'bottom' : this.$vuetify.rtl ? 'right' : 'left'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = `calc(${startLength}% + ${startPadding}px)`\n const end = `calc(${endLength}% + ${endPadding}px)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n getIndexOfClosestValue (arr: number[], v: number) {\n if (Math.abs(arr[0] - v) < Math.abs(arr[1] - v)) return 0\n else return 1\n },\n genInput () {\n return createRange(2).map(i => {\n const input = VSlider.options.methods.genInput.call(this)\n\n input.data = input.data || {}\n input.data.attrs = input.data.attrs || {}\n input.data.attrs.value = this.internalValue[i]\n input.data.attrs.id = `input-${i ? 'max' : 'min'}-${this._uid}`\n\n return input\n })\n },\n genTrackContainer () {\n const children = []\n\n if (this.disabled) {\n const disabledPadding = 10\n const sections: [number, number, number, number][] = [\n [0, this.inputWidth[0], 0, -disabledPadding],\n [this.inputWidth[0], Math.abs(this.inputWidth[1] - this.inputWidth[0]), disabledPadding, disabledPadding * -2],\n [this.inputWidth[1], Math.abs(100 - this.inputWidth[1]), disabledPadding, 0],\n ]\n\n if (this.$vuetify.rtl) sections.reverse()\n\n children.push(...sections.map(section => this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.getTrackStyle(...section),\n }))))\n } else {\n children.push(\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.getTrackStyle(0, 100),\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n }))\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genChildren () {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n createRange(2).map(index => {\n const value = this.internalValue[index]\n const onDrag = (e: MouseEvent) => {\n this.isActive = true\n this.activeThumb = index\n this.onThumbMouseDown(e)\n }\n const onFocus = (e: Event) => {\n this.isFocused = true\n this.activeThumb = index\n\n this.$emit('focus', e)\n }\n\n const onBlur = (e: Event) => {\n this.isFocused = false\n this.activeThumb = null\n\n this.$emit('blur', e)\n }\n\n const valueWidth = this.inputWidth[index]\n const isActive = this.isActive && this.activeThumb === index\n const isFocused = this.isFocused && this.activeThumb === index\n\n return this.genThumbContainer(value, valueWidth, isActive, isFocused, onDrag, onFocus, onBlur, `thumb_${index}`)\n }),\n ]\n },\n onSliderClick (e: MouseEvent) {\n if (!this.isActive) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n\n const { value, isInsideTrack } = this.parseMouseMove(e)\n\n if (isInsideTrack) {\n this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value)\n const refName = `thumb_${this.activeThumb}`\n const thumbRef = this.$refs[refName] as HTMLElement\n thumbRef.focus()\n }\n\n this.setInternalValue(value)\n\n this.$emit('change', this.internalValue)\n }\n },\n onMouseMove (e: MouseEvent) {\n const { value, isInsideTrack } = this.parseMouseMove(e)\n\n if (isInsideTrack && this.activeThumb === null) {\n this.activeThumb = this.getIndexOfClosestValue(this.internalValue, value)\n }\n\n this.setInternalValue(value)\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.activeThumb === null) return\n\n const value = this.parseKeyDown(e, this.internalValue[this.activeThumb])\n\n if (value == null) return\n\n this.setInternalValue(value)\n this.$emit('change', this.internalValue)\n },\n setInternalValue (value: number) {\n this.internalValue = this.internalValue.map((v: number, i: number) => {\n if (i === this.activeThumb) return value\n else return Number(v)\n })\n },\n },\n})\n"],"sourceRoot":"","file":"VRangeSlider.js"}
@@ -294,8 +294,9 @@ var _default2 = baseMixins.extend().extend({
294
294
  },
295
295
  closeConditional: function closeConditional(e) {
296
296
  if (!this.isMenuActive) return true;
297
- return !this._isDestroyed && // Click originates from outside the menu content
298
- this.getContent() && !this.getContent().contains(e.target) && // Click originates from outside the element
297
+ return !this._isDestroyed && ( // Click originates from outside the menu content
298
+ // Multiple selects don't close when an item is clicked
299
+ !this.getContent() || !this.getContent().contains(e.target)) && // Click originates from outside the element
299
300
  this.$el && !this.$el.contains(e.target) && e.target !== this.$el;
300
301
  },
301
302
  filterDuplicates: function filterDuplicates(arr) {
@@ -405,7 +406,7 @@ var _default2 = baseMixins.extend().extend({
405
406
  readonly: true,
406
407
  type: 'text',
407
408
  'aria-readonly': String(this.readonly),
408
- 'aria-activedescendant': (0, _helpers.getObjectValueByPath)(this.$refs.menu, 'activeTile.id', undefined),
409
+ 'aria-activedescendant': (0, _helpers.getObjectValueByPath)(this.$refs.menu, 'activeTile.id'),
409
410
  autocomplete: (0, _helpers.getObjectValueByPath)(input.data, 'attrs.autocomplete', 'off')
410
411
  },
411
412
  on: {
@@ -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 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 { SelectItemKey } from '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 Filterable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n menu: InstanceType<typeof VMenu>\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 },\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: this.blur,\n args: {\n closeConditional: this.closeConditional,\n },\n } as VNodeDirective] : 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 menuIsBooted () {\n window.setTimeout(() => {\n if (this.getContent() && this.getContent().addEventListener) {\n this.getContent().addEventListener('scroll', this.onScroll, false)\n }\n })\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n\n if (!val) return\n\n this.menuIsBooted = true\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.disabled ||\n this.readonly ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : undefined)\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 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 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.disabled ||\n this.readonly ||\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.disabled ||\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.readonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id', undefined),\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 },\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.disabled || this.readonly,\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.isDisabled) 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 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.readonly ||\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.setValue(this.returnObject ? item : this.getValue(item))\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\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 and down 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].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 if (\n this.hasMouseDown &&\n e.which !== 3 &&\n !this.isDisabled\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 // If user is clicking in the container\n // and field is enclosed, activate it\n } else if (this.isEnclosed) {\n this.isMenuActive = true\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 keyCodes.up === keyCode ? menu.prevTile() : menu.nextTile()\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 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 { SelectItemKey } from '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 Filterable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n menu: InstanceType<typeof VMenu>\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 },\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: this.blur,\n args: {\n closeConditional: this.closeConditional,\n },\n } as VNodeDirective] : 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 menuIsBooted () {\n window.setTimeout(() => {\n if (this.getContent() && this.getContent().addEventListener) {\n this.getContent().addEventListener('scroll', this.onScroll, false)\n }\n })\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n\n if (!val) return\n\n this.menuIsBooted = true\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.disabled ||\n this.readonly ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : undefined)\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 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.disabled ||\n this.readonly ||\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.disabled ||\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.readonly),\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 },\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.disabled || this.readonly,\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.isDisabled) 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 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.readonly ||\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.setValue(this.returnObject ? item : this.getValue(item))\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\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 and down 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].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 if (\n this.hasMouseDown &&\n e.which !== 3 &&\n !this.isDisabled\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 // If user is clicking in the container\n // and field is enclosed, activate it\n } else if (this.isEnclosed) {\n this.isMenuActive = true\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 keyCodes.up === keyCode ? menu.prevTile() : menu.nextTile()\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"}
@@ -353,7 +353,8 @@ var _default = (0, _mixins.default)(_picker.default, _pickerButton.default
353
353
 
354
354
  return this.$createElement(_VTimePickerTitle.default, {
355
355
  props: {
356
- ampm: this.ampmInTitle && this.isAmPm,
356
+ ampm: this.isAmPm,
357
+ ampmReadonly: this.isAmPm && !this.ampmInTitle,
357
358
  disabled: this.disabled,
358
359
  hour: this.inputHour,
359
360
  minute: this.inputMinute,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VTimePicker/VTimePicker.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VTimePickerTitle from './VTimePickerTitle'\nimport VTimePickerClock from './VTimePickerClock'\n\n// Mixins\nimport Picker from '../../mixins/picker'\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { createRange } from '../../util/helpers'\nimport pad from '../VDatePicker/util/pad'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\nconst selectingNames = { 1: 'hour', 2: 'minute', 3: 'second' }\nexport { SelectingTimes }\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nexport default mixins(\n Picker,\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker',\n\n props: {\n allowedHours: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedMinutes: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedSeconds: [Function, Array] as PropType<AllowFunction | number[]>,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n validator (val) {\n return ['ampm', '24hr'].includes(val)\n },\n },\n min: String,\n max: String,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n value: null as any as PropType<any>,\n ampmInTitle: Boolean,\n },\n\n data () {\n return {\n inputHour: null as number | null,\n inputMinute: null as number | null,\n inputSecond: null as number | null,\n lazyInputHour: null as number | null,\n lazyInputMinute: null as number | null,\n lazyInputSecond: null as number | null,\n period: 'am' as Period,\n selecting: SelectingTimes.Hour,\n }\n },\n\n computed: {\n selectingHour: {\n get (): boolean {\n return this.selecting === SelectingTimes.Hour\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Hour\n },\n },\n selectingMinute: {\n get (): boolean {\n return this.selecting === SelectingTimes.Minute\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Minute\n },\n },\n selectingSecond: {\n get (): boolean {\n return this.selecting === SelectingTimes.Second\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Second\n },\n },\n isAllowedHourCb (): AllowFunction {\n let cb: AllowFunction\n\n if (this.allowedHours instanceof Array) {\n cb = (val: number) => (this.allowedHours as number[]).includes(val)\n } else {\n cb = this.allowedHours\n }\n\n if (!this.min && !this.max) return cb\n\n const minHour = this.min ? Number(this.min.split(':')[0]) : 0\n const maxHour = this.max ? Number(this.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= minHour * 1 &&\n val <= maxHour * 1 &&\n (!cb || cb(val))\n }\n },\n isAllowedMinuteCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n if (this.allowedMinutes instanceof Array) {\n cb = (val: number) => (this.allowedMinutes as number[]).includes(val)\n } else {\n cb = this.allowedMinutes\n }\n\n if (!this.min && !this.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = this.min ? this.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = this.max ? this.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + minMinute * 1\n const maxTime = maxHour * 60 + maxMinute * 1\n\n return (val: number) => {\n const time = 60 * this.inputHour! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n },\n isAllowedSecondCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n const isMinuteAllowed = isHourAllowed &&\n (!this.isAllowedMinuteCb ||\n this.inputMinute === null ||\n this.isAllowedMinuteCb(this.inputMinute)\n )\n\n if (this.allowedSeconds instanceof Array) {\n cb = (val: number) => (this.allowedSeconds as number[]).includes(val)\n } else {\n cb = this.allowedSeconds\n }\n\n if (!this.min && !this.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = this.min ? this.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = this.max ? this.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1\n const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1\n\n return (val: number) => {\n const time = 3600 * this.inputHour! + 60 * this.inputMinute! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n },\n isAmPm (): boolean {\n return this.format === 'ampm'\n },\n },\n\n watch: {\n value: 'setInputData',\n },\n\n mounted () {\n this.setInputData(this.value)\n this.$on('update:period', this.setPeriod)\n },\n\n methods: {\n genValue () {\n if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) {\n return `${pad(this.inputHour)}:${pad(this.inputMinute)}` + (this.useSeconds ? `:${pad(this.inputSecond!)}` : '')\n }\n\n return null\n },\n emitValue () {\n const value = this.genValue()\n if (value !== null) this.$emit('input', value)\n },\n setPeriod (period: Period) {\n this.period = period\n if (this.inputHour != null) {\n const newHour = this.inputHour! + (period === 'am' ? -12 : 12)\n this.inputHour = this.firstAllowed('hour', newHour)\n this.emitValue()\n }\n },\n setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n this.inputHour = null\n this.inputMinute = null\n this.inputSecond = null\n } else if (value instanceof Date) {\n this.inputHour = value.getHours()\n this.inputMinute = value.getMinutes()\n this.inputSecond = value.getSeconds()\n } else {\n const [, hour, minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n this.inputMinute = parseInt(minute, 10)\n this.inputSecond = parseInt(second || 0, 10)\n }\n\n this.period = (this.inputHour == null || this.inputHour < 12) ? 'am' : 'pm'\n },\n convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n },\n convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n },\n onInput (value: number) {\n if (this.selecting === SelectingTimes.Hour) {\n this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value\n } else if (this.selecting === SelectingTimes.Minute) {\n this.inputMinute = value\n } else {\n this.inputSecond = value\n }\n this.emitValue()\n },\n onChange (value: number) {\n this.$emit(`click:${selectingNames[this.selecting]}`, value)\n\n const emitChange = this.selecting === (this.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute)\n\n if (this.selecting === SelectingTimes.Hour) {\n this.selecting = SelectingTimes.Minute\n } else if (this.useSeconds && this.selecting === SelectingTimes.Minute) {\n this.selecting = SelectingTimes.Second\n }\n\n if (this.inputHour === this.lazyInputHour &&\n this.inputMinute === this.lazyInputMinute &&\n (!this.useSeconds || this.inputSecond === this.lazyInputSecond)\n ) return\n\n const time = this.genValue()\n if (time === null) return\n\n this.lazyInputHour = this.inputHour\n this.lazyInputMinute = this.inputMinute\n this.useSeconds && (this.lazyInputSecond = this.inputSecond)\n\n emitChange && this.$emit('change', time)\n },\n firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? this.isAllowedHourCb : (type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb)\n if (!allowedFn) return value\n\n // TODO: clean up\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (this.isAmPm\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n },\n genClock () {\n return this.$createElement(VTimePickerClock, {\n props: {\n allowedValues:\n this.selecting === SelectingTimes.Hour\n ? this.isAllowedHourCb\n : (this.selecting === SelectingTimes.Minute\n ? this.isAllowedMinuteCb\n : this.isAllowedSecondCb),\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n double: this.selecting === SelectingTimes.Hour && !this.isAmPm,\n format: this.selecting === SelectingTimes.Hour\n ? (this.isAmPm ? this.convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2),\n light: this.light,\n max: this.selecting === SelectingTimes.Hour ? (this.isAmPm && this.period === 'am' ? 11 : 23) : 59,\n min: this.selecting === SelectingTimes.Hour && this.isAmPm && this.period === 'pm' ? 12 : 0,\n readonly: this.readonly,\n scrollable: this.scrollable,\n size: Number(this.width) - ((!this.fullWidth && this.landscape) ? 80 : 20),\n step: this.selecting === SelectingTimes.Hour ? 1 : 5,\n value: this.selecting === SelectingTimes.Hour\n ? this.inputHour\n : (this.selecting === SelectingTimes.Minute\n ? this.inputMinute\n : this.inputSecond),\n },\n on: {\n input: this.onInput,\n change: this.onChange,\n },\n ref: 'clock',\n })\n },\n genClockAmPm () {\n return this.$createElement('div', this.setTextColor(this.color || 'primary', {\n staticClass: 'v-time-picker-clock__ampm',\n }), [\n this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly),\n this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly),\n ])\n },\n genPickerBody () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-clock__container',\n key: this.selecting,\n }, [\n !this.ampmInTitle && this.isAmPm && this.genClockAmPm(),\n this.genClock(),\n ])\n },\n genPickerTitle () {\n return this.$createElement(VTimePickerTitle, {\n props: {\n ampm: this.ampmInTitle && this.isAmPm,\n disabled: this.disabled,\n hour: this.inputHour,\n minute: this.inputMinute,\n second: this.inputSecond,\n period: this.period,\n readonly: this.readonly,\n useSeconds: this.useSeconds,\n selecting: this.selecting,\n },\n on: {\n 'update:selecting': (value: 1 | 2 | 3) => (this.selecting = value),\n 'update:period': (period: string) => this.$emit('update:period', period),\n },\n ref: 'title',\n slot: 'title',\n })\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--time')\n },\n})\n"],"sourceRoot":"","file":"VTimePicker.js"}
1
+ {"version":3,"sources":["../../../src/components/VTimePicker/VTimePicker.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VTimePickerTitle from './VTimePickerTitle'\nimport VTimePickerClock from './VTimePickerClock'\n\n// Mixins\nimport Picker from '../../mixins/picker'\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { createRange } from '../../util/helpers'\nimport pad from '../VDatePicker/util/pad'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\nconst selectingNames = { 1: 'hour', 2: 'minute', 3: 'second' }\nexport { SelectingTimes }\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nexport default mixins(\n Picker,\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker',\n\n props: {\n allowedHours: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedMinutes: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedSeconds: [Function, Array] as PropType<AllowFunction | number[]>,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n validator (val) {\n return ['ampm', '24hr'].includes(val)\n },\n },\n min: String,\n max: String,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n value: null as any as PropType<any>,\n ampmInTitle: Boolean,\n },\n\n data () {\n return {\n inputHour: null as number | null,\n inputMinute: null as number | null,\n inputSecond: null as number | null,\n lazyInputHour: null as number | null,\n lazyInputMinute: null as number | null,\n lazyInputSecond: null as number | null,\n period: 'am' as Period,\n selecting: SelectingTimes.Hour,\n }\n },\n\n computed: {\n selectingHour: {\n get (): boolean {\n return this.selecting === SelectingTimes.Hour\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Hour\n },\n },\n selectingMinute: {\n get (): boolean {\n return this.selecting === SelectingTimes.Minute\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Minute\n },\n },\n selectingSecond: {\n get (): boolean {\n return this.selecting === SelectingTimes.Second\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Second\n },\n },\n isAllowedHourCb (): AllowFunction {\n let cb: AllowFunction\n\n if (this.allowedHours instanceof Array) {\n cb = (val: number) => (this.allowedHours as number[]).includes(val)\n } else {\n cb = this.allowedHours\n }\n\n if (!this.min && !this.max) return cb\n\n const minHour = this.min ? Number(this.min.split(':')[0]) : 0\n const maxHour = this.max ? Number(this.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= minHour * 1 &&\n val <= maxHour * 1 &&\n (!cb || cb(val))\n }\n },\n isAllowedMinuteCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n if (this.allowedMinutes instanceof Array) {\n cb = (val: number) => (this.allowedMinutes as number[]).includes(val)\n } else {\n cb = this.allowedMinutes\n }\n\n if (!this.min && !this.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = this.min ? this.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = this.max ? this.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + minMinute * 1\n const maxTime = maxHour * 60 + maxMinute * 1\n\n return (val: number) => {\n const time = 60 * this.inputHour! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n },\n isAllowedSecondCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n const isMinuteAllowed = isHourAllowed &&\n (!this.isAllowedMinuteCb ||\n this.inputMinute === null ||\n this.isAllowedMinuteCb(this.inputMinute)\n )\n\n if (this.allowedSeconds instanceof Array) {\n cb = (val: number) => (this.allowedSeconds as number[]).includes(val)\n } else {\n cb = this.allowedSeconds\n }\n\n if (!this.min && !this.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = this.min ? this.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = this.max ? this.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1\n const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1\n\n return (val: number) => {\n const time = 3600 * this.inputHour! + 60 * this.inputMinute! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n },\n isAmPm (): boolean {\n return this.format === 'ampm'\n },\n },\n\n watch: {\n value: 'setInputData',\n },\n\n mounted () {\n this.setInputData(this.value)\n this.$on('update:period', this.setPeriod)\n },\n\n methods: {\n genValue () {\n if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) {\n return `${pad(this.inputHour)}:${pad(this.inputMinute)}` + (this.useSeconds ? `:${pad(this.inputSecond!)}` : '')\n }\n\n return null\n },\n emitValue () {\n const value = this.genValue()\n if (value !== null) this.$emit('input', value)\n },\n setPeriod (period: Period) {\n this.period = period\n if (this.inputHour != null) {\n const newHour = this.inputHour! + (period === 'am' ? -12 : 12)\n this.inputHour = this.firstAllowed('hour', newHour)\n this.emitValue()\n }\n },\n setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n this.inputHour = null\n this.inputMinute = null\n this.inputSecond = null\n } else if (value instanceof Date) {\n this.inputHour = value.getHours()\n this.inputMinute = value.getMinutes()\n this.inputSecond = value.getSeconds()\n } else {\n const [, hour, minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n this.inputMinute = parseInt(minute, 10)\n this.inputSecond = parseInt(second || 0, 10)\n }\n\n this.period = (this.inputHour == null || this.inputHour < 12) ? 'am' : 'pm'\n },\n convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n },\n convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n },\n onInput (value: number) {\n if (this.selecting === SelectingTimes.Hour) {\n this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value\n } else if (this.selecting === SelectingTimes.Minute) {\n this.inputMinute = value\n } else {\n this.inputSecond = value\n }\n this.emitValue()\n },\n onChange (value: number) {\n this.$emit(`click:${selectingNames[this.selecting]}`, value)\n\n const emitChange = this.selecting === (this.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute)\n\n if (this.selecting === SelectingTimes.Hour) {\n this.selecting = SelectingTimes.Minute\n } else if (this.useSeconds && this.selecting === SelectingTimes.Minute) {\n this.selecting = SelectingTimes.Second\n }\n\n if (this.inputHour === this.lazyInputHour &&\n this.inputMinute === this.lazyInputMinute &&\n (!this.useSeconds || this.inputSecond === this.lazyInputSecond)\n ) return\n\n const time = this.genValue()\n if (time === null) return\n\n this.lazyInputHour = this.inputHour\n this.lazyInputMinute = this.inputMinute\n this.useSeconds && (this.lazyInputSecond = this.inputSecond)\n\n emitChange && this.$emit('change', time)\n },\n firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? this.isAllowedHourCb : (type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb)\n if (!allowedFn) return value\n\n // TODO: clean up\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (this.isAmPm\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n },\n genClock () {\n return this.$createElement(VTimePickerClock, {\n props: {\n allowedValues:\n this.selecting === SelectingTimes.Hour\n ? this.isAllowedHourCb\n : (this.selecting === SelectingTimes.Minute\n ? this.isAllowedMinuteCb\n : this.isAllowedSecondCb),\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n double: this.selecting === SelectingTimes.Hour && !this.isAmPm,\n format: this.selecting === SelectingTimes.Hour\n ? (this.isAmPm ? this.convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2),\n light: this.light,\n max: this.selecting === SelectingTimes.Hour ? (this.isAmPm && this.period === 'am' ? 11 : 23) : 59,\n min: this.selecting === SelectingTimes.Hour && this.isAmPm && this.period === 'pm' ? 12 : 0,\n readonly: this.readonly,\n scrollable: this.scrollable,\n size: Number(this.width) - ((!this.fullWidth && this.landscape) ? 80 : 20),\n step: this.selecting === SelectingTimes.Hour ? 1 : 5,\n value: this.selecting === SelectingTimes.Hour\n ? this.inputHour\n : (this.selecting === SelectingTimes.Minute\n ? this.inputMinute\n : this.inputSecond),\n },\n on: {\n input: this.onInput,\n change: this.onChange,\n },\n ref: 'clock',\n })\n },\n genClockAmPm () {\n return this.$createElement('div', this.setTextColor(this.color || 'primary', {\n staticClass: 'v-time-picker-clock__ampm',\n }), [\n this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly),\n this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly),\n ])\n },\n genPickerBody () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-clock__container',\n key: this.selecting,\n }, [\n !this.ampmInTitle && this.isAmPm && this.genClockAmPm(),\n this.genClock(),\n ])\n },\n genPickerTitle () {\n return this.$createElement(VTimePickerTitle, {\n props: {\n ampm: this.isAmPm,\n ampmReadonly: this.isAmPm && !this.ampmInTitle,\n disabled: this.disabled,\n hour: this.inputHour,\n minute: this.inputMinute,\n second: this.inputSecond,\n period: this.period,\n readonly: this.readonly,\n useSeconds: this.useSeconds,\n selecting: this.selecting,\n },\n on: {\n 'update:selecting': (value: 1 | 2 | 3) => (this.selecting = value),\n 'update:period': (period: string) => this.$emit('update:period', period),\n },\n ref: 'title',\n slot: 'title',\n })\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--time')\n },\n})\n"],"sourceRoot":"","file":"VTimePicker.js"}