Guest User

Untitled

a guest
Jul 21st, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. SC.Binding.lt = function (max) {
  2. return this.transform(function (value, binding) {
  3. return SC.typeOf(value) === SC.T_NUMBER && value < max;
  4. });
  5. };
  6.  
  7. SC.Binding.gt = function (min) {
  8. return this.transform(function (value, binding) {
  9. return SC.typeOf(value) === SC.T_NUMBER && value > min;
  10. });
  11. };
  12.  
  13. SC.Binding._every = function (paths, compareFn) {
  14. var keys = [], gate, idx, len, key, binding, transform;
  15.  
  16. gate = SC.Object.create();
  17.  
  18. for (idx = 0, len = paths.length; idx < len; idx++) {
  19. key = 'value'+(idx+1);
  20. keys.push(key);
  21. binding = paths[idx];
  22. if (SC.typeOf(binding) === SC.T_STRING) {
  23. binding = SC.Binding.oneWay(binding);
  24. }
  25. binding.to(key, gate).connect();
  26. }
  27.  
  28. transform = function () {
  29. var values = [], idx, len;
  30. for (idx = 0, len = keys.length; idx < len; idx++) {
  31. values.push(this.get(keys[idx]));
  32. }
  33. return values.every(compareFn);
  34. };
  35.  
  36. gate.mixin({
  37. all: SC.Function.property(transform, keys).cacheable()
  38. });
  39.  
  40. gate.registerDependentKey('all', keys);
  41.  
  42. return SC.Binding.from('all', gate).oneWay();
  43. };
  44.  
  45. SC.Binding.all = function () {
  46. return SC.Binding._every(arguments, function (v) { return !!v; });
  47. };
  48.  
  49. SC.Binding.none = function () {
  50. return SC.Binding._every(arguments, function (v) { return !v; });
  51. };
Add Comment
Please, Sign In to add comment