Browse Source

Added new methods to handle state selector

pull/2474/head
Artur Arseniev 7 years ago
parent
commit
59f0e258f3
  1. 25
      src/selector_manager/index.js
  2. 11
      src/selector_manager/view/ClassTagsView.js

25
src/selector_manager/index.js

@ -39,7 +39,9 @@
* * [add](#add) * * [add](#add)
* * [addClass](#addclass) * * [addClass](#addclass)
* * [get](#get) * * [get](#get)
* * [getAll](#getAll) * * [getAll](#getall)
* * [setState](#setstate)
* * [getState](#getstate)
* *
* @module SelectorManager * @module SelectorManager
*/ */
@ -90,6 +92,7 @@ export default config => {
}; };
const em = c.em; const em = c.em;
const ppfx = c.pStylePrefix; const ppfx = c.pStylePrefix;
this.em = em;
if (ppfx) { if (ppfx) {
c.stylePrefix = ppfx + c.stylePrefix; c.stylePrefix = ppfx + c.stylePrefix;
@ -126,6 +129,26 @@ export default config => {
} }
}, },
/**
* Change the selector state
* @param {String} value State value
* @returns {this}
* @example
* selectorManager.setState('hover');
*/
setState(value) {
this.em.set('state', value);
return this;
},
/**
* Get the current selector state
* @returns {String}
*/
getState() {
return this.em.get('state');
},
addSelector(name, opt = {}) { addSelector(name, opt = {}) {
let opts = { ...opt }; let opts = { ...opt };

11
src/selector_manager/view/ClassTagsView.js

@ -195,6 +195,12 @@ export default Backbone.View.extend({
else if (e.keyCode === 27) this.endNewTag(); else if (e.keyCode === 27) this.endNewTag();
}, },
checkStates() {
const state = this.em.get('state');
const statesEl = this.getStates();
statesEl && statesEl.val(state);
},
/** /**
* Triggered when component is changed * Triggered when component is changed
* @param {Object} e * @param {Object} e
@ -203,12 +209,10 @@ export default Backbone.View.extend({
componentChanged: debounce(function() { componentChanged: debounce(function() {
const { em } = this; const { em } = this;
const target = this.getTarget(); const target = this.getTarget();
const state = em.get('state');
let validSelectors = []; let validSelectors = [];
if (target) { if (target) {
const statesEl = this.getStates(); this.checkStates();
statesEl && statesEl.val(state);
validSelectors = this.getCommonSelectors(); validSelectors = this.getCommonSelectors();
this.checkSync({ validSelectors }); this.checkSync({ validSelectors });
} }
@ -286,6 +290,7 @@ export default Backbone.View.extend({
: this.__getName(selected); : this.__getName(selected);
const elSel = this.el.querySelector('[data-selected]'); const elSel = this.el.querySelector('[data-selected]');
elSel && (elSel.innerHTML = result); elSel && (elSel.innerHTML = result);
this.checkStates();
}, },
__getName(target) { __getName(target) {

Loading…
Cancel
Save