@netless/app-slide 0.3.0-canary.6 → 0.3.0-canary.7
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/dist/SlideViewer.d.ts +14 -0
- package/dist/index.d.ts +4 -1
- package/dist/main.iife.js +2 -2
- package/dist/main.iife.js.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/main.mjs +358 -347
- package/dist/main.mjs.map +1 -1
- package/dist/typings.d.ts +7 -2
- package/package.json +3 -3
- package/src/SlideViewer.ts +16 -10
- package/src/index.ts +22 -8
- package/src/typings.ts +19 -2
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js","../../../node_modules/.pnpm/is-arrayish@0.3.2/node_modules/is-arrayish/index.js","../../../node_modules/.pnpm/simple-swizzle@0.2.2/node_modules/simple-swizzle/index.js","../../../node_modules/.pnpm/color-string@1.9.1/node_modules/color-string/index.js","../../../node_modules/.pnpm/side-effect-manager@1.1.1/node_modules/side-effect-manager/dist/side-effect-manager.es.js","../../../node_modules/.pnpm/vanilla-lazyload@17.8.3/node_modules/vanilla-lazyload/dist/lazyload.esm.js","../src/constants.ts","../src/utils.ts","../src/icons/sidebar.ts","../src/icons/arrow-left.ts","../src/icons/play.ts","../src/icons/pause.ts","../src/icons/arrow-right.ts","../src/SlideViewer.ts","../src/Refrigerator.ts","../src/index.ts"],"sourcesContent":["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const s=\"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",e=s.length,t=Array(20),i=()=>{for(let i=0;i<20;i++)t[i]=s.charAt(Math.random()*e);return t.join(\"\")};function r(s){try{return s()}catch(e){console.error(e)}}class n{constructor(){this.disposers=new Map}addDisposer(s,e=this.genUID()){return this.flush(e),this.disposers.set(e,Array.isArray(s)?()=>s.forEach(r):s),e}add(s,e=this.genUID()){const t=s();return t?this.addDisposer(t,e):e}addEventListener(s,e,t,i,r=this.genUID()){return s.addEventListener(e,t,i),this.addDisposer((()=>s.removeEventListener(e,t,i)),r),r}setTimeout(s,e,t=this.genUID()){const i=window.setTimeout((()=>{this.remove(t),s()}),e);return this.addDisposer((()=>window.clearTimeout(i)),t)}setInterval(s,e,t=this.genUID()){const i=window.setInterval(s,e);return this.addDisposer((()=>window.clearInterval(i)),t)}remove(s){const e=this.disposers.get(s);return this.disposers.delete(s),e}flush(s){const e=this.remove(s);if(e)try{e()}catch(t){console.error(t)}}flushAll(){this.disposers.forEach(r),this.disposers.clear()}genUID(){let s;do{s=i()}while(this.disposers.has(s));return s}}class h{constructor(){this.finished=Promise.resolve(),this.disposers=new Map,this._nextTask=new Map,this._isRunning=new Set}add(s,e=this.genUID()){return this._isRunning.has(e)?this._nextTask.set(e,(()=>this._add(s,e))):this._add(s,e),e}async _add(s,e){this._startTask(e);const t=this.remove(e);if(t)try{await t()}catch(n){console.error(n)}try{const t=await s();t&&this.disposers.set(e,Array.isArray(t)?async()=>Promise.all(t.map(r)):t)}catch(n){console.error(n)}this._endTask(e);const i=this._nextTask.get(e);i&&(this._nextTask.delete(e),i())}addDisposer(s,e=this.genUID()){return this.add((()=>s),e)}remove(s){const e=this.disposers.get(s);return this.disposers.delete(s),e}flush(s){this._isRunning.has(s)?this._nextTask.set(s,(()=>this._flush(s))):this._flush(s)}async _flush(s){const e=this.remove(s);if(e){this._startTask(s);try{await e()}catch(i){console.error(i)}this._endTask(s)}const t=this._nextTask.get(s);t&&(this._nextTask.delete(s),t())}flushAll(){this.disposers.forEach(((s,e)=>this.flush(e)))}genUID(){let s;do{s=i()}while(this.disposers.has(s));return s}_startTask(s){this._isRunning.add(s),this._resolveFinished||(this.finished=new Promise((s=>{this._resolveFinished=s})))}_endTask(s){this._isRunning.delete(s),this._resolveFinished&&this._isRunning.size<=0&&this._nextTask.size<=0&&(this._resolveFinished(),this._resolveFinished=void 0)}}export{h as AsyncSideEffectManager,n as SideEffectManager,i as genUID};\n//# sourceMappingURL=side-effect-manager.es.js.map\n","const runningOnBrowser = typeof window !== \"undefined\";\n\nconst isBot =\n (runningOnBrowser && !(\"onscroll\" in window)) ||\n (typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));\n\nconst supportsIntersectionObserver = runningOnBrowser && \"IntersectionObserver\" in window;\n\nconst supportsClassList = runningOnBrowser && \"classList\" in document.createElement(\"p\");\n\nconst isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\n\nconst defaultSettings = {\n elements_selector: \".lazy\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_bg_set: \"bg-set\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false,\n restore_on_error: false,\n};\n\nconst getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\n\n/* Creates instance and notifies it through the window element */\nconst createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n // Works in modern browsers\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n // Works in Internet Explorer (all versions)\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.dispatchEvent(event);\n};\n\n/* Auto initialization of one or more instances of lazyload, depending on the \n options passed in (plain object or an array) */\nconst autoInitialize = (classObj, options) => {\n if (!options) {\n return;\n }\n if (!options.length) {\n // Plain object\n createInstance(classObj, options);\n } else {\n // Array of objects\n for (let i = 0, optionsItem; (optionsItem = options[i]); i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\n\nconst SRC = \"src\";\nconst SRCSET = \"srcset\";\nconst SIZES = \"sizes\";\nconst POSTER = \"poster\";\nconst ORIGINALS = \"llOriginalAttrs\";\nconst DATA = \"data\";\n\nconst statusLoading = \"loading\";\nconst statusLoaded = \"loaded\";\nconst statusApplied = \"applied\";\nconst statusEntered = \"entered\";\nconst statusError = \"error\";\nconst statusNative = \"native\";\n\nconst dataPrefix = \"data-\";\nconst statusDataName = \"ll-status\";\n\nconst getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\n\nconst setData = (element, attribute, value) => {\n var attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst getStatus = (element) => getData(element, statusDataName);\nconst setStatus = (element, status) => setData(element, statusDataName, status);\nconst resetStatus = (element) => setStatus(element, null);\n\nconst hasEmptyStatus = (element) => getStatus(element) === null;\nconst hasStatusLoading = (element) => getStatus(element) === statusLoading;\nconst hasStatusError = (element) => getStatus(element) === statusError;\nconst hasStatusNative = (element) => getStatus(element) === statusNative;\n\nconst statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nconst hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\n\nconst safeCallback = (callback, arg1, arg2, arg3) => {\n\tif (!callback) {\n\t\treturn;\n\t}\n\n\tif (arg3 !== undefined) {\n\t\tcallback(arg1, arg2, arg3);\n\t\treturn;\n\t}\n\tif (arg2 !== undefined) {\n\t\tcallback(arg1, arg2);\n\t\treturn;\n\t}\n\tcallback(arg1);\n};\n\nconst addClass = (element, className) => {\n\tif (supportsClassList) {\n\t\telement.classList.add(className);\n\t\treturn;\n\t}\n\telement.className += (element.className ? \" \" : \"\") + className;\n};\n\nconst removeClass = (element, className) => {\n\tif (supportsClassList) {\n\t\telement.classList.remove(className);\n\t\treturn;\n\t}\n\telement.className = element.className.\n\t\treplace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").\n\t\treplace(/^\\s+/, \"\").\n\t\treplace(/\\s+$/, \"\");\n};\n\nconst addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\n\nconst deleteTempImage = (element) => {\n delete element.llTempImage;\n};\n\nconst getTempImage = (element) => element.llTempImage;\n\nconst unobserve = (element, instance) => {\n if (!instance) return;\n const observer = instance._observer;\n if (!observer) return;\n observer.unobserve(element);\n};\n\nconst resetObserver = (observer) => {\n observer.disconnect();\n};\n\nconst unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered) unobserve(element, instance);\n};\n\nconst updateLoadingCount = (instance, delta) => {\n if (!instance) return;\n instance.loadingCount += delta;\n};\n\nconst decreaseToLoadCount = (instance) => {\n if (!instance) return;\n instance.toLoadCount -= 1;\n};\n\nconst setToLoadCount = (instance, value) => {\n if (!instance) return;\n instance.toLoadCount = value;\n};\n\nconst isSomethingLoading = (instance) => instance.loadingCount > 0;\n\nconst haveElementsToLoad = (instance) => instance.toLoadCount > 0;\n\nconst getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let i = 0, childTag; (childTag = parentTag.children[i]); i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n};\n\nconst forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\n\nconst forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\n\nconst attrsSrc = [SRC];\nconst attrsSrcPoster = [SRC, POSTER];\nconst attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nconst attrsData = [DATA];\n\nconst hasOriginalAttrs = (element) => !!element[ORIGINALS];\nconst getOriginalAttrs = (element) => element[ORIGINALS];\nconst deleteOriginalAttrs = (element) => delete element[ORIGINALS];\n\n// ## SAVE ##\n\nconst setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\n\nconst saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\n\n// ## RESTORE ##\n\nconst setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\n\nconst restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\n\nconst manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n // Instance is not provided when loading is called from static class\n if (!instance) return;\n if (settings.unobserve_completed) {\n // Unobserve now because we can't do it on load\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\n\nconst manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n // Instance is not provided when loading is called from static class\n if (!instance) return;\n updateLoadingCount(instance, +1);\n safeCallback(settings.callback_loading, element, instance);\n};\n\nconst setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst setImageAttributes = (element, settings) => {\n setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));\n setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));\n setAttributeIfValue(element, SRC, getData(element, settings.data_src));\n};\n\nconst setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\n\nconst setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\n\nconst setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\n\nconst setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\n};\n\nconst setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\n\n// NOTE: THE TEMP IMAGE TRICK CANNOT BE DONE WITH data-multi-bg\n// BECAUSE INSIDE ITS VALUES MUST BE WRAPPED WITH URL() AND ONE OF THEM\n// COULD BE A GRADIENT BACKGROUND IMAGE\nconst setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\n\nconst setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n // Temporary fix for Chromeium with the -webkit- prefix\n if (element.style.backgroundImage === '') {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\n\nconst setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\n};\n\nconst setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\n\nconst setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\n\nconst elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\", \"OBJECT\"];\nconst hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\n\nconst checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\n\nconst addEventListener = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\n\nconst removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\n\nconst hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\n\nconst addEventListeners = (element, loadHandler, errorHandler) => {\n if (!hasEventListeners(element)) element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener(element, loadEventName, loadHandler);\n addEventListener(element, \"error\", errorHandler);\n};\n\nconst removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\n\nconst doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\n\nconst loadHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative) checkFinish(settings, instance);\n};\n\nconst errorHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (settings.restore_on_error) restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\n if (!goingNative) checkFinish(settings, instance);\n};\n\nconst addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n // This happens when loading is retried twice\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\n\nconst loadBackground = (element, settings, instance) => {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n setImgsetBackground(element, settings, instance);\n};\n\nconst loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\n\nconst load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\n\nconst loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\n\nconst removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\n\nconst resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\n\nconst restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\n\nconst restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\n\nconst restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\n\nconst restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\n\nconst restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\n};\n\nconst restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\n\nconst resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n};\n\nconst restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\n\nconst cancelLoading = (element, entry, settings, instance) => {\n if (!settings.cancel_on_exit) return;\n if (!hasStatusLoading(element)) return;\n if (element.tagName !== \"IMG\") return; //Works only on images\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n};\n\nconst onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element); /* Save status \n before setting it, to prevent loading it again. Fixes #526. */\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad) return;\n load(element, settings, instance);\n};\n\nconst onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\n\nconst tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\n\nconst shouldUseNative = (settings) =>\n settings.use_native && \"loading\" in HTMLImageElement.prototype;\n\nconst loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\n\nconst isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\n\nconst getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\n\nconst intersectionHandler = (entries, settings, instance) => {\n entries.forEach((entry) =>\n isIntersecting(entry)\n ? onEnter(entry.target, entry, settings, instance)\n : onExit(entry.target, entry, settings, instance)\n );\n};\n\nconst observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\n\nconst updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\n\nconst setObserver = (settings, instance) => {\n if (!supportsIntersectionObserver || shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\n\nconst toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\n\nconst queryElements = (settings) =>\n settings.container.querySelectorAll(settings.elements_selector);\n\nconst excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\n\nconst hasError = (element) => hasStatusError(element);\nconst filterErrorElements = (elements) => toArray(elements).filter(hasError);\n\nconst getElementsToLoad = (elements, settings) =>\n excludeManagedElements(elements || queryElements(settings));\n\nconst retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\n\nconst setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\n\nconst resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\n};\n\nconst LazyLoad = function (customSettings, elements) {\n const settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n};\n\nLazyLoad.prototype = {\n update: function (givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n\n if (isBot || !supportsIntersectionObserver) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n\n updateObserver(this._observer, elementsToLoad);\n },\n\n destroy: function () {\n // Observer\n if (this._observer) {\n this._observer.disconnect();\n }\n // Clean handlers\n resetOnlineCheck(this);\n // Clean custom attributes on elements\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n // Delete all internal props\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n\n loadAll: function (elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\n\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\n\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\n\n// Automatic instances creation if required (useful for async script loading)\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\nexport { LazyLoad as default };\n","export const namespace = \"netless-app-slide\";\n\nexport const DefaultUrl = \"https://convertcdn.netless.link/dynamicConvert\";\n","export function noop() {\n return;\n}\n","export function sidebarSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function arrowLeftSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function playSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-play`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M418.158 257.419L174.663 413.33c-6.017 3.919-15.708 3.772-21.291-.29-2.791-2.018-4.295-4.483-4.295-7.084V94.109c0-5.65 6.883-10.289 15.271-10.289 4.298 0 8.391 1.307 11.181 3.332l242.629 155.484c6.016 3.917 6.451 10.292.649 14.491-.216.154-.432.154-.649.292zM170.621 391.288l223.116-141.301L170.71 107.753l-.089 283.535z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function pauseSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-pause`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M312.491 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261zM165.257 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function arrowRightSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","import type { ISlideConfig } from \"@netless/slide\";\n\nimport { Slide } from \"@netless/slide\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport LazyLoad from \"vanilla-lazyload\";\n\nimport { DefaultUrl, namespace } from \"./constants\";\nimport { noop } from \"./utils\";\nimport styles from \"./style.scss?inline\";\n\nimport { sidebarSVG } from \"./icons/sidebar\";\nimport { arrowLeftSVG } from \"./icons/arrow-left\";\nimport { playSVG } from \"./icons/play\";\nimport { pauseSVG } from \"./icons/pause\";\nimport { arrowRightSVG } from \"./icons/arrow-right\";\n\nfunction h<K extends keyof HTMLElementTagNameMap>(tag: K) {\n return document.createElement(tag);\n}\n\nfunction append(parent: HTMLElement, child: HTMLElement) {\n return parent.appendChild(child);\n}\n\nfunction wrap_class(name: string) {\n return `${namespace}-${name}`;\n}\n\nfunction set_class(el: HTMLElement, name: string) {\n el.className = wrap_class(name);\n}\n\nfunction trim_slash(s: string) {\n return s.endsWith(\"/\") ? s.slice(0, -1) : s;\n}\n\ninterface SlideAttributes {\n taskId: string;\n url?: string;\n}\n\ninterface PreviewPage {\n width: number;\n height: number;\n thumbnail: string;\n}\n\nasync function fetch_slide_info({ taskId, url }: SlideAttributes) {\n const prefix = make_prefix(taskId, url);\n const imgSrc = `${prefix}/preview/1.png`;\n const jsonUrl = `${prefix}/jsonOutput/slide-1.json`;\n\n interface PreviewInfo {\n width: number;\n height: number;\n }\n const p1 = new Promise<PreviewInfo | null>(resolve => {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => resolve(null);\n image.src = imgSrc;\n });\n\n interface SlideInfo {\n width: number;\n height: number;\n slideCount: number;\n }\n const p2: Promise<SlideInfo> = fetch(jsonUrl).then(r => r.json());\n\n return { preview: await p1, slide: await p2 };\n}\n\nfunction make_prefix(taskId: string, url?: string) {\n return `${trim_slash(url || DefaultUrl)}/${taskId}`;\n}\n\nfunction create_sidebar() {\n type NewPageIndexCallback = (newPageIndex: number) => void;\n let new_page_index_callback: NewPageIndexCallback = noop;\n const on_new_page_index = (callback: NewPageIndexCallback) => {\n new_page_index_callback = callback;\n };\n\n let destroyed = false;\n let readonly = false;\n let active = false;\n let pages: PreviewPage[] = [];\n let page_index = 0;\n\n const class_readonly = wrap_class(\"readonly\");\n const class_preview_active = wrap_class(\"preview-active\");\n\n const $content = h(\"div\");\n set_class($content, \"content\");\n\n const $previewMask = h(\"div\");\n set_class($previewMask, \"preview-mask\");\n $previewMask.onclick = function on_click_preview_mask(ev) {\n if (readonly) return;\n if (ev.target !== $previewMask) return;\n set_active(false);\n };\n append($content, $previewMask);\n\n const $preview = h(\"div\");\n set_class($preview, \"preview\");\n $preview.classList.add(wrap_class(\"tele-fancy-scrollbar\"));\n $preview.onclick = function on_click_preview(ev) {\n if (readonly) return;\n const page_index = (ev.target as HTMLElement).dataset?.pageIndex;\n if (page_index) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n new_page_index_callback(Number(page_index));\n set_active(false);\n }\n };\n append($content, $preview);\n\n const lazyload = new LazyLoad({\n container: $preview,\n elements_selector: `.${wrap_class(\"preview-page>img\")}`,\n });\n\n function set_readonly(readonly_: boolean) {\n if (readonly !== readonly_) {\n readonly = readonly_;\n $content.classList.toggle(class_readonly, readonly);\n }\n }\n\n function set_active(active_: boolean) {\n if (active !== active_) {\n active = active_;\n $content.classList.toggle(class_preview_active, active);\n }\n }\n\n function set_pages(pages_: PreviewPage[]) {\n if (pages !== pages_) {\n pages = pages_;\n\n const page_class = wrap_class(\"preview-page\");\n const page_name_class = wrap_class(\"preview-page-name\");\n\n pages.forEach((page, i) => {\n const pageIndex = String(i);\n\n const $page = h(\"a\");\n $page.className = page_class + \" \" + wrap_class(`preview-page-${i}`);\n $page.href = \"#\";\n $page.dataset.pageIndex = pageIndex;\n\n const $name = h(\"span\");\n $name.className = page_name_class;\n $name.textContent = String(i + 1);\n $name.dataset.pageIndex = pageIndex;\n\n const $img = h(\"img\");\n $img.width = page.width;\n $img.height = page.height;\n $img.src = page.thumbnail;\n $img.alt = `page-${i}`;\n $img.dataset.pageIndex = pageIndex;\n\n append($page, $img);\n append($page, $name);\n append($preview, $page);\n });\n\n if (!destroyed) {\n lazyload.update();\n }\n }\n }\n\n function set_page_index(page_index_: number, force = false) {\n if (force || page_index !== page_index_) {\n page_index = page_index_;\n const $page = $preview.querySelector<HTMLElement>(\n `.${wrap_class(`preview-page-${page_index}`)}`\n );\n if ($page) {\n $preview.scrollTo({ top: $page.offsetTop - 16 });\n }\n }\n }\n\n function destroy() {\n destroyed = true;\n lazyload.destroy();\n }\n\n function get_active() {\n return active;\n }\n\n return {\n $content,\n $preview,\n set_readonly,\n set_active,\n get_active,\n set_pages,\n on_new_page_index,\n set_page_index,\n destroy,\n };\n}\n\nfunction create_footer() {\n type NewPageIndexCallback = (newPageIndex: number) => void;\n let new_page_index_callback: NewPageIndexCallback = noop;\n const on_new_page_index = (callback: NewPageIndexCallback) => {\n new_page_index_callback = callback;\n };\n\n let toggle_preview_callback: () => void = noop;\n const on_toggle_preview = (callback: () => void) => {\n toggle_preview_callback = callback;\n };\n\n let play_callback: () => void = noop;\n const on_play = (callback: () => void) => {\n play_callback = callback;\n };\n\n let readonly = false;\n let sidebar = false;\n let page_index = 0;\n let page_count = 0;\n\n const $footer = h(\"div\");\n set_class($footer, \"footer\");\n\n const $btnSidebar = h(\"button\");\n set_class($btnSidebar, \"btn-sidebar\");\n $btnSidebar.classList.add(wrap_class(\"footer-btn\"));\n $btnSidebar.appendChild(sidebarSVG(namespace));\n $btnSidebar.onclick = function on_click_btn_sidebar() {\n if (readonly) return;\n toggle_preview_callback();\n };\n $btnSidebar.style.display = \"none\";\n $footer.appendChild($btnSidebar);\n\n const $pageJumps = h(\"div\");\n set_class($pageJumps, \"page-jumps\");\n\n const $btnPageBack = h(\"button\");\n set_class($btnPageBack, \"btn-page-back\");\n $btnPageBack.classList.add(wrap_class(\"footer-btn\"));\n $btnPageBack.appendChild(arrowLeftSVG(namespace));\n $btnPageBack.onclick = function on_click_btn_page_back() {\n if (readonly) return;\n new_page_index_callback(page_index - 1);\n };\n $pageJumps.appendChild($btnPageBack);\n\n const $btnPlay = h(\"button\");\n set_class($btnPlay, \"btn-page-play\");\n $btnPlay.classList.add(wrap_class(\"footer-btn\"));\n $btnPlay.appendChild(playSVG(namespace));\n $btnPlay.appendChild(pauseSVG(namespace));\n let returnPlayTimer = 0;\n $btnPlay.onclick = function on_click_btn_play() {\n if (readonly) return;\n $btnPlay.classList.add(wrap_class(\"footer-btn-playing\"));\n play_callback();\n clearTimeout(returnPlayTimer);\n returnPlayTimer = setTimeout(() => {\n $btnPlay.classList.remove(wrap_class(\"footer-btn-playing\"));\n }, 500);\n };\n $pageJumps.appendChild($btnPlay);\n\n const $btnPageNext = h(\"button\");\n set_class($btnPageNext, \"btn-page-next\");\n $btnPageNext.classList.add(wrap_class(\"footer-btn\"));\n $btnPageNext.appendChild(arrowRightSVG(namespace));\n $btnPageNext.onclick = function on_click_btn_page_next() {\n if (readonly) return;\n new_page_index_callback(page_index + 1);\n };\n $pageJumps.appendChild($btnPageNext);\n\n const $pageNumber = h(\"div\");\n set_class($pageNumber, \"page-number\");\n\n const $pageNumberInput = h(\"input\");\n set_class($pageNumberInput, \"page-number-input\");\n $pageNumberInput.value = String(page_index + 1);\n $pageNumberInput.onchange = function on_change_page_number_input() {\n if (readonly) return;\n if ($pageNumberInput.value) {\n new_page_index_callback(Number($pageNumberInput.value) - 1);\n }\n };\n\n const $totalPage = h(\"span\");\n set_class($totalPage, \"total-page\");\n $totalPage.textContent = \" / \";\n\n $pageNumber.appendChild($pageNumberInput);\n $pageNumber.appendChild($totalPage);\n\n $footer.appendChild($pageJumps);\n $footer.appendChild($pageNumber);\n\n const class_readonly = wrap_class(\"readonly\");\n\n function set_readonly(readonly_: boolean) {\n if (readonly !== readonly_) {\n readonly = readonly_;\n $footer.classList.toggle(class_readonly, readonly);\n $pageNumberInput.disabled = readonly;\n }\n }\n\n function set_sidebar(sidebar_: boolean) {\n if (sidebar !== sidebar_) {\n sidebar = sidebar_;\n $btnSidebar.style.display = sidebar ? \"\" : \"none\";\n }\n }\n\n function set_page_index(page_index_: number, force = false) {\n if (force || page_index !== page_index_) {\n page_index = page_index_;\n $pageNumberInput.value = String(page_index + 1);\n }\n }\n\n function set_page_count(page_count_: number) {\n if (page_count !== page_count_) {\n page_count = page_count_;\n $totalPage.textContent = ` / ${page_count}`;\n }\n }\n\n return {\n $footer,\n $pageNumberInput,\n set_readonly,\n set_sidebar,\n set_page_index,\n set_page_count,\n on_new_page_index,\n on_toggle_preview,\n on_play,\n };\n}\n\nfunction create_slide_wrapper() {\n const $slide = h(\"div\");\n set_class($slide, \"slide\");\n return $slide;\n}\n\nfunction on_visibility_change(callback: (visible: boolean) => void) {\n if (typeof document !== \"undefined\") {\n const listener = () => callback(document.visibilityState === \"visible\");\n document.addEventListener(\"visibilitychange\", listener);\n return () => document.removeEventListener(\"visibilitychange\", listener);\n }\n return noop;\n}\n\nexport type SlideViewerOptions = Omit<ISlideConfig, \"anchor\" | \"mode\" | \"interactive\"> & {\n mode?: ISlideConfig[\"mode\"];\n interactive?: ISlideConfig[\"interactive\"];\n} & SlideAttributes;\n\nexport interface SlideViewerInfoResponse {\n width: number;\n height: number;\n slideCount: number;\n}\n\nexport class SlideViewer {\n static styles = styles;\n\n private readonly sideEffect = new SideEffectManager();\n\n readonly $slide = create_slide_wrapper();\n readonly sidebar = create_sidebar();\n readonly footer = create_footer();\n readonly $content: HTMLElement;\n readonly $footer: HTMLElement;\n\n readonly slide;\n\n private readonly _readyPromise: Promise<void>;\n private readonly _infoPromise: Promise<SlideViewerInfoResponse>;\n private _ready = false;\n private _slideCount = 0;\n private _destroyed = false;\n\n constructor(options: SlideViewerOptions) {\n this.$content = this.sidebar.$content;\n this.$footer = this.footer.$footer;\n append(this.$content, this.$slide);\n\n let resolveReady: () => void;\n this._readyPromise = new Promise(resolve => {\n resolveReady = resolve;\n });\n\n const on_new_page_index = (index: number) => {\n if (this._ready && index >= 0 && index < this._slideCount) {\n this.slide.renderSlide(index + 1);\n } else {\n this.setPage(this.slide.slideState.currentSlideIndex);\n }\n };\n this.sidebar.on_new_page_index(on_new_page_index);\n this.footer.on_new_page_index(on_new_page_index);\n\n this.footer.on_toggle_preview(() => {\n this.sidebar.set_active(!this.sidebar.get_active());\n });\n\n this.footer.on_play(() => {\n this.slide.nextStep();\n });\n\n this.sideEffect.addDisposer(this.sidebar.destroy);\n this.sideEffect.addDisposer(() => this.slide.destroy());\n this.sideEffect.addDisposer(() => {\n this.$content.parentElement && this.$content.remove();\n this.$footer.parentElement && this.$footer.remove();\n this.$slide.parentElement && this.$slide.remove();\n });\n\n let saved_is_frozen = false;\n this.sideEffect.addDisposer(\n on_visibility_change(visible => {\n if (this._destroyed) return;\n if (!visible) {\n saved_is_frozen = this._isFrozen;\n this.freeze();\n } else {\n if (!saved_is_frozen) this.unfreeze();\n }\n })\n );\n\n this.slide = new Slide({\n anchor: this.$slide,\n resize: true,\n mode: \"local\",\n interactive: true,\n enableGlobalClick: true,\n ...options,\n });\n this.slide.setResource(options.taskId, options.url || DefaultUrl);\n\n let resolveFetching: (response: SlideViewerInfoResponse) => void;\n this._infoPromise = new Promise<SlideViewerInfoResponse>(resolve => {\n resolveFetching = resolve;\n });\n\n this.slide.on(\"slideChange\", page => {\n if (this._destroyed) return;\n this.setPage(page);\n });\n\n this.slide.on(\"renderEnd\", () => {\n if (!this._ready)\n setTimeout(() => {\n this._ready = true;\n resolveReady();\n }, 1000);\n });\n\n const fetching = fetch_slide_info(options).then(({ preview, slide }) => {\n if (this._destroyed) return;\n\n this._slideCount = slide.slideCount;\n\n if (preview) {\n const { taskId, url } = options;\n const { slideCount } = slide;\n const { width, height } = preview;\n\n const prefix = make_prefix(taskId, url);\n const pages = Array.from({ length: slideCount }, (_, i) => ({\n width,\n height,\n thumbnail: `${prefix}/preview/${i + 1}.png`,\n }));\n\n this.sidebar.set_pages(pages);\n this.footer.set_sidebar(true);\n }\n\n this.footer.set_page_count(slide.slideCount);\n resolveFetching(slide);\n });\n\n fetching.catch(error => {\n console.log(\"[Slide] fetch slide info error\");\n console.error(error);\n });\n\n this.ready(() => {\n if (this._isFrozen) {\n this.freeze();\n }\n });\n }\n\n prepare(callback: (response: SlideViewerInfoResponse) => void) {\n return this._infoPromise.then(callback);\n }\n\n ready(callback: () => void) {\n return this._readyPromise.then(callback);\n }\n\n destroy() {\n this._destroyed = true;\n this.sideEffect.flushAll();\n }\n\n setReadonly(readonly: boolean) {\n this.slide.setInteractive(!readonly);\n this.sidebar.set_readonly(readonly);\n this.footer.set_readonly(readonly);\n }\n\n setPage(page: number) {\n this.sidebar.set_page_index(page - 1, true);\n this.footer.set_page_index(page - 1, true);\n }\n\n private _isFrozen = false;\n\n freeze() {\n if (this._destroyed) return;\n this._isFrozen = true;\n if (!this._ready) return;\n this.slide.frozen();\n }\n\n unfreeze() {\n if (this._destroyed) return;\n this._isFrozen = false;\n if (!this._ready) return;\n this.slide.release();\n }\n}\n","import type { SlideViewer } from \"./SlideViewer\";\nimport type { AddHooks } from \"./typings\";\n\nexport class Refrigerator {\n threshold = 2;\n\n private _map = new Map<string, SlideViewer>();\n private _queue: string[] = [];\n\n set(appId: string, viewer: SlideViewer) {\n this._map.set(appId, viewer);\n if (!this._queue.includes(appId)) {\n this._queue.unshift(appId);\n }\n this._refresh();\n return () => {\n this.delete(appId);\n };\n }\n\n delete(appId: string) {\n this._map.delete(appId);\n this._queue = this._queue.filter(id => id !== appId);\n this._refresh();\n }\n\n focus(appId: string) {\n const index = this._queue.indexOf(appId);\n if (index >= 0) {\n this._queue.splice(index, 1);\n }\n this._queue.unshift(appId);\n this._refresh();\n }\n\n private _refresh() {\n let viewer: SlideViewer | undefined;\n this._queue.forEach((appId, i) => {\n if (!(viewer = this._map.get(appId))) return;\n if (i < this.threshold) {\n viewer.unfreeze();\n } else {\n viewer.freeze();\n }\n });\n if (import.meta.env.DEV) {\n console.log(\n \"[Slide] refrigerator._refresh\",\n `[${this._queue.slice(0, this.threshold)}]`,\n `[${this._queue.slice(this.threshold)}]`\n );\n }\n }\n}\n\nexport const refrigerator = new Refrigerator();\nif (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).refrigerator = refrigerator;\n}\n\nexport const addHooks: AddHooks = function addHooks(emitter) {\n emitter.on(\"focus\", event => {\n refrigerator.focus(event.appId);\n });\n};\n","import type { AppContext, NetlessApp, Player, WhiteBoardView } from \"@netless/window-manager\";\nimport type { AddHooks, AppOptions, Attributes, MagixEvents, SlideState } from \"./typings\";\nimport type { SlideViewerOptions } from \"./SlideViewer\";\n\nexport type { SlideState, AddHooks, AppOptions, Attributes, MagixEvents, SlideViewerOptions };\n\nimport ColorString from \"color-string\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport { SlideViewer } from \"./SlideViewer\";\nimport { refrigerator, addHooks } from \"./Refrigerator\";\n\nexport { SlideViewer, refrigerator, addHooks };\n\nexport const version = __APP_VERSION__;\n\nconst SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, void> = {\n kind: \"Slide\",\n setup(context) {\n console.log(\"[Slide] setup @ \" + __APP_VERSION__);\n\n if (!context.storage.state.taskId) {\n throw new Error(\"[Slide] no taskId\");\n }\n\n const options = context.getAppOptions() || {};\n const logger = make_logger(context);\n logger.info(\"[Slide] setup @ \" + __APP_VERSION__);\n\n const sideEffect = new SideEffectManager();\n\n // Create UI\n const viewer = new SlideViewer({\n interactive: true,\n mode: \"interactive\",\n resize: true,\n enableGlobalClick: true,\n timestamp: make_timestamp(context),\n logger,\n renderOptions: {\n minFPS: options.minFPS || 25,\n maxFPS: options.maxFPS || 30,\n autoFPS: options.autoFPS ?? true,\n autoResolution: options.autoResolution ?? true,\n resolution: options.resolution,\n maxResolutionLevel: options.maxResolutionLevel,\n transactionBgColor: options.transactionBgColor || make_bg_color(context.box.$content),\n },\n\n taskId: context.storage.state.taskId,\n url: context.storage.state.url,\n });\n\n // For debugging.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (viewer as any).context = context;\n\n sideEffect.addDisposer(refrigerator.set(context.appId, viewer));\n\n if (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).slideViewer = viewer;\n }\n\n // Mount UI\n context.box.mountStyles(SlideViewer.styles);\n context.box.mountStage(viewer.$slide);\n context.box.mountFooter(viewer.$footer);\n context.box.mountContent(viewer.$content);\n sideEffect.addDisposer(() => viewer.destroy());\n\n // Connect UI with Netless App\n connect({ context, viewer, sideEffect, logger });\n\n onUnmount(context, () => {\n logger.info(\"[Slide] destroy\");\n sideEffect.flushAll();\n });\n },\n};\n\nexport default SlideApp;\n\nexport function previewSlide(options: SlideViewerOptions & { container: HTMLElement }) {\n const { container } = options;\n container.style.cssText = \"display:flex;flex-direction:column\";\n const viewer = new SlideViewer(options);\n container.appendChild(document.createElement(\"style\")).textContent = SlideViewer.styles;\n container.appendChild(viewer.$content);\n container.appendChild(viewer.$footer);\n viewer.prepare(() => viewer.slide.renderSlide(1));\n return viewer;\n}\n\nif (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).previewSlide = previewSlide;\n}\n\nfunction make_timestamp(context: AppContext): () => number {\n const room = context.room;\n const player = context.displayer as Player;\n if (room) {\n return () => room.calibrationTimestamp;\n } else if (player) {\n return () => player.beginTimestamp + player.progressTime;\n } else {\n return () => Date.now();\n }\n}\n\nfunction make_logger(context: AppContext): { info: (msg: string) => void } {\n if (import.meta.env.DEV) {\n return { info: console.debug.bind(console) };\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (context.displayer as any).logger;\n}\n\nfunction make_bg_color(el: HTMLElement): string {\n try {\n let bg = window.getComputedStyle(el).backgroundColor;\n if (bg !== \"rgba(0, 0, 0, 0)\" && bg !== \"transparent\") {\n bg = hex(bg);\n console.log(\"[Slide] guess bg color:\", bg);\n return bg;\n }\n if (el.parentElement) {\n return make_bg_color(el.parentElement);\n }\n } catch {\n // ignored\n }\n return \"#ffffff\";\n}\n\n// https://github.com/Qix-/color-convert/blob/8dfdbbc6b46fa6a305bf394d942cc1b08e23fca5/conversions.js#L616\nfunction hex(color: string): string {\n const result = ColorString.get(color);\n if (result && result.model === \"rgb\") {\n const args = result.value;\n\n const integer =\n ((Math.round(args[0]) & 0xff) << 16) +\n ((Math.round(args[1]) & 0xff) << 8) +\n (Math.round(args[2]) & 0xff);\n\n const string = integer.toString(16);\n return \"#\" + \"000000\".substring(string.length) + string;\n } else {\n return color;\n }\n}\n\nfunction onUnmount(context: AppContext, callback: () => void) {\n context.emitter.on(\"destroy\", callback);\n}\n\ninterface ConnectParams {\n context: AppContext;\n viewer: SlideViewer;\n sideEffect: SideEffectManager;\n logger: { info: (msg: string) => void };\n}\n\nfunction connect({ context, viewer, sideEffect, logger }: ConnectParams) {\n const log = import.meta.env.DEV ? console.log.bind(console) : logger.info.bind(logger);\n\n let whiteboard: WhiteBoardView | null = null;\n\n viewer.prepare(({ width, height, slideCount }) => {\n if (context.destroyed) return;\n width && context.box.setStageRatio(height / width);\n whiteboard = context.createWhiteBoardView({ size: slideCount });\n whiteboard.setBaseRect({ width, height });\n kick_start();\n });\n\n const { slide } = viewer;\n\n function kick_start() {\n if (context.storage.state.state) {\n log(\"[Slide] restore\", { ...context.storage.state.state });\n slide.setSlideState(context.storage.state.state);\n } else if (context.isAddApp) {\n log(\"[Slide] kick start\");\n slide.renderSlide(1);\n } else {\n log(\"[Slide] wait for restore\");\n const timeoutID = sideEffect.add(() => {\n const timer = setInterval(() => {\n if (!context.storage.state.state) {\n log(\"[Slide] timeout\");\n slide.renderSlide(1);\n }\n }, 15 * 1000);\n return () => clearInterval(timer);\n });\n const disposerID = sideEffect.addDisposer(\n context.storage.addStateChangedListener(() => {\n if (context.storage.state.state) {\n log(\"[Slide] restore\", { ...context.storage.state.state });\n slide.setSlideState(context.storage.state.state);\n sideEffect.flush(disposerID);\n sideEffect.flush(timeoutID);\n }\n })\n );\n }\n }\n\n // setup sync event\n slide.on(\"stateChange\", () => {\n if (context.isWritable) {\n log(\"[Slide] save state\", { ...slide.slideState });\n context.storage.setState({ state: slide.slideState });\n }\n });\n slide.on(\"syncDispatch\", payload => {\n if (context.isWritable) {\n log(\"[Slide] dispatch\", { ...payload });\n context.dispatchMagixEvent(\"syncDispatch\", payload);\n }\n });\n sideEffect.addDisposer(\n context.addMagixEventListener(\n \"syncDispatch\",\n ({ payload }) => {\n log(\"[Slide] receive\", { ...payload });\n slide.emit(\"syncReceive\", payload);\n },\n { fireSelfEventAfterCommit: true }\n )\n );\n\n // save state\n slide.on(\"slideChange\", page => {\n if (context.isWritable && whiteboard) {\n log(\"[Slide] page to\", page);\n whiteboard.jumpPage(page - 1);\n }\n });\n\n // handle ui events\n viewer.setReadonly(!context.isWritable);\n sideEffect.addDisposer(\n context.emitter.on(\"writableChange\", w => {\n viewer.setReadonly(!w);\n })\n );\n}\n"],"names":["isArrayish","require$$0","swizzle","simpleSwizzleModule","require$$1","colorStringModule","SideEffectManager","Slide","ColorString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js","../../../node_modules/.pnpm/is-arrayish@0.3.2/node_modules/is-arrayish/index.js","../../../node_modules/.pnpm/simple-swizzle@0.2.2/node_modules/simple-swizzle/index.js","../../../node_modules/.pnpm/color-string@1.9.1/node_modules/color-string/index.js","../../../node_modules/.pnpm/side-effect-manager@1.1.2/node_modules/side-effect-manager/dist/side-effect-manager.es.js","../../../node_modules/.pnpm/vanilla-lazyload@17.8.3/node_modules/vanilla-lazyload/dist/lazyload.esm.js","../src/constants.ts","../src/utils.ts","../src/icons/sidebar.ts","../src/icons/arrow-left.ts","../src/icons/play.ts","../src/icons/pause.ts","../src/icons/arrow-right.ts","../src/SlideViewer.ts","../src/Refrigerator.ts","../src/index.ts"],"sourcesContent":["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const SOUP = \"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\nconst SOUP_LEN = SOUP.length;\nconst ID_LEN = 20;\nconst reusedIdCarrier = Array(ID_LEN);\nconst genUID = () => {\n for (let i = 0; i < ID_LEN; i++) {\n reusedIdCarrier[i] = SOUP.charAt(Math.random() * SOUP_LEN);\n }\n return reusedIdCarrier.join(\"\");\n};\nfunction invoke(fn) {\n try {\n return fn();\n } catch (e) {\n console.error(e);\n }\n}\nclass SideEffectManager {\n constructor() {\n this.push = this.addDisposer;\n this.disposers = new Map();\n }\n addDisposer(disposer, disposerID = this.genUID()) {\n this.flush(disposerID);\n this.disposers.set(disposerID, Array.isArray(disposer) ? () => disposer.forEach(invoke) : disposer);\n return disposerID;\n }\n add(executor, disposerID = this.genUID()) {\n const disposers = executor();\n return disposers ? this.addDisposer(disposers, disposerID) : disposerID;\n }\n addEventListener(el, type, listener, options, disposerID = this.genUID()) {\n el.addEventListener(type, listener, options);\n this.addDisposer(() => el.removeEventListener(type, listener, options), disposerID);\n return disposerID;\n }\n setTimeout(handler, timeout, disposerID = this.genUID()) {\n const ticket = window.setTimeout(() => {\n this.remove(disposerID);\n handler();\n }, timeout);\n return this.addDisposer(() => window.clearTimeout(ticket), disposerID);\n }\n setInterval(handler, timeout, disposerID = this.genUID()) {\n const ticket = window.setInterval(handler, timeout);\n return this.addDisposer(() => window.clearInterval(ticket), disposerID);\n }\n remove(disposerID) {\n const disposer = this.disposers.get(disposerID);\n this.disposers.delete(disposerID);\n return disposer;\n }\n flush(disposerID) {\n const disposer = this.remove(disposerID);\n if (disposer) {\n try {\n disposer();\n } catch (e) {\n console.error(e);\n }\n }\n }\n flushAll() {\n this.disposers.forEach(invoke);\n this.disposers.clear();\n }\n genUID() {\n let uid;\n do {\n uid = genUID();\n } while (this.disposers.has(uid));\n return uid;\n }\n}\nclass AsyncSideEffectManager {\n constructor() {\n this.push = this.addDisposer;\n this.finished = Promise.resolve();\n this.disposers = new Map();\n this._nextTask = new Map();\n this._isRunning = new Set();\n }\n add(executor, disposerID = this.genUID()) {\n if (this._isRunning.has(disposerID)) {\n this._nextTask.set(disposerID, () => this._add(executor, disposerID));\n } else {\n this._add(executor, disposerID);\n }\n return disposerID;\n }\n async _add(executor, disposerID) {\n this._startTask(disposerID);\n const disposer = this.remove(disposerID);\n if (disposer) {\n try {\n await disposer();\n } catch (e) {\n console.error(e);\n }\n }\n try {\n const disposers = await executor();\n if (disposers) {\n this.disposers.set(disposerID, Array.isArray(disposers) ? async () => Promise.all(disposers.map(invoke)) : disposers);\n }\n } catch (e) {\n console.error(e);\n }\n this._endTask(disposerID);\n const task = this._nextTask.get(disposerID);\n if (task) {\n this._nextTask.delete(disposerID);\n task();\n }\n }\n addDisposer(disposer, disposerID = this.genUID()) {\n return this.add(() => disposer, disposerID);\n }\n remove(disposerID) {\n const disposer = this.disposers.get(disposerID);\n this.disposers.delete(disposerID);\n return disposer;\n }\n flush(disposerID) {\n if (this._isRunning.has(disposerID)) {\n this._nextTask.set(disposerID, () => this._flush(disposerID));\n } else {\n this._flush(disposerID);\n }\n }\n async _flush(disposerID) {\n const disposer = this.remove(disposerID);\n if (disposer) {\n this._startTask(disposerID);\n try {\n await disposer();\n } catch (e) {\n console.error(e);\n }\n this._endTask(disposerID);\n }\n const task = this._nextTask.get(disposerID);\n if (task) {\n this._nextTask.delete(disposerID);\n task();\n }\n }\n flushAll() {\n this.disposers.forEach((_, disposerID) => this.flush(disposerID));\n }\n genUID() {\n let uid;\n do {\n uid = genUID();\n } while (this.disposers.has(uid));\n return uid;\n }\n _startTask(disposerID) {\n this._isRunning.add(disposerID);\n if (!this._resolveFinished) {\n this.finished = new Promise((resolve) => {\n this._resolveFinished = resolve;\n });\n }\n }\n _endTask(disposerID) {\n this._isRunning.delete(disposerID);\n if (this._resolveFinished && this._isRunning.size <= 0 && this._nextTask.size <= 0) {\n this._resolveFinished();\n this._resolveFinished = void 0;\n }\n }\n}\nexport { AsyncSideEffectManager, SideEffectManager, genUID };\n//# sourceMappingURL=side-effect-manager.es.js.map\n","const runningOnBrowser = typeof window !== \"undefined\";\n\nconst isBot =\n (runningOnBrowser && !(\"onscroll\" in window)) ||\n (typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));\n\nconst supportsIntersectionObserver = runningOnBrowser && \"IntersectionObserver\" in window;\n\nconst supportsClassList = runningOnBrowser && \"classList\" in document.createElement(\"p\");\n\nconst isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\n\nconst defaultSettings = {\n elements_selector: \".lazy\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_bg_set: \"bg-set\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false,\n restore_on_error: false,\n};\n\nconst getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\n\n/* Creates instance and notifies it through the window element */\nconst createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n // Works in modern browsers\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n // Works in Internet Explorer (all versions)\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.dispatchEvent(event);\n};\n\n/* Auto initialization of one or more instances of lazyload, depending on the \n options passed in (plain object or an array) */\nconst autoInitialize = (classObj, options) => {\n if (!options) {\n return;\n }\n if (!options.length) {\n // Plain object\n createInstance(classObj, options);\n } else {\n // Array of objects\n for (let i = 0, optionsItem; (optionsItem = options[i]); i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\n\nconst SRC = \"src\";\nconst SRCSET = \"srcset\";\nconst SIZES = \"sizes\";\nconst POSTER = \"poster\";\nconst ORIGINALS = \"llOriginalAttrs\";\nconst DATA = \"data\";\n\nconst statusLoading = \"loading\";\nconst statusLoaded = \"loaded\";\nconst statusApplied = \"applied\";\nconst statusEntered = \"entered\";\nconst statusError = \"error\";\nconst statusNative = \"native\";\n\nconst dataPrefix = \"data-\";\nconst statusDataName = \"ll-status\";\n\nconst getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\n\nconst setData = (element, attribute, value) => {\n var attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst getStatus = (element) => getData(element, statusDataName);\nconst setStatus = (element, status) => setData(element, statusDataName, status);\nconst resetStatus = (element) => setStatus(element, null);\n\nconst hasEmptyStatus = (element) => getStatus(element) === null;\nconst hasStatusLoading = (element) => getStatus(element) === statusLoading;\nconst hasStatusError = (element) => getStatus(element) === statusError;\nconst hasStatusNative = (element) => getStatus(element) === statusNative;\n\nconst statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nconst hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\n\nconst safeCallback = (callback, arg1, arg2, arg3) => {\n\tif (!callback) {\n\t\treturn;\n\t}\n\n\tif (arg3 !== undefined) {\n\t\tcallback(arg1, arg2, arg3);\n\t\treturn;\n\t}\n\tif (arg2 !== undefined) {\n\t\tcallback(arg1, arg2);\n\t\treturn;\n\t}\n\tcallback(arg1);\n};\n\nconst addClass = (element, className) => {\n\tif (supportsClassList) {\n\t\telement.classList.add(className);\n\t\treturn;\n\t}\n\telement.className += (element.className ? \" \" : \"\") + className;\n};\n\nconst removeClass = (element, className) => {\n\tif (supportsClassList) {\n\t\telement.classList.remove(className);\n\t\treturn;\n\t}\n\telement.className = element.className.\n\t\treplace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").\n\t\treplace(/^\\s+/, \"\").\n\t\treplace(/\\s+$/, \"\");\n};\n\nconst addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\n\nconst deleteTempImage = (element) => {\n delete element.llTempImage;\n};\n\nconst getTempImage = (element) => element.llTempImage;\n\nconst unobserve = (element, instance) => {\n if (!instance) return;\n const observer = instance._observer;\n if (!observer) return;\n observer.unobserve(element);\n};\n\nconst resetObserver = (observer) => {\n observer.disconnect();\n};\n\nconst unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered) unobserve(element, instance);\n};\n\nconst updateLoadingCount = (instance, delta) => {\n if (!instance) return;\n instance.loadingCount += delta;\n};\n\nconst decreaseToLoadCount = (instance) => {\n if (!instance) return;\n instance.toLoadCount -= 1;\n};\n\nconst setToLoadCount = (instance, value) => {\n if (!instance) return;\n instance.toLoadCount = value;\n};\n\nconst isSomethingLoading = (instance) => instance.loadingCount > 0;\n\nconst haveElementsToLoad = (instance) => instance.toLoadCount > 0;\n\nconst getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let i = 0, childTag; (childTag = parentTag.children[i]); i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n};\n\nconst forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\n\nconst forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\n\nconst attrsSrc = [SRC];\nconst attrsSrcPoster = [SRC, POSTER];\nconst attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nconst attrsData = [DATA];\n\nconst hasOriginalAttrs = (element) => !!element[ORIGINALS];\nconst getOriginalAttrs = (element) => element[ORIGINALS];\nconst deleteOriginalAttrs = (element) => delete element[ORIGINALS];\n\n// ## SAVE ##\n\nconst setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\n\nconst saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\n\n// ## RESTORE ##\n\nconst setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\n\nconst restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\n\nconst manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n // Instance is not provided when loading is called from static class\n if (!instance) return;\n if (settings.unobserve_completed) {\n // Unobserve now because we can't do it on load\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\n\nconst manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n // Instance is not provided when loading is called from static class\n if (!instance) return;\n updateLoadingCount(instance, +1);\n safeCallback(settings.callback_loading, element, instance);\n};\n\nconst setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst setImageAttributes = (element, settings) => {\n setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));\n setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));\n setAttributeIfValue(element, SRC, getData(element, settings.data_src));\n};\n\nconst setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\n\nconst setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\n\nconst setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\n\nconst setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\n};\n\nconst setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\n\n// NOTE: THE TEMP IMAGE TRICK CANNOT BE DONE WITH data-multi-bg\n// BECAUSE INSIDE ITS VALUES MUST BE WRAPPED WITH URL() AND ONE OF THEM\n// COULD BE A GRADIENT BACKGROUND IMAGE\nconst setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\n\nconst setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n // Temporary fix for Chromeium with the -webkit- prefix\n if (element.style.backgroundImage === '') {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\n\nconst setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\n};\n\nconst setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\n\nconst setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\n\nconst elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\", \"OBJECT\"];\nconst hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\n\nconst checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\n\nconst addEventListener = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\n\nconst removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\n\nconst hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\n\nconst addEventListeners = (element, loadHandler, errorHandler) => {\n if (!hasEventListeners(element)) element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener(element, loadEventName, loadHandler);\n addEventListener(element, \"error\", errorHandler);\n};\n\nconst removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\n\nconst doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\n\nconst loadHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative) checkFinish(settings, instance);\n};\n\nconst errorHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (settings.restore_on_error) restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\n if (!goingNative) checkFinish(settings, instance);\n};\n\nconst addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n // This happens when loading is retried twice\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\n\nconst loadBackground = (element, settings, instance) => {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n setImgsetBackground(element, settings, instance);\n};\n\nconst loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\n\nconst load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\n\nconst loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\n\nconst removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\n\nconst resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\n\nconst restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\n\nconst restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\n\nconst restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\n\nconst restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\n\nconst restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\n};\n\nconst restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\n\nconst resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n};\n\nconst restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\n\nconst cancelLoading = (element, entry, settings, instance) => {\n if (!settings.cancel_on_exit) return;\n if (!hasStatusLoading(element)) return;\n if (element.tagName !== \"IMG\") return; //Works only on images\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n};\n\nconst onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element); /* Save status \n before setting it, to prevent loading it again. Fixes #526. */\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad) return;\n load(element, settings, instance);\n};\n\nconst onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\n\nconst tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\n\nconst shouldUseNative = (settings) =>\n settings.use_native && \"loading\" in HTMLImageElement.prototype;\n\nconst loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\n\nconst isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\n\nconst getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\n\nconst intersectionHandler = (entries, settings, instance) => {\n entries.forEach((entry) =>\n isIntersecting(entry)\n ? onEnter(entry.target, entry, settings, instance)\n : onExit(entry.target, entry, settings, instance)\n );\n};\n\nconst observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\n\nconst updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\n\nconst setObserver = (settings, instance) => {\n if (!supportsIntersectionObserver || shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\n\nconst toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\n\nconst queryElements = (settings) =>\n settings.container.querySelectorAll(settings.elements_selector);\n\nconst excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\n\nconst hasError = (element) => hasStatusError(element);\nconst filterErrorElements = (elements) => toArray(elements).filter(hasError);\n\nconst getElementsToLoad = (elements, settings) =>\n excludeManagedElements(elements || queryElements(settings));\n\nconst retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\n\nconst setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\n\nconst resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\n};\n\nconst LazyLoad = function (customSettings, elements) {\n const settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n};\n\nLazyLoad.prototype = {\n update: function (givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n\n if (isBot || !supportsIntersectionObserver) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n\n updateObserver(this._observer, elementsToLoad);\n },\n\n destroy: function () {\n // Observer\n if (this._observer) {\n this._observer.disconnect();\n }\n // Clean handlers\n resetOnlineCheck(this);\n // Clean custom attributes on elements\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n // Delete all internal props\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n\n loadAll: function (elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\n\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\n\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\n\n// Automatic instances creation if required (useful for async script loading)\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\nexport { LazyLoad as default };\n","export const namespace = \"netless-app-slide\";\n\nexport const DefaultUrl = \"https://convertcdn.netless.link/dynamicConvert\";\n","export function noop() {\n return;\n}\n","export function sidebarSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function arrowLeftSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function playSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-play`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M418.158 257.419L174.663 413.33c-6.017 3.919-15.708 3.772-21.291-.29-2.791-2.018-4.295-4.483-4.295-7.084V94.109c0-5.65 6.883-10.289 15.271-10.289 4.298 0 8.391 1.307 11.181 3.332l242.629 155.484c6.016 3.917 6.451 10.292.649 14.491-.216.154-.432.154-.649.292zM170.621 391.288l223.116-141.301L170.71 107.753l-.089 283.535z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function pauseSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-pause`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M312.491 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261zM165.257 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function arrowRightSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","import type { ISlideConfig } from \"@netless/slide\";\n\nimport { Slide } from \"@netless/slide\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport LazyLoad from \"vanilla-lazyload\";\n\nimport { DefaultUrl, namespace } from \"./constants\";\nimport { noop } from \"./utils\";\nimport styles from \"./style.scss?inline\";\n\nimport { sidebarSVG } from \"./icons/sidebar\";\nimport { arrowLeftSVG } from \"./icons/arrow-left\";\nimport { playSVG } from \"./icons/play\";\nimport { pauseSVG } from \"./icons/pause\";\nimport { arrowRightSVG } from \"./icons/arrow-right\";\n\nfunction h<K extends keyof HTMLElementTagNameMap>(tag: K) {\n return document.createElement(tag);\n}\n\nfunction append(parent: HTMLElement, child: HTMLElement) {\n return parent.appendChild(child);\n}\n\nfunction wrap_class(name: string) {\n return `${namespace}-${name}`;\n}\n\nfunction set_class(el: HTMLElement, name: string) {\n el.className = wrap_class(name);\n}\n\nfunction trim_slash(s: string) {\n return s.endsWith(\"/\") ? s.slice(0, -1) : s;\n}\n\ninterface SlideAttributes {\n taskId: string;\n url?: string;\n}\n\ninterface PreviewPage {\n width: number;\n height: number;\n thumbnail: string;\n}\n\ninterface PreviewInfo {\n width: number;\n height: number;\n}\n\ninterface SlideInfo {\n width: number;\n height: number;\n slideCount: number;\n}\n\nasync function fetch_slide_info({ taskId, url }: SlideAttributes): Promise<{\n preview: PreviewInfo | null;\n slide: SlideInfo;\n}> {\n const prefix = make_prefix(taskId, url);\n const imgSrc = `${prefix}/preview/1.png`;\n const jsonUrl = `${prefix}/jsonOutput/slide-1.json`;\n\n const p1 = new Promise<PreviewInfo | null>(resolve => {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => resolve(null);\n image.src = imgSrc;\n });\n\n const p2: Promise<SlideInfo> = fetch(jsonUrl).then(r => r.json());\n\n return { preview: await p1, slide: await p2 };\n}\n\nfunction make_prefix(taskId: string, url?: string) {\n return `${trim_slash(url || DefaultUrl)}/${taskId}`;\n}\n\nfunction create_sidebar() {\n type NewPageIndexCallback = (newPageIndex: number) => void;\n let new_page_index_callback: NewPageIndexCallback = noop;\n const on_new_page_index = (callback: NewPageIndexCallback) => {\n new_page_index_callback = callback;\n };\n\n let destroyed = false;\n let readonly = false;\n let active = false;\n let pages: PreviewPage[] = [];\n let page_index = 0;\n\n const class_readonly = wrap_class(\"readonly\");\n const class_preview_active = wrap_class(\"preview-active\");\n\n const $content = h(\"div\");\n set_class($content, \"content\");\n\n const $previewMask = h(\"div\");\n set_class($previewMask, \"preview-mask\");\n $previewMask.onclick = function on_click_preview_mask(ev) {\n if (readonly) return;\n if (ev.target !== $previewMask) return;\n set_active(false);\n };\n append($content, $previewMask);\n\n const $preview = h(\"div\");\n set_class($preview, \"preview\");\n $preview.classList.add(wrap_class(\"tele-fancy-scrollbar\"));\n $preview.onclick = function on_click_preview(ev) {\n if (readonly) return;\n const page_index = (ev.target as HTMLElement).dataset?.pageIndex;\n if (page_index) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n new_page_index_callback(Number(page_index));\n set_active(false);\n }\n };\n append($content, $preview);\n\n const lazyload = new LazyLoad({\n container: $preview,\n elements_selector: `.${wrap_class(\"preview-page>img\")}`,\n });\n\n function set_readonly(readonly_: boolean) {\n if (readonly !== readonly_) {\n readonly = readonly_;\n $content.classList.toggle(class_readonly, readonly);\n }\n }\n\n function set_active(active_: boolean) {\n if (active !== active_) {\n active = active_;\n $content.classList.toggle(class_preview_active, active);\n }\n }\n\n function set_pages(pages_: PreviewPage[]) {\n if (pages !== pages_) {\n pages = pages_;\n\n const page_class = wrap_class(\"preview-page\");\n const page_name_class = wrap_class(\"preview-page-name\");\n\n pages.forEach((page, i) => {\n const pageIndex = String(i);\n\n const $page = h(\"a\");\n $page.className = page_class + \" \" + wrap_class(`preview-page-${i}`);\n $page.href = \"#\";\n $page.dataset.pageIndex = pageIndex;\n\n const $name = h(\"span\");\n $name.className = page_name_class;\n $name.textContent = String(i + 1);\n $name.dataset.pageIndex = pageIndex;\n\n const $img = h(\"img\");\n $img.width = page.width;\n $img.height = page.height;\n $img.src = page.thumbnail;\n $img.alt = `page-${i}`;\n $img.dataset.pageIndex = pageIndex;\n\n append($page, $img);\n append($page, $name);\n append($preview, $page);\n });\n\n if (!destroyed) {\n lazyload.update();\n }\n }\n }\n\n function set_page_index(page_index_: number, force = false) {\n if (force || page_index !== page_index_) {\n page_index = page_index_;\n const $page = $preview.querySelector<HTMLElement>(\n `.${wrap_class(`preview-page-${page_index}`)}`\n );\n if ($page) {\n $preview.scrollTo({ top: $page.offsetTop - 16 });\n }\n }\n }\n\n function destroy() {\n destroyed = true;\n lazyload.destroy();\n }\n\n function get_active() {\n return active;\n }\n\n return {\n $content,\n $preview,\n set_readonly,\n set_active,\n get_active,\n set_pages,\n on_new_page_index,\n set_page_index,\n destroy,\n };\n}\n\nfunction create_footer() {\n type NewPageIndexCallback = (newPageIndex: number) => void;\n let new_page_index_callback: NewPageIndexCallback = noop;\n const on_new_page_index = (callback: NewPageIndexCallback) => {\n new_page_index_callback = callback;\n };\n\n let toggle_preview_callback: () => void = noop;\n const on_toggle_preview = (callback: () => void) => {\n toggle_preview_callback = callback;\n };\n\n let play_callback: () => void = noop;\n const on_play = (callback: () => void) => {\n play_callback = callback;\n };\n\n let readonly = false;\n let sidebar = false;\n let page_index = 0;\n let page_count = 0;\n\n const $footer = h(\"div\");\n set_class($footer, \"footer\");\n\n const $btnSidebar = h(\"button\");\n set_class($btnSidebar, \"btn-sidebar\");\n $btnSidebar.classList.add(wrap_class(\"footer-btn\"));\n $btnSidebar.appendChild(sidebarSVG(namespace));\n $btnSidebar.onclick = function on_click_btn_sidebar() {\n if (readonly) return;\n toggle_preview_callback();\n };\n $btnSidebar.style.display = \"none\";\n $footer.appendChild($btnSidebar);\n\n const $pageJumps = h(\"div\");\n set_class($pageJumps, \"page-jumps\");\n\n const $btnPageBack = h(\"button\");\n set_class($btnPageBack, \"btn-page-back\");\n $btnPageBack.classList.add(wrap_class(\"footer-btn\"));\n $btnPageBack.appendChild(arrowLeftSVG(namespace));\n $btnPageBack.onclick = function on_click_btn_page_back() {\n if (readonly) return;\n new_page_index_callback(page_index - 1);\n };\n $pageJumps.appendChild($btnPageBack);\n\n const $btnPlay = h(\"button\");\n set_class($btnPlay, \"btn-page-play\");\n $btnPlay.classList.add(wrap_class(\"footer-btn\"));\n $btnPlay.appendChild(playSVG(namespace));\n $btnPlay.appendChild(pauseSVG(namespace));\n let returnPlayTimer = 0;\n $btnPlay.onclick = function on_click_btn_play() {\n if (readonly) return;\n $btnPlay.classList.add(wrap_class(\"footer-btn-playing\"));\n play_callback();\n clearTimeout(returnPlayTimer);\n returnPlayTimer = setTimeout(() => {\n $btnPlay.classList.remove(wrap_class(\"footer-btn-playing\"));\n }, 500);\n };\n $pageJumps.appendChild($btnPlay);\n\n const $btnPageNext = h(\"button\");\n set_class($btnPageNext, \"btn-page-next\");\n $btnPageNext.classList.add(wrap_class(\"footer-btn\"));\n $btnPageNext.appendChild(arrowRightSVG(namespace));\n $btnPageNext.onclick = function on_click_btn_page_next() {\n if (readonly) return;\n new_page_index_callback(page_index + 1);\n };\n $pageJumps.appendChild($btnPageNext);\n\n const $pageNumber = h(\"div\");\n set_class($pageNumber, \"page-number\");\n\n const $pageNumberInput = h(\"input\");\n set_class($pageNumberInput, \"page-number-input\");\n $pageNumberInput.value = String(page_index + 1);\n $pageNumberInput.onchange = function on_change_page_number_input() {\n if (readonly) return;\n if ($pageNumberInput.value) {\n new_page_index_callback(Number($pageNumberInput.value) - 1);\n }\n };\n\n const $totalPage = h(\"span\");\n set_class($totalPage, \"total-page\");\n $totalPage.textContent = \" / \";\n\n $pageNumber.appendChild($pageNumberInput);\n $pageNumber.appendChild($totalPage);\n\n $footer.appendChild($pageJumps);\n $footer.appendChild($pageNumber);\n\n const class_readonly = wrap_class(\"readonly\");\n\n function set_readonly(readonly_: boolean) {\n if (readonly !== readonly_) {\n readonly = readonly_;\n $footer.classList.toggle(class_readonly, readonly);\n $pageNumberInput.disabled = readonly;\n }\n }\n\n function set_sidebar(sidebar_: boolean) {\n if (sidebar !== sidebar_) {\n sidebar = sidebar_;\n $btnSidebar.style.display = sidebar ? \"\" : \"none\";\n }\n }\n\n function set_page_index(page_index_: number, force = false) {\n if (force || page_index !== page_index_) {\n page_index = page_index_;\n $pageNumberInput.value = String(page_index + 1);\n }\n }\n\n function set_page_count(page_count_: number) {\n if (page_count !== page_count_) {\n page_count = page_count_;\n $totalPage.textContent = ` / ${page_count}`;\n }\n }\n\n return {\n $footer,\n $pageNumberInput,\n set_readonly,\n set_sidebar,\n set_page_index,\n set_page_count,\n on_new_page_index,\n on_toggle_preview,\n on_play,\n };\n}\n\nfunction create_slide_wrapper() {\n const $slide = h(\"div\");\n set_class($slide, \"slide\");\n return $slide;\n}\n\nfunction on_visibility_change(callback: (visible: boolean) => void) {\n if (typeof document !== \"undefined\") {\n const listener = () => callback(document.visibilityState === \"visible\");\n document.addEventListener(\"visibilitychange\", listener);\n return () => document.removeEventListener(\"visibilitychange\", listener);\n }\n return noop;\n}\n\nexport type SlideViewerOptions = Omit<ISlideConfig, \"anchor\" | \"mode\" | \"interactive\"> & {\n mode?: ISlideConfig[\"mode\"];\n interactive?: ISlideConfig[\"interactive\"];\n} & SlideAttributes;\n\nexport interface SlideViewerInfoResponse {\n width: number;\n height: number;\n slideCount: number;\n}\n\nexport class SlideViewer {\n static styles = styles;\n static fetchSlideInfo = fetch_slide_info;\n\n private readonly sideEffect = new SideEffectManager();\n\n readonly $slide = create_slide_wrapper();\n readonly sidebar = create_sidebar();\n readonly footer = create_footer();\n readonly $content: HTMLElement;\n readonly $footer: HTMLElement;\n\n readonly slide;\n\n private readonly _readyPromise: Promise<void>;\n private readonly _infoPromise: Promise<SlideViewerInfoResponse>;\n private _ready = false;\n private _slideCount = 0;\n private _destroyed = false;\n\n constructor(options: SlideViewerOptions) {\n this.$content = this.sidebar.$content;\n this.$footer = this.footer.$footer;\n append(this.$content, this.$slide);\n\n let resolveReady: () => void;\n this._readyPromise = new Promise(resolve => {\n resolveReady = resolve;\n });\n\n const on_new_page_index = (index: number) => {\n if (this._ready && index >= 0 && index < this._slideCount) {\n this.slide.renderSlide(index + 1);\n } else {\n this.setPage(this.slide.slideState.currentSlideIndex);\n }\n };\n this.sidebar.on_new_page_index(on_new_page_index);\n this.footer.on_new_page_index(on_new_page_index);\n\n this.footer.on_toggle_preview(() => {\n this.sidebar.set_active(!this.sidebar.get_active());\n });\n\n this.footer.on_play(() => {\n this.slide.nextStep();\n });\n\n this.sideEffect.addDisposer(this.sidebar.destroy);\n this.sideEffect.addDisposer(() => this.slide.destroy());\n this.sideEffect.addDisposer(() => {\n this.$content.parentElement && this.$content.remove();\n this.$footer.parentElement && this.$footer.remove();\n this.$slide.parentElement && this.$slide.remove();\n });\n\n let saved_is_frozen = false;\n this.sideEffect.addDisposer(\n on_visibility_change(visible => {\n if (this._destroyed) return;\n if (!visible) {\n saved_is_frozen = this._isFrozen;\n this.freeze();\n } else {\n if (!saved_is_frozen) this.unfreeze();\n }\n })\n );\n\n this.slide = new Slide({\n anchor: this.$slide,\n resize: true,\n mode: \"local\",\n interactive: true,\n enableGlobalClick: true,\n ...options,\n });\n this.slide.setResource(options.taskId, options.url || DefaultUrl);\n\n let resolveFetching: (response: SlideViewerInfoResponse) => void;\n this._infoPromise = new Promise<SlideViewerInfoResponse>(resolve => {\n resolveFetching = resolve;\n });\n\n this.slide.on(\"slideChange\", page => {\n if (this._destroyed) return;\n this.setPage(page);\n });\n\n this.slide.on(\"renderEnd\", () => {\n if (!this._ready)\n setTimeout(() => {\n this._ready = true;\n resolveReady();\n }, 1000);\n });\n\n const fetching = fetch_slide_info(options).then(({ preview, slide }) => {\n if (this._destroyed) return;\n\n this._slideCount = slide.slideCount;\n\n if (preview) {\n const { taskId, url } = options;\n const { slideCount } = slide;\n const { width, height } = preview;\n\n const prefix = make_prefix(taskId, url);\n const pages = Array.from({ length: slideCount }, (_, i) => ({\n width,\n height,\n thumbnail: `${prefix}/preview/${i + 1}.png`,\n }));\n\n this.sidebar.set_pages(pages);\n this.footer.set_sidebar(true);\n }\n\n this.footer.set_page_count(slide.slideCount);\n resolveFetching(slide);\n });\n\n fetching.catch(error => {\n console.log(\"[Slide] fetch slide info error\");\n console.error(error);\n });\n\n this.ready(() => {\n if (this._isFrozen) {\n this.freeze();\n }\n });\n }\n\n prepare(callback: (response: SlideViewerInfoResponse) => void) {\n return this._infoPromise.then(callback);\n }\n\n ready(callback: () => void) {\n return this._readyPromise.then(callback);\n }\n\n destroy() {\n this._destroyed = true;\n this.sideEffect.flushAll();\n }\n\n setReadonly(readonly: boolean) {\n this.slide.setInteractive(!readonly);\n this.sidebar.set_readonly(readonly);\n this.footer.set_readonly(readonly);\n }\n\n setPage(page: number) {\n this.sidebar.set_page_index(page - 1, true);\n this.footer.set_page_index(page - 1, true);\n }\n\n private _isFrozen = false;\n\n freeze() {\n if (this._destroyed) return;\n this._isFrozen = true;\n if (!this._ready) return;\n this.slide.frozen();\n }\n\n unfreeze() {\n if (this._destroyed) return;\n this._isFrozen = false;\n if (!this._ready) return;\n this.slide.release();\n }\n}\n","import type { SlideViewer } from \"./SlideViewer\";\nimport type { AddHooks } from \"./typings\";\n\nexport class Refrigerator {\n threshold = 2;\n\n private _map = new Map<string, SlideViewer>();\n private _queue: string[] = [];\n\n set(appId: string, viewer: SlideViewer) {\n this._map.set(appId, viewer);\n if (!this._queue.includes(appId)) {\n this._queue.unshift(appId);\n }\n this._refresh();\n return () => {\n this.delete(appId);\n };\n }\n\n delete(appId: string) {\n this._map.delete(appId);\n this._queue = this._queue.filter(id => id !== appId);\n this._refresh();\n }\n\n focus(appId: string) {\n const index = this._queue.indexOf(appId);\n if (index >= 0) {\n this._queue.splice(index, 1);\n }\n this._queue.unshift(appId);\n this._refresh();\n }\n\n private _refresh() {\n let viewer: SlideViewer | undefined;\n this._queue.forEach((appId, i) => {\n if (!(viewer = this._map.get(appId))) return;\n if (i < this.threshold) {\n viewer.unfreeze();\n } else {\n viewer.freeze();\n }\n });\n if (import.meta.env.DEV) {\n console.log(\n \"[Slide] refrigerator._refresh\",\n `[${this._queue.slice(0, this.threshold)}]`,\n `[${this._queue.slice(this.threshold)}]`\n );\n }\n }\n}\n\nexport const refrigerator = new Refrigerator();\nif (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).refrigerator = refrigerator;\n}\n\nexport const addHooks: AddHooks = function addHooks(emitter) {\n emitter.on(\"focus\", event => {\n refrigerator.focus(event.appId);\n });\n};\n","import type { AppContext, NetlessApp, Player, WhiteBoardView } from \"@netless/window-manager\";\nimport type { AddHooks, AppOptions, Attributes, MagixEvents, SlideState } from \"./typings\";\nimport type { SlideViewerOptions } from \"./SlideViewer\";\n\nexport type { SlideState, AddHooks, AppOptions, Attributes, MagixEvents, SlideViewerOptions };\n\nimport ColorString from \"color-string\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport { Slide } from \"@netless/slide\";\nimport { SlideViewer } from \"./SlideViewer\";\nimport { refrigerator, addHooks } from \"./Refrigerator\";\nimport { DefaultUrl } from \"./constants\";\n\nexport { Slide, SlideViewer, refrigerator, addHooks, DefaultUrl };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const usePlugin = /* @__PURE__ */ Slide.usePlugin.bind(Slide) as (plugin: any) => void;\n\nexport const version = __APP_VERSION__;\n\nconst SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, void> = {\n kind: \"Slide\",\n setup(context) {\n console.log(\"[Slide] setup @ \" + __APP_VERSION__);\n\n if (!context.storage.state.taskId) {\n throw new Error(\"[Slide] no taskId\");\n }\n\n const appOptions = context.getAppOptions() || {};\n const options = appOptions.renderOptions || {};\n const logger = make_logger(context, appOptions.debug);\n logger.info(\"[Slide] setup @ \" + __APP_VERSION__);\n\n const sideEffect = new SideEffectManager();\n\n // Create UI\n const viewer = new SlideViewer({\n interactive: true,\n mode: \"interactive\",\n resize: true,\n enableGlobalClick: true,\n timestamp: make_timestamp(context),\n logger: appOptions.logger || logger,\n renderOptions: {\n minFPS: options.minFPS || 25,\n maxFPS: options.maxFPS || 30,\n autoFPS: options.autoFPS ?? true,\n autoResolution: options.autoResolution ?? true,\n resolution: options.resolution,\n maxResolutionLevel: options.maxResolutionLevel,\n transactionBgColor: options.transactionBgColor || make_bg_color(context.box.$content),\n },\n rtcAudio: appOptions.rtcAudio,\n useLocalCache: appOptions.useLocalCache,\n resourceTimeout: appOptions.resourceTimeout,\n loaderDelegate: appOptions.loaderDelegate,\n navigatorDelegate: appOptions.navigatorDelegate,\n fixedFrameSize: appOptions.fixedFrameSize,\n taskId: context.storage.state.taskId,\n url: context.storage.state.url,\n });\n\n // For debugging.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (viewer as any).context = context;\n\n sideEffect.addDisposer(refrigerator.set(context.appId, viewer));\n\n if (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).slideViewer = viewer;\n }\n\n // Mount UI\n context.box.mountStyles(SlideViewer.styles);\n context.box.mountStage(viewer.$slide);\n context.box.mountFooter(viewer.$footer);\n context.box.mountContent(viewer.$content);\n sideEffect.addDisposer(() => viewer.destroy());\n\n // Connect UI with Netless App\n connect({ context, viewer, sideEffect, logger });\n\n onUnmount(context, () => {\n logger.info(\"[Slide] destroy\");\n sideEffect.flushAll();\n });\n\n return viewer;\n },\n};\n\nexport default SlideApp;\n\nexport function previewSlide(options: SlideViewerOptions & { container: HTMLElement }) {\n const { container, ...slideOptions } = options;\n container.style.cssText = \"display:flex;flex-direction:column\";\n const viewer = new SlideViewer(slideOptions);\n container.appendChild(document.createElement(\"style\")).textContent = SlideViewer.styles;\n container.appendChild(viewer.$content);\n container.appendChild(viewer.$footer);\n viewer.prepare(() => viewer.slide.renderSlide(1));\n return viewer;\n}\n\nif (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).previewSlide = previewSlide;\n}\n\nfunction make_timestamp(context: AppContext): () => number {\n const room = context.room;\n const player = context.displayer as Player;\n if (room) {\n return () => room.calibrationTimestamp;\n } else if (player) {\n return () => player.beginTimestamp + player.progressTime;\n } else {\n return () => Date.now();\n }\n}\n\nfunction make_logger(context: AppContext, debug?: boolean): { info: (msg: string) => void } {\n void debug; // not used for now\n if (import.meta.env.DEV) {\n return { info: console.debug.bind(console) };\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (context.displayer as any).logger;\n}\n\nfunction make_bg_color(el: HTMLElement): string {\n try {\n let bg = window.getComputedStyle(el).backgroundColor;\n if (bg !== \"rgba(0, 0, 0, 0)\" && bg !== \"transparent\") {\n bg = hex(bg);\n console.log(\"[Slide] guess bg color:\", bg);\n return bg;\n }\n if (el.parentElement) {\n return make_bg_color(el.parentElement);\n }\n } catch {\n // ignored\n }\n return \"#ffffff\";\n}\n\n// https://github.com/Qix-/color-convert/blob/8dfdbbc6b46fa6a305bf394d942cc1b08e23fca5/conversions.js#L616\nfunction hex(color: string): string {\n const result = ColorString.get(color);\n if (result && result.model === \"rgb\") {\n const args = result.value;\n\n const integer =\n ((Math.round(args[0]) & 0xff) << 16) +\n ((Math.round(args[1]) & 0xff) << 8) +\n (Math.round(args[2]) & 0xff);\n\n const string = integer.toString(16);\n return \"#\" + \"000000\".substring(string.length) + string;\n } else {\n return color;\n }\n}\n\nfunction onUnmount(context: AppContext, callback: () => void) {\n context.emitter.on(\"destroy\", callback);\n}\n\ninterface ConnectParams {\n context: AppContext;\n viewer: SlideViewer;\n sideEffect: SideEffectManager;\n logger: { info: (msg: string) => void };\n}\n\nfunction connect({ context, viewer, sideEffect, logger }: ConnectParams) {\n const log = import.meta.env.DEV ? console.log.bind(console) : logger.info.bind(logger);\n\n let whiteboard: WhiteBoardView | null = null;\n\n viewer.prepare(({ width, height, slideCount }) => {\n if (context.destroyed) return;\n width && context.box.setStageRatio(height / width);\n whiteboard = context.createWhiteBoardView({ size: slideCount });\n whiteboard.setBaseRect({ width, height });\n kick_start();\n });\n\n const { slide } = viewer;\n\n function kick_start() {\n if (context.storage.state.state) {\n log(\"[Slide] restore\", { ...context.storage.state.state });\n slide.setSlideState(context.storage.state.state);\n } else if (context.isAddApp) {\n log(\"[Slide] kick start\");\n slide.renderSlide(1);\n } else {\n log(\"[Slide] wait for restore\");\n const timeoutID = sideEffect.add(() => {\n const timer = setInterval(() => {\n if (!context.storage.state.state) {\n log(\"[Slide] timeout\");\n slide.renderSlide(1);\n }\n }, 15 * 1000);\n return () => clearInterval(timer);\n });\n const disposerID = sideEffect.addDisposer(\n context.storage.addStateChangedListener(() => {\n if (context.storage.state.state) {\n log(\"[Slide] restore\", { ...context.storage.state.state });\n slide.setSlideState(context.storage.state.state);\n sideEffect.flush(disposerID);\n sideEffect.flush(timeoutID);\n }\n })\n );\n }\n }\n\n // setup sync event\n slide.on(\"stateChange\", () => {\n if (context.isWritable) {\n log(\"[Slide] save state\", { ...slide.slideState });\n context.storage.setState({ state: slide.slideState });\n }\n });\n slide.on(\"syncDispatch\", payload => {\n if (context.isWritable) {\n log(\"[Slide] dispatch\", { ...payload });\n context.dispatchMagixEvent(\"syncDispatch\", payload);\n }\n });\n sideEffect.addDisposer(\n context.addMagixEventListener(\n \"syncDispatch\",\n ({ payload }) => {\n log(\"[Slide] receive\", { ...payload });\n slide.emit(\"syncReceive\", payload);\n },\n { fireSelfEventAfterCommit: true }\n )\n );\n\n // save state\n slide.on(\"slideChange\", page => {\n if (context.isWritable && whiteboard) {\n log(\"[Slide] page to\", page);\n whiteboard.jumpPage(page - 1);\n }\n });\n\n // handle ui events\n viewer.setReadonly(!context.isWritable);\n sideEffect.addDisposer(\n context.emitter.on(\"writableChange\", w => {\n viewer.setReadonly(!w);\n })\n );\n}\n"],"names":["isArrayish","require$$0","swizzle","simpleSwizzleModule","require$$1","colorStringModule","Slide","ColorString"],"mappings":"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"}
|