vuetify 2.5.13 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/json/attributes.json +188 -0
  2. package/dist/json/tags.json +86 -20
  3. package/dist/json/web-types.json +697 -139
  4. package/dist/vuetify.css +136 -5
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +927 -304
  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 +1 -0
  11. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  12. package/es5/components/VBanner/VBanner.js +3 -2
  13. package/es5/components/VBanner/VBanner.js.map +1 -1
  14. package/es5/components/VBottomSheet/VBottomSheet.js +1 -4
  15. package/es5/components/VBottomSheet/VBottomSheet.js.map +1 -1
  16. package/es5/components/VCalendar/VCalendar.js +2 -2
  17. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  18. package/es5/components/VCalendar/VCalendarDaily.js +16 -8
  19. package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
  20. package/es5/components/VCalendar/VCalendarWeekly.js +14 -10
  21. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  22. package/es5/components/VCalendar/mixins/calendar-with-events.js +19 -20
  23. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  24. package/es5/components/VCalendar/mixins/mouse.js +13 -4
  25. package/es5/components/VCalendar/mixins/mouse.js.map +1 -1
  26. package/es5/components/VDataTable/MobileRow.js +2 -2
  27. package/es5/components/VDataTable/MobileRow.js.map +1 -1
  28. package/es5/components/VDataTable/Row.js +25 -9
  29. package/es5/components/VDataTable/Row.js.map +1 -1
  30. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  31. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  32. package/es5/components/VDatePicker/mixins/date-picker-table.js +13 -3
  33. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  34. package/es5/components/VDialog/VDialog.js +4 -10
  35. package/es5/components/VDialog/VDialog.js.map +1 -1
  36. package/es5/components/VInput/VInput.js +3 -1
  37. package/es5/components/VInput/VInput.js.map +1 -1
  38. package/es5/components/VItemGroup/VItemGroup.js +8 -4
  39. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  40. package/es5/components/VMenu/VMenu.js +1 -1
  41. package/es5/components/VMenu/VMenu.js.map +1 -1
  42. package/es5/components/VOtpInput/VOtpInput.js +375 -0
  43. package/es5/components/VOtpInput/VOtpInput.js.map +1 -0
  44. package/es5/components/VOtpInput/index.js +20 -0
  45. package/es5/components/VOtpInput/index.js.map +1 -0
  46. package/es5/components/VRadioGroup/VRadioGroup.js +1 -3
  47. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  48. package/es5/components/VSlideGroup/VSlideGroup.js +8 -1
  49. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  50. package/es5/components/VSnackbar/VSnackbar.js +4 -8
  51. package/es5/components/VSnackbar/VSnackbar.js.map +1 -1
  52. package/es5/components/VTabs/VTab.js +3 -2
  53. package/es5/components/VTabs/VTab.js.map +1 -1
  54. package/es5/components/VTextField/VTextField.js +6 -1
  55. package/es5/components/VTextField/VTextField.js.map +1 -1
  56. package/es5/components/VTooltip/VTooltip.js +0 -1
  57. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  58. package/es5/components/VTreeview/VTreeview.js +2 -1
  59. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  60. package/es5/components/VTreeview/VTreeviewNode.js +3 -1
  61. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  62. package/es5/components/index.js +13 -0
  63. package/es5/components/index.js.map +1 -1
  64. package/es5/directives/click-outside/index.js +3 -1
  65. package/es5/directives/click-outside/index.js.map +1 -1
  66. package/es5/directives/intersect/index.js +8 -5
  67. package/es5/directives/intersect/index.js.map +1 -1
  68. package/es5/directives/mutate/index.js +3 -2
  69. package/es5/directives/mutate/index.js.map +1 -1
  70. package/es5/directives/resize/index.js +3 -1
  71. package/es5/directives/resize/index.js.map +1 -1
  72. package/es5/directives/ripple/index.js +0 -7
  73. package/es5/directives/ripple/index.js.map +1 -1
  74. package/es5/directives/scroll/index.js.map +1 -1
  75. package/es5/framework.js +1 -1
  76. package/es5/locale/da.js +77 -0
  77. package/es5/locale/da.js.map +1 -0
  78. package/es5/locale/index.js +8 -0
  79. package/es5/locale/index.js.map +1 -1
  80. package/es5/locale/it.js +6 -6
  81. package/es5/locale/it.js.map +1 -1
  82. package/es5/mixins/intersectable/index.js +6 -0
  83. package/es5/mixins/intersectable/index.js.map +1 -1
  84. package/es5/mixins/routable/index.js +2 -5
  85. package/es5/mixins/routable/index.js.map +1 -1
  86. package/es5/util/helpers.js +13 -6
  87. package/es5/util/helpers.js.map +1 -1
  88. package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
  89. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  90. package/lib/components/VBanner/VBanner.js +3 -2
  91. package/lib/components/VBanner/VBanner.js.map +1 -1
  92. package/lib/components/VBottomSheet/VBottomSheet.js +1 -4
  93. package/lib/components/VBottomSheet/VBottomSheet.js.map +1 -1
  94. package/lib/components/VCalendar/VCalendar.js +2 -2
  95. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  96. package/lib/components/VCalendar/VCalendarDaily.js +20 -8
  97. package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
  98. package/lib/components/VCalendar/VCalendarWeekly.js +10 -2
  99. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  100. package/lib/components/VCalendar/mixins/calendar-with-events.js +6 -3
  101. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  102. package/lib/components/VCalendar/mixins/mouse.js +9 -4
  103. package/lib/components/VCalendar/mixins/mouse.js.map +1 -1
  104. package/lib/components/VDataTable/MobileRow.js +2 -2
  105. package/lib/components/VDataTable/MobileRow.js.map +1 -1
  106. package/lib/components/VDataTable/Row.js +15 -8
  107. package/lib/components/VDataTable/Row.js.map +1 -1
  108. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  109. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  110. package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -2
  111. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  112. package/lib/components/VDialog/VDialog.js +4 -10
  113. package/lib/components/VDialog/VDialog.js.map +1 -1
  114. package/lib/components/VInput/VInput.js +2 -0
  115. package/lib/components/VInput/VInput.js.map +1 -1
  116. package/lib/components/VItemGroup/VItemGroup.js +7 -5
  117. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  118. package/lib/components/VMenu/VMenu.js +1 -1
  119. package/lib/components/VMenu/VMenu.js.map +1 -1
  120. package/lib/components/VOtpInput/VOtpInput.js +342 -0
  121. package/lib/components/VOtpInput/VOtpInput.js.map +1 -0
  122. package/lib/components/VOtpInput/index.js +4 -0
  123. package/lib/components/VOtpInput/index.js.map +1 -0
  124. package/lib/components/VRadioGroup/VRadioGroup.js +2 -4
  125. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  126. package/lib/components/VSlideGroup/VSlideGroup.js +9 -1
  127. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  128. package/lib/components/VSnackbar/VSnackbar.js +4 -8
  129. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  130. package/lib/components/VTabs/VTab.js +3 -2
  131. package/lib/components/VTabs/VTab.js.map +1 -1
  132. package/lib/components/VTextField/VTextField.js +8 -1
  133. package/lib/components/VTextField/VTextField.js.map +1 -1
  134. package/lib/components/VTooltip/VTooltip.js +0 -1
  135. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  136. package/lib/components/VTreeview/VTreeview.js +2 -1
  137. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  138. package/lib/components/VTreeview/VTreeviewNode.js +3 -1
  139. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  140. package/lib/components/index.js +1 -0
  141. package/lib/components/index.js.map +1 -1
  142. package/lib/directives/click-outside/index.js +3 -1
  143. package/lib/directives/click-outside/index.js.map +1 -1
  144. package/lib/directives/intersect/index.js +7 -5
  145. package/lib/directives/intersect/index.js.map +1 -1
  146. package/lib/directives/mutate/index.js +3 -2
  147. package/lib/directives/mutate/index.js.map +1 -1
  148. package/lib/directives/resize/index.js +3 -1
  149. package/lib/directives/resize/index.js.map +1 -1
  150. package/lib/directives/ripple/index.js +0 -7
  151. package/lib/directives/ripple/index.js.map +1 -1
  152. package/lib/directives/scroll/index.js.map +1 -1
  153. package/lib/framework.js +1 -1
  154. package/lib/locale/da.js +70 -0
  155. package/lib/locale/da.js.map +1 -0
  156. package/lib/locale/index.js +1 -0
  157. package/lib/locale/index.js.map +1 -1
  158. package/lib/locale/it.js +6 -6
  159. package/lib/locale/it.js.map +1 -1
  160. package/lib/mixins/intersectable/index.js +4 -0
  161. package/lib/mixins/intersectable/index.js.map +1 -1
  162. package/lib/mixins/routable/index.js +3 -5
  163. package/lib/mixins/routable/index.js.map +1 -1
  164. package/lib/util/helpers.js +13 -6
  165. package/lib/util/helpers.js.map +1 -1
  166. package/package.json +2 -2
  167. package/src/components/VAutocomplete/VAutocomplete.ts +2 -0
  168. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +16 -0
  169. package/src/components/VBanner/VBanner.ts +16 -10
  170. package/src/components/VBottomSheet/VBottomSheet.ts +1 -4
  171. package/src/components/VCalendar/VCalendar.ts +3 -2
  172. package/src/components/VCalendar/VCalendarCategory.sass +67 -0
  173. package/src/components/VCalendar/VCalendarDaily.ts +9 -8
  174. package/src/components/VCalendar/VCalendarWeekly.ts +4 -2
  175. package/src/components/VCalendar/_variables.scss +4 -0
  176. package/src/components/VCalendar/mixins/calendar-with-events.ts +4 -3
  177. package/src/components/VCalendar/mixins/mouse.ts +10 -4
  178. package/src/components/VDataTable/MobileRow.ts +2 -2
  179. package/src/components/VDataTable/Row.ts +23 -16
  180. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
  181. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +16 -0
  182. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +16 -0
  183. package/src/components/VDatePicker/mixins/date-picker-table.ts +24 -2
  184. package/src/components/VDialog/VDialog.ts +4 -10
  185. package/src/components/VInput/VInput.sass +8 -0
  186. package/src/components/VInput/VInput.ts +2 -0
  187. package/src/components/VItemGroup/VItemGroup.ts +5 -3
  188. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +19 -2
  189. package/src/components/VMenu/VMenu.ts +1 -1
  190. package/src/components/VOtpInput/VOtpInput.sass +37 -0
  191. package/src/components/VOtpInput/VOtpInput.ts +322 -0
  192. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +294 -0
  193. package/src/components/VOtpInput/_variables.scss +4 -0
  194. package/src/components/VOtpInput/index.ts +4 -0
  195. package/src/components/VRadioGroup/VRadioGroup.ts +0 -4
  196. package/src/components/VSlideGroup/VSlideGroup.ts +14 -1
  197. package/src/components/VSnackbar/VSnackbar.ts +3 -7
  198. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +4 -1
  199. package/src/components/VStepper/VStepper.sass +4 -4
  200. package/src/components/VTabs/VTab.ts +10 -2
  201. package/src/components/VTextField/VTextField.ts +8 -3
  202. package/src/components/VTooltip/VTooltip.sass +4 -1
  203. package/src/components/VTooltip/VTooltip.ts +0 -1
  204. package/src/components/VTooltip/_variables.scss +1 -0
  205. package/src/components/VTreeview/VTreeview.ts +2 -1
  206. package/src/components/VTreeview/VTreeviewNode.ts +3 -1
  207. package/src/components/index.ts +1 -0
  208. package/src/directives/click-outside/index.ts +2 -2
  209. package/src/directives/intersect/index.ts +6 -5
  210. package/src/directives/mutate/index.ts +2 -3
  211. package/src/directives/resize/index.ts +2 -2
  212. package/src/directives/ripple/VRipple.sass +4 -1
  213. package/src/directives/ripple/index.ts +0 -7
  214. package/src/directives/scroll/index.ts +1 -1
  215. package/src/globals.d.ts +5 -5
  216. package/src/locale/da.ts +69 -0
  217. package/src/locale/index.ts +1 -0
  218. package/src/locale/it.ts +6 -6
  219. package/src/mixins/intersectable/index.ts +6 -0
  220. package/src/mixins/routable/index.ts +1 -4
  221. package/src/styles/settings/_variables.scss +4 -3
  222. package/src/util/__tests__/__snapshots__/helpers.spec.ts.snap +11 -0
  223. package/src/util/__tests__/helpers.spec.ts +17 -0
  224. package/src/util/helpers.ts +14 -7
  225. package/src/directives/ripple/_variables.scss +0 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VTreeview/VTreeview.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VTreeview.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\n// Components\nimport VTreeviewNode, { VTreeviewNodeProps } from './VTreeviewNode'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utils\nimport {\n arrayDiff,\n deepEqual,\n getObjectValueByPath,\n} from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport {\n filterTreeItems,\n filterTreeItem,\n} from './util/filterTreeItems'\n\ntype VTreeviewNodeInstance = InstanceType<typeof VTreeviewNode>\n\ntype NodeCache = Set<string | number>\ntype NodeArray = (string | number)[]\n\ntype NodeState = {\n parent: number | string | null\n children: (number | string)[]\n vnode: VTreeviewNodeInstance | null\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n isOpen: boolean\n item: any\n}\n\nexport default mixins(\n RegistrableProvide('treeview'),\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-treeview',\n\n provide (): object {\n return { treeview: this }\n },\n\n props: {\n active: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n dense: Boolean,\n filter: Function as PropType<TreeviewItemFunction>,\n hoverable: Boolean,\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator<any[]>,\n multipleActive: Boolean,\n open: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n openAll: Boolean,\n returnObject: {\n type: Boolean,\n default: false, // TODO: Should be true in next major\n },\n search: String,\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n level: -1,\n activeCache: new Set() as NodeCache,\n nodes: {} as Record<string | number, NodeState>,\n openCache: new Set() as NodeCache,\n selectedCache: new Set() as NodeCache,\n }),\n\n computed: {\n excludedItems (): Set<string | number> {\n const excluded = new Set<string|number>()\n\n if (!this.search) return excluded\n\n for (let i = 0; i < this.items.length; i++) {\n filterTreeItems(\n this.filter || filterTreeItem,\n this.items[i],\n this.search,\n this.itemKey,\n this.itemText,\n this.itemChildren,\n excluded\n )\n }\n\n return excluded\n },\n },\n\n watch: {\n items: {\n handler () {\n const oldKeys = Object.keys(this.nodes).map(k => getObjectValueByPath(this.nodes[k].item, this.itemKey))\n const newKeys = this.getKeys(this.items)\n const diff = arrayDiff(newKeys, oldKeys)\n\n // We only want to do stuff if items have changed\n if (!diff.length && newKeys.length < oldKeys.length) return\n\n // If nodes are removed we need to clear them from this.nodes\n diff.forEach(k => delete this.nodes[k])\n\n const oldSelectedCache = [...this.selectedCache]\n this.selectedCache = new Set()\n this.activeCache = new Set()\n this.openCache = new Set()\n this.buildTree(this.items)\n\n // Only emit selected if selection has changed\n // as a result of items changing. This fixes a\n // potential double emit when selecting a node\n // with dynamic children\n if (!deepEqual(oldSelectedCache, [...this.selectedCache])) this.emitSelected()\n },\n deep: true,\n },\n active (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.activeCache, this.updateActive, this.emitActive)\n },\n value (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.selectedCache, this.updateSelected, this.emitSelected)\n },\n open (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.openCache, this.updateOpen, this.emitOpen)\n },\n },\n\n created () {\n const getValue = (key: string | number) => this.returnObject ? getObjectValueByPath(key, this.itemKey) : key\n\n this.buildTree(this.items)\n\n for (const value of this.value.map(getValue)) {\n this.updateSelected(value, true, true)\n }\n\n for (const active of this.active.map(getValue)) {\n this.updateActive(active, true)\n }\n },\n\n mounted () {\n // Save the developer from themselves\n if (this.$slots.prepend || this.$slots.append) {\n consoleWarn('The prepend and append slots require a slot-scope attribute', this)\n }\n\n if (this.openAll) {\n this.updateAll(true)\n } else {\n this.open.forEach(key => this.updateOpen(this.returnObject ? getObjectValueByPath(key, this.itemKey) : key, true))\n this.emitOpen()\n }\n },\n\n methods: {\n /** @public */\n updateAll (value: boolean) {\n Object.keys(this.nodes).forEach(key => this.updateOpen(getObjectValueByPath(this.nodes[key].item, this.itemKey), value))\n this.emitOpen()\n },\n getKeys (items: any[], keys: any[] = []) {\n for (let i = 0; i < items.length; i++) {\n const key = getObjectValueByPath(items[i], this.itemKey)\n keys.push(key)\n const children = getObjectValueByPath(items[i], this.itemChildren)\n if (children) {\n keys.push(...this.getKeys(children))\n }\n }\n\n return keys\n },\n buildTree (items: any[], parent: (string | number | null) = null) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = getObjectValueByPath(item, this.itemKey)\n const children = getObjectValueByPath(item, this.itemChildren) ?? []\n const oldNode = this.nodes.hasOwnProperty(key) ? this.nodes[key] : {\n isSelected: false, isIndeterminate: false, isActive: false, isOpen: false, vnode: null,\n } as NodeState\n\n const node: any = {\n vnode: oldNode.vnode,\n parent,\n children: children.map((c: any) => getObjectValueByPath(c, this.itemKey)),\n item,\n }\n\n this.buildTree(children, key)\n\n // This fixed bug with dynamic children resetting selected parent state\n if (!this.nodes.hasOwnProperty(key) && parent !== null && this.nodes.hasOwnProperty(parent)) {\n node.isSelected = this.nodes[parent].isSelected\n } else {\n node.isSelected = oldNode.isSelected\n node.isIndeterminate = oldNode.isIndeterminate\n }\n\n node.isActive = oldNode.isActive\n node.isOpen = oldNode.isOpen\n\n this.nodes[key] = node\n\n if (children.length && this.selectionType !== 'independent') {\n const { isSelected, isIndeterminate } = this.calculateState(key, this.nodes)\n\n node.isSelected = isSelected\n node.isIndeterminate = isIndeterminate\n }\n\n // Don't forget to rebuild cache\n if (this.nodes[key].isSelected && (this.selectionType === 'independent' || node.children.length === 0)) this.selectedCache.add(key)\n if (this.nodes[key].isActive) this.activeCache.add(key)\n if (this.nodes[key].isOpen) this.openCache.add(key)\n\n this.updateVnodeState(key)\n }\n },\n calculateState (node: string | number, state: Record<string | number, NodeState>) {\n const children = state[node].children\n const counts = children.reduce((counts: number[], child: string | number) => {\n counts[0] += +Boolean(state[child].isSelected)\n counts[1] += +Boolean(state[child].isIndeterminate)\n\n return counts\n }, [0, 0])\n\n const isSelected = !!children.length && counts[0] === children.length\n const isIndeterminate = !isSelected && (counts[0] > 0 || counts[1] > 0)\n\n return {\n isSelected,\n isIndeterminate,\n }\n },\n emitOpen () {\n this.emitNodeCache('update:open', this.openCache)\n },\n emitSelected () {\n this.emitNodeCache('input', this.selectedCache)\n },\n emitActive () {\n this.emitNodeCache('update:active', this.activeCache)\n },\n emitNodeCache (event: string, cache: NodeCache) {\n this.$emit(event, this.returnObject ? [...cache].map(key => this.nodes[key].item) : [...cache])\n },\n handleNodeCacheWatcher (value: any[], cache: NodeCache, updateFn: Function, emitFn: Function) {\n value = this.returnObject ? value.map(v => getObjectValueByPath(v, this.itemKey)) : value\n const old = [...cache]\n if (deepEqual(old, value)) return\n\n old.forEach(key => updateFn(key, false))\n value.forEach(key => updateFn(key, true))\n\n emitFn()\n },\n getDescendants (key: string | number, descendants: NodeArray = []) {\n const children = this.nodes[key].children\n\n descendants.push(...children)\n\n for (let i = 0; i < children.length; i++) {\n descendants = this.getDescendants(children[i], descendants)\n }\n\n return descendants\n },\n getParents (key: string | number) {\n let parent = this.nodes[key].parent\n\n const parents = []\n while (parent !== null) {\n parents.push(parent)\n parent = this.nodes[parent].parent\n }\n\n return parents\n },\n register (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n this.nodes[key].vnode = node\n\n this.updateVnodeState(key)\n },\n unregister (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n if (this.nodes[key]) this.nodes[key].vnode = null\n },\n isParent (key: string | number) {\n return this.nodes[key].children && this.nodes[key].children.length\n },\n updateActive (key: string | number, isActive: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n if (!this.multipleActive) {\n this.activeCache.forEach(active => {\n this.nodes[active].isActive = false\n this.updateVnodeState(active)\n this.activeCache.delete(active)\n })\n }\n\n const node = this.nodes[key]\n if (!node) return\n\n if (isActive) this.activeCache.add(key)\n else this.activeCache.delete(key)\n\n node.isActive = isActive\n\n this.updateVnodeState(key)\n },\n updateSelected (key: string | number, isSelected: boolean, isForced = false) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const changed = new Map()\n\n if (this.selectionType !== 'independent') {\n for (const descendant of this.getDescendants(key)) {\n if (!getObjectValueByPath(this.nodes[descendant].item, this.itemDisabled) || isForced) {\n this.nodes[descendant].isSelected = isSelected\n this.nodes[descendant].isIndeterminate = false\n changed.set(descendant, isSelected)\n }\n }\n\n const calculated = this.calculateState(key, this.nodes)\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = calculated.isIndeterminate\n changed.set(key, isSelected)\n\n for (const parent of this.getParents(key)) {\n const calculated = this.calculateState(parent, this.nodes)\n this.nodes[parent].isSelected = calculated.isSelected\n this.nodes[parent].isIndeterminate = calculated.isIndeterminate\n changed.set(parent, calculated.isSelected)\n }\n } else {\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = false\n changed.set(key, isSelected)\n }\n\n for (const [key, value] of changed.entries()) {\n this.updateVnodeState(key)\n\n if (this.selectionType === 'leaf' && this.isParent(key)) continue\n\n value === true ? this.selectedCache.add(key) : this.selectedCache.delete(key)\n }\n },\n updateOpen (key: string | number, isOpen: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const node = this.nodes[key]\n const children = getObjectValueByPath(node.item, this.itemChildren)\n\n if (children && !children.length && node.vnode && !node.vnode.hasLoaded) {\n node.vnode.checkChildren().then(() => this.updateOpen(key, isOpen))\n } else if (children && children.length) {\n node.isOpen = isOpen\n\n node.isOpen ? this.openCache.add(key) : this.openCache.delete(key)\n\n this.updateVnodeState(key)\n }\n },\n updateVnodeState (key: string | number) {\n const node = this.nodes[key]\n\n if (node && node.vnode) {\n node.vnode.isSelected = node.isSelected\n node.vnode.isIndeterminate = node.isIndeterminate\n node.vnode.isActive = node.isActive\n node.vnode.isOpen = node.isOpen\n }\n },\n isExcluded (key: string | number) {\n return !!this.search && this.excludedItems.has(key)\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = this.items.length\n ? this.items.filter(item => {\n return !this.isExcluded(getObjectValueByPath(item, this.itemKey))\n }).map(item => {\n const genChild = VTreeviewNode.options.methods.genChild.bind(this)\n\n return genChild(item, getObjectValueByPath(item, this.itemDisabled))\n })\n /* istanbul ignore next */\n : this.$slots.default! // TODO: remove type annotation with TS 3.2\n\n return h('div', {\n staticClass: 'v-treeview',\n class: {\n 'v-treeview--hoverable': this.hoverable,\n 'v-treeview--dense': this.dense,\n ...this.themeClasses,\n },\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VTreeview.js"}
