Browse Source

Improve StyleManager addProperty

pull/4144/head
Artur Arseniev 4 years ago
parent
commit
343dd38d92
  1. 2
      src/style_manager/index.js
  2. 6
      src/style_manager/model/Sector.js
  3. 9
      test/specs/style_manager/index.js

2
src/style_manager/index.js

@ -270,7 +270,7 @@ export default () => {
addProperty(sectorId, property, opts = {}) {
const sector = this.getSector(sectorId, { warn: 1 });
let prop = null;
if (sector) prop = sector.get('properties').add(property, opts);
if (sector) prop = sector.addProperty(property, opts);
return prop;
},

6
src/style_manager/model/Sector.js

@ -1,5 +1,5 @@
import { Model } from 'common';
import { extend, isString } from 'underscore';
import { extend, isString, isArray } from 'underscore';
import Properties from './Properties';
/**
@ -128,6 +128,10 @@ export default class Sector extends Model {
return this.getProperties().filter(prop => prop.get('id') === id)[0] || null;
}
addProperty(property, opts) {
return this.get('properties').add(this.checkExtend(property), opts);
}
/**
* Extend properties
* @param {Array<Object>} props Start properties

9
test/specs/style_manager/index.js

@ -277,6 +277,15 @@ describe('StyleManager', () => {
var prop1 = obj.getProperty('dim', 'width');
expect(prop1.get('name')).toEqual('Width');
});
test('Add built-in', () => {
obj.addBuiltIn('test', { type: 'number' });
obj.addBuiltIn('test2', { type: 'stack' });
const added = obj.addProperty('dim', { extend: 'test' });
expect(added.getType()).toEqual('number');
const added2 = obj.addProperty('dim', 'test2');
expect(added2.getType()).toEqual('stack');
});
});
});
});

Loading…
Cancel
Save