{"version":3,"sources":["jsdelivr-header.js","/npm/@ignis-web/tpl@1.0.2/tpl.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAOA,MAAM,IAAM,OAAO,QAUnB,IAAI,QAAU,IAAI,QAAU,SAAU,EAAO,EAAS,GAEpD,IADA,IAAI,EAAM,GACD,EAAI,EAAG,EAAI,EAAM,OAAQ,EAAI,EAAG,IAAK,CAC5C,IAAI,EAAK,EAAM,IACX,GAAa,IAAP,KACR,GAAO,EAAQ,EAAI,EAAG,IAAW,GAErC,CACA,OAAO,CACT,EAeA,IAAI,KAAO,SAAU,EAAK,GAGxB,IAFA,IAAI,EAAM,GACN,EAAO,OAAO,KAAK,GACd,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAG,IAAK,CAC3C,IAAI,EAAM,EAAK,GACf,GAAO,EAAQ,EAAK,EAAI,GAC1B,CACA,OAAO,CACT,EAmBA,IAAI,OAAS,SAAU,GACrB,OAAO,IAAI,YAAY,EACzB,EAEA,MAAM,YAKJ,WAAA,CAAY,GACV,KAAK,MAAQ,GACb,KAAK,KAAO,CACd,CAQA,KAAK,EAAW,GAEd,OADA,KAAK,MAAM,KAAK,CAAE,EAAW,IACtB,IACT,CAOA,QAAQ,GAEN,OADA,KAAK,cAAgB,EACd,IACT,CAMA,GAAA,GACE,IAAK,IAAI,EAAI,EAAG,EAAI,KAAK,MAAM,OAAQ,EAAI,EAAG,IAAK,CACjD,IAAI,EAAM,KAAK,MAAM,GACjB,EAAY,EAAI,GAChB,EAAO,EAAI,GAEf,GAAI,IAAc,KAAK,MAAS,aAAqB,OAAS,IAAI,IAAI,GAAW,IAAI,KAAK,MAAQ,CAEhG,OAD+B,mBAAT,EAAsB,IAAS,IACpC,EACnB,CACF,CACA,OAAsC,mBAAvB,KAAK,cAA+B,KAAK,gBAAkB,KAAK,gBAAkB,EACnG,CAEA,QAAA,GACE,OAAO,KAAK,KACd,EAyFF,SAAS,mBAAmB,GAC1B,IAAK,EAAa,OAChB,OAAO,EAET,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,OAAQ,EAAI,EAAG,IAAK,CACnD,IAAI,EAAK,EAAa,GAClB,EAAmC,mBAAhB,EAAG,SAA2B,EAAG,WAAa,EAAG,SACxE,GAAI,QAAQ,GACV,OAAO,EAAG,EAEd,CACA,OAAO,CACT,CArFA,IAAI,KAAO,SAAU,GACnB,OAAO,KAAQ,EACjB,EAUA,IAAI,GAAK,SAAS,EAAU,GAC1B,IAAI,EACA,EAAe,GAEf,EAAM,CAQR,QAAO,CAAC,EAAU,KAChB,EAAa,KAAK,CAAE,WAAU,OACvB,GAQT,KAAO,IACL,EAAU,EACH,GAET,QAAA,GAEE,GADA,EAAgC,mBAAb,EAA2B,IAAa,EACvD,QAAQ,GACV,MAAqB,mBAAV,EACF,IAEC,GAAS,GAGnB,IAAI,EAAa,mBAAmB,GACpC,MAA0B,mBAAf,EACF,IACwB,iBAAf,EACT,GAAc,GAGA,mBAAZ,EACF,IAEC,GAAW,EAIzB,GAGF,OAAO,CACT,EAuBA,IAAI,MAAQ,SAAU,GAIpB,IAHA,IAAI,EAAM,GAEN,EAAO,OAAO,KAAK,GACd,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAG,IAAK,CAC3C,IAAI,EAAa,EAAK,GAClB,EAAI,IACN,EAAI,KAAK,EAEb,CAEA,OAAK,EAAI,OAEiB,IAAf,EAAI,OACN,SAAW,EAAI,GAEf,UAAiB,EAAI,KAAK,KAAO,IAJjC,EAMX","file":"/npm/@ignis-web/tpl@1.0.2/tpl.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@ignis-web/tpl@1.0.2/tpl.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\n/**\n* Methods for template html\n* @module 'nodejs/my/tpl.js'\n*/\n/** @namespace */\nconst tpl = module.exports;\n\n\n/**\n * tpl.foreach: for arrays\n * @param  {Array}   array:\n * @param  {Function} handler:\n * @param  {Any}   params:\n * @return {String}\n */\ntpl.forEach = tpl.foreach = function (array, handler, params) {\n  var res = '';\n  for (var i = 0, l = array.length; i < l; i++) {\n    var el = array[i];\n    if (el || el === 0) {\n      res += handler(el, i, params) || '';\n    }\n  }\n  return res;\n};\n\n\n\n\n/**\n * tpl.each: for objects\n * @example\n * tpl.each({ 1: 'Hello', 'string': 2 }, function(key, value) {\n *   console.log(key, value);\n * });\n * @param  {Object}   obj\n * @param  {Function} cb(key, value)\n * @return {String}\n */\ntpl.each = function (obj, handler) {\n  var res = '';\n  var keys = Object.keys(obj);\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    res += handler(key, obj[key]);\n  }\n  return res;\n};\n\n\n\n\n\n/**\n * tpl.switch\n * @example\n * var res = tpl.switch(3).case(1, function () {\n *   return '<p>1</p>';\n * }).case(2, function () {\n *   return '<p>2</p>';\n * }).default(function () {\n *  return '<p>other</p>';\n * }).get();\n * @param  {Any} val\n * @return {String}\n */\ntpl.switch = function (val) {\n  return new Switch_case(val);\n};\n\nclass Switch_case {\n  /**\n   * constructor\n   * @param  {Any} val [description]\n   */\n  constructor(val) {\n    this._list = [];\n    this._val = val;\n  }\n\n  /**\n   * case\n   * @param  {function(): boolean | boolean} condition\n   * @param  {Function} task\n   * @return {Switch_case}\n   */\n  case(condition, task) {\n    this._list.push([ condition, task ]);\n    return this;\n  }\n\n  /**\n   * default\n   * @param  {Function} default_task:\n   * @return {Switch_case}\n   */\n  default(default_task) {\n    this._default_task = default_task;\n    return this;\n  }\n\n  /**\n   * get\n   * @return {string}\n   */\n  get() {\n    for (var i = 0, l = this._list.length; i < l; i++) {\n      var els = this._list[i];\n      var condition = els[0];\n      var task = els[1];\n\n      if (condition === this._val || (condition instanceof Array && new Set(condition).has(this._val))) {\n        const result = typeof task === 'function' ? task() : task;\n        return result || '';\n      }\n    }\n    return (typeof this._default_task === 'function' ? this._default_task() : this._default_task) || '';\n  }\n\n  toString() {\n    return this.get();\n  }\n}\n\n/**\n * tpl.func: call function and return value\n * @example\n * tpl.func(() => {\n *   if (true) {\n *     return '/;\n *   } else {\n *     return '/some'\n *   }\n * });\n * @param  {Function} cb\n * @return {String}\n */\ntpl.func = function (cb) {\n  return cb() || '';\n};\n\n\n// TODO: convert tpl.if_3 => tpl.if via test\n/**\n * if_3\n * @param  {function(): boolean | boolean} conditon\n * @param  {function(): string | string} if_cb - cb for if\n * @return {function(): string}\n*/\ntpl.if = function(conditon, if_cb) {\n  var else_cb;\n  var list_else_if = [];\n  // TODO: rewrite to Class\n  var obj = {\n\n    /**\n     * else_if- optional method\n     * @param  {function():boolean}   conditon\n     * @param  {function(): string | string} cb\n     * @return {obj}\n     */\n    else_if(conditon, cb) {\n      list_else_if.push({ conditon, cb });\n      return obj;\n    },\n\n    /**\n     * else - optional method\n     * @param  {function():string} cb\n     * @return {obj} return self\n     */\n    else: (cb) => {\n      else_cb = cb;\n      return obj;\n    },\n    toString() {\n      conditon = (typeof conditon === 'function') ? conditon() : conditon;\n      if (Boolean(conditon)) {\n        if (typeof if_cb === 'function') {\n          return if_cb();\n        } else {\n          return (if_cb || '');\n        }\n      } else {\n        var else_if_cb = _search_in_else_if(list_else_if);\n        if (typeof else_if_cb === 'function') {\n          return else_if_cb();\n        } else if (typeof else_if_cb === 'string') {\n          return else_if_cb || '';\n        }\n\n        if (typeof else_cb === 'function') {\n          return else_cb();\n        } else {\n          return (else_cb || '');\n        }\n\n      }\n    },\n  };\n\n  return obj;\n};\n\n\n/**\n * _search_in_else_if\n * @param  {Array<{ conditon: function():boolean, cb: function():string | string }>} list_else_if\n * @return {boolean}\n */\nfunction _search_in_else_if(list_else_if) {\n  if (!list_else_if.length) {\n    return false;\n  }\n  for (var i = 0, l = list_else_if.length; i < l; i++) {\n    var el = list_else_if[i];\n    var conditon = (typeof el.conditon === 'function') ? el.conditon() : el.conditon;\n    if (Boolean(conditon)) {\n      return el.cb;\n    }\n  }\n  return false;\n}\n\n\ntpl.class = function (obj) {\n  var res = [];\n\n  var keys = Object.keys(obj);\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var class_name = keys[i];\n    if (obj[class_name]) {\n      res.push(class_name);\n    }\n  }\n\n  if (!res.length) {\n    return '';\n  } else if (res.length === 1) {\n    return 'class=' + res[0];\n  } else {\n    return 'class=' + '\"' + res.join(' ') + '\"';\n  }\n};"]}