@base-framework/organisms 1.0.21 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/organisms.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Div as g}from"@base-framework/atoms";import{Data as y,Jot as x}from"@base-framework/base";import{Builder as u,Html as m}from"@base-framework/base";var a=class{static first(t){return this.get(t,0)}static last(t){let e=t.childNodes.length-1;return this.get(t,e)}static get(t,e){return t?.childNodes[e]??null}static next(t){return t?.nextSibling??null}static previous(t){return t?.previousSibling??null}static index(t){return t?.parentNode?.children.indexOf(t)??-1}static getPreviousIndex(t){let e=this.index(t);return e>0?e-1:0}static replace(t,e,r){if(!e)return;let i=e.parentNode,n=this.getPreviousIndex(e);this.remove(e);let c=u.build(t,null,r);i.insertBefore(c,i.childNodes[n])}static remove(t){t&&m.removeChild(t)}static append(t,e,r){!t||u.build(t,e,r)}static prepend(t,e,r){if(!t)return;let i=u.build(t,null,r);r.insertBefore(i,e.firstChild)}};var f=(s,t,e)=>({index:s,item:t,status:e}),l=class{static diff(t,e,r){let i=this.arrayToMap(t,r),n=[],c=[];return e.forEach((o,d)=>{let h=o[r];if(!i.has(h)){n.push(f(d,o,"added"));return}let{item:p}=i.get(h);if(!this.deepEqual(p,o)){n.push(f(d,o,"updated"));return}n.push(f(d,o,"unchanged")),i.delete(h)}),i.forEach(({item:o})=>{c.push(o)}),{changes:n,deletedItems:c}}static arrayToMap(t,e){let r=new Map;return t.forEach((i,n)=>{r.set(i[e],{item:i,index:n})}),r}static deepEqual(t,e){if(t===e)return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;let r=Object.keys(t),i=Object.keys(e);if(r.length!==i.length)return!1;for(let n of r)if(!i.includes(n)||!this.deepEqual(t[n],e[n]))return!1;return!0}};var v=x({setData(){return new y({items:[]})},render(){let s=this.row.bind(this);return g({class:`list ${this.class||""}`,for:["items",s]})},row(s){return typeof this.rowItem!="function"?null:this.rowItem(s)},delete(s){let t=this.findIndexByKey(s);if(t===-1)return;this.data.delete(`items[${t}]`);let e=a.get(this.panel,t);a.remove(e)},replace(s){let t=s.item;if(s.status==="added"){this.append(t);return}let e=t[this.key],r=this.findIndexByKey(e);this.data.set(`items[${r}]`,t);let i=a.get(this.panel,r),n=this.row(t,r);a.replace(i,n)},remove(s){s.forEach(t=>{this.delete(t[this.key])})},append(s){Array.isArray(s)||(s=[s]);let t=[],e=this.data.items.length-1;s.forEach(r=>{t.push(this.row(r)),this.data.set(`items[${++e}]`,r)}),a.append(t,this.panel,this)},mingle(s,t=!1){let e=this.data.items,r=l.diff(e,s,this.key);t&&r.deletedItems.length>0&&this.remove(r.deletedItems),r.changes.forEach(i=>{this.replace(i)})},prepend(s){Array.isArray(s)||(s=[s]);let t=[],e=this.data.items,r=e.length-1;s.reverse().forEach(i=>{r++,t.push(this.row(i)),e.unshift(i)}),a.prepend(t,this.panel,this)},findIndexByKey(s){return this.data.items.findIndex(e=>e[this.key]===s)}});export{v as List};
1
+ import{Div as g}from"@base-framework/atoms";import{Data as y,Jot as x}from"@base-framework/base";import{Builder as u,Html as m}from"@base-framework/base";var a=class{static first(t){return this.get(t,0)}static last(t){let e=t.childNodes.length-1;return this.get(t,e)}static get(t,e){return t?.childNodes[e]??null}static next(t){return t?.nextSibling??null}static previous(t){return t?.previousSibling??null}static index(t){return t?.parentNode?.children.indexOf(t)??-1}static getPreviousIndex(t){let e=this.index(t);return e>0?e-1:0}static replace(t,e,r){if(!e)return;let i=e.parentNode,n=this.getPreviousIndex(e);this.remove(e);let c=u.build(t,null,r);i.insertBefore(c,i.childNodes[n])}static remove(t){t&&m.removeChild(t)}static append(t,e,r){!t||u.build(t,e,r)}static prepend(t,e,r){if(!t)return;let i=u.build(t,null,r);e.insertBefore(i,e.firstChild)}};var f=(s,t,e)=>({index:s,item:t,status:e}),l=class{static diff(t,e,r){let i=this.arrayToMap(t,r),n=[],c=[];return e.forEach((o,d)=>{let h=o[r];if(!i.has(h)){n.push(f(d,o,"added"));return}let{item:p}=i.get(h);if(!this.deepEqual(p,o)){n.push(f(d,o,"updated"));return}n.push(f(d,o,"unchanged")),i.delete(h)}),i.forEach(({item:o})=>{c.push(o)}),{changes:n,deletedItems:c}}static arrayToMap(t,e){let r=new Map;return t.forEach((i,n)=>{r.set(i[e],{item:i,index:n})}),r}static deepEqual(t,e){if(t===e)return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;let r=Object.keys(t),i=Object.keys(e);if(r.length!==i.length)return!1;for(let n of r)if(!i.includes(n)||!this.deepEqual(t[n],e[n]))return!1;return!0}};var v=x({setData(){return new y({items:this.items??[]})},render(){let s=this.row.bind(this);return g({class:`list ${this.class||""}`,for:["items",s]})},row(s){return typeof this.rowItem!="function"?null:this.rowItem(s)},delete(s){let t=this.findIndexByKey(s);if(t===-1)return;this.data.delete(`items[${t}]`);let e=a.get(this.panel,t);a.remove(e)},replace(s){if(s.status==="unchanged")return;let t=s.item;if(s.status==="added"){this.append(t);return}let e=t[this.key],r=this.findIndexByKey(e);if(r===-1)return;this.data.set(`items[${r}]`,t);let i=a.get(this.panel,r),n=this.row(t,r);a.replace(i,n)},remove(s){s.forEach(t=>{this.delete(t[this.key])})},append(s){Array.isArray(s)||(s=[s]);let t=[],e=this.data.items.length-1;s.forEach(r=>{t.push(this.row(r)),this.data.set(`items[${++e}]`,r)}),a.append(t,this.panel,this)},mingle(s,t=!1){let e=this.data.items,r=l.diff(e,s,this.key);t&&r.deletedItems.length>0&&this.remove(r.deletedItems),r.changes.forEach(i=>{this.replace(i)})},prepend(s){Array.isArray(s)||(s=[s]);let t=[],e=this.data.items,r=e.length-1;s.reverse().forEach(i=>{r++,t.push(this.row(i)),e.unshift(i)}),a.prepend(t,this.panel,this)},findIndexByKey(s){return this.data.items.findIndex(e=>e[this.key]===s)}});export{v as List};
2
2
  //# sourceMappingURL=organisms.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/lists/list.js", "../src/utils/child-helper.js", "../src/utils/data-helper.js"],
