worldorbit 3.2.1 → 3.2.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/browser/obsidian-plugin/dist/diagnostics.d.ts +3 -0
- package/dist/browser/obsidian-plugin/dist/diagnostics.js +23 -0
- package/dist/browser/obsidian-plugin/dist/examples.d.ts +3 -0
- package/dist/browser/obsidian-plugin/dist/examples.js +77 -0
- package/dist/browser/obsidian-plugin/dist/index.d.ts +9 -0
- package/dist/browser/obsidian-plugin/dist/index.js +8 -0
- package/dist/browser/obsidian-plugin/dist/main.d.ts +2 -0
- package/dist/browser/obsidian-plugin/dist/main.js +2 -0
- package/dist/browser/obsidian-plugin/dist/navigation.d.ts +6 -0
- package/dist/browser/obsidian-plugin/dist/navigation.js +44 -0
- package/dist/browser/obsidian-plugin/dist/plugin.d.ts +8 -0
- package/dist/browser/obsidian-plugin/dist/plugin.js +508 -0
- package/dist/browser/obsidian-plugin/dist/positions.d.ts +7 -0
- package/dist/browser/obsidian-plugin/dist/positions.js +14 -0
- package/dist/browser/obsidian-plugin/dist/settings.d.ts +2 -0
- package/dist/browser/obsidian-plugin/dist/settings.js +5 -0
- package/dist/browser/obsidian-plugin/dist/theme.d.ts +2 -0
- package/dist/browser/obsidian-plugin/dist/theme.js +31 -0
- package/dist/browser/obsidian-plugin/dist/types.d.ts +42 -0
- package/dist/browser/obsidian-plugin/dist/types.js +1 -0
- package/dist/browser/obsidian-plugin/dist/viewer-host.d.ts +14 -0
- package/dist/browser/obsidian-plugin/dist/viewer-host.js +110 -0
- package/dist/browser/viewer/dist/index.d.ts +1 -0
- package/dist/browser/viewer/dist/index.js +1 -0
- package/dist/browser/viewer/dist/interactive-2d.d.ts +21 -0
- package/dist/browser/viewer/dist/interactive-2d.js +201 -0
- package/dist/browser/viewer/dist/render.d.ts +1 -1
- package/dist/browser/viewer/dist/render.js +2 -1
- package/dist/browser/viewer/dist/viewer-state.d.ts +1 -1
- package/dist/browser/viewer/dist/viewer-state.js +1 -1
- package/dist/obsidian-plugin/LICENSE +21 -0
- package/dist/obsidian-plugin/README.md +124 -0
- package/dist/obsidian-plugin/main.js +108 -0
- package/dist/obsidian-plugin/manifest.json +9 -0
- package/dist/obsidian-plugin/obsidian_scsh_1.png +0 -0
- package/dist/obsidian-plugin/obsidian_scsh_2.png +0 -0
- package/dist/obsidian-plugin/styles.css +164 -0
- package/dist/unpkg/obsidian-plugin/dist/diagnostics.d.ts +3 -0
- package/dist/unpkg/obsidian-plugin/dist/diagnostics.js +23 -0
- package/dist/unpkg/obsidian-plugin/dist/examples.d.ts +3 -0
- package/dist/unpkg/obsidian-plugin/dist/examples.js +77 -0
- package/dist/unpkg/obsidian-plugin/dist/index.d.ts +9 -0
- package/dist/unpkg/obsidian-plugin/dist/index.js +8 -0
- package/dist/unpkg/obsidian-plugin/dist/main.d.ts +2 -0
- package/dist/unpkg/obsidian-plugin/dist/main.js +2 -0
- package/dist/unpkg/obsidian-plugin/dist/navigation.d.ts +6 -0
- package/dist/unpkg/obsidian-plugin/dist/navigation.js +44 -0
- package/dist/unpkg/obsidian-plugin/dist/plugin.d.ts +8 -0
- package/dist/unpkg/obsidian-plugin/dist/plugin.js +508 -0
- package/dist/unpkg/obsidian-plugin/dist/positions.d.ts +7 -0
- package/dist/unpkg/obsidian-plugin/dist/positions.js +14 -0
- package/dist/unpkg/obsidian-plugin/dist/settings.d.ts +2 -0
- package/dist/unpkg/obsidian-plugin/dist/settings.js +5 -0
- package/dist/unpkg/obsidian-plugin/dist/theme.d.ts +2 -0
- package/dist/unpkg/obsidian-plugin/dist/theme.js +31 -0
- package/dist/unpkg/obsidian-plugin/dist/types.d.ts +42 -0
- package/dist/unpkg/obsidian-plugin/dist/types.js +1 -0
- package/dist/unpkg/obsidian-plugin/dist/viewer-host.d.ts +14 -0
- package/dist/unpkg/obsidian-plugin/dist/viewer-host.js +110 -0
- package/dist/unpkg/viewer/dist/index.d.ts +1 -0
- package/dist/unpkg/viewer/dist/index.js +1 -0
- package/dist/unpkg/viewer/dist/interactive-2d.d.ts +21 -0
- package/dist/unpkg/viewer/dist/interactive-2d.js +201 -0
- package/dist/unpkg/viewer/dist/render.d.ts +1 -1
- package/dist/unpkg/viewer/dist/render.js +2 -1
- package/dist/unpkg/viewer/dist/viewer-state.d.ts +1 -1
- package/dist/unpkg/viewer/dist/viewer-state.js +1 -1
- package/dist/unpkg/worldorbit-editor.min.js +56 -56
- package/dist/unpkg/worldorbit-markdown.min.js +15 -15
- package/dist/unpkg/worldorbit-viewer.min.js +207 -207
- package/dist/unpkg/worldorbit.js +200 -0
- package/dist/unpkg/worldorbit.min.js +210 -210
- package/package.json +18 -1
- package/packages/viewer/dist/index.d.ts +1 -0
- package/packages/viewer/dist/index.js +1 -0
- package/packages/viewer/dist/interactive-2d.d.ts +21 -0
- package/packages/viewer/dist/interactive-2d.js +201 -0
- package/packages/viewer/dist/render.d.ts +1 -1
- package/packages/viewer/dist/render.js +2 -1
- package/packages/viewer/dist/viewer-state.d.ts +1 -1
- package/packages/viewer/dist/viewer-state.js +1 -1
package/dist/unpkg/worldorbit.js
CHANGED
|
@@ -30712,6 +30712,7 @@ void main() {
|
|
|
30712
30712
|
createEmbedPayload: () => createEmbedPayload,
|
|
30713
30713
|
createEmptyAtlasDocument: () => createEmptyAtlasDocument,
|
|
30714
30714
|
createInteractiveViewer: () => createInteractiveViewer,
|
|
30715
|
+
createInteractiveViewer2D: () => createInteractiveViewer2D,
|
|
30715
30716
|
createWorldOrbitEmbedMarkup: () => createWorldOrbitEmbedMarkup,
|
|
30716
30717
|
defineWorldOrbitViewerElement: () => defineWorldOrbitViewerElement,
|
|
30717
30718
|
deserializeViewerAtlasState: () => deserializeViewerAtlasState,
|
|
@@ -42503,6 +42504,205 @@ void main() {
|
|
|
42503
42504
|
function parseSource(source) {
|
|
42504
42505
|
return loadWorldOrbitSource(source).document;
|
|
42505
42506
|
}
|
|
42507
|
+
|
|
42508
|
+
// packages/viewer/dist/interactive-2d.js
|
|
42509
|
+
var DEFAULT_VIEWER_LIMITS2 = {
|
|
42510
|
+
minScale: 0.2,
|
|
42511
|
+
maxScale: 8,
|
|
42512
|
+
fitPadding: 48
|
|
42513
|
+
};
|
|
42514
|
+
function createInteractiveViewer2D(container, scene, options = {}) {
|
|
42515
|
+
const constraints = {
|
|
42516
|
+
minScale: options.minScale ?? DEFAULT_VIEWER_LIMITS2.minScale,
|
|
42517
|
+
maxScale: options.maxScale ?? DEFAULT_VIEWER_LIMITS2.maxScale,
|
|
42518
|
+
fitPadding: options.fitPadding ?? DEFAULT_VIEWER_LIMITS2.fitPadding
|
|
42519
|
+
};
|
|
42520
|
+
const behavior = {
|
|
42521
|
+
pointer: options.pointer ?? true,
|
|
42522
|
+
touch: options.touch ?? true,
|
|
42523
|
+
selection: options.selection ?? true
|
|
42524
|
+
};
|
|
42525
|
+
let renderOptions = {
|
|
42526
|
+
width: options.width,
|
|
42527
|
+
height: options.height,
|
|
42528
|
+
padding: options.padding,
|
|
42529
|
+
preset: options.preset,
|
|
42530
|
+
theme: options.theme,
|
|
42531
|
+
layers: options.layers,
|
|
42532
|
+
subtitle: options.subtitle,
|
|
42533
|
+
pointer: behavior.pointer,
|
|
42534
|
+
touch: behavior.touch,
|
|
42535
|
+
selection: behavior.selection,
|
|
42536
|
+
minScale: constraints.minScale,
|
|
42537
|
+
maxScale: constraints.maxScale,
|
|
42538
|
+
fitPadding: constraints.fitPadding
|
|
42539
|
+
};
|
|
42540
|
+
let state = fitViewerState(scene, DEFAULT_VIEWER_STATE, constraints);
|
|
42541
|
+
let svgElement = null;
|
|
42542
|
+
let cameraRoot = null;
|
|
42543
|
+
let destroyed = false;
|
|
42544
|
+
let activePointerId = null;
|
|
42545
|
+
let lastPointerClientPoint = null;
|
|
42546
|
+
let dragDistance = 0;
|
|
42547
|
+
const previousTabIndex = container.getAttribute("tabindex");
|
|
42548
|
+
const previousTouchAction = container.style.touchAction;
|
|
42549
|
+
if (previousTabIndex === null) {
|
|
42550
|
+
container.tabIndex = 0;
|
|
42551
|
+
}
|
|
42552
|
+
container.classList.add("wo-viewer-container");
|
|
42553
|
+
container.style.touchAction = behavior.touch ? "none" : previousTouchAction;
|
|
42554
|
+
const handleWheel = (event) => {
|
|
42555
|
+
if (!behavior.pointer || destroyed || !svgElement) {
|
|
42556
|
+
return;
|
|
42557
|
+
}
|
|
42558
|
+
event.preventDefault();
|
|
42559
|
+
container.focus();
|
|
42560
|
+
const anchor = getScenePointFromClient(event.clientX, event.clientY);
|
|
42561
|
+
const factor = clamp2(Math.exp(-event.deltaY * 2e-3), 0.6, 1.6);
|
|
42562
|
+
updateState(zoomViewerStateAt(scene, state, factor, anchor, constraints));
|
|
42563
|
+
};
|
|
42564
|
+
const handlePointerDown = (event) => {
|
|
42565
|
+
if (destroyed) {
|
|
42566
|
+
return;
|
|
42567
|
+
}
|
|
42568
|
+
const isTouch = event.pointerType === "touch";
|
|
42569
|
+
if (isTouch && !behavior.touch || !isTouch && !behavior.pointer) {
|
|
42570
|
+
return;
|
|
42571
|
+
}
|
|
42572
|
+
if (!isTouch && event.button !== 0) {
|
|
42573
|
+
return;
|
|
42574
|
+
}
|
|
42575
|
+
activePointerId = event.pointerId;
|
|
42576
|
+
lastPointerClientPoint = { x: event.clientX, y: event.clientY };
|
|
42577
|
+
dragDistance = 0;
|
|
42578
|
+
container.setPointerCapture?.(event.pointerId);
|
|
42579
|
+
container.focus();
|
|
42580
|
+
};
|
|
42581
|
+
const handlePointerMove = (event) => {
|
|
42582
|
+
if (destroyed || activePointerId !== event.pointerId || !lastPointerClientPoint) {
|
|
42583
|
+
return;
|
|
42584
|
+
}
|
|
42585
|
+
const rect = svgElement?.getBoundingClientRect();
|
|
42586
|
+
if (!rect || rect.width <= 0 || rect.height <= 0) {
|
|
42587
|
+
return;
|
|
42588
|
+
}
|
|
42589
|
+
const dx = event.clientX - lastPointerClientPoint.x;
|
|
42590
|
+
const dy = event.clientY - lastPointerClientPoint.y;
|
|
42591
|
+
lastPointerClientPoint = { x: event.clientX, y: event.clientY };
|
|
42592
|
+
dragDistance += Math.hypot(dx, dy);
|
|
42593
|
+
updateState(panViewerState(state, dx * (scene.width / rect.width), dy * (scene.height / rect.height)));
|
|
42594
|
+
};
|
|
42595
|
+
const stopPointer = (event) => {
|
|
42596
|
+
if (activePointerId !== event.pointerId) {
|
|
42597
|
+
return;
|
|
42598
|
+
}
|
|
42599
|
+
activePointerId = null;
|
|
42600
|
+
lastPointerClientPoint = null;
|
|
42601
|
+
container.releasePointerCapture?.(event.pointerId);
|
|
42602
|
+
};
|
|
42603
|
+
const handleClick = (event) => {
|
|
42604
|
+
if (destroyed || !behavior.selection || dragDistance > 6) {
|
|
42605
|
+
return;
|
|
42606
|
+
}
|
|
42607
|
+
const objectEl = event.target?.closest(".wo-object[data-object-id]");
|
|
42608
|
+
if (!objectEl) {
|
|
42609
|
+
return;
|
|
42610
|
+
}
|
|
42611
|
+
updateState({
|
|
42612
|
+
...state,
|
|
42613
|
+
selectedObjectId: objectEl.dataset.objectId ?? null
|
|
42614
|
+
});
|
|
42615
|
+
renderSvg();
|
|
42616
|
+
};
|
|
42617
|
+
container.addEventListener("wheel", handleWheel, { passive: false });
|
|
42618
|
+
container.addEventListener("pointerdown", handlePointerDown);
|
|
42619
|
+
container.addEventListener("pointermove", handlePointerMove);
|
|
42620
|
+
container.addEventListener("pointerup", stopPointer);
|
|
42621
|
+
container.addEventListener("pointercancel", stopPointer);
|
|
42622
|
+
container.addEventListener("click", handleClick);
|
|
42623
|
+
renderSvg();
|
|
42624
|
+
return {
|
|
42625
|
+
getState() {
|
|
42626
|
+
return { ...state };
|
|
42627
|
+
},
|
|
42628
|
+
setState(nextState) {
|
|
42629
|
+
updateState({
|
|
42630
|
+
...state,
|
|
42631
|
+
...nextState
|
|
42632
|
+
});
|
|
42633
|
+
if ("selectedObjectId" in nextState) {
|
|
42634
|
+
renderSvg();
|
|
42635
|
+
}
|
|
42636
|
+
},
|
|
42637
|
+
setRenderOptions(nextOptions) {
|
|
42638
|
+
renderOptions = {
|
|
42639
|
+
...renderOptions,
|
|
42640
|
+
...nextOptions
|
|
42641
|
+
};
|
|
42642
|
+
renderSvg();
|
|
42643
|
+
},
|
|
42644
|
+
fitToSystem() {
|
|
42645
|
+
updateState(fitViewerState(scene, state, constraints));
|
|
42646
|
+
},
|
|
42647
|
+
destroy() {
|
|
42648
|
+
if (destroyed) {
|
|
42649
|
+
return;
|
|
42650
|
+
}
|
|
42651
|
+
destroyed = true;
|
|
42652
|
+
container.removeEventListener("wheel", handleWheel);
|
|
42653
|
+
container.removeEventListener("pointerdown", handlePointerDown);
|
|
42654
|
+
container.removeEventListener("pointermove", handlePointerMove);
|
|
42655
|
+
container.removeEventListener("pointerup", stopPointer);
|
|
42656
|
+
container.removeEventListener("pointercancel", stopPointer);
|
|
42657
|
+
container.removeEventListener("click", handleClick);
|
|
42658
|
+
if (previousTabIndex === null) {
|
|
42659
|
+
container.removeAttribute("tabindex");
|
|
42660
|
+
}
|
|
42661
|
+
container.style.touchAction = previousTouchAction;
|
|
42662
|
+
container.replaceChildren();
|
|
42663
|
+
svgElement = null;
|
|
42664
|
+
cameraRoot = null;
|
|
42665
|
+
}
|
|
42666
|
+
};
|
|
42667
|
+
function renderSvg() {
|
|
42668
|
+
if (destroyed) {
|
|
42669
|
+
return;
|
|
42670
|
+
}
|
|
42671
|
+
container.innerHTML = renderSceneToSvg(scene, {
|
|
42672
|
+
width: renderOptions.width,
|
|
42673
|
+
height: renderOptions.height,
|
|
42674
|
+
padding: renderOptions.padding,
|
|
42675
|
+
preset: renderOptions.preset,
|
|
42676
|
+
theme: renderOptions.theme,
|
|
42677
|
+
layers: renderOptions.layers,
|
|
42678
|
+
subtitle: renderOptions.subtitle,
|
|
42679
|
+
selectedObjectId: state.selectedObjectId
|
|
42680
|
+
});
|
|
42681
|
+
svgElement = container.querySelector("svg");
|
|
42682
|
+
cameraRoot = container.querySelector(`[data-worldorbit-camera-root="${WORLD_LAYER_ID}"]`);
|
|
42683
|
+
applyTransform();
|
|
42684
|
+
}
|
|
42685
|
+
function applyTransform() {
|
|
42686
|
+
cameraRoot?.setAttribute("transform", composeViewerTransform(scene, state));
|
|
42687
|
+
}
|
|
42688
|
+
function updateState(nextState) {
|
|
42689
|
+
state = nextState;
|
|
42690
|
+
applyTransform();
|
|
42691
|
+
}
|
|
42692
|
+
function getScenePointFromClient(clientX, clientY) {
|
|
42693
|
+
const rect = svgElement?.getBoundingClientRect();
|
|
42694
|
+
if (!rect || rect.width <= 0 || rect.height <= 0) {
|
|
42695
|
+
return { x: scene.width / 2, y: scene.height / 2 };
|
|
42696
|
+
}
|
|
42697
|
+
return {
|
|
42698
|
+
x: (clientX - rect.left) / rect.width * scene.width,
|
|
42699
|
+
y: (clientY - rect.top) / rect.height * scene.height
|
|
42700
|
+
};
|
|
42701
|
+
}
|
|
42702
|
+
}
|
|
42703
|
+
function clamp2(value, min, max) {
|
|
42704
|
+
return Math.min(Math.max(value, min), max);
|
|
42705
|
+
}
|
|
42506
42706
|
return __toCommonJS(worldorbit_esm_exports);
|
|
42507
42707
|
})();
|
|
42508
42708
|
/**
|