UNPKG

@cloudinary/url-gen

Version:

You are invited to influence our new SDK [Click here to view github discussion](https://github.com/cloudinary/js-url-gen/discussions/602) =========================

74 lines (70 loc) 2.44 kB
'use strict'; var Action = require('./Action-0ed405c1.cjs'); var Qualifier = require('./Qualifier-6633a22f.cjs'); var QualifierValue = require('./QualifierValue-e770d619.cjs'); /** * @description Delivers an animated GIF that contains additional loops of the GIF. * The total number of iterations is the number of additional loops plus one. * You can also specify the loop effect without a numeric value to instruct it to loop the GIF infinitely. * * @memberOf Actions * @namespace Animated * @example * import {Cloudinary} from "@cloudinary/url-gen"; * import {animated} from "@cloudinary/url-gen/actions/animated"; * * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}}); * const image = yourCldInstance.image('woman'); * image.animated(edit().delay(200).loop(3))); */ /** * @memberOf Actions.Animated * @see Actions.Animated * @example * // Used through a builder function Animated.edit(), and not by creating a new instance * import {Cloudinary} from "@cloudinary/url-gen"; * import {edit} from "@cloudinary/url-gen/actions/animated"; * * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}}); * const image = yourCldInstance.image('woman'); * image.animated(edit().delay(200).loop(3))); */ class AnimatedAction extends Action.Action { constructor() { super(); } /** * @description Controls the time delay between the frames of an animated image, in milliseconds. * @param {number} delayValue The delay in milliseconds * @return {this} */ delay(delayValue) { this.addQualifier(new Qualifier.Qualifier('dl', delayValue)); return this; } /** * @description Delivers an animated GIF that contains additional loops of the GIF. * @param {number} additionalLoops The additional number of times to play the animated GIF. * @return {this} */ loop(additionalLoops) { const qualifierValue = new QualifierValue.QualifierValue(['loop', additionalLoops]).setDelimiter(':'); this.addQualifier(new Qualifier.Qualifier('e', qualifierValue)); return this; } } /** * @summary action * @memberOf Actions.Animated * @description Delivers an animated GIF. * @return {Actions.Animated.AnimatedAction} */ function edit() { return new AnimatedAction(); } const Animated = { edit }; exports.Animated = Animated; exports.AnimatedAction = AnimatedAction; exports.edit = edit;