@vertexvis/viewer 0.24.5-canary.8 → 0.24.5

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.
Files changed (28) hide show
  1. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +15 -5
  2. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js.map +1 -1
  3. package/dist/collection/components/viewer-markup/viewer-markup-components.js +12 -2
  4. package/dist/collection/components/viewer-markup/viewer-markup-components.js.map +1 -1
  5. package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow.js +1 -1
  6. package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow.js.map +1 -1
  7. package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js +1 -1
  8. package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js.map +1 -1
  9. package/dist/collection/components/viewer-markup-freeform/viewer-markup-freeform.js +1 -1
  10. package/dist/collection/components/viewer-markup-freeform/viewer-markup-freeform.js.map +1 -1
  11. package/dist/components/interactions.js +12 -2
  12. package/dist/components/interactions.js.map +1 -1
  13. package/dist/components/viewer-markup-arrow.js +1 -1
  14. package/dist/components/viewer-markup-arrow.js.map +1 -1
  15. package/dist/components/viewer-markup-circle.js +1 -1
  16. package/dist/components/viewer-markup-circle.js.map +1 -1
  17. package/dist/components/viewer-markup-freeform.js +1 -1
  18. package/dist/components/viewer-markup-freeform.js.map +1 -1
  19. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +15 -5
  20. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js.map +1 -1
  21. package/dist/types/components/viewer-markup/viewer-markup-components.d.ts +1 -0
  22. package/dist/viewer/p-8ec43ed1.entry.js +5 -0
  23. package/dist/viewer/p-8ec43ed1.entry.js.map +1 -0
  24. package/dist/viewer/viewer.esm.js +1 -1
  25. package/package.json +7 -7
  26. package/readme.md +4 -4
  27. package/dist/viewer/p-b947f42b.entry.js +0 -5
  28. package/dist/viewer/p-b947f42b.entry.js.map +0 -1
@@ -167,8 +167,18 @@ const RelativeAnchor = ({ id, transform, rotation, name, point, onPointerDown },
167
167
  } },
168
168
  h("slot", { name: name }, children)))));
169
169
  };
