@dimailn/vuetify 2.7.2-alpha6 → 2.7.2-alpha7

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 (126) hide show
  1. package/dist/vuetify.js +35 -34
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VAutocomplete/VAutocomplete.js +1 -1
  6. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  7. package/es5/components/VDataIterator/VDataIterator.js +1 -1
  8. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  9. package/es5/components/VDataTable/Row.js +5 -5
  10. package/es5/components/VDataTable/Row.js.map +1 -1
  11. package/es5/components/VDataTable/VDataTable.js +1 -1
  12. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  13. package/es5/components/VDataTable/VVirtualTable.js +1 -1
  14. package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
  15. package/es5/components/VDialog/VDialog.js +1 -1
  16. package/es5/components/VDialog/VDialog.js.map +1 -1
  17. package/es5/components/VExpansionPanel/VExpansionPanelContent.js +1 -1
  18. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  19. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js +1 -1
  20. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  21. package/es5/components/VInput/VInput.js +1 -1
  22. package/es5/components/VInput/VInput.js.map +1 -1
  23. package/es5/components/VList/VListGroup.js +1 -1
  24. package/es5/components/VList/VListGroup.js.map +1 -1
  25. package/es5/components/VMenu/VMenu.js +3 -2
  26. package/es5/components/VMenu/VMenu.js.map +1 -1
  27. package/es5/components/VStepper/VStepperContent.js +1 -1
  28. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  29. package/es5/components/VStepper/VStepperStep.js +1 -1
  30. package/es5/components/VStepper/VStepperStep.js.map +1 -1
  31. package/es5/components/VTextField/VTextField.js +1 -1
  32. package/es5/components/VTextField/VTextField.js.map +1 -1
  33. package/es5/components/VTreeview/VTreeviewNode.js +1 -1
  34. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  35. package/es5/framework.js +1 -1
  36. package/es5/mixins/activatable/index.js +1 -1
  37. package/es5/mixins/activatable/index.js.map +1 -1
  38. package/es5/mixins/applicationable/index.js +1 -1
  39. package/es5/mixins/applicationable/index.js.map +1 -1
  40. package/es5/mixins/detachable/index.js +3 -3
  41. package/es5/mixins/detachable/index.js.map +1 -1
  42. package/es5/mixins/groupable/index.js +1 -1
  43. package/es5/mixins/groupable/index.js.map +1 -1
  44. package/es5/mixins/intersectable/index.js +1 -1
  45. package/es5/mixins/intersectable/index.js.map +1 -1
  46. package/es5/mixins/menuable/index.js +1 -1
  47. package/es5/mixins/menuable/index.js.map +1 -1
  48. package/es5/mixins/overlayable/index.js +1 -1
  49. package/es5/mixins/overlayable/index.js.map +1 -1
  50. package/es5/mixins/translatable/index.js +1 -1
  51. package/es5/mixins/translatable/index.js.map +1 -1
  52. package/es5/mixins/validatable/index.js +2 -2
  53. package/es5/mixins/validatable/index.js.map +1 -1
  54. package/lib/components/VAutocomplete/VAutocomplete.js +1 -1
  55. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  56. package/lib/components/VDataIterator/VDataIterator.js +1 -1
  57. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  58. package/lib/components/VDataTable/Row.js +5 -5
  59. package/lib/components/VDataTable/Row.js.map +1 -1
  60. package/lib/components/VDataTable/VDataTable.js +1 -1
  61. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  62. package/lib/components/VDataTable/VVirtualTable.js +1 -1
  63. package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
  64. package/lib/components/VDialog/VDialog.js +1 -1
  65. package/lib/components/VDialog/VDialog.js.map +1 -1
  66. package/lib/components/VExpansionPanel/VExpansionPanelContent.js +1 -1
  67. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  68. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js +1 -1
  69. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  70. package/lib/components/VInput/VInput.js +1 -1
  71. package/lib/components/VInput/VInput.js.map +1 -1
  72. package/lib/components/VList/VListGroup.js +1 -1
  73. package/lib/components/VList/VListGroup.js.map +1 -1
  74. package/lib/components/VMenu/VMenu.js +3 -2
  75. package/lib/components/VMenu/VMenu.js.map +1 -1
  76. package/lib/components/VStepper/VStepperContent.js +1 -1
  77. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  78. package/lib/components/VStepper/VStepperStep.js +1 -1
  79. package/lib/components/VStepper/VStepperStep.js.map +1 -1
  80. package/lib/components/VTextField/VTextField.js +1 -1
  81. package/lib/components/VTextField/VTextField.js.map +1 -1
  82. package/lib/components/VTreeview/VTreeviewNode.js +1 -1
  83. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  84. package/lib/framework.js +1 -1
  85. package/lib/mixins/activatable/index.js +1 -1
  86. package/lib/mixins/activatable/index.js.map +1 -1
  87. package/lib/mixins/applicationable/index.js +1 -1
  88. package/lib/mixins/applicationable/index.js.map +1 -1
  89. package/lib/mixins/detachable/index.js +3 -3
  90. package/lib/mixins/detachable/index.js.map +1 -1
  91. package/lib/mixins/groupable/index.js +1 -1
  92. package/lib/mixins/groupable/index.js.map +1 -1
  93. package/lib/mixins/intersectable/index.js +1 -1
  94. package/lib/mixins/intersectable/index.js.map +1 -1
  95. package/lib/mixins/menuable/index.js +1 -1
  96. package/lib/mixins/menuable/index.js.map +1 -1
  97. package/lib/mixins/overlayable/index.js +1 -1
  98. package/lib/mixins/overlayable/index.js.map +1 -1
  99. package/lib/mixins/translatable/index.js +1 -1
  100. package/lib/mixins/translatable/index.js.map +1 -1
  101. package/lib/mixins/validatable/index.js +2 -2
  102. package/lib/mixins/validatable/index.js.map +1 -1
  103. package/package.json +1 -1
  104. package/src/components/VAutocomplete/VAutocomplete.ts +1 -1
  105. package/src/components/VDataIterator/VDataIterator.ts +1 -1
  106. package/src/components/VDataTable/VDataTable.ts +1 -1
  107. package/src/components/VDataTable/VVirtualTable.ts +1 -1
  108. package/src/components/VDialog/VDialog.ts +1 -1
  109. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +1 -1
  110. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +1 -1
  111. package/src/components/VInput/VInput.ts +1 -1
  112. package/src/components/VList/VListGroup.ts +1 -1
  113. package/src/components/VMenu/VMenu.ts +1 -0
  114. package/src/components/VStepper/VStepperContent.ts +1 -1
  115. package/src/components/VStepper/VStepperStep.ts +1 -1
  116. package/src/components/VTextField/VTextField.ts +1 -1
  117. package/src/components/VTreeview/VTreeviewNode.ts +1 -1
  118. package/src/mixins/activatable/index.ts +1 -1
  119. package/src/mixins/applicationable/index.ts +1 -1
  120. package/src/mixins/detachable/index.ts +5 -5
  121. package/src/mixins/groupable/index.ts +1 -1
  122. package/src/mixins/intersectable/index.ts +1 -1
  123. package/src/mixins/menuable/index.ts +1 -1
  124. package/src/mixins/overlayable/index.ts +1 -1
  125. package/src/mixins/translatable/index.ts +1 -1
  126. package/src/mixins/validatable/index.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDataTable/Row.ts"],"names":[],"mappings":"AAAA;AACA,SAAS,eAAT,EAA2C,CAA3C,QAAoD,KAApD,C,CAGA;;AACA,SAAS,oBAAT,EAA+B,WAA/B,QAAkD,oBAAlD;;AAEA,SAAS,OAAT,CAAkB,IAAlB,EAA2C;;;AACzC,SAAO,IAAK,CAAC,MAAN,KAAiB,CAAjB,IACL,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,QAAb,CAAsB,CAAA,EAAA,GAAA,IAAK,CAAC,CAAD,CAAL,MAAQ,IAAR,IAAQ,EAAA,KAAA,KAAA,CAAR,GAAQ,KAAA,CAAR,GAAQ,EAAA,CAAE,GAAhC,CADH;AAED;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,KADuB;AAG7B,EAAA,UAAU,EAAE,IAHiB;AAK7B,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE,KADJ;AAEL,IAAA,KAAK,EAAE,MAFF;AAGL,IAAA,IAAI,EAAE,MAHD;AAIL,IAAA,GAAG,EAAE;AAJA,GALsB;;AAY7B,EAAA,MAAM,GAAA;AACJ;AACA,UAAM,IAAI,GAAG,KAAK,MAAlB;AAEA,UAAM,OAAO,GAAG,KAAK,OAAL,CAAa,GAAb,CAAkB,MAAD,IAA4B;AAC3D,YAAM,QAAQ,GAAG,EAAjB;AACA,YAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,IAAN,EAAY,MAAM,CAAC,KAAnB,CAAlC;AAEA,YAAM,QAAQ,GAAG,MAAM,CAAC,KAAxB;AACA,YAAM,UAAU,GAAG,KAAK,MAAL,CAAY,cAAZ,CAA2B,QAA3B,KAAwC,KAAK,MAAL,CAAY,QAAZ,CAA3D;;AAEA,UAAI,UAAJ,EAAgB;AACd,QAAA,QAAQ,CAAC,IAAT,CAAc,GAAG,WAAW,CAAC,UAAU,CAAC;AACtC,UAAA,IAAI,EAAE,KAAK,IAD2B;AAEtC,UAAA,QAAQ,EAAE,KAF4B;AAGtC,UAAA,MAHsC;AAItC,UAAA,KAAK,EAAE,KAAK,KAJ0B;AAKtC,UAAA;AALsC,SAAD,CAAX,CAA5B;AAOD,OARD,MASK;AACH,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,IAAI,IAAT,GAAgB,KAAhB,GAAwB,MAAM,CAAC,KAAD,CAA5C;AACD;;AAED,YAAM,SAAS,GAAG,QAAQ,MAAM,CAAC,KAAP,IAAgB,OAAO,EAAjD;AAEA,aAAO,OAAO,CAAC,QAAD,CAAP,GACH,CAAC,CAAC,IAAD,EAAO;AACR,QAAA,KAAK,EAAE,CACL,SADK,EAEL,MAAM,CAAC,SAFF,EAGL;AACE,mCAAyB,MAAM,CAAC;AADlC,SAHK;AADC,OAAP,EAQA,QARA,CADE,GAUH,QAVJ;AAWD,KAjCe,CAAhB;AAmCA,WAAO,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,CAAR;AACD;;AApD4B,CAAD,CAA9B","sourcesContent":["// Types\nimport { defineComponent, VNode, PropType, h } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default defineComponent({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (): VNode {\n // const props = this.$props\n const data = this.$attrs\n\n const columns = this.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(this.item, header.value)\n\n const slotName = header.value\n const scopedSlot = this.$slots.hasOwnProperty(slotName) && this.$slots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: this.item,\n isMobile: false,\n header,\n index: this.index,\n value,\n })))\n }\n else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n"],"sourceRoot":"","file":"Row.js"}
