Browse Source

Add `rename` method to SelectorManager

pull/4957/head
Artur Arseniev 4 years ago
parent
commit
91058e7d09
  1. 20
      src/selector_manager/index.ts

20
src/selector_manager/index.ts

@ -52,6 +52,7 @@
* * [add](#add) * * [add](#add)
* * [get](#get) * * [get](#get)
* * [remove](#remove) * * [remove](#remove)
* * [rename](#rename)
* * [getAll](#getall) * * [getAll](#getall)
* * [setState](#setstate) * * [setState](#setstate)
* * [getState](#getstate) * * [getState](#getstate)
@ -74,7 +75,7 @@
import { isString, debounce, isObject, isArray, bindAll } from 'underscore'; import { isString, debounce, isObject, isArray, bindAll } from 'underscore';
import { isComponent, isRule } from '../utils/mixins'; import { isComponent, isRule } from '../utils/mixins';
import { Model, Collection, RemoveOptions, Debounced } from '../common'; import { Model, Collection, RemoveOptions, SetOptions, Debounced } from '../common';
import defaults, { SelectorManagerConfig } from './config/config'; import defaults, { SelectorManagerConfig } from './config/config';
import Selector from './model/Selector'; import Selector from './model/Selector';
import Selectors from './model/Selectors'; import Selectors from './model/Selectors';
@ -329,6 +330,23 @@ export default class SelectorManager extends ItemManagerModule<SelectorManagerCo
return this.__remove(selector, opts); return this.__remove(selector, opts);
} }
/**
* Rename Selector.
* @param {[Selector]} selector Selector to update.
* @param {String} name New name for the selector.
* @returns {[Selector]} Selector containing the passed name.
* @example
* const selector = selectorManager.get('myclass');
* const result = selectorManager.rename(selector, 'myclass2');
* console.log(result === selector ? 'Selector updated' : 'Selector with this name exists already');
*/
rename(selector: Selector, name: string, opts?: SetOptions) {
const newName = this.escapeName(name);
const result = this.get(newName);
return result || selector.set({ name: newName, label: name }, opts);
}
/** /**
* Change the selector state * Change the selector state
* @param {String} value State value * @param {String} value State value

Loading…
Cancel
Save