{"version":3,"file":"checklist.js","names":["define","_exports","_ajax","_ajaxError","_iconLibrary","_pluginApi","_discourseI18n","isWhitespaceNode","node","nodeType","nodeValue","match","addUlClasses","boxes","forEach","val","parent","parentElement","nodeName","firstElementChild","sibling","previousSibling","hasPrecedingContent","classList","add","nextSibling","insertAdjacentHTML","checklistSyntax","elem","postDecorator","getElementsByClassName","postWidget","widget","postModel","getModel","can_edit","idx","onclick","async","box","event","currentTarget","contains","newValue","template","document","createElement","innerHTML","iconHTML","class","insertAdjacentElement","content","firstChild","e","post","ajax","id","blocks","regex","exec","raw","push","index","length","nth","found","newRaw","replace","ignored","off","every","b","save","edit_reason","i18n","attrs","isSaving","scheduleRerender","popupAjaxError","remove","querySelector","Object","defineProperty","value","default","name","initialize","withPluginApi","api","container","lookup","checklist_enabled","decorateCookedElement","initializePlugin","setup","helper","registerOptions","opts","siteSettings","features","allowList","registerPlugin","md","core","ruler","processChecklist","REGEX","addCheckbox","result","state","classes","str","getClasses","checkOpenToken","Token","checkCloseToken","applyCheckboxes","pos","token","slice","i","j","l","tokens","blockTokens","nesting","type","children","processed","utils","arrayReplaceAt"],"sources":["discourse/plugins/checklist/discourse/initializers/checklist.js","discourse/plugins/checklist/lib/discourse-markdown/checklist.js"],"sourcesContent":["define(\"discourse/plugins/checklist/discourse/initializers/checklist\", [\"exports\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/icon-library\", \"discourse/lib/plugin-api\", \"discourse-i18n\"], function (_exports, _ajax, _ajaxError, _iconLibrary, _pluginApi, _discourseI18n) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.checklistSyntax = checklistSyntax;\n _exports.default = void 0;\n function initializePlugin(api) {\n const siteSettings = api.container.lookup(\"service:site-settings\");\n if (siteSettings.checklist_enabled) {\n api.decorateCookedElement(checklistSyntax);\n }\n }\n function isWhitespaceNode(node) {\n return node.nodeType === 3 && node.nodeValue.match(/^\\s*$/);\n }\n function hasPrecedingContent(node) {\n let sibling = node.previousSibling;\n while (sibling) {\n if (!isWhitespaceNode(sibling)) {\n return true;\n }\n sibling = sibling.previousSibling;\n }\n return false;\n }\n function addUlClasses(boxes) {\n boxes.forEach(val => {\n let parent = val.parentElement;\n if (parent.nodeName === \"P\" && parent.parentElement.firstElementChild === parent) {\n parent = parent.parentElement;\n }\n if (parent.nodeName === \"LI\" && parent.parentElement.nodeName === \"UL\" && !hasPrecedingContent(val)) {\n parent.classList.add(\"has-checkbox\");\n val.classList.add(\"list-item-checkbox\");\n if (!val.nextSibling) {\n val.insertAdjacentHTML(\"afterend\", \"\"); // Ensure otherwise empty