1
+ {"version":3,"sources":["../../../src/components/VDataTable/Row.ts"],"names":[],"mappings":"AAAA;AACA,SAAS,eAAT,EAA2C,CAA3C,QAAoD,KAApD,C,CAGA;;AACA,SAAS,oBAAT,EAA+B,WAA/B,QAAkD,oBAAlD;;AAEA,SAAS,OAAT,CAAkB,IAAlB,EAA2C;;;AACzC,SAAO,IAAK,CAAC,MAAN,KAAiB,CAAjB,IACL,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,QAAb,CAAsB,CAAA,EAAA,GAAA,IAAK,CAAC,CAAD,CAAL,MAAQ,IAAR,IAAQ,EAAA,KAAA,KAAA,CAAR,GAAQ,KAAA,CAAR,GAAQ,EAAA,CAAE,GAAhC,CADH;AAED;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,KADuB;AAG7B,EAAA,UAAU,EAAE,IAHiB;AAK7B,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE,KADJ;AAEL,IAAA,KAAK,EAAE,MAFF;AAGL,IAAA,IAAI,EAAE,MAHD;AAIL,IAAA,GAAG,EAAE;AAJA,GALsB;;AAY7B,EAAA,MAAM,GAAA;AACJ,UAAM,KAAK,GAAG,KAAK,MAAnB;AACA,UAAM,IAAI,GAAG,KAAK,MAAlB;AAEA,UAAM,OAAO,GAAG,KAAK,CAAC,OAAN,CAAc,GAAd,CAAmB,MAAD,IAA4B;AAC5D,YAAM,QAAQ,GAAG,EAAjB;AACA,YAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAP,EAAa,MAAM,CAAC,KAApB,CAAlC;AAEA,YAAM,QAAQ,GAAG,MAAM,CAAC,KAAxB;AACA,YAAM,UAAU,GAAG,KAAK,MAAL,CAAY,cAAZ,CAA2B,QAA3B,KAAwC,KAAK,MAAL,CAAY,QAAZ,CAA3D;;AAEA,UAAI,UAAJ,EAAgB;AACd,QAAA,QAAQ,CAAC,IAAT,CAAc,GAAG,WAAW,CAAC,UAAU,CAAC;AACtC,UAAA,IAAI,EAAE,KAAK,CAAC,IAD0B;AAEtC,UAAA,QAAQ,EAAE,KAF4B;AAGtC,UAAA,MAHsC;AAItC,UAAA,KAAK,EAAE,KAAK,CAAC,KAJyB;AAKtC,UAAA;AALsC,SAAD,CAAX,CAA5B;AAOD,OARD,MASK;AACH,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,IAAI,IAAT,GAAgB,KAAhB,GAAwB,MAAM,CAAC,KAAD,CAA5C;AACD;;AAED,YAAM,SAAS,GAAG,QAAQ,MAAM,CAAC,KAAP,IAAgB,OAAO,EAAjD;AAEA,aAAO,OAAO,CAAC,QAAD,CAAP,GACH,CAAC,CAAC,IAAD,EAAO;AACR,QAAA,KAAK,EAAE,CACL,SADK,EAEL,MAAM,CAAC,SAFF,EAGL;AACE,mCAAyB,MAAM,CAAC;AADlC,SAHK;AADC,OAAP,EAQA,QARA,CADE,GAUH,QAVJ;AAWD,KAjCe,CAAhB;AAmCA,WAAO,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,CAAR;AACD;;AApD4B,CAAD,CAA9B","sourcesContent":["// Types\nimport { defineComponent, VNode, PropType, h } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default defineComponent({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (): VNode {\n const props = this.$props\n const data = this.$attrs\n\n const columns = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = this.$slots.hasOwnProperty(slotName) && this.$slots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n }\n else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n"],"sourceRoot":"","file":"Row.js"}
@@ -222,7 +222,7 @@ export default mixins(VDataIterator, Loadable, Mouse).extend({
222
222
  }
223
223
  },
