@kong-ui-public/dashboard-renderer 8.18.27 → 8.18.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{GeoMapRenderer-CJZ-Y-RA.js → GeoMapRenderer-Ee-dYyas.js} +1 -1
- package/dist/dashboard-renderer.es.js +1 -1
- package/dist/dashboard-renderer.umd.js +8 -8
- package/dist/{index-DuwQ-QCF.js → index-TZ3Q4tv8.js} +794 -816
- package/dist/types/components/layout/DraggableGridLayout.vue.d.ts +1 -1
- package/dist/types/components/layout/DraggableGridLayout.vue.d.ts.map +1 -1
- package/dist/types/components/layout/GridLayout.vue.d.ts +1 -1
- package/dist/types/components/layout/GridLayout.vue.d.ts.map +1 -1
- package/package.json +19 -19
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
(function(V,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("@kong-ui-public/analytics-utilities"),require("@kong/icons"),require("@kong-ui-public/analytics-chart"),require("@kong-ui-public/analytics-metric-provider"),require("@kong-ui-public/table-data-grid"),require("@kong-ui-public/analytics-config-store"),require("swrv"),require("axios"),require("@kong-ui-public/i18n"),require("@kong-ui-public/analytics-geo-map")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/analytics-utilities","@kong/icons","@kong-ui-public/analytics-chart","@kong-ui-public/analytics-metric-provider","@kong-ui-public/table-data-grid","@kong-ui-public/analytics-config-store","swrv","axios","@kong-ui-public/i18n","@kong-ui-public/analytics-geo-map"],o):(V=typeof globalThis<"u"?globalThis:V||self,o(V["kong-ui-public-dashboard-renderer"]={},V.Vue,V["kong-ui-public-analytics-utilities"],V.KongIcons,V["kong-ui-public-analytics-chart"],V["kong-ui-public-analytics-metric-provider"],V["kong-ui-public-table-data-grid"],V["kong-ui-public-analytics-config-store"],V.swrv,V.axios,V["kong-ui-public-i18n"],V["kong-ui-public-analytics-geo-map"]))})(this,(function(V,o,le,Ne,Xe,kt,Mi,ze,Li,Bs,Rt,St){"use strict";const Ai={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Ii=(r,e,t)=>{let i;const n=Ai[r];return typeof n=="string"?i=n:e===1?i=n.one:i=n.other.replace("{{count}}",e.toString()),t?.addSuffix?t.comparison&&t.comparison>0?"in "+i:i+" ago":i};function dt(r){return(e={})=>{const t=e.width?String(e.width):r.defaultWidth;return r.formats[t]||r.formats[r.defaultWidth]}}const Pi={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},qi={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Hi={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Bi={date:dt({formats:Pi,defaultWidth:"full"}),time:dt({formats:qi,defaultWidth:"full"}),dateTime:dt({formats:Hi,defaultWidth:"full"})},Fi={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},$i=(r,e,t,i)=>Fi[r];function Ue(r){return(e,t)=>{const i=t?.context?String(t.context):"standalone";let n;if(i==="formatting"&&r.formattingValues){const a=r.defaultFormattingWidth||r.defaultWidth,l=t?.width?String(t.width):a;n=r.formattingValues[l]||r.formattingValues[a]}else{const a=r.defaultWidth,l=t?.width?String(t.width):r.defaultWidth;n=r.values[l]||r.values[a]}const s=r.argumentCallback?r.argumentCallback(e):e;return n[s]}}const Ui={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Wi={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Gi={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Yi={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Vi={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ji={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Ki={ordinalNumber:(r,e)=>{const t=Number(r),i=t%100;if(i>20||i<10)switch(i%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},era:Ue({values:Ui,defaultWidth:"wide"}),quarter:Ue({values:Wi,defaultWidth:"wide",argumentCallback:r=>r-1}),month:Ue({values:Gi,defaultWidth:"wide"}),day:Ue({values:Yi,defaultWidth:"wide"}),dayPeriod:Ue({values:Vi,defaultWidth:"wide",formattingValues:ji,defaultFormattingWidth:"wide"})};function We(r){return(e,t={})=>{const i=t.width,n=i&&r.matchPatterns[i]||r.matchPatterns[r.defaultMatchWidth],s=e.match(n);if(!s)return null;const a=s[0],l=i&&r.parsePatterns[i]||r.parsePatterns[r.defaultParseWidth],d=Array.isArray(l)?Qi(l,h=>h.test(a)):Xi(l,h=>h.test(a));let c;c=r.valueCallback?r.valueCallback(d):d,c=t.valueCallback?t.valueCallback(c):c;const u=e.slice(a.length);return{value:c,rest:u}}}function Xi(r,e){for(const t in r)if(Object.prototype.hasOwnProperty.call(r,t)&&e(r[t]))return t}function Qi(r,e){for(let t=0;t<r.length;t++)if(e(r[t]))return t}function Zi(r){return(e,t={})=>{const i=e.match(r.matchPattern);if(!i)return null;const n=i[0],s=e.match(r.parsePattern);if(!s)return null;let a=r.valueCallback?r.valueCallback(s[0]):s[0];a=t.valueCallback?t.valueCallback(a):a;const l=e.slice(n.length);return{value:a,rest:l}}}const Ji=/^(\d+)(th|st|nd|rd)?/i,en=/\d+/i,tn={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},nn={any:[/^b/i,/^(a|c)/i]},rn={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},sn={any:[/1/i,/2/i,/3/i,/4/i]},on={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},an={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},ln={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},cn={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},un={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},dn={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},hn={ordinalNumber:Zi({matchPattern:Ji,parsePattern:en,valueCallback:r=>parseInt(r,10)}),era:We({matchPatterns:tn,defaultMatchWidth:"wide",parsePatterns:nn,defaultParseWidth:"any"}),quarter:We({matchPatterns:rn,defaultMatchWidth:"wide",parsePatterns:sn,defaultParseWidth:"any",valueCallback:r=>r+1}),month:We({matchPatterns:on,defaultMatchWidth:"wide",parsePatterns:an,defaultParseWidth:"any"}),day:We({matchPatterns:ln,defaultMatchWidth:"wide",parsePatterns:cn,defaultParseWidth:"any"}),dayPeriod:We({matchPatterns:un,defaultMatchWidth:"any",parsePatterns:dn,defaultParseWidth:"any"})},fn={code:"en-US",formatDistance:Ii,formatLong:Bi,formatRelative:$i,localize:Ki,match:hn,options:{weekStartsOn:0,firstWeekContainsDate:1}};let mn={};function Ge(){return mn}const Tt=6048e5,pn=864e5,Dt=Symbol.for("constructDateFrom");function Me(r,e){return typeof r=="function"?r(e):r&&typeof r=="object"&&Dt in r?r[Dt](e):r instanceof Date?new r.constructor(e):new Date(e)}function Ee(r,e){return Me(e||r,r)}function Ot(r){const e=Ee(r),t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+r-+t}function gn(r,...e){const t=Me.bind(null,e.find(i=>typeof i=="object"));return e.map(t)}function Nt(r,e){const t=Ee(r,e?.in);return t.setHours(0,0,0,0),t}function yn(r,e,t){const[i,n]=gn(t?.in,r,e),s=Nt(i),a=Nt(n),l=+s-Ot(s),d=+a-Ot(a);return Math.round((l-d)/pn)}function _n(r,e){const t=Ee(r,e?.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function wn(r,e){const t=Ee(r,e?.in);return yn(t,_n(t))+1}function Ye(r,e){const t=Ge(),i=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??t.weekStartsOn??t.locale?.options?.weekStartsOn??0,n=Ee(r,e?.in),s=n.getDay(),a=(s<i?7:0)+s-i;return n.setDate(n.getDate()-a),n.setHours(0,0,0,0),n}function Qe(r,e){return Ye(r,{...e,weekStartsOn:1})}function zt(r,e){const t=Ee(r,e?.in),i=t.getFullYear(),n=Me(t,0);n.setFullYear(i+1,0,4),n.setHours(0,0,0,0);const s=Qe(n),a=Me(t,0);a.setFullYear(i,0,4),a.setHours(0,0,0,0);const l=Qe(a);return t.getTime()>=s.getTime()?i+1:t.getTime()>=l.getTime()?i:i-1}function bn(r,e){const t=zt(r,e),i=Me(r,0);return i.setFullYear(t,0,4),i.setHours(0,0,0,0),Qe(i)}function vn(r,e){const t=Ee(r,e?.in),i=+Qe(t)-+bn(t);return Math.round(i/Tt)+1}function Mt(r,e){const t=Ee(r,e?.in),i=t.getFullYear(),n=Ge(),s=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=Me(e?.in||r,0);a.setFullYear(i+1,0,s),a.setHours(0,0,0,0);const l=Ye(a,e),d=Me(e?.in||r,0);d.setFullYear(i,0,s),d.setHours(0,0,0,0);const c=Ye(d,e);return+t>=+l?i+1:+t>=+c?i:i-1}function En(r,e){const t=Ge(),i=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??t.firstWeekContainsDate??t.locale?.options?.firstWeekContainsDate??1,n=Mt(r,e),s=Me(e?.in||r,0);return s.setFullYear(n,0,i),s.setHours(0,0,0,0),Ye(s,e)}function xn(r,e){const t=Ee(r,e?.in),i=+Ye(t,e)-+En(t,e);return Math.round(i/Tt)+1}function j(r,e){const t=r<0?"-":"",i=Math.abs(r).toString().padStart(e,"0");return t+i}const Le={y(r,e){const t=r.getFullYear(),i=t>0?t:1-t;return j(e==="yy"?i%100:i,e.length)},M(r,e){const t=r.getMonth();return e==="M"?String(t+1):j(t+1,2)},d(r,e){return j(r.getDate(),e.length)},a(r,e){const t=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];default:return t==="am"?"a.m.":"p.m."}},h(r,e){return j(r.getHours()%12||12,e.length)},H(r,e){return j(r.getHours(),e.length)},m(r,e){return j(r.getMinutes(),e.length)},s(r,e){return j(r.getSeconds(),e.length)},S(r,e){const t=e.length,i=r.getMilliseconds(),n=Math.trunc(i*Math.pow(10,t-3));return j(n,e.length)}},He={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Lt={G:function(r,e,t){const i=r.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return t.era(i,{width:"abbreviated"});case"GGGGG":return t.era(i,{width:"narrow"});default:return t.era(i,{width:"wide"})}},y:function(r,e,t){if(e==="yo"){const i=r.getFullYear(),n=i>0?i:1-i;return t.ordinalNumber(n,{unit:"year"})}return Le.y(r,e)},Y:function(r,e,t,i){const n=Mt(r,i),s=n>0?n:1-n;if(e==="YY"){const a=s%100;return j(a,2)}return e==="Yo"?t.ordinalNumber(s,{unit:"year"}):j(s,e.length)},R:function(r,e){const t=zt(r);return j(t,e.length)},u:function(r,e){const t=r.getFullYear();return j(t,e.length)},Q:function(r,e,t){const i=Math.ceil((r.getMonth()+1)/3);switch(e){case"Q":return String(i);case"QQ":return j(i,2);case"Qo":return t.ordinalNumber(i,{unit:"quarter"});case"QQQ":return t.quarter(i,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(i,{width:"narrow",context:"formatting"});default:return t.quarter(i,{width:"wide",context:"formatting"})}},q:function(r,e,t){const i=Math.ceil((r.getMonth()+1)/3);switch(e){case"q":return String(i);case"qq":return j(i,2);case"qo":return t.ordinalNumber(i,{unit:"quarter"});case"qqq":return t.quarter(i,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(i,{width:"narrow",context:"standalone"});default:return t.quarter(i,{width:"wide",context:"standalone"})}},M:function(r,e,t){const i=r.getMonth();switch(e){case"M":case"MM":return Le.M(r,e);case"Mo":return t.ordinalNumber(i+1,{unit:"month"});case"MMM":return t.month(i,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(i,{width:"narrow",context:"formatting"});default:return t.month(i,{width:"wide",context:"formatting"})}},L:function(r,e,t){const i=r.getMonth();switch(e){case"L":return String(i+1);case"LL":return j(i+1,2);case"Lo":return t.ordinalNumber(i+1,{unit:"month"});case"LLL":return t.month(i,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(i,{width:"narrow",context:"standalone"});default:return t.month(i,{width:"wide",context:"standalone"})}},w:function(r,e,t,i){const n=xn(r,i);return e==="wo"?t.ordinalNumber(n,{unit:"week"}):j(n,e.length)},I:function(r,e,t){const i=vn(r);return e==="Io"?t.ordinalNumber(i,{unit:"week"}):j(i,e.length)},d:function(r,e,t){return e==="do"?t.ordinalNumber(r.getDate(),{unit:"date"}):Le.d(r,e)},D:function(r,e,t){const i=wn(r);return e==="Do"?t.ordinalNumber(i,{unit:"dayOfYear"}):j(i,e.length)},E:function(r,e,t){const i=r.getDay();switch(e){case"E":case"EE":case"EEE":return t.day(i,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(i,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(i,{width:"short",context:"formatting"});default:return t.day(i,{width:"wide",context:"formatting"})}},e:function(r,e,t,i){const n=r.getDay(),s=(n-i.weekStartsOn+8)%7||7;switch(e){case"e":return String(s);case"ee":return j(s,2);case"eo":return t.ordinalNumber(s,{unit:"day"});case"eee":return t.day(n,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(n,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(n,{width:"short",context:"formatting"});default:return t.day(n,{width:"wide",context:"formatting"})}},c:function(r,e,t,i){const n=r.getDay(),s=(n-i.weekStartsOn+8)%7||7;switch(e){case"c":return String(s);case"cc":return j(s,e.length);case"co":return t.ordinalNumber(s,{unit:"day"});case"ccc":return t.day(n,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(n,{width:"narrow",context:"standalone"});case"cccccc":return t.day(n,{width:"short",context:"standalone"});default:return t.day(n,{width:"wide",context:"standalone"})}},i:function(r,e,t){const i=r.getDay(),n=i===0?7:i;switch(e){case"i":return String(n);case"ii":return j(n,e.length);case"io":return t.ordinalNumber(n,{unit:"day"});case"iii":return t.day(i,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(i,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(i,{width:"short",context:"formatting"});default:return t.day(i,{width:"wide",context:"formatting"})}},a:function(r,e,t){const n=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(r,e,t){const i=r.getHours();let n;switch(i===12?n=He.noon:i===0?n=He.midnight:n=i/12>=1?"pm":"am",e){case"b":case"bb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(r,e,t){const i=r.getHours();let n;switch(i>=17?n=He.evening:i>=12?n=He.afternoon:i>=4?n=He.morning:n=He.night,e){case"B":case"BB":case"BBB":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(r,e,t){if(e==="ho"){let i=r.getHours()%12;return i===0&&(i=12),t.ordinalNumber(i,{unit:"hour"})}return Le.h(r,e)},H:function(r,e,t){return e==="Ho"?t.ordinalNumber(r.getHours(),{unit:"hour"}):Le.H(r,e)},K:function(r,e,t){const i=r.getHours()%12;return e==="Ko"?t.ordinalNumber(i,{unit:"hour"}):j(i,e.length)},k:function(r,e,t){let i=r.getHours();return i===0&&(i=24),e==="ko"?t.ordinalNumber(i,{unit:"hour"}):j(i,e.length)},m:function(r,e,t){return e==="mo"?t.ordinalNumber(r.getMinutes(),{unit:"minute"}):Le.m(r,e)},s:function(r,e,t){return e==="so"?t.ordinalNumber(r.getSeconds(),{unit:"second"}):Le.s(r,e)},S:function(r,e){return Le.S(r,e)},X:function(r,e,t){const i=r.getTimezoneOffset();if(i===0)return"Z";switch(e){case"X":return It(i);case"XXXX":case"XX":return Ie(i);default:return Ie(i,":")}},x:function(r,e,t){const i=r.getTimezoneOffset();switch(e){case"x":return It(i);case"xxxx":case"xx":return Ie(i);default:return Ie(i,":")}},O:function(r,e,t){const i=r.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+At(i,":");default:return"GMT"+Ie(i,":")}},z:function(r,e,t){const i=r.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+At(i,":");default:return"GMT"+Ie(i,":")}},t:function(r,e,t){const i=Math.trunc(+r/1e3);return j(i,e.length)},T:function(r,e,t){return j(+r,e.length)}};function At(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=Math.trunc(i/60),s=i%60;return s===0?t+String(n):t+String(n)+e+j(s,2)}function It(r,e){return r%60===0?(r>0?"-":"+")+j(Math.abs(r)/60,2):Ie(r,e)}function Ie(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=j(Math.trunc(i/60),2),s=j(i%60,2);return t+n+e+s}const Pt=(r,e)=>{switch(r){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},qt=(r,e)=>{switch(r){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},Cn={p:qt,P:(r,e)=>{const t=r.match(/(P+)(p+)?/)||[],i=t[1],n=t[2];if(!n)return Pt(r,e);let s;switch(i){case"P":s=e.dateTime({width:"short"});break;case"PP":s=e.dateTime({width:"medium"});break;case"PPP":s=e.dateTime({width:"long"});break;default:s=e.dateTime({width:"full"});break}return s.replace("{{date}}",Pt(i,e)).replace("{{time}}",qt(n,e))}},kn=/^D+$/,Rn=/^Y+$/,Sn=["D","DD","YY","YYYY"];function Tn(r){return kn.test(r)}function Dn(r){return Rn.test(r)}function On(r,e,t){const i=Nn(r,e,t);if(console.warn(i),Sn.includes(r))throw new RangeError(i)}function Nn(r,e,t){const i=r[0]==="Y"?"years":"days of the month";return`Use \`${r.toLowerCase()}\` instead of \`${r}\` (in \`${e}\`) for formatting ${i} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}function zn(r){return r instanceof Date||typeof r=="object"&&Object.prototype.toString.call(r)==="[object Date]"}function Mn(r){return!(!zn(r)&&typeof r!="number"||isNaN(+Ee(r)))}const Ln=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,An=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,In=/^'([^]*?)'?$/,Pn=/''/g,qn=/[a-zA-Z]/;function Hn(r,e,t){const i=Ge(),n=t?.locale??i.locale??fn,s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??i.weekStartsOn??i.locale?.options?.weekStartsOn??0,l=Ee(r,t?.in);if(!Mn(l))throw new RangeError("Invalid time value");let d=e.match(An).map(u=>{const h=u[0];if(h==="p"||h==="P"){const f=Cn[h];return f(u,n.formatLong)}return u}).join("").match(Ln).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const h=u[0];if(h==="'")return{isToken:!1,value:Bn(u)};if(Lt[h])return{isToken:!0,value:u};if(h.match(qn))throw new RangeError("Format string contains an unescaped latin alphabet character `"+h+"`");return{isToken:!1,value:u}});n.localize.preprocessor&&(d=n.localize.preprocessor(l,d));const c={firstWeekContainsDate:s,weekStartsOn:a,locale:n};return d.map(u=>{if(!u.isToken)return u.value;const h=u.value;(!t?.useAdditionalWeekYearTokens&&Dn(h)||!t?.useAdditionalDayOfYearTokens&&Tn(h))&&On(h,e,String(r));const f=Lt[h[0]];return f(l,h,n.localize,c)}).join("")}function Bn(r){const e=r.match(In);return e?e[1].replace(Pn,"'"):r}function Fn(){return Object.assign({},Ge())}function Ht(r,e,t){const i=Fn(),n=Wn(r,t.timeZone,t.locale??i.locale);return"formatToParts"in n?$n(n,e):Un(n,e)}function $n(r,e){const t=r.formatToParts(e);for(let i=t.length-1;i>=0;--i)if(t[i].type==="timeZoneName")return t[i].value}function Un(r,e){const t=r.format(e).replace(/\u200E/g,""),i=/ [\w-+ ]+$/.exec(t);return i?i[0].substr(1):""}function Wn(r,e,t){return new Intl.DateTimeFormat(t?[t.code,"en-US"]:void 0,{timeZone:e,timeZoneName:r})}function Gn(r,e){const t=Xn(e);return"formatToParts"in t?Vn(t,r):jn(t,r)}const Yn={year:0,month:1,day:2,hour:3,minute:4,second:5};function Vn(r,e){try{const t=r.formatToParts(e),i=[];for(let n=0;n<t.length;n++){const s=Yn[t[n].type];s!==void 0&&(i[s]=parseInt(t[n].value,10))}return i}catch(t){if(t instanceof RangeError)return[NaN];throw t}}function jn(r,e){const t=r.format(e),i=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(t);return[parseInt(i[3],10),parseInt(i[1],10),parseInt(i[2],10),parseInt(i[4],10),parseInt(i[5],10),parseInt(i[6],10)]}const ht={},Bt=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),Kn=Bt==="06/25/2014, 00:00:00"||Bt==="06/25/2014 00:00:00";function Xn(r){return ht[r]||(ht[r]=Kn?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:r,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:r,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})),ht[r]}function Ft(r,e,t,i,n,s,a){const l=new Date(0);return l.setUTCFullYear(r,e,t),l.setUTCHours(i,n,s,a),l}const $t=36e5,Qn=6e4,ft={timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function Ut(r,e,t){if(!r)return 0;let i=ft.timezoneZ.exec(r);if(i)return 0;let n,s;if(i=ft.timezoneHH.exec(r),i)return n=parseInt(i[1],10),Wt(n)?-(n*$t):NaN;if(i=ft.timezoneHHMM.exec(r),i){n=parseInt(i[2],10);const a=parseInt(i[3],10);return Wt(n,a)?(s=Math.abs(n)*$t+a*Qn,i[1]==="+"?-s:s):NaN}if(er(r)){e=new Date(e||Date.now());const a=t?e:Zn(e),l=mt(a,r);return-(t?l:Jn(e,l,r))}return NaN}function Zn(r){return Ft(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds())}function mt(r,e){const t=Gn(r,e),i=Ft(t[0],t[1]-1,t[2],t[3]%24,t[4],t[5],0).getTime();let n=r.getTime();const s=n%1e3;return n-=s>=0?s:1e3+s,i-n}function Jn(r,e,t){let n=r.getTime()-e;const s=mt(new Date(n),t);if(e===s)return e;n-=s-e;const a=mt(new Date(n),t);return s===a?s:Math.max(s,a)}function Wt(r,e){return-23<=r&&r<=23&&(e==null||0<=e&&e<=59)}const Gt={};function er(r){if(Gt[r])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:r}),Gt[r]=!0,!0}catch{return!1}}const tr=60*1e3,ir={X:function(r,e,t){const i=pt(t.timeZone,r);if(i===0)return"Z";switch(e){case"X":return Yt(i);case"XXXX":case"XX":return Be(i);default:return Be(i,":")}},x:function(r,e,t){const i=pt(t.timeZone,r);switch(e){case"x":return Yt(i);case"xxxx":case"xx":return Be(i);default:return Be(i,":")}},O:function(r,e,t){const i=pt(t.timeZone,r);switch(e){case"O":case"OO":case"OOO":return"GMT"+nr(i,":");default:return"GMT"+Be(i,":")}},z:function(r,e,t){switch(e){case"z":case"zz":case"zzz":return Ht("short",r,t);default:return Ht("long",r,t)}}};function pt(r,e){const t=r?Ut(r,e,!0)/tr:e?.getTimezoneOffset()??0;if(Number.isNaN(t))throw new RangeError("Invalid time zone specified: "+r);return t}function Ze(r,e){const t=r<0?"-":"";let i=Math.abs(r).toString();for(;i.length<e;)i="0"+i;return t+i}function Be(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=Ze(Math.floor(i/60),2),s=Ze(Math.floor(i%60),2);return t+n+e+s}function Yt(r,e){return r%60===0?(r>0?"-":"+")+Ze(Math.abs(r)/60,2):Be(r,e)}function nr(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=Math.floor(i/60),s=i%60;return s===0?t+String(n):t+String(n)+e+Ze(s,2)}function Vt(r){const e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds()));return e.setUTCFullYear(r.getFullYear()),+r-+e}const rr=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,gt=36e5,jt=6e4,sr=2,he={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:rr};function or(r,e={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(r===null)return new Date(NaN);const t=e.additionalDigits==null?sr:Number(e.additionalDigits);if(t!==2&&t!==1&&t!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(r instanceof Date||typeof r=="object"&&Object.prototype.toString.call(r)==="[object Date]")return new Date(r.getTime());if(typeof r=="number"||Object.prototype.toString.call(r)==="[object Number]")return new Date(r);if(Object.prototype.toString.call(r)!=="[object String]")return new Date(NaN);const i=ar(r),{year:n,restDateString:s}=lr(i.date,t),a=cr(s,n);if(a===null||isNaN(a.getTime()))return new Date(NaN);if(a){const l=a.getTime();let d=0,c;if(i.time&&(d=ur(i.time),d===null||isNaN(d)))return new Date(NaN);if(i.timeZone||e.timeZone){if(c=Ut(i.timeZone||e.timeZone,new Date(l+d)),isNaN(c))return new Date(NaN)}else c=Vt(new Date(l+d)),c=Vt(new Date(l+d+c));return new Date(l+d+c)}else return new Date(NaN)}function ar(r){const e={};let t=he.dateTimePattern.exec(r),i;if(t?(e.date=t[1],i=t[3]):(t=he.datePattern.exec(r),t?(e.date=t[1],i=t[2]):(e.date=null,i=r)),i){const n=he.timeZone.exec(i);n?(e.time=i.replace(n[1],""),e.timeZone=n[1].trim()):e.time=i}return e}function lr(r,e){if(r){const t=he.YYY[e],i=he.YYYYY[e];let n=he.YYYY.exec(r)||i.exec(r);if(n){const s=n[1];return{year:parseInt(s,10),restDateString:r.slice(s.length)}}if(n=he.YY.exec(r)||t.exec(r),n){const s=n[1];return{year:parseInt(s,10)*100,restDateString:r.slice(s.length)}}}return{year:null}}function cr(r,e){if(e===null)return null;let t,i,n;if(!r||!r.length)return t=new Date(0),t.setUTCFullYear(e),t;let s=he.MM.exec(r);if(s)return t=new Date(0),i=parseInt(s[1],10)-1,Qt(e,i)?(t.setUTCFullYear(e,i),t):new Date(NaN);if(s=he.DDD.exec(r),s){t=new Date(0);const a=parseInt(s[1],10);return fr(e,a)?(t.setUTCFullYear(e,0,a),t):new Date(NaN)}if(s=he.MMDD.exec(r),s){t=new Date(0),i=parseInt(s[1],10)-1;const a=parseInt(s[2],10);return Qt(e,i,a)?(t.setUTCFullYear(e,i,a),t):new Date(NaN)}if(s=he.Www.exec(r),s)return n=parseInt(s[1],10)-1,Zt(n)?Kt(e,n):new Date(NaN);if(s=he.WwwD.exec(r),s){n=parseInt(s[1],10)-1;const a=parseInt(s[2],10)-1;return Zt(n,a)?Kt(e,n,a):new Date(NaN)}return null}function ur(r){let e,t,i=he.HH.exec(r);if(i)return e=parseFloat(i[1].replace(",",".")),yt(e)?e%24*gt:NaN;if(i=he.HHMM.exec(r),i)return e=parseInt(i[1],10),t=parseFloat(i[2].replace(",",".")),yt(e,t)?e%24*gt+t*jt:NaN;if(i=he.HHMMSS.exec(r),i){e=parseInt(i[1],10),t=parseInt(i[2],10);const n=parseFloat(i[3].replace(",","."));return yt(e,t,n)?e%24*gt+t*jt+n*1e3:NaN}return null}function Kt(r,e,t){e=e||0,t=t||0;const i=new Date(0);i.setUTCFullYear(r,0,4);const n=i.getUTCDay()||7,s=e*7+t+1-n;return i.setUTCDate(i.getUTCDate()+s),i}const dr=[31,28,31,30,31,30,31,31,30,31,30,31],hr=[31,29,31,30,31,30,31,31,30,31,30,31];function Xt(r){return r%400===0||r%4===0&&r%100!==0}function Qt(r,e,t){if(e<0||e>11)return!1;if(t!=null){if(t<1)return!1;const i=Xt(r);if(i&&t>hr[e]||!i&&t>dr[e])return!1}return!0}function fr(r,e){if(e<1)return!1;const t=Xt(r);return!(t&&e>366||!t&&e>365)}function Zt(r,e){return!(r<0||r>52||e!=null&&(e<0||e>6))}function yt(r,e,t){return!(r<0||r>=25||e!=null&&(e<0||e>=60)||t!=null&&(t<0||t>=60))}const mr=/([xXOz]+)|''|'(''|[^'])+('|$)/g;function Jt(r,e,t={}){e=String(e);const i=e.match(mr);if(i){const n=or(t.originalDate||r,t);e=i.reduce(function(s,a){if(a[0]==="'")return s;const l=s.indexOf(a),d=s[l-1]==="'",c=s.replace(a,"'"+ir[a[0]](n,a,t)+"'");return d?c.substring(0,l-1)+c.substring(l+1):c},e)}return Hn(r,e,t)}const _t="#6c7489",pr="12px",gr="16px",ei="20px",ti="32px",ii="20px";var Je=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function yr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var et={exports:{}},_r=et.exports,ni;function wr(){return ni||(ni=1,(function(r,e){(function(t,i){i()})(_r,function(){function t(c,u){return typeof u>"u"?u={autoBom:!1}:typeof u!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),u={autoBom:!u}),u.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(c.type)?new Blob(["\uFEFF",c],{type:c.type}):c}function i(c,u,h){var f=new XMLHttpRequest;f.open("GET",c),f.responseType="blob",f.onload=function(){d(f.response,u,h)},f.onerror=function(){console.error("could not download file")},f.send()}function n(c){var u=new XMLHttpRequest;u.open("HEAD",c,!1);try{u.send()}catch{}return 200<=u.status&&299>=u.status}function s(c){try{c.dispatchEvent(new MouseEvent("click"))}catch{var u=document.createEvent("MouseEvents");u.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),c.dispatchEvent(u)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Je=="object"&&Je.global===Je?Je:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(c,u,h){var f=a.URL||a.webkitURL,_=document.createElement("a");u=u||c.name||"download",_.download=u,_.rel="noopener",typeof c=="string"?(_.href=c,_.origin===location.origin?s(_):n(_.href)?i(c,u,h):s(_,_.target="_blank")):(_.href=f.createObjectURL(c),setTimeout(function(){f.revokeObjectURL(_.href)},4e4),setTimeout(function(){s(_)},0))}:"msSaveOrOpenBlob"in navigator?function(c,u,h){if(u=u||c.name||"download",typeof c!="string")navigator.msSaveOrOpenBlob(t(c,h),u);else if(n(c))i(c,u,h);else{var f=document.createElement("a");f.href=c,f.target="_blank",setTimeout(function(){s(f)})}}:function(c,u,h,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof c=="string")return i(c,u,h);var _=c.type==="application/octet-stream",w=/constructor/i.test(a.HTMLElement)||a.safari,E=/CriOS\/[\d]+/.test(navigator.userAgent);if((E||_&&w||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var k=b.result;k=E?k:k.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=k:location=k,f=null},b.readAsDataURL(c)}else{var M=a.URL||a.webkitURL,T=M.createObjectURL(c);f?f.location=T:location.href=T,f=null,setTimeout(function(){M.revokeObjectURL(T)},4e4)}});a.saveAs=d.saveAs=d,r.exports=d})})(et)),et.exports}var br=wr(),tt={exports:{}};var vr=tt.exports,ri;function Er(){return ri||(ri=1,(function(r,e){((t,i)=>{r.exports=i()})(vr,function t(){var i=typeof self<"u"?self:typeof window<"u"?window:i!==void 0?i:{},n,s=!i.document&&!!i.postMessage,a=i.IS_PAPA_WORKER||!1,l={},d=0,c={};function u(m){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(p){var y=z(p);y.chunkSize=parseInt(y.chunkSize),p.step||p.chunk||(y.chunkSize=null),this._handle=new E(y),(this._handle.streamer=this)._config=y}).call(this,m),this.parseChunk=function(p,y){var v=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<v){let N=this._config.newline;N||(x=this._config.quoteChar||'"',N=this._handle.guessLineEndings(p,x)),p=[...p.split(N).slice(v)].join(N)}this.isFirstChunk&&U(this._config.beforeFirstChunk)&&(x=this._config.beforeFirstChunk(p))!==void 0&&(p=x),this.isFirstChunk=!1,this._halted=!1;var v=this._partialLine+p,x=(this._partialLine="",this._handle.parse(v,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(p=x.meta.cursor,v=(this._finished||(this._partialLine=v.substring(p-this._baseIndex),this._baseIndex=p),x&&x.data&&(this._rowCount+=x.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),a)i.postMessage({results:x,workerId:c.WORKER_ID,finished:v});else if(U(this._config.chunk)&&!y){if(this._config.chunk(x,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=x=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(x.data),this._completeResults.errors=this._completeResults.errors.concat(x.errors),this._completeResults.meta=x.meta),this._completed||!v||!U(this._config.complete)||x&&x.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),v||x&&x.meta.paused||this._nextChunk(),x}this._halted=!0},this._sendError=function(p){U(this._config.error)?this._config.error(p):a&&this._config.error&&i.postMessage({workerId:c.WORKER_ID,error:p,finished:!1})}}function h(m){var p;(m=m||{}).chunkSize||(m.chunkSize=c.RemoteChunkSize),u.call(this,m),this._nextChunk=s?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(y){this._input=y,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(p=new XMLHttpRequest,this._config.withCredentials&&(p.withCredentials=this._config.withCredentials),s||(p.onload=Z(this._chunkLoaded,this),p.onerror=Z(this._chunkError,this)),p.open(this._config.downloadRequestBody?"POST":"GET",this._input,!s),this._config.downloadRequestHeaders){var y,v=this._config.downloadRequestHeaders;for(y in v)p.setRequestHeader(y,v[y])}var x;this._config.chunkSize&&(x=this._start+this._config.chunkSize-1,p.setRequestHeader("Range","bytes="+this._start+"-"+x));try{p.send(this._config.downloadRequestBody)}catch(N){this._chunkError(N.message)}s&&p.status===0&&this._chunkError()}},this._chunkLoaded=function(){p.readyState===4&&(p.status<200||400<=p.status?this._chunkError():(this._start+=this._config.chunkSize||p.responseText.length,this._finished=!this._config.chunkSize||this._start>=(y=>(y=y.getResponseHeader("Content-Range"))!==null?parseInt(y.substring(y.lastIndexOf("/")+1)):-1)(p),this.parseChunk(p.responseText)))},this._chunkError=function(y){y=p.statusText||y,this._sendError(new Error(y))}}function f(m){(m=m||{}).chunkSize||(m.chunkSize=c.LocalChunkSize),u.call(this,m);var p,y,v=typeof FileReader<"u";this.stream=function(x){this._input=x,y=x.slice||x.webkitSlice||x.mozSlice,v?((p=new FileReader).onload=Z(this._chunkLoaded,this),p.onerror=Z(this._chunkError,this)):p=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var x=this._input,N=(this._config.chunkSize&&(N=Math.min(this._start+this._config.chunkSize,this._input.size),x=y.call(x,this._start,N)),p.readAsText(x,this._config.encoding));v||this._chunkLoaded({target:{result:N}})},this._chunkLoaded=function(x){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(x.target.result)},this._chunkError=function(){this._sendError(p.error)}}function _(m){var p;u.call(this,m=m||{}),this.stream=function(y){return p=y,this._nextChunk()},this._nextChunk=function(){var y,v;if(!this._finished)return y=this._config.chunkSize,p=y?(v=p.substring(0,y),p.substring(y)):(v=p,""),this._finished=!p,this.parseChunk(v)}}function w(m){u.call(this,m=m||{});var p=[],y=!0,v=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(x){this._input=x,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){v&&p.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),p.length?this.parseChunk(p.shift()):y=!0},this._streamData=Z(function(x){try{p.push(typeof x=="string"?x:x.toString(this._config.encoding)),y&&(y=!1,this._checkIsFinished(),this.parseChunk(p.shift()))}catch(N){this._streamError(N)}},this),this._streamError=Z(function(x){this._streamCleanUp(),this._sendError(x)},this),this._streamEnd=Z(function(){this._streamCleanUp(),v=!0,this._streamData("")},this),this._streamCleanUp=Z(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function E(m){var p,y,v,x,N=Math.pow(2,53),K=-N,ce=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,ie=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,B=this,R=0,C=0,P=!1,S=!1,L=[],O={data:[],errors:[],meta:{}};function se($){return m.skipEmptyLines==="greedy"?$.join("").trim()==="":$.length===1&&$[0].length===0}function oe(){if(O&&v&&(de("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+c.DefaultDelimiter+"'"),v=!1),m.skipEmptyLines&&(O.data=O.data.filter(function(q){return!se(q)})),J()){let q=function(re,ae){U(m.transformHeader)&&(re=m.transformHeader(re,ae)),L.push(re)};if(O)if(Array.isArray(O.data[0])){for(var $=0;J()&&$<O.data.length;$++)O.data[$].forEach(q);O.data.splice(0,1)}else O.data.forEach(q)}function Y(q,re){for(var ae=m.header?{}:[],X=0;X<q.length;X++){var Q=X,W=q[X],W=((_e,F)=>(ee=>(m.dynamicTypingFunction&&m.dynamicTyping[ee]===void 0&&(m.dynamicTyping[ee]=m.dynamicTypingFunction(ee)),(m.dynamicTyping[ee]||m.dynamicTyping)===!0))(_e)?F==="true"||F==="TRUE"||F!=="false"&&F!=="FALSE"&&((ee=>{if(ce.test(ee)&&(ee=parseFloat(ee),K<ee&&ee<N))return 1})(F)?parseFloat(F):ie.test(F)?new Date(F):F===""?null:F):F)(Q=m.header?X>=L.length?"__parsed_extra":L[X]:Q,W=m.transform?m.transform(W,Q):W);Q==="__parsed_extra"?(ae[Q]=ae[Q]||[],ae[Q].push(W)):ae[Q]=W}return m.header&&(X>L.length?de("FieldMismatch","TooManyFields","Too many fields: expected "+L.length+" fields but parsed "+X,C+re):X<L.length&&de("FieldMismatch","TooFewFields","Too few fields: expected "+L.length+" fields but parsed "+X,C+re)),ae}var ne;O&&(m.header||m.dynamicTyping||m.transform)&&(ne=1,!O.data.length||Array.isArray(O.data[0])?(O.data=O.data.map(Y),ne=O.data.length):O.data=Y(O.data,0),m.header&&O.meta&&(O.meta.fields=L),C+=ne)}function J(){return m.header&&L.length===0}function de($,Y,ne,q){$={type:$,code:Y,message:ne},q!==void 0&&($.row=q),O.errors.push($)}U(m.step)&&(x=m.step,m.step=function($){O=$,J()?oe():(oe(),O.data.length!==0&&(R+=$.data.length,m.preview&&R>m.preview?y.abort():(O.data=O.data[0],x(O,B))))}),this.parse=function($,Y,ne){var q=m.quoteChar||'"',q=(m.newline||(m.newline=this.guessLineEndings($,q)),v=!1,m.delimiter?U(m.delimiter)&&(m.delimiter=m.delimiter($),O.meta.delimiter=m.delimiter):((q=((re,ae,X,Q,W)=>{var _e,F,ee,Te;W=W||[","," ","|",";",c.RECORD_SEP,c.UNIT_SEP];for(var De=0;De<W.length;De++){for(var be,Pe=W[De],ue=0,ve=0,D=0,H=(ee=void 0,new M({comments:Q,delimiter:Pe,newline:ae,preview:10}).parse(re)),te=0;te<H.data.length;te++)X&&se(H.data[te])?D++:(be=H.data[te].length,ve+=be,ee===void 0?ee=be:0<be&&(ue+=Math.abs(be-ee),ee=be));0<H.data.length&&(ve/=H.data.length-D),(F===void 0||ue<=F)&&(Te===void 0||Te<ve)&&1.99<ve&&(F=ue,_e=Pe,Te=ve)}return{successful:!!(m.delimiter=_e),bestDelimiter:_e}})($,m.newline,m.skipEmptyLines,m.comments,m.delimitersToGuess)).successful?m.delimiter=q.bestDelimiter:(v=!0,m.delimiter=c.DefaultDelimiter),O.meta.delimiter=m.delimiter),z(m));return m.preview&&m.header&&q.preview++,p=$,y=new M(q),O=y.parse(p,Y,ne),oe(),P?{meta:{paused:!0}}:O||{meta:{paused:!1}}},this.paused=function(){return P},this.pause=function(){P=!0,y.abort(),p=U(m.chunk)?"":p.substring(y.getCharIndex())},this.resume=function(){B.streamer._halted?(P=!1,B.streamer.parseChunk(p,!0)):setTimeout(B.resume,3)},this.aborted=function(){return S},this.abort=function(){S=!0,y.abort(),O.meta.aborted=!0,U(m.complete)&&m.complete(O),p=""},this.guessLineEndings=function(re,q){re=re.substring(0,1048576);var q=new RegExp(b(q)+"([^]*?)"+b(q),"gm"),ne=(re=re.replace(q,"")).split("\r"),q=re.split(`
|
|
2
|
-
`),re=1<
|
|
1
|
+
(function(Y,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("@kong-ui-public/analytics-utilities"),require("@kong/icons"),require("@kong-ui-public/analytics-chart"),require("@kong-ui-public/analytics-metric-provider"),require("@kong-ui-public/table-data-grid"),require("@kong-ui-public/analytics-config-store"),require("swrv"),require("axios"),require("@kong-ui-public/i18n"),require("@kong-ui-public/analytics-geo-map")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/analytics-utilities","@kong/icons","@kong-ui-public/analytics-chart","@kong-ui-public/analytics-metric-provider","@kong-ui-public/table-data-grid","@kong-ui-public/analytics-config-store","swrv","axios","@kong-ui-public/i18n","@kong-ui-public/analytics-geo-map"],o):(Y=typeof globalThis<"u"?globalThis:Y||self,o(Y["kong-ui-public-dashboard-renderer"]={},Y.Vue,Y["kong-ui-public-analytics-utilities"],Y.KongIcons,Y["kong-ui-public-analytics-chart"],Y["kong-ui-public-analytics-metric-provider"],Y["kong-ui-public-table-data-grid"],Y["kong-ui-public-analytics-config-store"],Y.swrv,Y.axios,Y["kong-ui-public-i18n"],Y["kong-ui-public-analytics-geo-map"]))})(this,(function(Y,o,oe,Ne,Xe,kt,Mi,ze,Li,Bs,Rt,Tt){"use strict";const Ai={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Ii=(r,e,t)=>{let i;const n=Ai[r];return typeof n=="string"?i=n:e===1?i=n.one:i=n.other.replace("{{count}}",e.toString()),t?.addSuffix?t.comparison&&t.comparison>0?"in "+i:i+" ago":i};function dt(r){return(e={})=>{const t=e.width?String(e.width):r.defaultWidth;return r.formats[t]||r.formats[r.defaultWidth]}}const Pi={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},qi={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Hi={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Bi={date:dt({formats:Pi,defaultWidth:"full"}),time:dt({formats:qi,defaultWidth:"full"}),dateTime:dt({formats:Hi,defaultWidth:"full"})},Fi={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},$i=(r,e,t,i)=>Fi[r];function Ue(r){return(e,t)=>{const i=t?.context?String(t.context):"standalone";let n;if(i==="formatting"&&r.formattingValues){const a=r.defaultFormattingWidth||r.defaultWidth,l=t?.width?String(t.width):a;n=r.formattingValues[l]||r.formattingValues[a]}else{const a=r.defaultWidth,l=t?.width?String(t.width):r.defaultWidth;n=r.values[l]||r.values[a]}const s=r.argumentCallback?r.argumentCallback(e):e;return n[s]}}const Ui={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Wi={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Gi={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Yi={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Vi={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ji={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Ki={ordinalNumber:(r,e)=>{const t=Number(r),i=t%100;if(i>20||i<10)switch(i%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},era:Ue({values:Ui,defaultWidth:"wide"}),quarter:Ue({values:Wi,defaultWidth:"wide",argumentCallback:r=>r-1}),month:Ue({values:Gi,defaultWidth:"wide"}),day:Ue({values:Yi,defaultWidth:"wide"}),dayPeriod:Ue({values:Vi,defaultWidth:"wide",formattingValues:ji,defaultFormattingWidth:"wide"})};function We(r){return(e,t={})=>{const i=t.width,n=i&&r.matchPatterns[i]||r.matchPatterns[r.defaultMatchWidth],s=e.match(n);if(!s)return null;const a=s[0],l=i&&r.parsePatterns[i]||r.parsePatterns[r.defaultParseWidth],d=Array.isArray(l)?Qi(l,h=>h.test(a)):Xi(l,h=>h.test(a));let c;c=r.valueCallback?r.valueCallback(d):d,c=t.valueCallback?t.valueCallback(c):c;const u=e.slice(a.length);return{value:c,rest:u}}}function Xi(r,e){for(const t in r)if(Object.prototype.hasOwnProperty.call(r,t)&&e(r[t]))return t}function Qi(r,e){for(let t=0;t<r.length;t++)if(e(r[t]))return t}function Zi(r){return(e,t={})=>{const i=e.match(r.matchPattern);if(!i)return null;const n=i[0],s=e.match(r.parsePattern);if(!s)return null;let a=r.valueCallback?r.valueCallback(s[0]):s[0];a=t.valueCallback?t.valueCallback(a):a;const l=e.slice(n.length);return{value:a,rest:l}}}const Ji=/^(\d+)(th|st|nd|rd)?/i,en=/\d+/i,tn={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},nn={any:[/^b/i,/^(a|c)/i]},rn={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},sn={any:[/1/i,/2/i,/3/i,/4/i]},on={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},an={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},ln={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},cn={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},un={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},dn={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},hn={ordinalNumber:Zi({matchPattern:Ji,parsePattern:en,valueCallback:r=>parseInt(r,10)}),era:We({matchPatterns:tn,defaultMatchWidth:"wide",parsePatterns:nn,defaultParseWidth:"any"}),quarter:We({matchPatterns:rn,defaultMatchWidth:"wide",parsePatterns:sn,defaultParseWidth:"any",valueCallback:r=>r+1}),month:We({matchPatterns:on,defaultMatchWidth:"wide",parsePatterns:an,defaultParseWidth:"any"}),day:We({matchPatterns:ln,defaultMatchWidth:"wide",parsePatterns:cn,defaultParseWidth:"any"}),dayPeriod:We({matchPatterns:un,defaultMatchWidth:"any",parsePatterns:dn,defaultParseWidth:"any"})},fn={code:"en-US",formatDistance:Ii,formatLong:Bi,formatRelative:$i,localize:Ki,match:hn,options:{weekStartsOn:0,firstWeekContainsDate:1}};let mn={};function Ge(){return mn}const St=6048e5,pn=864e5,Dt=Symbol.for("constructDateFrom");function Me(r,e){return typeof r=="function"?r(e):r&&typeof r=="object"&&Dt in r?r[Dt](e):r instanceof Date?new r.constructor(e):new Date(e)}function Ee(r,e){return Me(e||r,r)}function Ot(r){const e=Ee(r),t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+r-+t}function gn(r,...e){const t=Me.bind(null,e.find(i=>typeof i=="object"));return e.map(t)}function Nt(r,e){const t=Ee(r,e?.in);return t.setHours(0,0,0,0),t}function yn(r,e,t){const[i,n]=gn(t?.in,r,e),s=Nt(i),a=Nt(n),l=+s-Ot(s),d=+a-Ot(a);return Math.round((l-d)/pn)}function _n(r,e){const t=Ee(r,e?.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function wn(r,e){const t=Ee(r,e?.in);return yn(t,_n(t))+1}function Ye(r,e){const t=Ge(),i=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??t.weekStartsOn??t.locale?.options?.weekStartsOn??0,n=Ee(r,e?.in),s=n.getDay(),a=(s<i?7:0)+s-i;return n.setDate(n.getDate()-a),n.setHours(0,0,0,0),n}function Qe(r,e){return Ye(r,{...e,weekStartsOn:1})}function zt(r,e){const t=Ee(r,e?.in),i=t.getFullYear(),n=Me(t,0);n.setFullYear(i+1,0,4),n.setHours(0,0,0,0);const s=Qe(n),a=Me(t,0);a.setFullYear(i,0,4),a.setHours(0,0,0,0);const l=Qe(a);return t.getTime()>=s.getTime()?i+1:t.getTime()>=l.getTime()?i:i-1}function bn(r,e){const t=zt(r,e),i=Me(r,0);return i.setFullYear(t,0,4),i.setHours(0,0,0,0),Qe(i)}function vn(r,e){const t=Ee(r,e?.in),i=+Qe(t)-+bn(t);return Math.round(i/St)+1}function Mt(r,e){const t=Ee(r,e?.in),i=t.getFullYear(),n=Ge(),s=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=Me(e?.in||r,0);a.setFullYear(i+1,0,s),a.setHours(0,0,0,0);const l=Ye(a,e),d=Me(e?.in||r,0);d.setFullYear(i,0,s),d.setHours(0,0,0,0);const c=Ye(d,e);return+t>=+l?i+1:+t>=+c?i:i-1}function En(r,e){const t=Ge(),i=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??t.firstWeekContainsDate??t.locale?.options?.firstWeekContainsDate??1,n=Mt(r,e),s=Me(e?.in||r,0);return s.setFullYear(n,0,i),s.setHours(0,0,0,0),Ye(s,e)}function xn(r,e){const t=Ee(r,e?.in),i=+Ye(t,e)-+En(t,e);return Math.round(i/St)+1}function V(r,e){const t=r<0?"-":"",i=Math.abs(r).toString().padStart(e,"0");return t+i}const Le={y(r,e){const t=r.getFullYear(),i=t>0?t:1-t;return V(e==="yy"?i%100:i,e.length)},M(r,e){const t=r.getMonth();return e==="M"?String(t+1):V(t+1,2)},d(r,e){return V(r.getDate(),e.length)},a(r,e){const t=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];default:return t==="am"?"a.m.":"p.m."}},h(r,e){return V(r.getHours()%12||12,e.length)},H(r,e){return V(r.getHours(),e.length)},m(r,e){return V(r.getMinutes(),e.length)},s(r,e){return V(r.getSeconds(),e.length)},S(r,e){const t=e.length,i=r.getMilliseconds(),n=Math.trunc(i*Math.pow(10,t-3));return V(n,e.length)}},He={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Lt={G:function(r,e,t){const i=r.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return t.era(i,{width:"abbreviated"});case"GGGGG":return t.era(i,{width:"narrow"});default:return t.era(i,{width:"wide"})}},y:function(r,e,t){if(e==="yo"){const i=r.getFullYear(),n=i>0?i:1-i;return t.ordinalNumber(n,{unit:"year"})}return Le.y(r,e)},Y:function(r,e,t,i){const n=Mt(r,i),s=n>0?n:1-n;if(e==="YY"){const a=s%100;return V(a,2)}return e==="Yo"?t.ordinalNumber(s,{unit:"year"}):V(s,e.length)},R:function(r,e){const t=zt(r);return V(t,e.length)},u:function(r,e){const t=r.getFullYear();return V(t,e.length)},Q:function(r,e,t){const i=Math.ceil((r.getMonth()+1)/3);switch(e){case"Q":return String(i);case"QQ":return V(i,2);case"Qo":return t.ordinalNumber(i,{unit:"quarter"});case"QQQ":return t.quarter(i,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(i,{width:"narrow",context:"formatting"});default:return t.quarter(i,{width:"wide",context:"formatting"})}},q:function(r,e,t){const i=Math.ceil((r.getMonth()+1)/3);switch(e){case"q":return String(i);case"qq":return V(i,2);case"qo":return t.ordinalNumber(i,{unit:"quarter"});case"qqq":return t.quarter(i,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(i,{width:"narrow",context:"standalone"});default:return t.quarter(i,{width:"wide",context:"standalone"})}},M:function(r,e,t){const i=r.getMonth();switch(e){case"M":case"MM":return Le.M(r,e);case"Mo":return t.ordinalNumber(i+1,{unit:"month"});case"MMM":return t.month(i,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(i,{width:"narrow",context:"formatting"});default:return t.month(i,{width:"wide",context:"formatting"})}},L:function(r,e,t){const i=r.getMonth();switch(e){case"L":return String(i+1);case"LL":return V(i+1,2);case"Lo":return t.ordinalNumber(i+1,{unit:"month"});case"LLL":return t.month(i,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(i,{width:"narrow",context:"standalone"});default:return t.month(i,{width:"wide",context:"standalone"})}},w:function(r,e,t,i){const n=xn(r,i);return e==="wo"?t.ordinalNumber(n,{unit:"week"}):V(n,e.length)},I:function(r,e,t){const i=vn(r);return e==="Io"?t.ordinalNumber(i,{unit:"week"}):V(i,e.length)},d:function(r,e,t){return e==="do"?t.ordinalNumber(r.getDate(),{unit:"date"}):Le.d(r,e)},D:function(r,e,t){const i=wn(r);return e==="Do"?t.ordinalNumber(i,{unit:"dayOfYear"}):V(i,e.length)},E:function(r,e,t){const i=r.getDay();switch(e){case"E":case"EE":case"EEE":return t.day(i,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(i,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(i,{width:"short",context:"formatting"});default:return t.day(i,{width:"wide",context:"formatting"})}},e:function(r,e,t,i){const n=r.getDay(),s=(n-i.weekStartsOn+8)%7||7;switch(e){case"e":return String(s);case"ee":return V(s,2);case"eo":return t.ordinalNumber(s,{unit:"day"});case"eee":return t.day(n,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(n,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(n,{width:"short",context:"formatting"});default:return t.day(n,{width:"wide",context:"formatting"})}},c:function(r,e,t,i){const n=r.getDay(),s=(n-i.weekStartsOn+8)%7||7;switch(e){case"c":return String(s);case"cc":return V(s,e.length);case"co":return t.ordinalNumber(s,{unit:"day"});case"ccc":return t.day(n,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(n,{width:"narrow",context:"standalone"});case"cccccc":return t.day(n,{width:"short",context:"standalone"});default:return t.day(n,{width:"wide",context:"standalone"})}},i:function(r,e,t){const i=r.getDay(),n=i===0?7:i;switch(e){case"i":return String(n);case"ii":return V(n,e.length);case"io":return t.ordinalNumber(n,{unit:"day"});case"iii":return t.day(i,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(i,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(i,{width:"short",context:"formatting"});default:return t.day(i,{width:"wide",context:"formatting"})}},a:function(r,e,t){const n=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(r,e,t){const i=r.getHours();let n;switch(i===12?n=He.noon:i===0?n=He.midnight:n=i/12>=1?"pm":"am",e){case"b":case"bb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(r,e,t){const i=r.getHours();let n;switch(i>=17?n=He.evening:i>=12?n=He.afternoon:i>=4?n=He.morning:n=He.night,e){case"B":case"BB":case"BBB":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(r,e,t){if(e==="ho"){let i=r.getHours()%12;return i===0&&(i=12),t.ordinalNumber(i,{unit:"hour"})}return Le.h(r,e)},H:function(r,e,t){return e==="Ho"?t.ordinalNumber(r.getHours(),{unit:"hour"}):Le.H(r,e)},K:function(r,e,t){const i=r.getHours()%12;return e==="Ko"?t.ordinalNumber(i,{unit:"hour"}):V(i,e.length)},k:function(r,e,t){let i=r.getHours();return i===0&&(i=24),e==="ko"?t.ordinalNumber(i,{unit:"hour"}):V(i,e.length)},m:function(r,e,t){return e==="mo"?t.ordinalNumber(r.getMinutes(),{unit:"minute"}):Le.m(r,e)},s:function(r,e,t){return e==="so"?t.ordinalNumber(r.getSeconds(),{unit:"second"}):Le.s(r,e)},S:function(r,e){return Le.S(r,e)},X:function(r,e,t){const i=r.getTimezoneOffset();if(i===0)return"Z";switch(e){case"X":return It(i);case"XXXX":case"XX":return Ie(i);default:return Ie(i,":")}},x:function(r,e,t){const i=r.getTimezoneOffset();switch(e){case"x":return It(i);case"xxxx":case"xx":return Ie(i);default:return Ie(i,":")}},O:function(r,e,t){const i=r.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+At(i,":");default:return"GMT"+Ie(i,":")}},z:function(r,e,t){const i=r.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+At(i,":");default:return"GMT"+Ie(i,":")}},t:function(r,e,t){const i=Math.trunc(+r/1e3);return V(i,e.length)},T:function(r,e,t){return V(+r,e.length)}};function At(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=Math.trunc(i/60),s=i%60;return s===0?t+String(n):t+String(n)+e+V(s,2)}function It(r,e){return r%60===0?(r>0?"-":"+")+V(Math.abs(r)/60,2):Ie(r,e)}function Ie(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=V(Math.trunc(i/60),2),s=V(i%60,2);return t+n+e+s}const Pt=(r,e)=>{switch(r){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},qt=(r,e)=>{switch(r){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},Cn={p:qt,P:(r,e)=>{const t=r.match(/(P+)(p+)?/)||[],i=t[1],n=t[2];if(!n)return Pt(r,e);let s;switch(i){case"P":s=e.dateTime({width:"short"});break;case"PP":s=e.dateTime({width:"medium"});break;case"PPP":s=e.dateTime({width:"long"});break;default:s=e.dateTime({width:"full"});break}return s.replace("{{date}}",Pt(i,e)).replace("{{time}}",qt(n,e))}},kn=/^D+$/,Rn=/^Y+$/,Tn=["D","DD","YY","YYYY"];function Sn(r){return kn.test(r)}function Dn(r){return Rn.test(r)}function On(r,e,t){const i=Nn(r,e,t);if(console.warn(i),Tn.includes(r))throw new RangeError(i)}function Nn(r,e,t){const i=r[0]==="Y"?"years":"days of the month";return`Use \`${r.toLowerCase()}\` instead of \`${r}\` (in \`${e}\`) for formatting ${i} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}function zn(r){return r instanceof Date||typeof r=="object"&&Object.prototype.toString.call(r)==="[object Date]"}function Mn(r){return!(!zn(r)&&typeof r!="number"||isNaN(+Ee(r)))}const Ln=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,An=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,In=/^'([^]*?)'?$/,Pn=/''/g,qn=/[a-zA-Z]/;function Hn(r,e,t){const i=Ge(),n=t?.locale??i.locale??fn,s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??i.weekStartsOn??i.locale?.options?.weekStartsOn??0,l=Ee(r,t?.in);if(!Mn(l))throw new RangeError("Invalid time value");let d=e.match(An).map(u=>{const h=u[0];if(h==="p"||h==="P"){const f=Cn[h];return f(u,n.formatLong)}return u}).join("").match(Ln).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const h=u[0];if(h==="'")return{isToken:!1,value:Bn(u)};if(Lt[h])return{isToken:!0,value:u};if(h.match(qn))throw new RangeError("Format string contains an unescaped latin alphabet character `"+h+"`");return{isToken:!1,value:u}});n.localize.preprocessor&&(d=n.localize.preprocessor(l,d));const c={firstWeekContainsDate:s,weekStartsOn:a,locale:n};return d.map(u=>{if(!u.isToken)return u.value;const h=u.value;(!t?.useAdditionalWeekYearTokens&&Dn(h)||!t?.useAdditionalDayOfYearTokens&&Sn(h))&&On(h,e,String(r));const f=Lt[h[0]];return f(l,h,n.localize,c)}).join("")}function Bn(r){const e=r.match(In);return e?e[1].replace(Pn,"'"):r}function Fn(){return Object.assign({},Ge())}function Ht(r,e,t){const i=Fn(),n=Wn(r,t.timeZone,t.locale??i.locale);return"formatToParts"in n?$n(n,e):Un(n,e)}function $n(r,e){const t=r.formatToParts(e);for(let i=t.length-1;i>=0;--i)if(t[i].type==="timeZoneName")return t[i].value}function Un(r,e){const t=r.format(e).replace(/\u200E/g,""),i=/ [\w-+ ]+$/.exec(t);return i?i[0].substr(1):""}function Wn(r,e,t){return new Intl.DateTimeFormat(t?[t.code,"en-US"]:void 0,{timeZone:e,timeZoneName:r})}function Gn(r,e){const t=Xn(e);return"formatToParts"in t?Vn(t,r):jn(t,r)}const Yn={year:0,month:1,day:2,hour:3,minute:4,second:5};function Vn(r,e){try{const t=r.formatToParts(e),i=[];for(let n=0;n<t.length;n++){const s=Yn[t[n].type];s!==void 0&&(i[s]=parseInt(t[n].value,10))}return i}catch(t){if(t instanceof RangeError)return[NaN];throw t}}function jn(r,e){const t=r.format(e),i=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(t);return[parseInt(i[3],10),parseInt(i[1],10),parseInt(i[2],10),parseInt(i[4],10),parseInt(i[5],10),parseInt(i[6],10)]}const ht={},Bt=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),Kn=Bt==="06/25/2014, 00:00:00"||Bt==="06/25/2014 00:00:00";function Xn(r){return ht[r]||(ht[r]=Kn?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:r,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:r,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})),ht[r]}function Ft(r,e,t,i,n,s,a){const l=new Date(0);return l.setUTCFullYear(r,e,t),l.setUTCHours(i,n,s,a),l}const $t=36e5,Qn=6e4,ft={timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function Ut(r,e,t){if(!r)return 0;let i=ft.timezoneZ.exec(r);if(i)return 0;let n,s;if(i=ft.timezoneHH.exec(r),i)return n=parseInt(i[1],10),Wt(n)?-(n*$t):NaN;if(i=ft.timezoneHHMM.exec(r),i){n=parseInt(i[2],10);const a=parseInt(i[3],10);return Wt(n,a)?(s=Math.abs(n)*$t+a*Qn,i[1]==="+"?-s:s):NaN}if(er(r)){e=new Date(e||Date.now());const a=t?e:Zn(e),l=mt(a,r);return-(t?l:Jn(e,l,r))}return NaN}function Zn(r){return Ft(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds())}function mt(r,e){const t=Gn(r,e),i=Ft(t[0],t[1]-1,t[2],t[3]%24,t[4],t[5],0).getTime();let n=r.getTime();const s=n%1e3;return n-=s>=0?s:1e3+s,i-n}function Jn(r,e,t){let n=r.getTime()-e;const s=mt(new Date(n),t);if(e===s)return e;n-=s-e;const a=mt(new Date(n),t);return s===a?s:Math.max(s,a)}function Wt(r,e){return-23<=r&&r<=23&&(e==null||0<=e&&e<=59)}const Gt={};function er(r){if(Gt[r])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:r}),Gt[r]=!0,!0}catch{return!1}}const tr=60*1e3,ir={X:function(r,e,t){const i=pt(t.timeZone,r);if(i===0)return"Z";switch(e){case"X":return Yt(i);case"XXXX":case"XX":return Be(i);default:return Be(i,":")}},x:function(r,e,t){const i=pt(t.timeZone,r);switch(e){case"x":return Yt(i);case"xxxx":case"xx":return Be(i);default:return Be(i,":")}},O:function(r,e,t){const i=pt(t.timeZone,r);switch(e){case"O":case"OO":case"OOO":return"GMT"+nr(i,":");default:return"GMT"+Be(i,":")}},z:function(r,e,t){switch(e){case"z":case"zz":case"zzz":return Ht("short",r,t);default:return Ht("long",r,t)}}};function pt(r,e){const t=r?Ut(r,e,!0)/tr:e?.getTimezoneOffset()??0;if(Number.isNaN(t))throw new RangeError("Invalid time zone specified: "+r);return t}function Ze(r,e){const t=r<0?"-":"";let i=Math.abs(r).toString();for(;i.length<e;)i="0"+i;return t+i}function Be(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=Ze(Math.floor(i/60),2),s=Ze(Math.floor(i%60),2);return t+n+e+s}function Yt(r,e){return r%60===0?(r>0?"-":"+")+Ze(Math.abs(r)/60,2):Be(r,e)}function nr(r,e=""){const t=r>0?"-":"+",i=Math.abs(r),n=Math.floor(i/60),s=i%60;return s===0?t+String(n):t+String(n)+e+Ze(s,2)}function Vt(r){const e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds()));return e.setUTCFullYear(r.getFullYear()),+r-+e}const rr=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,gt=36e5,jt=6e4,sr=2,de={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:rr};function or(r,e={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(r===null)return new Date(NaN);const t=e.additionalDigits==null?sr:Number(e.additionalDigits);if(t!==2&&t!==1&&t!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(r instanceof Date||typeof r=="object"&&Object.prototype.toString.call(r)==="[object Date]")return new Date(r.getTime());if(typeof r=="number"||Object.prototype.toString.call(r)==="[object Number]")return new Date(r);if(Object.prototype.toString.call(r)!=="[object String]")return new Date(NaN);const i=ar(r),{year:n,restDateString:s}=lr(i.date,t),a=cr(s,n);if(a===null||isNaN(a.getTime()))return new Date(NaN);if(a){const l=a.getTime();let d=0,c;if(i.time&&(d=ur(i.time),d===null||isNaN(d)))return new Date(NaN);if(i.timeZone||e.timeZone){if(c=Ut(i.timeZone||e.timeZone,new Date(l+d)),isNaN(c))return new Date(NaN)}else c=Vt(new Date(l+d)),c=Vt(new Date(l+d+c));return new Date(l+d+c)}else return new Date(NaN)}function ar(r){const e={};let t=de.dateTimePattern.exec(r),i;if(t?(e.date=t[1],i=t[3]):(t=de.datePattern.exec(r),t?(e.date=t[1],i=t[2]):(e.date=null,i=r)),i){const n=de.timeZone.exec(i);n?(e.time=i.replace(n[1],""),e.timeZone=n[1].trim()):e.time=i}return e}function lr(r,e){if(r){const t=de.YYY[e],i=de.YYYYY[e];let n=de.YYYY.exec(r)||i.exec(r);if(n){const s=n[1];return{year:parseInt(s,10),restDateString:r.slice(s.length)}}if(n=de.YY.exec(r)||t.exec(r),n){const s=n[1];return{year:parseInt(s,10)*100,restDateString:r.slice(s.length)}}}return{year:null}}function cr(r,e){if(e===null)return null;let t,i,n;if(!r||!r.length)return t=new Date(0),t.setUTCFullYear(e),t;let s=de.MM.exec(r);if(s)return t=new Date(0),i=parseInt(s[1],10)-1,Qt(e,i)?(t.setUTCFullYear(e,i),t):new Date(NaN);if(s=de.DDD.exec(r),s){t=new Date(0);const a=parseInt(s[1],10);return fr(e,a)?(t.setUTCFullYear(e,0,a),t):new Date(NaN)}if(s=de.MMDD.exec(r),s){t=new Date(0),i=parseInt(s[1],10)-1;const a=parseInt(s[2],10);return Qt(e,i,a)?(t.setUTCFullYear(e,i,a),t):new Date(NaN)}if(s=de.Www.exec(r),s)return n=parseInt(s[1],10)-1,Zt(n)?Kt(e,n):new Date(NaN);if(s=de.WwwD.exec(r),s){n=parseInt(s[1],10)-1;const a=parseInt(s[2],10)-1;return Zt(n,a)?Kt(e,n,a):new Date(NaN)}return null}function ur(r){let e,t,i=de.HH.exec(r);if(i)return e=parseFloat(i[1].replace(",",".")),yt(e)?e%24*gt:NaN;if(i=de.HHMM.exec(r),i)return e=parseInt(i[1],10),t=parseFloat(i[2].replace(",",".")),yt(e,t)?e%24*gt+t*jt:NaN;if(i=de.HHMMSS.exec(r),i){e=parseInt(i[1],10),t=parseInt(i[2],10);const n=parseFloat(i[3].replace(",","."));return yt(e,t,n)?e%24*gt+t*jt+n*1e3:NaN}return null}function Kt(r,e,t){e=e||0,t=t||0;const i=new Date(0);i.setUTCFullYear(r,0,4);const n=i.getUTCDay()||7,s=e*7+t+1-n;return i.setUTCDate(i.getUTCDate()+s),i}const dr=[31,28,31,30,31,30,31,31,30,31,30,31],hr=[31,29,31,30,31,30,31,31,30,31,30,31];function Xt(r){return r%400===0||r%4===0&&r%100!==0}function Qt(r,e,t){if(e<0||e>11)return!1;if(t!=null){if(t<1)return!1;const i=Xt(r);if(i&&t>hr[e]||!i&&t>dr[e])return!1}return!0}function fr(r,e){if(e<1)return!1;const t=Xt(r);return!(t&&e>366||!t&&e>365)}function Zt(r,e){return!(r<0||r>52||e!=null&&(e<0||e>6))}function yt(r,e,t){return!(r<0||r>=25||e!=null&&(e<0||e>=60)||t!=null&&(t<0||t>=60))}const mr=/([xXOz]+)|''|'(''|[^'])+('|$)/g;function Jt(r,e,t={}){e=String(e);const i=e.match(mr);if(i){const n=or(t.originalDate||r,t);e=i.reduce(function(s,a){if(a[0]==="'")return s;const l=s.indexOf(a),d=s[l-1]==="'",c=s.replace(a,"'"+ir[a[0]](n,a,t)+"'");return d?c.substring(0,l-1)+c.substring(l+1):c},e)}return Hn(r,e,t)}const _t="#6c7489",pr="12px",gr="16px",ei="20px",ti="32px",ii="20px";var Je=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function yr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var et={exports:{}},_r=et.exports,ni;function wr(){return ni||(ni=1,(function(r,e){(function(t,i){i()})(_r,function(){function t(c,u){return typeof u>"u"?u={autoBom:!1}:typeof u!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),u={autoBom:!u}),u.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(c.type)?new Blob(["\uFEFF",c],{type:c.type}):c}function i(c,u,h){var f=new XMLHttpRequest;f.open("GET",c),f.responseType="blob",f.onload=function(){d(f.response,u,h)},f.onerror=function(){console.error("could not download file")},f.send()}function n(c){var u=new XMLHttpRequest;u.open("HEAD",c,!1);try{u.send()}catch{}return 200<=u.status&&299>=u.status}function s(c){try{c.dispatchEvent(new MouseEvent("click"))}catch{var u=document.createEvent("MouseEvents");u.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),c.dispatchEvent(u)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Je=="object"&&Je.global===Je?Je:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(c,u,h){var f=a.URL||a.webkitURL,_=document.createElement("a");u=u||c.name||"download",_.download=u,_.rel="noopener",typeof c=="string"?(_.href=c,_.origin===location.origin?s(_):n(_.href)?i(c,u,h):s(_,_.target="_blank")):(_.href=f.createObjectURL(c),setTimeout(function(){f.revokeObjectURL(_.href)},4e4),setTimeout(function(){s(_)},0))}:"msSaveOrOpenBlob"in navigator?function(c,u,h){if(u=u||c.name||"download",typeof c!="string")navigator.msSaveOrOpenBlob(t(c,h),u);else if(n(c))i(c,u,h);else{var f=document.createElement("a");f.href=c,f.target="_blank",setTimeout(function(){s(f)})}}:function(c,u,h,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof c=="string")return i(c,u,h);var _=c.type==="application/octet-stream",w=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||_&&w||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var k=b.result;k=v?k:k.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=k:location=k,f=null},b.readAsDataURL(c)}else{var M=a.URL||a.webkitURL,S=M.createObjectURL(c);f?f.location=S:location.href=S,f=null,setTimeout(function(){M.revokeObjectURL(S)},4e4)}});a.saveAs=d.saveAs=d,r.exports=d})})(et)),et.exports}var br=wr(),tt={exports:{}};var vr=tt.exports,ri;function Er(){return ri||(ri=1,(function(r,e){((t,i)=>{r.exports=i()})(vr,function t(){var i=typeof self<"u"?self:typeof window<"u"?window:i!==void 0?i:{},n=!i.document&&!!i.postMessage,s=i.IS_PAPA_WORKER||!1,a={},l=0,d={};function c(p){return p.charCodeAt(0)===65279?p.slice(1):p}function u(p){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(m){var y=N(m);y.chunkSize=parseInt(y.chunkSize),m.step||m.chunk||(y.chunkSize=null),this._handle=new v(y),(this._handle.streamer=this)._config=y}).call(this,p),this.parseChunk=function(m,y){var E=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<E){let L=this._config.newline;L||(x=this._config.quoteChar||'"',L=this._handle.guessLineEndings(m,x)),m=[...m.split(L).slice(E)].join(L)}this.isFirstChunk&&G(this._config.beforeFirstChunk)&&(x=this._config.beforeFirstChunk(m))!==void 0&&(m=x),this.isFirstChunk=!1,this._halted=!1;var E=this._partialLine+m,x=(this._partialLine="",this._handle.parse(E,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(m=x.meta.cursor,E=(this._finished||(this._partialLine=E.substring(m-this._baseIndex),this._baseIndex=m),x&&x.data&&(this._rowCount+=x.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),s)i.postMessage({results:x,workerId:d.WORKER_ID,finished:E});else if(G(this._config.chunk)&&!y){if(this._config.chunk(x,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=x=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(x.data),this._completeResults.errors=this._completeResults.errors.concat(x.errors),this._completeResults.meta=x.meta),this._completed||!E||!G(this._config.complete)||x&&x.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),E||x&&x.meta.paused||this._nextChunk(),x}this._halted=!0},this._sendError=function(m){G(this._config.error)?this._config.error(m):s&&this._config.error&&i.postMessage({workerId:d.WORKER_ID,error:m,finished:!1})}}function h(p){var m;(p=p||{}).chunkSize||(p.chunkSize=d.RemoteChunkSize),u.call(this,p),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(y){this._input=y,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(m=new XMLHttpRequest,this._config.withCredentials&&(m.withCredentials=this._config.withCredentials),n||(m.onload=Z(this._chunkLoaded,this),m.onerror=Z(this._chunkError,this)),m.ontimeout=Z(this._chunkTimeout,this),m.open(this._config.downloadRequestBody?"POST":"GET",this._input,!n),this._config.downloadTimeout&&!n&&(m.timeout=this._config.downloadTimeout),this._config.downloadRequestHeaders){var y,E=this._config.downloadRequestHeaders;for(y in E)m.setRequestHeader(y,E[y])}var x;this._config.chunkSize&&(x=this._start+this._config.chunkSize-1,m.setRequestHeader("Range","bytes="+this._start+"-"+x));try{m.send(this._config.downloadRequestBody)}catch(L){this._chunkError(L.message)}n&&m.status===0&&this._chunkError()}},this._chunkLoaded=function(){m.readyState===4&&(m.status<200||400<=m.status?this._chunkError():(this._start+=this._config.chunkSize||m.responseText.length,this._finished=!this._config.chunkSize||this._start>=(y=>(y=y.getResponseHeader("Content-Range"))!==null?parseInt(y.substring(y.lastIndexOf("/")+1)):-1)(m),this.parseChunk(m.responseText)))},this._chunkError=function(y){y=m.statusText||y,this._sendError(new Error(y))},this._chunkTimeout=function(){this._chunkError("Request timed out after "+this._config.downloadTimeout+"ms")}}function f(p){(p=p||{}).chunkSize||(p.chunkSize=d.LocalChunkSize),u.call(this,p);var m,y,E=typeof FileReader<"u";this.stream=function(x){this._input=x,y=x.slice||x.webkitSlice||x.mozSlice,E?((m=new FileReader).onload=Z(this._chunkLoaded,this),m.onerror=Z(this._chunkError,this)):m=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var x=this._input,L=(this._config.chunkSize&&(L=Math.min(this._start+this._config.chunkSize,this._input.size),x=y.call(x,this._start,L)),m.readAsText(x,this._config.encoding));E||this._chunkLoaded({target:{result:L}})},this._chunkLoaded=function(x){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(x.target.result)},this._chunkError=function(){this._sendError(m.error)}}function _(p){var m;u.call(this,p=p||{}),this.stream=function(y){return m=y,this._nextChunk()},this._nextChunk=function(){var y,E;if(!this._finished)return y=this._config.chunkSize,m=y?(E=m.substring(0,y),m.substring(y)):(E=m,""),this._finished=!m,this.parseChunk(E)}}function w(p){u.call(this,p=p||{});var m=[],y=!0,E=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(x){this._input=x,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){E&&m.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),m.length?this.parseChunk(m.shift()):y=!0},this._streamData=Z(function(x){try{m.push(typeof x=="string"?x:x.toString(this._config.encoding)),y&&(y=!1,this._checkIsFinished(),this.parseChunk(m.shift()))}catch(L){this._streamError(L)}},this),this._streamError=Z(function(x){this._streamCleanUp(),this._sendError(x)},this),this._streamEnd=Z(function(){this._streamCleanUp(),E=!0,this._streamData("")},this),this._streamCleanUp=Z(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function v(p){var m,y,E,x,L=Math.pow(2,53),ee=-L,ce=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,se=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,j=this,R=0,C=0,q=!1,T=!1,z=[],O={data:[],errors:[],meta:{}};function ue($){return p.skipEmptyLines==="greedy"?$.join("").trim()==="":$.length===1&&$[0].length===0}function J(){if(O&&E&&(fe("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+d.DefaultDelimiter+"'"),E=!1),p.skipEmptyLines&&(O.data=O.data.filter(function(P){return!ue(P)})),K()){let P=function(re){z.push(re)};if(O)if(Array.isArray(O.data[0])){for(var $=0;K()&&$<O.data.length;$++)O.data[$].forEach(P);O.data.splice(0,1)}else O.data.forEach(P)}function F(P,re){for(var ae=p.header?{}:[],X=0;X<P.length;X++){var Q=X,U=P[X],U=((_e,B)=>(te=>(p.dynamicTypingFunction&&p.dynamicTyping[te]===void 0&&(p.dynamicTyping[te]=p.dynamicTypingFunction(te)),(p.dynamicTyping[te]||p.dynamicTyping)===!0))(_e)?B==="true"||B==="TRUE"||B!=="false"&&B!=="FALSE"&&((te=>{if(ce.test(te)&&(te=parseFloat(te),ee<te&&te<L))return 1})(B)?parseFloat(B):se.test(B)?new Date(B):B===""?null:B):B)(Q=p.header?X>=z.length?"__parsed_extra":z[X]:Q,U=p.transform?p.transform(U,Q):U);Q==="__parsed_extra"?(ae[Q]=ae[Q]||[],ae[Q].push(U)):ae[Q]=U}return p.header&&(X>z.length?fe("FieldMismatch","TooManyFields","Too many fields: expected "+z.length+" fields but parsed "+X,C+re):X<z.length&&fe("FieldMismatch","TooFewFields","Too few fields: expected "+z.length+" fields but parsed "+X,C+re)),ae}var ne;O&&(p.header||p.dynamicTyping||p.transform)&&(ne=1,!O.data.length||Array.isArray(O.data[0])?(O.data=O.data.map(F),ne=O.data.length):O.data=F(O.data,0),p.header&&O.meta&&(O.meta.fields=z),C+=ne)}function K(){return p.header&&z.length===0}function fe($,F,ne,P){$={type:$,code:F,message:ne},P!==void 0&&($.row=P),O.errors.push($)}G(p.step)&&(x=p.step,p.step=function($){O=$,K()?J():(J(),O.data.length!==0&&(R+=$.data.length,p.preview&&R>p.preview?y.abort():(O.data=O.data[0],x(O,j))))}),this.parse=function($,F,ne){var P=p.quoteChar||'"',P=(p.newline||(p.newline=this.guessLineEndings($,P)),E=!1,p.delimiter?G(p.delimiter)&&(p.delimiter=p.delimiter($),O.meta.delimiter=p.delimiter):((P=((re,ae,X,Q,U)=>{var _e,B,te,Se;U=U||[","," ","|",";",d.RECORD_SEP,d.UNIT_SEP];for(var De=0;De<U.length;De++){for(var be,Pe=U[De],le=0,ve=0,D=0,H=(te=void 0,new M({comments:Q,delimiter:Pe,newline:ae,preview:10}).parse(re)),ie=0;ie<H.data.length;ie++)X&&ue(H.data[ie])?D++:(be=H.data[ie].length,ve+=be,te===void 0?te=be:0<be&&(le+=Math.abs(be-te),te=be));0<H.data.length&&(ve/=H.data.length-D),1.99<ve&&(B===void 0||le<B||le===B&&Se<ve)&&(B=le,_e=Pe,Se=ve)}return{successful:!!(p.delimiter=_e),bestDelimiter:_e}})($,p.newline,p.skipEmptyLines,p.comments,p.delimitersToGuess)).successful?p.delimiter=P.bestDelimiter:(E=!0,p.delimiter=d.DefaultDelimiter),O.meta.delimiter=p.delimiter),N(p));return P.header=K(),p.preview&&p.header&&P.preview++,m=$,y=new M(P),O=y.parse(m,F,ne),J(),q?{meta:{paused:!0}}:O||{meta:{paused:!1}}},this.paused=function(){return q},this.pause=function(){q=!0,y.abort(),m=G(p.chunk)?"":m.substring(y.getCharIndex())},this.resume=function(){j.streamer._halted?(q=!1,j.streamer.parseChunk(m,!0)):setTimeout(j.resume,3)},this.aborted=function(){return T},this.abort=function(){T=!0,y.abort(),O.meta.aborted=!0,G(p.complete)&&p.complete(O),m=""},this.guessLineEndings=function(re,P){re=re.substring(0,1048576);var P=new RegExp(b(P)+"([^]*?)"+b(P),"gm"),ne=(re=re.replace(P,"")).split("\r"),P=re.split(`
|
|
2
|
+
`),re=1<P.length&&P[0].length<ne[0].length;if(ne.length===1||re)return`
|
|
3
3
|
`;for(var ae=0,X=0;X<ne.length;X++)ne[X][0]===`
|
|
4
4
|
`&&ae++;return ae>=ne.length/2?`\r
|
|
5
|
-
`:"\r"}}function b(
|
|
5
|
+
`:"\r"}}function b(p){return p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(p){var m=(p=p||{}).delimiter,y=p.newline,E=p.comments,x=p.step,L=p.preview,ee=p.fastMode,ce=null,se=!1,j=p.quoteChar==null?'"':p.quoteChar,R=j;if(p.escapeChar!==void 0&&(R=p.escapeChar),(typeof m!="string"||-1<d.BAD_DELIMITERS.indexOf(m))&&(m=","),E===m)throw new Error("Comment character same as delimiter");E===!0?E="#":(typeof E!="string"||-1<d.BAD_DELIMITERS.indexOf(E))&&(E=!1),y!==`
|
|
6
6
|
`&&y!=="\r"&&y!==`\r
|
|
7
7
|
`&&(y=`
|
|
8
|
-
`);var C=0,
|
|
9
|
-
`,
|
|
10
|
-
`,'"',
|
|
11
|
-
`+u),i.encoding==="utf-8"&&(u="\uFEFF"+u),t("export-finished",i.filename),!i.testing){const h=new Blob([u],{type:"text/csv;charset="+i.encoding});br.saveAs(h,i.filename)}};return(u,h)=>(o.openBlock(),o.createElementBlock("div",{id:n.value,"data-testid":"export-csv",onClick:c},[o.renderSlot(u.$slots,"default",{},()=>[o.createTextVNode("Download "+o.toDisplayString(r.filename),1)])],8,Cr))}}),Rr=o.defineComponent({__name:"DownloadCsv",props:{rows:{},headers:{},filename:{}},setup(r){const e=r,t=o.computed(()=>Object.keys(e.headers));return(i,n)=>(o.openBlock(),o.createElementBlock("div",null,[o.createVNode(kr,{data:r.rows,fields:t.value,filename:r.filename,labels:r.headers},{default:o.withCtx(()=>[o.renderSlot(i.$slots,"default")]),_:3},8,["data","fields","filename","labels"])]))}}),Sr={renderer:{not_configured:{title:"Chart is not fully configured",description:"Begin by choosing at least one metric"},noQueryBridge:"No query bridge provided. Unable to render dashboard.",unexpectedError:"An unexpected error has occurred.",trendRange:{"24h":"Last 24-hour summary","7d":"Last 7-day summary","30d":"Last 30-day summary"},edit:"Edit",duplicateTile:"Duplicate",exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",remove:"Remove",delete:"Delete",as_of_today:"As of today"},pdfExport:{branding:"Kong Konnect",generated:"Generated {timestamp}",dashboardNote:"For a live, interactive experience, open this dashboard in Konnect",pageOf:"{page} / {total}"},csvExport:{defaultFilename:"Chart export",exportAsCsv:"Export as CSV",dataError:"Error loading data",noDataRange:"No data in selected range",noDataRetry:"Please adjust the time period and try again",timeRangeSelected:"selected",exportPreview:"Export preview",exportTimeRange:"Time range",exportDescription:"Exports a CSV of the data represented in the chart.",maximumRecordAmount:"The number of groups is limited to {value}",previewRows:"Previewing {rowsMax} of {rowsTotal} row{plural}",downloadButton:"Export",cancelButton:"Cancel",UtcOffset:"UTC offset",Timestamp:"Timestamp"},chartLabels:{control_plane:"Control plane",data_plane_node_version:"Data plane node version",env:"Environment",gateway_service:"Gateway service",hostname:"Hostname",plugin:"Plugin",plugin_name:"Plugin name",plugin_scope:"Plugin scope",region:"Region",request_count:"Request count",route:"Route",status_code:"Status code",team:"Team",name:"Name",ai_count:"LLM request count",ai_plugin:"AI plugin",ai_provider:"Provider",ai_request_model:"Request model",ai_response_model:"Response model",error_rate:"Error rate",request_per_minute:"Requests per minute",requests_per_minute:"Requests per minute",response_latency_average:"Response latency (avg)",response_latency_p99:"Response latency (p99)",response_latency_p95:"Response latency (p95)",response_latency_p50:"Response latency (p50)",kong_latency_average:"Kong latency (avg)",kong_latency_p99:"Kong latency (p99)",kong_latency_p95:"Kong latency (p95)",kong_latency_p50:"Kong latency (p50)",kong_internal_latency_average:"Kong internal latency (avg)",kong_internal_latency_p99:"Kong internal latency (p99)",kong_internal_latency_p95:"Kong internal latency (p95)",kong_internal_latency_p50:"Kong internal latency (p50)",llm_cache_status:"Cache status",llm_embeddings_model:"Embeddings model",llm_embeddings_provider:"Embeddings provider",upstream_latency_average:"Upstream latency (avg)",upstream_latency_p99:"Upstream latency (p99)",upstream_latency_p95:"Upstream latency (p95)",upstream_latency_p50:"Upstream latency (p50)",response_size_p99:"Response size (p99)",response_size_p95:"Response size (p95)",response_size_p50:"Response size (p50)",response_size_average:"Response size (avg)",response_size_sum:"Response size (sum)",response_source:"Response source",request_size_p99:"Request size (p99)",request_size_p95:"Request size (p95)",request_size_p50:"Request size (p50)",request_size_average:"Request size (avg)",request_size_sum:"Request size (sum)",control_plane_group:"Control plane group",consumer:"Consumer",country_code:"Country",country:"Country",data_plane_node:"Data plane node",api_package:"API package",api_product:"API product",api_product_version:"API product version",portal:"Portal",realm:"Realm",runtime_group:"Runtime group",application:"Application",status_code_grouped:"Status code (grouped)",upstream_status_code:"Upstream status code",upstream_status_code_grouped:"Upstream status code group",time:"Time",Service:"Service",ServiceVersion:"Service version",Route:"Route",Application:"Application",RuntimeGroup:"Runtime group",GatewayService:"Gateway service",StatusCode:"Status code",CodeClass:"Status code (grouped)",Time:"Time",API_PRODUCT:"Api product",API_PRODUCT_VERSION:"API product version",RUNTIME_GROUP:"Runtime group",GATEWAY_SERVICE:"Gateway service",ROUTE:"Route",APPLICATION:"Application",STATUS_CODE:"Status code",STATUS_CODE_GROUPED:"Status code (grouped)",TIME:"Time",ORGANIZATION:"Organization",TotalRequests:"Request count",RequestsPerMinute:"Requests per minute",LatencyP99:"Response latency (p99)",LatencyP95:"Response latency (p95)",LatencyP50:"Response latency (p50)",LatencyAverage:"Response latency (avg)",UpstreamLatencyP99:"Upstream latency (p99)",UpstreamLatencyP95:"Upstream latency (p95)",UpstreamLatencyP50:"Upstream latency (p50)",UpstreamLatencyAverage:"Upstream latency (avg)",KongLatencyP99:"Kong latency (p99)",KongLatencyP95:"Kong latency (p95)",KongLatencyP50:"Kong latency (p50)",KongLatencyAverage:"Kong latency (avg)",ResponseSizeP99:"Response size (p99)",ResponseSizeP95:"Response size (p95)",ResponseSizeP50:"Response size (p50)",RequestSizeP99:"Request size (p99)",RequestSizeP95:"Request size (p95)",RequestSizeP50:"Request size (p50)",SuccessfulRequests:"Successful requests",SUCCESS:"Successful requests",FailedRequests:"Failed requests",FAILURE:"Failed requests","5XX":"5xx","4XX":"4xx","3XX":"3xx","2XX":"2xx","1XX":"1xx",REQUEST_COUNT:"Request count",REQUEST_PER_MINUTE:"Requests per minute",RESPONSE_LATENCY_P99:"Response latency",RESPONSE_LATENCY_P95:"Response latency",RESPONSE_LATENCY_P50:"Response latency",RESPONSE_SIZE_P99:"Response size (p99)",RESPONSE_SIZE_P95:"Response size (p95)",RESPONSE_SIZE_P50:"Response size (p50)",REQUEST_SIZE_P99:"Request size (p99)",REQUEST_SIZE_P95:"Request size (p95)",REQUEST_SIZE_P50:"Request size (p50)",CONTROL_PLANE:"Control plane",____OTHER____:"Others",ai_request_count:"Request count",total_tokens:"Total token count",prompt_tokens:"Prompt token count",completion_tokens:"Completion token count",cost:"Costs",llm_cache_embeddings_latency_average:"Embeddings latency (avg)",llm_cache_fetch_latency_average:"Fetch latency (avg)",llm_latency_average:"Llm latency (avg)","threshold-warning":"Warning threshold: {value}","threshold-error":"Error threshold: {value}","thatreshold-neutral":"Alert threshold: {value}",api:"API",vulnerability_count:"Vulnerability count",a2a_latency_average:"A2A latency (avg)",a2a_response_size_sum:"A2A response size (sum)",a2a_context_id:"A2A context ID",a2a_error:"A2A error",a2a_method:"A2A method",a2a_task_id:"A2A task ID",mcp_error:"MCP error",mcp_method:"MCP method",mcp_response_size_sum:"MCP response size (sum)",mcp_session_id:"MCP session ID",mcp_tool_name:"MCP tool name",mcp_response_body_size_sum:"MCP response size (sum)",control_plane_count:"Control plane count",service_count:"Gateway service count","record_bytes:sum":"Record size (sum)","record_count:sum":"Record count (sum)","request_count:sum":"Request count (sum)",route_count:"Route count",consumer_count:"Consumer count",plugin_count:"Plugin count",node_count:"Data plane node count",virtual_cluster_id:"Virtual cluster",backend_cluster_id:"Backend cluster",listener_id:"Listener",principal_name:"Principal name",principal_type:"Principal type",request_type:"Request type",topic_name:"Topic name",partition_index:"Partition index",api_key:"API key",data_plane_group:"Data plane group",managed_cache:"Managed cache",network:"Network",provider:"Provider",provider_region:"Provider region",cache_eviction_rate:"Cache eviction rate",cache_expiration_rate:"Cache expiration rate",cache_items_average:"Cache items (avg)",cache_memory_utilization_max:"Cache memory utilization (max)",cache_status:"Cache status",cache_hit_rate:"Cache hit rate"},jumpToExplore:"Explore",jumpToRequests:"View requests",query_aged_out_warning:"This tile was configured with {savedGranularity} granularity, which is no longer available. It now shows {currentGranularity} data, the closest available granularity.",granularities:{daily:"1 day",fiveMinutely:"5 minutes",hourly:"1 hour",minutely:"1 minute",tenMinutely:"10 minutes",tenSecondly:"10 seconds",thirtyMinutely:"30 minutes",thirtySecondly:"30 seconds",twelveHourly:"12 hours",twoHourly:"2 hours",weekly:"1 week",unknown:"Unknown"}};function si(){const r=Rt.createI18n("en-us",Sr);return{i18n:r,i18nT:Rt.i18nTComponent(r)}}const $e=170,it=6,ke="analytics-query-provider",wt="{entity-id}",oi="{cp-id}",ai="{timeframe}",li=30*1e3,ci=3e5,ui=36e5;function Tr(){const r=o.inject(ke);return{evaluateFeatureFlag:(t,i)=>r?r.evaluateFeatureFlagFn(t,i):i}}var bt={exports:{}},di;function Dr(){return di||(di=1,(function(r){var e=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function n(d,c,u){this.fn=d,this.context=c,this.once=u||!1}function s(d,c,u,h,f){if(typeof u!="function")throw new TypeError("The listener must be a function");var _=new n(u,h||d,f),w=t?t+c:c;return d._events[w]?d._events[w].fn?d._events[w]=[d._events[w],_]:d._events[w].push(_):(d._events[w]=_,d._eventsCount++),d}function a(d,c){--d._eventsCount===0?d._events=new i:delete d._events[c]}function l(){this._events=new i,this._eventsCount=0}l.prototype.eventNames=function(){var c=[],u,h;if(this._eventsCount===0)return c;for(h in u=this._events)e.call(u,h)&&c.push(t?h.slice(1):h);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(u)):c},l.prototype.listeners=function(c){var u=t?t+c:c,h=this._events[u];if(!h)return[];if(h.fn)return[h.fn];for(var f=0,_=h.length,w=new Array(_);f<_;f++)w[f]=h[f].fn;return w},l.prototype.listenerCount=function(c){var u=t?t+c:c,h=this._events[u];return h?h.fn?1:h.length:0},l.prototype.emit=function(c,u,h,f,_,w){var E=t?t+c:c;if(!this._events[E])return!1;var b=this._events[E],M=arguments.length,T,k;if(b.fn){switch(b.once&&this.removeListener(c,b.fn,void 0,!0),M){case 1:return b.fn.call(b.context),!0;case 2:return b.fn.call(b.context,u),!0;case 3:return b.fn.call(b.context,u,h),!0;case 4:return b.fn.call(b.context,u,h,f),!0;case 5:return b.fn.call(b.context,u,h,f,_),!0;case 6:return b.fn.call(b.context,u,h,f,_,w),!0}for(k=1,T=new Array(M-1);k<M;k++)T[k-1]=arguments[k];b.fn.apply(b.context,T)}else{var G=b.length,z;for(k=0;k<G;k++)switch(b[k].once&&this.removeListener(c,b[k].fn,void 0,!0),M){case 1:b[k].fn.call(b[k].context);break;case 2:b[k].fn.call(b[k].context,u);break;case 3:b[k].fn.call(b[k].context,u,h);break;case 4:b[k].fn.call(b[k].context,u,h,f);break;default:if(!T)for(z=1,T=new Array(M-1);z<M;z++)T[z-1]=arguments[z];b[k].fn.apply(b[k].context,T)}}return!0},l.prototype.on=function(c,u,h){return s(this,c,u,h,!1)},l.prototype.once=function(c,u,h){return s(this,c,u,h,!0)},l.prototype.removeListener=function(c,u,h,f){var _=t?t+c:c;if(!this._events[_])return this;if(!u)return a(this,_),this;var w=this._events[_];if(w.fn)w.fn===u&&(!f||w.once)&&(!h||w.context===h)&&a(this,_);else{for(var E=0,b=[],M=w.length;E<M;E++)(w[E].fn!==u||f&&!w[E].once||h&&w[E].context!==h)&&b.push(w[E]);b.length?this._events[_]=b.length===1?b[0]:b:a(this,_)}return this},l.prototype.removeAllListeners=function(c){var u;return c?(u=t?t+c:c,this._events[u]&&a(this,u)):(this._events=new i,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=t,l.EventEmitter=l,r.exports=l})(bt)),bt.exports}var Or=Dr();const Nr=yr(Or);class vt extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,vt)}}const hi=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function zr(r,e){const{milliseconds:t,fallback:i,message:n,customTimers:s={setTimeout,clearTimeout},signal:a}=e;let l,d;const u=new Promise((h,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(a?.aborted){f(hi(a));return}if(a&&(d=()=>{f(hi(a))},a.addEventListener("abort",d,{once:!0})),r.then(h,f),t===Number.POSITIVE_INFINITY)return;const _=new vt;l=s.setTimeout.call(void 0,()=>{if(i){try{h(i())}catch(w){f(w)}return}typeof r.cancel=="function"&&r.cancel(),n===!1?h():n instanceof Error?f(n):(_.message=n??`Promise timed out after ${t} milliseconds`,f(_))},t)}).finally(()=>{u.clear(),d&&a&&a.removeEventListener("abort",d)});return u.clear=()=>{s.clearTimeout.call(void 0,l),l=void 0},u}function Mr(r,e,t){let i=0,n=r.length;for(;n>0;){const s=Math.trunc(n/2);let a=i+s;t(r[a],e)<=0?(i=++a,n-=s+1):n=s}return i}const Lr=100;class fi{#t=[];#e=0;enqueue(e,t){const{priority:i=0,id:n}=t??{},{size:s}=this,a={priority:i,id:n,run:e};if(s===0){this.#t.length=0,this.#e=0,this.#t.push(a);return}if(this.#t.at(-1).priority>=i){this.#t.push(a);return}this.#s();const l=Mr(this.#t,a,(d,c)=>c.priority-d.priority);this.#t.splice(l,0,a)}setPriority(e,t){const i=this.#t.findIndex((s,a)=>a>=this.#e&&s.id===e);if(i===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);const[n]=this.#t.splice(i,1);this.enqueue(n.run,{priority:t,id:e})}remove(e){const t=this.#t.findIndex((i,n)=>n<this.#e?!1:typeof e=="string"?i.id===e:i.run===e);t!==-1&&this.#t.splice(t,1)}dequeue(){if(this.#e===this.#t.length)return;const e=this.#t[this.#e];return this.#e++,this.#e===this.#t.length?(this.#t.length=0,this.#e=0):this.#e>Lr&&this.#e>this.#t.length/2&&this.#s(),e?.run}filter(e){const t=[];for(let i=this.#e;i<this.#t.length;i++){const n=this.#t[i];n.priority===e.priority&&t.push(n.run)}return t}get size(){return this.#t.length-this.#e}#s(){this.#e!==0&&(this.#t.splice(0,this.#e),this.#e=0)}}class Ar extends Nr{#t;#e;#s=0;#f;#p=!1;#w=!1;#l;#S=0;#b=0;#c;#u;#a;#o=[];#r=0;#i;#T;#n=0;#g;#d;#M=1n;#y=new Map;#v=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:fi,strict:!1,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#t=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#e=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#f=e.intervalCap,this.#l=e.interval,this.#a=e.strict,this.#i=new e.queueClass,this.#T=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#d=e.autoStart===!1,this.#F()}#E(e){for(;this.#r<this.#o.length;){const i=this.#o[this.#r];if(i!==void 0&&e-i>=this.#l)this.#r++;else break}(this.#r>100&&this.#r>this.#o.length/2||this.#r===this.#o.length)&&(this.#o=this.#o.slice(this.#r),this.#r=0)}#L(e){this.#a?this.#o.push(e):this.#s++}#A(){this.#a?this.#o.length>this.#r&&this.#o.pop():this.#s>0&&this.#s--}#x(){return this.#o.length-this.#r}get#I(){return this.#e?!0:this.#a?this.#x()<this.#f:this.#s<this.#f}get#P(){return this.#n<this.#g}#q(){this.#n--,this.#n===0&&this.emit("pendingZero"),this.#_(),this.emit("next")}#H(){this.#u=void 0,this.#N(),this.#O()}#B(e){if(this.#a){if(this.#E(e),this.#x()>=this.#f){const i=this.#o[this.#r],n=this.#l-(e-i);return this.#C(n),!0}return!1}if(this.#c===void 0){const t=this.#S-e;if(t<0){if(this.#b>0){const i=e-this.#b;if(i<this.#l)return this.#C(this.#l-i),!0}this.#s=this.#t?this.#n:0}else return this.#C(t),!0}return!1}#C(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#H()},e))}#k(){this.#c&&(clearInterval(this.#c),this.#c=void 0)}#D(){this.#u&&(clearTimeout(this.#u),this.#u=void 0)}#_(){if(this.#i.size===0){if(this.#k(),this.emit("empty"),this.#n===0){if(this.#D(),this.#a&&this.#r>0){const t=Date.now();this.#E(t)}this.emit("idle")}return!1}let e=!1;if(!this.#d){const t=Date.now(),i=!this.#B(t);if(this.#I&&this.#P){const n=this.#i.dequeue();this.#e||(this.#L(t),this.#m()),this.emit("active"),n(),i&&this.#O(),e=!0}}return e}#O(){this.#e||this.#c!==void 0||this.#a||(this.#c=setInterval(()=>{this.#N()},this.#l),this.#S=Date.now()+this.#l)}#N(){this.#a||(this.#s===0&&this.#n===0&&this.#c&&this.#k(),this.#s=this.#t?this.#n:0),this.#R(),this.#m()}#R(){for(;this.#_(););}get concurrency(){return this.#g}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#g=e,this.#R()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#i.setPriority(e,t)}async add(e,t={}){if(t={timeout:this.timeout,...t,id:t.id??(this.#M++).toString()},t.timeout!==void 0&&!(Number.isFinite(t.timeout)&&t.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${t.timeout}\` (${typeof t.timeout})`);return new Promise((i,n)=>{const s=Symbol(`task-${t.id}`);let a=()=>{};const l=async()=>{a(),this.#n++,this.#y.set(s,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let c;try{try{t.signal?.throwIfAborted()}catch(f){throw this.#$(),this.#y.delete(s),f}this.#b=Date.now();let u=e({signal:t.signal});if(t.timeout!==void 0&&(u=zr(Promise.resolve(u),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#n} running, ${this.#i.size} waiting)`})),t.signal){const{signal:f}=t;u=Promise.race([u,new Promise((_,w)=>{c=()=>{w(f.reason)},f.addEventListener("abort",c,{once:!0})})])}const h=await u;i(h),this.emit("completed",h)}catch(u){n(u),this.emit("error",u)}finally{c&&t.signal?.removeEventListener("abort",c),this.#y.delete(s),queueMicrotask(()=>{this.#q()})}};this.#i.enqueue(l,t);const d=()=>{if(this.#i instanceof fi){this.#i.remove(l);return}this.#i.remove?.(t.id)};if(t.signal){const{signal:c}=t,u=()=>{a(),d(),n(c.reason),this.#_(),this.emit("next")};if(a=()=>{c.removeEventListener("abort",u),this.#v.delete(a)},c.aborted){u();return}c.addEventListener("abort",u,{once:!0}),this.#v.add(a)}this.emit("add"),this.#_()})}async addAll(e,t){return Promise.all(e.map(async i=>this.add(i,t)))}start(){return this.#d?(this.#d=!1,this.#R(),this):this}pause(){this.#d=!0}clear(){for(const e of this.#v)e();this.#i=new this.#T,this.#k(),this.#z(),this.emit("empty"),this.#n===0&&(this.#D(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#i.size!==0&&await this.#h("empty")}async onSizeLessThan(e){this.#i.size<e||await this.#h(["next","active"],()=>this.#i.size<e)}async onIdle(){this.#n===0&&this.#i.size===0||await this.#h("idle")}async onPendingZero(){this.#n!==0&&await this.#h("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#h("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#h("rateLimitCleared")}onError(){return new Promise((e,t)=>{const i=n=>{this.off("error",i),t(n)};this.on("error",i)})}async#h(e,t){const i=Array.isArray(e)?e:[e];return new Promise(n=>{const s=()=>{if(!(t&&!t())){for(const a of i)this.off(a,s);n()}};for(const a of i)this.on(a,s)})}get size(){return this.#i.size}sizeBy(e){return this.#i.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#d}#F(){this.#e||(this.on("add",()=>{this.#i.size>0&&this.#m()}),this.on("next",()=>{this.#m()}))}#m(){this.#e||this.#w||(this.#w=!0,queueMicrotask(()=>{this.#w=!1,this.#z()}))}#$(){this.#e||(this.#A(),this.#m())}#z(){const e=this.#p;if(this.#e||this.#i.size===0){e&&(this.#p=!1,this.emit("rateLimitCleared"));return}let t;if(this.#a){const n=Date.now();this.#E(n),t=this.#x()}else t=this.#s;const i=t>=this.#f;i!==e&&(this.#p=i,this.emit(i?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#p}get isSaturated(){return this.#n===this.#g&&this.#i.size>0||this.isRateLimited&&this.#i.size>0}get runningTasks(){return[...this.#y.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}}const Ir=()=>{const r=ze.useAnalyticsConfigStore(),e=o.inject(ke);if(!e)return;if(e.queryFnOverride){console.warn("Detected incorrect use of useRequestQueue. This composable should not be used in nested components. Please discuss with team-data or report an issue if you feel you have a use case.");return}const t=new Ar({carryoverConcurrencyCount:!0,concurrency:r.maxParallelRequests,interval:r.requestInterval,intervalCap:r.requestIntervalCap}),i={...e,queryFnOverride:!0,queryFn:(n,s)=>t.add(()=>e.queryFn(n,s))};o.provide(ke,i)};const Pr=typeof window<"u";let mi;process.env.NODE_ENV;const pi=process.env.NODE_ENV!=="production"?Symbol("pinia"):Symbol();var gi;(function(r){r.direct="direct",r.patchObject="patch object",r.patchFunction="patch function"})(gi||(gi={})),process.env.NODE_ENV;function Ve(r){const e=o.toRaw(r),t={};for(const i in e){const n=e[i];n.effect?t[i]=o.computed({get:()=>r[i],set(s){r[i]=s}}):(o.isRef(n)||o.isReactive(n))&&(t[i]=o.toRef(r,i))}return t}const we=r=>r?.chart.type==="table",qr=(r,e)=>{const t=r.header_description??("description"in r.chart?r.chart.description:void 0);if(t)return t.replaceAll(ai,e)||void 0},Hr=["basic","api_usage","llm_usage","agentic_usage","platform","platform_usage","managed_cache_usage",void 0],Br=r=>Hr.includes(r);function Fr({queryBridge:r,context:e,definition:t,chartData:i}){const n=o.ref(""),s=o.ref(""),a=o.ref(void 0),l=o.ref(void 0),d=ze.useAnalyticsConfigStore(),c=ze.useDatasourceConfigStore(),{stripUnknownFilters:u,loading:h}=Ve(c),f=o.computed(()=>we(t.value));o.onMounted(async()=>{n.value=await r?.exploreBaseUrl?.()??"",s.value=await r?.requestsBaseUrl?.()??""});const _=o.computed(()=>d.analytics&&d.percentiles),w=o.computed(()=>{const y=t.value.chart.type;return["golden_signals","gauge"].includes(y)?!1:y==="top_n"?e.value.editable||e.value.showTileActions:!0}),E=o.computed(()=>s.value&&t.value.query&&!f.value&&t.value.query.datasource!=="llm_usage"&&t.value.query.datasource!=="managed_cache_usage"&&!le.isPlatformDatasource(t.value.query.datasource)&&_.value&&!h.value),b=o.computed(()=>n.value&&t.value.query&&Br(t.value.query.datasource)&&_.value&&!h.value),M=o.computed(()=>i.value?le.msToGranularity(i.value.meta.granularity_ms):void 0),T=o.computed(()=>{const y=t.value,v=[...e.value.filters,...y.query.filters??[]],x="metrics"in y.query?y.query.metrics:void 0,N=y.query?.datasource??"api_usage";return u.value({datasource:N,filters:v,queryFields:x})}),k=o.computed(()=>{if(!b.value||!w.value)return"";const y=t.value;if(we(y))return p({...y.query,filters:T.value});const v=y.query.time_range||e.value.timeSpec,x=m(v,T.value);return p(x)}),G=o.computed(()=>{if(!E.value||!w.value)return"";const y=T.value,v=t.value;if(we(v))return"";const x=Z(v.query.time_range||e.value.timeSpec,y);return z(x)}),z=y=>E.value?`${s.value}?q=${JSON.stringify(y)}`:"",Z=(y,v)=>{const x=i.value?.meta?.start?new Date(i.value.meta.start):void 0,N=i.value?.meta?.end?new Date(i.value.meta.end):void 0;return{filter:v,timeframe:{timePeriodsKey:y.type==="relative"?y.time_range:"custom",start:y.type==="absolute"?x:void 0,end:y.type==="absolute"?N:void 0}}},U=(y,v)=>({filter:v,timeframe:{timePeriodsKey:y.type==="relative"?y.time_range:"custom",start:y.type==="absolute"?y.start:void 0,end:y.type==="absolute"?y.end:void 0}}),m=(y,v)=>{const x=t.value;if(we(x))throw new Error("Cannot build a chart explore query for table chart definitions");const N=[...x.query.dimensions??[]],K=[...x.query.metrics??[]];return{filters:v,metrics:K,dimensions:N,time_range:y,granularity:x.query.granularity||M.value||void 0}},p=y=>{if(!b.value)return"";const v=t.value.query.datasource&&t.value.query.datasource!=="basic"?t.value.query.datasource:"api_usage";return`${n.value}?q=${JSON.stringify(y)}&d=${v}&c=${t.value.chart.type}`};return o.watch([E,b],([y,v])=>{y&&(a.value={href:""}),v&&(l.value={href:""})}),{exploreLinkKebabMenu:k,requestsLinkKebabMenu:G,canShowKebabMenu:w,canGenerateRequestsLink:E,canGenerateExploreLink:b,requestsLinkZoomActions:a,exploreLinkZoomActions:l,buildExploreQuery:m,buildRequestsQueryZoomActions:U,buildExploreLink:p,buildRequestLink:z}}function $r(){const r=o.inject(ke),e=ze.useDatasourceConfigStore(),{stripUnknownFilters:t}=Ve(e);let i=null;return o.onUnmounted(()=>{i?.abort()}),{issueQuery:async(s,a,l)=>{if(!r)throw new Error("Query bridge is not defined");i?.abort();const d=new AbortController;i=d,await e.isReady();const{datasource:c,limit:u,...h}=s,f=c||"basic",_=le.isPlatformDatasource(f),w=t.value({datasource:f,filters:[...s.filters??[],...a.filters],queryFields:s.metrics}).filter(({operator:M})=>!_||!le.requestFilterTypeEmptyV2.some(T=>T===M));let E=s.time_range;E?E.tz||(E={...E,tz:a.tz}):E={...a.timeSpec,tz:a.tz};const b={datasource:f,query:{...h,time_range:E,filters:w,limit:l??u}};return r.queryFn(b,d)}}}function Ur({context:r,globalFilters:e=o.ref([]),isFullscreen:t=o.ref(!1),preview:i=o.ref(!1)}){const n=ze.useAnalyticsConfigStore(),s=ze.useDatasourceConfigStore(),{loading:a}=Ve(n),{loading:l}=Ve(s),d=o.computed(()=>r.value.timeSpec?r.value.timeSpec:{type:"relative",time_range:n.defaultQueryTimeForOrg}),c=o.computed(()=>{let{tz:h,refreshInterval:f,editable:_,showTileActions:w}=r.value;const E=[...r.value.filters??[],...e.value];if(h||(h=new Intl.DateTimeFormat().resolvedOptions().timeZone),f===void 0&&(f=li),t.value){let M=!1;if(d.value.type==="relative")M=["15m","1h","6h","12h","24h"].includes(d.value.time_range);else{const G=d.value.start.getTime(),z=d.value.end.getTime();M=Math.abs(z-G)<=864e5}const T=new Date().getTime();d.value.type==="absolute"&&d.value.end.getTime()<T||d.value.type==="relative"&&["previous_week","previous_month"].includes(d.value.time_range)?f=0:M?f=ci:f=ui}(_===void 0||i.value)&&(_=!1),w===void 0&&(w=!0);const b=!i.value&&!!o.getCurrentInstance()?.vnode?.props?.onTileTimeRangeZoom;return{filters:E,tz:h,timeSpec:d.value,refreshInterval:f,editable:_,showTileActions:w&&!i.value,showTileZoomActions:!i.value,zoomable:b}}),u=o.computed(()=>!!r.value.timeSpec||!a.value&&!l.value);return{internalContext:c,queryReady:u}}const Wr=6,yi=6,_i=4;function Gr(r,e){const{pageWidth:t,pageHeight:i,margin:n}=e,s=n+1,a=n+e.headerHeight-3,l=i-n-yi+3,d=l+4;e.title&&(r.setFont("helvetica","bold"),r.setFontSize(11),r.setTextColor(60),r.text(e.title,n,s)),r.setFont("helvetica","normal"),r.setFontSize(8),r.setTextColor(120),r.text(e.generatedAt,t-n,s,{align:"right"}),e.subtitle&&r.text(e.subtitle,n,s+_i),r.setDrawColor(220),r.line(n,a,t-n,a),r.line(n,l,t-n,l),r.setFont("helvetica","bold"),r.setTextColor(60),r.text(e.branding,n,d);const c=r.getTextWidth(e.branding);r.setFont("helvetica","normal");const u=` ${e.dashboardNote}`;e.dashboardUrl?(r.setTextColor(0,68,204),r.textWithLink(u,n+c,d,{url:e.dashboardUrl})):(r.setTextColor(120),r.text(u,n+c,d)),r.setTextColor(120),r.text(e.pageLabel,t-n,d,{align:"right"})}function Yr(r){const e=r.querySelector(".kong-ui-public-grid-layout, .grid-stack");if(!e)return[];const t=e.querySelectorAll(":scope > .grid-cell:not(.empty-cell), :scope > .grid-stack-item");if(!t.length)return[];const i=r.getBoundingClientRect().top,n=new Map;return t.forEach(s=>{const a=s.getBoundingClientRect(),l=Math.round(a.top-i),d=Math.round(a.bottom-i),c=n.get(l);n.set(l,c!==void 0?Math.max(c,d):d)}),[...n.entries()].map(([s,a])=>({top:s,bottom:a})).sort((s,a)=>s.top-a.top)}function Vr(r,e,t,i){if(!r.length){const a=[];let l=0;for(;l<e;){const d=Math.min(t,e-l);a.push({startY:l,height:d}),l+=d}return a}const n=[];let s=0;for(const a of r){const l=a.top*i,d=a.bottom*i;d-s>t&&(l>s?(n.push({startY:s,height:l-s}),s=l):(n.push({startY:s,height:d-s}),s=d))}return s<e&&n.push({startY:s,height:e-s}),n}function jr(r){const{i18n:e}=si(),t=o.ref({status:"idle"});async function i(n={}){const{filename:s="dashboard-export",title:a,subtitle:l,dashboardUrl:d,orientation:c="landscape",pageSize:u="letter",margin:h=4,scale:f=2,exclude:_=[".tile-actions",".tooltip",".popover",".dropdown-popover"],output:w="download",onBeforeCapture:E,onAfterCapture:b}=n,M=r.value;if(!M){t.value={status:"error",error:new Error("Dashboard layout container not found.")};return}try{t.value={status:"preparing"},await E?.();const[{snapdom:T},{jsPDF:k}]=await Promise.all([import("@zumer/snapdom"),import("jspdf")]);t.value={status:"capturing"};const G={name:"kong-webgl-snapshot",beforeClone:()=>le.prepareForCapture(),afterClone:()=>le.restoreAfterCapture()},z=await T.toCanvas(M,{scale:f,exclude:_,excludeMode:"remove",embedFonts:!0,plugins:[G]}),Z=Yr(M),U=M.getBoundingClientRect().width,m=U?z.width/U:f;t.value={status:"generating"};const p=new Date,y=new k({orientation:c,unit:"mm",format:u}),v=y.internal.pageSize.getWidth(),x=y.internal.pageSize.getHeight(),N=Wr+(l?_i:0),K=v-h*2,ce=x-h*2-N-yi,ie=z.width/K,B=ce*ie,R=Vr(Z,z.height,B,m),C={title:a,subtitle:l,dashboardUrl:d,generatedAt:e.t("pdfExport.generated",{timestamp:p.toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"})}),branding:e.t("pdfExport.branding"),dashboardNote:e.t("pdfExport.dashboardNote"),pageWidth:v,pageHeight:x,headerHeight:N,margin:h};for(let P=0;P<R.length;P++){P>0&&y.addPage();const{startY:S,height:L}=R[P],O=document.createElement("canvas");O.width=z.width,O.height=L,O.getContext("2d").drawImage(z,0,S,z.width,L,0,0,z.width,L),y.addImage(O.toDataURL("image/png"),"PNG",h,h+N,K,L/ie),Gr(y,{...C,pageLabel:e.t("pdfExport.pageOf",{page:String(P+1),total:String(R.length)})})}if(w==="blob"){const P=y.output("blob");return t.value={status:"complete",pageCount:R.length},P}y.save(s),t.value={status:"complete",pageCount:R.length}}catch(T){t.value={status:"error",error:T}}finally{le.restoreAfterCapture(),await b?.()}}return{exportPdf:i,exportState:o.readonly(t)}}const me={useContextLinks:Fr,useDashboardInternalContext:Ur,useEvaluateFeatureFlag:Tr,useExportPdf:jr,useI18n:si,useIssueQuery:$r,useRequestQueue:Ir},Kr={class:"kong-ui-public-csv-export-modal"},Xr={key:0,class:"selected-range"},Qr={key:4,class:"text-muted",tag:"span"},wi=3,bi=o.defineComponent({__name:"CsvExportModal",props:{exportState:{},filename:{},modalDescription:{default:void 0}},emits:["closeModal"],setup(r,{emit:e}){const{i18n:t}=me.useI18n(),i=r,n=e,s=`${i.filename.replace(/\s+/g,"-").toLowerCase()}-${new Date().toISOString().slice(0,10)}.csv`,a=o.ref(1),l=o.computed(()=>f.value.rows.length),d=o.computed(()=>i.exportState.status==="success"&&!!i.exportState.chartData?.data?.length),c=o.computed(()=>{if(i.exportState.status!=="success"||!i.exportState.chartData?.meta)return"";const{start:w,end:E}=i.exportState.chartData.meta;return w&&E?`${le.formatTimestamp(new Date(w))} - ${le.formatTimestamp(new Date(E),{includeTZ:!0})}`:""}),u=o.computed(()=>i.exportState.status!=="success"?"":t.t("csvExport.previewRows",{rowsMax:Math.min(wi,l.value),rowsTotal:l.value,plural:l.value===1?"":"s"})),h=()=>{n("closeModal")},f=o.computed(()=>{if(i.exportState.status!=="success"||!d.value||!i.exportState.chartData?.meta.metric_names)return{headers:[],rows:[],csvHeaders:{}};const w=i.exportState.chartData,E=w.data.some(z=>z.timestamp!==w.data[0].timestamp),b=w.data.map(z=>{const Z=new Date(z.timestamp);return{...Object.keys(z.event).reduce((m,p)=>{if(p in w.meta.display){const y=z.event[p],v=w.meta.display[p];m[p]=y&&v&&v[y].name||z.event[p]}else m[p]=z.event[p];return m},{}),...E?{timestamp:Jt(Z,"yyyy-MM-dd HH:mm:ss"),tzOffset:Jt(Z,"XXX")}:{}}});let M=[];E&&(M=[{label:t.t("csvExport.Timestamp"),key:"timestamp"},{label:t.t("csvExport.UtcOffset"),key:"tzOffset"}]);const T="display"in i.exportState.chartData.meta&&i.exportState.chartData.meta.display?i.exportState.chartData.meta.display:{},k=[...M,...Object.keys(T).map(z=>({label:t.t(`chartLabels.${z}`),key:z})),...i.exportState.chartData.meta.metric_names.map(z=>({label:t.t(`chartLabels.${z}`),key:z}))],G=k.reduce((z,Z)=>(z[Z.key]=Z.label,z),{});return{headers:k,csvHeaders:G,rows:b}}),_=async()=>{if(i.exportState.status!=="success")return{total:0,data:[]};const{rows:w}=f.value;return{total:Number(w.length)||0,data:w.slice(0,wi)}};return o.watch(f,()=>{a.value++}),(w,E)=>{const b=o.resolveComponent("KSkeleton"),M=o.resolveComponent("KEmptyState"),T=o.resolveComponent("KTableData"),k=o.resolveComponent("KTooltip"),G=o.resolveComponent("KButton"),z=o.resolveComponent("KModal");return o.openBlock(),o.createElementBlock("div",Kr,[o.createVNode(z,{class:"vitals-report","data-testid":"csv-export-modal","show-dismiss-icon":"",title:o.unref(t).t("csvExport.exportPreview"),visible:"",onCancel:h,onKeyup:o.withKeys(h,["esc"])},{default:o.withCtx(()=>[o.createElementVNode("div",null,[r.exportState.status==="success"&&d.value?(o.openBlock(),o.createElementBlock("div",Xr,[o.createElementVNode("p",null,o.toDisplayString(r.modalDescription?r.modalDescription:o.unref(t).t("csvExport.exportDescription")),1),o.createElementVNode("p",null,o.toDisplayString(o.unref(t).t("csvExport.exportTimeRange"))+": "+o.toDisplayString(c.value),1)])):o.createCommentVNode("",!0),r.exportState.status==="loading"?(o.openBlock(),o.createBlock(b,{key:1,class:"chart-skeleton",type:"table"})):r.exportState.status==="success"?(o.openBlock(),o.createBlock(T,{key:2,class:"vitals-table",fetcher:_,"fetcher-cache-key":String(a.value),headers:f.value.headers,"hide-pagination":"","row-hover":!1,sortable:!1},{"empty-state":o.withCtx(()=>[o.createVNode(M,{"action-button-visible":!1},{title:o.withCtx(()=>[o.createElementVNode("h5",null,o.toDisplayString(o.unref(t).t("csvExport.noDataRange")),1)]),default:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(o.unref(t).t("csvExport.noDataRetry")),1)]),_:1})]),_:1},8,["fetcher-cache-key","headers"])):r.exportState.status==="error"?(o.openBlock(),o.createBlock(M,{key:3,"action-button-visible":!1},{title:o.withCtx(()=>[o.createElementVNode("h5",null,o.toDisplayString(o.unref(t).t("csvExport.dataError")),1)]),_:1})):o.createCommentVNode("",!0),r.exportState.status==="success"&&d.value?(o.openBlock(),o.createElementBlock("div",Qr,[o.createTextVNode(o.toDisplayString(u.value)+" ",1),o.createVNode(k,{class:"preview-tooltip",placement:"right",text:o.unref(t).t("csvExport.maximumRecordAmount",{value:o.unref(le.EXPORT_RECORD_LIMIT)})},{default:o.withCtx(()=>[o.createVNode(o.unref(Ne.InfoIcon),{color:`var(--kui-color-text-neutral, ${o.unref(_t)})`,size:`var(--kui-icon-size-30, ${o.unref(gr)})`},null,8,["color","size"])]),_:1},8,["text"])])):o.createCommentVNode("",!0)])]),"footer-actions":o.withCtx(()=>[o.createVNode(G,{appearance:"tertiary",class:"cancel-btn",onClick:h},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(t).t("csvExport.cancelButton")),1)]),_:1}),o.createVNode(Rr,{class:"vitals-report-export-button",filename:s,headers:f.value.csvHeaders,rows:f.value.rows},{default:o.withCtx(()=>[o.createVNode(G,{appearance:"primary","data-testid":"csv-download-button",disabled:r.exportState.status!=="success"||!d.value},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(t).t("csvExport.downloadButton")),1)]),_:1},8,["disabled"])]),_:1},8,["headers","rows"])]),_:1},8,["title"])])}}});var vi=(r=>(r.VALIDATING="VALIDATING",r.VALIDATING_HAS_DATA="VALIDATING_HAS_DATA",r.PENDING="PENDING",r.SUCCESS="SUCCESS",r.SUCCESS_HAS_DATA="SUCCESS_HAS_DATA",r.ERROR="ERROR",r.STALE_IF_ERROR="STALE_IF_ERROR",r))(vi||{});const Zr=r=>r?!!(Object.keys(r)?.length||r.data?.length||r.data?.data?.length||!r.data?.data&&typeof r.data=="object"&&Object.keys(r?.data).length):!1;function Jr(r=o.ref({}),e,t,i=Zr){const n=o.ref("PENDING");return o.watchEffect(()=>{const s=i(r.value);if(r.value&&s&&t.value){n.value="VALIDATING_HAS_DATA";return}if(r.value&&t.value){n.value="VALIDATING";return}if(r.value&&e.value){n.value="STALE_IF_ERROR";return}if(r.value===void 0&&!e.value){n.value="PENDING";return}if(r.value&&!e.value&&s){n.value="SUCCESS_HAS_DATA";return}if(r.value&&!e.value){n.value="SUCCESS";return}r.value===void 0&&e&&(n.value="ERROR")}),{state:n,swrvState:vi}}const nt=o.defineComponent({__name:"QueryDataProvider",props:{context:{},limitOverride:{},query:{},queryReady:{type:Boolean},refreshCounter:{}},emits:["chart-data","query-complete"],setup(r,{emit:e}){const t=r,i=e,{i18n:n}=me.useI18n(),{issueQuery:s}=me.useIssueQuery(),a=o.inject(ke),l=()=>t.queryReady&&a?JSON.stringify([t.query,t.context,t.refreshCounter]):null,{data:d,error:c,isValidating:u}=Li(l,async()=>{const T=l();try{const k=await s(t.query,t.context,t.limitOverride);return l()!==T?void 0:(_.value=null,k)}catch(k){if(l()!==T)return;throw _.value=Xe.handleQueryError(k),k}finally{l()===T&&i("query-complete")}},{refreshInterval:t.context.refreshInterval,revalidateOnFocus:!1,shouldRetryOnError:!1}),{state:h,swrvState:f}=Jr(d,c,u),_=o.ref(null),w=o.computed(()=>h.value===f.ERROR||!!_.value),E=o.computed(()=>!t.queryReady||h.value===f.PENDING),b=o.ref(),M=o.computed(()=>d.value??(t.queryReady&&h.value===f.PENDING?b.value:void 0));return o.watch([()=>d.value,()=>h.value],([T,k])=>{T&&(k==="SUCCESS_HAS_DATA"||k==="SUCCESS")&&T!==b.value&&(b.value=T,i("chart-data",T))}),(T,k)=>{const G=o.resolveComponent("KSkeleton"),z=o.resolveComponent("KEmptyState");return(E.value||!o.unref(d)&&!w.value)&&!M.value?(o.openBlock(),o.createBlock(G,{key:0,class:"chart-skeleton",type:"table"})):w.value&&!E.value?(o.openBlock(),o.createBlock(z,{key:1,"action-button-visible":!1,"data-testid":"chart-empty-state"},o.createSlots({icon:o.withCtx(()=>[_.value?.type==="forbidden"?(o.openBlock(),o.createBlock(o.unref(Ne.VisibilityOffIcon),{key:0})):(o.openBlock(),o.createBlock(o.unref(Ne.WarningOutlineIcon),{key:1}))]),title:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(_.value?.message||o.unref(n).t("renderer.unexpectedError")),1)]),_:2},[_.value?.details?{name:"default",fn:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(_.value.details),1)]),key:"0"}:void 0]),1024)):M.value?o.renderSlot(T.$slots,"default",{key:2,data:M.value}):o.createCommentVNode("",!0)}}}),es=o.defineComponent({__name:"SimpleChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){const e=r,t=o.computed(()=>e.chartOptions.type==="single_value");return(i,n)=>(o.openBlock(),o.createBlock(nt,{context:r.context,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},{default:o.withCtx(({data:s})=>[o.createElementVNode("div",{class:o.normalizeClass(["analytics-chart",{"single-value":t.value}]),style:o.normalizeStyle(t.value?void 0:{height:`${r.height}px`})},[o.createVNode(o.unref(Xe.SimpleChart),{"chart-data":s,"chart-options":r.chartOptions,"synthetics-data-key":t.value?void 0:r.chartOptions.synthetics_data_key},null,8,["chart-data","chart-options","synthetics-data-key"])],6)]),_:1},8,["context","query","query-ready","refresh-counter"]))}}),Ae=(r,e)=>{const t=r.__vccOpts||r;for(const[i,n]of e)t[i]=n;return t},Ei=Ae(es,[["__scopeId","data-v-2cbfac70"]]),ts={class:"analytics-chart"},Et=Ae(o.defineComponent({__name:"BaseAnalyticsChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{},extraProps:{}},emits:["edit-tile","chart-data","zoom-time-range","view-requests","select-chart-range"],setup(r,{emit:e}){const t=r,i=e,{i18n:n}=me.useI18n(),s=o.computed(()=>({type:t.chartOptions.type,stacked:t.chartOptions.stacked??!1,chartDatasetColors:t.chartOptions.chart_dataset_colors,threshold:t.chartOptions.threshold,hideTruncationWarning:t.query.limit!==void 0&&t.query.limit>0})),a=o.computed(()=>t.context.zoomable),l=()=>{i("edit-tile")},d=c=>{i("chart-data",c)};return(c,u)=>{const h=o.resolveComponent("KDropdownItem");return o.openBlock(),o.createBlock(nt,{context:r.context,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter,onChartData:d},{default:o.withCtx(({data:f})=>[o.createElementVNode("div",ts,[o.createVNode(o.unref(Xe.AnalyticsChart),o.mergeProps({"chart-data":f,"chart-options":s.value,"explore-link":r.exploreLink,"legend-position":"bottom","requests-link":r.requestsLink,"synthetics-data-key":r.chartOptions.synthetics_data_key,"timeseries-zoom":a.value,"tooltip-title":""},r.extraProps,{onSelectChartRange:u[0]||(u[0]=_=>i("select-chart-range",_)),onZoomTimeRange:u[1]||(u[1]=_=>i("zoom-time-range",_))}),o.createSlots({_:2},[r.context.editable?{name:"menu-items",fn:o.withCtx(()=>[o.createVNode(h,{onClick:l},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(n).t("renderer.edit")),1)]),_:1})]),key:"0"}:void 0]),1040,["chart-data","chart-options","explore-link","requests-link","synthetics-data-key","timeseries-zoom"])])]),_:1},8,["context","query","query-ready","refresh-counter"])}}}),[["__scopeId","data-v-e1e7f610"]]),xi=o.defineComponent({__name:"BarChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){return(e,t)=>(o.openBlock(),o.createBlock(Et,{"chart-options":r.chartOptions,context:r.context,"extra-props":{showAnnotations:!1},height:r.height,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},null,8,["chart-options","context","height","query","query-ready","refresh-counter"]))}}),Ci=o.defineComponent({__name:"TimeseriesChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},emits:["zoom-time-range","select-chart-range"],setup(r,{emit:e}){const t=e;return(i,n)=>(o.openBlock(),o.createBlock(Et,{"chart-options":r.chartOptions,context:r.context,"explore-link":r.exploreLink,height:r.height,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter,"requests-link":r.requestsLink,onSelectChartRange:n[0]||(n[0]=s=>t("select-chart-range",s)),onZoomTimeRange:n[1]||(n[1]=s=>t("zoom-time-range",s))},null,8,["chart-options","context","explore-link","height","query","query-ready","refresh-counter","requests-link"]))}}),is=Ae(o.defineComponent({__name:"GoldenSignalsRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){const e=r,t=o.computed(()=>{const n=e.query?.datasource;if(n&&n!=="api_usage"&&n!=="basic")throw new Error(`Invalid datasource value: ${n}`);return{datasource:e.query?.datasource,overrideTimeRange:e.context.timeSpec,additionalFilter:e.context.filters,longCardTitles:e.chartOptions.long_card_titles,percentileLatency:e.chartOptions.percentile_latency,refreshInterval:e.context.refreshInterval,queryReady:e.queryReady,refreshCounter:e.refreshCounter}}),i=o.computed(()=>!!(e.chartOptions.chart_title||e.headerDescription));return(n,s)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["metric-card-tile-wrapper",{titled:i.value}])},[o.createVNode(o.unref(kt.MetricsProvider),o.normalizeProps(o.guardReactiveProps(t.value)),{default:o.withCtx(()=>[o.createVNode(o.unref(kt.MetricsConsumer))]),_:1},16)],2))}}),[["__scopeId","data-v-3eda5028"]]),ns={class:"fallback-entity-link","data-testid":"entity-link-parent"},ki=o.defineComponent({__name:"FallbackEntityLink",props:{entityLinkData:{}},setup(r){return(e,t)=>(o.openBlock(),o.createElementBlock("div",ns,o.toDisplayString(r.entityLinkData.label),1))}}),rs={key:0},ss={key:1},os=o.defineComponent({__name:"TopNTableRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){const e=r,t=o.inject(ke),i=o.defineAsyncComponent(async()=>{if(t?.fetchComponent)try{return await t.fetchComponent("EntityLink")}catch{return ki}return ki}),n=o.computed(()=>!!e.chartOptions.entity_link||!!Object.keys(e.chartOptions.entity_links||{}).length),s=c=>{const u=e.chartOptions.entity_links;return u&&(u[c]||Object.entries(u).find(([h])=>h.toLowerCase()===c.toLowerCase())?.[1])||""},a=c=>{const u=c.dimensions?.[0]?.dimension;return!u||u===c.dimension},l=c=>s(c.dimension)||a(c)&&e.chartOptions.entity_link||"",d=c=>{const u=l(c);if(u)if(c.id.includes(":")){const[h,f]=c.id.split(":");return u.replace(oi,h).replace(wt,f)}else return u.replace(wt,c.id);return""};return(c,u)=>(o.openBlock(),o.createBlock(nt,{context:r.context,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},{default:o.withCtx(({data:h})=>[o.createVNode(o.unref(Xe.TopNTable),{data:h,"synthetics-data-key":r.chartOptions.synthetics_data_key},o.createSlots({_:2},[n.value?{name:"name",fn:o.withCtx(({record:f})=>[!f.isEmpty&&l(f)?(o.openBlock(),o.createBlock(o.unref(i),{key:0,"entity-link-data":{id:f.id,label:f.name,deleted:f.deleted},"external-link":d(f)},null,8,["entity-link-data","external-link"])):(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[f.name==="empty"?(o.openBlock(),o.createElementBlock("i",rs,o.toDisplayString(f.name),1)):(o.openBlock(),o.createElementBlock("span",ss,o.toDisplayString(f.name),1))],64))]),key:"0"}:void 0]),1032,["data","synthetics-data-key"])]),_:1},8,["context","query","query-ready","refresh-counter"]))}}),as=r=>r.records.map(e=>{const t={...e};return Object.entries(e).forEach(([i,n])=>{if(n===null)return;const s=r.meta.display?.[i]?.[String(n)]?.name;s&&(t[i]=s)}),t}),Ri=({canTranslate:r,columns:e,translate:t})=>e.map(i=>{const n=`chartLabels.${i}`;return{key:i,label:r(n)?t(n):i}}),ls={platform:Ri,platform_usage:Ri},Si=async({abortController:r,context:e,cursor:t,pageSize:i,query:n,onResponseColumns:s,stripUnknownFilters:a,tabularQueryFn:l})=>{if(!l)throw new Error("AnalyticsBridge.tabularQueryFn is not defined");const d=n.query,c=a({datasource:n.datasource,filters:[...d.filters??[],...e.filters],queryFields:d.entity===void 0?void 0:[d.entity]}),u=await l({datasource:n.datasource,query:{columns:d.columns,cursor:t===void 0?d.cursor:String(t),entity:d.entity,filters:c,page_size:i}},r);return u.meta.columns?.length&&s?.(u.meta.columns),{data:as(u),cursor:u.meta.cursor,hasMore:!!u.meta.cursor}},cs={platform:Si,platform_usage:Si},us=Ae(o.defineComponent({__name:"TableDataGridRenderer",props:{query:{},context:{},queryReady:{type:Boolean},height:{},refreshCounter:{}},emits:["loading-change"],setup(r,{emit:e}){const t=r,i=e,n=o.inject(ke),s=ze.useDatasourceConfigStore(),{i18n:a}=me.useI18n(),l=new AbortController,d=o.ref([]),c=o.ref(!1),u=o.computed(()=>t.height===void 0?void 0:{height:`${t.height}px`}),h=o.computed(()=>({datasource:t.query.datasource,query:{columns:t.query.columns,cursor:t.query.cursor,entity:t.query.entity,filters:t.query.filters,page_size:t.query.page_size}})),f=o.computed(()=>JSON.stringify({refreshCounter:t.refreshCounter,query:{columns:t.query.columns,datasource:t.query.datasource,entity:t.query.entity,filters:t.query.filters,page_size:t.query.page_size},context:{filters:t.context.filters,timeSpec:t.context.timeSpec,tz:t.context.tz}}));o.onUnmounted(()=>{l.abort()});const _=o.computed(()=>ls[t.query.datasource]({columns:t.query.columns?.length?t.query.columns:d.value,translate:b=>a.t(b),canTranslate:b=>a.te(b)})),w=o.computed(()=>async({cursor:b,pageSize:M})=>{try{await s.isReady();const T=cs[h.value.datasource];if(!T)throw new Error(`No table data grid fetcher found for datasource: ${h.value.datasource}`);const k=await T({abortController:l,context:t.context,cursor:b,pageSize:M,query:h.value,onResponseColumns:G=>{d.value=G},stripUnknownFilters:s.stripUnknownFilters,tabularQueryFn:n?.tabularQueryFn});return c.value=!1,k}catch(T){throw c.value=!0,T}}),E=b=>{b.state==="error"&&(c.value=!0),i("loading-change",b.state==="loading")};return(b,M)=>{const T=o.resolveComponent("KSkeleton");return o.openBlock(),o.createElementBlock("div",{class:"table-data-grid-renderer",style:o.normalizeStyle(u.value)},[r.queryReady?(o.openBlock(),o.createBlock(o.unref(Mi.TableDataGrid),{key:1,error:c.value,fetcher:w.value,headers:_.value,"page-size":r.query.page_size,"refresh-key":f.value,onState:E},null,8,["error","fetcher","headers","page-size","refresh-key"])):(o.openBlock(),o.createBlock(T,{key:0,"data-testid":"table-skeleton",type:"table"}))],4)}}}),[["__scopeId","data-v-c49ff2eb"]]),ds=o.defineComponent({__name:"DonutChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){return(e,t)=>(o.openBlock(),o.createBlock(Et,{"chart-options":r.chartOptions,context:r.context,height:r.height,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},null,8,["chart-options","context","height","query","query-ready","refresh-counter"]))}}),hs=["data-testid"],fs={key:0,class:"tile-header"},ms={class:"badge-container"},ps={class:"badge-text"},gs={key:0},ys=["data-testid"],_s=["data-testid"],ws=["data-testid"],bs={class:"delete-option"},vs=["data-testid"],Ti=Ae(o.defineComponent({__name:"DashboardTile",props:o.mergeModels({context:{},definition:{},height:{default:$e},isFullscreen:{type:Boolean},hideActions:{type:Boolean,default:!1},hideZoomActions:{type:Boolean,default:!1},queryReady:{type:Boolean},showRefresh:{type:Boolean,default:!1},tileId:{},tileType:{default:"chart"}},{refreshCounter:{default:0},refreshCounterModifiers:{}}),emits:o.mergeModels(["chart-data","tile-loaded","edit-tile","duplicate-tile","remove-tile","tile-time-range-zoom","tile-bounds-change"],["update:refreshCounter"]),setup(r,{expose:e,emit:t}){o.useCssVars(D=>({e67878b0:`${D.height}px`}));const i=parseInt(ii,10),n=r,s=o.useModel(r,"refreshCounter"),a=()=>{T.value=!0,s.value++},l=t,d=o.defineAsyncComponent(()=>Promise.resolve().then(()=>Hs)),c=o.inject(ke),u=ze.useDatasourceConfigStore(),{stripUnknownFilters:h}=Ve(u),{i18n:f}=me.useI18n(),_=o.ref(),w=o.ref({status:"loading"}),E=o.ref(!1),b=o.ref(),M=o.ref(!1),T=o.ref(!0),k=o.computed(()=>n.definition.chart),G=o.computed(()=>"chart_title"in k.value?k.value.chart_title:void 0),z=o.computed(()=>n.definition.header_description),Z=o.computed(()=>k.value.type==="slottable"),U=o.computed(()=>we(n.definition)?!1:!("allow_csv_export"in k.value)||k.value.allow_csv_export!==!1),{exploreLinkKebabMenu:m,requestsLinkKebabMenu:p,canShowKebabMenu:y,canGenerateRequestsLink:v,canGenerateExploreLink:x,requestsLinkZoomActions:N,exploreLinkZoomActions:K,buildExploreQuery:ce,buildExploreLink:ie,buildRequestLink:B,buildRequestsQueryZoomActions:R}=me.useContextLinks({queryBridge:c,chartData:o.readonly(_),definition:o.toRef(n,"definition"),context:o.readonly(o.toRef(n,"context"))}),{issueQuery:C}=me.useIssueQuery();o.watch(()=>n.definition,async(D,H)=>{await o.nextTick(),b.value&&(M.value=b.value.scrollWidth>b.value.clientWidth);try{JSON.stringify(D?.query)!==JSON.stringify(H?.query)&&(T.value=!0)}catch{}},{immediate:!0,deep:!0});const P=o.computed(()=>f.t("csvExport.defaultFilename")),S=o.computed(()=>!!m.value||U.value||n.context.editable),L=o.computed(()=>!n.hideActions&&y.value&&S.value),O=o.computed(()=>L.value&&S.value&&!n.isFullscreen),se={timeseries_line:Ci,timeseries_bar:Ci,horizontal_bar:xi,vertical_bar:xi,gauge:Ei,donut:ds,golden_signals:is,top_n:os,table:us,slottable:void 0,single_value:Ei,choropleth_map:d},oe=o.computed(()=>({...J.value?.rendererEvents.supportsRequests?{"select-chart-range":ve}:{},...J.value?.rendererEvents.supportsZoom?{"zoom-time-range":Pe}:{},...J.value?.rendererEvents.supportsBounds?{"bounds-change":ue}:{},...J.value?.rendererEvents.supportsLoadingChange?{"loading-change":ee}:{}})),J=o.computed(()=>{const D=n.definition,H=se[D.chart.type],te=we(D),Ce=!!H?.emits?.includes("select-chart-range"),Oe=!!H?.emits?.includes("zoom-time-range"),pe=D.chart.type==="choropleth_map",ge=!!H?.emits?.includes("loading-change"),qe={query:D.query,context:n.context,queryReady:n.queryReady,height:n.height-i*2,refreshCounter:s.value},ut={chartOptions:D.chart,headerDescription:z.value,requestsLink:n.hideZoomActions?void 0:N.value,exploreLink:n.hideZoomActions?void 0:K.value};return H&&{component:H,rendererProps:{...qe,...te?{}:ut},rendererEvents:{supportsRequests:Ce,supportsZoom:Oe,supportsBounds:pe,supportsLoadingChange:ge}}}),de=o.computed(()=>{if(we(n.definition))return null;const D=n.definition.query,H=D?.time_range;if(le.isPlatformDatasource(D?.datasource)&&!D.dimensions?.includes("time"))return f.t("renderer.as_of_today");if(H?.type==="relative"){const te=le.TimePeriods.get(le.TIMEFRAME_LOOKUP[H.time_range]);return te?te.display:(console.warn("Did not recognize the given relative time range:",H.time_range),H.time_range)}else if(H?.type==="absolute"){const te=H.tz||"Etc/UTC";return`${le.formatTime(H.start,{short:!0,tz:te})} - ${le.formatTime(H.end,{short:!0,tz:te})}`}return null}),$=o.computed(()=>Z.value?!1:[!!G.value,O.value,!!de.value,!!z.value,n.showRefresh].some(Boolean)),Y=o.computed(()=>_.value?le.msToGranularity(_.value.meta.granularity_ms):void 0),ne=o.computed(()=>["timeseries_line","timeseries_bar"].includes(k.value.type)),q=o.computed(()=>{if(we(n.definition)||!ne.value||!n.queryReady||T.value)return!1;const D=n.definition.query.granularity;return!D||!Y.value?!1:D!==Y.value}),re=o.computed(()=>{const D=le.msToGranularity(_.value?.meta.granularity_ms??0)??"unknown",H=we(n.definition)?"unknown":n.definition.query.granularity??"unknown";return f.t("query_aged_out_warning",{currentGranularity:f.t(`granularities.${D}`),savedGranularity:f.t(`granularities.${H}`)})}),ae=o.computed(()=>{const D=n.definition,H=[...n.context.filters,...D.query.filters??[]],te="metrics"in D.query?D.query.metrics:void 0,Ce=D.query.datasource??"api_usage";return h.value({datasource:Ce,filters:H,queryFields:te})}),X=()=>{l("edit-tile",n.definition)},Q=()=>{l("duplicate-tile",n.definition)},W=()=>{l("remove-tile",n.definition)},_e=D=>{_.value=D,T.value=!1,l("chart-data",D),l("tile-loaded")},F=()=>{T.value=!1,l("tile-loaded")},ee=D=>{T.value=D,D||l("tile-loaded")},Te=()=>{E.value=!1},De=()=>{const D=n.definition.query.datasource?.startsWith("goap");return c?.staticConfig?.increaseCsvExportLimit!==!1&&!D?C(n.definition.query,n.context,le.EXPORT_RECORD_LIMIT):_.value?Promise.resolve(_.value):new Promise(te=>{const Ce=o.watch(_,Oe=>{Oe&&(te(Oe),Ce())})})},be=async()=>{E.value=!0,w.value={status:"loading"};try{const D=await De();w.value={status:"success",chartData:D}}catch(D){w.value={status:"error",error:D}}},Pe=D=>{const H={tileId:n.tileId.toString(),timeRange:D};l("tile-time-range-zoom",H)},ue=D=>{const H={tileId:n.tileId.toString(),bounds:D};l("tile-bounds-change",H)},ve=D=>{const H=ae.value,te=ce(D,H);K.value=x.value?{href:ie(te)}:void 0,N.value=v.value?{href:B(R(D,H))}:void 0};return e({getExportData:De}),(D,H)=>{const te=o.resolveComponent("KTooltip"),Ce=o.resolveComponent("KBadge"),Oe=o.resolveComponent("KButton"),pe=o.resolveComponent("KDropdownItem"),ge=o.resolveComponent("KDropdown");return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["tile-boundary",{editable:r.context.editable,headless:!$.value}]),"data-testid":`tile-${r.tileId}`},[$.value&&!Z.value?(o.openBlock(),o.createElementBlock("div",fs,[o.createVNode(te,{class:"title-tooltip",disabled:!M.value,"max-width":"500",text:G.value},{default:o.withCtx(()=>[o.createElementVNode("div",{ref_key:"titleRef",ref:b,class:"title"},o.toDisplayString(G.value),513)]),_:1},8,["disabled","text"]),o.createElementVNode("div",ms,[de.value?(o.openBlock(),o.createBlock(Ce,{key:0,"data-testid":"time-range-badge",tooltip:q.value?re.value:void 0,"tooltip-attributes":{maxWidth:"320px"}},o.createSlots({default:o.withCtx(()=>[o.createElementVNode("span",ps,o.toDisplayString(de.value),1)]),_:2},[q.value?{name:"icon",fn:o.withCtx(()=>[o.createVNode(o.unref(Ne.WarningIcon),{size:`var(--kui-icon-size-20, ${o.unref(pr)})`},null,8,["size"])]),key:"0"}:void 0]),1032,["tooltip"])):o.createCommentVNode("",!0)]),r.showRefresh?(o.openBlock(),o.createElementBlock("div",gs,[o.createVNode(Oe,{appearance:"secondary",class:"refresh-button","data-testid":`tile-refresh-button-${r.tileId}`,disabled:T.value,icon:"",size:"small",onClick:a},{default:o.withCtx(()=>[T.value?(o.openBlock(),o.createBlock(o.unref(Ne.ProgressIcon),{key:0,role:"button",size:`var(--kui-icon-size-60, ${o.unref(ti)})`,tabindex:"0"},null,8,["size"])):(o.openBlock(),o.createBlock(o.unref(Ne.RefreshIcon),{key:1,role:"button",size:`var(--kui-icon-size-60, ${o.unref(ti)})`,tabindex:"0"},null,8,["size"]))]),_:1},8,["data-testid","disabled"])])):o.createCommentVNode("",!0),z.value?(o.openBlock(),o.createElementBlock("div",{key:1,class:"header-description","data-testid":`tile-description-${r.tileId}`},o.toDisplayString(z.value),9,ys)):o.createCommentVNode("",!0),L.value?(o.openBlock(),o.createElementBlock("div",{key:2,class:"tile-actions","data-testid":`tile-actions-${r.tileId}`},[L.value&&r.context.editable&&!r.isFullscreen?(o.openBlock(),o.createBlock(o.unref(Ne.EditIcon),{key:0,class:"edit-icon",color:`var(--kui-color-text-neutral, ${o.unref(_t)})`,"data-testid":`edit-tile-${r.tileId}`,size:`var(--kui-icon-size-40, ${o.unref(ei)})`,onClick:X},null,8,["color","data-testid","size"])):o.createCommentVNode("",!0),L.value&&S.value&&!r.isFullscreen?(o.openBlock(),o.createBlock(ge,{key:1,class:"dropdown","data-testid":`chart-action-menu-${r.tileId}`,"kpop-attributes":{placement:"bottom-end"}},{items:o.withCtx(()=>[o.unref(m)?(o.openBlock(),o.createBlock(pe,{key:0,"data-testid":`chart-jump-to-explore-${r.tileId}`,item:{label:o.unref(f).t("jumpToExplore"),to:o.unref(m)}},null,8,["data-testid","item"])):o.createCommentVNode("",!0),!o.unref(we)(r.definition)&&o.unref(p)?(o.openBlock(),o.createBlock(pe,{key:1,"data-testid":`chart-jump-to-requests-${r.tileId}`,item:{label:o.unref(f).t("jumpToRequests"),to:o.unref(p)}},null,8,["data-testid","item"])):o.createCommentVNode("",!0),U.value?(o.openBlock(),o.createBlock(pe,{key:2,class:"chart-export-button","data-testid":`chart-csv-export-${r.tileId}`,onClick:be},{default:o.withCtx(()=>[o.createElementVNode("span",{class:"chart-export-trigger","data-testid":`csv-export-button-${r.tileId}`},o.toDisplayString(o.unref(f).t("csvExport.exportAsCsv")),9,ws)]),_:1},8,["data-testid"])):o.createCommentVNode("",!0),r.context.editable?(o.openBlock(),o.createBlock(pe,{key:3,"data-testid":`duplicate-tile-${r.tileId}`,onClick:Q},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(f).t("renderer.duplicateTile")),1)]),_:1},8,["data-testid"])):o.createCommentVNode("",!0),r.context.editable?(o.openBlock(),o.createBlock(pe,{key:4,"data-testid":`remove-tile-${r.tileId}`,onClick:W},{default:o.withCtx(()=>[o.createElementVNode("span",bs,o.toDisplayString(o.unref(f).t("renderer.delete")),1)]),_:1},8,["data-testid"])):o.createCommentVNode("",!0)]),default:o.withCtx(()=>[o.createVNode(o.unref(Ne.MoreIcon),{class:"kebab-action-menu",color:`var(--kui-color-text-neutral, ${o.unref(_t)})`,"data-testid":`kebab-action-menu-${r.tileId}`,size:`var(--kui-icon-size-40, ${o.unref(ei)})`},null,8,["color","data-testid","size"])]),_:1},8,["data-testid"])):o.createCommentVNode("",!0)],8,_s)):o.createCommentVNode("",!0),E.value?(o.openBlock(),o.createBlock(bi,{key:3,"data-testid":`csv-export-modal-${r.tileId}`,"export-state":w.value,filename:P.value,onCloseModal:Te},null,8,["data-testid","export-state","filename"])):o.createCommentVNode("",!0)])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["tile-content",`type-${r.tileType}-${k.value.type}`]),"data-testid":`tile-content-${r.tileId}`},[J.value?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(J.value.component),o.mergeProps({key:0},J.value.rendererProps,o.toHandlers(oe.value),{onChartData:_e,onQueryComplete:F}),null,16)):o.createCommentVNode("",!0)],10,vs)],10,hs)}}}),[["__scopeId","data-v-38705640"]]),Es=(r,e)=>{let t=0;const i=new Map;e.forEach(s=>{const a=s.layout.position.row,l=i.get(a),d=s.layout.size.rows===1&&!!s.layout.size.fit_to_content;t=Math.max(t,a+s.layout.size.rows),l===void 0?i.set(a,d):i.set(a,l&&d)});const n=[];for(let s=0;s<t;s++)i.get(s)?n.push("auto"):n.push(`${r}px`);return n},Di=Ae(o.defineComponent({__name:"GridLayout",props:{tileHeight:{type:Number,required:!1,default:()=>$e},columns:{type:Number,required:!1,default:()=>it},tiles:{type:Array,required:!0}},setup(r){o.useCssVars(l=>({v821fda82:e.columns,v0870d42d:s.value}));const e=r,t=o.ref(null),i=o.ref(0),n=new ResizeObserver(l=>{window.requestAnimationFrame(()=>{!Array.isArray(l)||!l.length||(i.value=l[0].contentRect.width)})});o.onMounted(()=>{t.value&&n.observe(t.value)}),o.onUnmounted(()=>{t.value&&n.unobserve(t.value)});const s=o.computed(()=>Es(e.tileHeight,e.tiles).join(" ")),a=o.computed(()=>e.tiles.map((l,d)=>({key:`tile-${d}`,tile:l,style:{"grid-column-start":l.layout.position.col+1,"grid-column-end":l.layout.position.col+1+l.layout.size.cols,"grid-row-start":l.layout.position.row+1,"grid-row-end":l.layout.position.row+1+l.layout.size.rows}})));return(l,d)=>(o.openBlock(),o.createElementBlock("div",{ref_key:"gridContainer",ref:t,class:"kong-ui-public-grid-layout"},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(a.value,c=>(o.openBlock(),o.createElementBlock("div",{key:c.key,class:o.normalizeClass(["grid-cell",{"empty-cell":!c.tile}]),style:o.normalizeStyle(c.style)},[o.renderSlot(l.$slots,"tile",{style:o.normalizeStyle(c.style),tile:c.tile},void 0,!0)],6))),128))],512))}}),[["__scopeId","data-v-0271a8b9"]]);function xs(r,e,t,i,n){const s=(...a)=>(console.warn("gridstack.js: Function `"+t+"` is deprecated in "+n+" and has been replaced with `"+i+"`. It will be **removed** in a future release"),e.apply(r,a));return s.prototype=e.prototype,s}class g{static getElements(e,t=document){if(typeof e=="string"){const i="getElementById"in t?t:void 0;if(i&&!isNaN(+e[0])){const s=i.getElementById(e);return s?[s]:[]}let n=t.querySelectorAll(e);return!n.length&&e[0]!=="."&&e[0]!=="#"&&(n=t.querySelectorAll("."+e),n.length||(n=t.querySelectorAll("#"+e))),Array.from(n)}return[e]}static getElement(e,t=document){if(typeof e=="string"){const i="getElementById"in t?t:void 0;if(!e.length)return null;if(i&&e[0]==="#")return i.getElementById(e.substring(1));if(e[0]==="#"||e[0]==="."||e[0]==="[")return t.querySelector(e);if(i&&!isNaN(+e[0]))return i.getElementById(e);let n=t.querySelector(e);return i&&!n&&(n=i.getElementById(e)),n||(n=t.querySelector("."+e)),n}return e}static lazyLoad(e){return e.lazyLoad||e.grid?.opts?.lazyLoad&&e.lazyLoad!==!1}static createDiv(e,t){const i=document.createElement("div");return e.forEach(n=>{n&&i.classList.add(n)}),t?.appendChild(i),i}static shouldSizeToContent(e,t=!1){return e?.grid&&(t?e.sizeToContent===!0||e.grid.opts.sizeToContent===!0&&e.sizeToContent===void 0:!!e.sizeToContent||e.grid.opts.sizeToContent&&e.sizeToContent!==!1)}static isIntercepted(e,t){return!(e.y>=t.y+t.h||e.y+e.h<=t.y||e.x+e.w<=t.x||e.x>=t.x+t.w)}static isTouching(e,t){return g.isIntercepted(e,{x:t.x-.5,y:t.y-.5,w:t.w+1,h:t.h+1})}static areaIntercept(e,t){const i=e.x>t.x?e.x:t.x,n=e.x+e.w<t.x+t.w?e.x+e.w:t.x+t.w;if(n<=i)return 0;const s=e.y>t.y?e.y:t.y,a=e.y+e.h<t.y+t.h?e.y+e.h:t.y+t.h;return a<=s?0:(n-i)*(a-s)}static area(e){return e.w*e.h}static sort(e,t=1){return e.sort((n,s)=>{const a=t*((n.y??1e4)-(s.y??1e4));return a===0?t*((n.x??1e4)-(s.x??1e4)):a})}static find(e,t){return t?e.find(i=>i.id===t):void 0}static createStylesheet(e,t,i){const n=document.createElement("style"),s=i?.nonce;return s&&(n.nonce=s),n.setAttribute("type","text/css"),n.setAttribute("gs-style-id",e),n.styleSheet?n.styleSheet.cssText="":n.appendChild(document.createTextNode("")),t?t.insertBefore(n,t.firstChild):(t=document.getElementsByTagName("head")[0],t.appendChild(n)),n}static removeStylesheet(e,t){const n=(t||document).querySelector("STYLE[gs-style-id="+e+"]");n&&n.parentNode&&n.remove()}static addCSSRule(e,t,i){e.textContent+=`${t} { ${i} } `}static toBool(e){return typeof e=="boolean"?e:typeof e=="string"?(e=e.toLowerCase(),!(e===""||e==="no"||e==="false"||e==="0")):!!e}static toNumber(e){return e===null||e.length===0?void 0:Number(e)}static parseHeight(e){let t,i="px";if(typeof e=="string")if(e==="auto"||e==="")t=0;else{const n=e.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!n)throw new Error(`Invalid height val = ${e}`);i=n[2]||"px",t=parseFloat(n[1])}else t=e;return{h:t,unit:i}}static defaults(e,...t){return t.forEach(i=>{for(const n in i){if(!i.hasOwnProperty(n))return;e[n]===null||e[n]===void 0?e[n]=i[n]:typeof i[n]=="object"&&typeof e[n]=="object"&&this.defaults(e[n],i[n])}}),e}static same(e,t){if(typeof e!="object")return e==t;if(typeof e!=typeof t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(e[i]!==t[i])return!1;return!0}static copyPos(e,t,i=!1){return t.x!==void 0&&(e.x=t.x),t.y!==void 0&&(e.y=t.y),t.w!==void 0&&(e.w=t.w),t.h!==void 0&&(e.h=t.h),i&&(t.minW&&(e.minW=t.minW),t.minH&&(e.minH=t.minH),t.maxW&&(e.maxW=t.maxW),t.maxH&&(e.maxH=t.maxH)),e}static samePos(e,t){return e&&t&&e.x===t.x&&e.y===t.y&&(e.w||1)===(t.w||1)&&(e.h||1)===(t.h||1)}static sanitizeMinMax(e){e.minW||delete e.minW,e.minH||delete e.minH,e.maxW||delete e.maxW,e.maxH||delete e.maxH}static removeInternalAndSame(e,t){if(!(typeof e!="object"||typeof t!="object"))for(let i in e){const n=e[i],s=t[i];i[0]==="_"||n===s?delete e[i]:n&&typeof n=="object"&&s!==void 0&&(g.removeInternalAndSame(n,s),Object.keys(n).length||delete e[i])}}static removeInternalForSave(e,t=!0){for(let i in e)(i[0]==="_"||e[i]===null||e[i]===void 0)&&delete e[i];delete e.grid,t&&delete e.el,e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,e.locked||delete e.locked,(e.w===1||e.w===e.minW)&&delete e.w,(e.h===1||e.h===e.minH)&&delete e.h}static throttle(e,t){let i=!1;return(...n)=>{i||(i=!0,setTimeout(()=>{e(...n),i=!1},t))}}static removePositioningStyles(e){const t=e.style;t.position&&t.removeProperty("position"),t.left&&t.removeProperty("left"),t.top&&t.removeProperty("top"),t.width&&t.removeProperty("width"),t.height&&t.removeProperty("height")}static getScrollElement(e){if(!e)return document.scrollingElement||document.documentElement;const t=getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowY)?e:this.getScrollElement(e.parentElement)}static updateScrollPosition(e,t,i){const n=e.getBoundingClientRect(),s=window.innerHeight||document.documentElement.clientHeight;if(n.top<0||n.bottom>s){const a=n.bottom-s,l=n.top,d=this.getScrollElement(e);if(d!==null){const c=d.scrollTop;n.top<0&&i<0?e.offsetHeight>s?d.scrollTop+=i:d.scrollTop+=Math.abs(l)>Math.abs(i)?i:l:i>0&&(e.offsetHeight>s?d.scrollTop+=i:d.scrollTop+=a>i?i:a),t.top+=d.scrollTop-c}}}static updateScrollResize(e,t,i){const n=this.getScrollElement(t),s=n.clientHeight,a=n===this.getScrollElement()?0:n.getBoundingClientRect().top,l=e.clientY-a,d=l<i,c=l>s-i;d?n.scrollBy({behavior:"smooth",top:l-i}):c&&n.scrollBy({behavior:"smooth",top:i-(s-l)})}static clone(e){return e==null||typeof e!="object"?e:e instanceof Array?[...e]:{...e}}static cloneDeep(e){const t=["parentGrid","el","grid","subGrid","engine"],i=g.clone(e);for(const n in i)i.hasOwnProperty(n)&&typeof i[n]=="object"&&n.substring(0,2)!=="__"&&!t.find(s=>s===n)&&(i[n]=g.cloneDeep(e[n]));return i}static cloneNode(e){const t=e.cloneNode(!0);return t.removeAttribute("id"),t}static appendTo(e,t){let i;typeof t=="string"?i=g.getElement(t):i=t,i&&i.appendChild(e)}static addElStyles(e,t){if(t instanceof Object)for(const i in t)t.hasOwnProperty(i)&&(Array.isArray(t[i])?t[i].forEach(n=>{e.style[i]=n}):e.style[i]=t[i])}static initEvent(e,t){const i={type:t.type},n={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:t.target?t.target:e.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(s=>i[s]=e[s]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(s=>i[s]=e[s]),{...i,...n}}static simulateMouseEvent(e,t,i){const n=e,s=new MouseEvent(t,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,ctrlKey:n.ctrlKey??!1,altKey:n.altKey??!1,shiftKey:n.shiftKey??!1,metaKey:n.metaKey??!1,button:0,relatedTarget:e.target});(i||e.target).dispatchEvent(s)}static getValuesFromTransformedElement(e){const t=document.createElement("div");g.addElStyles(t,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),e.appendChild(t);const i=t.getBoundingClientRect();return e.removeChild(t),t.remove(),{xScale:1/i.width,yScale:1/i.height,xOffset:i.left,yOffset:i.top}}static swap(e,t,i){if(!e)return;const n=e[t];e[t]=e[i],e[i]=n}static canBeRotated(e){return!(!e||e.w===e.h||e.locked||e.noResize||e.grid?.opts.disableResize||e.minW&&e.minW===e.maxW||e.minH&&e.minH===e.maxH)}}class Re{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(e,t=e,i,n={}){if(this.sortNodes(-1),i=i||this.collide(e,t),!i)return!1;if(e._moving&&!n.nested&&!this.float&&this.swap(e,i))return!0;let s=t;!this._loading&&this._useEntireRowArea(e,t)&&(s={x:0,w:this.column,y:t.y,h:t.h},i=this.collide(e,s,n.skip));let a=!1;const l={nested:!0,pack:!1};let d=0;for(;i=i||this.collide(e,s,n.skip);){if(d++>this.nodes.length*2)throw new Error("Infinite collide check");let c;if(i.locked||this._loading||e._moving&&!e._skipDown&&t.y>e.y&&!this.float&&(!this.collide(i,{...i,y:e.y},e)||!this.collide(i,{...i,y:t.y-i.h},e))){e._skipDown=e._skipDown||t.y>e.y;const u={...t,y:i.y+i.h,...l};c=this._loading&&g.samePos(e,u)?!0:this.moveNode(e,u),(i.locked||this._loading)&&c?g.copyPos(t,e):!i.locked&&c&&n.pack&&(this._packNodes(),t.y=i.y+i.h,g.copyPos(e,t)),a=a||c}else c=this.moveNode(i,{...i,y:t.y+t.h,skip:e,...l});if(!c)return a;i=void 0}return a}collide(e,t=e,i){const n=e._id,s=i?._id;return this.nodes.find(a=>a._id!==n&&a._id!==s&&g.isIntercepted(a,t))}collideAll(e,t=e,i){const n=e._id,s=i?._id;return this.nodes.filter(a=>a._id!==n&&a._id!==s&&g.isIntercepted(a,t))}directionCollideCoverage(e,t,i){if(!t.rect||!e._rect)return;const n=e._rect,s={...t.rect};s.y>n.y?(s.h+=s.y-n.y,s.y=n.y):s.h+=n.y-s.y,s.x>n.x?(s.w+=s.x-n.x,s.x=n.x):s.w+=n.x-s.x;let a,l=.5;for(let d of i){if(d.locked||!d._rect)break;const c=d._rect;let u=Number.MAX_VALUE,h=Number.MAX_VALUE;n.y<c.y?u=(s.y+s.h-c.y)/c.h:n.y+n.h>c.y+c.h&&(u=(c.y+c.h-s.y)/c.h),n.x<c.x?h=(s.x+s.w-c.x)/c.w:n.x+n.w>c.x+c.w&&(h=(c.x+c.w-s.x)/c.w);const f=Math.min(h,u);f>l&&(l=f,a=d)}return t.collide=a,a}cacheRects(e,t,i,n,s,a){return this.nodes.forEach(l=>l._rect={y:l.y*t+i,x:l.x*e+a,w:l.w*e-a-n,h:l.h*t-i-s}),this}swap(e,t){if(!t||t.locked||!e||e.locked)return!1;function i(){const s=t.x,a=t.y;return t.x=e.x,t.y=e.y,e.h!=t.h?(e.x=s,e.y=t.y+t.h):e.w!=t.w?(e.x=t.x+t.w,e.y=a):(e.x=s,e.y=a),e._dirty=t._dirty=!0,!0}let n;if(e.w===t.w&&e.h===t.h&&(e.x===t.x||e.y===t.y)&&(n=g.isTouching(e,t)))return i();if(n!==!1){if(e.w===t.w&&e.x===t.x&&(n||(n=g.isTouching(e,t)))){if(t.y<e.y){const s=e;e=t,t=s}return i()}if(n!==!1){if(e.h===t.h&&e.y===t.y&&(n||(n=g.isTouching(e,t)))){if(t.x<e.x){const s=e;e=t,t=s}return i()}return!1}}}isAreaEmpty(e,t,i,n){const s={x:e||0,y:t||0,w:i||1,h:n||1};return!this.collide(s)}compact(e="compact",t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();const i=this.batchMode;i||this.batchUpdate();const n=this._inColumnResize;n||(this._inColumnResize=!0);const s=this.nodes;return this.nodes=[],s.forEach((a,l,d)=>{let c;a.locked||(a.autoPosition=!0,e==="list"&&l&&(c=d[l-1])),this.addNode(a,!1,c)}),n||delete this._inColumnResize,i||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(e=1){return this.nodes=g.sort(this.nodes,e),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){const i=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:i,w:e.w,h:e.h})))break;e._dirty=e.y!==i,e.y=i}}),this)}prepareNode(e,t){e._id=e._id??Re._idSeq++;const i=e.id;if(i){let s=1;for(;this.nodes.find(a=>a.id===e.id&&a!==e);)e.id=i+"_"+s++}(e.x===void 0||e.y===void 0||e.x===null||e.y===null)&&(e.autoPosition=!0);const n={x:0,y:0,w:1,h:1};return g.defaults(e,n),e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,g.sanitizeMinMax(e),typeof e.x=="string"&&(e.x=Number(e.x)),typeof e.y=="string"&&(e.y=Number(e.y)),typeof e.w=="string"&&(e.w=Number(e.w)),typeof e.h=="string"&&(e.h=Number(e.h)),isNaN(e.x)&&(e.x=n.x,e.autoPosition=!0),isNaN(e.y)&&(e.y=n.y,e.autoPosition=!0),isNaN(e.w)&&(e.w=n.w),isNaN(e.h)&&(e.h=n.h),this.nodeBoundFix(e,t),e}nodeBoundFix(e,t){const i=e._orig||g.copyPos({},e);if(e.maxW&&(e.w=Math.min(e.w||1,e.maxW)),e.maxH&&(e.h=Math.min(e.h||1,e.maxH)),e.minW&&(e.w=Math.max(e.w||1,e.minW)),e.minH&&(e.h=Math.max(e.h||1,e.minH)),(e.x||0)+(e.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&e._id&&this.findCacheLayout(e,this.defaultColumn)===-1){const s={...e};s.autoPosition||s.x===void 0?(delete s.x,delete s.y):s.x=Math.min(this.defaultColumn-1,s.x),s.w=Math.min(this.defaultColumn,s.w||1),this.cacheOneLayout(s,this.defaultColumn)}return e.w>this.column?e.w=this.column:e.w<1&&(e.w=1),this.maxRow&&e.h>this.maxRow?e.h=this.maxRow:e.h<1&&(e.h=1),e.x<0&&(e.x=0),e.y<0&&(e.y=0),e.x+e.w>this.column&&(t?e.w=this.column-e.x:e.x=this.column-e.w),this.maxRow&&e.y+e.h>this.maxRow&&(t?e.h=this.maxRow-e.y:e.y=this.maxRow-e.h),g.samePos(e,i)||(e._dirty=!0),this}getDirtyNodes(e){return e?this.nodes.filter(t=>t._dirty&&!g.samePos(t,t._orig)):this.nodes.filter(t=>t._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;const t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this)}saveInitial(){return this.nodes.forEach(e=>{e._orig=g.copyPos({},e),delete e._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(e=>{!e._orig||g.samePos(e,e._orig)||(g.copyPos(e,e._orig),e._dirty=!0)}),this._notify(),this}findEmptyPosition(e,t=this.nodes,i=this.column,n){const s=n?n.y*i+(n.x+n.w):0;let a=!1;for(let l=s;!a;++l){const d=l%i,c=Math.floor(l/i);if(d+e.w>i)continue;const u={x:d,y:c,w:e.w,h:e.h};t.find(h=>g.isIntercepted(u,h))||((e.x!==d||e.y!==c)&&(e._dirty=!0),e.x=d,e.y=c,delete e.autoPosition,a=!0)}return a}addNode(e,t=!1,i){const n=this.nodes.find(a=>a._id===e._id);if(n)return n;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let s;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,i)&&(delete e.autoPosition,s=!0),this.nodes.push(e),t&&this.addedNodes.push(e),s||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,i=!1){return this.nodes.find(n=>n._id===e._id)?(i&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(n=>n._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(n=>n._removeDOM=!0);const i=this.nodes;return this.removedNodes=t?i:[],this.nodes=[],this._notify(i)}moveNodeCheck(e,t){if(!this.changedPosConstrain(e,t))return!1;if(t.pack=!0,!this.maxRow)return this.moveNode(e,t);let i;const n=new Re({column:this.column,float:this.float,nodes:this.nodes.map(a=>a._id===e._id?(i={...a},i):{...a})});if(!i)return!1;const s=n.moveNode(i,t)&&n.getRow()<=Math.max(this.getRow(),this.maxRow);if(!s&&!t.resizing&&t.collide){const a=t.collide.el.gridstackNode;if(this.swap(e,a))return this._notify(),!0}return s?(n.nodes.filter(a=>a._dirty).forEach(a=>{const l=this.nodes.find(d=>d._id===a._id);l&&(g.copyPos(l,a),l._dirty=!0)}),this._notify(),!0):!1}willItFit(e){if(delete e._willFitPos,!this.maxRow)return!0;const t=new Re({column:this.column,float:this.float,nodes:this.nodes.map(n=>({...n}))}),i={...e};return this.cleanupNode(i),delete i.el,delete i._id,delete i.content,delete i.grid,t.addNode(i),t.getRow()<=this.maxRow?(e._willFitPos=g.copyPos({},i),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(e,t){if(!e||!t)return!1;let i;t.pack===void 0&&!this.batchMode&&(i=t.pack=!0),typeof t.x!="number"&&(t.x=e.x),typeof t.y!="number"&&(t.y=e.y),typeof t.w!="number"&&(t.w=e.w),typeof t.h!="number"&&(t.h=e.h);const n=e.w!==t.w||e.h!==t.h,s=g.copyPos({},e,!0);if(g.copyPos(s,t),this.nodeBoundFix(s,n),g.copyPos(t,s),!t.forceCollide&&g.samePos(e,t))return!1;const a=g.copyPos({},e),l=this.collideAll(e,s,t.skip);let d=!0;if(l.length){const c=e._moving&&!t.nested;let u=c?this.directionCollideCoverage(e,t,l):l[0];if(c&&u&&e.grid?.opts?.subGridDynamic&&!e.grid._isTemp){const h=g.areaIntercept(t.rect,u._rect),f=g.area(t.rect),_=g.area(u._rect);h/(f<_?f:_)>.8&&(u.grid.makeSubGrid(u.el,void 0,e),u=void 0)}u?d=!this._fixCollisions(e,s,u,t):(d=!1,i&&delete t.pack)}return d&&!g.samePos(e,s)&&(e._dirty=!0,g.copyPos(e,s)),t.pack&&this._packNodes()._notify(),!g.samePos(e,a)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){const e=this.nodes.find(t=>t._updating);return e&&(delete e._updating,delete e._skipDown),this}save(e=!0,t){const i=this._layouts?.length,n=i&&this.column!==i-1?this._layouts[i-1]:null,s=[];return this.sortNodes(),this.nodes.forEach(a=>{const l=n?.find(c=>c._id===a._id),d={...a,...l||{}};g.removeInternalForSave(d,!e),t&&t(a,d),s.push(d)}),s}layoutsNodesChange(e){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((t,i)=>{if(!t||i===this.column)return this;if(i<this.column)this._layouts[i]=void 0;else{const n=i/this.column;e.forEach(s=>{if(!s._orig)return;const a=t.find(l=>l._id===s._id);a&&(a.y>=0&&s.y!==s._orig.y&&(a.y+=s.y-s._orig.y),s.x!==s._orig.x&&(a.x=Math.round(s.x*n)),s.w!==s._orig.w&&(a.w=Math.round(s.w*n)))})}}),this)}columnChanged(e,t,i="moveScale"){if(!this.nodes.length||!t||e===t)return this;const n=i==="compact"||i==="list";n&&this.sortNodes(1),t<e&&this.cacheLayout(this.nodes,e),this.batchUpdate();let s=[],a=n?this.nodes:g.sort(this.nodes,-1);if(t>e&&this._layouts){const l=this._layouts[t]||[],d=this._layouts.length-1;!l.length&&e!==d&&this._layouts[d]?.length&&(e=d,this._layouts[d].forEach(c=>{const u=a.find(h=>h._id===c._id);u&&(!n&&!c.autoPosition&&(u.x=c.x??u.x,u.y=c.y??u.y),u.w=c.w??u.w,(c.x==null||c.y===void 0)&&(u.autoPosition=!0))})),l.forEach(c=>{const u=a.findIndex(h=>h._id===c._id);if(u!==-1){const h=a[u];if(n){h.w=c.w;return}(c.autoPosition||isNaN(c.x)||isNaN(c.y))&&this.findEmptyPosition(c,s),c.autoPosition||(h.x=c.x??h.x,h.y=c.y??h.y,h.w=c.w??h.w,s.push(h)),a.splice(u,1)}})}if(n)this.compact(i,!1);else{if(a.length)if(typeof i=="function")i(t,e,s,a);else{const l=n||i==="none"?1:t/e,d=i==="move"||i==="moveScale",c=i==="scale"||i==="moveScale";a.forEach(u=>{u.x=t===1?0:d?Math.round(u.x*l):Math.min(u.x,t-1),u.w=t===1||e===1?1:c?Math.round(u.w*l)||1:Math.min(u.w,t),s.push(u)}),a=[]}s=g.sort(s,-1),this._inColumnResize=!0,this.nodes=[],s.forEach(l=>{this.addNode(l,!1),delete l._orig})}return this.nodes.forEach(l=>delete l._orig),this.batchUpdate(!1,!n),delete this._inColumnResize,this}cacheLayout(e,t,i=!1){const n=[];return e.forEach((s,a)=>{if(s._id===void 0){const l=s.id?this.nodes.find(d=>d.id===s.id):void 0;s._id=l?._id??Re._idSeq++}n[a]={x:s.x,y:s.y,w:s.w,_id:s._id}}),this._layouts=i?[]:this._layouts||[],this._layouts[t]=n,this}cacheOneLayout(e,t){e._id=e._id??Re._idSeq++;const i={x:e.x,y:e.y,w:e.w,_id:e._id};(e.autoPosition||e.x===void 0)&&(delete i.x,delete i.y,e.autoPosition&&(i.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[t]=this._layouts[t]||[];const n=this.findCacheLayout(e,t);return n===-1?this._layouts[t].push(i):this._layouts[t][n]=i,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(i=>i._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){const i=this.findCacheLayout(e,t);i!==-1&&this._layouts[t].splice(i,1)}}cleanupNode(e){for(const t in e)t[0]==="_"&&t!=="_id"&&delete e[t];return this}}Re._idSeq=0;const ye={alwaysShowResizeHandle:"mobile",animate:!0,auto:!0,cellHeight:"auto",cellHeightThrottle:100,cellHeightUnit:"px",column:12,draggable:{handle:".grid-stack-item-content",appendTo:"body",scroll:!0},handle:".grid-stack-item-content",itemClass:"grid-stack-item",margin:10,marginUnit:"px",maxRow:0,minRow:0,placeholderClass:"grid-stack-placeholder",placeholderText:"",removableOptions:{accept:"grid-stack-item",decline:"grid-stack-non-removable"},resizable:{handles:"se"},rtl:"auto"};class I{}const xe=typeof window<"u"&&typeof document<"u"&&("ontouchstart"in document||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0);class Se{}function rt(r,e){r.touches.length>1||(r.cancelable&&r.preventDefault(),g.simulateMouseEvent(r.changedTouches[0],e))}function Oi(r,e){r.cancelable&&r.preventDefault(),g.simulateMouseEvent(r,e)}function st(r){Se.touchHandled||(Se.touchHandled=!0,rt(r,"mousedown"))}function ot(r){Se.touchHandled&&rt(r,"mousemove")}function at(r){if(!Se.touchHandled)return;Se.pointerLeaveTimeout&&(window.clearTimeout(Se.pointerLeaveTimeout),delete Se.pointerLeaveTimeout);const e=!!I.dragElement;rt(r,"mouseup"),e||rt(r,"click"),Se.touchHandled=!1}function lt(r){r.pointerType!=="mouse"&&r.target.releasePointerCapture(r.pointerId)}function Ni(r){I.dragElement&&r.pointerType!=="mouse"&&Oi(r,"mouseenter")}function zi(r){I.dragElement&&r.pointerType!=="mouse"&&(Se.pointerLeaveTimeout=window.setTimeout(()=>{delete Se.pointerLeaveTimeout,Oi(r,"mouseleave")},10))}class ct{constructor(e,t,i){this.host=e,this.dir=t,this.option=i,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){const e=this.el=document.createElement("div");return e.classList.add("ui-resizable-handle"),e.classList.add(`${ct.prefix}${this.dir}`),e.style.zIndex="100",e.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),xe&&(this.el.addEventListener("touchstart",st),this.el.addEventListener("pointerdown",lt)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),xe&&(this.el.removeEventListener("touchstart",st),this.el.removeEventListener("pointerdown",lt)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),xe&&(this.el.addEventListener("touchmove",ot),this.el.addEventListener("touchend",at)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){const t=this.mouseDownEvent;this.moving?this._triggerEvent("move",e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",e),document.addEventListener("keydown",this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent("stop",e),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),xe&&(this.el.removeEventListener("touchmove",ot),this.el.removeEventListener("touchend",at)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key==="Escape"&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}}ct.prefix="ui-resizable-";class xt{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(e,t){this._eventRegister[e]=t}off(e){delete this._eventRegister[e]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(e,t){if(!this.disabled&&this._eventRegister&&this._eventRegister[e])return this._eventRegister[e](t)}}class je extends xt{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{const n=this.el.parentElement.getBoundingClientRect(),s={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},a=this.temporalRect||s;return{position:{left:(a.left-n.left)*this.rectScale.x,top:(a.top-n.top)*this.rectScale.y},size:{width:a.width*this.rectScale.x,height:a.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){const t=e.handles&&e.handles!==this.option.handles,i=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(n=>this.option[n]=e[n]),t&&(this._removeHandlers(),this._setupHandlers()),i&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),I.overResizeElement===this&&delete I.overResizeElement),this}_mouseOver(e){I.overResizeElement||I.dragElement||(I.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(e){I.overResizeElement===this&&(delete I.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(e=>e.trim()).map(e=>new ct(this.el,e,{start:t=>{this._resizeStart(t)},stop:t=>{this._resizeStop(t)},move:t=>{this._resizing(t,e)}})),this}_resizeStart(e){this.sizeToContent=g.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=g.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=e,this._setupHelper(),this._applyChange();const t=g.initEvent(e,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(t,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",t),this}_resizing(e,t){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(e,t),this._applyChange();const i=g.initEvent(e,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(i,this._ui()),this.triggerEvent("resize",i),this}_resizeStop(e){const t=g.initEvent(e,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(t),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",t),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=je._originStyleProp.map(i=>this.el.style[i]),this.parentOriginStylePosition=this.el.parentElement.style.position;const e=this.el.parentElement,t=g.getValuesFromTransformedElement(e);return this.rectScale={x:t.xScale,y:t.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return je._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){const i=this.startEvent,n={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},s=e.clientX-i.clientX,a=this.sizeToContent?0:e.clientY-i.clientY;let l,d;t.indexOf("e")>-1?n.width+=s:t.indexOf("w")>-1&&(n.width-=s,n.left+=s,l=!0),t.indexOf("s")>-1?n.height+=a:t.indexOf("n")>-1&&(n.height-=a,n.top+=a,d=!0);const c=this._constrainSize(n.width,n.height,l,d);return Math.round(n.width)!==Math.round(c.width)&&(t.indexOf("w")>-1&&(n.left+=n.width-c.width),n.width=c.width),Math.round(n.height)!==Math.round(c.height)&&(t.indexOf("n")>-1&&(n.top+=n.height-c.height),n.height=c.height),n}_constrainSize(e,t,i,n){const s=this.option,a=(i?s.maxWidthMoveLeft:s.maxWidth)||Number.MAX_SAFE_INTEGER,l=s.minWidth/this.rectScale.x||e,d=(n?s.maxHeightMoveUp:s.maxHeight)||Number.MAX_SAFE_INTEGER,c=s.minHeight/this.rectScale.y||t,u=Math.min(a,Math.max(l,e)),h=Math.min(d,Math.max(c,t));return{width:u,height:h}}_applyChange(){let e={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){const t=this.el.parentElement,{left:i,top:n}=t.getBoundingClientRect();e={left:i,top:n,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(t=>{const i=this.temporalRect[t],n=t==="width"||t==="left"?this.rectScale.x:t==="height"||t==="top"?this.rectScale.y:1;this.el.style[t]=(i-e[t])*n+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}}je._originStyleProp=["width","height","position","left","top","opacity","zIndex"];const Cs='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle';class Ke extends xt{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};const i=t?.handle?.substring(1),n=e.gridstackNode;this.dragEls=!i||e.classList.contains(i)?[e]:n?.subGrid?[e.querySelector(t.handle)||e]:Array.from(e.querySelectorAll(t.handle)),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener("mousedown",this._mouseDown),xe&&(e.addEventListener("touchstart",st),e.addEventListener("pointerdown",lt))}),this.el.classList.remove("ui-draggable-disabled"))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(t=>{t.removeEventListener("mousedown",this._mouseDown),xe&&(t.removeEventListener("touchstart",st),t.removeEventListener("pointerdown",lt))}),e||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(!I.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(Cs)||this.option.cancel&&e.target.closest(this.option.cancel)||(this.mouseDownEvent=e,delete this.dragging,delete I.dragElement,delete I.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),xe&&(e.currentTarget.addEventListener("touchmove",ot),e.currentTarget.addEventListener("touchend",at)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),I.mouseHandled=!0),!0}_callDrag(e){if(!this.dragging)return;const t=g.initEvent(e,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(t,this.ui()),this.triggerEvent("drag",t)}_mouseMove(e){const t=this.mouseDownEvent;if(this.lastDrag=e,this.dragging)if(this._dragFollow(e),I.pauseDrag){const i=Number.isInteger(I.pauseDrag)?I.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(e),i)}else this._callDrag(e);else if(Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>3){this.dragging=!0,I.dragElement=this;const i=this.el.gridstackNode?.grid;i?I.dropElement=i.el.ddElement.ddDroppable:delete I.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=g.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(e,this.el,this.helperContainment),this._setupHelperStyle(e);const n=g.initEvent(e,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(n,this.ui()),this.triggerEvent("dragstart",n),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(e){if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),xe&&e.currentTarget&&(e.currentTarget.removeEventListener("touchmove",ot,!0),e.currentTarget.removeEventListener("touchend",at,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener("keydown",this._keyEvent),I.dropElement?.el===this.el.parentElement&&delete I.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();const t=g.initEvent(e,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(t),this.triggerEvent("dragstop",t),I.dropElement&&I.dropElement.drop(e)}delete this.helper,delete this.mouseDownEvent,delete I.dragElement,delete I.dropElement,delete I.mouseHandled,e.preventDefault()}_keyEvent(e){const t=this.el.gridstackNode,i=t?.grid||I.dropElement?.el?.gridstack;if(e.key==="Escape")t&&t._origRotate&&(t._orig=t._origRotate,delete t._origRotate),i?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(t&&i&&(e.key==="r"||e.key==="R")){if(!g.canBeRotated(t))return;t._origRotate=t._origRotate||{...t._orig},delete t._moving,i.setAnimation(!1).rotate(t.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),t._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,t.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",g.swap(t._orig,"w","h"),delete t._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let e=this.el;return typeof this.option.helper=="function"?e=this.option.helper(this.el):this.option.helper==="clone"&&(e=g.cloneNode(this.el)),e.parentElement||g.appendTo(e,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=Ke.originStyleProp.map(t=>this.el.style[t]),e}_setupHelperStyle(e){this.helper.classList.add("ui-draggable-dragging");const t=this.helper.style;return t.pointerEvents="none",t.width=this.dragOffset.width+"px",t.height=this.dragOffset.height+"px",t.willChange="left, top",t.position="fixed",this._dragFollow(e),t.transition="none",setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove("ui-draggable-dragging"),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){const t=this.helper,i=this.dragElementOriginStyle.transition||null;t.style.transition=this.dragElementOriginStyle.transition="none",Ke.originStyleProp.forEach(n=>t.style[n]=this.dragElementOriginStyle[n]||null),setTimeout(()=>t.style.transition=i,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){const t={left:0,top:0},i=this.helper.style,n=this.dragOffset;i.left=(e.clientX+n.offsetLeft-t.left)*this.dragTransform.xScale+"px",i.top=(e.clientY+n.offsetTop-t.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(e,t,i){let n=0,s=0;i&&(n=this.dragTransform.xOffset,s=this.dragTransform.yOffset);const a=t.getBoundingClientRect();return{left:a.left,top:a.top,offsetLeft:-e.clientX+a.left-n,offsetTop:-e.clientY+a.top-s,width:a.width*this.dragTransform.xScale,height:a.height*this.dragTransform.yScale}}ui(){const t=this.el.parentElement.getBoundingClientRect(),i=this.helper.getBoundingClientRect();return{position:{top:(i.top-t.top)*this.dragTransform.yScale,left:(i.left-t.left)*this.dragTransform.xScale}}}}Ke.originStyleProp=["width","height","transform","transform-origin","transition","pointerEvents","position","left","top","minWidth","willChange"];class ks extends xt{constructor(e,t={}){super(),this.el=e,this.option=t,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),xe&&(this.el.addEventListener("pointerenter",Ni),this.el.addEventListener("pointerleave",zi)))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),e||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),xe&&(this.el.removeEventListener("pointerenter",Ni),this.el.removeEventListener("pointerleave",zi)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this._setupAccept(),this}_mouseEnter(e){if(!I.dragElement||!this._canDrop(I.dragElement.el))return;e.preventDefault(),e.stopPropagation(),I.dropElement&&I.dropElement!==this&&I.dropElement._mouseLeave(e,!0),I.dropElement=this;const t=g.initEvent(e,{target:this.el,type:"dropover"});this.option.over&&this.option.over(t,this._ui(I.dragElement)),this.triggerEvent("dropover",t),this.el.classList.add("ui-droppable-over")}_mouseLeave(e,t=!1){if(!I.dragElement||I.dropElement!==this)return;e.preventDefault(),e.stopPropagation();const i=g.initEvent(e,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(i,this._ui(I.dragElement)),this.triggerEvent("dropout",i),I.dropElement===this&&(delete I.dropElement,!t)){let n,s=this.el.parentElement;for(;!n&&s;)n=s.ddElement?.ddDroppable,s=s.parentElement;n&&n._mouseEnter(e)}}drop(e){e.preventDefault();const t=g.initEvent(e,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(t,this._ui(I.dragElement)),this.triggerEvent("drop",t)}_canDrop(e){return e&&(!this.accept||this.accept(e))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=e=>e.classList.contains(this.option.accept)||e.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(e){return{draggable:e.el,...e.ui()}}}class Ct{static init(e){return e.ddElement||(e.ddElement=new Ct(e)),e.ddElement}constructor(e){this.el=e}on(e,t){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(e)>-1?this.ddDraggable.on(e,t):this.ddDroppable&&["drop","dropover","dropout"].indexOf(e)>-1?this.ddDroppable.on(e,t):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(e)>-1&&this.ddResizable.on(e,t),this}off(e){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(e)>-1?this.ddDraggable.off(e):this.ddDroppable&&["drop","dropover","dropout"].indexOf(e)>-1?this.ddDroppable.off(e):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(e)>-1&&this.ddResizable.off(e),this}setupDraggable(e){return this.ddDraggable?this.ddDraggable.updateOption(e):this.ddDraggable=new Ke(this.el,e),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(e){return this.ddResizable?this.ddResizable.updateOption(e):this.ddResizable=new je(this.el,e),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(e){return this.ddDroppable?this.ddDroppable.updateOption(e):this.ddDroppable=new ks(this.el,e),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}}class Rs{resizable(e,t,i,n){return this._getDDElements(e,t).forEach(s=>{if(t==="disable"||t==="enable")s.ddResizable&&s.ddResizable[t]();else if(t==="destroy")s.ddResizable&&s.cleanResizable();else if(t==="option")s.setupResizable({[i]:n});else{const l=s.el.gridstackNode.grid;let d=s.el.getAttribute("gs-resize-handles")||l.opts.resizable.handles||"e,s,se";d==="all"&&(d="n,e,s,w,se,sw,ne,nw");const c=!l.opts.alwaysShowResizeHandle;s.setupResizable({...l.opts.resizable,handles:d,autoHide:c,start:t.start,stop:t.stop,resize:t.resize})}}),this}draggable(e,t,i,n){return this._getDDElements(e,t).forEach(s=>{if(t==="disable"||t==="enable")s.ddDraggable&&s.ddDraggable[t]();else if(t==="destroy")s.ddDraggable&&s.cleanDraggable();else if(t==="option")s.setupDraggable({[i]:n});else{const a=s.el.gridstackNode.grid;s.setupDraggable({...a.opts.draggable,start:t.start,stop:t.stop,drag:t.drag})}}),this}dragIn(e,t){return this._getDDElements(e).forEach(i=>i.setupDraggable(t)),this}droppable(e,t,i,n){return typeof t.accept=="function"&&!t._accept&&(t._accept=t.accept,t.accept=s=>t._accept(s)),this._getDDElements(e,t).forEach(s=>{t==="disable"||t==="enable"?s.ddDroppable&&s.ddDroppable[t]():t==="destroy"?s.ddDroppable&&s.cleanDroppable():t==="option"?s.setupDroppable({[i]:n}):s.setupDroppable(t)}),this}isDroppable(e){return!!(e?.ddElement?.ddDroppable&&!e.ddElement.ddDroppable.disabled)}isDraggable(e){return!!(e?.ddElement?.ddDraggable&&!e.ddElement.ddDraggable.disabled)}isResizable(e){return!!(e?.ddElement?.ddResizable&&!e.ddElement.ddResizable.disabled)}on(e,t,i){return this._getDDElements(e).forEach(n=>n.on(t,s=>{i(s,I.dragElement?I.dragElement.el:s.target,I.dragElement?I.dragElement.helper:null)})),this}off(e,t){return this._getDDElements(e).forEach(i=>i.off(t)),this}_getDDElements(e,t){const i=e.gridstack||t!=="destroy"&&t!=="disable",n=g.getElements(e);return n.length?n.map(a=>a.ddElement||(i?Ct.init(a):null)).filter(a=>a):[]}}const fe=new Rs;class A{static init(e={},t=".grid-stack"){if(typeof document>"u")return null;const i=A.getGridElement(t);return i?(i.gridstack||(i.gridstack=new A(i,g.cloneDeep(e))),i.gridstack):(console.error(typeof t=="string"?'GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ?
|
|
8
|
+
`);var C=0,q=!1;this.parse=function(T,z,O){if(typeof T!="string")throw new Error("Input must be a string");var ue=T.length,J=m.length,K=y.length,fe=E.length,$=G(x),F=[],ne=[],P=[],re=C=0;if(!T)return le();if(ee||ee!==!1&&T.indexOf(j)===-1){for(var ae=T.split(y),X=0;X<ae.length;X++){if(P=ae[X],C+=P.length,X!==ae.length-1)C+=y.length;else if(O)return le();if(!E||P.substring(0,fe)!==E){if($){if(F=[],Se(P.split(m)),ve(),q)return le()}else Se(P.split(m));if(L&&L<=X)return F=F.slice(0,L),le(!0)}}return le()}for(var Q=T.indexOf(m,C),U=T.indexOf(y,C),_e=new RegExp(b(R)+b(j),"g"),B=T.indexOf(j,C);;)if(T[C]===j)for(B=C,C++;;){if((B=T.indexOf(j,B+1))===-1)return O||ne.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:F.length,index:C}),be();if(B===ue-1)return be(T.substring(C,B).replace(_e,j));if(j===R&&T[B+1]===R)B++;else if(j===R||B===0||T[B-1]!==R){Q!==-1&&Q<B+1&&(Q=T.indexOf(m,B+1));var te=De((U=U!==-1&&U<B+1?T.indexOf(y,B+1):U)===-1?Q:Math.min(Q,U));if(T.substr(B+1+te,J)===m){P.push(T.substring(C,B).replace(_e,j)),T[C=B+1+te+J]!==j&&(B=T.indexOf(j,C)),Q=T.indexOf(m,C),U=T.indexOf(y,C);break}if(te=De(U),T.substring(B+1+te,B+1+te+K)===y){if(P.push(T.substring(C,B).replace(_e,j)),Pe(B+1+te+K),Q=T.indexOf(m,C),B=T.indexOf(j,C),$&&(ve(),q))return le();if(L&&F.length>=L)return le(!0);break}ne.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:F.length,index:C}),B++}}else if(E&&P.length===0&&T.substring(C,C+fe)===E){if(U===-1)return le();C=U+K,U=T.indexOf(y,C),Q=T.indexOf(m,C)}else if(Q!==-1&&(Q<U||U===-1))P.push(T.substring(C,Q)),C=Q+J,Q=T.indexOf(m,C);else{if(U===-1)break;if(P.push(T.substring(C,U)),Pe(U+K),$&&(ve(),q))return le();if(L&&F.length>=L)return le(!0)}return be();function Se(D){F.push(D),re=C}function De(D){var H=0;return H=D!==-1&&(D=T.substring(B+1,D))&&D.trim()===""?D.length:H}function be(D){return O||(D===void 0&&(D=T.substring(C)),P.push(D),C=ue,Se(P),$&&ve()),le()}function Pe(D){C=D,Se(P),P=[],U=T.indexOf(y,C)}function le(D){if(p.header&&!z&&F.length&&!se){var H=F[0],ie=Object.create(null),Ce=new Set(H);let Oe=!1;for(let pe=0;pe<H.length;pe++){let ge=c(H[pe]);if(ie[ge=G(p.transformHeader)?p.transformHeader(ge,pe):ge]){let qe,ut=ie[ge];for(;qe=ge+"_"+ut,ut++,Ce.has(qe););Ce.add(qe),H[pe]=qe,ie[ge]++,Oe=!0,(ce=ce===null?{}:ce)[qe]=ge}else ie[ge]=1,H[pe]=ge;Ce.add(ge)}Oe&&console.warn("Duplicate headers found and renamed."),se=!0}return{data:F,errors:ne,meta:{delimiter:m,linebreak:y,aborted:q,truncated:!!D,cursor:re+(z||0),renamedHeaders:ce}}}function ve(){x(le()),F=[],ne=[]}},this.abort=function(){q=!0},this.getCharIndex=function(){return C}}function S(p){var m=p.data,y=a[m.workerId],E=!1;if(m.error)y.userError(m.error,m.file);else if(m.results&&m.results.data){var x={abort:function(){E=!0,k(m.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:W,resume:W};if(G(y.userStep)){for(var L=0;L<m.results.data.length&&(y.userStep({data:m.results.data[L],errors:m.results.errors,meta:m.results.meta},x),!E);L++);delete m.results}else G(y.userChunk)&&(y.userChunk(m.results,x,m.file),delete m.results)}m.finished&&!E&&k(m.workerId,m.results)}function k(p,m){var y=a[p];G(y.userComplete)&&y.userComplete(m),y.terminate(),delete a[p]}function W(){throw new Error("Not implemented.")}function N(p){if(typeof p!="object"||p===null)return p;var m,y=Array.isArray(p)?[]:{};for(m in p)y[m]=N(p[m]);return y}function Z(p,m){return function(){p.apply(m,arguments)}}function G(p){return typeof p=="function"}return d.parse=function(p,m){var y=(m=m||{}).dynamicTyping||!1;if(G(y)&&(m.dynamicTypingFunction=y,y={}),m.dynamicTyping=y,m.transform=!!G(m.transform)&&m.transform,m.downloadTimeout!==void 0){var y=parseInt(m.downloadTimeout);if(isNaN(y))throw new Error("Config downloadTimeout value ("+m.downloadTimeout+") not parsable by parseInt(val).");m.downloadTimeout=y}if(!m.worker||!d.WORKERS_SUPPORTED)return y=null,d.NODE_STREAM_INPUT,typeof p=="string"?(p=c(p),y=new(m.download?h:_)(m)):p.readable===!0&&G(p.read)&&G(p.on)?y=new w(m):(i.File&&p instanceof File||p instanceof Object)&&(y=new f(m)),y.stream(p);(y=(()=>{var E;return!!d.WORKERS_SUPPORTED&&(E=(()=>{var x=i.URL||i.webkitURL||null,L=t.toString();return d.BLOB_URL||(d.BLOB_URL=x.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",L,")();"],{type:"text/javascript"})))})(),(E=new i.Worker(E)).onmessage=S,E.id=l++,a[E.id]=E)})()).userStep=m.step,y.userChunk=m.chunk,y.userComplete=m.complete,y.userError=m.error,m.step=G(m.step),m.chunk=G(m.chunk),m.complete=G(m.complete),m.error=G(m.error),delete m.worker,y.postMessage({input:p,config:m,workerId:y.id})},d.unparse=function(p,m){var y=!1,E=!0,x=",",L=`\r
|
|
9
|
+
`,ee='"',ce=ee+ee,se=!1,j=null,R=!1,C=((()=>{if(typeof m=="object"){if(typeof m.delimiter!="string"||d.BAD_DELIMITERS.filter(function(z){return m.delimiter.indexOf(z)!==-1}).length||(x=m.delimiter),typeof m.quotes!="boolean"&&typeof m.quotes!="function"&&!Array.isArray(m.quotes)||(y=m.quotes),typeof m.skipEmptyLines!="boolean"&&typeof m.skipEmptyLines!="string"||(se=m.skipEmptyLines),typeof m.newline=="string"&&(L=m.newline),typeof m.quoteChar=="string"&&(ee=m.quoteChar,ce=ee+ee),typeof m.header=="boolean"&&(E=m.header),Array.isArray(m.columns)){if(m.columns.length===0)throw new Error("Option columns is empty");j=m.columns}m.escapeChar!==void 0&&(ce=m.escapeChar+ee),m.escapeFormulae instanceof RegExp?R=m.escapeFormulae:typeof m.escapeFormulae=="boolean"&&m.escapeFormulae&&(R=/^[=+\-@\t\r].*$/)}})(),new RegExp(b(ee),"g"));if(typeof p=="string"&&(p=JSON.parse(p)),Array.isArray(p)){if(!p.length||Array.isArray(p[0]))return q(null,p,se);if(typeof p[0]=="object")return q(j||Object.keys(p[0]),p,se)}else if(typeof p=="object")return typeof p.data=="string"&&(p.data=JSON.parse(p.data)),Array.isArray(p.data)&&(p.fields||(p.fields=p.meta&&p.meta.fields||j),p.fields||(p.fields=Array.isArray(p.data[0])?p.fields:typeof p.data[0]=="object"?Object.keys(p.data[0]):[]),Array.isArray(p.data[0])||typeof p.data[0]=="object"||(p.data=[p.data])),q(p.fields||[],p.data||[],se);throw new Error("Unable to serialize unrecognized input");function q(z,O,ue){var J="",K=(typeof z=="string"&&(z=JSON.parse(z)),typeof O=="string"&&(O=JSON.parse(O)),Array.isArray(z)&&0<z.length),fe=!Array.isArray(O[0]);if(K&&E){for(var $=0;$<z.length;$++)0<$&&(J+=x),J+=T(z[$],$);0<O.length&&(J+=L)}for(var F=0;F<O.length;F++){var ne=(K?z:O[F]).length,P=!1,re=K?Object.keys(O[F]).length===0:O[F].length===0;if(ue&&!K&&(P=ue==="greedy"?O[F].join("").trim()==="":O[F].length===1&&O[F][0].length===0),ue==="greedy"&&K){for(var ae=[],X=0;X<ne;X++){var Q=fe?z[X]:X;ae.push(O[F][Q])}P=ae.join("").trim()===""}if(!P){for(var U=0;U<ne;U++){0<U&&!re&&(J+=x);var _e=K&&fe?z[U]:U;J+=T(O[F][_e],U)}F<O.length-1&&(!ue||0<ne&&!re)&&(J+=L)}}return J}function T(z,O){var ue,J,K;return z==null?"":z.constructor===Date?isNaN(z.getTime())?"":z.toISOString():(K=!1,R&&typeof z=="string"&&R.test(z)&&(z="'"+z,K=!0),J=(ue=z.toString()).replace(C,ce),(K=K||y===!0||typeof y=="function"&&y(z,O)||Array.isArray(y)&&y[O]||((fe,$)=>{for(var F=0;F<$.length;F++)if(-1<fe.indexOf($[F]))return!0;return!1})(J,d.BAD_DELIMITERS)||-1<J.indexOf(x)||-1<ue.indexOf(ee)||J.charAt(0)===" "||J.charAt(J.length-1)===" ")?ee+J+ee:J)}},d.RECORD_SEP="",d.UNIT_SEP="",d.BYTE_ORDER_MARK="\uFEFF",d.BAD_DELIMITERS=["\r",`
|
|
10
|
+
`,'"',d.BYTE_ORDER_MARK],d.WORKERS_SUPPORTED=!n&&!!i.Worker,d.NODE_STREAM_INPUT=1,d.LocalChunkSize=10485760,d.RemoteChunkSize=5242880,d.DefaultDelimiter=",",d.Parser=M,d.ParserHandle=v,d.NetworkStreamer=h,d.FileStreamer=f,d.StringStreamer=_,d.ReadableStreamStreamer=w,s&&(i.onmessage=function(p){p=p.data,d.WORKER_ID===void 0&&p&&(d.WORKER_ID=p.workerId),typeof p.input=="string"?i.postMessage({workerId:d.WORKER_ID,results:d.parse(p.input,p.config),finished:!0}):(i.File&&p.input instanceof File||p.input instanceof Object)&&(p=d.parse(p.input,p.config))&&i.postMessage({workerId:d.WORKER_ID,results:p,finished:!0})}),(h.prototype=Object.create(u.prototype)).constructor=h,(f.prototype=Object.create(u.prototype)).constructor=f,(_.prototype=Object.create(_.prototype)).constructor=_,(w.prototype=Object.create(u.prototype)).constructor=w,d})})(tt)),tt.exports}var xr=Er(),Fe=(r=>(r.String="string",r.Number="number",r.Boolean="boolean",r.Object="object",r.Undefined="undefined",r))(Fe||{});const Cr=["id"],kr=o.defineComponent({__name:"VueJsonCsv",props:{data:{type:Array,required:!0},fields:{type:Array,required:!1,default:null},labels:{type:Object,required:!1,default:null},filename:{type:String,default:"report-data.csv"},delimiter:{type:String,default:",",required:!1},separatorExcel:{type:Boolean,default:!1},encoding:{type:String,default:"utf-8"},testing:{type:Boolean,required:!1,default:!1}},emits:["export-started","export-finished"],setup(r,{emit:e}){const t=e,i=r,n=o.computed(()=>`export_${new Date().getTime()}`),s=o.computed(()=>{const u=d();return u.length?u:null}),a=()=>{const u=i.labels;if(typeof i.fields!==Fe.Object)throw new Error("Labels needs to be a object containing key / value pairs.");return u!==null&&typeof u===Fe.Object?h=>Object.fromEntries(Object.entries(h).map(([f,_])=>[u[f]||f,_])):h=>h},l=()=>{const u=i.fields;if(typeof i.fields!==Fe.Object&&!Array.isArray(u))throw new Error("Fields needs to be an array of strings.");return Array.isArray(u)?h=>Object.fromEntries(u.filter(f=>f in h).map(f=>[f,h[f]])):h=>h},d=()=>{if(typeof i.fields===Fe.Undefined&&typeof i.labels===Fe.Undefined)return i.data;const u=a(),h=l();return i.data.map(f=>u(h(f)))},c=()=>{if(!s.value){console.warn("No data to export");return}t("export-started",s.value);let u=xr.unparse(s.value,Object.assign({delimiter:i.delimiter,encoding:i.encoding}));if(i.separatorExcel&&(u="SEP="+i.delimiter+`\r
|
|
11
|
+
`+u),i.encoding==="utf-8"&&(u="\uFEFF"+u),t("export-finished",i.filename),!i.testing){const h=new Blob([u],{type:"text/csv;charset="+i.encoding});br.saveAs(h,i.filename)}};return(u,h)=>(o.openBlock(),o.createElementBlock("div",{id:n.value,"data-testid":"export-csv",onClick:c},[o.renderSlot(u.$slots,"default",{},()=>[o.createTextVNode("Download "+o.toDisplayString(r.filename),1)])],8,Cr))}}),Rr=o.defineComponent({__name:"DownloadCsv",props:{rows:{},headers:{},filename:{}},setup(r){const e=r,t=o.computed(()=>Object.keys(e.headers));return(i,n)=>(o.openBlock(),o.createElementBlock("div",null,[o.createVNode(kr,{data:r.rows,fields:t.value,filename:r.filename,labels:r.headers},{default:o.withCtx(()=>[o.renderSlot(i.$slots,"default")]),_:3},8,["data","fields","filename","labels"])]))}}),Tr={renderer:{not_configured:{title:"Chart is not fully configured",description:"Begin by choosing at least one metric"},noQueryBridge:"No query bridge provided. Unable to render dashboard.",unexpectedError:"An unexpected error has occurred.",trendRange:{"24h":"Last 24-hour summary","7d":"Last 7-day summary","30d":"Last 30-day summary"},edit:"Edit",duplicateTile:"Duplicate",exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",remove:"Remove",delete:"Delete",as_of_today:"As of today"},pdfExport:{branding:"Kong Konnect",generated:"Generated {timestamp}",dashboardNote:"For a live, interactive experience, open this dashboard in Konnect",pageOf:"{page} / {total}"},csvExport:{defaultFilename:"Chart export",exportAsCsv:"Export as CSV",dataError:"Error loading data",noDataRange:"No data in selected range",noDataRetry:"Please adjust the time period and try again",timeRangeSelected:"selected",exportPreview:"Export preview",exportTimeRange:"Time range",exportDescription:"Exports a CSV of the data represented in the chart.",maximumRecordAmount:"The number of groups is limited to {value}",previewRows:"Previewing {rowsMax} of {rowsTotal} row{plural}",downloadButton:"Export",cancelButton:"Cancel",UtcOffset:"UTC offset",Timestamp:"Timestamp"},chartLabels:{control_plane:"Control plane",data_plane_node_version:"Data plane node version",env:"Environment",gateway_service:"Gateway service",hostname:"Hostname",plugin:"Plugin",plugin_name:"Plugin name",plugin_scope:"Plugin scope",region:"Region",request_count:"Request count",route:"Route",status_code:"Status code",team:"Team",name:"Name",ai_count:"LLM request count",ai_plugin:"AI plugin",ai_provider:"Provider",ai_request_model:"Request model",ai_response_model:"Response model",error_rate:"Error rate",request_per_minute:"Requests per minute",requests_per_minute:"Requests per minute",response_latency_average:"Response latency (avg)",response_latency_p99:"Response latency (p99)",response_latency_p95:"Response latency (p95)",response_latency_p50:"Response latency (p50)",kong_latency_average:"Kong latency (avg)",kong_latency_p99:"Kong latency (p99)",kong_latency_p95:"Kong latency (p95)",kong_latency_p50:"Kong latency (p50)",kong_internal_latency_average:"Kong internal latency (avg)",kong_internal_latency_p99:"Kong internal latency (p99)",kong_internal_latency_p95:"Kong internal latency (p95)",kong_internal_latency_p50:"Kong internal latency (p50)",llm_cache_status:"Cache status",llm_embeddings_model:"Embeddings model",llm_embeddings_provider:"Embeddings provider",upstream_latency_average:"Upstream latency (avg)",upstream_latency_p99:"Upstream latency (p99)",upstream_latency_p95:"Upstream latency (p95)",upstream_latency_p50:"Upstream latency (p50)",response_size_p99:"Response size (p99)",response_size_p95:"Response size (p95)",response_size_p50:"Response size (p50)",response_size_average:"Response size (avg)",response_size_sum:"Response size (sum)",response_source:"Response source",request_size_p99:"Request size (p99)",request_size_p95:"Request size (p95)",request_size_p50:"Request size (p50)",request_size_average:"Request size (avg)",request_size_sum:"Request size (sum)",control_plane_group:"Control plane group",consumer:"Consumer",country_code:"Country",country:"Country",data_plane_node:"Data plane node",api_package:"API package",api_product:"API product",api_product_version:"API product version",portal:"Portal",realm:"Realm",runtime_group:"Runtime group",application:"Application",status_code_grouped:"Status code (grouped)",upstream_status_code:"Upstream status code",upstream_status_code_grouped:"Upstream status code group",time:"Time",Service:"Service",ServiceVersion:"Service version",Route:"Route",Application:"Application",RuntimeGroup:"Runtime group",GatewayService:"Gateway service",StatusCode:"Status code",CodeClass:"Status code (grouped)",Time:"Time",API_PRODUCT:"Api product",API_PRODUCT_VERSION:"API product version",RUNTIME_GROUP:"Runtime group",GATEWAY_SERVICE:"Gateway service",ROUTE:"Route",APPLICATION:"Application",STATUS_CODE:"Status code",STATUS_CODE_GROUPED:"Status code (grouped)",TIME:"Time",ORGANIZATION:"Organization",TotalRequests:"Request count",RequestsPerMinute:"Requests per minute",LatencyP99:"Response latency (p99)",LatencyP95:"Response latency (p95)",LatencyP50:"Response latency (p50)",LatencyAverage:"Response latency (avg)",UpstreamLatencyP99:"Upstream latency (p99)",UpstreamLatencyP95:"Upstream latency (p95)",UpstreamLatencyP50:"Upstream latency (p50)",UpstreamLatencyAverage:"Upstream latency (avg)",KongLatencyP99:"Kong latency (p99)",KongLatencyP95:"Kong latency (p95)",KongLatencyP50:"Kong latency (p50)",KongLatencyAverage:"Kong latency (avg)",ResponseSizeP99:"Response size (p99)",ResponseSizeP95:"Response size (p95)",ResponseSizeP50:"Response size (p50)",RequestSizeP99:"Request size (p99)",RequestSizeP95:"Request size (p95)",RequestSizeP50:"Request size (p50)",SuccessfulRequests:"Successful requests",SUCCESS:"Successful requests",FailedRequests:"Failed requests",FAILURE:"Failed requests","5XX":"5xx","4XX":"4xx","3XX":"3xx","2XX":"2xx","1XX":"1xx",REQUEST_COUNT:"Request count",REQUEST_PER_MINUTE:"Requests per minute",RESPONSE_LATENCY_P99:"Response latency",RESPONSE_LATENCY_P95:"Response latency",RESPONSE_LATENCY_P50:"Response latency",RESPONSE_SIZE_P99:"Response size (p99)",RESPONSE_SIZE_P95:"Response size (p95)",RESPONSE_SIZE_P50:"Response size (p50)",REQUEST_SIZE_P99:"Request size (p99)",REQUEST_SIZE_P95:"Request size (p95)",REQUEST_SIZE_P50:"Request size (p50)",CONTROL_PLANE:"Control plane",____OTHER____:"Others",ai_request_count:"Request count",total_tokens:"Total token count",prompt_tokens:"Prompt token count",completion_tokens:"Completion token count",cost:"Costs",llm_cache_embeddings_latency_average:"Embeddings latency (avg)",llm_cache_fetch_latency_average:"Fetch latency (avg)",llm_latency_average:"Llm latency (avg)","threshold-warning":"Warning threshold: {value}","threshold-error":"Error threshold: {value}","thatreshold-neutral":"Alert threshold: {value}",api:"API",vulnerability_count:"Vulnerability count",a2a_latency_average:"A2A latency (avg)",a2a_response_size_sum:"A2A response size (sum)",a2a_context_id:"A2A context ID",a2a_error:"A2A error",a2a_method:"A2A method",a2a_task_id:"A2A task ID",mcp_error:"MCP error",mcp_method:"MCP method",mcp_response_size_sum:"MCP response size (sum)",mcp_session_id:"MCP session ID",mcp_tool_name:"MCP tool name",mcp_response_body_size_sum:"MCP response size (sum)",control_plane_count:"Control plane count",service_count:"Gateway service count","record_bytes:sum":"Record size (sum)","record_count:sum":"Record count (sum)","request_count:sum":"Request count (sum)",route_count:"Route count",consumer_count:"Consumer count",plugin_count:"Plugin count",node_count:"Data plane node count",virtual_cluster_id:"Virtual cluster",backend_cluster_id:"Backend cluster",listener_id:"Listener",principal_name:"Principal name",principal_type:"Principal type",request_type:"Request type",topic_name:"Topic name",partition_index:"Partition index",api_key:"API key",data_plane_group:"Data plane group",managed_cache:"Managed cache",network:"Network",provider:"Provider",provider_region:"Provider region",cache_eviction_rate:"Cache eviction rate",cache_expiration_rate:"Cache expiration rate",cache_items_average:"Cache items (avg)",cache_memory_utilization_max:"Cache memory utilization (max)",cache_status:"Cache status",cache_hit_rate:"Cache hit rate"},jumpToExplore:"Explore",jumpToRequests:"View requests",query_aged_out_warning:"This tile was configured with {savedGranularity} granularity, which is no longer available. It now shows {currentGranularity} data, the closest available granularity.",granularities:{daily:"1 day",fiveMinutely:"5 minutes",hourly:"1 hour",minutely:"1 minute",tenMinutely:"10 minutes",tenSecondly:"10 seconds",thirtyMinutely:"30 minutes",thirtySecondly:"30 seconds",twelveHourly:"12 hours",twoHourly:"2 hours",weekly:"1 week",unknown:"Unknown"}};function si(){const r=Rt.createI18n("en-us",Tr);return{i18n:r,i18nT:Rt.i18nTComponent(r)}}const $e=170,it=6,ke="analytics-query-provider",wt="{entity-id}",oi="{cp-id}",ai="{timeframe}",li=30*1e3,ci=3e5,ui=36e5;function Sr(){const r=o.inject(ke);return{evaluateFeatureFlag:(t,i)=>r?r.evaluateFeatureFlagFn(t,i):i}}var bt={exports:{}},di;function Dr(){return di||(di=1,(function(r){var e=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function n(d,c,u){this.fn=d,this.context=c,this.once=u||!1}function s(d,c,u,h,f){if(typeof u!="function")throw new TypeError("The listener must be a function");var _=new n(u,h||d,f),w=t?t+c:c;return d._events[w]?d._events[w].fn?d._events[w]=[d._events[w],_]:d._events[w].push(_):(d._events[w]=_,d._eventsCount++),d}function a(d,c){--d._eventsCount===0?d._events=new i:delete d._events[c]}function l(){this._events=new i,this._eventsCount=0}l.prototype.eventNames=function(){var c=[],u,h;if(this._eventsCount===0)return c;for(h in u=this._events)e.call(u,h)&&c.push(t?h.slice(1):h);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(u)):c},l.prototype.listeners=function(c){var u=t?t+c:c,h=this._events[u];if(!h)return[];if(h.fn)return[h.fn];for(var f=0,_=h.length,w=new Array(_);f<_;f++)w[f]=h[f].fn;return w},l.prototype.listenerCount=function(c){var u=t?t+c:c,h=this._events[u];return h?h.fn?1:h.length:0},l.prototype.emit=function(c,u,h,f,_,w){var v=t?t+c:c;if(!this._events[v])return!1;var b=this._events[v],M=arguments.length,S,k;if(b.fn){switch(b.once&&this.removeListener(c,b.fn,void 0,!0),M){case 1:return b.fn.call(b.context),!0;case 2:return b.fn.call(b.context,u),!0;case 3:return b.fn.call(b.context,u,h),!0;case 4:return b.fn.call(b.context,u,h,f),!0;case 5:return b.fn.call(b.context,u,h,f,_),!0;case 6:return b.fn.call(b.context,u,h,f,_,w),!0}for(k=1,S=new Array(M-1);k<M;k++)S[k-1]=arguments[k];b.fn.apply(b.context,S)}else{var W=b.length,N;for(k=0;k<W;k++)switch(b[k].once&&this.removeListener(c,b[k].fn,void 0,!0),M){case 1:b[k].fn.call(b[k].context);break;case 2:b[k].fn.call(b[k].context,u);break;case 3:b[k].fn.call(b[k].context,u,h);break;case 4:b[k].fn.call(b[k].context,u,h,f);break;default:if(!S)for(N=1,S=new Array(M-1);N<M;N++)S[N-1]=arguments[N];b[k].fn.apply(b[k].context,S)}}return!0},l.prototype.on=function(c,u,h){return s(this,c,u,h,!1)},l.prototype.once=function(c,u,h){return s(this,c,u,h,!0)},l.prototype.removeListener=function(c,u,h,f){var _=t?t+c:c;if(!this._events[_])return this;if(!u)return a(this,_),this;var w=this._events[_];if(w.fn)w.fn===u&&(!f||w.once)&&(!h||w.context===h)&&a(this,_);else{for(var v=0,b=[],M=w.length;v<M;v++)(w[v].fn!==u||f&&!w[v].once||h&&w[v].context!==h)&&b.push(w[v]);b.length?this._events[_]=b.length===1?b[0]:b:a(this,_)}return this},l.prototype.removeAllListeners=function(c){var u;return c?(u=t?t+c:c,this._events[u]&&a(this,u)):(this._events=new i,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=t,l.EventEmitter=l,r.exports=l})(bt)),bt.exports}var Or=Dr();const Nr=yr(Or);class vt extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,vt)}}const hi=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function zr(r,e){const{milliseconds:t,fallback:i,message:n,customTimers:s={setTimeout,clearTimeout},signal:a}=e;let l,d;const u=new Promise((h,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(a?.aborted){f(hi(a));return}if(a&&(d=()=>{f(hi(a))},a.addEventListener("abort",d,{once:!0})),r.then(h,f),t===Number.POSITIVE_INFINITY)return;const _=new vt;l=s.setTimeout.call(void 0,()=>{if(i){try{h(i())}catch(w){f(w)}return}typeof r.cancel=="function"&&r.cancel(),n===!1?h():n instanceof Error?f(n):(_.message=n??`Promise timed out after ${t} milliseconds`,f(_))},t)}).finally(()=>{u.clear(),d&&a&&a.removeEventListener("abort",d)});return u.clear=()=>{s.clearTimeout.call(void 0,l),l=void 0},u}function Mr(r,e,t){let i=0,n=r.length;for(;n>0;){const s=Math.trunc(n/2);let a=i+s;t(r[a],e)<=0?(i=++a,n-=s+1):n=s}return i}const Lr=100;class fi{#t=[];#e=0;enqueue(e,t){const{priority:i=0,id:n}=t??{},{size:s}=this,a={priority:i,id:n,run:e};if(s===0){this.#t.length=0,this.#e=0,this.#t.push(a);return}if(this.#t.at(-1).priority>=i){this.#t.push(a);return}this.#s();const l=Mr(this.#t,a,(d,c)=>c.priority-d.priority);this.#t.splice(l,0,a)}setPriority(e,t){const i=this.#t.findIndex((s,a)=>a>=this.#e&&s.id===e);if(i===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);const[n]=this.#t.splice(i,1);this.enqueue(n.run,{priority:t,id:e})}remove(e){const t=this.#t.findIndex((i,n)=>n<this.#e?!1:typeof e=="string"?i.id===e:i.run===e);t!==-1&&this.#t.splice(t,1)}dequeue(){if(this.#e===this.#t.length)return;const e=this.#t[this.#e];return this.#e++,this.#e===this.#t.length?(this.#t.length=0,this.#e=0):this.#e>Lr&&this.#e>this.#t.length/2&&this.#s(),e?.run}filter(e){const t=[];for(let i=this.#e;i<this.#t.length;i++){const n=this.#t[i];n.priority===e.priority&&t.push(n.run)}return t}get size(){return this.#t.length-this.#e}#s(){this.#e!==0&&(this.#t.splice(0,this.#e),this.#e=0)}}class Ar extends Nr{#t;#e;#s=0;#f;#p=!1;#w=!1;#c;#b=0;#l;#u;#a;#o=[];#r=0;#i;#R;#n=0;#g;#d;#z=1n;#y=new Map;#v=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:fi,strict:!1,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#t=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#e=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#f=e.intervalCap,this.#c=e.interval,this.#a=e.strict,this.#i=new e.queueClass,this.#R=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#d=e.autoStart===!1,this.#B()}#E(e){for(;this.#r<this.#o.length;){const i=this.#o[this.#r];if(i!==void 0&&e-i>=this.#c)this.#r++;else break}(this.#r>100&&this.#r>this.#o.length/2||this.#r===this.#o.length)&&(this.#o=this.#o.slice(this.#r),this.#r=0)}#M(e){this.#a?this.#o.push(e):this.#s++}#L(){this.#a?this.#o.length>this.#r&&this.#o.pop():this.#s>0&&this.#s--}#x(){return this.#o.length-this.#r}get#A(){return this.#e?!0:this.#a?this.#x()<this.#f:this.#s<this.#f}get#I(){return this.#n<this.#g}#P(){this.#n--,this.#n===0&&this.emit("pendingZero"),this.#_(),this.emit("next")}#q(){this.#u=void 0,this.#O(),this.#D()}#H(e){if(this.#a){if(this.#E(e),this.#x()>=this.#f){const i=this.#o[this.#r],n=this.#c-(e-i);return this.#T(n),!0}return!1}if(this.#l===void 0){const t=this.#b-e;if(t<0)this.#s=this.#t?this.#n:0;else return this.#T(t),!0}return!1}#T(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#q()},e))}#C(){this.#l&&(clearInterval(this.#l),this.#l=void 0)}#S(){this.#u&&(clearTimeout(this.#u),this.#u=void 0)}#_(){if(this.#i.size===0){if(this.#C(),this.emit("empty"),this.#n===0){if(this.#S(),this.#a&&this.#r>0){const t=Date.now();this.#E(t)}this.emit("idle")}return!1}let e=!1;if(!this.#d){const t=Date.now(),i=!this.#H(t);if(this.#A&&this.#I){const n=this.#i.dequeue();this.#e||(this.#M(t),this.#m()),i&&this.#D(),this.emit("active"),n(),e=!0}}return e}#D(){this.#e||this.#l!==void 0||this.#a||(this.#l=setInterval(()=>{this.#O()},this.#c),this.#b=Date.now()+this.#c)}#O(){this.#a||(this.#l!==void 0&&(this.#s===0&&this.#n===0?this.#C():this.#b=Date.now()+this.#c),this.#s=this.#t?this.#n:0),this.#k(),this.#m()}#k(){for(;this.#_(););}get concurrency(){return this.#g}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#g=e,this.#k()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#i.setPriority(e,t)}async add(e,t={}){if(t={timeout:this.timeout,...t,id:t.id??(this.#z++).toString()},t.timeout!==void 0&&!(Number.isFinite(t.timeout)&&t.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${t.timeout}\` (${typeof t.timeout})`);return new Promise((i,n)=>{const s=Symbol(`task-${t.id}`);let a=()=>{};const l=async()=>{a(),this.#n++,this.#y.set(s,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let c;try{try{t.signal?.throwIfAborted()}catch(f){throw this.#F(),this.#y.delete(s),f}let u=e({signal:t.signal});if(t.timeout!==void 0&&(u=zr(Promise.resolve(u),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#n} running, ${this.#i.size} waiting)`})),t.signal){const{signal:f}=t;u=Promise.race([u,new Promise((_,w)=>{c=()=>{w(f.reason)},f.addEventListener("abort",c,{once:!0})})])}const h=await u;i(h),this.emit("completed",h)}catch(u){n(u),this.emit("error",u)}finally{c&&t.signal?.removeEventListener("abort",c),this.#y.delete(s),queueMicrotask(()=>{this.#P()})}};this.#i.enqueue(l,t);const d=()=>{if(this.#i instanceof fi){this.#i.remove(l);return}this.#i.remove?.(t.id)};if(t.signal){const{signal:c}=t,u=()=>{a(),d(),n(c.reason),this.#_(),this.emit("next")};if(a=()=>{c.removeEventListener("abort",u),this.#v.delete(a)},c.aborted){u();return}c.addEventListener("abort",u,{once:!0}),this.#v.add(a)}this.emit("add"),this.#_()})}async addAll(e,t){return Promise.all(e.map(async i=>this.add(i,t)))}start(){return this.#d?(this.#d=!1,this.#k(),this):this}pause(){this.#d=!0}clear(){for(const e of this.#v)e();this.#i=new this.#R,this.#C(),this.#N(),this.emit("empty"),this.#n===0&&(this.#S(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#i.size!==0&&await this.#h("empty")}async onSizeLessThan(e){this.#i.size<e||await this.#h(["next","active"],()=>this.#i.size<e)}async onIdle(){this.#n===0&&this.#i.size===0||await this.#h("idle")}async onPendingZero(){this.#n!==0&&await this.#h("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#h("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#h("rateLimitCleared")}onError(){return new Promise((e,t)=>{const i=n=>{this.off("error",i),t(n)};this.on("error",i)})}async#h(e,t){const i=Array.isArray(e)?e:[e];return new Promise(n=>{const s=()=>{if(!(t&&!t())){for(const a of i)this.off(a,s);n()}};for(const a of i)this.on(a,s)})}get size(){return this.#i.size}sizeBy(e){return this.#i.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#d}#B(){this.#e||(this.on("add",()=>{this.#i.size>0&&this.#m()}),this.on("next",()=>{this.#m()}))}#m(){this.#e||this.#w||(this.#w=!0,queueMicrotask(()=>{this.#w=!1,this.#N()}))}#F(){this.#e||(this.#L(),this.#m())}#N(){const e=this.#p;if(this.#e||this.#i.size===0){e&&(this.#p=!1,this.emit("rateLimitCleared"));return}let t;if(this.#a){const n=Date.now();this.#E(n),t=this.#x()}else t=this.#s;const i=t>=this.#f;i!==e&&(this.#p=i,this.emit(i?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#p}get isSaturated(){return this.#n===this.#g&&this.#i.size>0||this.isRateLimited&&this.#i.size>0}get runningTasks(){return[...this.#y.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}}const Ir=()=>{const r=ze.useAnalyticsConfigStore(),e=o.inject(ke);if(!e)return;if(e.queryFnOverride){console.warn("Detected incorrect use of useRequestQueue. This composable should not be used in nested components. Please discuss with team-data or report an issue if you feel you have a use case.");return}const t=new Ar({carryoverConcurrencyCount:!0,concurrency:r.maxParallelRequests,interval:r.requestInterval,intervalCap:r.requestIntervalCap}),i={...e,queryFnOverride:!0,queryFn:(n,s)=>t.add(()=>e.queryFn(n,s))};o.provide(ke,i)};const Pr=typeof window<"u";let mi;process.env.NODE_ENV;const pi=process.env.NODE_ENV!=="production"?Symbol("pinia"):Symbol();var gi;(function(r){r.direct="direct",r.patchObject="patch object",r.patchFunction="patch function"})(gi||(gi={})),process.env.NODE_ENV;function Ve(r){const e=o.toRaw(r),t={};for(const i in e){const n=e[i];n.effect?t[i]=o.computed({get:()=>r[i],set(s){r[i]=s}}):(o.isRef(n)||o.isReactive(n))&&(t[i]=o.toRef(r,i))}return t}const we=r=>r?.chart.type==="table",qr=(r,e)=>{const t=r.header_description??("description"in r.chart?r.chart.description:void 0);if(t)return t.replaceAll(ai,e)||void 0},Hr=["basic","api_usage","llm_usage","agentic_usage","platform","platform_usage","managed_cache_usage",void 0],Br=r=>Hr.includes(r);function Fr({queryBridge:r,context:e,definition:t,chartData:i}){const n=o.ref(""),s=o.ref(""),a=o.ref(void 0),l=o.ref(void 0),d=ze.useAnalyticsConfigStore(),c=ze.useDatasourceConfigStore(),{stripUnknownFilters:u,loading:h}=Ve(c),f=o.computed(()=>we(t.value));o.onMounted(async()=>{n.value=await r?.exploreBaseUrl?.()??"",s.value=await r?.requestsBaseUrl?.()??""});const _=o.computed(()=>d.analytics&&d.percentiles),w=o.computed(()=>{const y=t.value.chart.type;return["golden_signals","gauge"].includes(y)?!1:y==="top_n"?e.value.editable||e.value.showTileActions:!0}),v=o.computed(()=>s.value&&t.value.query&&!f.value&&t.value.query.datasource!=="llm_usage"&&t.value.query.datasource!=="managed_cache_usage"&&!oe.isPlatformDatasource(t.value.query.datasource)&&_.value&&!h.value),b=o.computed(()=>n.value&&t.value.query&&Br(t.value.query.datasource)&&_.value&&!h.value),M=o.computed(()=>i.value?oe.msToGranularity(i.value.meta.granularity_ms):void 0),S=o.computed(()=>{const y=t.value,E=[...e.value.filters,...y.query.filters??[]],x="metrics"in y.query?y.query.metrics:void 0,L=y.query?.datasource??"api_usage";return u.value({datasource:L,filters:E,queryFields:x})}),k=o.computed(()=>{if(!b.value||!w.value)return"";const y=t.value;if(we(y))return m({...y.query,filters:S.value});const E=y.query.time_range||e.value.timeSpec,x=p(E,S.value);return m(x)}),W=o.computed(()=>{if(!v.value||!w.value)return"";const y=S.value,E=t.value;if(we(E))return"";const x=Z(E.query.time_range||e.value.timeSpec,y);return N(x)}),N=y=>v.value?`${s.value}?q=${JSON.stringify(y)}`:"",Z=(y,E)=>{const x=i.value?.meta?.start?new Date(i.value.meta.start):void 0,L=i.value?.meta?.end?new Date(i.value.meta.end):void 0;return{filter:E,timeframe:{timePeriodsKey:y.type==="relative"?y.time_range:"custom",start:y.type==="absolute"?x:void 0,end:y.type==="absolute"?L:void 0}}},G=(y,E)=>({filter:E,timeframe:{timePeriodsKey:y.type==="relative"?y.time_range:"custom",start:y.type==="absolute"?y.start:void 0,end:y.type==="absolute"?y.end:void 0}}),p=(y,E)=>{const x=t.value;if(we(x))throw new Error("Cannot build a chart explore query for table chart definitions");const L=[...x.query.dimensions??[]],ee=[...x.query.metrics??[]];return{filters:E,metrics:ee,dimensions:L,time_range:y,granularity:x.query.granularity||M.value||void 0}},m=y=>{if(!b.value)return"";const E=t.value.query.datasource&&t.value.query.datasource!=="basic"?t.value.query.datasource:"api_usage";return`${n.value}?q=${JSON.stringify(y)}&d=${E}&c=${t.value.chart.type}`};return o.watch([v,b],([y,E])=>{y&&(a.value={href:""}),E&&(l.value={href:""})}),{exploreLinkKebabMenu:k,requestsLinkKebabMenu:W,canShowKebabMenu:w,canGenerateRequestsLink:v,canGenerateExploreLink:b,requestsLinkZoomActions:a,exploreLinkZoomActions:l,buildExploreQuery:p,buildRequestsQueryZoomActions:G,buildExploreLink:m,buildRequestLink:N}}function $r(){const r=o.inject(ke),e=ze.useDatasourceConfigStore(),{stripUnknownFilters:t}=Ve(e);let i=null;return o.onUnmounted(()=>{i?.abort()}),{issueQuery:async(s,a,l)=>{if(!r)throw new Error("Query bridge is not defined");i?.abort();const d=new AbortController;i=d,await e.isReady();const{datasource:c,limit:u,...h}=s,f=c||"basic",_=oe.isPlatformDatasource(f),w=t.value({datasource:f,filters:[...s.filters??[],...a.filters],queryFields:s.metrics}).filter(({operator:M})=>!_||!oe.requestFilterTypeEmptyV2.some(S=>S===M));let v=s.time_range;v?v.tz||(v={...v,tz:a.tz}):v={...a.timeSpec,tz:a.tz};const b={datasource:f,query:{...h,time_range:v,filters:w,limit:l??u}};return r.queryFn(b,d)}}}function Ur({context:r,globalFilters:e=o.ref([]),isFullscreen:t=o.ref(!1),preview:i=o.ref(!1)}){const n=ze.useAnalyticsConfigStore(),s=ze.useDatasourceConfigStore(),{loading:a}=Ve(n),{loading:l}=Ve(s),d=o.computed(()=>r.value.timeSpec?r.value.timeSpec:{type:"relative",time_range:n.defaultQueryTimeForOrg}),c=o.computed(()=>{let{tz:h,refreshInterval:f,editable:_,showTileActions:w}=r.value;const v=[...r.value.filters??[],...e.value];if(h||(h=new Intl.DateTimeFormat().resolvedOptions().timeZone),f===void 0&&(f=li),t.value){let M=!1;if(d.value.type==="relative")M=["15m","1h","6h","12h","24h"].includes(d.value.time_range);else{const W=d.value.start.getTime(),N=d.value.end.getTime();M=Math.abs(N-W)<=864e5}const S=new Date().getTime();d.value.type==="absolute"&&d.value.end.getTime()<S||d.value.type==="relative"&&["previous_week","previous_month"].includes(d.value.time_range)?f=0:M?f=ci:f=ui}(_===void 0||i.value)&&(_=!1),w===void 0&&(w=!0);const b=!i.value&&!!o.getCurrentInstance()?.vnode?.props?.onTileTimeRangeZoom;return{filters:v,tz:h,timeSpec:d.value,refreshInterval:f,editable:_,showTileActions:w&&!i.value,showTileZoomActions:!i.value,zoomable:b}}),u=o.computed(()=>!!r.value.timeSpec||!a.value&&!l.value);return{internalContext:c,queryReady:u}}const Wr=6,yi=6,_i=4;function Gr(r,e){const{pageWidth:t,pageHeight:i,margin:n}=e,s=n+1,a=n+e.headerHeight-3,l=i-n-yi+3,d=l+4;e.title&&(r.setFont("helvetica","bold"),r.setFontSize(11),r.setTextColor(60),r.text(e.title,n,s)),r.setFont("helvetica","normal"),r.setFontSize(8),r.setTextColor(120),r.text(e.generatedAt,t-n,s,{align:"right"}),e.subtitle&&r.text(e.subtitle,n,s+_i),r.setDrawColor(220),r.line(n,a,t-n,a),r.line(n,l,t-n,l),r.setFont("helvetica","bold"),r.setTextColor(60),r.text(e.branding,n,d);const c=r.getTextWidth(e.branding);r.setFont("helvetica","normal");const u=` ${e.dashboardNote}`;e.dashboardUrl?(r.setTextColor(0,68,204),r.textWithLink(u,n+c,d,{url:e.dashboardUrl})):(r.setTextColor(120),r.text(u,n+c,d)),r.setTextColor(120),r.text(e.pageLabel,t-n,d,{align:"right"})}function Yr(r){const e=r.querySelector(".kong-ui-public-grid-layout, .grid-stack");if(!e)return[];const t=e.querySelectorAll(":scope > .grid-cell:not(.empty-cell), :scope > .grid-stack-item");if(!t.length)return[];const i=r.getBoundingClientRect().top,n=new Map;return t.forEach(s=>{const a=s.getBoundingClientRect(),l=Math.round(a.top-i),d=Math.round(a.bottom-i),c=n.get(l);n.set(l,c!==void 0?Math.max(c,d):d)}),[...n.entries()].map(([s,a])=>({top:s,bottom:a})).sort((s,a)=>s.top-a.top)}function Vr(r,e,t,i){if(!r.length){const a=[];let l=0;for(;l<e;){const d=Math.min(t,e-l);a.push({startY:l,height:d}),l+=d}return a}const n=[];let s=0;for(const a of r){const l=a.top*i,d=a.bottom*i;d-s>t&&(l>s?(n.push({startY:s,height:l-s}),s=l):(n.push({startY:s,height:d-s}),s=d))}return s<e&&n.push({startY:s,height:e-s}),n}function jr(r){const{i18n:e}=si(),t=o.ref({status:"idle"});async function i(n={}){const{filename:s="dashboard-export",title:a,subtitle:l,dashboardUrl:d,orientation:c="landscape",pageSize:u="letter",margin:h=4,scale:f=2,exclude:_=[".tile-actions",".tooltip",".popover",".dropdown-popover"],output:w="download",onBeforeCapture:v,onAfterCapture:b}=n,M=r.value;if(!M){t.value={status:"error",error:new Error("Dashboard layout container not found.")};return}try{t.value={status:"preparing"},await v?.();const[{snapdom:S},{jsPDF:k}]=await Promise.all([import("@zumer/snapdom"),import("jspdf")]);t.value={status:"capturing"};const W={name:"kong-webgl-snapshot",beforeClone:()=>oe.prepareForCapture(),afterClone:()=>oe.restoreAfterCapture()},N=await S.toCanvas(M,{scale:f,exclude:_,excludeMode:"remove",embedFonts:!0,plugins:[W]}),Z=Yr(M),G=M.getBoundingClientRect().width,p=G?N.width/G:f;t.value={status:"generating"};const m=new Date,y=new k({orientation:c,unit:"mm",format:u}),E=y.internal.pageSize.getWidth(),x=y.internal.pageSize.getHeight(),L=Wr+(l?_i:0),ee=E-h*2,ce=x-h*2-L-yi,se=N.width/ee,j=ce*se,R=Vr(Z,N.height,j,p),C={title:a,subtitle:l,dashboardUrl:d,generatedAt:e.t("pdfExport.generated",{timestamp:m.toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"})}),branding:e.t("pdfExport.branding"),dashboardNote:e.t("pdfExport.dashboardNote"),pageWidth:E,pageHeight:x,headerHeight:L,margin:h};for(let q=0;q<R.length;q++){q>0&&y.addPage();const{startY:T,height:z}=R[q],O=document.createElement("canvas");O.width=N.width,O.height=z,O.getContext("2d").drawImage(N,0,T,N.width,z,0,0,N.width,z),y.addImage(O.toDataURL("image/png"),"PNG",h,h+L,ee,z/se),Gr(y,{...C,pageLabel:e.t("pdfExport.pageOf",{page:String(q+1),total:String(R.length)})})}if(w==="blob"){const q=y.output("blob");return t.value={status:"complete",pageCount:R.length},q}y.save(s),t.value={status:"complete",pageCount:R.length}}catch(S){t.value={status:"error",error:S}}finally{oe.restoreAfterCapture(),await b?.()}}return{exportPdf:i,exportState:o.readonly(t)}}const me={useContextLinks:Fr,useDashboardInternalContext:Ur,useEvaluateFeatureFlag:Sr,useExportPdf:jr,useI18n:si,useIssueQuery:$r,useRequestQueue:Ir},Kr={class:"kong-ui-public-csv-export-modal"},Xr={key:0,class:"selected-range"},Qr={key:4,class:"text-muted",tag:"span"},wi=3,bi=o.defineComponent({__name:"CsvExportModal",props:{exportState:{},filename:{},modalDescription:{default:void 0}},emits:["closeModal"],setup(r,{emit:e}){const{i18n:t}=me.useI18n(),i=r,n=e,s=`${i.filename.replace(/\s+/g,"-").toLowerCase()}-${new Date().toISOString().slice(0,10)}.csv`,a=o.ref(1),l=o.computed(()=>f.value.rows.length),d=o.computed(()=>i.exportState.status==="success"&&!!i.exportState.chartData?.data?.length),c=o.computed(()=>{if(i.exportState.status!=="success"||!i.exportState.chartData?.meta)return"";const{start:w,end:v}=i.exportState.chartData.meta;return w&&v?`${oe.formatTimestamp(new Date(w))} - ${oe.formatTimestamp(new Date(v),{includeTZ:!0})}`:""}),u=o.computed(()=>i.exportState.status!=="success"?"":t.t("csvExport.previewRows",{rowsMax:Math.min(wi,l.value),rowsTotal:l.value,plural:l.value===1?"":"s"})),h=()=>{n("closeModal")},f=o.computed(()=>{if(i.exportState.status!=="success"||!d.value||!i.exportState.chartData?.meta.metric_names)return{headers:[],rows:[],csvHeaders:{}};const w=i.exportState.chartData,v=w.data.some(N=>N.timestamp!==w.data[0].timestamp),b=w.data.map(N=>{const Z=new Date(N.timestamp);return{...Object.keys(N.event).reduce((p,m)=>{if(m in w.meta.display){const y=N.event[m],E=w.meta.display[m];p[m]=y&&E&&E[y].name||N.event[m]}else p[m]=N.event[m];return p},{}),...v?{timestamp:Jt(Z,"yyyy-MM-dd HH:mm:ss"),tzOffset:Jt(Z,"XXX")}:{}}});let M=[];v&&(M=[{label:t.t("csvExport.Timestamp"),key:"timestamp"},{label:t.t("csvExport.UtcOffset"),key:"tzOffset"}]);const S="display"in i.exportState.chartData.meta&&i.exportState.chartData.meta.display?i.exportState.chartData.meta.display:{},k=[...M,...Object.keys(S).map(N=>({label:t.t(`chartLabels.${N}`),key:N})),...i.exportState.chartData.meta.metric_names.map(N=>({label:t.t(`chartLabels.${N}`),key:N}))],W=k.reduce((N,Z)=>(N[Z.key]=Z.label,N),{});return{headers:k,csvHeaders:W,rows:b}}),_=async()=>{if(i.exportState.status!=="success")return{total:0,data:[]};const{rows:w}=f.value;return{total:Number(w.length)||0,data:w.slice(0,wi)}};return o.watch(f,()=>{a.value++}),(w,v)=>{const b=o.resolveComponent("KSkeleton"),M=o.resolveComponent("KEmptyState"),S=o.resolveComponent("KTableData"),k=o.resolveComponent("KTooltip"),W=o.resolveComponent("KButton"),N=o.resolveComponent("KModal");return o.openBlock(),o.createElementBlock("div",Kr,[o.createVNode(N,{class:"vitals-report","data-testid":"csv-export-modal","show-dismiss-icon":"",title:o.unref(t).t("csvExport.exportPreview"),visible:"",onCancel:h,onKeyup:o.withKeys(h,["esc"])},{default:o.withCtx(()=>[o.createElementVNode("div",null,[r.exportState.status==="success"&&d.value?(o.openBlock(),o.createElementBlock("div",Xr,[o.createElementVNode("p",null,o.toDisplayString(r.modalDescription?r.modalDescription:o.unref(t).t("csvExport.exportDescription")),1),o.createElementVNode("p",null,o.toDisplayString(o.unref(t).t("csvExport.exportTimeRange"))+": "+o.toDisplayString(c.value),1)])):o.createCommentVNode("",!0),r.exportState.status==="loading"?(o.openBlock(),o.createBlock(b,{key:1,class:"chart-skeleton",type:"table"})):r.exportState.status==="success"?(o.openBlock(),o.createBlock(S,{key:2,class:"vitals-table",fetcher:_,"fetcher-cache-key":String(a.value),headers:f.value.headers,"hide-pagination":"","row-hover":!1,sortable:!1},{"empty-state":o.withCtx(()=>[o.createVNode(M,{"action-button-visible":!1},{title:o.withCtx(()=>[o.createElementVNode("h5",null,o.toDisplayString(o.unref(t).t("csvExport.noDataRange")),1)]),default:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(o.unref(t).t("csvExport.noDataRetry")),1)]),_:1})]),_:1},8,["fetcher-cache-key","headers"])):r.exportState.status==="error"?(o.openBlock(),o.createBlock(M,{key:3,"action-button-visible":!1},{title:o.withCtx(()=>[o.createElementVNode("h5",null,o.toDisplayString(o.unref(t).t("csvExport.dataError")),1)]),_:1})):o.createCommentVNode("",!0),r.exportState.status==="success"&&d.value?(o.openBlock(),o.createElementBlock("div",Qr,[o.createTextVNode(o.toDisplayString(u.value)+" ",1),o.createVNode(k,{class:"preview-tooltip",placement:"right",text:o.unref(t).t("csvExport.maximumRecordAmount",{value:o.unref(oe.EXPORT_RECORD_LIMIT)})},{default:o.withCtx(()=>[o.createVNode(o.unref(Ne.InfoIcon),{color:`var(--kui-color-text-neutral, ${o.unref(_t)})`,size:`var(--kui-icon-size-30, ${o.unref(gr)})`},null,8,["color","size"])]),_:1},8,["text"])])):o.createCommentVNode("",!0)])]),"footer-actions":o.withCtx(()=>[o.createVNode(W,{appearance:"tertiary",class:"cancel-btn",onClick:h},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(t).t("csvExport.cancelButton")),1)]),_:1}),o.createVNode(Rr,{class:"vitals-report-export-button",filename:s,headers:f.value.csvHeaders,rows:f.value.rows},{default:o.withCtx(()=>[o.createVNode(W,{appearance:"primary","data-testid":"csv-download-button",disabled:r.exportState.status!=="success"||!d.value},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(t).t("csvExport.downloadButton")),1)]),_:1},8,["disabled"])]),_:1},8,["headers","rows"])]),_:1},8,["title"])])}}});var vi=(r=>(r.VALIDATING="VALIDATING",r.VALIDATING_HAS_DATA="VALIDATING_HAS_DATA",r.PENDING="PENDING",r.SUCCESS="SUCCESS",r.SUCCESS_HAS_DATA="SUCCESS_HAS_DATA",r.ERROR="ERROR",r.STALE_IF_ERROR="STALE_IF_ERROR",r))(vi||{});const Zr=r=>r?!!(Object.keys(r)?.length||r.data?.length||r.data?.data?.length||!r.data?.data&&typeof r.data=="object"&&Object.keys(r?.data).length):!1;function Jr(r=o.ref({}),e,t,i=Zr){const n=o.ref("PENDING");return o.watchEffect(()=>{const s=i(r.value);if(r.value&&s&&t.value){n.value="VALIDATING_HAS_DATA";return}if(r.value&&t.value){n.value="VALIDATING";return}if(r.value&&e.value){n.value="STALE_IF_ERROR";return}if(r.value===void 0&&!e.value){n.value="PENDING";return}if(r.value&&!e.value&&s){n.value="SUCCESS_HAS_DATA";return}if(r.value&&!e.value){n.value="SUCCESS";return}r.value===void 0&&e&&(n.value="ERROR")}),{state:n,swrvState:vi}}const nt=o.defineComponent({__name:"QueryDataProvider",props:{context:{},limitOverride:{},query:{},queryReady:{type:Boolean},refreshCounter:{}},emits:["chart-data","query-complete"],setup(r,{emit:e}){const t=r,i=e,{i18n:n}=me.useI18n(),{issueQuery:s}=me.useIssueQuery(),a=o.inject(ke),l=()=>t.queryReady&&a?JSON.stringify([t.query,t.context,t.refreshCounter]):null,{data:d,error:c,isValidating:u}=Li(l,async()=>{const S=l();try{const k=await s(t.query,t.context,t.limitOverride);return l()!==S?void 0:(_.value=null,k)}catch(k){if(l()!==S)return;throw _.value=Xe.handleQueryError(k),k}finally{l()===S&&i("query-complete")}},{refreshInterval:t.context.refreshInterval,revalidateOnFocus:!1,shouldRetryOnError:!1}),{state:h,swrvState:f}=Jr(d,c,u),_=o.ref(null),w=o.computed(()=>h.value===f.ERROR||!!_.value),v=o.computed(()=>!t.queryReady||h.value===f.PENDING),b=o.ref(),M=o.computed(()=>d.value??(t.queryReady&&h.value===f.PENDING?b.value:void 0));return o.watch([()=>d.value,()=>h.value],([S,k])=>{S&&(k==="SUCCESS_HAS_DATA"||k==="SUCCESS")&&S!==b.value&&(b.value=S,i("chart-data",S))}),(S,k)=>{const W=o.resolveComponent("KSkeleton"),N=o.resolveComponent("KEmptyState");return(v.value||!o.unref(d)&&!w.value)&&!M.value?(o.openBlock(),o.createBlock(W,{key:0,class:"chart-skeleton",type:"table"})):w.value&&!v.value?(o.openBlock(),o.createBlock(N,{key:1,"action-button-visible":!1,"data-testid":"chart-empty-state"},o.createSlots({icon:o.withCtx(()=>[_.value?.type==="forbidden"?(o.openBlock(),o.createBlock(o.unref(Ne.VisibilityOffIcon),{key:0})):(o.openBlock(),o.createBlock(o.unref(Ne.WarningOutlineIcon),{key:1}))]),title:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(_.value?.message||o.unref(n).t("renderer.unexpectedError")),1)]),_:2},[_.value?.details?{name:"default",fn:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(_.value.details),1)]),key:"0"}:void 0]),1024)):M.value?o.renderSlot(S.$slots,"default",{data:M.value},void 0,void 0,2):o.createCommentVNode("",!0)}}}),es=o.defineComponent({__name:"SimpleChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){const e=r,t=o.computed(()=>e.chartOptions.type==="single_value");return(i,n)=>(o.openBlock(),o.createBlock(nt,{context:r.context,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},{default:o.withCtx(({data:s})=>[o.createElementVNode("div",{class:o.normalizeClass(["analytics-chart",{"single-value":t.value}]),style:o.normalizeStyle(t.value?void 0:{height:`${r.height}px`})},[o.createVNode(o.unref(Xe.SimpleChart),{"chart-data":s,"chart-options":r.chartOptions,"synthetics-data-key":t.value?void 0:r.chartOptions.synthetics_data_key},null,8,["chart-data","chart-options","synthetics-data-key"])],6)]),_:1},8,["context","query","query-ready","refresh-counter"]))}}),Ae=(r,e)=>{const t=r.__vccOpts||r;for(const[i,n]of e)t[i]=n;return t},Ei=Ae(es,[["__scopeId","data-v-2cbfac70"]]),ts={class:"analytics-chart"},Et=Ae(o.defineComponent({__name:"BaseAnalyticsChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{},extraProps:{}},emits:["edit-tile","chart-data","zoom-time-range","view-requests","select-chart-range"],setup(r,{emit:e}){const t=r,i=e,{i18n:n}=me.useI18n(),s=o.computed(()=>({type:t.chartOptions.type,stacked:t.chartOptions.stacked??!1,chartDatasetColors:t.chartOptions.chart_dataset_colors,threshold:t.chartOptions.threshold,hideTruncationWarning:t.query.limit!==void 0&&t.query.limit>0})),a=o.computed(()=>t.context.zoomable),l=()=>{i("edit-tile")},d=c=>{i("chart-data",c)};return(c,u)=>{const h=o.resolveComponent("KDropdownItem");return o.openBlock(),o.createBlock(nt,{context:r.context,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter,onChartData:d},{default:o.withCtx(({data:f})=>[o.createElementVNode("div",ts,[o.createVNode(o.unref(Xe.AnalyticsChart),o.mergeProps({"chart-data":f,"chart-options":s.value,"explore-link":r.exploreLink,"legend-position":"bottom","requests-link":r.requestsLink,"synthetics-data-key":r.chartOptions.synthetics_data_key,"timeseries-zoom":a.value,"tooltip-title":""},r.extraProps,{onSelectChartRange:u[0]||(u[0]=_=>i("select-chart-range",_)),onZoomTimeRange:u[1]||(u[1]=_=>i("zoom-time-range",_))}),o.createSlots({_:2},[r.context.editable?{name:"menu-items",fn:o.withCtx(()=>[o.createVNode(h,{onClick:l},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(n).t("renderer.edit")),1)]),_:1})]),key:"0"}:void 0]),1040,["chart-data","chart-options","explore-link","requests-link","synthetics-data-key","timeseries-zoom"])])]),_:1},8,["context","query","query-ready","refresh-counter"])}}}),[["__scopeId","data-v-e1e7f610"]]),xi=o.defineComponent({__name:"BarChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){return(e,t)=>(o.openBlock(),o.createBlock(Et,{"chart-options":r.chartOptions,context:r.context,"extra-props":{showAnnotations:!1},height:r.height,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},null,8,["chart-options","context","height","query","query-ready","refresh-counter"]))}}),Ci=o.defineComponent({__name:"TimeseriesChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},emits:["zoom-time-range","select-chart-range"],setup(r,{emit:e}){const t=e;return(i,n)=>(o.openBlock(),o.createBlock(Et,{"chart-options":r.chartOptions,context:r.context,"explore-link":r.exploreLink,height:r.height,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter,"requests-link":r.requestsLink,onSelectChartRange:n[0]||(n[0]=s=>t("select-chart-range",s)),onZoomTimeRange:n[1]||(n[1]=s=>t("zoom-time-range",s))},null,8,["chart-options","context","explore-link","height","query","query-ready","refresh-counter","requests-link"]))}}),is=Ae(o.defineComponent({__name:"GoldenSignalsRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){const e=r,t=o.computed(()=>{const n=e.query?.datasource;if(n&&n!=="api_usage"&&n!=="basic")throw new Error(`Invalid datasource value: ${n}`);return{datasource:e.query?.datasource,overrideTimeRange:e.context.timeSpec,additionalFilter:e.context.filters,longCardTitles:e.chartOptions.long_card_titles,percentileLatency:e.chartOptions.percentile_latency,refreshInterval:e.context.refreshInterval,queryReady:e.queryReady,refreshCounter:e.refreshCounter}}),i=o.computed(()=>!!(e.chartOptions.chart_title||e.headerDescription));return(n,s)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["metric-card-tile-wrapper",{titled:i.value}])},[o.createVNode(o.unref(kt.MetricsProvider),o.normalizeProps(o.guardReactiveProps(t.value)),{default:o.withCtx(()=>[o.createVNode(o.unref(kt.MetricsConsumer))]),_:1},16)],2))}}),[["__scopeId","data-v-3eda5028"]]),ns={class:"fallback-entity-link","data-testid":"entity-link-parent"},ki=o.defineComponent({__name:"FallbackEntityLink",props:{entityLinkData:{}},setup(r){return(e,t)=>(o.openBlock(),o.createElementBlock("div",ns,o.toDisplayString(r.entityLinkData.label),1))}}),rs={key:0},ss={key:1},os=o.defineComponent({__name:"TopNTableRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){const e=r,t=o.inject(ke),i=o.defineAsyncComponent(async()=>{if(t?.fetchComponent)try{return await t.fetchComponent("EntityLink")}catch{return ki}return ki}),n=o.computed(()=>!!e.chartOptions.entity_link||!!Object.keys(e.chartOptions.entity_links||{}).length),s=c=>{const u=e.chartOptions.entity_links;return u&&(u[c]||Object.entries(u).find(([h])=>h.toLowerCase()===c.toLowerCase())?.[1])||""},a=c=>{const u=c.dimensions?.[0]?.dimension;return!u||u===c.dimension},l=c=>s(c.dimension)||a(c)&&e.chartOptions.entity_link||"",d=c=>{const u=l(c);if(u)if(c.id.includes(":")){const[h,f]=c.id.split(":");return u.replace(oi,h).replace(wt,f)}else return u.replace(wt,c.id);return""};return(c,u)=>(o.openBlock(),o.createBlock(nt,{context:r.context,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},{default:o.withCtx(({data:h})=>[o.createVNode(o.unref(Xe.TopNTable),{data:h,"synthetics-data-key":r.chartOptions.synthetics_data_key},o.createSlots({_:2},[n.value?{name:"name",fn:o.withCtx(({record:f})=>[!f.isEmpty&&l(f)?(o.openBlock(),o.createBlock(o.unref(i),{key:0,"entity-link-data":{id:f.id,label:f.name,deleted:f.deleted},"external-link":d(f)},null,8,["entity-link-data","external-link"])):(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[f.name==="empty"?(o.openBlock(),o.createElementBlock("i",rs,o.toDisplayString(f.name),1)):(o.openBlock(),o.createElementBlock("span",ss,o.toDisplayString(f.name),1))],64))]),key:"0"}:void 0]),1032,["data","synthetics-data-key"])]),_:1},8,["context","query","query-ready","refresh-counter"]))}}),as=r=>r.records.map(e=>{const t={...e};return Object.entries(e).forEach(([i,n])=>{if(n===null)return;const s=r.meta.display?.[i]?.[String(n)]?.name;s&&(t[i]=s)}),t}),Ri=({canTranslate:r,columns:e,translate:t})=>e.map(i=>{const n=`chartLabels.${i}`;return{key:i,label:r(n)?t(n):i}}),ls={platform:Ri,platform_usage:Ri},Ti=async({abortController:r,context:e,cursor:t,pageSize:i,query:n,onResponseColumns:s,stripUnknownFilters:a,tabularQueryFn:l})=>{if(!l)throw new Error("AnalyticsBridge.tabularQueryFn is not defined");const d=n.query,c=a({datasource:n.datasource,filters:[...d.filters??[],...e.filters],queryFields:d.entity===void 0?void 0:[d.entity]}),u=await l({datasource:n.datasource,query:{columns:d.columns,cursor:t===void 0?d.cursor:String(t),entity:d.entity,filters:c,page_size:i}},r);return u.meta.columns?.length&&s?.(u.meta.columns),{data:as(u),cursor:u.meta.cursor,hasMore:!!u.meta.cursor}},cs={platform:Ti,platform_usage:Ti},us=Ae(o.defineComponent({__name:"TableDataGridRenderer",props:{query:{},context:{},queryReady:{type:Boolean},height:{},refreshCounter:{}},emits:["loading-change"],setup(r,{emit:e}){const t=r,i=e,n=o.inject(ke),s=ze.useDatasourceConfigStore(),{i18n:a}=me.useI18n(),l=new AbortController,d=o.ref([]),c=o.ref(!1),u=o.computed(()=>t.height===void 0?void 0:{height:`${t.height}px`}),h=o.computed(()=>({datasource:t.query.datasource,query:{columns:t.query.columns,cursor:t.query.cursor,entity:t.query.entity,filters:t.query.filters,page_size:t.query.page_size}})),f=o.computed(()=>JSON.stringify({refreshCounter:t.refreshCounter,query:{columns:t.query.columns,datasource:t.query.datasource,entity:t.query.entity,filters:t.query.filters,page_size:t.query.page_size},context:{filters:t.context.filters,timeSpec:t.context.timeSpec,tz:t.context.tz}}));o.onUnmounted(()=>{l.abort()});const _=o.computed(()=>ls[t.query.datasource]({columns:t.query.columns?.length?t.query.columns:d.value,translate:b=>a.t(b),canTranslate:b=>a.te(b)})),w=o.computed(()=>async({cursor:b,pageSize:M})=>{try{await s.isReady();const S=cs[h.value.datasource];if(!S)throw new Error(`No table data grid fetcher found for datasource: ${h.value.datasource}`);const k=await S({abortController:l,context:t.context,cursor:b,pageSize:M,query:h.value,onResponseColumns:W=>{d.value=W},stripUnknownFilters:s.stripUnknownFilters,tabularQueryFn:n?.tabularQueryFn});return c.value=!1,k}catch(S){throw c.value=!0,S}}),v=b=>{b.state==="error"&&(c.value=!0),i("loading-change",b.state==="loading")};return(b,M)=>{const S=o.resolveComponent("KSkeleton");return o.openBlock(),o.createElementBlock("div",{class:"table-data-grid-renderer",style:o.normalizeStyle(u.value)},[r.queryReady?(o.openBlock(),o.createBlock(o.unref(Mi.TableDataGrid),{key:1,error:c.value,fetcher:w.value,headers:_.value,"page-size":r.query.page_size,"refresh-key":f.value,onState:v},null,8,["error","fetcher","headers","page-size","refresh-key"])):(o.openBlock(),o.createBlock(S,{key:0,"data-testid":"table-skeleton",type:"table"}))],4)}}}),[["__scopeId","data-v-c49ff2eb"]]),ds=o.defineComponent({__name:"DonutChartRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},setup(r){return(e,t)=>(o.openBlock(),o.createBlock(Et,{"chart-options":r.chartOptions,context:r.context,height:r.height,query:r.query,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter},null,8,["chart-options","context","height","query","query-ready","refresh-counter"]))}}),hs=["data-testid"],fs={key:0,class:"tile-header"},ms={class:"badge-container"},ps={class:"badge-text"},gs={key:0},ys=["data-testid"],_s=["data-testid"],ws=["data-testid"],bs={class:"delete-option"},vs=["data-testid"],Si=Ae(o.defineComponent({__name:"DashboardTile",props:o.mergeModels({context:{},definition:{},height:{default:$e},isFullscreen:{type:Boolean},hideActions:{type:Boolean,default:!1},hideZoomActions:{type:Boolean,default:!1},queryReady:{type:Boolean},showRefresh:{type:Boolean,default:!1},tileId:{},tileType:{default:"chart"}},{refreshCounter:{default:0},refreshCounterModifiers:{}}),emits:o.mergeModels(["chart-data","tile-loaded","edit-tile","duplicate-tile","remove-tile","tile-time-range-zoom","tile-bounds-change"],["update:refreshCounter"]),setup(r,{expose:e,emit:t}){o.useCssVars(D=>({e67878b0:`${D.height}px`}));const i=parseInt(ii,10),n=r,s=o.useModel(r,"refreshCounter"),a=()=>{S.value=!0,s.value++},l=t,d=o.defineAsyncComponent(()=>Promise.resolve().then(()=>Hs)),c=o.inject(ke),u=ze.useDatasourceConfigStore(),{stripUnknownFilters:h}=Ve(u),{i18n:f}=me.useI18n(),_=o.ref(),w=o.ref({status:"loading"}),v=o.ref(!1),b=o.ref(),M=o.ref(!1),S=o.ref(!0),k=o.computed(()=>n.definition.chart),W=o.computed(()=>"chart_title"in k.value?k.value.chart_title:void 0),N=o.computed(()=>n.definition.header_description),Z=o.computed(()=>k.value.type==="slottable"),G=o.computed(()=>we(n.definition)?!1:!("allow_csv_export"in k.value)||k.value.allow_csv_export!==!1),{exploreLinkKebabMenu:p,requestsLinkKebabMenu:m,canShowKebabMenu:y,canGenerateRequestsLink:E,canGenerateExploreLink:x,requestsLinkZoomActions:L,exploreLinkZoomActions:ee,buildExploreQuery:ce,buildExploreLink:se,buildRequestLink:j,buildRequestsQueryZoomActions:R}=me.useContextLinks({queryBridge:c,chartData:o.readonly(_),definition:o.toRef(n,"definition"),context:o.readonly(o.toRef(n,"context"))}),{issueQuery:C}=me.useIssueQuery();o.watch(()=>n.definition,async(D,H)=>{await o.nextTick(),b.value&&(M.value=b.value.scrollWidth>b.value.clientWidth);try{JSON.stringify(D?.query)!==JSON.stringify(H?.query)&&(S.value=!0)}catch{}},{immediate:!0,deep:!0});const q=o.computed(()=>f.t("csvExport.defaultFilename")),T=o.computed(()=>!!p.value||G.value||n.context.editable),z=o.computed(()=>!n.hideActions&&y.value&&T.value),O=o.computed(()=>z.value&&T.value&&!n.isFullscreen),ue={timeseries_line:Ci,timeseries_bar:Ci,horizontal_bar:xi,vertical_bar:xi,gauge:Ei,donut:ds,golden_signals:is,top_n:os,table:us,slottable:void 0,single_value:Ei,choropleth_map:d},J=o.computed(()=>({...K.value?.rendererEvents.supportsRequests?{"select-chart-range":ve}:{},...K.value?.rendererEvents.supportsZoom?{"zoom-time-range":Pe}:{},...K.value?.rendererEvents.supportsBounds?{"bounds-change":le}:{},...K.value?.rendererEvents.supportsLoadingChange?{"loading-change":te}:{}})),K=o.computed(()=>{const D=n.definition,H=ue[D.chart.type],ie=we(D),Ce=!!H?.emits?.includes("select-chart-range"),Oe=!!H?.emits?.includes("zoom-time-range"),pe=D.chart.type==="choropleth_map",ge=!!H?.emits?.includes("loading-change"),qe={query:D.query,context:n.context,queryReady:n.queryReady,height:n.height-i*2,refreshCounter:s.value},ut={chartOptions:D.chart,headerDescription:N.value,requestsLink:n.hideZoomActions?void 0:L.value,exploreLink:n.hideZoomActions?void 0:ee.value};return H&&{component:H,rendererProps:{...qe,...ie?{}:ut},rendererEvents:{supportsRequests:Ce,supportsZoom:Oe,supportsBounds:pe,supportsLoadingChange:ge}}}),fe=o.computed(()=>{if(we(n.definition))return null;const D=n.definition.query,H=D?.time_range;if(oe.isPlatformDatasource(D?.datasource)&&!D.dimensions?.includes("time"))return f.t("renderer.as_of_today");if(H?.type==="relative"){const ie=oe.TimePeriods.get(oe.TIMEFRAME_LOOKUP[H.time_range]);return ie?ie.display:(console.warn("Did not recognize the given relative time range:",H.time_range),H.time_range)}else if(H?.type==="absolute"){const ie=H.tz||"Etc/UTC";return`${oe.formatTime(H.start,{short:!0,tz:ie})} - ${oe.formatTime(H.end,{short:!0,tz:ie})}`}return null}),$=o.computed(()=>Z.value?!1:[!!W.value,O.value,!!fe.value,!!N.value,n.showRefresh].some(Boolean)),F=o.computed(()=>_.value?oe.msToGranularity(_.value.meta.granularity_ms):void 0),ne=o.computed(()=>["timeseries_line","timeseries_bar"].includes(k.value.type)),P=o.computed(()=>{if(we(n.definition)||!ne.value||!n.queryReady||S.value)return!1;const D=n.definition.query.granularity;return!D||!F.value?!1:D!==F.value}),re=o.computed(()=>{const D=oe.msToGranularity(_.value?.meta.granularity_ms??0)??"unknown",H=we(n.definition)?"unknown":n.definition.query.granularity??"unknown";return f.t("query_aged_out_warning",{currentGranularity:f.t(`granularities.${D}`),savedGranularity:f.t(`granularities.${H}`)})}),ae=o.computed(()=>{const D=n.definition,H=[...n.context.filters,...D.query.filters??[]],ie="metrics"in D.query?D.query.metrics:void 0,Ce=D.query.datasource??"api_usage";return h.value({datasource:Ce,filters:H,queryFields:ie})}),X=()=>{l("edit-tile",n.definition)},Q=()=>{l("duplicate-tile",n.definition)},U=()=>{l("remove-tile",n.definition)},_e=D=>{_.value=D,S.value=!1,l("chart-data",D),l("tile-loaded")},B=()=>{S.value=!1,l("tile-loaded")},te=D=>{S.value=D,D||l("tile-loaded")},Se=()=>{v.value=!1},De=()=>{const D=n.definition.query.datasource?.startsWith("goap");return c?.staticConfig?.increaseCsvExportLimit!==!1&&!D?C(n.definition.query,n.context,oe.EXPORT_RECORD_LIMIT):_.value?Promise.resolve(_.value):new Promise(ie=>{const Ce=o.watch(_,Oe=>{Oe&&(ie(Oe),Ce())})})},be=async()=>{v.value=!0,w.value={status:"loading"};try{const D=await De();w.value={status:"success",chartData:D}}catch(D){w.value={status:"error",error:D}}},Pe=D=>{const H={tileId:n.tileId.toString(),timeRange:D};l("tile-time-range-zoom",H)},le=D=>{const H={tileId:n.tileId.toString(),bounds:D};l("tile-bounds-change",H)},ve=D=>{const H=ae.value,ie=ce(D,H);ee.value=x.value?{href:se(ie)}:void 0,L.value=E.value?{href:j(R(D,H))}:void 0};return e({getExportData:De}),(D,H)=>{const ie=o.resolveComponent("KTooltip"),Ce=o.resolveComponent("KBadge"),Oe=o.resolveComponent("KButton"),pe=o.resolveComponent("KDropdownItem"),ge=o.resolveComponent("KDropdown");return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["tile-boundary",{editable:r.context.editable,headless:!$.value}]),"data-testid":`tile-${r.tileId}`},[$.value&&!Z.value?(o.openBlock(),o.createElementBlock("div",fs,[o.createVNode(ie,{class:"title-tooltip",disabled:!M.value,"max-width":"500",text:W.value},{default:o.withCtx(()=>[o.createElementVNode("div",{ref_key:"titleRef",ref:b,class:"title"},o.toDisplayString(W.value),513)]),_:1},8,["disabled","text"]),o.createElementVNode("div",ms,[fe.value?(o.openBlock(),o.createBlock(Ce,{key:0,"data-testid":"time-range-badge",tooltip:P.value?re.value:void 0,"tooltip-attributes":{maxWidth:"320px"}},o.createSlots({default:o.withCtx(()=>[o.createElementVNode("span",ps,o.toDisplayString(fe.value),1)]),_:2},[P.value?{name:"icon",fn:o.withCtx(()=>[o.createVNode(o.unref(Ne.WarningIcon),{size:`var(--kui-icon-size-20, ${o.unref(pr)})`},null,8,["size"])]),key:"0"}:void 0]),1032,["tooltip"])):o.createCommentVNode("",!0)]),r.showRefresh?(o.openBlock(),o.createElementBlock("div",gs,[o.createVNode(Oe,{appearance:"secondary",class:"refresh-button","data-testid":`tile-refresh-button-${r.tileId}`,disabled:S.value,icon:"",size:"small",onClick:a},{default:o.withCtx(()=>[S.value?(o.openBlock(),o.createBlock(o.unref(Ne.ProgressIcon),{key:0,role:"button",size:`var(--kui-icon-size-60, ${o.unref(ti)})`,tabindex:"0"},null,8,["size"])):(o.openBlock(),o.createBlock(o.unref(Ne.RefreshIcon),{key:1,role:"button",size:`var(--kui-icon-size-60, ${o.unref(ti)})`,tabindex:"0"},null,8,["size"]))]),_:1},8,["data-testid","disabled"])])):o.createCommentVNode("",!0),N.value?(o.openBlock(),o.createElementBlock("div",{key:1,class:"header-description","data-testid":`tile-description-${r.tileId}`},o.toDisplayString(N.value),9,ys)):o.createCommentVNode("",!0),z.value?(o.openBlock(),o.createElementBlock("div",{key:2,class:"tile-actions","data-testid":`tile-actions-${r.tileId}`},[z.value&&r.context.editable&&!r.isFullscreen?(o.openBlock(),o.createBlock(o.unref(Ne.EditIcon),{key:0,class:"edit-icon",color:`var(--kui-color-text-neutral, ${o.unref(_t)})`,"data-testid":`edit-tile-${r.tileId}`,size:`var(--kui-icon-size-40, ${o.unref(ei)})`,onClick:X},null,8,["color","data-testid","size"])):o.createCommentVNode("",!0),z.value&&T.value&&!r.isFullscreen?(o.openBlock(),o.createBlock(ge,{key:1,class:"dropdown","data-testid":`chart-action-menu-${r.tileId}`,"kpop-attributes":{placement:"bottom-end"}},{items:o.withCtx(()=>[o.unref(p)?(o.openBlock(),o.createBlock(pe,{key:0,"data-testid":`chart-jump-to-explore-${r.tileId}`,item:{label:o.unref(f).t("jumpToExplore"),to:o.unref(p)}},null,8,["data-testid","item"])):o.createCommentVNode("",!0),!o.unref(we)(r.definition)&&o.unref(m)?(o.openBlock(),o.createBlock(pe,{key:1,"data-testid":`chart-jump-to-requests-${r.tileId}`,item:{label:o.unref(f).t("jumpToRequests"),to:o.unref(m)}},null,8,["data-testid","item"])):o.createCommentVNode("",!0),G.value?(o.openBlock(),o.createBlock(pe,{key:2,class:"chart-export-button","data-testid":`chart-csv-export-${r.tileId}`,onClick:be},{default:o.withCtx(()=>[o.createElementVNode("span",{class:"chart-export-trigger","data-testid":`csv-export-button-${r.tileId}`},o.toDisplayString(o.unref(f).t("csvExport.exportAsCsv")),9,ws)]),_:1},8,["data-testid"])):o.createCommentVNode("",!0),r.context.editable?(o.openBlock(),o.createBlock(pe,{key:3,"data-testid":`duplicate-tile-${r.tileId}`,onClick:Q},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(f).t("renderer.duplicateTile")),1)]),_:1},8,["data-testid"])):o.createCommentVNode("",!0),r.context.editable?(o.openBlock(),o.createBlock(pe,{key:4,"data-testid":`remove-tile-${r.tileId}`,onClick:U},{default:o.withCtx(()=>[o.createElementVNode("span",bs,o.toDisplayString(o.unref(f).t("renderer.delete")),1)]),_:1},8,["data-testid"])):o.createCommentVNode("",!0)]),default:o.withCtx(()=>[o.createVNode(o.unref(Ne.MoreIcon),{class:"kebab-action-menu",color:`var(--kui-color-text-neutral, ${o.unref(_t)})`,"data-testid":`kebab-action-menu-${r.tileId}`,size:`var(--kui-icon-size-40, ${o.unref(ei)})`},null,8,["color","data-testid","size"])]),_:1},8,["data-testid"])):o.createCommentVNode("",!0)],8,_s)):o.createCommentVNode("",!0),v.value?(o.openBlock(),o.createBlock(bi,{key:3,"data-testid":`csv-export-modal-${r.tileId}`,"export-state":w.value,filename:q.value,onCloseModal:Se},null,8,["data-testid","export-state","filename"])):o.createCommentVNode("",!0)])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["tile-content",`type-${r.tileType}-${k.value.type}`]),"data-testid":`tile-content-${r.tileId}`},[K.value?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(K.value.component),o.mergeProps({key:0},K.value.rendererProps,o.toHandlers(J.value),{onChartData:_e,onQueryComplete:B}),null,16)):o.createCommentVNode("",!0)],10,vs)],10,hs)}}}),[["__scopeId","data-v-38705640"]]),Es=(r,e)=>{let t=0;const i=new Map;e.forEach(s=>{const a=s.layout.position.row,l=i.get(a),d=s.layout.size.rows===1&&!!s.layout.size.fit_to_content;t=Math.max(t,a+s.layout.size.rows),l===void 0?i.set(a,d):i.set(a,l&&d)});const n=[];for(let s=0;s<t;s++)i.get(s)?n.push("auto"):n.push(`${r}px`);return n},Di=Ae(o.defineComponent({__name:"GridLayout",props:{tileHeight:{type:Number,required:!1,default:()=>$e},columns:{type:Number,required:!1,default:()=>it},tiles:{type:Array,required:!0}},setup(r){o.useCssVars(l=>({v821fda82:e.columns,v0870d42d:s.value}));const e=r,t=o.ref(null),i=o.ref(0),n=new ResizeObserver(l=>{window.requestAnimationFrame(()=>{!Array.isArray(l)||!l.length||(i.value=l[0].contentRect.width)})});o.onMounted(()=>{t.value&&n.observe(t.value)}),o.onUnmounted(()=>{t.value&&n.unobserve(t.value)});const s=o.computed(()=>Es(e.tileHeight,e.tiles).join(" ")),a=o.computed(()=>e.tiles.map((l,d)=>({key:`tile-${d}`,tile:l,style:{"grid-column-start":l.layout.position.col+1,"grid-column-end":l.layout.position.col+1+l.layout.size.cols,"grid-row-start":l.layout.position.row+1,"grid-row-end":l.layout.position.row+1+l.layout.size.rows}})));return(l,d)=>(o.openBlock(),o.createElementBlock("div",{ref_key:"gridContainer",ref:t,class:"kong-ui-public-grid-layout"},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(a.value,c=>(o.openBlock(),o.createElementBlock("div",{key:c.key,class:o.normalizeClass(["grid-cell",{"empty-cell":!c.tile}]),style:o.normalizeStyle(c.style)},[o.renderSlot(l.$slots,"tile",{style:o.normalizeStyle(c.style),tile:c.tile},void 0,!0)],6))),128))],512))}}),[["__scopeId","data-v-0271a8b9"]]);function xs(r,e,t,i,n){const s=(...a)=>(console.warn("gridstack.js: Function `"+t+"` is deprecated in "+n+" and has been replaced with `"+i+"`. It will be **removed** in a future release"),e.apply(r,a));return s.prototype=e.prototype,s}class g{static getElements(e,t=document){if(typeof e=="string"){const i="getElementById"in t?t:void 0;if(i&&!isNaN(+e[0])){const s=i.getElementById(e);return s?[s]:[]}let n=t.querySelectorAll(e);return!n.length&&e[0]!=="."&&e[0]!=="#"&&(n=t.querySelectorAll("."+e),n.length||(n=t.querySelectorAll("#"+e))),Array.from(n)}return[e]}static getElement(e,t=document){if(typeof e=="string"){const i="getElementById"in t?t:void 0;if(!e.length)return null;if(i&&e[0]==="#")return i.getElementById(e.substring(1));if(e[0]==="#"||e[0]==="."||e[0]==="[")return t.querySelector(e);if(i&&!isNaN(+e[0]))return i.getElementById(e);let n=t.querySelector(e);return i&&!n&&(n=i.getElementById(e)),n||(n=t.querySelector("."+e)),n}return e}static lazyLoad(e){return e.lazyLoad||e.grid?.opts?.lazyLoad&&e.lazyLoad!==!1}static createDiv(e,t){const i=document.createElement("div");return e.forEach(n=>{n&&i.classList.add(n)}),t?.appendChild(i),i}static shouldSizeToContent(e,t=!1){return e?.grid&&(t?e.sizeToContent===!0||e.grid.opts.sizeToContent===!0&&e.sizeToContent===void 0:!!e.sizeToContent||e.grid.opts.sizeToContent&&e.sizeToContent!==!1)}static isIntercepted(e,t){return!(e.y>=t.y+t.h||e.y+e.h<=t.y||e.x+e.w<=t.x||e.x>=t.x+t.w)}static isTouching(e,t){return g.isIntercepted(e,{x:t.x-.5,y:t.y-.5,w:t.w+1,h:t.h+1})}static areaIntercept(e,t){const i=e.x>t.x?e.x:t.x,n=e.x+e.w<t.x+t.w?e.x+e.w:t.x+t.w;if(n<=i)return 0;const s=e.y>t.y?e.y:t.y,a=e.y+e.h<t.y+t.h?e.y+e.h:t.y+t.h;return a<=s?0:(n-i)*(a-s)}static area(e){return e.w*e.h}static sort(e,t=1){return e.sort((n,s)=>{const a=t*((n.y??1e4)-(s.y??1e4));return a===0?t*((n.x??1e4)-(s.x??1e4)):a})}static find(e,t){return t?e.find(i=>i.id===t):void 0}static createStylesheet(e,t,i){const n=document.createElement("style"),s=i?.nonce;return s&&(n.nonce=s),n.setAttribute("type","text/css"),n.setAttribute("gs-style-id",e),n.styleSheet?n.styleSheet.cssText="":n.appendChild(document.createTextNode("")),t?t.insertBefore(n,t.firstChild):(t=document.getElementsByTagName("head")[0],t.appendChild(n)),n}static removeStylesheet(e,t){const n=(t||document).querySelector("STYLE[gs-style-id="+e+"]");n&&n.parentNode&&n.remove()}static addCSSRule(e,t,i){e.textContent+=`${t} { ${i} } `}static toBool(e){return typeof e=="boolean"?e:typeof e=="string"?(e=e.toLowerCase(),!(e===""||e==="no"||e==="false"||e==="0")):!!e}static toNumber(e){return e===null||e.length===0?void 0:Number(e)}static parseHeight(e){let t,i="px";if(typeof e=="string")if(e==="auto"||e==="")t=0;else{const n=e.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!n)throw new Error(`Invalid height val = ${e}`);i=n[2]||"px",t=parseFloat(n[1])}else t=e;return{h:t,unit:i}}static defaults(e,...t){return t.forEach(i=>{for(const n in i){if(!i.hasOwnProperty(n))return;e[n]===null||e[n]===void 0?e[n]=i[n]:typeof i[n]=="object"&&typeof e[n]=="object"&&this.defaults(e[n],i[n])}}),e}static same(e,t){if(typeof e!="object")return e==t;if(typeof e!=typeof t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(e[i]!==t[i])return!1;return!0}static copyPos(e,t,i=!1){return t.x!==void 0&&(e.x=t.x),t.y!==void 0&&(e.y=t.y),t.w!==void 0&&(e.w=t.w),t.h!==void 0&&(e.h=t.h),i&&(t.minW&&(e.minW=t.minW),t.minH&&(e.minH=t.minH),t.maxW&&(e.maxW=t.maxW),t.maxH&&(e.maxH=t.maxH)),e}static samePos(e,t){return e&&t&&e.x===t.x&&e.y===t.y&&(e.w||1)===(t.w||1)&&(e.h||1)===(t.h||1)}static sanitizeMinMax(e){e.minW||delete e.minW,e.minH||delete e.minH,e.maxW||delete e.maxW,e.maxH||delete e.maxH}static removeInternalAndSame(e,t){if(!(typeof e!="object"||typeof t!="object"))for(let i in e){const n=e[i],s=t[i];i[0]==="_"||n===s?delete e[i]:n&&typeof n=="object"&&s!==void 0&&(g.removeInternalAndSame(n,s),Object.keys(n).length||delete e[i])}}static removeInternalForSave(e,t=!0){for(let i in e)(i[0]==="_"||e[i]===null||e[i]===void 0)&&delete e[i];delete e.grid,t&&delete e.el,e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,e.locked||delete e.locked,(e.w===1||e.w===e.minW)&&delete e.w,(e.h===1||e.h===e.minH)&&delete e.h}static throttle(e,t){let i=!1;return(...n)=>{i||(i=!0,setTimeout(()=>{e(...n),i=!1},t))}}static removePositioningStyles(e){const t=e.style;t.position&&t.removeProperty("position"),t.left&&t.removeProperty("left"),t.top&&t.removeProperty("top"),t.width&&t.removeProperty("width"),t.height&&t.removeProperty("height")}static getScrollElement(e){if(!e)return document.scrollingElement||document.documentElement;const t=getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowY)?e:this.getScrollElement(e.parentElement)}static updateScrollPosition(e,t,i){const n=e.getBoundingClientRect(),s=window.innerHeight||document.documentElement.clientHeight;if(n.top<0||n.bottom>s){const a=n.bottom-s,l=n.top,d=this.getScrollElement(e);if(d!==null){const c=d.scrollTop;n.top<0&&i<0?e.offsetHeight>s?d.scrollTop+=i:d.scrollTop+=Math.abs(l)>Math.abs(i)?i:l:i>0&&(e.offsetHeight>s?d.scrollTop+=i:d.scrollTop+=a>i?i:a),t.top+=d.scrollTop-c}}}static updateScrollResize(e,t,i){const n=this.getScrollElement(t),s=n.clientHeight,a=n===this.getScrollElement()?0:n.getBoundingClientRect().top,l=e.clientY-a,d=l<i,c=l>s-i;d?n.scrollBy({behavior:"smooth",top:l-i}):c&&n.scrollBy({behavior:"smooth",top:i-(s-l)})}static clone(e){return e==null||typeof e!="object"?e:e instanceof Array?[...e]:{...e}}static cloneDeep(e){const t=["parentGrid","el","grid","subGrid","engine"],i=g.clone(e);for(const n in i)i.hasOwnProperty(n)&&typeof i[n]=="object"&&n.substring(0,2)!=="__"&&!t.find(s=>s===n)&&(i[n]=g.cloneDeep(e[n]));return i}static cloneNode(e){const t=e.cloneNode(!0);return t.removeAttribute("id"),t}static appendTo(e,t){let i;typeof t=="string"?i=g.getElement(t):i=t,i&&i.appendChild(e)}static addElStyles(e,t){if(t instanceof Object)for(const i in t)t.hasOwnProperty(i)&&(Array.isArray(t[i])?t[i].forEach(n=>{e.style[i]=n}):e.style[i]=t[i])}static initEvent(e,t){const i={type:t.type},n={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:t.target?t.target:e.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(s=>i[s]=e[s]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(s=>i[s]=e[s]),{...i,...n}}static simulateMouseEvent(e,t,i){const n=e,s=new MouseEvent(t,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,ctrlKey:n.ctrlKey??!1,altKey:n.altKey??!1,shiftKey:n.shiftKey??!1,metaKey:n.metaKey??!1,button:0,relatedTarget:e.target});(i||e.target).dispatchEvent(s)}static getValuesFromTransformedElement(e){const t=document.createElement("div");g.addElStyles(t,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),e.appendChild(t);const i=t.getBoundingClientRect();return e.removeChild(t),t.remove(),{xScale:1/i.width,yScale:1/i.height,xOffset:i.left,yOffset:i.top}}static swap(e,t,i){if(!e)return;const n=e[t];e[t]=e[i],e[i]=n}static canBeRotated(e){return!(!e||e.w===e.h||e.locked||e.noResize||e.grid?.opts.disableResize||e.minW&&e.minW===e.maxW||e.minH&&e.minH===e.maxH)}}class Re{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(e,t=e,i,n={}){if(this.sortNodes(-1),i=i||this.collide(e,t),!i)return!1;if(e._moving&&!n.nested&&!this.float&&this.swap(e,i))return!0;let s=t;!this._loading&&this._useEntireRowArea(e,t)&&(s={x:0,w:this.column,y:t.y,h:t.h},i=this.collide(e,s,n.skip));let a=!1;const l={nested:!0,pack:!1};let d=0;for(;i=i||this.collide(e,s,n.skip);){if(d++>this.nodes.length*2)throw new Error("Infinite collide check");let c;if(i.locked||this._loading||e._moving&&!e._skipDown&&t.y>e.y&&!this.float&&(!this.collide(i,{...i,y:e.y},e)||!this.collide(i,{...i,y:t.y-i.h},e))){e._skipDown=e._skipDown||t.y>e.y;const u={...t,y:i.y+i.h,...l};c=this._loading&&g.samePos(e,u)?!0:this.moveNode(e,u),(i.locked||this._loading)&&c?g.copyPos(t,e):!i.locked&&c&&n.pack&&(this._packNodes(),t.y=i.y+i.h,g.copyPos(e,t)),a=a||c}else c=this.moveNode(i,{...i,y:t.y+t.h,skip:e,...l});if(!c)return a;i=void 0}return a}collide(e,t=e,i){const n=e._id,s=i?._id;return this.nodes.find(a=>a._id!==n&&a._id!==s&&g.isIntercepted(a,t))}collideAll(e,t=e,i){const n=e._id,s=i?._id;return this.nodes.filter(a=>a._id!==n&&a._id!==s&&g.isIntercepted(a,t))}directionCollideCoverage(e,t,i){if(!t.rect||!e._rect)return;const n=e._rect,s={...t.rect};s.y>n.y?(s.h+=s.y-n.y,s.y=n.y):s.h+=n.y-s.y,s.x>n.x?(s.w+=s.x-n.x,s.x=n.x):s.w+=n.x-s.x;let a,l=.5;for(let d of i){if(d.locked||!d._rect)break;const c=d._rect;let u=Number.MAX_VALUE,h=Number.MAX_VALUE;n.y<c.y?u=(s.y+s.h-c.y)/c.h:n.y+n.h>c.y+c.h&&(u=(c.y+c.h-s.y)/c.h),n.x<c.x?h=(s.x+s.w-c.x)/c.w:n.x+n.w>c.x+c.w&&(h=(c.x+c.w-s.x)/c.w);const f=Math.min(h,u);f>l&&(l=f,a=d)}return t.collide=a,a}cacheRects(e,t,i,n,s,a){return this.nodes.forEach(l=>l._rect={y:l.y*t+i,x:l.x*e+a,w:l.w*e-a-n,h:l.h*t-i-s}),this}swap(e,t){if(!t||t.locked||!e||e.locked)return!1;function i(){const s=t.x,a=t.y;return t.x=e.x,t.y=e.y,e.h!=t.h?(e.x=s,e.y=t.y+t.h):e.w!=t.w?(e.x=t.x+t.w,e.y=a):(e.x=s,e.y=a),e._dirty=t._dirty=!0,!0}let n;if(e.w===t.w&&e.h===t.h&&(e.x===t.x||e.y===t.y)&&(n=g.isTouching(e,t)))return i();if(n!==!1){if(e.w===t.w&&e.x===t.x&&(n||(n=g.isTouching(e,t)))){if(t.y<e.y){const s=e;e=t,t=s}return i()}if(n!==!1){if(e.h===t.h&&e.y===t.y&&(n||(n=g.isTouching(e,t)))){if(t.x<e.x){const s=e;e=t,t=s}return i()}return!1}}}isAreaEmpty(e,t,i,n){const s={x:e||0,y:t||0,w:i||1,h:n||1};return!this.collide(s)}compact(e="compact",t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();const i=this.batchMode;i||this.batchUpdate();const n=this._inColumnResize;n||(this._inColumnResize=!0);const s=this.nodes;return this.nodes=[],s.forEach((a,l,d)=>{let c;a.locked||(a.autoPosition=!0,e==="list"&&l&&(c=d[l-1])),this.addNode(a,!1,c)}),n||delete this._inColumnResize,i||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(e=1){return this.nodes=g.sort(this.nodes,e),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){const i=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:i,w:e.w,h:e.h})))break;e._dirty=e.y!==i,e.y=i}}),this)}prepareNode(e,t){e._id=e._id??Re._idSeq++;const i=e.id;if(i){let s=1;for(;this.nodes.find(a=>a.id===e.id&&a!==e);)e.id=i+"_"+s++}(e.x===void 0||e.y===void 0||e.x===null||e.y===null)&&(e.autoPosition=!0);const n={x:0,y:0,w:1,h:1};return g.defaults(e,n),e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,g.sanitizeMinMax(e),typeof e.x=="string"&&(e.x=Number(e.x)),typeof e.y=="string"&&(e.y=Number(e.y)),typeof e.w=="string"&&(e.w=Number(e.w)),typeof e.h=="string"&&(e.h=Number(e.h)),isNaN(e.x)&&(e.x=n.x,e.autoPosition=!0),isNaN(e.y)&&(e.y=n.y,e.autoPosition=!0),isNaN(e.w)&&(e.w=n.w),isNaN(e.h)&&(e.h=n.h),this.nodeBoundFix(e,t),e}nodeBoundFix(e,t){const i=e._orig||g.copyPos({},e);if(e.maxW&&(e.w=Math.min(e.w||1,e.maxW)),e.maxH&&(e.h=Math.min(e.h||1,e.maxH)),e.minW&&(e.w=Math.max(e.w||1,e.minW)),e.minH&&(e.h=Math.max(e.h||1,e.minH)),(e.x||0)+(e.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&e._id&&this.findCacheLayout(e,this.defaultColumn)===-1){const s={...e};s.autoPosition||s.x===void 0?(delete s.x,delete s.y):s.x=Math.min(this.defaultColumn-1,s.x),s.w=Math.min(this.defaultColumn,s.w||1),this.cacheOneLayout(s,this.defaultColumn)}return e.w>this.column?e.w=this.column:e.w<1&&(e.w=1),this.maxRow&&e.h>this.maxRow?e.h=this.maxRow:e.h<1&&(e.h=1),e.x<0&&(e.x=0),e.y<0&&(e.y=0),e.x+e.w>this.column&&(t?e.w=this.column-e.x:e.x=this.column-e.w),this.maxRow&&e.y+e.h>this.maxRow&&(t?e.h=this.maxRow-e.y:e.y=this.maxRow-e.h),g.samePos(e,i)||(e._dirty=!0),this}getDirtyNodes(e){return e?this.nodes.filter(t=>t._dirty&&!g.samePos(t,t._orig)):this.nodes.filter(t=>t._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;const t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this)}saveInitial(){return this.nodes.forEach(e=>{e._orig=g.copyPos({},e),delete e._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(e=>{!e._orig||g.samePos(e,e._orig)||(g.copyPos(e,e._orig),e._dirty=!0)}),this._notify(),this}findEmptyPosition(e,t=this.nodes,i=this.column,n){const s=n?n.y*i+(n.x+n.w):0;let a=!1;for(let l=s;!a;++l){const d=l%i,c=Math.floor(l/i);if(d+e.w>i)continue;const u={x:d,y:c,w:e.w,h:e.h};t.find(h=>g.isIntercepted(u,h))||((e.x!==d||e.y!==c)&&(e._dirty=!0),e.x=d,e.y=c,delete e.autoPosition,a=!0)}return a}addNode(e,t=!1,i){const n=this.nodes.find(a=>a._id===e._id);if(n)return n;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let s;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,i)&&(delete e.autoPosition,s=!0),this.nodes.push(e),t&&this.addedNodes.push(e),s||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,i=!1){return this.nodes.find(n=>n._id===e._id)?(i&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(n=>n._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(n=>n._removeDOM=!0);const i=this.nodes;return this.removedNodes=t?i:[],this.nodes=[],this._notify(i)}moveNodeCheck(e,t){if(!this.changedPosConstrain(e,t))return!1;if(t.pack=!0,!this.maxRow)return this.moveNode(e,t);let i;const n=new Re({column:this.column,float:this.float,nodes:this.nodes.map(a=>a._id===e._id?(i={...a},i):{...a})});if(!i)return!1;const s=n.moveNode(i,t)&&n.getRow()<=Math.max(this.getRow(),this.maxRow);if(!s&&!t.resizing&&t.collide){const a=t.collide.el.gridstackNode;if(this.swap(e,a))return this._notify(),!0}return s?(n.nodes.filter(a=>a._dirty).forEach(a=>{const l=this.nodes.find(d=>d._id===a._id);l&&(g.copyPos(l,a),l._dirty=!0)}),this._notify(),!0):!1}willItFit(e){if(delete e._willFitPos,!this.maxRow)return!0;const t=new Re({column:this.column,float:this.float,nodes:this.nodes.map(n=>({...n}))}),i={...e};return this.cleanupNode(i),delete i.el,delete i._id,delete i.content,delete i.grid,t.addNode(i),t.getRow()<=this.maxRow?(e._willFitPos=g.copyPos({},i),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(e,t){if(!e||!t)return!1;let i;t.pack===void 0&&!this.batchMode&&(i=t.pack=!0),typeof t.x!="number"&&(t.x=e.x),typeof t.y!="number"&&(t.y=e.y),typeof t.w!="number"&&(t.w=e.w),typeof t.h!="number"&&(t.h=e.h);const n=e.w!==t.w||e.h!==t.h,s=g.copyPos({},e,!0);if(g.copyPos(s,t),this.nodeBoundFix(s,n),g.copyPos(t,s),!t.forceCollide&&g.samePos(e,t))return!1;const a=g.copyPos({},e),l=this.collideAll(e,s,t.skip);let d=!0;if(l.length){const c=e._moving&&!t.nested;let u=c?this.directionCollideCoverage(e,t,l):l[0];if(c&&u&&e.grid?.opts?.subGridDynamic&&!e.grid._isTemp){const h=g.areaIntercept(t.rect,u._rect),f=g.area(t.rect),_=g.area(u._rect);h/(f<_?f:_)>.8&&(u.grid.makeSubGrid(u.el,void 0,e),u=void 0)}u?d=!this._fixCollisions(e,s,u,t):(d=!1,i&&delete t.pack)}return d&&!g.samePos(e,s)&&(e._dirty=!0,g.copyPos(e,s)),t.pack&&this._packNodes()._notify(),!g.samePos(e,a)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){const e=this.nodes.find(t=>t._updating);return e&&(delete e._updating,delete e._skipDown),this}save(e=!0,t){const i=this._layouts?.length,n=i&&this.column!==i-1?this._layouts[i-1]:null,s=[];return this.sortNodes(),this.nodes.forEach(a=>{const l=n?.find(c=>c._id===a._id),d={...a,...l||{}};g.removeInternalForSave(d,!e),t&&t(a,d),s.push(d)}),s}layoutsNodesChange(e){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((t,i)=>{if(!t||i===this.column)return this;if(i<this.column)this._layouts[i]=void 0;else{const n=i/this.column;e.forEach(s=>{if(!s._orig)return;const a=t.find(l=>l._id===s._id);a&&(a.y>=0&&s.y!==s._orig.y&&(a.y+=s.y-s._orig.y),s.x!==s._orig.x&&(a.x=Math.round(s.x*n)),s.w!==s._orig.w&&(a.w=Math.round(s.w*n)))})}}),this)}columnChanged(e,t,i="moveScale"){if(!this.nodes.length||!t||e===t)return this;const n=i==="compact"||i==="list";n&&this.sortNodes(1),t<e&&this.cacheLayout(this.nodes,e),this.batchUpdate();let s=[],a=n?this.nodes:g.sort(this.nodes,-1);if(t>e&&this._layouts){const l=this._layouts[t]||[],d=this._layouts.length-1;!l.length&&e!==d&&this._layouts[d]?.length&&(e=d,this._layouts[d].forEach(c=>{const u=a.find(h=>h._id===c._id);u&&(!n&&!c.autoPosition&&(u.x=c.x??u.x,u.y=c.y??u.y),u.w=c.w??u.w,(c.x==null||c.y===void 0)&&(u.autoPosition=!0))})),l.forEach(c=>{const u=a.findIndex(h=>h._id===c._id);if(u!==-1){const h=a[u];if(n){h.w=c.w;return}(c.autoPosition||isNaN(c.x)||isNaN(c.y))&&this.findEmptyPosition(c,s),c.autoPosition||(h.x=c.x??h.x,h.y=c.y??h.y,h.w=c.w??h.w,s.push(h)),a.splice(u,1)}})}if(n)this.compact(i,!1);else{if(a.length)if(typeof i=="function")i(t,e,s,a);else{const l=n||i==="none"?1:t/e,d=i==="move"||i==="moveScale",c=i==="scale"||i==="moveScale";a.forEach(u=>{u.x=t===1?0:d?Math.round(u.x*l):Math.min(u.x,t-1),u.w=t===1||e===1?1:c?Math.round(u.w*l)||1:Math.min(u.w,t),s.push(u)}),a=[]}s=g.sort(s,-1),this._inColumnResize=!0,this.nodes=[],s.forEach(l=>{this.addNode(l,!1),delete l._orig})}return this.nodes.forEach(l=>delete l._orig),this.batchUpdate(!1,!n),delete this._inColumnResize,this}cacheLayout(e,t,i=!1){const n=[];return e.forEach((s,a)=>{if(s._id===void 0){const l=s.id?this.nodes.find(d=>d.id===s.id):void 0;s._id=l?._id??Re._idSeq++}n[a]={x:s.x,y:s.y,w:s.w,_id:s._id}}),this._layouts=i?[]:this._layouts||[],this._layouts[t]=n,this}cacheOneLayout(e,t){e._id=e._id??Re._idSeq++;const i={x:e.x,y:e.y,w:e.w,_id:e._id};(e.autoPosition||e.x===void 0)&&(delete i.x,delete i.y,e.autoPosition&&(i.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[t]=this._layouts[t]||[];const n=this.findCacheLayout(e,t);return n===-1?this._layouts[t].push(i):this._layouts[t][n]=i,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(i=>i._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){const i=this.findCacheLayout(e,t);i!==-1&&this._layouts[t].splice(i,1)}}cleanupNode(e){for(const t in e)t[0]==="_"&&t!=="_id"&&delete e[t];return this}}Re._idSeq=0;const ye={alwaysShowResizeHandle:"mobile",animate:!0,auto:!0,cellHeight:"auto",cellHeightThrottle:100,cellHeightUnit:"px",column:12,draggable:{handle:".grid-stack-item-content",appendTo:"body",scroll:!0},handle:".grid-stack-item-content",itemClass:"grid-stack-item",margin:10,marginUnit:"px",maxRow:0,minRow:0,placeholderClass:"grid-stack-placeholder",placeholderText:"",removableOptions:{accept:"grid-stack-item",decline:"grid-stack-non-removable"},resizable:{handles:"se"},rtl:"auto"};class I{}const xe=typeof window<"u"&&typeof document<"u"&&("ontouchstart"in document||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0);class Te{}function rt(r,e){r.touches.length>1||(r.cancelable&&r.preventDefault(),g.simulateMouseEvent(r.changedTouches[0],e))}function Oi(r,e){r.cancelable&&r.preventDefault(),g.simulateMouseEvent(r,e)}function st(r){Te.touchHandled||(Te.touchHandled=!0,rt(r,"mousedown"))}function ot(r){Te.touchHandled&&rt(r,"mousemove")}function at(r){if(!Te.touchHandled)return;Te.pointerLeaveTimeout&&(window.clearTimeout(Te.pointerLeaveTimeout),delete Te.pointerLeaveTimeout);const e=!!I.dragElement;rt(r,"mouseup"),e||rt(r,"click"),Te.touchHandled=!1}function lt(r){r.pointerType!=="mouse"&&r.target.releasePointerCapture(r.pointerId)}function Ni(r){I.dragElement&&r.pointerType!=="mouse"&&Oi(r,"mouseenter")}function zi(r){I.dragElement&&r.pointerType!=="mouse"&&(Te.pointerLeaveTimeout=window.setTimeout(()=>{delete Te.pointerLeaveTimeout,Oi(r,"mouseleave")},10))}class ct{constructor(e,t,i){this.host=e,this.dir=t,this.option=i,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){const e=this.el=document.createElement("div");return e.classList.add("ui-resizable-handle"),e.classList.add(`${ct.prefix}${this.dir}`),e.style.zIndex="100",e.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),xe&&(this.el.addEventListener("touchstart",st),this.el.addEventListener("pointerdown",lt)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),xe&&(this.el.removeEventListener("touchstart",st),this.el.removeEventListener("pointerdown",lt)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),xe&&(this.el.addEventListener("touchmove",ot),this.el.addEventListener("touchend",at)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){const t=this.mouseDownEvent;this.moving?this._triggerEvent("move",e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",e),document.addEventListener("keydown",this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent("stop",e),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),xe&&(this.el.removeEventListener("touchmove",ot),this.el.removeEventListener("touchend",at)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key==="Escape"&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}}ct.prefix="ui-resizable-";class xt{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(e,t){this._eventRegister[e]=t}off(e){delete this._eventRegister[e]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(e,t){if(!this.disabled&&this._eventRegister&&this._eventRegister[e])return this._eventRegister[e](t)}}class je extends xt{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{const n=this.el.parentElement.getBoundingClientRect(),s={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},a=this.temporalRect||s;return{position:{left:(a.left-n.left)*this.rectScale.x,top:(a.top-n.top)*this.rectScale.y},size:{width:a.width*this.rectScale.x,height:a.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){const t=e.handles&&e.handles!==this.option.handles,i=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(n=>this.option[n]=e[n]),t&&(this._removeHandlers(),this._setupHandlers()),i&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),I.overResizeElement===this&&delete I.overResizeElement),this}_mouseOver(e){I.overResizeElement||I.dragElement||(I.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(e){I.overResizeElement===this&&(delete I.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(e=>e.trim()).map(e=>new ct(this.el,e,{start:t=>{this._resizeStart(t)},stop:t=>{this._resizeStop(t)},move:t=>{this._resizing(t,e)}})),this}_resizeStart(e){this.sizeToContent=g.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=g.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=e,this._setupHelper(),this._applyChange();const t=g.initEvent(e,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(t,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",t),this}_resizing(e,t){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(e,t),this._applyChange();const i=g.initEvent(e,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(i,this._ui()),this.triggerEvent("resize",i),this}_resizeStop(e){const t=g.initEvent(e,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(t),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",t),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=je._originStyleProp.map(i=>this.el.style[i]),this.parentOriginStylePosition=this.el.parentElement.style.position;const e=this.el.parentElement,t=g.getValuesFromTransformedElement(e);return this.rectScale={x:t.xScale,y:t.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return je._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){const i=this.startEvent,n={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},s=e.clientX-i.clientX,a=this.sizeToContent?0:e.clientY-i.clientY;let l,d;t.indexOf("e")>-1?n.width+=s:t.indexOf("w")>-1&&(n.width-=s,n.left+=s,l=!0),t.indexOf("s")>-1?n.height+=a:t.indexOf("n")>-1&&(n.height-=a,n.top+=a,d=!0);const c=this._constrainSize(n.width,n.height,l,d);return Math.round(n.width)!==Math.round(c.width)&&(t.indexOf("w")>-1&&(n.left+=n.width-c.width),n.width=c.width),Math.round(n.height)!==Math.round(c.height)&&(t.indexOf("n")>-1&&(n.top+=n.height-c.height),n.height=c.height),n}_constrainSize(e,t,i,n){const s=this.option,a=(i?s.maxWidthMoveLeft:s.maxWidth)||Number.MAX_SAFE_INTEGER,l=s.minWidth/this.rectScale.x||e,d=(n?s.maxHeightMoveUp:s.maxHeight)||Number.MAX_SAFE_INTEGER,c=s.minHeight/this.rectScale.y||t,u=Math.min(a,Math.max(l,e)),h=Math.min(d,Math.max(c,t));return{width:u,height:h}}_applyChange(){let e={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){const t=this.el.parentElement,{left:i,top:n}=t.getBoundingClientRect();e={left:i,top:n,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(t=>{const i=this.temporalRect[t],n=t==="width"||t==="left"?this.rectScale.x:t==="height"||t==="top"?this.rectScale.y:1;this.el.style[t]=(i-e[t])*n+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}}je._originStyleProp=["width","height","position","left","top","opacity","zIndex"];const Cs='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle';class Ke extends xt{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};const i=t?.handle?.substring(1),n=e.gridstackNode;this.dragEls=!i||e.classList.contains(i)?[e]:n?.subGrid?[e.querySelector(t.handle)||e]:Array.from(e.querySelectorAll(t.handle)),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener("mousedown",this._mouseDown),xe&&(e.addEventListener("touchstart",st),e.addEventListener("pointerdown",lt))}),this.el.classList.remove("ui-draggable-disabled"))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(t=>{t.removeEventListener("mousedown",this._mouseDown),xe&&(t.removeEventListener("touchstart",st),t.removeEventListener("pointerdown",lt))}),e||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(!I.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(Cs)||this.option.cancel&&e.target.closest(this.option.cancel)||(this.mouseDownEvent=e,delete this.dragging,delete I.dragElement,delete I.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),xe&&(e.currentTarget.addEventListener("touchmove",ot),e.currentTarget.addEventListener("touchend",at)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),I.mouseHandled=!0),!0}_callDrag(e){if(!this.dragging)return;const t=g.initEvent(e,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(t,this.ui()),this.triggerEvent("drag",t)}_mouseMove(e){const t=this.mouseDownEvent;if(this.lastDrag=e,this.dragging)if(this._dragFollow(e),I.pauseDrag){const i=Number.isInteger(I.pauseDrag)?I.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(e),i)}else this._callDrag(e);else if(Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>3){this.dragging=!0,I.dragElement=this;const i=this.el.gridstackNode?.grid;i?I.dropElement=i.el.ddElement.ddDroppable:delete I.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=g.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(e,this.el,this.helperContainment),this._setupHelperStyle(e);const n=g.initEvent(e,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(n,this.ui()),this.triggerEvent("dragstart",n),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(e){if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),xe&&e.currentTarget&&(e.currentTarget.removeEventListener("touchmove",ot,!0),e.currentTarget.removeEventListener("touchend",at,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener("keydown",this._keyEvent),I.dropElement?.el===this.el.parentElement&&delete I.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();const t=g.initEvent(e,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(t),this.triggerEvent("dragstop",t),I.dropElement&&I.dropElement.drop(e)}delete this.helper,delete this.mouseDownEvent,delete I.dragElement,delete I.dropElement,delete I.mouseHandled,e.preventDefault()}_keyEvent(e){const t=this.el.gridstackNode,i=t?.grid||I.dropElement?.el?.gridstack;if(e.key==="Escape")t&&t._origRotate&&(t._orig=t._origRotate,delete t._origRotate),i?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(t&&i&&(e.key==="r"||e.key==="R")){if(!g.canBeRotated(t))return;t._origRotate=t._origRotate||{...t._orig},delete t._moving,i.setAnimation(!1).rotate(t.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),t._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,t.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",g.swap(t._orig,"w","h"),delete t._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let e=this.el;return typeof this.option.helper=="function"?e=this.option.helper(this.el):this.option.helper==="clone"&&(e=g.cloneNode(this.el)),e.parentElement||g.appendTo(e,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=Ke.originStyleProp.map(t=>this.el.style[t]),e}_setupHelperStyle(e){this.helper.classList.add("ui-draggable-dragging");const t=this.helper.style;return t.pointerEvents="none",t.width=this.dragOffset.width+"px",t.height=this.dragOffset.height+"px",t.willChange="left, top",t.position="fixed",this._dragFollow(e),t.transition="none",setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove("ui-draggable-dragging"),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){const t=this.helper,i=this.dragElementOriginStyle.transition||null;t.style.transition=this.dragElementOriginStyle.transition="none",Ke.originStyleProp.forEach(n=>t.style[n]=this.dragElementOriginStyle[n]||null),setTimeout(()=>t.style.transition=i,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){const t={left:0,top:0},i=this.helper.style,n=this.dragOffset;i.left=(e.clientX+n.offsetLeft-t.left)*this.dragTransform.xScale+"px",i.top=(e.clientY+n.offsetTop-t.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(e,t,i){let n=0,s=0;i&&(n=this.dragTransform.xOffset,s=this.dragTransform.yOffset);const a=t.getBoundingClientRect();return{left:a.left,top:a.top,offsetLeft:-e.clientX+a.left-n,offsetTop:-e.clientY+a.top-s,width:a.width*this.dragTransform.xScale,height:a.height*this.dragTransform.yScale}}ui(){const t=this.el.parentElement.getBoundingClientRect(),i=this.helper.getBoundingClientRect();return{position:{top:(i.top-t.top)*this.dragTransform.yScale,left:(i.left-t.left)*this.dragTransform.xScale}}}}Ke.originStyleProp=["width","height","transform","transform-origin","transition","pointerEvents","position","left","top","minWidth","willChange"];class ks extends xt{constructor(e,t={}){super(),this.el=e,this.option=t,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),xe&&(this.el.addEventListener("pointerenter",Ni),this.el.addEventListener("pointerleave",zi)))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),e||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),xe&&(this.el.removeEventListener("pointerenter",Ni),this.el.removeEventListener("pointerleave",zi)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this._setupAccept(),this}_mouseEnter(e){if(!I.dragElement||!this._canDrop(I.dragElement.el))return;e.preventDefault(),e.stopPropagation(),I.dropElement&&I.dropElement!==this&&I.dropElement._mouseLeave(e,!0),I.dropElement=this;const t=g.initEvent(e,{target:this.el,type:"dropover"});this.option.over&&this.option.over(t,this._ui(I.dragElement)),this.triggerEvent("dropover",t),this.el.classList.add("ui-droppable-over")}_mouseLeave(e,t=!1){if(!I.dragElement||I.dropElement!==this)return;e.preventDefault(),e.stopPropagation();const i=g.initEvent(e,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(i,this._ui(I.dragElement)),this.triggerEvent("dropout",i),I.dropElement===this&&(delete I.dropElement,!t)){let n,s=this.el.parentElement;for(;!n&&s;)n=s.ddElement?.ddDroppable,s=s.parentElement;n&&n._mouseEnter(e)}}drop(e){e.preventDefault();const t=g.initEvent(e,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(t,this._ui(I.dragElement)),this.triggerEvent("drop",t)}_canDrop(e){return e&&(!this.accept||this.accept(e))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=e=>e.classList.contains(this.option.accept)||e.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(e){return{draggable:e.el,...e.ui()}}}class Ct{static init(e){return e.ddElement||(e.ddElement=new Ct(e)),e.ddElement}constructor(e){this.el=e}on(e,t){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(e)>-1?this.ddDraggable.on(e,t):this.ddDroppable&&["drop","dropover","dropout"].indexOf(e)>-1?this.ddDroppable.on(e,t):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(e)>-1&&this.ddResizable.on(e,t),this}off(e){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(e)>-1?this.ddDraggable.off(e):this.ddDroppable&&["drop","dropover","dropout"].indexOf(e)>-1?this.ddDroppable.off(e):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(e)>-1&&this.ddResizable.off(e),this}setupDraggable(e){return this.ddDraggable?this.ddDraggable.updateOption(e):this.ddDraggable=new Ke(this.el,e),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(e){return this.ddResizable?this.ddResizable.updateOption(e):this.ddResizable=new je(this.el,e),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(e){return this.ddDroppable?this.ddDroppable.updateOption(e):this.ddDroppable=new ks(this.el,e),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}}class Rs{resizable(e,t,i,n){return this._getDDElements(e,t).forEach(s=>{if(t==="disable"||t==="enable")s.ddResizable&&s.ddResizable[t]();else if(t==="destroy")s.ddResizable&&s.cleanResizable();else if(t==="option")s.setupResizable({[i]:n});else{const l=s.el.gridstackNode.grid;let d=s.el.getAttribute("gs-resize-handles")||l.opts.resizable.handles||"e,s,se";d==="all"&&(d="n,e,s,w,se,sw,ne,nw");const c=!l.opts.alwaysShowResizeHandle;s.setupResizable({...l.opts.resizable,handles:d,autoHide:c,start:t.start,stop:t.stop,resize:t.resize})}}),this}draggable(e,t,i,n){return this._getDDElements(e,t).forEach(s=>{if(t==="disable"||t==="enable")s.ddDraggable&&s.ddDraggable[t]();else if(t==="destroy")s.ddDraggable&&s.cleanDraggable();else if(t==="option")s.setupDraggable({[i]:n});else{const a=s.el.gridstackNode.grid;s.setupDraggable({...a.opts.draggable,start:t.start,stop:t.stop,drag:t.drag})}}),this}dragIn(e,t){return this._getDDElements(e).forEach(i=>i.setupDraggable(t)),this}droppable(e,t,i,n){return typeof t.accept=="function"&&!t._accept&&(t._accept=t.accept,t.accept=s=>t._accept(s)),this._getDDElements(e,t).forEach(s=>{t==="disable"||t==="enable"?s.ddDroppable&&s.ddDroppable[t]():t==="destroy"?s.ddDroppable&&s.cleanDroppable():t==="option"?s.setupDroppable({[i]:n}):s.setupDroppable(t)}),this}isDroppable(e){return!!(e?.ddElement?.ddDroppable&&!e.ddElement.ddDroppable.disabled)}isDraggable(e){return!!(e?.ddElement?.ddDraggable&&!e.ddElement.ddDraggable.disabled)}isResizable(e){return!!(e?.ddElement?.ddResizable&&!e.ddElement.ddResizable.disabled)}on(e,t,i){return this._getDDElements(e).forEach(n=>n.on(t,s=>{i(s,I.dragElement?I.dragElement.el:s.target,I.dragElement?I.dragElement.helper:null)})),this}off(e,t){return this._getDDElements(e).forEach(i=>i.off(t)),this}_getDDElements(e,t){const i=e.gridstack||t!=="destroy"&&t!=="disable",n=g.getElements(e);return n.length?n.map(a=>a.ddElement||(i?Ct.init(a):null)).filter(a=>a):[]}}const he=new Rs;class A{static init(e={},t=".grid-stack"){if(typeof document>"u")return null;const i=A.getGridElement(t);return i?(i.gridstack||(i.gridstack=new A(i,g.cloneDeep(e))),i.gridstack):(console.error(typeof t=="string"?'GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ?
|
|
12
12
|
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`:"GridStack.init() no grid element was passed."),null)}static initAll(e={},t=".grid-stack"){const i=[];return typeof document>"u"||(A.getGridElements(t).forEach(n=>{n.gridstack||(n.gridstack=new A(n,g.cloneDeep(e))),i.push(n.gridstack)}),i.length===0&&console.error('GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ?
|
|
13
|
-
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),i}static addGrid(e,t={}){if(!e)return null;let i=e;if(i.gridstack){const a=i.gridstack;return t&&(a.opts={...a.opts,...t}),t.children!==void 0&&a.load(t.children),a}return(!e.classList.contains("grid-stack")||A.addRemoveCB)&&(A.addRemoveCB?i=A.addRemoveCB(e,t,!0,!0):i=g.createDiv(["grid-stack",t.class],e)),A.init(t,i)}static registerEngine(e){A.engineClass=e}get placeholder(){if(!this._placeholder){this._placeholder=g.createDiv([this.opts.placeholderClass,ye.itemClass,this.opts.itemClass]);const e=g.createDiv(["placeholder-content"],this._placeholder);this.opts.placeholderText&&(e.textContent=this.opts.placeholderText)}return this._placeholder}constructor(e,t={}){this.el=e,this.opts=t,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},e.gridstack=this,this.opts=t=t||{},e.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),t.row&&(t.minRow=t.maxRow=t.row,delete t.row);const i=g.toNumber(e.getAttribute("gs-row"));t.column==="auto"&&delete t.column,t.alwaysShowResizeHandle!==void 0&&(t._alwaysShowResizeHandle=t.alwaysShowResizeHandle);let n=t.columnOpts?.breakpoints;const s=t;if(s.oneColumnModeDomSort&&(delete s.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),s.oneColumnSize||s.disableOneColumnMode===!1){const h=s.oneColumnSize||768;delete s.oneColumnSize,delete s.disableOneColumnMode,t.columnOpts=t.columnOpts||{},n=t.columnOpts.breakpoints=t.columnOpts.breakpoints||[];let f=n.find(_=>_.c===1);f?f.w=h:(f={c:1,w:h},n.push(f,{c:12,w:h+1}))}const a=t.columnOpts;a&&(!a.columnWidth&&!a.breakpoints?.length?(delete t.columnOpts,n=void 0):a.columnMax=a.columnMax||12),n?.length>1&&n.sort((h,f)=>(f.w||0)-(h.w||0));const l={...g.cloneDeep(ye),column:g.toNumber(e.getAttribute("gs-column"))||ye.column,minRow:i||g.toNumber(e.getAttribute("gs-min-row"))||ye.minRow,maxRow:i||g.toNumber(e.getAttribute("gs-max-row"))||ye.maxRow,staticGrid:g.toBool(e.getAttribute("gs-static"))||ye.staticGrid,sizeToContent:g.toBool(e.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(t.handleClass?"."+t.handleClass:t.handle?t.handle:"")||ye.draggable.handle},removableOptions:{accept:t.itemClass||ye.removableOptions.accept,decline:ye.removableOptions.decline}};e.getAttribute("gs-animate")&&(l.animate=g.toBool(e.getAttribute("gs-animate"))),t=g.defaults(t,l),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+t.column),t.rtl==="auto"&&(t.rtl=e.style.direction==="rtl"),t.rtl&&this.el.classList.add("grid-stack-rtl");const c=this.el.closest("."+ye.itemClass)?.gridstackNode;c&&(c.subGrid=this,this.parentGridNode=c,this.el.classList.add("grid-stack-nested"),c.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=t.cellHeight==="auto",this._isAutoCellHeight||t.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof t.cellHeight=="number"&&t.cellHeightUnit&&t.cellHeightUnit!==ye.cellHeightUnit&&(t.cellHeight=t.cellHeight+t.cellHeightUnit,delete t.cellHeightUnit),this.cellHeight(t.cellHeight,!1)),t.alwaysShowResizeHandle==="mobile"&&(t.alwaysShowResizeHandle=xe),this._styleSheetClass="gs-id-"+Re._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();const u=t.engineClass||A.engineClass||Re;if(this.engine=new u({column:this.getColumn(),float:t.float,maxRow:t.maxRow,onChange:h=>{let f=0;this.engine.nodes.forEach(_=>{f=Math.max(f,_.y+_.h)}),h.forEach(_=>{const w=_.el;w&&(_._removeDOM?(w&&w.remove(),delete _._removeDOM):this._writePosAttr(w,_))}),this._updateStyles(!1,f)}}),this._updateStyles(!1,0),t.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(h=>this._prepareElement(h)),delete this.engine._loading,this.batchUpdate(!1)),t.children){const h=t.children;delete t.children,h.length&&this.load(h)}this.setAnimation(),t.subGridDynamic&&!I.pauseDrag&&(I.pauseDrag=!0),t.draggable?.pause!==void 0&&(I.pauseDrag=t.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(e){if(typeof e=="string"){console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");return}if(e.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(e);let t,i=e;if(i.grid=this,i?.el?t=i.el:A.addRemoveCB?t=A.addRemoveCB(this.el,e,!0,!1):t=this.createWidgetDivs(i),!t)return;if(i=t.gridstackNode,i&&t.parentElement===this.el&&this.engine.nodes.find(s=>s._id===i._id))return t;const n=this._readAttr(t);return g.defaults(e,n),this.engine.prepareNode(e),this.el.appendChild(t),this.makeWidget(t,e),t}createWidgetDivs(e){const t=g.createDiv(["grid-stack-item",this.opts.itemClass]),i=g.createDiv(["grid-stack-item-content"],t);return g.lazyLoad(e)?e.visibleObservable||(e.visibleObservable=new IntersectionObserver(([n])=>{n.isIntersecting&&(e.visibleObservable?.disconnect(),delete e.visibleObservable,A.renderCB(i,e),e.grid?.prepareDragDrop(e.el))}),window.setTimeout(()=>e.visibleObservable?.observe(t))):A.renderCB(i,e),t}makeSubGrid(e,t,i,n=!0){let s=e.gridstackNode;if(s||(s=this.makeWidget(e).gridstackNode),s.subGrid?.el)return s.subGrid;let a,l=this;for(;l&&!a;)a=l.opts?.subGridOpts,l=l.parentGridNode?.grid;t=g.cloneDeep({...this.opts,id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0,...a||{},...t||s.subGridOpts||{}}),s.subGridOpts=t;let d;t.column==="auto"&&(d=!0,t.column=Math.max(s.w||1,i?.w||1),delete t.columnOpts);let c=s.el.querySelector(".grid-stack-item-content"),u,h;if(n&&(this._removeDD(s.el),h={...s,x:0,y:0},g.removeInternalForSave(h),delete h.subGridOpts,s.content&&(h.content=s.content,delete s.content),A.addRemoveCB?u=A.addRemoveCB(this.el,h,!0,!1):(u=g.createDiv(["grid-stack-item"]),u.appendChild(c),c=g.createDiv(["grid-stack-item-content"],s.el)),this.prepareDragDrop(s.el)),i){const _=d?t.column:s.w,w=s.h+i.h,E=s.el.style;E.transition="none",this.update(s.el,{w:_,h:w}),setTimeout(()=>E.transition=null)}const f=s.subGrid=A.addGrid(c,t);return i?._moving&&(f._isTemp=!0),d&&(f._autoColumn=!0),n&&f.makeWidget(u,h),i&&(i._moving?window.setTimeout(()=>g.simulateMouseEvent(i._event,"mouseenter",f.el),0):f.makeWidget(s.el,s)),this.resizeToContentCheck(!1,s),f}removeAsSubGrid(e){const t=this.parentGridNode?.grid;t&&(t.batchUpdate(),t.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(i=>{i.x+=this.parentGridNode.x,i.y+=this.parentGridNode.y,t.makeWidget(i.el,i)}),t.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,e&&window.setTimeout(()=>g.simulateMouseEvent(e._event,"mouseenter",t.el),0))}save(e=!0,t=!1,i=A.saveCB){const n=this.engine.save(e,i);if(n.forEach(s=>{if(e&&s.el&&!s.subGrid&&!i){const a=s.el.querySelector(".grid-stack-item-content");s.content=a?.innerHTML,s.content||delete s.content}else if(!e&&!i&&delete s.content,s.subGrid?.el){const a=s.subGrid.save(e,t,i);s.subGridOpts=t?a:{children:a},delete s.subGrid}delete s.el}),t){const s=g.cloneDeep(this.opts);s.marginBottom===s.marginTop&&s.marginRight===s.marginLeft&&s.marginTop===s.marginRight&&(s.margin=s.marginTop,delete s.marginTop,delete s.marginRight,delete s.marginBottom,delete s.marginLeft),s.rtl===(this.el.style.direction==="rtl")&&(s.rtl="auto"),this._isAutoCellHeight&&(s.cellHeight="auto"),this._autoColumn&&(s.column="auto");const a=s._alwaysShowResizeHandle;return delete s._alwaysShowResizeHandle,a!==void 0?s.alwaysShowResizeHandle=a:delete s.alwaysShowResizeHandle,g.removeInternalAndSame(s,ye),s.children=n,s}return n}load(e,t=A.addRemoveCB||!0){e=g.cloneDeep(e);const i=this.getColumn();e.forEach(c=>{c.w=c.w||1,c.h=c.h||1}),e=g.sort(e),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let n=0;e.forEach(c=>{n=Math.max(n,(c.x||0)+c.w)}),n>this.engine.defaultColumn&&(this.engine.defaultColumn=n),n>i&&this.engine.cacheLayout(e,n,!0);const s=A.addRemoveCB;typeof t=="function"&&(A.addRemoveCB=t);const a=[];this.batchUpdate();const l=!this.engine.nodes.length;l&&this.setAnimation(!1),!l&&t&&[...this.engine.nodes].forEach(u=>{if(!u.id)return;g.find(e,u.id)||(A.addRemoveCB&&A.addRemoveCB(this.el,u,!1,!1),a.push(u),this.removeWidget(u.el,!0,!1))}),this.engine._loading=!0;const d=[];return this.engine.nodes=this.engine.nodes.filter(c=>g.find(e,c.id)?(d.push(c),!1):!0),e.forEach(c=>{const u=g.find(d,c.id);if(u){if(g.shouldSizeToContent(u)&&(c.h=u.h),this.engine.nodeBoundFix(c),(c.autoPosition||c.x===void 0||c.y===void 0)&&(c.w=c.w||u.w,c.h=c.h||u.h,this.engine.findEmptyPosition(c)),this.engine.nodes.push(u),g.samePos(u,c)&&this.engine.nodes.length>1&&(this.moveNode(u,{...c,forceCollide:!0}),g.copyPos(c,u)),this.update(u.el,c),c.subGridOpts?.children){const h=u.el.querySelector(".grid-stack");h&&h.gridstack&&h.gridstack.load(c.subGridOpts.children)}}else t&&this.addWidget(c)}),delete this.engine._loading,this.engine.removedNodes=a,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,s?A.addRemoveCB=s:delete A.addRemoveCB,l&&this.opts?.animate&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(e=!0){return this.engine.batchUpdate(e),e||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(e=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!e||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;const t=this.el.querySelector("."+this.opts.itemClass);if(t){const n=g.toNumber(t.getAttribute("gs-h"))||1;return Math.round(t.offsetHeight/n)}const i=parseInt(this.el.getAttribute("gs-current-row"));return i?Math.round(this.el.getBoundingClientRect().height/i):this.opts.cellHeight}cellHeight(e,t=!0){if(t&&e!==void 0&&this._isAutoCellHeight!==(e==="auto")&&(this._isAutoCellHeight=e==="auto",this._updateResizeEvent()),(e==="initial"||e==="auto")&&(e=void 0),e===void 0){const n=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;e=this.cellWidth()+n}const i=g.parseHeight(e);return this.opts.cellHeightUnit===i.unit&&this.opts.cellHeight===i.h?this:(this.opts.cellHeightUnit=i.unit,this.opts.cellHeight=i.h,this.resizeToContentCheck(),t&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(e=!1){return e&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){const e=this.opts.columnOpts;if(!e||!e.columnWidth&&!e.breakpoints?.length)return!1;const t=this.getColumn();let i=t;const n=this._widthOrContainer(!0);if(e.columnWidth)i=Math.min(Math.round(n/e.columnWidth)||1,e.columnMax);else{i=e.columnMax;let s=0;for(;s<e.breakpoints.length&&n<=e.breakpoints[s].w;)i=e.breakpoints[s++].c||t}if(i!==t){const s=e.breakpoints?.find(a=>a.c===i);return this.column(i,s?.layout||e.layout),!0}return!1}compact(e="compact",t=!0){return this.engine.compact(e,t),this._triggerChangeEvent(),this}column(e,t="moveScale"){if(!e||e<1||this.opts.column===e)return this;const i=this.getColumn();return this.opts.column=e,this.engine?(this.engine.column=e,this.el.classList.remove("gs-"+i),this.el.classList.add("gs-"+e),this.engine.columnChanged(i,e,t),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(e=>e.matches("."+this.opts.itemClass)&&!e.matches("."+this.opts.placeholderClass))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(e=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),e?this.el.parentNode.removeChild(this.el):(this.removeAll(e),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),delete this.parentGridNode?.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(e){return this.opts.float!==e&&(this.opts.float=this.engine.float=e,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(e,t=!1){const i=this.el.getBoundingClientRect();let n;t?n={top:i.top+document.documentElement.scrollTop,left:i.left}:n={top:this.el.offsetTop,left:this.el.offsetLeft};const s=e.left-n.left,a=e.top-n.top,l=i.width/this.getColumn(),d=i.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(s/l),y:Math.floor(a/d)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(e,t,i,n){return this.engine.isAreaEmpty(e,t,i,n)}makeWidget(e,t){const i=A.getElement(e);if(!i)return;i.parentElement||this.el.appendChild(i),this._prepareElement(i,!0,t);const n=i.gridstackNode;this._updateContainerHeight(),n.subGridOpts&&this.makeSubGrid(i,n.subGridOpts,void 0,!1);let s;return this.opts.column===1&&!this._ignoreLayoutsNodeChange&&(s=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),s&&delete this._ignoreLayoutsNodeChange,i}on(e,t){return e.indexOf(" ")!==-1?(e.split(" ").forEach(n=>this.on(n,t)),this):(e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable"?(e==="enable"||e==="disable"?this._gsEventHandler[e]=n=>t(n):this._gsEventHandler[e]=n=>{n.detail&&t(n,n.detail)},this.el.addEventListener(e,this._gsEventHandler[e])):e==="drag"||e==="dragstart"||e==="dragstop"||e==="resizestart"||e==="resize"||e==="resizestop"||e==="dropped"||e==="resizecontent"?this._gsEventHandler[e]=t:console.error("GridStack.on("+e+") event not supported"),this)}off(e){return e.indexOf(" ")!==-1?(e.split(" ").forEach(i=>this.off(i)),this):((e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable")&&this._gsEventHandler[e]&&this.el.removeEventListener(e,this._gsEventHandler[e]),delete this._gsEventHandler[e],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(e=>this.off(e)),this}removeWidget(e,t=!0,i=!0){return e?(A.getElements(e).forEach(n=>{if(n.parentElement&&n.parentElement!==this.el)return;let s=n.gridstackNode;s||(s=this.engine.nodes.find(a=>n===a.el)),s&&(t&&A.addRemoveCB&&A.addRemoveCB(this.el,s,!1,!1),delete n.gridstackNode,this._removeDD(n),this.engine.removeNode(s,t,i),t&&n.parentElement&&n.remove())}),i&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error("Error: GridStack.removeWidget(undefined) called"),this)}removeAll(e=!0,t=!0){return this.engine.nodes.forEach(i=>{e&&A.addRemoveCB&&A.addRemoveCB(this.el,i,!1,!1),delete i.el.gridstackNode,this.opts.staticGrid||this._removeDD(i.el)}),this.engine.removeAll(e,t),t&&this._triggerRemoveEvent(),this}setAnimation(e=this.opts.animate,t){return t?setTimeout(()=>{this.opts&&this.setAnimation(e)}):e?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(e,t=!0,i=!0){return!!this.opts.staticGrid===e?this:(e?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&i&&n.subGrid.setStatic(e,t,i)}),t&&this._setStaticClass(),this)}updateOptions(e){const t=this.opts;return e.acceptWidgets!==void 0&&this._setupAcceptWidget(),e.animate!==void 0&&this.setAnimation(),e.cellHeight&&(this.cellHeight(e.cellHeight,!0),delete e.cellHeight),e.class&&e.class!==t.class&&(t.class&&this.el.classList.remove(t.class),this.el.classList.add(e.class)),typeof e.column=="number"&&!e.columnOpts&&(this.column(e.column),delete e.column),e.margin!==void 0&&this.margin(e.margin),e.staticGrid!==void 0&&this.setStatic(e.staticGrid),e.disableDrag!==void 0&&!e.staticGrid&&this.enableMove(!e.disableDrag),e.disableResize!==void 0&&!e.staticGrid&&this.enableResize(!e.disableResize),e.float!==void 0&&this.float(e.float),e.row!==void 0&&(t.minRow=t.maxRow=e.row),e.children?.length&&(this.load(e.children),delete e.children),this.opts={...this.opts,...e},this}update(e,t){return A.getElements(e).forEach(i=>{const n=i?.gridstackNode;if(!n)return;const s={...g.copyPos({},n),...g.cloneDeep(t)};this.engine.nodeBoundFix(s),delete s.autoPosition;const a=["x","y","w","h"];let l;if(a.some(u=>s[u]!==void 0&&s[u]!==n[u])&&(l={},a.forEach(u=>{l[u]=s[u]!==void 0?s[u]:n[u],delete s[u]})),!l&&(s.minW||s.minH||s.maxW||s.maxH)&&(l={}),s.content!==void 0){const u=i.querySelector(".grid-stack-item-content");u&&u.textContent!==s.content&&(n.content=s.content,A.renderCB(u,s),n.subGrid?.el&&(u.appendChild(n.subGrid.el),n.subGrid.opts.styleInHead||n.subGrid._updateStyles(!0))),delete s.content}let d=!1,c=!1;for(const u in s)u[0]!=="_"&&n[u]!==s[u]&&(n[u]=s[u],d=!0,c=c||!this.opts.staticGrid&&(u==="noResize"||u==="noMove"||u==="locked"));if(g.sanitizeMinMax(n),l){const u=l.w!==void 0&&l.w!==n.w;this.moveNode(n,l),u&&n.subGrid?n.subGrid.onResize(this.hasAnimationCSS()?n.w:void 0):this.resizeToContentCheck(u,n),delete n._orig}(l||d)&&this._writeAttr(i,n),c&&this.prepareDragDrop(n.el)}),this}moveNode(e,t){const i=e._updating;i||this.engine.cleanNodes().beginUpdate(e),this.engine.moveNode(e,t),this._updateContainerHeight(),i||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(e){if(!e||(e.classList.remove("size-to-content-max"),!e.clientHeight))return;const t=e.gridstackNode;if(!t)return;const i=t.grid;if(!i||e.parentElement!==i.el)return;const n=i.getCellHeight(!0);if(!n)return;let s=t.h?t.h*n:e.clientHeight,a;if(t.resizeToContentParent&&(a=e.querySelector(t.resizeToContentParent)),a||(a=e.querySelector(A.resizeToContentParent)),!a)return;const l=e.clientHeight-a.clientHeight,d=t.h?t.h*n-l:a.clientHeight;let c;if(t.subGrid){c=t.subGrid.getRow()*t.subGrid.getCellHeight(!0);const f=t.subGrid.el.getBoundingClientRect(),_=t.subGrid.el.parentElement.getBoundingClientRect();c+=f.top-_.top}else{if(t.subGridOpts?.children?.length)return;{const f=a.firstElementChild;if(!f){console.error(`Error: GridStack.resizeToContent() widget id:${t.id} '${A.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}c=f.getBoundingClientRect().height||d}}if(d===c)return;s+=c-d;let u=Math.ceil(s/n);const h=Number.isInteger(t.sizeToContent)?t.sizeToContent:0;h&&u>h&&(u=h,e.classList.add("size-to-content-max")),t.minH&&u<t.minH?u=t.minH:t.maxH&&u>t.maxH&&(u=t.maxH),u!==t.h&&(i._ignoreLayoutsNodeChange=!0,i.moveNode(t,{h:u}),delete i._ignoreLayoutsNodeChange)}resizeToContentCBCheck(e){A.resizeToContentCB?A.resizeToContentCB(e):this.resizeToContent(e)}rotate(e,t){return A.getElements(e).forEach(i=>{const n=i.gridstackNode;if(!g.canBeRotated(n))return;const s={w:n.h,h:n.w,minH:n.minW,minW:n.minH,maxH:n.maxW,maxW:n.maxH};if(t){const l=t.left>0?Math.floor(t.left/this.cellWidth()):0,d=t.top>0?Math.floor(t.top/this.opts.cellHeight):0;s.x=n.x+l-(n.h-(d+1)),s.y=n.y+d-l}Object.keys(s).forEach(l=>{s[l]===void 0&&delete s[l]});const a=n._orig;this.update(i,s),n._orig=a}),this}margin(e){if(!(typeof e=="string"&&e.split(" ").length>1)){const i=g.parseHeight(e);if(this.opts.marginUnit===i.unit&&this.opts.margin===i.h)return}return this.opts.margin=e,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(e){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");const t=arguments;let i=0,n={x:t[i++],y:t[i++],w:t[i++],h:t[i++],autoPosition:t[i++]};return this.willItFit(n)}return this.engine.willItFit(e)}_triggerChangeEvent(){if(this.engine.batchMode)return this;const e=this.engine.getDirtyNodes(!0);return e&&e.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(e),this._triggerEvent("change",e)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(t=>{delete t._dirty});const e=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",e)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){const e=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",e)}return this}_triggerEvent(e,t){const i=t?new CustomEvent(e,{bubbles:!1,detail:t}):new Event(e);return this.el.dispatchEvent(i),this}_removeStylesheet(){if(this._styles){const e=this.opts.styleInHead?void 0:this.el.parentNode;g.removeStylesheet(this._styleSheetClass,e),delete this._styles}return this}_updateStyles(e=!1,t){if(e&&this._removeStylesheet(),t===void 0&&(t=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;const i=this.opts.cellHeight,n=this.opts.cellHeightUnit,s=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){const a=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=g.createStylesheet(this._styleSheetClass,a,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,g.addCSSRule(this._styles,s,`height: ${i}${n}`);const l=this.opts.marginTop+this.opts.marginUnit,d=this.opts.marginBottom+this.opts.marginUnit,c=this.opts.marginRight+this.opts.marginUnit,u=this.opts.marginLeft+this.opts.marginUnit,h=`${s} > .grid-stack-item-content`,f=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;g.addCSSRule(this._styles,h,`top: ${l}; right: ${c}; bottom: ${d}; left: ${u};`),g.addCSSRule(this._styles,f,`top: ${l}; right: ${c}; bottom: ${d}; left: ${u};`),g.addCSSRule(this._styles,`${s} > .ui-resizable-n`,`top: ${l};`),g.addCSSRule(this._styles,`${s} > .ui-resizable-s`,`bottom: ${d}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-ne`,`right: ${c}; top: ${l}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-e`,`right: ${c}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-se`,`right: ${c}; bottom: ${d}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-nw`,`left: ${u}; top: ${l}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-w`,`left: ${u}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-sw`,`left: ${u}; bottom: ${d}`)}if(t=t||this._styles._max,t>this._styles._max){const a=l=>i*l+n;for(let l=this._styles._max+1;l<=t;l++)g.addCSSRule(this._styles,`${s}[gs-y="${l}"]`,`top: ${a(l)}`),g.addCSSRule(this._styles,`${s}[gs-h="${l+1}"]`,`height: ${a(l+1)}`);this._styles._max=t}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;const e=this.parentGridNode;let t=this.getRow()+this._extraDragRow;const i=this.opts.cellHeight,n=this.opts.cellHeightUnit;if(!i)return this;if(!e){const s=g.parseHeight(getComputedStyle(this.el).minHeight);if(s.h>0&&s.unit===n){const a=Math.floor(s.h/i);t<a&&(t=a)}}return this.el.setAttribute("gs-current-row",String(t)),this.el.style.removeProperty("min-height"),this.el.style.removeProperty("height"),t&&(this.el.style[e?"minHeight":"height"]=t*i+n),e&&!e.grid.engine.batchMode&&g.shouldSizeToContent(e)&&e.grid.resizeToContentCBCheck(e.el),this}_prepareElement(e,t=!1,i){i=i||this._readAttr(e),e.gridstackNode=i,i.el=e,i.grid=this,i=this.engine.addNode(i,t),this._writeAttr(e,i),e.classList.add(ye.itemClass,this.opts.itemClass);const n=g.shouldSizeToContent(i);return n?e.classList.add("size-to-content"):e.classList.remove("size-to-content"),n&&this.resizeToContentCheck(!1,i),g.lazyLoad(i)||this.prepareDragDrop(i.el),this}_writePosAttr(e,t){return t.x!==void 0&&t.x!==null&&e.setAttribute("gs-x",String(t.x)),t.y!==void 0&&t.y!==null&&e.setAttribute("gs-y",String(t.y)),t.w>1?e.setAttribute("gs-w",String(t.w)):e.removeAttribute("gs-w"),t.h>1?e.setAttribute("gs-h",String(t.h)):e.removeAttribute("gs-h"),this}_writeAttr(e,t){if(!t)return this;this._writePosAttr(e,t);const i={noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id",sizeToContent:"gs-size-to-content"};for(const n in i)t[n]?e.setAttribute(i[n],String(t[n])):e.removeAttribute(i[n]);return this}_readAttr(e,t=!0){const i={};i.x=g.toNumber(e.getAttribute("gs-x")),i.y=g.toNumber(e.getAttribute("gs-y")),i.w=g.toNumber(e.getAttribute("gs-w")),i.h=g.toNumber(e.getAttribute("gs-h")),i.autoPosition=g.toBool(e.getAttribute("gs-auto-position")),i.noResize=g.toBool(e.getAttribute("gs-no-resize")),i.noMove=g.toBool(e.getAttribute("gs-no-move")),i.locked=g.toBool(e.getAttribute("gs-locked"));const n=e.getAttribute("gs-size-to-content");n&&(n==="true"||n==="false"?i.sizeToContent=g.toBool(n):i.sizeToContent=parseInt(n,10)),i.id=e.getAttribute("gs-id"),i.maxW=g.toNumber(e.getAttribute("gs-max-w")),i.minW=g.toNumber(e.getAttribute("gs-min-w")),i.maxH=g.toNumber(e.getAttribute("gs-max-h")),i.minH=g.toNumber(e.getAttribute("gs-min-h")),t&&(i.w===1&&e.removeAttribute("gs-w"),i.h===1&&e.removeAttribute("gs-h"),i.maxW&&e.removeAttribute("gs-max-w"),i.minW&&e.removeAttribute("gs-min-w"),i.maxH&&e.removeAttribute("gs-max-h"),i.minH&&e.removeAttribute("gs-min-h"));for(const s in i){if(!i.hasOwnProperty(s))return;!i[s]&&i[s]!==0&&s!=="gs-size-to-content"&&delete i[s]}return i}_setStaticClass(){const e=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...e),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...e),this.el.removeAttribute("gs-static")),this}onResize(e=this.el?.clientWidth){if(!e||this.prevWidth===e)return;this.prevWidth=e,this.batchUpdate();let t=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||"list"),t=!0):t=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(i=>{i.subGrid&&i.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(t),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(e=!1,t=void 0){if(this.engine){if(e&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,t),this.animationDelay);if(t)g.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el);else if(this.engine.nodes.some(i=>g.shouldSizeToContent(i))){const i=[...this.engine.nodes];this.batchUpdate(),i.forEach(n=>{g.shouldSizeToContent(n)&&this.resizeToContentCBCheck(n.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,t?[t]:this.engine.nodes)}}_updateResizeEvent(e=!1){const t=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(i=>i.sizeToContent));return!e&&t&&!this.resizeObserver?(this._sizeThrottle=g.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(e||!t)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(e=".grid-stack-item"){return g.getElement(e)}static getElements(e=".grid-stack-item"){return g.getElements(e)}static getGridElement(e){return A.getElement(e)}static getGridElements(e){return g.getElements(e)}_initMargin(){let e,t=0,i=[];return typeof this.opts.margin=="string"&&(i=this.opts.margin.split(" ")),i.length===2?(this.opts.marginTop=this.opts.marginBottom=i[0],this.opts.marginLeft=this.opts.marginRight=i[1]):i.length===4?(this.opts.marginTop=i[0],this.opts.marginRight=i[1],this.opts.marginBottom=i[2],this.opts.marginLeft=i[3]):(e=g.parseHeight(this.opts.margin),this.opts.marginUnit=e.unit,t=this.opts.margin=e.h),this.opts.marginTop===void 0?this.opts.marginTop=t:(e=g.parseHeight(this.opts.marginTop),this.opts.marginTop=e.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=t:(e=g.parseHeight(this.opts.marginBottom),this.opts.marginBottom=e.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=t:(e=g.parseHeight(this.opts.marginRight),this.opts.marginRight=e.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=t:(e=g.parseHeight(this.opts.marginLeft),this.opts.marginLeft=e.h,delete this.opts.margin),this.opts.marginUnit=e.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return fe}static setupDragIn(e,t,i,n=document){t?.pause!==void 0&&(I.pauseDrag=t.pause),t={appendTo:"body",helper:"clone",...t||{}},(typeof e=="string"?g.getElements(e,n):e).forEach((a,l)=>{fe.isDraggable(a)||fe.dragIn(a,t),i?.[l]&&(a.gridstackNode=i[l])})}movable(e,t){return this.opts.staticGrid?this:(A.getElements(e).forEach(i=>{const n=i.gridstackNode;n&&(t?delete n.noMove:n.noMove=!0,this.prepareDragDrop(n.el))}),this)}resizable(e,t){return this.opts.staticGrid?this:(A.getElements(e).forEach(i=>{const n=i.gridstackNode;n&&(t?delete n.noResize:n.noResize=!0,this.prepareDragDrop(n.el))}),this)}disable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!1,e),this.enableResize(!1,e),this._triggerEvent("disable"),this}enable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!0,e),this.enableResize(!0,e),this._triggerEvent("enable"),this}enableMove(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableMove(e,t)}),this)}enableResize(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableResize(e,t)}),this)}cancelDrag(){const e=this._placeholder?.gridstackNode;e&&(e._isExternal?(e._isAboutToRemove=!0,this.engine.removeNode(e)):e._isAboutToRemove&&A._itemRemoving(e.el,!1),this.engine.restoreInitial())}_removeDD(e){return fe.draggable(e,"destroy").resizable(e,"destroy"),e.gridstackNode&&delete e.gridstackNode._initDD,delete e.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return fe.droppable(this.el,"destroy"),this;let e,t;const i=(n,s,a)=>{a=a||s;const l=a.gridstackNode;if(!l)return;if(!l.grid?.el){a.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;const f=a.getBoundingClientRect();a.style.left=f.x+(this.dragTransform.xScale-1)*(n.clientX-f.x)/this.dragTransform.xScale+"px",a.style.top=f.y+(this.dragTransform.yScale-1)*(n.clientY-f.y)/this.dragTransform.yScale+"px",a.style.transformOrigin="0px 0px"}let{top:d,left:c}=a.getBoundingClientRect();const u=this.el.getBoundingClientRect();c-=u.left,d-=u.top;const h={position:{top:d*this.dragTransform.xScale,left:c*this.dragTransform.yScale}};if(l._temporaryRemoved){if(l.x=Math.max(0,Math.round(c/t)),l.y=Math.max(0,Math.round(d/e)),delete l.autoPosition,this.engine.nodeBoundFix(l),!this.engine.willItFit(l)){if(l.autoPosition=!0,!this.engine.willItFit(l)){fe.off(s,"drag");return}l._willFitPos&&(g.copyPos(l,l._willFitPos),delete l._willFitPos)}this._onStartMoving(a,n,h,l,t,e)}else this._dragOrResize(a,n,h,l,t,e)};return fe.droppable(this.el,{accept:n=>{const s=n.gridstackNode||this._readAttr(n,!1);if(s?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let a=!0;if(typeof this.opts.acceptWidgets=="function")a=this.opts.acceptWidgets(n);else{const l=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;a=n.matches(l)}if(a&&s&&this.opts.maxRow){const l={w:s.w,h:s.h,minW:s.minW,minH:s.minH};a=this.engine.willItFit(l)}return a}}).on(this.el,"dropover",(n,s,a)=>{let l=a?.gridstackNode||s.gridstackNode;if(l?.grid===this&&!l._temporaryRemoved)return!1;if(l?._sidebarOrig&&(l.w=l._sidebarOrig.w,l.h=l._sidebarOrig.h),l?.grid&&l.grid!==this&&!l._temporaryRemoved&&l.grid._leave(s,a),a=a||s,t=this.cellWidth(),e=this.getCellHeight(!0),!l){const u=a.getAttribute("data-gs-widget")||a.getAttribute("gridstacknode");if(u){try{l=JSON.parse(u)}catch{console.error("Gridstack dropover: Bad JSON format: ",u)}a.removeAttribute("data-gs-widget"),a.removeAttribute("gridstacknode")}l||(l=this._readAttr(a)),l._sidebarOrig={w:l.w,h:l.h}}l.grid||(l.el||(l={...l}),l._isExternal=!0,a.gridstackNode=l);const d=l.w||Math.round(a.offsetWidth/t)||1,c=l.h||Math.round(a.offsetHeight/e)||1;return l.grid&&l.grid!==this?(s._gridstackNodeOrig||(s._gridstackNodeOrig=l),s.gridstackNode=l={...l,w:d,h:c,grid:this},delete l.x,delete l.y,this.engine.cleanupNode(l).nodeBoundFix(l),l._initDD=l._isExternal=l._temporaryRemoved=!0):(l.w=d,l.h=c,l._temporaryRemoved=!0),A._itemRemoving(l.el,!1),fe.on(s,"drag",i),i(n,s,a),!1}).on(this.el,"dropout",(n,s,a)=>{const l=a?.gridstackNode||s.gridstackNode;return l&&(!l.grid||l.grid===this)&&(this._leave(s,a),this._isTemp&&this.removeAsSubGrid(l)),!1}).on(this.el,"drop",(n,s,a)=>{const l=a?.gridstackNode||s.gridstackNode;if(l?.grid===this&&!l._isExternal)return!1;const d=!!this.placeholder.parentElement,c=s!==a;this.placeholder.remove(),delete this.placeholder.gridstackNode;const u=d&&this.opts.animate;u&&this.setAnimation(!1);const h=s._gridstackNodeOrig;if(delete s._gridstackNodeOrig,d&&h?.grid&&h.grid!==this){const _=h.grid;_.engine.removeNodeFromLayoutCache(h),_.engine.removedNodes.push(h),_._triggerRemoveEvent()._triggerChangeEvent(),_.parentGridNode&&!_.engine.nodes.length&&_.opts.subGridDynamic&&_.removeAsSubGrid()}if(!l||(d&&(this.engine.cleanupNode(l),l.grid=this),delete l.grid?._isTemp,fe.off(s,"drag"),a!==s?(a.remove(),s=a):s.remove(),this._removeDD(s),!d))return!1;const f=l.subGrid?.el?.gridstack;return g.copyPos(l,this._readAttr(this.placeholder)),g.removePositioningStyles(s),c&&(l.content||l.subGridOpts||A.addRemoveCB)?(delete l.el,s=this.addWidget(l)):(this._prepareElement(s,!0,l),this.el.appendChild(s),this.resizeToContentCheck(!1,l),f&&(f.parentGridNode=l,f.opts.styleInHead||f._updateStyles(!0)),this._updateContainerHeight()),this.engine.addedNodes.push(l),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped({...n,type:"dropped"},h&&h.grid?h:void 0,l),u&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(e,t){if(!e)return;const i=e?e.gridstackNode:void 0;!i?.grid||e.classList.contains(i.grid.opts.removableOptions.decline)||(t?i._isAboutToRemove=!0:delete i._isAboutToRemove,t?e.classList.add("grid-stack-item-removing"):e.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;const e=document.querySelector(this.opts.removable);return e?(!this.opts.staticGrid&&!fe.isDroppable(e)&&fe.droppable(e,this.opts.removableOptions).on(e,"dropover",(t,i)=>A._itemRemoving(i,!0)).on(e,"dropout",(t,i)=>A._itemRemoving(i,!1)),this):this}prepareDragDrop(e,t=!1){const i=e?.gridstackNode;if(!i)return;const n=i.noMove||this.opts.disableDrag,s=i.noResize||this.opts.disableResize,a=this.opts.staticGrid||n&&s;if((t||a)&&(i._initDD&&(this._removeDD(e),delete i._initDD),a&&e.classList.add("ui-draggable-disabled","ui-resizable-disabled"),!t))return this;if(!i._initDD){let l,d;const c=(f,_)=>{this._gsEventHandler[f.type]&&this._gsEventHandler[f.type](f,f.target),l=this.cellWidth(),d=this.getCellHeight(!0),this._onStartMoving(e,f,_,i,l,d)},u=(f,_)=>{this._dragOrResize(e,f,_,i,l,d)},h=f=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete i._moving,delete i._event,delete i._lastTried;const _=i.w!==i._orig.w,w=f.target;if(!(!w.gridstackNode||w.gridstackNode.grid!==this)){if(i.el=w,i._isAboutToRemove){const E=e.gridstackNode.grid;E._gsEventHandler[f.type]&&E._gsEventHandler[f.type](f,w),E.engine.nodes.push(i),E.removeWidget(e,!0,!0)}else g.removePositioningStyles(w),i._temporaryRemoved?(g.copyPos(i,i._orig),this._writePosAttr(w,i),this.engine.addNode(i)):this._writePosAttr(w,i),this._gsEventHandler[f.type]&&this._gsEventHandler[f.type](f,w);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),f.type==="resizestop"&&(Number.isInteger(i.sizeToContent)&&(i.sizeToContent=i.h),this.resizeToContentCheck(_,i))}};fe.draggable(e,{start:c,stop:h,drag:u}).resizable(e,{start:c,stop:h,resize:u}),i._initDD=!0}return fe.draggable(e,n?"disable":"enable").resizable(e,s?"disable":"enable"),this}_onStartMoving(e,t,i,n,s,a){if(this.engine.cleanNodes().beginUpdate(n),this._writePosAttr(this.placeholder,n),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=n,n.grid?.el)this.dragTransform=g.getValuesFromTransformedElement(e);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){const l=this.placeholder.closest(".grid-stack");this.dragTransform=g.getValuesFromTransformedElement(l)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(n.el=this.placeholder,n._lastUiPosition=i.position,n._prevYPix=i.position.top,n._moving=t.type==="dragstart",delete n._lastTried,t.type==="dropover"&&n._temporaryRemoved&&(this.engine.addNode(n),n._moving=!0),this.engine.cacheRects(s,a,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),t.type==="resizestart"){const l=this.getColumn()-n.x,d=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-n.y;fe.resizable(e,"option","minWidth",s*Math.min(n.minW||1,l)).resizable(e,"option","minHeight",a*Math.min(n.minH||1,d)).resizable(e,"option","maxWidth",s*Math.min(n.maxW||Number.MAX_SAFE_INTEGER,l)).resizable(e,"option","maxWidthMoveLeft",s*Math.min(n.maxW||Number.MAX_SAFE_INTEGER,n.x+n.w)).resizable(e,"option","maxHeight",a*Math.min(n.maxH||Number.MAX_SAFE_INTEGER,d)).resizable(e,"option","maxHeightMoveUp",a*Math.min(n.maxH||Number.MAX_SAFE_INTEGER,n.y+n.h))}}_dragOrResize(e,t,i,n,s,a){const l={...n._orig};let d,c=this.opts.marginLeft,u=this.opts.marginRight,h=this.opts.marginTop,f=this.opts.marginBottom;const _=Math.round(a*.1),w=Math.round(s*.1);if(c=Math.min(c,w),u=Math.min(u,w),h=Math.min(h,_),f=Math.min(f,_),t.type==="drag"){if(n._temporaryRemoved)return;const b=i.position.top-n._prevYPix;n._prevYPix=i.position.top,this.opts.draggable.scroll!==!1&&g.updateScrollPosition(e,i.position,b);const M=i.position.left+(i.position.left>n._lastUiPosition.left?-u:c),T=i.position.top+(i.position.top>n._lastUiPosition.top?-f:h);l.x=Math.round(M/s),l.y=Math.round(T/a);const k=this._extraDragRow;if(this.engine.collide(n,l)){const G=this.getRow();let z=Math.max(0,l.y+n.h-G);this.opts.maxRow&&G+z>this.opts.maxRow&&(z=Math.max(0,this.opts.maxRow-G)),this._extraDragRow=z}else this._extraDragRow=0;if(this._extraDragRow!==k&&this._updateContainerHeight(),n.x===l.x&&n.y===l.y)return}else if(t.type==="resize"){if(l.x<0||(g.updateScrollResize(t,e,a),l.w=Math.round((i.size.width-c)/s),l.h=Math.round((i.size.height-h)/a),n.w===l.w&&n.h===l.h)||n._lastTried&&n._lastTried.w===l.w&&n._lastTried.h===l.h)return;const b=i.position.left+c,M=i.position.top+h;l.x=Math.round(b/s),l.y=Math.round(M/a),d=!0}n._event=t,n._lastTried=l;const E={x:i.position.left+c,y:i.position.top+h,w:(i.size?i.size.width:n.w*s)-c-u,h:(i.size?i.size.height:n.h*a)-h-f};if(this.engine.moveNodeCheck(n,{...l,cellWidth:s,cellHeight:a,rect:E,resizing:d})){n._lastUiPosition=i.position,this.engine.cacheRects(s,a,h,u,f,c),delete n._skipDown,d&&n.subGrid&&n.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();const b=t.target;n._sidebarOrig||this._writePosAttr(b,n),this._gsEventHandler[t.type]&&this._gsEventHandler[t.type](t,b)}}_leave(e,t){t=t||e;const i=t.gridstackNode;if(!i||(t.style.transform=t.style.transformOrigin=null,fe.off(e,"drag"),i._temporaryRemoved))return;i._temporaryRemoved=!0,this.engine.removeNode(i),i.el=i._isExternal&&t?t:e;const n=i._sidebarOrig;i._isExternal&&this.engine.cleanupNode(i),i._sidebarOrig=n,this.opts.removable===!0&&A._itemRemoving(e,!0),e._gridstackNodeOrig?(e.gridstackNode=e._gridstackNodeOrig,delete e._gridstackNodeOrig):i._isExternal&&this.engine.restoreInitial()}commit(){return xs(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}}A.renderCB=(r,e)=>{r&&e?.content&&(r.textContent=e.content)},A.resizeToContentParent=".grid-stack-item-content",A.Utils=g,A.Engine=Re,A.GDRev="11.5.1";const Ss=["data-id","data-testid","gs-h","gs-w","gs-x","gs-y"],Ts={class:"grid-stack-item-content"},Ds=Ae(o.defineComponent({__name:"DraggableGridLayout",props:{tiles:{},tileHeight:{default:$e},columns:{default:it}},emits:["update-tiles"],setup(r,{expose:e,emit:t}){const i=r,n=t,s=o.ref(null),a=o.ref(new Map(i.tiles.map(_=>[`${_.id}`,_])));let l=null;const d=_=>`[data-id="${_}"]`,c=_=>_.map(w=>{const E=a.value.get(`${w.el?.getAttribute("data-id")}`);if(E)return{...E,layout:{position:{col:Number(w.x),row:Number(w.y)},size:{cols:Number(w.w),rows:Number(w.h)}}}}).filter(w=>w!==void 0),u=(_,w)=>{l&&(c(w).forEach(b=>{a.value.set(`${b.id}`,b)}),n("update-tiles",Array.from(a.value.values())))},h=(_,w)=>{w.forEach(E=>{a.value.delete(`${E.el?.getAttribute("data-id")}`)}),n("update-tiles",Array.from(a.value.values()))};o.onMounted(()=>{s.value&&(l=A.init({margin:10,column:i.columns,cellHeight:i.tileHeight,resizable:{handles:"se, sw"},handle:".tile-header"},s.value),l.on("change",u),l.on("added",u),l.on("removed",h))}),o.onUnmounted(()=>{l&&l.destroy(!1)});const f=_=>{if(l&&s.value){const w=s.value.querySelector(d(_));w&&l.removeWidget(w)}};return o.watch(()=>i.tiles.length,async(_,w)=>{if(_>w&&l){const E=i.tiles.slice(w);for(const b of E)a.value.set(`${b.id}`,b),await o.nextTick(),l.makeWidget(d(b.id),{autoPosition:!0,w:b.layout.size.cols,h:b.layout.size.rows})}}),o.watchEffect(()=>{i.tiles.forEach(_=>{a.value.set(`${_.id}`,_)})}),e({removeWidget:f}),(_,w)=>(o.openBlock(),o.createElementBlock("div",{ref_key:"gridContainer",ref:s,class:"grid-stack"},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tiles,E=>(o.openBlock(),o.createElementBlock("div",{key:E.id,class:"grid-stack-item","data-id":`${E.id}`,"data-testid":`grid-stack-item-${E.id}`,"gs-h":E.layout.size.rows,"gs-lazy-load":!0,"gs-w":E.layout.size.cols,"gs-x":E.layout.position.col,"gs-y":E.layout.position.row},[o.createElementVNode("div",Ts,[o.renderSlot(_.$slots,"tile",{tile:E},void 0,!0)])],8,Ss))),128))],512))}}),[["__scopeId","data-v-1fdec94c"]]),Os=r=>{const e={position:{col:0,row:0},size:r.layout.size};if(r.type==="slottable")return{id:crypto.randomUUID(),type:"slottable",layout:e};const t=r.meta,i={...t,chart:{...t.chart}};return"chart_title"in i.chart&&(i.chart.chart_title=i.chart.chart_title?`Copy of ${i.chart.chart_title}`:""),{id:crypto.randomUUID(),type:"chart",definition:i,layout:e}},Ns={key:0,class:"fullscreen-header"},zs={key:0,class:"tile-container slottable-tile"},Ms=Ae(o.defineComponent({__name:"DashboardRenderer",props:o.mergeModels({context:{},preview:{type:Boolean,default:!1}},{modelValue:{required:!0},modelModifiers:{}}),emits:o.mergeModels(["edit-tile","tile-time-range-zoom","tiles-loaded"],["update:modelValue"]),setup(r,{expose:e,emit:t}){o.useCssVars(R=>({v130e88d4:u.value}));const i=t,n=o.useModel(r,"modelValue"),{i18n:s}=me.useI18n(),a=o.ref(0),l=o.ref(null),d=o.ref(),c=o.ref(),u=o.ref("scale(1)"),h=new Set,f=o.inject(ke);f||(console.warn("Analytics dashboards require a query bridge supplied via provide / inject."),console.warn("Please ensure your application has a query bridge provided under the key 'analytics-query-provider', as described in"),console.warn("https://github.com/Kong/public-ui-components/blob/main/packages/analytics/dashboard-renderer/README.md#requirements")),me.useRequestQueue();const{exportPdf:_,exportState:w}=me.useExportPdf(c),E=R=>{h.add(R.id);const C=T.value.filter(P=>!G(P)).length;h.size>=C&&i("tiles-loaded",!0)},b=o.computed(()=>{const{timeSpec:R}=ie.value,P=`renderer.trendRange.${R.type==="absolute"?"custom":R.time_range}`;return s.te(P)?s.t(P):""}),M=(R,C)=>{const P=R.layout.position.row-C.layout.position.row;return P!==0?P:R.layout.position.col-C.layout.position.col},T=o.computed(()=>n.value.tiles.map(R=>{if(ie.value.editable&&!R.id&&console.warn("No id provided for tile. One will be generated automatically,","however tracking changes to this tile may not work as expected.",R),R.type==="slottable")return{layout:R.layout,type:R.type,id:R.id??crypto.randomUUID()};let C=R.definition;const P=R.type??"chart",S=qr(C,b.value);return S!==C.header_description&&(C={...C,header_description:S}),{layout:R.layout,meta:C,type:P,id:R.id??crypto.randomUUID()}})),k=R=>{i("edit-tile",R)},G=R=>R.type==="slottable"?!0:R.meta?.chart.type==="slottable",z=R=>R.type==="slottable",Z=R=>{if(R.type==="slottable")return R.id;const C=R.meta?.chart;return C&&z(C)?C.id:void 0},U=R=>{try{const C=Os(R);n.value.tiles.push(JSON.parse(JSON.stringify(C)))}catch(C){console.warn(C)}},m=R=>{l.value&&l.value.removeWidget(R.id),h.delete(R.id)},p=()=>{h.clear(),a.value++},y=R=>{const C=R.map(P=>P.type==="slottable"?{id:P.id,type:P.type,layout:P.layout}:{id:P.id,type:P.type,layout:P.layout,definition:P.meta});n.value.tiles=C.sort(M)},v=async()=>{if(u.value="scale(1)",await o.nextTick(),c.value){const{availWidth:R,availHeight:C}=window.screen,{width:P,height:S}=c.value.getBoundingClientRect(),L=Math.min(C/S,R/P);u.value=`scale(${L})`}},x=()=>{d.value&&(document.fullscreenElement?document.exitFullscreen():d.value.requestFullscreen())},N=o.ref(!1),K=()=>{N.value=document.fullscreenElement!==null,N.value&&v()},ce=o.computed(()=>n.value.preset_filters??[]),{internalContext:ie,queryReady:B}=me.useDashboardInternalContext({globalFilters:ce,context:o.computed(()=>r.context),isFullscreen:N,preview:o.computed(()=>r.preview)});return e({refresh:p,toggleFullscreen:x,exportPdf:_,pdfExportState:w}),(R,C)=>{const P=o.resolveComponent("KAlert");return o.openBlock(),o.createElementBlock("div",{ref_key:"dashboardContainer",ref:d,class:o.normalizeClass(["kong-ui-public-dashboard-renderer",{"is-fullscreen":N.value}]),onFullscreenchange:K},[o.createElementVNode("div",{ref_key:"layoutContainer",ref:c,class:"layout"},[o.unref(f)&&N.value?(o.openBlock(),o.createElementBlock("div",Ns,[o.renderSlot(R.$slots,"fullscreenHeader",{},void 0,!0)])):o.createCommentVNode("",!0),o.unref(f)?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(o.unref(ie).editable&&!N.value?Ds:Di),{key:2,ref_key:"gridLayoutRef",ref:l,columns:n.value.columns,"tile-height":n.value.tile_height,tiles:T.value,onUpdateTiles:y},{tile:o.withCtx(({tile:S})=>[G(S)?(o.openBlock(),o.createElementBlock("div",zs,[o.renderSlot(R.$slots,Z(S),{},void 0,!0)])):(o.openBlock(),o.createBlock(Ti,{key:N.value?`${S.id}-tile`:`${S.id}-tile-fullscreen`,"refresh-counter":a.value,"onUpdate:refreshCounter":C[0]||(C[0]=L=>a.value=L),class:"tile-container",context:o.unref(ie),definition:S.meta,height:S.layout.size.rows*(n.value.tile_height||o.unref($e))+parseInt(o.unref(ii),10),"hide-actions":!o.unref(ie).showTileActions,"hide-zoom-actions":!o.unref(ie).showTileZoomActions,"is-fullscreen":N.value,"query-ready":o.unref(B),"tile-id":S.id,"tile-type":S.type,onDuplicateTile:L=>U(S),onEditTile:L=>k(S),onRemoveTile:L=>m(S),onTileLoaded:L=>E(S),onTileTimeRangeZoom:C[1]||(C[1]=L=>i("tile-time-range-zoom",L))},null,8,["refresh-counter","context","definition","height","hide-actions","hide-zoom-actions","is-fullscreen","query-ready","tile-id","tile-type","onDuplicateTile","onEditTile","onRemoveTile","onTileLoaded"]))]),_:3},40,["columns","tile-height","tiles"])):(o.openBlock(),o.createBlock(P,{key:1,appearance:"danger"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(s).t("renderer.noQueryBridge")),1)]),_:1}))],512)],34)}}}),[["__scopeId","data-v-4633b828"]]),Ls=o.defineComponent({__name:"DashboardTilePreview",props:{context:{},definition:{},globalFilters:{default:()=>[]},preview:{type:Boolean,default:!1}},emits:["chart-data","tile-time-range-zoom","tile-bounds-change"],setup(r,{expose:e,emit:t}){const i=o.useTemplateRef("root"),n=o.useTemplateRef("dashboard-tile"),s=crypto.randomUUID(),a=t,l=k=>{a("tile-time-range-zoom",k)},d=k=>{a("chart-data",k)},c=k=>{a("tile-bounds-change",k)},{i18n:u}=me.useI18n(),{internalContext:h,queryReady:f}=me.useDashboardInternalContext({globalFilters:o.toRef(()=>r.globalFilters),context:o.toRef(()=>r.context),preview:o.computed(()=>r.preview)}),_=o.computed(()=>we(r.definition)),w=o.computed(()=>_.value?"columns"in r.definition.query&&!r.definition.query.columns?.length:!("metrics"in r.definition.query)||!r.definition.query.metrics||r.definition.query.metrics.length===0),E=o.ref($e);let b;o.onMounted(()=>{const k=i.value?.parentElement;k&&(E.value=k.getBoundingClientRect().height,b=new ResizeObserver(([G])=>{const{height:z}=G.contentRect;E.value=z}),b.observe(k))}),o.onUnmounted(()=>b?.disconnect());const M=o.ref(0);return e({refresh:()=>{M.value++},getExportData:()=>n.value?.getExportData()}),(k,G)=>{const z=o.resolveComponent("KEmptyState");return o.openBlock(),o.createElementBlock("div",{ref_key:"root",ref:i,"data-testid":"dashboard-tile-preview-root"},[w.value?(o.openBlock(),o.createBlock(z,{key:0,"action-button-visible":!1,"data-testid":"chart-not-configured-empty-state"},{title:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(o.unref(u).t("renderer.not_configured.title")),1)]),default:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(o.unref(u).t("renderer.not_configured.description")),1)]),_:1})):(o.openBlock(),o.createBlock(Ti,{key:1,ref:"dashboard-tile","refresh-counter":M.value,"onUpdate:refreshCounter":G[0]||(G[0]=Z=>M.value=Z),context:{...o.unref(h),editable:!1},definition:r.definition,height:E.value,"hide-actions":"","query-ready":o.unref(f),"show-refresh":"","tile-id":o.unref(s),onChartData:d,onTileBoundsChange:c,onTileTimeRangeZoom:l},null,8,["refresh-counter","context","definition","height","query-ready","tile-id"]))],512)}}}),As=r=>{if(r.type!=="chart")return r;const e=r.definition?.query;if(!e)return r;if(e.datasource==="api_usage"){console.warn("[@kong-ui-public/dashboard-renderer] A tile was filtered out for the Basic Tier",r);return}return r},Is=r=>{if(r.type!=="chart"||we(r.definition))return r;const e=r.definition?.query;if(!e)return r;const t={...e,datasource:e.datasource==="basic"?"api_usage":e.datasource};return{...r,definition:{...r.definition,query:t}}},Ps=(r,e=it)=>{if(!r.length)return[];let t=0,i=0,n=0;const s=[];for(const a of r){const l=a.layout?.size?.cols??1,d=a.layout?.size?.rows??1;i+l>e&&(t+=n,i=0,n=0);const c={...a,layout:{...a.layout,position:{...a.layout?.position??{},col:i,row:t}}};s.push(c),i+=l,n=Math.max(n,d)}return s},qs=(r,e)=>{if(e){const n=r.tiles.map(Is);return{...r,tiles:n}}const t=r.tiles.map(As).filter(n=>n!==void 0),i=Ps(t,r.columns);return{...r,tiles:i}},Hs=Object.freeze(Object.defineProperty({__proto__:null,default:o.defineComponent({__name:"GeoMapRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},emits:["bounds-change"],setup(r,{emit:e}){const t=r,i=o.ref(void 0),n=o.computed(()=>i.value?St.exploreResultToCountryMetrics(i.value):{}),s=o.computed(()=>i.value?i.value?.meta.metric_names&&i.value.meta.metric_names[0]:""),a=o.computed(()=>t.query.limit!==void 0&&t.query.limit>0?t.query.limit:le.COUNTRIES.length),l=o.computed(()=>{if(!t.query.filters?.find(({field:_,operator:w})=>_==="country_code"&&(w==="not_empty"||w==="empty"||w==="in"))){const _={field:"country_code",operator:"not_empty"};return{...t.query,filters:[...t.query.filters||[],_]}}return t.query}),d=o.computed(()=>{if(!i.value)return"";const f=i?.value?.meta.metric_units,_=i?.value?.meta?.metric_names;return f&&_&&f[_[0]]}),c=f=>{i.value=f},u=e,h=f=>{u("bounds-change",f)};return(f,_)=>(o.openBlock(),o.createBlock(nt,{context:r.context,"limit-override":a.value,query:l.value,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter,onChartData:c},{default:o.withCtx(()=>[o.createVNode(o.unref(St.AnalyticsGeoMap),{bounds:r.chartOptions.bounds,"country-metrics":n.value,"fit-to-country":r.chartOptions.fit_to_country,metric:s.value,"metric-unit":d.value,"with-legend":r.chartOptions.legend||!1,onBoundsChange:h},null,8,["bounds","country-metrics","fit-to-country","metric","metric-unit","with-legend"])]),_:1},8,["context","limit-override","query","query-ready","refresh-counter"]))}})},Symbol.toStringTag,{value:"Module"}));V.CP_ID_TOKEN=oi,V.CsvExportModal=bi,V.DASHBOARD_COLS=it,V.DEFAULT_TILE_HEIGHT=$e,V.DEFAULT_TILE_REFRESH_INTERVAL_MS=li,V.DashboardRenderer=Ms,V.DashboardTilePreview=Ls,V.ENTITY_ID_TOKEN=wt,V.FULLSCREEN_LONG_REFRESH_INTERVAL_MS=ui,V.FULLSCREEN_SHORT_REFRESH_INTERVAL_MS=ci,V.GridLayout=Di,V.INJECT_QUERY_PROVIDER=ke,V.TIMEFRAME_TOKEN=ai,V.configureAllowedDefinition=qs,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})}));
|
|
13
|
+
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),i}static addGrid(e,t={}){if(!e)return null;let i=e;if(i.gridstack){const a=i.gridstack;return t&&(a.opts={...a.opts,...t}),t.children!==void 0&&a.load(t.children),a}return(!e.classList.contains("grid-stack")||A.addRemoveCB)&&(A.addRemoveCB?i=A.addRemoveCB(e,t,!0,!0):i=g.createDiv(["grid-stack",t.class],e)),A.init(t,i)}static registerEngine(e){A.engineClass=e}get placeholder(){if(!this._placeholder){this._placeholder=g.createDiv([this.opts.placeholderClass,ye.itemClass,this.opts.itemClass]);const e=g.createDiv(["placeholder-content"],this._placeholder);this.opts.placeholderText&&(e.textContent=this.opts.placeholderText)}return this._placeholder}constructor(e,t={}){this.el=e,this.opts=t,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},e.gridstack=this,this.opts=t=t||{},e.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),t.row&&(t.minRow=t.maxRow=t.row,delete t.row);const i=g.toNumber(e.getAttribute("gs-row"));t.column==="auto"&&delete t.column,t.alwaysShowResizeHandle!==void 0&&(t._alwaysShowResizeHandle=t.alwaysShowResizeHandle);let n=t.columnOpts?.breakpoints;const s=t;if(s.oneColumnModeDomSort&&(delete s.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),s.oneColumnSize||s.disableOneColumnMode===!1){const h=s.oneColumnSize||768;delete s.oneColumnSize,delete s.disableOneColumnMode,t.columnOpts=t.columnOpts||{},n=t.columnOpts.breakpoints=t.columnOpts.breakpoints||[];let f=n.find(_=>_.c===1);f?f.w=h:(f={c:1,w:h},n.push(f,{c:12,w:h+1}))}const a=t.columnOpts;a&&(!a.columnWidth&&!a.breakpoints?.length?(delete t.columnOpts,n=void 0):a.columnMax=a.columnMax||12),n?.length>1&&n.sort((h,f)=>(f.w||0)-(h.w||0));const l={...g.cloneDeep(ye),column:g.toNumber(e.getAttribute("gs-column"))||ye.column,minRow:i||g.toNumber(e.getAttribute("gs-min-row"))||ye.minRow,maxRow:i||g.toNumber(e.getAttribute("gs-max-row"))||ye.maxRow,staticGrid:g.toBool(e.getAttribute("gs-static"))||ye.staticGrid,sizeToContent:g.toBool(e.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(t.handleClass?"."+t.handleClass:t.handle?t.handle:"")||ye.draggable.handle},removableOptions:{accept:t.itemClass||ye.removableOptions.accept,decline:ye.removableOptions.decline}};e.getAttribute("gs-animate")&&(l.animate=g.toBool(e.getAttribute("gs-animate"))),t=g.defaults(t,l),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+t.column),t.rtl==="auto"&&(t.rtl=e.style.direction==="rtl"),t.rtl&&this.el.classList.add("grid-stack-rtl");const c=this.el.closest("."+ye.itemClass)?.gridstackNode;c&&(c.subGrid=this,this.parentGridNode=c,this.el.classList.add("grid-stack-nested"),c.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=t.cellHeight==="auto",this._isAutoCellHeight||t.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof t.cellHeight=="number"&&t.cellHeightUnit&&t.cellHeightUnit!==ye.cellHeightUnit&&(t.cellHeight=t.cellHeight+t.cellHeightUnit,delete t.cellHeightUnit),this.cellHeight(t.cellHeight,!1)),t.alwaysShowResizeHandle==="mobile"&&(t.alwaysShowResizeHandle=xe),this._styleSheetClass="gs-id-"+Re._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();const u=t.engineClass||A.engineClass||Re;if(this.engine=new u({column:this.getColumn(),float:t.float,maxRow:t.maxRow,onChange:h=>{let f=0;this.engine.nodes.forEach(_=>{f=Math.max(f,_.y+_.h)}),h.forEach(_=>{const w=_.el;w&&(_._removeDOM?(w&&w.remove(),delete _._removeDOM):this._writePosAttr(w,_))}),this._updateStyles(!1,f)}}),this._updateStyles(!1,0),t.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(h=>this._prepareElement(h)),delete this.engine._loading,this.batchUpdate(!1)),t.children){const h=t.children;delete t.children,h.length&&this.load(h)}this.setAnimation(),t.subGridDynamic&&!I.pauseDrag&&(I.pauseDrag=!0),t.draggable?.pause!==void 0&&(I.pauseDrag=t.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(e){if(typeof e=="string"){console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");return}if(e.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(e);let t,i=e;if(i.grid=this,i?.el?t=i.el:A.addRemoveCB?t=A.addRemoveCB(this.el,e,!0,!1):t=this.createWidgetDivs(i),!t)return;if(i=t.gridstackNode,i&&t.parentElement===this.el&&this.engine.nodes.find(s=>s._id===i._id))return t;const n=this._readAttr(t);return g.defaults(e,n),this.engine.prepareNode(e),this.el.appendChild(t),this.makeWidget(t,e),t}createWidgetDivs(e){const t=g.createDiv(["grid-stack-item",this.opts.itemClass]),i=g.createDiv(["grid-stack-item-content"],t);return g.lazyLoad(e)?e.visibleObservable||(e.visibleObservable=new IntersectionObserver(([n])=>{n.isIntersecting&&(e.visibleObservable?.disconnect(),delete e.visibleObservable,A.renderCB(i,e),e.grid?.prepareDragDrop(e.el))}),window.setTimeout(()=>e.visibleObservable?.observe(t))):A.renderCB(i,e),t}makeSubGrid(e,t,i,n=!0){let s=e.gridstackNode;if(s||(s=this.makeWidget(e).gridstackNode),s.subGrid?.el)return s.subGrid;let a,l=this;for(;l&&!a;)a=l.opts?.subGridOpts,l=l.parentGridNode?.grid;t=g.cloneDeep({...this.opts,id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0,...a||{},...t||s.subGridOpts||{}}),s.subGridOpts=t;let d;t.column==="auto"&&(d=!0,t.column=Math.max(s.w||1,i?.w||1),delete t.columnOpts);let c=s.el.querySelector(".grid-stack-item-content"),u,h;if(n&&(this._removeDD(s.el),h={...s,x:0,y:0},g.removeInternalForSave(h),delete h.subGridOpts,s.content&&(h.content=s.content,delete s.content),A.addRemoveCB?u=A.addRemoveCB(this.el,h,!0,!1):(u=g.createDiv(["grid-stack-item"]),u.appendChild(c),c=g.createDiv(["grid-stack-item-content"],s.el)),this.prepareDragDrop(s.el)),i){const _=d?t.column:s.w,w=s.h+i.h,v=s.el.style;v.transition="none",this.update(s.el,{w:_,h:w}),setTimeout(()=>v.transition=null)}const f=s.subGrid=A.addGrid(c,t);return i?._moving&&(f._isTemp=!0),d&&(f._autoColumn=!0),n&&f.makeWidget(u,h),i&&(i._moving?window.setTimeout(()=>g.simulateMouseEvent(i._event,"mouseenter",f.el),0):f.makeWidget(s.el,s)),this.resizeToContentCheck(!1,s),f}removeAsSubGrid(e){const t=this.parentGridNode?.grid;t&&(t.batchUpdate(),t.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(i=>{i.x+=this.parentGridNode.x,i.y+=this.parentGridNode.y,t.makeWidget(i.el,i)}),t.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,e&&window.setTimeout(()=>g.simulateMouseEvent(e._event,"mouseenter",t.el),0))}save(e=!0,t=!1,i=A.saveCB){const n=this.engine.save(e,i);if(n.forEach(s=>{if(e&&s.el&&!s.subGrid&&!i){const a=s.el.querySelector(".grid-stack-item-content");s.content=a?.innerHTML,s.content||delete s.content}else if(!e&&!i&&delete s.content,s.subGrid?.el){const a=s.subGrid.save(e,t,i);s.subGridOpts=t?a:{children:a},delete s.subGrid}delete s.el}),t){const s=g.cloneDeep(this.opts);s.marginBottom===s.marginTop&&s.marginRight===s.marginLeft&&s.marginTop===s.marginRight&&(s.margin=s.marginTop,delete s.marginTop,delete s.marginRight,delete s.marginBottom,delete s.marginLeft),s.rtl===(this.el.style.direction==="rtl")&&(s.rtl="auto"),this._isAutoCellHeight&&(s.cellHeight="auto"),this._autoColumn&&(s.column="auto");const a=s._alwaysShowResizeHandle;return delete s._alwaysShowResizeHandle,a!==void 0?s.alwaysShowResizeHandle=a:delete s.alwaysShowResizeHandle,g.removeInternalAndSame(s,ye),s.children=n,s}return n}load(e,t=A.addRemoveCB||!0){e=g.cloneDeep(e);const i=this.getColumn();e.forEach(c=>{c.w=c.w||1,c.h=c.h||1}),e=g.sort(e),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let n=0;e.forEach(c=>{n=Math.max(n,(c.x||0)+c.w)}),n>this.engine.defaultColumn&&(this.engine.defaultColumn=n),n>i&&this.engine.cacheLayout(e,n,!0);const s=A.addRemoveCB;typeof t=="function"&&(A.addRemoveCB=t);const a=[];this.batchUpdate();const l=!this.engine.nodes.length;l&&this.setAnimation(!1),!l&&t&&[...this.engine.nodes].forEach(u=>{if(!u.id)return;g.find(e,u.id)||(A.addRemoveCB&&A.addRemoveCB(this.el,u,!1,!1),a.push(u),this.removeWidget(u.el,!0,!1))}),this.engine._loading=!0;const d=[];return this.engine.nodes=this.engine.nodes.filter(c=>g.find(e,c.id)?(d.push(c),!1):!0),e.forEach(c=>{const u=g.find(d,c.id);if(u){if(g.shouldSizeToContent(u)&&(c.h=u.h),this.engine.nodeBoundFix(c),(c.autoPosition||c.x===void 0||c.y===void 0)&&(c.w=c.w||u.w,c.h=c.h||u.h,this.engine.findEmptyPosition(c)),this.engine.nodes.push(u),g.samePos(u,c)&&this.engine.nodes.length>1&&(this.moveNode(u,{...c,forceCollide:!0}),g.copyPos(c,u)),this.update(u.el,c),c.subGridOpts?.children){const h=u.el.querySelector(".grid-stack");h&&h.gridstack&&h.gridstack.load(c.subGridOpts.children)}}else t&&this.addWidget(c)}),delete this.engine._loading,this.engine.removedNodes=a,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,s?A.addRemoveCB=s:delete A.addRemoveCB,l&&this.opts?.animate&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(e=!0){return this.engine.batchUpdate(e),e||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(e=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!e||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;const t=this.el.querySelector("."+this.opts.itemClass);if(t){const n=g.toNumber(t.getAttribute("gs-h"))||1;return Math.round(t.offsetHeight/n)}const i=parseInt(this.el.getAttribute("gs-current-row"));return i?Math.round(this.el.getBoundingClientRect().height/i):this.opts.cellHeight}cellHeight(e,t=!0){if(t&&e!==void 0&&this._isAutoCellHeight!==(e==="auto")&&(this._isAutoCellHeight=e==="auto",this._updateResizeEvent()),(e==="initial"||e==="auto")&&(e=void 0),e===void 0){const n=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;e=this.cellWidth()+n}const i=g.parseHeight(e);return this.opts.cellHeightUnit===i.unit&&this.opts.cellHeight===i.h?this:(this.opts.cellHeightUnit=i.unit,this.opts.cellHeight=i.h,this.resizeToContentCheck(),t&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(e=!1){return e&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){const e=this.opts.columnOpts;if(!e||!e.columnWidth&&!e.breakpoints?.length)return!1;const t=this.getColumn();let i=t;const n=this._widthOrContainer(!0);if(e.columnWidth)i=Math.min(Math.round(n/e.columnWidth)||1,e.columnMax);else{i=e.columnMax;let s=0;for(;s<e.breakpoints.length&&n<=e.breakpoints[s].w;)i=e.breakpoints[s++].c||t}if(i!==t){const s=e.breakpoints?.find(a=>a.c===i);return this.column(i,s?.layout||e.layout),!0}return!1}compact(e="compact",t=!0){return this.engine.compact(e,t),this._triggerChangeEvent(),this}column(e,t="moveScale"){if(!e||e<1||this.opts.column===e)return this;const i=this.getColumn();return this.opts.column=e,this.engine?(this.engine.column=e,this.el.classList.remove("gs-"+i),this.el.classList.add("gs-"+e),this.engine.columnChanged(i,e,t),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(e=>e.matches("."+this.opts.itemClass)&&!e.matches("."+this.opts.placeholderClass))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(e=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),e?this.el.parentNode.removeChild(this.el):(this.removeAll(e),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),delete this.parentGridNode?.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(e){return this.opts.float!==e&&(this.opts.float=this.engine.float=e,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(e,t=!1){const i=this.el.getBoundingClientRect();let n;t?n={top:i.top+document.documentElement.scrollTop,left:i.left}:n={top:this.el.offsetTop,left:this.el.offsetLeft};const s=e.left-n.left,a=e.top-n.top,l=i.width/this.getColumn(),d=i.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(s/l),y:Math.floor(a/d)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(e,t,i,n){return this.engine.isAreaEmpty(e,t,i,n)}makeWidget(e,t){const i=A.getElement(e);if(!i)return;i.parentElement||this.el.appendChild(i),this._prepareElement(i,!0,t);const n=i.gridstackNode;this._updateContainerHeight(),n.subGridOpts&&this.makeSubGrid(i,n.subGridOpts,void 0,!1);let s;return this.opts.column===1&&!this._ignoreLayoutsNodeChange&&(s=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),s&&delete this._ignoreLayoutsNodeChange,i}on(e,t){return e.indexOf(" ")!==-1?(e.split(" ").forEach(n=>this.on(n,t)),this):(e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable"?(e==="enable"||e==="disable"?this._gsEventHandler[e]=n=>t(n):this._gsEventHandler[e]=n=>{n.detail&&t(n,n.detail)},this.el.addEventListener(e,this._gsEventHandler[e])):e==="drag"||e==="dragstart"||e==="dragstop"||e==="resizestart"||e==="resize"||e==="resizestop"||e==="dropped"||e==="resizecontent"?this._gsEventHandler[e]=t:console.error("GridStack.on("+e+") event not supported"),this)}off(e){return e.indexOf(" ")!==-1?(e.split(" ").forEach(i=>this.off(i)),this):((e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable")&&this._gsEventHandler[e]&&this.el.removeEventListener(e,this._gsEventHandler[e]),delete this._gsEventHandler[e],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(e=>this.off(e)),this}removeWidget(e,t=!0,i=!0){return e?(A.getElements(e).forEach(n=>{if(n.parentElement&&n.parentElement!==this.el)return;let s=n.gridstackNode;s||(s=this.engine.nodes.find(a=>n===a.el)),s&&(t&&A.addRemoveCB&&A.addRemoveCB(this.el,s,!1,!1),delete n.gridstackNode,this._removeDD(n),this.engine.removeNode(s,t,i),t&&n.parentElement&&n.remove())}),i&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error("Error: GridStack.removeWidget(undefined) called"),this)}removeAll(e=!0,t=!0){return this.engine.nodes.forEach(i=>{e&&A.addRemoveCB&&A.addRemoveCB(this.el,i,!1,!1),delete i.el.gridstackNode,this.opts.staticGrid||this._removeDD(i.el)}),this.engine.removeAll(e,t),t&&this._triggerRemoveEvent(),this}setAnimation(e=this.opts.animate,t){return t?setTimeout(()=>{this.opts&&this.setAnimation(e)}):e?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(e,t=!0,i=!0){return!!this.opts.staticGrid===e?this:(e?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&i&&n.subGrid.setStatic(e,t,i)}),t&&this._setStaticClass(),this)}updateOptions(e){const t=this.opts;return e.acceptWidgets!==void 0&&this._setupAcceptWidget(),e.animate!==void 0&&this.setAnimation(),e.cellHeight&&(this.cellHeight(e.cellHeight,!0),delete e.cellHeight),e.class&&e.class!==t.class&&(t.class&&this.el.classList.remove(t.class),this.el.classList.add(e.class)),typeof e.column=="number"&&!e.columnOpts&&(this.column(e.column),delete e.column),e.margin!==void 0&&this.margin(e.margin),e.staticGrid!==void 0&&this.setStatic(e.staticGrid),e.disableDrag!==void 0&&!e.staticGrid&&this.enableMove(!e.disableDrag),e.disableResize!==void 0&&!e.staticGrid&&this.enableResize(!e.disableResize),e.float!==void 0&&this.float(e.float),e.row!==void 0&&(t.minRow=t.maxRow=e.row),e.children?.length&&(this.load(e.children),delete e.children),this.opts={...this.opts,...e},this}update(e,t){return A.getElements(e).forEach(i=>{const n=i?.gridstackNode;if(!n)return;const s={...g.copyPos({},n),...g.cloneDeep(t)};this.engine.nodeBoundFix(s),delete s.autoPosition;const a=["x","y","w","h"];let l;if(a.some(u=>s[u]!==void 0&&s[u]!==n[u])&&(l={},a.forEach(u=>{l[u]=s[u]!==void 0?s[u]:n[u],delete s[u]})),!l&&(s.minW||s.minH||s.maxW||s.maxH)&&(l={}),s.content!==void 0){const u=i.querySelector(".grid-stack-item-content");u&&u.textContent!==s.content&&(n.content=s.content,A.renderCB(u,s),n.subGrid?.el&&(u.appendChild(n.subGrid.el),n.subGrid.opts.styleInHead||n.subGrid._updateStyles(!0))),delete s.content}let d=!1,c=!1;for(const u in s)u[0]!=="_"&&n[u]!==s[u]&&(n[u]=s[u],d=!0,c=c||!this.opts.staticGrid&&(u==="noResize"||u==="noMove"||u==="locked"));if(g.sanitizeMinMax(n),l){const u=l.w!==void 0&&l.w!==n.w;this.moveNode(n,l),u&&n.subGrid?n.subGrid.onResize(this.hasAnimationCSS()?n.w:void 0):this.resizeToContentCheck(u,n),delete n._orig}(l||d)&&this._writeAttr(i,n),c&&this.prepareDragDrop(n.el)}),this}moveNode(e,t){const i=e._updating;i||this.engine.cleanNodes().beginUpdate(e),this.engine.moveNode(e,t),this._updateContainerHeight(),i||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(e){if(!e||(e.classList.remove("size-to-content-max"),!e.clientHeight))return;const t=e.gridstackNode;if(!t)return;const i=t.grid;if(!i||e.parentElement!==i.el)return;const n=i.getCellHeight(!0);if(!n)return;let s=t.h?t.h*n:e.clientHeight,a;if(t.resizeToContentParent&&(a=e.querySelector(t.resizeToContentParent)),a||(a=e.querySelector(A.resizeToContentParent)),!a)return;const l=e.clientHeight-a.clientHeight,d=t.h?t.h*n-l:a.clientHeight;let c;if(t.subGrid){c=t.subGrid.getRow()*t.subGrid.getCellHeight(!0);const f=t.subGrid.el.getBoundingClientRect(),_=t.subGrid.el.parentElement.getBoundingClientRect();c+=f.top-_.top}else{if(t.subGridOpts?.children?.length)return;{const f=a.firstElementChild;if(!f){console.error(`Error: GridStack.resizeToContent() widget id:${t.id} '${A.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}c=f.getBoundingClientRect().height||d}}if(d===c)return;s+=c-d;let u=Math.ceil(s/n);const h=Number.isInteger(t.sizeToContent)?t.sizeToContent:0;h&&u>h&&(u=h,e.classList.add("size-to-content-max")),t.minH&&u<t.minH?u=t.minH:t.maxH&&u>t.maxH&&(u=t.maxH),u!==t.h&&(i._ignoreLayoutsNodeChange=!0,i.moveNode(t,{h:u}),delete i._ignoreLayoutsNodeChange)}resizeToContentCBCheck(e){A.resizeToContentCB?A.resizeToContentCB(e):this.resizeToContent(e)}rotate(e,t){return A.getElements(e).forEach(i=>{const n=i.gridstackNode;if(!g.canBeRotated(n))return;const s={w:n.h,h:n.w,minH:n.minW,minW:n.minH,maxH:n.maxW,maxW:n.maxH};if(t){const l=t.left>0?Math.floor(t.left/this.cellWidth()):0,d=t.top>0?Math.floor(t.top/this.opts.cellHeight):0;s.x=n.x+l-(n.h-(d+1)),s.y=n.y+d-l}Object.keys(s).forEach(l=>{s[l]===void 0&&delete s[l]});const a=n._orig;this.update(i,s),n._orig=a}),this}margin(e){if(!(typeof e=="string"&&e.split(" ").length>1)){const i=g.parseHeight(e);if(this.opts.marginUnit===i.unit&&this.opts.margin===i.h)return}return this.opts.margin=e,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(e){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");const t=arguments;let i=0,n={x:t[i++],y:t[i++],w:t[i++],h:t[i++],autoPosition:t[i++]};return this.willItFit(n)}return this.engine.willItFit(e)}_triggerChangeEvent(){if(this.engine.batchMode)return this;const e=this.engine.getDirtyNodes(!0);return e&&e.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(e),this._triggerEvent("change",e)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(t=>{delete t._dirty});const e=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",e)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){const e=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",e)}return this}_triggerEvent(e,t){const i=t?new CustomEvent(e,{bubbles:!1,detail:t}):new Event(e);return this.el.dispatchEvent(i),this}_removeStylesheet(){if(this._styles){const e=this.opts.styleInHead?void 0:this.el.parentNode;g.removeStylesheet(this._styleSheetClass,e),delete this._styles}return this}_updateStyles(e=!1,t){if(e&&this._removeStylesheet(),t===void 0&&(t=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;const i=this.opts.cellHeight,n=this.opts.cellHeightUnit,s=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){const a=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=g.createStylesheet(this._styleSheetClass,a,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,g.addCSSRule(this._styles,s,`height: ${i}${n}`);const l=this.opts.marginTop+this.opts.marginUnit,d=this.opts.marginBottom+this.opts.marginUnit,c=this.opts.marginRight+this.opts.marginUnit,u=this.opts.marginLeft+this.opts.marginUnit,h=`${s} > .grid-stack-item-content`,f=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;g.addCSSRule(this._styles,h,`top: ${l}; right: ${c}; bottom: ${d}; left: ${u};`),g.addCSSRule(this._styles,f,`top: ${l}; right: ${c}; bottom: ${d}; left: ${u};`),g.addCSSRule(this._styles,`${s} > .ui-resizable-n`,`top: ${l};`),g.addCSSRule(this._styles,`${s} > .ui-resizable-s`,`bottom: ${d}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-ne`,`right: ${c}; top: ${l}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-e`,`right: ${c}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-se`,`right: ${c}; bottom: ${d}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-nw`,`left: ${u}; top: ${l}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-w`,`left: ${u}`),g.addCSSRule(this._styles,`${s} > .ui-resizable-sw`,`left: ${u}; bottom: ${d}`)}if(t=t||this._styles._max,t>this._styles._max){const a=l=>i*l+n;for(let l=this._styles._max+1;l<=t;l++)g.addCSSRule(this._styles,`${s}[gs-y="${l}"]`,`top: ${a(l)}`),g.addCSSRule(this._styles,`${s}[gs-h="${l+1}"]`,`height: ${a(l+1)}`);this._styles._max=t}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;const e=this.parentGridNode;let t=this.getRow()+this._extraDragRow;const i=this.opts.cellHeight,n=this.opts.cellHeightUnit;if(!i)return this;if(!e){const s=g.parseHeight(getComputedStyle(this.el).minHeight);if(s.h>0&&s.unit===n){const a=Math.floor(s.h/i);t<a&&(t=a)}}return this.el.setAttribute("gs-current-row",String(t)),this.el.style.removeProperty("min-height"),this.el.style.removeProperty("height"),t&&(this.el.style[e?"minHeight":"height"]=t*i+n),e&&!e.grid.engine.batchMode&&g.shouldSizeToContent(e)&&e.grid.resizeToContentCBCheck(e.el),this}_prepareElement(e,t=!1,i){i=i||this._readAttr(e),e.gridstackNode=i,i.el=e,i.grid=this,i=this.engine.addNode(i,t),this._writeAttr(e,i),e.classList.add(ye.itemClass,this.opts.itemClass);const n=g.shouldSizeToContent(i);return n?e.classList.add("size-to-content"):e.classList.remove("size-to-content"),n&&this.resizeToContentCheck(!1,i),g.lazyLoad(i)||this.prepareDragDrop(i.el),this}_writePosAttr(e,t){return t.x!==void 0&&t.x!==null&&e.setAttribute("gs-x",String(t.x)),t.y!==void 0&&t.y!==null&&e.setAttribute("gs-y",String(t.y)),t.w>1?e.setAttribute("gs-w",String(t.w)):e.removeAttribute("gs-w"),t.h>1?e.setAttribute("gs-h",String(t.h)):e.removeAttribute("gs-h"),this}_writeAttr(e,t){if(!t)return this;this._writePosAttr(e,t);const i={noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id",sizeToContent:"gs-size-to-content"};for(const n in i)t[n]?e.setAttribute(i[n],String(t[n])):e.removeAttribute(i[n]);return this}_readAttr(e,t=!0){const i={};i.x=g.toNumber(e.getAttribute("gs-x")),i.y=g.toNumber(e.getAttribute("gs-y")),i.w=g.toNumber(e.getAttribute("gs-w")),i.h=g.toNumber(e.getAttribute("gs-h")),i.autoPosition=g.toBool(e.getAttribute("gs-auto-position")),i.noResize=g.toBool(e.getAttribute("gs-no-resize")),i.noMove=g.toBool(e.getAttribute("gs-no-move")),i.locked=g.toBool(e.getAttribute("gs-locked"));const n=e.getAttribute("gs-size-to-content");n&&(n==="true"||n==="false"?i.sizeToContent=g.toBool(n):i.sizeToContent=parseInt(n,10)),i.id=e.getAttribute("gs-id"),i.maxW=g.toNumber(e.getAttribute("gs-max-w")),i.minW=g.toNumber(e.getAttribute("gs-min-w")),i.maxH=g.toNumber(e.getAttribute("gs-max-h")),i.minH=g.toNumber(e.getAttribute("gs-min-h")),t&&(i.w===1&&e.removeAttribute("gs-w"),i.h===1&&e.removeAttribute("gs-h"),i.maxW&&e.removeAttribute("gs-max-w"),i.minW&&e.removeAttribute("gs-min-w"),i.maxH&&e.removeAttribute("gs-max-h"),i.minH&&e.removeAttribute("gs-min-h"));for(const s in i){if(!i.hasOwnProperty(s))return;!i[s]&&i[s]!==0&&s!=="gs-size-to-content"&&delete i[s]}return i}_setStaticClass(){const e=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...e),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...e),this.el.removeAttribute("gs-static")),this}onResize(e=this.el?.clientWidth){if(!e||this.prevWidth===e)return;this.prevWidth=e,this.batchUpdate();let t=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||"list"),t=!0):t=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(i=>{i.subGrid&&i.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(t),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(e=!1,t=void 0){if(this.engine){if(e&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,t),this.animationDelay);if(t)g.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el);else if(this.engine.nodes.some(i=>g.shouldSizeToContent(i))){const i=[...this.engine.nodes];this.batchUpdate(),i.forEach(n=>{g.shouldSizeToContent(n)&&this.resizeToContentCBCheck(n.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,t?[t]:this.engine.nodes)}}_updateResizeEvent(e=!1){const t=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(i=>i.sizeToContent));return!e&&t&&!this.resizeObserver?(this._sizeThrottle=g.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(e||!t)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(e=".grid-stack-item"){return g.getElement(e)}static getElements(e=".grid-stack-item"){return g.getElements(e)}static getGridElement(e){return A.getElement(e)}static getGridElements(e){return g.getElements(e)}_initMargin(){let e,t=0,i=[];return typeof this.opts.margin=="string"&&(i=this.opts.margin.split(" ")),i.length===2?(this.opts.marginTop=this.opts.marginBottom=i[0],this.opts.marginLeft=this.opts.marginRight=i[1]):i.length===4?(this.opts.marginTop=i[0],this.opts.marginRight=i[1],this.opts.marginBottom=i[2],this.opts.marginLeft=i[3]):(e=g.parseHeight(this.opts.margin),this.opts.marginUnit=e.unit,t=this.opts.margin=e.h),this.opts.marginTop===void 0?this.opts.marginTop=t:(e=g.parseHeight(this.opts.marginTop),this.opts.marginTop=e.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=t:(e=g.parseHeight(this.opts.marginBottom),this.opts.marginBottom=e.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=t:(e=g.parseHeight(this.opts.marginRight),this.opts.marginRight=e.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=t:(e=g.parseHeight(this.opts.marginLeft),this.opts.marginLeft=e.h,delete this.opts.margin),this.opts.marginUnit=e.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return he}static setupDragIn(e,t,i,n=document){t?.pause!==void 0&&(I.pauseDrag=t.pause),t={appendTo:"body",helper:"clone",...t||{}},(typeof e=="string"?g.getElements(e,n):e).forEach((a,l)=>{he.isDraggable(a)||he.dragIn(a,t),i?.[l]&&(a.gridstackNode=i[l])})}movable(e,t){return this.opts.staticGrid?this:(A.getElements(e).forEach(i=>{const n=i.gridstackNode;n&&(t?delete n.noMove:n.noMove=!0,this.prepareDragDrop(n.el))}),this)}resizable(e,t){return this.opts.staticGrid?this:(A.getElements(e).forEach(i=>{const n=i.gridstackNode;n&&(t?delete n.noResize:n.noResize=!0,this.prepareDragDrop(n.el))}),this)}disable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!1,e),this.enableResize(!1,e),this._triggerEvent("disable"),this}enable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!0,e),this.enableResize(!0,e),this._triggerEvent("enable"),this}enableMove(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableMove(e,t)}),this)}enableResize(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableResize(e,t)}),this)}cancelDrag(){const e=this._placeholder?.gridstackNode;e&&(e._isExternal?(e._isAboutToRemove=!0,this.engine.removeNode(e)):e._isAboutToRemove&&A._itemRemoving(e.el,!1),this.engine.restoreInitial())}_removeDD(e){return he.draggable(e,"destroy").resizable(e,"destroy"),e.gridstackNode&&delete e.gridstackNode._initDD,delete e.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return he.droppable(this.el,"destroy"),this;let e,t;const i=(n,s,a)=>{a=a||s;const l=a.gridstackNode;if(!l)return;if(!l.grid?.el){a.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;const f=a.getBoundingClientRect();a.style.left=f.x+(this.dragTransform.xScale-1)*(n.clientX-f.x)/this.dragTransform.xScale+"px",a.style.top=f.y+(this.dragTransform.yScale-1)*(n.clientY-f.y)/this.dragTransform.yScale+"px",a.style.transformOrigin="0px 0px"}let{top:d,left:c}=a.getBoundingClientRect();const u=this.el.getBoundingClientRect();c-=u.left,d-=u.top;const h={position:{top:d*this.dragTransform.xScale,left:c*this.dragTransform.yScale}};if(l._temporaryRemoved){if(l.x=Math.max(0,Math.round(c/t)),l.y=Math.max(0,Math.round(d/e)),delete l.autoPosition,this.engine.nodeBoundFix(l),!this.engine.willItFit(l)){if(l.autoPosition=!0,!this.engine.willItFit(l)){he.off(s,"drag");return}l._willFitPos&&(g.copyPos(l,l._willFitPos),delete l._willFitPos)}this._onStartMoving(a,n,h,l,t,e)}else this._dragOrResize(a,n,h,l,t,e)};return he.droppable(this.el,{accept:n=>{const s=n.gridstackNode||this._readAttr(n,!1);if(s?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let a=!0;if(typeof this.opts.acceptWidgets=="function")a=this.opts.acceptWidgets(n);else{const l=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;a=n.matches(l)}if(a&&s&&this.opts.maxRow){const l={w:s.w,h:s.h,minW:s.minW,minH:s.minH};a=this.engine.willItFit(l)}return a}}).on(this.el,"dropover",(n,s,a)=>{let l=a?.gridstackNode||s.gridstackNode;if(l?.grid===this&&!l._temporaryRemoved)return!1;if(l?._sidebarOrig&&(l.w=l._sidebarOrig.w,l.h=l._sidebarOrig.h),l?.grid&&l.grid!==this&&!l._temporaryRemoved&&l.grid._leave(s,a),a=a||s,t=this.cellWidth(),e=this.getCellHeight(!0),!l){const u=a.getAttribute("data-gs-widget")||a.getAttribute("gridstacknode");if(u){try{l=JSON.parse(u)}catch{console.error("Gridstack dropover: Bad JSON format: ",u)}a.removeAttribute("data-gs-widget"),a.removeAttribute("gridstacknode")}l||(l=this._readAttr(a)),l._sidebarOrig={w:l.w,h:l.h}}l.grid||(l.el||(l={...l}),l._isExternal=!0,a.gridstackNode=l);const d=l.w||Math.round(a.offsetWidth/t)||1,c=l.h||Math.round(a.offsetHeight/e)||1;return l.grid&&l.grid!==this?(s._gridstackNodeOrig||(s._gridstackNodeOrig=l),s.gridstackNode=l={...l,w:d,h:c,grid:this},delete l.x,delete l.y,this.engine.cleanupNode(l).nodeBoundFix(l),l._initDD=l._isExternal=l._temporaryRemoved=!0):(l.w=d,l.h=c,l._temporaryRemoved=!0),A._itemRemoving(l.el,!1),he.on(s,"drag",i),i(n,s,a),!1}).on(this.el,"dropout",(n,s,a)=>{const l=a?.gridstackNode||s.gridstackNode;return l&&(!l.grid||l.grid===this)&&(this._leave(s,a),this._isTemp&&this.removeAsSubGrid(l)),!1}).on(this.el,"drop",(n,s,a)=>{const l=a?.gridstackNode||s.gridstackNode;if(l?.grid===this&&!l._isExternal)return!1;const d=!!this.placeholder.parentElement,c=s!==a;this.placeholder.remove(),delete this.placeholder.gridstackNode;const u=d&&this.opts.animate;u&&this.setAnimation(!1);const h=s._gridstackNodeOrig;if(delete s._gridstackNodeOrig,d&&h?.grid&&h.grid!==this){const _=h.grid;_.engine.removeNodeFromLayoutCache(h),_.engine.removedNodes.push(h),_._triggerRemoveEvent()._triggerChangeEvent(),_.parentGridNode&&!_.engine.nodes.length&&_.opts.subGridDynamic&&_.removeAsSubGrid()}if(!l||(d&&(this.engine.cleanupNode(l),l.grid=this),delete l.grid?._isTemp,he.off(s,"drag"),a!==s?(a.remove(),s=a):s.remove(),this._removeDD(s),!d))return!1;const f=l.subGrid?.el?.gridstack;return g.copyPos(l,this._readAttr(this.placeholder)),g.removePositioningStyles(s),c&&(l.content||l.subGridOpts||A.addRemoveCB)?(delete l.el,s=this.addWidget(l)):(this._prepareElement(s,!0,l),this.el.appendChild(s),this.resizeToContentCheck(!1,l),f&&(f.parentGridNode=l,f.opts.styleInHead||f._updateStyles(!0)),this._updateContainerHeight()),this.engine.addedNodes.push(l),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped({...n,type:"dropped"},h&&h.grid?h:void 0,l),u&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(e,t){if(!e)return;const i=e?e.gridstackNode:void 0;!i?.grid||e.classList.contains(i.grid.opts.removableOptions.decline)||(t?i._isAboutToRemove=!0:delete i._isAboutToRemove,t?e.classList.add("grid-stack-item-removing"):e.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;const e=document.querySelector(this.opts.removable);return e?(!this.opts.staticGrid&&!he.isDroppable(e)&&he.droppable(e,this.opts.removableOptions).on(e,"dropover",(t,i)=>A._itemRemoving(i,!0)).on(e,"dropout",(t,i)=>A._itemRemoving(i,!1)),this):this}prepareDragDrop(e,t=!1){const i=e?.gridstackNode;if(!i)return;const n=i.noMove||this.opts.disableDrag,s=i.noResize||this.opts.disableResize,a=this.opts.staticGrid||n&&s;if((t||a)&&(i._initDD&&(this._removeDD(e),delete i._initDD),a&&e.classList.add("ui-draggable-disabled","ui-resizable-disabled"),!t))return this;if(!i._initDD){let l,d;const c=(f,_)=>{this._gsEventHandler[f.type]&&this._gsEventHandler[f.type](f,f.target),l=this.cellWidth(),d=this.getCellHeight(!0),this._onStartMoving(e,f,_,i,l,d)},u=(f,_)=>{this._dragOrResize(e,f,_,i,l,d)},h=f=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete i._moving,delete i._event,delete i._lastTried;const _=i.w!==i._orig.w,w=f.target;if(!(!w.gridstackNode||w.gridstackNode.grid!==this)){if(i.el=w,i._isAboutToRemove){const v=e.gridstackNode.grid;v._gsEventHandler[f.type]&&v._gsEventHandler[f.type](f,w),v.engine.nodes.push(i),v.removeWidget(e,!0,!0)}else g.removePositioningStyles(w),i._temporaryRemoved?(g.copyPos(i,i._orig),this._writePosAttr(w,i),this.engine.addNode(i)):this._writePosAttr(w,i),this._gsEventHandler[f.type]&&this._gsEventHandler[f.type](f,w);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),f.type==="resizestop"&&(Number.isInteger(i.sizeToContent)&&(i.sizeToContent=i.h),this.resizeToContentCheck(_,i))}};he.draggable(e,{start:c,stop:h,drag:u}).resizable(e,{start:c,stop:h,resize:u}),i._initDD=!0}return he.draggable(e,n?"disable":"enable").resizable(e,s?"disable":"enable"),this}_onStartMoving(e,t,i,n,s,a){if(this.engine.cleanNodes().beginUpdate(n),this._writePosAttr(this.placeholder,n),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=n,n.grid?.el)this.dragTransform=g.getValuesFromTransformedElement(e);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){const l=this.placeholder.closest(".grid-stack");this.dragTransform=g.getValuesFromTransformedElement(l)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(n.el=this.placeholder,n._lastUiPosition=i.position,n._prevYPix=i.position.top,n._moving=t.type==="dragstart",delete n._lastTried,t.type==="dropover"&&n._temporaryRemoved&&(this.engine.addNode(n),n._moving=!0),this.engine.cacheRects(s,a,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),t.type==="resizestart"){const l=this.getColumn()-n.x,d=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-n.y;he.resizable(e,"option","minWidth",s*Math.min(n.minW||1,l)).resizable(e,"option","minHeight",a*Math.min(n.minH||1,d)).resizable(e,"option","maxWidth",s*Math.min(n.maxW||Number.MAX_SAFE_INTEGER,l)).resizable(e,"option","maxWidthMoveLeft",s*Math.min(n.maxW||Number.MAX_SAFE_INTEGER,n.x+n.w)).resizable(e,"option","maxHeight",a*Math.min(n.maxH||Number.MAX_SAFE_INTEGER,d)).resizable(e,"option","maxHeightMoveUp",a*Math.min(n.maxH||Number.MAX_SAFE_INTEGER,n.y+n.h))}}_dragOrResize(e,t,i,n,s,a){const l={...n._orig};let d,c=this.opts.marginLeft,u=this.opts.marginRight,h=this.opts.marginTop,f=this.opts.marginBottom;const _=Math.round(a*.1),w=Math.round(s*.1);if(c=Math.min(c,w),u=Math.min(u,w),h=Math.min(h,_),f=Math.min(f,_),t.type==="drag"){if(n._temporaryRemoved)return;const b=i.position.top-n._prevYPix;n._prevYPix=i.position.top,this.opts.draggable.scroll!==!1&&g.updateScrollPosition(e,i.position,b);const M=i.position.left+(i.position.left>n._lastUiPosition.left?-u:c),S=i.position.top+(i.position.top>n._lastUiPosition.top?-f:h);l.x=Math.round(M/s),l.y=Math.round(S/a);const k=this._extraDragRow;if(this.engine.collide(n,l)){const W=this.getRow();let N=Math.max(0,l.y+n.h-W);this.opts.maxRow&&W+N>this.opts.maxRow&&(N=Math.max(0,this.opts.maxRow-W)),this._extraDragRow=N}else this._extraDragRow=0;if(this._extraDragRow!==k&&this._updateContainerHeight(),n.x===l.x&&n.y===l.y)return}else if(t.type==="resize"){if(l.x<0||(g.updateScrollResize(t,e,a),l.w=Math.round((i.size.width-c)/s),l.h=Math.round((i.size.height-h)/a),n.w===l.w&&n.h===l.h)||n._lastTried&&n._lastTried.w===l.w&&n._lastTried.h===l.h)return;const b=i.position.left+c,M=i.position.top+h;l.x=Math.round(b/s),l.y=Math.round(M/a),d=!0}n._event=t,n._lastTried=l;const v={x:i.position.left+c,y:i.position.top+h,w:(i.size?i.size.width:n.w*s)-c-u,h:(i.size?i.size.height:n.h*a)-h-f};if(this.engine.moveNodeCheck(n,{...l,cellWidth:s,cellHeight:a,rect:v,resizing:d})){n._lastUiPosition=i.position,this.engine.cacheRects(s,a,h,u,f,c),delete n._skipDown,d&&n.subGrid&&n.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();const b=t.target;n._sidebarOrig||this._writePosAttr(b,n),this._gsEventHandler[t.type]&&this._gsEventHandler[t.type](t,b)}}_leave(e,t){t=t||e;const i=t.gridstackNode;if(!i||(t.style.transform=t.style.transformOrigin=null,he.off(e,"drag"),i._temporaryRemoved))return;i._temporaryRemoved=!0,this.engine.removeNode(i),i.el=i._isExternal&&t?t:e;const n=i._sidebarOrig;i._isExternal&&this.engine.cleanupNode(i),i._sidebarOrig=n,this.opts.removable===!0&&A._itemRemoving(e,!0),e._gridstackNodeOrig?(e.gridstackNode=e._gridstackNodeOrig,delete e._gridstackNodeOrig):i._isExternal&&this.engine.restoreInitial()}commit(){return xs(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}}A.renderCB=(r,e)=>{r&&e?.content&&(r.textContent=e.content)},A.resizeToContentParent=".grid-stack-item-content",A.Utils=g,A.Engine=Re,A.GDRev="11.5.1";const Ts=["data-id","data-testid","gs-h","gs-w","gs-x","gs-y"],Ss={class:"grid-stack-item-content"},Ds=Ae(o.defineComponent({__name:"DraggableGridLayout",props:{tiles:{},tileHeight:{default:$e},columns:{default:it}},emits:["update-tiles"],setup(r,{expose:e,emit:t}){const i=r,n=t,s=o.ref(null),a=o.ref(new Map(i.tiles.map(_=>[`${_.id}`,_])));let l=null;const d=_=>`[data-id="${_}"]`,c=_=>_.map(w=>{const v=a.value.get(`${w.el?.getAttribute("data-id")}`);if(v)return{...v,layout:{position:{col:Number(w.x),row:Number(w.y)},size:{cols:Number(w.w),rows:Number(w.h)}}}}).filter(w=>w!==void 0),u=(_,w)=>{l&&(c(w).forEach(b=>{a.value.set(`${b.id}`,b)}),n("update-tiles",Array.from(a.value.values())))},h=(_,w)=>{w.forEach(v=>{a.value.delete(`${v.el?.getAttribute("data-id")}`)}),n("update-tiles",Array.from(a.value.values()))};o.onMounted(()=>{s.value&&(l=A.init({margin:10,column:i.columns,cellHeight:i.tileHeight,resizable:{handles:"se, sw"},handle:".tile-header"},s.value),l.on("change",u),l.on("added",u),l.on("removed",h))}),o.onUnmounted(()=>{l&&l.destroy(!1)});const f=_=>{if(l&&s.value){const w=s.value.querySelector(d(_));w&&l.removeWidget(w)}};return o.watch(()=>i.tiles.length,async(_,w)=>{if(_>w&&l){const v=i.tiles.slice(w);for(const b of v)a.value.set(`${b.id}`,b),await o.nextTick(),l.makeWidget(d(b.id),{autoPosition:!0,w:b.layout.size.cols,h:b.layout.size.rows})}}),o.watchEffect(()=>{i.tiles.forEach(_=>{a.value.set(`${_.id}`,_)})}),e({removeWidget:f}),(_,w)=>(o.openBlock(),o.createElementBlock("div",{ref_key:"gridContainer",ref:s,class:"grid-stack"},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tiles,v=>(o.openBlock(),o.createElementBlock("div",{key:v.id,class:"grid-stack-item","data-id":`${v.id}`,"data-testid":`grid-stack-item-${v.id}`,"gs-h":v.layout.size.rows,"gs-lazy-load":!0,"gs-w":v.layout.size.cols,"gs-x":v.layout.position.col,"gs-y":v.layout.position.row},[o.createElementVNode("div",Ss,[o.renderSlot(_.$slots,"tile",{tile:v},void 0,!0)])],8,Ts))),128))],512))}}),[["__scopeId","data-v-1fdec94c"]]),Os=r=>{const e={position:{col:0,row:0},size:r.layout.size};if(r.type==="slottable")return{id:crypto.randomUUID(),type:"slottable",layout:e};const t=r.meta,i={...t,chart:{...t.chart}};return"chart_title"in i.chart&&(i.chart.chart_title=i.chart.chart_title?`Copy of ${i.chart.chart_title}`:""),{id:crypto.randomUUID(),type:"chart",definition:i,layout:e}},Ns={key:0,class:"fullscreen-header"},zs={key:0,class:"tile-container slottable-tile"},Ms=Ae(o.defineComponent({__name:"DashboardRenderer",props:o.mergeModels({context:{},preview:{type:Boolean,default:!1}},{modelValue:{required:!0},modelModifiers:{}}),emits:o.mergeModels(["edit-tile","tile-time-range-zoom","tiles-loaded"],["update:modelValue"]),setup(r,{expose:e,emit:t}){o.useCssVars(R=>({v130e88d4:u.value}));const i=t,n=o.useModel(r,"modelValue"),{i18n:s}=me.useI18n(),a=o.ref(0),l=o.ref(null),d=o.ref(),c=o.ref(),u=o.ref("scale(1)"),h=new Set,f=o.inject(ke);f||(console.warn("Analytics dashboards require a query bridge supplied via provide / inject."),console.warn("Please ensure your application has a query bridge provided under the key 'analytics-query-provider', as described in"),console.warn("https://github.com/Kong/public-ui-components/blob/main/packages/analytics/dashboard-renderer/README.md#requirements")),me.useRequestQueue();const{exportPdf:_,exportState:w}=me.useExportPdf(c),v=R=>{h.add(R.id);const C=S.value.filter(q=>!W(q)).length;h.size>=C&&i("tiles-loaded",!0)},b=o.computed(()=>{const{timeSpec:R}=se.value,q=`renderer.trendRange.${R.type==="absolute"?"custom":R.time_range}`;return s.te(q)?s.t(q):""}),M=(R,C)=>{const q=R.layout.position.row-C.layout.position.row;return q!==0?q:R.layout.position.col-C.layout.position.col},S=o.computed(()=>n.value.tiles.map(R=>{if(se.value.editable&&!R.id&&console.warn("No id provided for tile. One will be generated automatically,","however tracking changes to this tile may not work as expected.",R),R.type==="slottable")return{layout:R.layout,type:R.type,id:R.id??crypto.randomUUID()};let C=R.definition;const q=R.type??"chart",T=qr(C,b.value);return T!==C.header_description&&(C={...C,header_description:T}),{layout:R.layout,meta:C,type:q,id:R.id??crypto.randomUUID()}})),k=R=>{i("edit-tile",R)},W=R=>R.type==="slottable"?!0:R.meta?.chart.type==="slottable",N=R=>R.type==="slottable",Z=R=>{if(R.type==="slottable")return R.id;const C=R.meta?.chart;return C&&N(C)?C.id:void 0},G=R=>{try{const C=Os(R);n.value.tiles.push(JSON.parse(JSON.stringify(C)))}catch(C){console.warn(C)}},p=R=>{l.value&&l.value.removeWidget(R.id),h.delete(R.id)},m=()=>{h.clear(),a.value++},y=R=>{const C=R.map(q=>q.type==="slottable"?{id:q.id,type:q.type,layout:q.layout}:{id:q.id,type:q.type,layout:q.layout,definition:q.meta});n.value.tiles=C.sort(M)},E=async()=>{if(u.value="scale(1)",await o.nextTick(),c.value){const{availWidth:R,availHeight:C}=window.screen,{width:q,height:T}=c.value.getBoundingClientRect(),z=Math.min(C/T,R/q);u.value=`scale(${z})`}},x=()=>{d.value&&(document.fullscreenElement?document.exitFullscreen():d.value.requestFullscreen())},L=o.ref(!1),ee=()=>{L.value=document.fullscreenElement!==null,L.value&&E()},ce=o.computed(()=>n.value.preset_filters??[]),{internalContext:se,queryReady:j}=me.useDashboardInternalContext({globalFilters:ce,context:o.computed(()=>r.context),isFullscreen:L,preview:o.computed(()=>r.preview)});return e({refresh:m,toggleFullscreen:x,exportPdf:_,pdfExportState:w}),(R,C)=>{const q=o.resolveComponent("KAlert");return o.openBlock(),o.createElementBlock("div",{ref_key:"dashboardContainer",ref:d,class:o.normalizeClass(["kong-ui-public-dashboard-renderer",{"is-fullscreen":L.value}]),onFullscreenchange:ee},[o.createElementVNode("div",{ref_key:"layoutContainer",ref:c,class:"layout"},[o.unref(f)&&L.value?(o.openBlock(),o.createElementBlock("div",Ns,[o.renderSlot(R.$slots,"fullscreenHeader",{},void 0,!0)])):o.createCommentVNode("",!0),o.unref(f)?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(o.unref(se).editable&&!L.value?Ds:Di),{key:2,ref_key:"gridLayoutRef",ref:l,columns:n.value.columns,"tile-height":n.value.tile_height,tiles:S.value,onUpdateTiles:y},{tile:o.withCtx(({tile:T})=>[W(T)?(o.openBlock(),o.createElementBlock("div",zs,[o.renderSlot(R.$slots,Z(T),{},void 0,!0)])):(o.openBlock(),o.createBlock(Si,{key:L.value?`${T.id}-tile`:`${T.id}-tile-fullscreen`,"refresh-counter":a.value,"onUpdate:refreshCounter":C[0]||(C[0]=z=>a.value=z),class:"tile-container",context:o.unref(se),definition:T.meta,height:T.layout.size.rows*(n.value.tile_height||o.unref($e))+parseInt(o.unref(ii),10),"hide-actions":!o.unref(se).showTileActions,"hide-zoom-actions":!o.unref(se).showTileZoomActions,"is-fullscreen":L.value,"query-ready":o.unref(j),"tile-id":T.id,"tile-type":T.type,onDuplicateTile:z=>G(T),onEditTile:z=>k(T),onRemoveTile:z=>p(T),onTileLoaded:z=>v(T),onTileTimeRangeZoom:C[1]||(C[1]=z=>i("tile-time-range-zoom",z))},null,8,["refresh-counter","context","definition","height","hide-actions","hide-zoom-actions","is-fullscreen","query-ready","tile-id","tile-type","onDuplicateTile","onEditTile","onRemoveTile","onTileLoaded"]))]),_:3},40,["columns","tile-height","tiles"])):(o.openBlock(),o.createBlock(q,{key:1,appearance:"danger"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(o.unref(s).t("renderer.noQueryBridge")),1)]),_:1}))],512)],34)}}}),[["__scopeId","data-v-4633b828"]]),Ls=o.defineComponent({__name:"DashboardTilePreview",props:{context:{},definition:{},globalFilters:{default:()=>[]},preview:{type:Boolean,default:!1}},emits:["chart-data","tile-time-range-zoom","tile-bounds-change"],setup(r,{expose:e,emit:t}){const i=o.useTemplateRef("root"),n=o.useTemplateRef("dashboard-tile"),s=crypto.randomUUID(),a=t,l=k=>{a("tile-time-range-zoom",k)},d=k=>{a("chart-data",k)},c=k=>{a("tile-bounds-change",k)},{i18n:u}=me.useI18n(),{internalContext:h,queryReady:f}=me.useDashboardInternalContext({globalFilters:o.toRef(()=>r.globalFilters),context:o.toRef(()=>r.context),preview:o.computed(()=>r.preview)}),_=o.computed(()=>we(r.definition)),w=o.computed(()=>_.value?"columns"in r.definition.query&&!r.definition.query.columns?.length:!("metrics"in r.definition.query)||!r.definition.query.metrics||r.definition.query.metrics.length===0),v=o.ref($e);let b;o.onMounted(()=>{const k=i.value?.parentElement;k&&(v.value=k.getBoundingClientRect().height,b=new ResizeObserver(([W])=>{const{height:N}=W.contentRect;v.value=N}),b.observe(k))}),o.onUnmounted(()=>b?.disconnect());const M=o.ref(0);return e({refresh:()=>{M.value++},getExportData:()=>n.value?.getExportData()}),(k,W)=>{const N=o.resolveComponent("KEmptyState");return o.openBlock(),o.createElementBlock("div",{ref_key:"root",ref:i,"data-testid":"dashboard-tile-preview-root"},[w.value?(o.openBlock(),o.createBlock(N,{key:0,"action-button-visible":!1,"data-testid":"chart-not-configured-empty-state"},{title:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(o.unref(u).t("renderer.not_configured.title")),1)]),default:o.withCtx(()=>[o.createElementVNode("p",null,o.toDisplayString(o.unref(u).t("renderer.not_configured.description")),1)]),_:1})):(o.openBlock(),o.createBlock(Si,{key:1,ref:"dashboard-tile","refresh-counter":M.value,"onUpdate:refreshCounter":W[0]||(W[0]=Z=>M.value=Z),context:{...o.unref(h),editable:!1},definition:r.definition,height:v.value,"hide-actions":"","query-ready":o.unref(f),"show-refresh":"","tile-id":o.unref(s),onChartData:d,onTileBoundsChange:c,onTileTimeRangeZoom:l},null,8,["refresh-counter","context","definition","height","query-ready","tile-id"]))],512)}}}),As=r=>{if(r.type!=="chart")return r;const e=r.definition?.query;if(!e)return r;if(e.datasource==="api_usage"){console.warn("[@kong-ui-public/dashboard-renderer] A tile was filtered out for the Basic Tier",r);return}return r},Is=r=>{if(r.type!=="chart"||we(r.definition))return r;const e=r.definition?.query;if(!e)return r;const t={...e,datasource:e.datasource==="basic"?"api_usage":e.datasource};return{...r,definition:{...r.definition,query:t}}},Ps=(r,e=it)=>{if(!r.length)return[];let t=0,i=0,n=0;const s=[];for(const a of r){const l=a.layout?.size?.cols??1,d=a.layout?.size?.rows??1;i+l>e&&(t+=n,i=0,n=0);const c={...a,layout:{...a.layout,position:{...a.layout?.position??{},col:i,row:t}}};s.push(c),i+=l,n=Math.max(n,d)}return s},qs=(r,e)=>{if(e){const n=r.tiles.map(Is);return{...r,tiles:n}}const t=r.tiles.map(As).filter(n=>n!==void 0),i=Ps(t,r.columns);return{...r,tiles:i}},Hs=Object.freeze(Object.defineProperty({__proto__:null,default:o.defineComponent({__name:"GeoMapRenderer",props:{query:{},context:{},queryReady:{type:Boolean},chartOptions:{},height:{},refreshCounter:{},headerDescription:{},requestsLink:{},exploreLink:{}},emits:["bounds-change"],setup(r,{emit:e}){const t=r,i=o.ref(void 0),n=o.computed(()=>i.value?Tt.exploreResultToCountryMetrics(i.value):{}),s=o.computed(()=>i.value?i.value?.meta.metric_names&&i.value.meta.metric_names[0]:""),a=o.computed(()=>t.query.limit!==void 0&&t.query.limit>0?t.query.limit:oe.COUNTRIES.length),l=o.computed(()=>{if(!t.query.filters?.find(({field:_,operator:w})=>_==="country_code"&&(w==="not_empty"||w==="empty"||w==="in"))){const _={field:"country_code",operator:"not_empty"};return{...t.query,filters:[...t.query.filters||[],_]}}return t.query}),d=o.computed(()=>{if(!i.value)return"";const f=i?.value?.meta.metric_units,_=i?.value?.meta?.metric_names;return f&&_&&f[_[0]]}),c=f=>{i.value=f},u=e,h=f=>{u("bounds-change",f)};return(f,_)=>(o.openBlock(),o.createBlock(nt,{context:r.context,"limit-override":a.value,query:l.value,"query-ready":r.queryReady,"refresh-counter":r.refreshCounter,onChartData:c},{default:o.withCtx(()=>[o.createVNode(o.unref(Tt.AnalyticsGeoMap),{bounds:r.chartOptions.bounds,"country-metrics":n.value,"fit-to-country":r.chartOptions.fit_to_country,metric:s.value,"metric-unit":d.value,"with-legend":r.chartOptions.legend||!1,onBoundsChange:h},null,8,["bounds","country-metrics","fit-to-country","metric","metric-unit","with-legend"])]),_:1},8,["context","limit-override","query","query-ready","refresh-counter"]))}})},Symbol.toStringTag,{value:"Module"}));Y.CP_ID_TOKEN=oi,Y.CsvExportModal=bi,Y.DASHBOARD_COLS=it,Y.DEFAULT_TILE_HEIGHT=$e,Y.DEFAULT_TILE_REFRESH_INTERVAL_MS=li,Y.DashboardRenderer=Ms,Y.DashboardTilePreview=Ls,Y.ENTITY_ID_TOKEN=wt,Y.FULLSCREEN_LONG_REFRESH_INTERVAL_MS=ui,Y.FULLSCREEN_SHORT_REFRESH_INTERVAL_MS=ci,Y.GridLayout=Di,Y.INJECT_QUERY_PROVIDER=ke,Y.TIMEFRAME_TOKEN=ai,Y.configureAllowedDefinition=qs,Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"})}));
|