@jetshop/ui 5.15.0-alpha.184e18a2 → 5.15.0-alpha.7bbc753c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/JetshopText.js +3 -2
- package/JetshopText.js.map +1 -1
- package/Menu/RecursiveTree.test.js +8 -7
- package/StartPageRenderer/StartPageRenderer.d.ts +1 -1
- package/WindowGrid/useResizeObserver.d.ts +2 -7
- package/package.json +3 -5
- package/utils/breakpoints.js +8 -4
- package/utils/breakpoints.js.map +1 -1
- package/Accordion/Accordion.test.js +0 -73
- package/Button/OutlineButton.d.ts +0 -4
- package/Button/OutlineButton.js +0 -10
- package/Button/OutlineButton.js.map +0 -1
package/JetshopText.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { styled } from 'linaria/react';
|
|
3
|
-
import t from '@jetshop/intl';
|
|
4
3
|
const SmallText = styled('p') `
|
|
5
4
|
font-size: 12px;
|
|
5
|
+
margin-top: 10px;
|
|
6
|
+
text-align: right;
|
|
6
7
|
`;
|
|
7
8
|
const JetshopText = () => {
|
|
8
9
|
return (React.createElement(SmallText, null,
|
|
9
|
-
React.createElement("a", { href: "https://www.norce.io" },
|
|
10
|
+
React.createElement("a", { href: "https://www.norce.io" }, "Powered by Norce")));
|
|
10
11
|
};
|
|
11
12
|
export default JetshopText;
|
|
12
13
|
//# sourceMappingURL=JetshopText.js.map
|
package/JetshopText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JetshopText.js","sourceRoot":"","sources":["JetshopText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"JetshopText.js","sourceRoot":"","sources":["JetshopText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;CAI5B,CAAC;AAEF,MAAM,WAAW,GAAa,GAAG,EAAE;IACjC,OAAO,CACL,oBAAC,SAAS;QACR,2BAAG,IAAI,EAAC,sBAAsB,uBAAqB,CACzC,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -221,15 +221,16 @@ describe('RecursiveNav', () => {
|
|
|
221
221
|
describe('the fetchMore render arg', () => {
|
|
222
222
|
it('fetches more categories and adds them to the subcategories object', async () => {
|
|
223
223
|
const { childrenSpy, renderArg } = setup();
|
|
224
|
-
|
|
225
224
|
let promise;
|
|
226
225
|
|
|
227
226
|
act(() => {
|
|
228
227
|
promise = renderArg.fetchMore();
|
|
229
228
|
});
|
|
230
229
|
|
|
230
|
+
await wait();
|
|
231
|
+
|
|
231
232
|
await promise;
|
|
232
|
-
expect(childrenSpy).
|
|
233
|
+
expect(childrenSpy).toHaveBeenCalledWith(
|
|
233
234
|
expect.objectContaining({
|
|
234
235
|
subcategories: [expect.objectContaining({ id: 9000 })]
|
|
235
236
|
})
|
|
@@ -275,13 +276,13 @@ describe('the renderRecursive render arg', () => {
|
|
|
275
276
|
const { queryByText, getByText, renderArg } = setup();
|
|
276
277
|
|
|
277
278
|
expect(getByText(/News!/)).toBeInTheDocument();
|
|
278
|
-
MOCK_CATEGORIES[0].subcategories.forEach(cat =>
|
|
279
|
+
MOCK_CATEGORIES[0].subcategories.forEach((cat) =>
|
|
279
280
|
expect(queryByText(cat.name)).not.toBeInTheDocument()
|
|
280
281
|
);
|
|
281
282
|
|
|
282
283
|
renderArg.menuContainerProps.setActiveCategory(MOCK_CATEGORIES[0]);
|
|
283
284
|
|
|
284
|
-
MOCK_CATEGORIES[0].subcategories.forEach(cat =>
|
|
285
|
+
MOCK_CATEGORIES[0].subcategories.forEach((cat) =>
|
|
285
286
|
expect(getByText(cat.name)).toBeInTheDocument()
|
|
286
287
|
);
|
|
287
288
|
});
|
|
@@ -289,7 +290,7 @@ describe('the renderRecursive render arg', () => {
|
|
|
289
290
|
|
|
290
291
|
describe('the initialOpenMatchingCategories prop', () => {
|
|
291
292
|
it('automatically opens categories matching the current path', () => {
|
|
292
|
-
const renderFn = jest.fn(props => props.renderSubnav);
|
|
293
|
+
const renderFn = jest.fn((props) => props.renderSubnav);
|
|
293
294
|
setup({
|
|
294
295
|
containerProps: {
|
|
295
296
|
category: MOCK_CATEGORIES[0],
|
|
@@ -319,7 +320,7 @@ describe('the initialOpenMatchingCategories prop', () => {
|
|
|
319
320
|
});
|
|
320
321
|
|
|
321
322
|
it('fetches subcategories from the api if they are not already fetched', async () => {
|
|
322
|
-
const renderFn = jest.fn(props => props.renderSubnav);
|
|
323
|
+
const renderFn = jest.fn((props) => props.renderSubnav);
|
|
323
324
|
setup({
|
|
324
325
|
containerProps: {
|
|
325
326
|
category: MOCK_CATEGORIES[2],
|
|
@@ -347,7 +348,7 @@ function setup({
|
|
|
347
348
|
} = {}) {
|
|
348
349
|
let renderArg;
|
|
349
350
|
|
|
350
|
-
const childrenSpy = jest.fn(controllerArg => {
|
|
351
|
+
const childrenSpy = jest.fn((controllerArg) => {
|
|
351
352
|
renderArg = controllerArg;
|
|
352
353
|
|
|
353
354
|
if (renderFn) return renderFn(controllerArg);
|
|
@@ -13,5 +13,5 @@ export interface StartPageProviderProps {
|
|
|
13
13
|
ProductGrid?: ProductGrid;
|
|
14
14
|
startPageComponents: Components;
|
|
15
15
|
}
|
|
16
|
-
declare const StartPageRenderer: ({ result, ProductGrid, startPageComponents
|
|
16
|
+
declare const StartPageRenderer: ({ result, ProductGrid, startPageComponents, LoadingPage }: StartPageProviderProps) => JSX.Element;
|
|
17
17
|
export default StartPageRenderer;
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
declare
|
|
3
|
-
width: number;
|
|
4
|
-
height: number;
|
|
5
|
-
ref: import("react").MutableRefObject<T>;
|
|
6
|
-
};
|
|
7
|
-
declare const _default: typeof useResizeObserverServer;
|
|
1
|
+
import useResizeObserverClient from 'use-resize-observer';
|
|
2
|
+
declare const _default: typeof useResizeObserverClient;
|
|
8
3
|
export default _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jetshop/ui",
|
|
3
|
-
"version": "5.15.0-alpha.
|
|
3
|
+
"version": "5.15.0-alpha.7bbc753c",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"**/*.js",
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
"**/*.svg"
|
|
13
13
|
],
|
|
14
14
|
"main": "src/index.js",
|
|
15
|
-
"type": "module",
|
|
16
15
|
"scripts": {
|
|
17
16
|
"build": "tsc --noEmit false",
|
|
18
17
|
"precommit": "lint-staged",
|
|
@@ -39,9 +38,8 @@
|
|
|
39
38
|
"lodash.debounce": "^4.0.8",
|
|
40
39
|
"object-fit-images": "^3.2.4",
|
|
41
40
|
"prop-types": "^15.6.2",
|
|
42
|
-
"react-animate-height": "^
|
|
41
|
+
"react-animate-height": "^3.0.4",
|
|
43
42
|
"react-apollo-network-status": "^4.0.0",
|
|
44
|
-
"react-docgen-typescript": "^1.5.0",
|
|
45
43
|
"react-image-gallery": "^0.8.14",
|
|
46
44
|
"react-intersection-observer": "^8.0.1",
|
|
47
45
|
"react-modal": "^3.4.5",
|
|
@@ -60,7 +58,7 @@
|
|
|
60
58
|
"jest-dom": "^3.4.0",
|
|
61
59
|
"lint-staged": "^8.1.5",
|
|
62
60
|
"prettier": "^2.3.2",
|
|
63
|
-
"typescript": "^4.3
|
|
61
|
+
"typescript": "^4.8.3"
|
|
64
62
|
},
|
|
65
63
|
"peerDependencies": {
|
|
66
64
|
"react": "^16.9.0",
|
package/utils/breakpoints.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const findBreakpoint = (label, breakpointMap) => breakpointMap.find(bp => bp.label === label);
|
|
1
|
+
const findBreakpoint = (label, breakpointMap) => breakpointMap.find((bp) => bp.label === label);
|
|
2
2
|
const getBreakpointValue = (label, breakpointMap) => typeof label === 'object'
|
|
3
3
|
? label.size
|
|
4
4
|
: findBreakpoint(label, breakpointMap).size;
|
|
@@ -50,16 +50,20 @@ function createBreakpointHelpers(breakpoints) {
|
|
|
50
50
|
bp.label === label
|
|
51
51
|
? null
|
|
52
52
|
: breakpointMapIndex < breakpointLabelIndex
|
|
53
|
-
? {
|
|
53
|
+
? {
|
|
54
|
+
name: `${String(bp.label)}-${label}`,
|
|
55
|
+
from: bp.label,
|
|
56
|
+
to: label
|
|
57
|
+
}
|
|
54
58
|
: null
|
|
55
59
|
];
|
|
56
60
|
}, [])
|
|
57
|
-
.filter(bp => bp !== null);
|
|
61
|
+
.filter((bp) => bp !== null);
|
|
58
62
|
/**
|
|
59
63
|
* Create an array of CSS media queries from the breakpoint labels
|
|
60
64
|
*/
|
|
61
65
|
const mediaQueries = breakpointLabels.reduce((obj, bpName) => {
|
|
62
|
-
return Object.assign(Object.assign({}, obj), { [bpName.name]: `@media (min-width: ${bp.size}) and (max-width: ${breakpointMap.find(bp => bp.label === bpName.to).size})` });
|
|
66
|
+
return Object.assign(Object.assign({}, obj), { [bpName.name]: `@media (min-width: ${bp.size}) and (max-width: ${breakpointMap.find((bp) => bp.label === bpName.to).size})` });
|
|
63
67
|
}, {});
|
|
64
68
|
return Object.assign(Object.assign({}, obj), mediaQueries);
|
|
65
69
|
}, {});
|
package/utils/breakpoints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakpoints.js","sourceRoot":"","sources":["breakpoints.ts"],"names":[],"mappings":"AAKA,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,aAA2B,EAAE,EAAE,CACpE,aAAa,CAAC,IAAI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"breakpoints.js","sourceRoot":"","sources":["breakpoints.ts"],"names":[],"mappings":"AAKA,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,aAA2B,EAAE,EAAE,CACpE,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAEjD,MAAM,kBAAkB,GAAG,CACzB,KAA0B,EAC1B,aAA2B,EAC3B,EAAE,CACF,OAAO,KAAK,KAAK,QAAQ;IACvB,CAAC,CAAC,KAAK,CAAC,IAAI;IACZ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC;AAEhD,MAAM,qBAAqB,GAAG,CAC5B,KAA0B,EAC1B,aAAwC,EACxC,EAAE;IACF,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B;;;OAGG;IACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5E,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/D,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,SAAS,iBAAiB,CAAC,KAAa,EAAE,aAA2B;IACnE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1E,OAAO,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAWD,SAAS,uBAAuB,CAC9B,WAAc;IAEd,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,MAAM,aAAa,GAA0B,MAAM,CAAC,MAAM,CACxD,WAAW,CACZ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,OAAO;YACL,GAAG,GAAG;YACN;gBACE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,IAAI,EAAE,IAAI;aACX;SACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC7C,uCACK,GAAG,KACN,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC,IAAI,GAAG,IAC5C;IACJ,CAAC,EAAE,EAA0B,CAAC,CAAC;IAE/B,IAAI;IACJ,iBAAiB;IACjB,IAAI;IAEJ,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC7C,uCACK,GAAG,KACN,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,sBAAsB,qBAAqB,CACrD,EAAE,CAAC,KAAe,EAClB,aAAa,CACd,GAAG,IACJ;IACJ,CAAC,EAAE,EAA0B,CAAC,CAAC;IAE/B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE;QACnE;;;WAGG;QACH,MAAM,gBAAgB,GAAG,MAAM;aAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE;YAC3C,OAAO;gBACL,GAAG,GAAG;gBACN,EAAE,CAAC,KAAK,KAAK,KAAK;oBAChB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,kBAAkB,GAAG,oBAAoB;wBAC3C,CAAC,CAAC;4BACE,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;4BACpC,IAAI,EAAE,EAAE,CAAC,KAAK;4BACd,EAAE,EAAE,KAAK;yBACV;wBACH,CAAC,CAAC,IAAI;aACT,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC;aACL,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAE/B;;WAEG;QACH,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC3D,uCACK,GAAG,KACN,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,sBAAsB,EAAE,CAAC,IAAI,qBAC1C,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IACrD,GAAG,IACH;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,uCACK,GAAG,GACH,YAAY,EACf;IACJ,CAAC,EAAE,EAA0B,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5C,MAAM,cAAc,GAAG,iBAAiB,CACtC,EAAE,CAAC,KAAe,EAClB,aAAoB,CACrB,CAAC;QACF,MAAM,QAAQ,GAAG,cAAc;YAC7B,CAAC,CAAC,qBAAqB,CACnB,cAAc,CAAC,KAAK,EACpB,aAA6B,CAC9B;YACH,CAAC,CAAC,IAAI,CAAC;QACT,uCACK,GAAG;YACN;;;;eAIG;YACH,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ;gBAClB,CAAC,CAAC,sBAAsB,EAAE,CAAC,IAAI,qBAAqB,QAAQ,GAAG;gBAC/D,CAAC,CAAC,sBAAsB,EAAE,CAAC,IAAI,GAAG,IACpC;IACJ,CAAC,EAAE,EAA0B,CAAC,CAAC;IAE/B,OAAO;QACL,aAAa;QACb,KAAK;QACL,KAAK;QACL,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC;AACD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACxB,CAAC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { render, fireEvent } from '@testing-library/react';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import Accordion from './Accordion';
|
|
4
|
-
|
|
5
|
-
const accordionSegmentsToRender = 2;
|
|
6
|
-
const headerText = counter => `Accordion ${counter} heading`;
|
|
7
|
-
const bodyText = counter => `Accordion ${counter} body`;
|
|
8
|
-
|
|
9
|
-
describe('Accordion', () => {
|
|
10
|
-
it('renders child as fn with args', () => {
|
|
11
|
-
const { renderArg } = setup();
|
|
12
|
-
expect(renderArg).toMatchSnapshot();
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it('renders the accordion headers', () => {
|
|
16
|
-
const { getAllByText } = setup();
|
|
17
|
-
expect(getAllByText(/heading/)).toHaveLength(2);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('does not render accordion bodies', () => {
|
|
21
|
-
const { queryAllByText } = setup();
|
|
22
|
-
expect(queryAllByText(/body/)).toHaveLength(0);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it('toggles a body when related header is clicked', () => {
|
|
26
|
-
const { getByText } = setup();
|
|
27
|
-
const header = getByText(headerText(0));
|
|
28
|
-
fireEvent.click(header);
|
|
29
|
-
const body = getByText(bodyText(0));
|
|
30
|
-
expect(body).toBeInTheDocument();
|
|
31
|
-
|
|
32
|
-
// Now check it will close
|
|
33
|
-
fireEvent.click(header);
|
|
34
|
-
expect(body).not.toBeInTheDocument();
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('renders one body when passed atLeastOne prop', () => {
|
|
38
|
-
const { getAllByText } = setup({ accordionProps: { atLeastOne: true } });
|
|
39
|
-
expect(getAllByText(/body/)).toHaveLength(1);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
function setup({ accordionProps } = {}) {
|
|
44
|
-
let renderArg;
|
|
45
|
-
|
|
46
|
-
const childrenSpy = jest.fn(controllerArg => {
|
|
47
|
-
renderArg = controllerArg;
|
|
48
|
-
|
|
49
|
-
return (
|
|
50
|
-
<div>
|
|
51
|
-
{/* Render 2 accordion head + body segments */}
|
|
52
|
-
{Array(accordionSegmentsToRender)
|
|
53
|
-
.fill(0)
|
|
54
|
-
.map((_, index) => (
|
|
55
|
-
<div key={index}>
|
|
56
|
-
<h1 onClick={() => controllerArg.handleClick(index)}>
|
|
57
|
-
{headerText(index)}
|
|
58
|
-
</h1>
|
|
59
|
-
{controllerArg.openIndexes.includes(index) && (
|
|
60
|
-
<p>{bodyText(index)}</p>
|
|
61
|
-
)}
|
|
62
|
-
</div>
|
|
63
|
-
))}
|
|
64
|
-
</div>
|
|
65
|
-
);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
const utils = render(
|
|
69
|
-
<Accordion {...accordionProps}>{childrenSpy}</Accordion>
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
return { ...utils, childrenSpy, renderArg };
|
|
73
|
-
}
|
package/Button/OutlineButton.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { styled } from 'linaria/react';
|
|
2
|
-
import Button from './Button';
|
|
3
|
-
export const OutlineButton = styled(Button) `
|
|
4
|
-
background: transparent;
|
|
5
|
-
color: ${({ inverted }) => (inverted ? '#fff' : '#000')};
|
|
6
|
-
border: 1px solid ${({ inverted }) => (inverted ? '#fff' : '#000')};
|
|
7
|
-
`;
|
|
8
|
-
/** @component */
|
|
9
|
-
export default OutlineButton;
|
|
10
|
-
//# sourceMappingURL=OutlineButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OutlineButton.js","sourceRoot":"","sources":["OutlineButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;;WAEhC,CAAC,EAAE,QAAQ,EAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;sBACxC,CAAC,EAAE,QAAQ,EAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;CACxE,CAAC;AAEF,iBAAiB;AACjB,eAAe,aAAa,CAAC"}
|