224
224
 
225
- beforeDestroy() {
225
+ beforeUnmount() {
226
226
  if (this.calculateWidths) {
227
227
  window.removeEventListener('resize', this.calcWidths);
228
228
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDataTable/VDataTable.ts"],"names":[],"mappings":"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","sourcesContent":["import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren, h } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n RowStyleFunction,\n DataTableItemProps,\n DataTableFilterMode,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Mouse from '../../mixins/mouse'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses, mergeStyles } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction,\n filterMode: DataTableFilterMode,\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n if (filterMode === 'union') {\n // If the `search` property is empty and there are no custom filters in use, there is nothing to do.\n if (!(search && headersWithoutCustomFilters.length) && !headersWithCustomFilters.length) return items\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n if (headersWithCustomFilters.length && headersWithCustomFilters.every(filterFn(item, search, defaultFilter))) {\n return true\n }\n\n // Otherwise, the `search` property is used to filter columns without a custom filter.\n return (search && headersWithoutCustomFilters.some(filterFn(item, search, customFilter)))\n })\n } else if (filterMode === 'intersection') {\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n } else {\n return items\n }\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n Mouse,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator<DataTableHeader[]>,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator<typeof defaultFilter>,\n filterMode: {\n type: String,\n default: 'intersection',\n } as PropValidator<DataTableFilterMode>,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowClassFunction | string>,\n itemStyle: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowStyleFunction | string>,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record<string, DataTableCompareFunction> {\n return this.computedHeaders.reduce<Record<string, DataTableCompareFunction>>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record<string, any> {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n groupByText (): string {\n return this.headers?.find(header => header.value === this.internalGroupBy?.[0])?.text ?? ''\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeDestroy () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(\n items,\n search,\n this.headersWithCustomFilters,\n this.headersWithoutCustomFilters,\n this.customFilter,\n this.filterMode\n )\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const data = {\n ...VDataIterator.methods.createItemProps.call(this, item, index),\n headers: this.computedHeaders,\n }\n\n return {\n ...data,\n class: {\n 'v-data-table__selected': data.isSelected,\n },\n ...this.getDefaultMouseEventHandlers(':row', () => data, true),\n // TODO: the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n onClick: (event: MouseEvent) => this.$emit('click:row', item, data, event)\n }\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [h('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return h('colgroup', this.computedHeaders.map(header => {\n return h('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = h('th', {\n class: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = h('tr', {\n class: 'v-data-table__progress',\n }, [th])\n\n return h('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n onSort: props.sort,\n onGroup: props.group,\n 'onToggle-select-all': this.toggleSelectAll\n }\n\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$slots)\n children.push(h(VDataTableHeader, {\n ...data,\n\n }, scopedSlots))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return h('tr', {\n class: 'v-data-table__empty-wrapper',\n }, [\n h('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup<any>[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.openCache[group.name] = true\n\n if (this.$slots.group) {\n return this.$slots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n h('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.openCache[group] = !this.openCache[group]\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$slots['group.header']) {\n children.unshift(h('template', { slot: 'column.header' }, [\n this.$slots['group.header']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = h(VBtn, {\n class: 'ma-0',\n icon: true,\n small: true,\n onClick: toggleFn\n }, [h(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = h(VBtn, {\n class: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [h(VIcon, ['$close'])])\n\n const column = h('td', {\n class: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${this.groupByText}: ${group}`, remove])\n\n children.unshift(h('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$slots['group.summary']) {\n children.push(h('template', { slot: 'column.summary' }, [\n this.$slots['group.summary']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return h(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$slots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$slots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n\n if (this.isExpanded(item)) {\n rows.push(this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$slots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = h('tr', {\n class: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return h(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n h('template', { slot: 'row.header' }, [headerRow]),\n h('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record<string, boolean> = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$slots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => h(VSimpleCheckbox, {\n class: 'v-data-table__checkbox',\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n onInput: (val: boolean) => data.select(val),\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => h(VIcon, {\n class: ['v-data-table__expand-icon', {\n 'v-data-table__expand-icon--active': data.isExpanded,\n }],\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n }\n }, [this.expandIcon])\n }\n\n return h(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n style: mergeStyles({}, getPropertyFromItem(item, this.itemStyle)),\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n on: data.on,\n }, scopedSlots)\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$slots.body) {\n return this.$slots.body!(data)\n }\n\n return h('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$slots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n 'onUpdate:options': (value: any) => props.updateOptions(value),\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', {\n ...data,\n widths: this.widths,\n headers: this.computedHeaders\n }, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(h(VDataFooter, {\n ...data\n }, getPrefixedScopedSlots('footer.', this.$slots)))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return h(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return h(VSimpleTable, {\n ...simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n 'v-data-table--selectable': this.showSelect,\n },\n }, {\n default: () => [\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n ],\n top: getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true),\n bottom: this.genFooters(props)\n })\n }\n },\n\n render (): VNode {\n return h(VData, {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n 'onUpdate:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'onUpdate:page': (v: number) => this.$emit('update:page', v),\n 'onUpdate:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'onUpdate:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'onUpdate:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'onUpdate:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'onUpdate:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n onPagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'onCurrent-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'onPage-count': (v: number) => this.$emit('page-count', v),\n }, this.genDefaultScopedSlot)\n },\n})\n"],"sourceRoot":"","file":"VDataTable.js"}
1
+ {"version":3,"sources":["../../../src/components/VDataTable/VDataTable.ts"],"names":[],"mappings":"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","sourcesContent":["import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren, h } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n RowStyleFunction,\n DataTableItemProps,\n DataTableFilterMode,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Mouse from '../../mixins/mouse'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses, mergeStyles } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction,\n filterMode: DataTableFilterMode,\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n if (filterMode === 'union') {\n // If the `search` property is empty and there are no custom filters in use, there is nothing to do.\n if (!(search && headersWithoutCustomFilters.length) && !headersWithCustomFilters.length) return items\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n if (headersWithCustomFilters.length && headersWithCustomFilters.every(filterFn(item, search, defaultFilter))) {\n return true\n }\n\n // Otherwise, the `search` property is used to filter columns without a custom filter.\n return (search && headersWithoutCustomFilters.some(filterFn(item, search, customFilter)))\n })\n } else if (filterMode === 'intersection') {\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n } else {\n return items\n }\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n Mouse,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator<DataTableHeader[]>,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator<typeof defaultFilter>,\n filterMode: {\n type: String,\n default: 'intersection',\n } as PropValidator<DataTableFilterMode>,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowClassFunction | string>,\n itemStyle: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowStyleFunction | string>,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record<string, DataTableCompareFunction> {\n return this.computedHeaders.reduce<Record<string, DataTableCompareFunction>>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record<string, any> {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n groupByText (): string {\n return this.headers?.find(header => header.value === this.internalGroupBy?.[0])?.text ?? ''\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeUnmount () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(\n items,\n search,\n this.headersWithCustomFilters,\n this.headersWithoutCustomFilters,\n this.customFilter,\n this.filterMode\n )\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const data = {\n ...VDataIterator.methods.createItemProps.call(this, item, index),\n headers: this.computedHeaders,\n }\n\n return {\n ...data,\n class: {\n 'v-data-table__selected': data.isSelected,\n },\n ...this.getDefaultMouseEventHandlers(':row', () => data, true),\n // TODO: the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n onClick: (event: MouseEvent) => this.$emit('click:row', item, data, event)\n }\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [h('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return h('colgroup', this.computedHeaders.map(header => {\n return h('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = h('th', {\n class: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = h('tr', {\n class: 'v-data-table__progress',\n }, [th])\n\n return h('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n onSort: props.sort,\n onGroup: props.group,\n 'onToggle-select-all': this.toggleSelectAll\n }\n\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$slots)\n children.push(h(VDataTableHeader, {\n ...data,\n\n }, scopedSlots))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return h('tr', {\n class: 'v-data-table__empty-wrapper',\n }, [\n h('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup<any>[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.openCache[group.name] = true\n\n if (this.$slots.group) {\n return this.$slots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n h('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.openCache[group] = !this.openCache[group]\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$slots['group.header']) {\n children.unshift(h('template', { slot: 'column.header' }, [\n this.$slots['group.header']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = h(VBtn, {\n class: 'ma-0',\n icon: true,\n small: true,\n onClick: toggleFn\n }, [h(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = h(VBtn, {\n class: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [h(VIcon, ['$close'])])\n\n const column = h('td', {\n class: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${this.groupByText}: ${group}`, remove])\n\n children.unshift(h('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$slots['group.summary']) {\n children.push(h('template', { slot: 'column.summary' }, [\n this.$slots['group.summary']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return h(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$slots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$slots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n if (this.isExpanded(item)) {\n rows.push(this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$slots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = h('tr', {\n class: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return h(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n h('template', { slot: 'row.header' }, [headerRow]),\n h('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record<string, boolean> = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$slots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => h(VSimpleCheckbox, {\n class: 'v-data-table__checkbox',\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n onInput: (val: boolean) => data.select(val),\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => h(VIcon, {\n class: ['v-data-table__expand-icon', {\n 'v-data-table__expand-icon--active': data.isExpanded,\n }],\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n }\n }, [this.expandIcon])\n }\n\n return h(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n style: mergeStyles({}, getPropertyFromItem(item, this.itemStyle)),\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n on: data.on,\n }, scopedSlots)\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$slots.body) {\n return this.$slots.body!(data)\n }\n\n return h('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$slots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n 'onUpdate:options': (value: any) => props.updateOptions(value),\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', {\n ...data,\n widths: this.widths,\n headers: this.computedHeaders\n }, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(h(VDataFooter, {\n ...data\n }, getPrefixedScopedSlots('footer.', this.$slots)))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return h(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return h(VSimpleTable, {\n ...simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n 'v-data-table--selectable': this.showSelect,\n },\n }, {\n default: () => [\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n ],\n top: getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true),\n bottom: this.genFooters(props)\n })\n }\n },\n\n render (): VNode {\n return h(VData, {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n 'onUpdate:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'onUpdate:page': (v: number) => this.$emit('update:page', v),\n 'onUpdate:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'onUpdate:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'onUpdate:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'onUpdate:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'onUpdate:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n onPagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'onCurrent-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'onPage-count': (v: number) => this.$emit('page-count', v),\n }, this.genDefaultScopedSlot)\n },\n})\n"],"sourceRoot":"","file":"VDataTable.js"}
@@ -90,7 +90,7 @@ export default baseMixins.extend({
90
90
  });
91
91
  },
92
92
 
93
- beforeDestroy() {
93
+ beforeUnmount() {
94
94
  this.$refs.table.removeEventListener('scroll', this.scrollDebounce);
95
95
  },
96
96
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDataTable/VVirtualTable.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\nimport './VVirtualTable.sass'\n\n// Components\nimport VSimpleTable from './VSimpleTable'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utiltiies\nimport { convertToUnit, debounce, getSlot } from '../../util/helpers'\n\n// Types\nconst baseMixins = mixins(VSimpleTable)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n table: HTMLElement\n }\n cachedItems: VNodeChildren\n}\n\nexport default baseMixins.extend({\n name: 'v-virtual-table',\n\n props: {\n chunkSize: {\n type: Number,\n default: 25,\n },\n headerHeight: {\n type: Number,\n default: 48,\n },\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator<any[]>,\n rowHeight: {\n type: Number,\n default: 48,\n },\n },\n\n data: () => ({\n scrollTop: 0,\n oldChunk: 0,\n scrollDebounce: null as any,\n invalidateCache: false,\n }),\n\n computed: {\n itemsLength (): number {\n return this.items.length\n },\n totalHeight (): number {\n return (this.itemsLength * this.rowHeight) + this.headerHeight\n },\n topIndex (): number {\n return Math.floor(this.scrollTop / this.rowHeight)\n },\n chunkIndex (): number {\n return Math.floor(this.topIndex / this.chunkSize)\n },\n startIndex (): number {\n return Math.max(0, (this.chunkIndex * this.chunkSize) - this.chunkSize)\n },\n offsetTop (): number {\n return Math.max(0, this.startIndex * this.rowHeight)\n },\n stopIndex (): number {\n return Math.min(this.startIndex + (this.chunkSize * 3), this.itemsLength)\n },\n offsetBottom (): number {\n return Math.max(0, (this.itemsLength - this.stopIndex - this.startIndex) * this.rowHeight)\n },\n },\n\n watch: {\n chunkIndex (newValue, oldValue) {\n this.oldChunk = oldValue\n },\n items () {\n this.cachedItems = null\n this.$refs.table.scrollTop = 0\n },\n },\n\n created () {\n this.cachedItems = null\n },\n\n mounted () {\n this.scrollDebounce = debounce(this.onScroll, 50)\n\n this.$refs.table.addEventListener('scroll', this.scrollDebounce, { passive: true })\n },\n\n beforeDestroy () {\n this.$refs.table.removeEventListener('scroll', this.scrollDebounce)\n },\n\n methods: {\n createStyleHeight (height: number) {\n return {\n height: `${height}px`,\n }\n },\n genBody () {\n if (this.cachedItems === null || this.chunkIndex !== this.oldChunk) {\n this.cachedItems = this.genItems()\n this.oldChunk = this.chunkIndex\n }\n\n return h('tbody', [\n h('tr', { style: this.createStyleHeight(this.offsetTop) }),\n this.cachedItems,\n h('tr', { style: this.createStyleHeight(this.offsetBottom) }),\n ])\n },\n genItems () {\n return this.$slots.items!({ items: this.items.slice(this.startIndex, this.stopIndex) })\n },\n onScroll (e: Event) {\n const target = e.target as Element\n this.scrollTop = target.scrollTop\n },\n genTable () {\n return h('div', {\n ref: 'table',\n class: 'v-virtual-table__table',\n }, [\n h('table', [\n this.$slots['body.before'],\n this.genBody(),\n this.$slots['body.after'],\n ]),\n ])\n },\n genWrapper () {\n return h('div', {\n class: 'v-virtual-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.genTable(),\n ])\n },\n },\n\n render (): VNode {\n return h('div', {\n class: 'v-data-table v-virtual-table',\n class: this.classes,\n }, [\n getSlot(this, 'top'),\n this.genWrapper(),\n getSlot(this, 'bottom'),\n ])\n },\n})\n"],"sourceRoot":"","file":"VVirtualTable.js"}
1
+ {"version":3,"sources":["../../../src/components/VDataTable/VVirtualTable.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\nimport './VVirtualTable.sass'\n\n// Components\nimport VSimpleTable from './VSimpleTable'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utiltiies\nimport { convertToUnit, debounce, getSlot } from '../../util/helpers'\n\n// Types\nconst baseMixins = mixins(VSimpleTable)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n table: HTMLElement\n }\n cachedItems: VNodeChildren\n}\n\nexport default baseMixins.extend({\n name: 'v-virtual-table',\n\n props: {\n chunkSize: {\n type: Number,\n default: 25,\n },\n headerHeight: {\n type: Number,\n default: 48,\n },\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator<any[]>,\n rowHeight: {\n type: Number,\n default: 48,\n },\n },\n\n data: () => ({\n scrollTop: 0,\n oldChunk: 0,\n scrollDebounce: null as any,\n invalidateCache: false,\n }),\n\n computed: {\n itemsLength (): number {\n return this.items.length\n },\n totalHeight (): number {\n return (this.itemsLength * this.rowHeight) + this.headerHeight\n },\n topIndex (): number {\n return Math.floor(this.scrollTop / this.rowHeight)\n },\n chunkIndex (): number {\n return Math.floor(this.topIndex / this.chunkSize)\n },\n startIndex (): number {\n return Math.max(0, (this.chunkIndex * this.chunkSize) - this.chunkSize)\n },\n offsetTop (): number {\n return Math.max(0, this.startIndex * this.rowHeight)\n },\n stopIndex (): number {\n return Math.min(this.startIndex + (this.chunkSize * 3), this.itemsLength)\n },\n offsetBottom (): number {\n return Math.max(0, (this.itemsLength - this.stopIndex - this.startIndex) * this.rowHeight)\n },\n },\n\n watch: {\n chunkIndex (newValue, oldValue) {\n this.oldChunk = oldValue\n },\n items () {\n this.cachedItems = null\n this.$refs.table.scrollTop = 0\n },\n },\n\n created () {\n this.cachedItems = null\n },\n\n mounted () {\n this.scrollDebounce = debounce(this.onScroll, 50)\n\n this.$refs.table.addEventListener('scroll', this.scrollDebounce, { passive: true })\n },\n\n beforeUnmount () {\n this.$refs.table.removeEventListener('scroll', this.scrollDebounce)\n },\n\n methods: {\n createStyleHeight (height: number) {\n return {\n height: `${height}px`,\n }\n },\n genBody () {\n if (this.cachedItems === null || this.chunkIndex !== this.oldChunk) {\n this.cachedItems = this.genItems()\n this.oldChunk = this.chunkIndex\n }\n\n return h('tbody', [\n h('tr', { style: this.createStyleHeight(this.offsetTop) }),\n this.cachedItems,\n h('tr', { style: this.createStyleHeight(this.offsetBottom) }),\n ])\n },\n genItems () {\n return this.$slots.items!({ items: this.items.slice(this.startIndex, this.stopIndex) })\n },\n onScroll (e: Event) {\n const target = e.target as Element\n this.scrollTop = target.scrollTop\n },\n genTable () {\n return h('div', {\n ref: 'table',\n class: 'v-virtual-table__table',\n }, [\n h('table', [\n this.$slots['body.before'],\n this.genBody(),\n this.$slots['body.after'],\n ]),\n ])\n },\n genWrapper () {\n return h('div', {\n class: 'v-virtual-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.genTable(),\n ])\n },\n },\n\n render (): VNode {\n return h('div', {\n class: 'v-data-table v-virtual-table',\n class: this.classes,\n }, [\n getSlot(this, 'top'),\n this.genWrapper(),\n getSlot(this, 'bottom'),\n ])\n },\n})\n"],"sourceRoot":"","file":"VVirtualTable.js"}
@@ -121,7 +121,7 @@ export default baseMixins.extend({
121
121
  });
122
122
  },
123
123
 
124
- beforeDestroy() {
124
+ beforeUnmount() {
125
125
  if (typeof window !== 'undefined') this.unbind();
126
126
  },
127
127
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import {Transition, h, vShow, withDirectives} from 'vue'\n// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$slots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark\n }, [\n h('div', {\n class: this.contentClasses,\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n onKeydown: this.onKeydown,\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n appear: true\n }, [content])\n },\n genInnerContent () {\n const directives = [\n [\n ClickOutside,\n {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n }\n ],\n [\n vShow,\n this.isActive\n ]\n ]\n const data: VNodeData = {\n class: this.classes,\n tabindex: this.isActive ? 0 : undefined,\n ref: 'dialog',\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return withDirectives(\n h('div', data, this.getContentSlot()),\n directives\n )\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-dialog__container', {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }]\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
1
+ {"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import {Transition, h, vShow, withDirectives} from 'vue'\n// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$slots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeUnmount () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark\n }, [\n h('div', {\n class: this.contentClasses,\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n onKeydown: this.onKeydown,\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n appear: true\n }, [content])\n },\n genInnerContent () {\n const directives = [\n [\n ClickOutside,\n {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n }\n ],\n [\n vShow,\n this.isActive\n ]\n ]\n const data: VNodeData = {\n class: this.classes,\n tabindex: this.isActive ? 0 : undefined,\n ref: 'dialog',\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return withDirectives(\n h('div', data, this.getContentSlot()),\n directives\n )\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-dialog__container', {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }]\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
@@ -37,7 +37,7 @@ export default baseMixins.extend({
37
37
  this.expansionPanel.registerContent(this);
38
38
  },
39
39
 
40
- beforeDestroy() {
40
+ beforeUnmount() {
41
41
  this.expansionPanel.unregisterContent();
42
42
  },
43
43
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VExpansionPanel/VExpansionPanelContent.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,EAAW,KAAX,EAAkB,cAAlB,QAAuC,KAAvC;AAGA,SAAS,iBAAT,QAAkC,gBAAlC,C,CAEA;;AACA,OAAO,QAAP,MAAqB,uBAArB;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,SAAS,MAAM,IAAI,iBAAnB,QAA4C,0BAA5C,C,CAEA;;AACA,SAAS,OAAT,QAAwB,oBAAxB;AACA,OAAO,MAAP,MAAmC,mBAAnC;AAKA,MAAM,UAAU,GAAG,MAAM,CACvB,QADuB,EAEvB,SAFuB,EAGvB,iBAAiB,CAAwC,gBAAxC,EAA0D,2BAA1D,EAAuF,mBAAvF,CAHM,CAAzB;AAUA;;AACA,eAAe,UAAU,CAAC,MAAX,CAAkB;AAC/B,EAAA,IAAI,EAAE,2BADyB;AAG/B,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,QAAQ,EAAE;AADC,GAAP,CAHyB;AAO/B,EAAA,QAAQ,EAAE;AACR,IAAA,cAAc,GAAA;AACZ,aAAO,KAAK,cAAL,CAAoB,QAA3B;AACD;;AAHO,GAPqB;AAa/B,EAAA,KAAK,EAAE;AACL,IAAA,cAAc,EAAE;AACd,MAAA,SAAS,EAAE,IADG;;AAEd,MAAA,OAAO,CAAE,GAAF,EAAO,MAAP,EAAa;AAClB,YAAI,GAAJ,EAAS,KAAK,QAAL,GAAgB,IAAhB;AAET,YAAI,MAAM,IAAI,IAAd,EAAoB,KAAK,QAAL,GAAgB,GAAhB,CAApB,KACK,KAAK,SAAL,CAAe,MAAM,KAAK,QAAL,GAAgB,GAArC;AACN;;AAPa;AADX,GAbwB;;AAyB/B,EAAA,OAAO,GAAA;AACL,SAAK,cAAL,CAAoB,eAApB,CAAoC,IAApC;AACD,GA3B8B;;AA6B/B,EAAA,aAAa,GAAA;AACX,SAAK,cAAL,CAAoB,iBAApB;AACD,GA/B8B;;AAiC/B,EAAA,MAAM,GAAA;AACJ,WAAO,CAAC,CAAC,iBAAD,EAAoB,KAAK,eAAL,CAAqB,MAAM,CACrD,cAAc,CAAC,CAAC,CAAC,KAAD,EAAQ,KAAK,kBAAL,CAAwB,KAAK,KAA7B,EAAoC;AAC1D,MAAA,KAAK,EAAE;AADmD,KAApC,CAAR,EAEZ,CACF,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAT,KAAR,EAAsD,OAAO,CAAC,IAAD,EAAO,SAAP,EAAkB;AAAE,MAAA,IAAI,EAAE,KAAK;AAAb,KAAlB,CAA7D,CADC,CAFY,CAAF,EAIV,CACF,CACE,KADF,EAEE,KAAK,QAFP,CADE,CAJU,CADuC,CAA3B,CAApB,CAAR;AAYD;;AA9C8B,CAAlB,CAAf","sourcesContent":["import {h, vShow, withDirectives} from 'vue'\n// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor<Vue>>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n expansionPanel: InstanceType<typeof VExpansionPanel>\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n withDirectives(h('div', this.setBackgroundColor(this.color, {\n class: 'v-expansion-panel-content'\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this, 'default', { open: this.isActive })),\n ]), [\n [\n vShow,\n this.isActive\n ]\n ]),\n ]))\n },\n})\n"],"sourceRoot":"","file":"VExpansionPanelContent.js"}
1
+ {"version":3,"sources":["../../../src/components/VExpansionPanel/VExpansionPanelContent.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,EAAW,KAAX,EAAkB,cAAlB,QAAuC,KAAvC;AAGA,SAAS,iBAAT,QAAkC,gBAAlC,C,CAEA;;AACA,OAAO,QAAP,MAAqB,uBAArB;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,SAAS,MAAM,IAAI,iBAAnB,QAA4C,0BAA5C,C,CAEA;;AACA,SAAS,OAAT,QAAwB,oBAAxB;AACA,OAAO,MAAP,MAAmC,mBAAnC;AAKA,MAAM,UAAU,GAAG,MAAM,CACvB,QADuB,EAEvB,SAFuB,EAGvB,iBAAiB,CAAwC,gBAAxC,EAA0D,2BAA1D,EAAuF,mBAAvF,CAHM,CAAzB;AAUA;;AACA,eAAe,UAAU,CAAC,MAAX,CAAkB;AAC/B,EAAA,IAAI,EAAE,2BADyB;AAG/B,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,QAAQ,EAAE;AADC,GAAP,CAHyB;AAO/B,EAAA,QAAQ,EAAE;AACR,IAAA,cAAc,GAAA;AACZ,aAAO,KAAK,cAAL,CAAoB,QAA3B;AACD;;AAHO,GAPqB;AAa/B,EAAA,KAAK,EAAE;AACL,IAAA,cAAc,EAAE;AACd,MAAA,SAAS,EAAE,IADG;;AAEd,MAAA,OAAO,CAAE,GAAF,EAAO,MAAP,EAAa;AAClB,YAAI,GAAJ,EAAS,KAAK,QAAL,GAAgB,IAAhB;AAET,YAAI,MAAM,IAAI,IAAd,EAAoB,KAAK,QAAL,GAAgB,GAAhB,CAApB,KACK,KAAK,SAAL,CAAe,MAAM,KAAK,QAAL,GAAgB,GAArC;AACN;;AAPa;AADX,GAbwB;;AAyB/B,EAAA,OAAO,GAAA;AACL,SAAK,cAAL,CAAoB,eAApB,CAAoC,IAApC;AACD,GA3B8B;;AA6B/B,EAAA,aAAa,GAAA;AACX,SAAK,cAAL,CAAoB,iBAApB;AACD,GA/B8B;;AAiC/B,EAAA,MAAM,GAAA;AACJ,WAAO,CAAC,CAAC,iBAAD,EAAoB,KAAK,eAAL,CAAqB,MAAM,CACrD,cAAc,CAAC,CAAC,CAAC,KAAD,EAAQ,KAAK,kBAAL,CAAwB,KAAK,KAA7B,EAAoC;AAC1D,MAAA,KAAK,EAAE;AADmD,KAApC,CAAR,EAEZ,CACF,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAT,KAAR,EAAsD,OAAO,CAAC,IAAD,EAAO,SAAP,EAAkB;AAAE,MAAA,IAAI,EAAE,KAAK;AAAb,KAAlB,CAA7D,CADC,CAFY,CAAF,EAIV,CACF,CACE,KADF,EAEE,KAAK,QAFP,CADE,CAJU,CADuC,CAA3B,CAApB,CAAR;AAYD;;AA9C8B,CAAlB,CAAf","sourcesContent":["import {h, vShow, withDirectives} from 'vue'\n// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor<Vue>>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n expansionPanel: InstanceType<typeof VExpansionPanel>\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeUnmount () {\n this.expansionPanel.unregisterContent()\n },\n\n render (): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n withDirectives(h('div', this.setBackgroundColor(this.color, {\n class: 'v-expansion-panel-content'\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this, 'default', { open: this.isActive })),\n ]), [\n [\n vShow,\n this.isActive\n ]\n ]),\n ]))\n },\n})\n"],"sourceRoot":"","file":"VExpansionPanelContent.js"}
@@ -57,7 +57,7 @@ export default baseMixins.extend({
57
57
  this.expansionPanel.registerHeader(this);
58
58
  },
59
59
 
60
- beforeDestroy() {
60
+ beforeUnmount() {
61
61
  this.expansionPanel.unregisterHeader();
62
62
  },
63
63
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, vShow, withDirectives} from 'vue'\n// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple, { Ripple } from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor<Vue>>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n $el: HTMLElement\n expansionPanel: InstanceType<typeof VExpansionPanel>\n}\n\nexport default baseMixins.extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n this.$emitLegacy('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions', { open: this.isActive }) ||\n [h(VIcon, this.expandIcon)]\n\n return h(VFadeTransition, [\n withDirectives(h('div', {\n class: ['v-expansion-panel-header__icon', {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n }]\n }, icon), [\n [\n vShow,\n !this.isDisabled\n ]\n ]),\n ])\n },\n },\n\n render (): VNode {\n const directives = [\n [\n Ripple,\n this.ripple\n ]\n ]\n\n return withDirectives(h('button', this.setBackgroundColor(this.color, {\n class: ['v-expansion-panel-header', this.classes],\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n ...this.$listeners,\n onClick: this.onClick,\n onMousedown: () => (this.hasMousedown = true),\n onMouseup: () => (this.hasMousedown = false)\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ]), directives)\n },\n})\n"],"sourceRoot":"","file":"VExpansionPanelHeader.js"}
1
+ {"version":3,"sources":["../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, vShow, withDirectives} from 'vue'\n// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple, { Ripple } from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor<Vue>>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n $el: HTMLElement\n expansionPanel: InstanceType<typeof VExpansionPanel>\n}\n\nexport default baseMixins.extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeUnmount () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n this.$emitLegacy('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions', { open: this.isActive }) ||\n [h(VIcon, this.expandIcon)]\n\n return h(VFadeTransition, [\n withDirectives(h('div', {\n class: ['v-expansion-panel-header__icon', {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n }]\n }, icon), [\n [\n vShow,\n !this.isDisabled\n ]\n ]),\n ])\n },\n },\n\n render (): VNode {\n const directives = [\n [\n Ripple,\n this.ripple\n ]\n ]\n\n return withDirectives(h('button', this.setBackgroundColor(this.color, {\n class: ['v-expansion-panel-header', this.classes],\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n ...this.$listeners,\n onClick: this.onClick,\n onMousedown: () => (this.hasMousedown = true),\n onMouseup: () => (this.hasMousedown = false)\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ]), directives)\n },\n})\n"],"sourceRoot":"","file":"VExpansionPanelHeader.js"}
@@ -119,7 +119,7 @@ export default baseMixins.extend({
119
119
 
120
120
  },
121
121
  watch: {
122
- value(val) {
122
+ modelValue(val) {
123
123
  this.lazyValue = val;
124
124
  }
125
125
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType, h, getCurrentInstance } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n modelValue: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.modelValue,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this.$.uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = /*(this.$options.model && this.$options.model.event) ||*/ 'update:modelValue'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return h('div', {\n class: 'v-input__control',\n title: this.attrs$.title,\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n ...(!hasListener\n ? {}\n : {\n onClick: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n onMouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n }),\n }, extraData)\n\n return h('div', {\n class: {\n 'v-input__icon': true,\n [`v-input__icon--${kebabCase(type)}`]: type\n },\n }, [\n h(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return h('div', this.setBackgroundColor(this.backgroundColor, {\n class: {'v-input__slot': true},\n style: { height: convertToUnit(this.height) },\n onClick: this.onClick,\n onMousedown: this.onMouseDown,\n onMouseup: this.onMouseUp,\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return h(VLabel, {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return h(VMessages, {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n role: this.hasMessages ? 'alert' : null,\n }, {default: getSlot(this, 'message') })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n slot = slot.map(child => child instanceof Function ? child() : child)\n\n return h('div', {\n class: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (): VNode {\n return h('div', this.setTextColor(this.validationState, {\n class: {'v-input': true, ...this.classes},\n }), this.genContent())\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
1
+ {"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType, h, getCurrentInstance } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n modelValue: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.modelValue,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this.$.uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = /*(this.$options.model && this.$options.model.event) ||*/ 'update:modelValue'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return h('div', {\n class: 'v-input__control',\n title: this.attrs$.title,\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n ...(!hasListener\n ? {}\n : {\n onClick: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n onMouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n }),\n }, extraData)\n\n return h('div', {\n class: {\n 'v-input__icon': true,\n [`v-input__icon--${kebabCase(type)}`]: type\n },\n }, [\n h(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return h('div', this.setBackgroundColor(this.backgroundColor, {\n class: {'v-input__slot': true},\n style: { height: convertToUnit(this.height) },\n onClick: this.onClick,\n onMousedown: this.onMouseDown,\n onMouseup: this.onMouseUp,\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return h(VLabel, {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return h(VMessages, {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n role: this.hasMessages ? 'alert' : null,\n }, {default: getSlot(this, 'message') })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n slot = slot.map(child => child instanceof Function ? child() : child)\n\n return h('div', {\n class: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (): VNode {\n return h('div', this.setTextColor(this.validationState, {\n class: {'v-input': true, ...this.classes},\n }), this.genContent())\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
@@ -77,7 +77,7 @@ export default baseMixins.extend({
77
77
  }
78
78
  },
79
79
 
80
- beforeDestroy() {
80
+ beforeUnmount() {
81
81
  this.list && this.list.unregister(this);
82
82
  },
83
83