Browse Source

Improve getProperties in Sector

up-style-manager
Artur Arseniev 5 years ago
parent
commit
0f85416587
  1. 35
      src/style_manager/model/Sector.js

35
src/style_manager/model/Sector.js

@ -20,7 +20,7 @@ export default class Sector extends Model {
open: true, open: true,
buildProps: '', buildProps: '',
extendBuilded: 1, extendBuilded: 1,
properties: [] properties: [],
}; };
} }
@ -89,17 +89,32 @@ export default class Sector extends Model {
/** /**
* Get sector properties. * Get sector properties.
* @param {Object} [opts={}] Options
* @param {Boolean} [opts.withValue=false] Get only properties with value
* @param {Boolean} [opts.withParentValue=false] Get only properties with parent value
* @returns {Array<[Property]>} * @returns {Array<[Property]>}
*/ */
getProperties() { getProperties(opts = {}) {
const props = this.get('properties'); const props = this.get('properties');
return props.models ? [...props.models] : props; const res = props.models ? [...props.models] : props;
return res.filter(prop => {
let result = true;
if (opts.withValue) {
result = prop.hasValue({ noParent: true });
}
if (opts.withParentValue) {
const hasVal = prop.hasValue({ noParent: true });
result = !hasVal && prop.hasValue();
}
return result;
});
} }
getProperty(id) { getProperty(id) {
return ( return this.getProperties().filter(prop => prop.get('id') === id)[0] || null;
this.getProperties().filter(prop => prop.get('id') === id)[0] || null
);
} }
/** /**
@ -126,11 +141,7 @@ export default class Sector extends Model {
// Check for nested properties // Check for nested properties
var mPProps = mProp.properties; var mPProps = mProp.properties;
if (mPProps && mPProps.length) { if (mPProps && mPProps.length) {
mProp.properties = this.extendProperties( mProp.properties = this.extendProperties(prop.properties || [], mPProps, 1);
prop.properties || [],
mPProps,
1
);
} }
props[j] = ext ? extend(prop, mProp) : mProp; props[j] = ext ? extend(prop, mProp) : mProp;
isolated[j] = props[j]; isolated[j] = props[j];
@ -153,7 +164,7 @@ export default class Sector extends Model {
if (extend) { if (extend) {
return { return {
...(this.buildProperties([extend])[0] || {}), ...(this.buildProperties([extend])[0] || {}),
...rest ...rest,
}; };
} else { } else {
return prop; return prop;

Loading…
Cancel
Save