svn commit: r1861566 [4/5] - in /ofbiz/branches/release16.11: framework/common/template/includes/ framework/common/widget/ framework/images/webapp/images/jquery/ framework/images/webapp/images/jquery/plugins/browser-plugin/ framework/images/webapp/imag...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1861566 [4/5] - in /ofbiz/branches/release16.11: framework/common/template/includes/ framework/common/widget/ framework/images/webapp/images/jquery/ framework/images/webapp/images/jquery/plugins/browser-plugin/ framework/images/webapp/imag...

adityasharma
Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.js?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.js (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.js Tue Jun 18 10:09:00 2019
@@ -0,0 +1,540 @@
+/*!
+ * jQuery Migrate - v3.0.0 - 2016-06-09
+ * Copyright jQuery Foundation and other contributors
+ */
+(function( jQuery, window ) {
+"use strict";
+
+
+jQuery.migrateVersion = "3.0.0";
+
+
+( function() {
+
+ // Support: IE9 only
+ // IE9 only creates console object when dev tools are first opened
+ // Also, avoid Function#bind here to simplify PhantomJS usage
+ var log = window.console && window.console.log &&
+ function() { window.console.log.apply( window.console, arguments ); },
+ rbadVersions = /^[12]\./;
+
+ if ( !log ) {
+ return;
+ }
+
+ // Need jQuery 3.0.0+ and no older Migrate loaded
+ if ( !jQuery || rbadVersions.test( jQuery.fn.jquery ) ) {
+ log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
+ }
+ if ( jQuery.migrateWarnings ) {
+ log( "JQMIGRATE: Migrate plugin loaded multiple times" );
+ }
+
+ // Show a message on the console so devs know we're active
+ log( "JQMIGRATE: Migrate is installed" +
+ ( jQuery.migrateMute ? "" : " with logging active" ) +
+ ", version " + jQuery.migrateVersion );
+
+} )();
+
+var warnedAbout = {};
+
+// List of warnings already given; public read only
+jQuery.migrateWarnings = [];
+
+// Set to false to disable traces that appear with warnings
+if ( jQuery.migrateTrace === undefined ) {
+ jQuery.migrateTrace = true;
+}
+
+// Forget any warnings we've already given; public
+jQuery.migrateReset = function() {
+ warnedAbout = {};
+ jQuery.migrateWarnings.length = 0;
+};
+
+function migrateWarn( msg ) {
+ var console = window.console;
+ if ( !warnedAbout[ msg ] ) {
+ warnedAbout[ msg ] = true;
+ jQuery.migrateWarnings.push( msg );
+ if ( console && console.warn && !jQuery.migrateMute ) {
+ console.warn( "JQMIGRATE: " + msg );
+ if ( jQuery.migrateTrace && console.trace ) {
+ console.trace();
+ }
+ }
+ }
+}
+
+function migrateWarnProp( obj, prop, value, msg ) {
+ Object.defineProperty( obj, prop, {
+ configurable: true,
+ enumerable: true,
+ get: function() {
+ migrateWarn( msg );
+ return value;
+ }
+ } );
+}
+
+if ( document.compatMode === "BackCompat" ) {
+
+ // JQuery has never supported or tested Quirks Mode
+ migrateWarn( "jQuery is not compatible with Quirks Mode" );
+}
+
+
+var oldInit = jQuery.fn.init,
+ oldIsNumeric = jQuery.isNumeric,
+ oldFind = jQuery.find,
+ rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
+ rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
+
+jQuery.fn.init = function( arg1 ) {
+ var args = Array.prototype.slice.call( arguments );
+
+ if ( typeof arg1 === "string" && arg1 === "#" ) {
+
+ // JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
+ migrateWarn( "jQuery( '#' ) is not a valid selector" );
+ args[ 0 ] = [];
+ }
+
+ return oldInit.apply( this, args );
+};
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.find = function( selector ) {
+ var args = Array.prototype.slice.call( arguments );
+
+ // Support: PhantomJS 1.x
+ // String#match fails to match when used with a //g RegExp, only on some strings
+ if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {
+
+ // The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
+ // First see if qS thinks it's a valid selector, if so avoid a false positive
+ try {
+ document.querySelector( selector );
+ } catch ( err1 ) {
+
+ // Didn't *look* valid to qSA, warn and try quoting what we think is the value
+ selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
+ return "[" + attr + op + "\"" + value + "\"]";
+ } );
+
+ // If the regexp *may* have created an invalid selector, don't update it
+ // Note that there may be false alarms if selector uses jQuery extensions
+ try {
+ document.querySelector( selector );
+ migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
+ args[ 0 ] = selector;
+ } catch ( err2 ) {
+ migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
+ }
+ }
+ }
+
+ return oldFind.apply( this, args );
+};
+
+// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
+var findProp;
+for ( findProp in oldFind ) {
+ if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
+ jQuery.find[ findProp ] = oldFind[ findProp ];
+ }
+}
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+ migrateWarn( "jQuery.fn.size() is deprecated; use the .length property" );
+ return this.length;
+};
+
+jQuery.parseJSON = function() {
+ migrateWarn( "jQuery.parseJSON is deprecated; use JSON.parse" );
+ return JSON.parse.apply( null, arguments );
+};
+
+jQuery.isNumeric = function( val ) {
+
+ // The jQuery 2.2.3 implementation of isNumeric
+ function isNumeric2( obj ) {
+ var realStringObj = obj && obj.toString();
+ return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+ }
+
+ var newValue = oldIsNumeric( val ),
+ oldValue = isNumeric2( val );
+
+ if ( newValue !== oldValue ) {
+ migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" );
+ }
+
+ return oldValue;
+};
+
+migrateWarnProp( jQuery, "unique", jQuery.uniqueSort,
+ "jQuery.unique is deprecated, use jQuery.uniqueSort" );
+
+// Now jQuery.expr.pseudos is the standard incantation
+migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
+ "jQuery.expr.filters is now jQuery.expr.pseudos" );
+migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
+ "jQuery.expr[\":\"] is now jQuery.expr.pseudos" );
+
+
+var oldAjax = jQuery.ajax;
+
+jQuery.ajax = function( ) {
+ var jQXHR = oldAjax.apply( this, arguments );
+
+ // Be sure we got a jQXHR (e.g., not sync)
+ if ( jQXHR.promise ) {
+ migrateWarnProp( jQXHR, "success", jQXHR.done,
+ "jQXHR.success is deprecated and removed" );
+ migrateWarnProp( jQXHR, "error", jQXHR.fail,
+ "jQXHR.error is deprecated and removed" );
+ migrateWarnProp( jQXHR, "complete", jQXHR.always,
+ "jQXHR.complete is deprecated and removed" );
+ }
+
+ return jQXHR;
+};
+
+
+var oldRemoveAttr = jQuery.fn.removeAttr,
+ oldToggleClass = jQuery.fn.toggleClass,
+ rmatchNonSpace = /\S+/g;
+
+jQuery.fn.removeAttr = function( name ) {
+ var self = this;
+
+ jQuery.each( name.match( rmatchNonSpace ), function( i, attr ) {
+ if ( jQuery.expr.match.bool.test( attr ) ) {
+ migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
+ self.prop( attr, false );
+ }
+ } );
+
+ return oldRemoveAttr.apply( this, arguments );
+};
+
+jQuery.fn.toggleClass = function( state ) {
+
+ // Only deprecating no-args or single boolean arg
+ if ( state !== undefined && typeof state !== "boolean" ) {
+ return oldToggleClass.apply( this, arguments );
+ }
+
+ migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
+
+ // Toggle entire class name of each element
+ return this.each( function() {
+ var className = this.getAttribute && this.getAttribute( "class" ) || "";
+
+ if ( className ) {
+ jQuery.data( this, "__className__", className );
+ }
+
+ // If the element has a class name or if we're passed `false`,
+ // then remove the whole classname (if there was one, the above saved it).
+ // Otherwise bring back whatever was previously saved (if anything),
+ // falling back to the empty string if nothing was stored.
+ if ( this.setAttribute ) {
+ this.setAttribute( "class",
+ className || state === false ?
+ "" :
+ jQuery.data( this, "__className__" ) || ""
+ );
+ }
+ } );
+};
+
+
+var internalSwapCall = false;
+
+// If this version of jQuery has .swap(), don't false-alarm on internal uses
+if ( jQuery.swap ) {
+ jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
+ var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;
+
+ if ( oldHook ) {
+ jQuery.cssHooks[ name ].get = function() {
+ var ret;
+
+ internalSwapCall = true;
+ ret = oldHook.apply( this, arguments );
+ internalSwapCall = false;
+ return ret;
+ };
+ }
+ } );
+}
+
+jQuery.swap = function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ if ( !internalSwapCall ) {
+ migrateWarn( "jQuery.swap() is undocumented and deprecated" );
+ }
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+};
+
+var oldData = jQuery.data;
+
+jQuery.data = function( elem, name, value ) {
+ var curData;
+
+ // If the name is transformed, look for the un-transformed name in the data object
+ if ( name && name !== jQuery.camelCase( name ) ) {
+ curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+ if ( curData && name in curData ) {
+ migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
+ if ( arguments.length > 2 ) {
+ curData[ name ] = value;
+ }
+ return curData[ name ];
+ }
+ }
+
+ return oldData.apply( this, arguments );
+};
+
+var oldTweenRun = jQuery.Tween.prototype.run;
+
+jQuery.Tween.prototype.run = function( percent ) {
+ if ( jQuery.easing[ this.easing ].length > 1 ) {
+ migrateWarn(
+ "easing function " +
+ "\"jQuery.easing." + this.easing.toString() +
+ "\" should use only first argument"
+ );
+
+ jQuery.easing[ this.easing ] = jQuery.easing[ this.easing ].bind(
+ jQuery.easing,
+ percent, this.options.duration * percent, 0, 1, this.options.duration
+ );
+ }
+
+ oldTweenRun.apply( this, arguments );
+};
+
+var oldLoad = jQuery.fn.load,
+ originalFix = jQuery.event.fix;
+
+jQuery.event.props = [];
+jQuery.event.fixHooks = {};
+
+jQuery.event.fix = function( originalEvent ) {
+ var event,
+ type = originalEvent.type,
+ fixHook = this.fixHooks[ type ],
+ props = jQuery.event.props;
+
+ if ( props.length ) {
+ migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
+ while ( props.length ) {
+ jQuery.event.addProp( props.pop() );
+ }
+ }
+
+ if ( fixHook && !fixHook._migrated_ ) {
+ fixHook._migrated_ = true;
+ migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
+ if ( ( props = fixHook.props ) && props.length ) {
+ while ( props.length ) {
+   jQuery.event.addProp( props.pop() );
+ }
+ }
+ }
+
+ event = originalFix.call( this, originalEvent );
+
+ return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+};
+
+jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
+
+ jQuery.fn[ name ] = function() {
+ var args = Array.prototype.slice.call( arguments, 0 );
+
+ // If this is an ajax load() the first arg should be the string URL;
+ // technically this could also be the "Anything" arg of the event .load()
+ // which just goes to show why this dumb signature has been deprecated!
+ // jQuery custom builds that exclude the Ajax module justifiably die here.
+ if ( name === "load" && typeof args[ 0 ] === "string" ) {
+ return oldLoad.apply( this, args );
+ }
+
+ migrateWarn( "jQuery.fn." + name + "() is deprecated" );
+
+ args.splice( 0, 0, name );
+ if ( arguments.length ) {
+ return this.on.apply( this, args );
+ }
+
+ // Use .triggerHandler here because:
+ // - load and unload events don't need to bubble, only applied to window or image
+ // - error event should not bubble to window, although it does pre-1.7
+ // See http://bugs.jquery.com/ticket/11820
+ this.triggerHandler.apply( this, args );
+ return this;
+ };
+
+} );
+
+// Trigger "ready" event only once, on document ready
+jQuery( function() {
+ jQuery( document ).triggerHandler( "ready" );
+} );
+
+jQuery.event.special.ready = {
+ setup: function() {
+ if ( this === document ) {
+ migrateWarn( "'ready' event is deprecated" );
+ }
+ }
+};
+
+jQuery.fn.extend( {
+
+ bind: function( types, data, fn ) {
+ migrateWarn( "jQuery.fn.bind() is deprecated" );
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ migrateWarn( "jQuery.fn.unbind() is deprecated" );
+ return this.off( types, null, fn );
+ },
+ delegate: function( selector, types, data, fn ) {
+ migrateWarn( "jQuery.fn.delegate() is deprecated" );
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+ migrateWarn( "jQuery.fn.undelegate() is deprecated" );
+ return arguments.length === 1 ?
+ this.off( selector, "**" ) :
+ this.off( types, selector || "**", fn );
+ }
+} );
+
+
+var oldOffset = jQuery.fn.offset;
+
+jQuery.fn.offset = function() {
+ var docElem,
+ elem = this[ 0 ],
+ origin = { top: 0, left: 0 };
+
+ if ( !elem || !elem.nodeType ) {
+ migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
+ return origin;
+ }
+
+ docElem = ( elem.ownerDocument || document ).documentElement;
+ if ( !jQuery.contains( docElem, elem ) ) {
+ migrateWarn( "jQuery.fn.offset() requires an element connected to a document" );
+ return origin;
+ }
+
+ return oldOffset.apply( this, arguments );
+};
+
+
+var oldParam = jQuery.param;
+
+jQuery.param = function( data, traditional ) {
+ var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+
+ if ( traditional === undefined && ajaxTraditional ) {
+
+ migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
+ traditional = ajaxTraditional;
+ }
+
+ return oldParam.call( this, data, traditional );
+};
+
+var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
+
+jQuery.fn.andSelf = function() {
+ migrateWarn( "jQuery.fn.andSelf() replaced by jQuery.fn.addBack()" );
+ return oldSelf.apply( this, arguments );
+};
+
+
+var oldDeferred = jQuery.Deferred,
+ tuples = [
+
+ // Action, add listener, callbacks, .then handlers, final state
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), "rejected" ],
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
+ jQuery.Callbacks( "memory" ) ]
+ ];
+
+jQuery.Deferred = function( func ) {
+ var deferred = oldDeferred(),
+ promise = deferred.promise();
+
+ deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+
+ migrateWarn( "deferred.pipe() is deprecated" );
+
+ return jQuery.Deferred( function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+ var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+ // Deferred.done(function() { bind to newDefer or newDefer.resolve })
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
+ deferred[ tuple[ 1 ] ]( function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .done( newDefer.resolve )
+ .fail( newDefer.reject )
+ .progress( newDefer.notify );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ](
+ this === promise ? newDefer.promise() : this,
+ fn ? [ returned ] : arguments
+ );
+ }
+ } );
+ } );
+ fns = null;
+ } ).promise();
+
+ };
+
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ return deferred;
+};
+
+
+
+})( jQuery, window );

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.min.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.min.js?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.min.js (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.min.js Tue Jun 18 10:09:00 2019
@@ -0,0 +1,2 @@
+/*! jQuery Migrate v3.0.0 | (c) jQuery Foundation and other contributors | jquery.org/license */
+"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.
 find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumer
 ic=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function
 (b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.proto
 type.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.o
 n.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a(function(){a(document).triggerHandler("ready")}),a.event.special.ready={setup:function(){this===document&&c("'ready' event is deprecated")}},a.fn.extend({bind:function(a,b,d){return c("jQuery.fn.bind() is deprecated"),this.on(a,null,b,d)},unbind:function(a,b){return c("jQuery.fn.unbind() is deprecated"),this.off(a,null,b)},delegate:function(a,b,d,e){return c("jQuery.fn.delegate() is deprecated"),this.on(b,a,d,e)},undelegate:function(a,b,d){return c("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(a,"**"):this.off(b,a||"**",d)}});var u=a.fn.offset;a.fn.offset=function(){var b,d=this[0],e={top:0,left:0};return d&&d.nodeType?(b=(d.ownerDocument||document).documentElement,a.contains(b,d)?u.apply(this,arguments):(c("jQuery.fn.offset() requires an element connected to a document"),e)):(c("jQuery.fn.offset() requires a valid DOM element"),e)};var v=a.param;a.param=function(b,d){var e=a.ajaxSettings&&a.ajaxS
 ettings.traditional;return void 0===d&&e&&(c("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),d=e),v.call(this,b,d)};var w=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return c("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)};var x=a.Deferred,y=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var d=x(),e=d.promise();return d.pipe=e.pipe=function(){var b=arguments;return c("deferred.pipe() is deprecated"),a.Deferred(function(c){a.each(y,function(f,g){var h=a.isFunction(b[f])&&b[f];d[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g[0]+"With"](this===e?c.promise():this,h?[b]:arguments)})}),b=null}).promise()},b&&b.call(d,d),d}}(jQuery,w
 indow);
\ No newline at end of file

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.min.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.min.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/jquery-migrate-3.0.0.min.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.js?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.js (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.js Tue Jun 18 10:09:00 2019
@@ -0,0 +1,193 @@
+/*!
+ * jQuery Browser Plugin 0.1.0
+ * https://github.com/gabceb/jquery-browser-plugin
+ *
+ * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
+ * http://jquery.org/license
+ *
+ * Modifications Copyright 2015 Gabriel Cebrian
+ * https://github.com/gabceb
+ *
+ * Released under the MIT license
+ *
+ * Date: 05-07-2015
+ */
+/*global window: false */
+
+(function (factory) {
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module.
+    define(['jquery'], function ($) {
+      return factory($);
+    });
+  } else if (typeof module === 'object' && typeof module.exports === 'object') {
+    // Node-like environment
+    module.exports = factory(require('jquery'));
+  } else {
+    // Browser globals
+    factory(window.jQuery);
+  }
+}(function(jQuery) {
+  "use strict";
+
+  function uaMatch( ua ) {
+    // If an UA is not provided, default to the current browser UA.
+    if ( ua === undefined ) {
+      ua = window.navigator.userAgent;
+    }
+    ua = ua.toLowerCase();
+
+    var match = /(edge)\/([\w.]+)/.exec( ua ) ||
+        /(opr)[\/]([\w.]+)/.exec( ua ) ||
+        /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+        /(iemobile)[\/]([\w.]+)/.exec( ua ) ||
+        /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+        /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+        /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+        /(msie) ([\w.]+)/.exec( ua ) ||
+        ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
+        ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+        [];
+
+    var platform_match = /(ipad)/.exec( ua ) ||
+        /(ipod)/.exec( ua ) ||
+        /(windows phone)/.exec( ua ) ||
+        /(iphone)/.exec( ua ) ||
+        /(kindle)/.exec( ua ) ||
+        /(silk)/.exec( ua ) ||
+        /(android)/.exec( ua ) ||
+        /(win)/.exec( ua ) ||
+        /(mac)/.exec( ua ) ||
+        /(linux)/.exec( ua ) ||
+        /(cros)/.exec( ua ) ||
+        /(playbook)/.exec( ua ) ||
+        /(bb)/.exec( ua ) ||
+        /(blackberry)/.exec( ua ) ||
+        [];
+
+    var browser = {},
+        matched = {
+          browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
+          version: match[ 2 ] || match[ 4 ] || "0",
+          versionNumber: match[ 4 ] || match[ 2 ] || "0",
+          platform: platform_match[ 0 ] || ""
+        };
+
+    if ( matched.browser ) {
+      browser[ matched.browser ] = true;
+      browser.version = matched.version;
+      browser.versionNumber = parseInt(matched.versionNumber, 10);
+    }
+
+    if ( matched.platform ) {
+      browser[ matched.platform ] = true;
+    }
+
+    // These are all considered mobile platforms, meaning they run a mobile browser
+    if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
+      browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
+      browser.mobile = true;
+    }
+
+    // These are all considered desktop platforms, meaning they run a desktop browser
+    if ( browser.cros || browser.mac || browser.linux || browser.win ) {
+      browser.desktop = true;
+    }
+
+    // Chrome, Opera 15+ and Safari are webkit based browsers
+    if ( browser.chrome || browser.opr || browser.safari ) {
+      browser.webkit = true;
+    }
+
+    // IE11 has a new token so we will assign it msie to avoid breaking changes
+    if ( browser.rv || browser.iemobile) {
+      var ie = "msie";
+
+      matched.browser = ie;
+      browser[ie] = true;
+    }
+
+    // Edge is officially known as Microsoft Edge, so rewrite the key to match
+    if ( browser.edge ) {
+      delete browser.edge;
+      var msedge = "msedge";
+
+      matched.browser = msedge;
+      browser[msedge] = true;
+    }
+
+    // Blackberry browsers are marked as Safari on BlackBerry
+    if ( browser.safari && browser.blackberry ) {
+      var blackberry = "blackberry";
+
+      matched.browser = blackberry;
+      browser[blackberry] = true;
+    }
+
+    // Playbook browsers are marked as Safari on Playbook
+    if ( browser.safari && browser.playbook ) {
+      var playbook = "playbook";
+
+      matched.browser = playbook;
+      browser[playbook] = true;
+    }
+
+    // BB10 is a newer OS version of BlackBerry
+    if ( browser.bb ) {
+      var bb = "blackberry";
+
+      matched.browser = bb;
+      browser[bb] = true;
+    }
+
+    // Opera 15+ are identified as opr
+    if ( browser.opr ) {
+      var opera = "opera";
+
+      matched.browser = opera;
+      browser[opera] = true;
+    }
+
+    // Stock Android browsers are marked as Safari on Android.
+    if ( browser.safari && browser.android ) {
+      var android = "android";
+
+      matched.browser = android;
+      browser[android] = true;
+    }
+
+    // Kindle browsers are marked as Safari on Kindle
+    if ( browser.safari && browser.kindle ) {
+      var kindle = "kindle";
+
+      matched.browser = kindle;
+      browser[kindle] = true;
+    }
+
+     // Kindle Silk browsers are marked as Safari on Kindle
+    if ( browser.safari && browser.silk ) {
+      var silk = "silk";
+
+      matched.browser = silk;
+      browser[silk] = true;
+    }
+
+    // Assign the name and platform variable
+    browser.name = matched.browser;
+    browser.platform = matched.platform;
+    return browser;
+  }
+
+  // Run the matching process, also assign the function to the returned object
+  // for manual, jQuery-free use if desired
+  window.jQBrowser = uaMatch( window.navigator.userAgent );
+  window.jQBrowser.uaMatch = uaMatch;
+
+  // Only assign to jQuery.browser if jQuery is loaded
+  if ( jQuery ) {
+    jQuery.browser = window.jQBrowser;
+  }
+
+  return window.jQBrowser;
+}));

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js Tue Jun 18 10:09:00 2019
@@ -0,0 +1,14 @@
+/*!
+ * jQuery Browser Plugin 0.1.0
+ * https://github.com/gabceb/jquery-browser-plugin
+ *
+ * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
+ * http://jquery.org/license
+ *
+ * Modifications Copyright 2015 Gabriel Cebrian
+ * https://github.com/gabceb
+ *
+ * Released under the MIT license
+ *
+ * Date: 23-11-2015
+ */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){return a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(iemobile)[\/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(windows phone)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a
 )||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.iemobile){var f="msie";e.browser=f,d[f]=!0}if(d.edge){delete d.edge;var g="msedge";e.browser=g,d[g]=!0}if(d.safari&&d.blackberry){var h="blackberry";e.browser=h,d[h]=!0}if(d.safari&&d.playbook){var i="playbook";e.browser=i,d[i]=!0}if(d.bb){var j="blackberry";e.browser=j,d[j]=!0}if(d.opr){var k="opera";e.browser=k,d[k]=!0}if(d.safari&&d.android){var l="android";e.browser=l,d[l]=!0}if(d.safari&&d.kindle){var m="kindle";e.browser=m
 ,d[m]=!0}if(d.safari&&d.silk){var n="silk";e.browser=n,d[n]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
\ No newline at end of file

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.css
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.css?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.css (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.css Tue Jun 18 10:09:00 2019
@@ -0,0 +1,158 @@
+/**
+ * Featherlight – ultra slim jQuery lightbox
+ * Version 1.7.13 - http://noelboss.github.io/featherlight/
+ *
+ * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
+ * MIT Licensed.
+**/
+
+html.with-featherlight {
+ /* disable global scrolling when featherlights are visible */
+ overflow: hidden;
+}
+
+.featherlight {
+ display: none;
+
+ /* dimensions: spanning the background from edge to edge */
+ position:fixed;
+ top: 0; right: 0; bottom: 0; left: 0;
+ z-index: 2147483647; /* z-index needs to be >= elements on the site. */
+
+ /* position: centering content */
+ text-align: center;
+
+ /* insures that the ::before pseudo element doesn't force wrap with fixed width content; */
+ white-space: nowrap;
+
+ /* styling */
+ cursor: pointer;
+ background: #333;
+ /* IE8 "hack" for nested featherlights */
+ background: rgba(0, 0, 0, 0);
+}
+
+/* support for nested featherlights. Does not work in IE8 (use JS to fix) */
+.featherlight:last-of-type {
+ background: rgba(0, 0, 0, 0.8);
+}
+
+.featherlight:before {
+ /* position: trick to center content vertically */
+ content: '';
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+}
+
+.featherlight .featherlight-content {
+ /* make content container for positioned elements (close button) */
+ position: relative;
+
+ /* position: centering vertical and horizontal */
+ text-align: left;
+ vertical-align: middle;
+ display: inline-block;
+
+ /* dimensions: cut off images */
+ overflow: auto;
+ padding: 25px 25px 0;
+ border-bottom: 25px solid transparent;
+
+ /* dimensions: handling large content */
+ margin-left: 5%;
+ margin-right: 5%;
+ max-height: 95%;
+
+ /* styling */
+ background: #fff;
+ cursor: auto;
+
+ /* reset white-space wrapping */
+ white-space: normal;
+}
+
+/* contains the content */
+.featherlight .featherlight-inner {
+ /* make sure its visible */
+ display: block;
+}
+
+/* don't show these though */
+.featherlight script.featherlight-inner,
+.featherlight link.featherlight-inner,
+.featherlight style.featherlight-inner {
+ display: none;
+}
+
+.featherlight .featherlight-close-icon {
+ /* position: centering vertical and horizontal */
+ position: absolute;
+ z-index: 9999;
+ top: 0;
+ right: 0;
+
+ /* dimensions: 25px x 25px */
+ line-height: 25px;
+ width: 25px;
+
+ /* styling */
+ cursor: pointer;
+ text-align: center;
+ font-family: Arial, sans-serif;
+ background: #fff; /* Set the background in case it overlaps the content */
+ background: rgba(255, 255, 255, 0.3);
+ color: #000;
+ border: none;
+ padding: 0;
+}
+
+/* See http://stackoverflow.com/questions/16077341/how-to-reset-all-default-styles-of-the-html5-button-element */
+.featherlight .featherlight-close-icon::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+.featherlight .featherlight-image {
+ /* styling */
+ width: 100%;
+}
+
+
+.featherlight-iframe .featherlight-content {
+ /* removed the border for image croping since iframe is edge to edge */
+ border-bottom: 0;
+ padding: 0;
+ -webkit-overflow-scrolling: touch;
+}
+
+.featherlight iframe {
+ /* styling */
+ border: none;
+}
+
+.featherlight * { /* See https://github.com/noelboss/featherlight/issues/42 */
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/* handling phones and small screens */
+@media only screen and (max-width: 1024px) {
+ .featherlight .featherlight-content {
+ /* dimensions: maximize lightbox with for small screens */
+ margin-left: 0;
+ margin-right: 0;
+ max-height: 98%;
+
+ padding: 10px 10px 0;
+ border-bottom: 10px solid transparent;
+ }
+}
+
+/* hide non featherlight items when printing */
+@media print {
+ html.with-featherlight > * > :not(.featherlight) {
+ display: none;
+ }
+}

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.css
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.js?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.js (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.js Tue Jun 18 10:09:00 2019
@@ -0,0 +1,641 @@
+/**
+ * Featherlight - ultra slim jQuery lightbox
+ * Version 1.7.13 - http://noelboss.github.io/featherlight/
+ *
+ * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
+ * MIT Licensed.
+**/
+(function($) {
+ "use strict";
+
+ if('undefined' === typeof $) {
+ if('console' in window){ window.console.info('Too much lightness, Featherlight needs jQuery.'); }
+ return;
+ }
+ if($.fn.jquery.match(/-ajax/)) {
+ if('console' in window){ window.console.info('Featherlight needs regular jQuery, not the slim version.'); }
+ return;
+ }
+ /* Featherlight is exported as $.featherlight.
+   It is a function used to open a featherlight lightbox.
+
+   [tech]
+   Featherlight uses prototype inheritance.
+   Each opened lightbox will have a corresponding object.
+   That object may have some attributes that override the
+   prototype's.
+   Extensions created with Featherlight.extend will have their
+   own prototype that inherits from Featherlight's prototype,
+   thus attributes can be overriden either at the object level,
+   or at the extension level.
+   To create callbacks that chain themselves instead of overriding,
+   use chainCallbacks.
+   For those familiar with CoffeeScript, this correspond to
+   Featherlight being a class and the Gallery being a class
+   extending Featherlight.
+   The chainCallbacks is used since we don't have access to
+   CoffeeScript's `super`.
+ */
+
+ function Featherlight($content, config) {
+ if(this instanceof Featherlight) {  /* called with new */
+ this.id = Featherlight.id++;
+ this.setup($content, config);
+ this.chainCallbacks(Featherlight._callbackChain);
+ } else {
+ var fl = new Featherlight($content, config);
+ fl.open();
+ return fl;
+ }
+ }
+
+ var opened = [],
+ pruneOpened = function(remove) {
+ opened = $.grep(opened, function(fl) {
+ return fl !== remove && fl.$instance.closest('body').length > 0;
+ } );
+ return opened;
+ };
+
+ // Removes keys of `set` from `obj` and returns the removed key/values.
+ function slice(obj, set) {
+ var r = {};
+ for (var key in obj) {
+ if (key in set) {
+ r[key] = obj[key];
+ delete obj[key];
+ }
+ }
+ return r;
+ }
+
+ // NOTE: List of available [iframe attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe).
+ var iFrameAttributeSet = {
+ allow: 1, allowfullscreen: 1, frameborder: 1, height: 1, longdesc: 1, marginheight: 1, marginwidth: 1,
+ mozallowfullscreen: 1, name: 1, referrerpolicy: 1, sandbox: 1, scrolling: 1, src: 1, srcdoc: 1, style: 1,
+ webkitallowfullscreen: 1, width: 1
+ };
+
+ // Converts camelCased attributes to dasherized versions for given prefix:
+ //   parseAttrs({hello: 1, hellFrozeOver: 2}, 'hell') => {froze-over: 2}
+ function parseAttrs(obj, prefix) {
+ var attrs = {},
+ regex = new RegExp('^' + prefix + '([A-Z])(.*)');
+ for (var key in obj) {
+ var match = key.match(regex);
+ if (match) {
+ var dasherized = (match[1] + match[2].replace(/([A-Z])/g, '-$1')).toLowerCase();
+ attrs[dasherized] = obj[key];
+ }
+ }
+ return attrs;
+ }
+
+ /* document wide key handler */
+ var eventMap = { keyup: 'onKeyUp', resize: 'onResize' };
+
+ var globalEventHandler = function(event) {
+ $.each(Featherlight.opened().reverse(), function() {
+ if (!event.isDefaultPrevented()) {
+ if (false === this[eventMap[event.type]](event)) {
+ event.preventDefault(); event.stopPropagation(); return false;
+  }
+ }
+ });
+ };
+
+ var toggleGlobalEvents = function(set) {
+ if(set !== Featherlight._globalHandlerInstalled) {
+ Featherlight._globalHandlerInstalled = set;
+ var events = $.map(eventMap, function(_, name) { return name+'.'+Featherlight.prototype.namespace; } ).join(' ');
+ $(window)[set ? 'on' : 'off'](events, globalEventHandler);
+ }
+ };
+
+ Featherlight.prototype = {
+ constructor: Featherlight,
+ /*** defaults ***/
+ /* extend featherlight with defaults and methods */
+ namespace:      'featherlight',        /* Name of the events and css class prefix */
+ targetAttr:     'data-featherlight',   /* Attribute of the triggered element that contains the selector to the lightbox content */
+ variant:        null,                  /* Class that will be added to change look of the lightbox */
+ resetCss:       false,                 /* Reset all css */
+ background:     null,                  /* Custom DOM for the background, wrapper and the closebutton */
+ openTrigger:    'click',               /* Event that triggers the lightbox */
+ closeTrigger:   'click',               /* Event that triggers the closing of the lightbox */
+ filter:         null,                  /* Selector to filter events. Think $(...).on('click', filter, eventHandler) */
+ root:           'body',                /* Where to append featherlights */
+ openSpeed:      250,                   /* Duration of opening animation */
+ closeSpeed:     250,                   /* Duration of closing animation */
+ closeOnClick:   'background',          /* Close lightbox on click ('background', 'anywhere' or false) */
+ closeOnEsc:     true,                  /* Close lightbox when pressing esc */
+ closeIcon:      '&#10005;',            /* Close icon */
+ loading:        '',                    /* Content to show while initial content is loading */
+ persist:        false,                 /* If set, the content will persist and will be shown again when opened again. 'shared' is a special value when binding multiple elements for them to share the same content */
+ otherClose:     null,                  /* Selector for alternate close buttons (e.g. "a.close") */
+ beforeOpen:     $.noop,                /* Called before open. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
+ beforeContent:  $.noop,                /* Called when content is loaded. Gets event as parameter, this contains all data */
+ beforeClose:    $.noop,                /* Called before close. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
+ afterOpen:      $.noop,                /* Called after open. Gets event as parameter, this contains all data */
+ afterContent:   $.noop,                /* Called after content is ready and has been set. Gets event as parameter, this contains all data */
+ afterClose:     $.noop,                /* Called after close. Gets event as parameter, this contains all data */
+ onKeyUp:        $.noop,                /* Called on key up for the frontmost featherlight */
+ onResize:       $.noop,                /* Called after new content and when a window is resized */
+ type:           null,                  /* Specify type of lightbox. If unset, it will check for the targetAttrs value. */
+ contentFilters: ['jquery', 'image', 'html', 'ajax', 'iframe', 'text'], /* List of content filters to use to determine the content */
+
+ /*** methods ***/
+ /* setup iterates over a single instance of featherlight and prepares the background and binds the events */
+ setup: function(target, config){
+ /* all arguments are optional */
+ if (typeof target === 'object' && target instanceof $ === false && !config) {
+ config = target;
+ target = undefined;
+ }
+
+ var self = $.extend(this, config, {target: target}),
+ css = !self.resetCss ? self.namespace : self.namespace+'-reset', /* by adding -reset to the classname, we reset all the default css */
+ $background = $(self.background || [
+ '<div class="'+css+'-loading '+css+'">',
+ '<div class="'+css+'-content">',
+ '<button class="'+css+'-close-icon '+ self.namespace + '-close" aria-label="Close">',
+ self.closeIcon,
+ '</button>',
+ '<div class="'+self.namespace+'-inner">' + self.loading + '</div>',
+ '</div>',
+ '</div>'].join('')),
+ closeButtonSelector = '.'+self.namespace+'-close' + (self.otherClose ? ',' + self.otherClose : '');
+
+ self.$instance = $background.clone().addClass(self.variant); /* clone DOM for the background, wrapper and the close button */
+
+ /* close when click on background/anywhere/null or closebox */
+ self.$instance.on(self.closeTrigger+'.'+self.namespace, function(event) {
+ if(event.isDefaultPrevented()) {
+ return;
+ }
+ var $target = $(event.target);
+ if( ('background' === self.closeOnClick  && $target.is('.'+self.namespace))
+ || 'anywhere' === self.closeOnClick
+ || $target.closest(closeButtonSelector).length ){
+ self.close(event);
+ event.preventDefault();
+ }
+ });
+
+ return this;
+ },
+
+ /* this method prepares the content and converts it into a jQuery object or a promise */
+ getContent: function(){
+ if(this.persist !== false && this.$content) {
+ return this.$content;
+ }
+ var self = this,
+ filters = this.constructor.contentFilters,
+ readTargetAttr = function(name){ return self.$currentTarget && self.$currentTarget.attr(name); },
+ targetValue = readTargetAttr(self.targetAttr),
+ data = self.target || targetValue || '';
+
+ /* Find which filter applies */
+ var filter = filters[self.type]; /* check explicit type like {type: 'image'} */
+
+ /* check explicit type like data-featherlight="image" */
+ if(!filter && data in filters) {
+ filter = filters[data];
+ data = self.target && targetValue;
+ }
+ data = data || readTargetAttr('href') || '';
+
+ /* check explicity type & content like {image: 'photo.jpg'} */
+ if(!filter) {
+ for(var filterName in filters) {
+ if(self[filterName]) {
+ filter = filters[filterName];
+ data = self[filterName];
+ }
+ }
+ }
+
+ /* otherwise it's implicit, run checks */
+ if(!filter) {
+ var target = data;
+ data = null;
+ $.each(self.contentFilters, function() {
+ filter = filters[this];
+ if(filter.test)  {
+ data = filter.test(target);
+ }
+ if(!data && filter.regex && target.match && target.match(filter.regex)) {
+ data = target;
+ }
+ return !data;
+ });
+ if(!data) {
+ if('console' in window){ window.console.error('Featherlight: no content filter found ' + (target ? ' for "' + target + '"' : ' (no target specified)')); }
+ return false;
+ }
+ }
+ /* Process it */
+ return filter.process.call(self, data);
+ },
+
+ /* sets the content of $instance to $content */
+ setContent: function($content){
+      this.$instance.removeClass(this.namespace+'-loading');
+
+      /* we need a special class for the iframe */
+      this.$instance.toggleClass(this.namespace+'-iframe', $content.is('iframe'));
+
+      /* replace content by appending to existing one before it is removed
+         this insures that featherlight-inner remain at the same relative
+         position to any other items added to featherlight-content */
+      this.$instance.find('.'+this.namespace+'-inner')
+        .not($content)                /* excluded new content, important if persisted */
+        .slice(1).remove().end()      /* In the unexpected event where there are many inner elements, remove all but the first one */
+        .replaceWith($.contains(this.$instance[0], $content[0]) ? '' : $content);
+
+      this.$content = $content.addClass(this.namespace+'-inner');
+
+      return this;
+ },
+
+ /* opens the lightbox. "this" contains $instance with the lightbox, and with the config.
+ Returns a promise that is resolved after is successfully opened. */
+ open: function(event){
+ var self = this;
+ self.$instance.hide().appendTo(self.root);
+ if((!event || !event.isDefaultPrevented())
+ && self.beforeOpen(event) !== false) {
+
+ if(event){
+ event.preventDefault();
+ }
+ var $content = self.getContent();
+
+ if($content) {
+ opened.push(self);
+
+ toggleGlobalEvents(true);
+
+ self.$instance.fadeIn(self.openSpeed);
+ self.beforeContent(event);
+
+ /* Set content and show */
+ return $.when($content)
+ .always(function($content){
+ self.setContent($content);
+ self.afterContent(event);
+ })
+ .then(self.$instance.promise())
+ /* Call afterOpen after fadeIn is done */
+ .done(function(){ self.afterOpen(event); });
+ }
+ }
+ self.$instance.detach();
+ return $.Deferred().reject().promise();
+ },
+
+ /* closes the lightbox. "this" contains $instance with the lightbox, and with the config
+ returns a promise, resolved after the lightbox is successfully closed. */
+ close: function(event){
+ var self = this,
+ deferred = $.Deferred();
+
+ if(self.beforeClose(event) === false) {
+ deferred.reject();
+ } else {
+
+ if (0 === pruneOpened(self).length) {
+ toggleGlobalEvents(false);
+ }
+
+ self.$instance.fadeOut(self.closeSpeed,function(){
+ self.$instance.detach();
+ self.afterClose(event);
+ deferred.resolve();
+ });
+ }
+ return deferred.promise();
+ },
+
+ /* resizes the content so it fits in visible area and keeps the same aspect ratio.
+ Does nothing if either the width or the height is not specified.
+ Called automatically on window resize.
+ Override if you want different behavior. */
+ resize: function(w, h) {
+ if (w && h) {
+ /* Reset apparent image size first so container grows */
+ this.$content.css('width', '').css('height', '');
+ /* Calculate the worst ratio so that dimensions fit */
+ /* Note: -1 to avoid rounding errors */
+ var ratio = Math.max(
+ w  / (this.$content.parent().width()-1),
+ h / (this.$content.parent().height()-1));
+ /* Resize content */
+ if (ratio > 1) {
+ ratio = h / Math.floor(h / ratio); /* Round ratio down so height calc works */
+ this.$content.css('width', '' + w / ratio + 'px').css('height', '' + h / ratio + 'px');
+ }
+ }
+ },
+
+ /* Utility function to chain callbacks
+   [Warning: guru-level]
+   Used be extensions that want to let users specify callbacks but
+   also need themselves to use the callbacks.
+   The argument 'chain' has callback names as keys and function(super, event)
+   as values. That function is meant to call `super` at some point.
+ */
+ chainCallbacks: function(chain) {
+ for (var name in chain) {
+ this[name] = $.proxy(chain[name], this, $.proxy(this[name], this));
+ }
+ }
+ };
+
+ $.extend(Featherlight, {
+ id: 0,                                    /* Used to id single featherlight instances */
+ autoBind:       '[data-featherlight]',    /* Will automatically bind elements matching this selector. Clear or set before onReady */
+ defaults:       Featherlight.prototype,   /* You can access and override all defaults using $.featherlight.defaults, which is just a synonym for $.featherlight.prototype */
+ /* Contains the logic to determine content */
+ contentFilters: {
+ jquery: {
+ regex: /^[#.]\w/,         /* Anything that starts with a class name or identifiers */
+ test: function(elem)    { return elem instanceof $ && elem; },
+ process: function(elem) { return this.persist !== false ? $(elem) : $(elem).clone(true); }
+ },
+ image: {
+ regex: /\.(png|jpg|jpeg|gif|tiff?|bmp|svg)(\?\S*)?$/i,
+ process: function(url)  {
+ var self = this,
+ deferred = $.Deferred(),
+ img = new Image(),
+ $img = $('<img src="'+url+'" alt="" class="'+self.namespace+'-image" />');
+ img.onload  = function() {
+ /* Store naturalWidth & height for IE8 */
+ $img.naturalWidth = img.width; $img.naturalHeight = img.height;
+ deferred.resolve( $img );
+ };
+ img.onerror = function() { deferred.reject($img); };
+ img.src = url;
+ return deferred.promise();
+ }
+ },
+ html: {
+ regex: /^\s*<[\w!][^<]*>/, /* Anything that starts with some kind of valid tag */
+ process: function(html) { return $(html); }
+ },
+ ajax: {
+ regex: /./,            /* At this point, any content is assumed to be an URL */
+ process: function(url)  {
+ var self = this,
+ deferred = $.Deferred();
+ /* we are using load so one can specify a target with: url.html #targetelement */
+ var $container = $('<div></div>').load(url, function(response, status){
+ if ( status !== "error" ) {
+ deferred.resolve($container.contents());
+ }
+ deferred.fail();
+ });
+ return deferred.promise();
+ }
+ },
+ iframe: {
+ process: function(url) {
+ var deferred = new $.Deferred();
+ var $content = $('<iframe/>');
+ var css = parseAttrs(this, 'iframe');
+ var attrs = slice(css, iFrameAttributeSet);
+ $content.hide()
+ .attr('src', url)
+ .attr(attrs)
+ .css(css)
+ .on('load', function() { deferred.resolve($content.show()); })
+ // We can't move an <iframe> and avoid reloading it,
+ // so let's put it in place ourselves right now:
+ .appendTo(this.$instance.find('.' + this.namespace + '-content'));
+ return deferred.promise();
+ }
+ },
+ text: {
+ process: function(text) { return $('<div>', {text: text}); }
+ }
+ },
+
+ functionAttributes: ['beforeOpen', 'afterOpen', 'beforeContent', 'afterContent', 'beforeClose', 'afterClose'],
+
+ /*** class methods ***/
+ /* read element's attributes starting with data-featherlight- */
+ readElementConfig: function(element, namespace) {
+ var Klass = this,
+ regexp = new RegExp('^data-' + namespace + '-(.*)'),
+ config = {};
+ if (element && element.attributes) {
+ $.each(element.attributes, function(){
+ var match = this.name.match(regexp);
+ if (match) {
+ var val = this.value,
+ name = $.camelCase(match[1]);
+ if ($.inArray(name, Klass.functionAttributes) >= 0) {  /* jshint -W054 */
+ val = new Function(val);                           /* jshint +W054 */
+ } else {
+ try { val = JSON.parse(val); }
+ catch(e) {}
+ }
+ config[name] = val;
+ }
+ });
+ }
+ return config;
+ },
+
+ /* Used to create a Featherlight extension
+   [Warning: guru-level]
+   Creates the extension's prototype that in turn
+   inherits Featherlight's prototype.
+   Could be used to extend an extension too...
+   This is pretty high level wizardy, it comes pretty much straight
+   from CoffeeScript and won't teach you anything about Featherlight
+   as it's not really specific to this library.
+   My suggestion: move along and keep your sanity.
+ */
+ extend: function(child, defaults) {
+ /* Setup class hierarchy, adapted from CoffeeScript */
+ var Ctor = function(){ this.constructor = child; };
+ Ctor.prototype = this.prototype;
+ child.prototype = new Ctor();
+ child.__super__ = this.prototype;
+ /* Copy class methods & attributes */
+ $.extend(child, this, defaults);
+ child.defaults = child.prototype;
+ return child;
+ },
+
+ attach: function($source, $content, config) {
+ var Klass = this;
+ if (typeof $content === 'object' && $content instanceof $ === false && !config) {
+ config = $content;
+ $content = undefined;
+ }
+ /* make a copy */
+ config = $.extend({}, config);
+
+ /* Only for openTrigger, filter & namespace... */
+ var namespace = config.namespace || Klass.defaults.namespace,
+ tempConfig = $.extend({}, Klass.defaults, Klass.readElementConfig($source[0], namespace), config),
+ sharedPersist;
+ var handler = function(event) {
+ var $target = $(event.currentTarget);
+ /* ... since we might as well compute the config on the actual target */
+ var elemConfig = $.extend(
+ {$source: $source, $currentTarget: $target},
+ Klass.readElementConfig($source[0], tempConfig.namespace),
+ Klass.readElementConfig(event.currentTarget, tempConfig.namespace),
+ config);
+ var fl = sharedPersist || $target.data('featherlight-persisted') || new Klass($content, elemConfig);
+ if(fl.persist === 'shared') {
+ sharedPersist = fl;
+ } else if(fl.persist !== false) {
+ $target.data('featherlight-persisted', fl);
+ }
+ if (elemConfig.$currentTarget.blur) {
+ elemConfig.$currentTarget.blur(); // Otherwise 'enter' key might trigger the dialog again
+ }
+ fl.open(event);
+ };
+
+ $source.on(tempConfig.openTrigger+'.'+tempConfig.namespace, tempConfig.filter, handler);
+
+ return {filter: tempConfig.filter, handler: handler};
+ },
+
+ current: function() {
+ var all = this.opened();
+ return all[all.length - 1] || null;
+ },
+
+ opened: function() {
+ var klass = this;
+ pruneOpened();
+ return $.grep(opened, function(fl) { return fl instanceof klass; } );
+ },
+
+ close: function(event) {
+ var cur = this.current();
+ if(cur) { return cur.close(event); }
+ },
+
+ /* Does the auto binding on startup.
+   Meant only to be used by Featherlight and its extensions
+ */
+ _onReady: function() {
+ var Klass = this;
+ if(Klass.autoBind){
+ var $autobound = $(Klass.autoBind);
+ /* Bind existing elements */
+ $autobound.each(function(){
+ Klass.attach($(this));
+ });
+ /* If a click propagates to the document level, then we have an item that was added later on */
+ $(document).on('click', Klass.autoBind, function(evt) {
+ if (evt.isDefaultPrevented()) {
+ return;
+ }
+ var $cur = $(evt.currentTarget);
+ var len = $autobound.length;
+ $autobound = $autobound.add($cur);
+ if(len === $autobound.length) {
+ return; /* already bound */
+ }
+ /* Bind featherlight */
+ var data = Klass.attach($cur);
+ /* Dispatch event directly */
+ if (!data.filter || $(evt.target).parentsUntil($cur, data.filter).length > 0) {
+ data.handler(evt);
+ }
+ });
+ }
+ },
+
+ /* Featherlight uses the onKeyUp callback to intercept the escape key.
+   Private to Featherlight.
+ */
+ _callbackChain: {
+ onKeyUp: function(_super, event){
+ if(27 === event.keyCode) {
+ if (this.closeOnEsc) {
+ $.featherlight.close(event);
+ }
+ return false;
+ } else {
+ return _super(event);
+ }
+ },
+
+ beforeOpen: function(_super, event) {
+ // Used to disable scrolling
+ $(document.documentElement).addClass('with-featherlight');
+
+ // Remember focus:
+ this._previouslyActive = document.activeElement;
+
+ // Disable tabbing:
+ // See http://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus
+ this._$previouslyTabbable = $("a, input, select, textarea, iframe, button, iframe, [contentEditable=true]")
+ .not('[tabindex]')
+ .not(this.$instance.find('button'));
+
+ this._$previouslyWithTabIndex = $('[tabindex]').not('[tabindex="-1"]');
+ this._previousWithTabIndices = this._$previouslyWithTabIndex.map(function(_i, elem) {
+ return $(elem).attr('tabindex');
+ });
+
+ this._$previouslyWithTabIndex.add(this._$previouslyTabbable).attr('tabindex', -1);
+
+ if (document.activeElement.blur) {
+ document.activeElement.blur();
+ }
+ return _super(event);
+ },
+
+ afterClose: function(_super, event) {
+ var r = _super(event);
+ // Restore focus
+ var self = this;
+ this._$previouslyTabbable.removeAttr('tabindex');
+ this._$previouslyWithTabIndex.each(function(i, elem) {
+ $(elem).attr('tabindex', self._previousWithTabIndices[i]);
+ });
+ this._previouslyActive.focus();
+ // Restore scroll
+ if(Featherlight.opened().length === 0) {
+ $(document.documentElement).removeClass('with-featherlight');
+ }
+ return r;
+ },
+
+ onResize: function(_super, event){
+ this.resize(this.$content.naturalWidth, this.$content.naturalHeight);
+ return _super(event);
+ },
+
+ afterContent: function(_super, event){
+ var r = _super(event);
+ this.$instance.find('[autofocus]:not([disabled])').focus();
+ this.onResize(event);
+ return r;
+ }
+ }
+ });
+
+ $.featherlight = Featherlight;
+
+ /* bind jQuery elements to trigger featherlight */
+ $.fn.featherlight = function($content, config) {
+ Featherlight.attach(this, $content, config);
+ return this;
+ };
+
+ /* bind featherlight on ready if config autoBind is set */
+ $(document).ready(function(){ Featherlight._onReady(); });
+}(jQuery));

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.css
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.css?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.css (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.css Tue Jun 18 10:09:00 2019
@@ -0,0 +1,8 @@
+/**
+ * Featherlight - ultra slim jQuery lightbox
+ * Version 1.7.13 - http://noelboss.github.io/featherlight/
+ *
+ * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
+ * MIT Licensed.
+**/
+html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;backg
 round:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}}
\ No newline at end of file

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.css
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.js?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.js (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.js Tue Jun 18 10:09:00 2019
@@ -0,0 +1,8 @@
+/**
+ * Featherlight - ultra slim jQuery lightbox
+ * Version 1.7.13 - http://noelboss.github.io/featherlight/
+ *
+ * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
+ * MIT Licensed.
+**/
+!function(a){"use strict";function b(a,c){if(!(this instanceof b)){var d=new b(a,c);return d.open(),d}this.id=b.id++,this.setup(a,c),this.chainCallbacks(b._callbackChain)}function c(a,b){var c={};for(var d in a)d in b&&(c[d]=a[d],delete a[d]);return c}function d(a,b){var c={},d=new RegExp("^"+b+"([A-Z])(.*)");for(var e in a){var f=e.match(d);if(f){var g=(f[1]+f[2].replace(/([A-Z])/g,"-$1")).toLowerCase();c[g]=a[e]}}return c}if("undefined"==typeof a)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));if(a.fn.jquery.match(/-ajax/))return void("console"in window&&window.console.info("Featherlight needs regular jQuery, not the slim version."));var e=[],f=function(b){return e=a.grep(e,function(a){return a!==b&&a.$instance.closest("body").length>0})},g={allow:1,allowfullscreen:1,frameborder:1,height:1,longdesc:1,marginheight:1,marginwidth:1,mozallowfullscreen:1,name:1,referrerpolicy:1,sandbox:1,scrolling:1,src:1,srcdoc:1,style:1,webkitall
 owfullscreen:1,width:1},h={keyup:"onKeyUp",resize:"onResize"},i=function(c){a.each(b.opened().reverse(),function(){return c.isDefaultPrevented()||!1!==this[h[c.type]](c)?void 0:(c.preventDefault(),c.stopPropagation(),!1)})},j=function(c){if(c!==b._globalHandlerInstalled){b._globalHandlerInstalled=c;var d=a.map(h,function(a,c){return c+"."+b.prototype.namespace}).join(" ");a(window)[c?"on":"off"](d,i)}};b.prototype={constructor:b,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"&#10005;",loading:"",persist:!1,otherClose:null,beforeOpen:a.noop,beforeContent:a.noop,beforeClose:a.noop,afterOpen:a.noop,afterContent:a.noop,afterClose:a.noop,onKeyUp:a.noop,onResize:a.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(b,c){"object"!=typeof b||b instanceof a!=
 !1||c||(c=b,b=void 0);var d=a.extend(this,c,{target:b}),e=d.resetCss?d.namespace+"-reset":d.namespace,f=a(d.background||['<div class="'+e+"-loading "+e+'">','<div class="'+e+'-content">','<button class="'+e+"-close-icon "+d.namespace+'-close" aria-label="Close">',d.closeIcon,"</button>",'<div class="'+d.namespace+'-inner">'+d.loading+"</div>","</div>","</div>"].join("")),g="."+d.namespace+"-close"+(d.otherClose?","+d.otherClose:"");return d.$instance=f.clone().addClass(d.variant),d.$instance.on(d.closeTrigger+"."+d.namespace,function(b){if(!b.isDefaultPrevented()){var c=a(b.target);("background"===d.closeOnClick&&c.is("."+d.namespace)||"anywhere"===d.closeOnClick||c.closest(g).length)&&(d.close(b),b.preventDefault())}}),this},getContent:function(){if(this.persist!==!1&&this.$content)return this.$content;var b=this,c=this.constructor.contentFilters,d=function(a){return b.$currentTarget&&b.$currentTarget.attr(a)},e=d(b.targetAttr),f=b.target||e||"",g=c[b.type];if(!g&&f in c&&(g=c[f],f
 =b.target&&e),f=f||d("href")||"",!g)for(var h in c)b[h]&&(g=c[h],f=b[h]);if(!g){var i=f;if(f=null,a.each(b.contentFilters,function(){return g=c[this],g.test&&(f=g.test(i)),!f&&g.regex&&i.match&&i.match(g.regex)&&(f=i),!f}),!f)return"console"in window&&window.console.error("Featherlight: no content filter found "+(i?' for "'+i+'"':" (no target specified)")),!1}return g.process.call(b,f)},setContent:function(b){return this.$instance.removeClass(this.namespace+"-loading"),this.$instance.toggleClass(this.namespace+"-iframe",b.is("iframe")),this.$instance.find("."+this.namespace+"-inner").not(b).slice(1).remove().end().replaceWith(a.contains(this.$instance[0],b[0])?"":b),this.$content=b.addClass(this.namespace+"-inner"),this},open:function(b){var c=this;if(c.$instance.hide().appendTo(c.root),!(b&&b.isDefaultPrevented()||c.beforeOpen(b)===!1)){b&&b.preventDefault();var d=c.getContent();if(d)return e.push(c),j(!0),c.$instance.fadeIn(c.openSpeed),c.beforeContent(b),a.when(d).always(function
 (a){c.setContent(a),c.afterContent(b)}).then(c.$instance.promise()).done(function(){c.afterOpen(b)})}return c.$instance.detach(),a.Deferred().reject().promise()},close:function(b){var c=this,d=a.Deferred();return c.beforeClose(b)===!1?d.reject():(0===f(c).length&&j(!1),c.$instance.fadeOut(c.closeSpeed,function(){c.$instance.detach(),c.afterClose(b),d.resolve()})),d.promise()},resize:function(a,b){if(a&&b){this.$content.css("width","").css("height","");var c=Math.max(a/(this.$content.parent().width()-1),b/(this.$content.parent().height()-1));c>1&&(c=b/Math.floor(b/c),this.$content.css("width",""+a/c+"px").css("height",""+b/c+"px"))}},chainCallbacks:function(b){for(var c in b)this[c]=a.proxy(b[c],this,a.proxy(this[c],this))}},a.extend(b,{id:0,autoBind:"[data-featherlight]",defaults:b.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(b){return b instanceof a&&b},process:function(b){return this.persist!==!1?a(b):a(b).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff?|bmp|
 svg)(\?\S*)?$/i,process:function(b){var c=this,d=a.Deferred(),e=new Image,f=a('<img src="'+b+'" alt="" class="'+c.namespace+'-image" />');return e.onload=function(){f.naturalWidth=e.width,f.naturalHeight=e.height,d.resolve(f)},e.onerror=function(){d.reject(f)},e.src=b,d.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(b){return a(b)}},ajax:{regex:/./,process:function(b){var c=a.Deferred(),d=a("<div></div>").load(b,function(a,b){"error"!==b&&c.resolve(d.contents()),c.fail()});return c.promise()}},iframe:{process:function(b){var e=new a.Deferred,f=a("<iframe/>"),h=d(this,"iframe"),i=c(h,g);return f.hide().attr("src",b).attr(i).css(h).on("load",function(){e.resolve(f.show())}).appendTo(this.$instance.find("."+this.namespace+"-content")),e.promise()}},text:{process:function(b){return a("<div>",{text:b})}}},functionAttributes:["beforeOpen","afterOpen","beforeContent","afterContent","beforeClose","afterClose"],readElementConfig:function(b,c){var d=this,e=new RegExp("^data-"+c+"
 -(.*)"),f={};return b&&b.attributes&&a.each(b.attributes,function(){var b=this.name.match(e);if(b){var c=this.value,g=a.camelCase(b[1]);if(a.inArray(g,d.functionAttributes)>=0)c=new Function(c);else try{c=JSON.parse(c)}catch(h){}f[g]=c}}),f},extend:function(b,c){var d=function(){this.constructor=b};return d.prototype=this.prototype,b.prototype=new d,b.__super__=this.prototype,a.extend(b,this,c),b.defaults=b.prototype,b},attach:function(b,c,d){var e=this;"object"!=typeof c||c instanceof a!=!1||d||(d=c,c=void 0),d=a.extend({},d);var f,g=d.namespace||e.defaults.namespace,h=a.extend({},e.defaults,e.readElementConfig(b[0],g),d),i=function(g){var i=a(g.currentTarget),j=a.extend({$source:b,$currentTarget:i},e.readElementConfig(b[0],h.namespace),e.readElementConfig(g.currentTarget,h.namespace),d),k=f||i.data("featherlight-persisted")||new e(c,j);"shared"===k.persist?f=k:k.persist!==!1&&i.data("featherlight-persisted",k),j.$currentTarget.blur&&j.$currentTarget.blur(),k.open(g)};return b.on(h
 .openTrigger+"."+h.namespace,h.filter,i),{filter:h.filter,handler:i}},current:function(){var a=this.opened();return a[a.length-1]||null},opened:function(){var b=this;return f(),a.grep(e,function(a){return a instanceof b})},close:function(a){var b=this.current();return b?b.close(a):void 0},_onReady:function(){var b=this;if(b.autoBind){var c=a(b.autoBind);c.each(function(){b.attach(a(this))}),a(document).on("click",b.autoBind,function(d){if(!d.isDefaultPrevented()){var e=a(d.currentTarget),f=c.length;if(c=c.add(e),f!==c.length){var g=b.attach(e);(!g.filter||a(d.target).parentsUntil(e,g.filter).length>0)&&g.handler(d)}}})}},_callbackChain:{onKeyUp:function(b,c){return 27===c.keyCode?(this.closeOnEsc&&a.featherlight.close(c),!1):b(c)},beforeOpen:function(b,c){return a(document.documentElement).addClass("with-featherlight"),this._previouslyActive=document.activeElement,this._$previouslyTabbable=a("a, input, select, textarea, iframe, button, iframe, [contentEditable=true]").not("[tabindex
 ]").not(this.$instance.find("button")),this._$previouslyWithTabIndex=a("[tabindex]").not('[tabindex="-1"]'),this._previousWithTabIndices=this._$previouslyWithTabIndex.map(function(b,c){return a(c).attr("tabindex")}),this._$previouslyWithTabIndex.add(this._$previouslyTabbable).attr("tabindex",-1),document.activeElement.blur&&document.activeElement.blur(),b(c)},afterClose:function(c,d){var e=c(d),f=this;return this._$previouslyTabbable.removeAttr("tabindex"),this._$previouslyWithTabIndex.each(function(b,c){a(c).attr("tabindex",f._previousWithTabIndices[b])}),this._previouslyActive.focus(),0===b.opened().length&&a(document.documentElement).removeClass("with-featherlight"),e},onResize:function(a,b){return this.resize(this.$content.naturalWidth,this.$content.naturalHeight),a(b)},afterContent:function(a,b){var c=a(b);return this.$instance.find("[autofocus]:not([disabled])").focus(),this.onResize(b),c}}}),a.featherlight=b,a.fn.featherlight=function(a,c){return b.attach(this,a,c),this},a(do
 cument).ready(function(){b._onReady()})}(jQuery);
\ No newline at end of file

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight-1.7.13.min.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css?rev=1861566&view=auto
==============================================================================
--- ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css (added)
+++ ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css Tue Jun 18 10:09:00 2019
@@ -0,0 +1,122 @@
+/**
+ * Featherlight Gallery – an extension for the ultra slim jQuery lightbox
+ * Version 1.7.13 - http://noelboss.github.io/featherlight/
+ *
+ * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
+ * MIT Licensed.
+**/
+
+.featherlight-next,
+.featherlight-previous {
+ display: block;
+ position: absolute;
+ top: 25px;
+ right: 25px;
+ bottom: 0;
+ left: 80%;
+ cursor: pointer;
+ /* preventing text selection */
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ /* IE9 hack, otherwise navigation doesn't appear */
+ background: rgba(0,0,0,0);
+}
+
+.featherlight-previous {
+ left: 25px;
+ right: 80%;
+}
+
+.featherlight-next:hover,
+.featherlight-previous:hover {
+ background: rgba(255,255,255,0.25);
+}
+
+
+.featherlight-next span,
+.featherlight-previous span {
+ display: none;
+ position: absolute;
+
+ top: 50%;
+ left: 5%;
+ width: 82%;
+
+ /* center horizontally */
+ text-align: center;
+
+ font-size: 80px;
+ line-height: 80px;
+
+ /* center vertically */
+ margin-top: -40px;
+
+ text-shadow: 0px 0px 5px #fff;
+ color: #fff;
+ font-style: normal;
+ font-weight: normal;
+}
+.featherlight-next span {
+ right: 5%;
+ left: auto;
+}
+
+
+.featherlight-next:hover span,
+.featherlight-previous:hover span {
+ display: inline-block;
+}
+
+.featherlight-swipe-aware .featherlight-next,
+.featherlight-swipe-aware .featherlight-previous {
+ display: none;
+}
+
+/* Hide navigation while loading */
+.featherlight-loading .featherlight-previous, .featherlight-loading .featherlight-next {
+ display:none;
+}
+
+/* Hide navigation in case of single image */
+.featherlight-first-slide.featherlight-last-slide .featherlight-previous,
+.featherlight-first-slide.featherlight-last-slide .featherlight-next {
+ display:none;
+}
+
+
+/* Always display arrows on touch devices */
+@media only screen and (max-device-width: 1024px){
+ .featherlight-next:hover,
+ .featherlight-previous:hover {
+ background: none;
+ }
+ .featherlight-next span,
+ .featherlight-previous span {
+ display: block;
+ }
+}
+
+/* handling phones and small screens */
+@media only screen and (max-width: 1024px) {
+ .featherlight-next,
+ .featherlight-previous {
+ top: 10px;
+ right: 10px;
+ left: 85%;
+ }
+
+ .featherlight-previous {
+ left: 10px;
+ right: 85%;
+ }
+
+ .featherlight-next span,
+ .featherlight-previous span {
+ margin-top: -30px;
+ font-size: 40px;
+ }
+}

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/branches/release16.11/framework/images/webapp/images/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css
------------------------------------------------------------------------------
    svn:mime-type = text/css