@dimailn/vuetify 2.7.2-alpha3 → 2.7.2-alpha5
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.
- package/dist/vuetify.js +14 -11
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VImg/VImg.js +1 -1
- package/es5/components/VImg/VImg.js.map +1 -1
- package/es5/components/VOverlay/VOverlay.js +1 -1
- package/es5/components/VOverlay/VOverlay.js.map +1 -1
- package/es5/components/VSubheader/VSubheader.js +3 -3
- package/es5/components/VSubheader/VSubheader.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/overlayable/index.js +1 -1
- package/es5/mixins/overlayable/index.js.map +1 -1
- package/es5/services/breakpoint/index.js +3 -1
- package/es5/services/breakpoint/index.js.map +1 -1
- package/lib/components/VImg/VImg.js +1 -1
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.js +1 -1
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VSubheader/VSubheader.js +2 -3
- package/lib/components/VSubheader/VSubheader.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/overlayable/index.js +1 -1
- package/lib/mixins/overlayable/index.js.map +1 -1
- package/lib/services/breakpoint/index.js +3 -1
- package/lib/services/breakpoint/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/VImg/VImg.ts +1 -1
- package/src/components/VOverlay/VOverlay.ts +1 -1
- package/src/components/VSubheader/VSubheader.ts +2 -2
- package/src/mixins/overlayable/index.ts +1 -1
- package/src/services/breakpoint/index.ts +5 -0
|
@@ -227,7 +227,7 @@ var _default2 = (0, _mixins.default)(_VResponsive.default, _themeable.default).e
|
|
|
227
227
|
var content = _VResponsive.default.methods.genContent.call(this);
|
|
228
228
|
|
|
229
229
|
if (this.naturalWidth) {
|
|
230
|
-
content = (0, _vue.h)(content.type, (0, _vue.mergeProps)(content.
|
|
230
|
+
content = (0, _vue.h)(content.type, (0, _vue.mergeProps)(content.props, {
|
|
231
231
|
style: {
|
|
232
232
|
width: "".concat(this.naturalWidth, "px")
|
|
233
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, Transition, withDirectives, mergeProps} from 'vue'\n// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\nimport Intersect from '../../directives/intersect'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator<IntersectionObserverInit>,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator<string | srcObject>,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = h('div', {\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n 'v-image__image': true\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return h(Transition, {\n name: this.transition,\n mode: 'in-out',\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n let content: VNode = VResponsive.methods.genContent.call(this)\n\n if (this.naturalWidth) {\n content = h(content.type, mergeProps(content.data!, {\n style: { width: `${this.naturalWidth}px` },\n }), content.children)\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [h('div', {\n class: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return h(Transition, {\n appear: true,\n name: this.transition,\n }, placeholder)\n }\n },\n },\n\n render (): VNode {\n let node = VResponsive.render.call(this, h)\n\n const data = mergeData(node.props, {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n class: {\n ...this.themeClasses,\n 'v-image': true\n }\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n node = h(node.type, data, node.children)\n\n return withDirectives(node, hasIntersect\n ? [\n [\n Intersect,\n {\n handler: this.init,\n options: this.options,\n },\n '',\n {\n once: true\n }\n ]\n ]\n\n : [])\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, Transition, withDirectives, mergeProps} from 'vue'\n// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\nimport Intersect from '../../directives/intersect'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator<IntersectionObserverInit>,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator<string | srcObject>,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = h('div', {\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n 'v-image__image': true\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return h(Transition, {\n name: this.transition,\n mode: 'in-out',\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n let content: VNode = VResponsive.methods.genContent.call(this)\n\n if (this.naturalWidth) {\n content = h(content.type, mergeProps(content.props, {\n style: { width: `${this.naturalWidth}px` },\n }), content.children)\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [h('div', {\n class: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return h(Transition, {\n appear: true,\n name: this.transition,\n }, placeholder)\n }\n },\n },\n\n render (): VNode {\n let node = VResponsive.render.call(this, h)\n\n const data = mergeData(node.props, {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n class: {\n ...this.themeClasses,\n 'v-image': true\n }\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n node = h(node.type, data, node.children)\n\n return withDirectives(node, hasIntersect\n ? [\n [\n Intersect,\n {\n handler: this.init,\n options: this.options,\n },\n '',\n {\n once: true\n }\n ]\n ]\n\n : [])\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VOverlay/VOverlay.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;;;AAKA;eACe,qBACb,kBADa,EAEb,kBAFa,EAGb,mBAHa,EAIb,MAJa,CAIN;AACP,EAAA,IAAI,EAAE,WADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE,OADL;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAFF;AAML,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,OADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAND;AAUL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAVJ;AAcL,IAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VOverlay/VOverlay.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;;;AAKA;eACe,qBACb,kBADa,EAEb,kBAFa,EAGb,mBAHa,EAIb,MAJa,CAIN;AACP,EAAA,IAAI,EAAE,WADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE,OADL;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAFF;AAML,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,OADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAND;AAUL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAVJ;AAcL,IAAA,UAAU,EAAE;AACV,MAAA,OAAO,EAAE;AADC,KAdP;AAiBL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADA;AAEN,MAAA,OAAO,EAAE;AAFH;AAjBH,GAHA;AA0BP,EAAA,QAAQ,EAAE;AACR,IAAA,OADQ,qBACD;AACL,UAAM,IAAI,GAAG,KAAK,kBAAL,CAAwB,KAAK,KAA7B,EAAoC;AAC/C,QAAA,KAAK,EAAE;AAAC,8BAAoB;AAArB,SADwC;AAE/C,QAAA,KAAK,EAAE;AACL,UAAA,OAAO,EAAE,KAAK;AADT;AAFwC,OAApC,CAAb;AAOA,aAAO,YAAE,KAAF,EAAS,IAAT,CAAP;AACD,KAVO;AAWR,IAAA,OAXQ,qBAWD;AACL;AACE,+BAAuB,KAAK,QAD9B;AAEE,6BAAqB,KAAK;AAF5B,SAGK,KAAK,YAHV;AAKD,KAjBO;AAkBR,IAAA,eAlBQ,6BAkBO;AACb,aAAO,MAAM,CAAC,KAAK,QAAL,GAAgB,KAAK,OAArB,GAA+B,CAAhC,CAAb;AACD,KApBO;AAqBR,IAAA,MArBQ,oBAqBF;AACJ,aAAO;AACL,QAAA,MAAM,EAAE,KAAK;AADR,OAAP;AAGD;AAzBO,GA1BH;AAsDP,EAAA,OAAO,EAAE;AACP,IAAA,UADO,wBACG;AACR,aAAO,YAAE,KAAF,EAAS;AACd,QAAA,KAAK,EAAE;AADO,OAAT,EAEJ,sBAAQ,IAAR,CAFI,CAAP;AAGD;AALM,GAtDF;AA8DP,EAAA,MA9DO,oBA8DD;AACJ,QAAM,QAAQ,GAAG,CAAC,KAAK,OAAN,CAAjB;AAEA,QAAI,KAAK,QAAT,EAAmB,QAAQ,CAAC,IAAT,CAAc,KAAK,UAAL,EAAd;AAEnB,WAAO,YAAE,KAAF,EAAS;AACd,MAAA,EAAE,EAAE,KAAK,UADK;AAEd,MAAA,KAAK,EAAE,CAAC,WAAD,EAAc,KAAK,OAAnB,CAFO;AAGd,MAAA,KAAK,EAAE,KAAK;AAHE,KAAT,EAIJ,QAJI,CAAP;AAKD;AAxEM,CAJM,C","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n modelValue: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n class: {'v-overlay__scrim': true},\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return h('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return h('div', {\n class: 'v-overlay__content',\n }, getSlot(this))\n }\n },\n\n render (): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n on: this.$listeners,\n class: ['v-overlay', this.classes],\n style: this.styles,\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VOverlay.js"}
|
|
@@ -31,11 +31,11 @@ var _default = (0, _mixins.default)(_themeable.default
|
|
|
31
31
|
inset: Boolean
|
|
32
32
|
},
|
|
33
33
|
render: function render() {
|
|
34
|
-
return (0, _vue.h)('div', _objectSpread(_objectSpread({
|
|
34
|
+
return (0, _vue.h)('div', _objectSpread(_objectSpread({}, this.$attrs), {}, {
|
|
35
35
|
class: ['v-subheader', _objectSpread({
|
|
36
36
|
'v-subheader--inset': this.inset
|
|
37
|
-
}, this.themeClasses)]
|
|
38
|
-
}, this.$
|
|
37
|
+
}, this.themeClasses), this.$attrs.class]
|
|
38
|
+
}, this.$listeners), (0, _helpers.getSlot)(this));
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VSubheader/VSubheader.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;AAGA;;AACA;;AACA;;;;;;;;;;eAKe,qBACb;AACA;AAFa,EAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,aADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AADF,GAHA;AAOP,EAAA,MAPO,oBAOD;AACJ,WAAO,YAAE,KAAF;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VSubheader/VSubheader.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;AAGA;;AACA;;AACA;;;;;;;;;;eAKe,qBACb;AACA;AAFa,EAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,aADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AADF,GAHA;AAOP,EAAA,MAPO,oBAOD;AACJ,WAAO,YAAE,KAAF,kCACF,KAAK,MADH;AAEL,MAAA,KAAK,EAAE,CAAC,aAAD;AACL,8BAAsB,KAAK;AADtB,SAEF,KAAK,YAFH,GAGJ,KAAK,MAAL,CAAY,KAHR;AAFF,OAMF,KAAK,UANH,GAOJ,sBAAQ,IAAR,CAPI,CAAP;AAQD;AAhBM,CAHM,C","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (): VNode {\n return h('div', {\n ...this.$attrs,\n class: ['v-subheader', {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n }, this.$attrs.class],\n ...this.$listeners\n }, getSlot(this))\n },\n})\n"],"sourceRoot":"","file":"VSubheader.js"}
|
package/es5/framework.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport {defineComponent, App, createApp, h} from 'vue'\n\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\ninterface Stackable extends App {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n // Create a container element\n const container = document.createElement('div');\n\n const props = {\n absolute: this.absolute,\n color: this.overlayColor,\n opacity: this.overlayOpacity\n }\n const wrapper = {\n data() {\n return { value: false }\n },\n render() {\n return h(VOverlay, {\n value: this.value,\n ...props\n })\n }\n }\n // // Create the overlay app\n // const overlayApp = createApp(VOverlay, {\n // absolute: this.absolute,\n // value: false,\n // color: this.overlayColor,\n // opacity: this.overlayOpacity,\n // });\n\n const overlayApp = createApp(wrapper)\n\n // Mount the app to the container\n const overlayInstance = overlayApp.mount(container);\n\n // Determine the parent element\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]');\n\n if (parent) {\n parent.insertBefore(container, parent.firstChild);\n }\n\n this.overlay = overlayInstance;\n this.overlayApp = overlayApp\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlayApp.unmount()\n this.overlayApp = null\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent | KeyboardEvent) {\n if ('key' in e) {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e as WheelEvent)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport {defineComponent, App, createApp, h} from 'vue'\n\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\ninterface Stackable extends App {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n // Create a container element\n const container = document.createElement('div');\n\n const props = {\n absolute: this.absolute,\n color: this.overlayColor,\n opacity: this.overlayOpacity\n }\n const wrapper = {\n data() {\n return { value: false }\n },\n render() {\n return h(VOverlay, {\n modelValue: this.value,\n ...props\n })\n }\n }\n // // Create the overlay app\n // const overlayApp = createApp(VOverlay, {\n // absolute: this.absolute,\n // value: false,\n // color: this.overlayColor,\n // opacity: this.overlayOpacity,\n // });\n\n const overlayApp = createApp(wrapper)\n\n // Mount the app to the container\n const overlayInstance = overlayApp.mount(container);\n\n // Determine the parent element\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]');\n\n if (parent) {\n parent.insertBefore(container, parent.firstChild);\n }\n\n this.overlay = overlayInstance;\n this.overlayApp = overlayApp\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlayApp.unmount()\n this.overlayApp = null\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent | KeyboardEvent) {\n if ('key' in e) {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e as WheelEvent)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.Breakpoint = void 0;
|
|
9
9
|
|
|
10
|
+
var _vue = require("vue");
|
|
11
|
+
|
|
10
12
|
var _service = require("../service");
|
|
11
13
|
|
|
12
14
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
@@ -72,7 +74,7 @@ var Breakpoint = /*#__PURE__*/function (_Service) {
|
|
|
72
74
|
_this.mobileBreakpoint = mobileBreakpoint;
|
|
73
75
|
_this.scrollBarWidth = scrollBarWidth;
|
|
74
76
|
_this.thresholds = thresholds;
|
|
75
|
-
return _this;
|
|
77
|
+
return _possibleConstructorReturn(_this, (0, _vue.reactive)(_assertThisInitialized(_this)));
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
_createClass(Breakpoint, [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/breakpoint/index.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/services/breakpoint/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { reactive } from 'vue'\n\n\n// Extensions\nimport { Service } from '../service'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport { Breakpoint as IBreakpoint } from 'vuetify/types/services/breakpoint'\n\nexport class Breakpoint extends Service implements IBreakpoint {\n public static property: 'breakpoint' = 'breakpoint'\n\n // Public\n public xs = false\n\n public sm = false\n\n public md = false\n\n public lg = false\n\n public xl = false\n\n public xsOnly = false\n\n public smOnly = false\n\n public smAndDown = false\n\n public smAndUp = false\n\n public mdOnly = false\n\n public mdAndDown = false\n\n public mdAndUp = false\n\n public lgOnly = false\n\n public lgAndDown = false\n\n public lgAndUp = false\n\n public xlOnly = false\n\n // Value is xs to match v2.x functionality\n public name: IBreakpoint['name'] = 'xs'\n\n public height = 0\n\n public width = 0\n\n // TODO: Add functionality to detect this dynamically in v3\n // Value is true to match v2.x functionality\n public mobile = true\n\n public mobileBreakpoint: IBreakpoint['mobileBreakpoint']\n\n public thresholds: IBreakpoint['thresholds']\n\n public scrollBarWidth: IBreakpoint['scrollBarWidth']\n\n private resizeTimeout = 0\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n mobileBreakpoint,\n scrollBarWidth,\n thresholds,\n } = preset[Breakpoint.property]\n\n this.mobileBreakpoint = mobileBreakpoint\n this.scrollBarWidth = scrollBarWidth\n this.thresholds = thresholds\n\n return reactive(this)\n }\n\n public init () {\n this.update()\n\n /* istanbul ignore if */\n if (typeof window === 'undefined') return\n\n window.addEventListener(\n 'resize',\n this.onResize.bind(this),\n { passive: true }\n )\n }\n\n /* eslint-disable-next-line max-statements */\n public update (ssr = false) {\n const height = ssr ? 0 : this.getClientHeight()\n const width = ssr ? 0 : this.getClientWidth()\n\n const xs = width < this.thresholds.xs\n const sm = width < this.thresholds.sm && !xs\n const md = width < (this.thresholds.md - this.scrollBarWidth) && !(sm || xs)\n const lg = width < (this.thresholds.lg - this.scrollBarWidth) && !(md || sm || xs)\n const xl = width >= (this.thresholds.lg - this.scrollBarWidth)\n\n this.height = height\n this.width = width\n\n this.xs = xs\n this.sm = sm\n this.md = md\n this.lg = lg\n this.xl = xl\n\n this.xsOnly = xs\n this.smOnly = sm\n this.smAndDown = (xs || sm) && !(md || lg || xl)\n this.smAndUp = !xs && (sm || md || lg || xl)\n this.mdOnly = md\n this.mdAndDown = (xs || sm || md) && !(lg || xl)\n this.mdAndUp = !(xs || sm) && (md || lg || xl)\n this.lgOnly = lg\n this.lgAndDown = (xs || sm || md || lg) && !xl\n this.lgAndUp = !(xs || sm || md) && (lg || xl)\n this.xlOnly = xl\n\n switch (true) {\n case (xs):\n this.name = 'xs'\n break\n case (sm):\n this.name = 'sm'\n break\n case (md):\n this.name = 'md'\n break\n case (lg):\n this.name = 'lg'\n break\n default:\n this.name = 'xl'\n break\n }\n\n if (typeof this.mobileBreakpoint === 'number') {\n this.mobile = width < parseInt(this.mobileBreakpoint, 10)\n\n return\n }\n\n const breakpoints = {\n xs: 0,\n sm: 1,\n md: 2,\n lg: 3,\n xl: 4,\n } as const\n\n const current = breakpoints[this.name]\n const max = breakpoints[this.mobileBreakpoint]\n\n this.mobile = current <= max\n }\n\n private onResize () {\n clearTimeout(this.resizeTimeout)\n\n // Added debounce to match what\n // v-resize used to do but was\n // removed due to a memory leak\n // https://github.com/vuetifyjs/vuetify/pull/2997\n this.resizeTimeout = window.setTimeout(this.update.bind(this), 200)\n }\n\n // Cross-browser support as described in:\n // https://stackoverflow.com/questions/1248081\n private getClientWidth () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientWidth,\n window.innerWidth || 0\n )\n }\n\n private getClientHeight () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientHeight,\n window.innerHeight || 0\n )\n }\n}\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -215,7 +215,7 @@ export default mixins(VResponsive, Themeable).extend({
|
|
|
215
215
|
let content = VResponsive.methods.genContent.call(this);
|
|
216
216
|
|
|
217
217
|
if (this.naturalWidth) {
|
|
218
|
-
content = h(content.type, mergeProps(content.
|
|
218
|
+
content = h(content.type, mergeProps(content.props, {
|
|
219
219
|
style: {
|
|
220
220
|
width: `${this.naturalWidth}px`
|
|
221
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, Transition, withDirectives, mergeProps} from 'vue'\n// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\nimport Intersect from '../../directives/intersect'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator<IntersectionObserverInit>,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator<string | srcObject>,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = h('div', {\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n 'v-image__image': true\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return h(Transition, {\n name: this.transition,\n mode: 'in-out',\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n let content: VNode = VResponsive.methods.genContent.call(this)\n\n if (this.naturalWidth) {\n content = h(content.type, mergeProps(content.data!, {\n style: { width: `${this.naturalWidth}px` },\n }), content.children)\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [h('div', {\n class: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return h(Transition, {\n appear: true,\n name: this.transition,\n }, placeholder)\n }\n },\n },\n\n render (): VNode {\n let node = VResponsive.render.call(this, h)\n\n const data = mergeData(node.props, {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n class: {\n ...this.themeClasses,\n 'v-image': true\n }\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n node = h(node.type, data, node.children)\n\n return withDirectives(node, hasIntersect\n ? [\n [\n Intersect,\n {\n handler: this.init,\n options: this.options,\n },\n '',\n {\n once: true\n }\n ]\n ]\n\n : [])\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,EAAW,UAAX,EAAuB,cAAvB,EAAuC,UAAvC,QAAwD,KAAxD,C,CACA;;AACA,OAAO,wCAAP,C,CAEA;;AACA,OAAO,SAAP,MAAsB,4BAAtB,C,CAMA;;AACA,OAAO,WAAP,MAAwB,gBAAxB,C,CAEA;;AACA,OAAO,SAAP,MAAsB,wBAAtB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,OAAO,SAAP,MAAsB,sBAAtB;AACA,SAAS,WAAT,QAA4B,oBAA5B;AACA,SAAS,OAAT,QAAwB,oBAAxB;AACA,OAAO,SAAP,MAAsB,4BAAtB;AAUA,MAAM,YAAY,GAAG,OAAO,MAAP,KAAkB,WAAlB,IAAiC,0BAA0B,MAAhF;AAEA;;AACA,eAAe,MAAM,CACnB,WADmB,EAEnB,SAFmB,CAAN,CAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,OADC;AAGP,EAAA,UAAU,EAAE;AAAE,IAAA;AAAF,GAHL;AAKP,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,EAAE,MADA;AAEL,IAAA,OAAO,EAAE,OAFJ;AAGL,IAAA,KAAK,EAAE,OAHF;AAIL,IAAA,QAAQ,EAAE,MAJL;AAKL,IAAA,OAAO,EAAE,MALJ;AAML,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,MADC;AAEP;AACA;AACA,MAAA,OAAO,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,SADQ;AAEd,QAAA,UAAU,EAAE,SAFE;AAGd,QAAA,SAAS,EAAE;AAHG,OAAP;AAJF,KANJ;AAgBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,MADE;AAER,MAAA,OAAO,EAAE;AAFD,KAhBL;AAoBL,IAAA,KAAK,EAAE,MApBF;AAqBL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADH;AAEH,MAAA,OAAO,EAAE;AAFN,KArBA;AAyBL,IAAA,MAAM,EAAE,MAzBH;AA0BL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,OAAD,EAAU,MAAV,CADI;AAEV,MAAA,OAAO,EAAE;AAFC;AA1BP,GALA;;AAqCP,EAAA,IAAI,GAAA;AACF,WAAO;AACL,MAAA,UAAU,EAAE,EADP;AAEL,MAAA,KAAK,EAAE,IAFF;AAGL,MAAA,SAAS,EAAE,IAHN;AAIL,MAAA,qBAAqB,EAAE,SAJlB;AAKL,MAAA,YAAY,EAAE,SALT;AAML,MAAA,QAAQ,EAAE;AANL,KAAP;AAQD,GA9CM;;AAgDP,EAAA,QAAQ,EAAE;AACR,IAAA,mBAAmB,GAAA;AACjB,aAAO,MAAM,CAAC,KAAK,aAAL,CAAmB,MAAnB,IAA6B,KAAK,qBAAnC,CAAb;AACD,KAHO;;AAIR,IAAA,aAAa,GAAA;AACX,aAAO,KAAK,GAAL,IAAY,OAAO,KAAK,GAAZ,KAAoB,QAAhC,GACH;AACA,QAAA,GAAG,EAAE,KAAK,GAAL,CAAS,GADd;AAEA,QAAA,MAAM,EAAE,KAAK,MAAL,IAAe,KAAK,GAAL,CAAS,MAFhC;AAGA,QAAA,OAAO,EAAE,KAAK,OAAL,IAAgB,KAAK,GAAL,CAAS,OAHlC;AAIA,QAAA,MAAM,EAAE,MAAM,CAAC,KAAK,WAAL,IAAoB,KAAK,GAAL,CAAS,MAA9B;AAJd,OADG,GAMD;AACF,QAAA,GAAG,EAAE,KAAK,GADR;AAEF,QAAA,MAAM,EAAE,KAAK,MAFX;AAGF,QAAA,OAAO,EAAE,KAAK,OAHZ;AAIF,QAAA,MAAM,EAAE,MAAM,CAAC,KAAK,WAAL,IAAoB,CAArB;AAJZ,OANN;AAYD,KAjBO;;AAkBR,IAAA,aAAa,GAAA;AACX,UAAI,EAAE,KAAK,aAAL,CAAmB,GAAnB,IAA0B,KAAK,aAAL,CAAmB,OAA7C,IAAwD,KAAK,QAA/D,CAAJ,EAA8E,OAAO,EAAP;AAE9E,YAAM,eAAe,GAAa,EAAlC;AACA,YAAM,GAAG,GAAG,KAAK,SAAL,GAAiB,KAAK,aAAL,CAAmB,OAApC,GAA8C,KAAK,UAA/D;AAEA,UAAI,KAAK,QAAT,EAAmB,eAAe,CAAC,IAAhB,CAAqB,mBAAmB,KAAK,QAAQ,GAArD;AACnB,UAAI,GAAJ,EAAS,eAAe,CAAC,IAAhB,CAAqB,QAAQ,GAAG,IAAhC;AAET,YAAM,KAAK,GAAG,CAAC,CAAC,KAAD,EAAQ;AACrB,QAAA,KAAK,EAAE;AACL,qCAA2B,KAAK,SAD3B;AAEL,qCAA2B,KAAK,OAF3B;AAGL,mCAAyB,CAAC,KAAK,OAH1B;AAIL,4BAAkB;AAJb,SADc;AAOrB,QAAA,KAAK,EAAE;AACL,UAAA,eAAe,EAAE,eAAe,CAAC,IAAhB,CAAqB,IAArB,CADZ;AAEL,UAAA,kBAAkB,EAAE,KAAK;AAFpB,SAPc;AAWrB,QAAA,GAAG,EAAE,CAAC,KAAK;AAXU,OAAR,CAAf;AAcA;;AACA,UAAI,CAAC,KAAK,UAAV,EAAsB,OAAO,KAAP;AAEtB,aAAO,CAAC,CAAC,UAAD,EAAa;AACnB,QAAA,IAAI,EAAE,KAAK,UADQ;AAEnB,QAAA,IAAI,EAAE;AAFa,OAAb,EAGL,CAAC,KAAD,CAHK,CAAR;AAID;;AAhDO,GAhDH;AAmGP,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,GAAA;AACD;AACA,UAAI,CAAC,KAAK,SAAV,EAAqB,KAAK,IAAL,CAAU,SAAV,EAAqB,SAArB,EAAgC,IAAhC,EAArB,KACK,KAAK,SAAL;AACN,KALI;;AAML,iCAA6B;AANxB,GAnGA;;AA4GP,EAAA,OAAO,GAAA;AACL,SAAK,IAAL;AACD,GA9GM;;AAgHP,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,CACF,OADE,EAEF,QAFE,EAGF,cAHE,EAGsB;AAExB;AACA;AACA;AACA,UACE,YAAY,IACZ,CAAC,cADD,IAEA,CAAC,KAAK,KAHR,EAIE;;AAEF,UAAI,KAAK,aAAL,CAAmB,OAAvB,EAAgC;AAC9B,cAAM,OAAO,GAAG,IAAI,KAAJ,EAAhB;AACA,QAAA,OAAO,CAAC,GAAR,GAAc,KAAK,aAAL,CAAmB,OAAjC;AACA,aAAK,WAAL,CAAiB,OAAjB,EAA0B,IAA1B;AACD;AACD;;;AACA,UAAI,KAAK,aAAL,CAAmB,GAAvB,EAA4B,KAAK,SAAL;AAC7B,KAtBM;;AAuBP,IAAA,MAAM,GAAA;AACJ,WAAK,MAAL;AACA,WAAK,SAAL,GAAiB,KAAjB;AACA,WAAK,KAAL,CAAW,MAAX,EAAmB,KAAK,GAAxB;;AAEA,UACE,KAAK,KAAL,KACC,KAAK,aAAL,CAAmB,GAAnB,CAAuB,QAAvB,CAAgC,MAAhC,KAA2C,KAAK,aAAL,CAAmB,GAAnB,CAAuB,UAAvB,CAAkC,oBAAlC,CAD5C,CADF,EAGE;AACA,YAAI,KAAK,KAAL,CAAW,aAAX,IAA4B,KAAK,KAAL,CAAW,YAA3C,EAAyD;AACvD,eAAK,YAAL,GAAoB,KAAK,KAAL,CAAW,YAA/B;AACA,eAAK,qBAAL,GAA6B,KAAK,KAAL,CAAW,YAAX,GAA0B,KAAK,KAAL,CAAW,aAAlE;AACD,SAHD,MAGO;AACL,eAAK,qBAAL,GAA6B,CAA7B;AACD;AACF;AACF,KAvCM;;AAwCP,IAAA,OAAO,GAAA;AACL,WAAK,QAAL,GAAgB,IAAhB;AACA,WAAK,KAAL,CAAW,OAAX,EAAoB,KAAK,GAAzB;AACD,KA3CM;;AA4CP,IAAA,MAAM,GAAA;AACJ;AACA,UAAI,KAAK,KAAT,EAAgB,KAAK,UAAL,GAAkB,KAAK,KAAL,CAAW,UAAX,IAAyB,KAAK,KAAL,CAAW,GAAtD;AACjB,KA/CM;;AAgDP,IAAA,SAAS,GAAA;AACP,YAAM,KAAK,GAAG,IAAI,KAAJ,EAAd;AACA,WAAK,KAAL,GAAa,KAAb;;AAEA,MAAA,KAAK,CAAC,MAAN,GAAe,MAAK;AAClB;AACA,YAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,UAAA,KAAK,CAAC,MAAN,GAAe,KAAf,CAAsB,GAAD,IAAsB;AACzC,YAAA,WAAW,CACT,qDAAA,GACA,QAAQ,KAAK,aAAL,CAAmB,GAAG,EAD9B,IAEC,GAAG,CAAC,OAAJ,GAAc,qBAAqB,GAAG,CAAC,OAAO,EAA9C,GAAmD,EAFpD,CADS,EAIT,IAJS,CAAX;AAMD,WAPD,EAOG,IAPH,CAOQ,KAAK,MAPb;AAQD,SATD,MASO;AACL,eAAK,MAAL;AACD;AACF,OAdD;;AAeA,MAAA,KAAK,CAAC,OAAN,GAAgB,KAAK,OAArB;AAEA,WAAK,QAAL,GAAgB,KAAhB;AACA,WAAK,KAAL,KAAe,KAAK,CAAC,KAAN,GAAc,KAAK,KAAlC;AACA,WAAK,aAAL,CAAmB,MAAnB,KAA8B,KAAK,CAAC,MAAN,GAAe,KAAK,aAAL,CAAmB,MAAhE;AACA,MAAA,KAAK,CAAC,GAAN,GAAY,KAAK,aAAL,CAAmB,GAA/B;AACA,WAAK,KAAL,CAAW,WAAX,EAAwB,KAAK,aAAL,CAAmB,GAA3C;AAEA,WAAK,WAAL,IAAoB,KAAK,WAAL,CAAiB,KAAjB,CAApB;AACA,WAAK,MAAL;AACD,KA7EM;;AA8EP,IAAA,WAAW,CAAE,GAAF,EAAyB,OAAA,GAAyB,GAAlD,EAAqD;AAC9D,YAAM,IAAI,GAAG,MAAK;AAChB,cAAM;AAAE,UAAA,aAAF;AAAiB,UAAA;AAAjB,YAAkC,GAAxC;;AAEA,YAAI,aAAa,IAAI,YAArB,EAAmC;AACjC,eAAK,YAAL,GAAoB,YAApB;AACA,eAAK,qBAAL,GAA6B,YAAY,GAAG,aAA5C;AACD,SAHD,MAGO,IAAI,CAAC,GAAG,CAAC,QAAL,IAAiB,KAAK,SAAtB,IAAmC,CAAC,KAAK,QAAzC,IAAqD,OAAO,IAAI,IAApE,EAA0E;AAC/E,UAAA,UAAU,CAAC,IAAD,EAAO,OAAP,CAAV;AACD;AACF,OATD;;AAWA,MAAA,IAAI;AACL,KA3FM;;AA4FP,IAAA,UAAU,GAAA;AACR,UAAI,OAAO,GAAU,WAAW,CAAC,OAAZ,CAAoB,UAApB,CAA+B,IAA/B,CAAoC,IAApC,CAArB;;AAEA,UAAI,KAAK,YAAT,EAAuB;AACrB,QAAA,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAT,EAAe,UAAU,CAAC,OAAO,CAAC,KAAT,EAAgB;AAClD,UAAA,KAAK,EAAE;AAAE,YAAA,KAAK,EAAE,GAAG,KAAK,YAAY;AAA7B;AAD2C,SAAhB,CAAzB,EAEP,OAAO,CAAC,QAFD,CAAX;AAGD;;AAED,aAAO,OAAP;AACD,KAtGM;;AAuGP,IAAA,gBAAgB,GAAA;AACd,YAAM,IAAI,GAAG,OAAO,CAAC,IAAD,EAAO,aAAP,CAApB;;AACA,UAAI,IAAJ,EAAU;AACR,cAAM,WAAW,GAAG,KAAK,SAAL,GAChB,CAAC,CAAC,CAAC,KAAD,EAAQ;AACV,UAAA,KAAK,EAAE;AADG,SAAR,EAED,IAFC,CAAF,CADgB,GAIhB,EAJJ;AAMA,YAAI,CAAC,KAAK,UAAV,EAAsB,OAAO,WAAW,CAAC,CAAD,CAAlB;AAEtB,eAAO,CAAC,CAAC,UAAD,EAAa;AACnB,UAAA,MAAM,EAAE,IADW;AAEnB,UAAA,IAAI,EAAE,KAAK;AAFQ,SAAb,EAGL,WAHK,CAAR;AAID;AACF;;AAvHM,GAhHF;;AA0OP,EAAA,MAAM,GAAA;AACJ,QAAI,IAAI,GAAG,WAAW,CAAC,MAAZ,CAAmB,IAAnB,CAAwB,IAAxB,EAA8B,CAA9B,CAAX;AAEA,UAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAN,EAAa;AACjC,oBAAc,KAAK,GADc;AAEjC,MAAA,IAAI,EAAE,KAAK,GAAL,GAAW,KAAX,GAAmB,SAFQ;AAGjC,MAAA,KAAK,EAAG,EACN,GAAG,KAAK,YADF;AAEN,mBAAW;AAFL;AAHyB,KAAb,CAAtB;AASA,IAAA,IAAI,CAAC,QAAL,GAAgB,CACd,KAAK,aADS,EAEd,KAAK,aAFS,EAGd,KAAK,gBAAL,EAHc,EAId,KAAK,UAAL,EAJc,CAAhB;AAOA,IAAA,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAN,EAAY,IAAZ,EAAkB,IAAI,CAAC,QAAvB,CAAR;AAEA,WAAO,cAAc,CAAC,IAAD,EAAO,YAAY,GACpC,CACA,CACE,SADF,EAEE;AACE,MAAA,OAAO,EAAE,KAAK,IADhB;AAEE,MAAA,OAAO,EAAE,KAAK;AAFhB,KAFF,EAME,EANF,EAOE;AACE,MAAA,IAAI,EAAE;AADR,KAPF,CADA,CADoC,GAepC,EAfiB,CAArB;AAgBD;;AA/QM,CAHM,CAAf","sourcesContent":["import {h, Transition, withDirectives, mergeProps} from 'vue'\n// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\nimport Intersect from '../../directives/intersect'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator<IntersectionObserverInit>,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator<string | srcObject>,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = h('div', {\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n 'v-image__image': true\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return h(Transition, {\n name: this.transition,\n mode: 'in-out',\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n let content: VNode = VResponsive.methods.genContent.call(this)\n\n if (this.naturalWidth) {\n content = h(content.type, mergeProps(content.props, {\n style: { width: `${this.naturalWidth}px` },\n }), content.children)\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [h('div', {\n class: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return h(Transition, {\n appear: true,\n name: this.transition,\n }, placeholder)\n }\n },\n },\n\n render (): VNode {\n let node = VResponsive.render.call(this, h)\n\n const data = mergeData(node.props, {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n class: {\n ...this.themeClasses,\n 'v-image': true\n }\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n node = h(node.type, data, node.children)\n\n return withDirectives(node, hasIntersect\n ? [\n [\n Intersect,\n {\n handler: this.init,\n options: this.options,\n },\n '',\n {\n once: true\n }\n ]\n ]\n\n : [])\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VOverlay/VOverlay.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,QAAgB,KAAhB,C,CACA;;AACA,OAAO,gDAAP,C,CAEA;;AACA,OAAO,SAAP,MAAsB,0BAAtB;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,OAAO,UAAP,MAAuB,2BAAvB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,SAAS,OAAT,QAAwB,oBAAxB;AAKA;;AACA,eAAe,MAAM,CACnB,SADmB,EAEnB,SAFmB,EAGnB,UAHmB,CAAN,CAIb,MAJa,CAIN;AACP,EAAA,IAAI,EAAE,WADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE,OADL;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAFF;AAML,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,OADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAND;AAUL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAVJ;AAcL,IAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VOverlay/VOverlay.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,QAAgB,KAAhB,C,CACA;;AACA,OAAO,gDAAP,C,CAEA;;AACA,OAAO,SAAP,MAAsB,0BAAtB;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,OAAO,UAAP,MAAuB,2BAAvB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,SAAS,OAAT,QAAwB,oBAAxB;AAKA;;AACA,eAAe,MAAM,CACnB,SADmB,EAEnB,SAFmB,EAGnB,UAHmB,CAAN,CAIb,MAJa,CAIN;AACP,EAAA,IAAI,EAAE,WADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE,OADL;AAEL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAFF;AAML,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,OADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAND;AAUL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAVJ;AAcL,IAAA,UAAU,EAAE;AACV,MAAA,OAAO,EAAE;AADC,KAdP;AAiBL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADA;AAEN,MAAA,OAAO,EAAE;AAFH;AAjBH,GAHA;AA0BP,EAAA,QAAQ,EAAE;AACR,IAAA,OAAO,GAAA;AACL,YAAM,IAAI,GAAG,KAAK,kBAAL,CAAwB,KAAK,KAA7B,EAAoC;AAC/C,QAAA,KAAK,EAAE;AAAC,8BAAoB;AAArB,SADwC;AAE/C,QAAA,KAAK,EAAE;AACL,UAAA,OAAO,EAAE,KAAK;AADT;AAFwC,OAApC,CAAb;AAOA,aAAO,CAAC,CAAC,KAAD,EAAQ,IAAR,CAAR;AACD,KAVO;;AAWR,IAAA,OAAO,GAAA;AACL,aAAO;AACL,+BAAuB,KAAK,QADvB;AAEL,6BAAqB,KAAK,QAFrB;AAGL,WAAG,KAAK;AAHH,OAAP;AAKD,KAjBO;;AAkBR,IAAA,eAAe,GAAA;AACb,aAAO,MAAM,CAAC,KAAK,QAAL,GAAgB,KAAK,OAArB,GAA+B,CAAhC,CAAb;AACD,KApBO;;AAqBR,IAAA,MAAM,GAAA;AACJ,aAAO;AACL,QAAA,MAAM,EAAE,KAAK;AADR,OAAP;AAGD;;AAzBO,GA1BH;AAsDP,EAAA,OAAO,EAAE;AACP,IAAA,UAAU,GAAA;AACR,aAAO,CAAC,CAAC,KAAD,EAAQ;AACd,QAAA,KAAK,EAAE;AADO,OAAR,EAEL,OAAO,CAAC,IAAD,CAFF,CAAR;AAGD;;AALM,GAtDF;;AA8DP,EAAA,MAAM,GAAA;AACJ,UAAM,QAAQ,GAAG,CAAC,KAAK,OAAN,CAAjB;AAEA,QAAI,KAAK,QAAT,EAAmB,QAAQ,CAAC,IAAT,CAAc,KAAK,UAAL,EAAd;AAEnB,WAAO,CAAC,CAAC,KAAD,EAAQ;AACd,MAAA,EAAE,EAAE,KAAK,UADK;AAEd,MAAA,KAAK,EAAE,CAAC,WAAD,EAAc,KAAK,OAAnB,CAFO;AAGd,MAAA,KAAK,EAAE,KAAK;AAHE,KAAR,EAIL,QAJK,CAAR;AAKD;;AAxEM,CAJM,CAAf","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n modelValue: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n class: {'v-overlay__scrim': true},\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return h('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return h('div', {\n class: 'v-overlay__content',\n }, getSlot(this))\n }\n },\n\n render (): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n on: this.$listeners,\n class: ['v-overlay', this.classes],\n style: this.styles,\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VOverlay.js"}
|
|
@@ -14,12 +14,11 @@ export default mixins(Themeable
|
|
|
14
14
|
},
|
|
15
15
|
|
|
16
16
|
render() {
|
|
17
|
-
return h('div', {
|
|
17
|
+
return h('div', { ...this.$attrs,
|
|
18
18
|
class: ['v-subheader', {
|
|
19
19
|
'v-subheader--inset': this.inset,
|
|
20
20
|
...this.themeClasses
|
|
21
|
-
}],
|
|
22
|
-
...this.$attrs,
|
|
21
|
+
}, this.$attrs.class],
|
|
23
22
|
...this.$listeners
|
|
24
23
|
}, getSlot(this));
|
|
25
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VSubheader/VSubheader.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,QAAgB,KAAhB,C,CACA;;AACA,OAAO,oDAAP,C,CAEA;;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,SAAS,OAAT,QAAwB,oBAAxB;AAKA,eAAe,MAAM,CACnB;AACA;AAFmB,CAAN,CAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,aADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AADF,GAHA;;AAOP,EAAA,MAAM,GAAA;AACJ,WAAO,CAAC,CAAC,KAAD,EAAQ;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VSubheader/VSubheader.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,QAAgB,KAAhB,C,CACA;;AACA,OAAO,oDAAP,C,CAEA;;AACA,OAAO,SAAP,MAAsB,wBAAtB;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,SAAS,OAAT,QAAwB,oBAAxB;AAKA,eAAe,MAAM,CACnB;AACA;AAFmB,CAAN,CAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,aADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AADF,GAHA;;AAOP,EAAA,MAAM,GAAA;AACJ,WAAO,CAAC,CAAC,KAAD,EAAQ,EACd,GAAG,KAAK,MADM;AAEd,MAAA,KAAK,EAAE,CAAC,aAAD,EAAgB;AACrB,8BAAsB,KAAK,KADN;AAErB,WAAG,KAAK;AAFa,OAAhB,EAGJ,KAAK,MAAL,CAAY,KAHR,CAFO;AAMd,SAAG,KAAK;AANM,KAAR,EAOL,OAAO,CAAC,IAAD,CAPF,CAAR;AAQD;;AAhBM,CAHM,CAAf","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (): VNode {\n return h('div', {\n ...this.$attrs,\n class: ['v-subheader', {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n }, this.$attrs.class],\n ...this.$listeners\n }, getSlot(this))\n },\n})\n"],"sourceRoot":"","file":"VSubheader.js"}
|
package/lib/framework.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport {defineComponent, App, createApp, h} from 'vue'\n\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\ninterface Stackable extends App {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n // Create a container element\n const container = document.createElement('div');\n\n const props = {\n absolute: this.absolute,\n color: this.overlayColor,\n opacity: this.overlayOpacity\n }\n const wrapper = {\n data() {\n return { value: false }\n },\n render() {\n return h(VOverlay, {\n value: this.value,\n ...props\n })\n }\n }\n // // Create the overlay app\n // const overlayApp = createApp(VOverlay, {\n // absolute: this.absolute,\n // value: false,\n // color: this.overlayColor,\n // opacity: this.overlayOpacity,\n // });\n\n const overlayApp = createApp(wrapper)\n\n // Mount the app to the container\n const overlayInstance = overlayApp.mount(container);\n\n // Determine the parent element\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]');\n\n if (parent) {\n parent.insertBefore(container, parent.firstChild);\n }\n\n this.overlay = overlayInstance;\n this.overlayApp = overlayApp\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlayApp.unmount()\n this.overlayApp = null\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent | KeyboardEvent) {\n if ('key' in e) {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e as WheelEvent)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,QAAP,MAAqB,2BAArB,C,CAEA;;AACA,SACE,QADF,EAEE,oBAFF,EAGE,uBAHF,EAIE,SAJF,EAKE,YALF,QAMO,oBANP,C,CAQA;;AACA,SAAQ,eAAR,EAA8B,SAA9B,EAAyC,CAAzC,QAAiD,KAAjD;AAkBA;;AACA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,aADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,WAAW,EAAE,OADR;AAEL,IAAA,YAAY,EAAE,MAFT;AAGL,IAAA,cAAc,EAAE,CAAC,MAAD,EAAS,MAAT;AAHX,GAHsB;;AAS7B,EAAA,IAAI,GAAA;AACF,WAAO;AACL,MAAA,cAAc,EAAE,CADX;AAEL,MAAA,OAAO,EAAE;AAFJ,KAAP;AAID,GAd4B;;AAgB7B,EAAA,KAAK,EAAE;AACL,IAAA,WAAW,CAAE,KAAF,EAAO;AAChB,UAAI,CAAC,KAAK,QAAV,EAAoB;AAEpB,UAAI,KAAJ,EAAW,KAAK,aAAL,GAAX,KACK,KAAK,UAAL;AACN;;AANI,GAhBsB;;AAyB7B,EAAA,aAAa,GAAA;AACX,SAAK,aAAL;AACD,GA3B4B;;AA6B7B,EAAA,OAAO,EAAE;AACP,IAAA,aAAa,GAAA;AACX;AACA,YAAM,SAAS,GAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAlB;AAEA,YAAM,KAAK,GAAG;AACZ,QAAA,QAAQ,EAAE,KAAK,QADH;AAEZ,QAAA,KAAK,EAAE,KAAK,YAFA;AAGZ,QAAA,OAAO,EAAE,KAAK;AAHF,OAAd;AAKA,YAAM,OAAO,GAAG;AACd,QAAA,IAAI,GAAA;AACF,iBAAO;AAAE,YAAA,KAAK,EAAE;AAAT,WAAP;AACD,SAHa;;AAId,QAAA,MAAM,GAAA;AACJ,iBAAO,CAAC,CAAC,QAAD,EAAW;AACjB,YAAA,UAAU,EAAE,KAAK,KADA;AAEjB,eAAG;AAFc,WAAX,CAAR;AAID;;AATa,OAAhB,CATW,CAoBX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAM,UAAU,GAAG,SAAS,CAAC,OAAD,CAA5B,CA5BW,CA8BX;;AACA,YAAM,eAAe,GAAG,UAAU,CAAC,KAAX,CAAiB,SAAjB,CAAxB,CA/BW,CAiCX;;AACA,YAAM,MAAM,GAAG,KAAK,QAAL,GACX,KAAK,GAAL,CAAS,UADE,GAEX,QAAQ,CAAC,aAAT,CAAuB,YAAvB,CAFJ;;AAIA,UAAI,MAAJ,EAAY;AACV,QAAA,MAAM,CAAC,YAAP,CAAoB,SAApB,EAA+B,MAAM,CAAC,UAAtC;AACD;;AAED,WAAK,OAAL,GAAe,eAAf;AACA,WAAK,UAAL,GAAkB,UAAlB;AACD,KA7CM;;AA8CP,IAAA,UAAU,GAAA;AACR,WAAK,UAAL;AAEA,UAAI,KAAK,WAAT,EAAsB;AAEtB,UAAI,CAAC,KAAK,OAAV,EAAmB,KAAK,aAAL;AAEnB,WAAK,cAAL,GAAsB,qBAAqB,CAAC,MAAK;AAC/C,YAAI,CAAC,KAAK,OAAV,EAAmB;;AAEnB,YAAI,KAAK,YAAL,KAAsB,SAA1B,EAAqC;AACnC,eAAK,OAAL,CAAa,MAAb,GAAsB,MAAM,CAAC,KAAK,YAAL,GAAoB,CAArB,CAA5B;AACD,SAFD,MAEO,IAAI,KAAK,GAAT,EAAc;AACnB,eAAK,OAAL,CAAa,MAAb,GAAsB,SAAS,CAAC,KAAK,GAAN,CAA/B;AACD;;AAED,aAAK,OAAL,CAAa,KAAb,GAAqB,IAArB;AACD,OAV0C,CAA3C;AAYA,aAAO,IAAP;AACD,KAlEM;;AAmEP;AACA,IAAA,aAAa,CAAE,UAAU,GAAG,IAAf,EAAmB;AAC9B,UAAI,KAAK,OAAT,EAAkB;AAChB,QAAA,oBAAoB,CAAC,KAAK,OAAL,CAAa,GAAd,EAAmB,eAAnB,EAAoC,MAAK;AAC3D,cACE,CAAC,KAAK,OAAN,IACA,CAAC,KAAK,OAAL,CAAa,GADd,IAEA,CAAC,KAAK,OAAL,CAAa,GAAb,CAAiB,UAFlB,IAGA,KAAK,OAAL,CAAa,KAHb,IAIA,KAAK,QALP,EAME;AAEF,eAAK,OAAL,CAAa,GAAb,CAAiB,UAAjB,CAA4B,WAA5B,CAAwC,KAAK,OAAL,CAAa,GAArD;AACA,eAAK,UAAL,CAAgB,OAAhB;AACA,eAAK,UAAL,GAAkB,IAAlB;AACA,eAAK,OAAL,GAAe,IAAf;AACD,SAbmB,CAApB,CADgB,CAgBhB;AACA;AACA;;AACA,QAAA,oBAAoB,CAAC,KAAK,cAAN,CAApB;AAEA,aAAK,OAAL,CAAa,KAAb,GAAqB,KAArB;AACD;;AAED,MAAA,UAAU,IAAI,KAAK,UAAL,EAAd;AACD,KA9FM;;AA+FP,IAAA,cAAc,CAAE,CAAF,EAA+B;AAC3C,UAAI,SAAS,CAAb,EAAgB;AACd,YACE,CAAC,OAAD,EAAU,UAAV,EAAsB,QAAtB,EAAgC,QAAhC,CAA0C,CAAC,CAAC,MAAF,CAAqB,OAA/D,KACA;AACC,QAAA,CAAC,CAAC,MAAF,CAAyB,iBAH5B,EAIE;AAEF,cAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAV,EAAc,QAAQ,CAAC,MAAvB,CAAX;AACA,cAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAV,EAAgB,QAAQ,CAAC,QAAzB,CAAb;;AAEA,YAAI,EAAE,CAAC,QAAH,CAAY,CAAC,CAAC,OAAd,CAAJ,EAA4B;AACzB,UAAA,CAAS,CAAC,MAAV,GAAmB,CAAC,CAApB;AACF,SAFD,MAEO,IAAI,IAAI,CAAC,QAAL,CAAc,CAAC,CAAC,OAAhB,CAAJ,EAA8B;AAClC,UAAA,CAAS,CAAC,MAAV,GAAmB,CAAnB;AACF,SAFM,MAEA;AACL;AACD;AACF;;AAED,UAAI,CAAC,CAAC,MAAF,KAAa,KAAK,OAAlB,IACD,CAAC,CAAC,IAAF,KAAW,SAAX,IAAwB,CAAC,CAAC,MAAF,KAAa,QAAQ,CAAC,IAD7C,IAEF,KAAK,SAAL,CAAe,CAAf,CAFF,EAEmC,CAAC,CAAC,cAAF;AACpC,KAtHM;;AAuHP,IAAA,YAAY,CAAE,EAAF,EAAc;AACxB,UAAI,CAAC,EAAD,IAAO,EAAE,CAAC,QAAH,KAAgB,IAAI,CAAC,YAAhC,EAA8C,OAAO,KAAP;AAE9C,YAAM,KAAK,GAAG,MAAM,CAAC,gBAAP,CAAwB,EAAxB,CAAd;AACA,aAAQ,CAAC,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,CAA4B,KAAK,CAAC,SAAlC,KAAiD,EAAE,CAAC,OAAH,KAAe,QAAjE,KAA8E,EAAE,CAAC,YAAH,GAAkB,EAAE,CAAC,YAApG,IACL,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,CAA4B,KAAK,CAAC,SAAlC,CAAD,IAAmD,EAAE,CAAC,WAAH,GAAiB,EAAE,CAAC,WADxE;AAED,KA7HM;;AA8HP,IAAA,YAAY,CAAE,EAAF,EAAe,CAAf,EAA4B;AACtC,UAAI,EAAE,CAAC,YAAH,CAAgB,UAAhB,CAAJ,EAAiC,OAAO,KAAP;AAEjC,YAAM,GAAG,GAAG,CAAC,CAAC,QAAF,IAAc,CAAC,CAAC,MAAhB,GAAyB,GAAzB,GAA+B,GAA3C;AACA,YAAM,KAAK,GAAG,GAAG,KAAK,GAAR,GAAc,CAAC,CAAC,MAAhB,GAAyB,CAAC,CAAC,MAAF,IAAY,CAAC,CAAC,MAArD;AAEA,UAAI,cAAJ;AACA,UAAI,YAAJ;;AACA,UAAI,GAAG,KAAK,GAAZ,EAAiB;AACf,QAAA,cAAc,GAAG,EAAE,CAAC,SAAH,KAAiB,CAAlC;AACA,QAAA,YAAY,GAAG,EAAE,CAAC,SAAH,GAAe,EAAE,CAAC,YAAlB,KAAmC,EAAE,CAAC,YAArD;AACD,OAHD,MAGO;AACL,QAAA,cAAc,GAAG,EAAE,CAAC,UAAH,KAAkB,CAAnC;AACA,QAAA,YAAY,GAAG,EAAE,CAAC,UAAH,GAAgB,EAAE,CAAC,WAAnB,KAAmC,EAAE,CAAC,WAArD;AACD;;AAED,YAAM,WAAW,GAAG,KAAK,GAAG,CAA5B;AACA,YAAM,aAAa,GAAG,KAAK,GAAG,CAA9B;AAEA,UAAI,CAAC,cAAD,IAAmB,WAAvB,EAAoC,OAAO,IAAP;AACpC,UAAI,CAAC,YAAD,IAAiB,aAArB,EAAoC,OAAO,IAAP;;AACpC,UAAI,CAAC,cAAc,IAAI,YAAnB,KAAoC,EAAE,CAAC,UAA3C,EAAuD;AACrD,eAAO,KAAK,YAAL,CAAkB,EAAE,CAAC,UAArB,EAA4C,CAA5C,CAAP;AACD;;AAED,aAAO,KAAP;AACD,KAxJM;;AAyJP,IAAA,QAAQ,CAAE,EAAF,EAAe,MAAf,EAA8B;AACpC,UAAI,EAAE,KAAK,MAAX,EAAmB;AACjB,eAAO,IAAP;AACD,OAFD,MAEO,IAAI,EAAE,KAAK,IAAP,IAAe,EAAE,KAAK,QAAQ,CAAC,IAAnC,EAAyC;AAC9C,eAAO,KAAP;AACD,OAFM,MAEA;AACL,eAAO,KAAK,QAAL,CAAc,EAAE,CAAC,UAAjB,EAAwC,MAAxC,CAAP;AACD;AACF,KAjKM;;AAkKP,IAAA,SAAS,CAAE,CAAF,EAAe;AACtB,YAAM,IAAI,GAAG,YAAY,CAAC,CAAD,CAAzB;;AAEA,UAAI,CAAC,CAAC,IAAF,KAAW,SAAX,IAAwB,IAAI,CAAC,CAAD,CAAJ,KAAY,QAAQ,CAAC,IAAjD,EAAuD;AACrD,cAAM,MAAM,GAAG,KAAK,KAAL,CAAW,MAA1B,CADqD,CAErD;;AACA,cAAM,QAAQ,GAAG,MAAM,CAAC,YAAP,GAAuB,UAAxC;;AACA,YAAI,MAAM,IAAI,KAAK,YAAL,CAAkB,MAAlB,CAAV,IAAuC,KAAK,QAAL,CAAc,QAAd,EAAwB,MAAxB,CAA3C,EAA4E;AAC1E,iBAAO,CAAC,KAAK,YAAL,CAAkB,MAAlB,EAA0B,CAA1B,CAAR;AACD;;AACD,eAAO,IAAP;AACD;;AAED,WAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,IAAI,CAAC,MAAjC,EAAyC,KAAK,EAA9C,EAAkD;AAChD,cAAM,EAAE,GAAG,IAAI,CAAC,KAAD,CAAf;AAEA,YAAI,EAAE,KAAK,QAAX,EAAqB,OAAO,IAAP;AACrB,YAAI,EAAE,KAAK,QAAQ,CAAC,eAApB,EAAqC,OAAO,IAAP;AACrC,YAAI,EAAE,KAAK,KAAK,KAAL,CAAW,OAAtB,EAA+B,OAAO,IAAP;AAE/B,YAAI,KAAK,YAAL,CAAkB,EAAlB,CAAJ,EAAsC,OAAO,CAAC,KAAK,YAAL,CAAkB,EAAlB,EAAiC,CAAjC,CAAR;AACvC;;AAED,aAAO,IAAP;AACD,KA1LM;;AA2LP,IAAA,UAAU,GAAA;AACR,UAAI,KAAK,QAAL,CAAc,UAAd,CAAyB,SAA7B,EAAwC;AACtC,QAAA,QAAQ,CAAC,eAAT,CAA0B,SAA1B,CAAoC,GAApC,CAAwC,mBAAxC;AACD,OAFD,MAEO;AACL,QAAA,uBAAuB,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAK,cAAvB,EAAuC;AAAE,UAAA,OAAO,EAAE;AAAX,SAAvC,CAAvB;AACA,QAAA,MAAM,CAAC,gBAAP,CAAwB,SAAxB,EAAmC,KAAK,cAAxC;AACD;AACF,KAlMM;;AAmMP,IAAA,UAAU,GAAA;AACR,MAAA,QAAQ,CAAC,eAAT,CAA0B,SAA1B,CAAoC,MAApC,CAA2C,mBAA3C;AACA,MAAA,MAAM,CAAC,mBAAP,CAA2B,OAA3B,EAAoC,KAAK,cAAzC;AACA,MAAA,MAAM,CAAC,mBAAP,CAA2B,SAA3B,EAAsC,KAAK,cAA3C;AACD;;AAvMM;AA7BoB,CAAD,CAA9B","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport {defineComponent, App, createApp, h} from 'vue'\n\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\ninterface Stackable extends App {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n // Create a container element\n const container = document.createElement('div');\n\n const props = {\n absolute: this.absolute,\n color: this.overlayColor,\n opacity: this.overlayOpacity\n }\n const wrapper = {\n data() {\n return { value: false }\n },\n render() {\n return h(VOverlay, {\n modelValue: this.value,\n ...props\n })\n }\n }\n // // Create the overlay app\n // const overlayApp = createApp(VOverlay, {\n // absolute: this.absolute,\n // value: false,\n // color: this.overlayColor,\n // opacity: this.overlayOpacity,\n // });\n\n const overlayApp = createApp(wrapper)\n\n // Mount the app to the container\n const overlayInstance = overlayApp.mount(container);\n\n // Determine the parent element\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]');\n\n if (parent) {\n parent.insertBefore(container, parent.firstChild);\n }\n\n this.overlay = overlayInstance;\n this.overlayApp = overlayApp\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlayApp.unmount()\n this.overlayApp = null\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent | KeyboardEvent) {\n if ('key' in e) {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e as WheelEvent)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// Extensions
|
|
1
|
+
import { reactive } from 'vue'; // Extensions
|
|
2
|
+
|
|
2
3
|
import { Service } from '../service';
|
|
3
4
|
export class Breakpoint extends Service {
|
|
4
5
|
constructor(preset) {
|
|
@@ -36,6 +37,7 @@ export class Breakpoint extends Service {
|
|
|
36
37
|
this.mobileBreakpoint = mobileBreakpoint;
|
|
37
38
|
this.scrollBarWidth = scrollBarWidth;
|
|
38
39
|
this.thresholds = thresholds;
|
|
40
|
+
return reactive(this);
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
init() {
|