Tracking de l'application VApp (IHM du jeu)
This commit is contained in:
13
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.css
generated
vendored
Normal file
13
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.css
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
.v-app-bar {
|
||||
display: flex;
|
||||
}
|
||||
.v-app-bar.v-toolbar {
|
||||
background: rgb(var(--v-theme-surface));
|
||||
color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
|
||||
}
|
||||
.v-app-bar.v-toolbar:not(.v-toolbar--flat) {
|
||||
box-shadow: 0px 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 4px 5px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 10px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
|
||||
}
|
||||
.v-app-bar:not(.v-toolbar--absolute) {
|
||||
padding-inline-end: var(--v-scrollbar-offset);
|
||||
}
|
||||
130
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.mjs
generated
vendored
Normal file
130
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.mjs
generated
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
|
||||
// Styles
|
||||
import "./VAppBar.css";
|
||||
|
||||
// Components
|
||||
import { makeVToolbarProps, VToolbar } from "../VToolbar/VToolbar.mjs"; // Composables
|
||||
import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.mjs";
|
||||
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
||||
import { makeScrollProps, useScroll } from "../../composables/scroll.mjs";
|
||||
import { useSsrBoot } from "../../composables/ssrBoot.mjs";
|
||||
import { useToggleScope } from "../../composables/toggleScope.mjs"; // Utilities
|
||||
import { computed, ref, shallowRef, toRef, watchEffect } from 'vue';
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
||||
export const makeVAppBarProps = propsFactory({
|
||||
scrollBehavior: String,
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: 'top',
|
||||
validator: value => ['top', 'bottom'].includes(value)
|
||||
},
|
||||
...makeVToolbarProps(),
|
||||
...makeLayoutItemProps(),
|
||||
...makeScrollProps(),
|
||||
height: {
|
||||
type: [Number, String],
|
||||
default: 64
|
||||
}
|
||||
}, 'VAppBar');
|
||||
export const VAppBar = genericComponent()({
|
||||
name: 'VAppBar',
|
||||
props: makeVAppBarProps(),
|
||||
emits: {
|
||||
'update:modelValue': value => true
|
||||
},
|
||||
setup(props, _ref) {
|
||||
let {
|
||||
slots
|
||||
} = _ref;
|
||||
const vToolbarRef = ref();
|
||||
const isActive = useProxiedModel(props, 'modelValue');
|
||||
const scrollBehavior = computed(() => {
|
||||
const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);
|
||||
return {
|
||||
hide: behavior.has('hide'),
|
||||
// fullyHide: behavior.has('fully-hide'),
|
||||
inverted: behavior.has('inverted'),
|
||||
collapse: behavior.has('collapse'),
|
||||
elevate: behavior.has('elevate'),
|
||||
fadeImage: behavior.has('fade-image')
|
||||
// shrink: behavior.has('shrink'),
|
||||
};
|
||||
});
|
||||
const canScroll = computed(() => {
|
||||
const behavior = scrollBehavior.value;
|
||||
return behavior.hide ||
|
||||
// behavior.fullyHide ||
|
||||
behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||
|
||||
// behavior.shrink ||
|
||||
!isActive.value;
|
||||
});
|
||||
const {
|
||||
currentScroll,
|
||||
scrollThreshold,
|
||||
isScrollingUp,
|
||||
scrollRatio
|
||||
} = useScroll(props, {
|
||||
canScroll
|
||||
});
|
||||
const isCollapsed = computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
|
||||
const isFlat = computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
||||
const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
||||
const height = computed(() => {
|
||||
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
||||
const height = vToolbarRef.value?.contentHeight ?? 0;
|
||||
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
||||
return height + extensionHeight;
|
||||
});
|
||||
useToggleScope(computed(() => !!props.scrollBehavior), () => {
|
||||
watchEffect(() => {
|
||||
if (scrollBehavior.value.hide) {
|
||||
if (scrollBehavior.value.inverted) {
|
||||
isActive.value = currentScroll.value > scrollThreshold.value;
|
||||
} else {
|
||||
isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
|
||||
}
|
||||
} else {
|
||||
isActive.value = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
const {
|
||||
ssrBootStyles
|
||||
} = useSsrBoot();
|
||||
const {
|
||||
layoutItemStyles
|
||||
} = useLayoutItem({
|
||||
id: props.name,
|
||||
order: computed(() => parseInt(props.order, 10)),
|
||||
position: toRef(props, 'location'),
|
||||
layoutSize: height,
|
||||
elementSize: shallowRef(undefined),
|
||||
active: isActive,
|
||||
absolute: toRef(props, 'absolute')
|
||||
});
|
||||
useRender(() => {
|
||||
const toolbarProps = VToolbar.filterProps(props);
|
||||
return _createVNode(VToolbar, _mergeProps({
|
||||
"ref": vToolbarRef,
|
||||
"class": ['v-app-bar', {
|
||||
'v-app-bar--bottom': props.location === 'bottom'
|
||||
}, props.class],
|
||||
"style": [{
|
||||
...layoutItemStyles.value,
|
||||
'--v-toolbar-image-opacity': opacity.value,
|
||||
height: undefined,
|
||||
...ssrBootStyles.value
|
||||
}, props.style]
|
||||
}, toolbarProps, {
|
||||
"collapse": isCollapsed.value,
|
||||
"flat": isFlat.value
|
||||
}), slots);
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAppBar.mjs.map
|
||||
1
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
14
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.sass
generated
vendored
Normal file
14
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBar.sass
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
.v-app-bar
|
||||
display: flex
|
||||
|
||||
&.v-toolbar
|
||||
@include tools.theme($app-bar-theme...)
|
||||
|
||||
&:not(.v-toolbar--flat)
|
||||
@include tools.elevation($app-bar-elevation)
|
||||
|
||||
&:not(.v-toolbar--absolute)
|
||||
padding-inline-end: var(--v-scrollbar-offset)
|
||||
24
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarNavIcon.mjs
generated
vendored
Normal file
24
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarNavIcon.mjs
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
|
||||
// Components
|
||||
import { makeVBtnProps, VBtn } from "../VBtn/VBtn.mjs"; // Utilities
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
||||
export const makeVAppBarNavIconProps = propsFactory({
|
||||
...makeVBtnProps({
|
||||
icon: '$menu',
|
||||
variant: 'text'
|
||||
})
|
||||
}, 'VAppBarNavIcon');
|
||||
export const VAppBarNavIcon = genericComponent()({
|
||||
name: 'VAppBarNavIcon',
|
||||
props: makeVAppBarNavIconProps(),
|
||||
setup(props, _ref) {
|
||||
let {
|
||||
slots
|
||||
} = _ref;
|
||||
useRender(() => _createVNode(VBtn, _mergeProps(props, {
|
||||
"class": ['v-app-bar-nav-icon']
|
||||
}), slots));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAppBarNavIcon.mjs.map
|
||||
1
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarNavIcon.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarNavIcon.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VAppBarNavIcon.mjs","names":["makeVBtnProps","VBtn","genericComponent","propsFactory","useRender","makeVAppBarNavIconProps","icon","variant","VAppBarNavIcon","name","props","setup","_ref","slots","_createVNode","_mergeProps"],"sources":["../../../src/components/VAppBar/VAppBarNavIcon.tsx"],"sourcesContent":["// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VBtnSlots } from '@/components/VBtn/VBtn'\n\nexport const makeVAppBarNavIconProps = propsFactory({\n ...makeVBtnProps({\n icon: '$menu',\n variant: 'text' as const,\n }),\n}, 'VAppBarNavIcon')\n\nexport const VAppBarNavIcon = genericComponent<VBtnSlots>()({\n name: 'VAppBarNavIcon',\n\n props: makeVAppBarNavIconProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n <VBtn\n { ...props }\n class={[\n 'v-app-bar-nav-icon',\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VAppBarNavIcon = InstanceType<typeof VAppBarNavIcon>\n"],"mappings":";AAAA;AAAA,SACSA,aAAa,EAAEC,IAAI,4BAE5B;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClD,GAAGH,aAAa,CAAC;IACfM,IAAI,EAAE,OAAO;IACbC,OAAO,EAAE;EACX,CAAC;AACH,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMC,cAAc,GAAGN,gBAAgB,CAAY,CAAC,CAAC;EAC1DO,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEL,uBAAuB,CAAC,CAAC;EAEhCM,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBR,SAAS,CAAC,MAAAU,YAAA,CAAAb,IAAA,EAAAc,WAAA,CAEDL,KAAK;MAAA,SACH,CACL,oBAAoB;IACrB,IACSG,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
||||
18
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarTitle.mjs
generated
vendored
Normal file
18
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarTitle.mjs
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
|
||||
// Components
|
||||
import { makeVToolbarTitleProps, VToolbarTitle } from "../VToolbar/VToolbarTitle.mjs"; // Utilities
|
||||
import { genericComponent, useRender } from "../../util/index.mjs"; // Types
|
||||
export const VAppBarTitle = genericComponent()({
|
||||
name: 'VAppBarTitle',
|
||||
props: makeVToolbarTitleProps(),
|
||||
setup(props, _ref) {
|
||||
let {
|
||||
slots
|
||||
} = _ref;
|
||||
useRender(() => _createVNode(VToolbarTitle, _mergeProps(props, {
|
||||
"class": "v-app-bar-title"
|
||||
}), slots));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAppBarTitle.mjs.map
|
||||
1
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarTitle.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/components/VAppBar/VAppBarTitle.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VAppBarTitle.mjs","names":["makeVToolbarTitleProps","VToolbarTitle","genericComponent","useRender","VAppBarTitle","name","props","setup","_ref","slots","_createVNode","_mergeProps"],"sources":["../../../src/components/VAppBar/VAppBarTitle.tsx"],"sourcesContent":["// Components\nimport { makeVToolbarTitleProps, VToolbarTitle } from '@/components/VToolbar/VToolbarTitle'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { VToolbarTitleSlots } from '@/components/VToolbar/VToolbarTitle'\n\nexport const VAppBarTitle = genericComponent<VToolbarTitleSlots>()({\n name: 'VAppBarTitle',\n\n props: makeVToolbarTitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n <VToolbarTitle\n { ...props }\n class=\"v-app-bar-title\"\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VAppBarTitle = InstanceType<typeof VAppBarTitle>\n"],"mappings":";AAAA;AAAA,SACSA,sBAAsB,EAAEC,aAAa,yCAE9C;AAAA,SACSC,gBAAgB,EAAEC,SAAS,gCAEpC;AAGA,OAAO,MAAMC,YAAY,GAAGF,gBAAgB,CAAqB,CAAC,CAAC;EACjEG,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAEN,sBAAsB,CAAC,CAAC;EAE/BO,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBL,SAAS,CAAC,MAAAO,YAAA,CAAAT,aAAA,EAAAU,WAAA,CAEDL,KAAK;MAAA;IAAA,IAEAG,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
||||
44
VApp/node_modules/vuetify/lib/components/VAppBar/_variables.scss
generated
vendored
Normal file
44
VApp/node_modules/vuetify/lib/components/VAppBar/_variables.scss
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
@use "sass:map";
|
||||
@use "../../styles/settings/variables";
|
||||
@use "../../styles/tools/functions";
|
||||
|
||||
// VAppBar
|
||||
$app-bar-background: rgb(var(--v-theme-surface)) !default;
|
||||
$app-bar-border-color: variables.$border-color-root !default;
|
||||
$app-bar-border-radius: map.get(variables.$rounded, '0') !default;
|
||||
$app-bar-border-style: variables.$border-style-root !default;
|
||||
$app-bar-border-thin-width: 0 0 thin !default;
|
||||
$app-bar-border-width: 0 !default;
|
||||
$app-bar-collapsed-border-radius: 24px !default;
|
||||
$app-bar-collapsed-max-width: 112px !default;
|
||||
$app-bar-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
|
||||
$app-bar-density-comfortable-padding: 4px !default;
|
||||
$app-bar-density-compact-padding: 0 !default;
|
||||
$app-bar-density-default-padding: 8px !default;
|
||||
$app-bar-elevation: 4 !default;
|
||||
$app-bar-flat-elevation: 0 !default;
|
||||
$app-bar-image-height: inherit !default;
|
||||
$app-bar-image-object-fit: cover !default;
|
||||
$app-bar-image-width: inherit !default;
|
||||
$app-bar-padding-end: 4px !default;
|
||||
$app-bar-padding-start: 4px !default;
|
||||
$app-bar-prominent-height: 128px !default;
|
||||
$app-bar-rounded-border-radius: variables.$border-radius-root !default;
|
||||
$app-bar-scrolled-title-padding-bottom: 9px !default;
|
||||
$app-bar-shaped-border-radius: map.get(variables.$rounded, 'xl') $app-bar-border-radius !default;
|
||||
$app-bar-title-font-size: functions.map-deep-get(variables.$typography, 'h5', 'size') !default;
|
||||
$app-bar-title-padding: 6px 20px !default;
|
||||
$app-bar-transition: .2s variables.$standard-easing !default;
|
||||
|
||||
// Lists
|
||||
$app-bar-border: (
|
||||
$app-bar-border-color,
|
||||
$app-bar-border-style,
|
||||
$app-bar-border-width,
|
||||
$app-bar-border-thin-width
|
||||
) !default;
|
||||
|
||||
$app-bar-theme: (
|
||||
$app-bar-background,
|
||||
$app-bar-color
|
||||
) !default;
|
||||
1148
VApp/node_modules/vuetify/lib/components/VAppBar/index.d.mts
generated
vendored
Normal file
1148
VApp/node_modules/vuetify/lib/components/VAppBar/index.d.mts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4
VApp/node_modules/vuetify/lib/components/VAppBar/index.mjs
generated
vendored
Normal file
4
VApp/node_modules/vuetify/lib/components/VAppBar/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
export { VAppBar } from "./VAppBar.mjs";
|
||||
export { VAppBarNavIcon } from "./VAppBarNavIcon.mjs";
|
||||
export { VAppBarTitle } from "./VAppBarTitle.mjs";
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
VApp/node_modules/vuetify/lib/components/VAppBar/index.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/components/VAppBar/index.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.mjs","names":["VAppBar","VAppBarNavIcon","VAppBarTitle"],"sources":["../../../src/components/VAppBar/index.ts"],"sourcesContent":["export { VAppBar } from './VAppBar'\nexport { VAppBarNavIcon } from './VAppBarNavIcon'\nexport { VAppBarTitle } from './VAppBarTitle'\n"],"mappings":"SAASA,OAAO;AAAA,SACPC,cAAc;AAAA,SACdC,YAAY"}
|
||||
Reference in New Issue
Block a user