issue-pane
Version:
Solid-compatible Panes: issue editor
1 lines • 3.29 kB
JavaScript
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o(require("UI"),require("SolidLogic")):"function"==typeof define&&define.amd?define(["UI","SolidLogic"],o):"object"==typeof exports?exports.csvButton=o(require("UI"),require("SolidLogic")):e.csvButton=o(e.UI,e.SolidLogic)}(this,(e,o)=>(()=>{"use strict";var t={426:o=>{o.exports=e},663:e=>{e.exports=o}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var s=n[e]={exports:{}};return t[e](s,s.exports,r),s.exports}r.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return r.d(o,{a:o}),o},r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};r.r(s),r.d(s,{csvButton:()=>u,csvText:()=>i,quoteString:()=>a});var l=r(426),c=r(663);function a(e){const o=e.replaceAll("\n"," ");if(!o.includes(","))return o;const t='"'+o.replaceAll('"','""')+'"';if(console.log("Quoted: >>>"+t+"<<<"),t.slice(1,-1).replaceAll('""',"").includes('"'))throw new Error("CSV inconsistecy");return t}function i(e,o){const t=e.any(o,l.ns.wf("stateStore")),n=e.each(null,l.ns.wf("tracker"),o,t);console.log(" CSV: Tasks:",n.length);const r=[{label:"Name",predicate:l.ns.dc("title")}],s=e.any(o,l.ns.wf("issueClass"));console.log(" CSV: States - main superclass:",s);const c={label:"State",category:s};console.log(" CSV: found column from state",c),r.push(c);const i=e.each(o,l.ns.wf("issueCategory"));console.log(" CSV: Categories : ",i),console.log(" CSV: Categories : length: ",i.length),console.log(" CSV: Categories : first: ",i[0]);const u=i;for(const e of u){const o={label:l.utils.label(e),category:e};console.log(" CSV: found column from classifications",o),r.push(o)}const p=e.any(o,l.ns.wf("extrasEntryForm"),null,null);if(console.log(" CSV: Form : ",p),p){const o=e.any(p,l.ns.ui("parts"),null,p.doc());console.log(" CSV: parts : ",o);const t=o.elements;console.log(" CSV: fields : ",t);for(const o of t){const t=e.any(o,l.ns.ui("property"));if(t){const e={label:l.utils.label(t),predicate:t};console.log(" CSV: found column from form",e),r.push(e)}}}r.push({label:"Description",predicate:l.ns.wf("description")}),console.log("Columns: ",r.length);const f=r.map(e=>e.label).join(",")+"\n";return console.log("CSV: Header= ",f),f+n.map(function(o){return r.map(t=>function(o,t){let n;if(t.predicate)return n=e.any(o,t.predicate),n?n.value:"--";if(!t.category)throw new Error("wot no pred or cat",t);{const r=e.each(o,l.ns.rdf("type"));for(const o of r)e.holds(o,l.ns.rdfs("subClassOf"),t.category)&&(n=o);if(!n)return"?"+l.utils.label(t.category)}return l.utils.label(n)}(o,t)).map(a).join(",")+"\n"}).join("")}function u(e,o){const t=e.createElement("div"),n=l.widgets.button(e,l.icons.iconBase+"noun_Document_998605.svg","Copy as CSV",async e=>{const t=n.parentNode.parentNode;console.log("button gparent div",t),t.addEventListener("copy",e=>{const t=i(c.store,o);e.clipboardData.setData("text/plain",t),e.clipboardData.setData("text/csv",t),alert("Copy data: "+t),e.preventDefault()})});return t.appendChild(n),t}return s})());