UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 5.22 kB
{"version":3,"file":"VAppBar.mjs","names":["filterToolbarProps","makeVToolbarProps","VToolbar","makeLayoutItemProps","useLayoutItem","useProxiedModel","useSsrBoot","computed","ref","toRef","genericComponent","useRender","VAppBar","name","props","modelValue","type","Boolean","default","location","String","validator","value","includes","height","Number","emits","setup","slots","vToolbarRef","isActive","contentHeight","extensionHeight","ssrBootStyles","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","active","absolute","toolbarProps","undefined"],"sources":["../../../src/components/VAppBar/VAppBar.tsx"],"sourcesContent":["// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { filterToolbarProps, makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VToolbarSlots } from '@/components/VToolbar/VToolbar'\n\nexport const VAppBar = genericComponent<VToolbarSlots>()({\n name: 'VAppBar',\n\n props: {\n // TODO: Implement scrolling techniques\n // hideOnScroll: Boolean\n // invertedScroll: Boolean\n // collapseOnScroll: Boolean\n // elevateOnScroll: Boolean\n // shrinkOnScroll: Boolean\n // fadeImageOnScroll: Boolean\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref()\n const isActive = useProxiedModel(props, 'modelValue')\n const height = computed(() => {\n const height: number = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight: number = vToolbarRef.value?.extensionHeight ?? 0\n\n return (height + extensionHeight)\n })\n const { ssrBootStyles } = useSsrBoot()\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const [toolbarProps] = filterToolbarProps(props)\n\n return (\n <VToolbar\n ref={ vToolbarRef }\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.location === 'bottom',\n },\n ]}\n style={{\n ...layoutItemStyles.value,\n height: undefined,\n ...ssrBootStyles.value,\n }}\n { ...toolbarProps }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType<typeof VAppBar>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB,EAAEC,iBAAiB,EAAEC,QAAQ,oCAExD;AAAA,SACSC,mBAAmB,EAAEC,aAAa;AAAA,SAClCC,eAAe;AAAA,SACfC,UAAU,yCAEnB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACjCC,gBAAgB,EAAEC,SAAS,gCAEpC;AAIA,OAAO,MAAMC,OAAO,GAAGF,gBAAgB,EAAiB,CAAC;EACvDG,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAE;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACAC,UAAU,EAAE;MACVC,IAAI,EAAEC,OAAO;MACbC,OAAO,EAAE;IACX,CAAC;IACDC,QAAQ,EAAE;MACRH,IAAI,EAAEI,MAAoC;MAC1CF,OAAO,EAAE,KAAK;MACdG,SAAS,EAAGC,KAAU,IAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAACD,KAAK;IAC7D,CAAC;IAED,GAAGrB,iBAAiB,EAAE;IACtB,GAAGE,mBAAmB,EAAE;IAExBqB,MAAM,EAAE;MACNR,IAAI,EAAE,CAACS,MAAM,EAAEL,MAAM,CAAC;MACtBF,OAAO,EAAE;IACX;EACF,CAAC;EAEDQ,KAAK,EAAE;IACL,mBAAmB,EAAGJ,KAAc,IAAK;EAC3C,CAAC;EAEDK,KAAK,CAAEb,KAAK,QAAa;IAAA,IAAX;MAAEc;IAAM,CAAC;IACrB,MAAMC,WAAW,GAAGrB,GAAG,EAAE;IACzB,MAAMsB,QAAQ,GAAGzB,eAAe,CAACS,KAAK,EAAE,YAAY,CAAC;IACrD,MAAMU,MAAM,GAAGjB,QAAQ,CAAC,MAAM;MAC5B,MAAMiB,MAAc,GAAGK,WAAW,CAACP,KAAK,EAAES,aAAa,IAAI,CAAC;MAC5D,MAAMC,eAAuB,GAAGH,WAAW,CAACP,KAAK,EAAEU,eAAe,IAAI,CAAC;MAEvE,OAAQR,MAAM,GAAGQ,eAAe;IAClC,CAAC,CAAC;IACF,MAAM;MAAEC;IAAc,CAAC,GAAG3B,UAAU,EAAE;IACtC,MAAM;MAAE4B;IAAiB,CAAC,GAAG9B,aAAa,CAAC;MACzC+B,EAAE,EAAErB,KAAK,CAACD,IAAI;MACduB,KAAK,EAAE7B,QAAQ,CAAC,MAAM8B,QAAQ,CAACvB,KAAK,CAACsB,KAAK,EAAE,EAAE,CAAC,CAAC;MAChDE,QAAQ,EAAE7B,KAAK,CAACK,KAAK,EAAE,UAAU,CAAC;MAClCyB,UAAU,EAAEf,MAAM;MAClBgB,WAAW,EAAEhB,MAAM;MACnBiB,MAAM,EAAEX,QAAQ;MAChBY,QAAQ,EAAEjC,KAAK,CAACK,KAAK,EAAE,UAAU;IACnC,CAAC,CAAC;IAEFH,SAAS,CAAC,MAAM;MACd,MAAM,CAACgC,YAAY,CAAC,GAAG3C,kBAAkB,CAACc,KAAK,CAAC;MAEhD;QAAA,OAEUe,WAAW;QAAA,SACV,CACL,WAAW,EACX;UACE,mBAAmB,EAAEf,KAAK,CAACK,QAAQ,KAAK;QAC1C,CAAC,CACF;QAAA,SACM;UACL,GAAGe,gBAAgB,CAACZ,KAAK;UACzBE,MAAM,EAAEoB,SAAS;UACjB,GAAGX,aAAa,CAACX;QACnB;MAAC,GACIqB,YAAY,GACPf,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}