@preference-sl/pref-viewer 2.16.0-beta.12 → 2.16.0-beta.14

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/README.md CHANGED
@@ -331,7 +331,7 @@ The component emits custom events so host applications can integrate loading ind
331
331
  | `pref-viewer-2d-loading` | `<pref-viewer>`, `<pref-viewer-2d>` | `drawing-loading` | A 2D drawing load started. |
332
332
  | `pref-viewer-2d-loaded` | `<pref-viewer>`, `<pref-viewer-2d>` | `drawing-loaded` | A 2D drawing load completed. |
333
333
  | `pref-viewer-2d-error` | `<pref-viewer>`, `<pref-viewer-2d>` | `drawing-error` | A 2D drawing operation failed. |
334
- | `pref-viewer-2d-viewport-changed` | `<pref-viewer>`, `<pref-viewer-2d>` | None | The 2D drawing pan/zoom viewport changed. |
334
+ | `pref-viewer-2d-viewport-changed` | `<pref-viewer>`, `<pref-viewer-2d>` | None | The 2D drawing pan/zoom viewport changed. `detail` contains numeric `x`, `y`, `scale` and boolean `moved`, `scaled`, `maximized`, `minimized`; it does not contain `centered` or any private `desde2d`, `mode`, or `source` marker. |
335
335
 
336
336
  ### Internal Listeners
337
337
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@preference-sl/pref-viewer",
3
- "version": "2.16.0-beta.12",
3
+ "version": "2.16.0-beta.14",
4
4
  "description": "Web Component to preview GLTF models with Babylon.js",
5
5
  "author": "Alex Moreno Palacio <amoreno@preference.es>",
6
6
  "scripts": {
@@ -40,7 +40,7 @@ import Panzoom from "@panzoom/panzoom/dist/panzoom.es.js";
40
40
  *
41
41
  * Getters:
42
42
  * - panzoom: Returns the current Panzoom instance or null if not initialized.
43
- * - state: Returns the current pan/zoom state (moved, scaled, maximized, minimized).
43
+ * - state: Returns the current pan/zoom transform and semantic state.
44
44
  *
45
45
  * Private Methods:
46
46
  * - #bindHandlers(): Pre-binds reusable event handlers to preserve stable references.
@@ -81,6 +81,9 @@ export default class PanzoomController {
81
81
  totalCounter: 0,
82
82
  };
83
83
  #state = {
84
+ x: 0,
85
+ y: 0,
86
+ scale: 1,
84
87
  moved: false,
85
88
  scaled: false,
86
89
  maximized: false,
@@ -164,6 +167,9 @@ export default class PanzoomController {
164
167
  */
165
168
  #checkPanzoomState(transform) {
166
169
  this.#state = {
170
+ x: transform.x,
171
+ y: transform.y,
172
+ scale: transform.scale,
167
173
  moved: transform.x !== 0 || transform.y !== 0,
168
174
  scaled: transform.scale !== 1,
169
175
  maximized: transform.scale === this.#options.maxScale,
@@ -523,7 +529,7 @@ export default class PanzoomController {
523
529
  /**
524
530
  * Returns the current pan/zoom state.
525
531
  * @public
526
- * @returns {object} The state object: { moved, scaled, maximized, minimized }.
532
+ * @returns {object} The state object: { x, y, scale, moved, scaled, maximized, minimized }.
527
533
  */
528
534
  get state() {
529
535
  return this.#state;
@@ -32,7 +32,8 @@ import { PrefViewer2DStyles } from "./styles.js";
32
32
  * - "pref-viewer-2d-loading": emitted before loading starts. Legacy alias: "drawing-loading"
33
33
  * - "pref-viewer-2d-loaded": emitted after content and Panzoom are ready. Legacy alias: "drawing-loaded"
34
34
  * - "pref-viewer-2d-error": emitted on validation/fetch errors (detail.error: Error). Legacy alias: "drawing-error"
35
- * - "pref-viewer-2d-viewport-changed": emitted when pan/zoom state changes (detail: { moved, scaled, maximized, minimized })
35
+ * - "pref-viewer-2d-viewport-changed": emitted when pan/zoom state changes
36
+ * (detail: { x, y, scale, moved, scaled, maximized, minimized })
36
37
  *
37
38
  * Implementation notes
38
39
  * - Keeps internal state in private fields (#svg, #panzoom, #panzoomOptions, ...).
@@ -291,7 +292,7 @@ export default class PrefViewer2D extends HTMLElement {
291
292
  * @param {object} state - The current Panzoom state object.
292
293
  * @returns {void}
293
294
  * @description
294
- * The event detail contains the Panzoom state: { moved, scaled, maximized, minimized } to provide
295
+ * The event detail contains the Panzoom state: { x, y, scale, moved, scaled, maximized, minimized } to provide
295
296
  * the UI with the enabled/disabled status of the zoomIn, zoomOut, center, and zoomExtentsAll buttons.
296
297
  */
297
298
  #onPanzoomChanged(state) {
@@ -301,7 +302,6 @@ export default class PrefViewer2D extends HTMLElement {
301
302
  composed: false,
302
303
  detail: state,
303
304
  };
304
- customEventOptions.detail.desde2d = "true";
305
305
  this.dispatchEvent(new CustomEvent("pref-viewer-2d-viewport-changed", customEventOptions));
306
306
  }
307
307