Plugin Directory

Changeset 3329655


Ignore:
Timestamp:
07/17/2025 11:42:06 AM (7 months ago)
Author:
loftylisting
Message:

update code to trunk

Location:
lofty-idx/trunk
Files:
12 added
13 edited

Legend:

Unmodified
Added
Removed
  • lofty-idx/trunk/assets/market-report.css

    r3306828 r3329655  
    1 #lofty-market-report-container{width:100%}.lofty-market-report-page{margin-top:40px}.lofty-market-report-page .lofty-market-report-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:40px}.lofty-market-report-page .lofty-market-report-title .page-title{font-family:var(--lofty-font-play-bold);font-size:34px;line-height:51px;font-weight:700}.lofty-market-report-page .lofty-market-report-title span.last-time{font-size:18px;color:#505050}.lofty-market-report-page.lofty-is-shortcode{padding:0;margin-top:0}@media (max-width: 600px){.lofty-market-report-page{width:100%}.lofty-market-report-page .lofty-market-report-title{flex-wrap:wrap;margin-bottom:15px}.lofty-market-report-page .lofty-market-report-title .page-title{width:100%;font-size:24px}.lofty-market-report-page .lofty-market-report-title span.last-time{font-size:14px}}.lofty-subscribe-pop{background:#fff;width:400px;padding:30px;position:relative}@media (max-width: 600px){.lofty-subscribe-pop{width:100vw;margin:0 auto;padding:15px}}.lofty-subscribe-pop .title{text-align:center;font-size:20px;color:#191919;font-family:var(--lofty-font-play-bold)}.lofty-subscribe-pop .title .lofty-icon-close{position:absolute;right:20px;top:15px;cursor:pointer}.lofty-subscribe-pop .desc{font-size:12px;color:#505050;margin:10px auto;text-align:center;width:92%}.lofty-subscribe-pop .market-subscribe-pop-content div.label{font-size:14px;color:#505050;font-family:var(--lofty-font-mon-regular)}.lofty-subscribe-pop .market-subscribe-pop-content input{border:solid 1px #DADADA;width:100%;height:40px;line-height:16px;padding:0 15px;border-radius:0;outline:none;font-size:14px;margin-top:10px;color:#202437}.lofty-subscribe-pop .market-subscribe-pop-content input:focus{border-color:#111}.lofty-subscribe-pop .market-subscribe-pop-content input.error{border-color:#fb4444}.lofty-subscribe-pop .market-subscribe-pop-content input.error+span{color:#fb4444;font-size:12px}.lofty-subscribe-pop .market-subscribe-pop-content .snapshot-input-wrap{position:relative}.lofty-subscribe-pop .market-subscribe-pop-content .snapshot-input-wrap .lofty-icon-clear_circle_outlined{position:absolute;top:16px;right:20px;cursor:pointer}.is-subscribed{background:#20c472;gap:10px;cursor:default}.lofty-chart-container{width:100%;height:100%;position:relative}.lofty-charts{width:100%;height:100%}.lofty-chart-no-data{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#fff;opacity:.5}.lofty-three-card-wrap{display:flex;gap:5px;position:relative;z-index:100}@media (max-width: 600px){.lofty-three-card-wrap{flex-wrap:wrap}}.lofty-three-card-wrap .card{cursor:pointer;width:30%;height:220px;flex-grow:1;background:linear-gradient(180deg,#dadada80,#dadada33);border:solid 1px transparent;border-radius:5px 5px 0 0;padding:40px 10px 60px 40px}@media (max-width: 600px){.lofty-three-card-wrap .card{width:100%;height:fit-content;padding:20px 16px 0}}.lofty-three-card-wrap .card .title{font-size:18px;font-weight:700;color:#191919;line-height:20px;font-family:var(--lofty-font-bold)}@media (max-width: 600px){.lofty-three-card-wrap .card .title{font-size:14px}}.lofty-three-card-wrap .card .value{margin-top:26px;font-size:48px;line-height:60px;font-weight:400;color:#191919;font-family:var(--lofty-font-regular)}@media (max-width: 600px){.lofty-three-card-wrap .card .value{font-size:34px;margin-top:0;line-height:50px}}.lofty-three-card-wrap .card .value .rate-number{font-size:16px;font-family:var(--lofty-font-medium);margin-left:20px}@media (max-width: 600px){.lofty-three-card-wrap .card .value .rate-number{font-size:14px;margin-left:10px}}.lofty-three-card-wrap .card .value .rate-number i.lofty_iconfont{font-size:12px}.lofty-three-card-wrap .card .value .up{color:#20c472}.lofty-three-card-wrap .card .value .down{color:#f0454c}.lofty-three-card-wrap .card .desc{color:#a8a8a8;font-size:14px;margin-top:10px}@media (max-width: 600px){.lofty-three-card-wrap .card .desc{margin-top:0;font-size:12px}}.lofty-three-card-wrap .card.active{background:#fff;border-color:#dadada;position:relative;top:1px;border-bottom-color:#fff}@media (max-width: 600px){.lofty-three-card-wrap .card.active{border-bottom-color:#dadada;margin-bottom:16px;border-radius:5px}}.chart-wrap-pc{width:100%;border:solid 1px #DADADA;border-radius:0 0 5px 5px}.chart-wrap-mobile{margin-top:20px;width:100%;height:350px}.lofty-status-tag{width:fit-content;padding:0 5px;height:22px;position:absolute;right:30px;top:25px;z-index:7}@media (max-width: 600px){.lofty-status-tag{left:15px;top:15px}}.lofty-market-listing-slider{width:100%;height:535px;padding-top:60px;position:relative;display:flex;justify-content:flex-end}@media (max-width: 600px){.lofty-market-listing-slider{padding-top:40px;height:400px}}.lofty-market-listing-slider .mask,.lofty-market-listing-slider .img-background{position:absolute;width:100%;height:100%;background:linear-gradient(180deg,#ffffffd9,#fff);left:0;bottom:0}.lofty-market-listing-slider .img-background{object-fit:cover;filter:grayscale(100%)}.swiper-container{width:100%;height:475px;position:relative}@media (max-width: 600px){.swiper-container{height:400px;padding-left:10px}}.swiper-container .swiper-slide-flow{width:50%}.swiper-container .swiper-slide-mobile{width:calc(100% - 30px)!important}.listing-slider-prev-button,.listing-slider-next-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:50px;height:50px;line-height:50px;border-radius:50%;text-align:center;cursor:pointer;color:#fff;background:#111;box-shadow:0 4px 10px #0000001a}.listing-slider-prev-button:after,.listing-slider-next-button:after{content:"";position:absolute;width:100%;height:100%;background:#ffffff26;left:0;top:0;display:none;border-radius:50%}.listing-slider-prev-button:hover:after,.listing-slider-next-button:hover:after{display:block}.listing-slider-prev-button i,.listing-slider-next-button i{color:#fff;font-size:20px}.listing-slider-prev-button.swiper-button-disabled,.listing-slider-next-button.swiper-button-disabled{opacity:.4;cursor:default}.listing-slider-prev-button{left:calc(25% - 75px)}.listing-slider-next-button{right:calc(25% - 75px)}.lofty-market-listing-slider .lofty-feature-listing-house .lofty-house-price{top:65px}@media (max-width: 600px){.lofty-market-listing-slider .lofty-feature-listing-house .lofty-house-price{top:235px}}.swiper-slide-prev .lofty-feature-listing-house .lofty-house-price,.swiper-slide-prev .lofty-feature-listing-house .lofty-mls-info,.swiper-slide-prev .lofty-feature-listing-house .lofty-house-info,.swiper-slide-prev .lofty-feature-listing-house .lofty-feature-address,.swiper-slide-prev .lofty-feature-listing-house .collect,.swiper-slide-next .lofty-feature-listing-house .lofty-house-price,.swiper-slide-next .lofty-feature-listing-house .lofty-mls-info,.swiper-slide-next .lofty-feature-listing-house .lofty-house-info,.swiper-slide-next .lofty-feature-listing-house .lofty-feature-address,.swiper-slide-next .lofty-feature-listing-house .collect{display:none}.pending-listing .lofty-icon-heart-fill,.pending-listing .lofty-icon-heart{right:10px;bottom:15px;top:unset}.lofty-listing{display:flex;gap:16px}@media (max-width: 600px){.lofty-listing{flex-wrap:wrap}}@media (max-width: 600px){.lofty-listing .list-card{width:100%}}@media (min-width: 900px) and (max-width: 1480px){.list-card{width:calc((100% - 32px) / 3)}}@media (min-width: 1481px){.list-card{width:calc((100% - 48px)/4)}}.lofty-more{margin:40px auto;min-width:200px;width:fit-content;padding:0 20px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:solid 1px #111;font-family:var(--lofty-font-regular)}@media (max-width: 600px){.lofty-more{margin-top:20px}}.lofty-more:hover{background-color:#0000001a}.lofty-market-report-header{display:flex;align-items:center;margin-bottom:30px}.lofty-market-report-title{margin-top:80px}@media (max-width: 600px){.lofty-market-report-title{margin-top:40px}}.lofty-report-list-dropdown{border:1px solid #dddddd;padding:8px 15px;height:40px;width:380px}@media (max-width: 600px){.lofty-report-list-dropdown{width:100%}}.lofty-report-list-dropdown ul.market-report-list{overflow:auto;max-height:240px;min-width:200px;max-width:300%;padding-left:0}.lofty-report-list-dropdown ul.market-report-list .input_container{margin-bottom:10px}.lofty-report-list-dropdown ul.market-report-list .lofty-report-item{font-size:14px;font-weight:400;line-height:44px;text-align:left;padding:0 10px;display:flex;justify-content:space-between;cursor:pointer}.lofty-report-list-dropdown ul.market-report-list .lofty-report-item:hover{background:#1111110d}.lofty-mobile-subscribe{display:flex;align-items:center;padding:10px}.lofty-mobile-subscribe>div{width:100%}
     1#lofty-market-report-container{width:100%}.lofty-market-report-page{width:100%;margin-top:40px}.lofty-market-report-page .lofty-market-report-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:40px}.lofty-market-report-page .lofty-market-report-title .page-title{font-family:var(--lofty-font-play-bold);font-size:34px;line-height:51px;font-weight:700}.lofty-market-report-page .lofty-market-report-title span.last-time{font-size:18px;color:#505050}.lofty-market-report-page.lofty-is-shortcode{padding:0;margin-top:0}@media (max-width: 600px){.lofty-market-report-page{width:100%}.lofty-market-report-page .lofty-market-report-title{flex-wrap:wrap;margin-bottom:15px}.lofty-market-report-page .lofty-market-report-title .page-title{width:100%;font-size:24px}.lofty-market-report-page .lofty-market-report-title span.last-time{font-size:14px}}.lofty-subscribe-pop{background:#fff;width:400px;padding:30px;position:relative}@media (max-width: 600px){.lofty-subscribe-pop{width:100vw;margin:0 auto;padding:15px}}.lofty-subscribe-pop .title{text-align:center;font-size:20px;color:#191919;font-family:var(--lofty-font-play-bold)}.lofty-subscribe-pop .title .lofty-icon-close{position:absolute;right:20px;top:15px;cursor:pointer}.lofty-subscribe-pop .desc{font-size:12px;color:#505050;margin:10px auto;text-align:center;width:92%}.lofty-subscribe-pop .market-subscribe-pop-content div.label{font-size:14px;color:#505050;font-family:var(--lofty-font-mon-regular)}.lofty-subscribe-pop .market-subscribe-pop-content input{border:solid 1px #DADADA;width:100%;height:40px;line-height:16px;padding:0 15px;border-radius:0;outline:none;font-size:14px;margin-top:10px;color:#202437}.lofty-subscribe-pop .market-subscribe-pop-content input:focus{border-color:#111}.lofty-subscribe-pop .market-subscribe-pop-content input.error{border-color:#fb4444}.lofty-subscribe-pop .market-subscribe-pop-content input.error+span{color:#fb4444;font-size:12px}.lofty-subscribe-pop .market-subscribe-pop-content .snapshot-input-wrap{position:relative}.lofty-subscribe-pop .market-subscribe-pop-content .snapshot-input-wrap .lofty-icon-clear_circle_outlined{position:absolute;top:16px;right:20px;cursor:pointer}.is-subscribed{background:#20c472;gap:10px;cursor:default}.lofty-chart-container{width:100%;height:100%;position:relative}.lofty-charts{width:100%;height:100%}.lofty-chart-no-data{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#fff;opacity:.5}.lofty-three-card-wrap{display:flex;gap:5px;position:relative;z-index:100}@media (max-width: 600px){.lofty-three-card-wrap{flex-wrap:wrap}}.lofty-three-card-wrap .card{cursor:pointer;width:30%;height:220px;flex-grow:1;background:linear-gradient(180deg,#dadada80,#dadada33);border:solid 1px transparent;border-radius:5px 5px 0 0;padding:40px 10px 60px 40px}@media (max-width: 600px){.lofty-three-card-wrap .card{width:100%;height:fit-content;padding:20px 16px 0}}.lofty-three-card-wrap .card .title{font-size:18px;font-weight:700;color:#191919;line-height:20px;font-family:var(--lofty-font-bold)}@media (max-width: 600px){.lofty-three-card-wrap .card .title{font-size:14px}}.lofty-three-card-wrap .card .value{margin-top:26px;font-size:48px;line-height:60px;font-weight:400;color:#191919;font-family:var(--lofty-font-regular)}@media (max-width: 600px){.lofty-three-card-wrap .card .value{font-size:34px;margin-top:0;line-height:50px}}.lofty-three-card-wrap .card .value .rate-number{font-size:16px;font-family:var(--lofty-font-medium);margin-left:20px}@media (max-width: 600px){.lofty-three-card-wrap .card .value .rate-number{font-size:14px;margin-left:10px}}.lofty-three-card-wrap .card .value .rate-number i.lofty_iconfont{font-size:12px}.lofty-three-card-wrap .card .value .up{color:#20c472}.lofty-three-card-wrap .card .value .down{color:#f0454c}.lofty-three-card-wrap .card .desc{color:#a8a8a8;font-size:14px;margin-top:10px}@media (max-width: 600px){.lofty-three-card-wrap .card .desc{margin-top:0;font-size:12px}}.lofty-three-card-wrap .card.active{background:#fff;border-color:#dadada;position:relative;top:1px;border-bottom-color:#fff}@media (max-width: 600px){.lofty-three-card-wrap .card.active{border-bottom-color:#dadada;margin-bottom:16px;border-radius:5px}}.chart-wrap-pc{width:100%;border:solid 1px #DADADA;border-radius:0 0 5px 5px}.chart-wrap-mobile{margin-top:20px;width:100%;height:350px}.lofty-status-tag{width:fit-content;padding:0 5px;height:22px;position:absolute;right:30px;top:25px;z-index:7}@media (max-width: 600px){.lofty-status-tag{left:15px;top:15px}}.lofty-market-listing-slider{width:100%;height:535px;padding-top:60px;position:relative;display:flex;justify-content:flex-end}@media (max-width: 600px){.lofty-market-listing-slider{padding-top:40px;height:400px}}.lofty-market-listing-slider .mask,.lofty-market-listing-slider .img-background{position:absolute;width:100%;height:100%;background:linear-gradient(180deg,#ffffffd9,#fff);left:0;bottom:0}.lofty-market-listing-slider .img-background{object-fit:cover;filter:grayscale(100%)}.swiper-container{width:100%;height:475px;position:relative}@media (max-width: 600px){.swiper-container{height:400px;padding-left:10px}}.swiper-container .swiper-slide-flow{width:50%}.swiper-container .swiper-slide-mobile{width:calc(100% - 30px)!important}.listing-slider-prev-button,.listing-slider-next-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:50px;height:50px;line-height:50px;border-radius:50%;text-align:center;cursor:pointer;color:#fff;background:#111;box-shadow:0 4px 10px #0000001a}.listing-slider-prev-button:after,.listing-slider-next-button:after{content:"";position:absolute;width:100%;height:100%;background:#ffffff26;left:0;top:0;display:none;border-radius:50%}.listing-slider-prev-button:hover:after,.listing-slider-next-button:hover:after{display:block}.listing-slider-prev-button i,.listing-slider-next-button i{color:#fff;font-size:20px}.listing-slider-prev-button.swiper-button-disabled,.listing-slider-next-button.swiper-button-disabled{opacity:.4;cursor:default}.listing-slider-prev-button{left:calc(25% - 75px)}.listing-slider-next-button{right:calc(25% - 75px)}.lofty-market-listing-slider .lofty-feature-listing-house .lofty-house-price{top:65px}@media (max-width: 600px){.lofty-market-listing-slider .lofty-feature-listing-house .lofty-house-price{top:235px}}.swiper-slide-prev .lofty-feature-listing-house .lofty-house-price,.swiper-slide-prev .lofty-feature-listing-house .lofty-mls-info,.swiper-slide-prev .lofty-feature-listing-house .lofty-house-info,.swiper-slide-prev .lofty-feature-listing-house .lofty-feature-address,.swiper-slide-prev .lofty-feature-listing-house .collect,.swiper-slide-next .lofty-feature-listing-house .lofty-house-price,.swiper-slide-next .lofty-feature-listing-house .lofty-mls-info,.swiper-slide-next .lofty-feature-listing-house .lofty-house-info,.swiper-slide-next .lofty-feature-listing-house .lofty-feature-address,.swiper-slide-next .lofty-feature-listing-house .collect{display:none}.pending-listing .lofty-icon-heart-fill,.pending-listing .lofty-icon-heart{right:10px;bottom:15px;top:unset}.lofty-listing{display:flex;gap:16px}@media (max-width: 600px){.lofty-listing{flex-wrap:wrap}}@media (max-width: 600px){.lofty-listing .list-card{width:100%}}@media (min-width: 900px) and (max-width: 1480px){.list-card{width:calc((100% - 32px) / 3)}}@media (min-width: 1481px){.list-card{width:calc((100% - 48px)/4)}}.lofty-more{margin:40px auto;min-width:200px;width:fit-content;padding:0 20px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:solid 1px #111;font-family:var(--lofty-font-regular)}@media (max-width: 600px){.lofty-more{margin-top:20px}}.lofty-more:hover{background-color:#0000001a}.lofty-market-report-header{display:flex;align-items:center;margin-bottom:30px}.lofty-market-report-title{margin-top:80px}@media (max-width: 600px){.lofty-market-report-title{margin-top:40px}}.lofty-report-list-dropdown{border:1px solid #dddddd;padding:8px 15px;height:40px;width:380px}@media (max-width: 600px){.lofty-report-list-dropdown{width:100%}}.lofty-report-list-dropdown ul.market-report-list{overflow:auto;max-height:240px;min-width:200px;max-width:300%;padding-left:0}.lofty-report-list-dropdown ul.market-report-list .input_container{margin-bottom:10px}.lofty-report-list-dropdown ul.market-report-list .lofty-report-item{font-size:14px;font-weight:400;line-height:44px;text-align:left;padding:0 10px;display:flex;justify-content:space-between;cursor:pointer}.lofty-report-list-dropdown ul.market-report-list .lofty-report-item:hover{background:#1111110d}.lofty-mobile-subscribe{display:flex;align-items:center;padding:10px}.lofty-mobile-subscribe>div{width:100%}
  • lofty-idx/trunk/assets/market-report.js

    r3312310 r3329655  
    1 import{g as U,i as d,h as A,o as Y,u as F}from"./_plugin-vue_export-helper.BXwY9aDM.js";import{r as S,c as C,k as j,l as E,o as l,d as x,w as R,e,f as V,q as N,s as O,y as B,u as t,v as Z,x as D,m as z,g as y,F as k,D as Q,p as tt,M as et,J as st,j as _,a as ot,N as it,h as M,t as $,I as at,H as nt}from"./vendor.NEC4PHgy.js";import{c as lt}from"./module.CKjUdtPN.js";import{u as q}from"./user.C9PYqYHM.js";import{a as rt,s as dt}from"./popup-mls.CBKQfXSn.js";import{_ as ct}from"./index.qsOScXF2.js";import{c as ut}from"./index.BjLmwQWW.js";import{P as pt}from"./index.zlpipePe.js";import{_ as yt}from"./index.uDUgTW0e.js";import{n as P}from"./number-format.CLdvQh6j.js";import{E as ft}from"./feature-listing-slider.BE3-pAJs.js";import{_ as mt}from"./houseSlider.B8lXL2Vn.js";import{h as W}from"./verify-email.BuNdX22j.js";import{_ as X}from"./index.BLlfxopq.js";import{I as gt}from"./index.C-6OBrPY.js";import"./useConfirm.BpvHcTF0.js";import"./outsideclick.Bw_hMuzW.js";import"./google.xpY_32OC.js";const I={};function vt(a){const n=a.getModuleData(),o={module:a,isShortCode:n.isShortCode,config:S(n.isShortCode?n.shortcode_config:{}),featureListingName:C(()=>o.config.value.featureListingName),hideDropDown:S(!1),submitJs:n.submitJs},r={getPageSize(){if(d)return 4;{const s=window.innerWidth;if(s>1480)return 4;if(s>900)return 3}},async getReportByTitle(s){r.syncUrl(s);const{data:f}=await A.post("/admin/report/getByTitle",{data:{title:s}});o.config.value={encryptId:f.encryptId,title:f.title,featureListingName:f.filterName,show_new:f.extraInfo.displayNewListing,show_pending:f.extraInfo.displayPendingListings,show_sold:f.extraInfo.displaySoldListings,leadSubscribeStatus:!!f.leadSubscribeStatus}},syncUrl(s){let f=window.location.pathname,b=U();b.report=encodeURIComponent(s),f=f+"?"+Y(b),window.history.pushState(null,"",f)}},i=U();return i.report&&r.getReportByTitle(decodeURIComponent(i.report)),{...o,...r}}function ht(a){I[a.id]=vt(a)}const _t={class:"lofty-subscribe-pop"},bt={class:"market-subscribe-pop-content"},St={class:"snapshot-input-wrap"},wt={__name:"subscribePop",props:{reportId:[String,Number],name:String},emits:["submit"],setup(a,{emit:n}){const o=j("popRef"),r=n,i=S(a.name),s=S(7),f=[{label:"Instantly",value:0},{label:"Daily",value:1},{label:"Weekly",value:7},{label:"Biweekly",value:14},{label:"Monthly",value:28}];E(()=>{o.value.open()});const b=S(!1);async function m(){if(!i.value.trim()){b.value=!0,setTimeout(()=>{b.value=!1},3e3);return}const h={encryptId:a.reportId,subscribe:!0,snapshotName:i.value,mailFrequency:s.value};(await A.post("/admin/report/subscribe",{data:h})).status.code===0?(r("submit"),v()):F.toast("Failed to subscribe to this report")}function v(){o.value.$el.parentNode.remove(),document.body.classList.remove("lofty-overflow-hidden")}return(h,c)=>(l(),x(pt,{ref_key:"popRef",ref:o,allowClose:!1},{default:R(()=>[e("div",_t,[e("div",{class:"title"},[c[3]||(c[3]=V("SAVE MARKET REPORT")),e("i",{class:"lofty_iconfont lofty-icon-close",onClick:v})]),c[6]||(c[6]=e("div",{class:"desc"}," Market updates that will help you to better understand the local market. ",-1)),e("div",bt,[c[4]||(c[4]=e("div",{class:"label"},"Custom Market Report Name",-1)),e("div",St,[N(e("input",{"onUpdate:modelValue":c[0]||(c[0]=p=>O(i)?i.value=p:null),class:B({error:t(b)}),placeholder:"Type Something"},null,2),[[Z,t(i)]]),N(e("span",null,"Please fill out this field.",512),[[D,t(b)]]),N(e("span",{class:"lofty_iconfont lofty-icon-clear_circle_outlined",onClick:c[1]||(c[1]=p=>i.value="")},null,512),[[D,t(i)]])]),c[5]||(c[5]=e("div",{class:"label mt20"},"Email Frequency",-1)),z(yt,{class:"mt10",modelValue:t(s),"onUpdate:modelValue":c[2]||(c[2]=p=>O(s)?s.value=p:null),list:f},null,8,["modelValue"])]),e("div",{class:"lofty-btn mt20",onClick:m},"Save")])]),_:1},512))}},xt={class:"lofty-btn is-subscribed ml-auto"},G={__name:"subscribeButton",props:{submitJs:String,reportId:[String,Number],leadSubscribeStatus:Boolean,name:String},setup(a){const n=S(a.leadSubscribeStatus);function o(){ut(async()=>{const r=document.createElement("div");document.body.appendChild(r),Q(wt,{reportId:a.reportId,name:a.name,onSubmit:()=>{n.value=!0,F.toast("Subscribe Successful!"),F.executeSubmitJS(a.submitJs)}}).mount(r)})}return(r,i)=>(l(),y(k,null,[N(e("div",{class:"lofty-btn ml-auto",onClick:o},"Subscribe to the report",512),[[D,!t(n)]]),N(e("div",xt,i[0]||(i[0]=[e("span",null,"Already subscribed to the report",-1),e("i",{class:"lofty_iconfont lofty-icon-checked"},null,-1)]),512),[[D,t(n)]])],64))}},kt={class:"lofty-chart-container"},Lt={key:0,class:"lofty-chart-no-data"},H={__name:"index",props:{option:Object},setup(a){const n=C(()=>a.option.series.every(s=>s.data.every(f=>f===0))),o=j("chart");let r=null;tt(()=>a.option,s=>{r&&r.setOption(s,!0)},{deep:!0});const i=new ResizeObserver(()=>{r&&r.resize()});return E(()=>{r=et(o.value),r.setOption(a.option),i.observe(o.value)}),st(()=>{i.unobserve(o.value)}),(s,f)=>(l(),y("div",kt,[e("div",{class:"lofty-charts",ref_key:"chart",ref:o},null,512),t(n)?(l(),y("div",Lt,f[0]||(f[0]=[e("div",{class:"lofty-no-listing"},[e("i",{class:"lofty_iconfont lofty-icon-activities_04"}),e("div",{class:"no-listing-text"},"No Data")],-1)]))):_("",!0)]))}},T=getComputedStyle(document.documentElement),J="border-radius: 0;box-shadow: 0px 2px 5px 0px rgba(25, 25, 25, 0.1)",At={price:{color:[T.getPropertyValue("--lofty-market-report-list-price-color")||"#A8A8A8",T.getPropertyValue("--lofty-market-report-sold-price-color")||"#505050"],legend:{data:["List Price","Sold Price"],left:d?0:40,top:d?315:40,icon:"rect",itemWidth:12,itemHeight:3,itemGap:30},grid:{top:d?10:100,left:d?45:100,right:d?10:50},xAxis:{type:"category",boundaryGap:!1,data:[],axisLine:{lineStyle:{color:"#dadada"}},axisLabel:{color:"#A8A8A8"}},yAxis:{type:"value",scale:!0,axisLabel:{padding:d?[0,0,0,0]:[0,10,0,0],color:"#A8A8A8",formatter:function(a){if(a)return"$"+(P(a,!0,1)||"0")}},axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisTick:{show:!0,lineStyle:{color:"#A8A8A8"}},splitLine:{show:!1}},tooltip:{trigger:"axis",position:d?[45,10]:null,extraCssText:J,formatter:function(a){let n=`<div style="color:#A8A8A8">${a[0].axisValue}</div>`;return a.forEach(o=>{const r="$"+String(o.value).replace(/\B(?=(\d{3})+(?!\d))/g,",");n+=`<div style="color: #191919;margin-top: 10px;padding-right: 20px">${o.seriesName}:${r} </div>`}),n}},series:[{name:"List Price",data:[],type:"line",showSymbol:!1,symbolSize:5,lineStyle:{width:3},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(25, 25, 25, 0.15)"},{offset:1,color:"rgba(25, 25, 25, 0)"}]}}},{name:"Sold Price",data:[],type:"line",showSymbol:!1,symbolSize:5,lineStyle:{width:3},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(25, 25, 25, 0.15)"},{offset:1,color:"rgba(25, 25, 25, 0)"}]}}}]},day:{color:[T.getPropertyValue("--lofty-market-report-day-color")||"#505050"],grid:{top:d?10:100,left:d?30:60,right:d?10:50,bottom:d?40:60},xAxis:{type:"category",data:[],axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisLabel:{color:"#A8A8A8"}},yAxis:{type:"value",axisLabel:{padding:d?[0,0,0,0]:[0,10,0,0],color:"#A8A8A8"},axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisTick:{show:!0,lineStyle:{color:"#A8A8A8"}},splitLine:{show:!1}},tooltip:{trigger:"axis",position:d?[30,10]:null,extraCssText:J,formatter:function(a){let n=`<div style="color:#A8A8A8">${a[0].axisValue}</div>`;return a.forEach(o=>{n+=`<div style="color: #191919;margin-top: 10px;padding-right: 20px">${o.seriesName}:${o.value} </div>`}),n}},series:[{name:"Median Days on Market",data:[],type:"bar",barWidth:d?15:30}]},inventory:{color:[T.getPropertyValue("--lofty-market-report-inventory-active-color")||"#A8A8A8",T.getPropertyValue("--lofty-market-report-inventory-sold-color")||"#505050"],legend:{data:["Active Listings","Sold Listings"],left:d?0:40,top:d?315:40,icon:"rect",itemWidth:12,itemHeight:3,itemGap:30},grid:{top:d?10:100,left:d?30:80,right:d?10:50},xAxis:{type:"category",data:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisLabel:{color:"#A8A8A8"}},yAxis:{type:"value",axisLabel:{padding:d?[0,0,0,0]:[0,10,0,0],color:"#A8A8A8"},axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisTick:{show:!0,lineStyle:{color:"#A8A8A8"}},splitLine:{show:!1}},tooltip:{trigger:"axis",position:d?[30,10]:null,extraCssText:J,formatter:function(a){let n=`<div style="color:#A8A8A8">${a[0].axisValue}</div>`;return a.forEach(o=>{n+=`<div style="color: #191919;margin-top: 10px;padding-right: 20px">${o.seriesName}:${o.value} </div>`}),n}},series:[{name:"Active Listings",data:[],type:"bar",barWidth:d?10:30},{name:"Sold Listings",data:[],type:"bar",barWidth:d?10:30}]}},$t={class:"market-report-three-data"},Ct={class:"lofty-three-card-wrap"},Nt=["onClick"],It={class:"title"},Tt={class:"value"},Dt={key:0,class:"lofty_iconfont lofty-icon-arrow_03_up"},Et={key:1,class:"lofty_iconfont lofty-icon-arrow_04_down"},Mt={class:"desc"},Pt={__name:"threeData",props:{id:String},setup(a){const n=ot({price:{title:"Median List Price",value:null,rate:"",trend:"",desc:"The past 30 days -over- the previous 30 days"},day:{title:"Median Days on Market",value:null,rate:"",trend:"",desc:"The past 30 days -over- the previous 30 days"},inventory:{title:"Inventory",value:null,rate:"",trend:"",desc:"The past 30 days -over- the previous 30 days"}}),o=S(1),r=S("price"),i=it(At),s=S(i.price);function f(c){!d&&r.value!==c&&(r.value=c,s.value=i[c])}const{config:b}=I[a.id],m={filterName:b.value.featureListingName};v(),h();async function v(){const c=await A.get("market-report/statsInLastSixtyDays",{data:m}),{last_30_days:p,month_over_month:u}=c.data;n.price.value=P(p.median_list_price,!1,0,"$"),n.price.rate=u.median_list_price,n.price.trend=u.median_list_price_trend,n.day.value=P(p.median_days_on_market),n.day.rate=u.median_days_on_market,n.day.trend=u.median_days_on_market_trend,n.inventory.value=P(p.list_inventory+""),n.inventory.rate=u.list_inventory,n.inventory.trend=u.list_inventory_trend}async function h(){const c=await A.get("market-report/statsInLastSixMonths",{data:m}),p=[];for(let u in c.data){const g=c.data[u],w=new Date(`${u}-01`).toLocaleString("en-US",{month:"short"});p.push(w),i.price.series[0].data.push(+g.median_list_price||0),i.price.series[1].data.push(+g.median_sale_price||0),i.day.series[0].data.push(+g.median_days_on_market||0),i.inventory.series[0].data.push(g.list_inventory||0),i.inventory.series[1].data.push(g.sold_inventory||0)}i.price.xAxis.data=p,i.day.xAxis.data=p,i.inventory.xAxis.data=p,o.value=Date.now()}return(c,p)=>(l(),y("div",$t,[e("div",Ct,[(l(!0),y(k,null,M(t(n),(u,g)=>(l(),y("div",{class:B(["card",{active:t(r)===g||t(d)}]),onClick:w=>f(g)},[e("div",It,$(u.title),1),e("div",Tt,[V($(u.value||"--")+" ",1),e("span",{class:B(["rate-number",u.trend])},[u.trend==="up"?(l(),y("i",Dt)):u.trend==="down"?(l(),y("i",Et)):_("",!0),V(" "+$(u.rate),1)],2)]),e("div",Mt,$(u.desc),1),t(d)?(l(),x(H,{option:t(i)[g],key:t(o),class:"chart-wrap-mobile"},null,8,["option"])):_("",!0)],10,Nt))),256))]),t(d)?_("",!0):(l(),x(H,{option:t(s),key:t(o),class:"chart-wrap-pc",style:{height:"calc(100vh - 300px)"}},null,8,["option"]))]))}},Rt={key:0,class:"lofty-market-listing-slider"},Vt=["src"],Bt={init:"false",class:"swiper-container"},zt={key:2,class:"lofty-no-listing"},Jt={__name:"newListing",props:{id:String},setup(a){at();const{module:n,featureListingName:o}=I[a.id],r=LoftyIdxUtils.static_url(ft),i=S(!0),s=S([]),f=Date.now(),b=f-30*24*60*60*1e3,m=JSON.stringify({listingDate:[b,f].join(",")});async function v(){const p={pageSize:50,page:1,listingType:"featured-listing",featureListingName:o.value,condition:m},u=await A.get("/search/realTimeListings",{data:p,action:"lofty_idx_api"});u.data.listings.forEach(g=>W(g)),s.value=u.data.listings,i.value=!1,s.value.length>0&&nt(()=>{h()})}function h(){const p=n.$(".swiper-container");let u={navigation:{prevEl:".listing-slider-prev-button",nextEl:".listing-slider-next-button"},loop:s.value.length>3,initialSlide:1,observer:!0,spaceBetween:d?10:0,speed:1e3,autoplay:{pauseOnMouseEnter:!0,delay:5e3},centeredSlides:!d,centeredSlidesBounds:!1,slidesPerView:"auto",effect:"coverflow",coverflowEffect:{rotate:0,depth:0,scale:d?1:(50-100/window.innerWidth*100)/50,slideShadows:!1}};Object.assign(p,u),p.initialize()}function c(){const p=document.createElement("a");p.href=`/listing/?pageKey=search&featureListingName=${o.value}&condition=${encodeURIComponent(m)}`,p.target=d?"_self":"_blank",document.body.appendChild(p),p.click(),document.body.removeChild(p)}return E(()=>{v()}),(p,u)=>(l(),y(k,null,[u[5]||(u[5]=e("div",{class:"lofty-market-report-title lofty-page-padding"},[e("p",{class:"page-title"},"New Listings"),e("span",{class:"last-time"},"Last 30 Days")],-1)),t(s).length>0&&!t(i)?(l(),y("div",Rt,[e("img",{class:"img-background",src:t(r),alt:""},null,8,Vt),u[3]||(u[3]=e("div",{class:"mask"},null,-1)),e("swiper-container",Bt,[(l(!0),y(k,null,M(t(s),(g,w)=>(l(),y("swiper-slide",{key:w,class:B({"swiper-slide-flow":!t(d),"swiper-slide-mobile":t(d)})},[z(mt,{house:g},{default:R(()=>u[0]||(u[0]=[e("div",{class:"lofty-status-tag new"},"Active",-1)])),_:2},1032,["house"])],2))),128))]),t(d)?_("",!0):(l(),y(k,{key:0},[u[1]||(u[1]=e("div",{class:"listing-slider-prev-button"},[e("i",{class:"lofty_iconfont lofty-icon-arrow_06_left"})],-1)),u[2]||(u[2]=e("div",{class:"listing-slider-next-button"},[e("i",{class:"lofty_iconfont lofty-icon-arrow_06_right"})],-1))],64))])):_("",!0),t(s).length>0&&!t(i)?(l(),y("div",{key:1,onClick:c,class:"lofty-more"},"More")):_("",!0),t(s).length===0&&!t(i)?(l(),y("div",zt,u[4]||(u[4]=[e("i",{class:"lofty_iconfont lofty-icon-house_02"},null,-1),e("div",{class:"no-listing-text"},"No Listing Found",-1)]))):_("",!0)],64))}},Ut={key:0,class:"lofty-listing pending-listing"},Ft={key:2,class:"lofty-no-listing"},Ot={__name:"pendingListing",props:{id:String},setup(a){const{featureListingName:n,getPageSize:o}=I[a.id],r=S([]),i=S(!0);E(()=>{f()});const s=JSON.stringify({listingStatus:["Pending"]});async function f(){const m={pageSize:o(),page:1,listingType:"featured-listing",featureListingName:n.value,condition:s},v=await A.get("/search/realTimeListings",{data:m,action:"lofty_idx_api"});v.data.listings.forEach(h=>W(h)),r.value=v.data.listings,i.value=!1}function b(){const m=document.createElement("a");m.href=`/listing/?pageKey=search&featureListingName=${n.value}&condition=${encodeURIComponent(s)}`,m.target=d?"_self":"_blank",document.body.appendChild(m),m.click(),document.body.removeChild(m)}return(m,v)=>(l(),y(k,null,[v[1]||(v[1]=e("div",{class:"lofty-market-report-title"},[e("p",{class:"page-title"},"Pending Listings")],-1)),t(r).length>0&&!t(i)?(l(),y("div",Ut,[(l(!0),y(k,null,M(t(r),h=>(l(),x(X,{class:"list-card",house:h},null,8,["house"]))),256))])):_("",!0),t(r).length>0&&!t(i)?(l(),y("div",{key:1,onClick:b,class:"lofty-more"},"More")):_("",!0),t(r).length===0&&!t(i)?(l(),y("div",Ft,v[0]||(v[0]=[e("i",{class:"lofty_iconfont lofty-icon-house_02"},null,-1),e("div",{class:"no-listing-text"},"No Listing Found",-1)]))):_("",!0)],64))}},jt={key:0,class:"lofty-listing"},Wt={key:2,class:"lofty-no-listing"},Kt={__name:"soldListing",props:{id:String},setup(a){const{featureListingName:n,getPageSize:o}=I[a.id],r=S([]),i=S(!0),s=Date.now(),f=s-30*24*60*60*1e3,b=JSON.stringify({soldDate:[f,s].join(",")});E(()=>{m()});async function m(){const h={pageSize:o(),page:1,featureListingName:n.value,listingType:"sold-listing",condition:b},c=await A.get("/search/realTimeListings",{data:h,action:"lofty_idx_api"});c.data.listings.forEach(p=>W(p)),r.value=c.data.listings,i.value=!1}function v(){const h=document.createElement("a");h.href=`/sold-listing/?pageKey=sold_listing&featureListingName=${n.value}&condition=${encodeURIComponent(b)}`,h.target=d?"_self":"_blank",document.body.appendChild(h),h.click(),document.body.removeChild(h)}return(h,c)=>(l(),y(k,null,[c[1]||(c[1]=e("div",{class:"lofty-market-report-title"},[e("p",{class:"page-title"},"Sold Listings"),e("span",{class:"last-time"},"Last 30 Days")],-1)),t(r).length>0&&!t(i)?(l(),y("div",jt,[(l(!0),y(k,null,M(t(r),p=>(l(),x(X,{class:"list-card",house:p},null,8,["house"]))),256))])):_("",!0),t(r).length>0&&!t(i)?(l(),y("div",{key:1,onClick:v,class:"lofty-more"},"More")):_("",!0),t(r).length===0&&!t(i)?(l(),y("div",Wt,c[0]||(c[0]=[e("i",{class:"lofty_iconfont lofty-icon-house_02"},null,-1),e("div",{class:"no-listing-text"},"No Listing Found",-1)]))):_("",!0)],64))}},qt={key:0,class:"lofty-market-report-header lofty-page-padding"},Gt={class:"lofty-ellipsis"},Ht={class:"market-report-list"},Qt=["onClick"],Xt={class:"lofty_iconfont lofty-icon-checked"},Yt={class:"lofty-market-report-title lofty-page-padding"},Zt={class:"page-title"},te={class:"lofty-page-padding"},ee={key:1},se={key:2,class:"lofty-page-padding"},oe={key:3,class:"lofty-page-padding"},ie={key:4,class:"lofty-mobile-fix-bottom lofty-mobile-subscribe"},ae={__name:"index",props:{id:String},setup(a){const{isShortCode:n,config:o,getReportByTitle:r,submitJs:i}=I[a.id],s=C(()=>o.value.encryptId),f=C(()=>o.value.leadSubscribeStatus),b=C(()=>n||s.value),m=S(""),v=S([]),h=C(()=>v.value.filter(g=>m.value?g.title.toLowerCase().includes(m.value.toLowerCase()):v.value));n||c();async function c(){const g={pageNum:1,pageSize:300,onlyShowDisplay:!0},w=await A.post("/admin/report/list",{data:g});v.value=w.data.pluginReports||[];const L=v.value[0],K=U();L&&!K.report&&r(L.title)}const p=j("dropdown");function u(g){g.encryptId!==o.value.encryptId&&(o.value.title=g.title,r(g.title)),p.value.open(!1)}return(g,w)=>(l(),y(k,null,[t(n)?_("",!0):(l(),y("div",qt,[z(ct,{class:"lofty-report-list-dropdown",left:0,clickMenuClose:!1,ref_key:"dropdown",ref:p},{menu:R(()=>[e("ul",Ht,[z(gt,{value:t(m),"onUpdate:value":w[0]||(w[0]=L=>O(m)?m.value=L:null),searchable:""},null,8,["value"]),(l(!0),y(k,null,M(t(h),L=>(l(),y("li",{class:"lofty-report-item lofty-ellipsis",onClick:K=>u(L)},[V($(L.title)+" ",1),N(e("i",Xt,null,512),[[D,t(s)===L.encryptId]])],8,Qt))),256))])]),default:R(()=>[e("span",Gt,$(t(o).title),1)]),_:1},512),!t(d)&&t(s)?(l(),x(G,{reportId:t(s),key:t(s),submitJs:t(i),name:t(o).title,leadSubscribeStatus:t(f)},null,8,["reportId","submitJs","name","leadSubscribeStatus"])):_("",!0)])),e("div",Yt,[e("p",Zt,$(t(o).title),1),w[1]||(w[1]=e("span",{class:"last-time"},"Last 30 Days",-1))]),e("div",te,[t(b)?(l(),x(Pt,{id:a.id,key:t(s)},null,8,["id"])):_("",!0)]),t(o).show_new?(l(),y("div",ee,[(l(),x(Jt,{id:a.id,key:t(s)},null,8,["id"]))])):_("",!0),t(o).show_pending?(l(),y("div",se,[(l(),x(Ot,{id:a.id,key:t(s)},null,8,["id"]))])):_("",!0),t(o).show_sold?(l(),y("div",oe,[(l(),x(Kt,{id:a.id,key:t(s)},null,8,["id"]))])):_("",!0),t(d)&&t(s)?(l(),y("div",ie,[(l(),x(G,{reportId:t(s),key:t(s),submitJs:t(i),name:t(o).title,leadSubscribeStatus:t(f)},null,8,["reportId","submitJs","name","leadSubscribeStatus"]))])):_("",!0)],64))}};rt();q.initState(()=>{q.mlsList.forEach(a=>dt(a))});jQuery(".lofty-market-report-page").ready(function(){document.querySelectorAll(".lofty-market-report-page").forEach(n=>{const o=n.getAttribute("id"),r=lt(o);ht(r);const{id:i,$:s}=r;Q(ae,{id:i}).mount(s("#lofty-market-report-container"))})});
     1import{g as U,i as d,h as A,o as Y,u as F,d as Z}from"./_plugin-vue_export-helper.BXwY9aDM.js";import{r as S,c as C,k as j,l as E,o as l,d as x,w as R,e,f as V,q as N,s as O,y as z,u as t,v as tt,x as D,m as B,g as y,F as k,D as Q,p as et,M as st,J as ot,j as b,a as it,N as at,h as M,t as $,I as nt,H as lt}from"./vendor.NEC4PHgy.js";import{c as rt}from"./module.CKjUdtPN.js";import{u as q}from"./user.C9PYqYHM.js";import{a as dt,s as ct}from"./popup-mls.CBKQfXSn.js";import{_ as ut}from"./index.qsOScXF2.js";import{c as pt}from"./index.BjLmwQWW.js";import{P as yt}from"./index.zlpipePe.js";import{_ as ft}from"./index.uDUgTW0e.js";import{n as P}from"./number-format.CLdvQh6j.js";import{E as mt}from"./feature-listing-slider.BE3-pAJs.js";import{_ as gt}from"./houseSlider.B8lXL2Vn.js";import{h as W}from"./verify-email.BuNdX22j.js";import{_ as X}from"./index.BLlfxopq.js";import{I as vt}from"./index.C-6OBrPY.js";import"./useConfirm.BpvHcTF0.js";import"./outsideclick.Bw_hMuzW.js";import"./google.xpY_32OC.js";const I={};function ht(a){const n=a.getModuleData(),s={module:a,isShortCode:n.isShortCode,config:S(n.isShortCode?n.shortcode_config:{}),featureListingName:C(()=>s.config.value.featureListingName),hideDropDown:S(!1),submitJs:n.submitJs},r={getPageSize(){if(d)return 4;{const i=window.innerWidth;if(i>1480)return 4;if(i>900)return 3}},async getReportByTitle(i){r.syncUrl(i);const{data:f}=await A.post("/admin/report/getByTitle",{data:{title:i}});s.config.value={encryptId:f.encryptId,title:f.title,featureListingName:f.filterName,show_new:f.extraInfo.displayNewListing,show_pending:f.extraInfo.displayPendingListings,show_sold:f.extraInfo.displaySoldListings,leadSubscribeStatus:!!f.leadSubscribeStatus}},syncUrl(i){let f=window.location.pathname,g=U();g.report=encodeURIComponent(i),f=f+"?"+Y(g),window.history.pushState(null,"",f)}},o=U();return o.report&&r.getReportByTitle(decodeURIComponent(o.report)),{...s,...r}}function _t(a){I[a.id]=ht(a)}const bt={class:"lofty-subscribe-pop"},St={class:"market-subscribe-pop-content"},wt={class:"snapshot-input-wrap"},xt={__name:"subscribePop",props:{reportId:[String,Number],name:String},emits:["submit"],setup(a,{emit:n}){const s=j("popRef"),r=n,o=S(a.name),i=S(7),f=[{label:"Instantly",value:0},{label:"Daily",value:1},{label:"Weekly",value:7},{label:"Biweekly",value:14},{label:"Monthly",value:28}];E(()=>{s.value.open()});const g=S(!1);async function m(){if(!o.value.trim()){g.value=!0,setTimeout(()=>{g.value=!1},3e3);return}const _={encryptId:a.reportId,subscribe:!0,snapshotName:o.value,mailFrequency:i.value};(await A.post("/admin/report/subscribe",{data:_})).status.code===0?(r("submit"),h()):F.toast("Failed to subscribe to this report")}function h(){s.value.$el.parentNode.remove(),document.body.classList.remove("lofty-overflow-hidden")}return(_,c)=>(l(),x(yt,{ref_key:"popRef",ref:s,allowClose:!1},{default:R(()=>[e("div",bt,[e("div",{class:"title"},[c[3]||(c[3]=V("SAVE MARKET REPORT")),e("i",{class:"lofty_iconfont lofty-icon-close",onClick:h})]),c[6]||(c[6]=e("div",{class:"desc"}," Market updates that will help you to better understand the local market. ",-1)),e("div",St,[c[4]||(c[4]=e("div",{class:"label"},"Custom Market Report Name",-1)),e("div",wt,[N(e("input",{"onUpdate:modelValue":c[0]||(c[0]=p=>O(o)?o.value=p:null),class:z({error:t(g)}),placeholder:"Type Something"},null,2),[[tt,t(o)]]),N(e("span",null,"Please fill out this field.",512),[[D,t(g)]]),N(e("span",{class:"lofty_iconfont lofty-icon-clear_circle_outlined",onClick:c[1]||(c[1]=p=>o.value="")},null,512),[[D,t(o)]])]),c[5]||(c[5]=e("div",{class:"label mt20"},"Email Frequency",-1)),B(ft,{class:"mt10",modelValue:t(i),"onUpdate:modelValue":c[2]||(c[2]=p=>O(i)?i.value=p:null),list:f},null,8,["modelValue"])]),e("div",{class:"lofty-btn mt20",onClick:m},"Save")])]),_:1},512))}},kt={class:"lofty-btn is-subscribed ml-auto"},G={__name:"subscribeButton",props:{submitJs:String,reportId:[String,Number],leadSubscribeStatus:Boolean,name:String},setup(a){const n=S(a.leadSubscribeStatus);function s(){pt(async()=>{const r=document.createElement("div");document.body.appendChild(r),Q(xt,{reportId:a.reportId,name:a.name,onSubmit:()=>{n.value=!0,F.toast("Subscribe Successful!"),F.executeSubmitJS(a.submitJs)}}).mount(r)})}return(r,o)=>(l(),y(k,null,[N(e("div",{class:"lofty-btn ml-auto",onClick:s},"Subscribe to the report",512),[[D,!t(n)]]),N(e("div",kt,o[0]||(o[0]=[e("span",null,"Already subscribed to the report",-1),e("i",{class:"lofty_iconfont lofty-icon-checked"},null,-1)]),512),[[D,t(n)]])],64))}},Lt={class:"lofty-chart-container"},At={key:0,class:"lofty-chart-no-data"},H={__name:"index",props:{option:Object},setup(a){const n=C(()=>a.option.series.every(f=>f.data.every(g=>g===0))),s=j("chart");let r=null;et(()=>a.option,f=>{r&&r.setOption(f,!0)},{deep:!0});const o=Z(()=>{r&&r.resize()},1e3),i=new ResizeObserver(()=>{o()});return E(()=>{r=st(s.value),r.setOption(a.option),i.observe(s.value)}),ot(()=>{i.unobserve(s.value)}),(f,g)=>(l(),y("div",Lt,[e("div",{class:"lofty-charts",ref_key:"chart",ref:s},null,512),t(n)?(l(),y("div",At,g[0]||(g[0]=[e("div",{class:"lofty-no-listing"},[e("i",{class:"lofty_iconfont lofty-icon-activities_04"}),e("div",{class:"no-listing-text"},"No Data")],-1)]))):b("",!0)]))}},T=getComputedStyle(document.documentElement),J="border-radius: 0;box-shadow: 0px 2px 5px 0px rgba(25, 25, 25, 0.1)",$t={price:{color:[T.getPropertyValue("--lofty-market-report-list-price-color")||"#A8A8A8",T.getPropertyValue("--lofty-market-report-sold-price-color")||"#505050"],legend:{data:["List Price","Sold Price"],left:d?0:40,top:d?315:40,icon:"rect",itemWidth:12,itemHeight:3,itemGap:30},grid:{top:d?10:100,left:d?45:100,right:d?10:50},xAxis:{type:"category",boundaryGap:!1,data:[],axisLine:{lineStyle:{color:"#dadada"}},axisLabel:{color:"#A8A8A8"}},yAxis:{type:"value",scale:!0,axisLabel:{padding:d?[0,0,0,0]:[0,10,0,0],color:"#A8A8A8",formatter:function(a){if(a)return"$"+(P(a,!0,1)||"0")}},axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisTick:{show:!0,lineStyle:{color:"#A8A8A8"}},splitLine:{show:!1}},tooltip:{trigger:"axis",position:d?[45,10]:null,extraCssText:J,formatter:function(a){let n=`<div style="color:#A8A8A8">${a[0].axisValue}</div>`;return a.forEach(s=>{const r="$"+String(s.value).replace(/\B(?=(\d{3})+(?!\d))/g,",");n+=`<div style="color: #191919;margin-top: 10px;padding-right: 20px">${s.seriesName}:${r} </div>`}),n}},series:[{name:"List Price",data:[],type:"line",showSymbol:!1,symbolSize:5,lineStyle:{width:3},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(25, 25, 25, 0.15)"},{offset:1,color:"rgba(25, 25, 25, 0)"}]}}},{name:"Sold Price",data:[],type:"line",showSymbol:!1,symbolSize:5,lineStyle:{width:3},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(25, 25, 25, 0.15)"},{offset:1,color:"rgba(25, 25, 25, 0)"}]}}}]},day:{color:[T.getPropertyValue("--lofty-market-report-day-color")||"#505050"],grid:{top:d?10:100,left:d?30:60,right:d?10:50,bottom:d?40:60},xAxis:{type:"category",data:[],axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisLabel:{color:"#A8A8A8"}},yAxis:{type:"value",axisLabel:{padding:d?[0,0,0,0]:[0,10,0,0],color:"#A8A8A8"},axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisTick:{show:!0,lineStyle:{color:"#A8A8A8"}},splitLine:{show:!1}},tooltip:{trigger:"axis",position:d?[30,10]:null,extraCssText:J,formatter:function(a){let n=`<div style="color:#A8A8A8">${a[0].axisValue}</div>`;return a.forEach(s=>{n+=`<div style="color: #191919;margin-top: 10px;padding-right: 20px">${s.seriesName}:${s.value} </div>`}),n}},series:[{name:"Median Days on Market",data:[],type:"bar",barWidth:d?15:30}]},inventory:{color:[T.getPropertyValue("--lofty-market-report-inventory-active-color")||"#A8A8A8",T.getPropertyValue("--lofty-market-report-inventory-sold-color")||"#505050"],legend:{data:["Active Listings","Sold Listings"],left:d?0:40,top:d?315:40,icon:"rect",itemWidth:12,itemHeight:3,itemGap:30},grid:{top:d?10:100,left:d?30:80,right:d?10:50},xAxis:{type:"category",data:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisLabel:{color:"#A8A8A8"}},yAxis:{type:"value",axisLabel:{padding:d?[0,0,0,0]:[0,10,0,0],color:"#A8A8A8"},axisLine:{show:!0,lineStyle:{color:"#dadada"}},axisTick:{show:!0,lineStyle:{color:"#A8A8A8"}},splitLine:{show:!1}},tooltip:{trigger:"axis",position:d?[30,10]:null,extraCssText:J,formatter:function(a){let n=`<div style="color:#A8A8A8">${a[0].axisValue}</div>`;return a.forEach(s=>{n+=`<div style="color: #191919;margin-top: 10px;padding-right: 20px">${s.seriesName}:${s.value} </div>`}),n}},series:[{name:"Active Listings",data:[],type:"bar",barWidth:d?10:30},{name:"Sold Listings",data:[],type:"bar",barWidth:d?10:30}]}},Ct={class:"market-report-three-data"},Nt={class:"lofty-three-card-wrap"},It=["onClick"],Tt={class:"title"},Dt={class:"value"},Et={key:0,class:"lofty_iconfont lofty-icon-arrow_03_up"},Mt={key:1,class:"lofty_iconfont lofty-icon-arrow_04_down"},Pt={class:"desc"},Rt={__name:"threeData",props:{id:String},setup(a){const n=it({price:{title:"Median List Price",value:null,rate:"",trend:"",desc:"The past 30 days -over- the previous 30 days"},day:{title:"Median Days on Market",value:null,rate:"",trend:"",desc:"The past 30 days -over- the previous 30 days"},inventory:{title:"Inventory",value:null,rate:"",trend:"",desc:"The past 30 days -over- the previous 30 days"}}),s=S(1),r=S("price"),o=at($t),i=S(o.price);function f(c){!d&&r.value!==c&&(r.value=c,i.value=o[c])}const{config:g}=I[a.id],m={filterName:g.value.featureListingName};h(),_();async function h(){const c=await A.get("market-report/statsInLastSixtyDays",{data:m}),{last_30_days:p,month_over_month:u}=c.data;n.price.value=P(p.median_list_price,!1,0,"$"),n.price.rate=u.median_list_price,n.price.trend=u.median_list_price_trend,n.day.value=P(p.median_days_on_market),n.day.rate=u.median_days_on_market,n.day.trend=u.median_days_on_market_trend,n.inventory.value=P(p.list_inventory+""),n.inventory.rate=u.list_inventory,n.inventory.trend=u.list_inventory_trend}async function _(){const c=await A.get("market-report/statsInLastSixMonths",{data:m}),p=[];for(let u in c.data){const v=c.data[u],w=new Date(`${u}-01`).toLocaleString("en-US",{month:"short"});p.push(w),o.price.series[0].data.push(+v.median_list_price||0),o.price.series[1].data.push(+v.median_sale_price||0),o.day.series[0].data.push(+v.median_days_on_market||0),o.inventory.series[0].data.push(v.list_inventory||0),o.inventory.series[1].data.push(v.sold_inventory||0)}o.price.xAxis.data=p,o.day.xAxis.data=p,o.inventory.xAxis.data=p,s.value=Date.now()}return(c,p)=>(l(),y("div",Ct,[e("div",Nt,[(l(!0),y(k,null,M(t(n),(u,v)=>(l(),y("div",{class:z(["card",{active:t(r)===v||t(d)}]),onClick:w=>f(v)},[e("div",Tt,$(u.title),1),e("div",Dt,[V($(u.value||"--")+" ",1),e("span",{class:z(["rate-number",u.trend])},[u.trend==="up"?(l(),y("i",Et)):u.trend==="down"?(l(),y("i",Mt)):b("",!0),V(" "+$(u.rate),1)],2)]),e("div",Pt,$(u.desc),1),t(d)?(l(),x(H,{option:t(o)[v],key:t(s),class:"chart-wrap-mobile"},null,8,["option"])):b("",!0)],10,It))),256))]),t(d)?b("",!0):(l(),x(H,{option:t(i),key:t(s),class:"chart-wrap-pc",style:{height:"calc(100vh - 300px)"}},null,8,["option"]))]))}},Vt={key:0,class:"lofty-market-listing-slider"},zt=["src"],Bt={init:"false",class:"swiper-container"},Jt={key:2,class:"lofty-no-listing"},Ut={__name:"newListing",props:{id:String},setup(a){nt();const{module:n,featureListingName:s}=I[a.id],r=LoftyIdxUtils.static_url(mt),o=S(!0),i=S([]),f=Date.now(),g=f-30*24*60*60*1e3,m=JSON.stringify({listingDate:[g,f].join(",")});async function h(){const p={pageSize:50,page:1,listingType:"featured-listing",featureListingName:s.value,condition:m},u=await A.get("/search/realTimeListings",{data:p,action:"lofty_idx_api"});u.data.listings.forEach(v=>W(v)),i.value=u.data.listings,o.value=!1,i.value.length>0&&lt(()=>{_()})}function _(){const p=n.$(".swiper-container");let u={navigation:{prevEl:".listing-slider-prev-button",nextEl:".listing-slider-next-button"},loop:i.value.length>3,initialSlide:1,observer:!0,spaceBetween:d?10:0,speed:1e3,autoplay:{pauseOnMouseEnter:!0,delay:5e3},centeredSlides:!d,centeredSlidesBounds:!1,slidesPerView:"auto",effect:"coverflow",coverflowEffect:{rotate:0,depth:0,scale:d?1:(50-100/window.innerWidth*100)/50,slideShadows:!1}};Object.assign(p,u),p.initialize()}function c(){const p=document.createElement("a");p.href=`/listing/?pageKey=search&featureListingName=${s.value}&condition=${encodeURIComponent(m)}`,p.target=d?"_self":"_blank",document.body.appendChild(p),p.click(),document.body.removeChild(p)}return E(()=>{h()}),(p,u)=>(l(),y(k,null,[u[5]||(u[5]=e("div",{class:"lofty-market-report-title lofty-page-padding"},[e("p",{class:"page-title"},"New Listings"),e("span",{class:"last-time"},"Last 30 Days")],-1)),t(i).length>0&&!t(o)?(l(),y("div",Vt,[e("img",{class:"img-background",src:t(r),alt:""},null,8,zt),u[3]||(u[3]=e("div",{class:"mask"},null,-1)),e("swiper-container",Bt,[(l(!0),y(k,null,M(t(i),(v,w)=>(l(),y("swiper-slide",{key:w,class:z({"swiper-slide-flow":!t(d),"swiper-slide-mobile":t(d)})},[B(gt,{house:v},{default:R(()=>u[0]||(u[0]=[e("div",{class:"lofty-status-tag new"},"Active",-1)])),_:2},1032,["house"])],2))),128))]),t(d)?b("",!0):(l(),y(k,{key:0},[u[1]||(u[1]=e("div",{class:"listing-slider-prev-button"},[e("i",{class:"lofty_iconfont lofty-icon-arrow_06_left"})],-1)),u[2]||(u[2]=e("div",{class:"listing-slider-next-button"},[e("i",{class:"lofty_iconfont lofty-icon-arrow_06_right"})],-1))],64))])):b("",!0),t(i).length>0&&!t(o)?(l(),y("div",{key:1,onClick:c,class:"lofty-more"},"More")):b("",!0),t(i).length===0&&!t(o)?(l(),y("div",Jt,u[4]||(u[4]=[e("i",{class:"lofty_iconfont lofty-icon-house_02"},null,-1),e("div",{class:"no-listing-text"},"No Listing Found",-1)]))):b("",!0)],64))}},Ft={key:0,class:"lofty-listing pending-listing"},Ot={key:2,class:"lofty-no-listing"},jt={__name:"pendingListing",props:{id:String},setup(a){const{featureListingName:n,getPageSize:s}=I[a.id],r=S([]),o=S(!0);E(()=>{f()});const i=JSON.stringify({listingStatus:["Pending"]});async function f(){const m={pageSize:s(),page:1,listingType:"featured-listing",featureListingName:n.value,condition:i},h=await A.get("/search/realTimeListings",{data:m,action:"lofty_idx_api"});h.data.listings.forEach(_=>W(_)),r.value=h.data.listings,o.value=!1}function g(){const m=document.createElement("a");m.href=`/listing/?pageKey=search&featureListingName=${n.value}&condition=${encodeURIComponent(i)}`,m.target=d?"_self":"_blank",document.body.appendChild(m),m.click(),document.body.removeChild(m)}return(m,h)=>(l(),y(k,null,[h[1]||(h[1]=e("div",{class:"lofty-market-report-title"},[e("p",{class:"page-title"},"Pending Listings")],-1)),t(r).length>0&&!t(o)?(l(),y("div",Ft,[(l(!0),y(k,null,M(t(r),_=>(l(),x(X,{class:"list-card",house:_},null,8,["house"]))),256))])):b("",!0),t(r).length>0&&!t(o)?(l(),y("div",{key:1,onClick:g,class:"lofty-more"},"More")):b("",!0),t(r).length===0&&!t(o)?(l(),y("div",Ot,h[0]||(h[0]=[e("i",{class:"lofty_iconfont lofty-icon-house_02"},null,-1),e("div",{class:"no-listing-text"},"No Listing Found",-1)]))):b("",!0)],64))}},Wt={key:0,class:"lofty-listing"},Kt={key:2,class:"lofty-no-listing"},qt={__name:"soldListing",props:{id:String},setup(a){const{featureListingName:n,getPageSize:s}=I[a.id],r=S([]),o=S(!0),i=Date.now(),f=i-30*24*60*60*1e3,g=JSON.stringify({soldDate:[f,i].join(",")});E(()=>{m()});async function m(){const _={pageSize:s(),page:1,featureListingName:n.value,listingType:"sold-listing",condition:g},c=await A.get("/search/realTimeListings",{data:_,action:"lofty_idx_api"});c.data.listings.forEach(p=>W(p)),r.value=c.data.listings,o.value=!1}function h(){const _=document.createElement("a");_.href=`/sold-listing/?pageKey=sold_listing&featureListingName=${n.value}&condition=${encodeURIComponent(g)}`,_.target=d?"_self":"_blank",document.body.appendChild(_),_.click(),document.body.removeChild(_)}return(_,c)=>(l(),y(k,null,[c[1]||(c[1]=e("div",{class:"lofty-market-report-title"},[e("p",{class:"page-title"},"Sold Listings"),e("span",{class:"last-time"},"Last 30 Days")],-1)),t(r).length>0&&!t(o)?(l(),y("div",Wt,[(l(!0),y(k,null,M(t(r),p=>(l(),x(X,{class:"list-card",house:p},null,8,["house"]))),256))])):b("",!0),t(r).length>0&&!t(o)?(l(),y("div",{key:1,onClick:h,class:"lofty-more"},"More")):b("",!0),t(r).length===0&&!t(o)?(l(),y("div",Kt,c[0]||(c[0]=[e("i",{class:"lofty_iconfont lofty-icon-house_02"},null,-1),e("div",{class:"no-listing-text"},"No Listing Found",-1)]))):b("",!0)],64))}},Gt={key:0,class:"lofty-market-report-header lofty-page-padding"},Ht={class:"lofty-ellipsis"},Qt={class:"market-report-list"},Xt=["onClick"],Yt={class:"lofty_iconfont lofty-icon-checked"},Zt={class:"lofty-market-report-title lofty-page-padding"},te={class:"page-title"},ee={class:"lofty-page-padding"},se={key:1},oe={key:2,class:"lofty-page-padding"},ie={key:3,class:"lofty-page-padding"},ae={key:4,class:"lofty-mobile-fix-bottom lofty-mobile-subscribe"},ne={__name:"index",props:{id:String},setup(a){const{isShortCode:n,config:s,getReportByTitle:r,submitJs:o}=I[a.id],i=C(()=>s.value.encryptId),f=C(()=>s.value.leadSubscribeStatus),g=C(()=>n||i.value),m=S(""),h=S([]),_=C(()=>h.value.filter(v=>m.value?v.title.toLowerCase().includes(m.value.toLowerCase()):h.value));n||c();async function c(){const v={pageNum:1,pageSize:300,onlyShowDisplay:!0},w=await A.post("/admin/report/list",{data:v});h.value=w.data.pluginReports||[];const L=h.value[0],K=U();L&&!K.report&&r(L.title)}const p=j("dropdown");function u(v){v.encryptId!==s.value.encryptId&&(s.value.title=v.title,r(v.title)),p.value.open(!1)}return(v,w)=>(l(),y(k,null,[t(n)?b("",!0):(l(),y("div",Gt,[B(ut,{class:"lofty-report-list-dropdown",left:0,clickMenuClose:!1,ref_key:"dropdown",ref:p},{menu:R(()=>[e("ul",Qt,[B(vt,{value:t(m),"onUpdate:value":w[0]||(w[0]=L=>O(m)?m.value=L:null),searchable:""},null,8,["value"]),(l(!0),y(k,null,M(t(_),L=>(l(),y("li",{class:"lofty-report-item lofty-ellipsis",onClick:K=>u(L)},[V($(L.title)+" ",1),N(e("i",Yt,null,512),[[D,t(i)===L.encryptId]])],8,Xt))),256))])]),default:R(()=>[e("span",Ht,$(t(s).title),1)]),_:1},512),!t(d)&&t(i)?(l(),x(G,{reportId:t(i),key:t(i),submitJs:t(o),name:t(s).title,leadSubscribeStatus:t(f)},null,8,["reportId","submitJs","name","leadSubscribeStatus"])):b("",!0)])),e("div",Zt,[e("p",te,$(t(s).title),1),w[1]||(w[1]=e("span",{class:"last-time"},"Last 30 Days",-1))]),e("div",ee,[t(g)?(l(),x(Rt,{id:a.id,key:t(i)},null,8,["id"])):b("",!0)]),t(s).show_new?(l(),y("div",se,[(l(),x(Ut,{id:a.id,key:t(i)},null,8,["id"]))])):b("",!0),t(s).show_pending?(l(),y("div",oe,[(l(),x(jt,{id:a.id,key:t(i)},null,8,["id"]))])):b("",!0),t(s).show_sold?(l(),y("div",ie,[(l(),x(qt,{id:a.id,key:t(i)},null,8,["id"]))])):b("",!0),t(d)&&t(i)?(l(),y("div",ae,[(l(),x(G,{reportId:t(i),key:t(i),submitJs:t(o),name:t(s).title,leadSubscribeStatus:t(f)},null,8,["reportId","submitJs","name","leadSubscribeStatus"]))])):b("",!0)],64))}};dt();q.initState(()=>{q.mlsList.forEach(a=>ct(a))});jQuery(".lofty-market-report-page").ready(function(){document.querySelectorAll(".lofty-market-report-page").forEach(n=>{const s=n.getAttribute("id"),r=rt(s);_t(r);const{id:o,$:i}=r;Q(ne,{id:o}).mount(i("#lofty-market-report-container"))})});
  • lofty-idx/trunk/includes/LoftyIDXInstall.php

    r3276360 r3329655  
    22
    33namespace LoftyIDX\includes;
     4
     5use LoftyIDX\includes\common\LoftyIDXApiCache;
    46
    57defined('ABSPATH') || exit;
     
    1214      return;
    1315    }
    14 
     16    LoftyIDXApiCache::clearAllCache();
    1517    self::create_options();
    1618    /**
     
    3436  {
    3537    do_action('lofty_idx_uninstall_rewrite_rules');
     38    LoftyIDXApiCache::clearAllCache();
    3639  }
    3740
  • lofty-idx/trunk/includes/common/LoftyIDXApiCache.php

    r3291483 r3329655  
    22
    33namespace LoftyIDX\includes\common;
    4 
     4use LoftyIDX\includes\LoftyIDX;
    55defined('ABSPATH') || exit;
    66
     
    1919        'admin/listing-search/searchCondition/init-info',
    2020    ];
     21
     22    public static function clearAllCache()
     23    {
     24        foreach (self::$cacheApi as $path) {
     25            self::deleteApiCacheData($path);
     26        }
     27
     28        // if the api key is set, clear the cache
     29        $settings = get_option('lofty_idx_settings');
     30        if (empty($settings) || !isset($settings['lofty_idx_api_key'])) {
     31            return ;
     32        }
     33        $forwarder = LoftyIDX::get_instance()->services['proxy'];
     34        $forwarder->post_data('/token/active-plugin/clearCache',[
     35            "apiKey" =>  $settings['lofty_idx_api_key']
     36        ]);
     37    }
    2138
    2239    public static function setApiCacheData($path, $data, $expiration = 3600)
     
    4562    private static function getCacheKey($path)
    4663    {
    47         return 'lofty_api_cache_' . md5($path);
     64       return 'lofty_api_cache_' . md5($path);
     65       //  return 'lofty_api_cache_'  . $path;
    4866    }
    4967}
  • lofty-idx/trunk/includes/providers/LoftyIDXSettingsServiceProvider.php

    r3306828 r3329655  
    66use LoftyIDX\includes\LoftyIDXFacades;
    77use LoftyIDX\includes\pages\LoftyIDXPage;
    8 
     8use LoftyIDX\includes\common\LoftyIDXApiCache;
    99defined('ABSPATH') || exit;
    1010
     
    137137    if (isset($input['lofty_idx_api_key'])) {
    138138      $values['lofty_idx_api_key'] = sanitize_text_field(trim($input['lofty_idx_api_key']));
     139      LoftyIDXApiCache::clearAllCache();
    139140    }
    140141    return $values;
  • lofty-idx/trunk/includes/providers/LoftyIDXShortcodesProvider.php

    r3312310 r3329655  
    3232    {
    3333        add_action('init', [$this, 'registerShortcodes']);
    34         add_filter('the_posts', function ($posts) {
    35             if (!is_singular() || !is_array($posts) || empty($posts)) {
    36                 return $posts;
    37             }
    38             foreach ($posts as $post) {
    39                 if (!isset($post->post_content)) {
    40                     continue;
    41                 }
    42                 $this->analyzeContent($post->post_content);
    43             }
    44             return $posts;
     34        add_action('wp_enqueue_scripts', function() {
     35            wp_register_style('lofty-common', LOFTY_IDX_URL.'templates/style/common.css', [], LOFTY_IDX_VERSION, 'all');
     36            wp_register_style('lofty-iconfont', LOFTY_IDX_URL.'templates/style/iconfont.css', [], LOFTY_IDX_VERSION, 'all');
     37            wp_register_style('lofty-listing-page', LOFTY_IDX_URL.'templates/style/listing.css', [], LOFTY_IDX_VERSION, 'all');
    4538        });
    4639    }
     
    5447      add_shortcode(self::SHORTCODE_MARKET_REPORT, [$this, 'getMarketReportPage']);
    5548      add_shortcode(self::SHORTCODE_HOME_VALUATION, [$this, 'getHomeValuationPage']);
    56     }
    57 
    58     // Perform content analysis before the page loads to check whether our shortcode is used, and inject the corresponding CSS file into the <head> section.
    59     public function analyzeContent($content)
    60     {
    61         $shortcodes_to_check = [
    62             self::SHORTCODE_LISTING_PAGE,
    63             self::SHORTCODE_QUICK_SEARCH,
    64             self::SHORTCODE_FEATURED_LISTING,
    65             self::SHORTCODE_SOLD_LISTING,
    66             self::SHORTCODE_MARKET_REPORT,
    67             self::SHORTCODE_HOME_VALUATION,
    68         ];
    69         foreach ($shortcodes_to_check as $shortcode) {
    70             if (has_shortcode($content, $shortcode)) {
    71                 LoftyIDXPage::loadCss('lofty-common', 'templates/style/common.css');
    72                 LoftyIDXPage::loadCss('lofty-iconfont', 'templates/style/iconfont.css');
    73             }
    74         }
    75         foreach ([self::SHORTCODE_LISTING_PAGE, self::SHORTCODE_SOLD_LISTING] as $shortcode) {
    76             if (has_shortcode($content, $shortcode)) {
    77                 LoftyIDXPage::loadCss('lofty-listing-page', 'templates/style/listing.css');
    78             }
    79         }
    8049    }
    8150
     
    9463        ]
    9564      ]);
     65      wp_enqueue_style('lofty-common');
     66      wp_enqueue_style('lofty-iconfont');
     67      wp_enqueue_style('lofty-listing-page');
    9668      return $page->renderShortCode();
    9769    }
    98 
    9970    public function getQuickSearch($attrs=[], $content = '')
    10071    {
     
    11283            ]
    11384        ]);
     85        wp_enqueue_style('lofty-common');
     86        wp_enqueue_style('lofty-iconfont');
    11487        return $page->renderShortCode();
    11588    }
    116 
    11789    public function getSoldListingPage($attrs=[], $content='')
    11890    {
     
    130102            'is_sold_page'=> true
    131103        ]);
     104        wp_enqueue_style('lofty-common');
     105        wp_enqueue_style('lofty-iconfont');
     106        wp_enqueue_style('lofty-listing-page');
    132107        return $page->renderShortCode();
    133108    }
    134 
    135109    public function getFeaturedListingPage($attrs=[], $content='')
    136110    {
     
    148122          ]
    149123      ]);
     124      wp_enqueue_style('lofty-common');
     125      wp_enqueue_style('lofty-iconfont');
    150126      return $page->renderShortCode();
    151127    }
     
    168144        ]
    169145      ]);
     146      wp_enqueue_style('lofty-common');
     147      wp_enqueue_style('lofty-iconfont');
    170148      return $page->renderShortCode();
    171149    }
     
    185163            ]
    186164        ]);
     165        wp_enqueue_style('lofty-common');
     166        wp_enqueue_style('lofty-iconfont');
    187167        return $page->renderShortCode();
    188168    }
  • lofty-idx/trunk/lofty-idx.php

    r3312310 r3329655  
    55 * Description: A powerful WordPress plugin that integrates IDX/MLS property listings.
    66 * Author: loftylisting
    7  * Version: 1.5.4
     7 * Version: 1.5.5
    88 * License: GPLv2 or later
    99 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    2929define('LOFTY_API_PROXY', isset($_ENV['LOFTY_API_PROXY']) ? sanitize_url($_ENV['LOFTY_API_PROXY']) : 'https://lofty.com/wp-api/wp-plugin/');
    3030define('LOFTY_API_REFERRER', isset($_ENV['LOFTY_API_REFERRER']) ? sanitize_url($_ENV['LOFTY_API_REFERRER']) : '');
    31 define('LOFTY_BUILD_ID', isset($_ENV['LOFTY_BUILD_ID']) ? sanitize_text_field($_ENV['LOFTY_BUILD_ID']) : '1750050596208');
     31define('LOFTY_BUILD_ID', isset($_ENV['LOFTY_BUILD_ID']) ? sanitize_text_field($_ENV['LOFTY_BUILD_ID']) : '1750057354494');
    3232
    33 define('LOFTY_IDX_VERSION', '1.5.4');
     33define('LOFTY_IDX_VERSION', '1.5.5');
    3434
    3535define('LOFTY_IDX_PATH', plugin_dir_path(__FILE__));
  • lofty-idx/trunk/package.json

    r3312310 r3329655  
    22  "name": "lofty-idx-web",
    33  "private": true,
    4   "version": "1.5.4",
     4  "version": "1.5.5",
    55  "type": "module",
    66  "scripts": {
  • lofty-idx/trunk/readme.txt

    r3312310 r3329655  
    66Requires at least: 5.0
    77Tested up to: 6.7
    8 Stable tag: 1.5.4
     8Stable tag: 1.5.5
    99Requires PHP: 7.4
    1010License: GPLv2 or later
     
    146146= 1.5.4 =
    147147* Refined a few features
     148
     149= 1.5.5 =
     150* Change key clear cache
  • lofty-idx/trunk/src/components/echart/index.vue

    r3270752 r3329655  
    1414<script setup>
    1515import * as echarts from 'echarts';
    16 
     16import { debounce } from '@/util/index.js';
    1717const {
    1818  option
     
    3030}, {
    3131  deep: true,
    32 })
     32});
     33
     34const resize = debounce(() => {
     35  myChart && myChart.resize()
     36}, 1000);
    3337
    3438const resizeObserver = new ResizeObserver(() => {
    35   myChart && myChart.resize()
    36 })
     39  resize();
     40});
    3741
    3842onMounted(()=> {
  • lofty-idx/trunk/src/module/market-report/style.scss

    r3306828 r3329655  
    33}
    44.lofty-market-report-page {
     5  width: 100%;
    56  margin-top: 40px;
    67  .lofty-market-report-title {
  • lofty-idx/trunk/templates/style/common.css

    r3306828 r3329655  
    8787  padding: 40px 50px;
    8888  width: 100%;
     89  margin: 0 auto;
    8990}
    9091
  • lofty-idx/trunk/templates/style/common.scss

    r3306828 r3329655  
    9393  padding: 40px 50px;
    9494  width: 100%;
     95  margin: 0 auto;
    9596}
    9697.lofty-listing-page.lofty-is-shortcode {
Note: See TracChangeset for help on using the changeset viewer.