/* global Polymer */ (function(Polymer) { 'use strict'; Polymer({ is: 'unit-grid-info-features', properties: { price: Number, unit: Object, priceSet: Object, _features: { type: Array }, _hasFeatures: { type: Boolean, value: false } }, behaviors: [CommonBehavior, DevelopmentHelper], observers: [ '_setUnitFeatures(unit, priceSet)' ], _formatInternalSquarePrice: function(price, unit) { return this.formatFullPrice(price / unit.internalSpace); }, _formatTotalSquarePrice: function(price, unit) { return this.formatFullPrice(price / (unit.internalSpace + unit.externalSpace)); }, _setUnitFeatures: function(unit, priceSet) { if (priceSet.type !== 'assumptions') { //will reset this just in case they if previous priset had features this.set('_features', []); this.set('_hasFeatures', false); return; } var assumption = priceSet.assumption; var unitFeatures; var features = []; unitFeatures = this.getUnitFeatures(unit, priceSet.assumption); if (unitFeatures) { _.forEach(unitFeatures, function(featureKey) { if (assumption.features) { features.push(assumption.features[featureKey]); } }.bind(this)); } this.set('_features', features); this.set('_hasFeatures', features.length > 0); } }); })(Polymer);