import NumberCellComponent from"./number.svelte";class NumberPlugin{constructor(e){this.hooks=e,this.namespace="tablesome",this.init()}init(){this.hooks.addFilter("getColumnFormats",this.namespace,this.getColumnFormats),this.hooks.addFilter("getCellComponent",this.namespace,this.getCellComponent),this.hooks.addFilter("getSearchRecords",this.namespace,this.getSearchRecords),this.hooks.addFilter("getSortRecords",this.namespace,this.getSortRecords),this.hooks.addFilter("getFilterRecords",this.namespace,this.getFilterRecords)}getColumnFormats(e){return e.push({format:"number",class:"tablesome__option--basic tablesome__option--basic-number",icon:"editor-ol",text:"Number"}),e}getCellComponent(e){return"number"==e.cellType&&(e.component=NumberCellComponent),e}getSearchRecords(e){if("number"==e.cellType&&!e.isContentMatch){let t=e.cell.value?e.cell.value.toString().toLowerCase():"";e.isContentMatch=t.indexOf(e.searchQuery)>=0}return e}getSortRecords(e){return"number"==e.cellType&&(e.valueA="value"in e.rowA&&e.rowA.value?e.rowA.value:"",e.valueB="value"in e.rowB&&e.rowB.value?e.rowB.value:"",e.sortType="number"),e}getFilterRecords(e){if("number"==e.filter.format){let t=e.filter.value?parseFloat(e.filter.value):"",r="value"in e.cell&&e.cell.value?parseFloat(e.cell.value):"";e.isContentMatch=filterNumber(e.filter.operator.value,r,t)}return e}}export default NumberPlugin;const filterNumber=(e,t,r)=>"="==e?t==r:"!="==e?t!=r:">"==e?t>r:"<"==e?t<r:">="==e?t>=r:"<="==e?t<=r:void 0;