UNPKG

vue-next-directive

Version:
165 lines (164 loc) 30.8 kB
var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; const STATE = { loading: 0, loaded: 1, error: 2 }; function clear(img) { img.onload = null; img.onerror = null; } function loadImage(src) { return new Promise((resolve, reject) => { const img = new Image(); img.onload = () => { resolve(); clear(img); }; img.onerror = (error) => { reject(error); clear(img); }; img.src = src; }); } class ImageManager { constructor(option) { __publicField(this, "el"); __publicField(this, "src"); __publicField(this, "state"); __publicField(this, "loading"); __publicField(this, "error"); __publicField(this, "cache"); this.el = option.el; this.src = option.src; this.state = STATE.loading; this.loading = option.loading; this.error = option.error; this.cache = option.cache; this.setImageSrc(); } setImageSrc(src = this.loading) { this.el.setAttribute("src", src); } renderSrc() { if (this.state > STATE.loading) { return; } if (this.cache.has(this.src)) { this.state = STATE.loaded; this.setImageSrc(this.src); return; } loadImage(this.src).then(() => { this.state = STATE.loaded; this.cache.add(this.src); this.setImageSrc(this.src); }).catch((error) => { this.state = STATE.error; this.setImageSrc(this.error); console.error(`Image resources (${this.src}) Load failed`); }); } updateSrc(src) { if (this.src === src) { return; } this.src = src; this.state = STATE.loading; } } var defaultImg = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgd2lkdGg9IjgxMC44OTYiIGhlaWdodD0iNTIyLjQxODk5IiB2aWV3Qm94PSIwIDAgODEwLjg5NiA1MjIuNDE4OTkiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48cGF0aCBpZD0iYjJlNDk5MzctNGMyOC00NjUwLTlhNGUtZjZlYjAzNDI4NTJjLTE4OTgiIGRhdGEtbmFtZT0iUGF0aCA5MDIiIGQ9Ik04NjIuNDg5LDIxOS40MDc1MXMtMTIuNDI4LTQuNDM4LTIwLjQxNywxMy4zMTUtMjAuNDE3LDM3LjI4My0yMC40MTcsMzcuMjgzbDcuMSwxLjc3NXMxLjc3NS0xMi40MjgsNi4yMTQtMTQuMmwtMS43NzQsMTUuOTc3czUzLjI2MSwxOC42NDEsNzcuMjI4LTEuNzc1bC0uODg4LTYuMjE0czMuNTU0Ljg4OSwzLjU1NCw2LjIxM2wyLjY2My0yLjY2M3MtMi42NjMtNS4zMjYtMTAuNjUyLTEyLjQyOGMtNS4yNDQtNC42NjEtNy4wNDYtMTMuNTI5LTcuNjY1LTE5LjA3M2EyMy4wODA4NCwyMy4wODA4NCwwLDAsMC01LjMxNC0xMi41NjlDODg2LjgxLDIxOC44OTU1MSw4NzcuMTM2LDIxMi4zNTc0OSw4NjIuNDg5LDIxOS40MDc1MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOTQuNTUyIC0xODguNzkwNSkiIGZpbGw9IiMyZjJlNDEiLz48cmVjdCBpZD0iYjIzNWY4MDYtZTJjOS00NWVmLWI3MDMtZjdmMzcxOTMwOTA3IiBkYXRhLW5hbWU9IlJlY3RhbmdsZSAxMTEiIHg9IjI2NyIgeT0iMjI1LjA1OSIgd2lkdGg9IjQzNC44MzcwMSIgaGVpZ2h0PSIyOTMuMzYwOTkiIGZpbGw9IiNmZmYiLz48cGF0aCBpZD0iZTYxMThhZmEtNGM1My00ZWEwLTkzYWYtNDAyMTA4MjM5MzI3LTE4OTkiIGRhdGEtbmFtZT0iUGF0aCA3MDkiIGQ9Ik04OTcuNDcsNzA5LjIwOTU0SDQ1OS42MzR2LTI5Ni4zNkg4OTcuNDdabS00MzQuODM3LTNIODk0LjQ3MXYtMjkwLjM2MUg0NjIuNjMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iIzNmM2Q1NiIvPjxwYXRoIGlkPSJiODIxOTM0MS03ODBiLTRiOWYtOWQ4Mi1lN2QzZmEwODhjZjctMTkwMCIgZGF0YS1uYW1lPSJQYXRoIDcxMCIgZD0iTTQ5OC41NTIsNjgyLjcyNjVIODU5Ljg5NXYtMjQ0Ljg3N0g0OTguNTUyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iI2U1ZTVlNSIvPjxnIGlkPSJiNTdkNmExNy04ODc5LTRjNjMtOGIxZS04MDljNDkzN2FkN2MiIGRhdGEtbmFtZT0iR3JvdXAgNTUiPjxjaXJjbGUgaWQ9ImY2MjZjMmM2LTdjZGItNGQ5Mi1hMTg5LWU4Mzc3ZTRkNWRkOSIgZGF0YS1uYW1lPSJFbGxpcHNlIDExMCIgY3g9IjQwNi42NDMwMSIgY3k9IjM3Ny4wNTciIHI9IjM3LjkyOCIgZmlsbD0iIzNmM2Q1NiIvPjxwYXRoIGlkPSJhZWYyM2ZjZS1hNWJjLTQ4ZjMtOTI3MC1jMGE4MTJjZjcwZDctMTkwMSIgZGF0YS1uYW1lPSJQYXRoIDcxMSIgZD0iTTcyMC4xMzEsNjgyLjczMDUzSDUzNC4wN2EzLjc5ODg5LDMuNzk4ODksMCwwLDEtLjctLjA1NWw4OC0xNTIuNDI1YTYuMTYxLDYuMTYxLDAsMCwxLDEwLjcyNSwwbDU5LjA2MjA3LDEwMi4yOCwyLjgyOSw0Ljg5NVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOTQuNTUyIC0xODguNzkwNSkiIGZpbGw9IiM2YzYzZmYiLz48cGF0aCBpZD0iZjQ5Zjg3MGQtMWU2MC00YWU4LTljMmUtODQ0Y2I4NDQyOTdhLTE5MDIiIGRhdGEtbmFtZT0iUGF0aCA3MTIiIGQ9Ik03MjAuMTMyLDY4Mi43MjY1MUg2NTYuNjA1bDMxLjE4NS00NS4zLDIuMjQ2LTMuMjYzLDEuMTIzLTEuNjMyLDIuODI4LDQuODk1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgb3BhY2l0eT0iMC4yIiBzdHlsZT0iaXNvbGF0aW9uOmlzb2xhdGUiLz48cGF0aCBpZD0iZjI2ZDhiODEtNzJkMy00NDJmLTkzMWMtMWNmNzdmZWVlMjI3LTE5MDMiIGRhdGEtbmFtZT0iUGF0aCA3MTMiIGQ9Ik04MjMuNzI5LDY4Mi43MjY0OEg2NjIuODAxbDMxLjE4NS00NS4zLDIuMjQ0LTMuMjYzLDQwLjYzNi01OS4wM2E4LjIyMjkyLDguMjIyOTIsMCwwLDEsMTIuMjA2LS43Myw3LjM0MDY0LDcuMzQwNjQsMCwwLDEsLjU4NS43M1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOTQuNTUyIC0xODguNzkwNSkiIGZpbGw9IiM2YzYzZmYiLz48L2c+PHBhdGggaWQ9ImFmMjNlN2U3LWM2ZDktNDkwZC05YTFlLWY1NmI2MzJlNTQxMy0xOTA0IiBkYXRhLW5hbWU9IlBhdGggOTE2IiBkPSJNOTAyLjkzMSw0MTkuMjI4NTFhMTAuNzQzLDEwLjc0MywwLDAsMC0zLjgwNy0xNi4wMjdsLTI3LjU1My05My44ODUtMjAuOTgxLDEwLjI3NSwzMy42ODEsODkuMDU1YTEwLjgsMTAuOCwwLDAsMCwxOC42NiwxMC41ODFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjYTA2MTZhIi8+PHBhdGggaWQ9ImVkYjhhNjQ1LWQzN2MtNDFkNS05ZGNmLTRlODRmMjMyMDk4MC0xOTA1IiBkYXRhLW5hbWU9IlBhdGggOTE3IiBkPSJNODc3LjgxMywzMjQuOTk1NWwtMjMuNDgzLDYuMzU3YTQuODE3MDYsNC44MTcwNiwwLDAsMS02LjA0Mi00LjA4NmwtMi44MzgtMjQuMDg3YTEzLjM3NzUzLDEzLjM3NzUzLDAsMCwxLDI1Ljg0Ni02LjkxNWw5LjY3NCwyMi4xNTZhNC44MTcxMSw0LjgxNzExLDAsMCwxLTMuMTU2LDYuNTc2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iIzZjNjNmZiIvPjxwYXRoIGlkPSJmYWY1YTY2Zi0xYWJhLTQ2YmEtOTNmNS1jYjY1NjMzMGVmMmEtMTkwNiIgZGF0YS1uYW1lPSJQYXRoIDkxOCIgZD0iTTkwOS4wNjgsNTA4LjYyNDUxaDEyLjI2bDUuODMzLTMxLjhoLTE4LjFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjYTA2MTZhIi8+PHBhdGggaWQ9ImJlNjA2N2ZkLTU3NTYtNDU4YS1iMjY0LTMxMjRkOWFjNDczMC0xOTA3IiBkYXRhLW5hbWU9IlBhdGggOTE5IiBkPSJNOTA1Ljk0MSw1MDQuNjIyNDlIOTMwLjA5YTE1LjM4NiwxNS4zODYsMCwwLDEsMTUuMzg3LDE1LjM4NXYuNTAySDkwNS45NDJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjMmYyZTQxIi8+PHBhdGggaWQ9ImJjMTUyODlkLWM3Y2MtNDk3ZS05ZWJhLWY3NDNjYTg2OTg0Yi0xOTA4IiBkYXRhLW5hbWU9IlBhdGggOTIwIiBkPSJNOTIzLjI5OSw0OTEuNTc0NTFxLS4yMTQsMC0uNDMtLjAyMWwtMTYuOTY3LTEuMjM1YTQuNSw0LjUsMCwwLDEtMy44MDktNi4wMjlsMjIuNzA3LTUxLjAxNWEzLjUsMy41LDAsMCwwLS4yLTIuOCwzLjQ1MDE2LDMuNDUwMTYsMCwwLDAtMi4yMTEtMS43NmMtMTAuNjc3LTIuNzkxLTM4LjA3Mi0xMC4yMjMtNjEuNzg2LTE4LjkxOC0xMC4xNi0zLjcyNi0xNi41NTktOS4xMDktMTkuMDE5LTE2LTMuMjQzLTkuMDg3LDEuNTU1LTE3LjM3NCwxLjc2LTE3LjcyMmwuMTYxLS4yNzIsMjIuMzE1LDIuMDI4LDI0LjE5MSwyLjA1OCw1My4wMTMsMjguNDI4YTIwLjA4NiwyMC4wODYsMCwwLDEsOC44MTksMjUuNzg0bC0yNC40NDEsNTQuODA4QTQuNSw0LjUsMCwwLDEsOTIzLjI5OSw0OTEuNTc0NTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjMmYyZTQxIi8+PGNpcmNsZSBpZD0iYTM2NzExOTctZTVmMi00NTQ4LWI5YTAtZmYyM2Y3MWJjNmQyIiBkYXRhLW5hbWU9IkVsbGlwc2UgMTc1IiBjeD0iNjc1LjE0OTk5IiBjeT0iNjMuNTUiIHI9IjI0LjU2MSIgZmlsbD0iI2EwNjE2YSIvPjxwYXRoIGlkPSJhOWQ4YmViNC00ZjEzLTQ3ZmQtYTQ0Ny0zZDQ5MGY4NTU5MDEtMTkwOSIgZGF0YS1uYW1lPSJQYXRoIDkyMSIgZD0iTTkwMi4wNjgsNTA3LjYyNDUxaDEyLjI2bDUuODMzLTMxLjhoLTE4LjFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjYTA2MTZhIi8+PHBhdGggaWQ9ImUxNmY1ZWE3LTZiY2YtNGFlNC1hYWZkLTg0OTI2YmExMWU1NS0xOTEwIiBkYXRhLW5hbWU9IlBhdGggOTIyIiBkPSJNODk4Ljk0MSw1MDMuNjIyNDlIOTIzLjA5YTE1LjM4NiwxNS4zODYsMCwwLDEsMTUuMzg3LDE1LjM4NXYuNTAySDg5OC45NDJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjMmYyZTQxIi8+PHBhdGggaWQ9ImFhYzdkMzUxLTczNzQtNDNjYy1hM2Y1LTYxYzJkMDA5Njc0Mi0xOTExIiBkYXRhLW5hbWU9IlBhdGggOTIzIiBkPSJNOTE2LjI5OSw0OTQuNTc0NTFxLS4yMTQsMC0uNDMtLjAyMWwtMTYuOTY3LTEuMjM1YTQuNSw0LjUsMCwwLDEtMy44MDktNi4wMjlsMjIuNzA3LTUxLjAxNWEzLjUsMy41LDAsMCwwLS4yLTIuOCwzLjQ1MTA3LDMuNDUxMDcsMCwwLDAtMi4yMTEtMS43NmMtMTAuNjc3LTIuNzkxLTM4LjA3Mi0xMC4yMjMtNjEuNzg2LTE4LjkxOC0xMC4xNi0zLjcyNi0xNi41NTktOS4xMDktMTkuMDE5LTE2LTMuMjQzLTkuMDg3LDEuNTU1LTE3LjM3NCwxLjc2LTE3LjcyMmwuMTYxLS4yNzIsMjIuMzE1LDIuMDI4LDI0LjE5MSwyLjA1OCw1My4wMTMsMjguNDI4YTIwLjA4NiwyMC4wODYsMCwwLDEsOC44MTksMjUuNzg0bC0yNC40NDEsNTQuODA4QTQuNSw0LjUsMCwwLDEsOTE2LjI5OSw0OTQuNTc0NTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjMmYyZTQxIi8+PHBhdGggaWQ9ImYyODk2YTk1LTQ5MjEtNDhmYS05NjFkLWRhZWY1Y2I3N2ZmMy0xOTEyIiBkYXRhLW5hbWU9IlBhdGggOTI0IiBkPSJNODc3LjI3NywyOTAuODI4NTFsLTI2LTlzLTE2LjMyMiwxMi41NC04LjQ4MSw0My42NDlhNzcuMDEyMTYsNzcuMDEyMTYsMCwwLDEtMy40LDQ4LjMyLDQ5Ljc4MTQ5LDQ5Ljc4MTQ5LDAsMCwxLTIuNjE5LDUuNTMxczI5LDM1LDU2LDlsLTEwLjUtNTAuNVM4OTguNzc3LDMwNC4zMjg1MSw4NzcuMjc3LDI5MC44Mjg1MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOTQuNTUyIC0xODguNzkwNSkiIGZpbGw9IiNjYmNiY2IiLz48cGF0aCBpZD0iZTU5NTczNDktOGQ2MS00MTAwLWJiYzUtOTEyMGJhZGRmNmY3LTE5MTMiIGRhdGEtbmFtZT0iUGF0aCA5MzAiIGQ9Ik05NDAuMzQ0LDQxNC43Mjg1MWExMC43NDMwNiwxMC43NDMwNiwwLDAsMC03LjY5MS0xNC41NjdsLTUwLjEzNS04NC4wMjQtMTcuNzQ4LDE1LjE5Miw1NC44NjIsNzcuODE2YTEwLjgsMTAuOCwwLDAsMCwyMC43MTIsNS41ODRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjYTA2MTZhIi8+PHBhdGggaWQ9ImE4MjNkM2ViLTE2ZWQtNDg1Zi1iNjQ5LTk1YjM3ZGVmNDY3OC0xOTE0IiBkYXRhLW5hbWU9IlBhdGggOTMxIiBkPSJNODkyLjQ4LDMyOS43NjA1MmwtMjEuMTUsMTIuMDIyYTQuODE3LDQuODE3LDAsMCwxLTYuODcxLTIuNDQ2bC04Ljc2OS0yMi42MTZhMTMuMzc4MDcsMTMuMzc4MDcsMCwwLDEsMjMuMy0xMy4xNTNoMGwxNC45LDE5LjAzN2E0LjgxNzA2LDQuODE3MDYsMCwwLDEtMS40MTMsNy4xNTZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjY2JjYmNiIi8+PHBhdGggaWQ9ImJhOWM0YWIxLTNjMzItNDNiMS05ZTI5LTE0ZWM3NTE0MWM3Ny0xOTE1IiBkYXRhLW5hbWU9IlBhdGggOTEyIiBkPSJNODQxLjcwMDc5LDI1Ni45NDQ4OFM4NTIuNzUsMjQ0LjA4MTQ5LDg1OC45NjUsMjQyLjMwNjQ5YTUzLjQ2MSw1My40NjEsMCwwLDAsMTAuNzM1NzktNC4zNjE2MXMxMi4zNDIyMSwxMS40NjM2LDIyLjEwNzE2LDEyLjM1MDYuODg4LTIxLjMuODg4LTIxLjNsLTE3Ljc1NC00LjQzOC0xNi44NjYsMS43NzUtMTMuMzE1LDguODc3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iIzJmMmU0MSIvPjxwYXRoIGlkPSJiMTQxMDU3ZC1lYjExLTQzYzQtOWY2NS00ZTkxYmY4MGM0ZDEtMTkxNiIgZGF0YS1uYW1lPSJQYXRoIDk0MCIgZD0iTTE5NC41NTIsNDE1LjMzNjUxYzAtNjcuMTY1LDU0LjQ0OC0yMjYuNTQ2LDEyMS42MTQtMjI2LjU0NnMxMjEuNjE0LDE1OS4zODEsMTIxLjYxNCwyMjYuNTQ2YTEyMS42MTQsMTIxLjYxNCwwLDAsMS0yNDMuMjI3LDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjZTVlNWU1Ii8+PHBhdGggaWQ9ImJiYzdjYzc0LTdmNjYtNDdkYi1hMWUwLTZiODk1OTIyYjVlNS0xOTE3IiBkYXRhLW5hbWU9IlBhdGggOTQxIiBkPSJNMzE2LjE2Niw3MTEuMjA5NWExLDEsMCwwLDEtMS0xdi00MTkuMjg0YTEsMSwwLDAsMSwyLDB2NDE5LjI4NEExLDEsMCwwLDEsMzE2LjE2Niw3MTEuMjA5NVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOTQuNTUyIC0xODguNzkwNSkiIGZpbGw9IiNjY2MiLz48cGF0aCBpZD0iYWEwOTBmMTItZmM3Mi00NzQ3LTk2ZWQtMWU2MzdhOWFhYmMwLTE5MTgiIGRhdGEtbmFtZT0iUGF0aCA5NDIiIGQ9Ik0zMTYuMTY2LDM3MS44NzA1MWExLDEsMCwwLDEtLjcwNy0uMjkzbC00OC4xMzUtNDguMTM0YTEsMSwwLDAsMSwxLjQxNC0xLjQxNGw0OC4xMzUsNDguMTM0YTEsMSwwLDAsMS0uNzA3LDEuNzA3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iI2NjYyIvPjxwYXRoIGlkPSJmMDZmOWRkYi05OTgzLTRiYWUtODU2OS1jNTI2OTQ0NDA1ZGYtMTkxOSIgZGF0YS1uYW1lPSJQYXRoIDk0MyIgZD0iTTMxNi4xNjYsNDU1LjIwMDQ5YTEsMSwwLDAsMS0uNzA3LTEuNzA3bDgwLjYxLTgwLjYxYTEsMSwwLDEsMSwxLjQzODUxLDEuMzg5NDlsLS4wMjQ1MS4wMjQ1MS04MC42MSw4MC42MTJhMSwxLDAsMCwxLS43MDcuMjkzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iI2NjYyIvPjxwYXRoIGlkPSJiN2FjYTRmZS0yNGNkLTQzZDMtODVhNi0wODI3MzExMTE5ZjgtMTkyMCIgZGF0YS1uYW1lPSJQYXRoIDk0NCIgZD0iTTEwMDQuNDQ4LDcxMS4yMDg1MWgtNzQzYTEsMSwwLDAsMSwwLTJoNzQzYTEsMSwwLDAsMSwwLDJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjZTZlNmU2Ii8+PHBhdGggaWQ9ImU4OTllYTYxLTcyNTQtNDUxMS04Y2Q0LWVlZTUxZDMwNmViNi0xOTIxIiBkYXRhLW5hbWU9IlBhdGggOTMyIiBkPSJNMzUwLjQyNyw2MzQuNDIwNTFjMC0xNy4yMDYsMTMuOTU3LTU4LjAzNCwzMS4xNzQtNTguMDM0czMxLjE3NSw0MC44MjUsMzEuMTc1LDU4LjAzNGEzMS4xNzQ1LDMxLjE3NDUsMCwwLDEtNjIuMzQ5LDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk0LjU1MiAtMTg4Ljc5MDUpIiBmaWxsPSIjNmM2M2ZmIi8+PHBhdGggaWQ9ImZhMzM1NzcyLWIxZGQtNDcwOS05Nzk3LWY4NzMzZDhiNjNhYy0xOTIyIiBkYXRhLW5hbWU9IlBhdGggOTMzIiBkPSJNMzgxLjYwMSw3MTAuMjA4NTJhLjI1Ni4yNTYsMCwwLDEtLjI1Ni0uMjU2VjYwMi41NDU0OWEuMjU2NS4yNTY1LDAsMSwxLC41MTMsMHYxMDcuNDA3YS4yNTYuMjU2LDAsMCwxLS4yNTYuMjU2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iI2U2ZTZlNiIvPjxwYXRoIGlkPSJhMzZhNDExMy00Y2ZkLTRiZDMtYjY5MS00NWU1NmM1NjQ4ZjItMTkyMyIgZGF0YS1uYW1lPSJQYXRoIDkzNCIgZD0iTTM4MS42MDEsNjIzLjI4MDUyYS4yNTUxLjI1NTEsMCwwLDEtLjE4MS0uMDc1bC0xMi4zMzktMTIuMzNhLjI1NjMzLjI1NjMzLDAsMCwxLC4zNjMtLjM2MmgwbDEyLjMzOSwxMi4zM2EuMjU2LjI1NiwwLDAsMS0uMTgxLjQzN1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOTQuNTUyIC0xODguNzkwNSkiIGZpbGw9IiNlNmU2ZTYiLz48cGF0aCBpZD0iZjUxY2ZmMzAtZGQ0Yi00YzkyLWE4NjItNGU5MjBjZWM4ZDZkLTE5MjQiIGRhdGEtbmFtZT0iUGF0aCA5MzUiIGQ9Ik0zODEuNjAxLDY0NC42Mjg0OWEuMjU2LjI1NiwwLDAsMS0uMTgxLS40MzdsMjAuNjY0LTIwLjY1YS4yNTYzMi4yNTYzMiwwLDAsMSwuMzYzLjM2MmwtMjAuNjY1LDIwLjY1QS4yNTUuMjU1LDAsMCwxLDM4MS42MDEsNjQ0LjYyODQ5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5NC41NTIgLTE4OC43OTA1KSIgZmlsbD0iI2U2ZTZlNiIvPjwvc3ZnPg=="; var defaultError = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgd2lkdGg9IjY5MCIgaGVpZ2h0PSI0NDguNzU5MiIgdmlld0JveD0iMCAwIDY5MCA0NDguNzU5MiIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Ik00NjYuODEyOTIsNjQ1LjczMTNjNC42Njg0Ny0xMC4wODM1OCw5LjMzMzM5LTIwLjMxNjY2LDExLjM1OTQ2LTMxLjI0MjIzczEuMTc1NjktMjIuNzgyOTMtNC42MjctMzIuMjU5MzItMTcuMjI4MTMtMTUuOTAyNDEtMjguMTMxNTMtMTMuNzYwMjJjLTguOTU1MzIsMS43NTk0NS0xNi4xNDYwNSw4LjgxMjY4LTIwLjM1NjUxLDE2LjkwOTkyUzQxOS4xNTc1OSw2MDIuNjA5NTksNDE3LjUyLDYxMS41ODhjLS41MjkxNy0xMC4yMDAxLTEuMDg5Ni0yMC41NjQzNi00LjQ3OC0zMC4xOTk3NXMtMTAuMDYwNDUtMTguNjE0NjMtMTkuNTY5NC0yMi4zNDMxMy0yMS44Nzg4Ni0uNzk2NDgtMjYuODkwNjEsOC4xMDMyYy03LjA2MDc0LDEyLjUzODE4LDIuMzAxNTUsMzAuMTI1NDEtNS44MTczNCw0Mi4wMDU4LTEuMzkyNjUtMTEuOTE3LTEzLjg1NDcxLTIxLjMzMjM0LTI1LjY5ODc5LTE5LjQxNTlzLTIwLjcwMTA5LDE0Ljc4MTI4LTE4LjI2NDYsMjYuNTI5NGMxLjQ0OTc4LDYuOTkwNDcsNi4yMTkzMSwxMi45MzYzMSwxMS45MjE1NiwxNy4yMzJzMTIuMzM0MjEsOS4yNzQzNiwxOC44OTQ3NSwxMi4wOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNTUgLTIyNS42MjA0KSIgZmlsbD0iI2YyZjJmMiIvPjxwYXRoIGQ9Ik0zMjMuMDE5ODcsNTk4LjE1NzgxYzkuNDA4MjUsMy4yODg1MSwxOC45MDMsNi42MTQyNSwyNy40OTIyNiwxMS43NTU1OCw3LjY5OCw0LjYwNzg2LDE0LjU1MywxMC44MTE4NywxOC44ODIzMSwxOC43NTY5YTMzLjM1NTU2LDMzLjM1NTU2LDAsMCwxLDQuMTI1ODMsMTMuODU4NjFjLjA2MjUxLDEuMDE3NTksMS42NTQ1OCwxLjAyNDY5LDEuNTkxNjQsMC0uNTU2NjEtOS4wNjEtNC45NzIzOC0xNy4zNTMtMTEuMDg3LTIzLjkxMDc1LTYuNzA0LTcuMTg5ODQtMTUuMzkxNTgtMTIuMTAwNDEtMjQuMzYxMS0xNS45MTA0My01LjMxODIxLTIuMjU5LTEwLjc2ODU5LTQuMTc4OTUtMTYuMjIwOC02LjA4NDY4LS45Njg4Ny0uMzM4NjYtMS4zODU0LDEuMTk4NDItLjQyMzExLDEuNTM0NzdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMzc3LjI4NzQ1LDU2MC42MjQ4NmExNDMuMzgyNTQsMTQzLjM4MjU0LDAsMCwxLDEzLjc5MTEzLDMwLjYxNTU3LDE0NS4xMTY3MiwxNDUuMTE2NzIsMCwwLDEsNi4zNjEsMzIuOTY4NDYsMTQzLjMwNTQzLDE0My4zMDU0MywwLDAsMSwuMTUxNTEsMTguODM2ODVjLS4wNTkwNSwxLjAyMzI4LDEuNTMyNzgsMS4wMTk4OSwxLjU5MTYzLDBhMTQ1LjE5NDEsMTQ1LjE5NDEsMCwwLDAtMi4wNDAzMi0zMy44MjA0OSwxNDYuOTI2NDcsMTQ2LjkyNjQ3LDAsMCwwLTkuNzY5LTMyLjQ0MDIyLDE0My4yNSwxNDMuMjUsMCwwLDAtOC43MTE2Mi0xNi45NjM1Ljc5NjQxLjc5NjQxLDAsMCwwLTEuMzc0MzIuODAzMzNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNDU1LjE4OCw1NjkuNzY3NDNhMjMyLjA0MzU5LDIzMi4wNDM1OSwwLDAsMC0xNy4xMTY0OCw1Ny41Nzg0N3EtMS4zNDIyNSw4LjM2NDg3LTIuMDc3OTEsMTYuODExODJjLS4wODksMS4wMjAyMywxLjUwMzE3LDEuMDE0MjYsMS41OTE2MywwYTIzMS4yMDkxOSwyMzEuMjA5MTksMCwwLDEsMTIuNzM3ODgtNTguMDI1MjhxMi44MzM4Mi03Ljg5MjA5LDYuMjM5MjEtMTUuNTYxNjljLjQxMi0uOTI3OTEtLjk1OS0xLjczODYyLTEuMzc0MzMtLjgwMzMyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIiBmaWxsPSIjZmZmIi8+PHJlY3QgeD0iNzA5LjE3NjI1IiB5PSI2MzkuNDc4MTUiIHdpZHRoPSI5Ljg4MjM1IiBoZWlnaHQ9IjQ2LjU4ODI0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTEyLjU5NTM1IC0yODUuNDgwNCkgcm90YXRlKDg5LjI1ODcyKSIgZmlsbD0iI2U2ZTZlNiIvPjxwYXRoIGQ9Ik03NTQuMDI2NTIsNjY5LjYxNjI0bC02LjY1MjU3LS4wMTk0LTQuMTEyMzktNy4zMzcxMiw0LjQ0NS03LjMxMjM3LDYuMTgxMS4wMTc5MmExMS45OTg5MywxMS45OTg5MywwLDEsMCwuMTM4ODksMTQuNjUxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIiBmaWxsPSIjZTZlNmU2Ii8+PHBhdGggZD0iTTY3NC4yMDgzMyw2NjkuNjE2MjRsNi42NTI1OC0uMDE5NCw0LjExMjM5LTcuMzM3MTItNC40NDUtNy4zMTIzNy02LjE4MTA5LjAxNzkyYTExLjk5ODkyLDExLjk5ODkyLDAsMSwxLS4xMzg5LDE0LjY1MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNTUgLTIyNS42MjA0KSIgZmlsbD0iI2U2ZTZlNiIvPjxwYXRoIGQ9Ik05NDQsNjQ2LjU4OTU4SDI1NmExLDEsMCwwLDEsMC0ySDk0NGExLDEsMCwwLDEsMCwyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIiBmaWxsPSIjM2YzZDU2Ii8+PGNpcmNsZSBjeD0iNTQwLjQ4NjIyIiBjeT0iMTk3Ljk2OTE4IiByPSIzMyIgZmlsbD0iIzJmMmU0MSIvPjxwb2x5Z29uIHBvaW50cz0iNTUzLjg1OSAzODMuMjI2IDU1Ni40MDEgMzk1LjIxOSA2MDMuODcxIDM5MS4xMjQgNjAwLjEyIDM3My40MjMgNTUzLjg1OSAzODMuMjI2IiBmaWxsPSIjZmZiOGI4Ii8+PHBhdGggZD0iTTc4OS4xODgwOSw2MTguNDk2NzNoMzguNTMwNzNhMCwwLDAsMCwxLDAsMHYxNC44ODY4N2EwLDAsMCwwLDEsMCwwSDgwNC4wNzQ5NGExNC44ODY4NSwxNC44ODY4NSwwLDAsMS0xNC44ODY4NS0xNC44ODY4NXYwQTAsMCwwLDAsMSw3ODkuMTg4MDksNjE4LjQ5NjczWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTA4LjcxMDUxIDEzMjAuOTcyNjkpIHJvdGF0ZSgtMTAxLjk2NDY2KSIgZmlsbD0iIzJmMmU0MSIvPjxwb2x5Z29uIHBvaW50cz0iNTI0LjEyIDM4Mi41ODYgNTE4Ljc3NyAzOTMuNjIxIDQ3My42NzMgMzc4LjI2NCA0ODEuNTU5IDM2MS45NzkgNTI0LjEyIDM4Mi41ODYiIGZpbGw9IiNmZmI4YjgiLz48cGF0aCBkPSJNNzcxLjAzNzQ1LDYxNy40NTU2MmgyMy42NDM4OGEwLDAsMCwwLDEsMCwwdjE0Ljg4Njg3YTAsMCwwLDAsMSwwLDBINzU2LjE1MDU5YTAsMCwwLDAsMSwwLDB2MEExNC44ODY4NSwxNC44ODY4NSwwLDAsMSw3NzEuMDM3NDUsNjE3LjQ1NTYyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTM3OS45NDA4IDgyNC44NjgxOCkgcm90YXRlKC02NC4xNjQ1OCkiIGZpbGw9IiMyZjJlNDEiLz48cGF0aCBkPSJNNjkwLjI1OTI1LDU4Ni40MTM2MmExMC43NDI3MiwxMC43NDI3MiwwLDAsMCwxMi43MDg4MS0xMC40ODAxNmw3NC4zNzM4OC02OC41NzExLTE4LjQ3LTE0LjMwNTQ5LTY3LjMzNzQzLDcxLjk0MzQxYTEwLjgwMDkxLDEwLjgwMDkxLDAsMCwwLTEuMjc1MjcsMjEuNDEzMzRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNmZmI4YjgiLz48Y2lyY2xlIGN4PSI1MzYuMzQ0NDkiIGN5PSIyMDcuODk4MzEiIHI9IjI0LjU2MTAzIiBmaWxsPSIjZmZiOGI4Ii8+PHBhdGggZD0iTTgxMy4zODYxMiw1NzcuODkzMjljLTE3LjIyODUxLjAwMDQ5LTM3Ljk3OC0zLjYyODQyLTUwLjc3ODU2LTE4LjQ3N2wtLjI4ODMzLS4zMzQ0Ny4yOTY2My0uMzI4MTNjLjA5NjY4LS4xMDY5Myw5LjUxMzY3LTEwLjg2ODY1LjExMDg0LTMwLjA2MUw3NDkuNzk5LDUzMi42NzAxNSw3MzYuOTI4Niw1MTUuNjgxMzhsNy4xMjk2NC0yMS4zODkxNiwyOS4xNzc0OS0yMy41MDM5MWEyNi43NTA3NCwyNi43NTA3NCwwLDAsMSwxNC42MTA2LTUuNzg5MDYsODAuMjEwNTgsODAuMjEwNTgsMCwwLDAsMjcuNzg0NjctNy45MTMwOSwyNy45MDYsMjcuOTA2LDAsMCwxLDEyLjc5OTgtMi43OTgzNGwuNTczNzMuMDE2MTFhOS45NTAyMiw5Ljk1MDIyLDAsMCwxLDkuNjQwNjMsMTAuNzA3NTJjLTEuOTc4NTIsMjUuNjI5ODktNS40NzI0Miw4Ny41NDM0Niw0Ljc5MTUsMTA4Ljg2MTMzbC4yNjUxNC41NTA3OC0uNTkyMjkuMTUwMzlBMTM2LjExMzIsMTM2LjExMzIsMCwwLDEsODEzLjM4NjEyLDU3Ny44OTMyOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNTUgLTIyNS42MjA0KSIgZmlsbD0iIzZjNjNmZiIvPjxwYXRoIGQ9Ik03NjUuOTg2MjIsNTU5LjA4OTU4cy02NS02LTcyLDEzLDEsMjgsMTMsMzIsNDEsOSw0MSw5bDEzLTE2LDM0LDJzMzcuODg0ODIsMjEuOTczMiw0OC4zNTk3NSw0NS40NzM3N0EzMC43NjE5MywzMC43NjE5MywwLDAsMCw4NjkuMTIzNDMsNjYyLjgwMmM4LjM5OC41ODQ0NywxNS44NjI3OS0yLjU4NzQsMTUuODYyNzktMTUuNzEyNCwwLTMwLTQyLTczLTQyLTczWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIiBmaWxsPSIjMmYyZTQxIi8+PHBhdGggZD0iTTcxNi40ODYyMiw1ODguNTg5NThzMTctNSw0NCw4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiMyZjJlNDEiLz48cGF0aCBkPSJNNzY2Ljg0Mjg2LDQxNy44NTU0N2E3My4wNDExNSw3My4wNDExNSwwLDAsMCwzMS41OTkxOSwxMC40MTE5bC0zLjMzMDg0LTMuOTkxYTI0LjQ3NzUsMjQuNDc3NSwwLDAsMCw3LjU2MTEsMS41MDE0Miw4LjI4MDY2LDguMjgwNjYsMCwwLDAsNi43NDk1NC0zLjE1OTE3LDcuNzAyMjksNy43MDIyOSwwLDAsMCwuNTE1NTYtNy4xMTUsMTQuNTg4NTEsMTQuNTg4NTEsMCwwLDAtNC41ODkzNi01LjczODUsMjcuMzIyODYsMjcuMzIyODYsMCwwLDAtMjUuNDMwNjYtNC41NDQ5MywxNi4zMjk3NCwxNi4zMjk3NCwwLDAsMC03LjU5NTQyLDQuODcyMiw5LjIzNTc4LDkuMjM1NzgsMCwwLDAtMS44NjI1Niw4LjU2MDg2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiMyZjJlNDEiLz48cGF0aCBkPSJNNzk1LjMwOTExLDM5OC4yMjQwN0E3NS40ODQ2OCw3NS40ODQ2OCwwLDAsMSw4MTQuNDQ2LDM3MS43MDI2OWM1LjI5Mi00LjcwMjc2LDExLjQ3MjQ2LTguNzQzMDgsMTguNDQ2MjYtOS45NjI3czE0LjgzMzA5Ljg2OTgyLDE5LjExMDU1LDYuNTExMTZjMy40OTc3Miw0LjYxMyw0LjE1MjEzLDEwLjc5Mjc2LDMuNzY2NzIsMTYuNTY5cy0xLjY3NjMyLDExLjQ5NjUxLTEuNTUyNywxNy4yODQyOGEzNS40Njc5NCwzNS40Njc5NCwwLDAsMCw1MC41MjcxMiwzMS4zNTFjLTYuMDIxNTIsMy4zMjg4NS0xMC43MTQsOC41OTc3Ny0xNi4zMDQ4LDEyLjYwODEycy0xMi45NjI3Miw2Ljc2MDEtMTkuMzEyMzMsNC4xMTAxMmMtNi43MTgxMi0yLjgwMzc4LTkuNzk5NjMtMTAuNDE5MzctMTIuMjA2MDctMTcuMjg5ODRMODQ2LjE4OSw0MDIuMjQ0M2MtMS44MjQzNC01LjIwODUyLTMuNzM5LTEwLjU3MTU2LTcuNDYyLTE0LjY0NTRzLTkuNzY0NjEtNi41NTY4LTE0Ljg4OTI3LTQuNTA4NzFjLTMuODg0LDEuNTUyMjUtNi40MTI3NSw1LjI1NzU1LTguNjMwMjksOC44MDRzLTQuNTU3LDcuMzE5ODQtOC4zMDM1OSw5LjE3OTM1LTkuMjk4MzcuNzE0Ny0xMC41MjI5Mi0zLjI4NDcxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiMyZjJlNDEiLz48cmVjdCB4PSI4MDIuOTE5MDIiIHk9IjU0My4zMTQxOCIgd2lkdGg9IjkuODgyMzUiIGhlaWdodD0iNDYuNTg4MjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00MTYuNzQ3NDQgNTI0LjEzODM3KSByb3RhdGUoLTQ1Ljc0MTI4KSIgZmlsbD0iI2U2ZTZlNiIvPjxwYXRoIGQ9Ik04MjEuNTEwMDUsNTc5LjkwOTQ0YTkuODgyMzUsOS44ODIzNSwwLDEsMCwxMy45NzQ1OS0uMTgwODFBOS44ODIzOCw5Ljg4MjM4LDAsMCwwLDgyMS41MTAwNSw1NzkuOTA5NDRabTEwLjExMSw5Ljg1MjdhNC4yMzUyOSw0LjIzNTI5LDAsMSwxLS4wNzc0OS01Ljk4OTExQTQuMjM1NCw0LjIzNTQsMCwwLDEsODMxLjYyMTA1LDU4OS43NjIxNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNTUgLTIyNS42MjA0KSIgZmlsbD0iI2U2ZTZlNiIvPjxwYXRoIGQ9Ik03ODQuNDc5NjIsNTMzLjU0ODg5bDQuNjkwMzcsNC43MTc4LTIuMjgwMjMsOC4wOTYtOC4zMTM3LDIuMDI3NTUtNC4zNTgtNC4zODMzN2ExMS45OTg5MSwxMS45OTg5MSwwLDEsMCwxMC4yNjE1OC0xMC40NThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNlNmU2ZTYiLz48cGF0aCBkPSJNODAzLjczNiw1NzcuOTc5MjNhMTEuNTc5LDExLjU3OSwwLDAsMS0xLjI2ODMxLS4wNzAzMiwxMS4wMjM0MSwxMS4wMjM0MSwwLDAsMS05LjY4MDE4LTkuNjgxMTUsMTEuMDAzMzcsMTEuMDAzMzcsMCwwLDEsMTAuOTMxMTUtMTIuMjUsMTAuNjI0ODMsMTAuNjI0ODMsMCwwLDEsMS40NjYwNy4xMDkzOEw4MzguNzYzMzIsNTIwLjM0MmwtMy41MDUxMy0xMS42ODQ1NywxNy42MDUtNy44OTE2LDQuOTMzODQsMTIuMDYwMDZhMjAuNDg5NzIsMjAuNDg5NzIsMCwwLDEtNi4xNzcyNCwyMy42NzIzNmwtMzYuOTYxMTksMjkuNDAwODhhMTAuMjU4ODUsMTAuMjU4ODUsMCwwLDEsLjA2MDA2LDEuMDc4NjEsMTEuMDE4MjQsMTEuMDE4MjQsMCwwLDEtMy42NjM4Miw4LjE5Njc4QTEwLjg3MTg2LDEwLjg3MTg2LDAsMCwxLDgwMy43MzYsNTc3Ljk3OTIzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIiBmaWxsPSIjZmZiOGI4Ii8+PHBhdGggZD0iTTgyOS45ODYyMiw0NTkuMDg5NThoMGE5LjQ1MzM1LDkuNDUzMzUsMCwwLDEsMTIuNjI4LDUuMTU2M2wxNy4zNzIsNDMuODQzNzEtMjcsMThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiM2YzYzZmYiLz48cGF0aCBkPSJNNzAzLjQ4NjIyLDQ2OS4zMjcyOFYyNTAuODgyN2EyNS4yOTgxMiwyNS4yOTgxMiwwLDAsMC0yNS4yNjIzLTI1LjI2MjNIMzM0Ljk1Mzg2YTI1LjI5ODEzLDI1LjI5ODEzLDAsMCwwLTI1LjI2MjMsMjUuMjYyM1Y0NjkuMzI3MjhhMjUuMjk4MTMsMjUuMjk4MTMsMCwwLDAsMjUuMjYyMywyNS4yNjIzSDY3OC4yMjM5MkEyNS4yOTgxMiwyNS4yOTgxMiwwLDAsMCw3MDMuNDg2MjIsNDY5LjMyNzI4Wk0zMzQuOTUzODYsNDkxLjYxNzU0YTIyLjMxNzQzLDIyLjMxNzQzLDAsMCwxLTIyLjI5MDI2LTIyLjI5MDI2VjI1MC44ODI3YTIyLjMxNzQ0LDIyLjMxNzQ0LDAsMCwxLDIyLjI5MDI2LTIyLjI5MDI3SDY3OC4yMjM5MmEyMi4zMTc0NCwyMi4zMTc0NCwwLDAsMSwyMi4yOTAyNywyMi4yOTAyN1Y0NjkuMzI3MjhhMjIuMzE3NDQsMjIuMzE3NDQsMCwwLDEtMjIuMjkwMjcsMjIuMjkwMjZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiMzZjNkNTYiLz48cGF0aCBkPSJNNzAwLjUxNDE5LDI2NC45MjM2OEgzMTIuNjYzNmExLjQ4NiwxLjQ4NiwwLDEsMSwwLTIuOTcySDcwMC41MTQxOWExLjQ4NiwxLjQ4NiwwLDAsMSwwLDIuOTcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIiBmaWxsPSIjM2YzZDU2Ii8+PGNpcmNsZSBjeD0iODIuOTI1OSIgY3k9IjIwLjgwNDI1IiByPSI3LjQzMDA5IiBmaWxsPSIjNmM2M2ZmIi8+PGNpcmNsZSBjeD0iMTA4LjE4ODIiIGN5PSIyMC44MDQyNSIgcj0iNy40MzAwOSIgZmlsbD0iIzZjNjNmZiIvPjxjaXJjbGUgY3g9IjEzMy40NTA1IiBjeT0iMjAuODA0MjUiIHI9IjcuNDMwMDkiIGZpbGw9IiM2YzYzZmYiLz48cGF0aCBkPSJNNDQzLjk3ODY3LDQyNC44NTIwNmEuOTk5NzQuOTk5NzQsMCwwLDEtMS0xYzAtMTAuNDI2NzUtNC41NzA4LTE2LjI0MjE4LTExLjk0NTMxLTIyLjI0NzA3YS45OTk5Mi45OTk5MiwwLDEsMSwxLjI2MjctMS41NTA3OGM3LjgzMDA3LDYuMzc1LDEyLjY4MjYxLDEyLjU4MDA4LDEyLjY4MjYxLDIzLjc5Nzg1QS45OTk3My45OTk3MywwLDAsMSw0NDMuOTc4NjcsNDI0Ljg1MjA2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIi8+PHBhdGggZD0iTTM1OC4zMTY1Niw0MjQuODUyMDZhLjk5OTc0Ljk5OTc0LDAsMCwxLTEtMWMwLTExLjIxNzc3LDQuODUyNTQtMTcuNDIyODUsMTIuNjgyNjItMjMuNzk3ODVhLjk5OTkyLjk5OTkyLDAsMSwxLDEuMjYyNywxLjU1MDc4Yy03LjM3NDUyLDYuMDA0ODktMTEuOTQ1MzIsMTEuODIxMjktMTEuOTQ1MzIsMjIuMjQ3MDdBLjk5OTczLjk5OTczLDAsMCwxLDM1OC4zMTY1Niw0MjQuODUyMDZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiLz48cGF0aCBkPSJNNDM1LjQxMzI0LDM1Ni4zMjE3OWExLDEsMCwwLDEtLjYzMTgzLTEuNzc1MzljNy41ODA1Ni02LjE3MTM5LDguMTk3MjYtMTQuOTM4NDgsOC4xOTcyNi0yNC45MjMzNGExLDEsMCwwLDEsMiwwYzAsMTAuNTA0ODgtLjY3MjM2LDE5Ljc0NzU2LTguOTM0NTcsMjYuNDc0MTJBLjk5MzgxLjk5MzgxLDAsMCwxLDQzNS40MTMyNCwzNTYuMzIxNzlaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiLz48cGF0aCBkPSJNMzY2Ljg4MjQ4LDM1NS43ODY2M2EuOTkzODMuOTkzODMsMCwwLDEtLjYzMDg2LS4yMjQ2MWMtOC4yNjI2OS02LjcyNzA1LTguOTM1MDYtMTUuNzI3MDUtOC45MzUwNi0yNS45MzlhMSwxLDAsMCwxLDIsMGMwLDEwLjAzNjYyLjYwMzUyLDE4LjIwNTU3LDguMTk3NzYsMjQuMzg4MThhMSwxLDAsMCwxLS42MzE4NCwxLjc3NTM5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIi8+PHBhdGggZD0iTTQ1Ni44MjgyOCwzNzcuNzcyNDdINDM1LjQxMjc2YTEsMSwwLDAsMSwwLTJoMjEuNDE1NTJhMSwxLDAsMSwxLDAsMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNTUgLTIyNS42MjA0KSIvPjxwYXRoIGQ9Ik0zNjYuODgzLDM3Ny43NzI0N0gzNDUuNDY3NDRhMSwxLDAsMCwxLDAtMkgzNjYuODgzYTEsMSwwLDAsMSwwLDJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiLz48cGF0aCBkPSJNNDAxLjE0NzYyLDQyMC41Njg4NmEuOTk5NzQuOTk5NzQsMCwwLDEtMS0xVjM1MS4wMzkwOGExLDEsMCwwLDEsMiwwdjY4LjUyOTc4QS45OTk3NC45OTk3NCwwLDAsMSw0MDEuMTQ3NjIsNDIwLjU2ODg2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIi8+PHBhdGggZD0iTTQwMS4xNDc2Miw0MjAuNTY4ODZBMzUuMzA1MjIsMzUuMzA1MjIsMCwwLDEsMzY1Ljg4MywzODUuMzAzNzJWMzU5LjU4NjQ0YzAtMTYuNDY4MjYsMTMuNTEyNy0yNi42OTg3MywzNS4yNjQ2NS0yNi42OTg3MywyMi43NDEyMSwwLDM1LjI2NTE0LDkuNDgxOTMsMzUuMjY1MTQsMjYuNjk4NzN2MjUuNzE3MjhBMzUuMzA1MzMsMzUuMzA1MzMsMCwwLDEsNDAxLjE0NzYyLDQyMC41Njg4NlptMC04NS42ODExNWMtMTYuMDgxMDYsMC0zMy4yNjQ2NSw2LjQ4ODI4LTMzLjI2NDY1LDI0LjY5ODczdjI1LjcxNzI4YTMzLjI2NDksMzMuMjY0OSwwLDEsMCw2Ni41Mjk3OSwwVjM1OS41ODY0NEM0MzQuNDEyNzYsMzM4LjA5NjY5LDQxMy41NzEsMzM0Ljg4NzcxLDQwMS4xNDc2MiwzMzQuODg3NzFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiLz48cGF0aCBkPSJNMzgwLjY1MSwzMzkuMDYxNTRhMS4wMDAyLDEuMDAwMiwwLDAsMS0uOTI5Mi0uNjI5ODksMTQuMDg3OTQsMTQuMDg3OTQsMCwwLDEtLjk4ODI4LTQuNTMxNzNBMjIuNDc1NjYsMjIuNDc1NjYsMCwwLDEsNDAxLjA4OSwzMTEuNDkwNzRoLjExNDc1YTIyLjQ2Njc5LDIyLjQ2Njc5LDAsMCwxLDIyLjM1OTM4LDIyLjM1NjkzLDEyLjIyNzM1LDEyLjIyNzM1LDAsMCwxLS45MTAxNiw0LjIxMDk0LDEsMSwwLDAsMS0xLjg0OTYxLS43NjA3NSwxMC4xOTUwNywxMC4xOTUwNywwLDAsMCwuNzYwNzQtMy40ODczLDIwLjQ1NDA3LDIwLjQ1NDA3LDAsMCwwLTIwLjM2Mjc5LTIwLjMxOTgyaC0uMTA5ODZhMjAuNDYxNDMsMjAuNDYxNDMsMCwwLDAtMjAuMzU5MzgsMjAuMzYxODEsMTIuMDc1NjksMTIuMDc1NjksMCwwLDAsLjg0NzE3LDMuODM3ODksMS4wMDEyMSwxLjAwMTIxLDAsMCwxLS45MjgyMiwxLjM3MTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiLz48cGF0aCBkPSJNNTAyLjcxMDQ1LDMzMy42MjMwOGgtMTJhNyw3LDAsMCwxLDAtMTRoMTJhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNTg0LjcxMDQ1LDM2My4xMjMwOGgtMTJhNyw3LDAsMCwxLDAtMTRoMTJhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNjIyLjcxMDQ1LDM2My4xMjMwOGgtMTJhNyw3LDAsMCwxLDAtMTRoMTJhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNjYwLjcxMDQ1LDM2My4xMjMwOGgtMTJhNyw3LDAsMCwxLDAtMTRoMTJhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNTg1LjcxMDQ1LDMzNC4xMjMwOGgtNTZhNyw3LDAsMCwxLDAtMTRoNTZhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNTQ2LjcxMDQ1LDM2Mi4xMjMwOGgtNTZhNyw3LDAsMCwxLDAtMTRoNTZhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNjU2LjcxMDQ1LDMzNC4xMjMwOGgtNDNhNyw3LDAsMCwxLDAtMTRoNDNhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNTAyLjcxMDQ1LDM5Mi42MjMwOGgtMTJhNyw3LDAsMCwxLDAtMTRoMTJhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNTg1LjcxMDQ1LDM5My4xMjMwOGgtNTZhNyw3LDAsMCwxLDAtMTRoNTZhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNjU2LjcxMDQ1LDM5My4xMjMwOGgtNDNhNyw3LDAsMCwxLDAtMTRoNDNhNyw3LDAsMCwxLDAsMTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48cGF0aCBkPSJNNjM3LjcxMDQ1LDQxNi42MjMwOGE3LjAwNzg2LDcuMDA3ODYsMCwwLDEsNy03aDEyYTcsNywwLDAsMSwwLDE0aC0xMkE3LjAwNzg1LDcuMDA3ODUsMCwwLDEsNjM3LjcxMDQ1LDQxNi42MjMwOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNTUgLTIyNS42MjA0KSIgZmlsbD0iI2NjYyIvPjxwYXRoIGQ9Ik01NTQuNzEwNDUsNDE3LjEyMzA4YTcuMDA3ODYsNy4wMDc4NiwwLDAsMSw3LTdoNTZhNyw3LDAsMCwxLDAsMTRoLTU2QTcuMDA3ODUsNy4wMDc4NSwwLDAsMSw1NTQuNzEwNDUsNDE3LjEyMzA4WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NSAtMjI1LjYyMDQpIiBmaWxsPSIjY2NjIi8+PHBhdGggZD0iTTQ4My43MTA0NSw0MTcuMTIzMDhhNy4wMDc4Niw3LjAwNzg2LDAsMCwxLDctN2g0M2E3LDcsMCwwLDEsMCwxNGgtNDNBNy4wMDc4NSw3LjAwNzg1LDAsMCwxLDQ4My43MTA0NSw0MTcuMTIzMDhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjU1IC0yMjUuNjIwNCkiIGZpbGw9IiNjY2MiLz48L3N2Zz4="; const DEFAULT_LOADING = defaultImg; const DEFAULT_ERROR = defaultError; class Lazy { constructor(option) { __publicField(this, "imageManagerQuene"); __publicField(this, "loading"); __publicField(this, "error"); __publicField(this, "observer"); __publicField(this, "cache"); this.imageManagerQuene = []; this.loading = option.loading || DEFAULT_LOADING; this.error = option.error || DEFAULT_ERROR; this.cache = /* @__PURE__ */ new Set(); this.initImageObserver(); } initImageObserver() { this.observer = new IntersectionObserver( (entrys) => { entrys.forEach((entry) => { if (entry.isIntersecting) { const manager = this.imageManagerQuene.find((manager2) => { return manager2.el === entry.target; }); if (manager) { if (manager.state === STATE.loaded) { this.removeManager(manager); return; } manager.renderSrc(); } } }); }, { rootMargin: "0px", threshold: 0 } ); } add(el, binding) { var _a; const m = new ImageManager({ el, src: binding.value, loading: this.loading, error: this.error, cache: this.cache }); this.imageManagerQuene.push(m); (_a = this.observer) == null ? void 0 : _a.observe(el); } removeManager(m) { var _a; const index = this.imageManagerQuene.indexOf(m); if (index >= 0) { this.imageManagerQuene.splice(index, 1); this.observer && ((_a = this.observer) == null ? void 0 : _a.unobserve(m.el)); } } findManagerByEl(el) { return this.imageManagerQuene.find((m) => m.el === el); } remove(el) { const manager = this.findManagerByEl(el); if (manager) { this.removeManager(manager); } } update(el, binding) { const src = binding.value; const manager = this.findManagerByEl(el); if (manager) { manager.updateSrc(src); } } } var Lazy$1 = { install(app, option) { const lazy = new Lazy(option); app.directive(option.name, { mounted: lazy.add.bind(lazy), unmounted: lazy.remove.bind(lazy), updated: lazy.update.bind(lazy) }); } }; export { Lazy$1 as default };