UNPKG

gridjs

Version:

Advanced table plugin

1 lines 16.4 kB
{"version":3,"file":"selection.modern.mjs","sources":["../../../node_modules/preact/dist/preact.module.js","../src/rowSelection/actions.ts","../src/rowSelection/rowSelection.tsx"],"sourcesContent":["var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(l,u,i){var t,o,r,f={};for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v(l,f,t,o,null)}function v(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function b(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||setTimeout)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z(u,t),t.__e!=o&&k(t)))})}function w(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k||\"bigint\"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(p,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null}j(n,k,d=d||f,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),\"function\"==typeof k.type&&k.__k===d.__k?k.__d=s=m(k,s,n):s=A(n,k,d,x,b,s),\"function\"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d))}for(u.__e=g,h=C;h--;)null!=x[h]&&N(x[h],x[h]);if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h])}function m(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l=\"function\"==typeof i.type?m(i,l,u):A(u,i,i,t,i.__e,l));return l}function x(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){x(n,l)}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||c.test(l)?u:u+\"px\"}function H(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||$(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&-1==l.indexOf(\"-\")?n.removeAttribute(l):n.setAttribute(l,u))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if(\"function\"==typeof T){if(g=u.props,m=(a=T.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:(\"prototype\"in T&&T.prototype.render?u.__c=h=new T(g,x):(u.__c=h=new d(g,x),h.constructor=T,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,T.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==T.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){for(h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),A=0;A<h._sb.length;A++)h.__h.push(h._sb[A]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k)})}if(h.context=x,h.props=g,h.__v=u,h.__P=n,C=l.__r,$=0,\"prototype\"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++$<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),I=null!=a&&a.type===p&&null==a.key?a.props.children:a,w(n,Array.isArray(I)?I:[I],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if(\"svg\"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),h=(y=i.props||f).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||\"\"))}if(C(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w(l,Array.isArray(k)?k:[k],u,i,t,o&&\"foreignObject\"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a(r[k]);c||(\"value\"in p&&void 0!==(k=p.value)&&(k!==l.value||\"progress\"===d&&!k||\"option\"===d&&k!==y.value)&&H(l,\"value\",k,y.value,!1),\"checked\"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H(l,\"checked\",k,y.checked,!1))}return l}function M(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,i||\"function\"!=typeof n.type);i||null==n.__e||a(n.__e),n.__=n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function P(u,i,t){var o,r,e;l.__&&l.__(u,i),r=(o=\"function\"==typeof t)?null:t&&t.__k||i.__k,e=[],j(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f,f,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z(e,u)}function S(n,l){P(n,l,S)}function q(l,u,i){var t,o,r,f=s({},l.props);for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),v(l.type,f,t||l.key,o||l.ref,null)}function B(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},d.prototype.render=p,t=[],g.__r=0,r=0;export{d as Component,p as Fragment,q as cloneElement,B as createContext,h as createElement,y as createRef,h,S as hydrate,i as isValidElement,l as options,P as render,x as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","export const CheckRow = (rowId: string) => (state) => {\n const rowIds = state.rowSelection?.rowIds || [];\n\n // rowId already exists\n if (rowIds.indexOf(rowId) > -1) return state;\n\n return {\n ...state,\n rowSelection: {\n rowIds: [rowId, ...rowIds],\n },\n };\n};\n\nexport const UncheckRow = (rowId: string) => (state) => {\n const rowIds = state.rowSelection?.rowIds || [];\n const index = rowIds.indexOf(rowId);\n\n // rowId doesn't exist\n if (index === -1) return state;\n\n const cloned = [...rowIds];\n cloned.splice(index, 1);\n\n return {\n ...state,\n rowSelection: {\n rowIds: cloned,\n },\n };\n};\n","import { h } from 'preact';\nimport * as actions from './actions';\nimport { useStore, className, useEffect, useState, useSelector } from 'gridjs';\nimport { Row } from 'gridjs';\nimport { Cell } from 'gridjs';\n\ninterface RowSelectionProps {\n // it's optional because thead doesn't have a row\n row?: Row;\n cell?: Cell;\n}\n\nexport function RowSelection(props: RowSelectionProps) {\n const { dispatch } = useStore();\n const state = useSelector((state) => state.rowSelection);\n const [isChecked, setIsChecked] = useState(false);\n const selectedClassName = className('tr', 'selected');\n const checkboxClassName = className('checkbox');\n const isDataCell = (props) => props.row !== undefined;\n const getParentTR = () =>\n this.base &&\n this.base.parentElement &&\n (this.base.parentElement.parentElement as Element);\n\n useEffect(() => {\n // store/dispatcher is required only if we are rendering a TD (not a TH)\n if (props.cell?.data && isDataCell(props)) {\n // mark this checkbox as checked if cell.data is true\n check();\n }\n }, []);\n\n useEffect(() => {\n const parent = getParentTR();\n\n if (!parent) return;\n\n const rowIds = state?.rowIds || [];\n const isChecked = rowIds.indexOf(props.row.id) > -1;\n setIsChecked(isChecked);\n\n if (isChecked) {\n parent.classList.add(selectedClassName);\n } else {\n parent.classList.remove(selectedClassName);\n }\n }, [state]);\n\n const check = () => {\n dispatch(actions.CheckRow(props.row.id));\n props.cell?.update(true);\n };\n\n const uncheck = () => {\n dispatch(actions.UncheckRow(props.row.id));\n props.cell?.update(false);\n };\n\n const toggle = () => {\n if (isChecked) {\n uncheck();\n } else {\n check();\n }\n };\n\n if (!isDataCell(props)) return null;\n\n return (\n <input\n type={'checkbox'}\n checked={isChecked}\n onChange={() => toggle()}\n className={checkboxClassName}\n />\n );\n}\n"],"names":["n","l","u","v","i","t","o","r","f","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","slice","getDerivedStateFromError","setState","componentDidCatch","__E","CheckRow","rowId","state","_state$rowSelection","rowIds","rowSelection","indexOf","UncheckRow","_state$rowSelection2","index","cloned","splice","_extends","dispatch","useStore","useSelector","isChecked","setIsChecked","useState","selectedClassName","className","checkboxClassName","isDataCell","undefined","row","getParentTR","this","base","parentElement","useEffect","_props$cell","cell","data","check","parent","id","classList","add","remove","actions","_props$cell2","update","arguments","length","children","call","defaultProps","h","checked","onChange","_props$cell3"],"mappings":"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"}