{"version":3,"sources":["jsdelivr-header.js","/npm/font-gis@1.0.6/index.js"],"names":[],"mappings":"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","file":"/npm/font-gis@1.0.6/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/font-gis@1.0.6/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","/** Color picker */\r\nvar picker = new ColorPicker($('#icon .color').get(0), $('#icon i').css('color'));\r\n$('#icon .color').get(0).addEventListener('colorChange', function (e) {\r\n  $('#icon i').css('color', e.detail.color.hexa);\r\n});\r\n\r\nfunction showPage(name, url) {\r\n  $('[data-page]').hide();\r\n  $('body').removeClass();\r\n  $('body').addClass(name);\r\n  $('[data-page=\"'+name+'\"]').show();\r\n  $('#header li').removeClass('selected');\r\n  $('#header li.'+name).addClass('selected');\r\n  if (url !== false) {\r\n    if (name==='icons') setUrl($('#search input').val(), $('#icon h2').text());\r\n    else setUrl('','');\r\n  }\r\n}\r\nshowPage('fg', false);\r\n\r\nvar glyphs, currentGlyph, version=0;\r\n\r\nfunction search(val) {\r\n  $('#search input').val(val);\r\n  var n = 0;\r\n  var rex = new RegExp(val,\"i\");\r\n  $(\"#content h2\").hide();\r\n  $(\"#content p\").each( function() {\r\n    var k = $('i', this).get(0).className;\r\n    var glyph = glyphs[k];\r\n    var tags = (glyph.search || '').split(',');\r\n    var found = rex.test(glyph.name) || rex.test(glyph.theme);\r\n    tags.forEach(function(k) {\r\n      found = found || rex.test(k);\r\n    });\r\n    if (found) {\r\n      $(this).show();\r\n      $('h2', $(this).parent()).show();\r\n      n++;\r\n    } else {\r\n      $(this).hide();\r\n    }\r\n  });\r\n  $(\"#search .nb\").text(n);\r\n  // Set search url\r\n  setUrl(val);\r\n}\r\n\r\nfunction getUrlData() {\r\n  var opt = document.location.search.replace(/^\\?/,'').split('&');\r\n  var data = {};\r\n  opt.forEach(function(s) {\r\n    if (s) {\r\n      s = s.split('=');\r\n      data[s[0]] = s[1];\r\n    }\r\n  });\r\n  return data;\r\n};\r\n\r\n/** Set doc url */\r\nfunction setUrl(search, select) {\r\n  var url = document.location.href.split('?')[0];\r\n  var data = getUrlData();\r\n  var opt = [];\r\n  if (typeof(search) === 'string') {\r\n    if (search) opt.push('q='+search);\r\n  } else {\r\n    if (data.q) opt.push('q='+data.q);\r\n  }\r\n  if (typeof(select) === 'string') {\r\n    if (select) opt.push('fg='+select.replace(/^fg-/,''));\r\n  } else {\r\n    if (data.fg) opt.push('fg='+data.fg);\r\n  }\r\n  opt = opt.join('&');\r\n  if (opt) url = url + '?' + opt;\r\n  window.history.replaceState (null, null, url);\r\n};\r\n\r\n$('#search input').on('keyup search', function() { \r\n  search(this.value); \r\n});\r\n\r\n/** Show icon\r\n * @param {object} icon \r\n * @param {boolean} [url] change url\r\n */\r\nfunction showIcon(icon, url) {\r\n  if (icon && icon.code) {\r\n    currentGlyph = icon;\r\n    $('#icon i').removeClass().addClass('fg-'+icon.name)\r\n    $('#icon h2').text('fg-' + icon.name);\r\n    $('#icon .theme').text(icon.theme);\r\n    $('#icon .code').text('\\\\'+icon.code.toString(16));\r\n    if (url !== false) setUrl(null, icon.name);\r\n    var tags = icon.search.split(',');\r\n    var tag = $('#icon .tags').html('');\r\n    icon.name.split('-').forEach(function(t) {\r\n      if (t.length>2 && t!==icon.theme && tags.indexOf(t)<0) tags.push(t);\r\n    })\r\n    tags.forEach(function(t) {\r\n      if (t && t !== 'new') {\r\n        $('<span>').text(t)\r\n          .click(function() { search(t) })\r\n          .appendTo(tag);\r\n      }\r\n    })\r\n  }\r\n}\r\n\r\n/** Save glyph */\r\nfunction save(opt) {\r\n  $('#icon select').val('none');\r\n  switch (opt) {\r\n    case 'none': break;\r\n    case 'all': {\r\n      var tab = Object.keys(glyphs)\r\n      const dload = document.getElementById('loading')\r\n      dload.querySelector('span').innerHTML = '<i>It may take sometimes...</i><br/><button>download '+tab.length+' svg file...</button><button class=\"cancel\">cancel</button>';\r\n      dload.querySelector('button').addEventListener('click', saveAll)\r\n      dload.querySelector('button.cancel').addEventListener('click', function() { dload.close(); });\r\n      dload.showModal();\r\n      function saveAll() {\r\n        var g = tab.pop();\r\n        if (g) {\r\n          var glyph = glyphs[g]\r\n          dload.querySelector('span').innerText = g;\r\n          $.ajax({\r\n            url: './svg/' \r\n            + glyph.theme\r\n            + '/u' + glyph.code.toString(16).toUpperCase()\r\n            + '-' + glyph.name +'.svg',\r\n            dataType : 'text',\r\n            success: function(rep) {\r\n              rep = rep.replace(/fill:#([^;|\\\"]*)/g, 'fill:' + $('#icon i').css('color'));\r\n              var blob = new Blob([rep], {type: \"text/plain;charset=utf-8\"});\r\n              saveAs(blob, glyph.name + '.svg');\r\n              setTimeout(saveAll, 300);\r\n            }\r\n          })\r\n        } else {\r\n          dload.close()\r\n        }\r\n      }\r\n      break;\r\n    }\r\n    case 'svg': {\r\n      console.log('savesvg')\r\n      $.ajax({\r\n        url: './svg/' \r\n          + currentGlyph.theme\r\n          + '/u' + currentGlyph.code.toString(16).toUpperCase()\r\n          + '-' + currentGlyph.name +'.svg',\r\n        dataType : 'text',\r\n        success: function(rep) {\r\n          rep = rep.replace(/fill:#([^;|\\\"]*)/g, 'fill:' + $('#icon i').css('color'));\r\n          var blob = new Blob([rep], {type: \"text/plain;charset=utf-8\"});\r\n          saveAs(blob, currentGlyph.name + '.svg');\r\n        }\r\n      })\r\n      break;\r\n    }\r\n    default: {\r\n      var canvas = document.createElement('CANVAS');\r\n      canvas.width = canvas.height = opt;\r\n      var ctx = canvas.getContext('2d');\r\n      ctx.font  = opt + 'px font-gis';\r\n      ctx.fillStyle = $('#icon i').css('color');\r\n      ctx.fillText(String.fromCharCode(currentGlyph.code), 0, opt * .8);\r\n      canvas.toBlob(function(blob) {\r\n        saveAs(blob, currentGlyph.name + '-' + opt + '.png');\r\n      }, 'image/png');\r\n      break;\r\n    }\r\n  }\r\n}\r\n\r\n/** Load data */\r\n$.ajax({\r\n  url: './font-gis.json',\r\n  success: function(font) {\r\n    glyphs = font.glyphs;\r\n    var content = $('#content');\r\n    var themes = {\r\n      edit: [],\r\n      geom: [],\r\n      search: [],\r\n      measure: [],\r\n      tools: [],\r\n      routing: [],\r\n      layer: [],\r\n      poi: [],\r\n      map: [],\r\n      globe: []\r\n    };\r\n    var g;\r\n    var newDate = new Date((new Date()).getTime() - 7*24*60*60*1000);\r\n    for (g in font.glyphs) {\r\n      if (font.glyphs[g].version > version) version = font.glyphs[g].version;\r\n      if (!themes[font.glyphs[g].theme]) themes[font.glyphs[g].theme] = [];\r\n      font.glyphs[g].id = g;\r\n      themes[font.glyphs[g].theme].push(font.glyphs[g]);\r\n    };\r\n    var news = 0;\r\n    Object.keys(themes).forEach(function(th) {\r\n      var div = $('<div>').appendTo(content);\r\n      $('<h2>').text(th.replace('edit', 'edition').replace('geom', 'geometry')).appendTo(div);\r\n      themes[th].sort(function(a,b) { return a.order-b.order || a.code-b.code; });\r\n      themes[th].forEach(function(gly) {\r\n        // console.log(gly)\r\n        // var isNew = (gly.version===version) \r\n        var isNew = gly.date > newDate.toISOString();\r\n        if (isNew) {\r\n          gly.search += (gly.search?',':'') + 'new';\r\n          news++;\r\n        }\r\n        $('<p>')\r\n          .append($('<i>').addClass(gly.id))\r\n          .click(function() {\r\n            showIcon(gly);\r\n          })\r\n          .addClass(isNew ? 'new' : '')\r\n          .append($('<span>').text(gly.name))\r\n          .attr('title', '\\\\'+gly.code.toString(16))\r\n          .appendTo(div);\r\n      });\r\n    })\r\n    $('.news').text(news+(news>1?' NEWS':' NEW'));\r\n    var data = getUrlData();\r\n    search(data.q);\r\n    if (data.fg) {\r\n      showIcon(glyphs['fg-'+data.fg]);\r\n      showPage('icons');\r\n    } else {\r\n      showIcon(glyphs['fg-earth'], false);\r\n    }\r\n  }\r\n});"]}