@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/angular.cjs
CHANGED
|
@@ -6221,7 +6221,7 @@ var ThreeDPlugin = class {
|
|
|
6221
6221
|
{
|
|
6222
6222
|
id: "fit-page",
|
|
6223
6223
|
icon: "fit-page",
|
|
6224
|
-
label: "
|
|
6224
|
+
label: "Fit to Page",
|
|
6225
6225
|
type: "button",
|
|
6226
6226
|
group: "zoom",
|
|
6227
6227
|
execute: () => instance.fitToPage?.()
|
|
@@ -6234,6 +6234,14 @@ var ThreeDPlugin = class {
|
|
|
6234
6234
|
group: "zoom",
|
|
6235
6235
|
execute: () => instance.resetZoom?.()
|
|
6236
6236
|
},
|
|
6237
|
+
{
|
|
6238
|
+
id: "fit-width",
|
|
6239
|
+
icon: "fit-width",
|
|
6240
|
+
label: "Fit to Width",
|
|
6241
|
+
type: "button",
|
|
6242
|
+
group: "zoom",
|
|
6243
|
+
execute: () => instance.fitToWidth?.()
|
|
6244
|
+
},
|
|
6237
6245
|
{
|
|
6238
6246
|
id: "rotate-cw",
|
|
6239
6247
|
icon: "rotate-cw",
|
|
@@ -6265,21 +6273,49 @@ var ThreeDPlugin = class {
|
|
|
6265
6273
|
async render(ctx) {
|
|
6266
6274
|
const container = ctx.container;
|
|
6267
6275
|
container.innerHTML = "";
|
|
6268
|
-
container.style.overflow = "
|
|
6276
|
+
container.style.overflow = "auto";
|
|
6269
6277
|
container.style.position = "relative";
|
|
6270
6278
|
container.style.width = "100%";
|
|
6271
6279
|
container.style.height = "100%";
|
|
6280
|
+
container.style.padding = "0";
|
|
6272
6281
|
container.style.background = "#1a1a1a";
|
|
6273
|
-
|
|
6274
|
-
|
|
6282
|
+
let currentZoom = 1;
|
|
6283
|
+
let isUserZoomed = false;
|
|
6284
|
+
let baseW = Math.max(100, container.clientWidth || 800);
|
|
6285
|
+
let baseH = Math.max(100, container.clientHeight || 600);
|
|
6286
|
+
const updateBaseDimensions = () => {
|
|
6287
|
+
baseW = Math.max(100, container.clientWidth || 800);
|
|
6288
|
+
baseH = Math.max(100, container.clientHeight || 600);
|
|
6289
|
+
};
|
|
6290
|
+
const scrollWrapper = document.createElement("div");
|
|
6291
|
+
scrollWrapper.className = "fp-3d-scroll-wrapper";
|
|
6292
|
+
scrollWrapper.style.minWidth = "100%";
|
|
6293
|
+
scrollWrapper.style.minHeight = "100%";
|
|
6294
|
+
scrollWrapper.style.width = "max-content";
|
|
6295
|
+
scrollWrapper.style.height = "max-content";
|
|
6296
|
+
scrollWrapper.style.display = "flex";
|
|
6297
|
+
scrollWrapper.style.flexDirection = "column";
|
|
6298
|
+
scrollWrapper.style.alignItems = "center";
|
|
6299
|
+
scrollWrapper.style.justifyContent = "flex-start";
|
|
6300
|
+
scrollWrapper.style.boxSizing = "border-box";
|
|
6301
|
+
const sizer = document.createElement("div");
|
|
6302
|
+
sizer.className = "fp-3d-sizer";
|
|
6303
|
+
sizer.style.position = "relative";
|
|
6304
|
+
sizer.style.flexShrink = "0";
|
|
6305
|
+
sizer.style.display = "flex";
|
|
6306
|
+
sizer.style.justifyContent = "center";
|
|
6307
|
+
sizer.style.alignItems = "center";
|
|
6308
|
+
sizer.style.margin = "auto 0";
|
|
6275
6309
|
const scene = new THREE__namespace.Scene();
|
|
6276
6310
|
scene.background = new THREE__namespace.Color(1973796);
|
|
6277
|
-
const camera = new THREE__namespace.PerspectiveCamera(45,
|
|
6311
|
+
const camera = new THREE__namespace.PerspectiveCamera(45, baseW / baseH, 0.1, 2e3);
|
|
6278
6312
|
const renderer = new THREE__namespace.WebGLRenderer({ antialias: true });
|
|
6279
|
-
renderer.setSize(
|
|
6280
|
-
renderer.setPixelRatio(window.devicePixelRatio);
|
|
6313
|
+
renderer.setSize(baseW, baseH);
|
|
6314
|
+
renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));
|
|
6281
6315
|
renderer.shadowMap.enabled = true;
|
|
6282
|
-
|
|
6316
|
+
sizer.appendChild(renderer.domElement);
|
|
6317
|
+
scrollWrapper.appendChild(sizer);
|
|
6318
|
+
container.appendChild(scrollWrapper);
|
|
6283
6319
|
const controls = new OrbitControls_js.OrbitControls(camera, renderer.domElement);
|
|
6284
6320
|
controls.enableDamping = true;
|
|
6285
6321
|
controls.dampingFactor = 0.05;
|
|
@@ -6293,7 +6329,7 @@ var ThreeDPlugin = class {
|
|
|
6293
6329
|
scene.add(dirLight2);
|
|
6294
6330
|
const grid = new THREE__namespace.GridHelper(200, 20, 4473924, 2236962);
|
|
6295
6331
|
scene.add(grid);
|
|
6296
|
-
|
|
6332
|
+
const meshGroup = new THREE__namespace.Group();
|
|
6297
6333
|
let isWireframe = false;
|
|
6298
6334
|
const ext = ctx.metadata.extension?.toLowerCase();
|
|
6299
6335
|
const materials = [];
|
|
@@ -6349,6 +6385,24 @@ var ThreeDPlugin = class {
|
|
|
6349
6385
|
controls.update();
|
|
6350
6386
|
};
|
|
6351
6387
|
fitCamera();
|
|
6388
|
+
const applyZoom = () => {
|
|
6389
|
+
if (!isUserZoomed) {
|
|
6390
|
+
updateBaseDimensions();
|
|
6391
|
+
}
|
|
6392
|
+
const boxW = Math.round(baseW * currentZoom);
|
|
6393
|
+
const boxH = Math.round(baseH * currentZoom);
|
|
6394
|
+
sizer.style.width = `${boxW}px`;
|
|
6395
|
+
sizer.style.height = `${boxH}px`;
|
|
6396
|
+
sizer.style.margin = boxH < container.clientHeight ? "auto 0" : "0";
|
|
6397
|
+
renderer.domElement.style.width = `${boxW}px`;
|
|
6398
|
+
renderer.domElement.style.height = `${boxH}px`;
|
|
6399
|
+
renderer.domElement.style.maxWidth = "none";
|
|
6400
|
+
renderer.domElement.style.maxHeight = "none";
|
|
6401
|
+
renderer.setSize(boxW, boxH, false);
|
|
6402
|
+
camera.aspect = boxW / boxH;
|
|
6403
|
+
camera.updateProjectionMatrix();
|
|
6404
|
+
};
|
|
6405
|
+
applyZoom();
|
|
6352
6406
|
let animId;
|
|
6353
6407
|
const animate = () => {
|
|
6354
6408
|
animId = requestAnimationFrame(animate);
|
|
@@ -6357,11 +6411,10 @@ var ThreeDPlugin = class {
|
|
|
6357
6411
|
};
|
|
6358
6412
|
animate();
|
|
6359
6413
|
const resizeObserver = new ResizeObserver(() => {
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
renderer.setSize(newWidth, newHeight);
|
|
6414
|
+
if (!isUserZoomed && currentZoom === 1) {
|
|
6415
|
+
updateBaseDimensions();
|
|
6416
|
+
applyZoom();
|
|
6417
|
+
}
|
|
6365
6418
|
});
|
|
6366
6419
|
resizeObserver.observe(container);
|
|
6367
6420
|
const cleanup = () => {
|
|
@@ -6375,22 +6428,51 @@ var ThreeDPlugin = class {
|
|
|
6375
6428
|
child.geometry.dispose();
|
|
6376
6429
|
}
|
|
6377
6430
|
});
|
|
6431
|
+
scrollWrapper.remove();
|
|
6378
6432
|
container.innerHTML = "";
|
|
6379
6433
|
};
|
|
6380
6434
|
ctx.signal.addEventListener("abort", cleanup);
|
|
6381
6435
|
return {
|
|
6382
6436
|
destroy: cleanup,
|
|
6383
6437
|
zoomIn: () => {
|
|
6384
|
-
|
|
6385
|
-
|
|
6438
|
+
isUserZoomed = true;
|
|
6439
|
+
currentZoom = Math.min(5, Number((currentZoom * 1.25).toFixed(2)));
|
|
6440
|
+
applyZoom();
|
|
6386
6441
|
},
|
|
6387
6442
|
zoomOut: () => {
|
|
6388
|
-
|
|
6389
|
-
|
|
6443
|
+
currentZoom = Math.max(0.2, Number((currentZoom / 1.25).toFixed(2)));
|
|
6444
|
+
if (currentZoom <= 1) {
|
|
6445
|
+
isUserZoomed = false;
|
|
6446
|
+
}
|
|
6447
|
+
applyZoom();
|
|
6448
|
+
},
|
|
6449
|
+
fitToPage: () => {
|
|
6450
|
+
isUserZoomed = false;
|
|
6451
|
+
currentZoom = 1;
|
|
6452
|
+
updateBaseDimensions();
|
|
6453
|
+
applyZoom();
|
|
6454
|
+
container.scrollTop = 0;
|
|
6455
|
+
container.scrollLeft = 0;
|
|
6456
|
+
fitCamera();
|
|
6457
|
+
},
|
|
6458
|
+
fitToWidth: () => {
|
|
6459
|
+
isUserZoomed = false;
|
|
6460
|
+
currentZoom = 1;
|
|
6461
|
+
updateBaseDimensions();
|
|
6462
|
+
applyZoom();
|
|
6463
|
+
container.scrollTop = 0;
|
|
6464
|
+
container.scrollLeft = 0;
|
|
6465
|
+
fitCamera();
|
|
6466
|
+
},
|
|
6467
|
+
resetZoom: () => {
|
|
6468
|
+
isUserZoomed = false;
|
|
6469
|
+
currentZoom = 1;
|
|
6470
|
+
updateBaseDimensions();
|
|
6471
|
+
applyZoom();
|
|
6472
|
+
container.scrollTop = 0;
|
|
6473
|
+
container.scrollLeft = 0;
|
|
6474
|
+
fitCamera();
|
|
6390
6475
|
},
|
|
6391
|
-
fitToPage: fitCamera,
|
|
6392
|
-
fitToWidth: fitCamera,
|
|
6393
|
-
resetZoom: fitCamera,
|
|
6394
6476
|
rotateCW: () => {
|
|
6395
6477
|
isWireframe = !isWireframe;
|
|
6396
6478
|
materials.forEach((m) => {
|