4
- "sourcesContent": ["import { Div } from '@base-framework/atoms';\r\nimport { Data, Jot } from '@base-framework/base';\r\nimport { ChildHelper } from 'src/utils/child-helper.js';\r\nimport { DataHelper } from 'src/utils/data-helper.js';\r\n\r\n/**\r\n * List\r\n *\r\n * This will create a list component.\r\n *\r\n * @class\r\n */\r\nexport const List = Jot(\r\n{\r\n /**\r\n * This will set the default data.\r\n *\r\n * @returns {object}\r\n */\r\n\tsetData()\r\n {\r\n return new Data({ items: [] })\r\n },\r\n\r\n /**\r\n * This will render the list.\r\n *\r\n * @returns {object}\r\n */\r\n\trender()\r\n {\r\n // @ts-ignore\r\n const rowCallBack = this.row.bind(this);\r\n\r\n return Div({\r\n // @ts-ignore\r\n class: `list ${this.class || ''}`,\r\n for: ['items', rowCallBack]\r\n });\r\n },\r\n\r\n /**\r\n * This will create a row for each item.\r\n *\r\n * @param {*} item\r\n * @returns {object|null}\r\n */\r\n row(item)\r\n {\r\n // @ts-ignore\r\n if (typeof this.rowItem !== 'function')\r\n {\r\n return null;\r\n }\r\n\r\n // @ts-ignore\r\n return this.rowItem(item);\r\n },\r\n\r\n /**\r\n * This will delete an item from the list.\r\n *\r\n * @public\r\n * @param {*} keyValue\r\n * @returns {void}\r\n */\r\n delete(keyValue)\r\n {\r\n // @ts-ignore\r\n const index = this.findIndexByKey(keyValue);\r\n if (index === -1)\r\n {\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n this.data.delete(`items[${index}]`);\r\n // @ts-ignore\r\n const rowElement = ChildHelper.get(this.panel, index);\r\n ChildHelper.remove(rowElement);\r\n },\r\n\r\n /**\r\n * This will replace an item in the list.\r\n *\r\n * @protected\r\n * @param {object} row\r\n * @returns {void}\r\n */\r\n replace(row)\r\n {\r\n // @ts-ignore\r\n const item = row.item;\r\n if (row.status === 'added')\r\n {\r\n // @ts-ignore\r\n this.append(item);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n const keyValue = item[this.key];\r\n // @ts-ignore\r\n const index = this.findIndexByKey(keyValue);\r\n // @ts-ignore\r\n this.data.set(`items[${index}]`, item);\r\n // @ts-ignore\r\n const oldRow = ChildHelper.get(this.panel, index);\r\n // @ts-ignore\r\n const newRow = this.row(item, index);\r\n ChildHelper.replace(oldRow, newRow);\r\n },\r\n\r\n /**\r\n * This will remove items from the list.\r\n *\r\n * @public\r\n * @param {array} items\r\n * @returns {void}\r\n */\r\n remove(items)\r\n {\r\n /**\r\n * This will get the deleted rows.\r\n */\r\n items.forEach((item) =>\r\n {\r\n // @ts-ignore\r\n this.delete(item[this.key]);\r\n });\r\n },\r\n\r\n /**\r\n * This will append items to the list.\r\n *\r\n * @public\r\n * @param {array|object} items\r\n * @returns {void}\r\n */\r\n append(items)\r\n {\r\n if (!Array.isArray(items))\r\n {\r\n items = [items];\r\n }\r\n\r\n /**\r\n * This will get all the new rows to be batched later.\r\n */\r\n const rows = [];\r\n // @ts-ignore\r\n let lastIndex = this.data.items.length - 1;\r\n items.forEach((item) =>\r\n {\r\n /**\r\n * This will build the new rows that will be appended.\r\n */\r\n // @ts-ignore\r\n rows.push(this.row(item));\r\n\r\n /**\r\n * This will silently add the new rows without re-rendering the entire list.\r\n */\r\n // @ts-ignore\r\n this.data.set(`items[${++lastIndex}]`, item);\r\n });\r\n\r\n // This will batch push all the rows.\r\n // @ts-ignore\r\n ChildHelper.append(rows, this.panel, this);\r\n },\r\n\r\n /**\r\n * This will mingle the new items with the old items.\r\n *\r\n * @public\r\n * @param {Array<Object>} newItems\r\n * @param {boolean} withDelete\r\n * @returns {void}\r\n */\r\n mingle(newItems, withDelete = false)\r\n {\r\n // @ts-ignore\r\n const oldItems = this.data.items;\r\n\r\n /**\r\n * This will diff the old and new items to determine what has\r\n * been added, updated, or deleted.\r\n */\r\n // @ts-ignore\r\n const changes = DataHelper.diff(oldItems, newItems, this.key);\r\n\r\n /**\r\n * We want to delete the items before adding and updating the\r\n * new items.\r\n */\r\n if (withDelete && changes.deletedItems.length > 0)\r\n {\r\n // @ts-ignore\r\n this.remove(changes.deletedItems);\r\n }\r\n\r\n /**\r\n * This will add or update the new rows.\r\n */\r\n changes.changes.forEach((row) =>\r\n {\r\n // @ts-ignore\r\n this.replace(row);\r\n });\r\n },\r\n\r\n /**\r\n * This will prepend items to the list.\r\n *\r\n * @public\r\n * @param {array|object} items\r\n * @returns {void}\r\n */\r\n prepend(items)\r\n {\r\n if (!Array.isArray(items))\r\n {\r\n items = [items];\r\n }\r\n\r\n /**\r\n * This will get all the new rows to be batched later.\r\n */\r\n const rows = [];\r\n // @ts-ignore\r\n const rowItems = this.data.items;\r\n let lastIndex = rowItems.length - 1;\r\n items.reverse().forEach((item) =>\r\n {\r\n lastIndex++;\r\n\r\n /**\r\n * This will build the new rows that will be appended.\r\n */\r\n // @ts-ignore\r\n rows.push(this.row(item));\r\n\r\n /**\r\n * This will silently add the new rows without re-rendering the entire list.\r\n */\r\n rowItems.unshift(item);\r\n });\r\n\r\n // @ts-ignore\r\n ChildHelper.prepend(rows, this.panel, this);\r\n },\r\n\r\n /**\r\n * Finds the index of an item in the data array by its key.\r\n *\r\n * @private\r\n * @param {*} keyValue\r\n * @returns {number} Index of the item, or -1 if not found\r\n */\r\n findIndexByKey(keyValue)\r\n {\r\n //@ts-ignore\r\n const items = this.data.items;\r\n //@ts-ignore\r\n return items.findIndex((item) => item[this.key] === keyValue);\r\n }\r\n});", "import { Builder, Html } from \"@base-framework/base\";\r\n\r\n/**\r\n * ChildHelper\r\n *\r\n * This class will help with getting children of a node.\r\n *\r\n * @class\r\n */\r\nexport class ChildHelper\r\n{\r\n /**\r\n * This will get the first child.\r\n *\r\n * @param {object} parent\r\n * @returns {object|null}\r\n */\r\n\tstatic first(parent)\r\n {\r\n return this.get(parent, 0);\r\n }\r\n\r\n /**\r\n * This will get the last child.\r\n *\r\n * @param {object} parent\r\n * @returns {object|null}\r\n */\r\n static last(parent)\r\n {\r\n const index = parent.childNodes.length - 1;\r\n return this.get(parent, index);\r\n }\r\n\r\n /**\r\n * This will get the child at the specified index.\r\n *\r\n * @param {object} parent\r\n * @param {number} index\r\n * @returns {object|null}\r\n */\r\n static get(parent, index)\r\n {\r\n return parent?.childNodes[index] ?? null;\r\n }\r\n\r\n /**\r\n * This will get the parent of the node.\r\n *\r\n * @param {object} node\r\n * @returns {object|null}\r\n */\r\n static next(node)\r\n {\r\n return node?.nextSibling ?? null;\r\n }\r\n\r\n /**\r\n * This will get the previous sibling.\r\n *\r\n * @param {object} node\r\n * @returns {object|null}\r\n */\r\n static previous(node)\r\n {\r\n return node?.previousSibling ?? null;\r\n }\r\n\r\n /**\r\n * This will get the index of the node.\r\n *\r\n * @param {object} node\r\n * @returns {number}\r\n */\r\n static index(node)\r\n {\r\n return node?.parentNode?.children.indexOf(node) ?? -1;\r\n }\r\n\r\n /**\r\n * This will get the previous index of the node.\r\n *\r\n * @param {object} node\r\n * @returns {number}\r\n */\r\n static getPreviousIndex(node)\r\n {\r\n let index = this.index(node);\r\n return (index > 0)? index - 1 : 0;\r\n }\r\n\r\n /**\r\n * This will replace a child layout.\r\n *\r\n * @param {object} layout\r\n * @param {object} oldChild\r\n * @param {object} parent\r\n * @returns {void}\r\n */\r\n static replace(layout, oldChild, parent)\r\n {\r\n if (!oldChild)\r\n {\r\n return;\r\n }\r\n\r\n // get child index from parent\r\n const container = oldChild.parentNode;\r\n const index = this.getPreviousIndex(oldChild);\r\n this.remove(oldChild);\r\n\r\n const frag = Builder.build(layout, null, parent);\r\n\r\n // append to parent at index\r\n container.insertBefore(frag, container.childNodes[index]);\r\n }\r\n\r\n /**\r\n * This will remove a child.\r\n *\r\n * @param {object} node\r\n * @returns {void}\r\n */\r\n static remove(node)\r\n {\r\n if (node)\r\n {\r\n Html.removeChild(node);\r\n }\r\n }\r\n\r\n /**\r\n * This will append a child layout.\r\n *\r\n * @param {object} childrenLayout\r\n * @param {object} container\r\n * @param {object} parent\r\n * @returns {void}\r\n */\r\n static append(childrenLayout, container, parent)\r\n {\r\n if (!childrenLayout)\r\n {\r\n return;\r\n }\r\n\r\n Builder.build(childrenLayout, container, parent);\r\n }\r\n\r\n /**\r\n * This will prepend a child layout.\r\n *\r\n * @param {object} childrenLayout\r\n * @param {object} container\r\n * @param {object} parent\r\n * @returns {void}\r\n */\r\n static prepend(childrenLayout, container, parent)\r\n {\r\n if (!childrenLayout)\r\n {\r\n return;\r\n }\r\n\r\n const frag = Builder.build(childrenLayout, null, parent);\r\n parent.insertBefore(frag, container.firstChild);\r\n }\r\n}", "/**\r\n * This will create a new item.\r\n *\r\n * @param {number} index\r\n * @param {*} item\r\n * @param {string} status\r\n * @returns {object}\r\n */\r\nconst Item = (index, item, status) =>\r\n{\r\n\treturn {\r\n\t\tindex,\r\n\t\titem,\r\n\t\tstatus\r\n\t};\r\n};\r\n\r\n/**\r\n * DataHelper\r\n *\r\n * This will help with data manipulation.\r\n *\r\n * @class\r\n */\r\nexport class DataHelper\r\n{\r\n\t/**\r\n * Compares two arrays of objects and returns the differences based on a specified key.\r\n *\r\n * @param {Array<Object>} oldArray - The original array of objects.\r\n * @param {Array<Object>} newArray - The updated array of objects.\r\n * @param {string} key - The key used to compare objects in the arrays.\r\n * @returns {Object} An object containing arrays of added, updated, and deleted items.\r\n */\r\n\tstatic diff(oldArray, newArray, key)\r\n\t{\r\n\t\tconst oldItemsMap = this.arrayToMap(oldArray, key);\r\n\t\tconst changes = [];\r\n\t\tconst deletedItems = [];\r\n\r\n\t\t// Process new array to determine status of each item\r\n\t\tnewArray.forEach((newItem, newIndex) =>\r\n\t\t{\r\n\t\t\tconst keyValue = newItem[key];\r\n\t\t\tif (!oldItemsMap.has(keyValue))\r\n\t\t\t{\r\n\t\t\t\t// Item is added\r\n\t\t\t\tchanges.push(Item(newIndex, newItem, 'added'));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst { item: oldItem } = oldItemsMap.get(keyValue);\r\n\t\t\tif (!this.deepEqual(oldItem, newItem))\r\n\t\t\t{\r\n\t\t\t\t// Item is updated\r\n\t\t\t\tchanges.push(Item(newIndex, newItem, 'updated'));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Item is unchanged\r\n\t\t\tchanges.push(Item(newIndex, newItem, 'unchanged'));\r\n\r\n\t\t\t// Remove from oldItemsMap to identify deletions later\r\n\t\t\toldItemsMap.delete(keyValue);\r\n\t\t});\r\n\r\n\t\t// Remaining items in oldItemsMap are deleted\r\n\t\toldItemsMap.forEach(({ item: oldItem }) =>\r\n\t\t{\r\n\t\t\tdeletedItems.push(oldItem);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tchanges,\r\n\t\t\tdeletedItems\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Converts an array of objects into a Map keyed by the specified property.\r\n * Each value in the Map is an object containing the item and its index in the array.\r\n\t *\r\n\t * @param {Array<Object>} array - The array to convert.\r\n\t * @param {string} key - The key used to map the objects.\r\n\t * @returns {Map} A Map with keys as specified property and values as objects.\r\n\t * @private\r\n\t */\r\n\tstatic arrayToMap(array, key)\r\n\t{\r\n\t\tconst map = new Map();\r\n\t\tarray.forEach((item, index) =>\r\n\t\t{\r\n\t\t\tmap.set(item[key], { item, index });\r\n\t\t});\r\n\t\treturn map;\r\n\t}\r\n\r\n\t/**\r\n\t * Performs a deep comparison between two objects.\r\n\t *\r\n\t * @param {Object} obj1 - The first object to compare.\r\n\t * @param {Object} obj2 - The second object to compare.\r\n\t * @returns {boolean} True if objects are equal, else false.\r\n\t * @private\r\n\t */\r\n\tstatic deepEqual(obj1, obj2)\r\n\t{\r\n\t\tif (obj1 === obj2) return true;\r\n\r\n\t\tif (\r\n\t\t\ttypeof obj1 !== 'object' ||\r\n\t\t\tobj1 === null ||\r\n\t\t\ttypeof obj2 !== 'object' ||\r\n\t\t\tobj2 === null\r\n\t\t)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst keys1 = Object.keys(obj1);\r\n\t\tconst keys2 = Object.keys(obj2);\r\n\r\n\t\t// Different number of properties\r\n\t\tif (keys1.length !== keys2.length)\r\n\t\t{\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tfor (const key of keys1)\r\n\t\t{\r\n\t\t\tif (!keys2.includes(key))\r\n\t\t\t{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.deepEqual(obj1[key], obj2[key]))\r\n\t\t\t{\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n}"],
5
- "mappings": "AAAA,OAAS,OAAAA,MAAW,wBACpB,OAAS,QAAAC,EAAM,OAAAC,MAAW,uBCD1B,OAAS,WAAAC,EAAS,QAAAC,MAAY,uBASvB,IAAMC,EAAN,KACP,CAOC,OAAO,MAAMC,EACV,CACI,OAAO,KAAK,IAAIA,EAAQ,CAAC,CAC7B,CAQA,OAAO,KAAKA,EACZ,CACI,IAAMC,EAAQD,EAAO,WAAW,OAAS,EACzC,OAAO,KAAK,IAAIA,EAAQC,CAAK,CACjC,CASA,OAAO,IAAID,EAAQC,EACnB,CACI,OAAOD,GAAQ,WAAWC,IAAU,IACxC,CAQA,OAAO,KAAKC,EACZ,CACI,OAAOA,GAAM,aAAe,IAChC,CAQA,OAAO,SAASA,EAChB,CACI,OAAOA,GAAM,iBAAmB,IACpC,CAQA,OAAO,MAAMA,EACb,CACI,OAAOA,GAAM,YAAY,SAAS,QAAQA,CAAI,GAAK,EACvD,CAQA,OAAO,iBAAiBA,EACxB,CACI,IAAID,EAAQ,KAAK,MAAMC,CAAI,EAC3B,OAAQD,EAAQ,EAAIA,EAAQ,EAAI,CACpC,CAUA,OAAO,QAAQE,EAAQC,EAAUJ,EACjC,CACI,GAAI,CAACI,EAED,OAIJ,IAAMC,EAAYD,EAAS,WACrBH,EAAQ,KAAK,iBAAiBG,CAAQ,EAC5C,KAAK,OAAOA,CAAQ,EAEpB,IAAME,EAAOT,EAAQ,MAAMM,EAAQ,KAAMH,CAAM,EAG/CK,EAAU,aAAaC,EAAMD,EAAU,WAAWJ,EAAM,CAC5D,CAQA,OAAO,OAAOC,EACd,CACQA,GAEAJ,EAAK,YAAYI,CAAI,CAE7B,CAUA,OAAO,OAAOK,EAAgBF,EAAWL,EACzC,CACQ,CAACO,GAKLV,EAAQ,MAAMU,EAAgBF,EAAWL,CAAM,CACnD,CAUA,OAAO,QAAQO,EAAgBF,EAAWL,EAC1C,CACI,GAAI,CAACO,EAED,OAGJ,IAAMD,EAAOT,EAAQ,MAAMU,EAAgB,KAAMP,CAAM,EACvDA,EAAO,aAAaM,EAAMD,EAAU,UAAU,CAClD,CACJ,EC/JA,IAAMG,EAAO,CAACC,EAAOC,EAAMC,KAEnB,CACN,MAAAF,EACA,KAAAC,EACA,OAAAC,CACD,GAUYC,EAAN,KACP,CASC,OAAO,KAAKC,EAAUC,EAAUC,EAChC,CACC,IAAMC,EAAc,KAAK,WAAWH,EAAUE,CAAG,EAC3CE,EAAU,CAAC,EACXC,EAAe,CAAC,EAGtB,OAAAJ,EAAS,QAAQ,CAACK,EAASC,IAC3B,CACC,IAAMC,EAAWF,EAAQJ,GACzB,GAAI,CAACC,EAAY,IAAIK,CAAQ,EAC7B,CAECJ,EAAQ,KAAKT,EAAKY,EAAUD,EAAS,OAAO,CAAC,EAC7C,MACD,CAEA,GAAM,CAAE,KAAMG,CAAQ,EAAIN,EAAY,IAAIK,CAAQ,EAClD,GAAI,CAAC,KAAK,UAAUC,EAASH,CAAO,EACpC,CAECF,EAAQ,KAAKT,EAAKY,EAAUD,EAAS,SAAS,CAAC,EAC/C,MACD,CAGAF,EAAQ,KAAKT,EAAKY,EAAUD,EAAS,WAAW,CAAC,EAGjDH,EAAY,OAAOK,CAAQ,CAC5B,CAAC,EAGDL,EAAY,QAAQ,CAAC,CAAE,KAAMM,CAAQ,IACrC,CACCJ,EAAa,KAAKI,CAAO,CAC1B,CAAC,EAEM,CACN,QAAAL,EACA,aAAAC,CACD,CACD,CAWA,OAAO,WAAWK,EAAOR,EACzB,CACC,IAAMS,EAAM,IAAI,IAChB,OAAAD,EAAM,QAAQ,CAACb,EAAMD,IACrB,CACCe,EAAI,IAAId,EAAKK,GAAM,CAAE,KAAAL,EAAM,MAAAD,CAAM,CAAC,CACnC,CAAC,EACMe,CACR,CAUA,OAAO,UAAUC,EAAMC,EACvB,CACC,GAAID,IAASC,EAAM,MAAO,GAE1B,GACC,OAAOD,GAAS,UAChBA,IAAS,MACT,OAAOC,GAAS,UAChBA,IAAS,KAGT,MAAO,GAGR,IAAMC,EAAQ,OAAO,KAAKF,CAAI,EACxBG,EAAQ,OAAO,KAAKF,CAAI,EAG9B,GAAIC,EAAM,SAAWC,EAAM,OAE1B,MAAO,GAGR,QAAWb,KAAOY,EAOjB,GALI,CAACC,EAAM,SAASb,CAAG,GAKnB,CAAC,KAAK,UAAUU,EAAKV,GAAMW,EAAKX,EAAI,EAEvC,MAAO,GAIT,MAAO,EACR,CACD,EFnIO,IAAMc,EAAOC,EACpB,CAMC,SACG,CACI,OAAO,IAAIC,EAAK,CAAE,MAAO,CAAC,CAAE,CAAC,CACjC,EAOH,QACG,CAEI,IAAMC,EAAc,KAAK,IAAI,KAAK,IAAI,EAEtC,OAAOC,EAAI,CAEP,MAAO,QAAQ,KAAK,OAAS,KAC7B,IAAK,CAAC,QAASD,CAAW,CAC9B,CAAC,CACL,EAQA,IAAIE,EACJ,CAEI,OAAI,OAAO,KAAK,SAAY,WAEjB,KAIJ,KAAK,QAAQA,CAAI,CAC5B,EASA,OAAOC,EACP,CAEI,IAAMC,EAAQ,KAAK,eAAeD,CAAQ,EAC1C,GAAIC,IAAU,GAEV,OAIJ,KAAK,KAAK,OAAO,SAASA,IAAQ,EAElC,IAAMC,EAAaC,EAAY,IAAI,KAAK,MAAOF,CAAK,EACpDE,EAAY,OAAOD,CAAU,CACjC,EASA,QAAQE,EACR,CAEI,IAAML,EAAOK,EAAI,KACjB,GAAIA,EAAI,SAAW,QACnB,CAEI,KAAK,OAAOL,CAAI,EAChB,MACJ,CAGA,IAAMC,EAAWD,EAAK,KAAK,KAErBE,EAAQ,KAAK,eAAeD,CAAQ,EAE1C,KAAK,KAAK,IAAI,SAASC,KAAUF,CAAI,EAErC,IAAMM,EAASF,EAAY,IAAI,KAAK,MAAOF,CAAK,EAE1CK,EAAS,KAAK,IAAIP,EAAME,CAAK,EACnCE,EAAY,QAAQE,EAAQC,CAAM,CACtC,EASA,OAAOC,EACP,CAIIA,EAAM,QAASR,GACf,CAEI,KAAK,OAAOA,EAAK,KAAK,IAAI,CAC9B,CAAC,CACL,EASA,OAAOQ,EACP,CACS,MAAM,QAAQA,CAAK,IAEpBA,EAAQ,CAACA,CAAK,GAMlB,IAAMC,EAAO,CAAC,EAEVC,EAAY,KAAK,KAAK,MAAM,OAAS,EACzCF,EAAM,QAASR,GACf,CAKIS,EAAK,KAAK,KAAK,IAAIT,CAAI,CAAC,EAMxB,KAAK,KAAK,IAAI,SAAS,EAAEU,KAAcV,CAAI,CAC/C,CAAC,EAIDI,EAAY,OAAOK,EAAM,KAAK,MAAO,IAAI,CAC7C,EAUA,OAAOE,EAAUC,EAAa,GAC9B,CAEI,IAAMC,EAAW,KAAK,KAAK,MAOrBC,EAAUC,EAAW,KAAKF,EAAUF,EAAU,KAAK,GAAG,EAMxDC,GAAcE,EAAQ,aAAa,OAAS,GAG5C,KAAK,OAAOA,EAAQ,YAAY,EAMpCA,EAAQ,QAAQ,QAAST,GACzB,CAEI,KAAK,QAAQA,CAAG,CACpB,CAAC,CACL,EASA,QAAQG,EACR,CACS,MAAM,QAAQA,CAAK,IAEpBA,EAAQ,CAACA,CAAK,GAMlB,IAAMC,EAAO,CAAC,EAERO,EAAW,KAAK,KAAK,MACvBN,EAAYM,EAAS,OAAS,EAClCR,EAAM,QAAQ,EAAE,QAASR,GACzB,CACIU,IAMAD,EAAK,KAAK,KAAK,IAAIT,CAAI,CAAC,EAKxBgB,EAAS,QAAQhB,CAAI,CACzB,CAAC,EAGDI,EAAY,QAAQK,EAAM,KAAK,MAAO,IAAI,CAC9C,EASA,eAAeR,EACf,CAII,OAFc,KAAK,KAAK,MAEX,UAAWD,GAASA,EAAK,KAAK,OAASC,CAAQ,CAChE,CACJ,CAAC",
4
+ "sourcesContent": ["import { Div } from '@base-framework/atoms';\r\nimport { Data, Jot } from '@base-framework/base';\r\nimport { ChildHelper } from 'src/utils/child-helper.js';\r\nimport { DataHelper } from 'src/utils/data-helper.js';\r\n\r\n/**\r\n * List\r\n *\r\n * This will create a list component.\r\n *\r\n * @class\r\n */\r\nexport const List = Jot(\r\n{\r\n /**\r\n * This will set the default data.\r\n *\r\n * @returns {object}\r\n */\r\n\tsetData()\r\n {\r\n // @ts-ignore\r\n return new Data({ items: this.items ?? [] })\r\n },\r\n\r\n /**\r\n * This will render the list.\r\n *\r\n * @returns {object}\r\n */\r\n\trender()\r\n {\r\n // @ts-ignore\r\n const rowCallBack = this.row.bind(this);\r\n\r\n return Div({\r\n // @ts-ignore\r\n class: `list ${this.class || ''}`,\r\n for: ['items', rowCallBack]\r\n });\r\n },\r\n\r\n /**\r\n * This will create a row for each item.\r\n *\r\n * @param {*} item\r\n * @returns {object|null}\r\n */\r\n row(item)\r\n {\r\n // @ts-ignore\r\n if (typeof this.rowItem !== 'function')\r\n {\r\n return null;\r\n }\r\n\r\n // @ts-ignore\r\n return this.rowItem(item);\r\n },\r\n\r\n /**\r\n * This will delete an item from the list.\r\n *\r\n * @public\r\n * @param {*} keyValue\r\n * @returns {void}\r\n */\r\n delete(keyValue)\r\n {\r\n // @ts-ignore\r\n const index = this.findIndexByKey(keyValue);\r\n if (index === -1)\r\n {\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n this.data.delete(`items[${index}]`);\r\n // @ts-ignore\r\n const rowElement = ChildHelper.get(this.panel, index);\r\n ChildHelper.remove(rowElement);\r\n },\r\n\r\n /**\r\n * This will replace an item in the list.\r\n *\r\n * @protected\r\n * @param {object} row\r\n * @returns {void}\r\n */\r\n replace(row)\r\n {\r\n if (row.status === 'unchanged')\r\n {\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n const item = row.item;\r\n if (row.status === 'added')\r\n {\r\n // @ts-ignore\r\n this.append(item);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n const keyValue = item[this.key];\r\n // @ts-ignore\r\n const index = this.findIndexByKey(keyValue);\r\n if (index === -1)\r\n {\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n this.data.set(`items[${index}]`, item);\r\n // @ts-ignore\r\n const oldRow = ChildHelper.get(this.panel, index);\r\n // @ts-ignore\r\n const newRow = this.row(item, index);\r\n ChildHelper.replace(oldRow, newRow);\r\n },\r\n\r\n /**\r\n * This will remove items from the list.\r\n *\r\n * @public\r\n * @param {array} items\r\n * @returns {void}\r\n */\r\n remove(items)\r\n {\r\n /**\r\n * This will get the deleted rows.\r\n */\r\n items.forEach((item) =>\r\n {\r\n // @ts-ignore\r\n this.delete(item[this.key]);\r\n });\r\n },\r\n\r\n /**\r\n * This will append items to the list.\r\n *\r\n * @public\r\n * @param {array|object} items\r\n * @returns {void}\r\n */\r\n append(items)\r\n {\r\n if (!Array.isArray(items))\r\n {\r\n items = [items];\r\n }\r\n\r\n /**\r\n * This will get all the new rows to be batched later.\r\n */\r\n const rows = [];\r\n // @ts-ignore\r\n let lastIndex = this.data.items.length - 1;\r\n items.forEach((item) =>\r\n {\r\n /**\r\n * This will build the new rows that will be appended.\r\n */\r\n // @ts-ignore\r\n rows.push(this.row(item));\r\n\r\n /**\r\n * This will silently add the new rows without re-rendering the entire list.\r\n */\r\n // @ts-ignore\r\n this.data.set(`items[${++lastIndex}]`, item);\r\n });\r\n\r\n // This will batch push all the rows.\r\n // @ts-ignore\r\n ChildHelper.append(rows, this.panel, this);\r\n },\r\n\r\n /**\r\n * This will mingle the new items with the old items.\r\n *\r\n * @public\r\n * @param {Array<Object>} newItems\r\n * @param {boolean} withDelete\r\n * @returns {void}\r\n */\r\n mingle(newItems, withDelete = false)\r\n {\r\n // @ts-ignore\r\n const oldItems = this.data.items;\r\n\r\n /**\r\n * This will diff the old and new items to determine what has\r\n * been added, updated, or deleted.\r\n */\r\n // @ts-ignore\r\n const changes = DataHelper.diff(oldItems, newItems, this.key);\r\n\r\n /**\r\n * We want to delete the items before adding and updating the\r\n * new items.\r\n */\r\n if (withDelete && changes.deletedItems.length > 0)\r\n {\r\n // @ts-ignore\r\n this.remove(changes.deletedItems);\r\n }\r\n\r\n /**\r\n * This will add or update the new rows.\r\n */\r\n changes.changes.forEach((row) =>\r\n {\r\n // @ts-ignore\r\n this.replace(row);\r\n });\r\n },\r\n\r\n /**\r\n * This will prepend items to the list.\r\n *\r\n * @public\r\n * @param {array|object} items\r\n * @returns {void}\r\n */\r\n prepend(items)\r\n {\r\n if (!Array.isArray(items))\r\n {\r\n items = [items];\r\n }\r\n\r\n /**\r\n * This will get all the new rows to be batched later.\r\n */\r\n const rows = [];\r\n // @ts-ignore\r\n const rowItems = this.data.items;\r\n let lastIndex = rowItems.length - 1;\r\n items.reverse().forEach((item) =>\r\n {\r\n lastIndex++;\r\n\r\n /**\r\n * This will build the new rows that will be appended.\r\n */\r\n // @ts-ignore\r\n rows.push(this.row(item));\r\n\r\n /**\r\n * This will silently add the new rows without re-rendering the entire list.\r\n */\r\n rowItems.unshift(item);\r\n });\r\n\r\n // @ts-ignore\r\n ChildHelper.prepend(rows, this.panel, this);\r\n },\r\n\r\n /**\r\n * Finds the index of an item in the data array by its key.\r\n *\r\n * @private\r\n * @param {*} keyValue\r\n * @returns {number} Index of the item, or -1 if not found\r\n */\r\n findIndexByKey(keyValue)\r\n {\r\n //@ts-ignore\r\n const items = this.data.items;\r\n //@ts-ignore\r\n return items.findIndex((item) => item[this.key] === keyValue);\r\n }\r\n});", "import { Builder, Html } from \"@base-framework/base\";\r\n\r\n/**\r\n * ChildHelper\r\n *\r\n * This class will help with getting children of a node.\r\n *\r\n * @class\r\n */\r\nexport class ChildHelper\r\n{\r\n /**\r\n * This will get the first child.\r\n *\r\n * @param {object} parent\r\n * @returns {object|null}\r\n */\r\n\tstatic first(parent)\r\n {\r\n return this.get(parent, 0);\r\n }\r\n\r\n /**\r\n * This will get the last child.\r\n *\r\n * @param {object} parent\r\n * @returns {object|null}\r\n */\r\n static last(parent)\r\n {\r\n const index = parent.childNodes.length - 1;\r\n return this.get(parent, index);\r\n }\r\n\r\n /**\r\n * This will get the child at the specified index.\r\n *\r\n * @param {object} parent\r\n * @param {number} index\r\n * @returns {object|null}\r\n */\r\n static get(parent, index)\r\n {\r\n return parent?.childNodes[index] ?? null;\r\n }\r\n\r\n /**\r\n * This will get the parent of the node.\r\n *\r\n * @param {object} node\r\n * @returns {object|null}\r\n */\r\n static next(node)\r\n {\r\n return node?.nextSibling ?? null;\r\n }\r\n\r\n /**\r\n * This will get the previous sibling.\r\n *\r\n * @param {object} node\r\n * @returns {object|null}\r\n */\r\n static previous(node)\r\n {\r\n return node?.previousSibling ?? null;\r\n }\r\n\r\n /**\r\n * This will get the index of the node.\r\n *\r\n * @param {object} node\r\n * @returns {number}\r\n */\r\n static index(node)\r\n {\r\n return node?.parentNode?.children.indexOf(node) ?? -1;\r\n }\r\n\r\n /**\r\n * This will get the previous index of the node.\r\n *\r\n * @param {object} node\r\n * @returns {number}\r\n */\r\n static getPreviousIndex(node)\r\n {\r\n let index = this.index(node);\r\n return (index > 0)? index - 1 : 0;\r\n }\r\n\r\n /**\r\n * This will replace a child layout.\r\n *\r\n * @param {object} layout\r\n * @param {object} oldChild\r\n * @param {object} parent\r\n * @returns {void}\r\n */\r\n static replace(layout, oldChild, parent)\r\n {\r\n if (!oldChild)\r\n {\r\n return;\r\n }\r\n\r\n // get child index from parent\r\n const container = oldChild.parentNode;\r\n const index = this.getPreviousIndex(oldChild);\r\n this.remove(oldChild);\r\n\r\n const frag = Builder.build(layout, null, parent);\r\n\r\n // append to parent at index\r\n container.insertBefore(frag, container.childNodes[index]);\r\n }\r\n\r\n /**\r\n * This will remove a child.\r\n *\r\n * @param {object} node\r\n * @returns {void}\r\n */\r\n static remove(node)\r\n {\r\n if (node)\r\n {\r\n Html.removeChild(node);\r\n }\r\n }\r\n\r\n /**\r\n * This will append a child layout.\r\n *\r\n * @param {object} childrenLayout\r\n * @param {object} container\r\n * @param {object} parent\r\n * @returns {void}\r\n */\r\n static append(childrenLayout, container, parent)\r\n {\r\n if (!childrenLayout)\r\n {\r\n return;\r\n }\r\n\r\n Builder.build(childrenLayout, container, parent);\r\n }\r\n\r\n /**\r\n * This will prepend a child layout.\r\n *\r\n * @param {object} childrenLayout\r\n * @param {object} container\r\n * @param {object} parent\r\n * @returns {void}\r\n */\r\n static prepend(childrenLayout, container, parent)\r\n {\r\n if (!childrenLayout)\r\n {\r\n return;\r\n }\r\n\r\n const frag = Builder.build(childrenLayout, null, parent);\r\n container.insertBefore(frag, container.firstChild);\r\n }\r\n}", "/**\r\n * This will create a new item.\r\n *\r\n * @param {number} index\r\n * @param {*} item\r\n * @param {string} status\r\n * @returns {object}\r\n */\r\nconst Item = (index, item, status) =>\r\n{\r\n\treturn {\r\n\t\tindex,\r\n\t\titem,\r\n\t\tstatus\r\n\t};\r\n};\r\n\r\n/**\r\n * DataHelper\r\n *\r\n * This will help with data manipulation.\r\n *\r\n * @class\r\n */\r\nexport class DataHelper\r\n{\r\n\t/**\r\n * Compares two arrays of objects and returns the differences based on a specified key.\r\n *\r\n * @param {Array<Object>} oldArray - The original array of objects.\r\n * @param {Array<Object>} newArray - The updated array of objects.\r\n * @param {string} key - The key used to compare objects in the arrays.\r\n * @returns {Object} An object containing arrays of added, updated, and deleted items.\r\n */\r\n\tstatic diff(oldArray, newArray, key)\r\n\t{\r\n\t\tconst oldItemsMap = this.arrayToMap(oldArray, key);\r\n\t\tconst changes = [];\r\n\t\tconst deletedItems = [];\r\n\r\n\t\t// Process new array to determine status of each item\r\n\t\tnewArray.forEach((newItem, newIndex) =>\r\n\t\t{\r\n\t\t\tconst keyValue = newItem[key];\r\n\t\t\tif (!oldItemsMap.has(keyValue))\r\n\t\t\t{\r\n\t\t\t\t// Item is added\r\n\t\t\t\tchanges.push(Item(newIndex, newItem, 'added'));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst { item: oldItem } = oldItemsMap.get(keyValue);\r\n\t\t\tif (!this.deepEqual(oldItem, newItem))\r\n\t\t\t{\r\n\t\t\t\t// Item is updated\r\n\t\t\t\tchanges.push(Item(newIndex, newItem, 'updated'));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Item is unchanged\r\n\t\t\tchanges.push(Item(newIndex, newItem, 'unchanged'));\r\n\r\n\t\t\t// Remove from oldItemsMap to identify deletions later\r\n\t\t\toldItemsMap.delete(keyValue);\r\n\t\t});\r\n\r\n\t\t// Remaining items in oldItemsMap are deleted\r\n\t\toldItemsMap.forEach(({ item: oldItem }) =>\r\n\t\t{\r\n\t\t\tdeletedItems.push(oldItem);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tchanges,\r\n\t\t\tdeletedItems\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Converts an array of objects into a Map keyed by the specified property.\r\n * Each value in the Map is an object containing the item and its index in the array.\r\n\t *\r\n\t * @param {Array<Object>} array - The array to convert.\r\n\t * @param {string} key - The key used to map the objects.\r\n\t * @returns {Map} A Map with keys as specified property and values as objects.\r\n\t * @private\r\n\t */\r\n\tstatic arrayToMap(array, key)\r\n\t{\r\n\t\tconst map = new Map();\r\n\t\tarray.forEach((item, index) =>\r\n\t\t{\r\n\t\t\tmap.set(item[key], { item, index });\r\n\t\t});\r\n\t\treturn map;\r\n\t}\r\n\r\n\t/**\r\n\t * Performs a deep comparison between two objects.\r\n\t *\r\n\t * @param {Object} obj1 - The first object to compare.\r\n\t * @param {Object} obj2 - The second object to compare.\r\n\t * @returns {boolean} True if objects are equal, else false.\r\n\t * @private\r\n\t */\r\n\tstatic deepEqual(obj1, obj2)\r\n\t{\r\n\t\tif (obj1 === obj2) return true;\r\n\r\n\t\tif (\r\n\t\t\ttypeof obj1 !== 'object' ||\r\n\t\t\tobj1 === null ||\r\n\t\t\ttypeof obj2 !== 'object' ||\r\n\t\t\tobj2 === null\r\n\t\t)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst keys1 = Object.keys(obj1);\r\n\t\tconst keys2 = Object.keys(obj2);\r\n\r\n\t\t// Different number of properties\r\n\t\tif (keys1.length !== keys2.length)\r\n\t\t{\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tfor (const key of keys1)\r\n\t\t{\r\n\t\t\tif (!keys2.includes(key))\r\n\t\t\t{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.deepEqual(obj1[key], obj2[key]))\r\n\t\t\t{\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n}"],
5
+ "mappings": "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",
6
6
  "names": ["Div", "Data", "Jot", "Builder", "Html", "ChildHelper", "parent", "index", "node", "layout", "oldChild", "container", "frag", "childrenLayout", "Item", "index", "item", "status", "DataHelper", "oldArray", "newArray", "key", "oldItemsMap", "changes", "deletedItems", "newItem", "newIndex", "keyValue", "oldItem", "array", "map", "obj1", "obj2", "keys1", "keys2", "List", "Jot", "Data", "rowCallBack", "Div", "item", "keyValue", "index", "rowElement", "ChildHelper", "row", "oldRow", "newRow", "items", "rows", "lastIndex", "newItems", "withDelete", "oldItems", "changes", "DataHelper", "rowItems"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base-framework/organisms",
3
- "version": "1.0.21",
3
+ "version": "1.0.24",
4
4
  "description": "This will add default organisms to the base framework.",
5
5
  "main": "./dist/organisms.js",
6
6
  "scripts": {