Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/jquery-3.4.1.js
------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/jquery-3.4.1.js ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/jquery-3.4.1.js ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.css URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.css?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.css (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.css Sat Jul 27 06:43:12 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/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.css ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.css ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.css ------------------------------------------------------------------------------ svn:mime-type = text/css Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.js URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.js?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.js (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.js Sat Jul 27 06:43:12 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: '✕', /* 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/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.js ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.js ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.js ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css Sat Jul 27 06:43:12 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/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css ------------------------------------------------------------------------------ svn:mime-type = text/css Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js Sat Jul 27 06:43:12 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:"✕",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/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css Sat Jul 27 06:43:12 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/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.css ------------------------------------------------------------------------------ svn:mime-type = text/css Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.js URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.js?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.js (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.js Sat Jul 27 06:43:12 2019 @@ -0,0 +1,169 @@ +/** + * 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. +**/ +(function($) { + "use strict"; + + var warn = function(m) { + if(window.console && window.console.warn) { + window.console.warn('FeatherlightGallery: ' + m); + } + }; + + if('undefined' === typeof $) { + return warn('Too much lightness, Featherlight needs jQuery.'); + } else if(!$.featherlight) { + return warn('Load the featherlight plugin before the gallery plugin'); + } + + var isTouchAware = ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch, + jQueryConstructor = $.event && $.event.special.swipeleft && $, + hammerConstructor = window.Hammer && function($el){ + var mc = new window.Hammer.Manager($el[0]); + mc.add(new window.Hammer.Swipe()); + return mc; + }, + swipeAwareConstructor = isTouchAware && (jQueryConstructor || hammerConstructor); + if(isTouchAware && !swipeAwareConstructor) { + warn('No compatible swipe library detected; one must be included before featherlightGallery for swipe motions to navigate the galleries.'); + } + + var callbackChain = { + afterClose: function(_super, event) { + var self = this; + self.$instance.off('next.'+self.namespace+' previous.'+self.namespace); + if (self._swiper) { + self._swiper + .off('swipeleft', self._swipeleft) /* See http://stackoverflow.com/questions/17367198/hammer-js-cant-remove-event-listener */ + .off('swiperight', self._swiperight); + self._swiper = null; + } + return _super(event); + }, + beforeOpen: function(_super, event){ + var self = this; + + self.$instance.on('next.'+self.namespace+' previous.'+self.namespace, function(event){ + var offset = event.type === 'next' ? +1 : -1; + self.navigateTo(self.currentNavigation() + offset); + }); + + if (swipeAwareConstructor) { + self._swiper = swipeAwareConstructor(self.$instance) + .on('swipeleft', self._swipeleft = function() { self.$instance.trigger('next'); }) + .on('swiperight', self._swiperight = function() { self.$instance.trigger('previous'); }); + + self.$instance + .addClass(this.namespace+'-swipe-aware', swipeAwareConstructor); + } + + self.$instance.find('.'+self.namespace+'-content') + .append(self.createNavigation('previous')) + .append(self.createNavigation('next')); + + return _super(event); + }, + beforeContent: function(_super, event) { + var index = this.currentNavigation(); + var len = this.slides().length; + this.$instance + .toggleClass(this.namespace+'-first-slide', index === 0) + .toggleClass(this.namespace+'-last-slide', index === len - 1); + return _super(event); + }, + onKeyUp: function(_super, event){ + var dir = { + 37: 'previous', /* Left arrow */ + 39: 'next' /* Rigth arrow */ + }[event.keyCode]; + if(dir) { + this.$instance.trigger(dir); + return false; + } else { + return _super(event); + } + } + }; + + function FeatherlightGallery($source, config) { + if(this instanceof FeatherlightGallery) { /* called with new */ + $.featherlight.apply(this, arguments); + this.chainCallbacks(callbackChain); + } else { + var flg = new FeatherlightGallery($.extend({$source: $source, $currentTarget: $source.first()}, config)); + flg.open(); + return flg; + } + } + + $.featherlight.extend(FeatherlightGallery, { + autoBind: '[data-featherlight-gallery]' + }); + + $.extend(FeatherlightGallery.prototype, { + /** Additional settings for Gallery **/ + previousIcon: '◀', /* Code that is used as previous icon */ + nextIcon: '▶', /* Code that is used as next icon */ + galleryFadeIn: 100, /* fadeIn speed when image is loaded */ + galleryFadeOut: 300, /* fadeOut speed before image is loaded */ + + slides: function() { + if (this.filter) { + return this.$source.find(this.filter); + } + return this.$source; + }, + + images: function() { + warn('images is deprecated, please use slides instead'); + return this.slides(); + }, + + currentNavigation: function() { + return this.slides().index(this.$currentTarget); + }, + + navigateTo: function(index) { + var self = this, + source = self.slides(), + len = source.length, + $inner = self.$instance.find('.' + self.namespace + '-inner'); + index = ((index % len) + len) % len; /* pin index to [0, len[ */ + + self.$currentTarget = source.eq(index); + self.beforeContent(); + return $.when( + self.getContent(), + $inner.fadeTo(self.galleryFadeOut,0.2) + ).always(function($newContent) { + self.setContent($newContent); + self.afterContent(); + $newContent.fadeTo(self.galleryFadeIn,1); + }); + }, + + createNavigation: function(target) { + var self = this; + return $('<span title="'+target+'" class="'+this.namespace+'-'+target+'"><span>'+this[target+'Icon']+'</span></span>').click(function(evt){ + $(this).trigger(target+'.'+self.namespace); + evt.preventDefault(); + }); + } + }); + + $.featherlightGallery = FeatherlightGallery; + + /* extend jQuery with selector featherlight method $(elm).featherlight(config, elm); */ + $.fn.featherlightGallery = function(config) { + FeatherlightGallery.attach(this, config); + return this; + }; + + /* bind featherlight on ready if config autoBind is set */ + $(document).ready(function(){ FeatherlightGallery._onReady(); }); + +}(jQuery)); Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.js ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.js ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.js ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.css URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.css?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.css (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.css Sat Jul 27 06:43:12 2019 @@ -0,0 +1,8 @@ +/** + * 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;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:rgba(0,0,0,0)}.featherlight-previous{left:25px;right:80%}.featherlight-next:hover,.featherlight-previous:hover{background:rgba(255,255,255,.25)}.featherlight-next span,.featherlight-previous span{display:none;position:absolute;top:50%;left:5%;width:82%;text-align:center;font-size:80px;line-height:80px;margin-top:-40px;text-shadow:0 0 5px #fff;color:#fff;font-style:normal;font-weight:400}.featherlight-next span{right:5%;left:auto}.featherlight-next:hover span,.featherlight-previous:hover span{display:inline-block}.featherlight-first-slide.featherlight-last-slide .featherlight-next,.featherlight-first-slide.featherlight-last-slide .featherlight-previous,.featherlight-loading .featherlight-next,.featherlight-loading .featherlight-previous,.featherlight-swipe-aware .featherlight-next,.featherlight-swipe-aware .featherlight-previous{display:none}@media only screen and (max-device-width:1024px){.featherlight-next:hover,.featherlight-previous:hover{background:0 0}.featherlight-next span,.featherlight-previous span{display:block}}@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}} \ No newline at end of file Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.css ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.css ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.css ------------------------------------------------------------------------------ svn:mime-type = text/css Added: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.js URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.js?rev=1863838&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.js (added) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.js Sat Jul 27 06:43:12 2019 @@ -0,0 +1,7 @@ +/** + * 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. +**/!function(a){"use strict";function b(c,d){if(!(this instanceof b)){var e=new b(a.extend({$source:c,$currentTarget:c.first()},d));return e.open(),e}a.featherlight.apply(this,arguments),this.chainCallbacks(h)}var c=function(a){window.console&&window.console.warn&&window.console.warn("FeatherlightGallery: "+a)};if("undefined"==typeof a)return c("Too much lightness, Featherlight needs jQuery.");if(!a.featherlight)return c("Load the featherlight plugin before the gallery plugin");var d="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,e=a.event&&a.event.special.swipeleft&&a,f=window.Hammer&&function(a){var b=new window.Hammer.Manager(a[0]);return b.add(new window.Hammer.Swipe),b},g=d&&(e||f);d&&!g&&c("No compatible swipe library detected; one must be included before featherlightGallery for swipe motions to navigate the galleries.");var h={afterClose:function(a,b){var c=this;return c.$instance.off("next."+c.namespace+" previous."+c.namespace),c._swiper&&( c._swiper.off("swipeleft",c._swipeleft).off("swiperight",c._swiperight),c._swiper=null),a(b)},beforeOpen:function(a,b){var c=this;return c.$instance.on("next."+c.namespace+" previous."+c.namespace,function(a){var b="next"===a.type?1:-1;c.navigateTo(c.currentNavigation()+b)}),g&&(c._swiper=g(c.$instance).on("swipeleft",c._swipeleft=function(){c.$instance.trigger("next")}).on("swiperight",c._swiperight=function(){c.$instance.trigger("previous")}),c.$instance.addClass(this.namespace+"-swipe-aware",g)),c.$instance.find("."+c.namespace+"-content").append(c.createNavigation("previous")).append(c.createNavigation("next")),a(b)},beforeContent:function(a,b){var c=this.currentNavigation(),d=this.slides().length;return this.$instance.toggleClass(this.namespace+"-first-slide",0===c).toggleClass(this.namespace+"-last-slide",c===d-1),a(b)},onKeyUp:function(a,b){var c={37:"previous",39:"next"}[b.keyCode];return c?(this.$instance.trigger(c),!1):a(b)}};a.featherlight.extend(b,{autoBind:"[data-feathe rlight-gallery]"}),a.extend(b.prototype,{previousIcon:"◀",nextIcon:"▶",galleryFadeIn:100,galleryFadeOut:300,slides:function(){return this.filter?this.$source.find(this.filter):this.$source},images:function(){return c("images is deprecated, please use slides instead"),this.slides()},currentNavigation:function(){return this.slides().index(this.$currentTarget)},navigateTo:function(b){var c=this,d=c.slides(),e=d.length,f=c.$instance.find("."+c.namespace+"-inner");return b=(b%e+e)%e,c.$currentTarget=d.eq(b),c.beforeContent(),a.when(c.getContent(),f.fadeTo(c.galleryFadeOut,.2)).always(function(a){c.setContent(a),c.afterContent(),a.fadeTo(c.galleryFadeIn,1)})},createNavigation:function(b){var c=this;return a('<span title="'+b+'" class="'+this.namespace+"-"+b+'"><span>'+this[b+"Icon"]+"</span></span>").click(function(d){a(this).trigger(b+"."+c.namespace),d.preventDefault()})}}),a.featherlightGallery=b,a.fn.featherlightGallery=function(a){return b.attach(this,a),this},a(document) .ready(function(){b._onReady()})}(jQuery); \ No newline at end of file Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.js ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.js ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/themes/common-theme/webapp/common/js/jquery/plugins/featherlight/featherlight.gallery-1.7.13.min.js ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/CommonScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/CommonScreens.xml?rev=1863838&r1=1863837&r2=1863838&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/CommonScreens.xml (original) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/CommonScreens.xml Sat Jul 27 06:43:12 2019 @@ -351,13 +351,15 @@ under the License. <set field="defaultOrganizationPartyId" from-field="userPreferences.ORGANIZATION_PARTY" global="true"/> <set field="messagesTemplateLocation" from-field="layoutSettings.VT_MSG_TMPLT_LOC" default-value="component://common-theme/template/includes/Messages.ftl"/> + <set field="layoutSettings.styleSheets[]" value="/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.css" global="true"/> + <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/plugins/featherlight/featherlight-1.7.13.min.js" global="true"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/plugins/select2/js/select2-4.0.6.js"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/plugins/datetimepicker/jquery-ui-timepicker-addon-1.6.3.min.js"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/ui/jquery-ui-1.12.1.min.js"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/plugins/validate/jquery.validate.min.js"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js" global="true"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/jquery-migrate-3.0.0.min.js" global="true"/> - <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/jquery-3.2.1.min.js" global="true"/> + <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/jquery-3.4.1.min.js" global="true"/> <set field="layoutSettings.javaScripts[]" value="/common/js/util/OfbizUtil.js" global="true"/> </actions> <widgets> @@ -448,7 +450,7 @@ under the License. <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/plugins/validate/jquery.validate.min.js" global="true"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js" global="true"/> <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/jquery-migrate-3.0.0.min.js" global="true" /> - <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/jquery-3.2.1.min.js" global="true"/> + <set field="layoutSettings.javaScripts[+0]" value="/common/js/jquery/jquery-3.4.1.min.js" global="true"/> <!-- jQuery CSSs --> <set field="layoutSettings.styleSheets[+0]" value="/common/js/jquery/plugins/select2/css/select2-4.0.6.css" global="true"/> <set field="layoutSettings.styleSheets[+0]" value="/common/js/jquery/ui/jquery-ui-1.12.1.min.css" global="true" /> Modified: ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/Theme.xml URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/Theme.xml?rev=1863838&r1=1863837&r2=1863838&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/Theme.xml (original) +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/widget/Theme.xml Sat Jul 27 06:43:12 2019 @@ -57,7 +57,7 @@ under the License. <property name="VT_NAV_TMPLT_LOC" value="component://flatgrey/template/AppBar.ftl"/> <property name="VT_MSG_TMPLT_LOC" value="component://common-theme/template/includes/Messages.ftl"/> <!--javascript libs--> - <property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/jquery-3.2.1.min.js"/> + <property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/jquery-3.4.1.min.js"/> <property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/jquery-migrate-3.0.0.min.js"/> <property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/browser-plugin/jquery.browser-0.1.0.min.js"/> <property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/ui/jquery-ui-1.12.1.min.js"/> Modified: ofbiz/ofbiz-framework/trunk/themes/flatgrey/webapp/flatgrey/style.css URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/flatgrey/webapp/flatgrey/style.css?rev=1863838&r1=1863837&r2=1863838&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/flatgrey/webapp/flatgrey/style.css (original) +++ ofbiz/ofbiz-framework/trunk/themes/flatgrey/webapp/flatgrey/style.css Sat Jul 27 06:43:12 2019 @@ -2258,4 +2258,8 @@ html > /**/ body .jstree-default a { border-radius: 0px; border-color: #848484 #c1c1c1 #e1e1e1; min-height: unset !important; +} +/* The custom CSS to show mouse pointer on links using featherlight plugin */ +a[data-featherlight] { + cursor: pointer; } \ No newline at end of file Modified: ofbiz/ofbiz-framework/trunk/themes/rainbowstone/webapp/rainbowstone/style.css URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/rainbowstone/webapp/rainbowstone/style.css?rev=1863838&r1=1863837&r2=1863838&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/rainbowstone/webapp/rainbowstone/style.css (original) +++ ofbiz/ofbiz-framework/trunk/themes/rainbowstone/webapp/rainbowstone/style.css Sat Jul 27 06:43:12 2019 @@ -1911,4 +1911,8 @@ html > /**/ body .jstree-default a { border-radius: 0px; border-color: #848484 #c1c1c1 #e1e1e1; min-height: unset !important; +} +/* The custom CSS to show mouse pointer on links using featherlight plugin */ +a[data-featherlight] { + cursor: pointer; } \ No newline at end of file Modified: ofbiz/ofbiz-framework/trunk/themes/tomahawk/webapp/tomahawk/css/style.css URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/tomahawk/webapp/tomahawk/css/style.css?rev=1863838&r1=1863837&r2=1863838&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/themes/tomahawk/webapp/tomahawk/css/style.css (original) +++ ofbiz/ofbiz-framework/trunk/themes/tomahawk/webapp/tomahawk/css/style.css Sat Jul 27 06:43:12 2019 @@ -4527,4 +4527,8 @@ html > /**/ body .jstree-default a { .button-bar > a.buttontext { text-transform:none!important; +} +/* The custom CSS to show mouse pointer on links using featherlight plugin */ +a[data-featherlight] { + cursor: pointer; } \ No newline at end of file |
Free forum by Nabble | Edit this page |