123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- !(function () {
- function o(e) {
- return 'IMG' === e.tagName
- }
- function E(e) {
- return e && 1 === e.nodeType
- }
- function c(e) {
- return '.svg' === (e.currentSrc || e.src).substr(-4).toLowerCase()
- }
- function m(e) {
- try {
- return Array.isArray(e)
- ? e.filter(o)
- : ((t = e), NodeList.prototype.isPrototypeOf(t) ? [].slice.call(e).filter(o) : E(e) ? [e].filter(o) : 'string' == typeof e ? [].slice.call(document.querySelectorAll(e)).filter(o) : [])
- } catch (e) {
- throw new TypeError('The provided selector is invalid.\nExpects a CSS selector, a Node element, a NodeList or an array.\nSee: https://github.com/francoischalifour/medium-zoom')
- }
- var t
- }
- function w(e, t) {
- var o = l({ bubbles: !1, cancelable: !1, detail: void 0 }, t)
- return 'function' == typeof window.CustomEvent ? new CustomEvent(e, o) : ((t = document.createEvent('CustomEvent')).initCustomEvent(e, o.bubbles, o.cancelable, o.detail), t)
- }
- function a(e, t) {
- function o(e) {
- function u() {
- var e = { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight, left: 0, top: 0, right: 0, bottom: 0 },
- t = void 0,
- o = void 0
- v.container &&
- (v.container instanceof Object
- ? ((t = (e = l({}, e, v.container)).width - e.left - e.right - 2 * v.margin), (o = e.height - e.top - e.bottom - 2 * v.margin))
- : ((d = (i = (E(v.container) ? v.container : document.querySelector(v.container)).getBoundingClientRect()).width),
- (a = i.height),
- (r = i.left),
- (m = i.top),
- (e = l({}, e, { width: d, height: a, left: r, top: m })))),
- (t = t || e.width - 2 * v.margin),
- (o = o || e.height - 2 * v.margin)
- var n = z.zoomedHd || z.original,
- i = (!c(n) && n.naturalWidth) || t,
- d = (!c(n) && n.naturalHeight) || o,
- r = (a = n.getBoundingClientRect()).top,
- m = a.left,
- n = a.width,
- a = a.height,
- i = Math.min(i, t) / n,
- d = Math.min(d, o) / a,
- d = 'scale(' + (d = Math.min(i, d)) + ') translate3d(' + ((t - n) / 2 - m + v.margin + e.left) / d + 'px, ' + ((o - a) / 2 - r + v.margin + e.top) / d + 'px, 0)'
- ;(z.zoomed.style.transform = d), z.zoomedHd && (z.zoomedHd.style.transform = d)
- }
- var s = (0 < arguments.length && void 0 !== e ? e : {}).target
- return new i(function (e) {
- if (s && -1 === f.indexOf(s)) e(b)
- else {
- function t() {
- ;(g = !1), z.zoomed.removeEventListener('transitionend', t), z.original.dispatchEvent(w('medium-zoom:opened', { detail: { zoom: b } })), e(b)
- }
- var o, n, i, d, r, m, a, c, l
- if (z.zoomed) e(b)
- else {
- if (s) z.original = s
- else {
- if (!(0 < f.length)) return void e(b)
- z.original = f[0]
- }
- z.original.dispatchEvent(w('medium-zoom:open', { detail: { zoom: b } })),
- (h = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),
- (g = !0),
- (z.zoomed =
- ((o = z.original),
- (n = o.getBoundingClientRect()),
- (i = n.top),
- (d = n.left),
- (r = n.width),
- (m = n.height),
- (a = o.cloneNode()),
- (n = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),
- (o = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0),
- a.removeAttribute('id'),
- (a.style.position = 'absolute'),
- (a.style.top = i + n + 'px'),
- (a.style.left = d + o + 'px'),
- (a.style.width = r + 'px'),
- (a.style.height = m + 'px'),
- (a.style.transform = ''),
- a)),
- document.body.appendChild(y),
- v.template &&
- ((a = E(v.template) ? v.template : document.querySelector(v.template)),
- (z.template = document.createElement('div')),
- z.template.appendChild(a.content.cloneNode(!0)),
- document.body.appendChild(z.template)),
- document.body.appendChild(z.zoomed),
- window.requestAnimationFrame(function () {
- document.body.classList.add('medium-zoom--opened')
- }),
- z.original.classList.add('medium-zoom-image--hidden'),
- z.zoomed.classList.add('medium-zoom-image--opened'),
- z.zoomed.addEventListener('click', p),
- z.zoomed.addEventListener('transitionend', t),
- z.original.getAttribute('data-zoom-src')
- ? ((z.zoomedHd = z.zoomed.cloneNode()),
- z.zoomedHd.removeAttribute('srcset'),
- z.zoomedHd.removeAttribute('sizes'),
- (z.zoomedHd.src = z.zoomed.getAttribute('data-zoom-src')),
- (z.zoomedHd.onerror = function () {
- clearInterval(c), console.warn('Unable to reach the zoom image target ' + z.zoomedHd.src), (z.zoomedHd = null), u()
- }),
- (c = setInterval(function () {
- z.zoomedHd.complete &&
- (clearInterval(c), z.zoomedHd.classList.add('medium-zoom-image--opened'), z.zoomedHd.addEventListener('click', p), document.body.appendChild(z.zoomedHd), u())
- }, 10)))
- : z.original.hasAttribute('srcset')
- ? ((z.zoomedHd = z.zoomed.cloneNode()),
- z.zoomedHd.removeAttribute('sizes'),
- z.zoomedHd.removeAttribute('loading'),
- (l = z.zoomedHd.addEventListener('load', function () {
- z.zoomedHd.removeEventListener('load', l),
- z.zoomedHd.classList.add('medium-zoom-image--opened'),
- z.zoomedHd.addEventListener('click', p),
- document.body.appendChild(z.zoomedHd),
- u()
- })))
- : u()
- }
- }
- })
- }
- var n = 1 < arguments.length && void 0 !== t ? t : {},
- i =
- window.Promise ||
- function (e) {
- function t() {}
- e(t, t)
- },
- t = function () {
- for (var e = arguments, t = arguments.length, o = Array(t), n = 0; n < t; n++) o[n] = e[n]
- var i = o.reduce(function (e, t) {
- return [].concat(e, m(t))
- }, [])
- return (
- i
- .filter(function (e) {
- return -1 === f.indexOf(e)
- })
- .forEach(function (e) {
- f.push(e), e.classList.add('medium-zoom-image')
- }),
- r.forEach(function (e) {
- var t = e.type,
- o = e.listener,
- n = e.options
- i.forEach(function (e) {
- e.addEventListener(t, o, n)
- })
- }),
- b
- )
- },
- p = function () {
- return new i(function (t) {
- var e
- !g && z.original
- ? ((e = function e() {
- z.original.classList.remove('medium-zoom-image--hidden'),
- document.body.removeChild(z.zoomed),
- z.zoomedHd && document.body.removeChild(z.zoomedHd),
- document.body.removeChild(y),
- z.zoomed.classList.remove('medium-zoom-image--opened'),
- z.template && document.body.removeChild(z.template),
- (g = !1),
- z.zoomed.removeEventListener('transitionend', e),
- z.original.dispatchEvent(w('medium-zoom:closed', { detail: { zoom: b } })),
- (z.original = null),
- (z.zoomed = null),
- (z.zoomedHd = null),
- (z.template = null),
- t(b)
- }),
- (g = !0),
- document.body.classList.remove('medium-zoom--opened'),
- (z.zoomed.style.transform = ''),
- z.zoomedHd && (z.zoomedHd.style.transform = ''),
- z.template && ((z.template.style.transition = 'opacity 150ms'), (z.template.style.opacity = 0)),
- z.original.dispatchEvent(w('medium-zoom:close', { detail: { zoom: b } })),
- z.zoomed.addEventListener('transitionend', e))
- : t(b)
- })
- },
- d = function (e) {
- e = (0 < arguments.length && void 0 !== e ? e : {}).target
- return z.original ? p() : o({ target: e })
- },
- f = [],
- r = [],
- g = !1,
- h = 0,
- v = n,
- z = { original: null, zoomed: null, zoomedHd: null, template: null }
- '[object Object]' === Object.prototype.toString.call(e) ? (v = e) : (!e && 'string' != typeof e) || t(e),
- (v = l({ margin: 0, background: '#fff', scrollOffset: 40, container: null, template: null }, v))
- var y = ((n = v.background), (e = document.createElement('div')).classList.add('medium-zoom-overlay'), (e.style.background = n), e)
- document.addEventListener('click', function (e) {
- e = e.target
- e !== y ? -1 !== f.indexOf(e) && d({ target: e }) : p()
- }),
- document.addEventListener('keyup', function (e) {
- e = e.key || e.keyCode
- ;('Escape' !== e && 'Esc' !== e && 27 !== e) || p()
- }),
- document.addEventListener('scroll', function () {
- var e
- !g && z.original && ((e = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0), Math.abs(h - e) > v.scrollOffset && setTimeout(p, 150))
- }),
- window.addEventListener('resize', p)
- var b = {
- open: o,
- close: p,
- toggle: d,
- update: function (e) {
- var t = 0 < arguments.length && void 0 !== e ? e : {},
- e = t
- return (
- t.background && (y.style.background = t.background),
- t.container && t.container instanceof Object && (e.container = l({}, v.container, t.container)),
- t.template && ((t = E(t.template) ? t.template : document.querySelector(t.template)), (e.template = t)),
- (v = l({}, v, e)),
- f.forEach(function (e) {
- e.dispatchEvent(w('medium-zoom:update', { detail: { zoom: b } }))
- }),
- b
- )
- },
- clone: function (e) {
- return a(l({}, v, 0 < arguments.length && void 0 !== e ? e : {}))
- },
- attach: t,
- detach: function () {
- for (var e = arguments, t = arguments.length, o = Array(t), n = 0; n < t; n++) o[n] = e[n]
- z.zoomed && p()
- var i =
- 0 < o.length
- ? o.reduce(function (e, t) {
- return [].concat(e, m(t))
- }, [])
- : f
- return (
- i.forEach(function (e) {
- e.classList.remove('medium-zoom-image'), e.dispatchEvent(w('medium-zoom:detach', { detail: { zoom: b } }))
- }),
- (f = f.filter(function (e) {
- return -1 === i.indexOf(e)
- })),
- b
- )
- },
- on: function (t, o, e) {
- var n = 2 < arguments.length && void 0 !== e ? e : {}
- return (
- f.forEach(function (e) {
- e.addEventListener('medium-zoom:' + t, o, n)
- }),
- r.push({ type: 'medium-zoom:' + t, listener: o, options: n }),
- b
- )
- },
- off: function (t, o, e) {
- var n = 2 < arguments.length && void 0 !== e ? e : {}
- return (
- f.forEach(function (e) {
- e.removeEventListener('medium-zoom:' + t, o, n)
- }),
- (r = r.filter(function (e) {
- return !(e.type === 'medium-zoom:' + t && e.listener.toString() === o.toString())
- })),
- b
- )
- },
- getOptions: function () {
- return v
- },
- getImages: function () {
- return f
- },
- getZoomedImage: function () {
- return z.original
- },
- }
- return b
- }
- var l =
- Object.assign ||
- function (e) {
- for (var t = arguments, o = 1; o < arguments.length; o++) {
- var n,
- i = t[o]
- for (n in i) Object.prototype.hasOwnProperty.call(i, n) && (e[n] = i[n])
- }
- return e
- }
- !(function (e, t) {
- void 0 === t && (t = {})
- var o,
- n = t.insertAt
- e &&
- 'undefined' != typeof document &&
- ((o = document.head || document.getElementsByTagName('head')[0]),
- ((t = document.createElement('style')).type = 'text/css'),
- 'top' === n && o.firstChild ? o.insertBefore(t, o.firstChild) : o.appendChild(t),
- t.styleSheet ? (t.styleSheet.cssText = e) : t.appendChild(document.createTextNode(e)))
- })(
- '.medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}'
- )
- var n = Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.msMatchesSelector
- $docsify.plugins = [].concat(function (e) {
- var o
- e.doneEach(function (e) {
- var t = (t = Array.apply(null, document.querySelectorAll('.markdown-section img:not(.emoji):not([data-no-zoom])'))).filter(function (e) {
- return !1 === n.call(e, 'a img')
- })
- o && o.detach(), (o = a(t))
- })
- }, $docsify.plugins)
- })()
|