{"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"}