viewerjs 1.10.2 → 1.10.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.
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Viewer.js v1.10.2
2
+ * Viewer.js v1.10.5
3
3
  * https://fengyuanchen.github.io/viewerjs
4
4
  *
5
5
  * Copyright 2015-present Chen Fengyuan
6
6
  * Released under the MIT license
7
7
  *
8
- * Date: 2021-10-22T13:59:51.046Z
8
+ * Date: 2022-04-05T08:21:02.491Z
9
9
  */
10
10
 
11
11
  function ownKeys(object, enumerableOnly) {
@@ -13,14 +13,9 @@ function ownKeys(object, enumerableOnly) {
13
13
 
14
14
  if (Object.getOwnPropertySymbols) {
15
15
  var symbols = Object.getOwnPropertySymbols(object);
16
-
17
- if (enumerableOnly) {
18
- symbols = symbols.filter(function (sym) {
19
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
20
- });
21
- }
22
-
23
- keys.push.apply(keys, symbols);
16
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
17
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
18
+ })), keys.push.apply(keys, symbols);
24
19
  }
25
20
 
26
21
  return keys;
@@ -28,19 +23,12 @@ function ownKeys(object, enumerableOnly) {
28
23
 
29
24
  function _objectSpread2(target) {
30
25
  for (var i = 1; i < arguments.length; i++) {
31
- var source = arguments[i] != null ? arguments[i] : {};
32
-
33
- if (i % 2) {
34
- ownKeys(Object(source), true).forEach(function (key) {
35
- _defineProperty(target, key, source[key]);
36
- });
37
- } else if (Object.getOwnPropertyDescriptors) {
38
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
39
- } else {
40
- ownKeys(Object(source)).forEach(function (key) {
41
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
42
- });
43
- }
26
+ var source = null != arguments[i] ? arguments[i] : {};
27
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
28
+ _defineProperty(target, key, source[key]);
29
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
30
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
31
+ });
44
32
  }
45
33
 
46
34
  return target;
@@ -49,17 +37,11 @@ function _objectSpread2(target) {
49
37
  function _typeof(obj) {
50
38
  "@babel/helpers - typeof";
51
39
 
52
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
53
- _typeof = function (obj) {
54
- return typeof obj;
55
- };
56
- } else {
57
- _typeof = function (obj) {
58
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
59
- };
60
- }
61
-
62
- return _typeof(obj);
40
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
41
+ return typeof obj;
42
+ } : function (obj) {
43
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
44
+ }, _typeof(obj);
63
45
  }
64
46
 
65
47
  function _classCallCheck(instance, Constructor) {
@@ -81,6 +63,9 @@ function _defineProperties(target, props) {
81
63
  function _createClass(Constructor, protoProps, staticProps) {
82
64
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
83
65
  if (staticProps) _defineProperties(Constructor, staticProps);
66
+ Object.defineProperty(Constructor, "prototype", {
67
+ writable: false
68
+ });
84
69
  return Constructor;
85
70
  }
86
71
 
@@ -1452,9 +1437,10 @@ var handlers = {
1452
1437
  // Cancel the emulated double click when the native dblclick event was triggered.
1453
1438
  if (IS_TOUCH_DEVICE && event.isTrusted) {
1454
1439
  clearTimeout(this.doubleClickImageTimeout);
1455
- }
1440
+ } // XXX: No pageX/Y properties in custom event, fallback to the original event.
1441
+
1456
1442
 
1457
- this.toggle(event);
1443
+ this.toggle(event.isTrusted ? event : event.detail && event.detail.originalEvent);
1458
1444
  }
1459
1445
  },
