Tracking de l'application VApp (IHM du jeu)

This commit is contained in:
2025-05-11 18:04:12 +02:00
commit 89e9db9b62
17763 changed files with 3718499 additions and 0 deletions

View File

@ -0,0 +1,112 @@
// Utilities
import { h, Transition, TransitionGroup } from 'vue';
import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
export const makeTransitionProps = propsFactory({
disabled: Boolean,
group: Boolean,
hideOnLeave: Boolean,
leaveAbsolute: Boolean,
mode: String,
origin: String
}, 'transition');
export function createCssTransition(name, origin, mode) {
return genericComponent()({
name,
props: makeTransitionProps({
mode,
origin
}),
setup(props, _ref) {
let {
slots
} = _ref;
const functions = {
onBeforeEnter(el) {
if (props.origin) {
el.style.transformOrigin = props.origin;
}
},
onLeave(el) {
if (props.leaveAbsolute) {
const {
offsetTop,
offsetLeft,
offsetWidth,
offsetHeight
} = el;
el._transitionInitialStyles = {
position: el.style.position,
top: el.style.top,
left: el.style.left,
width: el.style.width,
height: el.style.height
};
el.style.position = 'absolute';
el.style.top = `${offsetTop}px`;
el.style.left = `${offsetLeft}px`;
el.style.width = `${offsetWidth}px`;
el.style.height = `${offsetHeight}px`;
}
if (props.hideOnLeave) {
el.style.setProperty('display', 'none', 'important');
}
},
onAfterLeave(el) {
if (props.leaveAbsolute && el?._transitionInitialStyles) {
const {
position,
top,
left,
width,
height
} = el._transitionInitialStyles;
delete el._transitionInitialStyles;
el.style.position = position || '';
el.style.top = top || '';
el.style.left = left || '';
el.style.width = width || '';
el.style.height = height || '';
}
}
};
return () => {
const tag = props.group ? TransitionGroup : Transition;
return h(tag, {
name: props.disabled ? '' : name,
css: !props.disabled,
...(props.group ? undefined : {
mode: props.mode
}),
...(props.disabled ? {} : functions)
}, slots.default);
};
}
});
}
export function createJavascriptTransition(name, functions) {
let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in-out';
return genericComponent()({
name,
props: {
mode: {
type: String,
default: mode
},
disabled: Boolean
},
setup(props, _ref2) {
let {
slots
} = _ref2;
return () => {
return h(Transition, {
name: props.disabled ? '' : name,
css: !props.disabled,
// mode: props.mode, // TODO: vuejs/vue-next#3104
...(props.disabled ? {} : functions)
}, slots.default);
};
}
});
}
//# sourceMappingURL=createTransition.mjs.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,142 @@
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
// Utilities
import { Transition } from 'vue';
import { acceleratedEasing, animate, deceleratedEasing, genericComponent, nullifyTransforms, propsFactory, standardEasing } from "../../util/index.mjs";
import { getTargetBox } from "../../util/box.mjs"; // Types
export const makeVDialogTransitionProps = propsFactory({
target: [Object, Array]
}, 'v-dialog-transition');
export const VDialogTransition = genericComponent()({
name: 'VDialogTransition',
props: makeVDialogTransitionProps(),
setup(props, _ref) {
let {
slots
} = _ref;
const functions = {
onBeforeEnter(el) {
el.style.pointerEvents = 'none';
el.style.visibility = 'hidden';
},
async onEnter(el, done) {
await new Promise(resolve => requestAnimationFrame(resolve));
await new Promise(resolve => requestAnimationFrame(resolve));
el.style.visibility = '';
const {
x,
y,
sx,
sy,
speed
} = getDimensions(props.target, el);
const animation = animate(el, [{
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
opacity: 0
}, {}], {
duration: 225 * speed,
easing: deceleratedEasing
});
getChildren(el)?.forEach(el => {
animate(el, [{
opacity: 0
}, {
opacity: 0,
offset: 0.33
}, {}], {
duration: 225 * 2 * speed,
easing: standardEasing
});
});
animation.finished.then(() => done());
},
onAfterEnter(el) {
el.style.removeProperty('pointer-events');
},
onBeforeLeave(el) {
el.style.pointerEvents = 'none';
},
async onLeave(el, done) {
await new Promise(resolve => requestAnimationFrame(resolve));
const {
x,
y,
sx,
sy,
speed
} = getDimensions(props.target, el);
const animation = animate(el, [{}, {
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
opacity: 0
}], {
duration: 125 * speed,
easing: acceleratedEasing
});
animation.finished.then(() => done());
getChildren(el)?.forEach(el => {
animate(el, [{}, {
opacity: 0,
offset: 0.2
}, {
opacity: 0
}], {
duration: 125 * 2 * speed,
easing: standardEasing
});
});
},
onAfterLeave(el) {
el.style.removeProperty('pointer-events');
}
};
return () => {
return props.target ? _createVNode(Transition, _mergeProps({
"name": "dialog-transition"
}, functions, {
"css": false
}), slots) : _createVNode(Transition, {
"name": "dialog-transition"
}, slots);
};
}
});
/** Animatable children (card, sheet, list) */
function getChildren(el) {
const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children;
return els && [...els];
}
function getDimensions(target, el) {
const targetBox = getTargetBox(target);
const elBox = nullifyTransforms(el);
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
let offsetX = targetBox.left + targetBox.width / 2;
if (anchorSide === 'left' || anchorOffset === 'left') {
offsetX -= targetBox.width / 2;
} else if (anchorSide === 'right' || anchorOffset === 'right') {
offsetX += targetBox.width / 2;
}
let offsetY = targetBox.top + targetBox.height / 2;
if (anchorSide === 'top' || anchorOffset === 'top') {
offsetY -= targetBox.height / 2;
} else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {
offsetY += targetBox.height / 2;
}
const tsx = targetBox.width / elBox.width;
const tsy = targetBox.height / elBox.height;
const maxs = Math.max(1, tsx, tsy);
const sx = tsx / maxs || 0;
const sy = tsy / maxs || 0;
// Animate elements larger than 12% of the screen area up to 1.5x slower
const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);
const speed = asa > 0.12 ? Math.min(1.5, (asa - 0.12) * 10 + 1) : 1;
return {
x: offsetX - (originX + elBox.left),
y: offsetY - (originY + elBox.top),
sx,
sy,
speed
};
}
//# sourceMappingURL=dialog-transition.mjs.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,64 @@
// Utilities
import { camelize } from 'vue';
export default function () {
let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
const sizeProperty = x ? 'width' : 'height';
const offsetProperty = camelize(`offset-${sizeProperty}`);
return {
onBeforeEnter(el) {
el._parent = el.parentNode;
el._initialStyle = {
transition: el.style.transition,
overflow: el.style.overflow,
[sizeProperty]: el.style[sizeProperty]
};
},
onEnter(el) {
const initialStyle = el._initialStyle;
el.style.setProperty('transition', 'none', 'important');
// Hide overflow to account for collapsed margins in the calculated height
el.style.overflow = 'hidden';
const offset = `${el[offsetProperty]}px`;
el.style[sizeProperty] = '0';
void el.offsetHeight; // force reflow
el.style.transition = initialStyle.transition;
if (expandedParentClass && el._parent) {
el._parent.classList.add(expandedParentClass);
}
requestAnimationFrame(() => {
el.style[sizeProperty] = offset;
});
},
onAfterEnter: resetStyles,
onEnterCancelled: resetStyles,
onLeave(el) {
el._initialStyle = {
transition: '',
overflow: el.style.overflow,
[sizeProperty]: el.style[sizeProperty]
};
el.style.overflow = 'hidden';
el.style[sizeProperty] = `${el[offsetProperty]}px`;
void el.offsetHeight; // force reflow
requestAnimationFrame(() => el.style[sizeProperty] = '0');
},
onAfterLeave,
onLeaveCancelled: onAfterLeave
};
function onAfterLeave(el) {
if (expandedParentClass && el._parent) {
el._parent.classList.remove(expandedParentClass);
}
resetStyles(el);
}
function resetStyles(el) {
const size = el._initialStyle[sizeProperty];
el.style.overflow = el._initialStyle.overflow;
if (size != null) el.style[sizeProperty] = size;
delete el._initialStyle;
}
}
//# sourceMappingURL=expand-transition.mjs.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
import { createCssTransition, createJavascriptTransition } from "./createTransition.mjs";
import ExpandTransitionGenerator from "./expand-transition.mjs"; // Component specific transitions
export const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in');
// Generic transitions
export const VDialogBottomTransition = createCssTransition('dialog-bottom-transition');
export const VDialogTopTransition = createCssTransition('dialog-top-transition');
export const VFadeTransition = createCssTransition('fade-transition');
export const VScaleTransition = createCssTransition('scale-transition');
export const VScrollXTransition = createCssTransition('scroll-x-transition');
export const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition');
export const VScrollYTransition = createCssTransition('scroll-y-transition');
export const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition');
export const VSlideXTransition = createCssTransition('slide-x-transition');
export const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition');
export const VSlideYTransition = createCssTransition('slide-y-transition');
export const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition');
// Javascript transitions
export const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());
export const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));
export { VDialogTransition } from "./dialog-transition.mjs";
//# sourceMappingURL=index.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["createCssTransition","createJavascriptTransition","ExpandTransitionGenerator","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","VExpandXTransition","VDialogTransition"],"sources":["../../../src/components/transitions/index.ts"],"sourcesContent":["import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport { VDialogTransition } from './dialog-transition'\n\nexport type VFabTransition = InstanceType<typeof VFabTransition>\nexport type VDialogBottomTransition = InstanceType<typeof VDialogBottomTransition>\nexport type VDialogTopTransition = InstanceType<typeof VDialogTopTransition>\nexport type VFadeTransition = InstanceType<typeof VFadeTransition>\nexport type VScaleTransition = InstanceType<typeof VScaleTransition>\nexport type VScrollXTransition = InstanceType<typeof VScrollXTransition>\nexport type VScrollXReverseTransition = InstanceType<typeof VScrollXReverseTransition>\nexport type VScrollYTransition = InstanceType<typeof VScrollYTransition>\nexport type VScrollYReverseTransition = InstanceType<typeof VScrollYReverseTransition>\nexport type VSlideXTransition = InstanceType<typeof VSlideXTransition>\nexport type VSlideXReverseTransition = InstanceType<typeof VSlideXReverseTransition>\nexport type VSlideYTransition = InstanceType<typeof VSlideYTransition>\nexport type VSlideYReverseTransition = InstanceType<typeof VSlideYReverseTransition>\nexport type VExpandTransition = InstanceType<typeof VExpandTransition>\nexport type VExpandXTransition = InstanceType<typeof VExpandXTransition>\n"],"mappings":"SACEA,mBAAmB,EACnBC,0BAA0B;AAAA,OAGrBC,yBAAyB,iCAEhC;AACA,OAAO,MAAMC,cAAc,GAAGH,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC;;AAE9F;AACA,OAAO,MAAMI,uBAAuB,GAAGJ,mBAAmB,CAAC,0BAA0B,CAAC;AACtF,OAAO,MAAMK,oBAAoB,GAAGL,mBAAmB,CAAC,uBAAuB,CAAC;AAChF,OAAO,MAAMM,eAAe,GAAGN,mBAAmB,CAAC,iBAAiB,CAAC;AACrE,OAAO,MAAMO,gBAAgB,GAAGP,mBAAmB,CAAC,kBAAkB,CAAC;AACvE,OAAO,MAAMQ,kBAAkB,GAAGR,mBAAmB,CAAC,qBAAqB,CAAC;AAC5E,OAAO,MAAMS,yBAAyB,GAAGT,mBAAmB,CAAC,6BAA6B,CAAC;AAC3F,OAAO,MAAMU,kBAAkB,GAAGV,mBAAmB,CAAC,qBAAqB,CAAC;AAC5E,OAAO,MAAMW,yBAAyB,GAAGX,mBAAmB,CAAC,6BAA6B,CAAC;AAC3F,OAAO,MAAMY,iBAAiB,GAAGZ,mBAAmB,CAAC,oBAAoB,CAAC;AAC1E,OAAO,MAAMa,wBAAwB,GAAGb,mBAAmB,CAAC,4BAA4B,CAAC;AACzF,OAAO,MAAMc,iBAAiB,GAAGd,mBAAmB,CAAC,oBAAoB,CAAC;AAC1E,OAAO,MAAMe,wBAAwB,GAAGf,mBAAmB,CAAC,4BAA4B,CAAC;;AAEzF;AACA,OAAO,MAAMgB,iBAAiB,GAAGf,0BAA0B,CAAC,mBAAmB,EAAEC,yBAAyB,CAAC,CAAC,CAAC;AAC7G,OAAO,MAAMe,kBAAkB,GAAGhB,0BAA0B,CAAC,qBAAqB,EAAEC,yBAAyB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAAA,SAE/GgB,iBAAiB"}