viewerjs 1.12.0 → 1.14.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/types/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  declare namespace Viewer {
2
2
  export type Visibility = 0 | 1 | 2 | 3 | 4;
3
3
  export type ToolbarButtonSize = 'small' | 'medium' | 'large';
4
+ export type WheelModifierKey = 'ctrl' | 'shift' | 'alt' | 'meta' | (string & {});
4
5
  export type EventHandler<T extends Event = CustomEvent> = (event: T) => void;
5
6
  export type Filter = (this: Viewer, image: HTMLImageElement) => boolean;
6
7
  export type TitleRenderer = (this: Viewer, image: HTMLImageElement, imageData: Record<string, any>) => string;
7
8
  export type ImageURLResolver = (this: Viewer, image: HTMLImageElement) => string;
9
+ export type ZoomRatio = number | ((this: Viewer, image: HTMLImageElement, imageData: Record<string, any>) => number);
8
10
  export type ToolbarButtonClick = (this: Viewer, event: Event) => void;
9
11
  export type ToolbarOption = boolean | Visibility | ToolbarButtonSize | ToolbarButtonOptions | undefined;
10
12
 
@@ -29,6 +31,44 @@ declare namespace Viewer {
29
31
  [x: string]: ToolbarOption;
30
32
  }
31
33
 
34
+ export interface NavigationButtonOptions {
35
+ show?: boolean | Visibility;
36
+ size?: ToolbarButtonSize;
37
+ }
38
+
39
+ export type NavigationOption = boolean | Visibility | NavigationButtonOptions | undefined;
40
+
41
+ export interface NavbarOptions {
42
+ visibleItemCount?: number;
43
+ show?: boolean | Visibility;
44
+ size?: ToolbarButtonSize;
45
+ }
46
+
47
+ export type NavbarOption = boolean | Visibility | ToolbarButtonSize | NavbarOptions | undefined;
48
+
49
+ export interface NavigationOptions {
50
+ next?: NavigationOption;
51
+ prev?: NavigationOption;
52
+ }
53
+
54
+ export interface TransitionOptions {
55
+ hide?: boolean;
56
+ move?: boolean;
57
+ play?: boolean;
58
+ rotate?: boolean;
59
+ scale?: boolean;
60
+ show?: boolean;
61
+ tooltip?: boolean;
62
+ view?: boolean;
63
+ zoom?: boolean;
64
+ }
65
+
66
+ export interface MagnifierOptions {
67
+ size?: number;
68
+ zoomRatio?: number;
69
+ opacity?: number;
70
+ }
71
+
32
72
  export interface Pivot {
33
73
  x: number;
34
74
  y: number;
@@ -49,6 +89,7 @@ declare namespace Viewer {
49
89
  export interface RotateEventData {
50
90
  degree: number;
51
91
  oldDegree: number;
92
+ originalEvent: Event | null;
52
93
  }
53
94
 
54
95
  export interface RotateEvent extends CustomEvent<RotateEventData> {}
@@ -60,12 +101,61 @@ declare namespace Viewer {
60
101
  scaleY: number;
61
102
  oldScaleX: number;
62
103
  oldScaleY: number;
104
+ originalEvent: Event | null;
63
105
  }
64
106
 
65
107
  export interface ScaleEvent extends CustomEvent<ScaleEventData> {}
66
108
 
67
109
  export interface ScaledEvent extends CustomEvent<ScaleEventData> {}
68
110
 
111
+ export interface ViewEventData {
112
+ image: HTMLImageElement;
113
+ index: number;
114
+ originalImage: HTMLImageElement;
115
+ originalEvent: Event | null;
116
+ }
117
+
118
+ export interface ViewEvent extends CustomEvent<ViewEventData> {}
119
+
120
+ export interface ViewedEvent extends CustomEvent<ViewEventData> {}
121
+
122
+ export interface ShowEventData {
123
+ originalEvent: Event | null;
124
+ }
125
+
126
+ export interface ShowEvent extends CustomEvent<ShowEventData> {}
127
+
128
+ export interface ShownEvent extends CustomEvent<ShowEventData> {}
129
+
130
+ export interface HideEventData {
131
+ originalEvent: Event | null;
132
+ }
133
+
134
+ export interface HideEvent extends CustomEvent<HideEventData> {}
135
+
136
+ export interface HiddenEvent extends CustomEvent<HideEventData> {}
137
+
138
+ export interface PlayEventData {
139
+ originalEvent: Event | null;
140
+ }
141
+
142
+ export interface PlayEvent extends CustomEvent<PlayEventData> {}
143
+
144
+ export interface PlayingEventData {
145
+ image: HTMLImageElement;
146
+ index: number;
147
+ originalImage: HTMLImageElement;
148
+ originalEvent: Event | null;
149
+ }
150
+
151
+ export interface PlayingEvent extends CustomEvent<PlayingEventData> {}
152
+
153
+ export interface StopEventData {
154
+ originalEvent: Event | null;
155
+ }
156
+
157
+ export interface StopEvent extends CustomEvent<StopEventData> {}
158
+
69
159
  export interface ZoomEventData {
70
160
  ratio: number;
71
161
  oldRatio: number;
@@ -84,49 +174,58 @@ declare namespace Viewer {
84
174
  filter?: Filter | null;
85
175
  fullscreen?: boolean | FullscreenOptions;
86
176
  focus?: boolean;
87
- hidden?: EventHandler;
88
- hide?: EventHandler;
177
+ hidden?: EventHandler<HiddenEvent>;
178
+ hide?: EventHandler<HideEvent>;
89
179
  inheritedAttributes?: string[];
90
180
  initialCoverage?: number;
91
181
  initialViewIndex?: number;
92
182
  inline?: boolean;
183
+ autoplay?: boolean;
93
184
  interval?: number;
94
185
  keyboard?: boolean;
95
186
  loading?: boolean;
96
187
  loop?: boolean;
97
- maxZoomRatio?: number;
188
+ magnifier?: boolean | MagnifierOptions;
189
+ maxZoomRatio?: ZoomRatio;
98
190
  minHeight?: number;
99
191
  minWidth?: number;
100
- minZoomRatio?: number;
192
+ minZoomRatio?: ZoomRatio;
101
193
  movable?: boolean;
102
194
  move?: EventHandler<MoveEvent>;
103
195
  moved?: EventHandler<MovedEvent>;
104
- navbar?: boolean | Visibility;
105
- play?: EventHandler;
196
+ navbar?: NavbarOption;
197
+ navigation?: boolean | Visibility | NavigationOptions;
198
+ play?: EventHandler<PlayEvent>;
199
+ playing?: EventHandler<PlayingEvent>;
200
+ preload?: boolean;
106
201
  ready?: EventHandler;
107
202
  rotatable?: boolean;
203
+ rotateOnGesture?: boolean;
204
+ rotateOnTouch?: boolean;
108
205
  rotate?: EventHandler<RotateEvent>;
109
206
  rotated?: EventHandler<RotatedEvent>;
110
207
  scalable?: boolean;
111
208
  scale?: EventHandler<ScaleEvent>;
112
209
  scaled?: EventHandler<ScaledEvent>;
113
- show?: EventHandler;
114
- shown?: EventHandler;
210
+ show?: EventHandler<ShowEvent>;
211
+ shown?: EventHandler<ShownEvent>;
115
212
  slideOnTouch?: boolean;
116
- stop?: EventHandler;
213
+ slideOnWheel?: boolean | WheelModifierKey;
214
+ stop?: EventHandler<StopEvent>;
117
215
  title?: boolean | Visibility | TitleRenderer | [Visibility, TitleRenderer] | null;
118
216
  toggleOnDblclick?: boolean;
119
217
  toolbar?: boolean | Visibility | ToolbarOptions;
120
218
  tooltip?: boolean;
121
- transition?: boolean;
219
+ transition?: boolean | TransitionOptions;
122
220
  url?: string | ImageURLResolver;
123
- view?: EventHandler;
124
- viewed?: EventHandler;
221
+ view?: EventHandler<ViewEvent>;
222
+ viewed?: EventHandler<ViewedEvent>;
125
223
  zIndex?: number;
126
224
  zIndexInline?: number;
127
225
  zoom?: EventHandler<ZoomEvent>;
226
+ zoomOnGesture?: boolean;
128
227
  zoomOnTouch?: boolean;
129
- zoomOnWheel?: boolean;
228
+ zoomOnWheel?: boolean | WheelModifierKey;
130
229
  zoomRatio?: number;
131
230
  zoomable?: boolean;
132
231
  zoomed?: EventHandler<ZoomedEvent>;
@@ -134,7 +233,7 @@ declare namespace Viewer {
134
233
  }
135
234
 
136
235
  declare class Viewer {
137
- constructor(element: HTMLElement, options?: Viewer.Options);
236
+ constructor(element: HTMLElement | ShadowRoot, options?: Viewer.Options);
138
237
  destroy(): Viewer;
139
238
  exit(): Viewer;
140
239
  full(): Viewer;
@@ -154,12 +253,13 @@ declare class Viewer {
154
253
  stop(): Viewer;
155
254
  toggle(): Viewer;
156
255
  tooltip(): Viewer;
157
- update(): Viewer;
256
+ update(options?: Viewer.Options): Viewer;
158
257
  view(index?: number): Viewer;
159
258
  zoom(ratio: number, hasTooltip?: boolean, pivot?: Viewer.Pivot): Viewer;
160
259
  zoomTo(ratio: number, hasTooltip?: boolean, pivot?: Viewer.Pivot): Viewer;
161
- static noConflict(): Viewer;
260
+ static create(element: HTMLElement | ShadowRoot, options?: Viewer.Options): Viewer;
162
261
  static setDefaults(options: Viewer.Options): void;
262
+ static noConflict(): Viewer;
163
263
  }
164
264
 
165
265
  declare module 'viewerjs' {