PageSourceSearch

https://sacra.com/static/parcel/company_grid.js

js sacra.com collected 2026-10-02 04:18:01 UTC 58,569 bytes, 38 lines download raw bytes

1parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"jESR":[function(require,module,exports) {
2"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Icons=exports.CheckIcon=exports.ChevronDownIcon=exports.SearchIcon=exports.ExportIcon=exports.ColumnsIcon=exports.FilterIcon=exports.SortIcon=void 0;const o='\n    <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 text-black" viewBox="0 0 24 24">\n        <path fill="currentColor" d="M12 3l-4 4h8l-4-4zM12 21l4-4h-8l4 4z"/>\n    </svg>\n';exports.SortIcon=o;const n='\n    <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 text-black" viewBox="0 0 24 24">\n        <path fill="currentColor" d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>\n    </svg>\n';exports.FilterIcon=n;const t='\n    <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 text-black" viewBox="0 0 640 512">\n        <path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"/>\n    </svg>\n';exports.ColumnsIcon=t;const s='\n    <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 text-black" viewBox="0 0 24 24">\n        <path fill="currentColor" d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/>\n    </svg>\n';exports.ExportIcon=s;const c='\n    <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">\n        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />\n    </svg>\n';exports.SearchIcon=c;const e='\n    <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 text-black flex-shrink-0" viewBox="0 0 20 20" fill="currentColor">\n        <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />\n    </svg>\n';exports.ChevronDownIcon=e;const r='\n    <svg xmlns="http://www.w3.org/2000/svg" class="w-3 h-3 text-white" viewBox="0 0 20 20" fill="currentColor">\n        <path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z"/>\n    </svg>\n';exports.CheckIcon=r;const l={sort:o,filter:n,columns:t,export:s,search:c,chevronDown:e,check:r};exports.Icons=l;
3},{}],"iFWz":[function(require,module,exports) {
4"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ToolbarButtonFactory=void 0;var t=require("../icons");function e(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class n{static createButton(e){let{icon:n,text:o,onClick:s,style:a="secondary",className:r="",disabled:c=!1,isDropdown:i=!1}=e;const d=document.createElement("button");return d.className="\n            ".concat(this.baseButtonConfig.className,"\n            ").concat(this.buttonStyles[a],"\n            ").concat(this.baseButtonConfig.hoverClass,"\n            ").concat(this.baseButtonConfig.focusClass,"\n            ").concat(r,"\n        ").trim(),d.innerHTML="\n            ".concat(n?'\n                <sp
4an class="w-4 h-4 flex-shrink-0">\n                    '.concat(n,"\n                </span>\n            "):"","\n            ").concat(o?'<span class="whitespace-nowrap">'.concat(o,"</span>"):"","\n            ").concat(i?'<span class="flex-shrink-0">'.concat(t.Icons.chevronDown,"</span>"):"","\n        "),s&&d.addEventListener("click",s),d.disabled=c,d}static createDropdownButton(t){let{icon:e,text:n,dropdownContent:o,style:s="secondary",width:a="w-72",onDropdownOpen:r,onDropdownClose:c}=t;const i=document.createElement("div");i.className="relative flex-shrink-0";const d=document.createElement("div");d.className="".concat(this.dropdownClass," ").concat(a),"function"==typeof o?d.appendChild(o()):d.innerHTML=o;const l=this.createButton({icon:e,text:n,style:s,className:"dropdown-trigger whitespace-nowrap",isDropdown:!0,onClick:t=>{t.stopPropagation();const e=d.classList.contains("hidden");if(document.querySelectorAll(".toolbar-dropdown").forEach(t=>{t!==d&&t.classList.add("hidden")}),e){const t=l.getBoundingClientRect(),e=window.innerWidth;d.style.visibility="hidden",d.classList.remove("hidden");const n=d.offsetWidth;d.classList.add("hidden"),d.style.visibility="",d.classList.remove("left-0","right-0"),t.left+n>e?d.classList.add("right-0"):d.classList.add("left-0"),d.classList.remove("hidden"),r&&r(d)}else d.classList.add("hidden"),c&&c(d)}});return document.addEventListener("click",t=>{if(d.contains(t.target)||l.contains(t.target))return;const e=t.target.closest('input[type="checkbox"]'),n=t.target.closest("label");(null==e?void 0:e.closest(".toolbar-dropdown"))!==d&&(null==n?void 0:n.closest(".toolbar-dropdown"))!==d&&(i.contains(t.target)||(!d.classList.contains("hidden")&&c&&c(d),d.classList.add("hidden")))}),i.appendChild(l),i.appendChild(d),i}}exports.ToolbarButtonFactory=n,e(n,"baseButtonConfig",{className:"flex items-center whitespace-nowrap gap-2 px-3 py-2 rounded-md text-sm transition-colors flex-shrink-0",hoverClass:"hover:bg-gray-100",focusClass:"focus:outline-none focus:ring-2 focus:ring-yellow-500/20"}),e(n,"buttonStyles",{primary:"bg-yellow-800 text-black hover:bg-yellow-700 shadow-sm",secondary:"bg-white border border-gray-200 text-gray-700 hover:border-gray-300 hover:bg-gray-100 shadow-sm",ghost:"bg-transparent text-gray-600 hover:bg-gray-100"}),e(n,"dropdownClass","\n        toolbar-dropdown\n        absolute left-0 mt-1\n        bg-white border border-gray-200 rounded-md shadow-lg z-50 hidden\n        text-sm text-gray-700\n    "),e(n,"dropdownItemClass","\n        px-3 py-2\n        hover:bg-gray-100\n        rounded-md cursor-pointer \n        transition-colors\n        text-sm text-gray-700\n        flex items-center\n    ");
5},{"../icons":"jESR"}],"H3Ib":[function(require,module,exports) {
6"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FilterButton=void 0;var e=require("../ToolbarButtonFactory"),t=require("../../icons");class n{constructor(e){let{gridApi:t}=e;this.gridInterface=t,this.element=null}updateButtonState(){if(!this.element)return;const e=this.gridInterface.getActiveFilters().length>0,t=this.element.querySelector("button");t&&(e?(t.classList.add("bg-blue-100"),t.classList.remove("bg-white"),t.classList.add("hover:border-gray-400"),t.classList.remove("hover:bg-gray-100")):(t.classList.remove("bg-blue-100"),t.classList.add("bg-white"),t.classList.remove("hover:border-gray-400"),t.classList.add("hover:bg-gray-100")))}createColumnsList(){const t=document.createElement("div");t.className="p-2",t.style.width="250px";const n=document.createElement("div");n.className="px-2 py-2";const r=document.createElement("input");r.type="text",r.placeholder="Search columns...",r.className="w-full px-2 py-1 text-sm border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:border-yellow-500",n.appendChild(r),t.appendChild(n);const s=document.createElement("div");s.className="max-h-[400px] overflow-y-auto",this.gridInterface.getVisibleColumns().forEach(t=>{const n=document.createElement("div");n.className="".concat(e.ToolbarButtonFactory.dropdownItemClass," column-item"),n.innerHTML='\n                <sp
6an class="flex-1">'.concat(t.headerName,"</span>\n            "),n.addEventListener("click",()=>{if(this.gridInterface.getGridInstance().api.getColumn(t.field)){const e=n.closest(".toolbar-dropdown");e&&e.classList.add("hidden"),this.gridInterface.getGridInstance().api.ensureColumnVisible(t.field),setTimeout(()=>{this.gridInterface.getGridInstance().api.showColumnFilter(t.field)},100)}}),s.appendChild(n)}),r.addEventListener("input",e=>{const t=e.target.value.toLowerCase();s.querySelectorAll(".column-item").forEach(e=>{const n=e.textContent.toLowerCase();e.style.display=n.includes(t)?"flex":"none"})}),t.appendChild(s);const o=document.createElement("div");o.className="border-t border-gray-200 pt-3 px-2 bg-white absolute bottom-0 left-0 right-0",o.style.position="sticky",o.style.bottom="0",o.style.marginTop="auto";const a=document.createElement("button");return a.className="\n            w-full px-3 py-2 text-sm font-medium\n            bg-white text-gray-700\n            border border-gray-300\n            rounded-md\n            hover:bg-gray-100\n            transition-colors\n            shadow-sm\n            select-none\n            whitespace-nowrap\n        ",a.innerHTML="<span>Reset All Filters</span>",a.addEventListener("click",()=>{this.gridInterface.clearFilters();const e=this.element.querySelector(".toolbar-dropdown");e&&e.classList.add("hidden"),this.updateButtonState()}),o.appendChild(a),t.appendChild(o),t}render(){return this.element=e.ToolbarButtonFactory.createDropdownButton({icon:t.Icons.filter,text:"Filter",dropdownContent:()=>this.createColumnsList(),width:"w-[250px]"}),this.updateButtonState(),this.gridInterface.getGridInstance().api.addEventListener("filterChanged",()=>{this.updateButtonState()}),this.element}}exports.FilterButton=n;
7},{"../ToolbarButtonFactory":"iFWz","../../icons":"jESR"}],"LkVv":[function(require,module,exports) {
8"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SortButton=void 0;var t=require("../ToolbarButtonFactory"),e=require("../../icons");class n{constructor(t){let{gridApi:e}=t;this.gridApi=e,this.element=null,this.priorityColumns=[{name:"Last Updated",field:"last_publication_date"}],this.currentSort={column:this.priorityColumns[0],direction:{label:"Newest",value:"desc"}}}syncButtonStyleWithState(){if(!this.element)return;const t=this.gridApi.getGridInstance().api.getColumnState(),e=t&&t.some(t=>t.sort),n=this.element.querySelector("button");n&&(e?(n.classList.add("bg-blue-100"),n.classList.remove("bg-white"),n.classList.add("hover:border-gray-400"),n.classList.remove("hover:bg-gray-100")):(n.classList.remove("bg-blue-100"),n.classList.add("bg-white"),n.classList.remove("hover:border-gray-400"),n.classList.add("hover:bg-gray-100")));const o=this.gridApi.getSortModel();if(o&&0!==o.length){const t=o[0],e=this.getAvailableColumns().find(e=>e.field===t.field);if(e){const n=this.getSortDirections(e),o=n.find(e=>e.value===t.direction)||n[0];this.currentSort={column:e,direction:o}}}else this.currentSort={column:this.priorityColumns[0],direction:{label:"Newest",value:"desc"}};const s=this.element.querySelector('[data-type="column-select"]'),i=this.element.querySelector('[data-type="direction-select"]');s&&(s.querySelector("span").textContent=this.currentSort.column.name),i&&(i.querySelector("span").textContent=this.currentSort.direction.label,i.disabled=!1,i.classList.remove("bg-gray-50","text-gray-400"))}getSortDirections(t){const e=this.gridApi.getGridInstance().api.getColumn(t.field).getColDef(),n="numericColumn"===e.type||"agNumberColumnFilter"===e.filter,o="dateColumn"===e.type||"agDateColumnFilter"===e.filter||["last_publication_date","updated_at"].includes(t.field);return n?[{label:"High to Low",value:"desc"},{label:"Low to High",value:"asc"}]:o?[{label:"Newest",value:"desc"},{label:"Oldest",value:"asc"}]:[{label:"A to Z",value:"asc"},{label:"Z to A",value:"desc"}]}getAvailableColumns(){let t=[...this.priorityColumns];const e=this.gridApi.getAllColumns().filter(t=>{if(["last_publication_date","id","description"].includes(t.field))return!1;return"agSetColumnFilter"!==this.gridApi.getGridInstance().api.getColumn(t.field).getColDef().filter}).map(t=>({name:t.headerName,field:t.field}));return t.concat(e)}createSortContent(){const e=document.createElement("div");e.className="p-3 space-y-3";const n=document.createElement("div");n.className="flex items-center gap-3";const o=document.createElement("div");o.className="relative",o.style.width="200px";const s=t.ToolbarButtonFactory.createButton({text:"Select Column",style:"secondary",className:"w-full justify-between text-sm",isDropdown:!0});s.dataset.type="column-select",s.classList.add("hover:bg-gray-100","focus:ring-yellow-500","focus:border-yellow-500");const i=document.createElement("div");i.className="".concat(t.ToolbarButtonFactory.dropdownClass," w-[200px] hidden");const l=this.getAvailableColumns();i.innerHTML='\n            <div class="py-1">\n                '.concat(l.map(e=>'\n                    <div class="'.concat(t.ToolbarButtonFactory.dropdownItemClass,' column-option whitespace-nowrap overflow-hidden text-ellipsis text-sm" \n                         data-field="').concat(e.field,'">\n                        ').concat(e.name,"\n                    </div>\n                ")).join(""),"\n            </div>\n        "),o.appendChild(s),o.appendChild(i);const a=document.createElement("div");a.className="relative",a.style.width="140px";const r=t.ToolbarButtonFactory.createButton({text:"Select Order",style:"secondary",className:"w-full justify-between text-sm",isDropdown:!0});r.dataset.type="direction-select",r.disabled=!0,r.classList.add("hover:bg-gray-100","focus:ring-yellow-500","focus:border-yellow-500","disabled:bg-gray-50","disabled:text-gray-400","disabled:cursor-not-allowed");const d=document.createElement("div");d.className="".concat(t.ToolbarButtonFactory.dropdownClass," w-[140px] hidden"),a.appendChild(r),a.appendChild(d),n.appendChild(o),n.appendChild(a),e.appendChild(n),this.setupSortListeners(e);const c=document.createElement("div");c.className="border-t border-gray-200 mt-3 pt-3 flex justify-between items-center";const u=document.createElement("button");return u.className="\n            px-3 py-2 text-sm font-medium\n            bg-white text-gray-700\n            border border-gray-300\n            rounded-md\n            hover:bg-gray-100\n            transition-colors\n            shadow-sm\n            select-none\n            whitespace-nowrap\n        ",u.innerHTML="<span>Reset</span>",u.addEventListener("click",()=>{const t=u.closest(".toolbar-dropdown");t&&t.classList.add("hidden"),this.gridApi.clearSort(),this.syncButtonStyleWithState()}),c.appendChild(u),e.appendChild(c),e}setupSortListeners(e){const n=e.querySelector('[data-type="column-select"]'),o=null==n?void 0:n.nextElementSibling,s=e.querySelector('[data-type="direction-select"]'),i=null==s?void 0:s.nextElementSibling;n&&o&&this.setupDropdownToggle(n,o),s&&i&&this.setupDropdownToggle(s,i),o&&o.querySelectorAll(".column-option").forEach(e
8=>{e.addEventListener("click",()=>{const l=e.dataset.field;n.querySelector("span").textContent=e.textContent,o.classList.add("hidden"),s.disabled=!1,s.classList.remove("bg-gray-50","text-gray-400"),s.querySelector("span").textContent="Select Option";const a=this.getSortDirections({field:l});i.innerHTML='\n                        <div class="py-1">\n                            '.concat(a.map(e=>'\n                                <div class="'.concat(t.ToolbarButtonFactory.dropdownItemClass,' direction-option text-sm whitespace-nowrap" \n                                     data-field="').concat(l,'"\n                                     data-direction="').concat(e.value,'">\n                                    ').concat(e.label,"\n                                </div>\n                            ")).join(""),"\n                        </div>\n                    "),i.querySelectorAll(".direction-option").forEach(t=>{t.addEventListener("click",()=>{const n=t.dataset.direction;this.getAvailableColumns().find(t=>t.field===l);this.currentSort={column:{field:l,name:e.textContent},direction:{value:n,label:t.textContent}},s.querySelector("span").textContent=t.textContent,i.classList.add("hidden"),this.gridApi.applySort(l,n),this.syncButtonStyleWithState()})})})})}setupDropdownToggle(t,e){t.addEventListener("click",n=>{if(n.stopPropagation(),t.disabled)return;const o=t.closest(".flex");o&&o.querySelectorAll(".toolbar-dropdown").forEach(t=>{t!==e&&t.classList.add("hidden")}),e.classList.toggle("hidden")}),document.addEventListener("click",n=>{e.contains(n.target)||t.contains(n.target)||e.classList.add("hidden")})}render(){return this.element=t.ToolbarButtonFactory.createDropdownButton({icon:e.Icons.sort,text:"Sort",dropdownContent:this.createSortContent.bind(this),width:"w-[380px]",onDropdownOpen:()=>{this.syncButtonStyleWithState()}}),this.syncButtonStyleWithState(),this.gridApi.getGridInstance().api.addEventListener("sortChanged",()=>{this.syncButtonStyleWithState()}),this.element}}exports.SortButton=n;
9},{"../ToolbarButtonFactory":"iFWz","../../icons":"jESR"}],"xU4i":[function(require,module,exports) {
10"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnsButton=void 0;var e=require("../ToolbarButtonFactory"),t=require("../../icons");class n{constructor(e){this.gridInterface=e,this.dropdownContent=null,this.hasInitializedListeners=!1}updateCheckbox(e,n){e&&(n?(e.classList.remove("bg-white"),e.classList.add("bg-blue-700"),e.innerHTML=t.Icons.check):(e.classList.remove("bg-blue-700"),e.classList.add("bg-white"),e.innerHTML=""))}syncCheckboxStates(){if(!this.dropdownContent)return;this.dropdownContent.querySelectorAll("[data-column-id]").forEach(e=>{const t=e.dataset.columnId,n=this.gridInterface.isColumnVisible(t),o=e.querySelector('div[class*="w-4"]');this.updateCheckbox(o,n)})}createColumnsList(){const n=this.gridInterface.getVisibleColumns(),o=document.createElement("div");o.className="flex flex-col gap-2 p-2";const s=document.createElement("div");s.className="px-3 py-2",s.innerHTML='\n            <input \n                type="text" \n                placeholder="Search columns..." \n                class="w-full px-2 py-1 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:border-yellow-500"\n            >\n        ';const r=document.createElement("div");r.className="flex flex-col gap-1 max-h-64 overflow-y-auto px-1",n.forEach(n=>{const o=document.createElement("div");o.className=e.ToolbarButtonFactory.dropdownItemClass,o.dataset.columnId=n.field,o.innerHTML='\n                <div class="flex items-center gap-2 select-none w-full">\n                    <div class="w-4 h-4 border border-gray-300 rounded flex items-center justify-center transition-colors '.concat(n.hide?"bg-white":"bg-blue-700",'">\n                        ').concat(n.hide?"":t.Icons.check,'\n                    </div>\n                    <span class="text-gray-700">').concat(n.headerName||n.field,"</span>\n                </div>\n            "),r.appendChild(o)});const i=document.createElement("div");return i.className="border-t border-gray-200 mt-2 pt-2 flex gap-2 px-3",i.style.width="100%",i.innerHTML='\n            <button class="\n                flex-1 px-3 py-2 text-sm font-medium\n                bg-white text-gray-700\n                border border-gray-300\n                rounded-md\n                hover:bg-gray-100\n                transition-colors\n                shadow-sm\n                select-none\n                whitespace-nowrap\n            " id="hideAllColumns">\n                Hide all\n            </button>\n            <button class="\n                flex-1 px-3 py-2 text-sm font-medium\n                bg-white text-gray-700\n                border border-gray-300\n                rounded-md\n                hover:bg-gray-100\n                transition-colors\n                shadow-sm\n                select-none\n                whitespace-nowrap\n            " id="showAllColumns">\n                Show all\n            </button>\n        ',o.appendChild(s),o.appendChild(r),o.appendChild(i),this.dropdownContent=o,o}setupEventListeners(e){if(!e||this.hasInitializedListeners)return;const t=e.querySelector('input[type="text"]'),n=e.querySelector("#hideAllColumns"),o=e.querySelector("#showAllColumns"),s=e.querySelectorAll("[data-column-id]");t&&t.addEventListener("input",e=>{e.stopPropagation();const t=e.target.value.toLowerCase();
10s.forEach(e=>{const n=e.textContent.toLowerCase();e.style.display=n.includes(t)?"flex":"none"})}),n&&n.addEventListener("click",e=>{e.stopPropagation();const t=Array.from(s).map(e=>e.dataset.columnId);this.gridInterface.setColumnVisibility(t,!1),s.forEach(e=>{const t=e.querySelector('div[class*="w-4"]');this.updateCheckbox(t,!1)})}),o&&o.addEventListener("click",e=>{e.stopPropagation();const t=Array.from(s).map(e=>e.dataset.columnId);this.gridInterface.setColumnVisibility(t,!0),s.forEach(e=>{const t=e.querySelector('div[class*="w-4"]');this.updateCheckbox(t,!0)})}),s.forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const n=e.dataset.columnId,o=this.gridInterface.isColumnVisible(n);this.gridInterface.setColumnVisibility([n],!o);const s=e.querySelector('div[class*="w-4"]');this.updateCheckbox(s,!o)});const t=e.querySelector('div[class*="w-4"]');t&&t.addEventListener("click",t=>{t.stopPropagation(),t.preventDefault(),e.click()})}),this.hasInitializedListeners=!0}render(){return e.ToolbarButtonFactory.createDropdownButton({icon:t.Icons.columns,text:"Hide/Show Columns",dropdownContent:this.createColumnsList.bind(this),onDropdownOpen:e=>{this.setupEventListeners(e),this.syncCheckboxStates()}})}}exports.ColumnsButton=n;
11},{"../ToolbarButtonFactory":"iFWz","../../icons":"jESR"}],"IjYf":[function(require,module,exports) {
12"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExportButton=void 0;var t=require("../ToolbarButtonFactory"),e=require("../../icons");class o{constructor(t){let{gridApi:e}=t;this.gridApi=e,this.element=null}createExportContent(){return"true"===document.body.dataset.isOnDemand?'\n            <div class="p-2">\n                <button class="'.concat(t.ToolbarButtonFactory.dropdownItemClass,' w-full text-left" id="exportCsv">\n                    Export as CSV\n                </button>\n                <button class="').concat(t.ToolbarButtonFactory.dropdownItemClass,' w-full text-left" id="exportExcel">\n                    Export as Excel\n                </button>\n            </div>\n        '):'\n                <div class="p-4">\n                    <div class="text-sm text-gray-600 mb-3">\n                        Export directly to Excel & CSV with Pro access\n                    </div>\n                    <a href="/access/pro/" class="inline-block w-full px-4 py-2 text-center text-sm font-medium text-black bg-yellow-800 hover:bg-yellow-700 rounded-lg">\n                        Upgrade to Pro\n                    </a>\n                </div>\n            '}setupEventListeners(t){if(!("true"===document.body.dataset.isOnDemand))return;const e=t.querySelector("#exportCsv"),o=t.querySelector("#exportExcel");e&&e.addEventListener("click",()=>{this.gridApi.exportData("csv"),t.classList.add("hidden")}),o&&o.addEventListener("click",()=>{this.gridApi.exportData("excel"),t.classList.add("hidden")})}render(){return this.element=t.ToolbarButtonFactory.createDropdownButton({icon:e.Icons.export,text:"Export",dropdownContent:this.createExportContent(),style:"primary",width:"w-56",onDropdownOpen:()=>{const t=this.element.querySelector(".toolbar-dropdown");this.setupEventListeners(t)}}),this.element}}exports.ExportButton=o;
13},{"../ToolbarButtonFactory":"iFWz","../../icons":"jESR"}],"R84q":[function(require,module,exports) {
14"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Toolbar=void 0;var e=require("./buttons/FilterButton"),r=require("./buttons/SortButton"),t=require("./buttons/ColumnsButton"),n=require("./buttons/ExportButton"),o=require("../icons");class i{constructor(e){let{gridProvider:r,categories:t}=e;this.gridProvider=r,this.categories=t,this.element=null}createSearchInput(){const e=document.createElement("div");e.className="\n            flex items-center \n            w-full sm:w-auto\n            mb-2 sm:mb-0\n            bg-white border border-gray-200 \n            rounded-md px-3 py-2\n            min-w-[240px]\n            hover:border-gray-300\n            focus-within:border-yellow-500 focus-within:ring-2 focus-within:ring-yellow-500/20\n            transition-colors\n        ";const r=document.createElement("span");r.className="text-gray-600 mr-2 flex-shrink-0",r.innerHTML=o.Icons.search;const t=document.createElement("input");return t.type="text",t.placeholder="Search",t.className="focus:outline-none bg-transparent w-full text-sm text-gray-800 min-w-0 placeholder-gray-600",t.addEventListener("input",e=>{this.gridProvider.getInterface().setQuickFilter(e.target.value)}
14),e.appendChild(r),e.appendChild(t),e}createToolbarContainer(){const e=document.createElement("div");return e.className="\n            flex flex-wrap items-start sm:items-center\n            px-4 py-3\n            gap-2\n            border border-gray-200\n            border-b-0\n            rounded-t-lg\n            shadow-sm\n        ",e.style.backgroundColor="#F9FAFB",e}createControlsGroup(){const e=document.createElement("div");return e.className="\n            flex flex-wrap sm:flex-nowrap items-center \n            w-full\n            gap-3\n        ",e}render(){const o=this.createToolbarContainer(),i=this.createControlsGroup();i.appendChild(this.createSearchInput());const s=this.gridProvider.getInterface(),a=new t.ColumnsButton(s),l=new e.FilterButton({gridApi:s}),d=new r.SortButton({gridApi:s}),c=new n.ExportButton({gridApi:s});return i.appendChild(a.render()),i.appendChild(l.render()),i.appendChild(d.render()),i.appendChild(c.render()),o.appendChild(i),this.element=o,o}}exports.Toolbar=i;
15},{"./buttons/FilterButton":"H3Ib","./buttons/SortButton":"LkVv","./buttons/ColumnsButton":"xU4i","./buttons/ExportButton":"IjYf","../icons":"jESR"}],"v6xO":[function(require,module,exports) {
16"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;class e{setData(e){throw new Error("Not implemented")}getData(){throw new Error("Not implemented")}setColumnVisibility(e,r){throw new Error("Not implemented")}getVisibleColumns(){throw new Error("Not implemented")}reorderColumns(e){throw new Error("Not implemented")}applySort(e,r){throw new Error("Not implemented")}clearSort(){throw new Error("Not implemented")}getSortModel(){throw new Error("Not implemented")}applyFilter(e){throw new Error("Not implemented")}clearFilters(){throw new Error("Not implemented")}getFilterModel(){throw new Error("Not implemented")}getActiveFilters(){throw new Error("Not implemented")}setQuickFilter(e){throw new Error("Not implemented")}exportData(e){throw new Error("Not implemented")}getTotalRowCount(){throw new Error("Not implemented")}getVisibleRowCount(){throw new Error("Not implemented")}isColumnVisible(e){throw new Error("Not implemented")}}var r=e;exports.default=r;
17},{}],"Uxuc":[function(require,module,exports) {
18"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFilterTypeForColumn=t,exports.FilterTypes=void 0;const e={TEXT:{type:"text",operations:[{value:"contains",label:"Contains"}]},NUMBER:{type:"number",operations:[{value:"equals",label:"Equals"},{value:"lessThan",label:"Less than"},{value:"greaterThan",label:"Greater than"},{value:"notBlank",label:"Not Blank"}]},DATE:{type:"date",operations:[{value:"greaterThan",label:"After"},{value:"lessThan",label:"Before"},{value:"notBlank",label:"Not Blank"}]},SET:{type:"set",operations:[{value:"equals",label:"Is"},{value:"notEqual",label:"Is not"}]}};function t(t){if(t.dataType)switch(t.dataType.toLowerCase()){case"text":case"string":return e.TEXT;case"number":case"integer":case"float":case"decimal":return e.NUMBER;case"date":case"datetime":return e.DATE;case"set":case"enum":case"multivalue":return e.SET}if(t.filterType){if(t.filterType.includes("text"))return e.TEXT;if(t.filterType.includes("number"))return e.NUMBER;if(t.filterType.includes("date"))return e.DATE;if(t.filterType.includes("set"))return e.SET}return e.TEXT}exports.FilterTypes=e;
19},{}],"J8Z4":[function(require,module,exports) {
20"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("../interfaces/GridInterface")),t=require("../models/FilterTypes");function r(e){return e&&e.__esModule?e:{default:e}}class l extends e.default{constructor(e){super(),this.grid=e;try{this.totalRowCount=this.grid.api.getDisplayedRowCount()||0}catch(t){console.warn("Error getting initial total row count:",t),this.totalRowCount=0}this.comparators={date:(e,t,r)=>{const l=e?new Date(e):null,i=t?new Date(t):null;return l||i?l?i?l.getTime()-i.getTime():r?1:-1:r?-1:1:0},numeric:(e,t,r)=>e||t?e?t?e-t:r?1:-1:r?-1:1:0}}setData(e){try{const r=this.sortData(e,"last_publication_date","desc");this.grid.api.setGridOption("rowData",r)}catch(t){console.warn("Error setting grid data:",t)}}getData(){return this.grid.api.getRenderedNodes().map(e=>e.data)}setColumnVisibility(e,t){const r=Array.isArray(e)?e:[e];this.grid.api.setColumnsVisible(r,t)}getVisibleColumns(){return this.grid.api.getAllDisplayedColumns().map(e=>({field:e.getColId(),headerName:e.getColDef().headerName,hide:!e.isVisible()}))}reorderColumns(e){this.grid.api.moveColumns(e,0)}applySort(e,t){this.grid.api.applyColumnState({state:[{colId:e,sort:t}],defaultState:{sort:null}})}clearSort(){this.grid.api.applyColumnState({defaultState:{sort:null}})}getSortModel(){return this.grid.api.getColumnState().filter(e=>e.sort).map(e=>({field:e.colId,direction:e.sort}))}applyFilter(e){this.grid.api.setFilterModel(e)}clearFilters(){this.grid.api.setFilterModel(null)}getFilterModel(){return this.grid.api.getFilterModel()}getAllColumns(){return this.grid.api.getColumns().map(e=>({field:e.getColId(),headerName:e.getColDef().headerName,filterType:e.getColDef().filter,hide:!e.isVisible()}))}setQuickFilter(e){this.grid.api.setGridOption("quickFilterText",e)}exportData(e){"csv"===e?this.grid.api.exportDataAsCsv():"excel"===e&&this.grid.api.exportDataAsExcel()}getVisibleRowCount(){try{return this.grid.api.getDisplayedRowCount()||0}catch(e){return console.warn("Error getting visible row count:",e),0}}getTotalRowCount(){return this.totalRowCount}getGridInstance(){return this.grid}isColumnVisible(e){var t;const r=this.grid.api.getAllGridColumns().find(t=>t.getColId()===e);return null!==(t=null==r?void 0:r.isVisible())&&void 0!==t&&t}resetColumnState(){this.grid.api.resetColumnState()}inferColumnType(e){if(!e)return"text";const t=e.getColDef();return"numericColumn"===t.type?"number":"dateColumn"===t.type?"date":"agSelectCellEditor"===t.cellEditor?"set":"text"}getFilterType(e){if(!e)return t.FilterTypes.TEXT;let r;if(e.field){const t=this.grid.api.getColumn(e.field);r=this.inferColumnType(t)}else r=e.dataType||"text";switch(r){case"number":return t.FilterTypes.NUMBER;case"date":return t.FilterTypes.DATE;case"set":return t.FilterTypes.SET;default:return t.FilterTypes.TEXT}}getColumnByHeader(e){const t=this.grid.api.getColumns().find(t=>t.getColDef().headerName===e);return t?{field:t.getColId(),headerName:t.getColDef().headerName,dataType:this.inferColumnType(t)}:null}getColumnInfo(e){const t=this.getAllColumns().find(t=>{var r;return(null===(r=t.headerName)||void 0===r?void 0:r.trim())===(null==e?void 0:e.trim())});if(!(null==t?void 0:t.field))return console.warn("Column not found:",e),null;const r=this.grid.api.getColumn(t.field);if(!r)return console.warn("AG Grid column not found:",t.field),null;const l=r.getColDef(),i=this.inferDataTypeFromColumnDef(l);return{field:t.field,headerName:t.headerName,dataType:i,filterType:l.filter}}inferDataTypeFromColumnDef(e){var t;return"numericColumn"===e.type||"agNumberColumnFilter"===e.filter||(null===(t=e.valueFormatter)||void 0===t?void 0:t.toString().includes("$"))?"number":"dateColumn"===e.type||"agDateColumnFilter"===e.filter?"date":"agSetColumnFilter"===e.filter||"agSelectCellEditor"===e.cellEditor?"set":"text"}getAvailableOperators(e){const t=this.grid.api.getColumn(e);switch(this.inferDataTypeFromColumnDef(t.getColDef())){case"text":return[{value:"contains",label:"Contains"}];case"number":return[{value:"equals",label:"Equals"},{value:"greaterThan",label:"Greater than"},{value:"lessThan",label:"Less than"},{value:"notBlank",label:"Not blank"}];case"date":return[{value:"equals",label:"On"},{value:"greaterThan",label:"After"},{value:"lessThan",label:"Before"},{value:"notBlank",label:"Not blank"}];case"set":return[{value:"equals",label:"Is"},{value:"notEqual",label:"Is not"}];default:return[{value:"contains",label:"Contains"},{value:"notContains",label:"Does not contain"}]}}addFilterCondition(e,t,r){const l=this.grid.api.getFilterModel()||{},i=this.grid.api.getColumn(e);l[e]={filterType:i.getColDef().filter||"agTextColumnFilter",type:t,filter:r},this.grid.api.setFilterModel(l)}removeFilterCondition(e){const t=this.grid.api.getFilterModel()||{};delete t[e],this.grid.api.setFilterModel(t)}getActiveFilters(){const e=this.grid.api.getFilterModel()||{};return Object.entries(e).map(e=>{let[t,r]=e;return{field:t,operation:r.type,value:r.filter,column:this.getColumnInfo(this.grid.api.getColumn(t).getColDef().headerName)}})}getColumnValues(e){const t=new Set;return this.grid.api.forEachNode(r=>{r.data&&r.data[e]&&(Array.isArray(r.data[e])?r.data[e].forEach(e
20=>{e.slug?t.add(e.slug):e.name?t.add(e.name.toLowerCase()):t.add(e)}):t.add(r.data[e]))}),Array.from(t).sort()}sortData(e,t,r){const l=this.getComparatorType(t),i=this.comparators[l],a="desc"===r;return[...e].sort((e,r)=>{const l=i(e[t],r[t],a);return a?-l:l})}getComparatorType(e){return["updated_at","last_publication_date","latest_revenue_date","latest_valuation_date","latest_growth_date"].includes(e)?"date":["latest_revenue","latest_valuation","latest_growth"].includes(e)?"numeric":"text"}}var i=l;exports.default=i;
21},{"../interfaces/GridInterface":"v6xO","../models/FilterTypes":"Uxuc"}],"M31O":[function(require,module,exports) {
22"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("../adapters/AGGridAdapter"));function t(e){return e&&e.__esModule?e:{default:e}}class r{constructor(t){this.gridInstance={api:t},this.adapter=new e.default(this.gridInstance);document.querySelector("#companiesGrid");this.setupEventHandlers()}setupEventHandlers(){this.gridInstance.api.addEventListener("filterChanged",()=>{})}resetColumns(){return this.adapter.resetColumnState(),this.adapter.getVisibleColumns()}getInterface(){return this.adapter}getGridInstance(){return this.gridInstance}destroy(){this.gridInstance&&this.gridInstance.destroy(),this.rowCountDisplay&&this.rowCountDisplay.parentNode&&this.rowCountDisplay.parentNode.removeChild(this.rowCountDisplay)}}var s=r;exports.default=s;
23},{"../adapters/AGGridAdapter":"J8Z4"}],"NWzM":[function(require,module,exports) {
24"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CompanyIdentityCell=void 0;class e{constructor(){this.eGui=null}init(e){this.eGui=document.createElement("div"),this.eGui.setAttribute("style","\n            height: 100%;\n            display: flex;\n            align-items: center;\n            padding: 14px 16px;\n        ");const t=document.createElement("div");if(t.setAttribute("style","\n            display: flex;\n            align-items: center;\n            text-decoration: none;\n            color: inherit;\n            gap: 12px;\n        "),e.data.logo){const n=document.createElement("a");n.href="/c/".concat(e.data.company_uid),n.setAttribute("style","text-decoration: none; flex-shrink: 0;");const i=document.createElement("img");i.src=e.data.logo,i.setAttribute("style","\n                display: block;\n                width: 32px;\n                height: 32px;\n                object-fit: contain;\n                border-radius: 8px;\n            "),i.onerror=(()=>{i.style.display="none"}),n.appendChild(i),t.appendChild(n)}const n=document.createElement("a");n.href="/c/".concat(e.data.company_uid),n.setAttribute("style","text-decoration: none; color: inherit; min-width: 0; flex: 1;");const i=document.createElement("p");i.textContent=e.value,i.setAttribute("style","\n            margin: 0;\n            font-weight: 500;\n            color: rgb(17, 24, 39);\n            word-break: normal;\n            display: -webkit-box;\n            -webkit-line-clamp: 2;\n            -webkit-box-orient: vertical;\n            overflow: hidden;\n            line-height: 1.25;\n            min-width: 0;\n            width: 100%;\n        "),n.appendChild(i),t.appendChild(n),this.eGui.appendChild(t)}getGui(){return this.eGui}refresh(e){return!1}}exports.CompanyIdentityCell=e;
25},{}],"eMRh":[function(require,module,exports) {
26"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FinancialCell=void 0;class e{constructor(){this.eGui=null}formatByMagnitude(e){let t,n,i="";return e>=1e12?(t=e/1e12,i="T"):e>=1e9?(t=e/1e9,i="B"):e>=1e6?(t=e/1e6,i="M"):e>=1e3?(t=e/1e3,i="K"):t=e,(n=t<10?t.toFixed(2).replace(/\.?0+$/,""):t<100?t.toFixed(1).replace(/\.?0+$/,""):Math.round(t).toString())+i}formatGrowthRate(e){const t=Math.abs(100*e);return t>=1e3?Math.round(t).toLocaleString():Math.round(t).toString()}init(e){this.eGui=document.createElement("div"),this.eGui.style.height="100%",this.eGui.style.display="flex",this.eGui.style.alignItems="center",this.eGui.style.justifyContent="flex-end";const t=document.createElement("div");t.setAttribute("style","\n            line-height: 1;\n            text-align: right;\n            padding-right: 12px;\n            display: flex;\n            flex-direction: column;\n            align-items: flex-end;\n            justify-content: center;\n        ");const n=document.createElement("div");n.setAttribute("style","\n            font-weight: 500;\n            text-align: right;\n            color: rgb(17, 24, 39);\n            font-size: 1.0625rem;\n        ");let i=!1;if("latest_growth"===e.colDef.field)if(null===e.value||void 0===e.value)i=!0;else{const t=Number(e.value);n.textContent="".concat(this.formatGrowthRate(t),"%"),n.style.color=t>=0?"#059669":"#DC2626"}else if(null===e.value||void 0===e.value)i=!0;else{const t=e.value;n.textContent="$".concat(this.formatByMagnitude(t))}if(!i){t.appendChild(n);const i=e.colDef.field+"_date",l=e.data[i];if(l){const e=l.split("-")[0],n=document.createElement("div");n.setAttribute("style","\n                    color: rgb(107, 114, 128);\n                    font-size: 0.75rem;\n                    line-height: 1;\n                    text-align: right;\n                    margin-top: 2px;\n                "),n.textContent=e,t.appendChild(n)}}this.eGui.appendChild(t)}getGui(){return this.eGui}refresh(e){return!1}}exports.FinancialCell=e;
27},{}],"M65k":[function(require,module,exports) {
28"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DescriptionCell=void 0;class e{constructor(){this.eGui=null}init(e){this.eGui=document.createElement("div"),this.eGui.style.height="100%",this.eGui.style.display="flex",this.eGui.style.alignItems="center";const t=document.createElement("p");let i=e.value||"";if(i){const t=e.data.name;if(t&&i.toLowerCase().startsWith(t.toLowerCase())){const e=i.substring(t.length).trim(),s=/^is\s+an?\s+/i;s.test(e)&&(i=(i=e.replace(s,"")).charAt(0).toUpperCase()+i.slice(1))}}t.textContent=i,t.setAttribute("style","\n            margin: 0;\n            width: 100%;\n            color: rgb(107, 114, 128);\n            font-size: 0.875rem;\n            line-height: 1.4;\n            display: -webkit-box;\n            -webkit-line-clamp: 2;\n            -webkit-box-orient: vertical;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            padding-right: 12px;\n            max-height: 2.8em;\n        "),this.eGui.appendChild(t)}getGui(){return this.eGui}refresh(e){return!1}}exports.DescriptionCell=e;
29},{}],"wqsL":[function(require,module,exports) {
30"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CategoriesCell=void 0;class e{constructor(){this.eGui=null}init(e){var t;if(!(null===(t=e.data)||void 0===t?void 0:t.categories))return void(this.eGui=document.createElement("div"));const n=document.createElement("div");n.setAttribute("style","\n            height: 100%;\n            display: flex;\n            align-items: center;\n            padding: 14px 16px;\n        ");const i=document.createElement("div");i.setAttribute("style","\n            display: flex;\n            flex-wrap: wrap;\n            gap: 4px;\n            max-height: 40px;  // Limit to roughly 2 rows\n            overflow: hidden;\n        ");const l=e.data.categories;let r=!1;
30l.forEach(e=>{if(!e||!e.name)return;const t=document.createElement("a");if(t.href="/t/".concat(e.slug,"/"),t.className="inline-flex items-center bg-blue-100 text-blue-700 text-xs font-medium px-2 py-0.5 rounded-full hover:bg-blue-200 transition-colors",t.style.lineHeight="1",t.style.whiteSpace="nowrap",t.style.textDecoration="none",t.textContent=e.name.toLowerCase(),i.appendChild(t),i.offsetHeight>40){if(t.remove(),!r){const e=document.createElement("span");e.className="inline-flex items-center bg-gray-100 text-gray-600 text-xs font-medium px-2 py-0.5 rounded-full",e.style.lineHeight="1",e.style.whiteSpace="nowrap",e.textContent="...",i.appendChild(e),r=!0}}else;}),n.appendChild(i),this.eGui=n}getGui(){return this.eGui}refresh(e){return!1}}exports.CategoriesCell=e;
31},{}],"NHuJ":[function(require,module,exports) {
32"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"CompanyIdentityCell",{enumerable:!0,get:function(){return e.CompanyIdentityCell}}),Object.defineProperty(exports,"FinancialCell",{enumerable:!0,get:function(){return r.FinancialCell}}),Object.defineProperty(exports,"DescriptionCell",{enumerable:!0,get:function(){return t.DescriptionCell}}),Object.defineProperty(exports,"CategoriesCell",{enumerable:!0,get:function(){return n.CategoriesCell}});var e=require("./CompanyIdentityCell"),r=require("./FinancialCell"),t=require("./DescriptionCell"),n=require("./CategoriesCell");
33},{"./CompanyIdentityCell":"NWzM","./FinancialCell":"eMRh","./DescriptionCell":"M65k","./CategoriesCell":"wqsL"}],"xbMh":[function(require,module,exports) {
34"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createCategoryUrlField=e,exports.createSortUrlField=r,exports.GridUrlState=void 0;class t{constructor(t){let{fields:e,location:r=window.location,history:o=window.history,eventTarget:i=window}=t;this.fields=e,this.location=r,this.history=o,this.eventTarget=i}read(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.location.search;const e=new URLSearchParams(t);return Object.entries(this.fields).reduce((t,r)=>{let[o,i]=r;return t[o]=i.read(e),t},{})}replace(t){const e=new URLSearchParams(this.location.search);Object.entries(this.fields).forEach(r=>{let[o,i]=r;Object.prototype.hasOwnProperty.call(t,o)&&(i.params.forEach(t=>e.delete(t)),i.write(e,t[o]))});const r=e.toString(),o="".concat(this.location.pathname).concat(r?"?".concat(r):"").concat(this.location.hash);o!=="".concat(this.location.pathname).concat(this.location.search).concat(this.location.hash)&&this.history.replaceState(this.history.state,"",o)}subscribe(t){const e=()=>t(this.read());return this.eventTarget.addEventListener("popstate",e),()=>this.eventTarget.removeEventListener("popstate",e)}}function e(t){const e=new Set(t),r=t=>Array.from(new Set((t||[]).map(t=>String(t).trim()).filter(t=>t&&e.has(t)))).sort();return{params:["categories"],read:t=>r(t.getAll("categories")),write(t,e){r(e).forEach(e=>t.append("categories",e))}}}function r(t){const e=t||{},r=t=>{const r=t&&Object.prototype.hasOwnProperty.call(e,t.key)?t.key:null;if(!r)return null;const o=e[r].direction||"desc";return{key:r,direction:"asc"===t.direction||"desc"===t.direction?t.direction:o}};return{params:["sort","order"],read:t=>r({key:t.get("sort"),direction:t.get("order")}),write(t,o){const i=r(o);i&&(t.set("sort",i.key),i.direction!==e[i.key].direction&&t.set("order",i.direction))}}}exports.GridUrlState=t;
35},{}],"HSKw":[function(require,module,exports) {
36"use strict";var e=require("./grid/components/toolbar/Toolbar"),t=n(require("./grid/providers/AGGridProvider")),r=require("./grid/components/cells"),a=require("./grid/url/GridUrlState");function n(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEac
36h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const s={name:{colId:"name",direction:"asc"},revenue:{colId:"latest_revenue",direction:"desc"},growth:{colId:"latest_growth",direction:"desc"},valuation:{colId:"latest_valuation",direction:"desc"},updated:{colId:"last_publication_date",direction:"desc"}},d=e=>e?{colId:s[e.key].colId,sort:e.direction}:null,c=e=>{const t=(e||[]).find(e=>e.sort);if(!t)return null;const r=Object.entries(s).find(e=>{let[,r]=e;return r.colId===t.colId});return r?{key:r[0],direction:t.sort}:null};function u(e,t,r,a,n){const l=e?new Date(e):null,o=t?new Date(t):null;return l||o?l?o?l.getTime()-o.getTime():n?1:-1:n?-1:1:0}function g(e,t){if(null==t)return 0;const r=t.split("-"),a=Number(r[0]),n=Number(r[1])-1,l=Number(r[2]),o=new Date(a,n,l);return o<e?-1:o>e?1:0}function p(e,t,r,a,n){return e||t?e?t?e-t:n?1:-1:n?-1:1:0}function m(n){if("undefined"==typeof agGrid)return void console.error("AG Grid library not loaded");const l=agGrid.themeQuartz.withParams({foregroundColor:"#231F20",backgroundColor:"#FFFFFF",headerBackgroundColor:"transparent",borderColor:"#E5E7EB",selectedRowBackgroundColor:"#FFF8E6",rowHoverColor:"#F9FAFB",accentColor:"#FFB61A",spacing:4,borderRadius:6,headerHeight:40,rowHeight:60}),i=document.createElement("style");i.textContent="\n        .ag-theme-quartz .ag-header {\n            background: linear-gradient(to bottom, rgb(249 250 251) 0%, rgb(255 255 255) 100%);\n            border-bottom: 1px solid #E5E7EB;\n        }\n        \n        .ag-theme-quartz .ag-header-cell {\n            padding: 0 16px;\n            transition: background-color 0.2s;\n        }\n        \n        .ag-theme-quartz .ag-header-cell:hover {\n            background-color: rgba(0, 0, 0, 0.02);\n        }\n\n        .ag-theme-quartz .ag-header-cell-label {\n            color: #4B5563;\n            font-weight: 500;\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n        }\n\n        .ag-theme-quartz .ag-header-cell-label .ag-header-cell-text {\n            font-size: 0.875rem;\n        }\n\n        .ag-theme-quartz .ag-header-cell-menu-button {\n            margin-left: 4px;\n            transition: color 0.2s;\n        }\n\n        .ag-theme-quartz .ag-header-cell-menu-button:hover {\n            color: #1F2937;\n        }\n\n        /* Preserve right alignment for numeric columns and add spacing */\n        .ag-theme-quartz .ag-header-cell.ag-header-cell-label-right .ag-header-cell-label {\n            justify-content: flex-end;\n            gap: 8px;\n        }\n\n        /* Add specific gap for menu buttons in right-aligned headers */\n        .ag-theme-quartz .ag-header-cell.ag-header-cell-label-right .ag-header-cell-menu-button {\n            margin-left: 8px;\n        }\n\n        .ag-theme-quartz .ag-filter-cancel-button:hover {\n            background-color: #F3F4F6;\n            border-color: #D1D5DB;\n        }\n\n        /* Pagination Panel Styling */\n        .ag-theme-quartz .ag-paging-panel {\n            padding: 1rem;\n            color: #4B5563;\n            font-size: 0.875rem;\n            border-top: 1px solid #E5E7EB;\n        }\n\n        .ag-theme-quartz .ag-paging-button {\n            cursor: pointer;\n            border-radius: 0.375rem;\n            transition: background-color 0.2s;\n        }\n\n        .ag-theme-quartz .ag-paging-button:hover:not(.ag-disabled) {\n            background-color: #F3F4F6;\n        }\n\n        .ag-theme-quartz .ag-paging-button.ag-disabled {\n            opacity: 0.5;\n            cursor: default;\n        }\n\n        .ag-theme-quartz .ag-paging-description {\n            padding: 0 0.5rem;\n        }\n\n        /* Filter Menu Styling */\n        .ag-theme-quartz .ag-menu {\n            background: white;\n        }\n\n        /* Filter Apply/Reset Button Styling */\n        .ag-theme-quartz .ag-filter-apply-panel {\n            border-top: 1px solid #E5E7EB;\n            padding: 0.75rem;\n            display: flex;\n            gap: 0.5rem;\n            margin-top: 0.75rem;\n            width: 100%;\n        }
36\n\n        .ag-theme-quartz .ag-filter-apply-panel button {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            white-space: nowrap;\n            gap: 0.5rem;\n            padding: 0.5rem 0.75rem;\n            border-radius: 0.375rem;\n            font-size: 0.875rem;\n            transition-property: color, background-color, border-color;\n            transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n            transition-duration: 150ms;\n            flex: 1;\n            background-color: white;\n            border: 1px solid #E5E7EB;\n            color: #374151;\n            box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n            font-family: inherit;\n        }\n\n        .ag-theme-quartz .ag-filter-apply-panel button:hover {\n            border-color: #D1D5DB;\n            background-color: #F3F4F6;\n        }\n    ",document.head.appendChild(i);const m=["lessThan","greaterThan","equals","notBlank"],h=new Map;n.forEach(e=>{(e.categories||[]).forEach(e=>{(null==e?void 0:e.slug)&&h.set(e.slug,e.name||e.slug)})});const f=Array.from(h.keys()).sort((e,t)=>h.get(e).localeCompare(h.get(t))),b=new a.GridUrlState({fields:{categories:(0,a.createCategoryUrlField)(f),sort:(0,a.createSortUrlField)(s)}}),y=b.read();let C=!1;const w={columnDefs:[{field:"name",headerName:"Company",colId:"name",cellRenderer:r.CompanyIdentityCell,wrapText:!0,autoHeight:!0,filter:"agTextColumnFilter",filterParams:{filterOptions:["contains"],defaultOption:"contains",buttons:["apply","reset"],debounceMs:200},resizable:!1,suppressHeaderMenuButton:!1,mainMenuItems:["pinSubMenu","resetColumns"],menuTabs:["filterMenuTab","generalMenuTab"],headerComponentParams:{menuIcon:"fa-solid fa-caret-down"}},{field:"description",headerName:"Description",wrapText:!0,autoHeight:!1,filter:"agTextColumnFilter",filterParams:{filterOptions:["contains"],defaultOption:"contains",buttons:["apply","reset"],debounceMs:200},suppressHeaderContextMenu:!0,resizable:!1,suppressSizeToFit:!0,cellRenderer:r.DescriptionCell,minWidth:350,maxWidth:700,width:350,flex:1},{field:"categories",headerName:"Categories",width:250,resizable:!1,suppressSizeToFit:!0,suppressHeaderContextMenu:!0,filter:"agSetColumnFilter",filterParams:{values:f,valueFormatter:e=>h.get(e.value)||e.value,excelMode:"windows",buttons:["apply","reset"],defaultToNothingSelected:!0,suppressSelectAll:!1,suppressMiniFilter:!1},valueGetter:e=>{return(e.data.categories||[]).map(e=>{var t;return null===(t=e.name)||void 0===t?void 0:t.toLowerCase()}).filter(Boolean)},filterValueGetter:e=>{return(e.data.categories||[]).map(e=>
36e.slug).filter(Boolean)},cellRenderer:r.CategoriesCell},{field:"latest_revenue",headerName:"Revenue",type:"numericColumn",filter:"agNumberColumnFilter",cellRenderer:r.FinancialCell,filterParams:{buttons:["apply","reset"],filterOptions:m},suppressHeaderContextMenu:!0,headerClass:"ag-header-cell-label-right",resizable:!1,comparator:p,suppressSizeToFit:!0},{field:"latest_revenue_date",headerName:"Revenue Date",hide:!0,filter:"agDateColumnFilter",filterParams:{comparator:g},headerClass:"ag-header-cell-label-right",sortable:!0,comparator:u},{field:"latest_growth",headerName:"Growth",type:"numericColumn",filter:"agNumberColumnFilter",cellRenderer:r.FinancialCell,filterParams:{buttons:["apply","reset"],filterOptions:m},suppressHeaderContextMenu:!0,headerClass:"ag-header-cell-label-right",resizable:!1,comparator:p,suppressSizeToFit:!0},{field:"latest_growth_date",hide:!0,headerName:"Growth Date",filter:"agDateColumnFilter",filterParams:{comparator:g},headerClass:"ag-header-cell-label-right",sortable:!0,comparator:u},{field:"latest_valuation",headerName:"Valuation",type:"numericColumn",filter:"agNumberColumnFilter",cellRenderer:r.FinancialCell,filterParams:{buttons:["apply","reset"],filterOptions:m},suppressHeaderContextMenu:!0,headerClass:"ag-header-cell-label-right",resizable:!1,comparator:p,suppressSizeToFit:!0},{field:"latest_valuation_date",headerName:"Valuation Date",hide:!0,filter:"agDateColumnFilter",filterParams:{comparator:g},headerClass:"ag-header-cell-label-right",sortable:!0,comparator:u},{field:"last_publication_date",headerName:"Last Updated",hide:!0,sortable:!0,filter:!1,valueFormatter:e=>e.value?new Date(e.value):null,comparator:u}],rowData:n,defaultColDef:{minWidth:150,suppressHeaderMenuButton:!0,filter:!0,sortable:!1,resizable:!0},autoSizeStrategy:{type:"fitCellContents",colIds:["name","latest_revenue","latest_valuation","latest_growth"]}
36,alwaysShowHorizontalScroll:!0,suppressDragLeaveHidesColumns:!0,suppressMenuHide:!0,suppressMovableColumns:!0,quickFilterText:"",initialState:o(o({},y.categories.length?{filter:{filterModel:{categories:{filterType:"set",values:y.categories}}}}:{}),y.sort?{sort:{sortModel:[d(y.sort)]}}:{}),sideBar:null,pagination:!0,paginationPageSize:20,domLayout:"autoHeight",suppressScrollOnNewData:!0,suppressColumnVirtualisation:!0,suppressRowVirtualisation:!0,cellSelection:!0,theme:l,getRowHeight:e=>60,onCellClicked:e=>{const t=e.event.target;(t.closest("a")||"A"===t.tagName)&&(e.api.clearCellSelection(),e.api.deselectAll())},getContextMenuItems:e=>{let t=e.defaultItems||[];const r=["cut","paste","copyWithGroupHeaders","export"];return t.filter(e=>!r.includes(e))},sendToClipboard:e=>{if("true"===document.body.dataset.isOnDemand)navigator.clipboard.writeText(e.data).then(()=>{console.log("Data copied to clipboard")}).catch(e=>{console.error("Could not copy text: ",e)});else{if(document.querySelector(".paywall-message"))return;const r=e.api.getFocusedCell();if(r){var t;const a=null===(t=e.api.getCellRendererInstances({rowNodes:[e.api.getDisplayedRowAtIndex(r.rowIndex)],columns:[r.column]})[0])||void 0===t?void 0:t.getGui();if(a){const e=a.getBoundingClientRect(),t=document.createElement("div");t.className="fixed z-50 bg-white border border-gray-200 rounded-lg shadow-lg p-4 text-sm paywall-message",t.style.left="".concat(e.left,"px"),t.style.top="".concat(e.bottom+5,"px"),t.innerHTML='\n                            <div class="text-gray-600 mb-3">\n                                Copy data instantly with Pro access\n                            </div>\n                            <a href="/access/pro/" class="inline-block w-full px-4 py-2 text-center text-sm font-medium text-black bg-yellow-800 hover:bg-yellow-700 rounded-lg">\n                                Upgrade to Pro\n                            </a>\n                        ',document.body.appendChild(t),setTimeout(()=>{t&&t.parentElement&&t.remove()},3e3)}}}},onFirstDataRendered:r=>{r.api.autoSizeColumns(["latest_revenue","latest_valuation","latest_growth"]);const a=new t.default(r.api),n=new e.Toolbar({gridProvider:a,categories:JSON.parse(document.getElementById("companiesGrid").dataset.categories)}),l=document.querySelector("#companiesGrid");l&&l.parentNode.insertBefore(n.render(),l)},onFilterChanged:e=>{var t;if(C)return;const r=null===(t=e.api.getFilterModel())||void 0===t?void 0:t.categories;b.replace({categories:(null==r?void 0:r.values)||[]})},onSortChanged:e=>{C||b.replace({sort:c(e.api.getColumnState())})},onGridReady:e=>{new t.default(e.api).getInterface().setData(n),b.replace(y),b.subscribe(async t=>{C=!0;try{await e.api.setColumnFilterModel("categories",t.categories.length?{values:t.categories}:null),e.api.applyColumnState({state:t.sort?[d(t.sort)]:[],defaultState:{sort:null}}),e.api.onFilterChanged()}finally{C=!1}}),document.addEventListener("click",t=>{const r=document.querySelector("#companiesGrid");r&&!r.contains(t.target)&&(e.api.deselectAll(),e.api.clearCellSelection())})}},v=document.querySelector("#companiesGrid");try{agGrid.createGrid(v,w),console.log("Grid initialized successfully")}catch(F){console.error("Error initializing grid:",F)}}window.initializeGrid=m;
37}
37,{"./grid/components/toolbar/Toolbar":"R84q","./grid/providers/AGGridProvider":"M31O","./grid/components/cells":"NHuJ","./grid/url/GridUrlState":"xbMh"}]},{},["HSKw"], null)
38//# sourceMappingURL=/company_grid.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.