Update jquery.uls from upstream
Performance improvements by matmarex Change-Id: Ie89bd56702dec231a8c27f9cf8eeb7bbffe9b251
This commit is contained in:
@@ -4,13 +4,18 @@
|
|||||||
"David1010"
|
"David1010"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"uls-select-language": "\u10d0\u10d8\u10e0\u10e9\u10d8\u10d4\u10d7 \u10d4\u10dc\u10d0",
|
||||||
"uls-region-WW": "\u10db\u10e1\u10dd\u10e4\u10da\u10d8\u10dd",
|
"uls-region-WW": "\u10db\u10e1\u10dd\u10e4\u10da\u10d8\u10dd",
|
||||||
|
"uls-region-SP": "\u10e1\u10de\u10d4\u10ea\u10d8\u10d0\u10da\u10e3\u10e0\u10d8",
|
||||||
"uls-region-AM": "\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0",
|
"uls-region-AM": "\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0",
|
||||||
"uls-region-AF": "\u10d0\u10e4\u10e0\u10d8\u10d9\u10d0",
|
"uls-region-AF": "\u10d0\u10e4\u10e0\u10d8\u10d9\u10d0",
|
||||||
"uls-region-EU": "\u10d4\u10d5\u10e0\u10dd\u10de\u10d0",
|
"uls-region-EU": "\u10d4\u10d5\u10e0\u10dd\u10de\u10d0",
|
||||||
"uls-region-AS": "\u10d0\u10d6\u10d8\u10d0",
|
"uls-region-AS": "\u10d0\u10d6\u10d8\u10d0",
|
||||||
"uls-region-ME": "\u10d0\u10ee\u10da\u10dd \u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8",
|
"uls-region-ME": "\u10d0\u10ee\u10da\u10dd \u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8",
|
||||||
"uls-region-PA": "\u10dd\u10d9\u10d4\u10d0\u10dc\u10d4\u10d7\u10d8",
|
"uls-region-PA": "\u10dd\u10d9\u10d4\u10d0\u10dc\u10d4\u10d7\u10d8",
|
||||||
|
"uls-no-results-found": "\u10e8\u10d4\u10d3\u10d4\u10d2\u10d8 \u10d5\u10d4\u10e0 \u10db\u10dd\u10d8\u10eb\u10d4\u10d1\u10dc\u10d0",
|
||||||
"uls-common-languages": "\u10e1\u10d0\u10d4\u10e0\u10d7\u10dd \u10d4\u10dc\u10d4\u10d1\u10d8",
|
"uls-common-languages": "\u10e1\u10d0\u10d4\u10e0\u10d7\u10dd \u10d4\u10dc\u10d4\u10d1\u10d8",
|
||||||
|
"uls-no-results-suggestion-title": "\u10d8\u10e5\u10dc\u10d4\u10d1 \u10d7\u10e5\u10d5\u10d4\u10dc \u10d0\u10db \u10d4\u10dc\u10d4\u10d1\u10db\u10d0 \u10d3\u10d0\u10d2\u10d0\u10d8\u10dc\u10e2\u10d4\u10e0\u10d4\u10e1\u10dd\u10d7:",
|
||||||
|
"uls-search-help": "\u10eb\u10d8\u10d4\u10d1\u10d0 \u10e8\u10d4\u10e1\u10d0\u10eb\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0 \u10d4\u10dc\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8\u10d7 \u10d0\u10dc \u10d3\u10d0\u10db\u10ec\u10d4\u10e0\u10da\u10dd\u10d1\u10d8\u10d7, \u10d4\u10dc\u10d8\u10e1 ISO-\u10d9\u10dd\u10d3\u10d8\u10d7 \u10d0\u10dc \u10e0\u10d4\u10d2\u10d8\u10dd\u10dc\u10d8\u10e1 \u10db\u10d8\u10ee\u10d4\u10d3\u10d5\u10d8\u10d7:",
|
||||||
"uls-search-placeholder": "\u10d4\u10dc\u10d8\u10e1 \u10db\u10dd\u10eb\u10d4\u10d1\u10dc\u10d0"
|
"uls-search-placeholder": "\u10d4\u10dc\u10d8\u10e1 \u10db\u10dd\u10eb\u10d4\u10d1\u10dc\u10d0"
|
||||||
}
|
}
|
||||||
@@ -201,11 +201,7 @@
|
|||||||
defaultSearch: function () {
|
defaultSearch: function () {
|
||||||
this.$resultsView.lcd( 'empty' );
|
this.$resultsView.lcd( 'empty' );
|
||||||
|
|
||||||
if ( this.options.lazyload ) {
|
this.$regionFilters.regionselector( 'show' );
|
||||||
this.$regionFilters.first().regionselector( 'show' );
|
|
||||||
} else {
|
|
||||||
this.$regionFilters.regionselector( 'show' );
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -269,7 +265,6 @@
|
|||||||
languages: uls.languages,
|
languages: uls.languages,
|
||||||
quickList: uls.options.quickList,
|
quickList: uls.options.quickList,
|
||||||
clickhandler: $.proxy( uls.select, uls ),
|
clickhandler: $.proxy( uls.select, uls ),
|
||||||
lazyload: uls.options.lazyload,
|
|
||||||
source: uls.$languageFilter,
|
source: uls.$languageFilter,
|
||||||
showRegions: uls.options.showRegions
|
showRegions: uls.options.showRegions
|
||||||
} ).data( 'lcd' );
|
} ).data( 'lcd' );
|
||||||
@@ -412,7 +407,6 @@
|
|||||||
searchAPI: null, // Language search API
|
searchAPI: null, // Language search API
|
||||||
languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages
|
languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages
|
||||||
quickList: null, // Array of language codes or function that returns such
|
quickList: null, // Array of language codes or function that returns such
|
||||||
lazyload: true, // Lazy load the language list when scrolled.
|
|
||||||
compact: false, // Show ULS in compact mode
|
compact: false, // Show ULS in compact mode
|
||||||
showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA']
|
showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA']
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -287,11 +287,6 @@
|
|||||||
scrollTop = $ulsLanguageList.position().top,
|
scrollTop = $ulsLanguageList.position().top,
|
||||||
scrollBottom = $ulsLanguageList.height();
|
scrollBottom = $ulsLanguageList.height();
|
||||||
|
|
||||||
if ( lcd.options.lazyload && lcd.options.source.val() === '' ) {
|
|
||||||
if ( this.offsetHeight + this.scrollTop >= this.scrollHeight / 2 ) {
|
|
||||||
lcd.$element.trigger( 'scrollend' );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// The region section need to be in sync with the map filter.
|
// The region section need to be in sync with the map filter.
|
||||||
inviewRegion = 'WW';
|
inviewRegion = 'WW';
|
||||||
lcd.$element.find( 'div.uls-lcd-region-section' ).each( function () {
|
lcd.$element.find( 'div.uls-lcd-region-section' ).each( function () {
|
||||||
@@ -332,8 +327,7 @@
|
|||||||
|
|
||||||
$.fn.lcd.defaults = {
|
$.fn.lcd.defaults = {
|
||||||
languages: null,
|
languages: null,
|
||||||
showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],
|
showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA']
|
||||||
lazyload: true
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$.fn.lcd.Constructor = LanguageCategoryDisplay;
|
$.fn.lcd.Constructor = LanguageCategoryDisplay;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
/* RegionSelector plugin definition */
|
/* RegionSelector plugin definition */
|
||||||
|
|
||||||
var RegionSelector, delay;
|
var RegionSelector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Region selector is a language selector based on regions.
|
* Region selector is a language selector based on regions.
|
||||||
@@ -70,7 +70,16 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
show: function () {
|
show: function () {
|
||||||
var result, languagesByScriptGroup, scriptGroup, languages, i;
|
var result, languagesByScriptGroup, scriptGroup, languages, i,
|
||||||
|
$element = this.options.$target && this.options.$target.$element,
|
||||||
|
$parent = $element && $element.parent(),
|
||||||
|
$prev = $element && $element.prev();
|
||||||
|
|
||||||
|
if ( $element && $parent ) {
|
||||||
|
// Avoid reflows while adding new elements to the list
|
||||||
|
// Use .detach() to keep jQuery events and data associated with elements
|
||||||
|
$element.detach();
|
||||||
|
}
|
||||||
|
|
||||||
if ( this.cache ) {
|
if ( this.cache ) {
|
||||||
// If the result cache is present, render the results from there.
|
// If the result cache is present, render the results from there.
|
||||||
@@ -106,6 +115,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( $element && $parent ) {
|
||||||
|
// Restore the element to where we removed it from
|
||||||
|
if ( $prev ) {
|
||||||
|
$prev.after( $element );
|
||||||
|
} else {
|
||||||
|
$parent.append( $element );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( this.options.success ) {
|
if ( this.options.success ) {
|
||||||
this.options.success( this );
|
this.options.success( this );
|
||||||
}
|
}
|
||||||
@@ -121,32 +139,8 @@
|
|||||||
$target.append( langCode, region );
|
$target.append( langCode, region );
|
||||||
},
|
},
|
||||||
|
|
||||||
next: function () {
|
|
||||||
var regionSelector = this;
|
|
||||||
|
|
||||||
if ( !this.$element.hasClass( 'active' ) ) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do not respond to all scroll end events, but only after a short interval
|
|
||||||
delay( function () {
|
|
||||||
var nextRegionGroupNumber = regionSelector.$element.data( 'regiongroup' ) + 1,
|
|
||||||
$nextRegion = $( '#uls-region-' + nextRegionGroupNumber ),
|
|
||||||
nextRegionSelector = $nextRegion.length && $nextRegion.data( 'regionselector' );
|
|
||||||
|
|
||||||
// If cache is defined, then it is already rendered and there's no need
|
|
||||||
// to re-render it.
|
|
||||||
if ( nextRegionSelector && nextRegionSelector.cache === null ) {
|
|
||||||
nextRegionSelector.show();
|
|
||||||
}
|
|
||||||
}, 100 );
|
|
||||||
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
|
|
||||||
listen: function () {
|
listen: function () {
|
||||||
this.$element.on( 'click', $.proxy( this.click, this ) );
|
this.$element.on( 'click', $.proxy( this.click, this ) );
|
||||||
this.options.$target.$element.bind( 'scrollend', $.proxy( this.next, this ) );
|
|
||||||
},
|
},
|
||||||
|
|
||||||
click: function () {
|
click: function () {
|
||||||
@@ -195,12 +189,4 @@
|
|||||||
|
|
||||||
$.fn.regionselector.Constructor = RegionSelector;
|
$.fn.regionselector.Constructor = RegionSelector;
|
||||||
|
|
||||||
delay = ( function () {
|
|
||||||
var timer = 0;
|
|
||||||
return function ( callback, milliseconds ) {
|
|
||||||
clearTimeout( timer );
|
|
||||||
timer = setTimeout( callback, milliseconds );
|
|
||||||
};
|
|
||||||
} () );
|
|
||||||
|
|
||||||
} ( jQuery ) );
|
} ( jQuery ) );
|
||||||
|
|||||||
Reference in New Issue
Block a user