''
+ html += ''
'';
html += option[fields.name];
html += ''
'';
});
@@ -45416,7 +47156,7 @@ $.fn.dropdown.settings.templates = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Embed
+ * # Semantic UI 2.5.0 - Embed
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -45598,6 +47338,7 @@ $.fn.embed = function(parameters) {
// clears embed
reset: function() {
module.debug(''Clearing embed and showing placeholder'');
+ module.remove.data();
module.remove.active();
module.remove.embed();
module.showPlaceholder();
@@ -45717,6 +47458,15 @@ $.fn.embed = function(parameters) {
},
remove: {
+ data: function() {
+ $module
+ .removeData(metadata.id)
+ .removeData(metadata.icon)
+ .removeData(metadata.placeholder)
+ .removeData(metadata.source)
+ .removeData(metadata.url)
+ ;
+ },
active: function() {
$module.removeClass(className.active);
},
@@ -46113,7 +47863,7 @@ $.fn.embed.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Modal
+ * # Semantic UI 2.5.0 - Modal
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -46124,7 +47874,7 @@ $.fn.embed.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -46222,6 +47972,9 @@ $.fn.modal = function(parameters) {
var
defaultSettings = {
debug : settings.debug,
+ variation : settings.centered
+ ? false
+ : ''top aligned'',
dimmerName : ''modals''
},
dimmerSettings = $.extend(true, defaultSettings, settings.dimmerSettings)
@@ -46242,13 +47995,16 @@ $.fn.modal = function(parameters) {
$dimmer = $dimmable.dimmer(''get dimmer'');
},
id: function() {
- id = (Math.random().toString(16) + ''000000000'').substr(2,8);
+ id = (Math.random().toString(16) + ''000000000'').substr(2, 8);
elementEventNamespace = ''.'' + id;
module.verbose(''Creating unique id for element'', id);
}
},
destroy: function() {
+ if (observer) {
+ observer.disconnect();
+ }
module.verbose(''Destroying previous modal'');
$module
.removeData(moduleNamespace)
@@ -46277,9 +48033,11 @@ $.fn.modal = function(parameters) {
refresh: function() {
module.remove.scrolling();
module.cacheSizes();
+ if(!module.can.useFlex()) {
+ module.set.modalOffset();
+ }
module.set.screenHeight();
module.set.type();
- module.set.position();
},
refreshModals: function() {
@@ -46318,12 +48076,22 @@ $.fn.modal = function(parameters) {
$window
.on(''resize'' + elementEventNamespace, module.event.resize)
;
+ },
+ scrollLock: function() {
+ // touch events default to passive, due to changes in chrome to optimize mobile perf
+ $dimmable.get(0).addEventListener(''touchmove'', module.event.preventScroll, { passive: false });
+ }
+ },
+
+ unbind: {
+ scrollLock: function() {
+ $dimmable.get(0).removeEventListener(''touchmove'', module.event.preventScroll, { passive: false });
}
},
get: {
id: function() {
- return (Math.random().toString(16) + ''000000000'').substr(2,8);
+ return (Math.random().toString(16) + ''000000000'').substr(2, 8);
}
},
@@ -46338,6 +48106,9 @@ $.fn.modal = function(parameters) {
ignoreRepeatedEvents = false;
});
},
+ preventScroll: function(event) {
+ event.preventDefault();
+ },
deny: function() {
if(ignoreRepeatedEvents || settings.onDeny.call(element, $(this)) === false) {
module.verbose(''Deny callback returned false cancelling hide'');
@@ -46352,21 +48123,23 @@ $.fn.modal = function(parameters) {
module.hide();
},
click: function(event) {
+ if(!settings.closable) {
+ module.verbose(''Dimmer clicked but closable setting is disabled'');
+ return;
+ }
var
$target = $(event.target),
isInModal = ($target.closest(selector.modal).length > 0),
isInDOM = $.contains(document.documentElement, event.target)
;
- if(!isInModal && isInDOM) {
+ if(!isInModal && isInDOM && module.is.active()) {
module.debug(''Dimmer clicked, hiding all modals'');
- if( module.is.active() ) {
- module.remove.clickaway();
- if(settings.allowMultiple) {
- module.hide();
- }
- else {
- module.hideAll();
- }
+ module.remove.clickaway();
+ if(settings.allowMultiple) {
+ module.hide();
+ }
+ else {
+ module.hideAll();
}
}
},
@@ -46413,6 +48186,8 @@ $.fn.modal = function(parameters) {
;
module.refreshModals();
module.set.dimmerSettings();
+ module.set.dimmerStyles();
+
module.showModal(callback);
},
@@ -46431,10 +48206,16 @@ $.fn.modal = function(parameters) {
: function(){}
;
if( module.is.animating() || !module.is.active() ) {
-
module.showDimmer();
module.cacheSizes();
- module.set.position();
+ if(module.can.useFlex()) {
+ module.remove.legacy();
+ }
+ else {
+ module.set.legacy();
+ module.set.modalOffset();
+ module.debug(''Using non-flex legacy modal positioning.'');
+ }
module.set.screenHeight();
module.set.type();
module.set.clickaway();
@@ -46512,6 +48293,7 @@ $.fn.modal = function(parameters) {
},
onComplete : function() {
settings.onHidden.call(element);
+ module.remove.dimmerStyles();
module.restore.focus();
callback();
}
@@ -46536,6 +48318,7 @@ $.fn.modal = function(parameters) {
hideDimmer: function() {
if( $dimmable.dimmer(''is animating'') || ($dimmable.dimmer(''is active'')) ) {
+ module.unbind.scrollLock();
$dimmable.dimmer(''hide'', function() {
module.remove.clickaway();
module.remove.screenHeight();
@@ -46601,7 +48384,13 @@ $.fn.modal = function(parameters) {
save: {
focus: function() {
- $focusedElement = $(document.activeElement).blur();
+ var
+ $activeElement = $(document.activeElement),
+ inCurrentModal = $activeElement.closest($module).length > 0
+ ;
+ if(!inCurrentModal) {
+ $focusedElement = $(document.activeElement).blur();
+ }
}
},
@@ -46617,12 +48406,17 @@ $.fn.modal = function(parameters) {
active: function() {
$module.removeClass(className.active);
},
+ legacy: function() {
+ $module.removeClass(className.legacy);
+ },
clickaway: function() {
- if(settings.closable) {
- $dimmer
- .off(''click'' + elementEventNamespace)
- ;
- }
+ $dimmer
+ .off(''click'' + elementEventNamespace)
+ ;
+ },
+ dimmerStyles: function() {
+ $dimmer.removeClass(className.inverted);
+ $dimmable.removeClass(className.blurring);
},
bodyStyle: function() {
if($body.attr(''style'') === '''') {
@@ -46652,11 +48446,13 @@ $.fn.modal = function(parameters) {
$module.addClass(className.loading);
var
scrollHeight = $module.prop(''scrollHeight''),
+ modalWidth = $module.outerWidth(),
modalHeight = $module.outerHeight()
;
if(module.cache === undefined || modalHeight !== 0) {
module.cache = {
pageHeight : $(document).outerHeight(),
+ width : modalWidth,
height : modalHeight + settings.offset,
scrollHeight : scrollHeight + settings.offset,
contextHeight : (settings.context == ''body'')
@@ -46670,6 +48466,12 @@ $.fn.modal = function(parameters) {
},
can: {
+ useFlex: function() {
+ return (settings.useFlex == ''auto'')
+ ? settings.detachable && !module.is.ie()
+ : settings.useFlex
+ ;
+ },
fit: function() {
var
contextHeight = module.cache.contextHeight,
@@ -46691,6 +48493,13 @@ $.fn.modal = function(parameters) {
active: function() {
return $module.hasClass(className.active);
},
+ ie: function() {
+ var
+ isIE11 = (!(window.ActiveXObject) && ''ActiveXObject'' in window),
+ isIE = (''ActiveXObject'' in window)
+ ;
+ return (isIE11 || isIE);
+ },
animating: function() {
return $module.transition(''is supported'')
? $module.transition(''is animating'')
@@ -46702,7 +48511,7 @@ $.fn.modal = function(parameters) {
},
modernBrowser: function() {
// appName for IE11 reports ''Netscape'' can no longer use
- return !(window.ActiveXObject || "ActiveXObject" in window);
+ return !(window.ActiveXObject || ''ActiveXObject'' in window);
}
},
@@ -46720,11 +48529,9 @@ $.fn.modal = function(parameters) {
}
},
clickaway: function() {
- if(settings.closable) {
- $dimmer
- .on(''click'' + elementEventNamespace, module.event.click)
- ;
- }
+ $dimmer
+ .on(''click'' + elementEventNamespace, module.event.click)
+ ;
},
dimmerSettings: function() {
if($.fn.dimmer === undefined) {
@@ -46735,8 +48542,11 @@ $.fn.modal = function(parameters) {
defaultSettings = {
debug : settings.debug,
dimmerName : ''modals'',
- variation : false,
closable : ''auto'',
+ useFlex : module.can.useFlex(),
+ variation : settings.centered
+ ? false
+ : ''top aligned'',
duration : {
show : settings.duration,
hide : settings.duration
@@ -46749,6 +48559,11 @@ $.fn.modal = function(parameters) {
? dimmerSettings.variation + '' inverted''
: ''inverted''
;
+ }
+ $context.dimmer(''setting'', dimmerSettings);
+ },
+ dimmerStyles: function() {
+ if(settings.inverted) {
$dimmer.addClass(className.inverted);
}
else {
@@ -46760,7 +48575,21 @@ $.fn.modal = function(parameters) {
else {
$dimmable.removeClass(className.blurring);
}
- $context.dimmer(''setting'', dimmerSettings);
+ },
+ modalOffset: function() {
+ var
+ width = module.cache.width,
+ height = module.cache.height
+ ;
+ $module
+ .css({
+ marginTop: (settings.centered && module.can.fit())
+ ? -(height / 2)
+ : 0,
+ marginLeft: -(width / 2)
+ })
+ ;
+ module.verbose(''Setting modal offset for legacy mode'');
},
screenHeight: function() {
if( module.can.fit() ) {
@@ -46779,12 +48608,17 @@ $.fn.modal = function(parameters) {
scrolling: function() {
$dimmable.addClass(className.scrolling);
$module.addClass(className.scrolling);
+ module.unbind.scrollLock();
+ },
+ legacy: function() {
+ $module.addClass(className.legacy);
},
type: function() {
if(module.can.fit()) {
module.verbose(''Modal fits on screen'');
if(!module.others.active() && !module.others.animating()) {
module.remove.scrolling();
+ module.bind.scrollLock();
}
}
else {
@@ -46792,25 +48626,6 @@ $.fn.modal = function(parameters) {
module.set.scrolling();
}
},
- position: function() {
- module.verbose(''Centering modal on page'', module.cache);
- if(module.can.fit()) {
- $module
- .css({
- top: '''',
- marginTop: module.cache.topOffset
- })
- ;
- }
- else {
- $module
- .css({
- marginTop : '''',
- top : $document.scrollTop()
- })
- ;
- }
- },
undetached: function() {
$dimmable.addClass(className.undetached);
}
@@ -47004,6 +48819,9 @@ $.fn.modal.settings = {
name : ''Modal'',
namespace : ''modal'',
+ useFlex : ''auto'',
+ offset : 0,
+
silent : false,
debug : false,
verbose : false,
@@ -47019,6 +48837,8 @@ $.fn.modal.settings = {
inverted : false,
blurring : false,
+ centered : true,
+
dimmerSettings : {
closable : false,
useCSS : true
@@ -47031,7 +48851,6 @@ $.fn.modal.settings = {
queue : false,
duration : 500,
- offset : 0,
transition : ''scale'',
// padding with edge of page
@@ -47071,6 +48890,7 @@ $.fn.modal.settings = {
animating : ''animating'',
blurring : ''blurring'',
inverted : ''inverted'',
+ legacy : ''legacy'',
loading : ''loading'',
scrolling : ''scrolling'',
undetached : ''undetached''
@@ -47081,7 +48901,7 @@ $.fn.modal.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Nag
+ * # Semantic UI 2.5.0 - Nag
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -47092,7 +48912,7 @@ $.fn.modal.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -47589,7 +49409,7 @@ $.extend( $.easing, {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Popup
+ * # Semantic UI 2.5.0 - Popup
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -47600,7 +49420,7 @@ $.extend( $.easing, {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -48078,7 +49898,7 @@ $.fn.popup = function(parameters) {
},
content: function() {
$module.removeData(metadata.content);
- return $module.data(metadata.content) || $module.attr(''title'') || settings.content;
+ return $module.data(metadata.content) || settings.content || $module.attr(''title'');
},
variation: function() {
$module.removeData(metadata.variation);
@@ -48092,9 +49912,10 @@ $.fn.popup = function(parameters) {
},
calculations: function() {
var
- targetElement = $target[0],
- isWindow = ($boundary[0] == window),
- targetPosition = (settings.inline || (settings.popup && settings.movePopup))
+ $popupOffsetParent = module.get.offsetParent($popup),
+ targetElement = $target[0],
+ isWindow = ($boundary[0] == window),
+ targetPosition = (settings.inline || (settings.popup && settings.movePopup))
? $target.position()
: $target.offset(),
screenPosition = (isWindow)
@@ -48139,6 +49960,17 @@ $.fn.popup = function(parameters) {
}
};
+ // if popup offset context is not same as target, then adjust calculations
+ if($popupOffsetParent.get(0) !== $offsetParent.get(0)) {
+ var
+ popupOffset = $popupOffsetParent.offset()
+ ;
+ calculations.target.top -= popupOffset.top;
+ calculations.target.left -= popupOffset.left;
+ calculations.parent.width = $popupOffsetParent.outerWidth();
+ calculations.parent.height = $popupOffsetParent.outerHeight();
+ }
+
// add in container calcs if fluid
if( settings.setFluidWidth && module.is.fluid() ) {
calculations.container = {
@@ -48215,11 +50047,11 @@ $.fn.popup = function(parameters) {
}
return distanceFromBoundary;
},
- offsetParent: function($target) {
+ offsetParent: function($element) {
var
- element = ($target !== undefined)
- ? $target[0]
- : $module[0],
+ element = ($element !== undefined)
+ ? $element[0]
+ : $target[0],
parentNode = element.parentNode,
$node = $(parentNode)
;
@@ -48227,14 +50059,14 @@ $.fn.popup = function(parameters) {
var
is2D = ($node.css(''transform'') === ''none''),
isStatic = ($node.css(''position'') === ''static''),
- isHTML = $node.is(''html'')
+ isBody = $node.is(''body'')
;
- while(parentNode && !isHTML && isStatic && is2D) {
+ while(parentNode && !isBody && isStatic && is2D) {
parentNode = parentNode.parentNode;
$node = $(parentNode);
is2D = ($node.css(''transform'') === ''none'');
isStatic = ($node.css(''position'') === ''static'');
- isHTML = $node.is(''html'');
+ isBody = $node.is(''body'');
}
}
return ($node && $node.length > 0)
@@ -48343,6 +50175,18 @@ $.fn.popup = function(parameters) {
popup = calculations.popup;
parent = calculations.parent;
+ if(module.should.centerArrow(calculations)) {
+ module.verbose(''Adjusting offset to center arrow on small target element'');
+ if(position == ''top left'' || position == ''bottom left'') {
+ offset += (target.width / 2)
+ offset -= settings.arrowPixelsFromEdge;
+ }
+ if(position == ''top right'' || position == ''bottom right'') {
+ offset -= (target.width / 2)
+ offset += settings.arrowPixelsFromEdge;
+ }
+ }
+
if(target.width === 0 && target.height === 0 && !module.is.svg(target.element)) {
module.debug(''Popup target is hidden, no action taken'');
return false;
@@ -48578,12 +50422,12 @@ $.fn.popup = function(parameters) {
if(settings.hideOnScroll === true || (settings.hideOnScroll == ''auto'' && settings.on != ''click'')) {
module.bind.closeOnScroll();
}
- if(settings.on == ''hover'' && openedWithTouch) {
- module.bind.touchClose();
- }
- if(settings.on == ''click'' && settings.closable) {
+ if(module.is.closable()) {
module.bind.clickaway();
}
+ else if(settings.on == ''hover'' && openedWithTouch) {
+ module.bind.touchClose();
+ }
},
closeOnScroll: function() {
module.verbose(''Binding scroll close event to document'');
@@ -48636,7 +50480,22 @@ $.fn.popup = function(parameters) {
}
},
+ should: {
+ centerArrow: function(calculations) {
+ return !module.is.basic() && calculations.target.width <= (settings.arrowPixelsFromEdge * 2);
+ },
+ },
+
is: {
+ closable: function() {
+ if(settings.closable == ''auto'') {
+ if(settings.on == ''hover'') {
+ return false;
+ }
+ return true;
+ }
+ return settings.closable;
+ },
offstage: function(distanceFromBoundary, position) {
var
offstage = []
@@ -48658,6 +50517,9 @@ $.fn.popup = function(parameters) {
svg: function(element) {
return module.supports.svg() && (element instanceof SVGGraphicsElement);
},
+ basic: function() {
+ return $module.hasClass(className.basic);
+ },
active: function() {
return $module.hasClass(className.active);
},
@@ -48970,8 +50832,11 @@ $.fn.popup.settings = {
// specify position to appear even if it doesn''t fit
lastResort : false,
+ // number of pixels from edge of popup to pointing arrow center (used from centering)
+ arrowPixelsFromEdge: 20,
+
// delay used to prevent accidental refiring of animations due to user error
- delay : {
+ delay : {
show : 50,
hide : 70
},
@@ -49015,6 +50880,7 @@ $.fn.popup.settings = {
className : {
active : ''active'',
+ basic : ''basic'',
animating : ''animating'',
dropdown : ''dropdown'',
fluid : ''fluid'',
@@ -49076,7 +50942,7 @@ $.fn.popup.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Progress
+ * # Semantic UI 2.5.0 - Progress
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -49087,7 +50953,7 @@ $.fn.popup.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -50008,7 +51874,7 @@ $.fn.progress.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Rating
+ * # Semantic UI 2.5.0 - Rating
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -50019,7 +51885,7 @@ $.fn.progress.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -50517,7 +52383,7 @@ $.fn.rating.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Search
+ * # Semantic UI 2.5.0 - Search
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -50528,7 +52394,7 @@ $.fn.rating.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -50588,6 +52454,7 @@ $.fn.search = function(parameters) {
initialize: function() {
module.verbose(''Initializing module'');
+ module.get.settings();
module.determine.searchFields();
module.bind.events();
module.set.type();
@@ -50854,7 +52721,7 @@ $.fn.search = function(parameters) {
apiSettings = {
debug : settings.debug,
on : false,
- cache : true,
+ cache : settings.cache,
action : ''search'',
urlData : {
query : searchTerm
@@ -50920,6 +52787,12 @@ $.fn.search = function(parameters) {
},
get: {
+ settings: function() {
+ if($.isPlainObject(parameters) && parameters.searchFullText) {
+ settings.fullTextSearch = parameters.searchFullText;
+ module.error(settings.error.oldSearchSyntax, element);
+ }
+ },
inputEvent: function() {
var
prompt = $prompt[0],
@@ -51063,8 +52936,14 @@ $.fn.search = function(parameters) {
;
module.set.loading();
module.save.results(results);
- module.debug(''Returned local search results'', results);
-
+ module.debug(''Returned full local search results'', results);
+ if(settings.maxResults > 0) {
+ module.debug(''Using specified max results'', results);
+ results = results.slice(0, settings.maxResults);
+ }
+ if(settings.type == ''category'') {
+ results = module.create.categoryResults(results);
+ }
searchHTML = module.generateResults({
results: results
});
@@ -51092,6 +52971,7 @@ $.fn.search = function(parameters) {
object: function(searchTerm, source, searchFields) {
var
results = [],
+ exactResults = [],
fuzzyResults = [],
searchExp = searchTerm.toString().replace(regExp.escape, ''\\$&''),
matchRegExp = new RegExp(regExp.beginsWith + searchExp, ''i''),
@@ -51100,9 +52980,10 @@ $.fn.search = function(parameters) {
addResult = function(array, result) {
var
notResult = ($.inArray(result, results) == -1),
- notFuzzyResult = ($.inArray(result, fuzzyResults) == -1)
+ notFuzzyResult = ($.inArray(result, fuzzyResults) == -1),
+ notExactResults = ($.inArray(result, exactResults) == -1)
;
- if(notResult && notFuzzyResult) {
+ if(notResult && notFuzzyResult && notExactResults) {
array.push(result);
}
}
@@ -51123,7 +53004,6 @@ $.fn.search = function(parameters) {
module.error(error.source);
return [];
}
-
// iterate through search fields looking for matches
$.each(searchFields, function(index, field) {
$.each(source, function(label, content) {
@@ -51135,17 +53015,30 @@ $.fn.search = function(parameters) {
// content starts with value (first in results)
addResult(results, content);
}
- else if(settings.searchFullText && module.fuzzySearch(searchTerm, content[field]) ) {
+ else if(settings.fullTextSearch === ''exact'' && module.exactSearch(searchTerm, content[field]) ) {
+ // content fuzzy matches (last in results)
+ addResult(exactResults, content);
+ }
+ else if(settings.fullTextSearch == true && module.fuzzySearch(searchTerm, content[field]) ) {
// content fuzzy matches (last in results)
addResult(fuzzyResults, content);
}
}
});
});
- return $.merge(results, fuzzyResults);
+ $.merge(exactResults, fuzzyResults)
+ $.merge(results, exactResults);
+ return results;
}
},
-
+ exactSearch: function (query, term) {
+ query = query.toLowerCase();
+ term = term.toLowerCase();
+ if(term.indexOf(query) > -1) {
+ return true;
+ }
+ return false;
+ },
fuzzySearch: function(query, term) {
var
termLength = term.length,
@@ -51257,6 +53150,27 @@ $.fn.search = function(parameters) {
},
create: {
+ categoryResults: function(results) {
+ var
+ categoryResults = {}
+ ;
+ $.each(results, function(index, result) {
+ if(!result.category) {
+ return;
+ }
+ if(categoryResults[result.category] === undefined) {
+ module.verbose(''Creating new category of results'', result.category);
+ categoryResults[result.category] = {
+ name : result.category,
+ results : [result]
+ }
+ }
+ else {
+ categoryResults[result.category].results.push(result);
+ }
+ });
+ return categoryResults;
+ },
id: function(resultIndex, categoryIndex) {
var
resultID = (resultIndex + 1), // not zero indexed
@@ -51294,7 +53208,10 @@ $.fn.search = function(parameters) {
$selectedResult = (categoryIndex !== undefined)
? $results
.children().eq(categoryIndex)
- .children(selector.result).eq(resultIndex)
+ .children(selector.results)
+ .first()
+ .children(selector.result)
+ .eq(resultIndex)
: $results
.children(selector.result).eq(resultIndex)
;
@@ -51715,8 +53632,8 @@ $.fn.search.settings = {
// field to display in standard results template
displayField : '''',
- // whether to include fuzzy results in local search
- searchFullText : true,
+ // search anywhere in value (set to ''exact'' to require exact matches
+ fullTextSearch : ''exact'',
// whether to add events to prompt automatically
automatic : true,
@@ -51727,7 +53644,7 @@ $.fn.search.settings = {
// delay before searching
searchDelay : 200,
- // maximum results returned from local
+ // maximum results returned from search
maxResults : 7,
// whether to store lookups in local cache
@@ -51763,14 +53680,15 @@ $.fn.search.settings = {
},
error : {
- source : ''Cannot search. No source used, and Semantic API module was not included'',
- noResults : ''Your search returned no results'',
- logging : ''Error in debug logging, exiting.'',
- noEndpoint : ''No search endpoint was specified'',
- noTemplate : ''A valid template name was not specified.'',
- serverError : ''There was an issue querying the server.'',
- maxResults : ''Results must be an array to use maxResults setting'',
- method : ''The method you called is not defined.''
+ source : ''Cannot search. No source used, and Semantic API module was not included'',
+ noResults : ''Your search returned no results'',
+ logging : ''Error in debug logging, exiting.'',
+ noEndpoint : ''No search endpoint was specified'',
+ noTemplate : ''A valid template name was not specified.'',
+ oldSearchSyntax : ''searchFullText setting has been renamed fullTextSearch for consistency, please adjust your settings.'',
+ serverError : ''There was an issue querying the server.'',
+ maxResults : ''Results must be an array to use maxResults setting'',
+ method : ''The method you called is not defined.''
},
metadata: {
@@ -51872,6 +53790,7 @@ $.fn.search.settings = {
}
// each item inside category
+ html += ''
'';
html += ''''
+ ''
''
;
@@ -51969,7 +53889,7 @@ $.fn.search.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Shape
+ * # Semantic UI 2.5.0 - Shape
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -51980,7 +53900,7 @@ $.fn.search.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -52891,7 +54811,7 @@ $.fn.shape.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Sidebar
+ * # Semantic UI 2.5.0 - Sidebar
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -52902,7 +54822,7 @@ $.fn.shape.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -53925,7 +55845,7 @@ $.fn.sidebar.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Sticky
+ * # Semantic UI 2.5.0 - Sticky
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -53936,7 +55856,7 @@ $.fn.sidebar.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -54328,6 +56248,18 @@ $.fn.sticky = function(parameters) {
module.determineContainer();
}
else {
+ var tallestHeight = Math.max(module.cache.context.height, module.cache.element.height);
+ if(tallestHeight - $container.outerHeight() > settings.jitter) {
+ module.debug(''Context is taller than container. Specifying exact height for container'', module.cache.context.height);
+ $container.css({
+ height: tallestHeight,
+ });
+ }
+ else {
+ $container.css({
+ height: '''',
+ });
+ }
if( Math.abs($container.outerHeight() - module.cache.context.height) > settings.jitter) {
module.debug(''Context has padding, specifying exact height for container'', module.cache.context.height);
$container.css({
@@ -54364,7 +56296,7 @@ $.fn.sticky = function(parameters) {
},
size: function() {
if(module.cache.element.height !== 0 && module.cache.element.width !== 0) {
- element.style.setProperty(''width'', module.cache.element.width + ''px'', ''important'');
+ element.style.setProperty(''width'', module.cache.element.width + ''px'', ''important'');
element.style.setProperty(''height'', module.cache.element.height + ''px'', ''important'');
}
}
@@ -54427,7 +56359,7 @@ $.fn.sticky = function(parameters) {
module.bindBottom();
}
else if(scroll.top > element.top) {
- if( (element.height + scroll.top - elementScroll) >= context.bottom ) {
+ if((element.height + scroll.top - elementScroll) >= context.bottom && element.height < context.height) {
module.debug(''Initial element position is bottom of container'');
module.bindBottom();
}
@@ -54506,6 +56438,9 @@ $.fn.sticky = function(parameters) {
bindTop: function() {
module.debug(''Binding element to top of parent container'');
module.remove.offset();
+ if(settings.setSize) {
+ module.set.size();
+ }
$module
.css({
left : '''',
@@ -54523,6 +56458,9 @@ $.fn.sticky = function(parameters) {
bindBottom: function() {
module.debug(''Binding element to bottom of parent container'');
module.remove.offset();
+ if(settings.setSize) {
+ module.set.size();
+ }
$module
.css({
left : '''',
@@ -54885,7 +56823,7 @@ $.fn.sticky.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Tab
+ * # Semantic UI 2.5.0 - Tab
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -54896,7 +56834,7 @@ $.fn.sticky.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -55838,7 +57776,7 @@ $.fn.tab.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - Transition
+ * # Semantic UI 2.5.0 - Transition
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -55849,7 +57787,7 @@ $.fn.tab.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -56934,7 +58872,7 @@ $.fn.transition.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - API
+ * # Semantic UI 2.5.0 - API
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -56945,7 +58883,7 @@ $.fn.transition.settings = {
;(function ($, window, document, undefined) {
-"use strict";
+''use strict'';
var
window = (typeof window != ''undefined'' && window.Math == Math)
@@ -58102,7 +60040,7 @@ $.api.settings = {
})( jQuery, window, document );
/*!
- * # Semantic UI 2.2.12 - State
+ * # Semantic UI 2.5.0 - Visibility
* http://github.com/semantic-org/semantic-ui/
*
*
@@ -58113,716 +60051,7 @@ $.api.settings = {
;(function ($, window, document, undefined) {
-"use strict";
-
-window = (typeof window != ''undefined'' && window.Math == Math)
- ? window
- : (typeof self != ''undefined'' && self.Math == Math)
- ? self
- : Function(''return this'')()
-;
-
-$.fn.state = function(parameters) {
- var
- $allModules = $(this),
-
- moduleSelector = $allModules.selector || '''',
-
- hasTouch = (''ontouchstart'' in document.documentElement),
- time = new Date().getTime(),
- performance = [],
-
- query = arguments[0],
- methodInvoked = (typeof query == ''string''),
- queryArguments = [].slice.call(arguments, 1),
-
- returnedValue
- ;
- $allModules
- .each(function() {
- var
- settings = ( $.isPlainObject(parameters) )
- ? $.extend(true, {}, $.fn.state.settings, parameters)
- : $.extend({}, $.fn.state.settings),
-
- error = settings.error,
- metadata = settings.metadata,
- className = settings.className,
- namespace = settings.namespace,
- states = settings.states,
- text = settings.text,
-
- eventNamespace = ''.'' + namespace,
- moduleNamespace = namespace + ''-module'',
-
- $module = $(this),
-
- element = this,
- instance = $module.data(moduleNamespace),
-
- module
- ;
- module = {
-
- initialize: function() {
- module.verbose(''Initializing module'');
-
- // allow module to guess desired state based on element
- if(settings.automatic) {
- module.add.defaults();
- }
-
- // bind events with delegated events
- if(settings.context && moduleSelector !== '''') {
- $(settings.context)
- .on(moduleSelector, ''mouseenter'' + eventNamespace, module.change.text)
- .on(moduleSelector, ''mouseleave'' + eventNamespace, module.reset.text)
- .on(moduleSelector, ''click'' + eventNamespace, module.toggle.state)
- ;
- }
- else {
- $module
- .on(''mouseenter'' + eventNamespace, module.change.text)
- .on(''mouseleave'' + eventNamespace, module.reset.text)
- .on(''click'' + eventNamespace, module.toggle.state)
- ;
- }
- module.instantiate();
- },
-
- instantiate: function() {
- module.verbose(''Storing instance of module'', module);
- instance = module;
- $module
- .data(moduleNamespace, module)
- ;
- },
-
- destroy: function() {
- module.verbose(''Destroying previous module'', instance);
- $module
- .off(eventNamespace)
- .removeData(moduleNamespace)
- ;
- },
-
- refresh: function() {
- module.verbose(''Refreshing selector cache'');
- $module = $(element);
- },
-
- add: {
- defaults: function() {
- var
- userStates = parameters && $.isPlainObject(parameters.states)
- ? parameters.states
- : {}
- ;
- $.each(settings.defaults, function(type, typeStates) {
- if( module.is[type] !== undefined && module.is[type]() ) {
- module.verbose(''Adding default states'', type, element);
- $.extend(settings.states, typeStates, userStates);
- }
- });
- }
- },
-
- is: {
-
- active: function() {
- return $module.hasClass(className.active);
- },
- loading: function() {
- return $module.hasClass(className.loading);
- },
- inactive: function() {
- return !( $module.hasClass(className.active) );
- },
- state: function(state) {
- if(className[state] === undefined) {
- return false;
- }
- return $module.hasClass( className[state] );
- },
-
- enabled: function() {
- return !( $module.is(settings.filter.active) );
- },
- disabled: function() {
- return ( $module.is(settings.filter.active) );
- },
- textEnabled: function() {
- return !( $module.is(settings.filter.text) );
- },
-
- // definitions for automatic type detection
- button: function() {
- return $module.is(''.button:not(a, .submit)'');
- },
- input: function() {
- return $module.is(''input'');
- },
- progress: function() {
- return $module.is(''.ui.progress'');
- }
- },
-
- allow: function(state) {
- module.debug(''Now allowing state'', state);
- states[state] = true;
- },
- disallow: function(state) {
- module.debug(''No longer allowing'', state);
- states[state] = false;
- },
-
- allows: function(state) {
- return states[state] || false;
- },
-
- enable: function() {
- $module.removeClass(className.disabled);
- },
-
- disable: function() {
- $module.addClass(className.disabled);
- },
-
- setState: function(state) {
- if(module.allows(state)) {
- $module.addClass( className[state] );
- }
- },
-
- removeState: function(state) {
- if(module.allows(state)) {
- $module.removeClass( className[state] );
- }
- },
-
- toggle: {
- state: function() {
- var
- apiRequest,
- requestCancelled
- ;
- if( module.allows(''active'') && module.is.enabled() ) {
- module.refresh();
- if($.fn.api !== undefined) {
- apiRequest = $module.api(''get request'');
- requestCancelled = $module.api(''was cancelled'');
- if( requestCancelled ) {
- module.debug(''API Request cancelled by beforesend'');
- settings.activateTest = function(){ return false; };
- settings.deactivateTest = function(){ return false; };
- }
- else if(apiRequest) {
- module.listenTo(apiRequest);
- return;
- }
- }
- module.change.state();
- }
- }
- },
-
- listenTo: function(apiRequest) {
- module.debug(''API request detected, waiting for state signal'', apiRequest);
- if(apiRequest) {
- if(text.loading) {
- module.update.text(text.loading);
- }
- $.when(apiRequest)
- .then(function() {
- if(apiRequest.state() == ''resolved'') {
- module.debug(''API request succeeded'');
- settings.activateTest = function(){ return true; };
- settings.deactivateTest = function(){ return true; };
- }
- else {
- module.debug(''API request failed'');
- settings.activateTest = function(){ return false; };
- settings.deactivateTest = function(){ return false; };
- }
- module.change.state();
- })
- ;
- }
- },
-
- // checks whether active/inactive state can be given
- change: {
-
- state: function() {
- module.debug(''Determining state change direction'');
- // inactive to active change
- if( module.is.inactive() ) {
- module.activate();
- }
- else {
- module.deactivate();
- }
- if(settings.sync) {
- module.sync();
- }
- settings.onChange.call(element);
- },
-
- text: function() {
- if( module.is.textEnabled() ) {
- if(module.is.disabled() ) {
- module.verbose(''Changing text to disabled text'', text.hover);
- module.update.text(text.disabled);
- }
- else if( module.is.active() ) {
- if(text.hover) {
- module.verbose(''Changing text to hover text'', text.hover);
- module.update.text(text.hover);
- }
- else if(text.deactivate) {
- module.verbose(''Changing text to deactivating text'', text.deactivate);
- module.update.text(text.deactivate);
- }
- }
- else {
- if(text.hover) {
- module.verbose(''Changing text to hover text'', text.hover);
- module.update.text(text.hover);
- }
- else if(text.activate){
- module.verbose(''Changing text to activating text'', text.activate);
- module.update.text(text.activate);
- }
- }
- }
- }
-
- },
-
- activate: function() {
- if( settings.activateTest.call(element) ) {
- module.debug(''Setting state to active'');
- $module
- .addClass(className.active)
- ;
- module.update.text(text.active);
- settings.onActivate.call(element);
- }
- },
-
- deactivate: function() {
- if( settings.deactivateTest.call(element) ) {
- module.debug(''Setting state to inactive'');
- $module
- .removeClass(className.active)
- ;
- module.update.text(text.inactive);
- settings.onDeactivate.call(element);
- }
- },
-
- sync: function() {
- module.verbose(''Syncing other buttons to current state'');
- if( module.is.active() ) {
- $allModules
- .not($module)
- .state(''activate'');
- }
- else {
- $allModules
- .not($module)
- .state(''deactivate'')
- ;
- }
- },
-
- get: {
- text: function() {
- return (settings.selector.text)
- ? $module.find(settings.selector.text).text()
- : $module.html()
- ;
- },
- textFor: function(state) {
- return text[state] || false;
- }
- },
-
- flash: {
- text: function(text, duration, callback) {
- var
- previousText = module.get.text()
- ;
- module.debug(''Flashing text message'', text, duration);
- text = text || settings.text.flash;
- duration = duration || settings.flashDuration;
- callback = callback || function() {};
- module.update.text(text);
- setTimeout(function(){
- module.update.text(previousText);
- callback.call(element);
- }, duration);
- }
- },
-
- reset: {
- // on mouseout sets text to previous value
- text: function() {
- var
- activeText = text.active || $module.data(metadata.storedText),
- inactiveText = text.inactive || $module.data(metadata.storedText)
- ;
- if( module.is.textEnabled() ) {
- if( module.is.active() && activeText) {
- module.verbose(''Resetting active text'', activeText);
- module.update.text(activeText);
- }
- else if(inactiveText) {
- module.verbose(''Resetting inactive text'', activeText);
- module.update.text(inactiveText);
- }
- }
- }
- },
-
- update: {
- text: function(text) {
- var
- currentText = module.get.text()
- ;
- if(text && text !== currentText) {
- module.debug(''Updating text'', text);
- if(settings.selector.text) {
- $module
- .data(metadata.storedText, text)
- .find(settings.selector.text)
- .text(text)
- ;
- }
- else {
- $module
- .data(metadata.storedText, text)
- .html(text)
- ;
- }
- }
- else {
- module.debug(''Text is already set, ignoring update'', text);
- }
- }
- },
-
- setting: function(name, value) {
- module.debug(''Changing setting'', name, value);
- if( $.isPlainObject(name) ) {
- $.extend(true, settings, name);
- }
- else if(value !== undefined) {
- if($.isPlainObject(settings[name])) {
- $.extend(true, settings[name], value);
- }
- else {
- settings[name] = value;
- }
- }
- else {
- return settings[name];
- }
- },
- internal: function(name, value) {
- if( $.isPlainObject(name) ) {
- $.extend(true, module, name);
- }
- else if(value !== undefined) {
- module[name] = value;
- }
- else {
- return module[name];
- }
- },
- debug: function() {
- if(!settings.silent && settings.debug) {
- if(settings.performance) {
- module.performance.log(arguments);
- }
- else {
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + '':'');
- module.debug.apply(console, arguments);
- }
- }
- },
- verbose: function() {
- if(!settings.silent && settings.verbose && settings.debug) {
- if(settings.performance) {
- module.performance.log(arguments);
- }
- else {
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + '':'');
- module.verbose.apply(console, arguments);
- }
- }
- },
- error: function() {
- if(!settings.silent) {
- module.error = Function.prototype.bind.call(console.error, console, settings.name + '':'');
- module.error.apply(console, arguments);
- }
- },
- performance: {
- log: function(message) {
- var
- currentTime,
- executionTime,
- previousTime
- ;
- if(settings.performance) {
- currentTime = new Date().getTime();
- previousTime = time || currentTime;
- executionTime = currentTime - previousTime;
- time = currentTime;
- performance.push({
- ''Name'' : message[0],
- ''Arguments'' : [].slice.call(message, 1) || '''',
- ''Element'' : element,
- ''Execution Time'' : executionTime
- });
- }
- clearTimeout(module.performance.timer);
- module.performance.timer = setTimeout(module.performance.display, 500);
- },
- display: function() {
- var
- title = settings.name + '':'',
- totalTime = 0
- ;
- time = false;
- clearTimeout(module.performance.timer);
- $.each(performance, function(index, data) {
- totalTime += data[''Execution Time''];
- });
- title += '' '' + totalTime + ''ms'';
- if(moduleSelector) {
- title += '' \'''' + moduleSelector + ''\'''';
- }
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
- console.groupCollapsed(title);
- if(console.table) {
- console.table(performance);
- }
- else {
- $.each(performance, function(index, data) {
- console.log(data[''Name''] + '': '' + data[''Execution Time'']+''ms'');
- });
- }
- console.groupEnd();
- }
- performance = [];
- }
- },
- invoke: function(query, passedArguments, context) {
- var
- object = instance,
- maxDepth,
- found,
- response
- ;
- passedArguments = passedArguments || queryArguments;
- context = element || context;
- if(typeof query == ''string'' && object !== undefined) {
- query = query.split(/[\. ]/);
- maxDepth = query.length - 1;
- $.each(query, function(depth, value) {
- var camelCaseValue = (depth != maxDepth)
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
- : query
- ;
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
- object = object[camelCaseValue];
- }
- else if( object[camelCaseValue] !== undefined ) {
- found = object[camelCaseValue];
- return false;
- }
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
- object = object[value];
- }
- else if( object[value] !== undefined ) {
- found = object[value];
- return false;
- }
- else {
- module.error(error.method, query);
- return false;
- }
- });
- }
- if ( $.isFunction( found ) ) {
- response = found.apply(context, passedArguments);
- }
- else if(found !== undefined) {
- response = found;
- }
- if($.isArray(returnedValue)) {
- returnedValue.push(response);
- }
- else if(returnedValue !== undefined) {
- returnedValue = [returnedValue, response];
- }
- else if(response !== undefined) {
- returnedValue = response;
- }
- return found;
- }
- };
-
- if(methodInvoked) {
- if(instance === undefined) {
- module.initialize();
- }
- module.invoke(query);
- }
- else {
- if(instance !== undefined) {
- instance.invoke(''destroy'');
- }
- module.initialize();
- }
- })
- ;
-
- return (returnedValue !== undefined)
- ? returnedValue
- : this
- ;
-};
-
-$.fn.state.settings = {
-
- // module info
- name : ''State'',
-
- // debug output
- debug : false,
-
- // verbose debug output
- verbose : false,
-
- // namespace for events
- namespace : ''state'',
-
- // debug data includes performance
- performance : true,
-
- // callback occurs on state change
- onActivate : function() {},
- onDeactivate : function() {},
- onChange : function() {},
-
- // state test functions
- activateTest : function() { return true; },
- deactivateTest : function() { return true; },
-
- // whether to automatically map default states
- automatic : true,
-
- // activate / deactivate changes all elements instantiated at same time
- sync : false,
-
- // default flash text duration, used for temporarily changing text of an element
- flashDuration : 1000,
-
- // selector filter
- filter : {
- text : ''.loading, .disabled'',
- active : ''.disabled''
- },
-
- context : false,
-
- // error
- error: {
- beforeSend : ''The before send function has cancelled state change'',
- method : ''The method you called is not defined.''
- },
-
- // metadata
- metadata: {
- promise : ''promise'',
- storedText : ''stored-text''
- },
-
- // change class on state
- className: {
- active : ''active'',
- disabled : ''disabled'',
- error : ''error'',
- loading : ''loading'',
- success : ''success'',
- warning : ''warning''
- },
-
- selector: {
- // selector for text node
- text: false
- },
-
- defaults : {
- input: {
- disabled : true,
- loading : true,
- active : true
- },
- button: {
- disabled : true,
- loading : true,
- active : true,
- },
- progress: {
- active : true,
- success : true,
- warning : true,
- error : true
- }
- },
-
- states : {
- active : true,
- disabled : true,
- error : true,
- loading : true,
- success : true,
- warning : true
- },
-
- text : {
- disabled : false,
- flash : false,
- hover : false,
- active : false,
- inactive : false,
- activate : false,
- deactivate : false
- }
-
-};
-
-
-
-})( jQuery, window, document );
-
-/*!
- * # Semantic UI 2.2.12 - Visibility
- * http://github.com/semantic-org/semantic-ui/
- *
- *
- * Released under the MIT license
- * http://opensource.org/licenses/MIT
- *
- */
-
-;(function ($, window, document, undefined) {
-
-"use strict";
+''use strict'';
window = (typeof window != ''undefined'' && window.Math == Math)
? window
@@ -59739,13 +60968,13 @@ $.fn.visibility = function(parameters) {
// visibility
element.topPassed = (screen.top >= element.top);
element.bottomPassed = (screen.top >= element.bottom);
- element.topVisible = (screen.bottom >= element.top) && !element.bottomPassed;
- element.bottomVisible = (screen.bottom >= element.bottom) && !element.topPassed;
+ element.topVisible = (screen.bottom >= element.top) && !element.topPassed;
+ element.bottomVisible = (screen.bottom >= element.bottom) && !element.bottomPassed;
element.pixelsPassed = 0;
element.percentagePassed = 0;
// meta calculations
- element.onScreen = (element.topVisible && !element.bottomPassed);
+ element.onScreen = ((element.topVisible || element.passing) && !element.bottomPassed);
element.passing = (element.topPassed && !element.bottomPassed);
element.offScreen = (!element.onScreen);
diff --git a/source/Willow-SemanticUI/SemanticUIMetadataLibrary.class.st b/source/Willow-SemanticUI/SemanticUIMetadataLibrary.class.st
index 26feaf0..e6dce93 100644
--- a/source/Willow-SemanticUI/SemanticUIMetadataLibrary.class.st
+++ b/source/Willow-SemanticUI/SemanticUIMetadataLibrary.class.st
@@ -28,7 +28,7 @@ SemanticUIMetadataLibrary class >> libraryName [
{ #category : #Accessing }
SemanticUIMetadataLibrary class >> version [
- ^ '2.2.13'
+ ^ '2.5.0'
]
{ #category : #'uploaded metadata' }
@@ -107,11 +107,11 @@ SemanticUIMetadataLibrary >> LatoLatinMediumWoffContent [
SemanticUIMetadataLibrary >> changeRemoteFontsToLocalIn: aContent [