170
- const SvgShadow = ({ id }) => {
171
- return (h("filter", { id: id },
170
+ const SvgShadow = ({ id, scale, }) => {
171
+ // Scale default values for a `<filter>` element by the provided scale.
172
+ // This prevents the filter area from being too small when scale is greater than 1,
173
+ // and uses the default values for a scale less than 1 to prevent the same issue.
174
+ // See https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/filter
175
+ // for more details on the default values used here.
176
+ const effectiveScale = scale !== null && scale !== void 0 ? scale : 1;
177
+ const xOffset = Math.max(10, 10 * effectiveScale);
178
+ const yOffset = Math.max(10, 10 * effectiveScale);
179
+ const width = Math.max(120, 110 * effectiveScale + xOffset);
180
+ const height = Math.max(120, 110 * effectiveScale + yOffset);
181
+ return (h("filter", { id: id, filterUnits: "userSpaceOnUse", x: `${-xOffset}%`, y: `${-yOffset}%`, width: `${width}%`, height: `${height}%` },
172
182
  h("feGaussianBlur", { in: "SourceAlpha", stdDeviation: "2" }),
173
183
  h("feOffset", { dx: "0", dy: "1", result: "offsetblur" }),
174
184
  h("feFlood", { "flood-color": "#000000", "flood-opacity": "0.25" }),
@@ -452,7 +462,7 @@ const ViewerMarkupArrow = class {
452
462
  if (isValidPointData(screenStart, screenEnd)) {
453
463
  const arrowheadStartPoints = createLineAnchorStylePoints(screenEnd, screenStart);
454
464
  const arrowheadEndPoints = createLineAnchorStylePoints(screenStart, screenEnd);
455
- return (h(Host, null, h("svg", { class: "svg", onTouchStart: this.handleTouchStart }, h("defs", null, h(SvgShadow, { id: "arrow-shadow" })), h("g", { transform: `translate(${offsetX} ${offsetY})`, filter: "url(#arrow-shadow)" }, this.renderLineAnchorStyle(this.startLineAnchorStyle, arrowheadStartPoints), h("line", { id: "arrow-line", class: "line", x1: arrowheadEndPoints.tip.x, y1: arrowheadEndPoints.tip.y, x2: arrowheadStartPoints.tip.x, y2: arrowheadStartPoints.tip.y }), this.renderLineAnchorStyle(this.endLineAnchorStyle, arrowheadEndPoints)), this.mode === 'edit' && (h("g", { transform: `translate(${offsetX} ${offsetY})` }, h("line", { id: "bounding-box-1d-line", class: "bounds-line", x1: screenStart.x, y1: screenStart.y, x2: screenEnd.x, y2: screenEnd.y })))), this.mode === 'edit' && (h(BoundingBox1d, { start: screenStart, end: screenEnd, offset: { x: offsetX, y: offsetY }, onStartAnchorPointerDown: (event) => this.interactionHandler.editAnchor('start', event), onCenterAnchorPointerDown: (event) => this.interactionHandler.editAnchor('center', event), onEndAnchorPointerDown: (event) => this.interactionHandler.editAnchor('end', event) })), this.mode === 'create' && (h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart }))));
465
+ return (h(Host, null, h("svg", { class: "svg", onTouchStart: this.handleTouchStart }, h("defs", null, h(SvgShadow, { id: "arrow-shadow", scale: this.scale })), h("g", { transform: `translate(${offsetX} ${offsetY})`, filter: "url(#arrow-shadow)" }, this.renderLineAnchorStyle(this.startLineAnchorStyle, arrowheadStartPoints), h("line", { id: "arrow-line", class: "line", x1: arrowheadEndPoints.tip.x, y1: arrowheadEndPoints.tip.y, x2: arrowheadStartPoints.tip.x, y2: arrowheadStartPoints.tip.y }), this.renderLineAnchorStyle(this.endLineAnchorStyle, arrowheadEndPoints)), this.mode === 'edit' && (h("g", { transform: `translate(${offsetX} ${offsetY})` }, h("line", { id: "bounding-box-1d-line", class: "bounds-line", x1: screenStart.x, y1: screenStart.y, x2: screenEnd.x, y2: screenEnd.y })))), this.mode === 'edit' && (h(BoundingBox1d, { start: screenStart, end: screenEnd, offset: { x: offsetX, y: offsetY }, onStartAnchorPointerDown: (event) => this.interactionHandler.editAnchor('start', event), onCenterAnchorPointerDown: (event) => this.interactionHandler.editAnchor('center', event), onEndAnchorPointerDown: (event) => this.interactionHandler.editAnchor('end', event) })), this.mode === 'create' && (h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart }))));
456
466
  }
457
467
  else {
458
468
  return h(Host, null);
@@ -685,7 +695,7 @@ const ViewerMarkupCircle = class {
685
695
  const center = rectangle.center(relativeBounds);
686
696
  const offsetX = ((_b = (_a = this.offset) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0) / getWindowDevicePixelRatio();
687
697
  const offsetY = ((_d = (_c = this.offset) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0) / getWindowDevicePixelRatio();
688
- return (h(Host, null, h("svg", { class: "svg", onTouchStart: this.handleTouchStart }, h("defs", null, h(SvgShadow, { id: "circle-shadow" })), h("g", { transform: `translate(${offsetX} ${offsetY})`, filter: "url(#circle-shadow)" }, h("ellipse", { class: "ellipse", cx: center.x, cy: center.y, rx: relativeBounds.width / 2, ry: relativeBounds.height / 2, stroke: '#000ff0', "stroke-width": 4, fill: 'none' }))), this.mode === 'edit' && (h(BoundingBox2d, { bounds: relativeBounds, offset: { x: offsetX, y: offsetY }, onTopLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-left', e), onTopRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-right', e), onTopAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top', e), onBottomLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-left', e), onBottomRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-right', e), onBottomAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom', e), onLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('left', e), onRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('right', e), onCenterAnchorPointerDown: (e) => this.interactionHandler.editAnchor('center', e) })), this.mode === 'create' && (h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart }))));
698
+ return (h(Host, null, h("svg", { class: "svg", onTouchStart: this.handleTouchStart }, h("defs", null, h(SvgShadow, { id: "circle-shadow", scale: this.scale })), h("g", { transform: `translate(${offsetX} ${offsetY})`, filter: "url(#circle-shadow)" }, h("ellipse", { class: "ellipse", cx: center.x, cy: center.y, rx: relativeBounds.width / 2, ry: relativeBounds.height / 2, stroke: '#000ff0', "stroke-width": 4, fill: 'none' }))), this.mode === 'edit' && (h(BoundingBox2d, { bounds: relativeBounds, offset: { x: offsetX, y: offsetY }, onTopLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-left', e), onTopRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-right', e), onTopAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top', e), onBottomLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-left', e), onBottomRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-right', e), onBottomAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom', e), onLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('left', e), onRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('right', e), onCenterAnchorPointerDown: (e) => this.interactionHandler.editAnchor('center', e) })), this.mode === 'create' && (h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart }))));
689
699
  }
