@xrift/world-components 0.35.0 → 0.35.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/LiveVideoPlayer/index.d.ts.map +1 -1
- package/dist/components/LiveVideoPlayer/index.js +4 -1
- package/dist/components/LiveVideoPlayer/index.js.map +1 -1
- package/dist/components/Mirror/index.d.ts.map +1 -1
- package/dist/components/Mirror/index.js +6 -2
- package/dist/components/Mirror/index.js.map +1 -1
- package/dist/components/VideoPlayer/index.d.ts.map +1 -1
- package/dist/components/VideoPlayer/index.js +4 -1
- package/dist/components/VideoPlayer/index.js.map +1 -1
- package/dist/hooks/useDefaultFont.d.ts.map +1 -1
- package/dist/hooks/useDefaultFont.js +14 -5
- package/dist/hooks/useDefaultFont.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"AAUA,UAAU,KAAK;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAC1B;AAWD,eAAO,MAAM,eAAe,kJAUvB,KAAK,6CA8IT,CAAC"}
|
|
@@ -6,12 +6,14 @@ import { LiveVideoTexture } from "./components/LiveVideoTexture";
|
|
|
6
6
|
import { ErrorBoundary } from "../commons/ErrorBoundary";
|
|
7
7
|
import { PlaceholderScreen } from "../commons/PlaceholderScreen";
|
|
8
8
|
import { useLiveVideoPlayer } from "./hooks/useLiveVideoPlayer";
|
|
9
|
+
import { useDefaultFont } from "../../hooks/useDefaultFont";
|
|
9
10
|
/** UI操作後に自動非表示するまでの時間(ms) */
|
|
10
11
|
const AUTO_HIDE_DELAY = 3000;
|
|
11
12
|
const DEFAULT_POSITION = [0, 2, -5];
|
|
12
13
|
const DEFAULT_ROTATION = [0, 0, 0];
|
|
13
14
|
const DEFAULT_WIDTH = 4;
|
|
14
15
|
const PIXEL_SIZE = 0.01;
|
|
16
|
+
const FONT_LOCALES = ['ja'];
|
|
15
17
|
export const LiveVideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = DEFAULT_ROTATION, width = DEFAULT_WIDTH, url: initialUrl, playing: initialPlaying = false, volume: initialVolume = 1, sync = "global", }) => {
|
|
16
18
|
const { videoState, volume, isBuffering, isRetrying, handlers, } = useLiveVideoPlayer({
|
|
17
19
|
id,
|
|
@@ -22,6 +24,7 @@ export const LiveVideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation
|
|
|
22
24
|
});
|
|
23
25
|
const [controlsVisible, setControlsVisible] = useState(false);
|
|
24
26
|
const autoHideTimerRef = useRef(null);
|
|
27
|
+
const fontFamilies = useDefaultFont(FONT_LOCALES);
|
|
25
28
|
const screenHeight = width * (9 / 16);
|
|
26
29
|
const resetAutoHideTimer = useCallback(() => {
|
|
27
30
|
if (autoHideTimerRef.current)
|
|
@@ -51,7 +54,7 @@ export const LiveVideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation
|
|
|
51
54
|
handlers.onVolumeChange(newVolume);
|
|
52
55
|
resetAutoHideTimer();
|
|
53
56
|
}, [handlers, resetAutoHideTimer]);
|
|
54
|
-
return (_jsxs("group", { position: position, rotation: rotation, children: [isRetrying ? (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.04, color: 0xffcc00, textAlign: "center", children: "
|
|
57
|
+
return (_jsxs("group", { position: position, rotation: rotation, children: [isRetrying ? (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", fontFamilies: fontFamilies, children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.04, color: 0xffcc00, textAlign: "center", fontFamily: "ja", children: "\u518D\u63A5\u7D9A\u4E2D..." }) })) : !videoState.url ? (_jsxs(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", flexDirection: "column", gap: 4, fontFamilies: fontFamilies, children: [_jsx(Text, { fontSize: width / PIXEL_SIZE * 0.05, color: 0x666666, textAlign: "center", fontFamily: "ja", children: "\u30E9\u30A4\u30D6\u914D\u4FE1\u306EURL\u3092\u5165\u529B" }), _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.035, color: 0x666666, textAlign: "center", children: "HLS .m3u8" })] })) : (_jsx(ErrorBoundary, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), onError: handlers.onError, children: _jsx(Suspense, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#333333" }), children: _jsx(LiveVideoTexture, { url: videoState.url, cacheKey: videoState.reloadKey, width: width, height: screenHeight, playing: videoState.playing, volume: volume, onError: handlers.onError, onBufferingChange: handlers.onBufferingChange }) }) }, `error-boundary-${videoState.url}-${videoState.reloadKey}`)), _jsx("group", { position: [0, 0, 0.01], children: _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: videoState.playing, volume: volume, isBuffering: isBuffering, url: videoState.url || "", visible: !videoState.playing || controlsVisible, onPlayPause: handlers.onPlayPause, onStop: handlers.onStop, onVolumeChange: handleVolumeChange, onUrlChange: handlers.onUrlChange, onToggleVisible: handleToggleControls }) })] }));
|
|
55
58
|
});
|
|
56
59
|
LiveVideoPlayer.displayName = "LiveVideoPlayer";
|
|
57
60
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA8B1C,wBAAgB,MAAM,CAAC,EACrB,QAAuB,EACvB,QAAoB,EACpB,IAAa,EACb,KAAgB,EAChB,iBAAuB,EACvB,WAAkC,GACnC,EAAE,WAAW,2CAuGb"}
|
|
@@ -6,6 +6,7 @@ import { Reflector } from 'three/addons/objects/Reflector.js';
|
|
|
6
6
|
import { DEFAULT_LOD_DISTANCE, LOD_HYSTERESIS_RATIO } from './constants';
|
|
7
7
|
import { shouldUseReflector } from './utils';
|
|
8
8
|
const _worldPos = new Vector3();
|
|
9
|
+
const _cameraWorldPos = new Vector3();
|
|
9
10
|
const fallbackVertexShader = `
|
|
10
11
|
varying vec3 vWorldNormal;
|
|
11
12
|
varying vec3 vWorldPosition;
|
|
@@ -87,14 +88,17 @@ export function Mirror({ position = [0, 2.5, -9], rotation = [0, 0, 0], size = [
|
|
|
87
88
|
// VRMFirstPersonのレイヤー設定により、メインカメラではThirdPersonOnlyレイヤー(頭部)が
|
|
88
89
|
// 非表示になっているが、鏡には全身を映す必要があるため
|
|
89
90
|
// onBeforeRenderでメインカメラの設定がコピーされるため、毎フレーム設定が必要
|
|
90
|
-
useFrame(({ camera }) => {
|
|
91
|
+
useFrame(({ camera, gl }) => {
|
|
91
92
|
const reflector = reflectorRef.current;
|
|
92
93
|
if (!reflector)
|
|
93
94
|
return;
|
|
94
95
|
// LOD: カメラと鏡の距離に応じて Reflector ↔ envMap を切り替え
|
|
95
96
|
const fallback = fallbackRef.current;
|
|
96
97
|
if (fallback && groupRef.current) {
|
|
97
|
-
|
|
98
|
+
// VR モードでは XR カメラのワールド座標を使用
|
|
99
|
+
const activeCamera = gl.xr.isPresenting ? gl.xr.getCamera() : camera;
|
|
100
|
+
_cameraWorldPos.setFromMatrixPosition(activeCamera.matrixWorld);
|
|
101
|
+
const distance = _cameraWorldPos.distanceTo(groupRef.current.getWorldPosition(_worldPos));
|
|
98
102
|
const useReflector = shouldUseReflector(distance, lodDistance, usingReflectorRef.current, LOD_HYSTERESIS_RATIO);
|
|
99
103
|
if (useReflector !== usingReflectorRef.current) {
|
|
100
104
|
usingReflectorRef.current = useReflector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAS,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAI5C,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"AAWA,UAAU,KAAK;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAmEpC,eAAO,MAAM,WAAW,4IASnB,KAAK,6CAmJT,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { Container, Text } from '@react-three/uikit';
|
|
|
4
4
|
import { useFrame } from '@react-three/fiber';
|
|
5
5
|
import { ControlPanel } from './components/ControlPanel';
|
|
6
6
|
import { useVideoElement } from '../../hooks/useVideoElement';
|
|
7
|
+
import { useDefaultFont } from '../../hooks/useDefaultFont';
|
|
7
8
|
import { VideoMesh } from '../commons/VideoMesh';
|
|
8
9
|
import { ErrorBoundary } from '../commons/ErrorBoundary';
|
|
9
10
|
import { PlaceholderScreen } from '../commons/PlaceholderScreen';
|
|
@@ -13,6 +14,7 @@ const DEFAULT_POSITION = [0, 2, -5];
|
|
|
13
14
|
const DEFAULT_ROTATION = [0, 0, 0];
|
|
14
15
|
const DEFAULT_WIDTH = 4;
|
|
15
16
|
const PIXEL_SIZE = 0.01;
|
|
17
|
+
const FONT_LOCALES = ['ja'];
|
|
16
18
|
/** 動画テクスチャを表示するコンポーネント(Suspense内で使用) */
|
|
17
19
|
const VideoTextureInner = memo(({ url, cacheKey, width, screenHeight, playing, volume, onDurationChange, onProgressChange, seekTimeRef, }) => {
|
|
18
20
|
const { texture, videoRef } = useVideoElement({
|
|
@@ -53,6 +55,7 @@ export const VideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = D
|
|
|
53
55
|
const [controlsVisible, setControlsVisible] = useState(false);
|
|
54
56
|
const seekTimeRef = useRef(null);
|
|
55
57
|
const autoHideTimerRef = useRef(null);
|
|
58
|
+
const fontFamilies = useDefaultFont(FONT_LOCALES);
|
|
56
59
|
const screenHeight = width * (9 / 16);
|
|
57
60
|
const resetAutoHideTimer = useCallback(() => {
|
|
58
61
|
if (autoHideTimerRef.current)
|
|
@@ -113,7 +116,7 @@ export const VideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = D
|
|
|
113
116
|
console.error('VideoPlayer error:', error);
|
|
114
117
|
setHasError(true);
|
|
115
118
|
}, []);
|
|
116
|
-
return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl && !hasError ? (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.05, color: 0x666666, textAlign: "center",
|
|
119
|
+
return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl && !hasError ? (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", fontFamilies: fontFamilies, children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.05, color: 0x666666, textAlign: "center", fontFamily: "ja", children: "\u52D5\u753B\u306EURL\u3092\u5165\u529B" }) })) : !currentUrl || hasError ? (_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" })) : (_jsx(ErrorBoundary, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), onError: handleError, children: _jsx(Suspense, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#333333" }), children: _jsx(VideoTextureInner, { url: currentUrl, cacheKey: reloadKey, width: width, screenHeight: screenHeight, playing: playing, volume: volume, onDurationChange: handleDurationChange, onProgressChange: handleProgressChange, seekTimeRef: seekTimeRef }, `${currentUrl}-${reloadKey}`) }) })), _jsx("group", { position: [0, 0, 0.01], children: _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: playing, progress: progress, duration: duration, volume: volume, url: currentUrl || '', visible: !playing || controlsVisible, onPlayPause: handlePlayPause, onStop: handleStop, onSeek: handleSeek, onVolumeChange: handleVolumeChange, onUrlChange: handleUrlChange, onToggleVisible: handleToggleControls }) })] }));
|
|
117
120
|
});
|
|
118
121
|
VideoPlayer.displayName = 'VideoPlayer';
|
|
119
122
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAsBhE,6BAA6B;AAC7B,MAAM,eAAe,GAAG,IAAI,CAAA;AAE5B,MAAM,gBAAgB,GAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7D,MAAM,gBAAgB,GAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAC5D,MAAM,aAAa,GAAG,CAAC,CAAA;AACvB,MAAM,UAAU,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDefaultFont.d.ts","sourceRoot":"","sources":["../../src/hooks/useDefaultFont.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"useDefaultFont.d.ts","sourceRoot":"","sources":["../../src/hooks/useDefaultFont.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAA;AAoC7B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EAAE,GACpB,YAAY,GAAG,SAAS,CAsB1B"}
|
|
@@ -5,13 +5,22 @@ const FONT_REGISTRY = {
|
|
|
5
5
|
version: 2,
|
|
6
6
|
},
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
/** ロケールごとのキャッシュ(同じフォントの重複フェッチを防止) */
|
|
9
|
+
const fontCache = new Map();
|
|
10
|
+
function loadFont(locale) {
|
|
11
|
+
const cached = fontCache.get(locale);
|
|
12
|
+
if (cached)
|
|
13
|
+
return cached;
|
|
9
14
|
const config = FONT_REGISTRY[locale];
|
|
10
15
|
const url = `${config.baseUrl}/metrics.json?v=${config.version}`;
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
const promise = fetch(url)
|
|
17
|
+
.then((res) => res.json())
|
|
18
|
+
.then((metrics) => {
|
|
19
|
+
metrics.pages = [`${config.baseUrl}/atlas.png?v=${config.version}`];
|
|
20
|
+
return [locale, { normal: metrics }];
|
|
21
|
+
});
|
|
22
|
+
fontCache.set(locale, promise);
|
|
23
|
+
return promise;
|
|
15
24
|
}
|
|
16
25
|
/**
|
|
17
26
|
* UIKit 用の多言語 MSDF フォントをロードする hook
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDefaultFont.js","sourceRoot":"","sources":["../../src/hooks/useDefaultFont.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAS3C,MAAM,aAAa,GAAmC;IACpD,EAAE,EAAE;QACF,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE,CAAC;KACX;CACF,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"useDefaultFont.js","sourceRoot":"","sources":["../../src/hooks/useDefaultFont.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAS3C,MAAM,aAAa,GAAmC;IACpD,EAAE,EAAE;QACF,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE,CAAC;KACX;CACF,CAAA;AAED,qCAAqC;AACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuD,CAAA;AAEhF,SAAS,QAAQ,CACf,MAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,mBAAmB,MAAM,CAAC,OAAO,EAAE,CAAA;IAChE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;SACvB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QACnE,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAmC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEJ,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqB;IAErB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAA4B,CAAA;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,KAAK,EAAE;YAAE,OAAM;QAEtB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAA;QAEpD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,OAAO,YAAY,CAAA;AACrB,CAAC"}
|