Drupal.states = states;
+ function invert(a, invertState) {
+ return invertState && typeof a !== 'undefined' ? !a : a;
+ }
+
+ function _compare2(a, b) {
+ if (a === b) {
+ return typeof a === 'undefined' ? a : true;
+ }
+
+ return typeof a === 'undefined' || typeof b === 'undefined';
+ }
+
+ function ternary(a, b) {
+ if (typeof a === 'undefined') {
+ return b;
+ }
+ if (typeof b === 'undefined') {
+ return a;
+ }
+
+ return a && b;
+ }
+
Drupal.behaviors.states = {
attach: function attach(context, settings) {
var $states = $(context).find('[data-drupal-states]');
states.Dependent.prototype = {
initializeDependee: function initializeDependee(selector, dependeeStates) {
- var state = void 0;
- var self = this;
-
- function stateEventHandler(e) {
- self.update(e.data.selector, e.data.state, e.value);
- }
+ var _this2 = this;
this.values[selector] = {};
- for (var i in dependeeStates) {
- if (dependeeStates.hasOwnProperty(i)) {
- state = dependeeStates[i];
+ Object.keys(dependeeStates).forEach(function (i) {
+ var state = dependeeStates[i];
- if ($.inArray(state, dependeeStates) === -1) {
- continue;
- }
+ if ($.inArray(state, dependeeStates) === -1) {
+ return;
+ }
- state = states.State.sanitize(state);
+ state = states.State.sanitize(state);
- this.values[selector][state.name] = null;
+ _this2.values[selector][state.name] = null;
- $(selector).on('state:' + state, { selector: selector, state: state }, stateEventHandler);
+ $(selector).on('state:' + state, { selector: selector, state: state }, function (e) {
+ _this2.update(e.data.selector, e.data.state, e.value);
+ });
- new states.Trigger({ selector: selector, state: state });
- }
- }
+ new states.Trigger({ selector: selector, state: state });
+ });
},
compare: function compare(reference, selector, state) {
var value = this.values[selector][state.name];
value = invert(value, this.state.invert);
- this.element.trigger({ type: 'state:' + this.state, value: value, trigger: true });
+ this.element.trigger({
+ type: 'state:' + this.state,
+ value: value,
+ trigger: true
+ });
}
},
verifyConstraints: function verifyConstraints(constraints, selector) {
states.Trigger.prototype = {
initialize: function initialize() {
- var _this2 = this;
+ var _this3 = this;
var trigger = states.Trigger.states[this.state];
trigger.call(window, this.element);
} else {
Object.keys(trigger || {}).forEach(function (event) {
- _this2.defaultTrigger(event, trigger[event]);
+ _this3.defaultTrigger(event, trigger[event]);
});
}
var value = valueFn.call(this.element, e);
if (oldValue !== value) {
- this.element.trigger({ type: 'state:' + this.state, value: value, oldValue: oldValue });
+ this.element.trigger({
+ type: 'state:' + this.state,
+ value: value,
+ oldValue: oldValue
+ });
oldValue = value;
}
}, this));
states.postponed.push($.proxy(function () {
- this.element.trigger({ type: 'state:' + this.state, value: oldValue, oldValue: null });
+ this.element.trigger({
+ type: 'state:' + this.state,
+ value: oldValue,
+ oldValue: null
+ });
}, this));
}
};
}
}
});
-
- function ternary(a, b) {
- if (typeof a === 'undefined') {
- return b;
- } else if (typeof b === 'undefined') {
- return a;
- }
-
- return a && b;
- }
-
- function invert(a, invertState) {
- return invertState && typeof a !== 'undefined' ? !a : a;
- }
-
- function _compare2(a, b) {
- if (a === b) {
- return typeof a === 'undefined' ? a : true;
- }
-
- return typeof a === 'undefined' || typeof b === 'undefined';
- }
})(jQuery, Drupal);
\ No newline at end of file