@lemonadejs/rating
Advanced tools
Comparing version 1.0.1 to 2.0.0
@@ -0,1 +1,5 @@ | ||
if (!lemonade && typeof (require) === 'function') { | ||
var lemonade = require('lemonadejs'); | ||
} | ||
;(function (global, factory) { | ||
@@ -7,13 +11,5 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | ||
// Load LemonadeJS | ||
if (typeof(lemonade) == 'undefined') { | ||
if (typeof(require) === 'function') { | ||
var lemonade = require('lemonadejs'); | ||
} else if (window.lemonade) { | ||
var lemonade = window.lemonade; | ||
} | ||
} | ||
const Rating = function() { | ||
let self = this; | ||
return function() { | ||
var self = this; | ||
if (! self.number) { | ||
@@ -25,6 +21,6 @@ self.number = 5; | ||
// Event | ||
var change = self.onchange; | ||
let change = self.onchange; | ||
// Current self star | ||
var current = null; | ||
let current = null; | ||
@@ -34,3 +30,3 @@ /** | ||
*/ | ||
var len = function() { | ||
const len = function() { | ||
// Remove stars | ||
@@ -44,3 +40,3 @@ if (self.number < self.stars.length) { | ||
// Add missing stars | ||
for (var i = 0; i < self.number; i++) { | ||
for (let i = 0; i < self.number; i++) { | ||
if (! self.stars[i]) { | ||
@@ -54,7 +50,7 @@ self.stars[i] = {}; | ||
var val = function() { | ||
const val = function() { | ||
// Update value | ||
if (self.value > 0) { | ||
var t = null; | ||
if (t = self.stars[self.value-1]) { | ||
let t = self.stars[self.value-1]; | ||
if (t) { | ||
self.click(t); | ||
@@ -66,5 +62,5 @@ } | ||
self.onchange = function(prop) { | ||
if (prop == 'number') { | ||
if (prop === 'number') { | ||
len(); | ||
} else if (prop == 'value') { | ||
} else if (prop === 'value') { | ||
val(); | ||
@@ -75,2 +71,11 @@ } | ||
self.onload = function() { | ||
// Bind global method to be compatible with LemonadeJS forms | ||
self.el.val = function(v) { | ||
if (typeof(v) === 'undefined') { | ||
return self.value; | ||
} else { | ||
self.value = v; | ||
} | ||
} | ||
len(); | ||
@@ -84,14 +89,11 @@ val(); | ||
} | ||
var index = self.stars.indexOf(s); | ||
for (var i = 0; i < self.number; i++) { | ||
if (i <= index && s !== current) { | ||
self.stars[i].selected = 1; | ||
self.stars[i].el.style.color = 'red'; | ||
} else { | ||
self.stars[i].selected = 0; | ||
self.stars[i].el.style.color = ''; | ||
} | ||
let index = self.stars.indexOf(s); | ||
for (let i = 0; i < self.number; i++) { | ||
let selected = i <= index && s !== current ? 1 : 0; | ||
self.stars[i].selected = selected; | ||
self.stars[i].el.style.color = selected ? 'red' : ''; | ||
} | ||
current = s; | ||
if (change) { | ||
if (typeof(change) === 'function') { | ||
change(index+1, s); | ||
@@ -101,19 +103,18 @@ } | ||
var template = `<div @loop="self.stars" value="{{self.value}}" @ref="self.component" number="{{self.number}}" name="{{self.name}}" style="cursor: pointer"> | ||
return `<div value="{{self.value}}" number="{{self.number}}" name="{{self.name}}" style="cursor: pointer" :loop="self.stars" :ref="self.component"> | ||
<i class="material-icons" onclick="self.parent.click(self)">{{self.selected?'star':'star_outline'}}</i> | ||
</div>`; | ||
} | ||
var root = lemonade.element(template, self); | ||
lemonade.setComponents({ Rating: Rating }); | ||
root.val = function(v) { | ||
if (typeof(v) === 'undefined') { | ||
return self.value; | ||
} else { | ||
self.value = v; | ||
} | ||
return function (root, options) { | ||
if (typeof (root) === 'object') { | ||
lemonade.render(Rating, root, options) | ||
return options; | ||
} else { | ||
return Rating.call(this, root) | ||
} | ||
return root; | ||
} | ||
}))); |
@@ -18,6 +18,6 @@ { | ||
"dependencies": { | ||
"lemonadejs": "^2.1.12" | ||
"lemonadejs": "^3.5.1" | ||
}, | ||
"main": "dist/index.js", | ||
"version": "1.0.1" | ||
"version": "2.0.0" | ||
} |
3884
94
+ Addedlemonadejs@3.5.1(transitive)
- Removedlemonadejs@2.8.11(transitive)
Updatedlemonadejs@^3.5.1