UNPKG

@base-framework/organisms

Version:

This will add default organisms to the base framework.

3 lines (2 loc) 20.4 kB
import{Div as et}from"@base-framework/atoms";import{Atom as st,Events as it}from"@base-framework/base";var u=class{constructor(t=0,s=20){this.lastCursor=null,this.currentOffset=t,this.limit=s,this.hasMoreData=!0,this.loading=!1,this.newestId=null,this.hasNewerData=!1,this.loadingNewer=!1}canLoadMore(){return this.hasMoreData}canLoadNewer(){return this.hasNewerData&&this.newestId!==null}update(t,s=null){t<this.limit&&(this.hasMoreData=!1),this.lastCursor=s,this.currentOffset+=t}updateNewest(t){this.newestId=t,this.hasNewerData=t!==null}reset(){this.lastCursor=null,this.currentOffset=0,this.hasMoreData=!0,this.loading=!1,this.newestId=null,this.hasNewerData=!1,this.loadingNewer=!1}};var V=100;function b(e){if(!e||e.length===0)return null;let t=e[0],s=e[e.length-1];return t?.id&&s?.id?t.id>s.id?t.id:s.id:t?.id?t.id:s?.id?s.id:null}function T(e){let t=e===globalThis?globalThis.pageYOffset:e.scrollTop,s=e===globalThis?globalThis.innerHeight:e.clientHeight,i=e===globalThis?globalThis.document.documentElement.scrollHeight:e.scrollHeight;return{scrollTop:t,clientHeight:s,scrollHeight:i}}function Q(e,t=V){return e.scrollTop+e.clientHeight>=e.scrollHeight-t}function X(e,t=V){return e.scrollTop<=t}var F=(e,t)=>Q(e)&&t.canLoadMore(),Z=(e,t)=>X(e)&&t.canLoadMore(),S=(e,t,s,i=null)=>{e&&e.length>0?(s.append(e),t.update(e.length,i)):(t.hasMoreData=!1,s.updateHasItems())},tt=(e,t,s,i=null,r=null)=>{if(e&&e.length>0){let n=0,a=0;if(r){let l=T(r);n=l.scrollHeight,a=l.scrollTop}if(s.prepend(e),t.update(e.length,i),e.length<t.limit&&(t.hasMoreData=!1,s.addTrailingDivider&&s.addTrailingDivider()),r){let l=()=>{let h=T(r).scrollHeight-n;r===globalThis?globalThis.scrollTo(0,a+h):r.scrollTop=a+h};typeof s.onFlush=="function"?s.onFlush(l):l()}}else t.hasMoreData=!1,s.updateHasItems(),s.addTrailingDivider&&s.addTrailingDivider()};var f=(e,t="all")=>(s,i)=>{let r=n=>{let a=[],l=null;n&&(a=n.rows||n.items||[],l=n.lastCursor||null),i(a,l)};e.xhr[t]("",r,s.currentOffset,s.limit,s.lastCursor)},O=(e,t="all")=>(s,i)=>{let r=n=>{let a=[],l=null;n&&(a=n.rows||n.items||[],l=b(a)),i(a,l)};e.xhr[t]("",r,0,s.limit,null,s.newestId)};var m=(e,t,s)=>{t.reset(),e(t,(i,r)=>{s.reset(),S(i,t,s,r);let n=b(i);n!==null&&t.updateNewest(n)})};var $=(e,t,s,i="down",r="list")=>{let n=i==="up"?Z:F,a=i==="up";return(l,o,h)=>{let c=T(e);if(h||n(c,t)){if(t.loading)return;t.loading=!0,s(t,(d,p)=>{let w=o[r];h&&h();let G=t.currentOffset===0;if(a){if(tt(d,t,w,p,e),G){let E=b(d);E!==null&&t.updateNewest(E)}}else S(d,t,w,p);t.loading=!1})}}},K=(e,t,s)=>(i,r,n)=>{let a=T(e);if(n||F(a,t)){if(t.loading)return;t.loading=!0,s(t,(l,o)=>{n&&n(),S(l,t,r,o),t.loading=!1})}};var rt=(e,t,s)=>()=>{m(e,t,s)},nt=(e,t,s,i)=>{s[i].refresh=rt(e,t,s[i])},_=st((e,t)=>{let s=new u(e.offset,e.limit),i=e.scrollContainer||globalThis,r=e.scrollDirection||"down",n=e.loadMoreItems||f(e.data,e.xhrMethod),a=e.loadNewerItems||O(e.data,e.xhrMethod),l=$(i,s,n,r,e.listCache);return et({class:e.containerClass??"",onCreated(o,h){s.reset(),nt(n,s,h,e.listCache),h[e.listCache].resetPagination=()=>s.reset(),l(null,h,()=>{let d=h[e.listCache];if(d.reset(),r==="up"){let p=d.data?.items||d.data?.rows||[];if(s.newestId===null){let w=b(p);w!==null&&s.updateNewest(w)}d.scrollToBottom()}});let c=h[e.listCache];c.fetchNew=(d=!1)=>{s.loadingNewer||(s.loadingNewer=!0,a(s,(p,w)=>{p&&p.length>0&&(r==="up"?c.append(p):c.prepend(p),w!==null&&s.updateNewest(w)),s.loadingNewer=!1,d&&r==="up"&&c.scrollToBottom()}))},c.clear=()=>{s.reset(),c.reset()},c.scrollToBottom=()=>{c.onFlush(()=>{if(i===globalThis){let d=globalThis.document.documentElement.scrollHeight;globalThis.scrollTo(0,d);return}i.scrollTop=i.scrollHeight})}},onDestroyed(){it.off("scroll",i,l)},addEvent:["scroll",i,l,{passive:!0}]},t)}),W=_;import{Atom as mt}from"@base-framework/base";import{Div as at}from"@base-framework/atoms";import{Atom as lt}from"@base-framework/base";var ot=(e,t,s)=>()=>{m(e,t,s)},ht=(e,t,s,i)=>{s[i].refresh=ot(e,t,s[i])},ct=lt((e,t)=>{let s=new u(e.offset,e.limit),i=e.loadMoreItems||f(e.data,e.xhrMethod);return at({class:e.containerClass??"flex flex-col",onCreated(r,n){ht(i,s,n,e.listCache),n[e.listCache].resetPagination=()=>s.reset(),n[e.listCache].refresh()}},t)}),j=ct;import{Div as P,On as dt}from"@base-framework/atoms";import{Component as ut,Data as q,Jot as ft}from"@base-framework/base";import{Builder as M,Html as H}from"@base-framework/base";var g=class{static first(t){return this.get(t,0)}static last(t){let s=t.childNodes.length-1;return this.get(t,s)}static get(t,s){return t?.childNodes[s]??null}static next(t){return t?.nextSibling??null}static previous(t){return t?.previousSibling??null}static index(t){if(!t||!t.parentNode)return-1;let s=t.parentNode.children;return Array.from(s).indexOf(t)}static getPreviousIndex(t){let s=this.index(t);return s>0?s-1:0}static replace(t,s,i){if(!s)return;H.removeElementData(s);let r=M.build(t,null,i);s.replaceWith(r)}static remove(t){t&&H.removeChild(t)}static removeAll(t){t&&H.removeAll(t)}static append(t,s,i){t&&M.build(t,s,i)}static prepend(t,s,i){if(!t)return;let r=M.build(t,null,i);s.insertBefore(r,s.firstChild)}};var I=(e,t,s)=>({index:e,item:t,status:s}),k=class e{static diff(t,s,i){let r=this.arrayToMap(t,i),n=[],a=[],l=s.length;for(let o=0;o<l;o++){let h=s[o],c=h[i];if(!r.has(c)){n.push(I(o,h,"added"));continue}let{item:d}=r.get(c);if(!this.deepEqual(d,h)){n.push(I(o,h,"updated"));continue}n.push(I(o,h,"unchanged")),r.delete(c)}return r.forEach(({item:o})=>{a.push(o)}),{changes:n,deletedItems:a}}static modify(t,s,i,r=!1){let n=[],a=e.arrayToMap(s,i),l=t.length;for(let o=0;o<l;o++){let h=t[o],c=h[i]??null;if(!a.has(c)){if(!r)continue;n.push(I(o,h,"added"));continue}h={...a.get(c).item,...h},n.push(I(o,h,"updated"))}return n}static arrayToMap(t,s){let i=new Map,r=t.length;for(let n=0;n<r;n++){let a=t[n];i.set(a[s],{item:a,index:n})}return i}static deepEqual(t,s){if(t===s)return!0;if(typeof t!="object"||t===null||typeof s!="object"||s===null)return!1;let i=Object.keys(t),r=Object.keys(s);if(i.length!==r.length)return!1;let n=i.length;for(let a=0;a<n;a++){let l=i[a];if(!s.hasOwnProperty(l)||!this.deepEqual(t[l],s[l]))return!1}return!0}};var A=class{constructor({layout:t,itemProperty:s,customCompare:i,skipFirst:r=!1}){this.layout=t,this.itemProperty=s,this.customCompare=i,this.skipFirst=r,this.lastAppend=null,this.lastPrepend=null,this.lastDividerValue=null,this.prependBoundary=null}reset(){this.lastAppend=null,this.lastPrepend=null,this.lastDividerValue=null,this.prependBoundary=null}setPrependBoundary(t){if(t){let s=this.getValue(t);this.lastPrepend=s,this.prependBoundary=s}else this.prependBoundary=null}setFirstValues(t){let s=this.lastAppend;return s||(this.lastAppend=t,this.lastPrepend=t),!s}append(t,s){this.prependBoundary=null;let i=this.getValue(t),r=this.setFirstValues(i);if(r&&!this.skipFirst){this.addDivider(i,s);return}r||(this.compare(this.lastAppend,i)&&this.addDivider(i,s),this.lastAppend=i)}getValue(t){return t[this.itemProperty]??null}prepend(t,s){let i=this.getValue(t);if(this.setFirstValues(i)){this.addDivider(i,s);return}this.compare(this.lastPrepend,i)&&this.addDivider(i,s),this.lastPrepend=i}compare(t,s){return this.customCompare?this.customCompare(t,s):t!==s}addDivider(t,s){if(!this.layout||!s||this.lastDividerValue!==null&&this.compare(this.lastDividerValue,t)===!1)return;let i=this.layout(t);i&&typeof i=="object"&&(i["data-divider"]="true"),s.push(i),this.lastDividerValue=t}};var x=e=>{if(Array.isArray(e))try{return structuredClone(e)}catch{return e.map(s=>s&&typeof s=="object"?{...s}:s)}return e},C=ft({onCreated(){this.divider&&(this.rowDivider=new A({...this.divider})),this.elementCache=new Map},setData(){let e=this.items?x(this.items):[];return this.skeleton&&e.length===0?new q({items:this.generateSkeletonRows(),hasItems:!0,showSkeleton:!0}):new q({items:e,hasItems:null})},generateSkeletonRows(){let e=this.skeleton,t=e&&typeof e=="object"&&e.number?e.number:3,s=e&&typeof e=="object"&&typeof e.row=="function"?e.row:null;return s?Array.from({length:t},(i,r)=>s(r)):[]},removeSkeleton(){!this.data||!this.data.get("showSkeleton")||(this.data.set("showSkeleton",!1),this.data.attributes.items=[],this.data.stage.items=[],this.listContainer&&g.removeAll(this.listContainer))},before(){this.setupHasItems()},setupHasItems(){if(this.defaultHasItemValue){this.data.set("hasItems",!0);return}let e=this.linkParentData(),t=e||null;if(e!==void 0)if(e===!0)t=!0;else{let s=this.items||[];t=Array.isArray(s)&&s.length>0}this.defaultHasItemValue=t,t===!1&&this.linkParent!==!1&&!this.data.get("showSkeleton")&&this.data.set("hasItems",!1)},linkParentData(){let e=!1,t=this.parent?.data??this.parent?.context?.data??null;if(t&&this.linkParent!==!1)e=t.get("hasItems"),this.data.link(t,"hasItems");else if(this.isDynamic===!0)return;return e},checkHasAddedItems(){if(this.defaultHasItemValue===!0)return;(this.data.get("items")||[]).length>0&&this.persist===!0&&(this.defaultHasItemValue=!0)},destroy(){this.checkHasAddedItems(),this.data.hasItems=this.defaultHasItemValue,this.persist===!0&&typeof this.resetPagination=="function"&&this.resetPagination()},render(){let e=this.row.bind(this);return P({class:"flex flex-auto flex-col"},[dt("hasItems",t=>t===!1&&this.emptyState?this.emptyState():null),P({cache:"listContainer",class:`list ${this.class||""}`,onSet:["hasItems",{hidden:!1}],for:["items",e]})])},row(e,t,s,i){if(this.data&&this.data.get("showSkeleton"))return e;if(typeof this.rowItem!="function")return null;this.rowDivider&&i&&this.isDynamic!==!0&&this.rowDivider.append(e,i);let r=this.rowItem(e,t);if(r&&this.key&&e[this.key]!==void 0){let n=String(e[this.key]);if(r instanceof ut||!r.tag)return P({"data-row-key":n},[r]);r["data-row-key"]=n}return r},delete(e){let t=this.findIndexByKey(e);if(t!==-1){if(this.data.delete(`items[${t}]`),this.listContainer){let s=this.findRowElementByKey(e);s&&g.remove(s)}this.elementCache&&this.elementCache.delete(String(e)),this.updateHasItems()}},replace(e,t=!0){if(e.status==="unchanged")return;let s=e.item;if(e.status==="added"){if(t){this.append(s);return}this.prepend(s);return}let i=s[this.key],r=this.findIndexByKey(i);if(r===-1)return;this.data.set(`items[${r}]`,s);let n=this.findRowElementByKey(i),a=this.row(s,r);n&&a&&g.replace(a,n,this)},remove(e){if(!Array.isArray(e))return;let t=e.length;for(let s=0;s<t;s++){let i=e[s];this.delete(i[this.key])}this.updateHasItems()},isEmpty(){return this.data.get("items")?.length===0},setRows(e){this.removeSkeleton();let t=Array.isArray(e)?e:[];this.data.set("items",t),this.updateHasItems()},getRows(){return this.data.get("items")||[]},reset(){this.data.stage.items=[],this.data.attributes.items=[],g.removeAll(this.listContainer),this.data.stage.hasItems=null,this.data.attributes.hasItems=null,this.defaultHasItemValue=null,this.hasTrailingDivider=!1,this.elementCache&&this.elementCache.clear(),this.rowDivider&&this.rowDivider.reset()},append(e){if(!e)return;this.removeSkeleton(),Array.isArray(e)||(e=[e]),e=x(e);let t=[],s=this.data.get("items")||[],i=s.length,r=e.length;for(let a=0;a<r;a++){let l=e[a];this.rowDivider&&this.rowDivider.append(l,t);let o=this.row(l,i+a);o&&t.push(o)}let n=s.concat(e);this.data.attributes.items=n,this.data.stage.items=n,this.data.get("hasItems")!==!0&&this.updateHasItems(),t.length>0&&this.listContainer&&g.append(t,this.listContainer,this)},mingle(e,t=!1){if(!Array.isArray(e))return;e=x(e);let s=this.data.get("items")||[],i=k.diff(s,e,this.key);t&&i.deletedItems.length>0&&this.remove(i.deletedItems);let r=i.changes.length;for(let n=0;n<r;n++){let a=i.changes[n];this.replace(a)}this.updateHasItems()},merge(e,t=!0,s=!1){if(!Array.isArray(e))return;e=x(e);let i=this.data.get("items")||[],r=k.diff(i,e,this.key),n=r.changes.length;for(let a=0;a<n;a++){let l=r.changes[a];s&&(this.remove([l.item]),l.status="added"),this.replace(l,t)}this.updateHasItems()},modify(e,t=!1){if(!Array.isArray(e))return;let s=x(e),i=this.data.get("items")||[],r=k.modify(s,i,this.key,t),n=r.length;for(let a=0;a<n;a++){let l=r[a];this.replace(l)}this.updateHasItems()},prepend(e){if(!e)return;if(this.removeSkeleton(),Array.isArray(e)||(e=[e]),e=x(e),this.rowDivider){let a=this.data.get("items")||[];a.length>0&&this.rowDivider.setPrependBoundary(a[0])}if(this.listContainer){let a=this.listContainer.firstChild;a&&a.getAttribute&&a.getAttribute("data-divider")==="true"&&this.listContainer.removeChild(a)}let t=[],s=e.reverse(),i=s.length;for(let a=0;a<i;a++){let l=s[a];this.rowDivider&&this.rowDivider.prepend(l,t);let o=this.row(l,0);o&&t.push(o)}let r=this.data.get("items")||[];if(this.rowDivider&&r.length===0&&s.length>0){let a=s[s.length-1];this.rowDivider.lastAppend=this.rowDivider.getValue(a)}let n=s.concat(r);this.data.attributes.items=n,this.data.stage.items=n,this.data.get("hasItems")!==!0&&this.updateHasItems(),t.length>0&&this.listContainer&&g.prepend(t,this.listContainer,this)},addTrailingDivider(){if(!this.rowDivider||this.hasTrailingDivider||!this.listContainer)return;let e=this.listContainer.firstChild;if(e&&e.getAttribute&&e.getAttribute("data-divider")==="true"){this.hasTrailingDivider=!0;return}let t=this.data.get("items")||[];if(t.length===0)return;let s=t[0],i=this.rowDivider.getValue(s),r=[];this.rowDivider.addDivider(i,r),r.length>0&&(g.prepend(r,this.listContainer,this),this.hasTrailingDivider=!0)},updateHasItems(){let e=this.data.get("items")||[],t=Array.isArray(e)&&e.length>0;this.data.set("hasItems",t)},findIndexByKey(e){return(this.data.get("items")||[]).findIndex(s=>s&&s[this.key]===e)},findRowElementByKey(e){if(!this.listContainer)return null;let t=String(e);if(this.elementCache&&this.elementCache.has(t)){let r=this.elementCache.get(t);if(r&&this.listContainer.contains(r))return r;this.elementCache.delete(t)}let s=this.listContainer.children,i=s.length;for(let r=0;r<i;r++){let n=s[r];if(!(n.hasAttribute&&n.hasAttribute("data-divider"))&&n.hasAttribute&&n.getAttribute("data-row-key")===t)return this.elementCache&&this.elementCache.set(t,n),n}return null}});var gt=mt(e=>{let t=e.cache??"list";return j({listCache:t,loadMoreItems:e.loadMoreItems,xhrMethod:e.xhrMethod,offset:e.offset,limit:e.limit,containerClass:e.containerClass??"",data:e.data},[new C({cache:t,key:e.key,items:e.items||[],divider:e.divider,role:"list",class:e.class,emptyState:e.emptyState||null,skeleton:e.skeleton||null,linkParent:e.linkParent||!1,rowItem:e.rowItem})])});import{Atom as kt}from"@base-framework/base";import{Div as pt}from"@base-framework/atoms";import{Atom as Ct}from"@base-framework/base";var wt=(e,t,s)=>()=>{m(e,t,s)},yt=(e,t,s,i)=>{s[i].refresh=wt(e,t,s[i])},U=Ct((e,t)=>{let s=new u(e.offset,e.limit),i=e.loadMoreItems||f(e.data,e.xhrMethod);return pt({class:e.containerClass??"",onCreated(r,n){yt(i,s,n,e.listCache),n[e.listCache].reset()}},t)});var xt=kt(e=>{let t=e.cache??"list";return U({listCache:t,scrollContainer:e.scrollContainer,loadMoreItems:e.loadMoreItems,xhrMethod:e.xhrMethod,offset:e.offset,limit:e.limit,containerClass:e.containerClass??"",data:e.data},[new C({cache:t,key:e.key,items:e.items||[],divider:e.divider,role:"list",class:e.class,emptyState:e.emptyState||null,skeleton:e.skeleton||null,rowItem:e.rowItem,linkParent:e.linkParent??!1,isDynamic:!0})])});import{Atom as bt}from"@base-framework/base";var It=bt(e=>{let t=e.cache??"list";return W({listCache:t,scrollDirection:e.scrollDirection||"down",scrollContainer:e.scrollContainer,loadMoreItems:e.loadMoreItems,xhrMethod:e.xhrMethod,offset:e.offset,limit:e.limit,containerClass:e.containerClass??"flex flex-auto flex-col",data:e.data},[new C({cache:t,key:e.key,items:e.items||[],divider:e.divider,role:"list",class:e.class,emptyState:e.emptyState||null,skeleton:e.skeleton||null,rowItem:e.rowItem,linkParent:e.linkParent??!1,persist:e.persist??!1,isDynamic:!0})])});import{Component as Dt,router as vt}from"@base-framework/base";var J=(e,t)=>({attr:e,value:t}),Tt=(e,t)=>new RegExp("^"+e+"($|#|/|\\.).*").test(t),N=class extends Dt{beforeSetup(){this.selectedClass=this.activeClass||"active"}render(){let t=this.href,s=this.text,i=this.setupWatchers(t,s);return{tag:"a",class:this.class||this.className||null,onState:["selected",{[this.selectedClass]:!0}],href:this.getString(t),text:this.getString(s),nest:this.nest||this.children,dataSet:this.dataSet,watch:i}}getLinkPath(){return this?.panel?.pathname||null}getString(t){let s=typeof t;return s!=="object"&&s!=="undefined"?t:null}setupWatchers(t,s){let i=this.exact===!0,r=vt.data,n=[];return t&&typeof t=="object"&&n.push(J("href",t)),s&&typeof s=="object"&&n.push(J("text",s)),n.push({value:["[[path]]",r],callBack:(a,l)=>{let o=l.pathname+l.hash,h=i?a===o:Tt(l.pathname,a);this.update(h)}}),n}setupStates(){return{selected:!1}}update(t){this.state.selected=t}};import{Tbody as Nt}from"@base-framework/atoms";import{Tbody as Ht}from"@base-framework/atoms";import{Data as Pt}from"@base-framework/base";import{Div as At,Td as St,Tr as Mt}from"@base-framework/atoms";var Y=({columnCount:e=3,customCell:t,key:s})=>{let i=r=>{if(t&&typeof t=="function")return t(r);let n=["w-3/4","w-1/2","w-full","w-2/3","w-5/6"],a=n[r%n.length];return St({class:"px-6 py-4"},[At({class:`${a} h-4 bg-muted animate-pulse rounded-md`})])};return Mt({class:"border-b",key:s},Array.from({length:e},(r,n)=>i(n)))};var y=class extends C{setData(){let t=this.items&&this.items.length>0;return this.skeleton&&!t?new Pt({items:this.generateSkeletonRows(),hasItems:!0,showSkeleton:!0}):super.setData()}generateSkeletonRows(){let t=this.skeleton,s=5,i=null;typeof t=="object"&&(s=t.number||5,i=t.row||null);let r=this.columnCount||3;return Array.from({length:s},(n,a)=>i&&typeof i=="function"?i(a,r):Y({columnCount:r,key:`skeleton-${a}`}))}render(){let t=this.row.bind(this);return Ht({onCreated:s=>{this.cacheEle(s,"listContainer")},class:`tbody ${this.class||""}`,for:["items",t]})}};var R=class extends y{declareProps(){this.tracker=null,this.fetchCallback=null}setupPageTracker(){return this.tracker=new u(this.offset,this.limit)}setupFetchCallback(){this.setupPageTracker(),this.fetchCallback=this.loadMoreItems||f(this.tableData,this.xhrMethod)}resetPagination(){this.tracker&&this.tracker.reset()}refresh(){m(this.fetchCallback,this.tracker,this)}render(){let t=this.row.bind(this);return this.setupFetchCallback(),Nt({class:`tbody ${this.class||""}`,onCreated:(s,i)=>{this.cacheEle(s,"listContainer"),this.refresh()},for:["items",t]})}};import{Tbody as Rt}from"@base-framework/atoms";import{Events as Lt}from"@base-framework/base";var L=class extends y{declareProps(){this.tracker=null,this.scrollContainer=null,this.fetchCallback=null}setupPageTracker(){return this.tracker=new u(this.offset,this.limit)}setupScrollHandler(t){let s=this.setupPageTracker();return this.fetchCallback=this.loadMoreItems||f(this.tableData,this.xhrMethod),K(t,s,this.fetchCallback)}resetPagination(){this.tracker&&this.tracker.reset()}refresh(){m(this.fetchCallback,this.tracker,this)}render(){let t=this.row.bind(this),s=this.scrollContainer||globalThis,i=this.setupScrollHandler(s);return Rt({class:`tbody ${this.class||""}`,onCreated:(r,n)=>{this.cacheEle(r,"listContainer"),i(null,n,()=>{this.reset()})},onDestroyed:(r,n)=>{Lt.off("scroll",s,i)},addEvent:["scroll",s,i,{passive:!0}],for:["items",t]})}};import{Span as Bt}from"@base-framework/atoms";import{Component as Et,SimpleData as Vt}from"@base-framework/base";var D=class{constructor(t,s){this.timer=null,this.callBack=s,this.duration=t||1e3}createTimer(t){this.timer=globalThis.setTimeout(t,this.duration)}start(){this.stop();let t=this.returnCallBack.bind(this);this.createTimer(t)}stop(){globalThis.clearTimeout(this.timer)}returnCallBack(){let t=this.callBack;typeof t=="function"&&t.call()}};var v=class extends D{createTimer(t){this.timer=globalThis.setInterval(t,this.duration)}stop(){globalThis.clearInterval(this.timer)}};var z=new Vt({date:0}),Ft=6e4,Ot=new v(Ft,()=>{z.increment("date")});Ot.start();var B=class extends Et{setData(){return z}render(){return Bt({class:this.class,text:this.getTime(),onSet:["date",()=>this.getTime()]})}getTime(){let t=this.dateTime;return this.filter?this.filter(t):t}};export{_ as BiDirectionalContainer,gt as DataList,R as DataTableBody,xt as DynamicList,B as DynamicTime,v as IntervalTimer,C as List,N as NavLink,It as ScrollableList,L as ScrollableTableBody,y as TableBody,D as Timer}; //# sourceMappingURL=organisms.js.map