1
+ {"version":3,"sources":["../../../src/components/VTreeview/VTreeview.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VTreeview.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\n// Components\nimport VTreeviewNode, { VTreeviewNodeProps } from './VTreeviewNode'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utils\nimport {\n arrayDiff,\n deepEqual,\n getObjectValueByPath,\n} from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport {\n filterTreeItems,\n filterTreeItem,\n} from './util/filterTreeItems'\n\ntype VTreeviewNodeInstance = InstanceType<typeof VTreeviewNode>\n\ntype NodeCache = Set<string | number>\ntype NodeArray = (string | number)[]\n\ntype NodeState = {\n parent: number | string | null\n children: (number | string)[]\n vnode: VTreeviewNodeInstance | null\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n isOpen: boolean\n item: any\n}\n\nexport default mixins(\n RegistrableProvide('treeview'),\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-treeview',\n\n provide (): object {\n return { treeview: this }\n },\n\n props: {\n active: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n dense: Boolean,\n disabled: Boolean,\n filter: Function as PropType<TreeviewItemFunction>,\n hoverable: Boolean,\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator<any[]>,\n multipleActive: Boolean,\n open: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n openAll: Boolean,\n returnObject: {\n type: Boolean,\n default: false, // TODO: Should be true in next major\n },\n search: String,\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n level: -1,\n activeCache: new Set() as NodeCache,\n nodes: {} as Record<string | number, NodeState>,\n openCache: new Set() as NodeCache,\n selectedCache: new Set() as NodeCache,\n }),\n\n computed: {\n excludedItems (): Set<string | number> {\n const excluded = new Set<string|number>()\n\n if (!this.search) return excluded\n\n for (let i = 0; i < this.items.length; i++) {\n filterTreeItems(\n this.filter || filterTreeItem,\n this.items[i],\n this.search,\n this.itemKey,\n this.itemText,\n this.itemChildren,\n excluded\n )\n }\n\n return excluded\n },\n },\n\n watch: {\n items: {\n handler () {\n const oldKeys = Object.keys(this.nodes).map(k => getObjectValueByPath(this.nodes[k].item, this.itemKey))\n const newKeys = this.getKeys(this.items)\n const diff = arrayDiff(newKeys, oldKeys)\n\n // We only want to do stuff if items have changed\n if (!diff.length && newKeys.length < oldKeys.length) return\n\n // If nodes are removed we need to clear them from this.nodes\n diff.forEach(k => delete this.nodes[k])\n\n const oldSelectedCache = [...this.selectedCache]\n this.selectedCache = new Set()\n this.activeCache = new Set()\n this.openCache = new Set()\n this.buildTree(this.items)\n\n // Only emit selected if selection has changed\n // as a result of items changing. This fixes a\n // potential double emit when selecting a node\n // with dynamic children\n if (!deepEqual(oldSelectedCache, [...this.selectedCache])) this.emitSelected()\n },\n deep: true,\n },\n active (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.activeCache, this.updateActive, this.emitActive)\n },\n value (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.selectedCache, this.updateSelected, this.emitSelected)\n },\n open (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.openCache, this.updateOpen, this.emitOpen)\n },\n },\n\n created () {\n const getValue = (key: string | number) => this.returnObject ? getObjectValueByPath(key, this.itemKey) : key\n\n this.buildTree(this.items)\n\n for (const value of this.value.map(getValue)) {\n this.updateSelected(value, true, true)\n }\n\n for (const active of this.active.map(getValue)) {\n this.updateActive(active, true)\n }\n },\n\n mounted () {\n // Save the developer from themselves\n if (this.$slots.prepend || this.$slots.append) {\n consoleWarn('The prepend and append slots require a slot-scope attribute', this)\n }\n\n if (this.openAll) {\n this.updateAll(true)\n } else {\n this.open.forEach(key => this.updateOpen(this.returnObject ? getObjectValueByPath(key, this.itemKey) : key, true))\n this.emitOpen()\n }\n },\n\n methods: {\n /** @public */\n updateAll (value: boolean) {\n Object.keys(this.nodes).forEach(key => this.updateOpen(getObjectValueByPath(this.nodes[key].item, this.itemKey), value))\n this.emitOpen()\n },\n getKeys (items: any[], keys: any[] = []) {\n for (let i = 0; i < items.length; i++) {\n const key = getObjectValueByPath(items[i], this.itemKey)\n keys.push(key)\n const children = getObjectValueByPath(items[i], this.itemChildren)\n if (children) {\n keys.push(...this.getKeys(children))\n }\n }\n\n return keys\n },\n buildTree (items: any[], parent: (string | number | null) = null) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = getObjectValueByPath(item, this.itemKey)\n const children = getObjectValueByPath(item, this.itemChildren) ?? []\n const oldNode = this.nodes.hasOwnProperty(key) ? this.nodes[key] : {\n isSelected: false, isIndeterminate: false, isActive: false, isOpen: false, vnode: null,\n } as NodeState\n\n const node: any = {\n vnode: oldNode.vnode,\n parent,\n children: children.map((c: any) => getObjectValueByPath(c, this.itemKey)),\n item,\n }\n\n this.buildTree(children, key)\n\n // This fixed bug with dynamic children resetting selected parent state\n if (!this.nodes.hasOwnProperty(key) && parent !== null && this.nodes.hasOwnProperty(parent)) {\n node.isSelected = this.nodes[parent].isSelected\n } else {\n node.isSelected = oldNode.isSelected\n node.isIndeterminate = oldNode.isIndeterminate\n }\n\n node.isActive = oldNode.isActive\n node.isOpen = oldNode.isOpen\n\n this.nodes[key] = node\n\n if (children.length && this.selectionType !== 'independent') {\n const { isSelected, isIndeterminate } = this.calculateState(key, this.nodes)\n\n node.isSelected = isSelected\n node.isIndeterminate = isIndeterminate\n }\n\n // Don't forget to rebuild cache\n if (this.nodes[key].isSelected && (this.selectionType === 'independent' || node.children.length === 0)) this.selectedCache.add(key)\n if (this.nodes[key].isActive) this.activeCache.add(key)\n if (this.nodes[key].isOpen) this.openCache.add(key)\n\n this.updateVnodeState(key)\n }\n },\n calculateState (node: string | number, state: Record<string | number, NodeState>) {\n const children = state[node].children\n const counts = children.reduce((counts: number[], child: string | number) => {\n counts[0] += +Boolean(state[child].isSelected)\n counts[1] += +Boolean(state[child].isIndeterminate)\n\n return counts\n }, [0, 0])\n\n const isSelected = !!children.length && counts[0] === children.length\n const isIndeterminate = !isSelected && (counts[0] > 0 || counts[1] > 0)\n\n return {\n isSelected,\n isIndeterminate,\n }\n },\n emitOpen () {\n this.emitNodeCache('update:open', this.openCache)\n },\n emitSelected () {\n this.emitNodeCache('input', this.selectedCache)\n },\n emitActive () {\n this.emitNodeCache('update:active', this.activeCache)\n },\n emitNodeCache (event: string, cache: NodeCache) {\n this.$emit(event, this.returnObject ? [...cache].map(key => this.nodes[key].item) : [...cache])\n },\n handleNodeCacheWatcher (value: any[], cache: NodeCache, updateFn: Function, emitFn: Function) {\n value = this.returnObject ? value.map(v => getObjectValueByPath(v, this.itemKey)) : value\n const old = [...cache]\n if (deepEqual(old, value)) return\n\n old.forEach(key => updateFn(key, false))\n value.forEach(key => updateFn(key, true))\n\n emitFn()\n },\n getDescendants (key: string | number, descendants: NodeArray = []) {\n const children = this.nodes[key].children\n\n descendants.push(...children)\n\n for (let i = 0; i < children.length; i++) {\n descendants = this.getDescendants(children[i], descendants)\n }\n\n return descendants\n },\n getParents (key: string | number) {\n let parent = this.nodes[key].parent\n\n const parents = []\n while (parent !== null) {\n parents.push(parent)\n parent = this.nodes[parent].parent\n }\n\n return parents\n },\n register (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n this.nodes[key].vnode = node\n\n this.updateVnodeState(key)\n },\n unregister (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n if (this.nodes[key]) this.nodes[key].vnode = null\n },\n isParent (key: string | number) {\n return this.nodes[key].children && this.nodes[key].children.length\n },\n updateActive (key: string | number, isActive: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n if (!this.multipleActive) {\n this.activeCache.forEach(active => {\n this.nodes[active].isActive = false\n this.updateVnodeState(active)\n this.activeCache.delete(active)\n })\n }\n\n const node = this.nodes[key]\n if (!node) return\n\n if (isActive) this.activeCache.add(key)\n else this.activeCache.delete(key)\n\n node.isActive = isActive\n\n this.updateVnodeState(key)\n },\n updateSelected (key: string | number, isSelected: boolean, isForced = false) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const changed = new Map()\n\n if (this.selectionType !== 'independent') {\n for (const descendant of this.getDescendants(key)) {\n if (!getObjectValueByPath(this.nodes[descendant].item, this.itemDisabled) || isForced) {\n this.nodes[descendant].isSelected = isSelected\n this.nodes[descendant].isIndeterminate = false\n changed.set(descendant, isSelected)\n }\n }\n\n const calculated = this.calculateState(key, this.nodes)\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = calculated.isIndeterminate\n changed.set(key, isSelected)\n\n for (const parent of this.getParents(key)) {\n const calculated = this.calculateState(parent, this.nodes)\n this.nodes[parent].isSelected = calculated.isSelected\n this.nodes[parent].isIndeterminate = calculated.isIndeterminate\n changed.set(parent, calculated.isSelected)\n }\n } else {\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = false\n changed.set(key, isSelected)\n }\n\n for (const [key, value] of changed.entries()) {\n this.updateVnodeState(key)\n\n if (this.selectionType === 'leaf' && this.isParent(key)) continue\n\n value === true ? this.selectedCache.add(key) : this.selectedCache.delete(key)\n }\n },\n updateOpen (key: string | number, isOpen: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const node = this.nodes[key]\n const children = getObjectValueByPath(node.item, this.itemChildren)\n\n if (children && !children.length && node.vnode && !node.vnode.hasLoaded) {\n node.vnode.checkChildren().then(() => this.updateOpen(key, isOpen))\n } else if (children && children.length) {\n node.isOpen = isOpen\n\n node.isOpen ? this.openCache.add(key) : this.openCache.delete(key)\n\n this.updateVnodeState(key)\n }\n },\n updateVnodeState (key: string | number) {\n const node = this.nodes[key]\n\n if (node && node.vnode) {\n node.vnode.isSelected = node.isSelected\n node.vnode.isIndeterminate = node.isIndeterminate\n node.vnode.isActive = node.isActive\n node.vnode.isOpen = node.isOpen\n }\n },\n isExcluded (key: string | number) {\n return !!this.search && this.excludedItems.has(key)\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = this.items.length\n ? this.items.filter(item => {\n return !this.isExcluded(getObjectValueByPath(item, this.itemKey))\n }).map(item => {\n const genChild = VTreeviewNode.options.methods.genChild.bind(this)\n\n return genChild(item, this.disabled || getObjectValueByPath(item, this.itemDisabled))\n })\n /* istanbul ignore next */\n : this.$slots.default! // TODO: remove type annotation with TS 3.2\n\n return h('div', {\n staticClass: 'v-treeview',\n class: {\n 'v-treeview--hoverable': this.hoverable,\n 'v-treeview--dense': this.dense,\n ...this.themeClasses,\n },\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VTreeview.js"}
@@ -18,6 +18,7 @@ export const VTreeviewNodeProps = {
18
18
  type: String,
19
19
  default: 'primary'
20
20
  },
21
+ disablePerNode: Boolean,
21
22
  expandIcon: {
22
23
  type: String,
23
24
  default: '$subgroup'
@@ -98,7 +99,7 @@ const VTreeviewNode = baseMixins.extend().extend({
98
99
  }),
99
100
  computed: {
100
101
  disabled() {
101
- return getObjectValueByPath(this.item, this.itemDisabled) || this.parentIsDisabled && this.selectionType === 'leaf';
102
+ return getObjectValueByPath(this.item, this.itemDisabled) || !this.disablePerNode && this.parentIsDisabled && this.selectionType === 'leaf';
102
103
  },
103
104
 
104
105
  key() {
@@ -282,6 +283,7 @@ const VTreeviewNode = baseMixins.extend().extend({
282
283
  selectable: this.selectable,
283
284
  selectedColor: this.selectedColor,
284
285
  color: this.color,
286
+ disablePerNode: this.disablePerNode,
285
287
  expandIcon: this.expandIcon,
286
288
  indeterminateIcon: this.indeterminateIcon,
287
289
  offIcon: this.offIcon,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VTreeview/VTreeviewNode.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport { VExpandTransition } from '../transitions'\nimport { VIcon } from '../VIcon'\nimport VTreeview from './VTreeview'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getObjectValueByPath, createRange } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VTreeViewInstance = InstanceType<typeof VTreeview>\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('treeview')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n treeview: VTreeViewInstance\n}\n\nexport const VTreeviewNodeProps = {\n activatable: Boolean,\n activeClass: {\n type: String,\n default: 'v-treeview-node--active',\n },\n color: {\n type: String,\n default: 'primary',\n },\n expandIcon: {\n type: String,\n default: '$subgroup',\n },\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n itemChildren: {\n type: String,\n default: 'children',\n },\n itemDisabled: {\n type: String,\n default: 'disabled',\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'name',\n },\n loadChildren: Function as PropType<(item: any) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n openOnClick: Boolean,\n rounded: Boolean,\n selectable: Boolean,\n selectedColor: {\n type: String,\n default: 'accent',\n },\n shaped: Boolean,\n transition: Boolean,\n selectionType: {\n type: String as PropType<'leaf' | 'independent'>,\n default: 'leaf',\n validator: (v: string) => ['leaf', 'independent'].includes(v),\n },\n}\n\n/* @vue/component */\nconst VTreeviewNode = baseMixins.extend<options>().extend({\n name: 'v-treeview-node',\n\n inject: {\n treeview: {\n default: null,\n },\n },\n\n props: {\n level: Number,\n item: {\n type: Object,\n default: () => null,\n } as PropValidator<Record<string, unknown> | null>,\n parentIsDisabled: Boolean,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n hasLoaded: false,\n isActive: false, // Node is selected (row)\n isIndeterminate: false, // Node has at least one selected child\n isLoading: false,\n isOpen: false, // Node is open/expanded\n isSelected: false, // Node is selected (checkbox)\n }),\n\n computed: {\n disabled (): boolean {\n return (\n getObjectValueByPath(this.item, this.itemDisabled) ||\n (this.parentIsDisabled && this.selectionType === 'leaf')\n )\n },\n key (): string {\n return getObjectValueByPath(this.item, this.itemKey)\n },\n children (): any[] | null {\n const children = getObjectValueByPath(this.item, this.itemChildren)\n return children && children.filter((child: any) => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)))\n },\n text (): string {\n return getObjectValueByPath(this.item, this.itemText)\n },\n scopedProps (): object {\n return {\n item: this.item,\n leaf: !this.children,\n selected: this.isSelected,\n indeterminate: this.isIndeterminate,\n active: this.isActive,\n open: this.isOpen,\n }\n },\n computedIcon (): string {\n if (this.isIndeterminate) return this.indeterminateIcon\n else if (this.isSelected) return this.onIcon\n else return this.offIcon\n },\n hasChildren (): boolean {\n return !!this.children && (!!this.children.length || !!this.loadChildren)\n },\n },\n\n created () {\n this.treeview.register(this)\n },\n\n beforeDestroy () {\n this.treeview.unregister(this)\n },\n\n methods: {\n checkChildren (): Promise<void> {\n return new Promise<void>(resolve => {\n // TODO: Potential issue with always trying\n // to load children if response is empty?\n if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve()\n\n this.isLoading = true\n resolve(this.loadChildren(this.item))\n }).then(() => {\n this.isLoading = false\n this.hasLoaded = true\n })\n },\n open () {\n this.isOpen = !this.isOpen\n this.treeview.updateOpen(this.key, this.isOpen)\n this.treeview.emitOpen()\n },\n genLabel () {\n const children = []\n\n if (this.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps))\n else children.push(this.text)\n\n return this.$createElement('div', {\n slot: 'label',\n staticClass: 'v-treeview-node__label',\n }, children)\n },\n genPrependSlot () {\n if (!this.$scopedSlots.prepend) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__prepend',\n }, this.$scopedSlots.prepend(this.scopedProps))\n },\n genAppendSlot () {\n if (!this.$scopedSlots.append) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__append',\n }, this.$scopedSlots.append(this.scopedProps))\n },\n genContent () {\n const children = [\n this.genPrependSlot(),\n this.genLabel(),\n this.genAppendSlot(),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__content',\n }, children)\n },\n genToggle () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__toggle',\n class: {\n 'v-treeview-node__toggle--open': this.isOpen,\n 'v-treeview-node__toggle--loading': this.isLoading,\n },\n slot: 'prepend',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => this.open())\n },\n },\n }, [this.isLoading ? this.loadingIcon : this.expandIcon])\n },\n genCheckbox () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__checkbox',\n props: {\n color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n disabled: this.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => {\n // We nextTick here so that items watch in VTreeview has a chance to run first\n this.$nextTick(() => {\n this.isSelected = !this.isSelected\n this.isIndeterminate = false\n\n this.treeview.updateSelected(this.key, this.isSelected)\n this.treeview.emitSelected()\n })\n })\n },\n },\n }, [this.computedIcon])\n },\n genLevel (level: number) {\n return createRange(level).map(() => this.$createElement('div', {\n staticClass: 'v-treeview-node__level',\n }))\n },\n genNode () {\n const children = [this.genContent()]\n\n if (this.selectable) children.unshift(this.genCheckbox())\n\n if (this.hasChildren) {\n children.unshift(this.genToggle())\n } else {\n children.unshift(...this.genLevel(1))\n }\n\n children.unshift(...this.genLevel(this.level))\n\n return this.$createElement('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-treeview-node__root',\n class: {\n [this.activeClass]: this.isActive,\n },\n on: {\n click: () => {\n if (this.openOnClick && this.hasChildren) {\n this.checkChildren().then(this.open)\n } else if (this.activatable && !this.disabled) {\n this.isActive = !this.isActive\n this.treeview.updateActive(this.key, this.isActive)\n this.treeview.emitActive()\n }\n },\n },\n }), children)\n },\n genChild (item: any, parentIsDisabled: boolean) {\n return this.$createElement(VTreeviewNode, {\n key: getObjectValueByPath(item, this.itemKey),\n props: {\n activatable: this.activatable,\n activeClass: this.activeClass,\n item,\n selectable: this.selectable,\n selectedColor: this.selectedColor,\n color: this.color,\n expandIcon: this.expandIcon,\n indeterminateIcon: this.indeterminateIcon,\n offIcon: this.offIcon,\n onIcon: this.onIcon,\n loadingIcon: this.loadingIcon,\n itemKey: this.itemKey,\n itemText: this.itemText,\n itemDisabled: this.itemDisabled,\n itemChildren: this.itemChildren,\n loadChildren: this.loadChildren,\n transition: this.transition,\n openOnClick: this.openOnClick,\n rounded: this.rounded,\n shaped: this.shaped,\n level: this.level + 1,\n selectionType: this.selectionType,\n parentIsDisabled,\n },\n scopedSlots: this.$scopedSlots,\n })\n },\n genChildrenWrapper () {\n if (!this.isOpen || !this.children) return null\n\n const children = [this.children.map(c => this.genChild(c, this.disabled))]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__children',\n }, children)\n },\n genTransition () {\n return this.$createElement(VExpandTransition, [this.genChildrenWrapper()])\n },\n },\n\n render (h): VNode {\n const children: VNodeChildren = [this.genNode()]\n\n if (this.transition) children.push(this.genTransition())\n else children.push(this.genChildrenWrapper())\n\n return h('div', {\n staticClass: 'v-treeview-node',\n class: {\n 'v-treeview-node--leaf': !this.hasChildren,\n 'v-treeview-node--click': this.openOnClick,\n 'v-treeview-node--disabled': this.disabled,\n 'v-treeview-node--rounded': this.rounded,\n 'v-treeview-node--shaped': this.shaped,\n 'v-treeview-node--selected': this.isSelected,\n },\n attrs: {\n 'aria-expanded': String(this.isOpen),\n },\n }, children)\n },\n})\n\nexport default VTreeviewNode\n"],"sourceRoot":"","file":"VTreeviewNode.js"}
1
+ {"version":3,"sources":["../../../src/components/VTreeview/VTreeviewNode.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport { VExpandTransition } from '../transitions'\nimport { VIcon } from '../VIcon'\nimport VTreeview from './VTreeview'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getObjectValueByPath, createRange } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VTreeViewInstance = InstanceType<typeof VTreeview>\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('treeview')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n treeview: VTreeViewInstance\n}\n\nexport const VTreeviewNodeProps = {\n activatable: Boolean,\n activeClass: {\n type: String,\n default: 'v-treeview-node--active',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disablePerNode: Boolean,\n expandIcon: {\n type: String,\n default: '$subgroup',\n },\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n itemChildren: {\n type: String,\n default: 'children',\n },\n itemDisabled: {\n type: String,\n default: 'disabled',\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'name',\n },\n loadChildren: Function as PropType<(item: any) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n openOnClick: Boolean,\n rounded: Boolean,\n selectable: Boolean,\n selectedColor: {\n type: String,\n default: 'accent',\n },\n shaped: Boolean,\n transition: Boolean,\n selectionType: {\n type: String as PropType<'leaf' | 'independent'>,\n default: 'leaf',\n validator: (v: string) => ['leaf', 'independent'].includes(v),\n },\n}\n\n/* @vue/component */\nconst VTreeviewNode = baseMixins.extend<options>().extend({\n name: 'v-treeview-node',\n\n inject: {\n treeview: {\n default: null,\n },\n },\n\n props: {\n level: Number,\n item: {\n type: Object,\n default: () => null,\n } as PropValidator<Record<string, unknown> | null>,\n parentIsDisabled: Boolean,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n hasLoaded: false,\n isActive: false, // Node is selected (row)\n isIndeterminate: false, // Node has at least one selected child\n isLoading: false,\n isOpen: false, // Node is open/expanded\n isSelected: false, // Node is selected (checkbox)\n }),\n\n computed: {\n disabled (): boolean {\n return (\n getObjectValueByPath(this.item, this.itemDisabled) ||\n (!this.disablePerNode && (this.parentIsDisabled && this.selectionType === 'leaf'))\n )\n },\n key (): string {\n return getObjectValueByPath(this.item, this.itemKey)\n },\n children (): any[] | null {\n const children = getObjectValueByPath(this.item, this.itemChildren)\n return children && children.filter((child: any) => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)))\n },\n text (): string {\n return getObjectValueByPath(this.item, this.itemText)\n },\n scopedProps (): object {\n return {\n item: this.item,\n leaf: !this.children,\n selected: this.isSelected,\n indeterminate: this.isIndeterminate,\n active: this.isActive,\n open: this.isOpen,\n }\n },\n computedIcon (): string {\n if (this.isIndeterminate) return this.indeterminateIcon\n else if (this.isSelected) return this.onIcon\n else return this.offIcon\n },\n hasChildren (): boolean {\n return !!this.children && (!!this.children.length || !!this.loadChildren)\n },\n },\n\n created () {\n this.treeview.register(this)\n },\n\n beforeDestroy () {\n this.treeview.unregister(this)\n },\n\n methods: {\n checkChildren (): Promise<void> {\n return new Promise<void>(resolve => {\n // TODO: Potential issue with always trying\n // to load children if response is empty?\n if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve()\n\n this.isLoading = true\n resolve(this.loadChildren(this.item))\n }).then(() => {\n this.isLoading = false\n this.hasLoaded = true\n })\n },\n open () {\n this.isOpen = !this.isOpen\n this.treeview.updateOpen(this.key, this.isOpen)\n this.treeview.emitOpen()\n },\n genLabel () {\n const children = []\n\n if (this.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps))\n else children.push(this.text)\n\n return this.$createElement('div', {\n slot: 'label',\n staticClass: 'v-treeview-node__label',\n }, children)\n },\n genPrependSlot () {\n if (!this.$scopedSlots.prepend) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__prepend',\n }, this.$scopedSlots.prepend(this.scopedProps))\n },\n genAppendSlot () {\n if (!this.$scopedSlots.append) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__append',\n }, this.$scopedSlots.append(this.scopedProps))\n },\n genContent () {\n const children = [\n this.genPrependSlot(),\n this.genLabel(),\n this.genAppendSlot(),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__content',\n }, children)\n },\n genToggle () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__toggle',\n class: {\n 'v-treeview-node__toggle--open': this.isOpen,\n 'v-treeview-node__toggle--loading': this.isLoading,\n },\n slot: 'prepend',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => this.open())\n },\n },\n }, [this.isLoading ? this.loadingIcon : this.expandIcon])\n },\n genCheckbox () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__checkbox',\n props: {\n color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n disabled: this.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => {\n // We nextTick here so that items watch in VTreeview has a chance to run first\n this.$nextTick(() => {\n this.isSelected = !this.isSelected\n this.isIndeterminate = false\n\n this.treeview.updateSelected(this.key, this.isSelected)\n this.treeview.emitSelected()\n })\n })\n },\n },\n }, [this.computedIcon])\n },\n genLevel (level: number) {\n return createRange(level).map(() => this.$createElement('div', {\n staticClass: 'v-treeview-node__level',\n }))\n },\n genNode () {\n const children = [this.genContent()]\n\n if (this.selectable) children.unshift(this.genCheckbox())\n\n if (this.hasChildren) {\n children.unshift(this.genToggle())\n } else {\n children.unshift(...this.genLevel(1))\n }\n\n children.unshift(...this.genLevel(this.level))\n\n return this.$createElement('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-treeview-node__root',\n class: {\n [this.activeClass]: this.isActive,\n },\n on: {\n click: () => {\n if (this.openOnClick && this.hasChildren) {\n this.checkChildren().then(this.open)\n } else if (this.activatable && !this.disabled) {\n this.isActive = !this.isActive\n this.treeview.updateActive(this.key, this.isActive)\n this.treeview.emitActive()\n }\n },\n },\n }), children)\n },\n genChild (item: any, parentIsDisabled: boolean) {\n return this.$createElement(VTreeviewNode, {\n key: getObjectValueByPath(item, this.itemKey),\n props: {\n activatable: this.activatable,\n activeClass: this.activeClass,\n item,\n selectable: this.selectable,\n selectedColor: this.selectedColor,\n color: this.color,\n disablePerNode: this.disablePerNode,\n expandIcon: this.expandIcon,\n indeterminateIcon: this.indeterminateIcon,\n offIcon: this.offIcon,\n onIcon: this.onIcon,\n loadingIcon: this.loadingIcon,\n itemKey: this.itemKey,\n itemText: this.itemText,\n itemDisabled: this.itemDisabled,\n itemChildren: this.itemChildren,\n loadChildren: this.loadChildren,\n transition: this.transition,\n openOnClick: this.openOnClick,\n rounded: this.rounded,\n shaped: this.shaped,\n level: this.level + 1,\n selectionType: this.selectionType,\n parentIsDisabled,\n },\n scopedSlots: this.$scopedSlots,\n })\n },\n genChildrenWrapper () {\n if (!this.isOpen || !this.children) return null\n\n const children = [this.children.map(c => this.genChild(c, this.disabled))]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__children',\n }, children)\n },\n genTransition () {\n return this.$createElement(VExpandTransition, [this.genChildrenWrapper()])\n },\n },\n\n render (h): VNode {\n const children: VNodeChildren = [this.genNode()]\n\n if (this.transition) children.push(this.genTransition())\n else children.push(this.genChildrenWrapper())\n\n return h('div', {\n staticClass: 'v-treeview-node',\n class: {\n 'v-treeview-node--leaf': !this.hasChildren,\n 'v-treeview-node--click': this.openOnClick,\n 'v-treeview-node--disabled': this.disabled,\n 'v-treeview-node--rounded': this.rounded,\n 'v-treeview-node--shaped': this.shaped,\n 'v-treeview-node--selected': this.isSelected,\n },\n attrs: {\n 'aria-expanded': String(this.isOpen),\n },\n }, children)\n },\n})\n\nexport default VTreeviewNode\n"],"sourceRoot":"","file":"VTreeviewNode.js"}
@@ -43,6 +43,7 @@ export * from './VMain';
43
43
  export * from './VMenu';
44
44
  export * from './VMessages';
45
45
  export * from './VNavigationDrawer';
46
+ export * from './VOtpInput';
46
47
  export * from './VOverflowBtn';
47
48
  export * from './VOverlay';
48
49
  export * from './VPagination';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,WAAd;AACA,cAAc,UAAd;AACA,cAAc,iBAAd;AACA,cAAc,WAAd;AACA,cAAc,UAAd;AACA,cAAc,WAAd;AACA,cAAc,qBAAd;AACA,cAAc,gBAAd;AACA,cAAc,gBAAd;AACA,cAAc,QAAd;AACA,cAAc,cAAd;AACA,cAAc,aAAd;AACA,cAAc,SAAd;AACA,cAAc,aAAd;AACA,cAAc,aAAd;AACA,cAAc,SAAd;AACA,cAAc,cAAd;AACA,cAAc,gBAAd;AACA,cAAc,YAAd;AACA,cAAc,aAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,iBAAd;AACA,cAAc,cAAd;AACA,cAAc,eAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,mBAAd;AACA,cAAc,cAAd;AACA,cAAc,WAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,aAAd;AACA,cAAc,qBAAd;AACA,cAAc,gBAAd;AACA,cAAc,YAAd;AACA,cAAc,eAAd;AACA,cAAc,UAAd;AACA,cAAc,aAAd;AACA,cAAc,WAAd;AACA,cAAc,qBAAd;AACA,cAAc,mBAAd;AACA,cAAc,eAAd;AACA,cAAc,gBAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,WAAd;AACA,cAAc,mBAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd;AACA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,cAAd;AACA,cAAc,WAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd;AACA,cAAc,kBAAd;AACA,cAAc,aAAd;AACA,cAAc,eAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,aAAd;AACA,cAAc,kBAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd","sourcesContent":["export * from './VApp'\nexport * from './VAppBar'\nexport * from './VAlert'\nexport * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\nexport * from './VBottomNavigation'\nexport * from './VBottomSheet'\nexport * from './VBreadcrumbs'\nexport * from './VBtn'\nexport * from './VBtnToggle'\nexport * from './VCalendar'\nexport * from './VCard'\nexport * from './VCarousel'\nexport * from './VCheckbox'\nexport * from './VChip'\nexport * from './VChipGroup'\nexport * from './VColorPicker'\nexport * from './VContent'\nexport * from './VCombobox'\nexport * from './VCounter'\nexport * from './VData'\nexport * from './VDataIterator'\nexport * from './VDataTable'\nexport * from './VDatePicker'\nexport * from './VDialog'\nexport * from './VDivider'\nexport * from './VExpansionPanel'\nexport * from './VFileInput'\nexport * from './VFooter'\nexport * from './VForm'\nexport * from './VGrid'\nexport * from './VHover'\nexport * from './VIcon'\nexport * from './VImg'\nexport * from './VInput'\nexport * from './VItemGroup'\nexport * from './VLabel'\nexport * from './VLazy'\nexport * from './VList'\nexport * from './VMain'\nexport * from './VMenu'\nexport * from './VMessages'\nexport * from './VNavigationDrawer'\nexport * from './VOverflowBtn'\nexport * from './VOverlay'\nexport * from './VPagination'\nexport * from './VSheet'\nexport * from './VParallax'\nexport * from './VPicker'\nexport * from './VProgressCircular'\nexport * from './VProgressLinear'\nexport * from './VRadioGroup'\nexport * from './VRangeSlider'\nexport * from './VRating'\nexport * from './VResponsive'\nexport * from './VSelect'\nexport * from './VSkeletonLoader'\nexport * from './VSlider'\nexport * from './VSlideGroup'\nexport * from './VSnackbar'\nexport * from './VSparkline'\nexport * from './VSpeedDial'\nexport * from './VStepper'\nexport * from './VSubheader'\nexport * from './VSwitch'\nexport * from './VSystemBar'\nexport * from './VTabs'\nexport * from './VTextarea'\nexport * from './VTextField'\nexport * from './VThemeProvider'\nexport * from './VTimeline'\nexport * from './VTimePicker'\nexport * from './VToolbar'\nexport * from './VTooltip'\nexport * from './VTreeview'\nexport * from './VVirtualScroll'\nexport * from './VWindow'\nexport * from './transitions'\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,WAAd;AACA,cAAc,UAAd;AACA,cAAc,iBAAd;AACA,cAAc,WAAd;AACA,cAAc,UAAd;AACA,cAAc,WAAd;AACA,cAAc,qBAAd;AACA,cAAc,gBAAd;AACA,cAAc,gBAAd;AACA,cAAc,QAAd;AACA,cAAc,cAAd;AACA,cAAc,aAAd;AACA,cAAc,SAAd;AACA,cAAc,aAAd;AACA,cAAc,aAAd;AACA,cAAc,SAAd;AACA,cAAc,cAAd;AACA,cAAc,gBAAd;AACA,cAAc,YAAd;AACA,cAAc,aAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,iBAAd;AACA,cAAc,cAAd;AACA,cAAc,eAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,mBAAd;AACA,cAAc,cAAd;AACA,cAAc,WAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,aAAd;AACA,cAAc,qBAAd;AACA,cAAc,aAAd;AACA,cAAc,gBAAd;AACA,cAAc,YAAd;AACA,cAAc,eAAd;AACA,cAAc,UAAd;AACA,cAAc,aAAd;AACA,cAAc,WAAd;AACA,cAAc,qBAAd;AACA,cAAc,mBAAd;AACA,cAAc,eAAd;AACA,cAAc,gBAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,WAAd;AACA,cAAc,mBAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd;AACA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,cAAd;AACA,cAAc,WAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd;AACA,cAAc,kBAAd;AACA,cAAc,aAAd;AACA,cAAc,eAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,aAAd;AACA,cAAc,kBAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd","sourcesContent":["export * from './VApp'\nexport * from './VAppBar'\nexport * from './VAlert'\nexport * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\nexport * from './VBottomNavigation'\nexport * from './VBottomSheet'\nexport * from './VBreadcrumbs'\nexport * from './VBtn'\nexport * from './VBtnToggle'\nexport * from './VCalendar'\nexport * from './VCard'\nexport * from './VCarousel'\nexport * from './VCheckbox'\nexport * from './VChip'\nexport * from './VChipGroup'\nexport * from './VColorPicker'\nexport * from './VContent'\nexport * from './VCombobox'\nexport * from './VCounter'\nexport * from './VData'\nexport * from './VDataIterator'\nexport * from './VDataTable'\nexport * from './VDatePicker'\nexport * from './VDialog'\nexport * from './VDivider'\nexport * from './VExpansionPanel'\nexport * from './VFileInput'\nexport * from './VFooter'\nexport * from './VForm'\nexport * from './VGrid'\nexport * from './VHover'\nexport * from './VIcon'\nexport * from './VImg'\nexport * from './VInput'\nexport * from './VItemGroup'\nexport * from './VLabel'\nexport * from './VLazy'\nexport * from './VList'\nexport * from './VMain'\nexport * from './VMenu'\nexport * from './VMessages'\nexport * from './VNavigationDrawer'\nexport * from './VOtpInput'\nexport * from './VOverflowBtn'\nexport * from './VOverlay'\nexport * from './VPagination'\nexport * from './VSheet'\nexport * from './VParallax'\nexport * from './VPicker'\nexport * from './VProgressCircular'\nexport * from './VProgressLinear'\nexport * from './VRadioGroup'\nexport * from './VRangeSlider'\nexport * from './VRating'\nexport * from './VResponsive'\nexport * from './VSelect'\nexport * from './VSkeletonLoader'\nexport * from './VSlider'\nexport * from './VSlideGroup'\nexport * from './VSnackbar'\nexport * from './VSparkline'\nexport * from './VSpeedDial'\nexport * from './VStepper'\nexport * from './VSubheader'\nexport * from './VSwitch'\nexport * from './VSystemBar'\nexport * from './VTabs'\nexport * from './VTextarea'\nexport * from './VTextField'\nexport * from './VThemeProvider'\nexport * from './VTimeline'\nexport * from './VTimePicker'\nexport * from './VToolbar'\nexport * from './VTooltip'\nexport * from './VTreeview'\nexport * from './VVirtualScroll'\nexport * from './VWindow'\nexport * from './transitions'\n"],"sourceRoot":"","file":"index.js"}
@@ -83,7 +83,9 @@ export const ClickOutside = {
83
83
  unbind(el, binding, vnode) {
84
84
  if (!el._clickOutside) return;
85
85
  handleShadow(el, app => {
86
- if (!app || !el._clickOutside) return;
86
+ var _el$_clickOutside;
87
+
88
+ if (!app || !((_el$_clickOutside = el._clickOutside) != null && _el$_clickOutside[vnode.context._uid])) return;
87
89
  const {
88
90
  onClick,
89
91
  onMousedown
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/click-outside/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding, vnode)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[vnode.context!._uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unbind (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside) return\n\n const { onClick, onMousedown } = el._clickOutside[vnode.context!._uid]\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[vnode.context!._uid]\n },\n}\n\nexport default ClickOutside\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/click-outside/index.ts"],"names":[],"mappings":"AAAA,SAAS,YAAT,QAA6B,gBAA7B;;AAcA,SAAS,kBAAT,GAA2B;AACzB,SAAO,IAAP;AACD;;AAED,SAAS,UAAT,CAAqB,CAArB,EAAsC,EAAtC,EAAuD,OAAvD,EAAqF;AACnF;AACA;AACA;AACA;AACA,MAAI,CAAC,CAAD,IAAM,aAAa,CAAC,CAAD,EAAI,OAAJ,CAAb,KAA8B,KAAxC,EAA+C,OAAO,KAAP,CALoC,CAOnF;AACA;AACA;;AACA,QAAM,IAAI,GAAG,YAAY,CAAC,EAAD,CAAzB;AACA,MACE,OAAO,UAAP,KAAsB,WAAtB,IACA,IAAI,YAAY,UADhB,IAEA,IAAI,CAAC,IAAL,KAAc,CAAC,CAAC,MAHlB,EAIE,OAAO,KAAP,CAfiF,CAiBnF;AACA;;AACA,QAAM,QAAQ,GAAG,CAAE,OAAO,OAAO,CAAC,KAAf,KAAyB,QAAzB,IAAqC,OAAO,CAAC,KAAR,CAAc,OAApD,KAAiE,MAAM,EAAvE,CAAD,GAAjB,CAnBmF,CAoBnF;;;AACA,EAAA,QAAQ,CAAC,IAAT,CAAc,EAAd,EArBmF,CAuBnF;AACA;AACA;AACA;AACA;;AACA,SAAO,CAAC,QAAQ,CAAC,IAAT,CAAc,EAAE,IAAI,EAAE,CAAC,QAAH,CAAY,CAAC,CAAC,MAAd,CAApB,CAAR;AACD;;AAED,SAAS,aAAT,CAAwB,CAAxB,EAAyC,OAAzC,EAAuE;AACrE,QAAM,QAAQ,GAAI,OAAO,OAAO,CAAC,KAAf,KAAyB,QAAzB,IAAqC,OAAO,CAAC,KAAR,CAAc,gBAApD,IAAyE,kBAA1F;AAEA,SAAO,QAAQ,CAAC,CAAD,CAAf;AACD;;AAED,SAAS,SAAT,CAAoB,CAApB,EAAqC,EAArC,EAAsD,OAAtD,EAAsF,KAAtF,EAAkG;AAChG,QAAM,OAAO,GAAG,OAAO,OAAO,CAAC,KAAf,KAAyB,UAAzB,GAAsC,OAAO,CAAC,KAA9C,GAAsD,OAAO,CAAC,KAAR,CAAe,OAArF;AAEA,EAAA,EAAE,CAAC,aAAH,CAAkB,uBAAlB,IAA6C,UAAU,CAAC,CAAD,EAAI,EAAJ,EAAQ,OAAR,CAAvD,IAA2E,UAAU,CAAC,MAAK;AACzF,IAAA,aAAa,CAAC,CAAD,EAAI,OAAJ,CAAb,IAA6B,OAA7B,IAAwC,OAAO,CAAC,CAAD,CAA/C;AACD,GAFoF,EAElF,CAFkF,CAArF;AAGD;;AAED,SAAS,YAAT,CAAuB,EAAvB,EAAwC,QAAxC,EAA0D;AACxD,QAAM,IAAI,GAAG,YAAY,CAAC,EAAD,CAAzB;AAEA,EAAA,QAAQ,CAAC,QAAD,CAAR;;AAEA,MAAI,OAAO,UAAP,KAAsB,WAAtB,IAAqC,IAAI,YAAY,UAAzD,EAAqE;AACnE,IAAA,QAAQ,CAAC,IAAD,CAAR;AACD;AACF;;AAED,OAAO,MAAM,YAAY,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA,EAAA,QAAQ,CAAE,EAAF,EAAmB,OAAnB,EAAmD,KAAnD,EAA+D;AACrE,UAAM,OAAO,GAAI,CAAD,IAAc,SAAS,CAAC,CAAD,EAAoB,EAApB,EAAwB,OAAxB,EAAiC,KAAjC,CAAvC;;AACA,UAAM,WAAW,GAAI,CAAD,IAAa;AAC/B,MAAA,EAAE,CAAC,aAAH,CAAkB,uBAAlB,GAA4C,UAAU,CAAC,CAAD,EAAoB,EAApB,EAAwB,OAAxB,CAAtD;AACD,KAFD;;AAIA,IAAA,YAAY,CAAC,EAAD,EAAM,GAAD,IAAqB;AACpC,MAAA,GAAG,CAAC,gBAAJ,CAAqB,OAArB,EAA8B,OAA9B,EAAuC,IAAvC;AACA,MAAA,GAAG,CAAC,gBAAJ,CAAqB,WAArB,EAAkC,WAAlC,EAA+C,IAA/C;AACD,KAHW,CAAZ;;AAKA,QAAI,CAAC,EAAE,CAAC,aAAR,EAAuB;AACrB,MAAA,EAAE,CAAC,aAAH,GAAmB;AACjB,QAAA,uBAAuB,EAAE;AADR,OAAnB;AAGD;;AAED,IAAA,EAAE,CAAC,aAAH,CAAiB,KAAK,CAAC,OAAN,CAAe,IAAhC,IAAwC;AACtC,MAAA,OADsC;AAEtC,MAAA;AAFsC,KAAxC;AAID,GA3ByB;;AA6B1B,EAAA,MAAM,CAAE,EAAF,EAAmB,OAAnB,EAAmD,KAAnD,EAA+D;AACnE,QAAI,CAAC,EAAE,CAAC,aAAR,EAAuB;AAEvB,IAAA,YAAY,CAAC,EAAD,EAAM,GAAD,IAAqB;AAAA;;AACpC,UAAI,CAAC,GAAD,IAAQ,uBAAC,EAAE,CAAC,aAAJ,aAAC,kBAAmB,KAAK,CAAC,OAAN,CAAe,IAAlC,CAAD,CAAZ,EAAsD;AAEtD,YAAM;AAAE,QAAA,OAAF;AAAW,QAAA;AAAX,UAA2B,EAAE,CAAC,aAAH,CAAiB,KAAK,CAAC,OAAN,CAAe,IAAhC,CAAjC;AAEA,MAAA,GAAG,CAAC,mBAAJ,CAAwB,OAAxB,EAAiC,OAAjC,EAA0C,IAA1C;AACA,MAAA,GAAG,CAAC,mBAAJ,CAAwB,WAAxB,EAAqC,WAArC,EAAkD,IAAlD;AACD,KAPW,CAAZ;AASA,WAAO,EAAE,CAAC,aAAH,CAAiB,KAAK,CAAC,OAAN,CAAe,IAAhC,CAAP;AACD;;AA1CyB,CAArB;AA6CP,eAAe,YAAf","sourcesContent":["import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding, vnode)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[vnode.context!._uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unbind (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[vnode.context!._uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[vnode.context!._uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[vnode.context!._uid]\n },\n}\n\nexport default ClickOutside\n"],"sourceRoot":"","file":"index.js"}
@@ -12,9 +12,10 @@ function inserted(el, binding, vnode) {
12
12
  const observer = new IntersectionObserver((entries = [], observer) => {
13
13
  var _el$_observe;
14
14
 
15
- if (!((_el$_observe = el._observe) != null && _el$_observe[vnode.context._uid])) return; // Just in case, should never fire
15
+ const _observe = (_el$_observe = el._observe) == null ? void 0 : _el$_observe[vnode.context._uid];
16
+
17
+ if (!_observe) return; // Just in case, should never fire
16
18
 
17
- const _observe = el._observe[vnode.context._uid];
18
19
  const isIntersecting = entries.some(entry => entry.isIntersecting); // If is not quiet or has already been
19
20
  // initted, invoke the user callback
20
21
 
@@ -33,10 +34,11 @@ function inserted(el, binding, vnode) {
33
34
  }
34
35
 
35
36
  function unbind(el, binding, vnode) {
36
- if (!el._observe) return;
37
-
38
- el._observe[vnode.context._uid].observer.unobserve(el);
37
+ var _el$_observe2;
39
38
 
39
+ const observe = (_el$_observe2 = el._observe) == null ? void 0 : _el$_observe2[vnode.context._uid];
40
+ if (!observe) return;
41
+ observe.observer.unobserve(el);
40
42
  delete el._observe[vnode.context._uid];
41
43
  }
42
44
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/intersect/index.ts"],"names":[],"mappings":"AAiBA,SAAS,QAAT,CAAmB,EAAnB,EAAoC,OAApC,EAAoE,KAApE,EAAgF;AAC9E,MAAI,OAAO,MAAP,KAAkB,WAAlB,IAAiC,EAAE,0BAA0B,MAA5B,CAArC,EAA0E;AAE1E,QAAM,SAAS,GAAG,OAAO,CAAC,SAAR,IAAqB,EAAvC;AACA,QAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,QAAM;AAAE,IAAA,OAAF;AAAW,IAAA;AAAX,MAAuB,OAAO,KAAP,KAAiB,QAAjB,GACzB,KADyB,GAEzB;AAAE,IAAA,OAAO,EAAE,KAAX;AAAkB,IAAA,OAAO,EAAE;AAA3B,GAFJ;AAGA,QAAM,QAAQ,GAAG,IAAI,oBAAJ,CAAyB,CACxC,OAAA,GAAuC,EADC,EAExC,QAFwC,KAGtC;AAAA;;AACF,QAAI,kBAAC,EAAE,CAAC,QAAJ,aAAC,aAAc,KAAK,CAAC,OAAN,CAAe,IAA7B,CAAD,CAAJ,EAAyC,OADvC,CAC8C;;AAEhD,UAAM,QAAQ,GAAG,EAAE,CAAC,QAAH,CAAY,KAAK,CAAC,OAAN,CAAe,IAA3B,CAAjB;AACA,UAAM,cAAc,GAAG,OAAO,CAAC,IAAR,CAAa,KAAK,IAAI,KAAK,CAAC,cAA5B,CAAvB,CAJE,CAMF;AACA;;AACA,QACE,OAAO,KACL,CAAC,SAAS,CAAC,KAAX,IACA,QAAQ,CAAC,IAFJ,CAAP,KAIE,CAAC,SAAS,CAAC,IAAX,IACA,cADA,IAEA,QAAQ,CAAC,IANX,CADF,EASE;AACA,MAAA,OAAO,CAAC,OAAD,EAAU,QAAV,EAAoB,cAApB,CAAP;AACD;;AAED,QAAI,cAAc,IAAI,SAAS,CAAC,IAAhC,EAAsC,MAAM,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAN,CAAtC,KACK,QAAQ,CAAC,IAAT,GAAgB,IAAhB;AACN,GA1BgB,EA0Bd,OA1Bc,CAAjB;AA4BA,EAAA,EAAE,CAAC,QAAH,GAAc,MAAM,CAAC,EAAE,CAAC,QAAJ,CAApB;AACA,EAAA,EAAE,CAAC,QAAH,CAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,IAAoC;AAAE,IAAA,IAAI,EAAE,KAAR;AAAe,IAAA;AAAf,GAApC;AAEA,EAAA,QAAQ,CAAC,OAAT,CAAiB,EAAjB;AACD;;AAED,SAAS,MAAT,CAAiB,EAAjB,EAAkC,OAAlC,EAAkE,KAAlE,EAA8E;AAC5E,MAAI,CAAC,EAAE,CAAC,QAAR,EAAkB;;AAElB,EAAA,EAAE,CAAC,QAAH,CAAY,KAAK,CAAC,OAAN,CAAe,IAA3B,EAAiC,QAAjC,CAA0C,SAA1C,CAAoD,EAApD;;AACA,SAAO,EAAE,CAAC,QAAH,CAAY,KAAK,CAAC,OAAN,CAAe,IAA3B,CAAP;AACD;;AAED,OAAO,MAAM,SAAS,GAAG;AACvB,EAAA,QADuB;AAEvB,EAAA;AAFuB,CAAlB;AAKP,eAAe,SAAf","sourcesContent":["import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit<VNodeDirective, 'modifiers'> {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n if (!el._observe?.[vnode.context!._uid]) return // Just in case, should never fire\n\n const _observe = el._observe[vnode.context!._uid]\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el, binding, vnode)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![vnode.context!._uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n if (!el._observe) return\n\n el._observe[vnode.context!._uid].observer.unobserve(el)\n delete el._observe[vnode.context!._uid]\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/intersect/index.ts"],"names":[],"mappings":"AAiBA,SAAS,QAAT,CAAmB,EAAnB,EAAoC,OAApC,EAAoE,KAApE,EAAgF;AAC9E,MAAI,OAAO,MAAP,KAAkB,WAAlB,IAAiC,EAAE,0BAA0B,MAA5B,CAArC,EAA0E;AAE1E,QAAM,SAAS,GAAG,OAAO,CAAC,SAAR,IAAqB,EAAvC;AACA,QAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,QAAM;AAAE,IAAA,OAAF;AAAW,IAAA;AAAX,MAAuB,OAAO,KAAP,KAAiB,QAAjB,GACzB,KADyB,GAEzB;AAAE,IAAA,OAAO,EAAE,KAAX;AAAkB,IAAA,OAAO,EAAE;AAA3B,GAFJ;AAGA,QAAM,QAAQ,GAAG,IAAI,oBAAJ,CAAyB,CACxC,OAAA,GAAuC,EADC,EAExC,QAFwC,KAGtC;AAAA;;AACF,UAAM,QAAQ,mBAAG,EAAE,CAAC,QAAN,qBAAG,aAAc,KAAK,CAAC,OAAN,CAAe,IAA7B,CAAjB;;AACA,QAAI,CAAC,QAAL,EAAe,OAFb,CAEoB;;AAEtB,UAAM,cAAc,GAAG,OAAO,CAAC,IAAR,CAAa,KAAK,IAAI,KAAK,CAAC,cAA5B,CAAvB,CAJE,CAMF;AACA;;AACA,QACE,OAAO,KACL,CAAC,SAAS,CAAC,KAAX,IACA,QAAQ,CAAC,IAFJ,CAAP,KAIE,CAAC,SAAS,CAAC,IAAX,IACA,cADA,IAEA,QAAQ,CAAC,IANX,CADF,EASE;AACA,MAAA,OAAO,CAAC,OAAD,EAAU,QAAV,EAAoB,cAApB,CAAP;AACD;;AAED,QAAI,cAAc,IAAI,SAAS,CAAC,IAAhC,EAAsC,MAAM,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAN,CAAtC,KACK,QAAQ,CAAC,IAAT,GAAgB,IAAhB;AACN,GA1BgB,EA0Bd,OA1Bc,CAAjB;AA4BA,EAAA,EAAE,CAAC,QAAH,GAAc,MAAM,CAAC,EAAE,CAAC,QAAJ,CAApB;AACA,EAAA,EAAE,CAAC,QAAH,CAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,IAAoC;AAAE,IAAA,IAAI,EAAE,KAAR;AAAe,IAAA;AAAf,GAApC;AAEA,EAAA,QAAQ,CAAC,OAAT,CAAiB,EAAjB;AACD;;AAED,SAAS,MAAT,CAAiB,EAAjB,EAAkC,OAAlC,EAAkE,KAAlE,EAA8E;AAAA;;AAC5E,QAAM,OAAO,oBAAG,EAAE,CAAC,QAAN,qBAAG,cAAc,KAAK,CAAC,OAAN,CAAe,IAA7B,CAAhB;AACA,MAAI,CAAC,OAAL,EAAc;AAEd,EAAA,OAAO,CAAC,QAAR,CAAiB,SAAjB,CAA2B,EAA3B;AACA,SAAO,EAAE,CAAC,QAAH,CAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,CAAP;AACD;;AAED,OAAO,MAAM,SAAS,GAAG;AACvB,EAAA,QADuB;AAEvB,EAAA;AAFuB,CAAlB;AAKP,eAAe,SAAf","sourcesContent":["import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit<VNodeDirective, 'modifiers'> {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[vnode.context!._uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el, binding, vnode)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![vnode.context!._uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n const observe = el._observe?.[vnode.context!._uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![vnode.context!._uid]\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n"],"sourceRoot":"","file":"index.js"}
@@ -37,8 +37,9 @@ function inserted(el, binding, vnode) {
37
37
  }
38
38
 
39
39
  function unbind(el, binding, vnode) {
40
- /* istanbul ignore if */
41
- if (!el._mutate) return;
40
+ var _el$_mutate;
41
+
42
+ if (!((_el$_mutate = el._mutate) != null && _el$_mutate[vnode.context._uid])) return;
42
43
 
43
44
  el._mutate[vnode.context._uid].observer.disconnect();
44
45
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/mutate/index.ts"],"names":[],"mappings":"AAkBA,SAAS,QAAT,CAAmB,EAAnB,EAAoC,OAApC,EAAmE,KAAnE,EAA+E;AAC7E,QAAM,SAAS,GAAG,OAAO,CAAC,SAAR,IAAqB,EAAvC;AACA,QAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,QAAM,QAAQ,GAAG,OAAO,KAAP,KAAiB,QAAjB,GAA4B,KAAK,CAAC,OAAlC,GAA4C,KAA7D;AACA,QAAM;AAAE,IAAA,IAAF;AAAQ,OAAG;AAAX,MAA4B,SAAlC;AACA,QAAM,YAAY,GAAG,MAAM,CAAC,IAAP,CAAY,YAAZ,EAA0B,MAA1B,GAAmC,CAAxD,CAL6E,CAO7E;;AACA,QAAM,OAAO,GAAG,OAAO,KAAP,KAAiB,QAAjB,IAA6B,KAAK,CAAC,OAAnC,GACZ,KAAK,CAAC,OADM,GAEZ,YAAY,CACZ;AADY,IAEV;AACA,IAAA,UAAU,EAAE,YAAY,CAAC,IADzB;AAEA,IAAA,SAAS,EAAE,YAAY,CAAC,KAFxB;AAGA,IAAA,OAAO,EAAE,YAAY,CAAC,GAHtB;AAIA,IAAA,aAAa,EAAE,YAAY,CAAC;AAJ5B,GAFU,CAQZ;AARY,IASV;AACA,IAAA,UAAU,EAAE,IADZ;AAEA,IAAA,SAAS,EAAE,IAFX;AAGA,IAAA,OAAO,EAAE,IAHT;AAIA,IAAA,aAAa,EAAE;AAJf,GAXN;AAkBA,QAAM,QAAQ,GAAG,IAAI,gBAAJ,CAAqB,CACpC,aADoC,EAEpC,QAFoC,KAGlC;AACF;AACA,QAAI,CAAC,EAAE,CAAC,OAAR,EAAiB,OAFf,CAEsB;;AAExB,IAAA,QAAQ,CAAC,aAAD,EAAgB,QAAhB,CAAR,CAJE,CAMF;;AACA,IAAA,IAAI,IAAI,MAAM,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAd;AACD,GAXgB,CAAjB;AAaA,EAAA,QAAQ,CAAC,OAAT,CAAiB,EAAjB,EAAqB,OAArB;AACA,EAAA,EAAE,CAAC,OAAH,GAAa,MAAM,CAAC,EAAE,CAAC,OAAJ,CAAnB;AACA,EAAA,EAAE,CAAC,OAAH,CAAY,KAAK,CAAC,OAAN,CAAe,IAA3B,IAAmC;AAAE,IAAA;AAAF,GAAnC;AACD;;AAED,SAAS,MAAT,CAAiB,EAAjB,EAAkC,OAAlC,EAAiE,KAAjE,EAA6E;AAC3E;AACA,MAAI,CAAC,EAAE,CAAC,OAAR,EAAiB;;AAEjB,EAAA,EAAE,CAAC,OAAH,CAAW,KAAK,CAAC,OAAN,CAAe,IAA1B,EAAgC,QAAhC,CAAyC,UAAzC;;AACA,SAAO,EAAE,CAAC,OAAH,CAAW,KAAK,CAAC,OAAN,CAAe,IAA1B,CAAP;AACD;;AAED,OAAO,MAAM,MAAM,GAAG;AACpB,EAAA,QADoB;AAEpB,EAAA;AAFoB,CAAf;AAKP,eAAe,MAAf","sourcesContent":["import { VNode, VNodeDirective } from 'vue'\n\ntype MutateHandler = (\n mutationsList: MutationRecord[],\n observer: MutationObserver,\n) => void\n\ninterface MutateVNodeDirective extends Omit<VNodeDirective, 'modifiers'> {\n value?: MutateHandler | { handler: MutateHandler, options?: MutationObserverInit }\n modifiers?: {\n once?: boolean\n attr?: boolean\n child?: boolean\n sub?: boolean\n char?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: MutateVNodeDirective, vnode: VNode) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const callback = typeof value === 'object' ? value.handler : value!\n const { once, ...modifierKeys } = modifiers\n const hasModifiers = Object.keys(modifierKeys).length > 0\n\n // Options take top priority\n const options = typeof value === 'object' && value.options\n ? value.options\n : hasModifiers\n // If we have modifiers, use only those provided\n ? {\n attributes: modifierKeys.attr,\n childList: modifierKeys.child,\n subtree: modifierKeys.sub,\n characterData: modifierKeys.char,\n }\n // Defaults to everything on\n : {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true,\n }\n\n const observer = new MutationObserver((\n mutationsList: MutationRecord[],\n observer: MutationObserver\n ) => {\n /* istanbul ignore if */\n if (!el._mutate) return // Just in case, should never fire\n\n callback(mutationsList, observer)\n\n // If has the once modifier, unbind\n once && unbind(el, binding, vnode)\n })\n\n observer.observe(el, options)\n el._mutate = Object(el._mutate)\n el._mutate![vnode.context!._uid] = { observer }\n}\n\nfunction unbind (el: HTMLElement, binding: MutateVNodeDirective, vnode: VNode) {\n /* istanbul ignore if */\n if (!el._mutate) return\n\n el._mutate[vnode.context!._uid].observer.disconnect()\n delete el._mutate[vnode.context!._uid]\n}\n\nexport const Mutate = {\n inserted,\n unbind,\n}\n\nexport default Mutate\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/mutate/index.ts"],"names":[],"mappings":"AAkBA,SAAS,QAAT,CAAmB,EAAnB,EAAoC,OAApC,EAAmE,KAAnE,EAA+E;AAC7E,QAAM,SAAS,GAAG,OAAO,CAAC,SAAR,IAAqB,EAAvC;AACA,QAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,QAAM,QAAQ,GAAG,OAAO,KAAP,KAAiB,QAAjB,GAA4B,KAAK,CAAC,OAAlC,GAA4C,KAA7D;AACA,QAAM;AAAE,IAAA,IAAF;AAAQ,OAAG;AAAX,MAA4B,SAAlC;AACA,QAAM,YAAY,GAAG,MAAM,CAAC,IAAP,CAAY,YAAZ,EAA0B,MAA1B,GAAmC,CAAxD,CAL6E,CAO7E;;AACA,QAAM,OAAO,GAAG,OAAO,KAAP,KAAiB,QAAjB,IAA6B,KAAK,CAAC,OAAnC,GACZ,KAAK,CAAC,OADM,GAEZ,YAAY,CACZ;AADY,IAEV;AACA,IAAA,UAAU,EAAE,YAAY,CAAC,IADzB;AAEA,IAAA,SAAS,EAAE,YAAY,CAAC,KAFxB;AAGA,IAAA,OAAO,EAAE,YAAY,CAAC,GAHtB;AAIA,IAAA,aAAa,EAAE,YAAY,CAAC;AAJ5B,GAFU,CAQZ;AARY,IASV;AACA,IAAA,UAAU,EAAE,IADZ;AAEA,IAAA,SAAS,EAAE,IAFX;AAGA,IAAA,OAAO,EAAE,IAHT;AAIA,IAAA,aAAa,EAAE;AAJf,GAXN;AAkBA,QAAM,QAAQ,GAAG,IAAI,gBAAJ,CAAqB,CACpC,aADoC,EAEpC,QAFoC,KAGlC;AACF;AACA,QAAI,CAAC,EAAE,CAAC,OAAR,EAAiB,OAFf,CAEsB;;AAExB,IAAA,QAAQ,CAAC,aAAD,EAAgB,QAAhB,CAAR,CAJE,CAMF;;AACA,IAAA,IAAI,IAAI,MAAM,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAd;AACD,GAXgB,CAAjB;AAaA,EAAA,QAAQ,CAAC,OAAT,CAAiB,EAAjB,EAAqB,OAArB;AACA,EAAA,EAAE,CAAC,OAAH,GAAa,MAAM,CAAC,EAAE,CAAC,OAAJ,CAAnB;AACA,EAAA,EAAE,CAAC,OAAH,CAAY,KAAK,CAAC,OAAN,CAAe,IAA3B,IAAmC;AAAE,IAAA;AAAF,GAAnC;AACD;;AAED,SAAS,MAAT,CAAiB,EAAjB,EAAkC,OAAlC,EAAiE,KAAjE,EAA6E;AAAA;;AAC3E,MAAI,iBAAC,EAAE,CAAC,OAAJ,aAAC,YAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,CAAD,CAAJ,EAAwC;;AAExC,EAAA,EAAE,CAAC,OAAH,CAAW,KAAK,CAAC,OAAN,CAAe,IAA1B,EAAiC,QAAjC,CAA0C,UAA1C;;AACA,SAAO,EAAE,CAAC,OAAH,CAAW,KAAK,CAAC,OAAN,CAAe,IAA1B,CAAP;AACD;;AAED,OAAO,MAAM,MAAM,GAAG;AACpB,EAAA,QADoB;AAEpB,EAAA;AAFoB,CAAf;AAKP,eAAe,MAAf","sourcesContent":["import { VNode, VNodeDirective } from 'vue'\n\ntype MutateHandler = (\n mutationsList: MutationRecord[],\n observer: MutationObserver,\n) => void\n\ninterface MutateVNodeDirective extends Omit<VNodeDirective, 'modifiers'> {\n value?: MutateHandler | { handler: MutateHandler, options?: MutationObserverInit }\n modifiers?: {\n once?: boolean\n attr?: boolean\n child?: boolean\n sub?: boolean\n char?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: MutateVNodeDirective, vnode: VNode) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const callback = typeof value === 'object' ? value.handler : value!\n const { once, ...modifierKeys } = modifiers\n const hasModifiers = Object.keys(modifierKeys).length > 0\n\n // Options take top priority\n const options = typeof value === 'object' && value.options\n ? value.options\n : hasModifiers\n // If we have modifiers, use only those provided\n ? {\n attributes: modifierKeys.attr,\n childList: modifierKeys.child,\n subtree: modifierKeys.sub,\n characterData: modifierKeys.char,\n }\n // Defaults to everything on\n : {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true,\n }\n\n const observer = new MutationObserver((\n mutationsList: MutationRecord[],\n observer: MutationObserver\n ) => {\n /* istanbul ignore if */\n if (!el._mutate) return // Just in case, should never fire\n\n callback(mutationsList, observer)\n\n // If has the once modifier, unbind\n once && unbind(el, binding, vnode)\n })\n\n observer.observe(el, options)\n el._mutate = Object(el._mutate)\n el._mutate![vnode.context!._uid] = { observer }\n}\n\nfunction unbind (el: HTMLElement, binding: MutateVNodeDirective, vnode: VNode) {\n if (!el._mutate?.[vnode.context!._uid]) return\n\n el._mutate[vnode.context!._uid]!.observer.disconnect()\n delete el._mutate[vnode.context!._uid]\n}\n\nexport const Mutate = {\n inserted,\n unbind,\n}\n\nexport default Mutate\n"],"sourceRoot":"","file":"index.js"}
@@ -16,7 +16,9 @@ function inserted(el, binding, vnode) {
16
16
  }
17
17
 
18
18
  function unbind(el, binding, vnode) {
19
- if (!el._onResize) return;
19
+ var _el$_onResize;
20
+
21
+ if (!((_el$_onResize = el._onResize) != null && _el$_onResize[vnode.context._uid])) return;
20
22
  const {
21
23
  callback,
22
24
  options
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/resize/index.ts"],"names":[],"mappings":"AAQA,SAAS,QAAT,CAAmB,EAAnB,EAAoC,OAApC,EAAmE,KAAnE,EAA+E;AAC7E,QAAM,QAAQ,GAAG,OAAO,CAAC,KAAzB;AACA,QAAM,OAAO,GAAG,OAAO,CAAC,OAAR,IAAmB;AAAE,IAAA,OAAO,EAAE;AAAX,GAAnC;AAEA,EAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,QAAlC,EAA4C,OAA5C;AAEA,EAAA,EAAE,CAAC,SAAH,GAAe,MAAM,CAAC,EAAE,CAAC,SAAJ,CAArB;AACA,EAAA,EAAE,CAAC,SAAH,CAAc,KAAK,CAAC,OAAN,CAAe,IAA7B,IAAqC;AACnC,IAAA,QADmC;AAEnC,IAAA;AAFmC,GAArC;;AAKA,MAAI,CAAC,OAAO,CAAC,SAAT,IAAsB,CAAC,OAAO,CAAC,SAAR,CAAkB,KAA7C,EAAoD;AAClD,IAAA,QAAQ;AACT;AACF;;AAED,SAAS,MAAT,CAAiB,EAAjB,EAAkC,OAAlC,EAAiE,KAAjE,EAA6E;AAC3E,MAAI,CAAC,EAAE,CAAC,SAAR,EAAmB;AAEnB,QAAM;AAAE,IAAA,QAAF;AAAY,IAAA;AAAZ,MAAwB,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,CAA9B;AAEA,EAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,QAArC,EAA+C,OAA/C;AAEA,SAAO,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,CAAP;AACD;;AAED,OAAO,MAAM,MAAM,GAAG;AACpB,EAAA,QADoB;AAEpB,EAAA;AAFoB,CAAf;AAKP,eAAe,MAAf","sourcesContent":["import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.context!._uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n if (!el._onResize) return\n\n const { callback, options } = el._onResize[vnode.context!._uid]\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.context!._uid]\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/resize/index.ts"],"names":[],"mappings":"AAQA,SAAS,QAAT,CAAmB,EAAnB,EAAoC,OAApC,EAAmE,KAAnE,EAA+E;AAC7E,QAAM,QAAQ,GAAG,OAAO,CAAC,KAAzB;AACA,QAAM,OAAO,GAAG,OAAO,CAAC,OAAR,IAAmB;AAAE,IAAA,OAAO,EAAE;AAAX,GAAnC;AAEA,EAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,QAAlC,EAA4C,OAA5C;AAEA,EAAA,EAAE,CAAC,SAAH,GAAe,MAAM,CAAC,EAAE,CAAC,SAAJ,CAArB;AACA,EAAA,EAAE,CAAC,SAAH,CAAc,KAAK,CAAC,OAAN,CAAe,IAA7B,IAAqC;AACnC,IAAA,QADmC;AAEnC,IAAA;AAFmC,GAArC;;AAKA,MAAI,CAAC,OAAO,CAAC,SAAT,IAAsB,CAAC,OAAO,CAAC,SAAR,CAAkB,KAA7C,EAAoD;AAClD,IAAA,QAAQ;AACT;AACF;;AAED,SAAS,MAAT,CAAiB,EAAjB,EAAkC,OAAlC,EAAiE,KAAjE,EAA6E;AAAA;;AAC3E,MAAI,mBAAC,EAAE,CAAC,SAAJ,aAAC,cAAe,KAAK,CAAC,OAAN,CAAe,IAA9B,CAAD,CAAJ,EAA0C;AAE1C,QAAM;AAAE,IAAA,QAAF;AAAY,IAAA;AAAZ,MAAwB,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,CAA9B;AAEA,EAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,QAArC,EAA+C,OAA/C;AAEA,SAAO,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,OAAN,CAAe,IAA5B,CAAP;AACD;;AAED,OAAO,MAAM,MAAM,GAAG;AACpB,EAAA,QADoB;AAEpB,EAAA;AAFoB,CAAf;AAKP,eAAe,MAAf","sourcesContent":["import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.context!._uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n if (!el._onResize?.[vnode.context!._uid]) return\n\n const { callback, options } = el._onResize[vnode.context!._uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.context!._uid]\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\n"],"sourceRoot":"","file":"index.js"}
@@ -10,10 +10,6 @@ function transform(el, value) {
10
10
  el.style.webkitTransform = value;
11
11
  }
12
12
 
13
- function opacity(el, value) {
14
- el.style.opacity = value.toString();
15
- }
16
-
17
13
  function isTouchEvent(e) {
18
14
  return e.constructor.name === 'TouchEvent';
19
15
  }
@@ -97,13 +93,11 @@ const ripples = {
97
93
  animation.classList.add('v-ripple__animation--enter');
98
94
  animation.classList.add('v-ripple__animation--visible');
99
95
  transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
100
- opacity(animation, 0);
101
96
  animation.dataset.activated = String(performance.now());
102
97
  setTimeout(() => {
103
98
  animation.classList.remove('v-ripple__animation--enter');
104
99
  animation.classList.add('v-ripple__animation--in');
105
100
  transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
106
- opacity(animation, 0.25);
107
101
  }, 0);
108
102
  },
109
103
 
@@ -118,7 +112,6 @@ const ripples = {
118
112
  setTimeout(() => {
119
113
  animation.classList.remove('v-ripple__animation--in');
120
114
  animation.classList.add('v-ripple__animation--out');
121
- opacity(animation, 0);
122
115
  setTimeout(() => {
123
116
  const ripples = el.getElementsByClassName('v-ripple__animation');
124
117
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/ripple/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { rippleStop?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e.rippleStop) return\n\n // Don't allow the event to trigger ripples on any other elements\n e.rippleStop = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/ripple/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { rippleStop?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e.rippleStop) return\n\n // Don't allow the event to trigger ripples on any other elements\n e.rippleStop = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n"],"sourceRoot":"","file":"index.js"}