UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 9.47 kB
{"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","makeLocationProps","useLocation","makePositionProps","usePosition","useProxiedModel","makeRoundedProps","useRounded","useScopeId","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","mergeProps","onMounted","ref","watch","genericComponent","omit","propsFactory","useRender","makeVSnackbarProps","multiLine","Boolean","timeout","type","Number","String","default","vertical","location","transition","VSnackbar","name","props","emits","v","setup","_ref","slots","isActive","locationStyles","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","onPointerleave","contentProps","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { mergeProps, onMounted, ref, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record<string, any> }\n default: never\n actions: never\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => {\n const [overlayProps] = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n locationStyles.value,\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave: startTimeout,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,QAAQ;AAAA,SACRC,iBAAiB,oCAE1B;AAAA,SACSC,WAAW;AAAA,SACXC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,UAAU;AAAA,SACVC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU,yCAElD;AACA,SAASC,UAAU,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC9CC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS;AAQxD,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,SAAS,EAAEC,OAAO;EAClBC,OAAO,EAAE;IACPC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAEN,OAAO;EAEjB,GAAGvB,iBAAiB,CAAC;IAAE8B,QAAQ,EAAE;EAAS,CAAC,CAAU;EACrD,GAAG5B,iBAAiB,EAAE;EACtB,GAAGG,gBAAgB,EAAE;EACrB,GAAGM,gBAAgB,EAAE;EACrB,GAAGH,cAAc,EAAE;EACnB,GAAGU,IAAI,CAACpB,iBAAiB,CAAC;IACxBiC,UAAU,EAAE;EACd,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACnE,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMC,SAAS,GAAGf,gBAAgB,EAAkB,CAAC;EAC1DgB,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEb,kBAAkB,EAAE;EAE3Bc,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,QAAQ,GAAGpC,eAAe,CAAC8B,KAAK,EAAE,YAAY,CAAC;IACrD,MAAM;MAAEO;IAAe,CAAC,GAAGxC,WAAW,CAACiC,KAAK,CAAC;IAC7C,MAAM;MAAEQ;IAAgB,CAAC,GAAGvC,WAAW,CAAC+B,KAAK,CAAC;IAC9C,MAAM;MAAES;IAAQ,CAAC,GAAGpC,UAAU,EAAE;IAChC,MAAM;MAAEqC;IAAa,CAAC,GAAGnC,YAAY,CAACyB,KAAK,CAAC;IAC5C,MAAM;MAAEW,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAGnC,UAAU,CAACsB,KAAK,CAAC;IACvE,MAAM;MAAEc;IAAe,CAAC,GAAG1C,UAAU,CAAC4B,KAAK,CAAC;IAE5C,MAAMe,OAAO,GAAGlC,GAAG,EAAY;IAE/BC,KAAK,CAACwB,QAAQ,EAAEU,YAAY,CAAC;IAC7BlC,KAAK,CAAC,MAAMkB,KAAK,CAACV,OAAO,EAAE0B,YAAY,CAAC;IAExCpC,SAAS,CAAC,MAAM;MACd,IAAI0B,QAAQ,CAACW,KAAK,EAAED,YAAY,EAAE;IACpC,CAAC,CAAC;IAEF,IAAIE,aAAa,GAAG,CAAC,CAAC;IACtB,SAASF,YAAYA,CAAA,EAAI;MACvBG,MAAM,CAACC,YAAY,CAACF,aAAa,CAAC;MAClC,MAAM5B,OAAO,GAAGE,MAAM,CAACQ,KAAK,CAACV,OAAO,CAAC;MAErC,IAAI,CAACgB,QAAQ,CAACW,KAAK,IAAI3B,OAAO,KAAK,CAAC,CAAC,EAAE;MAEvC4B,aAAa,GAAGC,MAAM,CAACE,UAAU,CAAC,MAAM;QACtCf,QAAQ,CAACW,KAAK,GAAG,KAAK;MACxB,CAAC,EAAE3B,OAAO,CAAC;IACb;IAEA,SAASgC,cAAcA,CAAA,EAAI;MACzBH,MAAM,CAACC,YAAY,CAACF,aAAa,CAAC;IACpC;IAEAhC,SAAS,CAAC,MAAM;MACd,MAAM,CAACqC,YAAY,CAAC,GAAG5D,QAAQ,CAAC6D,WAAW,CAACxB,KAAK,CAAC;MAElD,OAAAyB,YAAA,CAAA9D,QAAA,EAAA+D,WAAA;QAAA,OAEUX,OAAO;QAAA,SACN,CACL,YAAY,EACZ;UACE,oBAAoB,EAAET,QAAQ,CAACW,KAAK;UACpC,wBAAwB,EAAEjB,KAAK,CAACZ,SAAS,IAAI,CAACY,KAAK,CAACL,QAAQ;UAC5D,sBAAsB,EAAEK,KAAK,CAACL;QAChC,CAAC,EACDa,eAAe,CAACS,KAAK,EACrBjB,KAAK,CAAC2B,KAAK,CACZ;QAAA,SACO3B,KAAK,CAAC4B;MAAK,GACdL,YAAY;QAAA,cACPjB,QAAQ,CAACW,KAAK;QAAA,uBAAAY,MAAA,IAAdvB,QAAQ,CAACW,KAAK,GAAAY,MAAA;QAAA,gBACTlD,UAAU,CAAC;UACxBgD,KAAK,EAAE,CACL,qBAAqB,EACrBjB,YAAY,CAACO,KAAK,EAClBN,YAAY,CAACM,KAAK,EAClBH,cAAc,CAACG,KAAK,EACpBJ,cAAc,CAACI,KAAK,CACrB;UACDW,KAAK,EAAE,CACLrB,cAAc,CAACU,KAAK,EACpBL,WAAW,CAACK,KAAK,CAClB;UACDK,cAAc;UACdQ,cAAc,EAAEd;QAClB,CAAC,EAAEO,YAAY,CAACQ,YAAY,CAAC;QAAA;QAAA;QAAA,SAGrB,KAAK;QAAA,kBACE,MAAM;QAAA;MAAA,GAEhBtB,OAAO;QAAAf,OAAA,EAAAA,CAAA,MAGVlB,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,EAEhC6B,KAAK,CAACX,OAAO,IAAA+B,YAAA;UAAA,SAEL,qBAAqB;UAAA,QACtB,QAAQ;UAAA,aACH;QAAQ,IAEhBpB,KAAK,CAACX,OAAO,EAAE,EAEpB,EAECW,KAAK,CAAC2B,OAAO,IAAAP,YAAA,CAAA/D,iBAAA;UAAA,YAED;YACRuE,IAAI,EAAE;cACJC,OAAO,EAAE,MAAM;cACfC,MAAM,EAAE;YACV;UACF;QAAC;UAAAzC,OAAA,EAAAA,CAAA,MAAA+B,YAAA;YAAA,SAEU;UAAqB,IAC5BpB,KAAK,CAAC2B,OAAO,EAAE;QAAA,EAGtB;QA3BUI,SAAS,EAAE/B,KAAK,CAAC+B;MAAS;IA8B3C,CAAC,CAAC;IAEF,OAAOvE,WAAW,CAAC,CAAC,CAAC,EAAEkD,OAAO,CAAC;EACjC;AACF,CAAC,CAAC"}