nl_tokens: The base class for transformations . Members of this class are documented as belonging to the {
pl_tokens: function TransformationBase ( options ) { var parent , trans ; if ( options == null ) { options = { } ; } /** @private */ parent = void 0 ; /** @private */ trans = { } ; /**
         * Return an options object that can be used to create an identical Transformation
         * @function Transformation#toOptions
         * @return {Object} Returns a plain object representing this transformation
         */ this . toOptions || ( this . toOptions = function ( withChain ) { var key , list , opt , ref , ref1 , tr , value ; if ( withChain == null ) { withChain = true ; } opt = { } ; for ( key in trans ) { value = trans [ key ] ; opt [ key ] = value . origValue ; } ref = this . otherOptions ; for ( key in ref ) { <mask> = ref [ key ] ; if ( value !== void 0 ) { opt [ key ] = value ; } } if ( withChain && ! Util . isEmpty ( this . chained ) ) { list = ( function ( ) { var j , len , ref1 , results ; ref1 = this . chained ; results = [ ] ; for ( j = 0 , len = ref1 . length ; j < len ; j ++ ) { tr = ref1 [ j ] ; results . push ( tr . toOptions ( ) ) ; } return results ; } ) . call ( this ) ; list . push ( opt ) ; opt = { } ; ref1 = this . otherOptions ; for ( key in ref1 ) { value = ref1 [ key ] ; if ( value !== void 0 ) { opt [ key ] = value ; } } opt . transformation = list ; } return opt ; } ) ; /**
         * Set a parent for this object for chaining purposes.
         *
         * @function Transformation#setParent
         * @param {Object} object - the parent to be assigned to
         * @returns {Transformation} Returns this instance for chaining purposes.
         */ this . setParent || ( this . setParent = function ( object ) { parent = object ; if ( object != null ) { this . fromOptions ( typeof object . toOptions === "function" ? object . toOptions ( ) : void 0 ) ; } return this ; } ) ; /**
         * Returns the parent of this object in the chain
         * @function Transformation#getParent
         * @protected
         * @return {Object} Returns the parent of this object if there is any
         */ this . getParent || ( this . getParent = function ( ) { return parent ; } ) ; /** @protected */ this . param || ( this . param = function ( value , name , abbr , defaultValue , process ) { if ( process == null ) { if ( Util . isFunction ( defaultValue ) ) { process = defaultValue ; } else { process = Util . identity ; } } trans [ name ] = new Param ( name , abbr , process ) . set ( value ) ; return this ; } ) ; /** @protected */ this . rawParam || ( this . rawParam = function ( value , name , abbr , defaultValue , process ) { if ( process == null ) { process = Util . identity ; } process = lastArgCallback ( arguments ) ; trans [ name ] = new RawParam ( name , abbr , process ) . set ( value ) ; return this ; } ) ; /** @protected */ this . rangeParam || ( this . rangeParam = function ( value , name , abbr , defaultValue , process ) { if ( process == null ) { process = Util . identity ; } process = lastArgCallback ( arguments ) ; trans [ name ] = new RangeParam ( name , abbr , process ) . set ( value ) ; return this ; } ) ; /** @protected */ this . arrayParam || ( this . arrayParam = function ( value , name , abbr , sep , defaultValue , process ) { if ( sep == null ) { sep = ":" ; } if ( defaultValue == null ) { defaultValue = [ ] ; } if ( process == null ) { process = Util . identity ; } process = lastArgCallback ( arguments ) ; trans [ name ] = new ArrayParam ( name , abbr , sep , process ) . set ( value ) ; return this ; } ) ; /** @protected */ this . transformationParam || ( this . transformationParam = function ( value , name , abbr , sep , defaultValue , process ) { if ( sep == null ) { sep = "." ; } if ( process == null ) { process = Util . identity ; } process = lastArgCallback ( arguments ) ; trans [ name ] = new TransformationParam ( name , abbr , sep , process ) . set ( value ) ; return this ; } ) ; this . layerParam || ( this . layerParam = function ( value , name , abbr ) { trans [ name ] = new LayerParam ( name , abbr ) . set ( value ) ; return this ; } ) ; /**
         * Get the value associated with the given name.
         * @function Transformation#getValue
         * @param {string} name - the name of the parameter
         * @return {*} the processed value associated with the given name
         * @description Use {@link get}.origValue for the value originally provided for the parameter
         */ this . getValue || ( this . getValue = function ( name ) { var ref , ref1 ; return ( ref = ( ref1 = trans [ name ] ) != null ? ref1 . value ( ) : void 0 ) != null ? ref : this . otherOptions [ name ] ; } ) ; /**
         * Get the parameter object for the given parameter name
         * @function Transformation#get
         * @param {string} name the name of the transformation parameter
         * @returns {Param} the param object for the given name, or undefined
         */ this . get || ( this . get = function ( name ) { return trans [ name ] ; } ) ; /**
         * Remove a transformation option from the transformation.
         * @function Transformation#remove
         * @param {string} name - the name of the option to remove
         * @return {*} Returns the option that was removed or null if no option by that name was found. The type of the
         *              returned value depends on the value.
         */ this . remove || ( this . remove = function ( name ) { var temp ; switch ( false ) { case trans [ name ] == null : temp = trans [ name ] ; delete trans [ name ] ; return temp . origValue ; case this . otherOptions [ name ] == null : temp = this . otherOptions [ name ] ; delete this . otherOptions [ name ] ; return temp ; default : return null ; } } ) ; /**
         * Return an array of all the keys (option names) in the transformation.
         * @return {Array<string>} the keys in snakeCase format
         */ this . keys || ( this . keys = function ( ) { var key ; return ( ( function ( ) { var results ; results = [ ] ; for ( key in trans ) { if ( key != null ) { results . push ( key . match ( VAR_NAME_RE ) ? key : Util . snakeCase ( key ) ) ; } } return results ; } ) ( ) ) . sort ( ) ; } ) ; /**
         * Returns a plain object representation of the transformation. Values are processed.
         * @function Transformation#toPlainObject
         * @return {Object} the transformation options as plain object
         */ this . toPlainObject || ( this . toPlainObject = function ( ) { var hash , key , list , tr ; hash = { } ; for ( key in trans ) { hash [ key ] = trans [ key ] . value ( ) ; if ( Util . isPlainObject ( hash [ key ] ) ) { hash [ key ] = Util . cloneDeep ( hash [ key ] ) ; } } if ( ! Util . isEmpty ( this . chained ) ) { list = ( function ( ) { var j , len , ref , results ; ref = this . chained ; results = [ ] ; for ( j = 0 , len = ref . length ; j < len ; j ++ ) { tr = ref [ j ] ; results . push ( tr . toPlainObject ( ) ) ; } return results ; } ) . call ( this ) ; list . push ( hash ) ; hash = { transformation : list } ; } return hash ; } ) ; /**
         * Complete the current transformation and chain to a new one.
         * In the URL, transformations are chained together by slashes.
         * @function Transformation#chain
         * @return {Transformation} Returns this transformation for chaining
         * @example
         * var tr = cloudinary.Transformation.new();
         * tr.width(10).crop('fit').chain().angle(15).serialize()
         * // produces "c_fit,w_10/a_15"
         */ this . chain || ( this . chain = function ( ) { var names , tr ; names = Object . getOwnPropertyNames ( trans ) ; if ( names . length !== 0 ) { tr = new this . constructor ( this . toOptions ( false ) ) ; this . resetTransformations ( ) ; this . chained . push ( tr ) ; } return this ; } ) ; this . resetTransformations || ( this . resetTransformations = function ( ) { trans = { } ; return this ; } ) ; this . otherOptions || ( this . otherOptions = { } ) ; this . chained = [ ] ; if ( ! Util . isEmpty ( options ) ) { this . fromOptions ( options ) ; } }