1 |
- {"version":3,"file":"layout.mjs","names":["useResizeObserver","computed","inject","onActivated","onBeforeUnmount","onDeactivated","onMounted","provide","reactive","ref","shallowRef","convertToUnit","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","VuetifyLayoutKey","Symbol","for","VuetifyLayoutItemKey","ROOT_ZINDEX","makeLayoutProps","overlaps","type","Array","default","fullHeight","Boolean","makeLayoutItemProps","name","String","order","Number","absolute","useLayout","layout","Error","getLayoutItem","mainRect","mainStyles","useLayoutItem","options","id","vm","isKeptAlive","value","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","generateLayers","positions","layoutSizes","activeItems","previousLayer","top","left","right","bottom","layers","layer","position","get","amount","parseInt","push","createLayout","props","parentLayout","rootZIndex","registered","Map","priorities","disabledTransitions","resizeRef","contentRect","computedOverlaps","map","overlap","filter","item","includes","split","topPosition","bottomPosition","topAmount","bottomAmount","set","uniquePriorities","Set","values","p","sort","a","b","items","transitionsEnabled","from","some","length","undefined","transition","slice","_ref","index","size","find","rootVm","isMounted","_ref2","layoutSize","elementSize","disableTransitions","instances","vnode","instanceIndex","indexOf","splice","findIndex","i","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","styles","transform","height","width","delete","v","layoutClasses","layoutStyles","overflow","layoutRef"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n provide,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ninterface Layer {\n top: number\n bottom: number\n left: number\n right: number\n}\n\ninterface LayoutItem extends Layer {\n id: string\n size: number\n position: Position\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<CSSProperties>\n layoutItemScrimStyles: Ref<CSSProperties>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainRect: Ref<Layer>\n mainStyles: Ref<CSSProperties>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n layoutRect: Ref<DOMRectReadOnly | undefined>\n rootZIndex: Ref<number>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles,\n }\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = shallowRef(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map<string, Ref<Position>>,\n layoutSizes: Map<string, Ref<number | string>>,\n activeItems: Map<string, Ref<boolean>>,\n): { id: string, layer: Layer }[] => {\n let previousLayer: Layer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref<string[]>([])\n const positions = reactive(new Map<string, Ref<Position>>())\n const layoutSizes = reactive(new Map<string, Ref<number | string>>())\n const priorities = reactive(new Map<string, Ref<number>>())\n const activeItems = reactive(new Map<string, Ref<boolean>>())\n const disabledTransitions = reactive(new Map<string, Ref<boolean>>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const computedOverlaps = computed(() => {\n const map = new Map<string, { position: Position, amount: number }>()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = layoutSizes.get(top)\n const bottomAmount = layoutSizes.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer\n })\n\n const mainStyles = computed<CSSProperties>(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n const position = positions.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n position: position!.value,\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed<CSSProperties>(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (!isMounted.value) return styles\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed<CSSProperties>(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: rootZIndex.value,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n"],"mappings":"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"}
|