@livenetworks/ashlar 1.5.1 → 1.6.1
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/README.md +189 -177
- package/js/COMPONENTS.md +55 -49
- package/js/index.js +22 -5
- package/js/ln-accordion/README.md +186 -137
- package/js/ln-accordion/ln-accordion.js +1 -1
- package/js/ln-ajax/README.md +73 -4
- package/js/ln-ajax/ln-ajax.js +1 -1
- package/js/ln-ajax/src/ln-ajax.js +13 -13
- package/js/ln-api-connector/README.md +261 -150
- package/js/ln-api-connector/ln-api-connector.js +1 -1
- package/js/ln-api-connector/src/ln-api-connector.js +368 -265
- package/js/ln-api-queue/README.md +219 -0
- package/js/ln-api-queue/ln-api-queue.js +1 -0
- package/js/ln-api-queue/src/ln-api-queue.js +320 -0
- package/js/ln-api-queue/src/queue-storage.js +455 -0
- package/js/ln-autoresize/README.md +47 -0
- package/js/ln-autoresize/ln-autoresize.js +1 -1
- package/js/ln-autosave/README.md +33 -1
- package/js/ln-autosave/ln-autosave.js +1 -1
- package/js/ln-autosave/src/ln-autosave.js +4 -4
- package/js/ln-circular-progress/README.md +27 -13
- package/js/ln-circular-progress/ln-circular-progress.js +1 -1
- package/js/ln-circular-progress/src/ln-circular-progress.js +18 -5
- package/js/ln-confirm/README.md +165 -86
- package/js/ln-confirm/_ln-confirm.scss +11 -0
- package/js/ln-confirm/ln-confirm.js +1 -1
- package/js/ln-confirm/src/ln-confirm.js +82 -42
- package/js/ln-core/README.md +896 -0
- package/js/ln-core/hash.js +92 -0
- package/js/ln-core/helpers.js +337 -8
- package/js/ln-core/index.js +4 -2
- package/js/ln-core/persist.js +29 -3
- package/js/ln-core/positioning.js +1 -35
- package/js/ln-core/window-cache.js +213 -0
- package/js/ln-couchdb-connector/README.md +177 -156
- package/js/ln-couchdb-connector/ln-couchdb-connector.js +1 -1
- package/js/ln-couchdb-connector/src/ln-couchdb-connector.js +398 -348
- package/js/ln-data-coordinator/README.md +536 -165
- package/js/ln-data-coordinator/ln-data-coordinator.js +1 -1
- package/js/ln-data-coordinator/src/data-read-policy.js +18 -0
- package/js/ln-data-coordinator/src/ln-data-coordinator.js +1042 -249
- package/js/ln-data-coordinator/src/mutation-receipts.js +46 -0
- package/js/ln-data-store/README.md +241 -94
- package/js/ln-data-store/ln-data-store.js +1 -1
- package/js/ln-data-store/src/ln-data-store.js +694 -699
- package/js/ln-date/README.md +39 -1
- package/js/ln-date/ln-date-dev.scss +14 -0
- package/js/ln-date/ln-date.js +1 -1
- package/js/ln-date/src/ln-date.js +236 -178
- package/js/ln-debug/README.md +58 -0
- package/js/ln-debug/ln-debug.js +1 -0
- package/js/ln-debug/src/ln-debug.js +19 -0
- package/js/ln-dropdown/README.md +31 -8
- package/js/ln-dropdown/ln-dropdown.js +1 -1
- package/js/ln-dropdown/src/ln-dropdown.js +30 -13
- package/js/ln-editor/README.md +274 -0
- package/js/ln-editor/ln-editor.js +1 -0
- package/js/ln-editor/ln-editor.scss +43 -0
- package/js/ln-editor/src/ln-editor.js +619 -0
- package/js/ln-external-links/README.md +44 -5
- package/js/ln-external-links/ln-external-links.js +1 -1
- package/js/ln-fill/README.md +199 -0
- package/js/ln-fill/ln-fill.js +1 -0
- package/js/ln-fill/src/ln-fill.js +87 -0
- package/js/ln-filter/README.md +92 -2
- package/js/ln-filter/ln-filter-dev.scss +8 -0
- package/js/ln-filter/ln-filter.js +1 -1
- package/js/ln-filter/src/ln-filter.js +22 -7
- package/js/ln-form/README.md +212 -49
- package/js/ln-form/ln-form.js +1 -1
- package/js/ln-form/src/ln-form.js +99 -199
- package/js/ln-http/README.md +125 -89
- package/js/ln-http/ln-http.js +1 -1
- package/js/ln-http/src/ln-http.js +32 -13
- package/js/ln-icon/README.md +130 -0
- package/js/ln-icon/ln-icon.js +1 -0
- package/js/{ln-icons/src/ln-icons.js → ln-icon/src/ln-icon.js} +20 -15
- package/js/ln-link/README.md +47 -9
- package/js/ln-link/ln-link.js +1 -1
- package/js/ln-link/src/ln-link.js +22 -6
- package/js/ln-list/README.md +129 -0
- package/js/ln-list/ln-list.js +1 -0
- package/js/ln-list/ln-list.scss +28 -0
- package/js/ln-list/src/ln-list.js +1216 -0
- package/js/ln-modal/README.md +185 -154
- package/js/ln-modal/ln-modal-dev.scss +13 -0
- package/js/ln-modal/ln-modal.js +1 -1
- package/js/ln-modal/ln-modal.scss +28 -4
- package/js/ln-modal/src/ln-modal.js +137 -201
- package/js/ln-modal-coordinator/README.md +99 -0
- package/js/ln-modal-coordinator/ln-modal-coordinator-dev.scss +8 -0
- package/js/ln-modal-coordinator/ln-modal-coordinator.js +1 -0
- package/js/ln-modal-coordinator/src/ln-modal-coordinator.js +345 -0
- package/js/ln-nav/README.md +46 -3
- package/js/ln-nav/ln-nav.js +1 -1
- package/js/ln-nav/src/ln-nav.js +92 -127
- package/js/ln-number/README.md +28 -1
- package/js/ln-number/ln-number-dev.scss +13 -0
- package/js/ln-number/ln-number.js +1 -1
- package/js/ln-number/src/ln-number.js +443 -350
- package/js/ln-options/README.md +66 -0
- package/js/ln-options/ln-options.js +1 -0
- package/js/ln-options/src/ln-options.js +74 -0
- package/js/ln-popover/README.md +40 -5
- package/js/ln-popover/ln-popover.js +1 -1
- package/js/ln-popover/src/ln-popover.js +38 -11
- package/js/ln-progress/README.md +413 -442
- package/js/ln-progress/ln-progress.js +1 -1
- package/js/ln-progress/src/ln-progress.js +98 -150
- package/js/ln-router/README.md +432 -0
- package/js/ln-router/ln-router.js +1 -0
- package/js/ln-router/src/ln-router.js +539 -0
- package/js/ln-search/README.md +158 -83
- package/js/ln-search/ln-search-dev.scss +8 -0
- package/js/ln-search/ln-search.js +1 -1
- package/js/ln-search/src/ln-search.js +12 -9
- package/js/ln-slug/README.md +110 -0
- package/js/ln-slug/ln-slug.js +1 -0
- package/js/ln-slug/src/ln-slug.js +74 -0
- package/js/ln-sort/README.md +170 -0
- package/js/ln-sort/ln-sort-dev.scss +8 -0
- package/js/ln-sort/ln-sort.js +1 -0
- package/js/ln-sort/src/ln-sort.js +178 -0
- package/js/ln-sortable/README.md +133 -95
- package/js/ln-sortable/ln-sortable.js +1 -1
- package/js/ln-stat/README.md +55 -0
- package/js/ln-stat/ln-stat.js +1 -0
- package/js/ln-stat/src/ln-stat.js +55 -0
- package/js/ln-table/README.md +285 -101
- package/js/ln-table/ln-table-dev.scss +17 -0
- package/js/ln-table/ln-table.js +1 -1
- package/js/ln-table/ln-table.scss +1 -1
- package/js/ln-table/src/ln-table.js +1493 -473
- package/js/ln-table-coordinator/README.md +73 -0
- package/js/ln-table-coordinator/ln-table-coordinator.js +1 -0
- package/js/ln-table-coordinator/src/ln-table-coordinator.js +160 -0
- package/js/ln-tabs/README.md +221 -137
- package/js/ln-tabs/ln-tabs-dev.scss +18 -0
- package/js/ln-tabs/ln-tabs.js +1 -1
- package/js/ln-tabs/src/ln-tabs.js +41 -24
- package/js/ln-time/README.md +14 -0
- package/js/ln-time/ln-time.js +1 -1
- package/js/ln-time/src/ln-time.js +223 -192
- package/js/ln-toast/README.md +178 -122
- package/js/ln-toast/ln-toast.js +1 -15
- package/js/ln-toast/src/ln-toast.js +232 -210
- package/js/ln-toast/template.html +16 -12
- package/js/ln-toggle/README.md +61 -2
- package/js/ln-toggle/ln-toggle-dev.scss +13 -0
- package/js/ln-toggle/ln-toggle.js +1 -1
- package/js/ln-toggle/src/ln-toggle.js +56 -43
- package/js/ln-tooltip/README.md +95 -58
- package/js/ln-tooltip/ln-tooltip-dev.scss +9 -0
- package/js/ln-tooltip/ln-tooltip.js +1 -1
- package/js/ln-tooltip/src/ln-tooltip.js +45 -6
- package/js/ln-translations/README.md +118 -96
- package/js/ln-translations/ln-translations.js +1 -1
- package/js/ln-translations/src/ln-translations.js +10 -5
- package/js/ln-upload/README.md +85 -10
- package/js/ln-upload/ln-upload.js +1 -1
- package/js/ln-upload/src/ln-upload.js +26 -10
- package/js/ln-validate/README.md +72 -0
- package/js/ln-validate/ln-validate-dev.scss +15 -0
- package/js/ln-validate/ln-validate.js +1 -1
- package/js/ln-validate/src/ln-validate.js +64 -0
- package/package.json +61 -56
- package/scss/base/_global.scss +2 -2
- package/scss/base/_typography.scss +1 -2
- package/scss/components/_date.scss +1 -0
- package/scss/components/_dropdown.scss +0 -5
- package/scss/components/_editor.scss +5 -0
- package/scss/components/_filter.scss +26 -25
- package/scss/components/_form.scss +7 -0
- package/scss/components/_ln-table.scss +13 -3
- package/scss/components/_sort.scss +10 -0
- package/scss/components/_table.scss +36 -23
- package/scss/components/_toast.scss +68 -41
- package/scss/components/_toggle.scss +16 -0
- package/scss/config/_density.scss +205 -117
- package/scss/config/_icons.scss +10 -9
- package/scss/config/_tokens.scss +69 -47
- package/scss/config/mixins/_accordion.scss +2 -7
- package/scss/config/mixins/_alert.scss +4 -4
- package/scss/config/mixins/_breadcrumbs.scss +2 -2
- package/scss/config/mixins/_btn.scss +1 -1
- package/scss/config/mixins/_card.scss +89 -14
- package/scss/config/mixins/_collapsible.scss +3 -0
- package/scss/config/mixins/_colors.scss +1 -1
- package/scss/config/mixins/_diagnostics.scss +11 -0
- package/scss/config/mixins/_display.scss +1 -0
- package/scss/config/mixins/_dropdown.scss +3 -5
- package/scss/config/mixins/_editor.scss +124 -0
- package/scss/config/mixins/_empty-state.scss +7 -0
- package/scss/config/mixins/_filter.scss +3 -5
- package/scss/config/mixins/_footer.scss +1 -2
- package/scss/config/mixins/_form.scss +207 -21
- package/scss/config/mixins/_index.scss +2 -0
- package/scss/config/mixins/_ln-table.scss +41 -2
- package/scss/config/mixins/_modal.scss +149 -66
- package/scss/config/mixins/_nav.scss +3 -4
- package/scss/config/mixins/_popover.scss +39 -0
- package/scss/config/mixins/_sidebar.scss +1 -1
- package/scss/config/mixins/_sort.scss +42 -0
- package/scss/config/mixins/_table.scss +85 -60
- package/scss/config/mixins/_toast.scss +179 -152
- package/scss/config/mixins/_tooltip.scss +17 -7
- package/scss/config/mixins/_typography.scss +4 -2
- package/scss/ln-ashlar-dev.scss +27 -9
- package/scss/ln-ashlar.scss +7 -1
- package/js/ln-data-table/README.md +0 -110
- package/js/ln-data-table/ln-data-table.js +0 -1
- package/js/ln-data-table/ln-data-table.scss +0 -10
- package/js/ln-data-table/src/ln-data-table.js +0 -1087
- package/js/ln-icons/README.md +0 -88
- package/js/ln-icons/ln-icons.js +0 -1
- package/js/ln-table/ln-table-sort.js +0 -1
- package/js/ln-table/src/ln-table-sort.js +0 -156
package/js/ln-table/ln-table.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){"use strict";function g(o,l,m){o.dispatchEvent(new CustomEvent(l,{bubbles:!0,detail:m||{}}))}function C(o,l){if(!document.body){document.addEventListener("DOMContentLoaded",function(){C(o,l)}),console.warn("["+l+'] Script loaded before <body> — add "defer" to your <script> tag');return}o()}function T(o,l,m,v){if(o.nodeType!==1)return;const S=l.indexOf("[")!==-1||l.indexOf(".")!==-1||l.indexOf("#")!==-1?l:"["+l+"]",y=Array.from(o.querySelectorAll(S));o.matches&&o.matches(S)&&y.push(o);for(const h of y)h[m]||(h[m]=new v(h))}function L(o,l,m,v,w={}){const S=w.extraAttributes||[],y=w.onAttributeChange||null,h=w.onInit||null;function e(d){const t=d||document.body;T(t,o,l,m),h&&h(t)}return C(function(){const d=new MutationObserver(function(n){for(let u=0;u<n.length;u++){const i=n[u];if(i.type==="childList"){for(let c=0;c<i.addedNodes.length;c++){const r=i.addedNodes[c];r.nodeType===1&&(T(r,o,l,m),h&&h(r))}for(let c=0;c<i.removedNodes.length;c++){const r=i.removedNodes[c];if(r.nodeType===1){const a=o.indexOf("[")!==-1||o.indexOf(".")!==-1||o.indexOf("#")!==-1?o:"["+o+"]",f=Array.from(r.querySelectorAll(a));r.matches&&r.matches(a)&&f.push(r);for(let _=0;_<f.length;_++){const p=f[_];if(!document.contains(p)){const b=p[l];b&&typeof b.destroy=="function"&&b.destroy()}}}}}else i.type==="attributes"&&(y&&i.target[l]?y(i.target,i.attributeName):(T(i.target,o,l,m),h&&h(i.target)))}});let t=[];if(o.indexOf("[")!==-1){const n=/\[([\w-]+)/g;let u;for(;(u=n.exec(o))!==null;)t.push(u[1])}else t.push(o);d.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:t.concat(S)})},v),window[l]=e,document.readyState==="loading"?document.addEventListener("DOMContentLoaded",function(){e(document.body)}):e(document.body),e}const A={};function O(o,l){A[o]=l}function x(o){return A[o]||{ingress:l=>l,egress:l=>l}}typeof window<"u"&&(window.lnCore=window.lnCore||{},window.lnCore.registerDataMapper=O,window.lnCore.getDataMapper=x),(function(){const o="data-ln-table",l="lnTable",m="data-ln-sort",v="data-ln-table-empty";if(window[l]!==void 0)return;const y=typeof Intl<"u"?new Intl.Collator(document.documentElement.lang||void 0,{sensitivity:"base"}):null;function h(e){this.dom=e,this.table=e.querySelector("table"),this.tbody=e.querySelector("tbody"),this.thead=e.querySelector("thead");const d=this.thead?this.thead.querySelector("tr:last-child"):null;this.ths=d?Array.from(d.querySelectorAll("th")):[],this._data=[],this._filteredData=[],this._searchTerm="",this._sortCol=-1,this._sortDir=null,this._sortType=null,this._columnFilters={},this._virtual=!1,this._rowHeight=0,this._vStart=-1,this._vEnd=-1,this._rafId=null,this._scrollHandler=null,this._colgroup=null;const t=this;return this._emptyTbodyObserver=null,this.tbody&&this.tbody.rows.length>0?this._parseRows():this.tbody&&(this._emptyTbodyObserver=new MutationObserver(function(){t.tbody.rows.length>0&&(t._emptyTbodyObserver.disconnect(),t._emptyTbodyObserver=null,t._parseRows())}),this._emptyTbodyObserver.observe(this.tbody,{childList:!0})),this._onSearch=function(n){n.preventDefault(),t._searchTerm=n.detail.term,t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),g(e,"ln-table:filter",{term:t._searchTerm,matched:t._filteredData.length,total:t._data.length})},e.addEventListener("ln-search:change",this._onSearch),this._onSort=function(n){t._sortCol=n.detail.direction===null?-1:n.detail.column,t._sortDir=n.detail.direction,t._sortType=n.detail.sortType,t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),g(e,"ln-table:sorted",{column:n.detail.column,direction:n.detail.direction,matched:t._filteredData.length,total:t._data.length})},e.addEventListener("ln-table:sort",this._onSort),this._onColumnFilter=function(n){const u=n.detail.key;let i=!1;for(let s=0;s<t.ths.length;s++)if(t.ths[s].getAttribute("data-ln-filter-col")===u){i=!0;break}if(!i)return;const c=n.detail.values;if(!c||c.length===0)delete t._columnFilters[u];else{const s=[];for(let a=0;a<c.length;a++)s.push(c[a].toLowerCase());t._columnFilters[u]=s}const r=t.dom.querySelector('th[data-ln-filter-col="'+u+'"]');r&&(c&&c.length>0?r.setAttribute("data-ln-filter-active",""):r.removeAttribute("data-ln-filter-active")),t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),g(e,"ln-table:filter",{term:t._searchTerm,matched:t._filteredData.length,total:t._data.length})},e.addEventListener("ln-filter:changed",this._onColumnFilter),this._onClear=function(n){if(!n.target.closest("[data-ln-table-clear]"))return;t._searchTerm="";const i=document.querySelector('[data-ln-search="'+e.id+'"]');if(i){const r=i.tagName==="INPUT"?i:i.querySelector("input");r&&(r.value="")}t._columnFilters={};for(let r=0;r<t.ths.length;r++)t.ths[r].removeAttribute("data-ln-filter-active");const c=document.querySelectorAll('[data-ln-filter="'+e.id+'"]');for(let r=0;r<c.length;r++){const s=c[r].querySelector("[data-ln-filter-reset]");s&&(s.checked=!0,s.dispatchEvent(new Event("change",{bubbles:!0})))}t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),g(e,"ln-table:filter",{term:"",matched:t._filteredData.length,total:t._data.length})},e.addEventListener("click",this._onClear),this}h.prototype._parseRows=function(){const e=this.tbody.rows,d=this.ths;this._data=[];const t=[];for(let n=0;n<d.length;n++)t[n]=d[n].getAttribute(m);e.length>0&&(this._rowHeight=e[0].offsetHeight||40),this._lockColumnWidths();for(let n=0;n<e.length;n++){const u=e[n],i=[],c=[],r=[];for(let s=0;s<u.cells.length;s++){const a=u.cells[s],f=a.textContent.trim(),_=a.hasAttribute("data-ln-value")?a.getAttribute("data-ln-value"):f,p=t[s];c[s]=f.toLowerCase(),p==="number"||p==="date"?i[s]=parseFloat(_)||0:p==="string"?i[s]=String(_):i[s]=null,s<u.cells.length-1&&r.push(f.toLowerCase())}this._data.push({sortKeys:i,rawTexts:c,html:u.outerHTML,searchText:r.join(" ")})}this._filteredData=this._data.slice(),this._render(),g(this.dom,"ln-table:ready",{total:this._data.length})},h.prototype._applyFilterAndSort=function(){const e=this._searchTerm,d=this._columnFilters,t=Object.keys(d).length>0,n=this.ths,u={};if(t)for(let a=0;a<n.length;a++){const f=n[a].getAttribute("data-ln-filter-col");f&&(u[f]=a)}if(!e&&!t?this._filteredData=this._data.slice():this._filteredData=this._data.filter(function(a){if(e&&a.searchText.indexOf(e)===-1)return!1;if(t)for(const f in d){const _=u[f];if(_!==void 0&&d[f].indexOf(a.rawTexts[_])===-1)return!1}return!0}),this._sortCol<0||!this._sortDir)return;const i=this._sortCol,c=this._sortDir==="desc"?-1:1,r=this._sortType==="number"||this._sortType==="date",s=y?y.compare:function(a,f){return a<f?-1:a>f?1:0};this._filteredData.sort(function(a,f){const _=a.sortKeys[i],p=f.sortKeys[i];return r?(_-p)*c:s(_,p)*c})},h.prototype._lockColumnWidths=function(){if(!this.table||!this.thead||this._colgroup)return;const e=document.createElement("colgroup");this.ths.forEach(function(d){const t=document.createElement("col");t.style.width=d.offsetWidth+"px",e.appendChild(t)}),this.table.insertBefore(e,this.table.firstChild),this.table.style.tableLayout="fixed",this._colgroup=e},h.prototype._render=function(){if(!this.tbody)return;const e=this._filteredData.length;e===0&&(this._searchTerm||Object.keys(this._columnFilters).length>0)?(this._disableVirtualScroll(),this._showEmptyState()):e>200?(this._enableVirtualScroll(),this._renderVirtual()):(this._disableVirtualScroll(),this._renderAll())},h.prototype._renderAll=function(){const e=[],d=this._filteredData;for(let t=0;t<d.length;t++)e.push(d[t].html);this.tbody.innerHTML=e.join("")},h.prototype._enableVirtualScroll=function(){if(this._virtual)return;this._virtual=!0;const e=this;this._scrollHandler=function(){e._rafId||(e._rafId=requestAnimationFrame(function(){e._rafId=null,e._renderVirtual()}))},window.addEventListener("scroll",this._scrollHandler,{passive:!0}),window.addEventListener("resize",this._scrollHandler,{passive:!0})},h.prototype._disableVirtualScroll=function(){this._virtual&&(this._virtual=!1,this._scrollHandler&&(window.removeEventListener("scroll",this._scrollHandler),window.removeEventListener("resize",this._scrollHandler),this._scrollHandler=null),this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=null),this._vStart=-1,this._vEnd=-1)},h.prototype._renderVirtual=function(){const e=this._filteredData,d=e.length,t=this._rowHeight;if(!t||!d)return;const u=this.table.getBoundingClientRect().top+window.scrollY,i=this.thead?this.thead.offsetHeight:0,c=u+i,r=window.scrollY-c,s=Math.max(0,Math.floor(r/t)-15),a=Math.min(s+Math.ceil(window.innerHeight/t)+30,d);if(s===this._vStart&&a===this._vEnd)return;this._vStart=s,this._vEnd=a;const f=this.ths.length||1,_=s*t,p=(d-a)*t;let b="";_>0&&(b+='<tr class="ln-table__spacer" aria-hidden="true"><td colspan="'+f+'" style="height:'+_+'px;padding:0;border:none"></td></tr>');for(let E=s;E<a;E++)b+=e[E].html;p>0&&(b+='<tr class="ln-table__spacer" aria-hidden="true"><td colspan="'+f+'" style="height:'+p+'px;padding:0;border:none"></td></tr>'),this.tbody.innerHTML=b},h.prototype._showEmptyState=function(){const e=this.ths.length||1,d=this.dom.querySelector("template["+v+"]"),t=document.createElement("td");t.setAttribute("colspan",String(e)),d&&t.appendChild(document.importNode(d.content,!0));const n=document.createElement("tr");n.className="ln-table__empty",n.appendChild(t),this.tbody.innerHTML="",this.tbody.appendChild(n),g(this.dom,"ln-table:empty",{term:this._searchTerm,total:this._data.length})},h.prototype.destroy=function(){this.dom[l]&&(this._disableVirtualScroll(),this._emptyTbodyObserver&&(this._emptyTbodyObserver.disconnect(),this._emptyTbodyObserver=null),this.dom.removeEventListener("ln-search:change",this._onSearch),this.dom.removeEventListener("ln-table:sort",this._onSort),this.dom.removeEventListener("ln-filter:changed",this._onColumnFilter),this.dom.removeEventListener("click",this._onClear),this._colgroup&&(this._colgroup.remove(),this._colgroup=null),this.table&&(this.table.style.tableLayout=""),this._data=[],this._filteredData=[],delete this.dom[l])},L(o,l,h,"ln-table")})()})();
|
|
1
|
+
(function(){"use strict";if(typeof window<"u"){const l=console.warn;console.warn=function(...o){typeof o[0]=="string"&&(o[0].startsWith("[ln-")||o[0].startsWith("[lnCore"))&&!(document.documentElement.hasAttribute("data-ln-debug")||document.body&&document.body.hasAttribute("data-ln-debug"))||l.apply(console,o)}}const q={};function N(l,o){q[l]||(q[l]=document.querySelector('[data-ln-template="'+l+'"]'));const a=q[l];return a?a.content.cloneNode(!0):(console.warn("["+(o||"ln-core")+'] Template "'+l+'" not found'),null)}function T(l,o,a){l.dispatchEvent(new CustomEvent(o,{bubbles:!0,detail:a||{}}))}function Z(l,o,a){l._applyFilterAndSort(),l._vStart=-1,l._vEnd=-1,l._render(),l._updateFooter();const g={sort:l.currentSort,filters:l.currentFilters,search:l.currentSearch};g[a]=l.name,T(l.dom,o,g)}function W(l,o){if(!l||!o)return l;const a=l.querySelectorAll("[data-ln-field]");for(let f=0;f<a.length;f++){const h=a[f],p=h.getAttribute("data-ln-field");o[p]!=null&&(h.textContent=o[p])}const g=l.querySelectorAll("[data-ln-attr]");for(let f=0;f<g.length;f++){const h=g[f],p=h.getAttribute("data-ln-attr").split(",");for(let y=0;y<p.length;y++){const S=p[y].trim().split(":");if(S.length!==2)continue;const E=S[0].trim(),D=S[1].trim();o[D]!=null&&h.setAttribute(E,o[D])}}const A=l.querySelectorAll("[data-ln-show]");for(let f=0;f<A.length;f++){const h=A[f],p=h.getAttribute("data-ln-show");p in o&&h.classList.toggle("hidden",!o[p])}const v=l.querySelectorAll("[data-ln-class]");for(let f=0;f<v.length;f++){const h=v[f],p=h.getAttribute("data-ln-class").split(",");for(let y=0;y<p.length;y++){const S=p[y].trim().split(":");if(S.length!==2)continue;const E=S[0].trim(),D=S[1].trim();D in o&&h.classList.toggle(E,!!o[D])}}return l}function $(l,o){l.matches&&l.matches("[data-ln-form], [data-ln-fillable]")&&l.dispatchEvent(new CustomEvent("ln-fill",{detail:o??null,bubbles:!0}));const a=l.querySelectorAll("[data-ln-form], [data-ln-fillable]");for(let g=0;g<a.length;g++)a[g].dispatchEvent(new CustomEvent("ln-fill",{detail:o??null,bubbles:!0}));return l}typeof window<"u"&&(window.lnCore=window.lnCore||{},window.lnCore._fillBound||(window.lnCore._fillBound=!0,document.addEventListener("ln-fill",function(l){if(!(!l.target.matches||!l.target.matches("[data-ln-fillable]")))if(l.detail)W(l.target,l.detail);else{const o=l.target.querySelectorAll("[data-ln-field]");for(let a=0;a<o.length;a++)o[a].textContent=""}})));function F(l,o){if(!l||!o)return l;const a=document.createTreeWalker(l,NodeFilter.SHOW_TEXT);for(;a.nextNode();){const v=a.currentNode;v.textContent.indexOf("{{")!==-1&&(v.textContent=v.textContent.replace(/\{\{\s*(\w+)\s*\}\}/g,function(f,h){return o[h]!==void 0?o[h]:""}))}const g=function(v,f){return o[f]!==void 0?o[f]:""},A=Array.from(l.querySelectorAll("*"));l.nodeType===1&&A.push(l);for(let v=0;v<A.length;v++){const f=A[v],h=f.attributes;for(let p=0;p<h.length;p++){const y=h[p];y.value.indexOf("{{")!==-1&&f.setAttribute(y.name,y.value.replace(/\{\{\s*(\w+)\s*\}\}/g,g))}}return l}function tt(l,o,a,g,A,v){const f={};for(let p=0;p<l.children.length;p++){const y=l.children[p],S=y.getAttribute("data-ln-key");S&&(f[S]=y)}const h=document.createDocumentFragment();for(let p=0;p<o.length;p++){const y=o[p],S=String(g(y));let E=f[S];if(E)A(E,y,p);else{const D=N(a,v);if(!D||(F(D,y),E=D.firstElementChild,!E))continue;E.setAttribute("data-ln-key",S),A(E,y,p)}h.appendChild(E)}l.textContent="",l.appendChild(h)}function P(l,o){if(!document.body){document.addEventListener("DOMContentLoaded",function(){P(l,o)}),console.warn("["+o+'] Script loaded before <body> — add "defer" to your <script> tag');return}l()}function z(l,o,a){if(l){const g=l.querySelector('[data-ln-template="'+o+'"]');if(g)return g.content.cloneNode(!0)}return N(o,a)}function O(l,o,a,g){if(l.nodeType!==1)return;const v=o.indexOf("[")!==-1||o.indexOf(".")!==-1||o.indexOf("#")!==-1?o:"["+o+"]",f=Array.from(l.querySelectorAll(v));l.matches&&l.matches(v)&&f.push(l);for(const h of f)h[a]||(h[a]=new g(h))}const V={mk:"mk-MK",de:"de-DE",fr:"fr-FR",es:"es-ES",it:"it-IT",nl:"nl-NL",pt:"pt-PT",ru:"ru-RU",bg:"bg-BG",hr:"hr-HR",sr:"sr-RS",sq:"sq-AL",el:"el-GR",en:"en-US"};function et(l){const o=l?l.closest("[lang]"):null,a=(o?o.getAttribute("lang")||o.lang:null)||(document.documentElement?document.documentElement.getAttribute("lang")||document.documentElement.lang:null)||navigator.language;if(!a)return"en-US";const g=a.trim().toLowerCase();return g.indexOf("-")===-1&&V[g]?V[g]:a}function B(l){return l.hasAttribute("data-ln-value")?l.getAttribute("data-ln-value"):l.textContent.trim()}function U(l){let o=!1;for(let a=0;a<l.length;a++){const g=l[a];if(!(g===""||g==null)&&(o=!0,!Number.isFinite(Number(g))))return"string"}return o?"number":"string"}function j(l,o,a,g){if(a==="number"){const f=parseFloat(l),h=parseFloat(o);return(isNaN(f)?0:f)-(isNaN(h)?0:h)}const A=l!=null?String(l):"",v=o!=null?String(o):"";return g?g.compare(A,v):A<v?-1:A>v?1:0}function nt(l,o,a,g,A={}){const v=A.extraAttributes||[],f=A.onAttributeChange||null,h=A.onInit||null;function p(y){const S=y||document.body;O(S,l,o,a),h&&h(S)}return P(function(){const y=new MutationObserver(function(E){for(let D=0;D<E.length;D++){const _=E[D];if(_.type==="childList"){for(let e=0;e<_.addedNodes.length;e++){const i=_.addedNodes[e];i.nodeType===1&&(O(i,l,o,a),h&&h(i))}for(let e=0;e<_.removedNodes.length;e++){const i=_.removedNodes[e];if(i.nodeType===1){const n=l.indexOf("[")!==-1||l.indexOf(".")!==-1||l.indexOf("#")!==-1?l:"["+l+"]",r=Array.from(i.querySelectorAll(n));i.matches&&i.matches(n)&&r.push(i);for(let c=0;c<r.length;c++){const b=r[c];if(!document.contains(b)){const u=b[o];u&&typeof u.destroy=="function"&&u.destroy()}}}}}else _.type==="attributes"&&(f&&_.target[o]?f(_.target,_.attributeName):(O(_.target,l,o,a),h&&h(_.target)))}});let S=[];if(l.indexOf("[")!==-1){const E=/\[([\w-]+)/g;let D;for(;(D=E.exec(l))!==null;)S.push(D[1])}else S.push(l);y.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:S.concat(v)})},g),window[o]=p,document.readyState==="loading"?document.addEventListener("DOMContentLoaded",function(){p(document.body)}):p(document.body),p}const G={};function lt(l,o){G[l]=o}function it(l){return G[l]||{ingress:o=>o,egress:o=>o}}const K={};function Y(l,o){if(!l||typeof o!="object")return;const a=l.toLowerCase().split("-")[0];K[a]=o}function st(l){if(!l)return null;const o=l.toLowerCase().split("-")[0];return K[o]||null}Y("mk",{monthsLong:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],monthsShort:["јан","фев","мар","апр","мај","јун","јул","авг","септ","окт","ноем","дек"],daysLong:["недела","понеделник","вторник","среда","четврток","петок","сабота"],daysShort:["нед","пон","вт","ср","чет","пет","саб"]}),typeof window<"u"&&(window.lnCore=window.lnCore||{},window.lnCore.registerDataMapper=lt,window.lnCore.getDataMapper=it,window.lnCore.registerLocaleFallback=Y,window.lnCore.getLocaleFallback=st,window.lnCore.fillTemplate=F,window.lnCore.fill=W,window.lnCore.lnFill=$,window.lnCore.renderList=tt);function ot(l,o){let a=!1;return function(){a||(a=!0,queueMicrotask(function(){a=!1,l()}))}}function rt(l){l=l||{};let o=l.windowSize>0?l.windowSize:1e3,a=l.pageSize>0?l.pageSize:200,g=l.threshold!=null?l.threshold:25,A=l.fetchDebounce!=null?l.fetchDebounce:120;const v=typeof l.requestPage=="function"?l.requestPage:function(){},f=typeof l.onChange=="function"?l.onChange:function(){},h=new Map,p=new Map,y=new Set;let S=0,E=0,D=0,_={sort:null,filters:{},search:""},e=null,i=0,t=0,n=!1;function r(s){p.set(s,++i)}function c(){return!!(_&&(_.search||_.filters&&Object.keys(_.filters).length))}function b(){if(h.size<=o)return;const s=Array.from(h.keys()).sort(function(w,C){return(p.get(w)||0)-(p.get(C)||0)});let d=0;for(;h.size>o&&d<s.length;)h.delete(s[d]),p.delete(s[d]),d++}function u(s,d){y.add(s),v(_,s,d)}return{get:function(s){return h.get(s)},has:function(s){return h.has(s)},peek:function(){return h.size?h.values().next().value:void 0},get logicalTotal(){return S},get grandTotal(){return E},get queryGen(){return D},get size(){return h.size},ensure:function(s,d){clearTimeout(e),t=s;for(let R=s;R<d;R++)h.has(R)&&r(R);if(S<=0)return;const w=Math.max(0,s-g),C=Math.min(S,d+g),L=Math.floor(w/a),x=Math.floor(Math.max(0,C-1)/a);let m=-1,k=a;for(let R=L;R<=x;R++){const I=R*a,Q=Math.min(a,S-I);let J=!1;for(let M=I;M<I+Q;M++)if(!h.has(M)){J=!0;break}if(J&&!y.has(I)){m=I,k=Q;break}}m!==-1&&(e=setTimeout(function(){u(m,k)},A))},ingest:function(s){if(s=s||{},s.queryGen!=null&&s.queryGen!==D)return;n&&(h.clear(),p.clear(),n=!1),E=s.total!=null?s.total:E,S=s.filtered!=null?s.filtered:s.data?s.data.length:S;const d=s.offset||0,w=s.data||[];for(let C=0;C<w.length;C++)h.set(d+C,w[C]),r(d+C);y.delete(d),b(),f()},requestInitial:function(s){s&&(_=s),u(0,a)},invalidate:function(s){D++,y.clear(),clearTimeout(e),s&&(_=s),n=!0,u(0,a)},revalidate:function(){D++,y.clear(),clearTimeout(e),n=!0;const s=Math.max(0,Math.floor(t/a)*a),d=S>0?Math.min(a,Math.max(1,S-s)):a;u(s,d)},release:function(s){y.delete(s)},destroy:function(){clearTimeout(e),h.clear(),p.clear(),y.clear()},configure:function(s){s=s||{};let d=!1;if(s.windowSize!=null&&s.windowSize>0&&s.windowSize!==o){const w=s.windowSize<o;o=s.windowSize,w&&b(),d=!0}s.pageSize!=null&&s.pageSize>0&&(a=s.pageSize),s.threshold!=null&&s.threshold>=0&&(g=s.threshold),s.fetchDebounce!=null&&s.fetchDebounce>=0&&(A=s.fetchDebounce),d&&f()},setGrandTotal:function(s){s==null||isNaN(s)||s<0||(E=s,c()||(S=s),f())}}}function X(l){return(l||"").replace(/^#/,"")}function H(l){const o=l===void 0?location.hash:l,a={},g=X(o);if(!g)return a;const A=g.split("&");for(let v=0;v<A.length;v++){const f=A[v];if(!f)continue;const h=f.indexOf(":"),p=h>-1?f.slice(0,h):f,y=h>-1?f.slice(h+1):"";if(p)try{a[p]=decodeURIComponent(y)}catch{a[p]=y}}return a}function at(l){if(!l)return null;const o=H();return l in o?o[l]:null}function ct(l,o){if(!l)return;const a=H();o==null?delete a[l]:a[l]=String(o);const A=Object.keys(a).map(function(v){const f=a[v];return f===""?v:v+":"+encodeURIComponent(f)}).join("&");X(location.hash)!==A&&(location.hash=A)}function dt(l){return l.button===1||l.ctrlKey||l.metaKey||l.shiftKey?!1:(l.preventDefault(),!0)}typeof window<"u"&&(window.lnCore=window.lnCore||{},window.lnCore.hashParse=H,window.lnCore.hashGet=at,window.lnCore.hashSet=ct,window.lnCore.hashLinkClick=dt),(function(){const l="data-ln-table",o="lnTable",a="data-ln-table-empty";if(window[o]!==void 0)return;const p=typeof Intl<"u"?new Intl.Collator(document.documentElement.lang||void 0,{sensitivity:"base"}):null;function y(e,i){if(e==null||isNaN(e))return"";try{return new Intl.NumberFormat(et(i)).format(e)}catch{return String(e)}}function S(e){let i=e.parentElement;for(;i&&i!==document.body&&i!==document.documentElement;){const n=getComputedStyle(i).overflowY;if(n==="auto"||n==="scroll")return i;i=i.parentElement}return null}function E(e){const i=e._scrollContainer||S(e.dom);return{container:i,top:i?i.scrollTop:window.scrollY}}function D(e){e.container?e.container.scrollTop=e.top:window.scrollTo(window.scrollX,e.top)}function _(e){this.dom=e,this.table=e.querySelector("table"),this.tbody=e.querySelector("[data-ln-table-body]")||e.querySelector("tbody"),this.thead=e.querySelector("thead");const i=this.thead?this.thead.querySelector("tr:last-child"):null;this.ths=i?Array.from(i.querySelectorAll("th")):[],this._totalSpan=e.querySelector("[data-ln-table-total]"),this._filteredSpan=e.querySelector("[data-ln-table-filtered]"),this._filteredSpan&&(this._filteredWrap=this._filteredSpan.parentElement!==e?this._filteredSpan.parentElement:null),this._selectedSpan=e.querySelector("[data-ln-table-selected]"),this._selectedSpan&&(this._selectedWrap=this._selectedSpan.parentElement!==e?this._selectedSpan.parentElement:null),this.isDataDriven=e.hasAttribute("data-ln-table-source"),this.name=e.getAttribute(l)||"",this.source=e.getAttribute("data-ln-table-source")||"",this._data=[],this._filteredData=[],this._searchTerm="",this._sortCol=-1,this._sortDir=null,this._columnFilters={},this.selectedIds=new Set,this._virtual=!1,this._rowHeight=0,this._vStart=-1,this._vEnd=-1,this._rafId=null,this._scrollHandler=null,this._scrollContainer=null,this._colgroup=null;const t=this;return this._onSetSearch=function(n){const r=(n.detail&&n.detail.query!=null?n.detail.query:n.detail&&n.detail.term!=null?n.detail.term:"").trim();t.isDataDriven?(t.currentSearch=r,T(e,"ln-table:search",{table:t.name,query:t.currentSearch}),t._requestData()):(t._searchTerm=r.toLowerCase(),t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),t._updateFooter(),T(e,"ln-table:filter",{term:t._searchTerm,matched:t._filteredData.length,total:t._data.length}))},e.addEventListener("ln-table:set-search",this._onSetSearch),this._onSetFilter=function(n){if(!n.detail)return;const r=n.detail.key,c=n.detail.values;if(t.isDataDriven)!c||c.length===0?delete t.currentFilters[r]:t.currentFilters[r]=c,t._requestData();else{if(!c||c.length===0)delete t._columnFilters[r];else{const b=[];for(let u=0;u<c.length;u++)b.push(c[u].toLowerCase());t._columnFilters[r]=b}t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),T(e,"ln-table:filter",{term:t._searchTerm,matched:t._filteredData.length,total:t._data.length})}},e.addEventListener("ln-table:set-filter",this._onSetFilter),this._onRequestClearFilters=function(){t.isDataDriven?(t.currentFilters={},t.currentSearch="",T(e,"ln-table:clear-filters",{table:t.name}),t._requestData()):(t._searchTerm="",t._columnFilters={},t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),t._updateFooter(),T(e,"ln-table:filter",{term:"",matched:t._filteredData.length,total:t._data.length}))},e.addEventListener("ln-table:request-clear-filters",this._onRequestClearFilters),this._selectable=e.hasAttribute("data-ln-table-selectable"),this._selectableActive=!1,this._selectable&&this._enableSelection(),this.isDataDriven?(this.isLoaded=!1,this.totalCount=0,this.visibleCount=0,this.currentSort=null,this.currentFilters={},this.currentSearch="",this._lastTotal=0,this._lastFiltered=0,this._windowed=!1,this._cache=null,this.isDataDriven&&e.hasAttribute("data-ln-table-window")&&this._enterWindowedMode(),this._onSetData=function(n){const r=n.detail||{};if(t._windowed){e.classList.remove("ln-table--loading"),t._cache.ingest(r);return}t._data=r.data||[],t._lastTotal=r.total!=null?r.total:t._data.length,t._lastFiltered=r.filtered!=null?r.filtered:t._data.length,t.totalCount=t._lastTotal,t.visibleCount=t._lastFiltered,t.isLoaded=!0,e.classList.remove("ln-table--loading"),t._vStart=-1,t._vEnd=-1,t._applyFilterAndSort(),t._render(),t._updateFooter(),T(e,"ln-table:rendered",{table:t.name,total:t.totalCount,visible:t.visibleCount})},e.addEventListener("ln-table:set-data",this._onSetData),this._onSetLoading=function(n){const r=n.detail&&n.detail.loading;e.classList.toggle("ln-table--loading",!!r),r&&(t.isLoaded=!1)},e.addEventListener("ln-table:set-loading",this._onSetLoading),this._onPageFailed=function(n){!t._windowed||!t._cache||t._cache.release(n.detail&&n.detail.offset)},e.addEventListener("ln-table:page-failed",this._onPageFailed),this._onRequestRevalidate=function(){!t._windowed||!t._cache||t._cache.revalidate()},e.addEventListener("ln-table:request-revalidate",this._onRequestRevalidate),this._onSort=function(n){n.preventDefault(),t.currentSort=n.detail.direction==="none"?null:{field:n.detail.field,direction:n.detail.direction},t._requestData()},e.addEventListener("ln-sort:change",this._onSort),this._windowed&&this._selectable&&this._selectAllCheckbox&&this._selectAllCheckbox.classList.add("hidden"),this._onRowClick=function(n){if(n.target.closest("[data-ln-table-row-select]")||n.target.closest("[data-ln-table-row-action]")||n.target.closest("a")||n.target.closest("button")||n.ctrlKey||n.metaKey||n.button===1)return;const r=n.target.closest("[data-ln-table-row]");if(!r)return;const c=r.getAttribute("data-ln-table-row-id"),b=r._lnRecord||{};T(e,"ln-table:row-click",{table:t.name,id:c,record:b})},this.tbody&&this.tbody.addEventListener("click",this._onRowClick),this._onRowAction=function(n){const r=n.target.closest("[data-ln-table-row-action]");if(!r)return;n.stopPropagation();const c=r.closest("[data-ln-table-row]");if(!c)return;const b=r.getAttribute("data-ln-table-row-action"),u=c.getAttribute("data-ln-table-row-id"),s=c._lnRecord||{};T(e,"ln-table:row-action",{table:t.name,id:u,action:b,record:s})},this.tbody&&this.tbody.addEventListener("click",this._onRowAction),this._focusedRowIndex=-1,this._onKeydown=function(n){if(!e.contains(document.activeElement)&&document.activeElement!==document.body||document.activeElement&&(document.activeElement.tagName==="INPUT"||document.activeElement.tagName==="TEXTAREA"))return;const r=t.tbody?Array.from(t.tbody.querySelectorAll("[data-ln-table-row]")):[];if(r.length)switch(n.key){case"ArrowDown":n.preventDefault(),t._focusedRowIndex=Math.min(t._focusedRowIndex+1,r.length-1),t._focusRow(r);break;case"ArrowUp":n.preventDefault(),t._focusedRowIndex=Math.max(t._focusedRowIndex-1,0),t._focusRow(r);break;case"Home":n.preventDefault(),t._focusedRowIndex=0,t._focusRow(r);break;case"End":n.preventDefault(),t._focusedRowIndex=r.length-1,t._focusRow(r);break;case"Enter":if(t._focusedRowIndex>=0&&t._focusedRowIndex<r.length){n.preventDefault();const c=r[t._focusedRowIndex];T(e,"ln-table:row-click",{table:t.name,id:c.getAttribute("data-ln-table-row-id"),record:c._lnRecord||{}})}break;case" ":if(t._selectable&&t._focusedRowIndex>=0&&t._focusedRowIndex<r.length){n.preventDefault();const c=r[t._focusedRowIndex].querySelector("[data-ln-table-row-select]");c&&(c.checked=!c.checked,c.dispatchEvent(new Event("change",{bubbles:!0})))}break}},document.addEventListener("keydown",this._onKeydown),this.tbody&&this.tbody.rows.length>0&&this._parseRows(),this._windowed?this._kickWindowInitial():T(e,"ln-table:request-data",{table:this.name,sort:this.currentSort,filters:this.currentFilters,search:this.currentSearch})):(this._emptyTbodyObserver=null,this.tbody&&this.tbody.rows.length>0?this._parseRows():this.tbody&&(this._emptyTbodyObserver=new MutationObserver(function(){t.tbody.rows.length>0&&(t._emptyTbodyObserver.disconnect(),t._emptyTbodyObserver=null,t._parseRows())}),this._emptyTbodyObserver.observe(this.tbody,{childList:!0})),this._onSort=function(n){n.preventDefault();const r=n.detail.direction==="none"?null:n.detail.direction;t._sortCol=r===null?-1:n.detail.column,t._sortDir=r,t._applyFilterAndSort(),t._vStart=-1,t._vEnd=-1,t._render(),T(e,"ln-table:sorted",{column:n.detail.column,direction:n.detail.direction,matched:t._filteredData.length,total:t._data.length})},e.addEventListener("ln-sort:change",this._onSort),this._onSearchChange=function(n){n.preventDefault(),t._onSetSearch(n)},e.addEventListener("ln-search:change",this._onSearchChange)),this}_.prototype._parseRows=function(){const e=this.tbody.rows,i=this.ths;this._data=[],e.length>0&&(this._rowHeight=e[0].offsetHeight||40),this._lockColumnWidths();for(let t=0;t<e.length;t++){const n=e[t],r=[],c=[],b=[];for(let s=0;s<n.cells.length;s++){const d=n.cells[s],w=d.textContent.trim();r[s]=B(d),c[s]=w.toLowerCase(),s<n.cells.length-1&&b.push(w.toLowerCase())}let u=null;if(this.isDataDriven){u={};const s=n.getAttribute("data-ln-table-row-id");s!=null&&(u.id=s);for(let d=0;d<i.length;d++){const w=i[d].getAttribute("data-ln-table-col");if(w){const C=d;if(C<n.cells.length){const L=n.cells[C];u[w]=B(L)}}}}this._data.push({values:r,rawTexts:c,html:n.outerHTML,searchText:b.join(" "),id:this.isDataDriven&&u?u.id:void 0,...u})}this._filteredData=this._data.slice(),this.isDataDriven&&(this._lastTotal=this._data.length,this._lastFiltered=this._data.length,this.totalCount=this._data.length,this.visibleCount=this._data.length,this._updateFooter()),this._render(),T(this.dom,"ln-table:ready",{total:this._data.length})},_.prototype._applyFilterAndSort=function(){if(this.isDataDriven){const e=(this.currentSearch||"").trim().toLowerCase(),i=this.currentFilters||{},t=Object.keys(i).length>0;if(this._filteredData=this._data.filter(function(s){if(e){let d=!1;for(const w in s)if(s.hasOwnProperty(w)&&typeof s[w]=="string"&&w!=="html"&&w!=="searchText"&&s[w].toLowerCase().indexOf(e)!==-1){d=!0;break}if(!d)return!1}if(t)for(const d in i){const w=i[d];if(w&&w.length>0){const C=s[d],L=C!=null?String(C):"";if(w.indexOf(L)===-1)return!1}}return!0}),this.visibleCount=this._filteredData.length,!this.currentSort||!this.currentSort.field||!this.currentSort.direction)return;const n=this.currentSort.field,c=this.currentSort.direction==="desc"?-1:1,b=this._filteredData.map(function(s){return s[n]}),u=U(b);this._filteredData.sort(function(s,d){return j(s[n],d[n],u,p)*c})}else{const e=this._searchTerm,i=this._columnFilters,t=Object.keys(i).length>0,n=this.ths,r={};if(t)for(let d=0;d<n.length;d++){const w=n[d].getAttribute("data-ln-table-filter-col");w&&(r[w]=d)}if(!e&&!t?this._filteredData=this._data.slice():this._filteredData=this._data.filter(function(d){if(e&&d.searchText.indexOf(e)===-1)return!1;if(t)for(const w in i){const C=r[w];if(C!==void 0&&i[w].indexOf(d.rawTexts[C])===-1)return!1}return!0}),this._sortCol<0||!this._sortDir)return;const c=this._sortCol,b=this._sortDir==="desc"?-1:1,u=this._filteredData.map(function(d){return d.values[c]}),s=U(u);this._filteredData.sort(function(d,w){return j(d.values[c],w.values[c],s,p)*b})}},_.prototype._lockColumnWidths=function(){if(!this.table||!this.thead||this._colgroup)return;const e=document.createElement("colgroup");this.ths.forEach(function(i){const t=document.createElement("col");t.style.width=i.offsetWidth+"px",e.appendChild(t)}),this.table.insertBefore(e,this.table.firstChild),this.table.style.tableLayout="fixed",this._colgroup=e},_.prototype._render=function(){if(this.tbody)if(this.isDataDriven){if(this._windowed){this._renderWindowed();return}const e=this._lastTotal,i=this.visibleCount;if(e===0){this._disableVirtualScroll(),this._showEmptyState();return}if(this._filteredData.length===0||i===0){this._disableVirtualScroll(),this._showEmptyState();return}this._filteredData.length>200?(this._enableVirtualScroll(),this._renderVirtual()):(this._disableVirtualScroll(),this._renderAll())}else{const e=this._filteredData.length;e===0&&(this._searchTerm||Object.keys(this._columnFilters).length>0)?(this._disableVirtualScroll(),this._showEmptyState()):e>200?(this._enableVirtualScroll(),this._renderVirtual()):(this._disableVirtualScroll(),this._renderAll())}},_.prototype._renderAll=function(){if(this.isDataDriven){const e=this._filteredData,i=document.createDocumentFragment();for(let n=0;n<e.length;n++){const r=this._buildRow(e[n]);if(!r)break;i.appendChild(r)}const t=E(this);this.tbody.textContent="",this.tbody.appendChild(i),D(t),this._selectable&&this._updateSelectAll()}else{const e=[],i=this._filteredData;for(let n=0;n<i.length;n++)e.push(i[n].html);const t=E(this);this.tbody.innerHTML=e.join(""),D(t),this._selectable&&this._restoreSelection()}},_.prototype._enableVirtualScroll=function(){if(this._virtual)return;this._virtual=!0,this._vStart=-1,this._vEnd=-1;const e=this;if(!this._rowHeight)if(this._windowed){let t=null;const n=this._cache.peek();n?t=this._buildRow(n):t=this._buildPlaceholderRow(),t&&(this.tbody.textContent="",this.tbody.appendChild(t),this._rowHeight=t.offsetHeight||40,this.tbody.textContent="")}else if(this.isDataDriven){if(this._data.length>0){const t=this._buildRow(this._data[0]);t&&(this.tbody.textContent="",this.tbody.appendChild(t),this._rowHeight=t.offsetHeight||40,this.tbody.textContent="")}}else{const t=this.tbody?this.tbody.rows:[];t.length>0&&(this._rowHeight=t[0].offsetHeight||40)}this.isDataDriven?this._scrollContainer=S(this.dom):this._scrollContainer=null;const i=this._scrollContainer||window;this._scrollHandler=function(){e._rafId||(e._rafId=requestAnimationFrame(function(){e._rafId=null,e._windowed?e._renderWindowed():e._renderVirtual()}))},i.addEventListener("scroll",this._scrollHandler,{passive:!0}),window.addEventListener("resize",this._scrollHandler,{passive:!0})},_.prototype._disableVirtualScroll=function(){this._virtual&&(this._virtual=!1,this._scrollHandler&&((this._scrollContainer||window).removeEventListener("scroll",this._scrollHandler),window.removeEventListener("resize",this._scrollHandler),this._scrollHandler=null),this._scrollContainer=null,this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=null),this._vStart=-1,this._vEnd=-1)},_.prototype._renderVirtual=function(){const e=this._filteredData,i=e.length,t=this._rowHeight;if(!t||!i)return;const n=this.thead?this.thead.offsetHeight:0,r=this._scrollContainer;let c,b;if(r){const L=this.table.getBoundingClientRect(),x=r.getBoundingClientRect(),m=L.top-x.top+r.scrollTop+n;c=r.scrollTop-m,b=r.clientHeight}else{const m=this.table.getBoundingClientRect().top+window.scrollY+n;c=window.scrollY-m,b=window.innerHeight}let u=Math.max(0,Math.floor(c/t)-15);u=Math.min(u,i);const s=Math.min(u+Math.ceil(b/t)+30,i);if(u===this._vStart&&s===this._vEnd)return;this._vStart=u,this._vEnd=s;const d=this.ths.length||1,w=u*t,C=(i-s)*t;if(this.isDataDriven){const L=document.createDocumentFragment();if(w>0){const m=document.createElement("tr");m.className="ln-table__spacer",m.setAttribute("aria-hidden","true");const k=document.createElement("td");k.setAttribute("colspan",d),k.style.height=w+"px",m.appendChild(k),L.appendChild(m)}for(let m=u;m<s;m++){const k=this._buildRow(e[m]);k&&L.appendChild(k)}if(C>0){const m=document.createElement("tr");m.className="ln-table__spacer",m.setAttribute("aria-hidden","true");const k=document.createElement("td");k.setAttribute("colspan",d),k.style.height=C+"px",m.appendChild(k),L.appendChild(m)}const x=E(this);this.tbody.textContent="",this.tbody.appendChild(L),D(x),this._selectable&&this._updateSelectAll()}else{let L="";w>0&&(L+='<tr class="ln-table__spacer" aria-hidden="true"><td colspan="'+d+'" style="height:'+w+'px;padding:0;border:none"></td></tr>');for(let m=u;m<s;m++)L+=e[m].html;C>0&&(L+='<tr class="ln-table__spacer" aria-hidden="true"><td colspan="'+d+'" style="height:'+C+'px;padding:0;border:none"></td></tr>');const x=E(this);this.tbody.innerHTML=L,D(x),this._selectable&&this._restoreSelection()}},_.prototype._buildPlaceholderRow=function(){const e=document.createElement("tr");e.className="ln-table__placeholder",e.setAttribute("aria-hidden","true");const i=document.createElement("td");return i.setAttribute("colspan",this.ths.length||1),i.style.height=this._rowHeight+"px",e.appendChild(i),e},_.prototype._renderWindowed=function(){if(this.isLoaded&&this._cache.logicalTotal===0){this._disableVirtualScroll(),this._showEmptyState();return}this._virtual||this._enableVirtualScroll();const e=this._rowHeight;if(!e)return;const i=this._cache.logicalTotal,t=this.thead?this.thead.offsetHeight:0,n=this._scrollContainer;let r,c;if(n){const x=this.table.getBoundingClientRect(),m=n.getBoundingClientRect(),k=x.top-m.top+n.scrollTop+t;r=n.scrollTop-k,c=n.clientHeight}else{const k=this.table.getBoundingClientRect().top+window.scrollY+t;r=window.scrollY-k,c=window.innerHeight}let b=Math.max(0,Math.floor(r/e)-15);b=Math.min(b,i);const u=Math.min(b+Math.ceil(c/e)+30,i),s=this.ths.length||1,d=b*e,w=(i-u)*e,C=document.createDocumentFragment();if(d>0){const x=document.createElement("tr");x.className="ln-table__spacer",x.setAttribute("aria-hidden","true");const m=document.createElement("td");m.setAttribute("colspan",s),m.style.height=d+"px",x.appendChild(m),C.appendChild(x)}for(let x=b;x<u;x++)if(this._cache.has(x)){const m=this._buildRow(this._cache.get(x));m&&C.appendChild(m)}else C.appendChild(this._buildPlaceholderRow());if(w>0){const x=document.createElement("tr");x.className="ln-table__spacer",x.setAttribute("aria-hidden","true");const m=document.createElement("td");m.setAttribute("colspan",s),m.style.height=w+"px",x.appendChild(m),C.appendChild(x)}const L=E(this);this.tbody.textContent="",this.tbody.appendChild(C),D(L),this._vStart=b,this._vEnd=u,this._cache.ensure(b,u)},_.prototype._showEmptyState=function(){const e=this.ths.length||1;this.tbody.textContent="";let i=null;if(this.isDataDriven){const t=this._lastTotal!=null?this._lastTotal:this._data.length,n=this.visibleCount,r=(this.currentSearch||Object.keys(this.currentFilters).length>0)&&(n<t||n===0),c=r?this.name+"-empty-filtered":this.name+"-empty";if(i=z(this.dom,c,"ln-table"),!i){const b=this.dom.querySelector("template[data-ln-table-empty]");if(b){const u=r?"search":"initial",s=b.content.querySelector('[data-ln-table-empty-when="'+u+'"]')||b.content.firstElementChild;s&&(i=document.importNode(s,!0))}}if(i)if(i.tagName==="TR")this.tbody.appendChild(i);else{const b=document.createElement("td");b.setAttribute("colspan",String(e)),b.appendChild(i);const u=document.createElement("tr");u.className="ln-table__empty",u.appendChild(b),this.tbody.appendChild(u)}}else{const t=this.dom.querySelector("template["+a+"]"),n=document.createElement("td");n.setAttribute("colspan",String(e)),t&&n.appendChild(document.importNode(t.content,!0));const r=document.createElement("tr");r.className="ln-table__empty",r.appendChild(n),this.tbody.appendChild(r)}T(this.dom,"ln-table:empty",{term:this.isDataDriven?this.currentSearch||"":this._searchTerm,total:this.isDataDriven?this._lastTotal!=null?this._lastTotal:this._data.length:this._data.length})},_.prototype._fillRow=function(e,i){F(e,i);const t=e.querySelectorAll("[data-ln-table-cell-attr]");for(let n=0;n<t.length;n++){const r=t[n],c=r.getAttribute("data-ln-table-cell-attr").split(",");for(let b=0;b<c.length;b++){const u=c[b].trim().split(":");if(u.length!==2)continue;const s=u[0].trim(),d=u[1].trim();i[s]!=null&&r.setAttribute(d,i[s])}}},_.prototype._buildRow=function(e){const i=z(this.dom,this.name+"-row","ln-table");if(!i)return null;const t=i.querySelector("[data-ln-table-row]")||i.firstElementChild;if(!t)return null;if(this._fillRow(t,e),t._lnRecord=e,e.id!=null&&t.setAttribute("data-ln-table-row-id",e.id),this._selectable&&e.id!=null&&this.selectedIds.has(String(e.id))){t.classList.add("ln-row-selected");const n=t.querySelector("[data-ln-table-row-select]");n&&(n.checked=!0)}return t},_.prototype._requestData=function(){if(this._windowed){this.dom.classList.add("ln-table--loading"),this._cache.invalidate({sort:this.currentSort,filters:this.currentFilters,search:this.currentSearch});return}Z(this,"ln-table:request-data","table")},_.prototype._enterWindowedMode=function(){const e=this,i=this.dom,t=parseInt(i.getAttribute("data-ln-table-window"),10),n=parseInt(i.getAttribute("data-ln-table-window-page"),10),r=parseInt(i.getAttribute("data-ln-table-window-threshold"),10);this._onCacheChange=function(){!e._windowed||!e._cache||(e.totalCount=e._cache.grandTotal,e.visibleCount=e._cache.logicalTotal,e._lastTotal=e._cache.grandTotal,e.isLoaded=!0,e._vStart=-1,e._vEnd=-1,e._render(),e._updateFooter(),T(i,"ln-table:rendered",{table:e.name,total:e.totalCount,visible:e.visibleCount}))},this._renderBatch=ot(this._onCacheChange),this._cache=rt({windowSize:t>0?t:1e3,pageSize:n>0?n:200,threshold:r>=0?r:25,fetchDebounce:120,requestPage:function(c,b,u){T(i,"ln-table:request-data",{table:e.name,sort:c.sort,filters:c.filters,search:c.search,offset:b,limit:u,queryGen:e._cache.queryGen})},onChange:this._renderBatch}),this._windowed=!0,this._selectable&&this._selectAllCheckbox&&this._selectAllCheckbox.classList.add("hidden")},_.prototype._kickWindowInitial=function(){if(this._data.length>0){let e=parseInt(this.dom.getAttribute("data-ln-table-count"),10);if(isNaN(e)&&this._totalSpan){const t=this._totalSpan.textContent.replace(/[^\d]/g,"");t&&(e=parseInt(t,10))}const i=e>0?e:this._data.length;this._cache.ingest({data:this._data,offset:0,total:i,filtered:i})}else this.dom.classList.add("ln-table--loading"),this._cache.requestInitial({sort:this.currentSort,filters:this.currentFilters,search:this.currentSearch})},_.prototype._exitWindowedMode=function(){this._disableVirtualScroll(),this._cache&&this._cache.destroy(),this._cache=null,this._windowed=!1,this._renderBatch=null,this._onCacheChange=null,this._selectAllCheckbox&&this._selectAllCheckbox.classList.remove("hidden"),this._rowHeight=0,this._vStart=-1,this._vEnd=-1,this._data=[],this._filteredData=[],this.dom.classList.add("ln-table--loading"),this._requestData()},_.prototype._updateSelectAll=function(){if(!this._selectAllCheckbox||!this.tbody)return;const e=this.tbody.querySelectorAll("[data-ln-table-row]");let i=e.length>0;for(let t=0;t<e.length;t++){const n=e[t].getAttribute("data-ln-table-row-id");if(n!=null&&!this.selectedIds.has(n)){i=!1;break}}this._selectAllCheckbox.checked=i},_.prototype._restoreSelection=function(){if(!this.tbody)return;const e=this.tbody.querySelectorAll("[data-ln-table-row]");for(let i=0;i<e.length;i++){const t=e[i].getAttribute("data-ln-table-row-id"),n=t!=null&&this.selectedIds.has(t);e[i].classList.toggle("ln-row-selected",n);const r=e[i].querySelector("[data-ln-table-row-select]");r&&(r.checked=n)}this._updateSelectAll()},Object.defineProperty(_.prototype,"selectedCount",{get:function(){return this.selectedIds.size},set:function(){}}),_.prototype._enableSelection=function(){if(this._selectableActive)return;this._selectableActive=!0;const e=this;if(this._onSelectionChange=function(i){const t=i.target.closest("[data-ln-table-row-select]");if(!t)return;const n=t.closest("[data-ln-table-row]");if(!n)return;const r=n.getAttribute("data-ln-table-row-id");r!=null&&(t.checked?(e.selectedIds.add(r),n.classList.add("ln-row-selected")):(e.selectedIds.delete(r),n.classList.remove("ln-row-selected")),e.selectedCount=e.selectedIds.size,e._updateSelectAll(),e._updateFooter(),T(e.dom,"ln-table:select",{table:e.name,selectedIds:e.selectedIds,count:e.selectedCount}))},this.tbody&&this.tbody.addEventListener("change",this._onSelectionChange),this._selectAllCheckbox=this.dom.querySelector('[data-ln-table-col-select] input[type="checkbox"]')||this.dom.querySelector("[data-ln-table-col-select]"),this._selectAllCheckbox&&this._selectAllCheckbox.tagName==="TH"){const i=document.createElement("input");i.type="checkbox";const t=e.dom.querySelector('[data-ln-table-dict="select-all"]'),n=e.dom.getAttribute("data-ln-table-select-all-label")||(t?t.textContent.trim():null)||"Select all";i.setAttribute("aria-label",n),this._selectAllCheckbox.appendChild(i),this._selectAllCheckbox=i}if(this._selectAllCheckbox&&(this._onSelectAll=function(){const i=e._selectAllCheckbox.checked,t=e.tbody?e.tbody.querySelectorAll("[data-ln-table-row]"):[];for(let n=0;n<t.length;n++){const r=t[n].getAttribute("data-ln-table-row-id"),c=t[n].querySelector("[data-ln-table-row-select]");r!=null&&(i?(e.selectedIds.add(r),t[n].classList.add("ln-row-selected")):(e.selectedIds.delete(r),t[n].classList.remove("ln-row-selected")),c&&(c.checked=i))}e.selectedCount=e.selectedIds.size,T(e.dom,"ln-table:select-all",{table:e.name,selected:i}),T(e.dom,"ln-table:select",{table:e.name,selectedIds:e.selectedIds,count:e.selectedCount}),e._updateFooter()},this._selectAllCheckbox.addEventListener("change",this._onSelectAll)),this.tbody){const i=this.tbody.querySelectorAll("[data-ln-table-row]");for(let t=0;t<i.length;t++){const n=i[t].querySelector("[data-ln-table-row-select]"),r=i[t].getAttribute("data-ln-table-row-id");n&&n.checked&&r!=null&&(this.selectedIds.add(r),i[t].classList.add("ln-row-selected"))}this.selectedCount=this.selectedIds.size,this.selectedCount>0&&this._updateSelectAll()}},_.prototype._disableSelection=function(){if(!this._selectableActive)return;this._selectableActive=!1,this.tbody&&this._onSelectionChange&&this.tbody.removeEventListener("change",this._onSelectionChange),this._selectAllCheckbox&&this._onSelectAll&&this._selectAllCheckbox.removeEventListener("change",this._onSelectAll);const e=this.dom.querySelector("[data-ln-table-col-select]");if(e){const i=e.querySelector('input[type="checkbox"]');i&&i.remove()}if(this._selectAllCheckbox=null,this.selectedIds.clear(),this.selectedCount=0,this.tbody){const i=this.tbody.querySelectorAll("[data-ln-table-row]");for(let t=0;t<i.length;t++){i[t].classList.remove("ln-row-selected");const n=i[t].querySelector("[data-ln-table-row-select]");n&&(n.checked=!1)}}this._updateFooter()},_.prototype._updateFooter=function(){let e=0,i=0;this.isDataDriven?(e=this._lastTotal!=null?this._lastTotal:this._data.length,i=this.visibleCount):(e=this._data.length,i=this._filteredData.length);const t=i<e;if(this._totalSpan&&(this._totalSpan.textContent=y(e,this.dom)),this._filteredSpan&&(this._filteredSpan.textContent=t?y(i,this.dom):""),this._filteredWrap&&this._filteredWrap.classList.toggle("hidden",!t),this._selectedSpan){const n=this.selectedIds?this.selectedIds.size:0;this._selectedSpan.textContent=n>0?y(n,this.dom):"",this._selectedWrap&&this._selectedWrap.classList.toggle("hidden",n===0)}},_.prototype._focusRow=function(e){for(let i=0;i<e.length;i++)e[i].classList.remove("ln-row-focused"),e[i].removeAttribute("tabindex");if(this._focusedRowIndex>=0&&this._focusedRowIndex<e.length){const i=e[this._focusedRowIndex];i.classList.add("ln-row-focused"),i.setAttribute("tabindex","0"),i.focus(),i.scrollIntoView({block:"nearest"})}},_.prototype.destroy=function(){this.dom[o]&&(this._disableVirtualScroll(),this.dom.removeEventListener("ln-table:set-search",this._onSetSearch),this.dom.removeEventListener("ln-table:set-filter",this._onSetFilter),this.dom.removeEventListener("ln-table:request-clear-filters",this._onRequestClearFilters),this.isDataDriven?(this.dom.removeEventListener("ln-table:set-data",this._onSetData),this.dom.removeEventListener("ln-table:set-loading",this._onSetLoading),this.dom.removeEventListener("ln-table:page-failed",this._onPageFailed),this.dom.removeEventListener("ln-table:request-revalidate",this._onRequestRevalidate),this.dom.removeEventListener("ln-sort:change",this._onSort),document.removeEventListener("keydown",this._onKeydown),this.tbody&&(this.tbody.removeEventListener("click",this._onRowClick),this.tbody.removeEventListener("click",this._onRowAction)),this._cache&&this._cache.destroy()):(this._emptyTbodyObserver&&(this._emptyTbodyObserver.disconnect(),this._emptyTbodyObserver=null),this.dom.removeEventListener("ln-sort:change",this._onSort),this.dom.removeEventListener("ln-search:change",this._onSearchChange)),this._onSelectionChange&&this.tbody&&this.tbody.removeEventListener("change",this._onSelectionChange),this._selectAllCheckbox&&this._onSelectAll&&this._selectAllCheckbox.removeEventListener("change",this._onSelectAll),this._colgroup&&(this._colgroup.remove(),this._colgroup=null),this.table&&(this.table.style.tableLayout=""),this._data=[],this._filteredData=[],delete this.dom[o])},nt(l,o,_,"ln-table",{extraAttributes:["data-ln-table-window","data-ln-table-window-page","data-ln-table-window-threshold","data-ln-table-count"],onAttributeChange:function(e,i){const t=e[o];if(!(!t||!t.isDataDriven)){if(i==="data-ln-table-window"){const n=e.hasAttribute("data-ln-table-window");if(n&&!t._windowed)t._enterWindowedMode(),t._kickWindowInitial();else if(!n&&t._windowed)t._exitWindowedMode();else if(n&&t._windowed){const r=parseInt(e.getAttribute("data-ln-table-window"),10);r>0&&t._cache.configure({windowSize:r})}return}if(!(!t._windowed||!t._cache)){if(i==="data-ln-table-window-page"){const n=parseInt(e.getAttribute("data-ln-table-window-page"),10);n>0&&t._cache.configure({pageSize:n})}else if(i==="data-ln-table-window-threshold"){const n=parseInt(e.getAttribute("data-ln-table-window-threshold"),10);n>=0&&t._cache.configure({threshold:n})}else if(i==="data-ln-table-count"){const n=parseInt(e.getAttribute("data-ln-table-count"),10);n>=0&&t._cache.setGrandTotal(n)}}}}})})()})();
|