{"version":3,"file":"markdownItCheckbox.mjs","sources":["../index.js"],"sourcesContent":["// Utility functions\nlet checkboxReplace, move;\n\nmove = function (arr, element, offset) {\n  let index, newIndex, removedElement;\n  index = arr.indexOf(element);\n  if (index < 0) {\n    // if not found, return immediately\n    return index;\n  }\n  newIndex = index + offset;\n  if (newIndex < 0) {\n    newIndex = 0;\n  }\n  if (newIndex >= arr.length) {\n    newIndex = arr.length - 1;\n  }\n  // remove the element from the array\n  removedElement = arr.splice(index, 1)[0];\n  // at newIndex, remove 0 elements, insert the removedElement\n  arr.splice(newIndex, 0, removedElement);\n  // return the newIndex of the removedElement\n  return newIndex;\n};\n\n// Checkbox replacement logic.\ncheckboxReplace = function (md, options, Token) {\n  let arrayReplaceAt, createTokens, defaults, lastId, pattern, splitTextToken;\n  arrayReplaceAt = md.utils.arrayReplaceAt;\n  lastId = 0;\n  defaults = {\n    divWrap: false,\n    divClass: 'checkbox',\n    idPrefix: 'checkbox',\n    readonly: false,\n    disabled: false,\n    customHTML: false\n  };\n  options = md.utils.assign(defaults, options);\n  pattern = /\\[(X|\\s|\\_|\\-)\\]\\s(.*)/i;\n  createTokens = function (checked, label, Token) {\n    /**\n     * <input type=\"checkbox\" id=\"checkbox{n}\" checked=\"\" readonly=\"\">\n     */\n    let attr, customHTML, getTag, id, inputTag, labelTag, newInputTag, newLabelTag, nodes, token;\n    nodes = [];\n    id = options.idPrefix + lastId;\n    lastId += 1;\n    if (options.customHTML) {\n      token = new Token('html_inline', '', 0);\n      customHTML = options.customHTML;\n      getTag = function (str, tagName, content = '') {\n        let matches, regexp, res;\n        regexp = new RegExp(`(<${tagName}.*?>)(${content})?`, 'igm');\n        res = regexp.exec(str);\n        if (!res) {\n          return res;\n        }\n        matches = regexp.exec(str);\n        while (matches) {\n          if (~matches.indexOf(content) && content.length) {\n            res = matches;\n          }\n          matches = regexp.exec(str);\n        }\n        return res[0];\n      };\n      attr = function (tag, attributes = {}) {\n        let addAttr, attrName, attrRegexp, attrValue, replaceAttr;\n        replaceAttr = function (regexp, value) {\n          return tag.replace(regexp, `$1${value}$2`);\n        };\n        addAttr = function (attr, val) {\n          let regexp, tagName;\n          tagName = tag.match(/<(\\w+?)\\s/)[1];\n          regexp = new RegExp(`(<${tagName})(.+?>)`);\n          if (val === true) {\n            val = '';\n          }\n          return tag.replace(regexp, `$1 ${attr}=\\\"${val}\\\"$2`);\n        };\n        for (attrName in attributes) {\n          attrValue = attributes[attrName];\n          attrRegexp = new RegExp(`(${attrName}=['\\\"]).+?(['\\\"])`);\n          if (attrValue === false) {\n            continue;\n          }\n          if (~tag.search(attrRegexp)) {\n            tag = replaceAttr(attrRegexp, attrValue);\n          } else {\n            tag = addAttr(attrName, attrValue);\n          }\n        }\n        return tag;\n      };\n      labelTag = getTag(customHTML, 'label', '{label}');\n      inputTag = getTag(customHTML, 'input');\n      if (labelTag) {\n        newLabelTag = attr(labelTag, {\n          'for': id\n        });\n        if (~newLabelTag.search('{label}')) {\n          newLabelTag = newLabelTag.replace('{label}', label);\n          customHTML = customHTML.replace(labelTag, newLabelTag);\n        } else {\n          customHTML = customHTML.replace(/<label.*?>/, newLabelTag + label);\n        }\n      }\n      if (inputTag) {\n        newInputTag = attr(inputTag, {\n          id: id,\n          checked: checked,\n          disabled: options.disabled\n        });\n        customHTML = customHTML.replace(/<input.+?>/, newInputTag);\n      }\n      token.content = customHTML;\n      nodes.push(token);\n      return nodes;\n    }\n    /**\n     * <div class=\"checkbox\">\n     */\n    if (options.divWrap) {\n      token = new Token('checkbox_open', 'div', 1);\n      token.attrs = [ [ 'class', options.divClass ] ];\n      nodes.push(token);\n    }\n    token = new Token('checkbox_input', 'input', 0);\n    token.attrs = [ [ 'type', 'checkbox' ], [ 'id', id ] ];\n    if (checked === true) {\n      token.attrs.push([ 'checked', '' ]);\n    }\n    if (options.readonly) {\n      token.attrs.push([ 'readonly', '' ]);\n    }\n    if (options.disabled) {\n      token.attrs.push([ 'disabled', '' ]);\n    }\n    nodes.push(token);\n    /**\n     * <label for=\"checkbox{n}\">\n     */\n    token = new Token('label_open', 'label', 1);\n    token.attrs = [ [ 'for', id ] ];\n    nodes.push(token);\n    /**\n     * content of label tag\n     */\n    token = new Token('text', '', 0);\n    token.content = label;\n    nodes.push(token);\n    /**\n     * closing tags\n     */\n    nodes.push(new Token('label_close', 'label', -1));\n    if (options.divWrap) {\n      nodes.push(new Token('checkbox_close', 'div', -1));\n    }\n    return nodes;\n  };\n  splitTextToken = function (original, Token) {\n    let checked, label, matches, text, value;\n    text = original.content;\n    matches = text.match(pattern);\n    if (matches === null) {\n      return original;\n    }\n    checked = false;\n    value = matches[1];\n    label = matches[2];\n    if (value === 'X' || value === 'x') {\n      checked = true;\n    }\n    return createTokens(checked, label, Token);\n  };\n  return function (state) {\n    let blockTokens, i, j, k, l, labelClose, labelOpens, len, mappedTokens, open, ref, ref1, suitableIdx, token, tokens;\n    blockTokens = state.tokens;\n    j = 0;\n    l = blockTokens.length;\n    while (j < l) {\n      if (blockTokens[j].type !== 'inline') {\n        j++;\n        continue;\n      }\n      tokens = blockTokens[j].children;\n      // We scan from the end, to keep position when new tags added.\n      // Use reversed logic in links start/end match\n      i = tokens.length - 1;\n      while (i >= 0) {\n        token = tokens[i];\n        blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, splitTextToken(token, state.Token));\n        i--;\n      }\n      j++;\n    }\n    j = 0;\n    l = blockTokens.length;\n    while (j < l) {\n      if (blockTokens[j].type !== 'inline') {\n        j++;\n        continue;\n      }\n      tokens = blockTokens[j].children;\n      mappedTokens = tokens.map(function (t, idx) {\n        return {\n          idx: idx,\n          type: t.type,\n          token: t\n        };\n      });\n      suitableIdx = tokens.length - 1;\n      labelOpens = mappedTokens.filter(function (t) {\n        return t.type === 'label_open';\n      });\n      ref = labelOpens.reverse();\n      for (k = 0, len = ref.length; k < len; k++) {\n        open = ref[k];\n        if (suitableIdx < 0) {\n          suitableIdx = 0;\n        }\n        while ((ref1 = mappedTokens[suitableIdx].type) === 'softbreak' || ref1 === 'checkbox_close') {\n          suitableIdx--;\n        }\n        labelClose = mappedTokens.find(function (t, idx) {\n          return (open.idx < idx && idx <= suitableIdx) && t.type === 'label_close';\n        });\n        move(tokens, labelClose.token, suitableIdx - labelClose.idx);\n        suitableIdx = open.idx - 2;\n      }\n      j++;\n    }\n  };\n};\n\nexport default function (md, options) {\n  md.core.ruler.push('checkbox', checkboxReplace(md, options));\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQW1CO0FBQUEsSUFBQSxlQUFBLEVBQUE7O0FBRW5CLElBQUEsR0FBTyxRQUFBLENBQUMsR0FBRCxFQUFNLE9BQU4sRUFBZSxNQUFmLENBQUE7QUFDUCxNQUFBLEtBQUEsRUFBQSxRQUFBLEVBQUE7RUFBRSxLQUFBLEdBQVEsR0FBRyxDQUFDLE9BQUosQ0FBWSxPQUFaO0VBRVIsSUFBZ0IsS0FBQSxHQUFRLENBQXhCOztBQUFBLFdBQU8sTUFBUDs7RUFFQSxRQUFBLEdBQVcsS0FBQSxHQUFRO0VBQ25CLElBQWdCLFFBQUEsR0FBVyxDQUEzQjtJQUFBLFFBQUEsR0FBVyxFQUFYOztFQUNBLElBQTZCLFFBQUEsSUFBWSxHQUFHLENBQUMsTUFBN0M7SUFBQSxRQUFBLEdBQVcsR0FBRyxDQUFDLE1BQUosR0FBYSxFQUF4QjtHQU5GOztFQVNFLGNBQUEsR0FBaUIsR0FBRyxDQUFDLE1BQUosQ0FBVyxLQUFYLEVBQWtCLENBQWxCLENBQW9CLENBQUMsQ0FBRCxFQVR2Qzs7RUFXRSxHQUFHLENBQUMsTUFBSixDQUFXLFFBQVgsRUFBcUIsQ0FBckIsRUFBd0IsY0FBeEIsRUFYRjs7QUFhRSxTQUFPO0FBZEYsRUFGWTs7O0FBbUJuQixlQUFBLEdBQWtCLFFBQUEsQ0FBQyxFQUFELEVBQUssT0FBTCxFQUFjLEtBQWQsQ0FBQTtBQUVsQixNQUFBLGNBQUEsRUFBQSxZQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBQUE7RUFBRSxjQUFBLEdBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUM7RUFDMUIsTUFBQSxHQUFTO0VBQ1QsUUFBQSxHQUNFO0lBQUEsT0FBQSxFQUFTLEtBQVQ7SUFDQSxRQUFBLEVBQVUsVUFEVjtJQUVBLFFBQUEsRUFBVSxVQUZWO0lBR0EsUUFBQSxFQUFVLEtBSFY7SUFJQSxRQUFBLEVBQVUsS0FKVjtJQUtB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QUwsR0FBVyxHQUFYLElBQVcsR0FBWCxJQUFrQixXQUFsQixDQUFBLElBQWlDLENBQUMsQ0FBQyxJQUFGLEtBQVU7UUFEZCxDQUFsQjtRQUViLElBQUEsQ0FBSyxNQUFMLEVBQWEsVUFBVSxDQUFDLEtBQXhCLEVBQStCLFdBQUEsR0FBYyxVQUFVLENBQUMsR0FBeEQ7UUFFQSxXQUFBLEdBQWMsSUFBSSxDQUFDLEdBQUwsR0FBVztNQVQzQjtNQVVBLENBQUE7SUF2QkY7RUF0Qks7QUF6SlM7O0FBMk1sQixPQUFBLFFBQWUsUUFBQSxDQUFDLEVBQUQsRUFBSyxPQUFMLENBQUE7RUFDYixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFkLENBQW1CLFVBQW5CLEVBQStCLGVBQUEsQ0FBZ0IsRUFBaEIsRUFBb0IsT0FBcEIsQ0FBL0I7QUFEYSIsInNvdXJjZXNDb250ZW50IjpbIiMgVXRpbGl0eSBmdW5jdGlvbnNcclxuXHJcbm1vdmUgPSAoYXJyLCBlbGVtZW50LCBvZmZzZXQpIC0+XHJcbiAgaW5kZXggPSBhcnIuaW5kZXhPZihlbGVtZW50KVxyXG4gICMgaWYgbm90IGZvdW5kLCByZXR1cm4gaW1tZWRpYXRlbHlcclxuICByZXR1cm4gaW5kZXggaWYgaW5kZXggPCAwXHJcblxyXG4gIG5ld0luZGV4ID0gaW5kZXggKyBvZmZzZXRcclxuICBuZXdJbmRleCA9IDAgaWYgbmV3SW5kZXggPCAwXHJcbiAgbmV3SW5kZXggPSBhcnIubGVuZ3RoIC0gMSBpZiBuZXdJbmRleCA+PSBhcnIubGVuZ3RoXHJcblxyXG4gICMgcmVtb3ZlIHRoZSBlbGVtZW50IGZyb20gdGhlIGFycmF5XHJcbiAgcmVtb3ZlZEVsZW1lbnQgPSBhcnIuc3BsaWNlKGluZGV4LCAxKVswXVxyXG4gICMgYXQgbmV3SW5kZXgsIHJlbW92ZSAwIGVsZW1lbnRzLCBpbnNlcnQgdGhlIHJlbW92ZWRFbGVtZW50XHJcbiAgYXJyLnNwbGljZSBuZXdJbmRleCwgMCwgcmVtb3ZlZEVsZW1lbnRcclxuICAjIHJldHVybiB0aGUgbmV3SW5kZXggb2YgdGhlIHJlbW92ZWRFbGVtZW50XHJcbiAgcmV0dXJuIG5ld0luZGV4XHJcblxyXG4jIENoZWNrYm94IHJlcGxhY2VtZW50IGxvZ2ljLlxyXG5jaGVja2JveFJlcGxhY2UgPSAobWQsIG9wdGlvbnMsIFRva2VuKSAtPlxyXG5cclxuICBhcnJheVJlcGxhY2VBdCA9IG1kLnV0aWxzLmFycmF5UmVwbGFjZUF0XHJcbiAgbGFzdElkID0gMFxyXG4gIGRlZmF1bHRzID1cclxuICAgIGRpdldyYXA6IGZhbHNlXHJcbiAgICBkaXZDbGFzczogJ2NoZWNrYm94J1xyXG4gICAgaWRQcmVmaXg6ICdjaGVja2JveCdcclxuICAgIHJlYWRvbmx5OiBmYWxzZVxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlXHJcbiAgICBjdXN0b21IVE1MOiBmYWxzZVxyXG5cclxuICBvcHRpb25zID0gbWQudXRpbHMuYXNzaWduKGRlZmF1bHRzLCBvcHRpb25zKVxyXG4gIHBhdHRlcm4gPSAvXFxbKFh8XFxzfFxcX3xcXC0pXFxdXFxzKC4qKS9pXHJcblxyXG4gIGNyZWF0ZVRva2VucyA9IChjaGVja2VkLCBsYWJlbCwgVG9rZW4pIC0+XHJcbiAgICBub2RlcyA9IFtdXHJcblxyXG4gICAgaWQgPSBvcHRpb25zLmlkUHJlZml4ICsgbGFzdElkXHJcbiAgICBsYXN0SWQgKz0gMVxyXG5cclxuICAgIGlmIG9wdGlvbnMuY3VzdG9tSFRNTFxyXG4gICAgICB0b2tlbiA9IG5ldyBUb2tlbihcImh0bWxfaW5saW5lXCIsIFwiXCIsIDApXHJcbiAgICAgIGN1c3RvbUhUTUwgPSBvcHRpb25zLmN1c3RvbUhUTUxcclxuXHJcbiAgICAgIGdldFRhZyA9IChzdHIsIHRhZ05hbWUsIGNvbnRlbnQgPSAnJykgLT5cclxuICAgICAgICByZWdleHAgPSBuZXcgUmVnRXhwIFwiKDwje3RhZ05hbWV9Lio/PikoI3tjb250ZW50fSk/XCIsIFwiaWdtXCJcclxuICAgICAgICByZXMgPSByZWdleHAuZXhlYyBzdHJcclxuXHJcbiAgICAgICAgaWYgIXJlc1xyXG4gICAgICAgICAgcmV0dXJuIHJlc1xyXG5cclxuICAgICAgICBtYXRjaGVzID0gcmVnZXhwLmV4ZWMgc3RyXHJcbiAgICAgICAgd2hpbGUgbWF0Y2hlc1xyXG4gICAgICAgICAgaWYgfm1hdGNoZXMuaW5kZXhPZihjb250ZW50KSAmJiBjb250ZW50Lmxlbmd0aFxyXG4gICAgICAgICAgICByZXMgPSBtYXRjaGVzXHJcbiAgICAgICAgICBtYXRjaGVzID0gcmVnZXhwLmV4ZWMgc3RyXHJcblxyXG4gICAgICAgIHJldHVybiByZXNbMF1cclxuXHJcbiAgICAgIGF0dHIgPSAodGFnLCBhdHRyaWJ1dGVzID0ge30pIC0+XHJcbiAgICAgICAgcmVwbGFjZUF0dHIgPSAocmVnZXhwLCB2YWx1ZSkgLT5cclxuICAgICAgICAgIHRhZy5yZXBsYWNlKHJlZ2V4cCwgXCIkMSN7dmFsdWV9JDJcIilcclxuXHJcbiAgICAgICAgYWRkQXR0ciA9IChhdHRyLCB2YWwpIC0+XHJcbiAgICAgICAgICB0YWdOYW1lID0gdGFnLm1hdGNoKC88KFxcdys/KVxccy8pWzFdXHJcbiAgICAgICAgICByZWdleHAgPSBuZXcgUmVnRXhwIFwiKDwje3RhZ05hbWV9KSguKz8+KVwiXHJcblxyXG4gICAgICAgICAgdmFsID0gXCJcIiBpZiB2YWwgPT0gdHJ1ZVxyXG5cclxuICAgICAgICAgIHJldHVybiB0YWcucmVwbGFjZShyZWdleHAsIFwiJDEgI3thdHRyfT1cXFwiI3t2YWx9XFxcIiQyXCIpXHJcblxyXG4gICAgICAgIGZvciBhdHRyTmFtZSwgYXR0clZhbHVlIG9mIGF0dHJpYnV0ZXNcclxuICAgICAgICAgIGF0dHJSZWdleHAgPSBuZXcgUmVnRXhwIFwiKCN7YXR0ck5hbWV9PVsnXFxcIl0pLis/KFsnXFxcIl0pXCJcclxuXHJcbiAgICAgICAgICBjb250aW51ZSBpZiBhdHRyVmFsdWUgPT0gZmFsc2VcclxuXHJcbiAgICAgICAgICBpZiB+dGFnLnNlYXJjaChhdHRyUmVnZXhwKVxyXG4gICAgICAgICAgICB0YWcgPSByZXBsYWNlQXR0cihhdHRyUmVnZXhwLCBhdHRyVmFsdWUpXHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRhZyA9IGFkZEF0dHIoYXR0ck5hbWUsIGF0dHJWYWx1ZSlcclxuXHJcbiAgICAgICAgcmV0dXJuIHRhZ1xyXG5cclxuICAgICAgbGFiZWxUYWcgPSBnZXRUYWcoY3VzdG9tSFRNTCwgJ2xhYmVsJywgJ3tsYWJlbH0nKVxyXG4gICAgICBpbnB1dFRhZyA9IGdldFRhZyhjdXN0b21IVE1MLCAnaW5wdXQnKVxyXG5cclxuICAgICAgaWYgbGFiZWxUYWdcclxuICAgICAgICBuZXdMYWJlbFRhZyA9IGF0dHIobGFiZWxUYWcsICdmb3InOiBpZClcclxuXHJcbiAgICAgICAgaWYgfm5ld0xhYmVsVGFnLnNlYXJjaCgne2xhYmVsfScpXHJcbiAgICAgICAgICBuZXdMYWJlbFRhZyA9IG5ld0xhYmVsVGFnLnJlcGxhY2UoJ3tsYWJlbH0nLCBsYWJlbClcclxuICAgICAgICAgIGN1c3RvbUhUTUwgPSBjdXN0b21IVE1MLnJlcGxhY2UobGFiZWxUYWcsIG5ld0xhYmVsVGFnKVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGN1c3RvbUhUTUwgPSBjdXN0b21IVE1MLnJlcGxhY2UoLzxsYWJlbC4qPz4vLCBuZXdMYWJlbFRhZyArIGxhYmVsKVxyXG5cclxuICAgICAgaWYgaW5wdXRUYWdcclxuICAgICAgICBuZXdJbnB1dFRhZyA9IGF0dHIoaW5wdXRUYWcsXHJcbiAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICBjaGVja2VkOiBjaGVja2VkLFxyXG4gICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbnMuZGlzYWJsZWRcclxuICAgICAgICApXHJcblxyXG4gICAgICAgIGN1c3RvbUhUTUwgPSBjdXN0b21IVE1MLnJlcGxhY2UoLzxpbnB1dC4rPz4vLCBuZXdJbnB1dFRhZylcclxuXHJcbiAgICAgIHRva2VuLmNvbnRlbnQgPSBjdXN0b21IVE1MXHJcblxyXG4gICAgICBub2Rlcy5wdXNoIHRva2VuXHJcblxyXG4gICAgICByZXR1cm4gbm9kZXNcclxuXHJcbiAgICAjIyMqXHJcbiAgICAjIDxkaXYgY2xhc3M9XCJjaGVja2JveFwiPlxyXG4gICAgIyMjXHJcbiAgICBpZiBvcHRpb25zLmRpdldyYXBcclxuICAgICAgdG9rZW4gPSBuZXcgVG9rZW4oXCJjaGVja2JveF9vcGVuXCIsIFwiZGl2XCIsIDEpXHJcbiAgICAgIHRva2VuLmF0dHJzID0gW1tcImNsYXNzXCIsIG9wdGlvbnMuZGl2Q2xhc3NdXVxyXG4gICAgICBub2Rlcy5wdXNoIHRva2VuXHJcblxyXG4gICAgIyMjKlxyXG4gICAgIyA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJjaGVja2JveHtufVwiIGNoZWNrZWQ9XCJcIiByZWFkb25seT1cIlwiPlxyXG4gICAgIyMjXHJcbiAgICB0b2tlbiA9IG5ldyBUb2tlbihcImNoZWNrYm94X2lucHV0XCIsIFwiaW5wdXRcIiwgMClcclxuICAgIHRva2VuLmF0dHJzID0gW1tcInR5cGVcIiwgXCJjaGVja2JveFwiXSwgW1wiaWRcIiwgaWRdXVxyXG4gICAgaWYoY2hlY2tlZCA9PSB0cnVlKVxyXG4gICAgICB0b2tlbi5hdHRycy5wdXNoIFtcImNoZWNrZWRcIiwgXCJcIl1cclxuICAgIGlmIG9wdGlvbnMucmVhZG9ubHlcclxuICAgICAgdG9rZW4uYXR0cnMucHVzaCBbXCJyZWFkb25seVwiLCBcIlwiXVxyXG4gICAgaWYob3B0aW9ucy5kaXNhYmxlZClcclxuICAgICAgdG9rZW4uYXR0cnMucHVzaCBbXCJkaXNhYmxlZFwiLCBcIlwiXVxyXG4gICAgbm9kZXMucHVzaCB0b2tlblxyXG5cclxuICAgICMjIypcclxuICAgICMgPGxhYmVsIGZvcj1cImNoZWNrYm94e259XCI+XHJcbiAgICAjIyNcclxuICAgIHRva2VuID0gbmV3IFRva2VuKFwibGFiZWxfb3BlblwiLCBcImxhYmVsXCIsIDEpXHJcbiAgICB0b2tlbi5hdHRycyA9IFtbXCJmb3JcIixpZF1dXHJcbiAgICBub2Rlcy5wdXNoIHRva2VuXHJcblxyXG4gICAgIyMjKlxyXG4gICAgIyBjb250ZW50IG9mIGxhYmVsIHRhZ1xyXG4gICAgIyMjXHJcbiAgICB0b2tlbiA9IG5ldyBUb2tlbihcInRleHRcIiwgXCJcIiwgMClcclxuICAgIHRva2VuLmNvbnRlbnQgPSBsYWJlbFxyXG4gICAgbm9kZXMucHVzaCB0b2tlblxyXG5cclxuICAgICMjIypcclxuICAgICMgY2xvc2luZyB0YWdzXHJcbiAgICAjIyNcclxuICAgIG5vZGVzLnB1c2ggbmV3IFRva2VuKFwibGFiZWxfY2xvc2VcIiwgXCJsYWJlbFwiLCAtMSlcclxuICAgIGlmIG9wdGlvbnMuZGl2V3JhcFxyXG4gICAgICBub2Rlcy5wdXNoIG5ldyBUb2tlbihcImNoZWNrYm94X2Nsb3NlXCIsIFwiZGl2XCIsIC0xKVxyXG5cclxuICAgIHJldHVybiBub2Rlc1xyXG5cclxuICBzcGxpdFRleHRUb2tlbiA9IChvcmlnaW5hbCwgVG9rZW4pIC0+XHJcblxyXG4gICAgdGV4dCAgICAgID0gb3JpZ2luYWwuY29udGVudFxyXG4gICAgbWF0Y2hlcyAgID0gdGV4dC5tYXRjaCBwYXR0ZXJuXHJcblxyXG4gICAgaWYgbWF0Y2hlcyA9PSBudWxsXHJcbiAgICAgIHJldHVybiBvcmlnaW5hbFxyXG5cclxuICAgIGNoZWNrZWQgICA9IGZhbHNlXHJcbiAgICB2YWx1ZSAgICAgPSBtYXRjaGVzWzFdXHJcbiAgICBsYWJlbCAgICAgPSBtYXRjaGVzWzJdXHJcblxyXG4gICAgaWYgKHZhbHVlID09IFwiWFwiIHx8IHZhbHVlID09IFwieFwiKVxyXG4gICAgICBjaGVja2VkID0gdHJ1ZVxyXG5cclxuICAgIHJldHVybiBjcmVhdGVUb2tlbnMoY2hlY2tlZCwgbGFiZWwsIFRva2VuKVxyXG5cclxuXHJcbiAgcmV0dXJuIChzdGF0ZSkgLT5cclxuICAgIGJsb2NrVG9rZW5zID0gc3RhdGUudG9rZW5zXHJcbiAgICBqID0gMFxyXG4gICAgbCA9IGJsb2NrVG9rZW5zLmxlbmd0aFxyXG4gICAgd2hpbGUgaiA8IGxcclxuICAgICAgaWYgYmxvY2tUb2tlbnNbal0udHlwZSAhPSBcImlubGluZVwiXHJcbiAgICAgICAgaisrXHJcbiAgICAgICAgY29udGludWVcclxuICAgICAgdG9rZW5zID0gYmxvY2tUb2tlbnNbal0uY2hpbGRyZW5cclxuICAgICAgIyBXZSBzY2FuIGZyb20gdGhlIGVuZCwgdG8ga2VlcCBwb3NpdGlvbiB3aGVuIG5ldyB0YWdzIGFkZGVkLlxyXG4gICAgICAjIFVzZSByZXZlcnNlZCBsb2dpYyBpbiBsaW5rcyBzdGFydC9lbmQgbWF0Y2hcclxuICAgICAgaSA9IHRva2Vucy5sZW5ndGggLSAxXHJcbiAgICAgIHdoaWxlIGkgPj0gMFxyXG4gICAgICAgIHRva2VuID0gdG9rZW5zW2ldXHJcbiAgICAgICAgYmxvY2tUb2tlbnNbal0uY2hpbGRyZW4gPSB0b2tlbnMgPSBhcnJheVJlcGxhY2VBdChcclxuICAgICAgICAgIHRva2VucywgaSwgc3BsaXRUZXh0VG9rZW4odG9rZW4sIHN0YXRlLlRva2VuKVxyXG4gICAgICAgIClcclxuICAgICAgICBpLS1cclxuICAgICAgaisrXHJcblxyXG4gICAgaiA9IDBcclxuICAgIGwgPSBibG9ja1Rva2Vucy5sZW5ndGhcclxuICAgIHdoaWxlIGogPCBsXHJcbiAgICAgIGlmIGJsb2NrVG9rZW5zW2pdLnR5cGUgIT0gXCJpbmxpbmVcIlxyXG4gICAgICAgIGorK1xyXG4gICAgICAgIGNvbnRpbnVlXHJcbiAgICAgIHRva2VucyA9IGJsb2NrVG9rZW5zW2pdLmNoaWxkcmVuXHJcbiAgICAgIG1hcHBlZFRva2VucyA9IHRva2Vucy5tYXAgKHQsIGlkeCkgLT4ge1xyXG4gICAgICAgIGlkeDogaWR4XHJcbiAgICAgICAgdHlwZTogdC50eXBlXHJcbiAgICAgICAgdG9rZW46IHRcclxuICAgICAgfVxyXG4gICAgICBzdWl0YWJsZUlkeCA9IHRva2Vucy5sZW5ndGggLSAxXHJcblxyXG4gICAgICBsYWJlbE9wZW5zID0gbWFwcGVkVG9rZW5zLmZpbHRlciAodCkgLT4gdC50eXBlIGlzICdsYWJlbF9vcGVuJ1xyXG4gICAgICBmb3Igb3BlbiBpbiBsYWJlbE9wZW5zLnJldmVyc2UoKVxyXG4gICAgICAgIGlmIHN1aXRhYmxlSWR4IDwgMCB0aGVuIHN1aXRhYmxlSWR4ID0gMFxyXG4gICAgICAgIHdoaWxlIG1hcHBlZFRva2Vuc1tzdWl0YWJsZUlkeF0udHlwZSBpbiBbJ3NvZnRicmVhaycsICdjaGVja2JveF9jbG9zZSddXHJcbiAgICAgICAgICBzdWl0YWJsZUlkeC0tXHJcblxyXG4gICAgICAgIGxhYmVsQ2xvc2UgPSBtYXBwZWRUb2tlbnMuZmluZCAodCwgaWR4KSAtPlxyXG4gICAgICAgICAgb3Blbi5pZHggPCBpZHggPD0gc3VpdGFibGVJZHggJiYgdC50eXBlIGlzICdsYWJlbF9jbG9zZSdcclxuICAgICAgICBtb3ZlIHRva2VucywgbGFiZWxDbG9zZS50b2tlbiwgc3VpdGFibGVJZHggLSBsYWJlbENsb3NlLmlkeFxyXG5cclxuICAgICAgICBzdWl0YWJsZUlkeCA9IG9wZW4uaWR4IC0gMlxyXG4gICAgICBqKytcclxuICAgIHJldHVyblxyXG5cclxuICByZXR1cm5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IChtZCwgb3B0aW9ucykgLT5cclxuICBtZC5jb3JlLnJ1bGVyLnB1c2ggXCJjaGVja2JveFwiLCBjaGVja2JveFJlcGxhY2UobWQsIG9wdGlvbnMpXHJcbiAgcmV0dXJuXHJcbiJdfQ==\n//# sourceURL=Z:\\lib\\js\\markdown-it-checkbox\\index.coffee\n"],"names":[],"mappings":"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"}