@files-preview-app/preview-file 1.3.17 → 1.3.19
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/angular.cjs +103 -21
- package/dist/angular.cjs.map +1 -1
- package/dist/angular.js +103 -21
- package/dist/angular.js.map +1 -1
- package/dist/index.cjs +103 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +103 -21
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +103 -21
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +103 -21
- package/dist/react.js.map +1 -1
- package/dist/vue.cjs +103 -21
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +103 -21
- package/dist/vue.js.map +1 -1
- package/package.json +1 -1
package/dist/vue.cjs
CHANGED
|
@@ -6173,7 +6173,7 @@ var ThreeDPlugin = class {
|
|
|
6173
6173
|
{
|
|
6174
6174
|
id: "fit-page",
|
|
6175
6175
|
icon: "fit-page",
|
|
6176
|
-
label: "
|
|
6176
|
+
label: "Fit to Page",
|
|
6177
6177
|
type: "button",
|
|
6178
6178
|
group: "zoom",
|
|
6179
6179
|
execute: () => instance.fitToPage?.()
|
|
@@ -6186,6 +6186,14 @@ var ThreeDPlugin = class {
|
|
|
6186
6186
|
group: "zoom",
|
|
6187
6187
|
execute: () => instance.resetZoom?.()
|
|
6188
6188
|
},
|
|
6189
|
+
{
|
|
6190
|
+
id: "fit-width",
|
|
6191
|
+
icon: "fit-width",
|
|
6192
|
+
label: "Fit to Width",
|
|
6193
|
+
type: "button",
|
|
6194
|
+
group: "zoom",
|
|
6195
|
+
execute: () => instance.fitToWidth?.()
|
|
6196
|
+
},
|
|
6189
6197
|
{
|
|
6190
6198
|
id: "rotate-cw",
|
|
6191
6199
|
icon: "rotate-cw",
|
|
@@ -6217,21 +6225,49 @@ var ThreeDPlugin = class {
|
|
|
6217
6225
|
async render(ctx) {
|
|
6218
6226
|
const container = ctx.container;
|
|
6219
6227
|
container.innerHTML = "";
|
|
6220
|
-
container.style.overflow = "
|
|
6228
|
+
container.style.overflow = "auto";
|
|
6221
6229
|
container.style.position = "relative";
|
|
6222
6230
|
container.style.width = "100%";
|
|
6223
6231
|
container.style.height = "100%";
|
|
6232
|
+
container.style.padding = "0";
|
|
6224
6233
|
container.style.background = "#1a1a1a";
|
|
6225
|
-
|
|
6226
|
-
|
|
6234
|
+
let currentZoom = 1;
|
|
6235
|
+
let isUserZoomed = false;
|
|
6236
|
+
let baseW = Math.max(100, container.clientWidth || 800);
|
|
6237
|
+
let baseH = Math.max(100, container.clientHeight || 600);
|
|
6238
|
+
const updateBaseDimensions = () => {
|
|
6239
|
+
baseW = Math.max(100, container.clientWidth || 800);
|
|
6240
|
+
baseH = Math.max(100, container.clientHeight || 600);
|
|
6241
|
+
};
|
|
6242
|
+
const scrollWrapper = document.createElement("div");
|
|
6243
|
+
scrollWrapper.className = "fp-3d-scroll-wrapper";
|
|
6244
|
+
scrollWrapper.style.minWidth = "100%";
|
|
6245
|
+
scrollWrapper.style.minHeight = "100%";
|
|
6246
|
+
scrollWrapper.style.width = "max-content";
|
|
6247
|
+
scrollWrapper.style.height = "max-content";
|
|
6248
|
+
scrollWrapper.style.display = "flex";
|
|
6249
|
+
scrollWrapper.style.flexDirection = "column";
|
|
6250
|
+
scrollWrapper.style.alignItems = "center";
|
|
6251
|
+
scrollWrapper.style.justifyContent = "flex-start";
|
|
6252
|
+
scrollWrapper.style.boxSizing = "border-box";
|
|
6253
|
+
const sizer = document.createElement("div");
|
|
6254
|
+
sizer.className = "fp-3d-sizer";
|
|
6255
|
+
sizer.style.position = "relative";
|
|
6256
|
+
sizer.style.flexShrink = "0";
|
|
6257
|
+
sizer.style.display = "flex";
|
|
6258
|
+
sizer.style.justifyContent = "center";
|
|
6259
|
+
sizer.style.alignItems = "center";
|
|
6260
|
+
sizer.style.margin = "auto 0";
|
|
6227
6261
|
const scene = new THREE__namespace.Scene();
|
|
6228
6262
|
scene.background = new THREE__namespace.Color(1973796);
|
|
6229
|
-
const camera = new THREE__namespace.PerspectiveCamera(45,
|
|
6263
|
+
const camera = new THREE__namespace.PerspectiveCamera(45, baseW / baseH, 0.1, 2e3);
|
|
6230
6264
|
const renderer = new THREE__namespace.WebGLRenderer({ antialias: true });
|
|
6231
|
-
renderer.setSize(
|
|
6232
|
-
renderer.setPixelRatio(window.devicePixelRatio);
|
|
6265
|
+
renderer.setSize(baseW, baseH);
|
|
6266
|
+
renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));
|
|
6233
6267
|
renderer.shadowMap.enabled = true;
|
|
6234
|
-
|
|
6268
|
+
sizer.appendChild(renderer.domElement);
|
|
6269
|
+
scrollWrapper.appendChild(sizer);
|
|
6270
|
+
container.appendChild(scrollWrapper);
|
|
6235
6271
|
const controls = new OrbitControls_js.OrbitControls(camera, renderer.domElement);
|
|
6236
6272
|
controls.enableDamping = true;
|
|
6237
6273
|
controls.dampingFactor = 0.05;
|
|
@@ -6245,7 +6281,7 @@ var ThreeDPlugin = class {
|
|
|
6245
6281
|
scene.add(dirLight2);
|
|
6246
6282
|
const grid = new THREE__namespace.GridHelper(200, 20, 4473924, 2236962);
|
|
6247
6283
|
scene.add(grid);
|
|
6248
|
-
|
|
6284
|
+
const meshGroup = new THREE__namespace.Group();
|
|
6249
6285
|
let isWireframe = false;
|
|
6250
6286
|
const ext = ctx.metadata.extension?.toLowerCase();
|
|
6251
6287
|
const materials = [];
|
|
@@ -6301,6 +6337,24 @@ var ThreeDPlugin = class {
|
|
|
6301
6337
|
controls.update();
|
|
6302
6338
|
};
|
|
6303
6339
|
fitCamera();
|
|
6340
|
+
const applyZoom = () => {
|
|
6341
|
+
if (!isUserZoomed) {
|
|
6342
|
+
updateBaseDimensions();
|
|
6343
|
+
}
|
|
6344
|
+
const boxW = Math.round(baseW * currentZoom);
|
|
6345
|
+
const boxH = Math.round(baseH * currentZoom);
|
|
6346
|
+
sizer.style.width = `${boxW}px`;
|
|
6347
|
+
sizer.style.height = `${boxH}px`;
|
|
6348
|
+
sizer.style.margin = boxH < container.clientHeight ? "auto 0" : "0";
|
|
6349
|
+
renderer.domElement.style.width = `${boxW}px`;
|
|
6350
|
+
renderer.domElement.style.height = `${boxH}px`;
|
|
6351
|
+
renderer.domElement.style.maxWidth = "none";
|
|
6352
|
+
renderer.domElement.style.maxHeight = "none";
|
|
6353
|
+
renderer.setSize(boxW, boxH, false);
|
|
6354
|
+
camera.aspect = boxW / boxH;
|
|
6355
|
+
camera.updateProjectionMatrix();
|
|
6356
|
+
};
|
|
6357
|
+
applyZoom();
|
|
6304
6358
|
let animId;
|
|
6305
6359
|
const animate = () => {
|
|
6306
6360
|
animId = requestAnimationFrame(animate);
|
|
@@ -6309,11 +6363,10 @@ var ThreeDPlugin = class {
|
|
|
6309
6363
|
};
|
|
6310
6364
|
animate();
|
|
6311
6365
|
const resizeObserver = new ResizeObserver(() => {
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
renderer.setSize(newWidth, newHeight);
|
|
6366
|
+
if (!isUserZoomed && currentZoom === 1) {
|
|
6367
|
+
updateBaseDimensions();
|
|
6368
|
+
applyZoom();
|
|
6369
|
+
}
|
|
6317
6370
|
});
|
|
6318
6371
|
resizeObserver.observe(container);
|
|
6319
6372
|
const cleanup = () => {
|
|
@@ -6327,22 +6380,51 @@ var ThreeDPlugin = class {
|
|
|
6327
6380
|
child.geometry.dispose();
|
|
6328
6381
|
}
|
|
6329
6382
|
});
|
|
6383
|
+
scrollWrapper.remove();
|
|
6330
6384
|
container.innerHTML = "";
|
|
6331
6385
|
};
|
|
6332
6386
|
ctx.signal.addEventListener("abort", cleanup);
|
|
6333
6387
|
return {
|
|
6334
6388
|
destroy: cleanup,
|
|
6335
6389
|
zoomIn: () => {
|
|
6336
|
-
|
|
6337
|
-
|
|
6390
|
+
isUserZoomed = true;
|
|
6391
|
+
currentZoom = Math.min(5, Number((currentZoom * 1.25).toFixed(2)));
|
|
6392
|
+
applyZoom();
|
|
6338
6393
|
},
|
|
6339
6394
|
zoomOut: () => {
|
|
6340
|
-
|
|
6341
|
-
|
|
6395
|
+
currentZoom = Math.max(0.2, Number((currentZoom / 1.25).toFixed(2)));
|
|
6396
|
+
if (currentZoom <= 1) {
|
|
6397
|
+
isUserZoomed = false;
|
|
6398
|
+
}
|
|
6399
|
+
applyZoom();
|
|
6400
|
+
},
|
|
6401
|
+
fitToPage: () => {
|
|
6402
|
+
isUserZoomed = false;
|
|
6403
|
+
currentZoom = 1;
|
|
6404
|
+
updateBaseDimensions();
|
|
6405
|
+
applyZoom();
|
|
6406
|
+
container.scrollTop = 0;
|
|
6407
|
+
container.scrollLeft = 0;
|
|
6408
|
+
fitCamera();
|
|
6409
|
+
},
|
|
6410
|
+
fitToWidth: () => {
|
|
6411
|
+
isUserZoomed = false;
|
|
6412
|
+
currentZoom = 1;
|
|
6413
|
+
updateBaseDimensions();
|
|
6414
|
+
applyZoom();
|
|
6415
|
+
container.scrollTop = 0;
|
|
6416
|
+
container.scrollLeft = 0;
|
|
6417
|
+
fitCamera();
|
|
6418
|
+
},
|
|
6419
|
+
resetZoom: () => {
|
|
6420
|
+
isUserZoomed = false;
|
|
6421
|
+
currentZoom = 1;
|
|
6422
|
+
updateBaseDimensions();
|
|
6423
|
+
applyZoom();
|
|
6424
|
+
container.scrollTop = 0;
|
|
6425
|
+
container.scrollLeft = 0;
|
|
6426
|
+
fitCamera();
|
|
6342
6427
|
},
|
|
6343
|
-
fitToPage: fitCamera,
|
|
6344
|
-
fitToWidth: fitCamera,
|
|
6345
|
-
resetZoom: fitCamera,
|
|
6346
6428
|
rotateCW: () => {
|
|
6347
6429
|
isWireframe = !isWireframe;
|
|
6348
6430
|
materials.forEach((m) => {
|