index.es.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825
  1. import Viewer from "viewerjs";
  2. export { default as Viewer } from "viewerjs";
  3. import Vue from "vue";
  4. var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
  5. var freeGlobal$1 = freeGlobal;
  6. var freeSelf = typeof self == "object" && self && self.Object === Object && self;
  7. var root = freeGlobal$1 || freeSelf || Function("return this")();
  8. var root$1 = root;
  9. var Symbol$1 = root$1.Symbol;
  10. var Symbol$2 = Symbol$1;
  11. var objectProto$8 = Object.prototype;
  12. var hasOwnProperty$6 = objectProto$8.hasOwnProperty;
  13. var nativeObjectToString$1 = objectProto$8.toString;
  14. var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0;
  15. function getRawTag(value) {
  16. var isOwn = hasOwnProperty$6.call(value, symToStringTag$1), tag = value[symToStringTag$1];
  17. try {
  18. value[symToStringTag$1] = void 0;
  19. var unmasked = true;
  20. } catch (e) {
  21. }
  22. var result = nativeObjectToString$1.call(value);
  23. if (unmasked) {
  24. if (isOwn) {
  25. value[symToStringTag$1] = tag;
  26. } else {
  27. delete value[symToStringTag$1];
  28. }
  29. }
  30. return result;
  31. }
  32. var objectProto$7 = Object.prototype;
  33. var nativeObjectToString = objectProto$7.toString;
  34. function objectToString(value) {
  35. return nativeObjectToString.call(value);
  36. }
  37. var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
  38. var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : void 0;
  39. function baseGetTag(value) {
  40. if (value == null) {
  41. return value === void 0 ? undefinedTag : nullTag;
  42. }
  43. return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
  44. }
  45. function isObjectLike(value) {
  46. return value != null && typeof value == "object";
  47. }
  48. var symbolTag = "[object Symbol]";
  49. function isSymbol(value) {
  50. return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
  51. }
  52. var isArray = Array.isArray;
  53. var isArray$1 = isArray;
  54. var reWhitespace = /\s/;
  55. function trimmedEndIndex(string) {
  56. var index2 = string.length;
  57. while (index2-- && reWhitespace.test(string.charAt(index2))) {
  58. }
  59. return index2;
  60. }
  61. var reTrimStart = /^\s+/;
  62. function baseTrim(string) {
  63. return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
  64. }
  65. function isObject(value) {
  66. var type = typeof value;
  67. return value != null && (type == "object" || type == "function");
  68. }
  69. var NAN = 0 / 0;
  70. var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
  71. var reIsBinary = /^0b[01]+$/i;
  72. var reIsOctal = /^0o[0-7]+$/i;
  73. var freeParseInt = parseInt;
  74. function toNumber(value) {
  75. if (typeof value == "number") {
  76. return value;
  77. }
  78. if (isSymbol(value)) {
  79. return NAN;
  80. }
  81. if (isObject(value)) {
  82. var other = typeof value.valueOf == "function" ? value.valueOf() : value;
  83. value = isObject(other) ? other + "" : other;
  84. }
  85. if (typeof value != "string") {
  86. return value === 0 ? value : +value;
  87. }
  88. value = baseTrim(value);
  89. var isBinary = reIsBinary.test(value);
  90. return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
  91. }
  92. function identity(value) {
  93. return value;
  94. }
  95. var asyncTag = "[object AsyncFunction]", funcTag$1 = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
  96. function isFunction(value) {
  97. if (!isObject(value)) {
  98. return false;
  99. }
  100. var tag = baseGetTag(value);
  101. return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
  102. }
  103. var coreJsData = root$1["__core-js_shared__"];
  104. var coreJsData$1 = coreJsData;
  105. var maskSrcKey = function() {
  106. var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || "");
  107. return uid ? "Symbol(src)_1." + uid : "";
  108. }();
  109. function isMasked(func) {
  110. return !!maskSrcKey && maskSrcKey in func;
  111. }
  112. var funcProto$1 = Function.prototype;
  113. var funcToString$1 = funcProto$1.toString;
  114. function toSource(func) {
  115. if (func != null) {
  116. try {
  117. return funcToString$1.call(func);
  118. } catch (e) {
  119. }
  120. try {
  121. return func + "";
  122. } catch (e) {
  123. }
  124. }
  125. return "";
  126. }
  127. var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
  128. var reIsHostCtor = /^\[object .+?Constructor\]$/;
  129. var funcProto = Function.prototype, objectProto$6 = Object.prototype;
  130. var funcToString = funcProto.toString;
  131. var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
  132. var reIsNative = RegExp(
  133. "^" + funcToString.call(hasOwnProperty$5).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
  134. );
  135. function baseIsNative(value) {
  136. if (!isObject(value) || isMasked(value)) {
  137. return false;
  138. }
  139. var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  140. return pattern.test(toSource(value));
  141. }
  142. function getValue(object, key) {
  143. return object == null ? void 0 : object[key];
  144. }
  145. function getNative(object, key) {
  146. var value = getValue(object, key);
  147. return baseIsNative(value) ? value : void 0;
  148. }
  149. function apply(func, thisArg, args) {
  150. switch (args.length) {
  151. case 0:
  152. return func.call(thisArg);
  153. case 1:
  154. return func.call(thisArg, args[0]);
  155. case 2:
  156. return func.call(thisArg, args[0], args[1]);
  157. case 3:
  158. return func.call(thisArg, args[0], args[1], args[2]);
  159. }
  160. return func.apply(thisArg, args);
  161. }
  162. var HOT_COUNT = 800, HOT_SPAN = 16;
  163. var nativeNow = Date.now;
  164. function shortOut(func) {
  165. var count = 0, lastCalled = 0;
  166. return function() {
  167. var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
  168. lastCalled = stamp;
  169. if (remaining > 0) {
  170. if (++count >= HOT_COUNT) {
  171. return arguments[0];
  172. }
  173. } else {
  174. count = 0;
  175. }
  176. return func.apply(void 0, arguments);
  177. };
  178. }
  179. function constant(value) {
  180. return function() {
  181. return value;
  182. };
  183. }
  184. var defineProperty = function() {
  185. try {
  186. var func = getNative(Object, "defineProperty");
  187. func({}, "", {});
  188. return func;
  189. } catch (e) {
  190. }
  191. }();
  192. var defineProperty$1 = defineProperty;
  193. var baseSetToString = !defineProperty$1 ? identity : function(func, string) {
  194. return defineProperty$1(func, "toString", {
  195. "configurable": true,
  196. "enumerable": false,
  197. "value": constant(string),
  198. "writable": true
  199. });
  200. };
  201. var baseSetToString$1 = baseSetToString;
  202. var setToString = shortOut(baseSetToString$1);
  203. var setToString$1 = setToString;
  204. var MAX_SAFE_INTEGER$1 = 9007199254740991;
  205. var reIsUint = /^(?:0|[1-9]\d*)$/;
  206. function isIndex(value, length) {
  207. var type = typeof value;
  208. length = length == null ? MAX_SAFE_INTEGER$1 : length;
  209. return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
  210. }
  211. function baseAssignValue(object, key, value) {
  212. if (key == "__proto__" && defineProperty$1) {
  213. defineProperty$1(object, key, {
  214. "configurable": true,
  215. "enumerable": true,
  216. "value": value,
  217. "writable": true
  218. });
  219. } else {
  220. object[key] = value;
  221. }
  222. }
  223. function eq(value, other) {
  224. return value === other || value !== value && other !== other;
  225. }
  226. var objectProto$5 = Object.prototype;
  227. var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
  228. function assignValue(object, key, value) {
  229. var objValue = object[key];
  230. if (!(hasOwnProperty$4.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
  231. baseAssignValue(object, key, value);
  232. }
  233. }
  234. function copyObject(source, props, object, customizer) {
  235. var isNew = !object;
  236. object || (object = {});
  237. var index2 = -1, length = props.length;
  238. while (++index2 < length) {
  239. var key = props[index2];
  240. var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
  241. if (newValue === void 0) {
  242. newValue = source[key];
  243. }
  244. if (isNew) {
  245. baseAssignValue(object, key, newValue);
  246. } else {
  247. assignValue(object, key, newValue);
  248. }
  249. }
  250. return object;
  251. }
  252. var nativeMax$1 = Math.max;
  253. function overRest(func, start, transform) {
  254. start = nativeMax$1(start === void 0 ? func.length - 1 : start, 0);
  255. return function() {
  256. var args = arguments, index2 = -1, length = nativeMax$1(args.length - start, 0), array = Array(length);
  257. while (++index2 < length) {
  258. array[index2] = args[start + index2];
  259. }
  260. index2 = -1;
  261. var otherArgs = Array(start + 1);
  262. while (++index2 < start) {
  263. otherArgs[index2] = args[index2];
  264. }
  265. otherArgs[start] = transform(array);
  266. return apply(func, this, otherArgs);
  267. };
  268. }
  269. function baseRest(func, start) {
  270. return setToString$1(overRest(func, start, identity), func + "");
  271. }
  272. var MAX_SAFE_INTEGER = 9007199254740991;
  273. function isLength(value) {
  274. return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
  275. }
  276. function isArrayLike(value) {
  277. return value != null && isLength(value.length) && !isFunction(value);
  278. }
  279. function isIterateeCall(value, index2, object) {
  280. if (!isObject(object)) {
  281. return false;
  282. }
  283. var type = typeof index2;
  284. if (type == "number" ? isArrayLike(object) && isIndex(index2, object.length) : type == "string" && index2 in object) {
  285. return eq(object[index2], value);
  286. }
  287. return false;
  288. }
  289. function createAssigner(assigner) {
  290. return baseRest(function(object, sources) {
  291. var index2 = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;
  292. customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0;
  293. if (guard && isIterateeCall(sources[0], sources[1], guard)) {
  294. customizer = length < 3 ? void 0 : customizer;
  295. length = 1;
  296. }
  297. object = Object(object);
  298. while (++index2 < length) {
  299. var source = sources[index2];
  300. if (source) {
  301. assigner(object, source, index2, customizer);
  302. }
  303. }
  304. return object;
  305. });
  306. }
  307. var objectProto$4 = Object.prototype;
  308. function isPrototype(value) {
  309. var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$4;
  310. return value === proto;
  311. }
  312. function baseTimes(n, iteratee) {
  313. var index2 = -1, result = Array(n);
  314. while (++index2 < n) {
  315. result[index2] = iteratee(index2);
  316. }
  317. return result;
  318. }
  319. var argsTag$1 = "[object Arguments]";
  320. function baseIsArguments(value) {
  321. return isObjectLike(value) && baseGetTag(value) == argsTag$1;
  322. }
  323. var objectProto$3 = Object.prototype;
  324. var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
  325. var propertyIsEnumerable = objectProto$3.propertyIsEnumerable;
  326. var isArguments = baseIsArguments(function() {
  327. return arguments;
  328. }()) ? baseIsArguments : function(value) {
  329. return isObjectLike(value) && hasOwnProperty$3.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
  330. };
  331. var isArguments$1 = isArguments;
  332. function stubFalse() {
  333. return false;
  334. }
  335. var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
  336. var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
  337. var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
  338. var Buffer = moduleExports$1 ? root$1.Buffer : void 0;
  339. var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0;
  340. var isBuffer = nativeIsBuffer || stubFalse;
  341. var isBuffer$1 = isBuffer;
  342. var argsTag = "[object Arguments]", arrayTag = "[object Array]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", mapTag = "[object Map]", numberTag = "[object Number]", objectTag = "[object Object]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", weakMapTag = "[object WeakMap]";
  343. var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
  344. var typedArrayTags = {};
  345. typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
  346. typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
  347. function baseIsTypedArray(value) {
  348. return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
  349. }
  350. function baseUnary(func) {
  351. return function(value) {
  352. return func(value);
  353. };
  354. }
  355. var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
  356. var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
  357. var moduleExports = freeModule && freeModule.exports === freeExports;
  358. var freeProcess = moduleExports && freeGlobal$1.process;
  359. var nodeUtil = function() {
  360. try {
  361. var types = freeModule && freeModule.require && freeModule.require("util").types;
  362. if (types) {
  363. return types;
  364. }
  365. return freeProcess && freeProcess.binding && freeProcess.binding("util");
  366. } catch (e) {
  367. }
  368. }();
  369. var nodeUtil$1 = nodeUtil;
  370. var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
  371. var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
  372. var isTypedArray$1 = isTypedArray;
  373. var objectProto$2 = Object.prototype;
  374. var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
  375. function arrayLikeKeys(value, inherited) {
  376. var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
  377. for (var key in value) {
  378. if ((inherited || hasOwnProperty$2.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) {
  379. result.push(key);
  380. }
  381. }
  382. return result;
  383. }
  384. function overArg(func, transform) {
  385. return function(arg) {
  386. return func(transform(arg));
  387. };
  388. }
  389. var nativeKeys = overArg(Object.keys, Object);
  390. var nativeKeys$1 = nativeKeys;
  391. var objectProto$1 = Object.prototype;
  392. var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
  393. function baseKeys(object) {
  394. if (!isPrototype(object)) {
  395. return nativeKeys$1(object);
  396. }
  397. var result = [];
  398. for (var key in Object(object)) {
  399. if (hasOwnProperty$1.call(object, key) && key != "constructor") {
  400. result.push(key);
  401. }
  402. }
  403. return result;
  404. }
  405. function keys(object) {
  406. return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
  407. }
  408. var objectProto = Object.prototype;
  409. var hasOwnProperty = objectProto.hasOwnProperty;
  410. var assign = createAssigner(function(object, source) {
  411. if (isPrototype(source) || isArrayLike(source)) {
  412. copyObject(source, keys(source), object);
  413. return;
  414. }
  415. for (var key in source) {
  416. if (hasOwnProperty.call(source, key)) {
  417. assignValue(object, key, source[key]);
  418. }
  419. }
  420. });
  421. var assign$1 = assign;
  422. var now = function() {
  423. return root$1.Date.now();
  424. };
  425. var now$1 = now;
  426. var FUNC_ERROR_TEXT = "Expected a function";
  427. var nativeMax = Math.max, nativeMin = Math.min;
  428. function debounce(func, wait, options) {
  429. var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
  430. if (typeof func != "function") {
  431. throw new TypeError(FUNC_ERROR_TEXT);
  432. }
  433. wait = toNumber(wait) || 0;
  434. if (isObject(options)) {
  435. leading = !!options.leading;
  436. maxing = "maxWait" in options;
  437. maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
  438. trailing = "trailing" in options ? !!options.trailing : trailing;
  439. }
  440. function invokeFunc(time) {
  441. var args = lastArgs, thisArg = lastThis;
  442. lastArgs = lastThis = void 0;
  443. lastInvokeTime = time;
  444. result = func.apply(thisArg, args);
  445. return result;
  446. }
  447. function leadingEdge(time) {
  448. lastInvokeTime = time;
  449. timerId = setTimeout(timerExpired, wait);
  450. return leading ? invokeFunc(time) : result;
  451. }
  452. function remainingWait(time) {
  453. var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
  454. return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
  455. }
  456. function shouldInvoke(time) {
  457. var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
  458. return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
  459. }
  460. function timerExpired() {
  461. var time = now$1();
  462. if (shouldInvoke(time)) {
  463. return trailingEdge(time);
  464. }
  465. timerId = setTimeout(timerExpired, remainingWait(time));
  466. }
  467. function trailingEdge(time) {
  468. timerId = void 0;
  469. if (trailing && lastArgs) {
  470. return invokeFunc(time);
  471. }
  472. lastArgs = lastThis = void 0;
  473. return result;
  474. }
  475. function cancel() {
  476. if (timerId !== void 0) {
  477. clearTimeout(timerId);
  478. }
  479. lastInvokeTime = 0;
  480. lastArgs = lastCallTime = lastThis = timerId = void 0;
  481. }
  482. function flush() {
  483. return timerId === void 0 ? result : trailingEdge(now$1());
  484. }
  485. function debounced() {
  486. var time = now$1(), isInvoking = shouldInvoke(time);
  487. lastArgs = arguments;
  488. lastThis = this;
  489. lastCallTime = time;
  490. if (isInvoking) {
  491. if (timerId === void 0) {
  492. return leadingEdge(lastCallTime);
  493. }
  494. if (maxing) {
  495. clearTimeout(timerId);
  496. timerId = setTimeout(timerExpired, wait);
  497. return invokeFunc(lastCallTime);
  498. }
  499. }
  500. if (timerId === void 0) {
  501. timerId = setTimeout(timerExpired, wait);
  502. }
  503. return result;
  504. }
  505. debounced.cancel = cancel;
  506. debounced.flush = flush;
  507. return debounced;
  508. }
  509. var render = function() {
  510. var _vm = this;
  511. var _h = _vm.$createElement;
  512. var _c = _vm._self._c || _h;
  513. return _c("div", [_vm._t("default", null, { "images": _vm.images, "options": _vm.options })], 2);
  514. };
  515. var staticRenderFns = [];
  516. function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
  517. var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
  518. if (render2) {
  519. options.render = render2;
  520. options.staticRenderFns = staticRenderFns2;
  521. options._compiled = true;
  522. }
  523. if (functionalTemplate) {
  524. options.functional = true;
  525. }
  526. if (scopeId) {
  527. options._scopeId = "data-v-" + scopeId;
  528. }
  529. var hook;
  530. if (moduleIdentifier) {
  531. hook = function(context) {
  532. context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
  533. if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
  534. context = __VUE_SSR_CONTEXT__;
  535. }
  536. if (injectStyles) {
  537. injectStyles.call(this, context);
  538. }
  539. if (context && context._registeredComponents) {
  540. context._registeredComponents.add(moduleIdentifier);
  541. }
  542. };
  543. options._ssrRegister = hook;
  544. } else if (injectStyles) {
  545. hook = shadowMode ? function() {
  546. injectStyles.call(
  547. this,
  548. (options.functional ? this.parent : this).$root.$options.shadowRoot
  549. );
  550. } : injectStyles;
  551. }
  552. if (hook) {
  553. if (options.functional) {
  554. options._injectStyles = hook;
  555. var originalRender = options.render;
  556. options.render = function renderWithStyleInjection(h, context) {
  557. hook.call(context);
  558. return originalRender(h, context);
  559. };
  560. } else {
  561. var existing = options.beforeCreate;
  562. options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
  563. }
  564. }
  565. return {
  566. exports: scriptExports,
  567. options
  568. };
  569. }
  570. const __vue2_script = {
  571. props: {
  572. images: {
  573. type: Array
  574. },
  575. rebuild: {
  576. type: Boolean,
  577. default: false
  578. },
  579. trigger: {},
  580. options: {
  581. type: Object
  582. }
  583. },
  584. data() {
  585. return {};
  586. },
  587. computed: {},
  588. watch: {
  589. images() {
  590. this.$nextTick(() => {
  591. this.onChange();
  592. });
  593. },
  594. trigger: {
  595. handler() {
  596. this.$nextTick(() => {
  597. this.onChange();
  598. });
  599. },
  600. deep: true
  601. },
  602. options: {
  603. handler() {
  604. this.$nextTick(() => {
  605. this.rebuildViewer();
  606. });
  607. },
  608. deep: true
  609. }
  610. },
  611. mounted() {
  612. this.createViewer();
  613. },
  614. unmounted() {
  615. this.destroyViewer();
  616. },
  617. methods: {
  618. onChange() {
  619. if (this.rebuild) {
  620. this.rebuildViewer();
  621. } else {
  622. this.updateViewer();
  623. }
  624. },
  625. rebuildViewer() {
  626. this.destroyViewer();
  627. this.createViewer();
  628. },
  629. updateViewer() {
  630. if (this.$viewer) {
  631. this.$viewer.update();
  632. this.$emit("inited", this.$viewer);
  633. } else {
  634. this.createViewer();
  635. }
  636. },
  637. destroyViewer() {
  638. this.$viewer && this.$viewer.destroy();
  639. },
  640. createViewer() {
  641. this.$viewer = new Viewer(this.$el, this.options);
  642. this.$emit("inited", this.$viewer);
  643. }
  644. }
  645. };
  646. const __cssModules = {};
  647. var __component__ = /* @__PURE__ */ normalizeComponent(
  648. __vue2_script,
  649. render,
  650. staticRenderFns,
  651. false,
  652. __vue2_injectStyles,
  653. null,
  654. null,
  655. null
  656. );
  657. function __vue2_injectStyles(context) {
  658. for (let o in __cssModules) {
  659. this[o] = __cssModules[o];
  660. }
  661. }
  662. var component = /* @__PURE__ */ function() {
  663. return __component__.exports;
  664. }();
  665. const directive = ({ name = "viewer", debug = false } = {}) => {
  666. function createViewer(el, options, rebuild = false, observer = false) {
  667. Vue.nextTick(() => {
  668. if (observer && !imageDiff(el))
  669. return;
  670. if (rebuild || !el[`$${name}`]) {
  671. destroyViewer(el);
  672. el[`$${name}`] = new Viewer(el, options);
  673. log("Viewer created");
  674. } else {
  675. el[`$${name}`].update();
  676. log("Viewer updated");
  677. }
  678. });
  679. }
  680. function imageDiff(el) {
  681. const imageContent = el.innerHTML.match(/<img([\w\W]+?)[\\/]?>/g);
  682. const viewerImageText = imageContent ? imageContent.join("") : void 0;
  683. if (el.__viewerImageDiffCache === viewerImageText) {
  684. log("Element change detected, but image(s) has not changed");
  685. return false;
  686. } else {
  687. log("Image change detected");
  688. el.__viewerImageDiffCache = viewerImageText;
  689. return true;
  690. }
  691. }
  692. function createObserver(el, options, debouncedCreateViewer, rebuild) {
  693. destroyObserver(el);
  694. const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  695. if (!MutationObserver) {
  696. log("Observer not supported");
  697. return;
  698. }
  699. const observer = new MutationObserver((mutations) => {
  700. mutations.forEach((mutation) => {
  701. log(`Viewer mutation:${mutation.type}`);
  702. debouncedCreateViewer(el, options, rebuild, true);
  703. });
  704. });
  705. const config = { attributes: true, childList: true, characterData: true, subtree: true };
  706. observer.observe(el, config);
  707. el.__viewerMutationObserver = observer;
  708. log("Observer created");
  709. }
  710. function createWatcher(el, { expression }, vnode, debouncedCreateViewer) {
  711. const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
  712. if (!expression || !simplePathRE.test(expression)) {
  713. log("Only simple dot-delimited paths can create watcher");
  714. return;
  715. }
  716. el.__viewerUnwatch = vnode.context.$watch(expression, (newVal, oldVal) => {
  717. log("Change detected by watcher: ", expression);
  718. debouncedCreateViewer(el, newVal, true);
  719. }, {
  720. deep: true
  721. });
  722. log("Watcher created, expression: ", expression);
  723. }
  724. function destroyViewer(el) {
  725. if (!el[`$${name}`]) {
  726. return;
  727. }
  728. el[`$${name}`].destroy();
  729. delete el[`$${name}`];
  730. log("Viewer destroyed");
  731. }
  732. function destroyObserver(el) {
  733. if (!el.__viewerMutationObserver) {
  734. return;
  735. }
  736. el.__viewerMutationObserver.disconnect();
  737. delete el.__viewerMutationObserver;
  738. log("Observer destroyed");
  739. }
  740. function destroyWatcher(el) {
  741. if (!el.__viewerUnwatch) {
  742. return;
  743. }
  744. el.__viewerUnwatch();
  745. delete el.__viewerUnwatch;
  746. log("Watcher destroyed");
  747. }
  748. function log() {
  749. debug && console.log(...arguments);
  750. }
  751. const directive2 = {
  752. bind(el, binding, vnode) {
  753. log("Viewer bind");
  754. const debouncedCreateViewer = debounce(createViewer, 50);
  755. debouncedCreateViewer(el, binding.value);
  756. createWatcher(el, binding, vnode, debouncedCreateViewer);
  757. if (!binding.modifiers.static) {
  758. createObserver(el, binding.value, debouncedCreateViewer, binding.modifiers.rebuild);
  759. }
  760. },
  761. unbind(el, binding) {
  762. log("Viewer unbind");
  763. destroyObserver(el);
  764. destroyWatcher(el);
  765. destroyViewer(el);
  766. }
  767. };
  768. return directive2;
  769. };
  770. const api = ({ images = [], options = {} } = {}) => {
  771. options = assign$1(options, {
  772. inline: false
  773. });
  774. const ViewerToken = Vue.extend({
  775. render(h) {
  776. return h(
  777. "div",
  778. {
  779. style: {
  780. display: "none"
  781. },
  782. class: ["__viewer-token"]
  783. },
  784. images.map((attr) => {
  785. return h(
  786. "img",
  787. {
  788. attrs: typeof attr === "string" ? { src: attr } : attr
  789. }
  790. );
  791. })
  792. );
  793. }
  794. });
  795. const token = new ViewerToken();
  796. token.$mount();
  797. document.body.appendChild(token.$el);
  798. const $viewer = new Viewer(token.$el, options);
  799. const $destroy = $viewer.destroy.bind($viewer);
  800. $viewer.destroy = function() {
  801. $destroy();
  802. token.$destroy();
  803. document.body.removeChild(token.$el);
  804. return $viewer;
  805. };
  806. $viewer.show();
  807. token.$el.addEventListener("hidden", function() {
  808. if (this.viewer === $viewer) {
  809. $viewer.destroy();
  810. }
  811. });
  812. return $viewer;
  813. };
  814. var index = {
  815. install(Vue2, { name = "viewer", debug = false, defaultOptions } = {}) {
  816. Viewer.setDefaults(defaultOptions);
  817. Vue2.component(name, assign$1(component, { name }));
  818. Vue2.directive(name, directive({ name, debug }));
  819. Vue2.prototype[`$${name}Api`] = api;
  820. },
  821. setDefaults(defaultOptions) {
  822. Viewer.setDefaults(defaultOptions);
  823. }
  824. };
  825. export { api, component, index as default, directive };