next-cloudinary 0.0.8 → 0.0.10
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/README.md +47 -2
- package/dist/next-cloudinary.js +186 -24
- package/dist/next-cloudinary.js.map +1 -1
- package/dist/next-cloudinary.modern.mjs +185 -28
- package/dist/next-cloudinary.modern.mjs.map +1 -1
- package/dist/next-cloudinary.module.js +186 -24
- package/dist/next-cloudinary.module.js.map +1 -1
- package/dist/next-cloudinary.umd.js +186 -24
- package/dist/next-cloudinary.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -70,7 +70,8 @@ function createPlaceholderUrl(_ref) {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
var cropsGravityAuto = ['crop', 'fill', 'lfill', 'fill_pad', 'thumb'];
|
|
73
|
-
|
|
73
|
+
var props$5 = ['crop', 'gravity'];
|
|
74
|
+
function plugin$5(_temp) {
|
|
74
75
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
75
76
|
cldImage = _ref.cldImage,
|
|
76
77
|
options = _ref.options,
|
|
@@ -102,6 +103,12 @@ function croppingPlugin(_temp) {
|
|
|
102
103
|
cldImage.resize(transformationString);
|
|
103
104
|
}
|
|
104
105
|
|
|
106
|
+
var croppingPlugin = {
|
|
107
|
+
__proto__: null,
|
|
108
|
+
props: props$5,
|
|
109
|
+
plugin: plugin$5
|
|
110
|
+
};
|
|
111
|
+
|
|
105
112
|
// aspectRatio
|
|
106
113
|
var primary = {
|
|
107
114
|
aspectRatio: {
|
|
@@ -157,7 +164,8 @@ var text = {
|
|
|
157
164
|
};
|
|
158
165
|
|
|
159
166
|
var _excluded$1 = ["publicId", "position", "text", "effects"];
|
|
160
|
-
|
|
167
|
+
var props$4 = ['overlays'];
|
|
168
|
+
function plugin$4(_temp) {
|
|
161
169
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
162
170
|
cldImage = _ref.cldImage,
|
|
163
171
|
cldOptions = _ref.cldOptions;
|
|
@@ -252,7 +260,14 @@ function overlaysPlugin(_temp) {
|
|
|
252
260
|
});
|
|
253
261
|
}
|
|
254
262
|
|
|
255
|
-
|
|
263
|
+
var overlaysPlugin = {
|
|
264
|
+
__proto__: null,
|
|
265
|
+
props: props$4,
|
|
266
|
+
plugin: plugin$4
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
var props$3 = ['removeBackground'];
|
|
270
|
+
function plugin$3(_temp) {
|
|
256
271
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
257
272
|
cldImage = _ref.cldImage,
|
|
258
273
|
cldOptions = _ref.cldOptions;
|
|
@@ -265,20 +280,91 @@ function removeBackgroundPlugin(_temp) {
|
|
|
265
280
|
}
|
|
266
281
|
}
|
|
267
282
|
|
|
268
|
-
|
|
283
|
+
var removeBackgroundPlugin = {
|
|
284
|
+
__proto__: null,
|
|
285
|
+
props: props$3,
|
|
286
|
+
plugin: plugin$3
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
var params = ['art', {
|
|
290
|
+
prop: 'autoBrightness',
|
|
291
|
+
effect: 'auto_brightness'
|
|
292
|
+
}, {
|
|
293
|
+
prop: 'autoColor',
|
|
294
|
+
effect: 'auto_color'
|
|
295
|
+
}, {
|
|
296
|
+
prop: 'autoContrast',
|
|
297
|
+
effect: 'auto_contrast'
|
|
298
|
+
}, {
|
|
299
|
+
prop: 'assistColorblind',
|
|
300
|
+
effect: 'assist_colorblind'
|
|
301
|
+
}, 'blackwhite', 'blur', {
|
|
302
|
+
prop: 'blurFaces',
|
|
303
|
+
effect: 'blur_faces'
|
|
304
|
+
}, {
|
|
305
|
+
prop: 'blurRegion',
|
|
306
|
+
effect: 'blur_region'
|
|
307
|
+
}, 'brightness', {
|
|
308
|
+
prop: 'brightnessHSB',
|
|
309
|
+
effect: 'brightness_hsb'
|
|
310
|
+
}, 'cartoonify', 'colorize', 'contrast', 'distort', {
|
|
311
|
+
prop: 'fillLight',
|
|
312
|
+
effect: 'fill_light'
|
|
313
|
+
}, 'gamma', {
|
|
314
|
+
prop: 'gradientFade',
|
|
315
|
+
effect: 'gradient_fade'
|
|
316
|
+
}, 'grayscale', 'improve', 'negate', {
|
|
317
|
+
prop: 'oilPaint',
|
|
318
|
+
effect: 'oil_paint'
|
|
319
|
+
}, 'outline', 'pixelate', {
|
|
320
|
+
prop: 'pixelateFaces',
|
|
321
|
+
effect: 'pixelate_faces'
|
|
322
|
+
}, {
|
|
323
|
+
prop: 'pixelateRegion',
|
|
324
|
+
effect: 'pixelate_region'
|
|
325
|
+
}, 'redeye', {
|
|
326
|
+
prop: 'replaceColor',
|
|
327
|
+
effect: 'replace_color'
|
|
328
|
+
}, 'saturation', 'sepia', 'shadow', 'sharpen', 'shear', {
|
|
329
|
+
prop: 'simulateColorblind',
|
|
330
|
+
effect: 'simulate_colorblind'
|
|
331
|
+
}, 'tint', {
|
|
332
|
+
prop: 'unsharpMask',
|
|
333
|
+
effect: 'unsharp_mask'
|
|
334
|
+
}, 'vectorize', 'vibrance', 'vignette'];
|
|
335
|
+
var props$2 = params.map(function (param) {
|
|
336
|
+
return param.prop || param;
|
|
337
|
+
});
|
|
338
|
+
function plugin$2(_temp) {
|
|
269
339
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
270
340
|
cldImage = _ref.cldImage,
|
|
271
341
|
cldOptions = _ref.cldOptions;
|
|
272
342
|
|
|
273
|
-
|
|
343
|
+
params.forEach(function (key) {
|
|
344
|
+
var prop = key.prop || key;
|
|
345
|
+
var effect = key.effect || key;
|
|
274
346
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
347
|
+
if (prop === 'oilPaint' && cldOptions[prop]) {
|
|
348
|
+
console.log('cldOptions[prop]', cldOptions[prop]);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
if (cldOptions[prop] === true) {
|
|
352
|
+
cldImage.effect("e_" + effect);
|
|
353
|
+
} else if (typeof cldOptions[prop] === 'string') {
|
|
354
|
+
cldImage.effect("e_" + effect + ":" + cldOptions[prop]);
|
|
355
|
+
}
|
|
356
|
+
});
|
|
278
357
|
}
|
|
279
358
|
|
|
359
|
+
var effectsPlugin = {
|
|
360
|
+
__proto__: null,
|
|
361
|
+
props: props$2,
|
|
362
|
+
plugin: plugin$2
|
|
363
|
+
};
|
|
364
|
+
|
|
280
365
|
var _excluded = ["publicId", "type", "position", "text", "effects"];
|
|
281
|
-
|
|
366
|
+
var props$1 = ['underlays'];
|
|
367
|
+
function plugin$1(_temp) {
|
|
282
368
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
283
369
|
cldImage = _ref.cldImage,
|
|
284
370
|
cldOptions = _ref.cldOptions;
|
|
@@ -346,43 +432,119 @@ function underlaysPlugin(_temp) {
|
|
|
346
432
|
});
|
|
347
433
|
}
|
|
348
434
|
|
|
435
|
+
var underlaysPlugin = {
|
|
436
|
+
__proto__: null,
|
|
437
|
+
props: props$1,
|
|
438
|
+
plugin: plugin$1
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
var props = ['zoompan'];
|
|
442
|
+
var options = {
|
|
443
|
+
format: 'gif'
|
|
444
|
+
};
|
|
445
|
+
function plugin(_temp) {
|
|
446
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
447
|
+
cldImage = _ref.cldImage,
|
|
448
|
+
cldOptions = _ref.cldOptions;
|
|
449
|
+
|
|
450
|
+
var _cldOptions$zoompan = cldOptions.zoompan,
|
|
451
|
+
zoompan = _cldOptions$zoompan === void 0 ? false : _cldOptions$zoompan;
|
|
452
|
+
|
|
453
|
+
if (zoompan === true) {
|
|
454
|
+
cldImage.effect('e_zoompan');
|
|
455
|
+
} else if (typeof zoompan === 'string') {
|
|
456
|
+
if (zoompan === 'loop') {
|
|
457
|
+
cldImage.effect('e_zoompan');
|
|
458
|
+
cldImage.effect('e_loop');
|
|
459
|
+
} else {
|
|
460
|
+
cldImage.effect("e_zoompan:" + zoompan);
|
|
461
|
+
}
|
|
462
|
+
} else if (typeof zoompan === 'object') {
|
|
463
|
+
var zoompanEffect = 'e_zoompan';
|
|
464
|
+
|
|
465
|
+
if (typeof zoompan.options === 'string') {
|
|
466
|
+
zoompanEffect = "" + zoompanEffect + zoompan.options;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
cldImage.effect(zoompanEffect);
|
|
470
|
+
var loopEffect;
|
|
471
|
+
|
|
472
|
+
if (zoompan.loop === true) {
|
|
473
|
+
loopEffect = 'e_loop';
|
|
474
|
+
} else if (typeof zoompan.loop === 'string') {
|
|
475
|
+
loopEffect = "e_loop" + zoompan.loop;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
if (loopEffect) {
|
|
479
|
+
cldImage.effect(loopEffect);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
var zoompanPlugin = {
|
|
485
|
+
__proto__: null,
|
|
486
|
+
props: props,
|
|
487
|
+
options: options,
|
|
488
|
+
plugin: plugin
|
|
489
|
+
};
|
|
490
|
+
|
|
349
491
|
var cld = new Cloudinary({
|
|
350
492
|
cloud: {
|
|
351
493
|
cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
|
|
494
|
+
},
|
|
495
|
+
url: {
|
|
496
|
+
// Used to avoid issues with SSR particularly for the blurred placeholder
|
|
497
|
+
analytics: false
|
|
352
498
|
}
|
|
353
499
|
});
|
|
354
500
|
var transformationPlugins = [removeBackgroundPlugin, // Background Removal must always come first
|
|
355
|
-
croppingPlugin,
|
|
356
|
-
function cloudinaryLoader(
|
|
357
|
-
var
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
var cldImage = cld.image(src);
|
|
363
|
-
transformationPlugins.forEach(function (
|
|
501
|
+
croppingPlugin, effectsPlugin, overlaysPlugin, underlaysPlugin, zoompanPlugin];
|
|
502
|
+
function cloudinaryLoader(defaultOptions, cldOptions) {
|
|
503
|
+
var options = _extends({
|
|
504
|
+
format: 'auto',
|
|
505
|
+
quality: 'auto'
|
|
506
|
+
}, defaultOptions);
|
|
507
|
+
|
|
508
|
+
var cldImage = cld.image(options.src);
|
|
509
|
+
transformationPlugins.forEach(function (_ref) {
|
|
510
|
+
var plugin = _ref.plugin,
|
|
511
|
+
pluginOptions = _ref.options;
|
|
364
512
|
plugin({
|
|
365
513
|
cldImage: cldImage,
|
|
366
514
|
options: options,
|
|
367
515
|
cldOptions: cldOptions
|
|
368
516
|
});
|
|
517
|
+
|
|
518
|
+
if (pluginOptions != null && pluginOptions.format) {
|
|
519
|
+
options.format = pluginOptions.format;
|
|
520
|
+
}
|
|
369
521
|
});
|
|
370
|
-
return cldImage.format(format).delivery("q_" + quality).toURL();
|
|
522
|
+
return cldImage.format(options.format).delivery("q_" + options.quality).toURL();
|
|
371
523
|
}
|
|
372
524
|
|
|
373
|
-
var options = ['crop', 'gravity', 'overlays', 'removeBackground', 'tint', 'underlays'];
|
|
374
|
-
|
|
375
525
|
var CldImage = function CldImage(props) {
|
|
376
|
-
|
|
526
|
+
var CLD_OPTIONS = [];
|
|
527
|
+
transformationPlugins.forEach(function (_ref) {
|
|
528
|
+
var _ref$props = _ref.props,
|
|
529
|
+
props = _ref$props === void 0 ? [] : _ref$props;
|
|
530
|
+
props.forEach(function (prop) {
|
|
531
|
+
if (CLD_OPTIONS.includes(prop)) {
|
|
532
|
+
throw new Error("Option " + prop + " already exists!");
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
CLD_OPTIONS.push(prop);
|
|
536
|
+
});
|
|
537
|
+
}); // Construct the base Image component props by filtering out Cloudinary-specific props
|
|
538
|
+
|
|
377
539
|
var imageProps = {};
|
|
378
540
|
Object.keys(props).filter(function (key) {
|
|
379
|
-
return !
|
|
541
|
+
return !CLD_OPTIONS.includes(key);
|
|
380
542
|
}).forEach(function (key) {
|
|
381
543
|
return imageProps[key] = props[key];
|
|
382
544
|
}); // Construct Cloudinary-specific props by looking for values for any of the supported prop keys
|
|
383
545
|
|
|
384
546
|
var cldOptions = {};
|
|
385
|
-
|
|
547
|
+
CLD_OPTIONS.forEach(function (key) {
|
|
386
548
|
if (props[key]) {
|
|
387
549
|
cldOptions[key] = props[key];
|
|
388
550
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-cloudinary.module.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/tint.js","../src/plugins/underlays.js","../src/loaders/cloudinary-loader.js","../src/constants/options.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 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 textDecoration: {\n qualifier: false\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}","export function tintPlugin({ cldImage, options, cldOptions } = {}) {\n const { tint } = cldOptions;\n\n if ( tint ) {\n cldImage.effect(`e_tint:${tint}`);\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 { tintPlugin } from '../plugins/tint';\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 removeBackgroundPlugin, // Background Removal must always come first\n croppingPlugin,\n tintPlugin,\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}","export const options = [\n 'crop',\n 'gravity',\n 'overlays',\n 'removeBackground',\n 'tint',\n 'underlays',\n];\n\n\n","import Image from 'next/image';\n\nimport { createPlaceholderUrl } from '../../lib/cloudinary';\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\nimport { options as CLD_OPTIONS } from '../../constants/options';\n\nconst CldImage = props => {\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\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 //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n imageProps.blurDataURL = createPlaceholderUrl({\n src: props.src,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, 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","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","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","tintPlugin","tint","underlaysPlugin","underlays","transformationPlugins","cloudinaryLoader","quality","plugin","CldImage","props","imageProps","filter","CLD_OPTIONS","blurDataURL","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"next-cloudinary.module.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/effects.js","../src/plugins/underlays.js","../src/plugins/zoompan.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 const props = ['crop', 'gravity'];\n\nexport function plugin({ 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 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 textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ 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 const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ 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}","export const props = ['zoompan'];\n\nexport const options = {\n format: 'gif'\n}\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\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 url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\nexport const transformationPlugins = [\n removeBackgroundPlugin, // Background Removal must always come first\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions) {\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n\n const cldImage = cld.image(options.src);\n\n transformationPlugins.forEach(({ plugin, options: pluginOptions }) => {\n plugin({\n cldImage,\n options,\n cldOptions\n });\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\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 //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n imageProps.blurDataURL = createPlaceholderUrl({\n src: props.src,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, 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","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","console","warn","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","forEach","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","key","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","length","addTransformation","removeBackground","params","prop","map","param","log","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","cloudinaryLoader","defaultOptions","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx"],"mappings":"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"}
|