@perses-dev/tracing-gantt-chart-plugin 0.12.0-rc.1 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/__mf/js/{TracingGanttChart.97979d6e.js → TracingGanttChart.f5573ac3.js} +3 -3
  2. package/__mf/js/async/12.c9423551.js +7 -0
  3. package/__mf/js/async/{157.8aecbc6c.js → 157.77f5f5a1.js} +2 -2
  4. package/__mf/js/async/392.c563796d.js +2 -0
  5. package/__mf/js/async/634.b68acb18.js +24 -0
  6. package/__mf/js/async/{__federation_expose_TracingGanttChart.06661c1c.js → __federation_expose_TracingGanttChart.3ea317ee.js} +1 -1
  7. package/__mf/js/{main.66590a3b.js → main.237de7d0.js} +3 -3
  8. package/lib/PanelActions.d.ts +2 -1
  9. package/lib/PanelActions.d.ts.map +1 -1
  10. package/lib/PanelActions.js.map +1 -1
  11. package/lib/TracingGanttChart/DetailPane/Attributes.d.ts +1 -1
  12. package/lib/TracingGanttChart/DetailPane/Attributes.d.ts.map +1 -1
  13. package/lib/TracingGanttChart/DetailPane/Attributes.js.map +1 -1
  14. package/lib/TracingGanttChart/DetailPane/SpanEvents.js.map +1 -1
  15. package/lib/TracingGanttChart/GanttTable/SpanLinksButton.d.ts +2 -1
  16. package/lib/TracingGanttChart/GanttTable/SpanLinksButton.d.ts.map +1 -1
  17. package/lib/TracingGanttChart/GanttTable/SpanLinksButton.js +1 -1
  18. package/lib/TracingGanttChart/GanttTable/SpanLinksButton.js.map +1 -1
  19. package/lib/cjs/TracingGanttChart/GanttTable/SpanLinksButton.js +1 -1
  20. package/mf-manifest.json +13 -13
  21. package/mf-stats.json +13 -13
  22. package/package.json +4 -4
  23. package/__mf/js/async/392.6a9270a8.js +0 -2
  24. package/__mf/js/async/648.b65797fa.js +0 -22
  25. package/__mf/js/async/716.210298fd.js +0 -7
  26. /package/__mf/js/async/{716.210298fd.js.LICENSE.txt → 12.c9423551.js.LICENSE.txt} +0 -0
  27. /package/__mf/js/async/{157.8aecbc6c.js.LICENSE.txt → 157.77f5f5a1.js.LICENSE.txt} +0 -0
  28. /package/__mf/js/async/{392.6a9270a8.js.LICENSE.txt → 392.c563796d.js.LICENSE.txt} +0 -0
  29. /package/__mf/js/async/{648.b65797fa.js.LICENSE.txt → 634.b68acb18.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/PanelActions.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { InfoTooltip } from '@perses-dev/components';\nimport { otlptracev1 } from '@perses-dev/core';\nimport DownloadIcon from 'mdi-material-ui/DownloadOutline';\nimport { useCallback } from 'react';\nimport { HeaderIconButton } from '@perses-dev/dashboards';\nimport { TracingGanttChartPanelProps } from './TracingGanttChartPanel';\n\nexport function DownloadTraceAction(props: TracingGanttChartPanelProps) {\n const { queryResults } = props;\n const trace = queryResults[0]?.data?.trace;\n\n const handleClick = useCallback(() => {\n if (!trace) return;\n\n const data = JSON.stringify(trace, null, 2);\n const filename = getFilename(trace);\n downloadFile(filename, 'application/json', data);\n }, [trace]);\n\n if (!trace) {\n return null;\n }\n\n return (\n <InfoTooltip description=\"download OTLP/JSON trace\">\n <HeaderIconButton aria-label=\"download OTLP/JSON trace\" size=\"small\" onClick={handleClick}>\n <DownloadIcon fontSize=\"inherit\" />\n </HeaderIconButton>\n </InfoTooltip>\n );\n}\n\n/**\n * A trace can only contain spans with the same trace id. Therefore, let's return the trace id of the first span.\n * Exported for tests only.\n */\nexport function getFilename(trace: otlptracev1.TracesData) {\n for (const resourceSpan of trace.resourceSpans) {\n for (const scopeSpan of resourceSpan.scopeSpans) {\n for (const span of scopeSpan.spans) {\n return `${span.traceId}.json`;\n }\n }\n }\n\n return 'trace.json';\n}\n\nfunction downloadFile(filename: string, type: string, data: string) {\n const url = URL.createObjectURL(new Blob([data], { type }));\n\n const link = document.createElement('a');\n link.download = filename;\n link.href = url;\n link.click();\n\n URL.revokeObjectURL(url);\n}\n"],"names":["InfoTooltip","DownloadIcon","useCallback","HeaderIconButton","DownloadTraceAction","props","queryResults","trace","data","handleClick","JSON","stringify","filename","getFilename","downloadFile","description","aria-label","size","onClick","fontSize","resourceSpan","resourceSpans","scopeSpan","scopeSpans","span","spans","traceId","type","url","URL","createObjectURL","Blob","link","document","createElement","download","href","click","revokeObjectURL"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,WAAW,QAAQ,yBAAyB;AAErD,OAAOC,kBAAkB,kCAAkC;AAC3D,SAASC,WAAW,QAAQ,QAAQ;AACpC,SAASC,gBAAgB,QAAQ,yBAAyB;AAG1D,OAAO,SAASC,oBAAoBC,KAAkC;IACpE,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,YAAY,CAAC,EAAE,EAAEE,MAAMD;IAErC,MAAME,cAAcP,YAAY;QAC9B,IAAI,CAACK,OAAO;QAEZ,MAAMC,OAAOE,KAAKC,SAAS,CAACJ,OAAO,MAAM;QACzC,MAAMK,WAAWC,YAAYN;QAC7BO,aAAaF,UAAU,oBAAoBJ;IAC7C,GAAG;QAACD;KAAM;IAEV,IAAI,CAACA,OAAO;QACV,OAAO;IACT;IAEA,qBACE,KAACP;QAAYe,aAAY;kBACvB,cAAA,KAACZ;YAAiBa,cAAW;YAA2BC,MAAK;YAAQC,SAAST;sBAC5E,cAAA,KAACR;gBAAakB,UAAS;;;;AAI/B;AAEA;;;CAGC,GACD,OAAO,SAASN,YAAYN,KAA6B;IACvD,KAAK,MAAMa,gBAAgBb,MAAMc,aAAa,CAAE;QAC9C,KAAK,MAAMC,aAAaF,aAAaG,UAAU,CAAE;YAC/C,KAAK,MAAMC,QAAQF,UAAUG,KAAK,CAAE;gBAClC,OAAO,GAAGD,KAAKE,OAAO,CAAC,KAAK,CAAC;YAC/B;QACF;IACF;IAEA,OAAO;AACT;AAEA,SAASZ,aAAaF,QAAgB,EAAEe,IAAY,EAAEnB,IAAY;IAChE,MAAMoB,MAAMC,IAAIC,eAAe,CAAC,IAAIC,KAAK;QAACvB;KAAK,EAAE;QAAEmB;IAAK;IAExD,MAAMK,OAAOC,SAASC,aAAa,CAAC;IACpCF,KAAKG,QAAQ,GAAGvB;IAChBoB,KAAKI,IAAI,GAAGR;IACZI,KAAKK,KAAK;IAEVR,IAAIS,eAAe,CAACV;AACtB"}
1
+ {"version":3,"sources":["../../src/PanelActions.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { InfoTooltip } from '@perses-dev/components';\nimport { otlptracev1 } from '@perses-dev/core';\nimport DownloadIcon from 'mdi-material-ui/DownloadOutline';\nimport { ReactElement, useCallback } from 'react';\nimport { HeaderIconButton } from '@perses-dev/dashboards';\nimport { TracingGanttChartPanelProps } from './TracingGanttChartPanel';\n\nexport function DownloadTraceAction(props: TracingGanttChartPanelProps): ReactElement | null {\n const { queryResults } = props;\n const trace = queryResults[0]?.data?.trace;\n\n const handleClick = useCallback(() => {\n if (!trace) return;\n\n const data = JSON.stringify(trace, null, 2);\n const filename = getFilename(trace);\n downloadFile(filename, 'application/json', data);\n }, [trace]);\n\n if (!trace) {\n return null;\n }\n\n return (\n <InfoTooltip description=\"download OTLP/JSON trace\">\n <HeaderIconButton aria-label=\"download OTLP/JSON trace\" size=\"small\" onClick={handleClick}>\n <DownloadIcon fontSize=\"inherit\" />\n </HeaderIconButton>\n </InfoTooltip>\n );\n}\n\n/**\n * A trace can only contain spans with the same trace id. Therefore, let's return the trace id of the first span.\n * Exported for tests only.\n */\nexport function getFilename(trace: otlptracev1.TracesData): string {\n for (const resourceSpan of trace.resourceSpans) {\n for (const scopeSpan of resourceSpan.scopeSpans) {\n for (const span of scopeSpan.spans) {\n return `${span.traceId}.json`;\n }\n }\n }\n\n return 'trace.json';\n}\n\nfunction downloadFile(filename: string, type: string, data: string): void {\n const url = URL.createObjectURL(new Blob([data], { type }));\n\n const link = document.createElement('a');\n link.download = filename;\n link.href = url;\n link.click();\n\n URL.revokeObjectURL(url);\n}\n"],"names":["InfoTooltip","DownloadIcon","useCallback","HeaderIconButton","DownloadTraceAction","props","queryResults","trace","data","handleClick","JSON","stringify","filename","getFilename","downloadFile","description","aria-label","size","onClick","fontSize","resourceSpan","resourceSpans","scopeSpan","scopeSpans","span","spans","traceId","type","url","URL","createObjectURL","Blob","link","document","createElement","download","href","click","revokeObjectURL"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,WAAW,QAAQ,yBAAyB;AAErD,OAAOC,kBAAkB,kCAAkC;AAC3D,SAAuBC,WAAW,QAAQ,QAAQ;AAClD,SAASC,gBAAgB,QAAQ,yBAAyB;AAG1D,OAAO,SAASC,oBAAoBC,KAAkC;IACpE,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,YAAY,CAAC,EAAE,EAAEE,MAAMD;IAErC,MAAME,cAAcP,YAAY;QAC9B,IAAI,CAACK,OAAO;QAEZ,MAAMC,OAAOE,KAAKC,SAAS,CAACJ,OAAO,MAAM;QACzC,MAAMK,WAAWC,YAAYN;QAC7BO,aAAaF,UAAU,oBAAoBJ;IAC7C,GAAG;QAACD;KAAM;IAEV,IAAI,CAACA,OAAO;QACV,OAAO;IACT;IAEA,qBACE,KAACP;QAAYe,aAAY;kBACvB,cAAA,KAACZ;YAAiBa,cAAW;YAA2BC,MAAK;YAAQC,SAAST;sBAC5E,cAAA,KAACR;gBAAakB,UAAS;;;;AAI/B;AAEA;;;CAGC,GACD,OAAO,SAASN,YAAYN,KAA6B;IACvD,KAAK,MAAMa,gBAAgBb,MAAMc,aAAa,CAAE;QAC9C,KAAK,MAAMC,aAAaF,aAAaG,UAAU,CAAE;YAC/C,KAAK,MAAMC,QAAQF,UAAUG,KAAK,CAAE;gBAClC,OAAO,GAAGD,KAAKE,OAAO,CAAC,KAAK,CAAC;YAC/B;QACF;IACF;IAEA,OAAO;AACT;AAEA,SAASZ,aAAaF,QAAgB,EAAEe,IAAY,EAAEnB,IAAY;IAChE,MAAMoB,MAAMC,IAAIC,eAAe,CAAC,IAAIC,KAAK;QAACvB;KAAK,EAAE;QAAEmB;IAAK;IAExD,MAAMK,OAAOC,SAASC,aAAa,CAAC;IACpCF,KAAKG,QAAQ,GAAGvB;IAChBoB,KAAKI,IAAI,GAAGR;IACZI,KAAKK,KAAK;IAEVR,IAAIS,eAAe,CAACV;AACtB"}
@@ -7,7 +7,7 @@ export interface TraceAttributesProps {
7
7
  trace: Trace;
8
8
  span: Span;
9
9
  }
10
- export declare function TraceAttributes(props: TraceAttributesProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function TraceAttributes(props: TraceAttributesProps): ReactElement;
11
11
  export interface AttributeListProps {
12
12
  customLinks?: CustomLinks;
13
13
  attributes: otlpcommonv1.KeyValue[];
@@ -1 +1 @@
1
- {"version":3,"file":"Attributes.d.ts","sourceRoot":"","sources":["../../../../src/TracingGanttChart/DetailPane/Attributes.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CA0B1D;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAQrE;AAED,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;CACrC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAqCvE;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAyBrE"}
1
+ {"version":3,"file":"Attributes.d.ts","sourceRoot":"","sources":["../../../../src/TracingGanttChart/DetailPane/Attributes.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CA0BzE;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAQrE;AAED,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;CACrC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAqCvE;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAyBrE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/TracingGanttChart/DetailPane/Attributes.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ReactElement, useMemo } from 'react';\nimport { Divider, Link, List, ListItem, ListItemText } from '@mui/material';\nimport { otlpcommonv1 } from '@perses-dev/core';\nimport { replaceVariablesInString, useAllVariableValues, useRouterContext } from '@perses-dev/plugin-system';\nimport { Span, Trace } from '../trace';\nimport { formatDuration } from '../utils';\nimport { CustomLinks } from '../../gantt-chart-model';\n\nexport interface TraceAttributesProps {\n customLinks?: CustomLinks;\n trace: Trace;\n span: Span;\n}\n\nexport function TraceAttributes(props: TraceAttributesProps) {\n const { customLinks, trace, span } = props;\n\n return (\n <>\n <List>\n <AttributeItem name=\"span ID\" value={span.spanId} />\n <AttributeItem name=\"start\" value={formatDuration(span.startTimeUnixMs - trace.startTimeUnixMs)} />\n <AttributeItem name=\"duration\" value={formatDuration(span.endTimeUnixMs - span.startTimeUnixMs)} />\n </List>\n <Divider />\n {span.attributes.length > 0 && (\n <>\n <AttributeList\n customLinks={customLinks}\n attributes={span.attributes.toSorted((a, b) => a.key.localeCompare(b.key))}\n />\n <Divider />\n </>\n )}\n <AttributeList\n customLinks={customLinks}\n attributes={span.resource.attributes.toSorted((a, b) => a.key.localeCompare(b.key))}\n />\n </>\n );\n}\n\nexport interface AttributeListProps {\n customLinks?: CustomLinks;\n attributes: otlpcommonv1.KeyValue[];\n}\n\nexport function AttributeList(props: AttributeListProps): ReactElement {\n const { customLinks, attributes } = props;\n\n return (\n <List>\n <AttributeItems customLinks={customLinks} attributes={attributes} />\n </List>\n );\n}\n\ninterface AttributeItemsProps {\n customLinks?: CustomLinks;\n attributes: otlpcommonv1.KeyValue[];\n}\n\nexport function AttributeItems(props: AttributeItemsProps): ReactElement {\n const { customLinks, attributes } = props;\n const variableValues = useAllVariableValues();\n\n // turn array into map for fast access\n const attributeLinks = useMemo(() => {\n const attrs = (customLinks?.links.attributes ?? []).map((a) => [a.name, a.link]);\n return Object.fromEntries(attrs);\n }, [customLinks]);\n\n // some links require access to other attributes, for example a pod link \"/namespace/${k8s_namespace_name}/pod/${k8s_pod_name}\"\n const extraVariables = useMemo(() => {\n // replace dot with underscore in attribute name, because dot is not allowed in variable names\n const stringAttrs = attributes.map((attr) => [attr.key.replaceAll('.', '_'), renderAttributeValue(attr.value)]);\n\n return {\n ...customLinks?.variables,\n ...Object.fromEntries(stringAttrs),\n };\n }, [customLinks, attributes]);\n\n return (\n <>\n {attributes.map((attribute, i) => (\n <AttributeItem\n key={i}\n name={attribute.key}\n value={renderAttributeValue(attribute.value)}\n link={\n attributeLinks[attribute.key]\n ? replaceVariablesInString(attributeLinks[attribute.key], variableValues, extraVariables)\n : undefined\n }\n />\n ))}\n </>\n );\n}\n\ninterface AttributeItemProps {\n name: string;\n value: string;\n link?: string;\n}\n\nexport function AttributeItem(props: AttributeItemProps): ReactElement {\n const { name, value, link } = props;\n const { RouterComponent } = useRouterContext();\n\n const valueComponent =\n RouterComponent && link ? (\n <Link component={RouterComponent} to={link}>\n {value}\n </Link>\n ) : (\n value\n );\n\n return (\n <ListItem sx={{ px: 1, py: 0 }}>\n <ListItemText\n primary={name}\n secondary={valueComponent}\n slotProps={{\n primary: { variant: 'h5' },\n secondary: { variant: 'body1', sx: { wordBreak: 'break-word' } },\n }}\n />\n </ListItem>\n );\n}\n\nfunction renderAttributeValue(value: otlpcommonv1.AnyValue): string {\n if ('stringValue' in value) return value.stringValue || '<empty string>';\n if ('intValue' in value) return value.intValue;\n if ('doubleValue' in value) return String(value.doubleValue);\n if ('boolValue' in value) return String(value.boolValue);\n if ('arrayValue' in value) {\n const values = value.arrayValue.values;\n return values && values.length > 0 ? values.map(renderAttributeValue).join(', ') : '<empty array>';\n }\n return 'unknown';\n}\n"],"names":["useMemo","Divider","Link","List","ListItem","ListItemText","replaceVariablesInString","useAllVariableValues","useRouterContext","formatDuration","TraceAttributes","props","customLinks","trace","span","AttributeItem","name","value","spanId","startTimeUnixMs","endTimeUnixMs","attributes","length","AttributeList","toSorted","a","b","key","localeCompare","resource","AttributeItems","variableValues","attributeLinks","attrs","links","map","link","Object","fromEntries","extraVariables","stringAttrs","attr","replaceAll","renderAttributeValue","variables","attribute","i","undefined","RouterComponent","valueComponent","component","to","sx","px","py","primary","secondary","slotProps","variant","wordBreak","stringValue","intValue","String","doubleValue","boolValue","values","arrayValue","join"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/TracingGanttChart/DetailPane/Attributes.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ReactElement, useMemo } from 'react';\nimport { Divider, Link, List, ListItem, ListItemText } from '@mui/material';\nimport { otlpcommonv1 } from '@perses-dev/core';\nimport { replaceVariablesInString, useAllVariableValues, useRouterContext } from '@perses-dev/plugin-system';\nimport { Span, Trace } from '../trace';\nimport { formatDuration } from '../utils';\nimport { CustomLinks } from '../../gantt-chart-model';\n\nexport interface TraceAttributesProps {\n customLinks?: CustomLinks;\n trace: Trace;\n span: Span;\n}\n\nexport function TraceAttributes(props: TraceAttributesProps): ReactElement {\n const { customLinks, trace, span } = props;\n\n return (\n <>\n <List>\n <AttributeItem name=\"span ID\" value={span.spanId} />\n <AttributeItem name=\"start\" value={formatDuration(span.startTimeUnixMs - trace.startTimeUnixMs)} />\n <AttributeItem name=\"duration\" value={formatDuration(span.endTimeUnixMs - span.startTimeUnixMs)} />\n </List>\n <Divider />\n {span.attributes.length > 0 && (\n <>\n <AttributeList\n customLinks={customLinks}\n attributes={span.attributes.toSorted((a, b) => a.key.localeCompare(b.key))}\n />\n <Divider />\n </>\n )}\n <AttributeList\n customLinks={customLinks}\n attributes={span.resource.attributes.toSorted((a, b) => a.key.localeCompare(b.key))}\n />\n </>\n );\n}\n\nexport interface AttributeListProps {\n customLinks?: CustomLinks;\n attributes: otlpcommonv1.KeyValue[];\n}\n\nexport function AttributeList(props: AttributeListProps): ReactElement {\n const { customLinks, attributes } = props;\n\n return (\n <List>\n <AttributeItems customLinks={customLinks} attributes={attributes} />\n </List>\n );\n}\n\ninterface AttributeItemsProps {\n customLinks?: CustomLinks;\n attributes: otlpcommonv1.KeyValue[];\n}\n\nexport function AttributeItems(props: AttributeItemsProps): ReactElement {\n const { customLinks, attributes } = props;\n const variableValues = useAllVariableValues();\n\n // turn array into map for fast access\n const attributeLinks = useMemo(() => {\n const attrs = (customLinks?.links.attributes ?? []).map((a) => [a.name, a.link]);\n return Object.fromEntries(attrs);\n }, [customLinks]);\n\n // some links require access to other attributes, for example a pod link \"/namespace/${k8s_namespace_name}/pod/${k8s_pod_name}\"\n const extraVariables = useMemo(() => {\n // replace dot with underscore in attribute name, because dot is not allowed in variable names\n const stringAttrs = attributes.map((attr) => [attr.key.replaceAll('.', '_'), renderAttributeValue(attr.value)]);\n\n return {\n ...customLinks?.variables,\n ...Object.fromEntries(stringAttrs),\n };\n }, [customLinks, attributes]);\n\n return (\n <>\n {attributes.map((attribute, i) => (\n <AttributeItem\n key={i}\n name={attribute.key}\n value={renderAttributeValue(attribute.value)}\n link={\n attributeLinks[attribute.key]\n ? replaceVariablesInString(attributeLinks[attribute.key], variableValues, extraVariables)\n : undefined\n }\n />\n ))}\n </>\n );\n}\n\ninterface AttributeItemProps {\n name: string;\n value: string;\n link?: string;\n}\n\nexport function AttributeItem(props: AttributeItemProps): ReactElement {\n const { name, value, link } = props;\n const { RouterComponent } = useRouterContext();\n\n const valueComponent =\n RouterComponent && link ? (\n <Link component={RouterComponent} to={link}>\n {value}\n </Link>\n ) : (\n value\n );\n\n return (\n <ListItem sx={{ px: 1, py: 0 }}>\n <ListItemText\n primary={name}\n secondary={valueComponent}\n slotProps={{\n primary: { variant: 'h5' },\n secondary: { variant: 'body1', sx: { wordBreak: 'break-word' } },\n }}\n />\n </ListItem>\n );\n}\n\nfunction renderAttributeValue(value: otlpcommonv1.AnyValue): string {\n if ('stringValue' in value) return value.stringValue || '<empty string>';\n if ('intValue' in value) return value.intValue;\n if ('doubleValue' in value) return String(value.doubleValue);\n if ('boolValue' in value) return String(value.boolValue);\n if ('arrayValue' in value) {\n const values = value.arrayValue.values;\n return values && values.length > 0 ? values.map(renderAttributeValue).join(', ') : '<empty array>';\n }\n return 'unknown';\n}\n"],"names":["useMemo","Divider","Link","List","ListItem","ListItemText","replaceVariablesInString","useAllVariableValues","useRouterContext","formatDuration","TraceAttributes","props","customLinks","trace","span","AttributeItem","name","value","spanId","startTimeUnixMs","endTimeUnixMs","attributes","length","AttributeList","toSorted","a","b","key","localeCompare","resource","AttributeItems","variableValues","attributeLinks","attrs","links","map","link","Object","fromEntries","extraVariables","stringAttrs","attr","replaceAll","renderAttributeValue","variables","attribute","i","undefined","RouterComponent","valueComponent","component","to","sx","px","py","primary","secondary","slotProps","variant","wordBreak","stringValue","intValue","String","doubleValue","boolValue","values","arrayValue","join"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAAuBA,OAAO,QAAQ,QAAQ;AAC9C,SAASC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,gBAAgB;AAE5E,SAASC,wBAAwB,EAAEC,oBAAoB,EAAEC,gBAAgB,QAAQ,4BAA4B;AAE7G,SAASC,cAAc,QAAQ,WAAW;AAS1C,OAAO,SAASC,gBAAgBC,KAA2B;IACzD,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGH;IAErC,qBACE;;0BACE,MAACR;;kCACC,KAACY;wBAAcC,MAAK;wBAAUC,OAAOH,KAAKI,MAAM;;kCAChD,KAACH;wBAAcC,MAAK;wBAAQC,OAAOR,eAAeK,KAAKK,eAAe,GAAGN,MAAMM,eAAe;;kCAC9F,KAACJ;wBAAcC,MAAK;wBAAWC,OAAOR,eAAeK,KAAKM,aAAa,GAAGN,KAAKK,eAAe;;;;0BAEhG,KAAClB;YACAa,KAAKO,UAAU,CAACC,MAAM,GAAG,mBACxB;;kCACE,KAACC;wBACCX,aAAaA;wBACbS,YAAYP,KAAKO,UAAU,CAACG,QAAQ,CAAC,CAACC,GAAGC,IAAMD,EAAEE,GAAG,CAACC,aAAa,CAACF,EAAEC,GAAG;;kCAE1E,KAAC1B;;;0BAGL,KAACsB;gBACCX,aAAaA;gBACbS,YAAYP,KAAKe,QAAQ,CAACR,UAAU,CAACG,QAAQ,CAAC,CAACC,GAAGC,IAAMD,EAAEE,GAAG,CAACC,aAAa,CAACF,EAAEC,GAAG;;;;AAIzF;AAOA,OAAO,SAASJ,cAAcZ,KAAyB;IACrD,MAAM,EAAEC,WAAW,EAAES,UAAU,EAAE,GAAGV;IAEpC,qBACE,KAACR;kBACC,cAAA,KAAC2B;YAAelB,aAAaA;YAAaS,YAAYA;;;AAG5D;AAOA,OAAO,SAASS,eAAenB,KAA0B;IACvD,MAAM,EAAEC,WAAW,EAAES,UAAU,EAAE,GAAGV;IACpC,MAAMoB,iBAAiBxB;IAEvB,sCAAsC;IACtC,MAAMyB,iBAAiBhC,QAAQ;QAC7B,MAAMiC,QAAQ,AAACrB,CAAAA,aAAasB,MAAMb,cAAc,EAAE,AAAD,EAAGc,GAAG,CAAC,CAACV,IAAM;gBAACA,EAAET,IAAI;gBAAES,EAAEW,IAAI;aAAC;QAC/E,OAAOC,OAAOC,WAAW,CAACL;IAC5B,GAAG;QAACrB;KAAY;IAEhB,+HAA+H;IAC/H,MAAM2B,iBAAiBvC,QAAQ;QAC7B,8FAA8F;QAC9F,MAAMwC,cAAcnB,WAAWc,GAAG,CAAC,CAACM,OAAS;gBAACA,KAAKd,GAAG,CAACe,UAAU,CAAC,KAAK;gBAAMC,qBAAqBF,KAAKxB,KAAK;aAAE;QAE9G,OAAO;YACL,GAAGL,aAAagC,SAAS;YACzB,GAAGP,OAAOC,WAAW,CAACE,YAAY;QACpC;IACF,GAAG;QAAC5B;QAAaS;KAAW;IAE5B,qBACE;kBACGA,WAAWc,GAAG,CAAC,CAACU,WAAWC,kBAC1B,KAAC/B;gBAECC,MAAM6B,UAAUlB,GAAG;gBACnBV,OAAO0B,qBAAqBE,UAAU5B,KAAK;gBAC3CmB,MACEJ,cAAc,CAACa,UAAUlB,GAAG,CAAC,GACzBrB,yBAAyB0B,cAAc,CAACa,UAAUlB,GAAG,CAAC,EAAEI,gBAAgBQ,kBACxEQ;eANDD;;AAYf;AAQA,OAAO,SAAS/B,cAAcJ,KAAyB;IACrD,MAAM,EAAEK,IAAI,EAAEC,KAAK,EAAEmB,IAAI,EAAE,GAAGzB;IAC9B,MAAM,EAAEqC,eAAe,EAAE,GAAGxC;IAE5B,MAAMyC,iBACJD,mBAAmBZ,qBACjB,KAAClC;QAAKgD,WAAWF;QAAiBG,IAAIf;kBACnCnB;SAGHA;IAGJ,qBACE,KAACb;QAASgD,IAAI;YAAEC,IAAI;YAAGC,IAAI;QAAE;kBAC3B,cAAA,KAACjD;YACCkD,SAASvC;YACTwC,WAAWP;YACXQ,WAAW;gBACTF,SAAS;oBAAEG,SAAS;gBAAK;gBACzBF,WAAW;oBAAEE,SAAS;oBAASN,IAAI;wBAAEO,WAAW;oBAAa;gBAAE;YACjE;;;AAIR;AAEA,SAAShB,qBAAqB1B,KAA4B;IACxD,IAAI,iBAAiBA,OAAO,OAAOA,MAAM2C,WAAW,IAAI;IACxD,IAAI,cAAc3C,OAAO,OAAOA,MAAM4C,QAAQ;IAC9C,IAAI,iBAAiB5C,OAAO,OAAO6C,OAAO7C,MAAM8C,WAAW;IAC3D,IAAI,eAAe9C,OAAO,OAAO6C,OAAO7C,MAAM+C,SAAS;IACvD,IAAI,gBAAgB/C,OAAO;QACzB,MAAMgD,SAAShD,MAAMiD,UAAU,CAACD,MAAM;QACtC,OAAOA,UAAUA,OAAO3C,MAAM,GAAG,IAAI2C,OAAO9B,GAAG,CAACQ,sBAAsBwB,IAAI,CAAC,QAAQ;IACrF;IACA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/TracingGanttChart/DetailPane/SpanEvents.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Collapse, Divider, List, ListItemButton, ListItemText } from '@mui/material';\nimport { Fragment, ReactElement, useState } from 'react';\nimport ChevronUp from 'mdi-material-ui/ChevronUp';\nimport ChevronDown from 'mdi-material-ui/ChevronDown';\nimport { formatDuration } from '../utils';\nimport { Trace, Span, Event } from '../trace';\nimport { CustomLinks } from '../../gantt-chart-model';\nimport { AttributeItems, AttributeItem } from './Attributes';\n\nexport interface SpanEventListProps {\n customLinks?: CustomLinks;\n trace: Trace;\n span: Span;\n}\n\nexport function SpanEventList(props: SpanEventListProps): ReactElement {\n const { customLinks, trace, span } = props;\n\n return (\n <>\n {span.events\n .sort((a, b) => a.timeUnixMs - b.timeUnixMs)\n .map((event, i) => (\n <Fragment key={i}>\n {i > 0 && <Divider />}\n <SpanEventItem customLinks={customLinks} trace={trace} event={event} />\n </Fragment>\n ))}\n </>\n );\n}\n\ninterface SpanEventItemProps {\n customLinks?: CustomLinks;\n trace: Trace;\n event: Event;\n}\n\nfunction SpanEventItem(props: SpanEventItemProps): ReactElement {\n const { customLinks, trace, event } = props;\n const relativeTime = event.timeUnixMs - trace.startTimeUnixMs;\n\n const [open, setOpen] = useState(false);\n const handleClick = () => {\n setOpen(!open);\n };\n\n return (\n <List>\n <ListItemButton onClick={handleClick} sx={{ px: 1 }}>\n <ListItemText\n primary={\n <>\n <strong>{formatDuration(relativeTime)}:</strong> {event.name}\n </>\n }\n slotProps={{ primary: { noWrap: true } }}\n />\n {open ? <ChevronUp /> : <ChevronDown />}\n </ListItemButton>\n <Collapse in={open} timeout=\"auto\" unmountOnExit>\n <List sx={{ px: 1 }}>\n <AttributeItem name=\"name\" value={event.name} />\n <AttributeItem name=\"time\" value={formatDuration(relativeTime)} />\n <AttributeItems customLinks={customLinks} attributes={event.attributes} />\n </List>\n </Collapse>\n </List>\n );\n}\n"],"names":["Collapse","Divider","List","ListItemButton","ListItemText","Fragment","useState","ChevronUp","ChevronDown","formatDuration","AttributeItems","AttributeItem","SpanEventList","props","customLinks","trace","span","events","sort","a","b","timeUnixMs","map","event","i","SpanEventItem","relativeTime","startTimeUnixMs","open","setOpen","handleClick","onClick","sx","px","primary","strong","name","slotProps","noWrap","in","timeout","unmountOnExit","value","attributes"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,QAAQ,EAAEC,OAAO,EAAEC,IAAI,EAAEC,cAAc,EAAEC,YAAY,QAAQ,gBAAgB;AACtF,SAASC,QAAQ,EAAgBC,QAAQ,QAAQ,QAAQ;AACzD,OAAOC,eAAe,4BAA4B;AAClD,OAAOC,iBAAiB,8BAA8B;AACtD,SAASC,cAAc,QAAQ,WAAW;AAG1C,SAASC,cAAc,EAAEC,aAAa,QAAQ,eAAe;AAQ7D,OAAO,SAASC,cAAcC,KAAyB;IACrD,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGH;IAErC,qBACE;kBACGG,KAAKC,MAAM,CACTC,IAAI,CAAC,CAACC,GAAGC,IAAMD,EAAEE,UAAU,GAAGD,EAAEC,UAAU,EAC1CC,GAAG,CAAC,CAACC,OAAOC,kBACX,MAACnB;;oBACEmB,IAAI,mBAAK,KAACvB;kCACX,KAACwB;wBAAcX,aAAaA;wBAAaC,OAAOA;wBAAOQ,OAAOA;;;eAFjDC;;AAOzB;AAQA,SAASC,cAAcZ,KAAyB;IAC9C,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEQ,KAAK,EAAE,GAAGV;IACtC,MAAMa,eAAeH,MAAMF,UAAU,GAAGN,MAAMY,eAAe;IAE7D,MAAM,CAACC,MAAMC,QAAQ,GAAGvB,SAAS;IACjC,MAAMwB,cAAc;QAClBD,QAAQ,CAACD;IACX;IAEA,qBACE,MAAC1B;;0BACC,MAACC;gBAAe4B,SAASD;gBAAaE,IAAI;oBAAEC,IAAI;gBAAE;;kCAChD,KAAC7B;wBACC8B,uBACE;;8CACE,MAACC;;wCAAQ1B,eAAeiB;wCAAc;;;gCAAU;gCAAEH,MAAMa,IAAI;;;wBAGhEC,WAAW;4BAAEH,SAAS;gCAAEI,QAAQ;4BAAK;wBAAE;;oBAExCV,qBAAO,KAACrB,+BAAe,KAACC;;;0BAE3B,KAACR;gBAASuC,IAAIX;gBAAMY,SAAQ;gBAAOC,aAAa;0BAC9C,cAAA,MAACvC;oBAAK8B,IAAI;wBAAEC,IAAI;oBAAE;;sCAChB,KAACtB;4BAAcyB,MAAK;4BAAOM,OAAOnB,MAAMa,IAAI;;sCAC5C,KAACzB;4BAAcyB,MAAK;4BAAOM,OAAOjC,eAAeiB;;sCACjD,KAAChB;4BAAeI,aAAaA;4BAAa6B,YAAYpB,MAAMoB,UAAU;;;;;;;AAKhF"}
1
+ {"version":3,"sources":["../../../../src/TracingGanttChart/DetailPane/SpanEvents.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Collapse, Divider, List, ListItemButton, ListItemText } from '@mui/material';\nimport { Fragment, ReactElement, useState } from 'react';\nimport ChevronUp from 'mdi-material-ui/ChevronUp';\nimport ChevronDown from 'mdi-material-ui/ChevronDown';\nimport { formatDuration } from '../utils';\nimport { Trace, Span, Event } from '../trace';\nimport { CustomLinks } from '../../gantt-chart-model';\nimport { AttributeItems, AttributeItem } from './Attributes';\n\nexport interface SpanEventListProps {\n customLinks?: CustomLinks;\n trace: Trace;\n span: Span;\n}\n\nexport function SpanEventList(props: SpanEventListProps): ReactElement {\n const { customLinks, trace, span } = props;\n\n return (\n <>\n {span.events\n .sort((a, b) => a.timeUnixMs - b.timeUnixMs)\n .map((event, i) => (\n <Fragment key={i}>\n {i > 0 && <Divider />}\n <SpanEventItem customLinks={customLinks} trace={trace} event={event} />\n </Fragment>\n ))}\n </>\n );\n}\n\ninterface SpanEventItemProps {\n customLinks?: CustomLinks;\n trace: Trace;\n event: Event;\n}\n\nfunction SpanEventItem(props: SpanEventItemProps): ReactElement {\n const { customLinks, trace, event } = props;\n const relativeTime = event.timeUnixMs - trace.startTimeUnixMs;\n\n const [open, setOpen] = useState(false);\n const handleClick = (): void => {\n setOpen(!open);\n };\n\n return (\n <List>\n <ListItemButton onClick={handleClick} sx={{ px: 1 }}>\n <ListItemText\n primary={\n <>\n <strong>{formatDuration(relativeTime)}:</strong> {event.name}\n </>\n }\n slotProps={{ primary: { noWrap: true } }}\n />\n {open ? <ChevronUp /> : <ChevronDown />}\n </ListItemButton>\n <Collapse in={open} timeout=\"auto\" unmountOnExit>\n <List sx={{ px: 1 }}>\n <AttributeItem name=\"name\" value={event.name} />\n <AttributeItem name=\"time\" value={formatDuration(relativeTime)} />\n <AttributeItems customLinks={customLinks} attributes={event.attributes} />\n </List>\n </Collapse>\n </List>\n );\n}\n"],"names":["Collapse","Divider","List","ListItemButton","ListItemText","Fragment","useState","ChevronUp","ChevronDown","formatDuration","AttributeItems","AttributeItem","SpanEventList","props","customLinks","trace","span","events","sort","a","b","timeUnixMs","map","event","i","SpanEventItem","relativeTime","startTimeUnixMs","open","setOpen","handleClick","onClick","sx","px","primary","strong","name","slotProps","noWrap","in","timeout","unmountOnExit","value","attributes"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,QAAQ,EAAEC,OAAO,EAAEC,IAAI,EAAEC,cAAc,EAAEC,YAAY,QAAQ,gBAAgB;AACtF,SAASC,QAAQ,EAAgBC,QAAQ,QAAQ,QAAQ;AACzD,OAAOC,eAAe,4BAA4B;AAClD,OAAOC,iBAAiB,8BAA8B;AACtD,SAASC,cAAc,QAAQ,WAAW;AAG1C,SAASC,cAAc,EAAEC,aAAa,QAAQ,eAAe;AAQ7D,OAAO,SAASC,cAAcC,KAAyB;IACrD,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGH;IAErC,qBACE;kBACGG,KAAKC,MAAM,CACTC,IAAI,CAAC,CAACC,GAAGC,IAAMD,EAAEE,UAAU,GAAGD,EAAEC,UAAU,EAC1CC,GAAG,CAAC,CAACC,OAAOC,kBACX,MAACnB;;oBACEmB,IAAI,mBAAK,KAACvB;kCACX,KAACwB;wBAAcX,aAAaA;wBAAaC,OAAOA;wBAAOQ,OAAOA;;;eAFjDC;;AAOzB;AAQA,SAASC,cAAcZ,KAAyB;IAC9C,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEQ,KAAK,EAAE,GAAGV;IACtC,MAAMa,eAAeH,MAAMF,UAAU,GAAGN,MAAMY,eAAe;IAE7D,MAAM,CAACC,MAAMC,QAAQ,GAAGvB,SAAS;IACjC,MAAMwB,cAAc;QAClBD,QAAQ,CAACD;IACX;IAEA,qBACE,MAAC1B;;0BACC,MAACC;gBAAe4B,SAASD;gBAAaE,IAAI;oBAAEC,IAAI;gBAAE;;kCAChD,KAAC7B;wBACC8B,uBACE;;8CACE,MAACC;;wCAAQ1B,eAAeiB;wCAAc;;;gCAAU;gCAAEH,MAAMa,IAAI;;;wBAGhEC,WAAW;4BAAEH,SAAS;gCAAEI,QAAQ;4BAAK;wBAAE;;oBAExCV,qBAAO,KAACrB,+BAAe,KAACC;;;0BAE3B,KAACR;gBAASuC,IAAIX;gBAAMY,SAAQ;gBAAOC,aAAa;0BAC9C,cAAA,MAACvC;oBAAK8B,IAAI;wBAAEC,IAAI;oBAAE;;sCAChB,KAACtB;4BAAcyB,MAAK;4BAAOM,OAAOnB,MAAMa,IAAI;;sCAC5C,KAACzB;4BAAcyB,MAAK;4BAAOM,OAAOjC,eAAeiB;;sCACjD,KAAChB;4BAAeI,aAAaA;4BAAa6B,YAAYpB,MAAMoB,UAAU;;;;;;;AAKhF"}
@@ -1,8 +1,9 @@
1
+ import { ReactElement } from 'react';
1
2
  import { Span } from '../trace';
2
3
  import { CustomLinks } from '../../gantt-chart-model';
3
4
  export interface SpanLinksButtonProps {
4
5
  customLinks: CustomLinks;
5
6
  span: Span;
6
7
  }
7
- export declare function SpanLinksButton(props: SpanLinksButtonProps): import("react/jsx-runtime").JSX.Element | null;
8
+ export declare function SpanLinksButton(props: SpanLinksButtonProps): ReactElement | null;
8
9
  //# sourceMappingURL=SpanLinksButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpanLinksButton.d.ts","sourceRoot":"","sources":["../../../../src/TracingGanttChart/GanttTable/SpanLinksButton.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,kDA6E1D"}
1
+ {"version":3,"file":"SpanLinksButton.d.ts","sourceRoot":"","sources":["../../../../src/TracingGanttChart/GanttTable/SpanLinksButton.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAc,YAAY,EAAY,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,GAAG,IAAI,CA6EhF"}
@@ -26,7 +26,7 @@ export function SpanLinksButton(props) {
26
26
  return null;
27
27
  }
28
28
  // if there is a single span link, render the button directly without a menu
29
- if (span.links.length == 1 && span.links[0]) {
29
+ if (span.links.length === 1 && span.links[0]) {
30
30
  const link = span.links[0];
31
31
  return /*#__PURE__*/ _jsx(InfoTooltip, {
32
32
  description: "open linked span",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/TracingGanttChart/GanttTable/SpanLinksButton.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { IconButton, Menu, MenuItem } from '@mui/material';\nimport { MouseEvent, useState } from 'react';\nimport LaunchIcon from 'mdi-material-ui/Launch';\nimport { InfoTooltip } from '@perses-dev/components';\nimport { replaceVariablesInString, useAllVariableValues, useRouterContext } from '@perses-dev/plugin-system';\nimport { Span } from '../trace';\nimport { CustomLinks } from '../../gantt-chart-model';\n\nexport interface SpanLinksButtonProps {\n customLinks: CustomLinks;\n span: Span;\n}\n\nexport function SpanLinksButton(props: SpanLinksButtonProps) {\n const { customLinks, span } = props;\n const variableValues = useAllVariableValues();\n const { RouterComponent } = useRouterContext();\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const isOpen = Boolean(anchorEl);\n\n if (!RouterComponent || !customLinks.links.span) {\n return null;\n }\n\n // if there is a single span link, render the button directly without a menu\n if (span.links.length == 1 && span.links[0]) {\n const link = span.links[0];\n return (\n <InfoTooltip description=\"open linked span\">\n <IconButton\n size=\"small\"\n component={RouterComponent}\n to={replaceVariablesInString(customLinks.links.span, variableValues, {\n ...customLinks.variables,\n traceId: link.traceId,\n spanId: link.spanId,\n })}\n >\n <LaunchIcon fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n );\n }\n\n const handleOpenMenu = (event: MouseEvent<HTMLButtonElement>) => {\n // do not propagate onClick event to the table row (otherwise, the detail pane would open)\n event.stopPropagation();\n\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (event: MouseEvent) => {\n // Closing the menu, i.e. clicking on the fullscreen transparent MUI backdrop element, does trigger a click on the table row (which opens the detail pane).\n // Therefore, stop propagating this event\n event.stopPropagation();\n\n setAnchorEl(null);\n };\n\n return (\n <>\n <InfoTooltip description={`${span.links.length} linked spans`}>\n <IconButton\n aria-label=\"span links\"\n aria-haspopup=\"true\"\n aria-expanded={isOpen ? 'true' : undefined}\n size=\"small\"\n onClick={handleOpenMenu}\n >\n <LaunchIcon fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n <Menu anchorEl={anchorEl} open={isOpen} onClose={handleClose}>\n {span.links.map((link) => (\n <MenuItem\n key={link.spanId}\n component={RouterComponent}\n onClick={handleClose}\n to={replaceVariablesInString(customLinks.links.span!, variableValues, {\n ...customLinks.variables,\n traceId: link.traceId,\n spanId: link.spanId,\n })}\n >\n Open linked span {link.spanId}\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n}\n"],"names":["IconButton","Menu","MenuItem","useState","LaunchIcon","InfoTooltip","replaceVariablesInString","useAllVariableValues","useRouterContext","SpanLinksButton","props","customLinks","span","variableValues","RouterComponent","anchorEl","setAnchorEl","isOpen","Boolean","links","length","link","description","size","component","to","variables","traceId","spanId","fontSize","handleOpenMenu","event","stopPropagation","currentTarget","handleClose","aria-label","aria-haspopup","aria-expanded","undefined","onClick","open","onClose","map"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,UAAU,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,gBAAgB;AAC3D,SAAqBC,QAAQ,QAAQ,QAAQ;AAC7C,OAAOC,gBAAgB,yBAAyB;AAChD,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,wBAAwB,EAAEC,oBAAoB,EAAEC,gBAAgB,QAAQ,4BAA4B;AAS7G,OAAO,SAASC,gBAAgBC,KAA2B;IACzD,MAAM,EAAEC,WAAW,EAAEC,IAAI,EAAE,GAAGF;IAC9B,MAAMG,iBAAiBN;IACvB,MAAM,EAAEO,eAAe,EAAE,GAAGN;IAC5B,MAAM,CAACO,UAAUC,YAAY,GAAGb,SAA6B;IAC7D,MAAMc,SAASC,QAAQH;IAEvB,IAAI,CAACD,mBAAmB,CAACH,YAAYQ,KAAK,CAACP,IAAI,EAAE;QAC/C,OAAO;IACT;IAEA,4EAA4E;IAC5E,IAAIA,KAAKO,KAAK,CAACC,MAAM,IAAI,KAAKR,KAAKO,KAAK,CAAC,EAAE,EAAE;QAC3C,MAAME,OAAOT,KAAKO,KAAK,CAAC,EAAE;QAC1B,qBACE,KAACd;YAAYiB,aAAY;sBACvB,cAAA,KAACtB;gBACCuB,MAAK;gBACLC,WAAWV;gBACXW,IAAInB,yBAAyBK,YAAYQ,KAAK,CAACP,IAAI,EAAEC,gBAAgB;oBACnE,GAAGF,YAAYe,SAAS;oBACxBC,SAASN,KAAKM,OAAO;oBACrBC,QAAQP,KAAKO,MAAM;gBACrB;0BAEA,cAAA,KAACxB;oBAAWyB,UAAS;;;;IAI7B;IAEA,MAAMC,iBAAiB,CAACC;QACtB,0FAA0F;QAC1FA,MAAMC,eAAe;QAErBhB,YAAYe,MAAME,aAAa;IACjC;IAEA,MAAMC,cAAc,CAACH;QACnB,2JAA2J;QAC3J,yCAAyC;QACzCA,MAAMC,eAAe;QAErBhB,YAAY;IACd;IAEA,qBACE;;0BACE,KAACX;gBAAYiB,aAAa,GAAGV,KAAKO,KAAK,CAACC,MAAM,CAAC,aAAa,CAAC;0BAC3D,cAAA,KAACpB;oBACCmC,cAAW;oBACXC,iBAAc;oBACdC,iBAAepB,SAAS,SAASqB;oBACjCf,MAAK;oBACLgB,SAAST;8BAET,cAAA,KAAC1B;wBAAWyB,UAAS;;;;0BAGzB,KAAC5B;gBAAKc,UAAUA;gBAAUyB,MAAMvB;gBAAQwB,SAASP;0BAC9CtB,KAAKO,KAAK,CAACuB,GAAG,CAAC,CAACrB,qBACf,MAACnB;wBAECsB,WAAWV;wBACXyB,SAASL;wBACTT,IAAInB,yBAAyBK,YAAYQ,KAAK,CAACP,IAAI,EAAGC,gBAAgB;4BACpE,GAAGF,YAAYe,SAAS;4BACxBC,SAASN,KAAKM,OAAO;4BACrBC,QAAQP,KAAKO,MAAM;wBACrB;;4BACD;4BACmBP,KAAKO,MAAM;;uBATxBP,KAAKO,MAAM;;;;AAe5B"}
1
+ {"version":3,"sources":["../../../../src/TracingGanttChart/GanttTable/SpanLinksButton.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { IconButton, Menu, MenuItem } from '@mui/material';\nimport { MouseEvent, ReactElement, useState } from 'react';\nimport LaunchIcon from 'mdi-material-ui/Launch';\nimport { InfoTooltip } from '@perses-dev/components';\nimport { replaceVariablesInString, useAllVariableValues, useRouterContext } from '@perses-dev/plugin-system';\nimport { Span } from '../trace';\nimport { CustomLinks } from '../../gantt-chart-model';\n\nexport interface SpanLinksButtonProps {\n customLinks: CustomLinks;\n span: Span;\n}\n\nexport function SpanLinksButton(props: SpanLinksButtonProps): ReactElement | null {\n const { customLinks, span } = props;\n const variableValues = useAllVariableValues();\n const { RouterComponent } = useRouterContext();\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const isOpen = Boolean(anchorEl);\n\n if (!RouterComponent || !customLinks.links.span) {\n return null;\n }\n\n // if there is a single span link, render the button directly without a menu\n if (span.links.length === 1 && span.links[0]) {\n const link = span.links[0];\n return (\n <InfoTooltip description=\"open linked span\">\n <IconButton\n size=\"small\"\n component={RouterComponent}\n to={replaceVariablesInString(customLinks.links.span, variableValues, {\n ...customLinks.variables,\n traceId: link.traceId,\n spanId: link.spanId,\n })}\n >\n <LaunchIcon fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n );\n }\n\n const handleOpenMenu = (event: MouseEvent<HTMLButtonElement>): void => {\n // do not propagate onClick event to the table row (otherwise, the detail pane would open)\n event.stopPropagation();\n\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (event: MouseEvent): void => {\n // Closing the menu, i.e. clicking on the fullscreen transparent MUI backdrop element, does trigger a click on the table row (which opens the detail pane).\n // Therefore, stop propagating this event\n event.stopPropagation();\n\n setAnchorEl(null);\n };\n\n return (\n <>\n <InfoTooltip description={`${span.links.length} linked spans`}>\n <IconButton\n aria-label=\"span links\"\n aria-haspopup=\"true\"\n aria-expanded={isOpen ? 'true' : undefined}\n size=\"small\"\n onClick={handleOpenMenu}\n >\n <LaunchIcon fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n <Menu anchorEl={anchorEl} open={isOpen} onClose={handleClose}>\n {span.links.map((link) => (\n <MenuItem\n key={link.spanId}\n component={RouterComponent}\n onClick={handleClose}\n to={replaceVariablesInString(customLinks.links.span!, variableValues, {\n ...customLinks.variables,\n traceId: link.traceId,\n spanId: link.spanId,\n })}\n >\n Open linked span {link.spanId}\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n}\n"],"names":["IconButton","Menu","MenuItem","useState","LaunchIcon","InfoTooltip","replaceVariablesInString","useAllVariableValues","useRouterContext","SpanLinksButton","props","customLinks","span","variableValues","RouterComponent","anchorEl","setAnchorEl","isOpen","Boolean","links","length","link","description","size","component","to","variables","traceId","spanId","fontSize","handleOpenMenu","event","stopPropagation","currentTarget","handleClose","aria-label","aria-haspopup","aria-expanded","undefined","onClick","open","onClose","map"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,UAAU,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,gBAAgB;AAC3D,SAAmCC,QAAQ,QAAQ,QAAQ;AAC3D,OAAOC,gBAAgB,yBAAyB;AAChD,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,wBAAwB,EAAEC,oBAAoB,EAAEC,gBAAgB,QAAQ,4BAA4B;AAS7G,OAAO,SAASC,gBAAgBC,KAA2B;IACzD,MAAM,EAAEC,WAAW,EAAEC,IAAI,EAAE,GAAGF;IAC9B,MAAMG,iBAAiBN;IACvB,MAAM,EAAEO,eAAe,EAAE,GAAGN;IAC5B,MAAM,CAACO,UAAUC,YAAY,GAAGb,SAA6B;IAC7D,MAAMc,SAASC,QAAQH;IAEvB,IAAI,CAACD,mBAAmB,CAACH,YAAYQ,KAAK,CAACP,IAAI,EAAE;QAC/C,OAAO;IACT;IAEA,4EAA4E;IAC5E,IAAIA,KAAKO,KAAK,CAACC,MAAM,KAAK,KAAKR,KAAKO,KAAK,CAAC,EAAE,EAAE;QAC5C,MAAME,OAAOT,KAAKO,KAAK,CAAC,EAAE;QAC1B,qBACE,KAACd;YAAYiB,aAAY;sBACvB,cAAA,KAACtB;gBACCuB,MAAK;gBACLC,WAAWV;gBACXW,IAAInB,yBAAyBK,YAAYQ,KAAK,CAACP,IAAI,EAAEC,gBAAgB;oBACnE,GAAGF,YAAYe,SAAS;oBACxBC,SAASN,KAAKM,OAAO;oBACrBC,QAAQP,KAAKO,MAAM;gBACrB;0BAEA,cAAA,KAACxB;oBAAWyB,UAAS;;;;IAI7B;IAEA,MAAMC,iBAAiB,CAACC;QACtB,0FAA0F;QAC1FA,MAAMC,eAAe;QAErBhB,YAAYe,MAAME,aAAa;IACjC;IAEA,MAAMC,cAAc,CAACH;QACnB,2JAA2J;QAC3J,yCAAyC;QACzCA,MAAMC,eAAe;QAErBhB,YAAY;IACd;IAEA,qBACE;;0BACE,KAACX;gBAAYiB,aAAa,GAAGV,KAAKO,KAAK,CAACC,MAAM,CAAC,aAAa,CAAC;0BAC3D,cAAA,KAACpB;oBACCmC,cAAW;oBACXC,iBAAc;oBACdC,iBAAepB,SAAS,SAASqB;oBACjCf,MAAK;oBACLgB,SAAST;8BAET,cAAA,KAAC1B;wBAAWyB,UAAS;;;;0BAGzB,KAAC5B;gBAAKc,UAAUA;gBAAUyB,MAAMvB;gBAAQwB,SAASP;0BAC9CtB,KAAKO,KAAK,CAACuB,GAAG,CAAC,CAACrB,qBACf,MAACnB;wBAECsB,WAAWV;wBACXyB,SAASL;wBACTT,IAAInB,yBAAyBK,YAAYQ,KAAK,CAACP,IAAI,EAAGC,gBAAgB;4BACpE,GAAGF,YAAYe,SAAS;4BACxBC,SAASN,KAAKM,OAAO;4BACrBC,QAAQP,KAAKO,MAAM;wBACrB;;4BACD;4BACmBP,KAAKO,MAAM;;uBATxBP,KAAKO,MAAM;;;;AAe5B"}
@@ -41,7 +41,7 @@ function SpanLinksButton(props) {
41
41
  return null;
42
42
  }
43
43
  // if there is a single span link, render the button directly without a menu
44
- if (span.links.length == 1 && span.links[0]) {
44
+ if (span.links.length === 1 && span.links[0]) {
45
45
  const link = span.links[0];
46
46
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.InfoTooltip, {
47
47
  description: "open linked span",
package/mf-manifest.json CHANGED
@@ -5,11 +5,11 @@
5
5
  "name": "TracingGanttChart",
6
6
  "type": "app",
7
7
  "buildInfo": {
8
- "buildVersion": "0.12.0-rc.1",
8
+ "buildVersion": "0.12.1",
9
9
  "buildName": "@perses-dev/tracing-gantt-chart-plugin"
10
10
  },
11
11
  "remoteEntry": {
12
- "name": "__mf/js/TracingGanttChart.97979d6e.js",
12
+ "name": "__mf/js/TracingGanttChart.f5573ac3.js",
13
13
  "path": "",
14
14
  "type": "global"
15
15
  },
@@ -87,14 +87,14 @@
87
87
  {
88
88
  "id": "TracingGanttChart:@perses-dev/components",
89
89
  "name": "@perses-dev/components",
90
- "version": "0.53.0-rc.2",
90
+ "version": "0.53.1",
91
91
  "singleton": true,
92
- "requiredVersion": "^0.53.0-rc.2",
92
+ "requiredVersion": "^0.53.1",
93
93
  "assets": {
94
94
  "js": {
95
95
  "async": [],
96
96
  "sync": [
97
- "__mf/js/async/716.210298fd.js"
97
+ "__mf/js/async/12.c9423551.js"
98
98
  ]
99
99
  },
100
100
  "css": {
@@ -106,14 +106,14 @@
106
106
  {
107
107
  "id": "TracingGanttChart:@perses-dev/plugin-system",
108
108
  "name": "@perses-dev/plugin-system",
109
- "version": "0.53.0-rc.2",
109
+ "version": "0.53.1",
110
110
  "singleton": true,
111
- "requiredVersion": "^0.53.0-rc.2",
111
+ "requiredVersion": "^0.53.1",
112
112
  "assets": {
113
113
  "js": {
114
114
  "async": [],
115
115
  "sync": [
116
- "__mf/js/async/648.b65797fa.js"
116
+ "__mf/js/async/634.b68acb18.js"
117
117
  ]
118
118
  },
119
119
  "css": {
@@ -163,14 +163,14 @@
163
163
  {
164
164
  "id": "TracingGanttChart:lodash",
165
165
  "name": "lodash",
166
- "version": "4.17.21",
166
+ "version": "4.17.23",
167
167
  "singleton": true,
168
- "requiredVersion": "^4.17.21",
168
+ "requiredVersion": "^4.17.23",
169
169
  "assets": {
170
170
  "js": {
171
171
  "async": [],
172
172
  "sync": [
173
- "__mf/js/async/392.6a9270a8.js"
173
+ "__mf/js/async/392.c563796d.js"
174
174
  ]
175
175
  },
176
176
  "css": {
@@ -248,14 +248,14 @@
248
248
  "__mf/js/async/666.4cf9c453.js",
249
249
  "__mf/js/async/439.63c7b180.js",
250
250
  "__mf/js/async/895.eb528fc2.js",
251
- "__mf/js/async/__federation_expose_TracingGanttChart.06661c1c.js"
251
+ "__mf/js/async/__federation_expose_TracingGanttChart.3ea317ee.js"
252
252
  ],
253
253
  "async": [
254
254
  "__mf/js/async/588.a1fce2da.js",
255
255
  "__mf/js/async/71.ec1919d7.js",
256
256
  "__mf/js/async/356.7ea3eee9.js",
257
257
  "__mf/js/async/43.55c495e3.js",
258
- "__mf/js/async/157.8aecbc6c.js",
258
+ "__mf/js/async/157.77f5f5a1.js",
259
259
  "__mf/js/async/lib-router.aed93ee9.js",
260
260
  "__mf/js/async/177.cf9df204.js"
261
261
  ]
package/mf-stats.json CHANGED
@@ -5,11 +5,11 @@
5
5
  "name": "TracingGanttChart",
6
6
  "type": "app",
7
7
  "buildInfo": {
8
- "buildVersion": "0.12.0-rc.1",
8
+ "buildVersion": "0.12.1",
9
9
  "buildName": "@perses-dev/tracing-gantt-chart-plugin"
10
10
  },
11
11
  "remoteEntry": {
12
- "name": "__mf/js/TracingGanttChart.97979d6e.js",
12
+ "name": "__mf/js/TracingGanttChart.f5573ac3.js",
13
13
  "path": "",
14
14
  "type": "global"
15
15
  },
@@ -95,17 +95,17 @@
95
95
  },
96
96
  {
97
97
  "singleton": true,
98
- "requiredVersion": "^0.53.0-rc.2",
98
+ "requiredVersion": "^0.53.1",
99
99
  "shareScope": "default",
100
100
  "name": "@perses-dev/components",
101
- "version": "0.53.0-rc.2",
101
+ "version": "0.53.1",
102
102
  "eager": false,
103
103
  "id": "TracingGanttChart:@perses-dev/components",
104
104
  "assets": {
105
105
  "js": {
106
106
  "async": [],
107
107
  "sync": [
108
- "__mf/js/async/716.210298fd.js"
108
+ "__mf/js/async/12.c9423551.js"
109
109
  ]
110
110
  },
111
111
  "css": {
@@ -119,17 +119,17 @@
119
119
  },
120
120
  {
121
121
  "singleton": true,
122
- "requiredVersion": "^0.53.0-rc.2",
122
+ "requiredVersion": "^0.53.1",
123
123
  "shareScope": "default",
124
124
  "name": "@perses-dev/plugin-system",
125
- "version": "0.53.0-rc.2",
125
+ "version": "0.53.1",
126
126
  "eager": false,
127
127
  "id": "TracingGanttChart:@perses-dev/plugin-system",
128
128
  "assets": {
129
129
  "js": {
130
130
  "async": [],
131
131
  "sync": [
132
- "__mf/js/async/648.b65797fa.js"
132
+ "__mf/js/async/634.b68acb18.js"
133
133
  ]
134
134
  },
135
135
  "css": {
@@ -187,17 +187,17 @@
187
187
  },
188
188
  {
189
189
  "singleton": true,
190
- "requiredVersion": "^4.17.21",
190
+ "requiredVersion": "^4.17.23",
191
191
  "shareScope": "default",
192
192
  "name": "lodash",
193
- "version": "4.17.21",
193
+ "version": "4.17.23",
194
194
  "eager": false,
195
195
  "id": "TracingGanttChart:lodash",
196
196
  "assets": {
197
197
  "js": {
198
198
  "async": [],
199
199
  "sync": [
200
- "__mf/js/async/392.6a9270a8.js"
200
+ "__mf/js/async/392.c563796d.js"
201
201
  ]
202
202
  },
203
203
  "css": {
@@ -297,14 +297,14 @@
297
297
  "__mf/js/async/666.4cf9c453.js",
298
298
  "__mf/js/async/439.63c7b180.js",
299
299
  "__mf/js/async/895.eb528fc2.js",
300
- "__mf/js/async/__federation_expose_TracingGanttChart.06661c1c.js"
300
+ "__mf/js/async/__federation_expose_TracingGanttChart.3ea317ee.js"
301
301
  ],
302
302
  "async": [
303
303
  "__mf/js/async/588.a1fce2da.js",
304
304
  "__mf/js/async/71.ec1919d7.js",
305
305
  "__mf/js/async/356.7ea3eee9.js",
306
306
  "__mf/js/async/43.55c495e3.js",
307
- "__mf/js/async/157.8aecbc6c.js",
307
+ "__mf/js/async/157.77f5f5a1.js",
308
308
  "__mf/js/async/lib-router.aed93ee9.js",
309
309
  "__mf/js/async/177.cf9df204.js"
310
310
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perses-dev/tracing-gantt-chart-plugin",
3
- "version": "0.12.0-rc.1",
3
+ "version": "0.12.1",
4
4
  "homepage": "https://github.com/perses/plugins/blob/main/README.md",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,9 +30,9 @@
30
30
  "@emotion/react": "^11.7.1",
31
31
  "@emotion/styled": "^11.6.0",
32
32
  "@hookform/resolvers": "^3.2.0",
33
- "@perses-dev/components": "^0.53.0-rc.2",
34
- "@perses-dev/core": "^0.53.0-rc.0",
35
- "@perses-dev/plugin-system": "^0.53.0-rc.2",
33
+ "@perses-dev/components": "^0.53.1",
34
+ "@perses-dev/core": "^0.53.0",
35
+ "@perses-dev/plugin-system": "^0.53.1",
36
36
  "date-fns": "^4.1.0",
37
37
  "date-fns-tz": "^3.2.0",
38
38
  "echarts": "5.5.0",
@@ -1,2 +0,0 @@
1
- /*! For license information please see 392.6a9270a8.js.LICENSE.txt */
2
- (self.chunk_TracingGanttChart=self.chunk_TracingGanttChart||[]).push([["392"],{17243:function(n,t,r){n=r.nmd(n),(function(){var e,u="Expected a function",i="__lodash_hash_undefined__",o="__lodash_placeholder__",f=1/0,a=0/0,c=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],l="[object Arguments]",s="[object Array]",h="[object Boolean]",p="[object Date]",v="[object Error]",_="[object Function]",g="[object GeneratorFunction]",y="[object Map]",d="[object Number]",b="[object Object]",w="[object Promise]",m="[object RegExp]",x="[object Set]",j="[object String]",A="[object Symbol]",k="[object WeakMap]",O="[object ArrayBuffer]",I="[object DataView]",R="[object Float32Array]",z="[object Float64Array]",E="[object Int8Array]",S="[object Int16Array]",C="[object Int32Array]",W="[object Uint8Array]",L="[object Uint8ClampedArray]",T="[object Uint16Array]",U="[object Uint32Array]",B=/\b__p \+= '';/g,$=/\b(__p \+=) '' \+/g,D=/(__e\(.*?\)|\b__t\)) \+\n'';/g,M=/&(?:amp|lt|gt|quot|#39);/g,F=/[&<>"']/g,N=RegExp(M.source),P=RegExp(F.source),q=/<%-([\s\S]+?)%>/g,Z=/<%([\s\S]+?)%>/g,G=/<%=([\s\S]+?)%>/g,K=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,V=/^\w*$/,H=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/[\\^$.*+?()[\]{}|]/g,Y=RegExp(J.source),Q=/^\s+/,X=/\s/,nn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,nt=/\{\n\/\* \[wrapped with (.+)\] \*/,nr=/,? & /,ne=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nu=/[()=,{}\[\]\/\s]/,ni=/\\(\\)?/g,no=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,nf=/\w*$/,na=/^[-+]0x[0-9a-f]+$/i,nc=/^0b[01]+$/i,nl=/^\[object .+?Constructor\]$/,ns=/^0o[0-7]+$/i,nh=/^(?:0|[1-9]\d*)$/,np=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,nv=/($^)/,n_=/['\n\r\u2028\u2029\\]/g,ng="\\ud800-\\udfff",ny="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",nd="\\u2700-\\u27bf",nb="a-z\\xdf-\\xf6\\xf8-\\xff",nw="A-Z\\xc0-\\xd6\\xd8-\\xde",nm="\\ufe0e\\ufe0f",nx="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",nj="['’]",nA="["+nx+"]",nk="["+ny+"]",nO="["+nb+"]",nI="[^"+ng+nx+"\\d+"+nd+nb+nw+"]",nR="\\ud83c[\\udffb-\\udfff]",nz="[^"+ng+"]",nE="(?:\\ud83c[\\udde6-\\uddff]){2}",nS="[\\ud800-\\udbff][\\udc00-\\udfff]",nC="["+nw+"]",nW="\\u200d",nL="(?:"+nO+"|"+nI+")",nT="(?:"+nC+"|"+nI+")",nU="(?:"+nj+"(?:d|ll|m|re|s|t|ve))?",nB="(?:"+nj+"(?:D|LL|M|RE|S|T|VE))?",n$="(?:"+nk+"|"+nR+")?",nD="["+nm+"]?",nM="(?:"+nW+"(?:"+[nz,nE,nS].join("|")+")"+nD+n$+")*",nF=nD+n$+nM,nN="(?:"+["["+nd+"]",nE,nS].join("|")+")"+nF,nP="(?:"+[nz+nk+"?",nk,nE,nS,"["+ng+"]"].join("|")+")",nq=RegExp(nj,"g"),nZ=RegExp(nk,"g"),nG=RegExp(nR+"(?="+nR+")|"+nP+nF,"g"),nK=RegExp([nC+"?"+nO+"+"+nU+"(?="+[nA,nC,"$"].join("|")+")",nT+"+"+nB+"(?="+[nA,nC+nL,"$"].join("|")+")",nC+"?"+nL+"+"+nU,nC+"+"+nB,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",nN].join("|"),"g"),nV=RegExp("["+nW+ng+ny+nm+"]"),nH=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,nJ=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],nY=-1,nQ={};nQ[R]=nQ[z]=nQ[E]=nQ[S]=nQ[C]=nQ[W]=nQ[L]=nQ[T]=nQ[U]=!0,nQ[l]=nQ[s]=nQ[O]=nQ[h]=nQ[I]=nQ[p]=nQ[v]=nQ[_]=nQ[y]=nQ[d]=nQ[b]=nQ[m]=nQ[x]=nQ[j]=nQ[k]=!1;var nX={};nX[l]=nX[s]=nX[O]=nX[I]=nX[h]=nX[p]=nX[R]=nX[z]=nX[E]=nX[S]=nX[C]=nX[y]=nX[d]=nX[b]=nX[m]=nX[x]=nX[j]=nX[A]=nX[W]=nX[L]=nX[T]=nX[U]=!0,nX[v]=nX[_]=nX[k]=!1;var n0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},n1=parseFloat,n2=parseInt,n3="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,n8="object"==typeof self&&self&&self.Object===Object&&self,n4=n3||n8||Function("return this")(),n6=t&&!t.nodeType&&t,n9=n6&&n&&!n.nodeType&&n,n7=n9&&n9.exports===n6,n5=n7&&n3.process,tn=function(){try{var n=n9&&n9.require&&n9.require("util").types;if(n)return n;return n5&&n5.binding&&n5.binding("util")}catch(n){}}(),tt=tn&&tn.isArrayBuffer,tr=tn&&tn.isDate,te=tn&&tn.isMap,tu=tn&&tn.isRegExp,ti=tn&&tn.isSet,to=tn&&tn.isTypedArray;function tf(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function ta(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function tc(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&!1!==t(n[r],r,n););return n}function tl(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return!1;return!0}function ts(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function th(n,t){return!!(null==n?0:n.length)&&tx(n,t,0)>-1}function tp(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return!0;return!1}function tv(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function t_(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function tg(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);return r}function ty(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function td(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return!0;return!1}var tb=tO("length");function tw(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,!1}),e}function tm(n,t,r,e){for(var u=n.length,i=r+(e?1:-1);e?i--:++i<u;)if(t(n[i],i,n))return i;return -1}function tx(n,t,r){return t==t?function(n,t,r){for(var e=r-1,u=n.length;++e<u;)if(n[e]===t)return e;return -1}(n,t,r):tm(n,tA,r)}function tj(n,t,r,e){for(var u=r-1,i=n.length;++u<i;)if(e(n[u],t))return u;return -1}function tA(n){return n!=n}function tk(n,t){var r=null==n?0:n.length;return r?tz(n,t)/r:a}function tO(n){return function(t){return null==t?e:t[n]}}function tI(n){return function(t){return null==n?e:n[t]}}function tR(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=!1,n):t(r,n,u,i)}),r}function tz(n,t){for(var r,u=-1,i=n.length;++u<i;){var o=t(n[u]);e!==o&&(r=e===r?o:r+o)}return r}function tE(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function tS(n){return n?n.slice(0,tK(n)+1).replace(Q,""):n}function tC(n){return function(t){return n(t)}}function tW(n,t){return tv(t,function(t){return n[t]})}function tL(n,t){return n.has(t)}function tT(n,t){for(var r=-1,e=n.length;++r<e&&tx(t,n[r],0)>-1;);return r}function tU(n,t){for(var r=n.length;r--&&tx(t,n[r],0)>-1;);return r}var tB=tI({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),t$=tI({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function tD(n){return"\\"+n0[n]}function tM(n){return nV.test(n)}function tF(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function tN(n,t){return function(r){return n(t(r))}}function tP(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var f=n[r];(f===t||f===o)&&(n[r]=o,i[u++]=r)}return i}function tq(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function tZ(n){return tM(n)?function(n){for(var t=nG.lastIndex=0;nG.test(n);)++t;return t}(n):tb(n)}function tG(n){return tM(n)?n.match(nG)||[]:n.split("")}function tK(n){for(var t=n.length;t--&&X.test(n.charAt(t)););return t}var tV=tI({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),tH=function n(t){var r,X,ng,ny,nd=(t=null==t?n4:tH.defaults(n4.Object(),t,tH.pick(n4,nJ))).Array,nb=t.Date,nw=t.Error,nm=t.Function,nx=t.Math,nj=t.Object,nA=t.RegExp,nk=t.String,nO=t.TypeError,nI=nd.prototype,nR=nm.prototype,nz=nj.prototype,nE=t["__core-js_shared__"],nS=nR.toString,nC=nz.hasOwnProperty,nW=0,nL=(r=/[^.]+$/.exec(nE&&nE.keys&&nE.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",nT=nz.toString,nU=nS.call(nj),nB=n4._,n$=nA("^"+nS.call(nC).replace(J,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nD=n7?t.Buffer:e,nM=t.Symbol,nF=t.Uint8Array,nN=nD?nD.allocUnsafe:e,nP=tN(nj.getPrototypeOf,nj),nG=nj.create,nV=nz.propertyIsEnumerable,n0=nI.splice,n3=nM?nM.isConcatSpreadable:e,n8=nM?nM.iterator:e,n6=nM?nM.toStringTag:e,n9=function(){try{var n=uh(nj,"defineProperty");return n({},"",{}),n}catch(n){}}(),n5=t.clearTimeout!==n4.clearTimeout&&t.clearTimeout,tn=nb&&nb.now!==n4.Date.now&&nb.now,tb=t.setTimeout!==n4.setTimeout&&t.setTimeout,tI=nx.ceil,tJ=nx.floor,tY=nj.getOwnPropertySymbols,tQ=nD?nD.isBuffer:e,tX=t.isFinite,t0=nI.join,t1=tN(nj.keys,nj),t2=nx.max,t3=nx.min,t8=nb.now,t4=t.parseInt,t6=nx.random,t9=nI.reverse,t7=uh(t,"DataView"),t5=uh(t,"Map"),rn=uh(t,"Promise"),rt=uh(t,"Set"),rr=uh(t,"WeakMap"),re=uh(nj,"create"),ru=rr&&new rr,ri={},ro=uB(t7),rf=uB(t5),ra=uB(rn),rc=uB(rt),rl=uB(rr),rs=nM?nM.prototype:e,rh=rs?rs.valueOf:e,rp=rs?rs.toString:e;function rv(n){if(iV(n)&&!iB(n)&&!(n instanceof rd)){if(n instanceof ry)return n;if(nC.call(n,"__wrapped__"))return u$(n)}return new ry(n)}var r_=function(){function n(){}return function(t){if(!iK(t))return{};if(nG)return nG(t);n.prototype=t;var r=new n;return n.prototype=e,r}}();function rg(){}function ry(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=e}function rd(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=0xffffffff,this.__views__=[]}function rb(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function rw(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function rm(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function rx(n){var t=-1,r=null==n?0:n.length;for(this.__data__=new rm;++t<r;)this.add(n[t])}function rj(n){var t=this.__data__=new rw(n);this.size=t.size}function rA(n,t){var r=iB(n),e=!r&&iU(n),u=!r&&!e&&iF(n),i=!r&&!e&&!u&&i2(n),o=r||e||u||i,f=o?tE(n.length,nk):[],a=f.length;for(var c in n)(t||nC.call(n,c))&&!(o&&("length"==c||u&&("offset"==c||"parent"==c)||i&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||ub(c,a)))&&f.push(c);return f}function rk(n){var t=n.length;return t?n[ec(0,t-1)]:e}rv.templateSettings={escape:q,evaluate:Z,interpolate:G,variable:"",imports:{_:rv}},rv.prototype=rg.prototype,rv.prototype.constructor=rv,ry.prototype=r_(rg.prototype),ry.prototype.constructor=ry,rd.prototype=r_(rg.prototype),rd.prototype.constructor=rd,rb.prototype.clear=function(){this.__data__=re?re(null):{},this.size=0},rb.prototype.delete=function(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=!!t,t},rb.prototype.get=function(n){var t=this.__data__;if(re){var r=t[n];return r===i?e:r}return nC.call(t,n)?t[n]:e},rb.prototype.has=function(n){var t=this.__data__;return re?t[n]!==e:nC.call(t,n)},rb.prototype.set=function(n,t){var r=this.__data__;return this.size+=+!this.has(n),r[n]=re&&e===t?i:t,this},rw.prototype.clear=function(){this.__data__=[],this.size=0},rw.prototype.delete=function(n){var t=this.__data__,r=rR(t,n);return!(r<0)&&(r==t.length-1?t.pop():n0.call(t,r,1),--this.size,!0)},rw.prototype.get=function(n){var t=this.__data__,r=rR(t,n);return r<0?e:t[r][1]},rw.prototype.has=function(n){return rR(this.__data__,n)>-1},rw.prototype.set=function(n,t){var r=this.__data__,e=rR(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this},rm.prototype.clear=function(){this.size=0,this.__data__={hash:new rb,map:new(t5||rw),string:new rb}},rm.prototype.delete=function(n){var t=ul(this,n).delete(n);return this.size-=!!t,t},rm.prototype.get=function(n){return ul(this,n).get(n)},rm.prototype.has=function(n){return ul(this,n).has(n)},rm.prototype.set=function(n,t){var r=ul(this,n),e=r.size;return r.set(n,t),this.size+=+(r.size!=e),this},rx.prototype.add=rx.prototype.push=function(n){return this.__data__.set(n,i),this},rx.prototype.has=function(n){return this.__data__.has(n)};function rO(n,t,r){(e===r||iW(n[t],r))&&(e!==r||t in n)||rS(n,t,r)}function rI(n,t,r){var u=n[t];nC.call(n,t)&&iW(u,r)&&(e!==r||t in n)||rS(n,t,r)}function rR(n,t){for(var r=n.length;r--;)if(iW(n[r][0],t))return r;return -1}function rz(n,t,r,e){return r$(n,function(n,u,i){t(e,n,r(n),i)}),e}function rE(n,t){return n&&eF(t,ov(t),n)}function rS(n,t,r){"__proto__"==t&&n9?n9(n,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):n[t]=r}function rC(n,t){for(var r=-1,u=t.length,i=nd(u),o=null==n;++r<u;)i[r]=o?e:oc(n,t[r]);return i}function rW(n,t,r){return n==n&&(e!==r&&(n=n<=r?n:r),e!==t&&(n=n>=t?n:t)),n}function rL(n,t,r,u,i,o){var f,a=1&t,c=2&t,s=4&t;if(r&&(f=i?r(n,u,i,o):r(n)),e!==f)return f;if(!iK(n))return n;var v=iB(n);if(v){if(k=(w=n).length,B=new w.constructor(k),k&&"string"==typeof w[0]&&nC.call(w,"index")&&(B.index=w.index,B.input=w.input),f=B,!a)return eM(n,f)}else{var w,k,B,$,D,M,F,N,P=u_(n),q=P==_||P==g;if(iF(n))return eL(n,a);if(P==b||P==l||q&&!i){if(f=c||q?{}:uy(n),!a){return c?($=n,D=(N=f)&&eF(n,o_(n),N),eF($,uv($),D)):(M=n,F=rE(f,n),eF(M,up(M),F))}}else{if(!nX[P])return i?n:{};f=function(n,t,r){var e,u,i=n.constructor;switch(t){case O:return eT(n);case h:case p:return new i(+n);case I:return e=r?eT(n.buffer):n.buffer,new n.constructor(e,n.byteOffset,n.byteLength);case R:case z:case E:case S:case C:case W:case L:case T:case U:return eU(n,r);case y:return new i;case d:case j:return new i(n);case m:return(u=new n.constructor(n.source,nf.exec(n))).lastIndex=n.lastIndex,u;case x:return new i;case A:return rh?nj(rh.call(n)):{}}}(n,P,a)}}o||(o=new rj);var Z=o.get(n);if(Z)return Z;o.set(n,f),iX(n)?n.forEach(function(e){f.add(rL(e,t,r,e,n,o))}):iH(n)&&n.forEach(function(e,u){f.set(u,rL(e,t,r,u,n,o))});var G=s?c?ui:uu:c?o_:ov,K=v?e:G(n);return tc(K||n,function(e,u){K&&(e=n[u=e]),rI(f,u,rL(e,t,r,u,n,o))}),f}function rT(n,t,r){var u=r.length;if(null==n)return!u;for(n=nj(n);u--;){var i=r[u],o=t[i],f=n[i];if(e===f&&!(i in n)||!o(f))return!1}return!0}function rU(n,t,r){if("function"!=typeof n)throw new nO(u);return uE(function(){n.apply(e,r)},t)}function rB(n,t,r,e){var u=-1,i=th,o=!0,f=n.length,a=[],c=t.length;if(!f)return a;r&&(t=tv(t,tC(r))),e?(i=tp,o=!1):t.length>=200&&(i=tL,o=!1,t=new rx(t));n:for(;++u<f;){var l=n[u],s=null==r?l:r(l);if(l=e||0!==l?l:0,o&&s==s){for(var h=c;h--;)if(t[h]===s)continue n;a.push(l)}else i(t,s,e)||a.push(l)}return a}rj.prototype.clear=function(){this.__data__=new rw,this.size=0},rj.prototype.delete=function(n){var t=this.__data__,r=t.delete(n);return this.size=t.size,r},rj.prototype.get=function(n){return this.__data__.get(n)},rj.prototype.has=function(n){return this.__data__.has(n)},rj.prototype.set=function(n,t){var r=this.__data__;if(r instanceof rw){var e=r.__data__;if(!t5||e.length<199)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new rm(e)}return r.set(n,t),this.size=r.size,this};var r$=eq(rG),rD=eq(rK,!0);function rM(n,t){var r=!0;return r$(n,function(n,e,u){return r=!!t(n,e,u)}),r}function rF(n,t,r){for(var u=-1,i=n.length;++u<i;){var o=n[u],f=t(o);if(null!=f&&(e===a?f==f&&!i1(f):r(f,a)))var a=f,c=o}return c}function rN(n,t){var r=[];return r$(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function rP(n,t,r,e,u){var i=-1,o=n.length;for(r||(r=ud),u||(u=[]);++i<o;){var f=n[i];t>0&&r(f)?t>1?rP(f,t-1,r,e,u):t_(u,f):e||(u[u.length]=f)}return u}var rq=eZ(),rZ=eZ(!0);function rG(n,t){return n&&rq(n,t,ov)}function rK(n,t){return n&&rZ(n,t,ov)}function rV(n,t){return ts(t,function(t){return iq(n[t])})}function rH(n,t){t=eS(t,n);for(var r=0,u=t.length;null!=n&&r<u;)n=n[uU(t[r++])];return r&&r==u?n:e}function rJ(n,t,r){var e=t(n);return iB(n)?e:t_(e,r(n))}function rY(n){var t;return null==n?e===n?"[object Undefined]":"[object Null]":n6&&n6 in nj(n)?function(n){var t=nC.call(n,n6),r=n[n6];try{n[n6]=e;var u=!0}catch(n){}var i=nT.call(n);return u&&(t?n[n6]=r:delete n[n6]),i}(n):(t=n,nT.call(t))}function rQ(n,t){return n>t}function rX(n,t){return null!=n&&nC.call(n,t)}function r0(n,t){return null!=n&&t in nj(n)}function r1(n,t,r){for(var u=r?tp:th,i=n[0].length,o=n.length,f=o,a=nd(o),c=1/0,l=[];f--;){var s=n[f];f&&t&&(s=tv(s,tC(t))),c=t3(s.length,c),a[f]=!r&&(t||i>=120&&s.length>=120)?new rx(f&&s):e}s=n[0];var h=-1,p=a[0];n:for(;++h<i&&l.length<c;){var v=s[h],_=t?t(v):v;if(v=r||0!==v?v:0,!(p?tL(p,_):u(l,_,r))){for(f=o;--f;){var g=a[f];if(!(g?tL(g,_):u(n[f],_,r)))continue n}p&&p.push(_),l.push(v)}}return l}function r2(n,t,r){t=eS(t,n);var u=null==(n=uI(n,t))?n:n[uU(uH(t))];return null==u?e:tf(u,n,r)}function r3(n){return iV(n)&&rY(n)==l}function r8(n,t,r,u,i){return n===t||(null!=n&&null!=t&&(iV(n)||iV(t))?function(n,t,r,u,i,o){var f=iB(n),a=iB(t),c=f?s:u_(n),_=a?s:u_(t);c=c==l?b:c,_=_==l?b:_;var g=c==b,w=_==b,k=c==_;if(k&&iF(n)){if(!iF(t))return!1;f=!0,g=!1}if(k&&!g)return o||(o=new rj),f||i2(n)?ur(n,t,r,u,i,o):function(n,t,r,e,u,i,o){switch(r){case I:if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)break;n=n.buffer,t=t.buffer;case O:if(n.byteLength!=t.byteLength||!i(new nF(n),new nF(t)))break;return!0;case h:case p:case d:return iW(+n,+t);case v:return n.name==t.name&&n.message==t.message;case m:case j:return n==t+"";case y:var f=tF;case x:var a=1&e;if(f||(f=tq),n.size!=t.size&&!a)break;var c=o.get(n);if(c)return c==t;e|=2,o.set(n,t);var l=ur(f(n),f(t),e,u,i,o);return o.delete(n),l;case A:if(rh)return rh.call(n)==rh.call(t)}return!1}(n,t,c,r,u,i,o);if(!(1&r)){var R=g&&nC.call(n,"__wrapped__"),z=w&&nC.call(t,"__wrapped__");if(R||z){var E=R?n.value():n,S=z?t.value():t;return o||(o=new rj),i(E,S,r,u,o)}}return!!k&&(o||(o=new rj),function(n,t,r,u,i,o){var f=1&r,a=uu(n),c=a.length;if(c!=uu(t).length&&!f)return!1;for(var l=c;l--;){var s=a[l];if(!(f?s in t:nC.call(t,s)))return!1}var h=o.get(n),p=o.get(t);if(h&&p)return h==t&&p==n;var v=!0;o.set(n,t),o.set(t,n);for(var _=f;++l<c;){var g=n[s=a[l]],y=t[s];if(u)var d=f?u(y,g,s,t,n,o):u(g,y,s,n,t,o);if(!(e===d?g===y||i(g,y,r,u,o):d)){v=!1;break}_||(_="constructor"==s)}if(v&&!_){var b=n.constructor,w=t.constructor;b!=w&&"constructor"in n&&"constructor"in t&&!("function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w)&&(v=!1)}return o.delete(n),o.delete(t),v}(n,t,r,u,i,o))}(n,t,r,u,r8,i):n!=n&&t!=t)}function r4(n,t,r,u){var i=r.length,o=i,f=!u;if(null==n)return!o;for(n=nj(n);i--;){var a=r[i];if(f&&a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++i<o;){var c=(a=r[i])[0],l=n[c],s=a[1];if(f&&a[2]){if(e===l&&!(c in n))return!1}else{var h=new rj;if(u)var p=u(l,s,c,n,t,h);if(!(e===p?r8(s,l,3,u,h):p))return!1}}return!0}function r6(n){var t;return!(!iK(n)||(t=n,nL&&nL in t))&&(iq(n)?n$:nl).test(uB(n))}function r9(n){return"function"==typeof n?n:null==n?oM:"object"==typeof n?iB(n)?er(n[0],n[1]):et(n):oH(n)}function r7(n){if(!uA(n))return t1(n);var t=[];for(var r in nj(n))nC.call(n,r)&&"constructor"!=r&&t.push(r);return t}function r5(n,t){return n<t}function en(n,t){var r=-1,e=iD(n)?nd(n.length):[];return r$(n,function(n,u,i){e[++r]=t(n,u,i)}),e}function et(n){var t=us(n);return 1==t.length&&t[0][2]?uk(t[0][0],t[0][1]):function(r){return r===n||r4(r,n,t)}}function er(n,t){var r;return um(n)&&(r=t)==r&&!iK(r)?uk(uU(n),t):function(r){var u=oc(r,n);return e===u&&u===t?ol(r,n):r8(t,u,3)}}function ee(n,t,r,u,i){n!==t&&rq(t,function(o,f){if(i||(i=new rj),iK(o))!function(n,t,r,u,i,o,f){var a=uR(n,r),c=uR(t,r),l=f.get(c);if(l)return rO(n,r,l);var s=o?o(a,c,r+"",n,t,f):e,h=e===s;if(h){var p=iB(c),v=!p&&iF(c),_=!p&&!v&&i2(c);s=c,p||v||_?iB(a)?s=a:iM(a)?s=eM(a):v?(h=!1,s=eL(c,!0)):_?(h=!1,s=eU(c,!0)):s=[]:iY(c)||iU(c)?(s=a,iU(a)?s=on(a):(!iK(a)||iq(a))&&(s=uy(c))):h=!1}h&&(f.set(c,s),i(s,c,u,o,f),f.delete(c)),rO(n,r,s)}(n,t,f,r,ee,u,i);else{var a=u?u(uR(n,f),o,f+"",n,t,i):e;e===a&&(a=o),rO(n,f,a)}},o_)}function eu(n,t){var r=n.length;if(r)return ub(t+=t<0?r:0,r)?n[t]:e}function ei(n,t,r){t=t.length?tv(t,function(n){return iB(n)?function(t){return rH(t,1===n.length?n[0]:n)}:n}):[oM];var e=-1;t=tv(t,tC(uc()));var u=en(n,function(n,r,u){return{criteria:tv(t,function(t){return t(n)}),index:++e,value:n}}),i=u.length;for(u.sort(function(n,t){return function(n,t,r){for(var e=-1,u=n.criteria,i=t.criteria,o=u.length,f=r.length;++e<o;){var a=eB(u[e],i[e]);if(a){if(e>=f)return a;return a*("desc"==r[e]?-1:1)}}return n.index-t.index}(n,t,r)});i--;)u[i]=u[i].value;return u}function eo(n,t,r){for(var e=-1,u=t.length,i={};++e<u;){var o=t[e],f=rH(n,o);r(f,o)&&eh(i,eS(o,n),f)}return i}function ef(n,t,r,e){var u=e?tj:tx,i=-1,o=t.length,f=n;for(n===t&&(t=eM(t)),r&&(f=tv(n,tC(r)));++i<o;)for(var a=0,c=t[i],l=r?r(c):c;(a=u(f,l,a,e))>-1;)f!==n&&n0.call(f,a,1),n0.call(n,a,1);return n}function ea(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(r==e||u!==i){var i=u;ub(u)?n0.call(n,u,1):ej(n,u)}}return n}function ec(n,t){return n+tJ(t6()*(t-n+1))}function el(n,t){var r="";if(!n||t<1||t>0x1fffffffffffff)return r;do t%2&&(r+=n),(t=tJ(t/2))&&(n+=n);while(t);return r}function es(n,t){return uS(uO(n,t,oM),n+"")}function eh(n,t,r,u){if(!iK(n))return n;t=eS(t,n);for(var i=-1,o=t.length,f=o-1,a=n;null!=a&&++i<o;){var c=uU(t[i]),l=r;if("__proto__"===c||"constructor"===c||"prototype"===c)break;if(i!=f){var s=a[c];l=u?u(s,c,a):e,e===l&&(l=iK(s)?s:ub(t[i+1])?[]:{})}rI(a,c,l),a=a[c]}return n}var ep=ru?function(n,t){return ru.set(n,t),n}:oM,ev=n9?function(n,t){return n9(n,"toString",{configurable:!0,enumerable:!1,value:oB(t),writable:!0})}:oM;function e_(n,t,r){var e=-1,u=n.length;t<0&&(t=-t>u?0:u+t),(r=r>u?u:r)<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=nd(u);++e<u;)i[e]=n[e+t];return i}function eg(n,t){var r;return r$(n,function(n,e,u){return!(r=t(n,e,u))}),!!r}function ey(n,t,r){var e=0,u=null==n?e:n.length;if("number"==typeof t&&t==t&&u<=0x7fffffff){for(;e<u;){var i=e+u>>>1,o=n[i];null!==o&&!i1(o)&&(r?o<=t:o<t)?e=i+1:u=i}return u}return ed(n,t,oM,r)}function ed(n,t,r,u){var i=0,o=null==n?0:n.length;if(0===o)return 0;for(var f=(t=r(t))!=t,a=null===t,c=i1(t),l=e===t;i<o;){var s=tJ((i+o)/2),h=r(n[s]),p=e!==h,v=null===h,_=h==h,g=i1(h);if(f)var y=u||_;else y=l?_&&(u||p):a?_&&p&&(u||!v):c?_&&p&&!v&&(u||!g):!v&&!g&&(u?h<=t:h<t);y?i=s+1:o=s}return t3(o,0xfffffffe)}function eb(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r],f=t?t(o):o;if(!r||!iW(f,a)){var a=f;i[u++]=0===o?0:o}}return i}function ew(n){return"number"==typeof n?n:i1(n)?a:+n}function em(n){if("string"==typeof n)return n;if(iB(n))return tv(n,em)+"";if(i1(n))return rp?rp.call(n):"";var t=n+"";return"0"==t&&1/n==-f?"-0":t}function ex(n,t,r){var e=-1,u=th,i=n.length,o=!0,f=[],a=f;if(r)o=!1,u=tp;else if(i>=200){var c=t?null:e6(n);if(c)return tq(c);o=!1,u=tL,a=new rx}else a=t?[]:f;n:for(;++e<i;){var l=n[e],s=t?t(l):l;if(l=r||0!==l?l:0,o&&s==s){for(var h=a.length;h--;)if(a[h]===s)continue n;t&&a.push(s),f.push(l)}else u(a,s,r)||(a!==f&&a.push(s),f.push(l))}return f}function ej(n,t){return t=eS(t,n),null==(n=uI(n,t))||delete n[uU(uH(t))]}function eA(n,t,r,e){return eh(n,t,r(rH(n,t)),e)}function ek(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++i<u)&&t(n[i],i,n););return r?e_(n,e?0:i,e?i+1:u):e_(n,e?i+1:0,e?u:i)}function eO(n,t){var r=n;return r instanceof rd&&(r=r.value()),tg(t,function(n,t){return t.func.apply(t.thisArg,t_([n],t.args))},r)}function eI(n,t,r){var e=n.length;if(e<2)return e?ex(n[0]):[];for(var u=-1,i=nd(e);++u<e;)for(var o=n[u],f=-1;++f<e;)f!=u&&(i[u]=rB(i[u]||o,n[f],t,r));return ex(rP(i,1),t,r)}function eR(n,t,r){for(var u=-1,i=n.length,o=t.length,f={};++u<i;){var a=u<o?t[u]:e;r(f,n[u],a)}return f}function ez(n){return iM(n)?n:[]}function eE(n){return"function"==typeof n?n:oM}function eS(n,t){return iB(n)?n:um(n,t)?[n]:uT(ot(n))}function eC(n,t,r){var u=n.length;return r=e===r?u:r,!t&&r>=u?n:e_(n,t,r)}var eW=n5||function(n){return n4.clearTimeout(n)};function eL(n,t){if(t)return n.slice();var r=n.length,e=nN?nN(r):new n.constructor(r);return n.copy(e),e}function eT(n){var t=new n.constructor(n.byteLength);return new nF(t).set(new nF(n)),t}function eU(n,t){var r=t?eT(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}function eB(n,t){if(n!==t){var r=e!==n,u=null===n,i=n==n,o=i1(n),f=e!==t,a=null===t,c=t==t,l=i1(t);if(!a&&!l&&!o&&n>t||o&&f&&c&&!a&&!l||u&&f&&c||!r&&c||!i)return 1;if(!u&&!o&&!l&&n<t||l&&r&&i&&!u&&!o||a&&r&&i||!f&&i||!c)return -1}return 0}function e$(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,a=t.length,c=t2(i-o,0),l=nd(a+c),s=!e;++f<a;)l[f]=t[f];for(;++u<o;)(s||u<i)&&(l[r[u]]=n[u]);for(;c--;)l[f++]=n[u++];return l}function eD(n,t,r,e){for(var u=-1,i=n.length,o=-1,f=r.length,a=-1,c=t.length,l=t2(i-f,0),s=nd(l+c),h=!e;++u<l;)s[u]=n[u];for(var p=u;++a<c;)s[p+a]=t[a];for(;++o<f;)(h||u<i)&&(s[p+r[o]]=n[u++]);return s}function eM(n,t){var r=-1,e=n.length;for(t||(t=nd(e));++r<e;)t[r]=n[r];return t}function eF(n,t,r,u){var i=!r;r||(r={});for(var o=-1,f=t.length;++o<f;){var a=t[o],c=u?u(r[a],n[a],a,r,n):e;e===c&&(c=n[a]),i?rS(r,a,c):rI(r,a,c)}return r}function eN(n,t){return function(r,e){var u=iB(r)?ta:rz,i=t?t():{};return u(r,n,uc(e,2),i)}}function eP(n){return es(function(t,r){var u=-1,i=r.length,o=i>1?r[i-1]:e,f=i>2?r[2]:e;for(o=n.length>3&&"function"==typeof o?(i--,o):e,f&&uw(r[0],r[1],f)&&(o=i<3?e:o,i=1),t=nj(t);++u<i;){var a=r[u];a&&n(t,a,u,o)}return t})}function eq(n,t){return function(r,e){if(null==r)return r;if(!iD(r))return n(r,e);for(var u=r.length,i=t?u:-1,o=nj(r);(t?i--:++i<u)&&!1!==e(o[i],i,o););return r}}function eZ(n){return function(t,r,e){for(var u=-1,i=nj(t),o=e(t),f=o.length;f--;){var a=o[n?f:++u];if(!1===r(i[a],a,i))break}return t}}function eG(n){return function(t){var r=tM(t=ot(t))?tG(t):e,u=r?r[0]:t.charAt(0),i=r?eC(r,1).join(""):t.slice(1);return u[n]()+i}}function eK(n){return function(t){return tg(oL(oO(t).replace(nq,"")),n,"")}}function eV(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=r_(n.prototype),e=n.apply(r,t);return iK(e)?e:r}}function eH(n){return function(t,r,u){var i=nj(t);if(!iD(t)){var o=uc(r,3);t=ov(t),r=function(n){return o(i[n],n,i)}}var f=n(t,r,u);return f>-1?i[o?t[f]:f]:e}}function eJ(n){return ue(function(t){var r=t.length,i=r,o=ry.prototype.thru;for(n&&t.reverse();i--;){var f=t[i];if("function"!=typeof f)throw new nO(u);if(o&&!a&&"wrapper"==uf(f))var a=new ry([],!0)}for(i=a?i:r;++i<r;){var c=uf(f=t[i]),l="wrapper"==c?uo(f):e;a=l&&ux(l[0])&&424==l[1]&&!l[4].length&&1==l[9]?a[uf(l[0])].apply(a,l[3]):1==f.length&&ux(f)?a[c]():a.thru(f)}return function(){var n=arguments,e=n[0];if(a&&1==n.length&&iB(e))return a.plant(e).value();for(var u=0,i=r?t[u].apply(this,n):e;++u<r;)i=t[u].call(this,i);return i}})}function eY(n,t,r,u,i,o,f,a,c,l){var s=128&t,h=1&t,p=2&t,v=24&t,_=512&t,g=p?e:eV(n);function y(){for(var d=arguments.length,b=nd(d),w=d;w--;)b[w]=arguments[w];if(v)var m=ua(y),x=function(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e;return e}(b,m);if(u&&(b=e$(b,u,i,v)),o&&(b=eD(b,o,f,v)),d-=x,v&&d<l){var j=tP(b,m);return e8(n,t,eY,y.placeholder,r,b,j,a,c,l-d)}var A=h?r:this,k=p?A[n]:n;return d=b.length,a?b=function(n,t){for(var r=n.length,u=t3(t.length,r),i=eM(n);u--;){var o=t[u];n[u]=ub(o,r)?i[o]:e}return n}(b,a):_&&d>1&&b.reverse(),s&&c<d&&(b.length=c),this&&this!==n4&&this instanceof y&&(k=g||eV(k)),k.apply(A,b)}return y}function eQ(n,t){return function(r,e){var u,i;return u=t(e),i={},rG(r,function(t,r,e){n(i,u(t),r,e)}),i}}function eX(n,t){return function(r,u){var i;if(e===r&&e===u)return t;if(e!==r&&(i=r),e!==u){if(e===i)return u;"string"==typeof r||"string"==typeof u?(r=em(r),u=em(u)):(r=ew(r),u=ew(u)),i=n(r,u)}return i}}function e0(n){return ue(function(t){return t=tv(t,tC(uc())),es(function(r){var e=this;return n(t,function(n){return tf(n,e,r)})})})}function e1(n,t){var r=(t=e===t?" ":em(t)).length;if(r<2)return r?el(t,n):t;var u=el(t,tI(n/tZ(t)));return tM(t)?eC(tG(u),0,n).join(""):u.slice(0,n)}function e2(n){return function(t,r,u){u&&"number"!=typeof u&&uw(t,r,u)&&(r=u=e),t=i6(t),e===r?(r=t,t=0):r=i6(r),u=e===u?t<r?1:-1:i6(u);for(var i=t,o=r,f=u,a=-1,c=t2(tI((o-i)/(f||1)),0),l=nd(c);c--;)l[n?c:++a]=i,i+=f;return l}}function e3(n){return function(t,r){return("string"!=typeof t||"string"!=typeof r)&&(t=i5(t),r=i5(r)),n(t,r)}}function e8(n,t,r,u,i,o,f,a,c,l){var s=8&t,h=s?f:e,p=s?e:f,v=s?o:e,_=s?e:o;t|=s?32:64,4&(t&=~(s?64:32))||(t&=-4);var g=[n,t,i,v,h,_,p,a,c,l],y=r.apply(e,g);return ux(n)&&uz(y,g),y.placeholder=u,uC(y,n,t)}function e4(n){var t=nx[n];return function(n,r){if(n=i5(n),(r=null==r?0:t3(i9(r),292))&&tX(n)){var e=(ot(n)+"e").split("e");return+((e=(ot(t(e[0]+"e"+(+e[1]+r)))+"e").split("e"))[0]+"e"+(e[1]-r))}return t(n)}}var e6=rt&&1/tq(new rt([,-0]))[1]==f?function(n){return new rt(n)}:oZ;function e9(n){return function(t){var r,e,u=u_(t);return u==y?tF(t):u==x?(r=-1,e=Array(t.size),t.forEach(function(n){e[++r]=[n,n]}),e):tv(n(t),function(n){return[n,t[n]]})}}function e7(n,t,r,i,f,a,c,l){var s=2&t;if(!s&&"function"!=typeof n)throw new nO(u);var h=i?i.length:0;if(h||(t&=-97,i=f=e),c=e===c?c:t2(i9(c),0),l=e===l?l:i9(l),h-=f?f.length:0,64&t){var p=i,v=f;i=f=e}var _=s?e:uo(n),g=[n,t,r,i,f,p,v,a,c,l];if(_&&function(n,t){var r=n[1],e=t[1],u=r|e,i=u<131,f=128==e&&8==r||128==e&&256==r&&n[7].length<=t[8]||384==e&&t[7].length<=t[8]&&8==r;if(i||f){1&e&&(n[2]=t[2],u|=1&r?0:4);var a=t[3];if(a){var c=n[3];n[3]=c?e$(c,a,t[4]):a,n[4]=c?tP(n[3],o):t[4]}(a=t[5])&&(c=n[5],n[5]=c?eD(c,a,t[6]):a,n[6]=c?tP(n[5],o):t[6]),(a=t[7])&&(n[7]=a),128&e&&(n[8]=null==n[8]?t[8]:t3(n[8],t[8])),null==n[9]&&(n[9]=t[9]),n[0]=t[0],n[1]=u}}(g,_),n=g[0],t=g[1],r=g[2],i=g[3],f=g[4],(l=g[9]=g[9]===e?s?0:n.length:t2(g[9]-h,0))||!(24&t)||(t&=-25),t&&1!=t)8==t||16==t?R=function(n,t,r){var u=eV(n);function i(){for(var o=arguments.length,f=nd(o),a=o,c=ua(i);a--;)f[a]=arguments[a];var l=o<3&&f[0]!==c&&f[o-1]!==c?[]:tP(f,c);return(o-=l.length)<r?e8(n,t,eY,i.placeholder,e,f,l,e,e,r-o):tf(this&&this!==n4&&this instanceof i?u:n,this,f)}return i}(n,t,l):32!=t&&33!=t||f.length?R=eY.apply(e,g):(y=n,d=t,b=r,w=i,m=1&d,x=eV(y),R=function n(){for(var t=-1,r=arguments.length,e=-1,u=w.length,i=nd(u+r),o=this&&this!==n4&&this instanceof n?x:y;++e<u;)i[e]=w[e];for(;r--;)i[e++]=arguments[++t];return tf(o,m?b:this,i)});else var y,d,b,w,m,x,j,A,k,O,I,R=(j=n,A=t,k=r,O=1&A,I=eV(j),function n(){return(this&&this!==n4&&this instanceof n?I:j).apply(O?k:this,arguments)});return uC((_?ep:uz)(R,g),n,t)}function e5(n,t,r,u){return e===n||iW(n,nz[r])&&!nC.call(u,r)?t:n}function un(n,t,r,u,i,o){return iK(n)&&iK(t)&&(o.set(t,n),ee(n,t,e,un,o),o.delete(t)),n}function ut(n){return iY(n)?e:n}function ur(n,t,r,u,i,o){var f=1&r,a=n.length,c=t.length;if(a!=c&&!(f&&c>a))return!1;var l=o.get(n),s=o.get(t);if(l&&s)return l==t&&s==n;var h=-1,p=!0,v=2&r?new rx:e;for(o.set(n,t),o.set(t,n);++h<a;){var _=n[h],g=t[h];if(u)var y=f?u(g,_,h,t,n,o):u(_,g,h,n,t,o);if(e!==y){if(y)continue;p=!1;break}if(v){if(!td(t,function(n,t){if(!tL(v,t)&&(_===n||i(_,n,r,u,o)))return v.push(t)})){p=!1;break}}else if(!(_===g||i(_,g,r,u,o))){p=!1;break}}return o.delete(n),o.delete(t),p}function ue(n){return uS(uO(n,e,uq),n+"")}function uu(n){return rJ(n,ov,up)}function ui(n){return rJ(n,o_,uv)}var uo=ru?function(n){return ru.get(n)}:oZ;function uf(n){for(var t=n.name+"",r=ri[t],e=nC.call(ri,t)?r.length:0;e--;){var u=r[e],i=u.func;if(null==i||i==n)return u.name}return t}function ua(n){return(nC.call(rv,"placeholder")?rv:n).placeholder}function uc(){var n=rv.iteratee||oF;return n=n===oF?r9:n,arguments.length?n(arguments[0],arguments[1]):n}function ul(n,t){var r,e,u=n.__data__;return("string"==(e=typeof(r=t))||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==r:null===r)?u["string"==typeof t?"string":"hash"]:u.map}function us(n){for(var t=ov(n),r=t.length;r--;){var e,u=t[r],i=n[u];t[r]=[u,i,(e=i)==e&&!iK(e)]}return t}function uh(n,t){var r=null==n?e:n[t];return r6(r)?r:e}var up=tY?function(n){return null==n?[]:ts(tY(n=nj(n)),function(t){return nV.call(n,t)})}:oQ,uv=tY?function(n){for(var t=[];n;)t_(t,up(n)),n=nP(n);return t}:oQ,u_=rY;function ug(n,t,r){t=eS(t,n);for(var e=-1,u=t.length,i=!1;++e<u;){var o=uU(t[e]);if(!(i=null!=n&&r(n,o)))break;n=n[o]}return i||++e!=u?i:!!(u=null==n?0:n.length)&&iG(u)&&ub(o,u)&&(iB(n)||iU(n))}function uy(n){return"function"!=typeof n.constructor||uA(n)?{}:r_(nP(n))}function ud(n){return iB(n)||iU(n)||!!(n3&&n&&n[n3])}function ub(n,t){var r=typeof n;return!!(t=null==t?0x1fffffffffffff:t)&&("number"==r||"symbol"!=r&&nh.test(n))&&n>-1&&n%1==0&&n<t}function uw(n,t,r){if(!iK(r))return!1;var e=typeof t;return("number"==e?!!(iD(r)&&ub(t,r.length)):"string"==e&&t in r)&&iW(r[t],n)}function um(n,t){if(iB(n))return!1;var r=typeof n;return!!("number"==r||"symbol"==r||"boolean"==r||null==n||i1(n))||V.test(n)||!K.test(n)||null!=t&&n in nj(t)}function ux(n){var t=uf(n),r=rv[t];if("function"!=typeof r||!(t in rd.prototype))return!1;if(n===r)return!0;var e=uo(r);return!!e&&n===e[0]}(t7&&u_(new t7(new ArrayBuffer(1)))!=I||t5&&u_(new t5)!=y||rn&&u_(rn.resolve())!=w||rt&&u_(new rt)!=x||rr&&u_(new rr)!=k)&&(u_=function(n){var t=rY(n),r=t==b?n.constructor:e,u=r?uB(r):"";if(u)switch(u){case ro:return I;case rf:return y;case ra:return w;case rc:return x;case rl:return k}return t});var uj=nE?iq:oX;function uA(n){var t=n&&n.constructor;return n===("function"==typeof t&&t.prototype||nz)}function uk(n,t){return function(r){return null!=r&&r[n]===t&&(e!==t||n in nj(r))}}function uO(n,t,r){return t=t2(e===t?n.length-1:t,0),function(){for(var e=arguments,u=-1,i=t2(e.length-t,0),o=nd(i);++u<i;)o[u]=e[t+u];u=-1;for(var f=nd(t+1);++u<t;)f[u]=e[u];return f[t]=r(o),tf(n,this,f)}}function uI(n,t){return t.length<2?n:rH(n,e_(t,0,-1))}function uR(n,t){if(("constructor"!==t||"function"!=typeof n[t])&&"__proto__"!=t)return n[t]}var uz=uW(ep),uE=tb||function(n,t){return n4.setTimeout(n,t)},uS=uW(ev);function uC(n,t,r){var e,u,i,o=t+"";return uS(n,function(n,t){var r=t.length;if(!r)return n;var e=r-1;return t[e]=(r>1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(nn,"{\n/* [wrapped with "+t+"] */\n")}(o,(e=(i=o.match(nt))?i[1].split(nr):[],u=r,tc(c,function(n){var t="_."+n[0];u&n[1]&&!th(e,t)&&e.push(t)}),e.sort())))}function uW(n){var t=0,r=0;return function(){var u=t8(),i=16-(u-r);if(r=u,i>0){if(++t>=800)return arguments[0]}else t=0;return n.apply(e,arguments)}}function uL(n,t){var r=-1,u=n.length,i=u-1;for(t=e===t?u:t;++r<t;){var o=ec(r,i),f=n[o];n[o]=n[r],n[r]=f}return n.length=t,n}var uT=(ng=(X=iI(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(H,function(n,r,e,u){t.push(e?u.replace(ni,"$1"):r||n)}),t},function(n){return 500===ng.size&&ng.clear(),n})).cache,X);function uU(n){if("string"==typeof n||i1(n))return n;var t=n+"";return"0"==t&&1/n==-f?"-0":t}function uB(n){if(null!=n){try{return nS.call(n)}catch(n){}try{return n+""}catch(n){}}return""}function u$(n){if(n instanceof rd)return n.clone();var t=new ry(n.__wrapped__,n.__chain__);return t.__actions__=eM(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}var uD=es(function(n,t){return iM(n)?rB(n,rP(t,1,iM,!0)):[]}),uM=es(function(n,t){var r=uH(t);return iM(r)&&(r=e),iM(n)?rB(n,rP(t,1,iM,!0),uc(r,2)):[]}),uF=es(function(n,t){var r=uH(t);return iM(r)&&(r=e),iM(n)?rB(n,rP(t,1,iM,!0),e,r):[]});function uN(n,t,r){var e=null==n?0:n.length;if(!e)return -1;var u=null==r?0:i9(r);return u<0&&(u=t2(e+u,0)),tm(n,uc(t,3),u)}function uP(n,t,r){var u=null==n?0:n.length;if(!u)return -1;var i=u-1;return e!==r&&(i=i9(r),i=r<0?t2(u+i,0):t3(i,u-1)),tm(n,uc(t,3),i,!0)}function uq(n){return(null==n?0:n.length)?rP(n,1):[]}function uZ(n){return n&&n.length?n[0]:e}var uG=es(function(n){var t=tv(n,ez);return t.length&&t[0]===n[0]?r1(t):[]}),uK=es(function(n){var t=uH(n),r=tv(n,ez);return t===uH(r)?t=e:r.pop(),r.length&&r[0]===n[0]?r1(r,uc(t,2)):[]}),uV=es(function(n){var t=uH(n),r=tv(n,ez);return(t="function"==typeof t?t:e)&&r.pop(),r.length&&r[0]===n[0]?r1(r,e,t):[]});function uH(n){var t=null==n?0:n.length;return t?n[t-1]:e}var uJ=es(uY);function uY(n,t){return n&&n.length&&t&&t.length?ef(n,t):n}var uQ=ue(function(n,t){var r=null==n?0:n.length,e=rC(n,t);return ea(n,tv(t,function(n){return ub(n,r)?+n:n}).sort(eB)),e});function uX(n){return null==n?n:t9.call(n)}var u0=es(function(n){return ex(rP(n,1,iM,!0))}),u1=es(function(n){var t=uH(n);return iM(t)&&(t=e),ex(rP(n,1,iM,!0),uc(t,2))}),u2=es(function(n){var t=uH(n);return t="function"==typeof t?t:e,ex(rP(n,1,iM,!0),e,t)});function u3(n){if(!(n&&n.length))return[];var t=0;return n=ts(n,function(n){if(iM(n))return t=t2(n.length,t),!0}),tE(t,function(t){return tv(n,tO(t))})}function u8(n,t){if(!(n&&n.length))return[];var r=u3(n);return null==t?r:tv(r,function(n){return tf(t,e,n)})}var u4=es(function(n,t){return iM(n)?rB(n,t):[]}),u6=es(function(n){return eI(ts(n,iM))}),u9=es(function(n){var t=uH(n);return iM(t)&&(t=e),eI(ts(n,iM),uc(t,2))}),u7=es(function(n){var t=uH(n);return t="function"==typeof t?t:e,eI(ts(n,iM),e,t)}),u5=es(u3),it=es(function(n){var t=n.length,r=t>1?n[t-1]:e;return r="function"==typeof r?(n.pop(),r):e,u8(n,r)});function ir(n){var t=rv(n);return t.__chain__=!0,t}function ie(n,t){return t(n)}var iu=ue(function(n){var t=n.length,r=t?n[0]:0,u=this.__wrapped__,i=function(t){return rC(t,n)};return!(t>1)&&!this.__actions__.length&&u instanceof rd&&ub(r)?((u=u.slice(r,+r+ +!!t)).__actions__.push({func:ie,args:[i],thisArg:e}),new ry(u,this.__chain__).thru(function(n){return t&&!n.length&&n.push(e),n})):this.thru(i)}),ii=eN(function(n,t,r){nC.call(n,r)?++n[r]:rS(n,r,1)}),io=eH(uN),ia=eH(uP);function ic(n,t){return(iB(n)?tc:r$)(n,uc(t,3))}function il(n,t){return(iB(n)?function(n,t){for(var r=null==n?0:n.length;r--&&!1!==t(n[r],r,n););return n}:rD)(n,uc(t,3))}var is=eN(function(n,t,r){nC.call(n,r)?n[r].push(t):rS(n,r,[t])}),ih=es(function(n,t,r){var e=-1,u="function"==typeof t,i=iD(n)?nd(n.length):[];return r$(n,function(n){i[++e]=u?tf(t,n,r):r2(n,t,r)}),i}),ip=eN(function(n,t,r){rS(n,r,t)});function iv(n,t){return(iB(n)?tv:en)(n,uc(t,3))}var i_=eN(function(n,t,r){n[+!r].push(t)},function(){return[[],[]]}),ig=es(function(n,t){if(null==n)return[];var r=t.length;return r>1&&uw(n,t[0],t[1])?t=[]:r>2&&uw(t[0],t[1],t[2])&&(t=[t[0]]),ei(n,rP(t,1),[])}),iy=tn||function(){return n4.Date.now()};function id(n,t,r){return t=r?e:t,t=n&&null==t?n.length:t,e7(n,128,e,e,e,e,t)}function ib(n,t){var r;if("function"!=typeof t)throw new nO(u);return n=i9(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=e),r}}var iw=es(function(n,t,r){var e=1;if(r.length){var u=tP(r,ua(iw));e|=32}return e7(n,e,t,r,u)}),im=es(function(n,t,r){var e=3;if(r.length){var u=tP(r,ua(im));e|=32}return e7(t,e,n,r,u)});function ix(n,t,r){t=r?e:t;var u=e7(n,8,e,e,e,e,e,t);return u.placeholder=ix.placeholder,u}function ij(n,t,r){t=r?e:t;var u=e7(n,16,e,e,e,e,e,t);return u.placeholder=ij.placeholder,u}function iA(n,t,r){var i,o,f,a,c,l,s=0,h=!1,p=!1,v=!0;if("function"!=typeof n)throw new nO(u);function _(t){var r=i,u=o;return i=o=e,s=t,a=n.apply(u,r)}function g(n){var r=n-l,u=n-s;return e===l||r>=t||r<0||p&&u>=f}function y(){var n,r,e,u=iy();if(g(u))return d(u);c=uE(y,(n=u-l,r=u-s,e=t-n,p?t3(e,f-r):e))}function d(n){return(c=e,v&&i)?_(n):(i=o=e,a)}function b(){var n,r=iy(),u=g(r);if(i=arguments,o=this,l=r,u){if(e===c)return s=n=l,c=uE(y,t),h?_(n):a;if(p)return eW(c),c=uE(y,t),_(l)}return e===c&&(c=uE(y,t)),a}return t=i5(t)||0,iK(r)&&(h=!!r.leading,f=(p="maxWait"in r)?t2(i5(r.maxWait)||0,t):f,v="trailing"in r?!!r.trailing:v),b.cancel=function(){e!==c&&eW(c),s=0,i=l=o=c=e},b.flush=function(){return e===c?a:d(iy())},b}var ik=es(function(n,t){return rU(n,1,t)}),iO=es(function(n,t,r){return rU(n,i5(t)||0,r)});function iI(n,t){if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new nO(u);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(iI.Cache||rm),r}function iR(n){if("function"!=typeof n)throw new nO(u);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}iI.Cache=rm;var iz=es(function(n,t){var r=(t=1==t.length&&iB(t[0])?tv(t[0],tC(uc())):tv(rP(t,1),tC(uc()))).length;return es(function(e){for(var u=-1,i=t3(e.length,r);++u<i;)e[u]=t[u].call(this,e[u]);return tf(n,this,e)})}),iE=es(function(n,t){var r=tP(t,ua(iE));return e7(n,32,e,t,r)}),iS=es(function(n,t){var r=tP(t,ua(iS));return e7(n,64,e,t,r)}),iC=ue(function(n,t){return e7(n,256,e,e,e,t)});function iW(n,t){return n===t||n!=n&&t!=t}var iL=e3(rQ),iT=e3(function(n,t){return n>=t}),iU=r3(function(){return arguments}())?r3:function(n){return iV(n)&&nC.call(n,"callee")&&!nV.call(n,"callee")},iB=nd.isArray,i$=tt?tC(tt):function(n){return iV(n)&&rY(n)==O};function iD(n){return null!=n&&iG(n.length)&&!iq(n)}function iM(n){return iV(n)&&iD(n)}var iF=tQ||oX,iN=tr?tC(tr):function(n){return iV(n)&&rY(n)==p};function iP(n){if(!iV(n))return!1;var t=rY(n);return t==v||"[object DOMException]"==t||"string"==typeof n.message&&"string"==typeof n.name&&!iY(n)}function iq(n){if(!iK(n))return!1;var t=rY(n);return t==_||t==g||"[object AsyncFunction]"==t||"[object Proxy]"==t}function iZ(n){return"number"==typeof n&&n==i9(n)}function iG(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=0x1fffffffffffff}function iK(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function iV(n){return null!=n&&"object"==typeof n}var iH=te?tC(te):function(n){return iV(n)&&u_(n)==y};function iJ(n){return"number"==typeof n||iV(n)&&rY(n)==d}function iY(n){if(!iV(n)||rY(n)!=b)return!1;var t=nP(n);if(null===t)return!0;var r=nC.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&nS.call(r)==nU}var iQ=tu?tC(tu):function(n){return iV(n)&&rY(n)==m},iX=ti?tC(ti):function(n){return iV(n)&&u_(n)==x};function i0(n){return"string"==typeof n||!iB(n)&&iV(n)&&rY(n)==j}function i1(n){return"symbol"==typeof n||iV(n)&&rY(n)==A}var i2=to?tC(to):function(n){return iV(n)&&iG(n.length)&&!!nQ[rY(n)]},i3=e3(r5),i8=e3(function(n,t){return n<=t});function i4(n){if(!n)return[];if(iD(n))return i0(n)?tG(n):eM(n);if(n8&&n[n8]){for(var t,r=n[n8](),e=[];!(t=r.next()).done;)e.push(t.value);return e}var u=u_(n);return(u==y?tF:u==x?tq:oj)(n)}function i6(n){return n?(n=i5(n))===f||n===-f?(n<0?-1:1)*17976931348623157e292:n==n?n:0:0===n?n:0}function i9(n){var t=i6(n),r=t%1;return t==t?r?t-r:t:0}function i7(n){return n?rW(i9(n),0,0xffffffff):0}function i5(n){if("number"==typeof n)return n;if(i1(n))return a;if(iK(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=iK(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=tS(n);var r=nc.test(n);return r||ns.test(n)?n2(n.slice(2),r?2:8):na.test(n)?a:+n}function on(n){return eF(n,o_(n))}function ot(n){return null==n?"":em(n)}var or=eP(function(n,t){if(uA(t)||iD(t))return void eF(t,ov(t),n);for(var r in t)nC.call(t,r)&&rI(n,r,t[r])}),oe=eP(function(n,t){eF(t,o_(t),n)}),ou=eP(function(n,t,r,e){eF(t,o_(t),n,e)}),oi=eP(function(n,t,r,e){eF(t,ov(t),n,e)}),oo=ue(rC),of=es(function(n,t){n=nj(n);var r=-1,u=t.length,i=u>2?t[2]:e;for(i&&uw(t[0],t[1],i)&&(u=1);++r<u;)for(var o=t[r],f=o_(o),a=-1,c=f.length;++a<c;){var l=f[a],s=n[l];(e===s||iW(s,nz[l])&&!nC.call(n,l))&&(n[l]=o[l])}return n}),oa=es(function(n){return n.push(e,un),tf(oy,e,n)});function oc(n,t,r){var u=null==n?e:rH(n,t);return e===u?r:u}function ol(n,t){return null!=n&&ug(n,t,r0)}var os=eQ(function(n,t,r){null!=t&&"function"!=typeof t.toString&&(t=nT.call(t)),n[t]=r},oB(oM)),oh=eQ(function(n,t,r){null!=t&&"function"!=typeof t.toString&&(t=nT.call(t)),nC.call(n,t)?n[t].push(r):n[t]=[r]},uc),op=es(r2);function ov(n){return iD(n)?rA(n):r7(n)}function o_(n){return iD(n)?rA(n,!0):function(n){if(!iK(n)){var t=n,r=[];if(null!=t)for(var e in nj(t))r.push(e);return r}var u=uA(n),i=[];for(var o in n)"constructor"==o&&(u||!nC.call(n,o))||i.push(o);return i}(n)}var og=eP(function(n,t,r){ee(n,t,r)}),oy=eP(function(n,t,r,e){ee(n,t,r,e)}),od=ue(function(n,t){var r={};if(null==n)return r;var e=!1;t=tv(t,function(t){return t=eS(t,n),e||(e=t.length>1),t}),eF(n,ui(n),r),e&&(r=rL(r,7,ut));for(var u=t.length;u--;)ej(r,t[u]);return r}),ob=ue(function(n,t){return null==n?{}:eo(n,t,function(t,r){return ol(n,r)})});function ow(n,t){if(null==n)return{};var r=tv(ui(n),function(n){return[n]});return t=uc(t),eo(n,r,function(n,r){return t(n,r[0])})}var om=e9(ov),ox=e9(o_);function oj(n){return null==n?[]:tW(n,ov(n))}var oA=eK(function(n,t,r){return t=t.toLowerCase(),n+(r?ok(t):t)});function ok(n){return oW(ot(n).toLowerCase())}function oO(n){return(n=ot(n))&&n.replace(np,tB).replace(nZ,"")}var oI=eK(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),oR=eK(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),oz=eG("toLowerCase"),oE=eK(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),oS=eK(function(n,t,r){return n+(r?" ":"")+oW(t)}),oC=eK(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),oW=eG("toUpperCase");function oL(n,t,r){if(n=ot(n),t=r?e:t,e===t){var u;return(u=n,nH.test(u))?n.match(nK)||[]:n.match(ne)||[]}return n.match(t)||[]}var oT=es(function(n,t){try{return tf(n,e,t)}catch(n){return iP(n)?n:new nw(n)}}),oU=ue(function(n,t){return tc(t,function(t){rS(n,t=uU(t),iw(n[t],n))}),n});function oB(n){return function(){return n}}var o$=eJ(),oD=eJ(!0);function oM(n){return n}function oF(n){return r9("function"==typeof n?n:rL(n,1))}var oN=es(function(n,t){return function(r){return r2(r,n,t)}}),oP=es(function(n,t){return function(r){return r2(n,r,t)}});function oq(n,t,r){var e=ov(t),u=rV(t,e);null!=r||iK(t)&&(u.length||!e.length)||(r=t,t=n,n=this,u=rV(t,ov(t)));var i=!(iK(r)&&"chain"in r)||!!r.chain,o=iq(n);return tc(u,function(r){var e=t[r];n[r]=e,o&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=eM(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,t_([this.value()],arguments))})}),n}function oZ(){}var oG=e0(tv),oK=e0(tl),oV=e0(td);function oH(n){return um(n)?tO(uU(n)):function(t){return rH(t,n)}}var oJ=e2(),oY=e2(!0);function oQ(){return[]}function oX(){return!1}var o0=eX(function(n,t){return n+t},0),o1=e4("ceil"),o2=eX(function(n,t){return n/t},1),o3=e4("floor"),o8=eX(function(n,t){return n*t},1),o4=e4("round"),o6=eX(function(n,t){return n-t},0);return rv.after=function(n,t){if("function"!=typeof t)throw new nO(u);return n=i9(n),function(){if(--n<1)return t.apply(this,arguments)}},rv.ary=id,rv.assign=or,rv.assignIn=oe,rv.assignInWith=ou,rv.assignWith=oi,rv.at=oo,rv.before=ib,rv.bind=iw,rv.bindAll=oU,rv.bindKey=im,rv.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return iB(n)?n:[n]},rv.chain=ir,rv.chunk=function(n,t,r){t=(r?uw(n,t,r):e===t)?1:t2(i9(t),0);var u=null==n?0:n.length;if(!u||t<1)return[];for(var i=0,o=0,f=nd(tI(u/t));i<u;)f[o++]=e_(n,i,i+=t);return f},rv.compact=function(n){for(var t=-1,r=null==n?0:n.length,e=0,u=[];++t<r;){var i=n[t];i&&(u[e++]=i)}return u},rv.concat=function(){var n=arguments.length;if(!n)return[];for(var t=nd(n-1),r=arguments[0],e=n;e--;)t[e-1]=arguments[e];return t_(iB(r)?eM(r):[r],rP(t,1))},rv.cond=function(n){var t=null==n?0:n.length,r=uc();return n=t?tv(n,function(n){if("function"!=typeof n[1])throw new nO(u);return[r(n[0]),n[1]]}):[],es(function(r){for(var e=-1;++e<t;){var u=n[e];if(tf(u[0],this,r))return tf(u[1],this,r)}})},rv.conforms=function(n){var t,r;return r=ov(t=rL(n,1)),function(n){return rT(n,t,r)}},rv.constant=oB,rv.countBy=ii,rv.create=function(n,t){var r=r_(n);return null==t?r:rE(r,t)},rv.curry=ix,rv.curryRight=ij,rv.debounce=iA,rv.defaults=of,rv.defaultsDeep=oa,rv.defer=ik,rv.delay=iO,rv.difference=uD,rv.differenceBy=uM,rv.differenceWith=uF,rv.drop=function(n,t,r){var u=null==n?0:n.length;return u?e_(n,(t=r||e===t?1:i9(t))<0?0:t,u):[]},rv.dropRight=function(n,t,r){var u=null==n?0:n.length;return u?e_(n,0,(t=u-(t=r||e===t?1:i9(t)))<0?0:t):[]},rv.dropRightWhile=function(n,t){return n&&n.length?ek(n,uc(t,3),!0,!0):[]},rv.dropWhile=function(n,t){return n&&n.length?ek(n,uc(t,3),!0):[]},rv.fill=function(n,t,r,u){var i=null==n?0:n.length;if(!i)return[];r&&"number"!=typeof r&&uw(n,t,r)&&(r=0,u=i);var o=r,f=u,a=n.length;for((o=i9(o))<0&&(o=-o>a?0:a+o),(f=e===f||f>a?a:i9(f))<0&&(f+=a),f=o>f?0:i7(f);o<f;)n[o++]=t;return n},rv.filter=function(n,t){return(iB(n)?ts:rN)(n,uc(t,3))},rv.flatMap=function(n,t){return rP(iv(n,t),1)},rv.flatMapDeep=function(n,t){return rP(iv(n,t),f)},rv.flatMapDepth=function(n,t,r){return r=e===r?1:i9(r),rP(iv(n,t),r)},rv.flatten=uq,rv.flattenDeep=function(n){return(null==n?0:n.length)?rP(n,f):[]},rv.flattenDepth=function(n,t){return(null==n?0:n.length)?rP(n,t=e===t?1:i9(t)):[]},rv.flip=function(n){return e7(n,512)},rv.flow=o$,rv.flowRight=oD,rv.fromPairs=function(n){for(var t=-1,r=null==n?0:n.length,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e},rv.functions=function(n){return null==n?[]:rV(n,ov(n))},rv.functionsIn=function(n){return null==n?[]:rV(n,o_(n))},rv.groupBy=is,rv.initial=function(n){return(null==n?0:n.length)?e_(n,0,-1):[]},rv.intersection=uG,rv.intersectionBy=uK,rv.intersectionWith=uV,rv.invert=os,rv.invertBy=oh,rv.invokeMap=ih,rv.iteratee=oF,rv.keyBy=ip,rv.keys=ov,rv.keysIn=o_,rv.map=iv,rv.mapKeys=function(n,t){var r={};return t=uc(t,3),rG(n,function(n,e,u){rS(r,t(n,e,u),n)}),r},rv.mapValues=function(n,t){var r={};return t=uc(t,3),rG(n,function(n,e,u){rS(r,e,t(n,e,u))}),r},rv.matches=function(n){return et(rL(n,1))},rv.matchesProperty=function(n,t){return er(n,rL(t,1))},rv.memoize=iI,rv.merge=og,rv.mergeWith=oy,rv.method=oN,rv.methodOf=oP,rv.mixin=oq,rv.negate=iR,rv.nthArg=function(n){return n=i9(n),es(function(t){return eu(t,n)})},rv.omit=od,rv.omitBy=function(n,t){return ow(n,iR(uc(t)))},rv.once=function(n){return ib(2,n)},rv.orderBy=function(n,t,r,u){return null==n?[]:(iB(t)||(t=null==t?[]:[t]),iB(r=u?e:r)||(r=null==r?[]:[r]),ei(n,t,r))},rv.over=oG,rv.overArgs=iz,rv.overEvery=oK,rv.overSome=oV,rv.partial=iE,rv.partialRight=iS,rv.partition=i_,rv.pick=ob,rv.pickBy=ow,rv.property=oH,rv.propertyOf=function(n){return function(t){return null==n?e:rH(n,t)}},rv.pull=uJ,rv.pullAll=uY,rv.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?ef(n,t,uc(r,2)):n},rv.pullAllWith=function(n,t,r){return n&&n.length&&t&&t.length?ef(n,t,e,r):n},rv.pullAt=uQ,rv.range=oJ,rv.rangeRight=oY,rv.rearg=iC,rv.reject=function(n,t){return(iB(n)?ts:rN)(n,iR(uc(t,3)))},rv.remove=function(n,t){var r=[];if(!(n&&n.length))return r;var e=-1,u=[],i=n.length;for(t=uc(t,3);++e<i;){var o=n[e];t(o,e,n)&&(r.push(o),u.push(e))}return ea(n,u),r},rv.rest=function(n,t){if("function"!=typeof n)throw new nO(u);return es(n,t=e===t?t:i9(t))},rv.reverse=uX,rv.sampleSize=function(n,t,r){return t=(r?uw(n,t,r):e===t)?1:i9(t),(iB(n)?function(n,t){return uL(eM(n),rW(t,0,n.length))}:function(n,t){var r=oj(n);return uL(r,rW(t,0,r.length))})(n,t)},rv.set=function(n,t,r){return null==n?n:eh(n,t,r)},rv.setWith=function(n,t,r,u){return u="function"==typeof u?u:e,null==n?n:eh(n,t,r,u)},rv.shuffle=function(n){return(iB(n)?function(n){return uL(eM(n))}:function(n){return uL(oj(n))})(n)},rv.slice=function(n,t,r){var u=null==n?0:n.length;return u?(r&&"number"!=typeof r&&uw(n,t,r)?(t=0,r=u):(t=null==t?0:i9(t),r=e===r?u:i9(r)),e_(n,t,r)):[]},rv.sortBy=ig,rv.sortedUniq=function(n){return n&&n.length?eb(n):[]},rv.sortedUniqBy=function(n,t){return n&&n.length?eb(n,uc(t,2)):[]},rv.split=function(n,t,r){return(r&&"number"!=typeof r&&uw(n,t,r)&&(t=r=e),r=e===r?0xffffffff:r>>>0)?(n=ot(n))&&("string"==typeof t||null!=t&&!iQ(t))&&!(t=em(t))&&tM(n)?eC(tG(n),0,r):n.split(t,r):[]},rv.spread=function(n,t){if("function"!=typeof n)throw new nO(u);return t=null==t?0:t2(i9(t),0),es(function(r){var e=r[t],u=eC(r,0,t);return e&&t_(u,e),tf(n,this,u)})},rv.tail=function(n){var t=null==n?0:n.length;return t?e_(n,1,t):[]},rv.take=function(n,t,r){return n&&n.length?e_(n,0,(t=r||e===t?1:i9(t))<0?0:t):[]},rv.takeRight=function(n,t,r){var u=null==n?0:n.length;return u?e_(n,(t=u-(t=r||e===t?1:i9(t)))<0?0:t,u):[]},rv.takeRightWhile=function(n,t){return n&&n.length?ek(n,uc(t,3),!1,!0):[]},rv.takeWhile=function(n,t){return n&&n.length?ek(n,uc(t,3)):[]},rv.tap=function(n,t){return t(n),n},rv.throttle=function(n,t,r){var e=!0,i=!0;if("function"!=typeof n)throw new nO(u);return iK(r)&&(e="leading"in r?!!r.leading:e,i="trailing"in r?!!r.trailing:i),iA(n,t,{leading:e,maxWait:t,trailing:i})},rv.thru=ie,rv.toArray=i4,rv.toPairs=om,rv.toPairsIn=ox,rv.toPath=function(n){return iB(n)?tv(n,uU):i1(n)?[n]:eM(uT(ot(n)))},rv.toPlainObject=on,rv.transform=function(n,t,r){var e=iB(n),u=e||iF(n)||i2(n);if(t=uc(t,4),null==r){var i=n&&n.constructor;r=u?e?new i:[]:iK(n)&&iq(i)?r_(nP(n)):{}}return(u?tc:rG)(n,function(n,e,u){return t(r,n,e,u)}),r},rv.unary=function(n){return id(n,1)},rv.union=u0,rv.unionBy=u1,rv.unionWith=u2,rv.uniq=function(n){return n&&n.length?ex(n):[]},rv.uniqBy=function(n,t){return n&&n.length?ex(n,uc(t,2)):[]},rv.uniqWith=function(n,t){return t="function"==typeof t?t:e,n&&n.length?ex(n,e,t):[]},rv.unset=function(n,t){return null==n||ej(n,t)},rv.unzip=u3,rv.unzipWith=u8,rv.update=function(n,t,r){return null==n?n:eA(n,t,eE(r))},rv.updateWith=function(n,t,r,u){return u="function"==typeof u?u:e,null==n?n:eA(n,t,eE(r),u)},rv.values=oj,rv.valuesIn=function(n){return null==n?[]:tW(n,o_(n))},rv.without=u4,rv.words=oL,rv.wrap=function(n,t){return iE(eE(t),n)},rv.xor=u6,rv.xorBy=u9,rv.xorWith=u7,rv.zip=u5,rv.zipObject=function(n,t){return eR(n||[],t||[],rI)},rv.zipObjectDeep=function(n,t){return eR(n||[],t||[],eh)},rv.zipWith=it,rv.entries=om,rv.entriesIn=ox,rv.extend=oe,rv.extendWith=ou,oq(rv,rv),rv.add=o0,rv.attempt=oT,rv.camelCase=oA,rv.capitalize=ok,rv.ceil=o1,rv.clamp=function(n,t,r){return e===r&&(r=t,t=e),e!==r&&(r=(r=i5(r))==r?r:0),e!==t&&(t=(t=i5(t))==t?t:0),rW(i5(n),t,r)},rv.clone=function(n){return rL(n,4)},rv.cloneDeep=function(n){return rL(n,5)},rv.cloneDeepWith=function(n,t){return rL(n,5,t="function"==typeof t?t:e)},rv.cloneWith=function(n,t){return rL(n,4,t="function"==typeof t?t:e)},rv.conformsTo=function(n,t){return null==t||rT(n,t,ov(t))},rv.deburr=oO,rv.defaultTo=function(n,t){return null==n||n!=n?t:n},rv.divide=o2,rv.endsWith=function(n,t,r){n=ot(n),t=em(t);var u=n.length,i=r=e===r?u:rW(i9(r),0,u);return(r-=t.length)>=0&&n.slice(r,i)==t},rv.eq=iW,rv.escape=function(n){return(n=ot(n))&&P.test(n)?n.replace(F,t$):n},rv.escapeRegExp=function(n){return(n=ot(n))&&Y.test(n)?n.replace(J,"\\$&"):n},rv.every=function(n,t,r){var u=iB(n)?tl:rM;return r&&uw(n,t,r)&&(t=e),u(n,uc(t,3))},rv.find=io,rv.findIndex=uN,rv.findKey=function(n,t){return tw(n,uc(t,3),rG)},rv.findLast=ia,rv.findLastIndex=uP,rv.findLastKey=function(n,t){return tw(n,uc(t,3),rK)},rv.floor=o3,rv.forEach=ic,rv.forEachRight=il,rv.forIn=function(n,t){return null==n?n:rq(n,uc(t,3),o_)},rv.forInRight=function(n,t){return null==n?n:rZ(n,uc(t,3),o_)},rv.forOwn=function(n,t){return n&&rG(n,uc(t,3))},rv.forOwnRight=function(n,t){return n&&rK(n,uc(t,3))},rv.get=oc,rv.gt=iL,rv.gte=iT,rv.has=function(n,t){return null!=n&&ug(n,t,rX)},rv.hasIn=ol,rv.head=uZ,rv.identity=oM,rv.includes=function(n,t,r,e){n=iD(n)?n:oj(n),r=r&&!e?i9(r):0;var u=n.length;return r<0&&(r=t2(u+r,0)),i0(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&tx(n,t,r)>-1},rv.indexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return -1;var u=null==r?0:i9(r);return u<0&&(u=t2(e+u,0)),tx(n,t,u)},rv.inRange=function(n,t,r){var u,i,o;return t=i6(t),e===r?(r=t,t=0):r=i6(r),(u=n=i5(n))>=t3(i=t,o=r)&&u<t2(i,o)},rv.invoke=op,rv.isArguments=iU,rv.isArray=iB,rv.isArrayBuffer=i$,rv.isArrayLike=iD,rv.isArrayLikeObject=iM,rv.isBoolean=function(n){return!0===n||!1===n||iV(n)&&rY(n)==h},rv.isBuffer=iF,rv.isDate=iN,rv.isElement=function(n){return iV(n)&&1===n.nodeType&&!iY(n)},rv.isEmpty=function(n){if(null==n)return!0;if(iD(n)&&(iB(n)||"string"==typeof n||"function"==typeof n.splice||iF(n)||i2(n)||iU(n)))return!n.length;var t=u_(n);if(t==y||t==x)return!n.size;if(uA(n))return!r7(n).length;for(var r in n)if(nC.call(n,r))return!1;return!0},rv.isEqual=function(n,t){return r8(n,t)},rv.isEqualWith=function(n,t,r){var u=(r="function"==typeof r?r:e)?r(n,t):e;return e===u?r8(n,t,e,r):!!u},rv.isError=iP,rv.isFinite=function(n){return"number"==typeof n&&tX(n)},rv.isFunction=iq,rv.isInteger=iZ,rv.isLength=iG,rv.isMap=iH,rv.isMatch=function(n,t){return n===t||r4(n,t,us(t))},rv.isMatchWith=function(n,t,r){return r="function"==typeof r?r:e,r4(n,t,us(t),r)},rv.isNaN=function(n){return iJ(n)&&n!=+n},rv.isNative=function(n){if(uj(n))throw new nw("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return r6(n)},rv.isNil=function(n){return null==n},rv.isNull=function(n){return null===n},rv.isNumber=iJ,rv.isObject=iK,rv.isObjectLike=iV,rv.isPlainObject=iY,rv.isRegExp=iQ,rv.isSafeInteger=function(n){return iZ(n)&&n>=-0x1fffffffffffff&&n<=0x1fffffffffffff},rv.isSet=iX,rv.isString=i0,rv.isSymbol=i1,rv.isTypedArray=i2,rv.isUndefined=function(n){return e===n},rv.isWeakMap=function(n){return iV(n)&&u_(n)==k},rv.isWeakSet=function(n){return iV(n)&&"[object WeakSet]"==rY(n)},rv.join=function(n,t){return null==n?"":t0.call(n,t)},rv.kebabCase=oI,rv.last=uH,rv.lastIndexOf=function(n,t,r){var u=null==n?0:n.length;if(!u)return -1;var i=u;return e!==r&&(i=(i=i9(r))<0?t2(u+i,0):t3(i,u-1)),t==t?function(n,t,r){for(var e=r+1;e--&&n[e]!==t;);return e}(n,t,i):tm(n,tA,i,!0)},rv.lowerCase=oR,rv.lowerFirst=oz,rv.lt=i3,rv.lte=i8,rv.max=function(n){return n&&n.length?rF(n,oM,rQ):e},rv.maxBy=function(n,t){return n&&n.length?rF(n,uc(t,2),rQ):e},rv.mean=function(n){return tk(n,oM)},rv.meanBy=function(n,t){return tk(n,uc(t,2))},rv.min=function(n){return n&&n.length?rF(n,oM,r5):e},rv.minBy=function(n,t){return n&&n.length?rF(n,uc(t,2),r5):e},rv.stubArray=oQ,rv.stubFalse=oX,rv.stubObject=function(){return{}},rv.stubString=function(){return""},rv.stubTrue=function(){return!0},rv.multiply=o8,rv.nth=function(n,t){return n&&n.length?eu(n,i9(t)):e},rv.noConflict=function(){return n4._===this&&(n4._=nB),this},rv.noop=oZ,rv.now=iy,rv.pad=function(n,t,r){n=ot(n);var e=(t=i9(t))?tZ(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return e1(tJ(u),r)+n+e1(tI(u),r)},rv.padEnd=function(n,t,r){n=ot(n);var e=(t=i9(t))?tZ(n):0;return t&&e<t?n+e1(t-e,r):n},rv.padStart=function(n,t,r){n=ot(n);var e=(t=i9(t))?tZ(n):0;return t&&e<t?e1(t-e,r)+n:n},rv.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t*=1),t4(ot(n).replace(Q,""),t||0)},rv.random=function(n,t,r){if(r&&"boolean"!=typeof r&&uw(n,t,r)&&(t=r=e),e===r&&("boolean"==typeof t?(r=t,t=e):"boolean"==typeof n&&(r=n,n=e)),e===n&&e===t?(n=0,t=1):(n=i6(n),e===t?(t=n,n=0):t=i6(t)),n>t){var u=n;n=t,t=u}if(r||n%1||t%1){var i=t6();return t3(n+i*(t-n+n1("1e-"+((i+"").length-1))),t)}return ec(n,t)},rv.reduce=function(n,t,r){var e=iB(n)?tg:tR,u=arguments.length<3;return e(n,uc(t,4),r,u,r$)},rv.reduceRight=function(n,t,r){var e=iB(n)?ty:tR,u=arguments.length<3;return e(n,uc(t,4),r,u,rD)},rv.repeat=function(n,t,r){return t=(r?uw(n,t,r):e===t)?1:i9(t),el(ot(n),t)},rv.replace=function(){var n=arguments,t=ot(n[0]);return n.length<3?t:t.replace(n[1],n[2])},rv.result=function(n,t,r){t=eS(t,n);var u=-1,i=t.length;for(i||(i=1,n=e);++u<i;){var o=null==n?e:n[uU(t[u])];e===o&&(u=i,o=r),n=iq(o)?o.call(n):o}return n},rv.round=o4,rv.runInContext=n,rv.sample=function(n){return(iB(n)?rk:function(n){return rk(oj(n))})(n)},rv.size=function(n){if(null==n)return 0;if(iD(n))return i0(n)?tZ(n):n.length;var t=u_(n);return t==y||t==x?n.size:r7(n).length},rv.snakeCase=oE,rv.some=function(n,t,r){var u=iB(n)?td:eg;return r&&uw(n,t,r)&&(t=e),u(n,uc(t,3))},rv.sortedIndex=function(n,t){return ey(n,t)},rv.sortedIndexBy=function(n,t,r){return ed(n,t,uc(r,2))},rv.sortedIndexOf=function(n,t){var r=null==n?0:n.length;if(r){var e=ey(n,t);if(e<r&&iW(n[e],t))return e}return -1},rv.sortedLastIndex=function(n,t){return ey(n,t,!0)},rv.sortedLastIndexBy=function(n,t,r){return ed(n,t,uc(r,2),!0)},rv.sortedLastIndexOf=function(n,t){if(null==n?0:n.length){var r=ey(n,t,!0)-1;if(iW(n[r],t))return r}return -1},rv.startCase=oS,rv.startsWith=function(n,t,r){return n=ot(n),r=null==r?0:rW(i9(r),0,n.length),t=em(t),n.slice(r,r+t.length)==t},rv.subtract=o6,rv.sum=function(n){return n&&n.length?tz(n,oM):0},rv.sumBy=function(n,t){return n&&n.length?tz(n,uc(t,2)):0},rv.template=function(n,t,r){var u=rv.templateSettings;r&&uw(n,t,r)&&(t=e),n=ot(n),t=ou({},t,u,e5);var i,o,f=ou({},t.imports,u.imports,e5),a=ov(f),c=tW(f,a),l=0,s=t.interpolate||nv,h="__p += '",p=nA((t.escape||nv).source+"|"+s.source+"|"+(s===G?no:nv).source+"|"+(t.evaluate||nv).source+"|$","g"),v="//# sourceURL="+(nC.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++nY+"]")+"\n";n.replace(p,function(t,r,e,u,f,a){return e||(e=u),h+=n.slice(l,a).replace(n_,tD),r&&(i=!0,h+="' +\n__e("+r+") +\n'"),f&&(o=!0,h+="';\n"+f+";\n__p += '"),e&&(h+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),l=a+t.length,t}),h+="';\n";var _=nC.call(t,"variable")&&t.variable;if(_){if(nu.test(_))throw new nw("Invalid `variable` option passed into `_.template`")}else h="with (obj) {\n"+h+"\n}\n";h=(o?h.replace(B,""):h).replace($,"$1").replace(D,"$1;"),h="function("+(_||"obj")+") {\n"+(_?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=oT(function(){return nm(a,v+"return "+h).apply(e,c)});if(g.source=h,iP(g))throw g;return g},rv.times=function(n,t){if((n=i9(n))<1||n>0x1fffffffffffff)return[];var r=0xffffffff,e=t3(n,0xffffffff);t=uc(t),n-=0xffffffff;for(var u=tE(e,t);++r<n;)t(r);return u},rv.toFinite=i6,rv.toInteger=i9,rv.toLength=i7,rv.toLower=function(n){return ot(n).toLowerCase()},rv.toNumber=i5,rv.toSafeInteger=function(n){return n?rW(i9(n),-0x1fffffffffffff,0x1fffffffffffff):0===n?n:0},rv.toString=ot,rv.toUpper=function(n){return ot(n).toUpperCase()},rv.trim=function(n,t,r){if((n=ot(n))&&(r||e===t))return tS(n);if(!n||!(t=em(t)))return n;var u=tG(n),i=tG(t),o=tT(u,i),f=tU(u,i)+1;return eC(u,o,f).join("")},rv.trimEnd=function(n,t,r){if((n=ot(n))&&(r||e===t))return n.slice(0,tK(n)+1);if(!n||!(t=em(t)))return n;var u=tG(n),i=tU(u,tG(t))+1;return eC(u,0,i).join("")},rv.trimStart=function(n,t,r){if((n=ot(n))&&(r||e===t))return n.replace(Q,"");if(!n||!(t=em(t)))return n;var u=tG(n),i=tT(u,tG(t));return eC(u,i).join("")},rv.truncate=function(n,t){var r=30,u="...";if(iK(t)){var i="separator"in t?t.separator:i;r="length"in t?i9(t.length):r,u="omission"in t?em(t.omission):u}var o=(n=ot(n)).length;if(tM(n)){var f=tG(n);o=f.length}if(r>=o)return n;var a=r-tZ(u);if(a<1)return u;var c=f?eC(f,0,a).join(""):n.slice(0,a);if(e===i)return c+u;if(f&&(a+=c.length-a),iQ(i)){if(n.slice(a).search(i)){var l,s=c;for(i.global||(i=nA(i.source,ot(nf.exec(i))+"g")),i.lastIndex=0;l=i.exec(s);)var h=l.index;c=c.slice(0,e===h?a:h)}}else if(n.indexOf(em(i),a)!=a){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+u},rv.unescape=function(n){return(n=ot(n))&&N.test(n)?n.replace(M,tV):n},rv.uniqueId=function(n){var t=++nW;return ot(n)+t},rv.upperCase=oC,rv.upperFirst=oW,rv.each=ic,rv.eachRight=il,rv.first=uZ,oq(rv,(ny={},rG(rv,function(n,t){nC.call(rv.prototype,t)||(ny[t]=n)}),ny),{chain:!1}),rv.VERSION="4.17.21",tc(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){rv[n].placeholder=rv}),tc(["drop","take"],function(n,t){rd.prototype[n]=function(r){r=e===r?1:t2(i9(r),0);var u=this.__filtered__&&!t?new rd(this):this.clone();return u.__filtered__?u.__takeCount__=t3(r,u.__takeCount__):u.__views__.push({size:t3(r,0xffffffff),type:n+(u.__dir__<0?"Right":"")}),u},rd.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),tc(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;rd.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:uc(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),tc(["head","last"],function(n,t){var r="take"+(t?"Right":"");rd.prototype[n]=function(){return this[r](1).value()[0]}}),tc(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");rd.prototype[n]=function(){return this.__filtered__?new rd(this):this[r](1)}}),rd.prototype.compact=function(){return this.filter(oM)},rd.prototype.find=function(n){return this.filter(n).head()},rd.prototype.findLast=function(n){return this.reverse().find(n)},rd.prototype.invokeMap=es(function(n,t){return"function"==typeof n?new rd(this):this.map(function(r){return r2(r,n,t)})}),rd.prototype.reject=function(n){return this.filter(iR(uc(n)))},rd.prototype.slice=function(n,t){n=i9(n);var r=this;return r.__filtered__&&(n>0||t<0)?new rd(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),e!==t&&(r=(t=i9(t))<0?r.dropRight(-t):r.take(t-n)),r)},rd.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},rd.prototype.toArray=function(){return this.take(0xffffffff)},rG(rd.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),u=/^(?:head|last)$/.test(t),i=rv[u?"take"+("last"==t?"Right":""):t],o=u||/^find/.test(t);i&&(rv.prototype[t]=function(){var t=this.__wrapped__,f=u?[1]:arguments,a=t instanceof rd,c=f[0],l=a||iB(t),s=function(n){var t=i.apply(rv,t_([n],f));return u&&h?t[0]:t};l&&r&&"function"==typeof c&&1!=c.length&&(a=l=!1);var h=this.__chain__,p=!!this.__actions__.length,v=o&&!h,_=a&&!p;if(!o&&l){t=_?t:new rd(this);var g=n.apply(t,f);return g.__actions__.push({func:ie,args:[s],thisArg:e}),new ry(g,h)}return v&&_?n.apply(this,f):(g=this.thru(s),v?u?g.value()[0]:g.value():g)})}),tc(["pop","push","shift","sort","splice","unshift"],function(n){var t=nI[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);rv.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(iB(u)?u:[],n)}return this[r](function(r){return t.apply(iB(r)?r:[],n)})}}),rG(rd.prototype,function(n,t){var r=rv[t];if(r){var e=r.name+"";nC.call(ri,e)||(ri[e]=[]),ri[e].push({name:t,func:r})}}),ri[eY(e,2).name]=[{name:"wrapper",func:e}],rd.prototype.clone=function(){var n=new rd(this.__wrapped__);return n.__actions__=eM(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=eM(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=eM(this.__views__),n},rd.prototype.reverse=function(){if(this.__filtered__){var n=new rd(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n},rd.prototype.value=function(){var n=this.__wrapped__.value(),t=this.__dir__,r=iB(n),e=t<0,u=r?n.length:0,i=function(n,t,r){for(var e=-1,u=r.length;++e<u;){var i=r[e],o=i.size;switch(i.type){case"drop":n+=o;break;case"dropRight":t-=o;break;case"take":t=t3(t,n+o);break;case"takeRight":n=t2(n,t-o)}}return{start:n,end:t}}(0,u,this.__views__),o=i.start,f=i.end,a=f-o,c=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=t3(a,this.__takeCount__);if(!r||!e&&u==a&&p==a)return eO(n,this.__actions__);var v=[];n:for(;a--&&h<p;){for(var _=-1,g=n[c+=t];++_<s;){var y=l[_],d=y.iteratee,b=y.type,w=d(g);if(2==b)g=w;else if(!w)if(1==b)continue n;else break n}v[h++]=g}return v},rv.prototype.at=iu,rv.prototype.chain=function(){return ir(this)},rv.prototype.commit=function(){return new ry(this.value(),this.__chain__)},rv.prototype.next=function(){this.__values__===e&&(this.__values__=i4(this.value()));var n=this.__index__>=this.__values__.length,t=n?e:this.__values__[this.__index__++];return{done:n,value:t}},rv.prototype.plant=function(n){for(var t,r=this;r instanceof rg;){var u=u$(r);u.__index__=0,u.__values__=e,t?i.__wrapped__=u:t=u;var i=u;r=r.__wrapped__}return i.__wrapped__=n,t},rv.prototype.reverse=function(){var n=this.__wrapped__;if(n instanceof rd){var t=n;return this.__actions__.length&&(t=new rd(this)),(t=t.reverse()).__actions__.push({func:ie,args:[uX],thisArg:e}),new ry(t,this.__chain__)}return this.thru(uX)},rv.prototype.toJSON=rv.prototype.valueOf=rv.prototype.value=function(){return eO(this.__wrapped__,this.__actions__)},rv.prototype.first=rv.prototype.head,n8&&(rv.prototype[n8]=function(){return this}),rv}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(n4._=tH,define(function(){return tH})):n9?((n9.exports=tH)._=tH,n6._=tH):n4._=tH}).call(this)}}]);