@markerjs/markerjs3 3.2.0 → 3.4.0

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/markerjs3.d.ts CHANGED
@@ -155,6 +155,14 @@ declare class SvgHelper {
155
155
  * @returns SVG image element
156
156
  */
157
157
  static createSvgFromString(stringSvg: string): SVGSVGElement;
158
+ /**
159
+ * Creates an SVG filter element.
160
+ * @param id filter id
161
+ * @param attributes other filter element attributes
162
+ * @param innerHTML filter definition as string
163
+ * @returns filter element
164
+ */
165
+ static createFilter(id: string, attributes?: Array<[string, string]>, innerHTML?: string): SVGFilterElement;
158
166
  }
159
167
 
160
168
  /**
@@ -246,7 +254,7 @@ interface AnnotationState {
246
254
  height: number;
247
255
  /**
248
256
  * Default SVG filter to apply to markers in the annotation.
249
- * (e.g. "drop-shadow(2px 2px 2px black)")
257
+ * (e.g. drop shadow, outline, glow)
250
258
  *
251
259
  * @since 3.2.0
252
260
  */
@@ -1621,6 +1629,18 @@ declare class HighlighterMarker extends FreehandMarker {
1621
1629
  constructor(container: SVGGElement);
1622
1630
  }
1623
1631
 
1632
+ /**
1633
+ * A set of common SVG filters that can be used to make markers more legible
1634
+ * or just for visual effect.
1635
+ */
1636
+ declare class SvgFilters {
1637
+ /**
1638
+ * Returns a set of default filters that can be used to make markers more legible.
1639
+ * @returns array of SVG filters.
1640
+ */
1641
+ static getDefaultFilterSet(): SVGFilterElement[];
1642
+ }
1643
+
1624
1644
  /**
1625
1645
  * Properties for marker editor.
1626
1646
  */
