next-cloudinary 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/next-cloudinary.js +203 -77
- package/dist/next-cloudinary.js.map +1 -1
- package/dist/next-cloudinary.modern.mjs +206 -66
- package/dist/next-cloudinary.modern.mjs.map +1 -1
- package/dist/next-cloudinary.module.js +203 -77
- package/dist/next-cloudinary.module.js.map +1 -1
- package/dist/next-cloudinary.umd.js +203 -77
- package/dist/next-cloudinary.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -39,7 +39,79 @@
|
|
|
39
39
|
return target;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
function _readOnlyError(name) {
|
|
43
|
+
throw new TypeError("\"" + name + "\" is read-only");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
var cld$1 = new urlGen.Cloudinary({
|
|
47
|
+
cloud: {
|
|
48
|
+
cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
|
|
49
|
+
},
|
|
50
|
+
url: {
|
|
51
|
+
// Used to avoid issues with SSR particularly for the blurred placeholder
|
|
52
|
+
analytics: false
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* createPlaceholderUrl
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
function createPlaceholderUrl(_ref) {
|
|
60
|
+
var src = _ref.src,
|
|
61
|
+
placeholder = _ref.placeholder;
|
|
62
|
+
var cldImage = cld$1.image(src).resize('c_limit,w_100').delivery('q_1').format('auto');
|
|
63
|
+
|
|
64
|
+
if (placeholder === 'grayscale') {
|
|
65
|
+
cldImage.effect('e_grayscale');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (placeholder.includes('color:')) {
|
|
69
|
+
var color = placeholder.split(':').splice(1).join(':');
|
|
70
|
+
cldImage.effect('e_grayscale');
|
|
71
|
+
cldImage.effect("e_colorize:60,co_" + color);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return cldImage.toURL();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var cropsGravityAuto = ['crop', 'fill', 'lfill', 'fill_pad', 'thumb'];
|
|
78
|
+
function croppingPlugin(_temp) {
|
|
79
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
80
|
+
cldImage = _ref.cldImage,
|
|
81
|
+
options = _ref.options,
|
|
82
|
+
cldOptions = _ref.cldOptions;
|
|
83
|
+
|
|
84
|
+
var width = options.width,
|
|
85
|
+
height = options.height;
|
|
86
|
+
var _cldOptions$crop = cldOptions.crop,
|
|
87
|
+
crop = _cldOptions$crop === void 0 ? 'limit' : _cldOptions$crop,
|
|
88
|
+
gravity = cldOptions.gravity;
|
|
89
|
+
var transformationString = "c_" + crop + ",w_" + width;
|
|
90
|
+
|
|
91
|
+
if (!gravity && cropsGravityAuto.includes(crop)) {
|
|
92
|
+
_readOnlyError("gravity");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (!['limit'].includes(crop)) {
|
|
96
|
+
transformationString = transformationString + ",h_" + height;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (gravity) {
|
|
100
|
+
if (gravity === 'auto' && !cropsGravityAuto.includes(crop)) {
|
|
101
|
+
console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');
|
|
102
|
+
} else {
|
|
103
|
+
transformationString = transformationString + ",g_" + gravity;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
cldImage.resize(transformationString);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// aspectRatio
|
|
42
111
|
var primary = {
|
|
112
|
+
aspectRatio: {
|
|
113
|
+
qualifier: 'ar'
|
|
114
|
+
},
|
|
43
115
|
crop: {
|
|
44
116
|
qualifier: 'c'
|
|
45
117
|
},
|
|
@@ -89,70 +161,31 @@
|
|
|
89
161
|
}
|
|
90
162
|
};
|
|
91
163
|
|
|
92
|
-
var _excluded$
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
});
|
|
98
|
-
function cloudinaryLoader(options, cldOptions) {
|
|
99
|
-
var src = options.src,
|
|
100
|
-
width = options.width,
|
|
101
|
-
_options$format = options.format,
|
|
102
|
-
format = _options$format === void 0 ? 'auto' : _options$format,
|
|
103
|
-
_options$quality = options.quality,
|
|
104
|
-
quality = _options$quality === void 0 ? 'auto' : _options$quality;
|
|
105
|
-
var _cldOptions$overlays = cldOptions.overlays,
|
|
106
|
-
overlays = _cldOptions$overlays === void 0 ? [] : _cldOptions$overlays,
|
|
107
|
-
_cldOptions$removeBac = cldOptions.removeBackground,
|
|
108
|
-
removeBackground = _cldOptions$removeBac === void 0 ? false : _cldOptions$removeBac,
|
|
109
|
-
_cldOptions$underlays = cldOptions.underlays,
|
|
110
|
-
underlays = _cldOptions$underlays === void 0 ? [] : _cldOptions$underlays;
|
|
111
|
-
var cldImage = cld$1.image(src);
|
|
112
|
-
|
|
113
|
-
if (removeBackground) {
|
|
114
|
-
cldImage.effect('e_background_removal');
|
|
115
|
-
} // Adding overlays and underlays allows you to compose your image
|
|
116
|
-
// by using layering with overlays appearing on top of and udnerlays
|
|
117
|
-
// appearing below your base image layer
|
|
118
|
-
//
|
|
119
|
-
// Learn more: https://cloudinary.com/documentation/layers
|
|
164
|
+
var _excluded$2 = ["publicId", "position", "text", "effects"];
|
|
165
|
+
function overlaysPlugin(_temp) {
|
|
166
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
167
|
+
cldImage = _ref.cldImage,
|
|
168
|
+
cldOptions = _ref.cldOptions;
|
|
120
169
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
var publicId = _ref.publicId,
|
|
133
|
-
type = _ref.type,
|
|
134
|
-
position$1 = _ref.position,
|
|
135
|
-
text$1 = _ref.text,
|
|
136
|
-
_ref$effects = _ref.effects,
|
|
137
|
-
layerEffects = _ref$effects === void 0 ? [] : _ref$effects,
|
|
138
|
-
options = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
170
|
+
var _cldOptions$overlays = cldOptions.overlays,
|
|
171
|
+
overlays = _cldOptions$overlays === void 0 ? [] : _cldOptions$overlays;
|
|
172
|
+
var type = 'overlay';
|
|
173
|
+
var typeQualifier = 'l';
|
|
174
|
+
overlays.forEach(function (_ref2) {
|
|
175
|
+
var publicId = _ref2.publicId,
|
|
176
|
+
position$1 = _ref2.position,
|
|
177
|
+
text$1 = _ref2.text,
|
|
178
|
+
_ref2$effects = _ref2.effects,
|
|
179
|
+
layerEffects = _ref2$effects === void 0 ? [] : _ref2$effects,
|
|
180
|
+
options = _objectWithoutPropertiesLoose(_ref2, _excluded$2);
|
|
139
181
|
|
|
140
182
|
var hasPublicId = typeof publicId === 'string';
|
|
141
183
|
var hasText = typeof text$1 === 'object';
|
|
142
184
|
var hasPosition = typeof position$1 === 'object';
|
|
143
185
|
|
|
144
186
|
if (!hasPublicId && !hasText) {
|
|
145
|
-
console.warn(type + " is missing Public ID or Text");
|
|
187
|
+
console.warn("An " + type + " is missing Public ID or Text");
|
|
146
188
|
return;
|
|
147
|
-
} // Determine the qualifier for the type of layer
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
var typeQualifier;
|
|
151
|
-
|
|
152
|
-
if (type === 'overlay') {
|
|
153
|
-
typeQualifier = 'l';
|
|
154
|
-
} else if (type === 'underlay') {
|
|
155
|
-
typeQualifier = 'u';
|
|
156
189
|
} // Start to construct the transformation string using text or the public ID
|
|
157
190
|
// if it's image-based
|
|
158
191
|
|
|
@@ -222,27 +255,127 @@
|
|
|
222
255
|
|
|
223
256
|
cldImage.addTransformation(layerTransformation);
|
|
224
257
|
});
|
|
225
|
-
return cldImage.resize("c_limit,w_" + width).format(format).delivery("q_" + quality).toURL();
|
|
226
258
|
}
|
|
227
259
|
|
|
228
|
-
|
|
260
|
+
function removeBackgroundPlugin(_temp) {
|
|
261
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
262
|
+
cldImage = _ref.cldImage,
|
|
263
|
+
cldOptions = _ref.cldOptions;
|
|
264
|
+
|
|
265
|
+
var _cldOptions$removeBac = cldOptions.removeBackground,
|
|
266
|
+
removeBackground = _cldOptions$removeBac === void 0 ? false : _cldOptions$removeBac;
|
|
267
|
+
|
|
268
|
+
if (removeBackground) {
|
|
269
|
+
cldImage.effect('e_background_removal');
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
var _excluded$1 = ["publicId", "type", "position", "text", "effects"];
|
|
274
|
+
function underlaysPlugin(_temp) {
|
|
275
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
276
|
+
cldImage = _ref.cldImage,
|
|
277
|
+
cldOptions = _ref.cldOptions;
|
|
278
|
+
|
|
279
|
+
var _cldOptions$underlays = cldOptions.underlays,
|
|
280
|
+
underlays = _cldOptions$underlays === void 0 ? [] : _cldOptions$underlays;
|
|
281
|
+
var typeQualifier = 'u';
|
|
282
|
+
underlays.forEach(function (_ref2) {
|
|
283
|
+
var publicId = _ref2.publicId,
|
|
284
|
+
type = _ref2.type,
|
|
285
|
+
position$1 = _ref2.position,
|
|
286
|
+
_ref2$effects = _ref2.effects,
|
|
287
|
+
layerEffects = _ref2$effects === void 0 ? [] : _ref2$effects,
|
|
288
|
+
options = _objectWithoutPropertiesLoose(_ref2, _excluded$1);
|
|
289
|
+
|
|
290
|
+
var hasPublicId = typeof publicId === 'string';
|
|
291
|
+
var hasPosition = typeof position$1 === 'object';
|
|
292
|
+
|
|
293
|
+
if (!hasPublicId) {
|
|
294
|
+
console.warn("An " + type + " is missing a Public ID");
|
|
295
|
+
return;
|
|
296
|
+
} // Start to construct the transformation string using text or the public ID
|
|
297
|
+
// if it's image-based
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
var layerTransformation = typeQualifier + "_" + publicId.replace(/\//g, ':'); // Begin organizing transformations based on what it is and the location
|
|
301
|
+
// it needs to be placed in the URL
|
|
302
|
+
|
|
303
|
+
var primary$1 = [];
|
|
304
|
+
var applied = []; // Gemeral options
|
|
305
|
+
|
|
306
|
+
Object.keys(options).forEach(function (key) {
|
|
307
|
+
if (!primary[key]) return;
|
|
308
|
+
var qualifier = primary[key].qualifier;
|
|
309
|
+
primary$1.push(qualifier + "_" + options[key]);
|
|
310
|
+
}); // Layer effects
|
|
311
|
+
|
|
312
|
+
layerEffects.forEach(function (effect) {
|
|
313
|
+
Object.keys(effect).forEach(function (key) {
|
|
314
|
+
if (!primary[key]) return;
|
|
315
|
+
var qualifier = primary[key].qualifier;
|
|
316
|
+
primary$1.push(qualifier + "_" + effect[key]);
|
|
317
|
+
});
|
|
318
|
+
}); // Positioning
|
|
319
|
+
|
|
320
|
+
if (hasPosition) {
|
|
321
|
+
Object.keys(position$1).forEach(function (key) {
|
|
322
|
+
if (!position[key]) return;
|
|
323
|
+
var qualifier = position[key].qualifier;
|
|
324
|
+
applied.push(qualifier + "_" + position$1[key]);
|
|
325
|
+
});
|
|
326
|
+
} // Add all primary transformations
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
layerTransformation = layerTransformation + "," + primary$1.join(','); // Add all applied transformations
|
|
330
|
+
|
|
331
|
+
layerTransformation = layerTransformation + "/fl_layer_apply";
|
|
332
|
+
|
|
333
|
+
if (applied.length > 0) {
|
|
334
|
+
layerTransformation = layerTransformation + "," + applied.join(',');
|
|
335
|
+
} // Finally add it to the image
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
cldImage.addTransformation(layerTransformation);
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
|
|
229
342
|
var cld = new urlGen.Cloudinary({
|
|
230
343
|
cloud: {
|
|
231
344
|
cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
|
|
232
|
-
},
|
|
233
|
-
url: {
|
|
234
|
-
// Used to avoid issues with SSR particularly for the blurred placeholder
|
|
235
|
-
analytics: false
|
|
236
345
|
}
|
|
237
346
|
});
|
|
347
|
+
var transformationPlugins = [// Background Removal must always come first
|
|
348
|
+
removeBackgroundPlugin, croppingPlugin, overlaysPlugin, underlaysPlugin];
|
|
349
|
+
function cloudinaryLoader(options, cldOptions) {
|
|
350
|
+
var src = options.src,
|
|
351
|
+
_options$format = options.format,
|
|
352
|
+
format = _options$format === void 0 ? 'auto' : _options$format,
|
|
353
|
+
_options$quality = options.quality,
|
|
354
|
+
quality = _options$quality === void 0 ? 'auto' : _options$quality;
|
|
355
|
+
var cldImage = cld.image(src);
|
|
356
|
+
transformationPlugins.forEach(function (plugin) {
|
|
357
|
+
plugin({
|
|
358
|
+
cldImage: cldImage,
|
|
359
|
+
options: options,
|
|
360
|
+
cldOptions: cldOptions
|
|
361
|
+
});
|
|
362
|
+
});
|
|
363
|
+
return cldImage.format(format).delivery("q_" + quality).toURL();
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
var _excluded = ["crop", "gravity", "overlays", "removeBackground", "underlays"];
|
|
238
367
|
|
|
239
368
|
var CldImage = function CldImage(_ref) {
|
|
240
|
-
var
|
|
369
|
+
var crop = _ref.crop,
|
|
370
|
+
gravity = _ref.gravity,
|
|
371
|
+
overlays = _ref.overlays,
|
|
241
372
|
removeBackground = _ref.removeBackground,
|
|
242
373
|
underlays = _ref.underlays,
|
|
243
374
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
244
375
|
|
|
245
376
|
var cldOptions = {
|
|
377
|
+
crop: crop,
|
|
378
|
+
gravity: gravity,
|
|
246
379
|
overlays: overlays,
|
|
247
380
|
removeBackground: removeBackground,
|
|
248
381
|
underlays: underlays
|
|
@@ -253,19 +386,10 @@
|
|
|
253
386
|
// https://nextjs.org/docs/api-reference/next/image#blurdataurl
|
|
254
387
|
|
|
255
388
|
if (props.placeholder) {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
if (props.placeholder.includes('color:')) {
|
|
263
|
-
var color = props.placeholder.split(':').splice(1).join(':');
|
|
264
|
-
cldBlurredImage.effect('e_grayscale');
|
|
265
|
-
cldBlurredImage.effect("e_colorize:60,co_" + color);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
imageProps.blurDataURL = cldBlurredImage.toURL();
|
|
389
|
+
imageProps.blurDataURL = createPlaceholderUrl({
|
|
390
|
+
src: props.src,
|
|
391
|
+
placeholder: props.placeholder
|
|
392
|
+
});
|
|
269
393
|
|
|
270
394
|
if (props.placeholder !== 'blur') {
|
|
271
395
|
props.placeholder = 'blur';
|
|
@@ -274,7 +398,9 @@
|
|
|
274
398
|
|
|
275
399
|
return /*#__PURE__*/jsxRuntime.jsx(Image__default["default"], _extends({}, imageProps, props, {
|
|
276
400
|
loader: function loader(options) {
|
|
277
|
-
return cloudinaryLoader(
|
|
401
|
+
return cloudinaryLoader(_extends({}, props, {
|
|
402
|
+
options: options
|
|
403
|
+
}), cldOptions);
|
|
278
404
|
}
|
|
279
405
|
}));
|
|
280
406
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-cloudinary.umd.js","sources":["../src/constants/qualifiers.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["export const primary = {\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n textDecoration: {\n qualifier: false\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n});\n\nexport function cloudinaryLoader(options, cldOptions) {\n const {\n src,\n width,\n format = 'auto',\n quality = 'auto',\n } = options;\n\n const {\n overlays = [],\n effects = [],\n removeBackground = false,\n underlays = []\n } = cldOptions;\n\n const cldImage = cld.image(src);\n\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n\n // Adding overlays and underlays allows you to compose your image\n // by using layering with overlays appearing on top of and udnerlays\n // appearing below your base image layer\n //\n // Learn more: https://cloudinary.com/documentation/layers\n\n const layers = [\n ...overlays.map(overlay => ({ ...overlay, type: 'overlay' })),\n ...underlays.map(underlay => ({ ...underlay, type: 'underlay' })),\n ];\n\n layers.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`${type} is missing Public ID or Text`);\n return;\n }\n\n // Determine the qualifier for the type of layer\n\n let typeQualifier;\n\n if ( type === 'overlay' ) {\n typeQualifier = 'l';\n } else if ( type === 'underlay' ) {\n typeQualifier = 'u';\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n\n return cldImage.resize(`c_limit,w_${width}`).format(format).delivery(`q_${quality}`).toURL();\n}","import Image from 'next/image';\nimport { Cloudinary } from '@cloudinary/url-gen';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\nconst CldImage = ({ overlays, removeBackground, underlays, ...props }) => {\n const cldOptions = {\n overlays,\n removeBackground,\n underlays,\n };\n\n const imageProps = {};\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( props.placeholder ) {\n const cldBlurredImage = cld.image(props.src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( props.placeholder === 'grayscale' ) {\n cldBlurredImage.effect('e_grayscale');\n }\n\n if ( props.placeholder.includes('color:') ) {\n const color = props.placeholder.split(':').splice(1).join(':')\n cldBlurredImage.effect('e_grayscale');\n cldBlurredImage.effect(`e_colorize:60,co_${color}`);\n }\n\n imageProps.blurDataURL = cldBlurredImage.toURL();\n\n if ( props.placeholder !== 'blur' ) {\n props.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n {...props}\n loader={(options) => cloudinaryLoader(options, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["primary","crop","qualifier","gravity","height","width","position","angle","x","y","text","color","location","textDecoration","fontFamily","fontSize","fontWeight","letterSpacing","cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","cloudinaryLoader","options","cldOptions","src","format","quality","overlays","removeBackground","underlays","cldImage","image","effect","layers","map","overlay","type","underlay","forEach","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","console","warn","typeQualifier","layerTransformation","replace","applied","Object","keys","key","qualifiersPrimary","push","textTransformations","qualifiersText","join","qualifiersPosition","length","addTransformation","resize","delivery","toURL","url","analytics","CldImage","props","imageProps","placeholder","cldBlurredImage","includes","split","splice","blurDataURL","_jsx","Image"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"next-cloudinary.umd.js","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport function croppingPlugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n textDecoration: {\n qualifier: false\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport function overlaysPlugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export function removeBackgroundPlugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport function underlaysPlugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","import { Cloudinary } from '@cloudinary/url-gen';\n\nimport { croppingPlugin } from '../plugins/cropping';\nimport { overlaysPlugin } from '../plugins/overlays';\nimport { removeBackgroundPlugin } from '../plugins/remove-background';\nimport { underlaysPlugin } from '../plugins/underlays';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n});\n\nconst transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n overlaysPlugin,\n underlaysPlugin\n];\n\nexport function cloudinaryLoader(options, cldOptions) {\n const {\n src,\n width,\n format = 'auto',\n quality = 'auto',\n } = options;\n\n const cldImage = cld.image(src);\n\n transformationPlugins.forEach(plugin => {\n plugin({\n cldImage,\n options,\n cldOptions\n });\n });\n\n return cldImage.format(format).delivery(`q_${quality}`).toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl } from '../../lib/cloudinary';\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\nconst CldImage = ({ crop, gravity, overlays, removeBackground, underlays, ...props }) => {\n const cldOptions = {\n crop,\n gravity,\n overlays,\n removeBackground,\n underlays,\n };\n\n const imageProps = {};\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( props.placeholder ) {\n imageProps.blurDataURL = createPlaceholderUrl({\n src: props.src,\n placeholder: props.placeholder\n });\n\n if ( props.placeholder !== 'blur' ) {\n props.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n {...props}\n loader={(options) => cloudinaryLoader({ ...props, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","createPlaceholderUrl","src","placeholder","cldImage","image","resize","delivery","format","effect","includes","color","split","splice","join","toURL","cropsGravityAuto","croppingPlugin","options","cldOptions","width","height","crop","gravity","transformationString","console","warn","primary","aspectRatio","qualifier","position","angle","x","y","text","location","textDecoration","fontFamily","fontSize","fontWeight","letterSpacing","overlaysPlugin","overlays","type","typeQualifier","forEach","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","key","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","length","addTransformation","removeBackgroundPlugin","removeBackground","underlaysPlugin","underlays","transformationPlugins","cloudinaryLoader","quality","plugin","CldImage","props","imageProps","blurDataURL","_jsx","Image"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEA,IAAMA,KAAG,GAAG,IAAIC,iBAAJ,CAAe;EACzBC,EAAAA,KAAK,EAAE;EACLC,IAAAA,SAAS,EAAEC,OAAO,CAACC,GAAR,CAAYC,iCAAAA;KAFA;EAIzBC,EAAAA,GAAG,EAAE;EACH;EACAC,IAAAA,SAAS,EAAE,KAAA;EAFR,GAAA;EAJoB,CAAf,CAAZ,CAAA;EAUA;EACA;EACA;;EAEO,SAASC,oBAAT,CAAoD,IAAA,EAAA;IAAA,IAApBC,GAAoB,QAApBA,GAAoB;QAAfC,WAAe,QAAfA,WAAe,CAAA;EACzD,EAAA,IAAMC,QAAQ,GAAGZ,KAAG,CAACa,KAAJ,CAAUH,GAAV,CACII,CAAAA,MADJ,CACW,eADX,CAAA,CAEIC,QAFJ,CAEa,KAFb,EAGIC,MAHJ,CAGW,MAHX,CAAjB,CAAA;;IAKA,IAAKL,WAAW,KAAK,WAArB,EAAmC;MACjCC,QAAQ,CAACK,MAAT,CAAgB,aAAhB,CAAA,CAAA;EACD,GAAA;;EAED,EAAA,IAAKN,WAAW,CAACO,QAAZ,CAAqB,QAArB,CAAL,EAAsC;EACpC,IAAA,IAAMC,KAAK,GAAGR,WAAW,CAACS,KAAZ,CAAkB,GAAlB,CAAuBC,CAAAA,MAAvB,CAA8B,CAA9B,CAAA,CAAiCC,IAAjC,CAAsC,GAAtC,CAAd,CAAA;MACAV,QAAQ,CAACK,MAAT,CAAgB,aAAhB,CAAA,CAAA;MACAL,QAAQ,CAACK,MAAT,CAAA,mBAAA,GAAoCE,KAApC,CAAA,CAAA;EACD,GAAA;;IAED,OAAOP,QAAQ,CAACW,KAAT,EAAP,CAAA;EACD;;ECjCD,IAAMC,gBAAgB,GAAG,CAAE,MAAF,EAAU,MAAV,EAAkB,OAAlB,EAA2B,UAA3B,EAAuC,OAAvC,CAAzB,CAAA;EAEO,SAASC,cAAT,CAAgE,KAAA,EAAA;EAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA;QAAtCb,QAAsC,QAAtCA,QAAsC;QAA5Bc,OAA4B,QAA5BA,OAA4B;QAAnBC,UAAmB,QAAnBA,UAAmB,CAAA;;EACrE,EAAA,IAAQC,KAAR,GAA0BF,OAA1B,CAAQE,KAAR;EAAA,MAAeC,MAAf,GAA0BH,OAA1B,CAAeG,MAAf,CAAA;IACA,IAAoCF,gBAAAA,GAAAA,UAApC,CAAQG,IAAR;QAAQA,IAAR,iCAAe,OAAf,GAAA,gBAAA;EAAA,MAAwBC,OAAxB,GAAoCJ,UAApC,CAAwBI,OAAxB,CAAA;EAEA,EAAA,IAAIC,oBAAoB,GAAA,IAAA,GAAQF,IAAR,GAAA,KAAA,GAAkBF,KAA1C,CAAA;;IAEA,IAAK,CAACG,OAAD,IAAYP,gBAAgB,CAACN,QAAjB,CAA0BY,IAA1B,CAAjB,EAAmD;MACjD,cAAA,CAAA,SAAA,CAAA,CAAA;EACD,GAAA;;IAED,IAAK,CAAC,CAAC,OAAD,CAAA,CAAUZ,QAAV,CAAmBY,IAAnB,CAAN,EAAiC;MAC/BE,oBAAoB,GAAMA,oBAAN,GAAA,KAAA,GAAgCH,MAApD,CAAA;EACD,GAAA;;EAED,EAAA,IAAKE,OAAL,EAAe;MACb,IAAKA,OAAO,KAAK,MAAZ,IAAsB,CAACP,gBAAgB,CAACN,QAAjB,CAA0BY,IAA1B,CAA5B,EAA8D;QAC5DG,OAAO,CAACC,IAAR,CAAa,gGAAb,CAAA,CAAA;EACD,KAFD,MAEO;QACLF,oBAAoB,GAAMA,oBAAN,GAAA,KAAA,GAAgCD,OAApD,CAAA;EACD,KAAA;EACF,GAAA;;IAEDnB,QAAQ,CAACE,MAAT,CAAgBkB,oBAAhB,CAAA,CAAA;EACD;;ECzBD;AAEO,MAAMG,OAAO,GAAG;EACrBC,EAAAA,WAAW,EAAE;EACXC,IAAAA,SAAS,EAAE,IAAA;KAFQ;EAIrBP,EAAAA,IAAI,EAAE;EACJO,IAAAA,SAAS,EAAE,GAAA;KALQ;EAOrBN,EAAAA,OAAO,EAAE;EACPM,IAAAA,SAAS,EAAE,GAAA;KARQ;EAUrBR,EAAAA,MAAM,EAAE;EACNQ,IAAAA,SAAS,EAAE,GAAA;KAXQ;EAarBT,EAAAA,KAAK,EAAE;EACLS,IAAAA,SAAS,EAAE,GAAA;EADN,GAAA;EAbc,EAAhB;AAkBA,MAAMC,QAAQ,GAAG;EACtBC,EAAAA,KAAK,EAAE;EACLF,IAAAA,SAAS,EAAE,GAAA;KAFS;EAItBN,EAAAA,OAAO,EAAE;EACPM,IAAAA,SAAS,EAAE,GAAA;KALS;EAOtBG,EAAAA,CAAC,EAAE;EACDH,IAAAA,SAAS,EAAE,GAAA;KARS;EAUtBI,EAAAA,CAAC,EAAE;EACDJ,IAAAA,SAAS,EAAE,GAAA;EADV,GAAA;EAVmB,EAAjB;AAeA,MAAMK,IAAI,GAAG;EAClBvB,EAAAA,KAAK,EAAE;EACLkB,IAAAA,SAAS,EAAE,IADN;EAELM,IAAAA,QAAQ,EAAE,SAAA;KAHM;EAKlBC,EAAAA,cAAc,EAAE;EACdP,IAAAA,SAAS,EAAE,KAAA;KANK;EAQlBQ,EAAAA,UAAU,EAAE;EACVR,IAAAA,SAAS,EAAE,KAAA;KATK;EAWlBS,EAAAA,QAAQ,EAAE;EACRT,IAAAA,SAAS,EAAE,KAAA;KAZK;EAclBU,EAAAA,UAAU,EAAE;EACVV,IAAAA,SAAS,EAAE,KAAA;KAfK;EAiBlBW,EAAAA,aAAa,EAAE;EACbX,IAAAA,SAAS,EAAE,gBAAA;EADE,GAAA;EAjBG;;;EC7Bb,SAASY,cAAT,CAAgE,KAAA,EAAA;EAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA,CAAA;QAAtCrC,QAAsC,QAAtCA,QAAsC,CAAA;QAAnBe,UAAmB,QAAnBA,WAAmB;;IACrE,IAA0BA,oBAAAA,GAAAA,UAA1B,CAAQuB,QAAR;QAAQA,QAAR,qCAAmB,EAAnB,GAAA,oBAAA,CAAA;IAEA,IAAMC,IAAI,GAAG,SAAb,CAAA;IACA,IAAMC,aAAa,GAAG,GAAtB,CAAA;IAEAF,QAAQ,CAACG,OAAT,CAAiB,UAA0E,KAAA,EAAA;MAAA,IAAvEC,QAAuE,SAAvEA,QAAuE;UAA7DhB,UAA6D,SAA7DA,QAA6D;UAAnDI,MAAmD,SAAnDA,IAAmD;EAAA,QAAA,aAAA,GAAA,KAAA,CAA7Ca,OAA6C;UAApCC,YAAoC,8BAArB,EAAqB,GAAA,aAAA;EAAA,QAAd9B,OAAc,GAAA,6BAAA,CAAA,KAAA,EAAA+B,WAAA,CAAA,CAAA;;EACzF,IAAA,IAAMC,WAAW,GAAG,OAAOJ,QAAP,KAAoB,QAAxC,CAAA;EACA,IAAA,IAAMK,OAAO,GAAG,OAAOjB,MAAP,KAAgB,QAAhC,CAAA;EACA,IAAA,IAAMkB,WAAW,GAAG,OAAOtB,UAAP,KAAoB,QAAxC,CAAA;;EAEA,IAAA,IAAK,CAACoB,WAAD,IAAgB,CAACC,OAAtB,EAAgC;QAC9B1B,OAAO,CAACC,IAAR,CAAA,KAAA,GAAmBiB,IAAnB,GAAA,+BAAA,CAAA,CAAA;EACA,MAAA,OAAA;EACD,KARwF;EAWzF;;;EAEA,IAAA,IAAIU,mBAAJ,CAAA;;EAEA,IAAA,IAAKF,OAAL,EAAe;QACbE,mBAAmB,GAAMT,aAAN,GAAnB,OAAA,CAAA;EACD,KAFD,MAEO;QACLS,mBAAmB,GAAMT,aAAN,GAAA,GAAA,GAAuBE,QAAQ,CAACQ,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAA1C,CAAA;EACD,KAnBwF;EAsBzF;;;MAEA,IAAM3B,SAAO,GAAG,EAAhB,CAAA;EACA,IAAA,IAAM4B,OAAO,GAAG,EAAhB,CAzByF;;MA6BzFC,MAAM,CAACC,IAAP,CAAYvC,OAAZ,EAAqB2B,OAArB,CAA6B,UAAAa,GAAG,EAAI;EAClC,MAAA,IAAK,CAACC,OAAiB,CAACD,GAAD,CAAvB,EAA+B,OAAA;EAC/B,MAAA,IAAQ7B,SAAR,GAAsB8B,OAAiB,CAACD,GAAD,CAAvC,CAAQ7B,SAAR,CAAA;QACAF,SAAO,CAACiC,IAAR,CAAgB/B,SAAhB,SAA6BX,OAAO,CAACwC,GAAD,CAApC,CAAA,CAAA;EACD,KAJD,EA7ByF;;EAqCzFV,IAAAA,YAAY,CAACH,OAAb,CAAqB,UAAApC,MAAM,EAAI;QAC7B+C,MAAM,CAACC,IAAP,CAAYhD,MAAZ,EAAoBoC,OAApB,CAA4B,UAAAa,GAAG,EAAI;EACjC,QAAA,IAAK,CAACC,OAAiB,CAACD,GAAD,CAAvB,EAA+B,OAAA;EAC/B,QAAA,IAAQ7B,SAAR,GAAsB8B,OAAiB,CAACD,GAAD,CAAvC,CAAQ7B,SAAR,CAAA;UACAF,SAAO,CAACiC,IAAR,CAAgB/B,SAAhB,SAA6BpB,MAAM,CAACiD,GAAD,CAAnC,CAAA,CAAA;SAHF,CAAA,CAAA;EAKD,KAND,EArCyF;;EA+CzF,IAAA,IAAKP,OAAL,EAAe;QACb,IAAMU,mBAAmB,GAAG,EAA5B,CAAA;QAEAL,MAAM,CAACC,IAAP,CAAYvB,MAAZ,EAAkBW,OAAlB,CAA0B,UAAAa,GAAG,EAAI;EAC/B,QAAA,IAAK,CAACI,IAAc,CAACJ,GAAD,CAApB,EAA4B,OAAA;UAE5B,IAAgCI,mBAAAA,GAAAA,IAAc,CAACJ,GAAD,CAA9C;cAAQ7B,SAAR,uBAAQA,SAAR;cAAmBM,QAAnB,uBAAmBA,QAAnB,CAAA;;UAEA,IAAKA,QAAQ,KAAK,SAAlB,EAA8B;YAC5BR,SAAO,CAACiC,IAAR,CAAgB/B,SAAhB,SAA6BK,MAAI,CAACwB,GAAD,CAAjC,CAAA,CAAA;EACD,SAFD,MAEO;EACLG,UAAAA,mBAAmB,CAACD,IAApB,CAAyB1B,MAAI,CAACwB,GAAD,CAA7B,CAAA,CAAA;EACD,SAAA;SATH,CAAA,CAAA;EAYAL,MAAAA,mBAAmB,GAAMA,mBAAN,GAA6BQ,GAAAA,GAAAA,mBAAmB,CAAC/C,IAApB,CAAyB,GAAzB,CAA7B,GAAA,GAAA,GAA8DoB,MAAI,CAACA,IAAtF,CAAA;EACD,KA/DwF;;;EAmEzF,IAAA,IAAKkB,WAAL,EAAmB;QACjBI,MAAM,CAACC,IAAP,CAAY3B,UAAZ,EAAsBe,OAAtB,CAA8B,UAAAa,GAAG,EAAI;EACnC,QAAA,IAAK,CAACK,QAAkB,CAACL,GAAD,CAAxB,EAAgC,OAAA;EAEhC,QAAA,IAAQ7B,SAAR,GAAsBkC,QAAkB,CAACL,GAAD,CAAxC,CAAQ7B,SAAR,CAAA;UAEA0B,OAAO,CAACK,IAAR,CAAgB/B,SAAhB,SAA6BC,UAAQ,CAAC4B,GAAD,CAArC,CAAA,CAAA;SALF,CAAA,CAAA;EAOD,KA3EwF;;;MA+EzFL,mBAAmB,GAAMA,mBAAN,GAAA,GAAA,GAA6B1B,SAAO,CAACb,IAAR,CAAa,GAAb,CAAhD,CA/EyF;;MAmFzFuC,mBAAmB,GAAMA,mBAAN,GAAnB,iBAAA,CAAA;;EAEA,IAAA,IAAKE,OAAO,CAACS,MAAR,GAAiB,CAAtB,EAA0B;QACxBX,mBAAmB,GAAMA,mBAAN,GAA6BE,GAAAA,GAAAA,OAAO,CAACzC,IAAR,CAAa,GAAb,CAAhD,CAAA;EACD,KAvFwF;;;MA2FzFV,QAAQ,CAAC6D,iBAAT,CAA2BZ,mBAA3B,CAAA,CAAA;KA3FF,CAAA,CAAA;EA6FD;;ECzGM,SAASa,sBAAT,CAAwE,KAAA,EAAA;EAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA,CAAA;QAAtC9D,QAAsC,QAAtCA,QAAsC,CAAA;QAAnBe,UAAmB,QAAnBA,WAAmB;;IAC7E,IAAqCA,qBAAAA,GAAAA,UAArC,CAAQgD,gBAAR;QAAQA,gBAAR,sCAA2B,KAA3B,GAAA,qBAAA,CAAA;;EACA,EAAA,IAAKA,gBAAL,EAAwB;MACtB/D,QAAQ,CAACK,MAAT,CAAgB,sBAAhB,CAAA,CAAA;EACD,GAAA;EACF;;;ECCM,SAAS2D,eAAT,CAAiE,KAAA,EAAA;EAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA,CAAA;QAAtChE,QAAsC,QAAtCA,QAAsC,CAAA;QAAnBe,UAAmB,QAAnBA,WAAmB;;IACtE,IAA2BA,qBAAAA,GAAAA,UAA3B,CAAQkD,SAAR;QAAQA,SAAR,sCAAoB,EAApB,GAAA,qBAAA,CAAA;IAGA,IAAMzB,aAAa,GAAG,GAAtB,CAAA;IAEAyB,SAAS,CAACxB,OAAV,CAAkB,UAAgF,KAAA,EAAA;MAA7EC,IAAAA,QAA6E,SAA7EA,QAA6E,CAAA;UAAnEH,IAAmE,SAAnEA,IAAmE,CAAA;UAA7Db,UAA6D,SAA7DA,QAA6D,CAAA;UAAA,aAAA,GAAA,KAAA,CAA7CiB,OAA6C,CAAA;UAApCC,YAAoC,8BAArB,EAAqB,GAAA,aAAA,CAAA;EAAA,QAAd9B,OAAc,GAAA,6BAAA,CAAA,KAAA,EAAA+B,WAAA,EAAA;;EAChG,IAAA,IAAMC,WAAW,GAAG,OAAOJ,QAAP,KAAoB,QAAxC,CAAA;EACA,IAAA,IAAMM,WAAW,GAAG,OAAOtB,UAAP,KAAoB,QAAxC,CAAA;;MAEA,IAAK,CAACoB,WAAN,EAAoB;QAClBzB,OAAO,CAACC,IAAR,CAAA,KAAA,GAAmBiB,IAAnB,GAAA,yBAAA,CAAA,CAAA;EACA,MAAA,OAAA;EACD,KAP+F;EAUhG;;;EAEA,IAAA,IAAIU,mBAAmB,GAAMT,aAAN,GAAA,GAAA,GAAuBE,QAAQ,CAACQ,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAA9C,CAZgG;EAehG;;MAEA,IAAM3B,SAAO,GAAG,EAAhB,CAAA;EACA,IAAA,IAAM4B,OAAO,GAAG,EAAhB,CAlBgG;;MAsBhGC,MAAM,CAACC,IAAP,CAAYvC,OAAZ,EAAqB2B,OAArB,CAA6B,UAAAa,GAAG,EAAI;EAClC,MAAA,IAAK,CAACC,OAAiB,CAACD,GAAD,CAAvB,EAA+B,OAAA;EAC/B,MAAA,IAAQ7B,SAAR,GAAsB8B,OAAiB,CAACD,GAAD,CAAvC,CAAQ7B,SAAR,CAAA;QACAF,SAAO,CAACiC,IAAR,CAAgB/B,SAAhB,SAA6BX,OAAO,CAACwC,GAAD,CAApC,CAAA,CAAA;EACD,KAJD,EAtBgG;;EA8BhGV,IAAAA,YAAY,CAACH,OAAb,CAAqB,UAAApC,MAAM,EAAI;QAC7B+C,MAAM,CAACC,IAAP,CAAYhD,MAAZ,EAAoBoC,OAApB,CAA4B,UAAAa,GAAG,EAAI;EACjC,QAAA,IAAK,CAACC,OAAiB,CAACD,GAAD,CAAvB,EAA+B,OAAA;EAC/B,QAAA,IAAQ7B,SAAR,GAAsB8B,OAAiB,CAACD,GAAD,CAAvC,CAAQ7B,SAAR,CAAA;UACAF,SAAO,CAACiC,IAAR,CAAgB/B,SAAhB,SAA6BpB,MAAM,CAACiD,GAAD,CAAnC,CAAA,CAAA;SAHF,CAAA,CAAA;EAKD,KAND,EA9BgG;;EAwChG,IAAA,IAAKN,WAAL,EAAmB;QACjBI,MAAM,CAACC,IAAP,CAAY3B,UAAZ,EAAsBe,OAAtB,CAA8B,UAAAa,GAAG,EAAI;EACnC,QAAA,IAAK,CAACK,QAAkB,CAACL,GAAD,CAAxB,EAAgC,OAAA;EAEhC,QAAA,IAAQ7B,SAAR,GAAsBkC,QAAkB,CAACL,GAAD,CAAxC,CAAQ7B,SAAR,CAAA;UAEA0B,OAAO,CAACK,IAAR,CAAgB/B,SAAhB,SAA6BC,UAAQ,CAAC4B,GAAD,CAArC,CAAA,CAAA;SALF,CAAA,CAAA;EAOD,KAhD+F;;;MAoDhGL,mBAAmB,GAAMA,mBAAN,GAAA,GAAA,GAA6B1B,SAAO,CAACb,IAAR,CAAa,GAAb,CAAhD,CApDgG;;MAwDhGuC,mBAAmB,GAAMA,mBAAN,GAAnB,iBAAA,CAAA;;EAEA,IAAA,IAAKE,OAAO,CAACS,MAAR,GAAiB,CAAtB,EAA0B;QACxBX,mBAAmB,GAAMA,mBAAN,GAA6BE,GAAAA,GAAAA,OAAO,CAACzC,IAAR,CAAa,GAAb,CAAhD,CAAA;EACD,KA5D+F;;;MAgEhGV,QAAQ,CAAC6D,iBAAT,CAA2BZ,mBAA3B,CAAA,CAAA;KAhEF,CAAA,CAAA;EAkED;;ECjED,IAAM7D,GAAG,GAAG,IAAIC,iBAAJ,CAAe;EACzBC,EAAAA,KAAK,EAAE;EACLC,IAAAA,SAAS,EAAEC,OAAO,CAACC,GAAR,CAAYC,iCAAAA;EADlB,GAAA;EADkB,CAAf,CAAZ,CAAA;EAMA,IAAMwE,qBAAqB,GAAG;EAE5BJ,sBAF4B,EAI5BjD,cAJ4B,EAK5BwB,cAL4B,EAM5B2B,eAN4B,CAA9B,CAAA;EASO,SAASG,gBAAT,CAA0BrD,OAA1B,EAAmCC,UAAnC,EAA+C;EACpD,EAAA,IACEjB,GADF,GAKIgB,OALJ,CACEhB,GADF,CAAA;EAAA,MAKIgB,eAAAA,GAAAA,OALJ,CAGEV,MAHF,CAAA;QAGEA,MAHF,gCAGW,MAHX,GAAA,eAAA,CAAA;QAKIU,gBAAAA,GAAAA,OALJ,CAIEsD,OAJF,CAAA;QAIEA,OAJF,iCAIY,MAJZ,GAAA,iBAAA;EAOA,EAAA,IAAMpE,QAAQ,GAAGZ,GAAG,CAACa,KAAJ,CAAUH,GAAV,CAAjB,CAAA;EAEAoE,EAAAA,qBAAqB,CAACzB,OAAtB,CAA8B,UAAA4B,MAAM,EAAI;EACtCA,IAAAA,MAAM,CAAC;EACLrE,MAAAA,QAAQ,EAARA,QADK;EAELc,MAAAA,OAAO,EAAPA,OAFK;EAGLC,MAAAA,UAAU,EAAVA,UAAAA;EAHK,KAAD,CAAN,CAAA;KADF,CAAA,CAAA;IAQA,OAAOf,QAAQ,CAACI,MAAT,CAAgBA,MAAhB,CAAwBD,CAAAA,QAAxB,CAAsCiE,IAAAA,GAAAA,OAAtC,CAAiDzD,CAAAA,KAAjD,EAAP,CAAA;EACD;;;;AC1CD,MAAM2D,QAAQ,GAAG,SAAXA,QAAW,CAAwE,IAAA,EAAA;IAAA,IAArEpD,IAAqE,QAArEA,IAAqE;QAA/DC,OAA+D,QAA/DA,OAA+D;QAAtDmB,QAAsD,QAAtDA,QAAsD;QAA5CyB,gBAA4C,QAA5CA,gBAA4C;QAA1BE,SAA0B,QAA1BA,SAA0B;EAAA,MAAZM,KAAY,GAAA,6BAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;;EACvF,EAAA,IAAMxD,UAAU,GAAG;EACjBG,IAAAA,IAAI,EAAJA,IADiB;EAEjBC,IAAAA,OAAO,EAAPA,OAFiB;EAGjBmB,IAAAA,QAAQ,EAARA,QAHiB;EAIjByB,IAAAA,gBAAgB,EAAhBA,gBAJiB;EAKjBE,IAAAA,SAAS,EAATA,SAAAA;KALF,CAAA;EAQA,EAAA,IAAMO,UAAU,GAAG,EAAnB,CATuF;EAYvF;EACA;EACA;;IAEA,IAAKD,KAAK,CAACxE,WAAX,EAAyB;EACvByE,IAAAA,UAAU,CAACC,WAAX,GAAyB5E,oBAAoB,CAAC;QAC5CC,GAAG,EAAEyE,KAAK,CAACzE,GADiC;QAE5CC,WAAW,EAAEwE,KAAK,CAACxE,WAAAA;EAFyB,KAAD,CAA7C,CAAA;;EAKA,IAAA,IAAKwE,KAAK,CAACxE,WAAN,KAAsB,MAA3B,EAAoC;QAClCwE,KAAK,CAACxE,WAAN,GAAoB,MAApB,CAAA;EACD,KAAA;EACF,GAAA;;EAED,EAAA,oBACE2E,cAAC,CAAAC,yBAAD,EACMH,QAAAA,CAAAA,EAAAA,EAAAA,UADN,EAEMD,KAFN,EAAA;MAGE,MAAM,EAAE,gBAACzD,OAAD,EAAA;QAAA,OAAaqD,gBAAgB,cAAMI,KAAN,EAAA;EAAazD,QAAAA,OAAO,EAAPA,OAAAA;EAAb,OAAA,CAAA,EAAwBC,UAAxB,CAA7B,CAAA;EAAA,KAAA;KAJZ,CAAA,CAAA,CAAA;EAOD;;;;;;;;;;;;"}
|