690
700
  else {
691
701
  return (h(Host, null, h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart })));
@@ -917,7 +927,7 @@ const ViewerMarkupFreeform = class {
917
927
  if (this.screenPoints.length > 0 && this.elementBounds != null) {
918
928
  const offsetX = ((_b = (_a = this.offset) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0) / getWindowDevicePixelRatio();
919
929
  const offsetY = ((_d = (_c = this.offset) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0) / getWindowDevicePixelRatio();
920
- return (h(Host, null, h("svg", { class: "svg", onTouchStart: this.handleTouchStart }, h("defs", null, h(SvgShadow, { id: "freeform-markup-shadow" })), h("g", { transform: `translate(${offsetX} ${offsetY})`, filter: "url(#freeform-markup-shadow)" }, h("path", { class: "path", d: this.screenPoints.reduce((d, pt) => `${d}L${pt.x},${pt.y}`, `M${this.screenPoints[0].x},${this.screenPoints[0].y}`), fill: "none" }))), this.mode === 'edit' && this.bounds != null && (h(BoundingBox2d, { bounds: translateRectToScreen(this.bounds, this.elementBounds, this.originatingViewport, this.centeringBehavior, this.scale), offset: { x: offsetX, y: offsetY }, onTopLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-left', e), onTopRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-right', e), onTopAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top', e), onBottomLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-left', e), onBottomRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-right', e), onBottomAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom', e), onLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('left', e), onRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('right', e), onCenterAnchorPointerDown: (e) => this.interactionHandler.editAnchor('center', e) })), this.mode === 'create' && (h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart }))));
930
+ return (h(Host, null, h("svg", { class: "svg", onTouchStart: this.handleTouchStart }, h("defs", null, h(SvgShadow, { id: "freeform-markup-shadow", scale: this.scale })), h("g", { transform: `translate(${offsetX} ${offsetY})`, filter: "url(#freeform-markup-shadow)" }, h("path", { class: "path", d: this.screenPoints.reduce((d, pt) => `${d}L${pt.x},${pt.y}`, `M${this.screenPoints[0].x},${this.screenPoints[0].y}`), fill: "none" }))), this.mode === 'edit' && this.bounds != null && (h(BoundingBox2d, { bounds: translateRectToScreen(this.bounds, this.elementBounds, this.originatingViewport, this.centeringBehavior, this.scale), offset: { x: offsetX, y: offsetY }, onTopLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-left', e), onTopRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top-right', e), onTopAnchorPointerDown: (e) => this.interactionHandler.editAnchor('top', e), onBottomLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-left', e), onBottomRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom-right', e), onBottomAnchorPointerDown: (e) => this.interactionHandler.editAnchor('bottom', e), onLeftAnchorPointerDown: (e) => this.interactionHandler.editAnchor('left', e), onRightAnchorPointerDown: (e) => this.interactionHandler.editAnchor('right', e), onCenterAnchorPointerDown: (e) => this.interactionHandler.editAnchor('center', e) })), this.mode === 'create' && (h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart }))));
921
931
  }
922
932
  else {
923
933
  return (h(Host, null, h("div", { class: "create-overlay", onTouchStart: this.handleTouchStart })));