@@ -2094,21 +2114,35 @@ declare class MarkerArea extends HTMLElement {
2094
2114
  */
2095
2115
  get defaultFilter(): string | undefined;
2096
2116
  /**
2097
- * Sets the default SVG filter for the created markers
2098
- * (e.g. "drop-shadow(2px 2px 2px black)").
2117
+ * Sets the default SVG filter for the created markers.
2118
+ *
2119
+ * @remarks
2120
+ * The filter should be a valid SVG filter string.
2121
+ *
2122
+ * In Chromium-based browsers and Firefox, you can use CSS filter strings
2123
+ * e.g. "drop-shadow(2px 2px 2px black)". Unfortunately, at the time of
2124
+ * the implementation this doesn't work in Safari (meaning any browser on iOS as well).
2125
+ *
2126
+ * For cross-browser compatibility, version 3.3 introduces a set of default filters.
2127
+ * These are dropShadow, outline, and glow. You can use them by setting the defaultFilter
2128
+ * to "url(#dropShadow)", "url(#outline)", or "url(#glow)" respectively.
2099
2129
  *
2100
2130
  * @since 3.2.0
2101
2131
  */
2102
2132
  set defaultFilter(value: string | undefined);
2133
+ private _defsElement?;
2134
+ private _defs;
2103
2135
  constructor();
2104
2136
  private connectedCallback;
2105
2137
  private disconnectedCallback;
2106
2138
  private createLayout;
2107
2139
  private addMainCanvas;
2140
+ private addDefsToMainCanvas;
2108
2141
  private setMainCanvasSize;
2109
2142
  private setEditingTargetSize;
2110
2143
  private initOverlay;
2111
2144
  private addTargetImage;
2145
+ private addDefaultFilterDefs;
2112
2146
  /**
2113
2147
  * Registers a marker type and its editor to be available in the marker area.
2114
2148
  * @param markerType
@@ -2152,8 +2186,10 @@ declare class MarkerArea extends HTMLElement {
2152
2186
  */
2153
2187
  deselectEditor(editor?: MarkerBaseEditor): void;
2154
2188
  private touchPoints;
2189
+ private leadPointerId?;
2155
2190
  private isDragging;
2156
2191
  private isSelecting;
2192
+ private isPanning;
2157
2193
  private _marqueeSelectOutline;
2158
2194
  private _marqueeSelectRect;
2159
2195
  private _manipulationStartX;
@@ -2222,6 +2258,14 @@ declare class MarkerArea extends HTMLElement {
2222
2258
  */
2223
2259
  redo(): void;
2224
2260
  private redoStep;
2261
+ /**
2262
+ * Adds "defs" to main canvas SVG.
2263
+ * Useful for filters, custom fonts and potentially other scenarios.
2264
+ *
2265
+ * @param nodes
2266
+ * @since 3.3.0
2267
+ */
2268
+ addDefs(...nodes: (string | Node)[]): void;
2225
2269
  addEventListener<T extends keyof MarkerAreaEventMap>(type: T, listener: (this: MarkerArea, ev: MarkerAreaEventMap[T]) => void, options?: boolean | AddEventListenerOptions): void;
2226
2270
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions | undefined): void;
2227
2271
  removeEventListener<T extends keyof MarkerAreaEventMap>(type: T, listener: (this: MarkerArea, ev: MarkerAreaEventMap[T]) => void, options?: boolean | EventListenerOptions): void;
@@ -3016,20 +3060,31 @@ declare class MarkerView extends HTMLElement {
3016
3060
  */
3017
3061
  set defaultFilter(value: string | undefined);
3018
3062
  private _isInitialized;
3063
+ private _defsElement?;
3064
+ private _defs;
3065
+ private prevPanPoint;
3019
3066
  constructor();
3020
3067
  private connectedCallback;
3021
3068
  private disconnectedCallback;
3022
3069
  private createLayout;
3023
3070
  private addMainCanvas;
3071
+ private addDefsToMainCanvas;
3024
3072
  private setMainCanvasSize;
3025
3073
  private setEditingTargetSize;
3026
3074
  private addTargetImage;
3075
+ private addDefaultFilterDefs;
3027
3076
  private addNewMarker;
3028
3077
  private attachMarkerEvents;
3029
3078
  private attachEvents;
3030
3079
  private attachWindowEvents;
3031
3080
  private detachEvents;
3032
3081
  private detachWindowEvents;
3082
+ private touchPoints;
3083
+ private leadPointerId?;
3084
+ private onCanvasPointerDown;
3085
+ private onPointerMove;
3086
+ private onPointerUp;
3087
+ private onPointerOut;
3033
3088
  private getMarkerTypeByName;
3034
3089
  /**
3035
3090
  * Adds a new marker type to be available in the viewer.
@@ -3043,6 +3098,7 @@ declare class MarkerView extends HTMLElement {
3043
3098
  */
3044
3099
  show(state: AnnotationState): void;
3045
3100
  private scaleMarkers;
3101
+ private panTo;
3046
3102
  /**
3047
3103
  * NOTE:
3048
3104
  *
@@ -3055,6 +3111,12 @@ declare class MarkerView extends HTMLElement {
3055
3111
  private addLogo;
3056
3112
  private removeLogo;
3057
3113
  private positionLogo;
3114
+ /**
3115
+ * Adds "defs" to main canvas SVG.
3116
+ * Useful for filters, custom fonts and potentially other scenarios.
3117
+ * @since 3.3.0
3118
+ */
3119
+ addDefs(...nodes: (string | Node)[]): void;
3058
3120
  addEventListener<T extends keyof MarkerViewEventMap>(type: T, listener: (this: MarkerView, ev: MarkerViewEventMap[T]) => void, options?: boolean | AddEventListenerOptions): void;
3059
3121
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions | undefined): void;
3060
3122
  removeEventListener<T extends keyof MarkerViewEventMap>(type: T, listener: (this: MarkerView, ev: MarkerViewEventMap[T]) => void, options?: boolean | EventListenerOptions): void;
@@ -3176,12 +3238,16 @@ declare class Renderer {
3176
3238
  * @since 3.2.0
3177
3239
  */
3178
3240
  set defaultFilter(value: string | undefined);
3241
+ private _defsElement?;
3242
+ private _defs;
3179
3243
  constructor();
3180
3244
  private init;
3181
3245
  private addMainCanvas;
3246
+ private addDefsToMainCanvas;
3182
3247
  private setMainCanvasSize;
3183
3248
  private setEditingTargetSize;
3184
3249
  private addTargetImage;
3250
+ private addDefaultFilterDefs;
3185
3251
  private addNewMarker;
3186
3252
  private getMarkerTypeByName;
3187
3253
  /**
@@ -3202,6 +3268,12 @@ declare class Renderer {
3202
3268
  * @returns
3203
3269
  */
3204
3270
  rasterize(state: AnnotationState, targetCanvas?: HTMLCanvasElement): Promise<string>;
3271
+ /**
3272
+ * Adds "defs" to main canvas SVG.
3273
+ * Useful for filters, custom fonts and potentially other scenarios.
3274
+ * @since 3.3.0
3275
+ */
3276
+ addDefs(...nodes: (string | Node)[]): void;
3205
3277
  }
3206
3278
 
3207
- export { Activator, type AnnotationState, ArrowMarker, ArrowMarkerEditor, type ArrowMarkerState, type ArrowType, type BlurHandler, CalloutMarker, CalloutMarkerEditor, type CalloutMarkerState, CaptionFrameMarker, CaptionFrameMarkerEditor, type CaptionFrameMarkerState, CheckImageMarker, CoverMarker, CurveMarker, CurveMarkerEditor, type CurveMarkerState, CustomImageMarker, EllipseFrameMarker, EllipseMarker, type FontSize, FrameMarker, FreehandMarker, FreehandMarkerEditor, type FreehandMarkerState, Grip, type GripLocation, HighlightMarker, HighlighterMarker, type IPoint, type ISize, type ITransformMatrix, ImageMarkerBase, type ImageMarkerBaseState, ImageMarkerEditor, type ImageType, LineMarker, LinearMarkerBase, type LinearMarkerBaseState, LinearMarkerEditor, MarkerArea, type MarkerAreaEventData, type MarkerAreaEventMap, type MarkerAreaMode, MarkerBase, MarkerBaseEditor, type MarkerBaseState, type MarkerCreationStyle, type MarkerEditorEventData, type MarkerEditorProperties, type MarkerEditorState, type MarkerEventData, type MarkerStage, MarkerView, type MarkerViewEventData, type MarkerViewEventMap, MeasurementMarker, PolygonMarker, PolygonMarkerEditor, type PolygonMarkerState, RectangularBoxMarkerBase, type RectangularBoxMarkerBaseState, Renderer, ResizeGrip, RotateGrip, ShapeMarkerBase, type ShapeMarkerBaseState, ShapeMarkerEditor, ShapeOutlineMarkerBase, type ShapeOutlineMarkerBaseState, ShapeOutlineMarkerEditor, SvgHelper, TextBlock, TextBlockEditor, type TextChangedHandler, TextMarker, TextMarkerEditor, type TextMarkerState, XImageMarker };
3279
+ export { Activator, type AnnotationState, ArrowMarker, ArrowMarkerEditor, type ArrowMarkerState, type ArrowType, type BlurHandler, CalloutMarker, CalloutMarkerEditor, type CalloutMarkerState, CaptionFrameMarker, CaptionFrameMarkerEditor, type CaptionFrameMarkerState, CheckImageMarker, CoverMarker, CurveMarker, CurveMarkerEditor, type CurveMarkerState, CustomImageMarker, EllipseFrameMarker, EllipseMarker, type FontSize, FrameMarker, FreehandMarker, FreehandMarkerEditor, type FreehandMarkerState, Grip, type GripLocation, HighlightMarker, HighlighterMarker, type IPoint, type ISize, type ITransformMatrix, ImageMarkerBase, type ImageMarkerBaseState, ImageMarkerEditor, type ImageType, LineMarker, LinearMarkerBase, type LinearMarkerBaseState, LinearMarkerEditor, MarkerArea, type MarkerAreaEventData, type MarkerAreaEventMap, type MarkerAreaMode, MarkerBase, MarkerBaseEditor, type MarkerBaseState, type MarkerCreationStyle, type MarkerEditorEventData, type MarkerEditorProperties, type MarkerEditorState, type MarkerEventData, type MarkerStage, MarkerView, type MarkerViewEventData, type MarkerViewEventMap, MeasurementMarker, PolygonMarker, PolygonMarkerEditor, type PolygonMarkerState, RectangularBoxMarkerBase, type RectangularBoxMarkerBaseState, Renderer, ResizeGrip, RotateGrip, ShapeMarkerBase, type ShapeMarkerBaseState, ShapeMarkerEditor, ShapeOutlineMarkerBase, type ShapeOutlineMarkerBaseState, ShapeOutlineMarkerEditor, SvgFilters, SvgHelper, TextBlock, TextBlockEditor, type TextChangedHandler, TextMarker, TextMarkerEditor, type TextMarkerState, XImageMarker };