@markerjs/markerjs3 3.2.0 → 3.3.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
@@ -2222,6 +2256,14 @@ declare class MarkerArea extends HTMLElement {
2222
2256
  */
2223
2257
  redo(): void;
2224
2258
  private redoStep;
2259
+ /**
2260
+ * Adds "defs" to main canvas SVG.
2261
+ * Useful for filters, custom fonts and potentially other scenarios.
2262
+ *
2263
+ * @param nodes
2264
+ * @since 3.3.0
2265
+ */
2266
+ addDefs(...nodes: (string | Node)[]): void;
2225
2267
  addEventListener<T extends keyof MarkerAreaEventMap>(type: T, listener: (this: MarkerArea, ev: MarkerAreaEventMap[T]) => void, options?: boolean | AddEventListenerOptions): void;
2226
2268
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions | undefined): void;
2227
2269
  removeEventListener<T extends keyof MarkerAreaEventMap>(type: T, listener: (this: MarkerArea, ev: MarkerAreaEventMap[T]) => void, options?: boolean | EventListenerOptions): void;
@@ -3016,14 +3058,18 @@ declare class MarkerView extends HTMLElement {
3016
3058
  */
3017
3059
  set defaultFilter(value: string | undefined);
3018
3060
  private _isInitialized;
3061
+ private _defsElement?;
3062
+ private _defs;
3019
3063
  constructor();
3020
3064
  private connectedCallback;
3021
3065
  private disconnectedCallback;
3022
3066
  private createLayout;
3023
3067
  private addMainCanvas;
3068
+ private addDefsToMainCanvas;
3024
3069
  private setMainCanvasSize;
3025
3070
  private setEditingTargetSize;
3026
3071
  private addTargetImage;
3072
+ private addDefaultFilterDefs;
3027
3073
  private addNewMarker;
3028
3074
  private attachMarkerEvents;
3029
3075
  private attachEvents;
@@ -3055,6 +3101,12 @@ declare class MarkerView extends HTMLElement {
3055
3101
  private addLogo;
3056
3102
  private removeLogo;
3057
3103
  private positionLogo;
3104
+ /**
3105
+ * Adds "defs" to main canvas SVG.
3106
+ * Useful for filters, custom fonts and potentially other scenarios.
3107
+ * @since 3.3.0
3108
+ */
3109
+ addDefs(...nodes: (string | Node)[]): void;
3058
3110
  addEventListener<T extends keyof MarkerViewEventMap>(type: T, listener: (this: MarkerView, ev: MarkerViewEventMap[T]) => void, options?: boolean | AddEventListenerOptions): void;
3059
3111
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions | undefined): void;
3060
3112
  removeEventListener<T extends keyof MarkerViewEventMap>(type: T, listener: (this: MarkerView, ev: MarkerViewEventMap[T]) => void, options?: boolean | EventListenerOptions): void;
@@ -3176,12 +3228,16 @@ declare class Renderer {
3176
3228
  * @since 3.2.0
3177
3229
  */
3178
3230
  set defaultFilter(value: string | undefined);
3231
+ private _defsElement?;
3232
+ private _defs;
3179
3233
  constructor();
3180
3234
  private init;
3181
3235
  private addMainCanvas;
3236
+ private addDefsToMainCanvas;
3182
3237
  private setMainCanvasSize;
3183
3238
  private setEditingTargetSize;
3184
3239
  private addTargetImage;
3240
+ private addDefaultFilterDefs;
3185
3241
  private addNewMarker;
3186
3242
  private getMarkerTypeByName;
3187
3243
  /**
@@ -3202,6 +3258,12 @@ declare class Renderer {
3202
3258
  * @returns
3203
3259
  */
3204
3260
  rasterize(state: AnnotationState, targetCanvas?: HTMLCanvasElement): Promise<string>;
3261
+ /**
3262
+ * Adds "defs" to main canvas SVG.
3263
+ * Useful for filters, custom fonts and potentially other scenarios.
3264
+ * @since 3.3.0
3265
+ */
3266
+ addDefs(...nodes: (string | Node)[]): void;
3205
3267
  }
3206
3268
 
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 };
3269
+ 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 };