%PDF- %PDF-
| Direktori : /home1/lightco1/www/ilfanale.com.au/plugins/system/easyslider/assets/js/model/ |
| Current File : //home1/lightco1/www/ilfanale.com.au/plugins/system/easyslider/assets/js/model/core.js |
void function( exports, $, _, Backbone ) {
exports.ES_Model = B.Model;
exports.ES_Collection = B.Collection;
exports.ES_Origin = B.Model({
x: 0,
y: 0
});
exports.ES_Image = B.Model({
alt: '',
src: '',
ratio: 1,
width: 0,
height: 0,
},{
initialize: function() {
var self = this;
this.on('change:src', function( ) {
var image = new Image;
var src = this.get('src');
self.trigger('loadstart');
image.onload = function() {
self.set({
width: this.width,
height: this.height,
ratio: this.width / this.height
});
self.trigger('load');
}
image.error = function() {
console.warn('Failed to load image: ', this.src);
self.set({
width: 0,
height: 0,
ratio: 1
});
self.trigger('loaderror');
}
image.src = src;
});
},
});
exports.ES_Video = B.Model({
autoplay: true,
controls: false,
loop: false,
mute: false,
volume: 100,
speed: 1,
youtube: null,
vimeo: null,
mp4: null,
webm: null,
ogg: null,
ratio: 2.3,
youtubeRatio: 0,
vimeoRatio: 0,
youtubeID: B.Compute(['youtube'], function(arg){
if (arg) {
var ID = arg.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/)
if(ID && ID[2]) {
return ID[2];
}
}
return null;
}),
vimeoID: B.Compute(['vimeo'], function(arg){
if ( arg) {
var ID = arg.match(/([0-9]+)/);
if( ID) {
return ID[1];
}
}
return null;
}),
selector: 'provider',
videoURL: B.Compute({
deps: ['youtube','vimeo'],
get: function( youtube, vimeo ) {
return youtube || vimeo || '';
},
set: function ( videoURL ) {
if( videoURL ) {
videoURL = videoURL.toString();
if ( videoURL.match(/youtube/) || videoURL.match(/youtu\.be/) ) {
var ID = videoURL.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/)
if(ID && ID[2]) {
this.set({
youtube: 'https://www.youtube.com/watch?v=' + ID[2],
vimeo: '',
})
}
}
else if ( videoURL.match(/vimeo/) ) {
this.set({
youtube: '',
vimeo: videoURL,
})
}
else {
if (this.parent) {
this.set({
youtube: '',
vimeo: '',
});
this.parent.set('image.src', ' ');
this.parent.set('color', '#000000');
}
}
}
else {
this.set({
youtube: '',
vimeo: '',
});
if (this.parent) {
this.parent.set('image.src', ' ');
this.parent.set('color', '#000000');
}
}
}
}),
isProvider: B.Compute(['selector'], function(arg){
return arg == 'provider' ? true : false;
}),
isLocal: B.Compute(['selector'], function(arg){
return arg == 'local' ? true : false;
})
//ratio: 0,
},{
initialize: function() {
this.onChangeVideo = _.debounce(this.onChangeVideo)
this.on('change:youtube', this.onChangeVideo);
this.on('change:vimeo', this.onChangeVideo);
this.on('change:selector', this.onChangeVideo);
},
onChangeVideo: function(){
var model = this;
if(this.get('selector') == 'provider') {
var youtubeID = this.get('youtubeID');
if ( youtubeID ) {
this.parent.set('image.src', 'http://img.youtube.com/vi/' + youtubeID + '/1.jpg');
this.getVideoRatio( this.get( 'youtube' ));
return;
}
var vimeoID = this.get('vimeoID');
if ( vimeoID ) {
$.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoID + '.json?callback=?', {format: "json"}, function(data) {
model.parent.set('image.src', data[0].thumbnail_large);
model.getVideoRatio( model.get( 'vimeo' ));
});
return;
}
}
else if(this.get('selector') == 'local'){
this.parent.set('image.src', ' ');
this.parent.set('color', '#000000');
}
},
//onChangeVideoURL: function(){
// var videoURL = this.get('videoURL');
// if ( videoURL.match(/youtube/) ) {
// var ID = videoURL.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/)
// if(ID && ID[2]) {
// this.set({
// youtube: '',
// vimeo: '',
// }, {silent: true});
// this.set({
// youtube: 'https://www.youtube.com/watch?v=' + ID[2],
// })
// }
// }
// else if ( videoURL.match(/vimeo/) ) {
// this.set({
// youtube: '',
// vimeo: '',
// }, {silent: true});
// this.set({
// vimeo: videoURL,
// })
// }
// else {
// this.parent.set('image.src', ' ');
// this.parent.set('color', '#000000');
// }
//},
getVideoRatio: function(videoURL){
var model = this;
$.ajax({
url: ES_Config.URL.GET_RATIO_VIDEO,
type: 'POST',
dataType: 'json',
data: { video_url: videoURL },
success: function ( response ) {
model.setRatio(videoURL, response);
},
error: function ( req ) {
}
});
},
setRatio: function(url, data) {
if (data && data.status && data.width && data.height) {
if ( url.match(/youtube/) ) {
this.set('youtubeRatio', data.width / data.height);
}
if ( url.match(/vimeo/) ) {
this.set('vimeoRatio', data.width / data.height);
}
}
}
});
exports.ES_Gradient = B.Model({
type: 'linear',
angle: 0,
from: '#000000',
to: '#000000'
});
exports.ES_Background = B.Model({
color: '',
image: ES_Image,
video: ES_Video,
gradient: ES_Gradient,
repeat: false,
position: 'center',
size: 'cover',
parallax_depth: 0.5,
kenburn: B.Model({
enable: false,
disable: B.Compute(['enable'], function(arg){
return !arg;
}),
position: '150% 150%',
size: '150%',
easing: 'linear'
}),
parallax: B.Model({
enable: false,
type: "mouse-move",
depth: 50
}),
localVideo: B.Compute(function() {
return this.get('video.mp4') || this.get('video.ogg') || this.get('video.webm') ? true : false;
})
});
exports.ES_Attributes = B.Model({
'id': '',
'class': '',
'href': '',
'target': ''
});
exports.ES_FontsCollection = B.Collection([
B.Model({
name: 'Font Group',
fonts: B.Collection([
B.Model({ name: 'Font Name' })
])
})
],{
constructor: function ES_FontsCollection() {
B.Collection.call(this, this.constructor.presets)
}
},{
presets: [
{
name: "Sans Serif",
fonts: [ { "name": "Open Sans" }, { "name": "Roboto" }, { "name": "Lato" }, { "name": "Oswald" }, { "name": "Roboto Condensed" }, { "name": "Source Sans Pro" }, { "name": "PT Sans" }, { "name": "Droid Sans" }, { "name": "Raleway" }, { "name": "Montserrat" }, { "name": "Ubuntu" }, { "name": "PT Sans Narrow" }, { "name": "Arimo" }, { "name": "Titillium Web" }, { "name": "Dosis" }, { "name": "Oxygen" }, { "name": "Hind" }, { "name": "Muli" }, { "name": "Fira Sans" }, { "name": "Play" }, { "name": "Signika" }, { "name": "Merriweather Sans" }, { "name": "Josefin Sans" }, { "name": "Archivo Narrow" }, { "name": "Archivo Black" }, { "name": "Exo 2" }, { "name": "Asap" }, { "name": "Karla" }, { "name": "Orbitron" }, { "name": "Quicksand" }, { "name": "Exo" }, { "name": "Ropa Sans" }, { "name": "Cabin Condensed" }, { "name": "Hammersmith One" }, { "name": "Jura" }, { "name": "Russo One" }, { "name": "Rambla" }, { "name": "Chivo" }, { "name": "Viga" }, { "name": "Rajdhani" }, { "name": "Teko" }, { "name": "Cambay" }, { "name": "Sarpanch" }, { "name": "Poppins" }, { "name": "NTR" }, { "name": "Yantramanav" }, { "name": "Jaldi" }, { "name": "Pragati Narrow" } ]
},
{
name: "Serif",
fonts: [ { "name": "Lora" }, { "name": "Droid Serif" }, { "name": "Roboto Slab" }, { "name": "Merriweather" }, { "name": "Kadwa" }, { "name": "Sumana" }, { "name": "Martel" }, { "name": "Suranna" }, { "name": "Sree Krushnadevaraya" }, { "name": "Rozha One" }, { "name": "Vesper Libre" }, { "name": "Almendra" }, { "name": "Karma" }, { "name": "Stoke" }, { "name": "Inika" }, { "name": "Slabo 13px" }, { "name": "Rufina" }, { "name": "Tienne" }, { "name": "Podkova" }, { "name": "Judson" }, { "name": "Oranienbaum" }, { "name": "Prata" }, { "name": "Adamina" }, { "name": "Arapey" }, { "name": "Copse" }, { "name": "Alice" }, { "name": "Coustard" }, { "name": "Neuton" }, { "name": "Ultra" }, { "name": "Glegoo" }, { "name": "Cantata One" }, { "name": "Vidaloka" }, { "name": "Enriqueta" }, { "name": "Playfair Display SC" }, { "name": "Kreon" }, { "name": "Old Standard TT" }, { "name": "Josefin Slab" }, { "name": "Sanchez" }, { "name": "Noticia Text" }, { "name": "Crete Round" }, { "name": "Rokkitt" }, { "name": "Bree Serif" }, { "name": "Arvo" }, { "name": "Playfair Display" }, { "name": "Bitter" } ]
},
{
name: "Display",
fonts: [ { "name": "Lobster" }, { "name": "Abril Fatface" }, { "name": "Patua One" }, { "name": "Lobster Two" }, { "name": "Bangers" }, { "name": "Fredoka One" }, { "name": "Alfa Slab One" }, { "name": "Passion One" }, { "name": "Righteous" }, { "name": "Playball" }, { "name": "Fugaz One" }, { "name": "Squada One" }, { "name": "Bevan" }, { "name": "Oleo Script" }, { "name": "Contrail One" }, { "name": "Monoton" }, { "name": "Sansita One" }, { "name": "Ceviche One" }, { "name": "Unica One" }, { "name": "Seaweed Script" }, { "name": "Kelly Slab" }, { "name": "Yeseva One" }, { "name": "Oleo Script Swash Caps" }, { "name": "Graduate" }, { "name": "Trade Winds" }, { "name": "Medula One" }, { "name": "Sancreek" }, { "name": "Rye" }, { "name": "Geostar Fill" }, { "name": "Geostar" }, { "name": "Ewert" }, { "name": "Metal Mania" }, { "name": "Faster One" }, { "name": "Ranga" } ]
},
{
name: "Hand-writing",
fonts: [ { "name": "Romanesco" }, { "name": "Mrs Saint Delafield" }, { "name": "Aguafina Script" }, { "name": "Herr Von Muellerhoff" }, { "name": "Yesteryear" }, { "name": "Yellowtail" }, { "name": "Grand Hotel" }, { "name": "Allura" }, { "name": "Nothing You Could Do" }, { "name": "Great Vibes" }, { "name": "Kaushan Script" } ]
},
{
name: "Monospace",
fonts: [ { "name": "Roboto Mono" }, { "name": "Cutive Mono" }, { "name": "PT Mono" }, { "name": "Ubuntu Mono" }, { "name": "Source Code Pro" }, { "name": "Inconsolata" } ]
}
]
})
exports.ES_Fonts = B.Collection.extend( {
model: B.Model.extend({
defaults: {
name: '',
loaded: false,
system: false
},
load: function() {
if (!this.get('loaded') && !this.get('system')){
this.set('loaded', true);
$( 'body' ).append( "<link href='//fonts.googleapis.com/css?family=" + this.get( 'name' ).replace( /\s+/g, '+' ) + "' rel='stylesheet' data-noprefix type='text/css'>" )
}
}
}),
constructor: function() {
var fonts = [];
_.each(ES_FontsCollection.presets, function(group) {
_.each(group.fonts, function( font ) {
fonts.push({ name: font.name, group: group.name });
});
});
B.Collection.call(this,fonts);
},
load: function( name ) {
_( this.where({ name: name }) ).invoke('load');
}
});
exports.ES_Nav = B.Collection.extend({
},{
templates: {
'slide': {
prev: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="32" height="32" viewBox="0 0 64 64"><use xlink:href="#arrow-left-1"></svg></span> ' +
'<div><h3 class="jsn-es-name"></h3><img /></div>',
next: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="32" height="32" viewBox="0 0 64 64"><use xlink:href="#arrow-right-1"></svg></span> ' +
'<div><h3 class="jsn-es-name"></h3><img /></div>',
},
'fillpath': {
prev: '<span class="jsn-es-icon-wrap"></span><h3><strong class="jsn-es-name">Prev</strong><span></span></h3>',
next: '<span class="jsn-es-icon-wrap"></span><h3><strong class="jsn-es-name">Next</strong><span></span></h3>',
},
'circlepop': {
prev: '<span class="jsn-es-icon-wrap"></span>',
next: '<span class="jsn-es-icon-wrap"></span>',
},
'roundslide': {
prev: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="32" height="32" viewBox="0 0 64 64"><use xlink:href="#arrow-left-4"></svg></span> ' +
'<h3 class="jsn-es-name">Hannah Leigh</h3>',
next: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="32" height="32" viewBox="0 0 64 64"><use xlink:href="#arrow-right-4"></svg></span> ' +
'<h3 class="jsn-es-name">Greg Kennedy</h3>',
},
'slit': {
prev: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="22" height="22" viewBox="0 0 64 64"><use xlink:href="#arrow-left-1"></svg></span> ' +
'<div><h3 class="jsn-es-name">City Lights</h3><img /></div>',
next: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="22" height="22" viewBox="0 0 64 64"><use xlink:href="#arrow-right-1"></svg></span> ' +
'<div><h3 class="jsn-es-name">City Lights</h3><img /></div>',
},
'thumbflip': {
prev: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="32" height="32" viewBox="0 0 64 64"><use xlink:href="#arrow-left-5"></svg></span> <img />',
next: '<span class="jsn-es-icon-wrap"><svg class="jsn-es-icon" width="32" height="32" viewBox="0 0 64 64"><use xlink:href="#arrow-right-5"></svg></span> <img />',
},
'name': {
prev: '',
next: '',
},
'name': {
prev: '',
next: '',
},
'name': {
prev: '',
next: '',
},
'name': {
prev: '',
next: '',
},
}
})
}( this, jQuery, _, JSNES_Backbone );