{"version":3,"sources":["jsdelivr-header.js","/npm/a-template@0.6.1/lib/index.js"],"names":[],"mappings":"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","file":"/npm/a-template@0.6.1/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/a-template@0.6.1/lib/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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('ie-array-find-polyfill');\n\nvar _morphdom = require('morphdom');\n\nvar _morphdom2 = _interopRequireDefault(_morphdom);\n\nvar _util = require('./util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar eventType = 'input paste copy click change keydown keyup keypress contextmenu mouseup mousedown mousemove touchstart touchend touchmove compositionstart compositionend focus';\nvar bindType = 'input change click';\nvar dataAction = eventType.replace(/([a-z]+)/g, '[data-action-$1],') + '[data-action]';\n\nvar aTemplate = function () {\n  function aTemplate(opt) {\n    var _this = this;\n\n    _classCallCheck(this, aTemplate);\n\n    this.atemplate = [];\n    this.events = [];\n    if (opt) {\n      Object.keys(opt).forEach(function (key) {\n        _this[key] = opt[key];\n      });\n    }\n    if (!this.data) {\n      this.data = {};\n    }\n    if (!this.templates) {\n      this.templates = [];\n    }\n    var templates = this.templates;\n    var length = templates.length;\n    for (var i = 0, n = length; i < n; i += 1) {\n      var template = this.templates[i];\n      var html = (0, _util.selector)('#' + template).innerHTML;\n      this.atemplate.push({ id: template, html: html, binded: false });\n    }\n  }\n\n  _createClass(aTemplate, [{\n    key: 'addDataBind',\n    value: function addDataBind(ele) {\n      var _this2 = this;\n\n      (0, _util.on)(ele, '[data-bind]', bindType, function (e) {\n        var target = e.delegateTarget;\n        var data = target.getAttribute('data-bind');\n        var attr = target.getAttribute('href');\n        var value = target.value;\n        if (attr) {\n          value = value.replace('#', '');\n        }\n        if (target.getAttribute('type') === 'checkbox') {\n          (function () {\n            var arr = [];\n            var items = document.querySelectorAll('[data-bind=\"' + data + '\"]');\n            [].forEach.call(items, function (item) {\n              if (item.checked) {\n                arr.push(item.value);\n              }\n            });\n          })();\n        } else if (target.getAttribute('type') !== 'radio') {\n          _this2.updateDataByString(data, value);\n        }\n      });\n      this.events.push({\n        element: ele,\n        selector: '[data-bind]',\n        event: bindType\n      });\n    }\n  }, {\n    key: 'addActionBind',\n    value: function addActionBind(ele) {\n      var _this3 = this;\n\n      (0, _util.on)(ele, dataAction, eventType, function (e) {\n        var target = e.delegateTarget;\n        var events = eventType.split(' ');\n        var action = 'action';\n        events.forEach(function (event) {\n          if (target.getAttribute('data-action-' + event)) {\n            if (e.type === event) {\n              action += '-' + event;\n            }\n          }\n        });\n        var string = target.getAttribute('data-' + action);\n        if (!string) {\n          return;\n        }\n        var method = string.replace(/\\(.*?\\);?/, '');\n        var parameter = string.replace(/(.*?)\\((.*?)\\);?/, '$2');\n        var pts = parameter.split(','); // 引き数\n        _this3.e = e;\n        if (_this3.method && _this3.method[method]) {\n          var _method;\n\n          (_method = _this3.method)[method].apply(_method, _toConsumableArray(pts));\n        } else if (_this3[method]) {\n          _this3[method].apply(_this3, _toConsumableArray(pts));\n        }\n      });\n      this.events.push({\n        element: ele,\n        selector: dataAction,\n        event: bindType\n      });\n    }\n  }, {\n    key: 'removeTemplateEvents',\n    value: function removeTemplateEvents() {\n      this.events.forEach(function (event) {\n        (0, _util.off)(event.element, event.selector, event.event);\n      });\n    }\n  }, {\n    key: 'addTemplate',\n    value: function addTemplate(id, html) {\n      this.atemplate.push({ id: id, html: html, binded: false });\n      this.templates.push(id);\n    }\n\n    // loadHtml() {\n    //   const templates = this.templates;\n    //   const promises = [];\n    //   templates.forEach((template) => {\n    //     const d = new $.Deferred();\n    //     promises.push(d);\n    //     const src = selector(`#${template}`).getAttribute('src');\n    //     $.ajax({\n    //       url: src,\n    //       type: 'GET',\n    //       dataType: 'text'\n    //     }).success((data) => {\n    //       selector(`#${template}`).innerHTML = data;\n    //       d.resolve();\n    //     });\n    //   });\n    //   return $.when(...promises);\n    // }\n\n  }, {\n    key: 'getData',\n    value: function getData() {\n      return JSON.parse(JSON.stringify(this.data));\n    }\n  }, {\n    key: 'saveData',\n    value: function saveData(key) {\n      var data = JSON.stringify(this.data);\n      localStorage.setItem(key, data);\n    }\n  }, {\n    key: 'setData',\n    value: function setData(opt) {\n      var _this4 = this;\n\n      Object.keys(opt).forEach(function (key) {\n        if (typeof opt[key] !== 'function') {\n          _this4.data[key] = opt[key];\n        }\n      });\n    }\n  }, {\n    key: 'loadData',\n    value: function loadData(key) {\n      var data = JSON.parse(localStorage.getItem(key));\n      if (data) {\n        this.setData(data);\n      }\n    }\n  }, {\n    key: 'getRand',\n    value: function getRand(a, b) {\n      return ~~(Math.random() * (b - a + 1)) + a;\n    }\n  }, {\n    key: 'getRandText',\n    value: function getRandText(limit) {\n      var ret = '';\n      var strings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n      var length = strings.length;\n      for (var i = 0; i < limit; i += 1) {\n        ret += strings.charAt(Math.floor(this.getRand(0, length)));\n      }\n      return ret;\n    }\n  }, {\n    key: 'getDataFromObj',\n    value: function getDataFromObj(s, o) {\n      s = s.replace(/\\[([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+)\\]/g, '.$1'); // convert indexes to properties\n      s = s.replace(/^\\./, ''); // strip leading dot\n      var a = s.split('.');\n      while (a.length) {\n        var n = a.shift();\n        if (n in o) {\n          o = o[n];\n        } else {\n          return null;\n        }\n      }\n      return o;\n    }\n  }, {\n    key: 'getDataByString',\n    value: function getDataByString(s) {\n      var o = this.data;\n      return this.getDataFromObj(s, o);\n    }\n  }, {\n    key: 'updateDataByString',\n    value: function updateDataByString(path, newValue) {\n      var object = this.data;\n      var stack = path.split('.');\n      while (stack.length > 1) {\n        object = object[stack.shift()];\n      }\n      object[stack.shift()] = newValue;\n    }\n  }, {\n    key: 'removeDataByString',\n    value: function removeDataByString(path) {\n      var object = this.data;\n      var stack = path.split('.');\n      while (stack.length > 1) {\n        object = object[stack.shift()];\n      }\n      var shift = stack.shift();\n      if (shift.match(/^\\d+$/)) {\n        object.splice(Number(shift), 1);\n      } else {\n        delete object[shift];\n      }\n    }\n  }, {\n    key: 'resolveBlock',\n    value: function resolveBlock(html, item, i) {\n      var that = this;\n      var touchs = html.match(/<!-- BEGIN ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):touch#([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+) -->/g);\n      var touchnots = html.match(/<!-- BEGIN ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):touchnot#([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+) -->/g);\n      var exists = html.match(/<!-- BEGIN ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):exist -->/g);\n      var empties = html.match(/<!-- BEGIN ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):empty -->/g);\n      /* タッチブロック解決*/\n      if (touchs) {\n        for (var k = 0, n = touchs.length; k < n; k += 1) {\n          var start = touchs[k];\n          start = start.replace(/([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):touch#([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+)/, '($1):touch#($2)');\n          var end = start.replace(/BEGIN/, 'END');\n          var reg = new RegExp(start + '(([\\\\n\\\\r\\\\t]|.)*?)' + end, 'g');\n          html = html.replace(reg, function (m, key2, val, next) {\n            var itemkey = typeof item[key2] === 'function' ? item[key2].apply(that) : that.getDataFromObj(key2, item);\n            if ('' + itemkey === val) {\n              return next;\n            }\n            return '';\n          });\n        }\n      }\n      /* タッチノットブロック解決*/\n      if (touchnots) {\n        for (var _k = 0, _n = touchnots.length; _k < _n; _k += 1) {\n          var _start = touchnots[_k];\n          _start = _start.replace(/([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):touchnot#([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+)/, '($1):touchnot#($2)');\n          var _end = _start.replace(/BEGIN/, 'END');\n          var _reg = new RegExp(_start + '(([\\\\n\\\\r\\\\t]|.)*?)' + _end, 'g');\n          html = html.replace(_reg, function (m, key2, val, next) {\n            var itemkey = typeof item[key2] === 'function' ? item[key2].apply(that) : that.getDataFromObj(key2, item);\n            if ('' + itemkey !== val) {\n              return next;\n            }\n            return '';\n          });\n        }\n      }\n      /* existブロックを解決*/\n      if (exists) {\n        for (var _k2 = 0, _n2 = exists.length; _k2 < _n2; _k2 += 1) {\n          var _start2 = exists[_k2];\n          _start2 = _start2.replace(/([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):exist/, '($1):exist');\n          var _end2 = _start2.replace(/BEGIN/, 'END');\n          var _reg2 = new RegExp(_start2 + '(([\\\\n\\\\r\\\\t]|.)*?)' + _end2, 'g');\n          html = html.replace(_reg2, function (m, key2, next) {\n            var itemkey = typeof item[key2] === 'function' ? item[key2].apply(that) : that.getDataFromObj(key2, item);\n            if (itemkey || itemkey === 0) {\n              return next;\n            }\n            return '';\n          });\n        }\n      }\n      /* emptyブロックを解決*/\n      if (empties) {\n        for (var _k3 = 0, _n3 = empties.length; _k3 < _n3; _k3 += 1) {\n          var _start3 = empties[_k3];\n          _start3 = _start3.replace(/([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):empty/, '($1):empty');\n          var _end3 = _start3.replace(/BEGIN/, 'END');\n          var empty = new RegExp(_start3 + '(([\\\\n\\\\r\\\\t]|.)*?)' + _end3, 'g');\n          html = html.replace(empty, function (m, key2, next) {\n            var itemkey = typeof item[key2] === 'function' ? item[key2].apply(that) : that.getDataFromObj(key2, item);\n            if (!itemkey && itemkey !== 0) {\n              return next;\n            }\n            return '';\n          });\n        }\n      }\n      /* 変数解決*/\n      html = html.replace(/{([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+)}(\\[([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+)\\])*/g, function (n, key3, key4, converter) {\n        var data = void 0;\n        if ('' + key3 === 'i') {\n          data = i;\n        } else if (item[key3] || item[key3] === 0) {\n          if (typeof item[key3] === 'function') {\n            data = item[key3].apply(that);\n          } else {\n            data = item[key3];\n          }\n        } else {\n          if (converter && that.convert && that.convert[converter]) {\n            return that.convert[converter].call(that, '');\n          }\n          return '';\n        }\n        if (converter && that.convert && that.convert[converter]) {\n          return that.convert[converter].call(that, data);\n        }\n        return data;\n      });\n      return html;\n    }\n    /* 絶対パス形式の変数を解決*/\n\n  }, {\n    key: 'resolveAbsBlock',\n    value: function resolveAbsBlock(html) {\n      var that = this;\n      html = html.replace(/{(.*?)}/g, function (n, key3) {\n        var data = that.getDataByString(key3);\n        if (typeof data !== 'undefined') {\n          if (typeof data === 'function') {\n            return data.apply(that);\n          }\n          return data;\n        }\n        return n;\n      });\n      return html;\n    }\n  }, {\n    key: 'resolveInclude',\n    value: function resolveInclude(html) {\n      var include = /<!-- #include id=\"(.*?)\" -->/g;\n      html = html.replace(include, function (m, key) {\n        return (0, _util.selector)('#' + key).innerHTML;\n      });\n      return html;\n    }\n  }, {\n    key: 'resolveWith',\n    value: function resolveWith(html) {\n      var width = /<!-- BEGIN ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):with -->(([\\n\\r\\t]|.)*?)<!-- END ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+):with -->/g;\n      html = html.replace(width, function (m, key) {\n        m = m.replace(/data\\-bind=['\"](.*?)['\"]/g, 'data-bind=\\'' + key + '.$1\\'');\n        return m;\n      });\n      return html;\n    }\n  }, {\n    key: 'resolveLoop',\n    value: function resolveLoop(html) {\n      var loop = /<!-- BEGIN ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+?):loop -->(([\\n\\r\\t]|.)*?)<!-- END ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+?):loop -->/g;\n      var that = this;\n      /* ループ文解決*/\n      html = html.replace(loop, function (m, key, val) {\n        var keyItem = that.getDataByString(key);\n        var keys = [];\n        if (typeof keyItem === 'function') {\n          keys = keyItem.apply(that);\n        } else {\n          keys = keyItem;\n        }\n        var ret = '';\n        if (keys instanceof Array) {\n          for (var i = 0, n = keys.length; i < n; i += 1) {\n            ret += that.resolveBlock(val, keys[i], i);\n          }\n        }\n        /* エスケープ削除*/\n        ret = ret.replace(/\\\\([^\\\\])/g, '$1');\n        return ret;\n      });\n      return html;\n    }\n  }, {\n    key: 'removeData',\n    value: function removeData(arr) {\n      var data = this.data;\n      Object.keys(data).forEach(function (i) {\n        for (var t = 0, n = arr.length; t < n; t += 1) {\n          if (i === arr[t]) {\n            delete data[i];\n          }\n        }\n      });\n      return this;\n    }\n  }, {\n    key: 'hasLoop',\n    value: function hasLoop(txt) {\n      var loop = /<!-- BEGIN ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+?):loop -->(([\\n\\r\\t]|.)*?)<!-- END ([\\w\\-\\.ぁ-んァ-ヶ亜-熙]+?):loop -->/g;\n      if (txt.match(loop)) {\n        return true;\n      }\n      return false;\n    }\n  }, {\n    key: 'getHtml',\n    value: function getHtml(query, row) {\n      var template = this.atemplate.find(function (item) {\n        return item.id === query;\n      });\n      var html = '';\n      if (template && template.html) {\n        html = template.html;\n      }\n      if (row) {\n        html = query;\n      }\n      if (!html) {\n        return '';\n      }\n      var data = this.data;\n      /* インクルード解決*/\n      html = this.resolveInclude(html);\n      /* with解決*/\n      html = this.resolveWith(html);\n      /* ループ解決*/\n      while (this.hasLoop(html)) {\n        html = this.resolveLoop(html);\n      }\n      /* 変数解決*/\n      html = this.resolveBlock(html, data);\n      /* エスケープ削除*/\n      html = html.replace(/\\\\([^\\\\])/g, '$1');\n      /* 絶対パスで指定された変数を解決*/\n      html = this.resolveAbsBlock(html);\n      /* 空行削除*/\n      return html.replace(/^([\\t ])*\\n/gm, '');\n    }\n  }, {\n    key: 'update',\n    value: function update() {\n      var _this5 = this;\n\n      var renderWay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'html';\n      var part = arguments[1];\n\n      var templates = this.templates;\n      if (this.beforeUpdated) {\n        this.beforeUpdated();\n      }\n\n      var _loop = function _loop(i, n) {\n        var tem = templates[i];\n        var query = '#' + tem;\n        var html = _this5.getHtml(tem);\n        var target = (0, _util.selector)('[data-id=\\'' + tem + '\\']');\n        if (!target) {\n          (0, _util.selector)(query).insertAdjacentHTML('afterend', '<div data-id=\"' + tem + '\"></div>');\n          if (renderWay === 'text') {\n            (0, _util.selector)('[data-id=\\'' + tem + '\\']').innerText = html;\n          } else {\n            (0, _util.selector)('[data-id=\\'' + tem + '\\']').innerHTML = html;\n          }\n        } else if (renderWay === 'text') {\n          target.innerText = html;\n        } else if (part) {\n          var doc = document.createElement('div');\n          doc.innerHTML = html;\n          var partHtml = doc.querySelector(part).outerHTML;\n          (0, _morphdom2.default)(target.querySelector(part), partHtml);\n        } else {\n          (0, _morphdom2.default)(target, '<div data-id=\\'' + tem + '\\'>' + html + '</div>');\n        }\n        var template = _this5.atemplate.find(function (item) {\n          return item.id === tem;\n        });\n        if (!template.binded) {\n          template.binded = true;\n          _this5.addDataBind((0, _util.selector)('[data-id=\\'' + tem + '\\']'));\n          _this5.addActionBind((0, _util.selector)('[data-id=\\'' + tem + '\\']'));\n        }\n      };\n\n      for (var i = 0, n = templates.length; i < n; i += 1) {\n        _loop(i, n);\n      }\n      this.updateBindingData(part);\n      if (this.onUpdated) {\n        this.onUpdated(part);\n      }\n      return this;\n    }\n  }, {\n    key: 'updateBindingData',\n    value: function updateBindingData(part) {\n      var _this6 = this;\n\n      var templates = this.templates;\n      for (var i = 0, n = templates.length; i < n; i += 1) {\n        var temp = templates[i];\n        var _template = (0, _util.selector)('[data-id=\\'' + temp + '\\']');\n        if (part) {\n          _template = _template.querySelector(part);\n        }\n        var binds = _template.querySelectorAll('[data-bind]');\n        [].forEach.call(binds, function (item) {\n          var data = _this6.getDataByString(item.getAttribute('data-bind'));\n          if (item.getAttribute('type') === 'checkbox' || item.getAttribute('type') === 'radio') {\n            if (data === item.value) {\n              item.checked = true;\n            }\n          } else {\n            // if(item !== document.activeElement) {\n            item.value = data;\n            // }\n          }\n        });\n        var onewaybinds = _template.querySelectorAll('[data-bind-oneway]');\n        [].forEach.call(onewaybinds, function (item) {\n          var data = _this6.getDataByString(item.getAttribute('data-bind-oneway'));\n          if (item.getAttribute('type') === 'checkbox' || item.getAttribute('type') === 'radio') {\n            if (data === item.value) {\n              item.checked = true;\n            }\n          } else {\n            // if(item !== document.activeElement) {\n            item.value = data;\n            // }\n          }\n        });\n      }\n      return this;\n    }\n  }, {\n    key: 'applyMethod',\n    value: function applyMethod(method) {\n      var _method2;\n\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      return (_method2 = this.method)[method].apply(_method2, args);\n    }\n  }, {\n    key: 'getComputedProp',\n    value: function getComputedProp(prop) {\n      return this.data[prop].apply(this);\n    }\n  }, {\n    key: 'remove',\n    value: function remove(path) {\n      var object = this.data;\n      var stack = path.split('.');\n      while (stack.length > 1) {\n        object = object[stack.shift()];\n      }\n      var shift = stack.shift();\n      if (shift.match(/^\\d+$/)) {\n        object.splice(Number(shift), 1);\n      } else {\n        delete object[shift];\n      }\n      return this;\n    }\n  }]);\n\n  return aTemplate;\n}();\n\nexports.default = aTemplate;\nmodule.exports = exports['default'];"]}