{"version":3,"sources":["jsdelivr-header.js","/npm/jquery-dpe-ges@1.0.0/src/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OCNO,cAAe,cACtB,MAAM,EAAI,OAAO,QAAU,OAErB,SAAW,MACX,SAAW,MACX,WAAa,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAChF,WAAa,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAChF,WAAa,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAC1C,WAAa,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAErC,SAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAEhD,MAAM,OACF,WAAA,CAAa,GAET,KAAK,eAAe,GAEpB,KAAK,OAdI,QAcK,EAAQ,KAAoB,WAAa,WACvD,KAAK,OAfI,QAeK,EAAQ,KAAoB,WAAa,WACvD,KAAK,OAAS,MACd,KAAK,OAAS,KACd,KAAK,UAAY,MACjB,KAAK,WAAa,GAElB,OAAO,OAAO,KAAM,GAEpB,KAAK,MACT,CAEA,cAAA,CAAe,GAEX,GA5BS,QA4BN,EAAQ,MA3BF,QA2BuB,EAAQ,KACpC,MAAM,IAAI,MAAM,6BAAyD,EAAQ,KAAO,qBAEhG,CAEA,IAAA,GAEI,IAAI,EAAM,KAAK,oBAEX,EAAa,wBACb,GAAgB,KAAK,kBACrB,GAAgB,KAAK,eAAe,GACpC,GAAc,SAElB,EAAE,KAAK,IAAI,KAAK,EAEpB,CAMA,iBAAA,GACI,MAAM,EAAS,WAAW,OAAS,EAEnC,OAAO,KAAK,OAAO,WAAU,CAAC,EAAO,IAE9B,KAAK,MAAQ,IAIb,EAAQ,GAAU,KAAK,OAAS,IAIhC,IAAU,GAAU,KAAK,MAAQ,QAApC,KAKR,CAMA,eAAA,GACI,MAAO,mEAC6B,KAAK,iEACL,KAAK,6CAE7C,CAOA,cAAA,CAAe,GACX,IAAI,EAAQ,KAAK,WACb,EAAY,GAwBhB,OAtBA,KAAK,OAAO,SAAQ,CAAC,EAAW,KAE5B,GAAa,6FACoC,+BAAuC,aAAqB,yDACvE,KAAK,YAAY,+DAChB,SAAS,6FACqB,4CAGlE,IAAQ,IACP,GAAa,mFACqB,KAAK,uKAK3C,GAAa,SAEb,GAAS,EAAE,IAIR,CACX,CAOA,WAAA,CAAY,GAER,IAAI,EAAY,GAchB,OAZa,IAAV,IACC,GAAa,KAAK,OAAS,WAAW,IAGvC,EAAQ,GAAK,EAAQ,WAAW,OAAS,IACxC,GAAc,WAAW,EAAQ,GAAK,EAAK,KAAK,UAAY,WAAW,IAGxE,IAAU,WAAW,OAAS,IAC7B,GAAa,KAAK,OAAS,WAAW,IAGnC,CACX,EAMJ,UAAU,aAAc,aAAc,QAAQ,kBAE/B","file":"/npm/jquery-dpe-ges@1.0.0/src/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/jquery-dpe-ges@1.0.0/src/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import pluginify from './pluginify';\r\nconst $ = window.jQuery || jQuery;\r\n\r\nconst TYPE_DPE = 'DPE';\r\nconst TYPE_GES = 'GES';\r\nconst DPE_COLORS = ['#59A402', '#68AB00', '#A1C300', '#EAE400', '#EEA500', '#D33E0E', '#CE1018'];\r\nconst GES_COLORS = ['#F5ECF4', '#D7BEDD', '#C7A8CE', '#B894C3', '#9D73AF', '#81549E', '#6C3E93'];\r\nconst DPE_VALUES = [50, 90, 150, 230, 330, 450, 450];\r\nconst GES_VALUES = [5, 10, 20, 35, 55, 80, 80];\r\n\r\nconst ALPHABET = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n\r\nclass Plugin {\r\n    constructor( options ) {\r\n\r\n        this.checkArguments(options);\r\n\r\n        this.colors = options.type === TYPE_DPE ? DPE_COLORS : GES_COLORS;\r\n        this.values = options.type === TYPE_DPE ? DPE_VALUES : GES_VALUES;\r\n        this.suffix = '=< ';\r\n        this.prefix = '> ';\r\n        this.separator = ' à ';\r\n        this.startWidth = 12;\r\n\r\n        Object.assign(this, options);\r\n\r\n        this.init();\r\n    }\r\n\r\n    checkArguments(options) {\r\n        // Check parameters\r\n        if(options.type !== TYPE_DPE && options.type !== TYPE_GES) {\r\n            throw new Error('Type must be in (' + TYPE_DPE + ', ' + TYPE_GES + ')' + options.type + ' was given instead');\r\n        }\r\n    }\r\n\r\n    init() {\r\n\r\n        let idx = this.getIndicatorIndex();\r\n\r\n        let outputHtml = '<div class=\"dpe-ges\">';\r\n            outputHtml +=   this.constructHeader();\r\n            outputHtml +=   this.constructRules(idx);\r\n            outputHtml += '</div>';\r\n\r\n        $(this.el).html(outputHtml);\r\n\r\n    }\r\n\r\n    /**\r\n     * Méthode permmettant de savoir à quel index la flêche indiquant la valeur doit être placé\r\n     * @returns {number}\r\n     */\r\n    getIndicatorIndex() {\r\n        const dpeLen = DPE_VALUES.length - 1;\r\n\r\n        return this.values.findIndex((value, index) => {\r\n\r\n            if(this.value < value) {\r\n                return true;\r\n            }\r\n\r\n            if(index < dpeLen && this.value <= value) {\r\n                return true;\r\n            }\r\n\r\n            if(index === dpeLen && this.value > value) {\r\n                return true;\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n    /**\r\n     * Construction du Header du graphique\r\n     * @returns {string}\r\n     */\r\n    constructHeader() {\r\n        return `<div class=\"header\">\r\n                    <span class=\"heading\">${this.headingLeft}</span>\r\n                    <span class=\"heading\">${this.headingRight}</span>\r\n                </div>`;\r\n    }\r\n\r\n    /**\r\n     * Construction des règles\r\n     * @param idx {Number} Indique l'endroit où la valeur entrée par l'utilisateur doit être affichée\r\n     * @returns {string}\r\n     */\r\n    constructRules(idx) {\r\n        let width = this.startWidth;\r\n        let rulesHtml = '';\r\n\r\n        this.colors.forEach((colorHexa, index) => {\r\n\r\n            rulesHtml += `<div class=\"arrow-container\">\r\n                        <div class=\"arrow-box\" data-color=\"${colorHexa}\" style=\"background-color: ${colorHexa}; width: ${width}%\">\r\n                            <span class=\"value\">${this.formatValue(index)}</span>\r\n                            <span class=\"letter\">${ALPHABET[index]}</span>\r\n                            <div class=\"arrow-right\" style=\"border-left-color: ${colorHexa}\"></div>\r\n                        </div>`;\r\n\r\n            if(idx === index) {\r\n                rulesHtml += `<div class=\"number-container\">\r\n                            <div class=\"number\">${this.value} <div class=\"arrow-left\"></div></div>\r\n                            <span class=\"lower\">KW/h<sub>EP</sub>m<sup>3</sup>an</span>\r\n                        </div>`;\r\n            }\r\n\r\n            rulesHtml += '</div>';\r\n\r\n            width += 10; // Percent\r\n\r\n        });\r\n\r\n        return rulesHtml;\r\n    }\r\n\r\n    /**\r\n     * Format de la valeur à afficher concernant les paliers\r\n     * @param index {Number} Index du tableau parcouru\r\n     * @returns {string}\r\n     */\r\n    formatValue(index) {\r\n\r\n        let returnStr = '';\r\n\r\n        if(index === 0) {\r\n            returnStr += this.suffix + DPE_VALUES[index];\r\n        }\r\n\r\n        if(index > 0 && index < DPE_VALUES.length - 1) {\r\n            returnStr += (DPE_VALUES[index - 1] + 1) + this.separator + DPE_VALUES[index];\r\n        }\r\n\r\n        if(index === DPE_VALUES.length - 1) {\r\n            returnStr += this.prefix + DPE_VALUES[index];\r\n        }\r\n\r\n        return returnStr;\r\n    }\r\n}\r\n\r\n/*\r\n Convert plugin class into a jQuery plugin\r\n */\r\npluginify('dpeToImage', 'dpeToImage', Plugin, true);\r\n\r\nexport default Plugin;"]}