vue-trovimap-wizard
Version:
A Vue component for inputting Naira-formatted amounts.
1,429 lines (1,272 loc) • 48.4 kB
JavaScript
;Object.defineProperty(exports,'__esModule',{value:true});function _interopDefault(e){return(e&&(typeof e==='object')&&'default'in e)?e['default']:e}require('vuex');var axios=_interopDefault(require('axios')),Vue=_interopDefault(require('vue'));//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script = {
data: function data() {
return {
address: 'Passatge Escudellers, 7',
loading: false,
response: {}
}
},
methods: {
getParcelsByAddress: async function getParcelsByAddress() {
this.loading = true;
try {
await this.$store.dispatch('trovimap/FETCH_PARCELS_BY_ADDRESS', this.address);
} catch (e) {
this.response = Object.assign({}, e.data);
} finally {
this.loading = false;
}
},
parcelSelected: function parcelSelected(parcel) {
this.$emit('addressSelected', parcel);
}
},
computed: {
errors: function errors() {
if (!this.response.message) { return [] }
return [ this.response.message ]
},
}
};function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
if (typeof shadowMode !== 'boolean') {
createInjectorSSR = createInjector;
createInjector = shadowMode;
shadowMode = false;
}
// Vue.extend constructor export interop.
var options = typeof script === 'function' ? script.options : script;
// render functions
if (template && template.render) {
options.render = template.render;
options.staticRenderFns = template.staticRenderFns;
options._compiled = true;
// functional template
if (isFunctionalTemplate) {
options.functional = true;
}
}
// scopedId
if (scopeId) {
options._scopeId = scopeId;
}
var hook;
if (moduleIdentifier) {
// server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
}
// inject component styles
if (style) {
style.call(this, createInjectorSSR(context));
}
// register component module identifier for async chunk inference
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier);
}
};
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook;
}
else if (style) {
hook = shadowMode
? function (context) {
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
}
: function (context) {
style.call(this, createInjector(context));
};
}
if (hook) {
if (options.functional) {
// register for functional component in vue file
var originalRender = options.render;
options.render = function renderWithStyleInjection(h, context) {
hook.call(context);
return originalRender(h, context);
};
}
else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate;
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
}
}
return script;
}/* script */
var __vue_script__ = script;
/* template */
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('v-text-field',{attrs:{"name":"address","label":"Dirección","id":"address","placeholder":"Calle Valencia 359, 08002, Barcelona","error-messages":_vm.errors},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.getParcelsByAddress($event)}},scopedSlots:_vm._u([{key:"append",fn:function(){return [_c('v-btn',{attrs:{"disabled":_vm.loading,"color":"primary","block":""},on:{"click":_vm.getParcelsByAddress}},[_vm._v("\n Buscar\n\n "),(_vm.loading)?_c('v-progress-circular',{attrs:{"indeterminate":"","color":"white"}}):_vm._e()],1)]},proxy:true}]),model:{value:(_vm.address),callback:function ($$v) {_vm.address=$$v;},expression:"address"}})],1)],1)};
var __vue_staticRenderFns__ = [];
/* style */
var __vue_inject_styles__ = undefined;
/* scoped */
var __vue_scope_id__ = undefined;
/* module identifier */
var __vue_module_identifier__ = "data-v-4b4b85e6";
/* functional template */
var __vue_is_functional_template__ = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var ParcelByAddress = normalizeComponent(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__,
__vue_script__,
__vue_scope_id__,
__vue_is_functional_template__,
__vue_module_identifier__,
false,
undefined,
undefined,
undefined
);//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$1 = {
props: {
defaultCadastralReference: {
type: String,
default: function () { return ''; }
}
},
data: function data() {
return {
loading: false,
cadastral_reference: this.defaultCadastralReference,
response: {
message: null
}
}
},
methods: {
getBuildingUnitByCadastralReference: async function getBuildingUnitByCadastralReference() {
this.loading = true;
try {
var result = await this.$store.dispatch('trovimap/FETCH_BUILDING_UNITS_BY_CADASTRAL_REFERENCE', this.cadastral_reference);
this.response.message = null;
this.$emit('addressSelected', result);
} catch (e) {
this.response.message = e.data.message;
} finally {
this.loading = false;
}
},
},
computed: {
errors: function errors() {
if (!this.response.message) { return [] }
return [ this.response.message ]
},
}
};/* script */
var __vue_script__$1 = script$1;
/* template */
var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('v-text-field',{attrs:{"name":"cadastral_reference","label":"Referencia Cadastral","id":"cadastral_reference","placeholder":"Calle Valencia 359, 08002, Barcelona","error-messages":_vm.errors},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.getBuildingUnitByCadastralReference($event)}},scopedSlots:_vm._u([{key:"append",fn:function(){return [_c('v-btn',{attrs:{"disabled":_vm.loading,"color":"primary","block":""},on:{"click":_vm.getBuildingUnitByCadastralReference}},[_vm._v("\n Buscar\n\n "),(_vm.loading)?_c('v-progress-circular',{attrs:{"indeterminate":"","color":"white"}}):_vm._e()],1)]},proxy:true}]),model:{value:(_vm.cadastral_reference),callback:function ($$v) {_vm.cadastral_reference=$$v;},expression:"cadastral_reference"}},[_vm._v(" "),(_vm.response && _vm.response.message)?_c('div',{staticClass:"v-messages theme--light error--text"},[_c('div',{staticClass:"v-messages__wrapper"},[_c('div',{staticClass:"v-messages__message"},[_vm._v(_vm._s(_vm.response.message))])])]):_vm._e()])],1)],1)};
var __vue_staticRenderFns__$1 = [];
/* style */
var __vue_inject_styles__$1 = undefined;
/* scoped */
var __vue_scope_id__$1 = undefined;
/* module identifier */
var __vue_module_identifier__$1 = "data-v-c51498c2";
/* functional template */
var __vue_is_functional_template__$1 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var BuildingUnitByCadastralReference = normalizeComponent(
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
__vue_inject_styles__$1,
__vue_script__$1,
__vue_scope_id__$1,
__vue_is_functional_template__$1,
__vue_module_identifier__$1,
false,
undefined,
undefined,
undefined
);//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$2 = {
props: {
apartment: {
type: Object,
required: true
},
active: {
required: true,
validator: function (prop) { return typeof prop === 'string' || prop === null; }
}
},
};/* script */
var __vue_script__$2 = script$2;
/* template */
var __vue_render__$2 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-tile',{class:_vm.active === _vm.apartment.Id ? 'grey' : '',attrs:{"actions":""},on:{"click":function($event){return _vm.$emit('click')}}},[_c('v-list-tile-content',[_c('v-list-tile-title',{domProps:{"innerHTML":_vm._s(_vm.apartment.FormattedAddress)}}),_vm._v(" "),_c('v-list-tile-sub-title',[_vm._v("\n Piso: "+_vm._s(_vm.apartment.Floor)+" | Puerta "+_vm._s(_vm.apartment.Door)+" | construcción: "+_vm._s(_vm.apartment.YearBuilt)+" | m2: "+_vm._s(_vm.apartment.LivingArea)+"\n ")]),_vm._v(" "),_c('v-list-tile-sub-title',[_vm._v("\n Referencia catastral: "),_c('b',[_vm._v(_vm._s(_vm.apartment.CadastralReference))])])],1)],1)};
var __vue_staticRenderFns__$2 = [];
/* style */
var __vue_inject_styles__$2 = undefined;
/* scoped */
var __vue_scope_id__$2 = undefined;
/* module identifier */
var __vue_module_identifier__$2 = "data-v-10c51f7d";
/* functional template */
var __vue_is_functional_template__$2 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var ApartmentListElement = normalizeComponent(
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
__vue_inject_styles__$2,
__vue_script__$2,
__vue_scope_id__$2,
__vue_is_functional_template__$2,
__vue_module_identifier__$2,
false,
undefined,
undefined,
undefined
);//
var script$3 = {
data: function data() {
return {
active: null
}
},
components: {
ApartmentListElement: ApartmentListElement
},
props: {
items: {
type: Array,
default: function () { return []; }
}
},
methods: {
click: function click(item) {
this.active = item.Id;
this.$emit('selected', item);
}
}
};/* script */
var __vue_script__$3 = script$3;
/* template */
var __vue_render__$3 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{attrs:{"three-line":""}},_vm._l((_vm.items),function(item){return _c('apartment-list-element',{key:item.Id,attrs:{"apartment":item,"active":_vm.active},on:{"click":function($event){return _vm.click(item)}}})}),1)};
var __vue_staticRenderFns__$3 = [];
/* style */
var __vue_inject_styles__$3 = undefined;
/* scoped */
var __vue_scope_id__$3 = undefined;
/* module identifier */
var __vue_module_identifier__$3 = "data-v-750ca74a";
/* functional template */
var __vue_is_functional_template__$3 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var ApartmentList = normalizeComponent(
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
__vue_inject_styles__$3,
__vue_script__$3,
__vue_scope_id__$3,
__vue_is_functional_template__$3,
__vue_module_identifier__$3,
false,
undefined,
undefined,
undefined
);//
var script$4 = {
props: {
Id: {
required: true,
type: String
}
},
data: function data() {
return {
loading: false,
}
},
components: {
ApartmentList: ApartmentList
},
computed: {
apartments: function apartments() {
return this.$store.getters['trovimap/apartmentsById'](this.Id)
}
},
methods: {
fetch: async function fetch() {
this.loading = true;
try {
await this.$store.dispatch('trovimap/FETCH_BUILDING_UNITS_BY_PARCEL', this.Id);
} catch (e) {
throw e
} finally {
this.loading = false;
}
},
apartmentSelected: function apartmentSelected(apartment) {
this.$emit('apartmentSelected', apartment);
}
},
watch: {
Id: {
handler: function handler() {
this.fetch();
},
immediate: true
}
}
};/* script */
var __vue_script__$4 = script$4;
/* template */
var __vue_render__$4 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[(_vm.loading)?_c('v-progress-circular',{attrs:{"indeterminate":"","color":"primary"}}):_c('apartment-list',{attrs:{"items":_vm.apartments},on:{"selected":_vm.apartmentSelected}})],1)],1)};
var __vue_staticRenderFns__$4 = [];
/* style */
var __vue_inject_styles__$4 = undefined;
/* scoped */
var __vue_scope_id__$4 = undefined;
/* module identifier */
var __vue_module_identifier__$4 = "data-v-58589eb4";
/* functional template */
var __vue_is_functional_template__$4 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var BuildingUnit = normalizeComponent(
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
__vue_inject_styles__$4,
__vue_script__$4,
__vue_scope_id__$4,
__vue_is_functional_template__$4,
__vue_module_identifier__$4,
false,
undefined,
undefined,
undefined
);//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var defaultResponse = function () {
return {
fields: [],
message: null
}
};
var script$5 = {
props: {
apartmentId: {
type: String,
required: true
},
apartment: {
type: Object,
required: true
},
defaultBedrooms: {
type: Number,
default: function () { return 0; }
},
defaultBathrooms: {
type: Number,
default: function () { return 0; }
},
reference: {
type: String,
default: function () { return null; }
},
user: {
type: Object,
default: function () {
return {
firstName: null,
email: null,
phone: null,
}
}
}
},
data: function data() {
return {
payload: {
ApartmentId: this.apartmentId,
Bathrooms: this.defaultBathrooms,
Bedrooms: this.defaultBedrooms,
firstName: this.user.firstName,
email: this.user.email,
phone: this.user.phone,
reference: this.reference,
},
loading: false,
response: defaultResponse()
}
},
methods: {
errors: function errors(key) {
if (!this.hasError(key)) { return [] }
return this.response.fields[key]
},
hasError: function hasError(key) {
if (!this.response) { return false }
if (!this.response.fields) { return false }
return this.response.fields[key] !== undefined
},
fetchCharacteristics: async function fetchCharacteristics() {
this.loadingCharacteristics = true;
try {
var characteristics = await this.$store.dispatch('trovimap/FETCH_CHARACTERISTICS_BY_APARTMENT_ID', this.apartmentId);
this.payload = Object.assign({}, this.payload,
{ParcelId: characteristics.ParcelId,
CadastralReference: characteristics.CadastralReference,
Location: {
lat: characteristics.Location.lat,
lon: characteristics.Location.lon
},
LivingArea: characteristics.LivingArea});
} catch (e) {
throw e
} finally {
this.loadingCharacteristics = false;
}
},
fetchEvaluation: async function fetchEvaluation() {
this.loading = true;
try {
var result = await this.$store.dispatch('trovimap/FETCH_EVALUATION_BY_APARTMENT_ID', {
payload: Object.assign({}, this.payload),
apartmentId: this.apartmentId,
});
this.$emit('evaluationCompleted', result);
this.response = Object.assign({}, defaultResponse());
} catch(response) {
this.response = Object.assign({}, response.data);
} finally {
this.loading = false;
}
},
},
watch: {
apartmentId: {
handler: function handler() {
this.fetchCharacteristics();
},
immediate: true
},
}
};/* script */
var __vue_script__$5 = script$5;
/* template */
var __vue_render__$5 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('v-form',[_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":"","sm4":""}},[_c('v-text-field',{attrs:{"name":"surface","label":"Superfície","id":"surface"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.fetchEvaluation($event)}},model:{value:(_vm.payload.LivingArea),callback:function ($$v) {_vm.$set(_vm.payload, "LivingArea", $$v);},expression:"payload.LivingArea"}})],1),_vm._v(" "),_c('v-flex',{attrs:{"xs12":"","sm4":""}},[_c('v-text-field',{attrs:{"name":"bathrooms","label":"Número de baños","id":"bathrooms"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.fetchEvaluation($event)}},model:{value:(_vm.payload.Bathrooms),callback:function ($$v) {_vm.$set(_vm.payload, "Bathrooms", $$v);},expression:"payload.Bathrooms"}})],1),_vm._v(" "),_c('v-flex',{attrs:{"xs12":"","sm4":""}},[_c('v-text-field',{attrs:{"name":"bedrooms","label":"Número de habitaciones","id":"bedrooms"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.fetchEvaluation($event)}},model:{value:(_vm.payload.Bedrooms),callback:function ($$v) {_vm.$set(_vm.payload, "Bedrooms", $$v);},expression:"payload.Bedrooms"}})],1)],1),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":""}},[(!_vm.user.firstName)?_c('v-flex',{attrs:{"xs12":"","sm4":""}},[_c('v-text-field',{attrs:{"name":"firstName","label":"Nombre","id":"firstName","errors":_vm.hasError('firstName'),"error-messages":_vm.errors('firstName')},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.fetchEvaluation($event)}},model:{value:(_vm.payload.firstName),callback:function ($$v) {_vm.$set(_vm.payload, "firstName", $$v);},expression:"payload.firstName"}})],1):_vm._e(),_vm._v(" "),(!_vm.user.email)?_c('v-flex',{attrs:{"xs12":"","sm4":""}},[_c('v-text-field',{attrs:{"name":"email","label":"Email","id":"email","errors":_vm.hasError('email'),"error-messages":_vm.errors('email')},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.fetchEvaluation($event)}},model:{value:(_vm.payload.email),callback:function ($$v) {_vm.$set(_vm.payload, "email", $$v);},expression:"payload.email"}})],1):_vm._e(),_vm._v(" "),(!_vm.user.phone)?_c('v-flex',{attrs:{"xs12":"","sm4":""}},[_c('v-text-field',{attrs:{"name":"phone","label":"Teléfono","id":"phone","errors":_vm.hasError('phone'),"error-messages":_vm.errors('phone')},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.fetchEvaluation($event)}},model:{value:(_vm.payload.phone),callback:function ($$v) {_vm.$set(_vm.payload, "phone", $$v);},expression:"payload.phone"}})],1):_vm._e()],1),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-btn',{attrs:{"color":"primary","block":"","disabled":_vm.loading},on:{"click":_vm.fetchEvaluation}},[_vm._v("\n Obtener valoración\n "),(_vm.loading)?_c('v-progress-circular',{attrs:{"indeterminate":"","color":"primary"}}):_vm._e()],1)],1)],1)],1)],1)};
var __vue_staticRenderFns__$5 = [];
/* style */
var __vue_inject_styles__$5 = undefined;
/* scoped */
var __vue_scope_id__$5 = undefined;
/* module identifier */
var __vue_module_identifier__$5 = "data-v-5de1d750";
/* functional template */
var __vue_is_functional_template__$5 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var EvaluationForm = normalizeComponent(
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
__vue_inject_styles__$5,
__vue_script__$5,
__vue_scope_id__$5,
__vue_is_functional_template__$5,
__vue_module_identifier__$5,
false,
undefined,
undefined,
undefined
);//
//
//
//
//
//
//
//
//
//
//
var script$6 = {
props: {
parcel: {
type: Object,
required: true,
},
active: {
required: true,
validator: function (prop) { return typeof prop === 'string' || prop === null; }
}
},
methods: {
selectParcel: function selectParcel() {
this.$store.dispatch('trovimap/FETCH_BUILDING_UNITS_BY_PARCEL', this.parcel.Id);
}
}
};/* script */
var __vue_script__$6 = script$6;
/* template */
var __vue_render__$6 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-tile',{class:_vm.active === _vm.parcel.Id ? 'grey' : '',on:{"click":function($event){return _vm.$emit('click')}}},[_c('v-list-tile-content',[_c('v-list-tile-title',{domProps:{"innerHTML":_vm._s(_vm.parcel.FormattedAddress ? _vm.parcel.FormattedAddress : _vm.parcel.StreetName)}}),_vm._v(" "),_c('v-list-tile-sub-title',[_vm._v("\n "+_vm._s(_vm.parcel.City)+", "+_vm._s(_vm.parcel.Province)+"\n ")])],1)],1)};
var __vue_staticRenderFns__$6 = [];
/* style */
var __vue_inject_styles__$6 = undefined;
/* scoped */
var __vue_scope_id__$6 = undefined;
/* module identifier */
var __vue_module_identifier__$6 = "data-v-70980285";
/* functional template */
var __vue_is_functional_template__$6 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var ParcelListElement = normalizeComponent(
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
__vue_inject_styles__$6,
__vue_script__$6,
__vue_scope_id__$6,
__vue_is_functional_template__$6,
__vue_module_identifier__$6,
false,
undefined,
undefined,
undefined
);//
var script$7 = {
data: function data() {
return {
active: null
}
},
components: {
ParcelListElement: ParcelListElement
},
computed: {
items: function items() {
return this.$store.state.trovimap.parcels
}
},
methods: {
click: function click(item) {
this.active = item.Id;
this.$emit('selected', item);
}
}
};/* script */
var __vue_script__$7 = script$7;
/* template */
var __vue_render__$7 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{attrs:{"three-line":""}},_vm._l((_vm.items),function(item){return _c('parcel-list-element',{key:item.Id,attrs:{"parcel":item,"active":_vm.active},on:{"click":function($event){return _vm.click(item)}}})}),1)};
var __vue_staticRenderFns__$7 = [];
/* style */
var __vue_inject_styles__$7 = undefined;
/* scoped */
var __vue_scope_id__$7 = undefined;
/* module identifier */
var __vue_module_identifier__$7 = "data-v-36890e62";
/* functional template */
var __vue_is_functional_template__$7 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var ParcelList = normalizeComponent(
{ render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },
__vue_inject_styles__$7,
__vue_script__$7,
__vue_scope_id__$7,
__vue_is_functional_template__$7,
__vue_module_identifier__$7,
false,
undefined,
undefined,
undefined
);//
var script$8 = {
data: function data() {
return {
name: 'borja',
stepperValue: 1,
address: {},
apartment: {}
}
},
components: {
ParcelByAddress: ParcelByAddress,
BuildingUnit: BuildingUnit,
EvaluationForm: EvaluationForm,
BuildingUnitByCadastralReference: BuildingUnitByCadastralReference,
ParcelList: ParcelList
},
methods: {
onAddressSelected: function onAddressSelected(address) {
this.address = address;
},
onApartmentSelected: function onApartmentSelected(apartment) {
this.apartment = apartment;
},
onCadastralAddressSelected: function onCadastralAddressSelected(data) {
if (data.Apartments.length) {
this.apartment = data.Apartments[0];
this.stepperValue = 3;
}
},
onEvaluationCompleted: function onEvaluationCompleted(evaluation) {
this.$emit('evaluationCompleted', evaluation);
this.stepperValue = 4;
}
}
};/* script */
var __vue_script__$8 = script$8;
/* template */
var __vue_render__$8 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('v-stepper',{model:{value:(_vm.stepperValue),callback:function ($$v) {_vm.stepperValue=$$v;},expression:"stepperValue"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{"step":"1","complete":_vm.stepperValue > 1}},[_vm._v("Dirección del inmueble")]),_vm._v(" "),_c('v-divider'),_vm._v(" "),_c('v-stepper-step',{attrs:{"step":"2","complete":_vm.stepperValue > 2}},[_vm._v("Elija el apartamento")]),_vm._v(" "),_c('v-divider'),_vm._v(" "),_c('v-stepper-step',{attrs:{"step":"3","complete":_vm.stepperValue > 3}},[_vm._v("Datos extra")])],1),_vm._v(" "),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{"step":"1"}},[_c('v-flex',{attrs:{"xs12":"","text-xs-center":""}},[_c('label',{staticClass:"title",attrs:{"for":""}},[_vm._v("Busca tu inmueble por la dirección o por referencia catastral")])]),_vm._v(" "),_c('parcel-by-address',{on:{"addressSelected":this.onAddressSelected}}),_vm._v(" "),_c('building-unit-by-cadastral-reference',{on:{"addressSelected":this.onCadastralAddressSelected}}),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('parcel-list',{on:{"selected":_vm.onAddressSelected}})],1)],1),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs3":"","md2":""}},[_c('v-btn',{attrs:{"color":"primary","block":"","disabled":!_vm.address.Id},nativeOn:{"click":function($event){_vm.stepperValue = 2;}}},[_vm._v("\n Siguiente\n ")])],1)],1)],1),_vm._v(" "),_c('v-stepper-content',{attrs:{"step":"2"}},[(_vm.address.Id)?_c('building-unit',{attrs:{"Id":_vm.address.Id},on:{"apartmentSelected":this.onApartmentSelected}}):_vm._e(),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs3":"","md2":""}},[_c('v-btn',{attrs:{"color":"primary","block":"","disabled":!_vm.apartment.Id},nativeOn:{"click":function($event){_vm.stepperValue = 3;}}},[_vm._v("\n Siguiente\n ")])],1),_vm._v(" "),_c('v-flex',{attrs:{"xs3":"","offset-xs6":"","md2":"","offset-md8":""}},[_c('v-btn',{attrs:{"flat":"","block":""},nativeOn:{"click":function($event){_vm.stepperValue = 1;}}},[_vm._v("Atrás")])],1)],1)],1),_vm._v(" "),_c('v-stepper-content',{attrs:{"step":"3"}},[_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[(_vm.apartment.Id)?_c('evaluation-form',{attrs:{"parcel":_vm.address,"apartment":_vm.apartment,"apartmentId":_vm.apartment.Id},on:{"evaluationCompleted":_vm.onEvaluationCompleted}}):_vm._e()],1)],1),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs3":"","md2":"","offset-xs9":"","offset-md10":""}},[_c('v-btn',{attrs:{"block":"","flat":""},nativeOn:{"click":function($event){_vm.stepperValue = 2;}}},[_vm._v("Atrás")])],1)],1)],1),_vm._v(" "),_c('v-stepper-content',{attrs:{"step":"4"}},[_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":"","text-xs-center":""}},[_vm._t("success")],2)],1)],1)],1)],1)],1)],1)};
var __vue_staticRenderFns__$8 = [];
/* style */
var __vue_inject_styles__$8 = undefined;
/* scoped */
var __vue_scope_id__$8 = undefined;
/* module identifier */
var __vue_module_identifier__$8 = "data-v-bbb45198";
/* functional template */
var __vue_is_functional_template__$8 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var TrovimapWizard = normalizeComponent(
{ render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },
__vue_inject_styles__$8,
__vue_script__$8,
__vue_scope_id__$8,
__vue_is_functional_template__$8,
__vue_module_identifier__$8,
false,
undefined,
undefined,
undefined
);//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$9 = {
props: {
items: {
type: Array,
required: true
}
},
computed: {
values: function values() {
return this.items.map(function (item) { return item.value; })
},
dateRange: function dateRange() {
var start = new Date(this.items[0].date);
var end = new Date(this.items[this.items.length - 1].date);
return {
start: ((start.getMonth() + 1) + "/" + (start.getFullYear())),
end: ((end.getMonth() + 1) + "/" + (end.getFullYear())),
}
}
}
};/* script */
var __vue_script__$9 = script$9;
/* template */
var __vue_render__$9 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-sheet',{attrs:{"color":"rgba(0, 0, 0, .50)"}},[_c('v-sparkline',{attrs:{"value":_vm.values,"color":"rgba(255, 255, 255, 7)","height":"100","padding":"20","smooth":""},scopedSlots:_vm._u([{key:"label",fn:function(item){return [_vm._v("\n "+_vm._s(item.value)+" €\n ")]}}])})],1),_vm._v(" "),_c('v-flex',{attrs:{"xs12":"","text-xs-right":""}},[_vm._v("\n Evolución del precio entre el "+_vm._s(_vm.dateRange.start)+" y "+_vm._s(_vm.dateRange.end)+"\n ")])],1)};
var __vue_staticRenderFns__$9 = [];
/* style */
var __vue_inject_styles__$9 = undefined;
/* scoped */
var __vue_scope_id__$9 = undefined;
/* module identifier */
var __vue_module_identifier__$9 = "data-v-449a6f4a";
/* functional template */
var __vue_is_functional_template__$9 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var PriceEvolution = normalizeComponent(
{ render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 },
__vue_inject_styles__$9,
__vue_script__$9,
__vue_scope_id__$9,
__vue_is_functional_template__$9,
__vue_module_identifier__$9,
false,
undefined,
undefined,
undefined
);//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$a = {
props: {
comparable: {
type: Object,
required: true
}
}
};/* script */
var __vue_script__$a = script$a;
/* template */
var __vue_render__$a = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{"height":"100%"}},[_c('v-img',{attrs:{"src":_vm.comparable.PhotoUrl_320x0,"height":"200px"}}),_vm._v(" "),_c('v-card-title',{attrs:{"primary-title":""}},[_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('h3',{staticClass:"title mb-0"},[_vm._v(_vm._s(_vm.comparable.DisplayFullStreetAddress))])]),_vm._v(" "),_c('v-flex',{attrs:{"xs6":""}},[_c('h4',{staticClass:"body-2 mb-0"},[_vm._v(_vm._s(_vm.comparable.Price)+" €")])]),_vm._v(" "),_c('v-flex',{attrs:{"xs6":""}},[_c('h4',{staticClass:"body-1 mb-0 grey--text"},[_vm._v(" "+_vm._s(_vm.comparable.PriceM2)+" €/m2")])])],1)],1),_vm._v(" "),_c('v-card-text',[_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs4":""}},[_c('span',[_vm._v(_vm._s(_vm.comparable.LivingArea)+" m2")])]),_vm._v(" "),_c('v-flex',{attrs:{"xs4":""}},[_c('span',[_vm._v(_vm._s(_vm.comparable.Bedrooms)+" habs")])]),_vm._v(" "),_c('v-flex',{attrs:{"xs4":""}},[_c('span',[_vm._v(_vm._s(_vm.comparable.Bathrooms)+" baños")])])],1)],1),_vm._v(" "),_c('v-card-actions',[_vm._v("\n Fecha publicación: "+_vm._s(_vm._f("trovimap_date")(_vm.comparable.ListingDate))+"\n ")])],1)};
var __vue_staticRenderFns__$a = [];
/* style */
var __vue_inject_styles__$a = undefined;
/* scoped */
var __vue_scope_id__$a = undefined;
/* module identifier */
var __vue_module_identifier__$a = "data-v-d5a97c00";
/* functional template */
var __vue_is_functional_template__$a = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var Comparable = normalizeComponent(
{ render: __vue_render__$a, staticRenderFns: __vue_staticRenderFns__$a },
__vue_inject_styles__$a,
__vue_script__$a,
__vue_scope_id__$a,
__vue_is_functional_template__$a,
__vue_module_identifier__$a,
false,
undefined,
undefined,
undefined
);//
var script$b = {
props: {
evaluation: {
type: Object,
required: true
},
},
data: function data() {
return {
}
},
components: {
PriceEvolution: PriceEvolution,
Comparable: Comparable
},
computed: {
priceItems: function priceItems() {
var this$1 = this;
var countFilter = parseInt(this.evaluation.historicalStats.aggregations.length / 7, 10);
return this.evaluation.historicalStats.aggregations
.filter(function (agregation, index, arr) {
return (index % countFilter === 0 || index === arr.length - 1)
})
.map(function (agregation) {
return {
value: parseInt(agregation.pricem2.avg * this$1.evaluation.LivingArea, 10),
date: agregation.date
}
})
}
}
};function createInjectorSSR(context) {
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
}
if (!context)
{ return function () { }; }
if (!('styles' in context)) {
context._styles = context._styles || {};
Object.defineProperty(context, 'styles', {
enumerable: true,
get: function () { return context._renderStyles(context._styles); }
});
context._renderStyles = context._renderStyles || renderStyles;
}
return function (id, style) { return addStyle(id, style, context); };
}
function addStyle(id, css, context) {
var group = css.media || 'default' ;
var style = context._styles[group] || (context._styles[group] = { ids: [], css: '' });
if (!style.ids.includes(id)) {
style.media = css.media;
style.ids.push(id);
var code = css.source;
style.css += code + '\n';
}
}
function renderStyles(styles) {
var css = '';
for (var key in styles) {
var style = styles[key];
css +=
'<style data-vue-ssr-id="' +
Array.from(style.ids).join(' ') +
'"' +
(style.media ? ' media="' + style.media + '"' : '') +
'>' +
style.css +
'</style>';
}
return css;
}/* script */
var __vue_script__$b = script$b;
/* template */
var __vue_render__$b = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{"row":"","wrap":""}},[(_vm.evaluation)?_c('v-flex',{attrs:{"xs12":""}},[_c('v-layout',{attrs:{"row":"","wrap":"","py-3":""}},[_c('v-flex',{attrs:{"xs6":"","text-sm-left":""}},[_c('h4',{staticClass:"subheading mb-0"},[_vm._v("Precio minimo: "+_vm._s(_vm.evaluation.troviValue - _vm.evaluation.troviValue * 0.10)+" €")])]),_vm._v(" "),_c('v-flex',{attrs:{"xs6":"","text-sm-right":""}},[_c('h4',{staticClass:"subheading mb-0 grey--text"},[_vm._v(" Precio máximo: "+_vm._s(_vm.evaluation.troviValue+ _vm.evaluation.troviValue * 0.10)+" €")])])],1),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":"","py-3":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('price-evolution',{attrs:{"items":_vm.priceItems}})],1)],1),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":"","py-3":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('gmap-street-view-panorama',{staticClass:"pano",attrs:{"position":{
lat: _vm.evaluation.Location.lat,
lng: _vm.evaluation.Location.lon
},"zoom":7}})],1)],1),_vm._v(" "),_c('v-layout',{attrs:{"row":"","wrap":""}},[_c('v-flex',{attrs:{"xs12":""}},[_c('v-layout',{attrs:{"row":"","wrap":"","grid-list-lg":""}},_vm._l((_vm.evaluation.comparables),function(comparable){return _c('v-flex',{key:comparable.Sysid,attrs:{"sm4":"","md3":""}},[_c('comparable',{attrs:{"comparable":comparable}})],1)}),1)],1)],1)],1):_vm._e()],1)};
var __vue_staticRenderFns__$b = [];
/* style */
var __vue_inject_styles__$b = function (inject) {
if (!inject) { return }
inject("data-v-038e27d6_0", { source: ".vue-street-view-pano-container{height:50vh}", map: undefined, media: undefined });
};
/* scoped */
var __vue_scope_id__$b = undefined;
/* module identifier */
var __vue_module_identifier__$b = "data-v-038e27d6";
/* functional template */
var __vue_is_functional_template__$b = false;
/* style inject shadow dom */
var EvaluationElement = normalizeComponent(
{ render: __vue_render__$b, staticRenderFns: __vue_staticRenderFns__$b },
__vue_inject_styles__$b,
__vue_script__$b,
__vue_scope_id__$b,
__vue_is_functional_template__$b,
__vue_module_identifier__$b,
false,
undefined,
createInjectorSSR,
undefined
);var date = function (string) {
var date = new Date(string);
return ((date.getDay()) + "/" + (date.getMonth()) + "/" + (date.getFullYear()))
};var filters = /*#__PURE__*/Object.freeze({date: date});var FETCH_PARCELS_BY_ADDRESS = async function (context, address) {
var commit = context.commit;
try {
var result = await axios.get(("http://localhost:8080/trovi/parcel?address=" + address));
commit('SET_PARCELS', result.data);
} catch (e) {
throw e.response
}
};
/**
*
* @param {*} context
* @param {*} parcelId
*/
var FETCH_BUILDING_UNITS_BY_PARCEL = async function (context, parcelId) {
var commit = context.commit;
var state = context.state;
if (state.buildingUnits[parcelId]) { return }
try {
var result = await axios.get(("http://localhost:8080/trovi/parcel/" + parcelId));
commit('SET_BUILDING_UNITS', result.data);
} catch (e) {
throw e.response
}
};
var FETCH_CHARACTERISTICS_BY_APARTMENT_ID = async function (context, apartmentId) {
try {
var result = await axios.get(("http://localhost:8080/trovi/apartment/" + apartmentId + "/characteristics"));
var data = {
ApartmentId: result.data.ApartmentId,
ParcelId: result.data.ParcelId,
CadastralReference: result.data.CadastralReference,
Location: {
lat: result.data.Location.lat,
lon: result.data.Location.lon
},
LivingArea: result.data.LivingArea
};
return data
} catch (e) {
throw e.response
}
};
var FETCH_EVALUATION_BY_APARTMENT_ID = async function (context, data) {
var commit = context.commit;
var payload = data.payload;
var apartmentId = data.apartmentId;
try {
var result = await axios.post(("http://localhost:8080/trovi/apartment/" + apartmentId), payload);
commit ('SET_APARTMENT', Object.assign({}, result.data,
{apartmentId: apartmentId}));
return result.data
} catch (e) {
throw e.response
}
};
var DOWNLOAD_EVALUATION_BY_ID = async function (context, evaluationId) {
try {
return await axios.get(("http://localhost:8080/trovi/evaluation/" + evaluationId), {
responseType: 'arraybuffer'
})
} catch (e) {
throw e.response
}
};
var FETCH_BUILDING_UNITS_BY_CADASTRAL_REFERENCE = async function (context, reference) {
var commit = context.commit;
try {
var result = await axios.get(("http://localhost:8080/trovi/parcel/cadastral/" + reference));
commit('SET_BUILDING_UNITS', result.data);
return result.data
} catch (e) {
throw e.response
}
};
var actions = {
FETCH_PARCELS_BY_ADDRESS: FETCH_PARCELS_BY_ADDRESS,
FETCH_BUILDING_UNITS_BY_PARCEL: FETCH_BUILDING_UNITS_BY_PARCEL,
FETCH_EVALUATION_BY_APARTMENT_ID: FETCH_EVALUATION_BY_APARTMENT_ID,
DOWNLOAD_EVALUATION_BY_ID: DOWNLOAD_EVALUATION_BY_ID,
FETCH_CHARACTERISTICS_BY_APARTMENT_ID: FETCH_CHARACTERISTICS_BY_APARTMENT_ID,
FETCH_BUILDING_UNITS_BY_CADASTRAL_REFERENCE: FETCH_BUILDING_UNITS_BY_CADASTRAL_REFERENCE
};var SET_PARCELS = function (state, data) {
Vue.set(state, 'parcels', data);
};
var SET_BUILDING_UNITS = function (state, data) {
Vue.set(state.buildingUnits, data.Id, data.Apartments);
};
var SET_APARTMENT = function (state, data) {
var apartmentId = data.apartmentId;
Vue.set(state.evaluations, apartmentId, data);
};
var mutations = {
SET_PARCELS: SET_PARCELS,
SET_BUILDING_UNITS: SET_BUILDING_UNITS,
SET_APARTMENT: SET_APARTMENT
};var createModule = function () {
return {
namespaced: true,
state: {
parcels: [],
buildingUnits: {},
evaluations: {}
},
actions: Object.assign({}, actions),
mutations: Object.assign({}, mutations),
getters: {
apartmentsById: function (state) { return function (buildingUnitId) {
var data = [].concat( state.buildingUnits[buildingUnitId] );
if (data) {
return data.sort(function (a, b) {
if (a.Floor === b.Floor) {
return a.Door < b.Door ? -1 : 1
}
return a.Floor < b.Floor ? -1 : 1
})
}
return data
}; }
}
}
};// Import vue component
var Trovimap = function () {
return {
install: function install(Vue, args) {
if ( args === void 0 ) args = {};
console.log('install.init');
if (!args.store) { console.warn('Please provide a store!!'); }
if (!args.axios) { console.warn('Please provide a axios instance!!'); }
Vue.prototype.axios = args.axios;
console.log('vue-trovimap-wizard.install');
args.store.registerModule('trovimap', createModule(args.axios));
Vue.component('TrovimapWizard', TrovimapWizard);
Vue.component('ParcelByAddress', ParcelByAddress);
Vue.component('ParcelList', ParcelList);
Vue.component('ParcelListElement', ParcelListElement);
Vue.component('ApartmentList', ApartmentList);
Vue.component('ApartmentListElement', ApartmentListElement);
Vue.component('BuildingUnit', BuildingUnit);
Vue.component('BuildingUnitByCadastralReference', BuildingUnitByCadastralReference);
Vue.component('EvaluationForm', EvaluationForm);
Vue.component('EvaluationElement', EvaluationElement);
Vue.component('PriceEvolution', PriceEvolution);
Object.keys(filters).forEach(function (key) {
Vue.filter(("trovimap_" + key), filters[key]);
});
console.log('vue-trovimap-wizard.install.end', Object.keys(args.store.state));
this.installed = true;
}
}
};
// install function executed by Vue.use()
function install2(Vue, args) {
if ( args === void 0 ) args = {};
console.log('installing...', install);
if (install.installed) {
console.log('installed, returning');
return
}
if (!args.store) { console.warn('Please provide a store!!'); }
if (!args.axios) { console.warn('Please provide a axios instance!!'); }
Vue.prototype.axios = args.axios;
console.log('vue-trovimap-wizard.install');
args.store.registerModule('trovimap', createModule(args.axios));
Vue.component('TrovimapWizard', TrovimapWizard);
Vue.component('ParcelByAddress', ParcelByAddress);
Vue.component('ParcelList', ParcelList);
Vue.component('ParcelListElement', ParcelListElement);
Vue.component('ApartmentList', ApartmentList);
Vue.component('ApartmentListElement', ApartmentListElement);
Vue.component('BuildingUnit', BuildingUnit);
Vue.component('BuildingUnitByCadastralReference', BuildingUnitByCadastralReference);
Vue.component('EvaluationForm', EvaluationForm);
Vue.component('EvaluationElement', EvaluationElement);
Vue.component('PriceEvolution', PriceEvolution);
Object.keys(filters).forEach(function (key) {
Vue.filter(("trovimap_" + key), filters[key]);
});
console.log('vue-trovimap-wizard.install.end', Object.keys(args.store.state));
install.installed = true;
}
// Create module definition for Vue.use()
var plugin = {
install2: install2,
};
// To auto-install when vue is found
/* global window global */
var GlobalVue = null;
if (typeof window !== 'undefined') {
GlobalVue = window.Vue;
} else if (typeof global !== 'undefined') {
GlobalVue = global.Vue;
}
if (GlobalVue) {
GlobalVue.use(plugin);
}exports.ParcelByAddress=ParcelByAddress;exports.TrovimapWizard=TrovimapWizard;exports.default=Trovimap;