deckar01-task_list
Version:
Markdown TaskList components
1 lines • 4.89 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.TaskList=t():e.TaskList=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){var n,r,i,a,s=[].indexOf;n=function(e){return Array.prototype.slice.apply(e)},i=function(e,t){for(;e&&!e.classList.contains(t);)e=e.parentNode;return e},a=function(e,t){var n;return"function"==typeof Event?(n=new Event(e,{bubbles:!0,cancelable:!0})).detail=t:(n=document.createEvent("CustomEvent")).initCustomEvent(e,!0,!0,t),n},r=function(){class e{constructor(e){this.el=e,this.container=i(this.el,"js-task-list-container"),this.field=this.container.querySelector(".js-task-list-field"),this.container.addEventListener("change",e=>{if(e.target.classList.contains("task-list-item-checkbox"))return this.updateTaskList(e.target)}),this.enable()}enable(){var e;if(this.container.querySelectorAll(".js-task-list-field").length>0)return n(this.container.querySelectorAll(".task-list-item")).forEach((function(e){return e.classList.add("enabled")})),n(this.container.querySelectorAll(".task-list-item-checkbox")).forEach((function(e){return e.disabled=!1})),this.container.classList.add("is-task-list-enabled"),e=a("tasklist:enabled"),this.container.dispatchEvent(e)}disable(){var e;return n(this.container.querySelectorAll(".task-list-item")).forEach((function(e){return e.classList.remove("enabled")})),n(this.container.querySelectorAll(".task-list-item-checkbox")).forEach((function(e){return e.disabled=!0})),this.container.classList.remove("is-task-list-enabled"),e=a("tasklist:disabled"),this.container.dispatchEvent(e)}updateTaskList(t){var r,i,s,c,l,o,u;if(s=this.container.querySelectorAll(".task-list-item-checkbox"),c=1+n(s).indexOf(t),r=a("tasklist:change",{index:c,checked:t.checked}),this.field.dispatchEvent(r),!r.defaultPrevented)return({result:u,lineNumber:l,lineSource:o}=e.updateSource(this.field.value,c,t.checked,t)),this.field.value=u,r=a("change"),this.field.dispatchEvent(r),i=a("tasklist:changed",{index:c,checked:t.checked,lineNumber:l,lineSource:o}),this.field.dispatchEvent(i)}static escapePattern(e){return e.replace(/([\[\]])/g,"\\$1").replace(/\s/,"\\s").replace("x","[xX]")}static updateSource(e,t,n,r){return r.parentElement.hasAttribute("data-sourcepos")?this._updateSourcePosition(e,r,n):this._updateSourceRegex(e,t,n)}static _updateSourcePosition(e,t,n){var r,i,a,s,c;return s=e.split("\n"),c=t.parentElement.getAttribute("data-sourcepos"),a=s[(i=parseInt(c.split(":")[0]))-1],r=n?a.replace(this.incompletePattern,this.complete):a.replace(this.completePattern,this.incomplete),s[i-1]=r,{result:s.join("\n"),lineNumber:i,lineSource:a}}static _updateSourceRegex(e,t,n){var r,i,a,c,l,o,u,p;return p=e.split("\n"),r=e.replace(/\r/g,"").replace(this.itemsInParasPattern,"").split("\n"),c=0,a=!1,{result:function(){var e,d,f;for(f=[],i=e=0,d=p.length;e<d;i=++e)l=p[i],a?l.match(this.endFencesPattern)&&(a=!1):l.match(this.startFencesPattern)?a=!0:s.call(r,l)>=0&&l.trim().match(this.itemPattern)&&(c+=1)===t&&(o=i+1,u=l,l=n?l.replace(this.incompletePattern,this.complete):l.replace(this.completePattern,this.incomplete)),f.push(l);return f}.call(this).join("\n"),lineNumber:o,lineSource:u}}}return e.incomplete="[ ]",e.complete="[x]",e.incompletePattern=RegExp(""+e.escapePattern(e.incomplete)),e.completePattern=RegExp(""+e.escapePattern(e.complete)),e.itemPattern=RegExp(`^(?:\\s*(?:>\\s*)*(?:[-+*]|(?:\\d+\\.)))\\s*(${e.escapePattern(e.complete)}|${e.escapePattern(e.incomplete)})\\s`),e.startFencesPattern=/^`{3}.*$/,e.endFencesPattern=/^`{3}\s*$/,e.itemsInParasPattern=RegExp(`^(${e.escapePattern(e.complete)}|${e.escapePattern(e.incomplete)}).+$`,"g"),e}.call(this),"undefined"!=typeof jQuery&&(jQuery.fn.taskList=function(e){return this.each((function(t,n){var i;if((i=jQuery(n).data("task-list"))||(i=new r(n),jQuery(n).data("task-list",i),e&&"enable"!==e))return i[e||"enable"]()}))}),e.exports=r}])}));