@jetshop/ui 6.3.8-alpha.33 → 6.3.8
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/ErrorBoundary/Generic.js +4 -0
- package/ErrorBoundary/Generic.js.map +1 -1
- package/Gallery/Gallery.js +1 -1
- package/Gallery/Gallery.js.map +1 -1
- package/Image/useConstructImage.js.map +1 -1
- package/ProductList/GridProduct.js +1 -1
- package/ProductList/GridProduct.js.map +1 -1
- package/package.json +2 -2
- package/CloudflareImage/BaseImage.d.ts +0 -40
- package/CloudflareImage/BaseImage.js +0 -192
- package/CloudflareImage/BaseImage.js.map +0 -1
- package/CloudflareImage/Fallback.d.ts +0 -5
- package/CloudflareImage/Fallback.js +0 -4
- package/CloudflareImage/Fallback.js.map +0 -1
- package/CloudflareImage/FlightImage.d.ts +0 -51
- package/CloudflareImage/FlightImage.js +0 -61
- package/CloudflareImage/FlightImage.js.map +0 -1
- package/CloudflareImage/FlightImage.test.js +0 -277
- package/CloudflareImage/Image.d.ts +0 -2
- package/CloudflareImage/Image.js +0 -3
- package/CloudflareImage/Image.js.map +0 -1
- package/CloudflareImage/index.d.ts +0 -1
- package/CloudflareImage/index.js +0 -2
- package/CloudflareImage/index.js.map +0 -1
- package/CloudflareImage/useConstructImage.d.ts +0 -49
- package/CloudflareImage/useConstructImage.js +0 -122
- package/CloudflareImage/useConstructImage.js.map +0 -1
- package/CloudflareImage/utils/aspectRatioToFraction.d.ts +0 -2
- package/CloudflareImage/utils/aspectRatioToFraction.js +0 -11
- package/CloudflareImage/utils/aspectRatioToFraction.js.map +0 -1
- package/CloudflareImage/utils/getFullUrl.d.ts +0 -6
- package/CloudflareImage/utils/getFullUrl.js +0 -18
- package/CloudflareImage/utils/getFullUrl.js.map +0 -1
- package/CloudflareImage/utils/getImageWidth.d.ts +0 -1
- package/CloudflareImage/utils/getImageWidth.js +0 -12
- package/CloudflareImage/utils/getImageWidth.js.map +0 -1
- package/CloudflareImage/utils/getImageWidths.d.ts +0 -2
- package/CloudflareImage/utils/getImageWidths.js +0 -21
- package/CloudflareImage/utils/getImageWidths.js.map +0 -1
- package/CloudflareImage/utils/getLQIP.d.ts +0 -8
- package/CloudflareImage/utils/getLQIP.js +0 -21
- package/CloudflareImage/utils/getLQIP.js.map +0 -1
- package/CloudflareImage/utils/getLargestSize.d.ts +0 -7
- package/CloudflareImage/utils/getLargestSize.js +0 -17
- package/CloudflareImage/utils/getLargestSize.js.map +0 -1
- package/CloudflareImage/utils/getSizeForBreakpoint.d.ts +0 -2
- package/CloudflareImage/utils/getSizeForBreakpoint.js +0 -16
- package/CloudflareImage/utils/getSizeForBreakpoint.js.map +0 -1
- package/CloudflareImage/utils/getSizesMap.d.ts +0 -2
- package/CloudflareImage/utils/getSizesMap.js +0 -35
- package/CloudflareImage/utils/getSizesMap.js.map +0 -1
- package/CloudflareImage/utils/getSmallestSize.d.ts +0 -2
- package/CloudflareImage/utils/getSmallestSize.js +0 -12
- package/CloudflareImage/utils/getSmallestSize.js.map +0 -1
- package/CloudflareImage/utils/getSrcSetFromWidths.d.ts +0 -10
- package/CloudflareImage/utils/getSrcSetFromWidths.js +0 -10
- package/CloudflareImage/utils/getSrcSetFromWidths.js.map +0 -1
- package/CloudflareImage/utils/getSrcWithParams.d.ts +0 -3
- package/CloudflareImage/utils/getSrcWithParams.js +0 -33
- package/CloudflareImage/utils/getSrcWithParams.js.map +0 -1
- package/CloudflareImage/utils/paddingForAspectRatio.d.ts +0 -1
- package/CloudflareImage/utils/paddingForAspectRatio.js +0 -6
- package/CloudflareImage/utils/paddingForAspectRatio.js.map +0 -1
- package/CloudflareImage/utils/remToPx.d.ts +0 -1
- package/CloudflareImage/utils/remToPx.js +0 -2
- package/CloudflareImage/utils/remToPx.js.map +0 -1
- package/CloudflareImage/utils/sizeToNumber.d.ts +0 -2
- package/CloudflareImage/utils/sizeToNumber.js +0 -27
- package/CloudflareImage/utils/sizeToNumber.js.map +0 -1
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { sizeToNumber } from './sizeToNumber';
|
|
2
|
-
export const getSizeForBreakpoint = (sizes, offset) => {
|
|
3
|
-
if (Array.isArray(sizes)) {
|
|
4
|
-
do {
|
|
5
|
-
if (sizes[offset]) {
|
|
6
|
-
return sizeToNumber(sizes[offset]);
|
|
7
|
-
}
|
|
8
|
-
offset--;
|
|
9
|
-
} while (offset >= 0);
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
return sizeToNumber(sizes);
|
|
13
|
-
}
|
|
14
|
-
return 1;
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=getSizeForBreakpoint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSizeForBreakpoint.js","sourceRoot":"","sources":["getSizeForBreakpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAA2B,EAC3B,MAAc,EACd,EAAE;IACF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,GAAG;YACD,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;gBACjB,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACpC;YACD,MAAM,EAAE,CAAC;SACV,QAAQ,MAAM,IAAI,CAAC,EAAE;KACvB;SAAM;QACL,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { getSizeForBreakpoint } from './getSizeForBreakpoint';
|
|
2
|
-
export const getSizesMap = (breakpoints, sizes, mobile = false) => {
|
|
3
|
-
const breakpointArray = Object.entries(breakpoints).map(([key, value]) => ({
|
|
4
|
-
key,
|
|
5
|
-
value
|
|
6
|
-
}));
|
|
7
|
-
const breakpointWidths = [];
|
|
8
|
-
for (let i = 0; i < breakpointArray.length; i++) {
|
|
9
|
-
breakpointWidths.push(breakpointArray[i].value);
|
|
10
|
-
if (mobile && breakpointArray[i].key === 'sm') {
|
|
11
|
-
break;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return breakpointWidths
|
|
15
|
-
.map((breakpoint, i) => {
|
|
16
|
-
const size = getSizeForBreakpoint(sizes, i);
|
|
17
|
-
let width;
|
|
18
|
-
if (size > 2) {
|
|
19
|
-
// Size is absolute value in px
|
|
20
|
-
width = size + 'px';
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
// Size is already a fraction (or unset). Convert it to vw (percentage
|
|
24
|
-
// of viewport width)
|
|
25
|
-
width = Math.round(100 * (size || 1)) + 'vw';
|
|
26
|
-
}
|
|
27
|
-
// Include a media query for all but the last size
|
|
28
|
-
if (i + 1 < breakpointWidths.length) {
|
|
29
|
-
return `(max-width: ${breakpoint}) ${width}`;
|
|
30
|
-
}
|
|
31
|
-
return width;
|
|
32
|
-
})
|
|
33
|
-
.join(', ');
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=getSizesMap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSizesMap.js","sourceRoot":"","sources":["getSizesMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,WAAmC,EACnC,KAA2B,EAC3B,MAAM,GAAG,KAAK,EACd,EAAE;IACF,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,GAAG;QACH,KAAK;KACN,CAAC,CAAC,CAAC;IAEJ,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/C,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE;YAC7C,MAAM;SACP;KACF;IAED,OAAO,gBAAgB;SACpB,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,+BAA+B;YAC/B,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;SACrB;aAAM;YACL,sEAAsE;YACtE,qBAAqB;YACrB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAC9C;QACD,kDAAkD;QAClD,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE;YACnC,OAAO,eAAe,UAAU,KAAK,KAAK,EAAE,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export const getSmallestSize = (sizes) => {
|
|
2
|
-
if (Array.isArray(sizes)) {
|
|
3
|
-
if (sizes.length === 0) {
|
|
4
|
-
throw new Error('Sizes must not be an empty array');
|
|
5
|
-
}
|
|
6
|
-
return sizes[0].url;
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
return sizes.toString();
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=getSmallestSize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSmallestSize.js","sourceRoot":"","sources":["getSmallestSize.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAmB,EAAE,EAAE;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KACrB;SAAM;QACL,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;AACH,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { AspectRatio, Gravity } from '../Image';
|
|
2
|
-
export interface ImageParamOptions {
|
|
3
|
-
crop: boolean;
|
|
4
|
-
gravity?: Gravity;
|
|
5
|
-
quality?: number;
|
|
6
|
-
webp?: boolean;
|
|
7
|
-
focalPointX?: number;
|
|
8
|
-
focalPointY?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare const getSrcSetFromWidths: (src: string, widths: number[], aspect: AspectRatio, options?: ImageParamOptions, modifiedDate?: string, baseUrl?: string) => string;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { createSrcWithProperties } from './getSrcWithParams';
|
|
2
|
-
export const getSrcSetFromWidths = (src, widths, aspect, options = { crop: false, webp: false }, modifiedDate, baseUrl) => {
|
|
3
|
-
const p = [];
|
|
4
|
-
for (const w of widths) {
|
|
5
|
-
const prop = createSrcWithProperties(w, aspect, src, true, options, modifiedDate);
|
|
6
|
-
p.push(`${baseUrl}/cdn-cgi/image/${prop}/${src}${modifiedDate ? `?timestamp=${modifiedDate}` : ''} w${w}`);
|
|
7
|
-
}
|
|
8
|
-
return p.join(', ');
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=getSrcSetFromWidths.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSrcSetFromWidths.js","sourceRoot":"","sources":["getSrcSetFromWidths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAW7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAW,EACX,MAAgB,EAChB,MAAmB,EACnB,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACzD,YAAqB,EACrB,OAAgB,EAChB,EAAE;IACF,MAAM,CAAC,GAAG,EAAE,CAAC;IAEb,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;QACtB,MAAM,IAAI,GAAG,uBAAuB,CAClC,CAAC,EACD,MAAM,EACN,GAAG,EACH,IAAI,EACJ,OAAO,EACP,YAAY,CACb,CAAC;QACF,CAAC,CAAC,IAAI,CACJ,GAAG,OAAO,kBAAkB,IAAI,IAAI,GAAG,GACrC,YAAY,CAAC,CAAC,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC,CAAC,EAChD,KAAK,CAAC,EAAE,CACT,CAAC;KACH;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { AspectRatio } from '../Image';
|
|
2
|
-
import { ImageParamOptions } from './getSrcSetFromWidths';
|
|
3
|
-
export declare function createSrcWithProperties(width: number, aspect: AspectRatio, src: string, includeViewportSize?: boolean, options?: ImageParamOptions, timestamp?: string): string;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { aspectRatioToFraction } from './aspectRatioToFraction';
|
|
2
|
-
// <img src="/cdn-cgi/image/width=80,quality=75/uploads/avatar1.jpg" />
|
|
3
|
-
export function createSrcWithProperties(width, aspect,
|
|
4
|
-
// @ts-ignore
|
|
5
|
-
src,
|
|
6
|
-
// @ts-ignore
|
|
7
|
-
includeViewportSize = true, options = { crop: false, webp: false },
|
|
8
|
-
// @ts-ignore
|
|
9
|
-
timestamp) {
|
|
10
|
-
const resizeMethod = options.crop ? 'crop' : 'contain';
|
|
11
|
-
const quality = options.quality;
|
|
12
|
-
const height = aspect
|
|
13
|
-
? Math.round(width * aspectRatioToFraction(aspect))
|
|
14
|
-
: null;
|
|
15
|
-
const properties = [];
|
|
16
|
-
if (height) {
|
|
17
|
-
properties.push(`width=${width},height=${height},fit=${resizeMethod}`);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
properties.push(`width=${width},fit=${resizeMethod}`);
|
|
21
|
-
}
|
|
22
|
-
if (quality) {
|
|
23
|
-
properties.push(`quality=${quality}`);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
properties.push('quality=100');
|
|
27
|
-
}
|
|
28
|
-
if (options.webp) {
|
|
29
|
-
properties.push('format=webp');
|
|
30
|
-
}
|
|
31
|
-
return properties.toString();
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=getSrcWithParams.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSrcWithParams.js","sourceRoot":"","sources":["getSrcWithParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,uEAAuE;AAEvE,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,MAAmB;AACnB,aAAa;AACb,GAAW;AACX,aAAa;AACb,mBAAmB,GAAG,IAAI,EAC1B,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACzD,aAAa;AACb,SAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,IAAI,MAAM,EAAE;QACV,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,WAAW,MAAM,QAAQ,YAAY,EAAE,CAAC,CAAC;KACxE;SAAM;QACL,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,YAAY,EAAE,CAAC,CAAC;KACvD;IAED,IAAI,OAAO,EAAE;QACX,UAAU,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;KACvC;SAAM;QACL,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const paddingForAspectRatio: (aspect?: string) => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paddingForAspectRatio.js","sourceRoot":"","sources":["paddingForAspectRatio.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,EAAE;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACxC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const remToPx: (rems: string, base?: number) => number;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remToPx.js","sourceRoot":"","sources":["remToPx.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { remToPx } from './remToPx';
|
|
2
|
-
const sizeRegexp = new RegExp(/(\d+)\s?(\w+)?/g);
|
|
3
|
-
export const sizeToNumber = (size) => {
|
|
4
|
-
if (typeof size === 'string') {
|
|
5
|
-
try {
|
|
6
|
-
sizeRegexp.lastIndex = 0;
|
|
7
|
-
const matches = sizeRegexp.exec(size.toLowerCase().trim());
|
|
8
|
-
const num = matches && matches[1];
|
|
9
|
-
const unit = matches && matches[2];
|
|
10
|
-
if ((!unit || unit === 'px') && num) {
|
|
11
|
-
return +num;
|
|
12
|
-
}
|
|
13
|
-
else if (unit === 'rem') {
|
|
14
|
-
return remToPx(num);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
throw Error('Unknown unit ' + unit);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
catch (e) {
|
|
21
|
-
console.error('Responsive Image: Unit conversion failed for', size, e);
|
|
22
|
-
return 1;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return size;
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=sizeToNumber.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sizeToNumber.js","sourceRoot":"","sources":["sizeToNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAyB,EAAE,EAAE;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI;YACF,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;gBACnC,OAAO,CAAC,GAAG,CAAC;aACb;iBAAM,IAAI,IAAI,KAAK,KAAK,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;aACrB;iBAAM;gBACL,MAAM,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;aACrC;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC;SACV;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|