1460
1446
  load: function load() {
@@ -1721,7 +1707,9 @@ var handlers = {
1721
1707
  this.imageClicked = false; // This timeout will be cleared later when a native dblclick event is triggering
1722
1708
 
1723
1709
  this.doubleClickImageTimeout = setTimeout(function () {
1724
- dispatchEvent(_this2.image, EVENT_DBLCLICK);
1710
+ dispatchEvent(_this2.image, EVENT_DBLCLICK, {
1711
+ originalEvent: event
1712
+ });
1725
1713
  }, 50);
1726
1714
  } else {
1727
1715
  this.imageClicked = true; // The default timing of a double click in Windows is 500 ms
@@ -1736,7 +1724,9 @@ var handlers = {
1736
1724
  if (options.backdrop && options.backdrop !== 'static' && event.target === this.canvas) {
1737
1725
  // This timeout will be cleared later when a native click event is triggering
1738
1726
  this.clickCanvasTimeout = setTimeout(function () {
1739
- dispatchEvent(_this2.canvas, EVENT_CLICK);
1727
+ dispatchEvent(_this2.canvas, EVENT_CLICK, {
1728
+ originalEvent: event
1729
+ });
1740
1730
  }, 50);
1741
1731
  }
1742
1732
  }
@@ -2490,8 +2480,24 @@ var methods = {
2490
2480
  ratio = Math.min(Math.max(ratio, minZoomRatio), maxZoomRatio);
2491
2481
  }
2492
2482
 
2493
- if (_originalEvent && options.zoomRatio >= 0.055 && ratio > 0.95 && ratio < 1.05) {
2494
- ratio = 1;
2483
+ if (_originalEvent) {
2484
+ switch (_originalEvent.type) {
2485
+ case 'wheel':
2486
+ if (options.zoomRatio >= 0.055 && ratio > 0.95 && ratio < 1.05) {
2487
+ ratio = 1;
2488
+ }
2489
+
2490
+ break;
2491
+
2492
+ case 'pointermove':
2493
+ case 'touchmove':
2494
+ case 'mousemove':
2495
+ if (ratio > 0.99 && ratio < 1.01) {
2496
+ ratio = 1;
2497
+ }
2498
+
2499
+ break;
2500
+ }
2495
2501
  }
2496
2502
 
2497
2503
  var newWidth = naturalWidth * ratio;
@@ -2518,7 +2524,7 @@ var methods = {
2518
2524
 
2519
2525
  if (_originalEvent) {
2520
2526
  var offset = getOffset(this.viewer);
2521
- var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {
2527
+ var center = pointers && Object.keys(pointers).length > 0 ? getPointersCenter(pointers) : {
2522
2528
  pageX: _originalEvent.pageX,
2523
2529
  pageY: _originalEvent.pageY
2524
2530
  }; // Zoom from the triggering point of the event
@@ -3032,10 +3038,20 @@ var others = {
3032
3038
  var viewer = _this.viewer;
3033
3039
  var target = event.target;
3034
3040
 
3035
- if (target !== document && target !== viewer && !viewer.contains(target) // Avoid conflicts with other modals (#474)
3036
- && (target.getAttribute('tabindex') === null || target.getAttribute('aria-modal') !== 'true')) {
3037
- viewer.focus();
3041
+ if (target === document || target === viewer || viewer.contains(target)) {
3042
+ return;
3043
+ }
3044
+
3045
+ while (target) {
3046
+ // Avoid conflicts with other modals (#474, #540)
3047
+ if (target.getAttribute('tabindex') !== null || target.getAttribute('aria-modal') === 'true') {
3048
+ return;
3049
+ }
3050
+
3051
+ target = target.parentElement;
3038
3052
  }
3053
+
3054
+ viewer.focus();
3039
3055
  });
3040
3056
  },
3041
3057
  clearEnforceFocus: function clearEnforceFocus() {
@@ -3332,6 +3348,7 @@ var Viewer = /*#__PURE__*/function () {
3332
3348
  forEach(images, function (image) {
3333
3349
  if (!image.complete) {
3334
3350
  removeListener(image, EVENT_LOAD, progress);
3351
+ removeListener(image, EVENT_ERROR, progress);
3335
3352
  }
3336
3353
  });
3337
3354
  }
@@ -3340,7 +3357,18 @@ var Viewer = /*#__PURE__*/function () {
3340
3357
  if (image.complete) {
3341
3358
  progress();
3342
3359
  } else {
3343
- addListener(image, EVENT_LOAD, progress, {
3360
+ var onLoad;
3361
+ var onError;
3362
+ addListener(image, EVENT_LOAD, onLoad = function onLoad() {
3363
+ removeListener(image, EVENT_ERROR, onError);
3364
+ progress();
3365
+ }, {
3366
+ once: true
3367
+ });
3368
+ addListener(image, EVENT_ERROR, onError = function onError() {
3369
+ removeListener(image, EVENT_LOAD, onLoad);
3370
+ progress();
3371
+ }, {
3344
3372
  once: true
3345
3373
  });
3346
3374
  }
package/dist/viewer.js CHANGED
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Viewer.js v1.10.2
2
+ * Viewer.js v1.10.5
3
3
  * https://fengyuanchen.github.io/viewerjs
4
4
  *
5
5
  * Copyright 2015-present Chen Fengyuan
6
6
  * Released under the MIT license
7
7
  *
8
- * Date: 2021-10-22T13:59:51.046Z
8
+ * Date: 2022-04-05T08:21:02.491Z
9
9
  */
10
10
 
11
11
  (function (global, factory) {
@@ -19,14 +19,9 @@
19
19
 
20
20
  if (Object.getOwnPropertySymbols) {
21
21
  var symbols = Object.getOwnPropertySymbols(object);
22
-
23
- if (enumerableOnly) {
24
- symbols = symbols.filter(function (sym) {
25
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
26
- });
27
- }
28
-
29
- keys.push.apply(keys, symbols);
22
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
23
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
24
+ })), keys.push.apply(keys, symbols);
30
25
  }
31
26
 
32
27
  return keys;
@@ -34,19 +29,12 @@
34
29
 
35
30
  function _objectSpread2(target) {
36
31
  for (var i = 1; i < arguments.length; i++) {
37
- var source = arguments[i] != null ? arguments[i] : {};
38
-
39
- if (i % 2) {
40
- ownKeys(Object(source), true).forEach(function (key) {
41
- _defineProperty(target, key, source[key]);
42
- });
43
- } else if (Object.getOwnPropertyDescriptors) {
44
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
45
- } else {
46
- ownKeys(Object(source)).forEach(function (key) {
47
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
48
- });
49
- }
32
+ var source = null != arguments[i] ? arguments[i] : {};
33
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
34
+ _defineProperty(target, key, source[key]);
35
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
36
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
37
+ });
50
38
  }
51
39
 
52
40
  return target;
@@ -55,17 +43,11 @@
55
43
  function _typeof(obj) {
56
44
  "@babel/helpers - typeof";
57
45
 
58
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
59
- _typeof = function (obj) {
60
- return typeof obj;
61
- };
62
- } else {
63
- _typeof = function (obj) {
64
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
65
- };
66
- }
67
-
68
- return _typeof(obj);
46
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
47
+ return typeof obj;
48
+ } : function (obj) {
49
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
50
+ }, _typeof(obj);
69
51
  }
70
52
 
71
53
  function _classCallCheck(instance, Constructor) {
@@ -87,6 +69,9 @@
87
69
  function _createClass(Constructor, protoProps, staticProps) {
88
70
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
89
71
  if (staticProps) _defineProperties(Constructor, staticProps);
72
+ Object.defineProperty(Constructor, "prototype", {
73
+ writable: false
74
+ });
90
75
  return Constructor;
91
76
  }
92
77
 
@@ -1458,9 +1443,10 @@
1458
1443
  // Cancel the emulated double click when the native dblclick event was triggered.
1459
1444
  if (IS_TOUCH_DEVICE && event.isTrusted) {
1460
1445
  clearTimeout(this.doubleClickImageTimeout);
1461
- }
1446
+ } // XXX: No pageX/Y properties in custom event, fallback to the original event.
1447
+
1462
1448
 
1463
- this.toggle(event);
1449
+ this.toggle(event.isTrusted ? event : event.detail && event.detail.originalEvent);
1464
1450
  }
1465
1451
  },
1466
1452
  load: function load() {
@@ -1727,7 +1713,9 @@
1727
1713
  this.imageClicked = false; // This timeout will be cleared later when a native dblclick event is triggering
1728
1714
 
1729
1715
  this.doubleClickImageTimeout = setTimeout(function () {
1730
- dispatchEvent(_this2.image, EVENT_DBLCLICK);
1716
+ dispatchEvent(_this2.image, EVENT_DBLCLICK, {
1717
+ originalEvent: event
1718
+ });
1731
1719
  }, 50);
1732
1720
  } else {
1733
1721
  this.imageClicked = true; // The default timing of a double click in Windows is 500 ms
@@ -1742,7 +1730,9 @@
1742
1730
  if (options.backdrop && options.backdrop !== 'static' && event.target === this.canvas) {
1743
1731
  // This timeout will be cleared later when a native click event is triggering
1744
1732
  this.clickCanvasTimeout = setTimeout(function () {
1745
- dispatchEvent(_this2.canvas, EVENT_CLICK);
1733
+ dispatchEvent(_this2.canvas, EVENT_CLICK, {
1734
+ originalEvent: event
1735
+ });
1746
1736
  }, 50);
1747
1737
  }
1748
1738
  }
@@ -2496,8 +2486,24 @@
2496
2486
  ratio = Math.min(Math.max(ratio, minZoomRatio), maxZoomRatio);
2497
2487
  }
2498
2488
 
2499
- if (_originalEvent && options.zoomRatio >= 0.055 && ratio > 0.95 && ratio < 1.05) {
2500
- ratio = 1;
2489
+ if (_originalEvent) {
2490
+ switch (_originalEvent.type) {
2491
+ case 'wheel':
2492
+ if (options.zoomRatio >= 0.055 && ratio > 0.95 && ratio < 1.05) {
2493
+ ratio = 1;
2494
+ }
2495
+
2496
+ break;
2497
+
2498
+ case 'pointermove':
2499
+ case 'touchmove':
2500
+ case 'mousemove':
2501
+ if (ratio > 0.99 && ratio < 1.01) {
2502
+ ratio = 1;
2503
+ }
2504
+
2505
+ break;
2506
+ }
2501
2507
  }
2502
2508
 
2503
2509
  var newWidth = naturalWidth * ratio;
@@ -2524,7 +2530,7 @@
2524
2530
 
2525
2531
  if (_originalEvent) {
2526
2532
  var offset = getOffset(this.viewer);
2527
- var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {
2533
+ var center = pointers && Object.keys(pointers).length > 0 ? getPointersCenter(pointers) : {
2528
2534
  pageX: _originalEvent.pageX,
2529
2535
  pageY: _originalEvent.pageY
2530
2536
  }; // Zoom from the triggering point of the event
@@ -3038,10 +3044,20 @@
3038
3044
  var viewer = _this.viewer;
3039
3045
  var target = event.target;
3040
3046
 
3041
- if (target !== document && target !== viewer && !viewer.contains(target) // Avoid conflicts with other modals (#474)
3042
- && (target.getAttribute('tabindex') === null || target.getAttribute('aria-modal') !== 'true')) {
3043
- viewer.focus();
3047
+ if (target === document || target === viewer || viewer.contains(target)) {
3048
+ return;
3049
+ }
3050
+
3051
+ while (target) {
3052
+ // Avoid conflicts with other modals (#474, #540)
3053
+ if (target.getAttribute('tabindex') !== null || target.getAttribute('aria-modal') === 'true') {
3054
+ return;
3055
+ }
3056
+
3057
+ target = target.parentElement;
3044
3058
  }
3059
+
3060
+ viewer.focus();
3045
3061
  });
3046
3062
  },
3047
3063
  clearEnforceFocus: function clearEnforceFocus() {
@@ -3338,6 +3354,7 @@
3338
3354
  forEach(images, function (image) {
3339
3355
  if (!image.complete) {
3340
3356
  removeListener(image, EVENT_LOAD, progress);
3357
+ removeListener(image, EVENT_ERROR, progress);
3341
3358
  }
3342
3359
  });
3343
3360
  }
@@ -3346,7 +3363,18 @@
3346
3363
  if (image.complete) {
3347
3364
  progress();
3348
3365
  } else {
3349
- addListener(image, EVENT_LOAD, progress, {
3366
+ var onLoad;
3367
+ var onError;
3368
+ addListener(image, EVENT_LOAD, onLoad = function onLoad() {
3369
+ removeListener(image, EVENT_ERROR, onError);
3370
+ progress();
3371
+ }, {
3372
+ once: true
3373
+ });
3374
+ addListener(image, EVENT_ERROR, onError = function onError() {
3375
+ removeListener(image, EVENT_LOAD, onLoad);
3376
+ progress();
3377
+ }, {
3350
3378
  once: true
3351
3379
  });
3352
3380
  }
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Viewer.js v1.10.2
2
+ * Viewer.js v1.10.5
3
3
  * https://fengyuanchen.github.io/viewerjs
4
4
  *
5
5
  * Copyright 2015-present Chen Fengyuan
6
6
  * Released under the MIT license
7
7
  *
8
- * Date: 2021-10-22T13:59:46.805Z
9
- */.viewer-close:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen-exit:before,.viewer-fullscreen:before,.viewer-next:before,.viewer-one-to-one:before,.viewer-play:before,.viewer-prev:before,.viewer-reset:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-zoom-in:before,.viewer-zoom-out:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAUCAYAAABWOyJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAQPSURBVHic7Zs/iFxVFMa/0U2UaJGksUgnIVhYxVhpjDbZCBmLdAYECxsRFBTUamcXUiSNncgKQbSxsxH8gzAP3FU2jY0kKKJNiiiIghFlccnP4p3nPCdv3p9778vsLOcHB2bfveeb7955c3jvvNkBIMdxnD64a94GHMfZu3iBcRynN7zAOI7TG15gHCeeNUkr8zaxG2lbYDYsdgMbktBsP03jdQwljSXdtBhLOmtjowC9Mg9L+knSlcD8TNKpSA9lBpK2JF2VdDSR5n5J64m0qli399hNFMUlpshQii5jbXTbHGviB0nLNeNDSd9VO4A2UdB2fp+x0eCnaXxWXGA2X0au/3HgN9P4LFCjIANOJdrLr0zzZ+BEpNYDwKbpnQMeAw4m8HjQtM6Z9qa917zPQwFr3M5KgA6J5rTJCdFZJj9/lyvGhsDvwFNVuV2MhhjrK6b9bFiE+j1r87eBl4HDwCF7/U/k+ofAX5b/EXBv5JoLMuILzf3Ap6Z3EzgdqHMCuF7hcQf4HDgeoHnccncqdK/TvSDWffFXI/exICY/xZyqc6XLWF1UFZna4gJ7q8BsRvgd2/xXpo6P+D9dfT7PpECtA3cnWPM0GXGFZh/wgWltA+cDNC7X+AP4GzjZQe+k5dRxuYPeiuXU7e1qwLpDz7dFjXKRaSwuMLvAlG8zZlG+YmiK1HoFqT7wP2z+4Q45TfEGcMt01xLoNZEBTwRqD4BLpnMLeC1A41UmVxsXgXeBayV/Wx20rpTyrpnWRft7p6O/FdqzGrDukPNtkaMoMo3FBdBSQMOnYBCReyf05s126fU9ytfX98+mY54Kxnp7S9K3kj6U9KYdG0h6UdLbkh7poFXMfUnSOyVvL0h6VtIXHbS6nOP+s/Zm9mvyXW1uuC9ohZ72E9uDmXWLJOB1GxsH+DxPftsB8B6wlGDN02TAkxG6+4D3TWsbeC5CS8CDFce+AW500LhhOW2020TRjK3b21HEmgti9m0RonxbdMZeVzV+/4tF3cBpP7E9mKHNL5q8h5g0eYsCMQz0epq8gQrwMXAgcs0FGXGFRcB9wCemF9PkbYqM/Bas7fxLwNeJPdTdpo4itQti8lPMqTpXuozVRVXPpbHI3KkNTB1NfkL81j2mvhDp91HgV9MKuRIqrykj3WPq4rHyL+axj8/qGPmTqi6F9YDlHOvJU6oYcTsh/TYSzWmTE6JT19CtLTJt32D6CmHe0eQn1O8z5AXgT4sx4Vcu0/EQecMydB8z0hUWkTd2t4CrwNEePqMBcAR4mrBbwyXLPWJa8zrXmmLEhNBmfpkuY2102xxrih+pb+ieAb6vGhuA97UcJ5KR8gZ77K+99xxeYBzH6Q3/Z0fHcXrDC4zjOL3hBcZxnN74F+zlvXFWXF9PAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;top:0;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.viewer-container::-moz-selection,.viewer-container ::-moz-selection{background-color:transparent}.viewer-container::selection,.viewer-container ::selection{background-color:transparent}.viewer-container:focus{outline:0}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:rgba(0,0,0,.5);overflow:hidden}.viewer-list{-webkit-box-sizing:content-box;box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;-webkit-transition:opacity .15s;transition:opacity .15s;width:30px}.viewer-list>li:focus,.viewer-list>li:hover{opacity:.75}.viewer-list>li:focus{outline:0}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:focus,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;right:0;z-index:1}.viewer-player,.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:6px 3px}.viewer-toolbar>ul>li{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;-webkit-transition:background-color .15s;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:focus,.viewer-toolbar>ul>li:hover{background-color:rgba(0,0,0,.8)}.viewer-toolbar>ul>li:focus{-webkit-box-shadow:0 0 3px #fff;box-shadow:0 0 3px #fff;outline:0;position:relative;z-index:1}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:rgba(0,0,0,.8);border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1.2;margin:0 5% 5px;max-width:90%;opacity:.8;overflow:hidden;text-overflow:ellipsis;-webkit-transition:opacity .15s;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;-webkit-transition:background-color .15s;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:rgba(0,0,0,.8)}.viewer-button:focus{-webkit-box-shadow:0 0 3px #fff;box-shadow:0 0 3px #fff;outline:0}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:rgba(0,0,0,.5)}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:-webkit-grab;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{-webkit-transition:all .3s;transition:all .3s}@-webkit-keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes viewer-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.viewer-loading:after{-webkit-animation:viewer-spinner 1s linear infinite;animation:viewer-spinner 1s linear infinite;border:4px solid hsla(0,0%,100%,.1);border-left-color:hsla(0,0%,100%,.5);border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width:767px){.viewer-hide-xs-down{display:none}}@media (max-width:991px){.viewer-hide-sm-down{display:none}}@media (max-width:1199px){.viewer-hide-md-down{display:none}}
8
+ * Date: 2022-04-05T08:21:00.150Z
9
+ */.viewer-close:before,.viewer-flip-horizontal:before,.viewer-flip-vertical:before,.viewer-fullscreen-exit:before,.viewer-fullscreen:before,.viewer-next:before,.viewer-one-to-one:before,.viewer-play:before,.viewer-prev:before,.viewer-reset:before,.viewer-rotate-left:before,.viewer-rotate-right:before,.viewer-zoom-in:before,.viewer-zoom-out:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAUCAYAAABWOyJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAQPSURBVHic7Zs/iFxVFMa/0U2UaJGksUgnIVhYxVhpjDbZCBmLdAYECxsRFBTUamcXUiSNncgKQbSxsxH8gzAP3FU2jY0kKKJNiiiIghFlccnP4p3nPCdv3p9778vsLOcHB2bfveeb7955c3jvvNkBIMdxnD64a94GHMfZu3iBcRynN7zAOI7TG15gHCeeNUkr8zaxG2lbYDYsdgMbktBsP03jdQwljSXdtBhLOmtjowC9Mg9L+knSlcD8TNKpSA9lBpK2JF2VdDSR5n5J64m0qli399hNFMUlpshQii5jbXTbHGviB0nLNeNDSd9VO4A2UdB2fp+x0eCnaXxWXGA2X0au/3HgN9P4LFCjIANOJdrLr0zzZ+BEpNYDwKbpnQMeAw4m8HjQtM6Z9qa917zPQwFr3M5KgA6J5rTJCdFZJj9/lyvGhsDvwFNVuV2MhhjrK6b9bFiE+j1r87eBl4HDwCF7/U/k+ofAX5b/EXBv5JoLMuILzf3Ap6Z3EzgdqHMCuF7hcQf4HDgeoHnccncqdK/TvSDWffFXI/exICY/xZyqc6XLWF1UFZna4gJ7q8BsRvgd2/xXpo6P+D9dfT7PpECtA3cnWPM0GXGFZh/wgWltA+cDNC7X+AP4GzjZQe+k5dRxuYPeiuXU7e1qwLpDz7dFjXKRaSwuMLvAlG8zZlG+YmiK1HoFqT7wP2z+4Q45TfEGcMt01xLoNZEBTwRqD4BLpnMLeC1A41UmVxsXgXeBayV/Wx20rpTyrpnWRft7p6O/FdqzGrDukPNtkaMoMo3FBdBSQMOnYBCReyf05s126fU9ytfX98+mY54Kxnp7S9K3kj6U9KYdG0h6UdLbkh7poFXMfUnSOyVvL0h6VtIXHbS6nOP+s/Zm9mvyXW1uuC9ohZ72E9uDmXWLJOB1GxsH+DxPftsB8B6wlGDN02TAkxG6+4D3TWsbeC5CS8CDFce+AW500LhhOW2020TRjK3b21HEmgti9m0RonxbdMZeVzV+/4tF3cBpP7E9mKHNL5q8h5g0eYsCMQz0epq8gQrwMXAgcs0FGXGFRcB9wCemF9PkbYqM/Bas7fxLwNeJPdTdpo4itQti8lPMqTpXuozVRVXPpbHI3KkNTB1NfkL81j2mvhDp91HgV9MKuRIqrykj3WPq4rHyL+axj8/qGPmTqi6F9YDlHOvJU6oYcTsh/TYSzWmTE6JT19CtLTJt32D6CmHe0eQn1O8z5AXgT4sx4Vcu0/EQecMydB8z0hUWkTd2t4CrwNEePqMBcAR4mrBbwyXLPWJa8zrXmmLEhNBmfpkuY2102xxrih+pb+ieAb6vGhuA97UcJ5KR8gZ77K+99xxeYBzH6Q3/Z0fHcXrDC4zjOL3hBcZxnN74F+zlvXFWXF9PAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-size:280px;color:transparent;display:block;font-size:0;height:20px;line-height:0;width:20px}.viewer-zoom-in:before{background-position:0 0;content:"Zoom In"}.viewer-zoom-out:before{background-position:-20px 0;content:"Zoom Out"}.viewer-one-to-one:before{background-position:-40px 0;content:"One to One"}.viewer-reset:before{background-position:-60px 0;content:"Reset"}.viewer-prev:before{background-position:-80px 0;content:"Previous"}.viewer-play:before{background-position:-100px 0;content:"Play"}.viewer-next:before{background-position:-120px 0;content:"Next"}.viewer-rotate-left:before{background-position:-140px 0;content:"Rotate Left"}.viewer-rotate-right:before{background-position:-160px 0;content:"Rotate Right"}.viewer-flip-horizontal:before{background-position:-180px 0;content:"Flip Horizontal"}.viewer-flip-vertical:before{background-position:-200px 0;content:"Flip Vertical"}.viewer-fullscreen:before{background-position:-220px 0;content:"Enter Full Screen"}.viewer-fullscreen-exit:before{background-position:-240px 0;content:"Exit Full Screen"}.viewer-close:before{background-position:-260px 0;content:"Close"}.viewer-container{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;bottom:0;direction:ltr;font-size:0;left:0;line-height:0;overflow:hidden;position:absolute;right:0;top:0;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.viewer-container ::-moz-selection,.viewer-container::-moz-selection{background-color:transparent}.viewer-container ::selection,.viewer-container::selection{background-color:transparent}.viewer-container:focus{outline:0}.viewer-container img{display:block;height:auto;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.viewer-canvas{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.viewer-canvas>img{height:auto;margin:15px auto;max-width:90%!important;width:auto}.viewer-footer{bottom:0;left:0;overflow:hidden;position:absolute;right:0;text-align:center}.viewer-navbar{background-color:rgba(0,0,0,.5);overflow:hidden}.viewer-list{box-sizing:content-box;height:50px;margin:0;overflow:hidden;padding:1px 0}.viewer-list>li{color:transparent;cursor:pointer;float:left;font-size:0;height:50px;line-height:0;opacity:.5;overflow:hidden;transition:opacity .15s;width:30px}.viewer-list>li:focus,.viewer-list>li:hover{opacity:.75}.viewer-list>li:focus{outline:0}.viewer-list>li+li{margin-left:1px}.viewer-list>.viewer-loading{position:relative}.viewer-list>.viewer-loading:after{border-width:2px;height:20px;margin-left:-10px;margin-top:-10px;width:20px}.viewer-list>.viewer-active,.viewer-list>.viewer-active:focus,.viewer-list>.viewer-active:hover{opacity:1}.viewer-player{background-color:#000;bottom:0;cursor:none;display:none;right:0;z-index:1}.viewer-player,.viewer-player>img{left:0;position:absolute;top:0}.viewer-toolbar>ul{display:inline-block;margin:0 auto 5px;overflow:hidden;padding:6px 3px}.viewer-toolbar>ul>li{background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;float:left;height:24px;overflow:hidden;transition:background-color .15s;width:24px}.viewer-toolbar>ul>li:focus,.viewer-toolbar>ul>li:hover{background-color:rgba(0,0,0,.8)}.viewer-toolbar>ul>li:focus{box-shadow:0 0 3px #fff;outline:0;position:relative;z-index:1}.viewer-toolbar>ul>li:before{margin:2px}.viewer-toolbar>ul>li+li{margin-left:1px}.viewer-toolbar>ul>.viewer-small{height:18px;margin-bottom:3px;margin-top:3px;width:18px}.viewer-toolbar>ul>.viewer-small:before{margin:-1px}.viewer-toolbar>ul>.viewer-large{height:30px;margin-bottom:-3px;margin-top:-3px;width:30px}.viewer-toolbar>ul>.viewer-large:before{margin:5px}.viewer-tooltip{background-color:rgba(0,0,0,.8);border-radius:10px;color:#fff;display:none;font-size:12px;height:20px;left:50%;line-height:20px;margin-left:-25px;margin-top:-10px;position:absolute;text-align:center;top:50%;width:50px}.viewer-title{color:#ccc;display:inline-block;font-size:12px;line-height:1.2;margin:0 5% 5px;max-width:90%;opacity:.8;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s;white-space:nowrap}.viewer-title:hover{opacity:1}.viewer-button{-webkit-app-region:no-drag;background-color:rgba(0,0,0,.5);border-radius:50%;cursor:pointer;height:80px;overflow:hidden;position:absolute;right:-40px;top:-40px;transition:background-color .15s;width:80px}.viewer-button:focus,.viewer-button:hover{background-color:rgba(0,0,0,.8)}.viewer-button:focus{box-shadow:0 0 3px #fff;outline:0}.viewer-button:before{bottom:15px;left:15px;position:absolute}.viewer-fixed{position:fixed}.viewer-open{overflow:hidden}.viewer-show{display:block}.viewer-hide{display:none}.viewer-backdrop{background-color:rgba(0,0,0,.5)}.viewer-invisible{visibility:hidden}.viewer-move{cursor:move;cursor:-webkit-grab;cursor:grab}.viewer-fade{opacity:0}.viewer-in{opacity:1}.viewer-transition{transition:all .3s}@-webkit-keyframes viewer-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes viewer-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.viewer-loading:after{-webkit-animation:viewer-spinner 1s linear infinite;animation:viewer-spinner 1s linear infinite;border:4px solid hsla(0,0%,100%,.1);border-left-color:hsla(0,0%,100%,.5);border-radius:50%;content:"";display:inline-block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:1}@media (max-width:767px){.viewer-hide-xs-down{display:none}}@media (max-width:991px){.viewer-hide-sm-down{display:none}}@media (max-width:1199px){.viewer-hide-md-down{display:none}}