PDF rausgenommen
This commit is contained in:
4435
msd2/myoos/js/bootstrap/bootstrap.js
vendored
Normal file
4435
msd2/myoos/js/bootstrap/bootstrap.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
msd2/myoos/js/bootstrap/bootstrap.js.map
Normal file
1
msd2/myoos/js/bootstrap/bootstrap.js.map
Normal file
File diff suppressed because one or more lines are too long
7
msd2/myoos/js/bootstrap/bootstrap.min.js
vendored
Normal file
7
msd2/myoos/js/bootstrap/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
msd2/myoos/js/bootstrap/bootstrap.min.js.map
Normal file
1
msd2/myoos/js/bootstrap/bootstrap.min.js.map
Normal file
File diff suppressed because one or more lines are too long
0
msd2/myoos/js/bootstrap/index.html
Normal file
0
msd2/myoos/js/bootstrap/index.html
Normal file
200
msd2/myoos/js/general.js
Normal file
200
msd2/myoos/js/general.js
Normal file
@ -0,0 +1,200 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
$Id: general.js,v 1.1 2007/06/07 16:33:21 r23 Exp $
|
||||
|
||||
MyOOS [Shopsystem]
|
||||
https://www.oos-shop.de
|
||||
|
||||
|
||||
Copyright (c) 2003 - 2014 by the MyOOS Development Team.
|
||||
----------------------------------------------------------------------
|
||||
Based on:
|
||||
|
||||
File: general.js,v 1.3 2003/02/10 22:30:55 hpdl
|
||||
----------------------------------------------------------------------
|
||||
osCommerce, Open Source E-Commerce Solutions
|
||||
http://www.oscommerce.com
|
||||
|
||||
Copyright (c) 2003 osCommerce
|
||||
----------------------------------------------------------------------
|
||||
Released under the GNU General Public License
|
||||
---------------------------------------------------------------------- */
|
||||
|
||||
function SetFocus(TargetFormName) {
|
||||
var target = 0;
|
||||
if (TargetFormName != "") {
|
||||
for (i=0; i<document.forms.length; i++) {
|
||||
if (document.forms[i].name == TargetFormName) {
|
||||
target = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var TargetForm = document.forms[target];
|
||||
|
||||
for (i=0; i<TargetForm.length; i++) {
|
||||
if ( (TargetForm.elements[i].type != "image") && (TargetForm.elements[i].type != "hidden") && (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit") ) {
|
||||
TargetForm.elements[i].focus();
|
||||
|
||||
if ( (TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password") ) {
|
||||
TargetForm.elements[i].select();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function RemoveFormatString(TargetElement, FormatString) {
|
||||
if (TargetElement.value == FormatString) {
|
||||
TargetElement.value = "";
|
||||
}
|
||||
|
||||
TargetElement.select();
|
||||
}
|
||||
|
||||
function CheckDateRange(from, to) {
|
||||
if (Date.parse(from.value) <= Date.parse(to.value)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function IsValidDate(DateToCheck, FormatString) {
|
||||
var strDateToCheck;
|
||||
var strDateToCheckArray;
|
||||
var strFormatArray;
|
||||
var strFormatString;
|
||||
var strDay;
|
||||
var strMonth;
|
||||
var strYear;
|
||||
var intday;
|
||||
var intMonth;
|
||||
var intYear;
|
||||
var intDateSeparatorIdx = -1;
|
||||
var intFormatSeparatorIdx = -1;
|
||||
var strSeparatorArray = new Array("-"," ","/",".");
|
||||
var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
|
||||
var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
||||
|
||||
strDateToCheck = DateToCheck.toLowerCase();
|
||||
strFormatString = FormatString.toLowerCase();
|
||||
|
||||
if (strDateToCheck.length != strFormatString.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i=0; i<strSeparatorArray.length; i++) {
|
||||
if (strFormatString.indexOf(strSeparatorArray[i]) != -1) {
|
||||
intFormatSeparatorIdx = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0; i<strSeparatorArray.length; i++) {
|
||||
if (strDateToCheck.indexOf(strSeparatorArray[i]) != -1) {
|
||||
intDateSeparatorIdx = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (intDateSeparatorIdx != intFormatSeparatorIdx) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (intDateSeparatorIdx != -1) {
|
||||
strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
|
||||
if (strFormatArray.length != 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
|
||||
if (strDateToCheckArray.length != 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i=0; i<strFormatArray.length; i++) {
|
||||
if (strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm') {
|
||||
strMonth = strDateToCheckArray[i];
|
||||
}
|
||||
|
||||
if (strFormatArray[i] == 'dd') {
|
||||
strDay = strDateToCheckArray[i];
|
||||
}
|
||||
|
||||
if (strFormatArray[i] == 'yyyy') {
|
||||
strYear = strDateToCheckArray[i];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (FormatString.length > 7) {
|
||||
if (strFormatString.indexOf('mmm') == -1) {
|
||||
strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
|
||||
} else {
|
||||
strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
|
||||
}
|
||||
|
||||
strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
|
||||
strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (strYear.length != 4) {
|
||||
return false;
|
||||
}
|
||||
|
||||
intday = parseInt(strDay, 10);
|
||||
if (isNaN(intday)) {
|
||||
return false;
|
||||
}
|
||||
if (intday < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
intMonth = parseInt(strMonth, 10);
|
||||
if (isNaN(intMonth)) {
|
||||
for (i=0; i<strMonthArray.length; i++) {
|
||||
if (strMonth == strMonthArray[i]) {
|
||||
intMonth = i+1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isNaN(intMonth)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (intMonth > 12 || intMonth < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
intYear = parseInt(strYear, 10);
|
||||
if (isNaN(intYear)) {
|
||||
return false;
|
||||
}
|
||||
if (IsLeapYear(intYear) == true) {
|
||||
intDaysArray[1] = 29;
|
||||
}
|
||||
|
||||
if (intday > intDaysArray[intMonth - 1]) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function IsLeapYear(intYear) {
|
||||
if (intYear % 100 == 0) {
|
||||
if (intYear % 400 == 0) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if ((intYear % 4) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
0
msd2/myoos/js/index.html
Normal file
0
msd2/myoos/js/index.html
Normal file
0
msd2/myoos/js/jquery/index.html
Normal file
0
msd2/myoos/js/jquery/index.html
Normal file
4
msd2/myoos/js/jquery/jquery-3.2.1.min.js
vendored
Normal file
4
msd2/myoos/js/jquery/jquery-3.2.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
msd2/myoos/js/jquery/jquery-3.2.1.min.map
Normal file
1
msd2/myoos/js/jquery/jquery-3.2.1.min.map
Normal file
File diff suppressed because one or more lines are too long
4
msd2/myoos/js/jquery/jquery-3.2.1.slim.min.js
vendored
Normal file
4
msd2/myoos/js/jquery/jquery-3.2.1.slim.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
msd2/myoos/js/jquery/jquery-3.2.1.slim.min.map
Normal file
1
msd2/myoos/js/jquery/jquery-3.2.1.slim.min.map
Normal file
File diff suppressed because one or more lines are too long
0
msd2/myoos/js/plugins/bar-rating/index.html
Normal file
0
msd2/myoos/js/plugins/bar-rating/index.html
Normal file
590
msd2/myoos/js/plugins/bar-rating/jquery.barrating.js
Normal file
590
msd2/myoos/js/plugins/bar-rating/jquery.barrating.js
Normal file
@ -0,0 +1,590 @@
|
||||
/**
|
||||
* jQuery Bar Rating Plugin v1.2.2
|
||||
*
|
||||
* http://github.com/antennaio/jquery-bar-rating
|
||||
*
|
||||
* Copyright (c) 2012-2016 Kazik Pietruszewski
|
||||
*
|
||||
* This plugin is available under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node/CommonJS
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
// browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
|
||||
var BarRating = (function() {
|
||||
|
||||
function BarRating() {
|
||||
var self = this;
|
||||
|
||||
// wrap element in a wrapper div
|
||||
var wrapElement = function() {
|
||||
var classes = ['br-wrapper'];
|
||||
|
||||
if (self.options.theme !== '') {
|
||||
classes.push('br-theme-' + self.options.theme);
|
||||
}
|
||||
|
||||
self.$elem.wrap($('<div />', {
|
||||
'class': classes.join(' ')
|
||||
}));
|
||||
};
|
||||
|
||||
// unwrap element
|
||||
var unwrapElement = function() {
|
||||
self.$elem.unwrap();
|
||||
};
|
||||
|
||||
// find option by value
|
||||
var findOption = function(value) {
|
||||
if ($.isNumeric(value)) {
|
||||
value = Math.floor(value);
|
||||
}
|
||||
|
||||
return $('option[value="' + value + '"]', self.$elem);
|
||||
};
|
||||
|
||||
// get initial option
|
||||
var getInitialOption = function() {
|
||||
var initialRating = self.options.initialRating;
|
||||
|
||||
if (!initialRating) {
|
||||
return $('option:selected', self.$elem);
|
||||
}
|
||||
|
||||
return findOption(initialRating);
|
||||
};
|
||||
|
||||
// get empty option
|
||||
var getEmptyOption = function() {
|
||||
var $emptyOpt = self.$elem.find('option[value="' + self.options.emptyValue + '"]');
|
||||
|
||||
if (!$emptyOpt.length && self.options.allowEmpty) {
|
||||
$emptyOpt = $('<option />', { 'value': self.options.emptyValue });
|
||||
|
||||
return $emptyOpt.prependTo(self.$elem);
|
||||
}
|
||||
|
||||
return $emptyOpt;
|
||||
};
|
||||
|
||||
// get data
|
||||
var getData = function(key) {
|
||||
var data = self.$elem.data('barrating');
|
||||
|
||||
if (typeof key !== 'undefined') {
|
||||
return data[key];
|
||||
}
|
||||
|
||||
return data;
|
||||
};
|
||||
|
||||
// set data
|
||||
var setData = function(key, value) {
|
||||
if (value !== null && typeof value === 'object') {
|
||||
self.$elem.data('barrating', value);
|
||||
} else {
|
||||
self.$elem.data('barrating')[key] = value;
|
||||
}
|
||||
};
|
||||
|
||||
// save data on element
|
||||
var saveDataOnElement = function() {
|
||||
var $opt = getInitialOption();
|
||||
var $emptyOpt = getEmptyOption();
|
||||
|
||||
var value = $opt.val();
|
||||
var text = $opt.data('html') ? $opt.data('html') : $opt.text();
|
||||
|
||||
// if the allowEmpty option is not set let's check if empty option exists in the select field
|
||||
var allowEmpty = (self.options.allowEmpty !== null) ?
|
||||
self.options.allowEmpty :
|
||||
!!$emptyOpt.length;
|
||||
|
||||
var emptyValue = ($emptyOpt.length) ? $emptyOpt.val() : null;
|
||||
var emptyText = ($emptyOpt.length) ? $emptyOpt.text() : null;
|
||||
|
||||
setData(null, {
|
||||
userOptions: self.options,
|
||||
|
||||
// initial rating based on the OPTION value
|
||||
ratingValue: value,
|
||||
ratingText: text,
|
||||
|
||||
// rating will be restored by calling clear method
|
||||
originalRatingValue: value,
|
||||
originalRatingText: text,
|
||||
|
||||
// allow empty ratings?
|
||||
allowEmpty: allowEmpty,
|
||||
|
||||
// rating value and text of the empty OPTION
|
||||
emptyRatingValue: emptyValue,
|
||||
emptyRatingText: emptyText,
|
||||
|
||||
// read-only state
|
||||
readOnly: self.options.readonly,
|
||||
|
||||
// did the user already select a rating?
|
||||
ratingMade: false
|
||||
});
|
||||
};
|
||||
|
||||
// remove data on element
|
||||
var removeDataOnElement = function() {
|
||||
self.$elem.removeData('barrating');
|
||||
};
|
||||
|
||||
// return current rating text
|
||||
var ratingText = function() {
|
||||
return getData('ratingText');
|
||||
};
|
||||
|
||||
// return current rating value
|
||||
var ratingValue = function() {
|
||||
return getData('ratingValue');
|
||||
};
|
||||
|
||||
// build widget and return jQuery element
|
||||
var buildWidget = function() {
|
||||
var $w = $('<div />', { 'class': 'br-widget' });
|
||||
|
||||
// create A elements that will replace OPTIONs
|
||||
self.$elem.find('option').each(function() {
|
||||
var val, text, html, $a;
|
||||
|
||||
val = $(this).val();
|
||||
|
||||
// create ratings - but only if val is not defined as empty
|
||||
if (val !== getData('emptyRatingValue')) {
|
||||
text = $(this).text();
|
||||
html = $(this).data('html');
|
||||
if (html) { text = html; }
|
||||
|
||||
$a = $('<a />', {
|
||||
'href': '#',
|
||||
'data-rating-value': val,
|
||||
'data-rating-text': text,
|
||||
'html': (self.options.showValues) ? text : ''
|
||||
});
|
||||
|
||||
$w.append($a);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// append .br-current-rating div to the widget
|
||||
if (self.options.showSelectedRating) {
|
||||
$w.append($('<div />', { 'text': '', 'class': 'br-current-rating' }));
|
||||
}
|
||||
|
||||
// additional classes for the widget
|
||||
if (self.options.reverse) {
|
||||
$w.addClass('br-reverse');
|
||||
}
|
||||
|
||||
if (self.options.readonly) {
|
||||
$w.addClass('br-readonly');
|
||||
}
|
||||
|
||||
return $w;
|
||||
};
|
||||
|
||||
// return a jQuery function name depending on the 'reverse' setting
|
||||
var nextAllorPreviousAll = function() {
|
||||
if (getData('userOptions').reverse) {
|
||||
return 'nextAll';
|
||||
} else {
|
||||
return 'prevAll';
|
||||
}
|
||||
};
|
||||
|
||||
// set the value of the select field
|
||||
var setSelectFieldValue = function(value) {
|
||||
// change selected option
|
||||
findOption(value).prop('selected', true);
|
||||
|
||||
if (getData('userOptions').triggerChange) {
|
||||
self.$elem.change();
|
||||
}
|
||||
};
|
||||
|
||||
// reset select field
|
||||
var resetSelectField = function() {
|
||||
$('option', self.$elem).prop('selected', function() {
|
||||
return this.defaultSelected;
|
||||
});
|
||||
|
||||
if (getData('userOptions').triggerChange) {
|
||||
self.$elem.change();
|
||||
}
|
||||
};
|
||||
|
||||
// display the currently selected rating
|
||||
var showSelectedRating = function(text) {
|
||||
// text undefined?
|
||||
text = text ? text : ratingText();
|
||||
|
||||
// special case when the selected rating is defined as empty
|
||||
if (text == getData('emptyRatingText')) {
|
||||
text = '';
|
||||
}
|
||||
|
||||
// update .br-current-rating div
|
||||
if (self.options.showSelectedRating) {
|
||||
self.$elem.parent().find('.br-current-rating').text(text);
|
||||
}
|
||||
};
|
||||
|
||||
// return rounded fraction of a value (14.4 -> 40, 0.99 -> 90)
|
||||
var fraction = function(value) {
|
||||
return Math.round(((Math.floor(value * 10) / 10) % 1) * 100);
|
||||
};
|
||||
|
||||
// remove all classes from elements
|
||||
var resetStyle = function() {
|
||||
// remove all classes starting with br-*
|
||||
self.$widget.find('a').removeClass(function(index, classes) {
|
||||
return (classes.match(/(^|\s)br-\S+/g) || []).join(' ');
|
||||
});
|
||||
};
|
||||
|
||||
// apply style by setting classes on elements
|
||||
var applyStyle = function() {
|
||||
var $a = self.$widget.find('a[data-rating-value="' + ratingValue() + '"]');
|
||||
var initialRating = getData('userOptions').initialRating;
|
||||
var baseValue = $.isNumeric(ratingValue()) ? ratingValue() : 0;
|
||||
var f = fraction(initialRating);
|
||||
var $all, $fractional;
|
||||
|
||||
resetStyle();
|
||||
|
||||
// add classes
|
||||
$a.addClass('br-selected br-current')[nextAllorPreviousAll()]()
|
||||
.addClass('br-selected');
|
||||
|
||||
if (!getData('ratingMade') && $.isNumeric(initialRating)) {
|
||||
if ((initialRating <= baseValue) || !f) {
|
||||
return;
|
||||
}
|
||||
|
||||
$all = self.$widget.find('a');
|
||||
|
||||
$fractional = ($a.length) ?
|
||||
$a[(getData('userOptions').reverse) ? 'prev' : 'next']() :
|
||||
$all[(getData('userOptions').reverse) ? 'last' : 'first']();
|
||||
|
||||
$fractional.addClass('br-fractional');
|
||||
$fractional.addClass('br-fractional-' + f);
|
||||
}
|
||||
};
|
||||
|
||||
// check if the element is deselectable?
|
||||
var isDeselectable = function($element) {
|
||||
if (!getData('allowEmpty') || !getData('userOptions').deselectable) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (ratingValue() == $element.attr('data-rating-value'));
|
||||
};
|
||||
|
||||
// handle click events
|
||||
var attachClickHandler = function($elements) {
|
||||
$elements.on('click.barrating', function(event) {
|
||||
var $a = $(this),
|
||||
options = getData('userOptions'),
|
||||
value,
|
||||
text;
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
value = $a.attr('data-rating-value');
|
||||
text = $a.attr('data-rating-text');
|
||||
|
||||
// is current and deselectable?
|
||||
if (isDeselectable($a)) {
|
||||
value = getData('emptyRatingValue');
|
||||
text = getData('emptyRatingText');
|
||||
}
|
||||
|
||||
// remember selected rating
|
||||
setData('ratingValue', value);
|
||||
setData('ratingText', text);
|
||||
setData('ratingMade', true);
|
||||
|
||||
setSelectFieldValue(value);
|
||||
showSelectedRating(text);
|
||||
|
||||
applyStyle();
|
||||
|
||||
// onSelect callback
|
||||
options.onSelect.call(
|
||||
self,
|
||||
ratingValue(),
|
||||
ratingText(),
|
||||
event
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
// handle mouseenter events
|
||||
var attachMouseEnterHandler = function($elements) {
|
||||
$elements.on('mouseenter.barrating', function() {
|
||||
var $a = $(this);
|
||||
|
||||
resetStyle();
|
||||
|
||||
$a.addClass('br-active')[nextAllorPreviousAll()]()
|
||||
.addClass('br-active');
|
||||
|
||||
showSelectedRating($a.attr('data-rating-text'));
|
||||
});
|
||||
};
|
||||
|
||||
// handle mouseleave events
|
||||
var attachMouseLeaveHandler = function($elements) {
|
||||
self.$widget.on('mouseleave.barrating blur.barrating', function() {
|
||||
showSelectedRating();
|
||||
applyStyle();
|
||||
});
|
||||
};
|
||||
|
||||
// somewhat primitive way to remove 300ms click delay on touch devices
|
||||
// for a more advanced solution consider setting `fastClicks` option to false
|
||||
// and using a library such as fastclick (https://github.com/ftlabs/fastclick)
|
||||
var fastClicks = function($elements) {
|
||||
$elements.on('touchstart.barrating', function(event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
$(this).click();
|
||||
});
|
||||
};
|
||||
|
||||
// disable clicks
|
||||
var disableClicks = function($elements) {
|
||||
$elements.on('click.barrating', function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
};
|
||||
|
||||
var attachHandlers = function($elements) {
|
||||
// attach click event handler
|
||||
attachClickHandler($elements);
|
||||
|
||||
if (self.options.hoverState) {
|
||||
// attach mouseenter event handler
|
||||
attachMouseEnterHandler($elements);
|
||||
|
||||
// attach mouseleave event handler
|
||||
attachMouseLeaveHandler($elements);
|
||||
}
|
||||
};
|
||||
|
||||
var detachHandlers = function($elements) {
|
||||
// remove event handlers in the ".barrating" namespace
|
||||
$elements.off('.barrating');
|
||||
};
|
||||
|
||||
var setupHandlers = function(readonly) {
|
||||
var $elements = self.$widget.find('a');
|
||||
|
||||
if (getData('userOptions').fastClicks) {
|
||||
fastClicks($elements);
|
||||
}
|
||||
|
||||
if (readonly) {
|
||||
detachHandlers($elements);
|
||||
disableClicks($elements);
|
||||
} else {
|
||||
attachHandlers($elements);
|
||||
}
|
||||
};
|
||||
|
||||
this.show = function() {
|
||||
// run only once
|
||||
if (getData()) return;
|
||||
|
||||
// wrap element
|
||||
wrapElement();
|
||||
|
||||
// save data
|
||||
saveDataOnElement();
|
||||
|
||||
// build & append widget to the DOM
|
||||
self.$widget = buildWidget();
|
||||
self.$widget.insertAfter(self.$elem);
|
||||
|
||||
applyStyle();
|
||||
|
||||
showSelectedRating();
|
||||
|
||||
setupHandlers(self.options.readonly);
|
||||
|
||||
// hide the select field
|
||||
self.$elem.hide();
|
||||
};
|
||||
|
||||
this.readonly = function(state) {
|
||||
if (typeof state !== 'boolean' || getData('readOnly') == state) return;
|
||||
|
||||
setupHandlers(state);
|
||||
setData('readOnly', state);
|
||||
self.$widget.toggleClass('br-readonly');
|
||||
};
|
||||
|
||||
this.set = function(value) {
|
||||
var options = getData('userOptions');
|
||||
|
||||
if (self.$elem.find('option[value="' + value + '"]').length === 0) return;
|
||||
|
||||
// set data
|
||||
setData('ratingValue', value);
|
||||
setData('ratingText', self.$elem.find('option[value="' + value + '"]').text());
|
||||
setData('ratingMade', true);
|
||||
|
||||
setSelectFieldValue(ratingValue());
|
||||
showSelectedRating(ratingText());
|
||||
|
||||
applyStyle();
|
||||
|
||||
// onSelect callback
|
||||
if (!options.silent) {
|
||||
options.onSelect.call(
|
||||
this,
|
||||
ratingValue(),
|
||||
ratingText()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
this.clear = function() {
|
||||
var options = getData('userOptions');
|
||||
|
||||
// restore original data
|
||||
setData('ratingValue', getData('originalRatingValue'));
|
||||
setData('ratingText', getData('originalRatingText'));
|
||||
setData('ratingMade', false);
|
||||
|
||||
resetSelectField();
|
||||
showSelectedRating(ratingText());
|
||||
|
||||
applyStyle();
|
||||
|
||||
// onClear callback
|
||||
options.onClear.call(
|
||||
this,
|
||||
ratingValue(),
|
||||
ratingText()
|
||||
);
|
||||
};
|
||||
|
||||
this.destroy = function() {
|
||||
var value = ratingValue();
|
||||
var text = ratingText();
|
||||
var options = getData('userOptions');
|
||||
|
||||
// detach handlers
|
||||
detachHandlers(self.$widget.find('a'));
|
||||
|
||||
// remove widget
|
||||
self.$widget.remove();
|
||||
|
||||
// remove data
|
||||
removeDataOnElement();
|
||||
|
||||
// unwrap the element
|
||||
unwrapElement();
|
||||
|
||||
// show the element
|
||||
self.$elem.show();
|
||||
|
||||
// onDestroy callback
|
||||
options.onDestroy.call(
|
||||
this,
|
||||
value,
|
||||
text
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
BarRating.prototype.init = function (options, elem) {
|
||||
this.$elem = $(elem);
|
||||
this.options = $.extend({}, $.fn.barrating.defaults, options);
|
||||
|
||||
return this.options;
|
||||
};
|
||||
|
||||
return BarRating;
|
||||
})();
|
||||
|
||||
$.fn.barrating = function (method, options) {
|
||||
return this.each(function () {
|
||||
var plugin = new BarRating();
|
||||
|
||||
// plugin works with select fields
|
||||
if (!$(this).is('select')) {
|
||||
$.error('Sorry, this plugin only works with select fields.');
|
||||
}
|
||||
|
||||
// method supplied
|
||||
if (plugin.hasOwnProperty(method)) {
|
||||
plugin.init(options, this);
|
||||
if (method === 'show') {
|
||||
return plugin.show(options);
|
||||
} else {
|
||||
// plugin exists?
|
||||
if (plugin.$elem.data('barrating')) {
|
||||
plugin.$widget = $(this).next('.br-widget');
|
||||
return plugin[method](options);
|
||||
}
|
||||
}
|
||||
|
||||
// no method supplied or only options supplied
|
||||
} else if (typeof method === 'object' || !method) {
|
||||
options = method;
|
||||
plugin.init(options, this);
|
||||
return plugin.show();
|
||||
|
||||
} else {
|
||||
$.error('Method ' + method + ' does not exist on jQuery.barrating');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.barrating.defaults = {
|
||||
theme:'',
|
||||
initialRating:null, // initial rating
|
||||
allowEmpty:null, // allow empty ratings?
|
||||
emptyValue:'', // this is the expected value of the empty rating
|
||||
showValues:false, // display rating values on the bars?
|
||||
showSelectedRating:true, // append a div with a rating to the widget?
|
||||
deselectable:true, // allow to deselect ratings?
|
||||
reverse:false, // reverse the rating?
|
||||
readonly:false, // make the rating ready-only?
|
||||
fastClicks:true, // remove 300ms click delay on touch devices?
|
||||
hoverState:true, // change state on hover?
|
||||
silent:false, // supress callbacks when controlling ratings programatically
|
||||
triggerChange:true, // trigger change event when ratings are set or reset
|
||||
onSelect:function (value, text, event) {
|
||||
}, // callback fired when a rating is selected
|
||||
onClear:function (value, text) {
|
||||
}, // callback fired when a rating is cleared
|
||||
onDestroy:function (value, text) {
|
||||
} // callback fired when a widget is destroyed
|
||||
};
|
||||
|
||||
$.fn.barrating.BarRating = BarRating;
|
||||
|
||||
}));
|
2
msd2/myoos/js/plugins/bar-rating/jquery.barrating.min.js
vendored
Normal file
2
msd2/myoos/js/plugins/bar-rating/jquery.barrating.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
235
msd2/myoos/js/plugins/image-zoom/jquery.zoom.js
Normal file
235
msd2/myoos/js/plugins/image-zoom/jquery.zoom.js
Normal file
@ -0,0 +1,235 @@
|
||||
/*!
|
||||
Zoom 1.7.20
|
||||
license: MIT
|
||||
http://www.jacklmoore.com/zoom
|
||||
*/
|
||||
(function ($) {
|
||||
var defaults = {
|
||||
url: false,
|
||||
callback: false,
|
||||
target: false,
|
||||
duration: 120,
|
||||
on: 'mouseover', // other options: grab, click, toggle
|
||||
touch: true, // enables a touch fallback
|
||||
onZoomIn: false,
|
||||
onZoomOut: false,
|
||||
magnify: 1
|
||||
};
|
||||
|
||||
// Core Zoom Logic, independent of event listeners.
|
||||
$.zoom = function(target, source, img, magnify) {
|
||||
var targetHeight,
|
||||
targetWidth,
|
||||
sourceHeight,
|
||||
sourceWidth,
|
||||
xRatio,
|
||||
yRatio,
|
||||
offset,
|
||||
$target = $(target),
|
||||
position = $target.css('position'),
|
||||
$source = $(source);
|
||||
|
||||
// The parent element needs positioning so that the zoomed element can be correctly positioned within.
|
||||
target.style.position = /(absolute|fixed)/.test(position) ? position : 'relative';
|
||||
target.style.overflow = 'hidden';
|
||||
img.style.width = img.style.height = '';
|
||||
|
||||
$(img)
|
||||
.addClass('zoomImg')
|
||||
.css({
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
left: 0,
|
||||
opacity: 0,
|
||||
width: img.width * magnify,
|
||||
height: img.height * magnify,
|
||||
border: 'none',
|
||||
maxWidth: 'none',
|
||||
maxHeight: 'none'
|
||||
})
|
||||
.appendTo(target);
|
||||
|
||||
return {
|
||||
init: function() {
|
||||
targetWidth = $target.outerWidth();
|
||||
targetHeight = $target.outerHeight();
|
||||
|
||||
if (source === target) {
|
||||
sourceWidth = targetWidth;
|
||||
sourceHeight = targetHeight;
|
||||
} else {
|
||||
sourceWidth = $source.outerWidth();
|
||||
sourceHeight = $source.outerHeight();
|
||||
}
|
||||
|
||||
xRatio = (img.width - targetWidth) / sourceWidth;
|
||||
yRatio = (img.height - targetHeight) / sourceHeight;
|
||||
|
||||
offset = $source.offset();
|
||||
},
|
||||
move: function (e) {
|
||||
var left = (e.pageX - offset.left),
|
||||
top = (e.pageY - offset.top);
|
||||
|
||||
top = Math.max(Math.min(top, sourceHeight), 0);
|
||||
left = Math.max(Math.min(left, sourceWidth), 0);
|
||||
|
||||
img.style.left = (left * -xRatio) + 'px';
|
||||
img.style.top = (top * -yRatio) + 'px';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
$.fn.zoom = function (options) {
|
||||
return this.each(function () {
|
||||
var
|
||||
settings = $.extend({}, defaults, options || {}),
|
||||
//target will display the zoomed image
|
||||
target = settings.target && $(settings.target)[0] || this,
|
||||
//source will provide zoom location info (thumbnail)
|
||||
source = this,
|
||||
$source = $(source),
|
||||
img = document.createElement('img'),
|
||||
$img = $(img),
|
||||
mousemove = 'mousemove.zoom',
|
||||
clicked = false,
|
||||
touched = false;
|
||||
|
||||
// If a url wasn't specified, look for an image element.
|
||||
if (!settings.url) {
|
||||
var srcElement = source.querySelector('img');
|
||||
if (srcElement) {
|
||||
settings.url = srcElement.getAttribute('data-src') || srcElement.currentSrc || srcElement.src;
|
||||
}
|
||||
if (!settings.url) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$source.one('zoom.destroy', function(position, overflow){
|
||||
$source.off(".zoom");
|
||||
target.style.position = position;
|
||||
target.style.overflow = overflow;
|
||||
img.onload = null;
|
||||
$img.remove();
|
||||
}.bind(this, target.style.position, target.style.overflow));
|
||||
|
||||
img.onload = function () {
|
||||
var zoom = $.zoom(target, source, img, settings.magnify);
|
||||
|
||||
function start(e) {
|
||||
zoom.init();
|
||||
zoom.move(e);
|
||||
|
||||
// Skip the fade-in for IE8 and lower since it chokes on fading-in
|
||||
// and changing position based on mousemovement at the same time.
|
||||
$img.stop()
|
||||
.fadeTo($.support.opacity ? settings.duration : 0, 1, $.isFunction(settings.onZoomIn) ? settings.onZoomIn.call(img) : false);
|
||||
}
|
||||
|
||||
function stop() {
|
||||
$img.stop()
|
||||
.fadeTo(settings.duration, 0, $.isFunction(settings.onZoomOut) ? settings.onZoomOut.call(img) : false);
|
||||
}
|
||||
|
||||
// Mouse events
|
||||
if (settings.on === 'grab') {
|
||||
$source
|
||||
.on('mousedown.zoom',
|
||||
function (e) {
|
||||
if (e.which === 1) {
|
||||
$(document).one('mouseup.zoom',
|
||||
function () {
|
||||
stop();
|
||||
|
||||
$(document).off(mousemove, zoom.move);
|
||||
}
|
||||
);
|
||||
|
||||
start(e);
|
||||
|
||||
$(document).on(mousemove, zoom.move);
|
||||
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
);
|
||||
} else if (settings.on === 'click') {
|
||||
$source.on('click.zoom',
|
||||
function (e) {
|
||||
if (clicked) {
|
||||
// bubble the event up to the document to trigger the unbind.
|
||||
return;
|
||||
} else {
|
||||
clicked = true;
|
||||
start(e);
|
||||
$(document).on(mousemove, zoom.move);
|
||||
$(document).one('click.zoom',
|
||||
function () {
|
||||
stop();
|
||||
clicked = false;
|
||||
$(document).off(mousemove, zoom.move);
|
||||
}
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
);
|
||||
} else if (settings.on === 'toggle') {
|
||||
$source.on('click.zoom',
|
||||
function (e) {
|
||||
if (clicked) {
|
||||
stop();
|
||||
} else {
|
||||
start(e);
|
||||
}
|
||||
clicked = !clicked;
|
||||
}
|
||||
);
|
||||
} else if (settings.on === 'mouseover') {
|
||||
zoom.init(); // Preemptively call init because IE7 will fire the mousemove handler before the hover handler.
|
||||
|
||||
$source
|
||||
.on('mouseenter.zoom', start)
|
||||
.on('mouseleave.zoom', stop)
|
||||
.on(mousemove, zoom.move);
|
||||
}
|
||||
|
||||
// Touch fallback
|
||||
if (settings.touch) {
|
||||
$source
|
||||
.on('touchstart.zoom', function (e) {
|
||||
e.preventDefault();
|
||||
if (touched) {
|
||||
touched = false;
|
||||
stop();
|
||||
} else {
|
||||
touched = true;
|
||||
start( e.originalEvent.touches[0] || e.originalEvent.changedTouches[0] );
|
||||
}
|
||||
})
|
||||
.on('touchmove.zoom', function (e) {
|
||||
e.preventDefault();
|
||||
zoom.move( e.originalEvent.touches[0] || e.originalEvent.changedTouches[0] );
|
||||
})
|
||||
.on('touchend.zoom', function (e) {
|
||||
e.preventDefault();
|
||||
if (touched) {
|
||||
touched = false;
|
||||
stop();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($.isFunction(settings.callback)) {
|
||||
settings.callback.call(img);
|
||||
}
|
||||
};
|
||||
|
||||
img.setAttribute('role', 'presentation');
|
||||
img.src = settings.url;
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.zoom.defaults = defaults;
|
||||
}(window.jQuery));
|
6
msd2/myoos/js/plugins/image-zoom/jquery.zoom.min.js
vendored
Normal file
6
msd2/myoos/js/plugins/image-zoom/jquery.zoom.min.js
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
/*!
|
||||
Zoom 1.7.20
|
||||
license: MIT
|
||||
http://www.jacklmoore.com/zoom
|
||||
*/
|
||||
(function(o){var t={url:!1,callback:!1,target:!1,duration:120,on:"mouseover",touch:!0,onZoomIn:!1,onZoomOut:!1,magnify:1};o.zoom=function(t,n,e,i){var u,c,r,a,m,l,s,f=o(t),h=f.css("position"),d=o(n);return t.style.position=/(absolute|fixed)/.test(h)?h:"relative",t.style.overflow="hidden",e.style.width=e.style.height="",o(e).addClass("zoomImg").css({position:"absolute",top:0,left:0,opacity:0,width:e.width*i,height:e.height*i,border:"none",maxWidth:"none",maxHeight:"none"}).appendTo(t),{init:function(){c=f.outerWidth(),u=f.outerHeight(),n===t?(a=c,r=u):(a=d.outerWidth(),r=d.outerHeight()),m=(e.width-c)/a,l=(e.height-u)/r,s=d.offset()},move:function(o){var t=o.pageX-s.left,n=o.pageY-s.top;n=Math.max(Math.min(n,r),0),t=Math.max(Math.min(t,a),0),e.style.left=t*-m+"px",e.style.top=n*-l+"px"}}},o.fn.zoom=function(n){return this.each(function(){var e=o.extend({},t,n||{}),i=e.target&&o(e.target)[0]||this,u=this,c=o(u),r=document.createElement("img"),a=o(r),m="mousemove.zoom",l=!1,s=!1;if(!e.url){var f=u.querySelector("img");if(f&&(e.url=f.getAttribute("data-src")||f.currentSrc||f.src),!e.url)return}c.one("zoom.destroy",function(o,t){c.off(".zoom"),i.style.position=o,i.style.overflow=t,r.onload=null,a.remove()}.bind(this,i.style.position,i.style.overflow)),r.onload=function(){function t(t){f.init(),f.move(t),a.stop().fadeTo(o.support.opacity?e.duration:0,1,o.isFunction(e.onZoomIn)?e.onZoomIn.call(r):!1)}function n(){a.stop().fadeTo(e.duration,0,o.isFunction(e.onZoomOut)?e.onZoomOut.call(r):!1)}var f=o.zoom(i,u,r,e.magnify);"grab"===e.on?c.on("mousedown.zoom",function(e){1===e.which&&(o(document).one("mouseup.zoom",function(){n(),o(document).off(m,f.move)}),t(e),o(document).on(m,f.move),e.preventDefault())}):"click"===e.on?c.on("click.zoom",function(e){return l?void 0:(l=!0,t(e),o(document).on(m,f.move),o(document).one("click.zoom",function(){n(),l=!1,o(document).off(m,f.move)}),!1)}):"toggle"===e.on?c.on("click.zoom",function(o){l?n():t(o),l=!l}):"mouseover"===e.on&&(f.init(),c.on("mouseenter.zoom",t).on("mouseleave.zoom",n).on(m,f.move)),e.touch&&c.on("touchstart.zoom",function(o){o.preventDefault(),s?(s=!1,n()):(s=!0,t(o.originalEvent.touches[0]||o.originalEvent.changedTouches[0]))}).on("touchmove.zoom",function(o){o.preventDefault(),f.move(o.originalEvent.touches[0]||o.originalEvent.changedTouches[0])}).on("touchend.zoom",function(o){o.preventDefault(),s&&(s=!1,n())}),o.isFunction(e.callback)&&e.callback.call(r)},r.setAttribute("role","presentation"),r.src=e.url})},o.fn.zoom.defaults=t})(window.jQuery);
|
98
msd2/myoos/js/plugins/image-zoom/readme.md
Normal file
98
msd2/myoos/js/plugins/image-zoom/readme.md
Normal file
@ -0,0 +1,98 @@
|
||||
## About Zoom
|
||||
|
||||
A small jQuery plugin for zooming images on mouseover or mousedown. See the [project page](http://jacklmoore.com/zoom/) for documentation and a demonstration. Released under the [MIT license](http://www.opensource.org/licenses/mit-license.php).
|
||||
|
||||
To compile the .min.js file, run: `uglifyjs --comments '/license:/' < jquery.zoom.js > jquery.zoom.min.js`
|
||||
|
||||
## Changelog:
|
||||
|
||||
##### v1.7.20 - 2017/4/25
|
||||
* Replaced alt and aria-hidden with role attribute. Resolves #121
|
||||
|
||||
##### v1.7.19 - 2017/4/20
|
||||
* Added alt and aria-hidden attributes to the zoom layer img element. Merged #121
|
||||
|
||||
##### v1.7.18 - 2016/9/9
|
||||
* Fixed regression from 1.7.16 that occurred when the target option was passed a selector. Fixes #113
|
||||
|
||||
##### v1.7.17 - 2016/9/7
|
||||
* Detect src using element.currentSrc to support srcset. Fixes #82
|
||||
|
||||
##### v1.7.16 - 2016/9/7
|
||||
* Cancelled the onload event when calling destroy. Fixes #83
|
||||
|
||||
##### v1.7.15 - 2016/2/8
|
||||
* Added touchend event, might fix #97 #75 #62. Merges #100.
|
||||
|
||||
##### v1.7.14 - 2015/3/18
|
||||
* Fixes bug with passing the `target` property a selector, rather than a DOM node. Merges #73.
|
||||
|
||||
##### v1.7.13 - 2014/4/29
|
||||
* Destroy event does a better job of reseting back to the original state.
|
||||
|
||||
##### v1.7.12 - 2014/2/11
|
||||
* Set zoomed image's maxHeight to none, just in case a maxHeight has been defined for images in the CSS.
|
||||
|
||||
##### v1.7.11 - 2013/11/12
|
||||
* Added magnify property to allow scaling of the zoomed image.
|
||||
|
||||
##### v1.7.10 - 2013/10/16
|
||||
* Fixed bug relating to the size of the target element when using the target property (Fixes #35)
|
||||
|
||||
##### v1.7.9 - 2013/10/16
|
||||
* Added simple fallback for touch events (Fixes #37 #39)
|
||||
* Renamed minified file to jquery.zoom.min.js to match jQuery's convention.
|
||||
|
||||
##### v1.7.8 - 2013/7/30
|
||||
* Will use data-src attribute if present before checking for the presence of an src attribute.
|
||||
|
||||
##### v1.7.7 - 2013/7/14
|
||||
* Restricted grab to just the left-mouse-button on mousedown
|
||||
|
||||
##### v1.7.6 - 2013/6/24
|
||||
* Fixed misnamed onZoomOut callback
|
||||
|
||||
##### v1.7.5 - 2013/6/19
|
||||
* Fixed a bug with absolutely or fixed position target elements
|
||||
* Set the value of `this` to be zoom-image element for the onZoomIn and onZoomOut callbacks
|
||||
|
||||
##### v1.7.4 - 2013/6/18
|
||||
* Namespaced events to assist unbinding events.
|
||||
* Added destroy event to unbind zoom events & remove created img element. Example:
|
||||
$('.example').trigger('zoom.destroy');
|
||||
* Added onZoomIn and onZoomOut callbacks
|
||||
|
||||
##### v1.7.3 - 2013/6/10
|
||||
* Fixing mistake made in previous commit
|
||||
|
||||
##### v1.7.2 - 2013/6/6
|
||||
* Replaced new Image() with document.createElement('img') to avoid a potential bug in Chrome 27.
|
||||
|
||||
##### v1.7.1 - 2013/3/12
|
||||
* Replaced jQuery shorthand methods with on() in anticipation of jQuery 2.0
|
||||
|
||||
##### v1.7.0 - 2013/1/31
|
||||
* Added 'toggle' behavior to zoom in/out on click. Example: $('#example').zoom({ on:'toggle' });
|
||||
* Removed the icon property in favor of just using CSS.
|
||||
|
||||
##### v1.6.0 - 2013/1/22
|
||||
* Created $.zoom which contains the positioning logic, so that users can write custom controls or event handling.
|
||||
|
||||
##### v1.5.0 - 2012/11/19
|
||||
* Added 'target' property for specifying the element that displays the zoomed image.
|
||||
|
||||
##### v1.4.0 - 2012/9/29
|
||||
* Changed API & added option to activate on click.
|
||||
|
||||
##### v1.3.0 - 2011/12/21
|
||||
* Added 'callback' property that will execute a callback function once the image has loaded.
|
||||
* Fixed a bug relating to the 'grab' property
|
||||
|
||||
##### v1.2.0 - 2011/11/15
|
||||
* Fixed a positioning bug
|
||||
|
||||
##### v1.1.0 - 2011/11/15
|
||||
* Added 'grab' property
|
||||
|
||||
##### v1.0.0 - 2011/11/11
|
||||
* First release
|
0
msd2/myoos/js/plugins/index.html
Normal file
0
msd2/myoos/js/plugins/index.html
Normal file
1860
msd2/myoos/js/plugins/magnific-popup/jquery.magnific-popup.js
Normal file
1860
msd2/myoos/js/plugins/magnific-popup/jquery.magnific-popup.js
Normal file
File diff suppressed because it is too large
Load Diff
4
msd2/myoos/js/plugins/magnific-popup/jquery.magnific-popup.min.js
vendored
Normal file
4
msd2/myoos/js/plugins/magnific-popup/jquery.magnific-popup.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
351
msd2/myoos/js/plugins/magnific-popup/magnific-popup.css
Normal file
351
msd2/myoos/js/plugins/magnific-popup/magnific-popup.css
Normal file
@ -0,0 +1,351 @@
|
||||
/* Magnific Popup CSS */
|
||||
.mfp-bg {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1042;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
background: #0b0b0b;
|
||||
opacity: 0.8; }
|
||||
|
||||
.mfp-wrap {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1043;
|
||||
position: fixed;
|
||||
outline: none !important;
|
||||
-webkit-backface-visibility: hidden; }
|
||||
|
||||
.mfp-container {
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 0 8px;
|
||||
box-sizing: border-box; }
|
||||
|
||||
.mfp-container:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
vertical-align: middle; }
|
||||
|
||||
.mfp-align-top .mfp-container:before {
|
||||
display: none; }
|
||||
|
||||
.mfp-content {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
z-index: 1045; }
|
||||
|
||||
.mfp-inline-holder .mfp-content,
|
||||
.mfp-ajax-holder .mfp-content {
|
||||
width: 100%;
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-ajax-cur {
|
||||
cursor: progress; }
|
||||
|
||||
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
|
||||
cursor: -moz-zoom-out;
|
||||
cursor: -webkit-zoom-out;
|
||||
cursor: zoom-out; }
|
||||
|
||||
.mfp-zoom {
|
||||
cursor: pointer;
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in; }
|
||||
|
||||
.mfp-auto-cursor .mfp-content {
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-close,
|
||||
.mfp-arrow,
|
||||
.mfp-preloader,
|
||||
.mfp-counter {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.mfp-loading.mfp-figure {
|
||||
display: none; }
|
||||
|
||||
.mfp-hide {
|
||||
display: none !important; }
|
||||
|
||||
.mfp-preloader {
|
||||
color: #CCC;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
margin-top: -0.8em;
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
z-index: 1044; }
|
||||
.mfp-preloader a {
|
||||
color: #CCC; }
|
||||
.mfp-preloader a:hover {
|
||||
color: #FFF; }
|
||||
|
||||
.mfp-s-ready .mfp-preloader {
|
||||
display: none; }
|
||||
|
||||
.mfp-s-error .mfp-content {
|
||||
display: none; }
|
||||
|
||||
button.mfp-close,
|
||||
button.mfp-arrow {
|
||||
overflow: visible;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
z-index: 1046;
|
||||
box-shadow: none;
|
||||
touch-action: manipulation; }
|
||||
|
||||
button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0; }
|
||||
|
||||
.mfp-close {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
opacity: 0.65;
|
||||
padding: 0 0 18px 10px;
|
||||
color: #FFF;
|
||||
font-style: normal;
|
||||
font-size: 28px;
|
||||
font-family: Arial, Baskerville, monospace; }
|
||||
.mfp-close:hover,
|
||||
.mfp-close:focus {
|
||||
opacity: 1; }
|
||||
.mfp-close:active {
|
||||
top: 1px; }
|
||||
|
||||
.mfp-close-btn-in .mfp-close {
|
||||
color: #333; }
|
||||
|
||||
.mfp-image-holder .mfp-close,
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
color: #FFF;
|
||||
right: -6px;
|
||||
text-align: right;
|
||||
padding-right: 6px;
|
||||
width: 100%; }
|
||||
|
||||
.mfp-counter {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #CCC;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
white-space: nowrap; }
|
||||
|
||||
.mfp-arrow {
|
||||
position: absolute;
|
||||
opacity: 0.65;
|
||||
margin: 0;
|
||||
top: 50%;
|
||||
margin-top: -55px;
|
||||
padding: 0;
|
||||
width: 90px;
|
||||
height: 110px;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
.mfp-arrow:active {
|
||||
margin-top: -54px; }
|
||||
.mfp-arrow:hover,
|
||||
.mfp-arrow:focus {
|
||||
opacity: 1; }
|
||||
.mfp-arrow:before,
|
||||
.mfp-arrow:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
margin-top: 35px;
|
||||
margin-left: 35px;
|
||||
border: medium inset transparent; }
|
||||
.mfp-arrow:after {
|
||||
border-top-width: 13px;
|
||||
border-bottom-width: 13px;
|
||||
top: 8px; }
|
||||
.mfp-arrow:before {
|
||||
border-top-width: 21px;
|
||||
border-bottom-width: 21px;
|
||||
opacity: 0.7; }
|
||||
|
||||
.mfp-arrow-left {
|
||||
left: 0; }
|
||||
.mfp-arrow-left:after {
|
||||
border-right: 17px solid #FFF;
|
||||
margin-left: 31px; }
|
||||
.mfp-arrow-left:before {
|
||||
margin-left: 25px;
|
||||
border-right: 27px solid #3F3F3F; }
|
||||
|
||||
.mfp-arrow-right {
|
||||
right: 0; }
|
||||
.mfp-arrow-right:after {
|
||||
border-left: 17px solid #FFF;
|
||||
margin-left: 39px; }
|
||||
.mfp-arrow-right:before {
|
||||
border-left: 27px solid #3F3F3F; }
|
||||
|
||||
.mfp-iframe-holder {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px; }
|
||||
.mfp-iframe-holder .mfp-content {
|
||||
line-height: 0;
|
||||
width: 100%;
|
||||
max-width: 900px; }
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
top: -40px; }
|
||||
|
||||
.mfp-iframe-scaler {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
padding-top: 56.25%; }
|
||||
.mfp-iframe-scaler iframe {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #000; }
|
||||
|
||||
/* Main image in popup */
|
||||
img.mfp-img {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
line-height: 0;
|
||||
box-sizing: border-box;
|
||||
padding: 40px 0 40px;
|
||||
margin: 0 auto; }
|
||||
|
||||
/* The shadow behind the image */
|
||||
.mfp-figure {
|
||||
line-height: 0; }
|
||||
.mfp-figure:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 40px;
|
||||
bottom: 40px;
|
||||
display: block;
|
||||
right: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #444; }
|
||||
.mfp-figure small {
|
||||
color: #BDBDBD;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px; }
|
||||
.mfp-figure figure {
|
||||
margin: 0; }
|
||||
|
||||
.mfp-bottom-bar {
|
||||
margin-top: -36px;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-title {
|
||||
text-align: left;
|
||||
line-height: 18px;
|
||||
color: #F3F3F3;
|
||||
word-wrap: break-word;
|
||||
padding-right: 36px; }
|
||||
|
||||
.mfp-image-holder .mfp-content {
|
||||
max-width: 100%; }
|
||||
|
||||
.mfp-gallery .mfp-image-holder .mfp-figure {
|
||||
cursor: pointer; }
|
||||
|
||||
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
|
||||
/**
|
||||
* Remove all paddings around the image on small screen
|
||||
*/
|
||||
.mfp-img-mobile .mfp-image-holder {
|
||||
padding-left: 0;
|
||||
padding-right: 0; }
|
||||
.mfp-img-mobile img.mfp-img {
|
||||
padding: 0; }
|
||||
.mfp-img-mobile .mfp-figure:after {
|
||||
top: 0;
|
||||
bottom: 0; }
|
||||
.mfp-img-mobile .mfp-figure small {
|
||||
display: inline;
|
||||
margin-left: 5px; }
|
||||
.mfp-img-mobile .mfp-bottom-bar {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
bottom: 0;
|
||||
margin: 0;
|
||||
top: auto;
|
||||
padding: 3px 5px;
|
||||
position: fixed;
|
||||
box-sizing: border-box; }
|
||||
.mfp-img-mobile .mfp-bottom-bar:empty {
|
||||
padding: 0; }
|
||||
.mfp-img-mobile .mfp-counter {
|
||||
right: 5px;
|
||||
top: 3px; }
|
||||
.mfp-img-mobile .mfp-close {
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
padding: 0; } }
|
||||
|
||||
@media all and (max-width: 900px) {
|
||||
.mfp-arrow {
|
||||
-webkit-transform: scale(0.75);
|
||||
transform: scale(0.75); }
|
||||
.mfp-arrow-left {
|
||||
-webkit-transform-origin: 0;
|
||||
transform-origin: 0; }
|
||||
.mfp-arrow-right {
|
||||
-webkit-transform-origin: 100%;
|
||||
transform-origin: 100%; }
|
||||
.mfp-container {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px; } }
|
BIN
msd2/myoos/js/plugins/owl-carousel/AjaxLoader.gif
Normal file
BIN
msd2/myoos/js/plugins/owl-carousel/AjaxLoader.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
msd2/myoos/js/plugins/owl-carousel/grabbing.png
Normal file
BIN
msd2/myoos/js/plugins/owl-carousel/grabbing.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 116 B |
235
msd2/myoos/js/plugins/owl-carousel/owl.carousel.css
Normal file
235
msd2/myoos/js/plugins/owl-carousel/owl.carousel.css
Normal file
@ -0,0 +1,235 @@
|
||||
/*
|
||||
* Core Owl Carousel CSS File
|
||||
* v1.3.3
|
||||
*/
|
||||
|
||||
/* clearfix */
|
||||
.owl-carousel .owl-wrapper:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
line-height: 0;
|
||||
height: 0;
|
||||
}
|
||||
/* display none until init */
|
||||
.owl-carousel{
|
||||
display: none;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
-ms-touch-action: pan-y;
|
||||
}
|
||||
.owl-carousel .owl-wrapper{
|
||||
display: none;
|
||||
position: relative;
|
||||
-webkit-transform: translate3d(0px, 0px, 0px);
|
||||
}
|
||||
.owl-carousel .owl-wrapper-outer{
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
z-index: 5;
|
||||
}
|
||||
.owl-carousel .owl-wrapper-outer.autoHeight{
|
||||
-webkit-transition: height 500ms ease-in-out;
|
||||
-moz-transition: height 500ms ease-in-out;
|
||||
-ms-transition: height 500ms ease-in-out;
|
||||
-o-transition: height 500ms ease-in-out;
|
||||
transition: height 500ms ease-in-out;
|
||||
}
|
||||
|
||||
.owl-carousel .owl-item{
|
||||
float: left;
|
||||
}
|
||||
.owl-controls .owl-page,
|
||||
.owl-controls .owl-buttons div{
|
||||
cursor: pointer;
|
||||
}
|
||||
.owl-controls {
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* mouse grab icon */
|
||||
.grabbing {
|
||||
cursor:url(grabbing.png) 8 8, move;
|
||||
}
|
||||
|
||||
/* fix */
|
||||
.owl-carousel .owl-wrapper,
|
||||
.owl-carousel .owl-item{
|
||||
-webkit-backface-visibility: hidden;
|
||||
-moz-backface-visibility: hidden;
|
||||
-ms-backface-visibility: hidden;
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
-moz-transform: translate3d(0,0,0);
|
||||
-ms-transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Owl Carousel CSS3 Transitions
|
||||
* v1.3.2
|
||||
*/
|
||||
|
||||
.owl-origin {
|
||||
-webkit-perspective: 1200px;
|
||||
-webkit-perspective-origin-x : 50%;
|
||||
-webkit-perspective-origin-y : 50%;
|
||||
-moz-perspective : 1200px;
|
||||
-moz-perspective-origin-x : 50%;
|
||||
-moz-perspective-origin-y : 50%;
|
||||
perspective : 1200px;
|
||||
}
|
||||
/* fade */
|
||||
.owl-fade-out {
|
||||
z-index: 10;
|
||||
-webkit-animation: fadeOut .7s both ease;
|
||||
-moz-animation: fadeOut .7s both ease;
|
||||
animation: fadeOut .7s both ease;
|
||||
}
|
||||
.owl-fade-in {
|
||||
-webkit-animation: fadeIn .7s both ease;
|
||||
-moz-animation: fadeIn .7s both ease;
|
||||
animation: fadeIn .7s both ease;
|
||||
}
|
||||
/* backSlide */
|
||||
.owl-backSlide-out {
|
||||
-webkit-animation: backSlideOut 1s both ease;
|
||||
-moz-animation: backSlideOut 1s both ease;
|
||||
animation: backSlideOut 1s both ease;
|
||||
}
|
||||
.owl-backSlide-in {
|
||||
-webkit-animation: backSlideIn 1s both ease;
|
||||
-moz-animation: backSlideIn 1s both ease;
|
||||
animation: backSlideIn 1s both ease;
|
||||
}
|
||||
/* goDown */
|
||||
.owl-goDown-out {
|
||||
-webkit-animation: scaleToFade .7s ease both;
|
||||
-moz-animation: scaleToFade .7s ease both;
|
||||
animation: scaleToFade .7s ease both;
|
||||
}
|
||||
.owl-goDown-in {
|
||||
-webkit-animation: goDown .6s ease both;
|
||||
-moz-animation: goDown .6s ease both;
|
||||
animation: goDown .6s ease both;
|
||||
}
|
||||
/* scaleUp */
|
||||
.owl-fadeUp-in {
|
||||
-webkit-animation: scaleUpFrom .5s ease both;
|
||||
-moz-animation: scaleUpFrom .5s ease both;
|
||||
animation: scaleUpFrom .5s ease both;
|
||||
}
|
||||
|
||||
.owl-fadeUp-out {
|
||||
-webkit-animation: scaleUpTo .5s ease both;
|
||||
-moz-animation: scaleUpTo .5s ease both;
|
||||
animation: scaleUpTo .5s ease both;
|
||||
}
|
||||
/* Keyframes */
|
||||
/*empty*/
|
||||
@-webkit-keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@-moz-keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@-webkit-keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@-moz-keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@-webkit-keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@-moz-keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@-webkit-keyframes backSlideOut {
|
||||
25% { opacity: .5; -webkit-transform: translateZ(-500px); }
|
||||
75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@-moz-keyframes backSlideOut {
|
||||
25% { opacity: .5; -moz-transform: translateZ(-500px); }
|
||||
75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@keyframes backSlideOut {
|
||||
25% { opacity: .5; transform: translateZ(-500px); }
|
||||
75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@-webkit-keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; -webkit-transform: translateZ(-500px); }
|
||||
100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@-moz-keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; -moz-transform: translateZ(-500px); }
|
||||
100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; transform: translateZ(-500px); }
|
||||
100% { opacity: 1; transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@-webkit-keyframes scaleToFade {
|
||||
to { opacity: 0; -webkit-transform: scale(.8); }
|
||||
}
|
||||
@-moz-keyframes scaleToFade {
|
||||
to { opacity: 0; -moz-transform: scale(.8); }
|
||||
}
|
||||
@keyframes scaleToFade {
|
||||
to { opacity: 0; transform: scale(.8); }
|
||||
}
|
||||
@-webkit-keyframes goDown {
|
||||
from { -webkit-transform: translateY(-100%); }
|
||||
}
|
||||
@-moz-keyframes goDown {
|
||||
from { -moz-transform: translateY(-100%); }
|
||||
}
|
||||
@keyframes goDown {
|
||||
from { transform: translateY(-100%); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes scaleUpFrom {
|
||||
from { opacity: 0; -webkit-transform: scale(1.5); }
|
||||
}
|
||||
@-moz-keyframes scaleUpFrom {
|
||||
from { opacity: 0; -moz-transform: scale(1.5); }
|
||||
}
|
||||
@keyframes scaleUpFrom {
|
||||
from { opacity: 0; transform: scale(1.5); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes scaleUpTo {
|
||||
to { opacity: 0; -webkit-transform: scale(1.5); }
|
||||
}
|
||||
@-moz-keyframes scaleUpTo {
|
||||
to { opacity: 0; -moz-transform: scale(1.5); }
|
||||
}
|
||||
@keyframes scaleUpTo {
|
||||
to { opacity: 0; transform: scale(1.5); }
|
||||
}
|
1512
msd2/myoos/js/plugins/owl-carousel/owl.carousel.js
Normal file
1512
msd2/myoos/js/plugins/owl-carousel/owl.carousel.js
Normal file
File diff suppressed because it is too large
Load Diff
1
msd2/myoos/js/plugins/owl-carousel/owl.carousel.min.js
vendored
Normal file
1
msd2/myoos/js/plugins/owl-carousel/owl.carousel.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
235
msd2/myoos/js/plugins/owl-carousel/owl.pack.css
Normal file
235
msd2/myoos/js/plugins/owl-carousel/owl.pack.css
Normal file
@ -0,0 +1,235 @@
|
||||
/*
|
||||
* Core Owl Carousel CSS File
|
||||
* v1.3.3
|
||||
*/
|
||||
|
||||
/* clearfix */
|
||||
.owl-carousel .owl-wrapper:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
line-height: 0;
|
||||
height: 0;
|
||||
}
|
||||
/* display none until init */
|
||||
.owl-carousel{
|
||||
display: none;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
-ms-touch-action: pan-y;
|
||||
}
|
||||
.owl-carousel .owl-wrapper{
|
||||
display: none;
|
||||
position: relative;
|
||||
-webkit-transform: translate3d(0px, 0px, 0px);
|
||||
}
|
||||
.owl-carousel .owl-wrapper-outer{
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
z-index: 5;
|
||||
}
|
||||
.owl-carousel .owl-wrapper-outer.autoHeight{
|
||||
-webkit-transition: height 500ms ease-in-out;
|
||||
-moz-transition: height 500ms ease-in-out;
|
||||
-ms-transition: height 500ms ease-in-out;
|
||||
-o-transition: height 500ms ease-in-out;
|
||||
transition: height 500ms ease-in-out;
|
||||
}
|
||||
|
||||
.owl-carousel .owl-item{
|
||||
float: left;
|
||||
}
|
||||
.owl-controls .owl-page,
|
||||
.owl-controls .owl-buttons div{
|
||||
cursor: pointer;
|
||||
}
|
||||
.owl-controls {
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* mouse grab icon */
|
||||
.grabbing {
|
||||
cursor:url(grabbing.png) 8 8, move;
|
||||
}
|
||||
|
||||
/* fix */
|
||||
.owl-carousel .owl-wrapper,
|
||||
.owl-carousel .owl-item{
|
||||
-webkit-backface-visibility: hidden;
|
||||
-moz-backface-visibility: hidden;
|
||||
-ms-backface-visibility: hidden;
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
-moz-transform: translate3d(0,0,0);
|
||||
-ms-transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Owl Carousel CSS3 Transitions
|
||||
* v1.3.2
|
||||
*/
|
||||
|
||||
.owl-origin {
|
||||
-webkit-perspective: 1200px;
|
||||
-webkit-perspective-origin-x : 50%;
|
||||
-webkit-perspective-origin-y : 50%;
|
||||
-moz-perspective : 1200px;
|
||||
-moz-perspective-origin-x : 50%;
|
||||
-moz-perspective-origin-y : 50%;
|
||||
perspective : 1200px;
|
||||
}
|
||||
/* fade */
|
||||
.owl-fade-out {
|
||||
z-index: 10;
|
||||
-webkit-animation: fadeOut .7s both ease;
|
||||
-moz-animation: fadeOut .7s both ease;
|
||||
animation: fadeOut .7s both ease;
|
||||
}
|
||||
.owl-fade-in {
|
||||
-webkit-animation: fadeIn .7s both ease;
|
||||
-moz-animation: fadeIn .7s both ease;
|
||||
animation: fadeIn .7s both ease;
|
||||
}
|
||||
/* backSlide */
|
||||
.owl-backSlide-out {
|
||||
-webkit-animation: backSlideOut 1s both ease;
|
||||
-moz-animation: backSlideOut 1s both ease;
|
||||
animation: backSlideOut 1s both ease;
|
||||
}
|
||||
.owl-backSlide-in {
|
||||
-webkit-animation: backSlideIn 1s both ease;
|
||||
-moz-animation: backSlideIn 1s both ease;
|
||||
animation: backSlideIn 1s both ease;
|
||||
}
|
||||
/* goDown */
|
||||
.owl-goDown-out {
|
||||
-webkit-animation: scaleToFade .7s ease both;
|
||||
-moz-animation: scaleToFade .7s ease both;
|
||||
animation: scaleToFade .7s ease both;
|
||||
}
|
||||
.owl-goDown-in {
|
||||
-webkit-animation: goDown .6s ease both;
|
||||
-moz-animation: goDown .6s ease both;
|
||||
animation: goDown .6s ease both;
|
||||
}
|
||||
/* scaleUp */
|
||||
.owl-fadeUp-in {
|
||||
-webkit-animation: scaleUpFrom .5s ease both;
|
||||
-moz-animation: scaleUpFrom .5s ease both;
|
||||
animation: scaleUpFrom .5s ease both;
|
||||
}
|
||||
|
||||
.owl-fadeUp-out {
|
||||
-webkit-animation: scaleUpTo .5s ease both;
|
||||
-moz-animation: scaleUpTo .5s ease both;
|
||||
animation: scaleUpTo .5s ease both;
|
||||
}
|
||||
/* Keyframes */
|
||||
/*empty*/
|
||||
@-webkit-keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@-moz-keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@-webkit-keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@-moz-keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@-webkit-keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@-moz-keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@-webkit-keyframes backSlideOut {
|
||||
25% { opacity: .5; -webkit-transform: translateZ(-500px); }
|
||||
75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@-moz-keyframes backSlideOut {
|
||||
25% { opacity: .5; -moz-transform: translateZ(-500px); }
|
||||
75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@keyframes backSlideOut {
|
||||
25% { opacity: .5; transform: translateZ(-500px); }
|
||||
75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@-webkit-keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; -webkit-transform: translateZ(-500px); }
|
||||
100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@-moz-keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; -moz-transform: translateZ(-500px); }
|
||||
100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; transform: translateZ(-500px); }
|
||||
100% { opacity: 1; transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@-webkit-keyframes scaleToFade {
|
||||
to { opacity: 0; -webkit-transform: scale(.8); }
|
||||
}
|
||||
@-moz-keyframes scaleToFade {
|
||||
to { opacity: 0; -moz-transform: scale(.8); }
|
||||
}
|
||||
@keyframes scaleToFade {
|
||||
to { opacity: 0; transform: scale(.8); }
|
||||
}
|
||||
@-webkit-keyframes goDown {
|
||||
from { -webkit-transform: translateY(-100%); }
|
||||
}
|
||||
@-moz-keyframes goDown {
|
||||
from { -moz-transform: translateY(-100%); }
|
||||
}
|
||||
@keyframes goDown {
|
||||
from { transform: translateY(-100%); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes scaleUpFrom {
|
||||
from { opacity: 0; -webkit-transform: scale(1.5); }
|
||||
}
|
||||
@-moz-keyframes scaleUpFrom {
|
||||
from { opacity: 0; -moz-transform: scale(1.5); }
|
||||
}
|
||||
@keyframes scaleUpFrom {
|
||||
from { opacity: 0; transform: scale(1.5); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes scaleUpTo {
|
||||
to { opacity: 0; -webkit-transform: scale(1.5); }
|
||||
}
|
||||
@-moz-keyframes scaleUpTo {
|
||||
to { opacity: 0; -moz-transform: scale(1.5); }
|
||||
}
|
||||
@keyframes scaleUpTo {
|
||||
to { opacity: 0; transform: scale(1.5); }
|
||||
}
|
79
msd2/myoos/js/plugins/owl-carousel/owl.theme.css
Normal file
79
msd2/myoos/js/plugins/owl-carousel/owl.theme.css
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Owl Carousel Owl Demo Theme
|
||||
* v1.3.2
|
||||
*/
|
||||
|
||||
.owl-theme .owl-controls{
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Styling Next and Prev buttons */
|
||||
|
||||
.owl-theme .owl-controls .owl-buttons div{
|
||||
color: #FFF;
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
*display: inline;/*IE7 life-saver */
|
||||
margin: 5px;
|
||||
padding: 3px 10px;
|
||||
font-size: 12px;
|
||||
-webkit-border-radius: 30px;
|
||||
-moz-border-radius: 30px;
|
||||
border-radius: 30px;
|
||||
background: #869791;
|
||||
filter: Alpha(Opacity=50);/*IE7 fix*/
|
||||
opacity: 0.5;
|
||||
}
|
||||
/* Clickable class fix problem with hover on touch devices */
|
||||
/* Use it for non-touch hover action */
|
||||
.owl-theme .owl-controls.clickable .owl-buttons div:hover{
|
||||
filter: Alpha(Opacity=100);/*IE7 fix*/
|
||||
opacity: 1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Styling Pagination*/
|
||||
|
||||
.owl-theme .owl-controls .owl-page{
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
*display: inline;/*IE7 life-saver */
|
||||
}
|
||||
.owl-theme .owl-controls .owl-page span{
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
margin: 5px 7px;
|
||||
filter: Alpha(Opacity=50);/*IE7 fix*/
|
||||
opacity: 0.5;
|
||||
-webkit-border-radius: 20px;
|
||||
-moz-border-radius: 20px;
|
||||
border-radius: 20px;
|
||||
background: #869791;
|
||||
}
|
||||
|
||||
.owl-theme .owl-controls .owl-page.active span,
|
||||
.owl-theme .owl-controls.clickable .owl-page:hover span{
|
||||
filter: Alpha(Opacity=100);/*IE7 fix*/
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* If PaginationNumbers is true */
|
||||
|
||||
.owl-theme .owl-controls .owl-page span.owl-numbers{
|
||||
height: auto;
|
||||
width: auto;
|
||||
color: #FFF;
|
||||
padding: 2px 10px;
|
||||
font-size: 12px;
|
||||
-webkit-border-radius: 30px;
|
||||
-moz-border-radius: 30px;
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
/* preloading images */
|
||||
.owl-item.loading{
|
||||
min-height: 150px;
|
||||
background: url(AjaxLoader.gif) no-repeat center center
|
||||
}
|
163
msd2/myoos/js/plugins/owl-carousel/owl.transitions.css
Normal file
163
msd2/myoos/js/plugins/owl-carousel/owl.transitions.css
Normal file
@ -0,0 +1,163 @@
|
||||
/*
|
||||
* Owl Carousel CSS3 Transitions
|
||||
* v1.3.2
|
||||
*/
|
||||
|
||||
.owl-origin {
|
||||
-webkit-perspective: 1200px;
|
||||
-webkit-perspective-origin-x : 50%;
|
||||
-webkit-perspective-origin-y : 50%;
|
||||
-moz-perspective : 1200px;
|
||||
-moz-perspective-origin-x : 50%;
|
||||
-moz-perspective-origin-y : 50%;
|
||||
perspective : 1200px;
|
||||
}
|
||||
/* fade */
|
||||
.owl-fade-out {
|
||||
z-index: 10;
|
||||
-webkit-animation: fadeOut .7s both ease;
|
||||
-moz-animation: fadeOut .7s both ease;
|
||||
animation: fadeOut .7s both ease;
|
||||
}
|
||||
.owl-fade-in {
|
||||
-webkit-animation: fadeIn .7s both ease;
|
||||
-moz-animation: fadeIn .7s both ease;
|
||||
animation: fadeIn .7s both ease;
|
||||
}
|
||||
/* backSlide */
|
||||
.owl-backSlide-out {
|
||||
-webkit-animation: backSlideOut 1s both ease;
|
||||
-moz-animation: backSlideOut 1s both ease;
|
||||
animation: backSlideOut 1s both ease;
|
||||
}
|
||||
.owl-backSlide-in {
|
||||
-webkit-animation: backSlideIn 1s both ease;
|
||||
-moz-animation: backSlideIn 1s both ease;
|
||||
animation: backSlideIn 1s both ease;
|
||||
}
|
||||
/* goDown */
|
||||
.owl-goDown-out {
|
||||
-webkit-animation: scaleToFade .7s ease both;
|
||||
-moz-animation: scaleToFade .7s ease both;
|
||||
animation: scaleToFade .7s ease both;
|
||||
}
|
||||
.owl-goDown-in {
|
||||
-webkit-animation: goDown .6s ease both;
|
||||
-moz-animation: goDown .6s ease both;
|
||||
animation: goDown .6s ease both;
|
||||
}
|
||||
/* scaleUp */
|
||||
.owl-fadeUp-in {
|
||||
-webkit-animation: scaleUpFrom .5s ease both;
|
||||
-moz-animation: scaleUpFrom .5s ease both;
|
||||
animation: scaleUpFrom .5s ease both;
|
||||
}
|
||||
|
||||
.owl-fadeUp-out {
|
||||
-webkit-animation: scaleUpTo .5s ease both;
|
||||
-moz-animation: scaleUpTo .5s ease both;
|
||||
animation: scaleUpTo .5s ease both;
|
||||
}
|
||||
/* Keyframes */
|
||||
/*empty*/
|
||||
@-webkit-keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@-moz-keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@keyframes empty {
|
||||
0% {opacity: 1}
|
||||
}
|
||||
@-webkit-keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@-moz-keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@keyframes fadeIn {
|
||||
0% { opacity:0; }
|
||||
100% { opacity:1; }
|
||||
}
|
||||
@-webkit-keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@-moz-keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@keyframes fadeOut {
|
||||
0% { opacity:1; }
|
||||
100% { opacity:0; }
|
||||
}
|
||||
@-webkit-keyframes backSlideOut {
|
||||
25% { opacity: .5; -webkit-transform: translateZ(-500px); }
|
||||
75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@-moz-keyframes backSlideOut {
|
||||
25% { opacity: .5; -moz-transform: translateZ(-500px); }
|
||||
75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@keyframes backSlideOut {
|
||||
25% { opacity: .5; transform: translateZ(-500px); }
|
||||
75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
|
||||
100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
|
||||
}
|
||||
@-webkit-keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; -webkit-transform: translateZ(-500px); }
|
||||
100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@-moz-keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; -moz-transform: translateZ(-500px); }
|
||||
100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@keyframes backSlideIn {
|
||||
0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
|
||||
75% { opacity: .5; transform: translateZ(-500px); }
|
||||
100% { opacity: 1; transform: translateZ(0) translateX(0); }
|
||||
}
|
||||
@-webkit-keyframes scaleToFade {
|
||||
to { opacity: 0; -webkit-transform: scale(.8); }
|
||||
}
|
||||
@-moz-keyframes scaleToFade {
|
||||
to { opacity: 0; -moz-transform: scale(.8); }
|
||||
}
|
||||
@keyframes scaleToFade {
|
||||
to { opacity: 0; transform: scale(.8); }
|
||||
}
|
||||
@-webkit-keyframes goDown {
|
||||
from { -webkit-transform: translateY(-100%); }
|
||||
}
|
||||
@-moz-keyframes goDown {
|
||||
from { -moz-transform: translateY(-100%); }
|
||||
}
|
||||
@keyframes goDown {
|
||||
from { transform: translateY(-100%); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes scaleUpFrom {
|
||||
from { opacity: 0; -webkit-transform: scale(1.5); }
|
||||
}
|
||||
@-moz-keyframes scaleUpFrom {
|
||||
from { opacity: 0; -moz-transform: scale(1.5); }
|
||||
}
|
||||
@keyframes scaleUpFrom {
|
||||
from { opacity: 0; transform: scale(1.5); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes scaleUpTo {
|
||||
to { opacity: 0; -webkit-transform: scale(1.5); }
|
||||
}
|
||||
@-moz-keyframes scaleUpTo {
|
||||
to { opacity: 0; -moz-transform: scale(1.5); }
|
||||
}
|
||||
@keyframes scaleUpTo {
|
||||
to { opacity: 0; transform: scale(1.5); }
|
||||
}
|
25
msd2/myoos/js/plugins/popper/LICENSE.md
Normal file
25
msd2/myoos/js/plugins/popper/LICENSE.md
Normal file
@ -0,0 +1,25 @@
|
||||
The MIT License (MIT)
|
||||
=====================
|
||||
|
||||
Copyright © 2016 Federico Zivolo and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the “Software”), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
216
msd2/myoos/js/plugins/popper/README.md
Normal file
216
msd2/myoos/js/plugins/popper/README.md
Normal file
@ -0,0 +1,216 @@
|
||||
<h1 align="center">Popper.js</h1>
|
||||
|
||||
<p align="center">
|
||||
<strong>A library used to position poppers in web applications.</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.org/FezVrasta/popper.js/branches" target="_blank"><img src="https://travis-ci.org/FezVrasta/popper.js.svg?branch=master" alt="Build Status"/></a>
|
||||
<img src="http://img.badgesize.io/https://unpkg.com/popper.js/dist/popper.min.js?compression=gzip" alt="Stable Release Size"/>
|
||||
<a href="https://www.bithound.io/github/FezVrasta/popper.js"><img src="https://www.bithound.io/github/FezVrasta/popper.js/badges/score.svg" alt="bitHound Overall Score"></a>
|
||||
<a href="https://codeclimate.com/github/FezVrasta/popper.js/coverage"><img src="https://codeclimate.com/github/FezVrasta/popper.js/badges/coverage.svg" alt="Istanbul Code Coverage"/></a>
|
||||
<a href="https://gitter.im/FezVrasta/popper.js" target="_blank"><img src="https://img.shields.io/gitter/room/nwjs/nw.js.svg" alt="Get support or discuss"/></a>
|
||||
<br />
|
||||
<a href="https://saucelabs.com/u/popperjs" target="_blank"><img src="https://badges.herokuapp.com/browsers?labels=none&googlechrome=latest&firefox=latestµsoftedge=latest&iexplore=11,10&safari=latest&iphone=latest" alt="SauceLabs Reports"/></a>
|
||||
</p>
|
||||
|
||||
<img src="https://raw.githubusercontent.com/FezVrasta/popper.js/master/popperjs.png" align="right" width=250 />
|
||||
|
||||
|
||||
## Wut? Poppers?
|
||||
|
||||
A popper is an element on the screen which "pops out" from the natural flow of your application.
|
||||
Common examples of poppers are tooltips, popovers and drop-downs.
|
||||
|
||||
|
||||
## So, yet another tooltip library?
|
||||
|
||||
Well, basically, **no**.
|
||||
Popper.js is a **positioning engine**, its purpose is to calculate the position of an element
|
||||
to make it possible to position it near a given reference element.
|
||||
|
||||
The engine is completely modular and most of its features are implemented as **modifiers**
|
||||
(similar to middlewares or plugins).
|
||||
The whole code base is written in ES2015 and its features are automatically tested on real browsers thanks to [SauceLabs](https://saucelabs.com/) and [TravisCI](https://travis-ci.org/).
|
||||
|
||||
Popper.js has zero dependencies. No jQuery, no LoDash, nothing.
|
||||
It's used by big companies like [Twitter in Bootstrap v4](https://getbootstrap.com/), [Microsoft in WebClipper](https://github.com/OneNoteDev/WebClipper) and [Atlassian in AtlasKit](https://aui-cdn.atlassian.com/atlaskit/registry/).
|
||||
|
||||
### Popper.js
|
||||
|
||||
This is the engine, the library that computes and, optionally, applies the styles to
|
||||
the poppers.
|
||||
|
||||
Some of the key points are:
|
||||
|
||||
- Position elements keeping them in their original DOM context (doesn't mess with your DOM!);
|
||||
- Allows to export the computed informations to integrate with React and other view libraries;
|
||||
- Supports Shadow DOM elements;
|
||||
- Completely customizable thanks to the modifiers based structure;
|
||||
|
||||
Visit our [project page](https://fezvrasta.github.io/popper.js) to see a lot of examples of what you can do with Popper.js!
|
||||
|
||||
Find [the documentation here](docs/_includes/popper-documentation.md).
|
||||
|
||||
|
||||
### Tooltip.js
|
||||
|
||||
Since lots of users just need a simple way to integrate powerful tooltips in their projects,
|
||||
we created **Tooltip.js**.
|
||||
It's a small library that makes it easy to automatically create tooltips using as engine Popper.js.
|
||||
Its API is almost identical to the famous tooltip system of Bootstrap, in this way it will be
|
||||
easy to integrate it in your projects.
|
||||
The tooltips generated by Tooltip.js are accessible thanks to the `aria` tags.
|
||||
|
||||
Find [the documentation here](docs/_includes/tooltip-documentation.md).
|
||||
|
||||
|
||||
## Installation
|
||||
Popper.js is available on the following package managers and CDNs:
|
||||
|
||||
| Source | |
|
||||
|:-------|:---------------------------------------------------------------------------------|
|
||||
| npm | `npm install popper.js --save` |
|
||||
| yarn | `yarn add popper.js` |
|
||||
| NuGet | `PM> Install-Package popper.js` |
|
||||
| Bower | `bower install popper.js --save` |
|
||||
| unpkg | [`https://unpkg.com/popper.js`](https://unpkg.com/popper.js) |
|
||||
| cdnjs | [`https://cdnjs.com/libraries/popper.js`](https://cdnjs.com/libraries/popper.js) |
|
||||
|
||||
Tooltip.js as well:
|
||||
|
||||
| Source | |
|
||||
|:-------|:---------------------------------------------------------------------------------|
|
||||
| npm | `npm install tooltip.js --save` |
|
||||
| yarn | `yarn add tooltip.js` |
|
||||
| Bower* | `bower install tooltip.js=https://unpkg.com/tooltip.js --save` |
|
||||
| unpkg | [`https://unpkg.com/tooltip.js`](https://unpkg.com/tooltip.js) |
|
||||
| cdnjs | [`https://cdnjs.com/libraries/popper.js`](https://cdnjs.com/libraries/popper.js) |
|
||||
|
||||
\*: Bower isn't officially supported, it can be used to install Tooltip.js only trough the unpkg.com CDN. This method has the limitation of not being able to define a specific version of the library. Bower and Popper.js suggests to use npm or Yarn for your projects.
|
||||
For more info, [read the related issue](https://github.com/FezVrasta/popper.js/issues/390).
|
||||
|
||||
### Dist targets
|
||||
|
||||
Popper.js is currently shipped with 3 targets in mind: UMD, ESM and ESNext.
|
||||
|
||||
- UMD - Universal Module Definition: AMD, RequireJS and globals;
|
||||
- ESM - ES Modules: For webpack/Rollup or browser supporting the spec;
|
||||
- ESNext: Available in `dist/`, can be used with webpack and `babel-preset-env`;
|
||||
|
||||
Make sure to use the right one for your needs. If you want to import it with a `<script>` tag, use UMD.
|
||||
|
||||
## Usage
|
||||
|
||||
Given an existing popper DOM node, ask Popper.js to position it near its button
|
||||
|
||||
```js
|
||||
var reference = document.querySelector('.my-button');
|
||||
var popper = document.querySelector('.my-popper');
|
||||
var anotherPopper = new Popper(
|
||||
reference,
|
||||
popper,
|
||||
{
|
||||
// popper options here
|
||||
}
|
||||
);
|
||||
```
|
||||
|
||||
### Callbacks
|
||||
|
||||
Popper.js supports two kinds of callbacks, the `onCreate` callback is called after
|
||||
the popper has been initalized. The `onUpdate` one is called on any subsequent update.
|
||||
|
||||
```js
|
||||
const reference = document.querySelector('.my-button');
|
||||
const popper = document.querySelector('.my-popper');
|
||||
new Popper(reference, popper, {
|
||||
onCreate: (data) => {
|
||||
// data is an object containing all the informations computed
|
||||
// by Popper.js and used to style the popper and its arrow
|
||||
// The complete description is available in Popper.js documentation
|
||||
},
|
||||
onUpdate: (data) => {
|
||||
// same as `onCreate` but called on subsequent updates
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
### Writing your own modifiers
|
||||
|
||||
Popper.js is based on a "plugin-like" architecture, most of its features are fully encapsulated "modifiers".
|
||||
A modifier is a function that is called each time Popper.js needs to compute the position of the popper. For this reason, modifiers should be very performant to avoid bottlenecks.
|
||||
|
||||
To learn how to create a modifier, [read the modifiers documentation](docs/_includes/popper-documentation.md#modifiers--object)
|
||||
|
||||
|
||||
### React, Vue.js, Angular, AngularJS, Ember.js (etc...) integration
|
||||
|
||||
Integrating 3rd party libraries in React or other libraries can be a pain because
|
||||
they usually alter the DOM and drive the libraries crazy.
|
||||
Popper.js limits all its DOM modifications inside the `applyStyle` modifier,
|
||||
you can simply disable it and manually apply the popper coordinates using
|
||||
your library of choice.
|
||||
|
||||
For a comprehensive list of libraries that let you use Popper.js into existing
|
||||
frameworks, visit the [MENTIONS](MENTIONS.md) page.
|
||||
|
||||
Alternatively, you may even override your own `applyStyles` with your custom one and
|
||||
integrate Popper.js by yourself!
|
||||
|
||||
```js
|
||||
function applyReactStyle(data) {
|
||||
// export data in your framework and use its content to apply the style to your popper
|
||||
};
|
||||
|
||||
const reference = document.querySelector('.my-button');
|
||||
const popper = document.querySelector('.my-popper');
|
||||
new Popper(reference, popper, {
|
||||
modifiers: {
|
||||
applyStyle: { enabled: false },
|
||||
applyReactStyle: {
|
||||
enabled: true,
|
||||
fn: applyReactStyle,
|
||||
order: 800,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
```
|
||||
|
||||
### Migration from Popper.js v0
|
||||
|
||||
Since the API changed, we prepared some migration instructions to make it easy to upgrade to
|
||||
Popper.js v1.
|
||||
|
||||
https://github.com/FezVrasta/popper.js/issues/62
|
||||
|
||||
Feel free to comment inside the issue if you have any questions.
|
||||
|
||||
### Performances
|
||||
|
||||
Popper.js is very performant. It usually takes 0.5ms to compute a popper's position (on an iMac with 3.5G GHz Intel Core i5).
|
||||
This means that it will not cause any [jank](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool/anatomy-of-jank), leading to a smooth user experience.
|
||||
|
||||
## Notes
|
||||
|
||||
### Libraries using Popper.js
|
||||
|
||||
The aim of Popper.js is to provide a stable and powerful positioning engine ready to
|
||||
be used in 3rd party libraries.
|
||||
|
||||
Visit the [MENTIONS](MENTIONS.md) page for an updated list of projects.
|
||||
|
||||
|
||||
### Credits
|
||||
I want to thank some friends and projects for the work they did:
|
||||
|
||||
- [@AndreaScn](https://github.com/AndreaScn) for his work on the GitHub Page and the manual testing he did during the development;
|
||||
- [@vampolo](https://github.com/vampolo) for the original idea and for the name of the library;
|
||||
- [Sysdig](https://github.com/Draios) for all the awesome things I learned during these years that made it possible for me to write this library;
|
||||
- [Tether.js](http://github.hubspot.com/tether/) for having inspired me in writing a positioning library ready for the real world;
|
||||
- [The Contributors](https://github.com/FezVrasta/popper.js/graphs/contributors) for their much appreciated Pull Requests and bug reports;
|
||||
- **you** for the star you'll give to this project and for being so awesome to give this project a try 🙂
|
||||
|
||||
### Copyright and license
|
||||
Code and documentation copyright 2016 **Federico Zivolo**. Code released under the [MIT license](LICENSE.md). Docs released under Creative Commons.
|
0
msd2/myoos/js/plugins/popper/index.html
Normal file
0
msd2/myoos/js/plugins/popper/index.html
Normal file
2298
msd2/myoos/js/plugins/popper/popper.js
Normal file
2298
msd2/myoos/js/plugins/popper/popper.js
Normal file
File diff suppressed because it is too large
Load Diff
5
msd2/myoos/js/plugins/popper/popper.min.js
vendored
Normal file
5
msd2/myoos/js/plugins/popper/popper.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
0
msd2/myoos/js/plugins/viewport-checker/index.html
Normal file
0
msd2/myoos/js/plugins/viewport-checker/index.html
Normal file
180
msd2/myoos/js/plugins/viewport-checker/viewportchecker.min.js
vendored
Normal file
180
msd2/myoos/js/plugins/viewport-checker/viewportchecker.min.js
vendored
Normal file
@ -0,0 +1,180 @@
|
||||
/*
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Dirk Groenen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
*/
|
||||
|
||||
(function($){
|
||||
$.fn.viewportChecker = function(useroptions){
|
||||
// Define options and extend with user
|
||||
var options = {
|
||||
classToAdd: 'visible',
|
||||
classToRemove : 'invisible',
|
||||
classToAddForFullView : 'full-visible',
|
||||
removeClassAfterAnimation: false,
|
||||
offset: 100,
|
||||
repeat: false,
|
||||
invertBottomOffset: true,
|
||||
callbackFunction: function(elem, action){},
|
||||
scrollHorizontal: false,
|
||||
scrollBox: window
|
||||
};
|
||||
$.extend(options, useroptions);
|
||||
|
||||
// Cache the given element and height of the browser
|
||||
var $elem = this,
|
||||
boxSize = {height: $(options.scrollBox).height(), width: $(options.scrollBox).width()};
|
||||
|
||||
/*
|
||||
* Main method that checks the elements and adds or removes the class(es)
|
||||
*/
|
||||
this.checkElements = function(){
|
||||
var viewportStart, viewportEnd;
|
||||
|
||||
// Set some vars to check with
|
||||
if (!options.scrollHorizontal){
|
||||
viewportStart = Math.max(
|
||||
$('html').scrollTop(),
|
||||
$('body').scrollTop(),
|
||||
$(window).scrollTop()
|
||||
);
|
||||
viewportEnd = (viewportStart + boxSize.height);
|
||||
}
|
||||
else{
|
||||
viewportStart = Math.max(
|
||||
$('html').scrollLeft(),
|
||||
$('body').scrollLeft(),
|
||||
$(window).scrollLeft()
|
||||
);
|
||||
viewportEnd = (viewportStart + boxSize.width);
|
||||
}
|
||||
|
||||
// Loop through all given dom elements
|
||||
$elem.each(function(){
|
||||
var $obj = $(this),
|
||||
objOptions = {},
|
||||
attrOptions = {};
|
||||
|
||||
// Get any individual attribution data
|
||||
if ($obj.data('vp-add-class'))
|
||||
attrOptions.classToAdd = $obj.data('vp-add-class');
|
||||
if ($obj.data('vp-remove-class'))
|
||||
attrOptions.classToRemove = $obj.data('vp-remove-class');
|
||||
if ($obj.data('vp-add-class-full-view'))
|
||||
attrOptions.classToAddForFullView = $obj.data('vp-add-class-full-view');
|
||||
if ($obj.data('vp-keep-add-class'))
|
||||
attrOptions.removeClassAfterAnimation = $obj.data('vp-remove-after-animation');
|
||||
if ($obj.data('vp-offset'))
|
||||
attrOptions.offset = $obj.data('vp-offset');
|
||||
if ($obj.data('vp-repeat'))
|
||||
attrOptions.repeat = $obj.data('vp-repeat');
|
||||
if ($obj.data('vp-scrollHorizontal'))
|
||||
attrOptions.scrollHorizontal = $obj.data('vp-scrollHorizontal');
|
||||
if ($obj.data('vp-invertBottomOffset'))
|
||||
attrOptions.scrollHorizontal = $obj.data('vp-invertBottomOffset');
|
||||
|
||||
// Extend objOptions with data attributes and default options
|
||||
$.extend(objOptions, options);
|
||||
$.extend(objOptions, attrOptions);
|
||||
|
||||
// If class already exists; quit
|
||||
if ($obj.data('vp-animated') && !objOptions.repeat){
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if the offset is percentage based
|
||||
if (String(objOptions.offset).indexOf("%") > 0)
|
||||
objOptions.offset = (parseInt(objOptions.offset) / 100) * boxSize.height;
|
||||
|
||||
// Get the raw start and end positions
|
||||
var rawStart = (!objOptions.scrollHorizontal) ? $obj.offset().top : $obj.offset().left,
|
||||
rawEnd = (!objOptions.scrollHorizontal) ? rawStart + $obj.height() : rawStart + $obj.width();
|
||||
|
||||
// Add the defined offset
|
||||
var elemStart = Math.round( rawStart ) + objOptions.offset,
|
||||
elemEnd = (!objOptions.scrollHorizontal) ? elemStart + $obj.height() : elemStart + $obj.width();
|
||||
|
||||
if (objOptions.invertBottomOffset)
|
||||
elemEnd -= (objOptions.offset * 2);
|
||||
|
||||
// Add class if in viewport
|
||||
if ((elemStart < viewportEnd) && (elemEnd > viewportStart)){
|
||||
|
||||
// Remove class
|
||||
$obj.removeClass(objOptions.classToRemove);
|
||||
$obj.addClass(objOptions.classToAdd);
|
||||
|
||||
// Do the callback function. Callback wil send the jQuery object as parameter
|
||||
objOptions.callbackFunction($obj, "add");
|
||||
|
||||
// Check if full element is in view
|
||||
if (rawEnd <= viewportEnd && rawStart >= viewportStart)
|
||||
$obj.addClass(objOptions.classToAddForFullView);
|
||||
else
|
||||
$obj.removeClass(objOptions.classToAddForFullView);
|
||||
|
||||
// Set element as already animated
|
||||
$obj.data('vp-animated', true);
|
||||
|
||||
if (objOptions.removeClassAfterAnimation) {
|
||||
$obj.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
|
||||
$obj.removeClass(objOptions.classToAdd);
|
||||
});
|
||||
}
|
||||
|
||||
// Remove class if not in viewport and repeat is true
|
||||
} else if ($obj.hasClass(objOptions.classToAdd) && (objOptions.repeat)){
|
||||
$obj.removeClass(objOptions.classToAdd + " " + objOptions.classToAddForFullView);
|
||||
|
||||
// Do the callback function.
|
||||
objOptions.callbackFunction($obj, "remove");
|
||||
|
||||
// Remove already-animated-flag
|
||||
$obj.data('vp-animated', false);
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Binding the correct event listener is still a tricky thing.
|
||||
* People have expierenced sloppy scrolling when both scroll and touch
|
||||
* events are added, but to make sure devices with both scroll and touch
|
||||
* are handles too we always have to add the window.scroll event
|
||||
*
|
||||
* @see https://github.com/dirkgroenen/jQuery-viewport-checker/issues/25
|
||||
* @see https://github.com/dirkgroenen/jQuery-viewport-checker/issues/27
|
||||
*/
|
||||
|
||||
// Select the correct events
|
||||
if( 'ontouchstart' in window || 'onmsgesturechange' in window ){
|
||||
// Device with touchscreen
|
||||
$(document).bind("touchmove MSPointerMove pointermove", this.checkElements);
|
||||
}
|
||||
|
||||
// Always load on window load
|
||||
$(options.scrollBox).bind("load scroll", this.checkElements);
|
||||
|
||||
// On resize change the height var
|
||||
$(window).resize(function(e){
|
||||
boxSize = {height: $(options.scrollBox).height(), width: $(options.scrollBox).width()};
|
||||
$elem.checkElements();
|
||||
});
|
||||
|
||||
// trigger inital check if elements already visible
|
||||
this.checkElements();
|
||||
|
||||
// Default jquery plugin behaviour
|
||||
return this;
|
||||
};
|
||||
})(jQuery);
|
Reference in New Issue
Block a user