@keyframes rotateInUpLeft{from{transform-origin:left bottom;transform:rotate3d(0,0,1,45deg);opacity:0}to{transform-origin:left bottom;transform:none;opacity:1}}.rotateInUpLeft{animation-name:rotateInUpLeft}/**
* Start scroll button widget script
*/
( function( $, elementor ) {
'use strict';
var widgetScrollButton = function( $scope, $ ) {
var $scrollButton = $scope.find('.bdt-scroll-button'),
$selector = $scrollButton.data('selector'),
$settings = $scrollButton.data('settings');
if ( ! $scrollButton.length ) {
return;
}
//$($scrollButton).find('.bdt-scroll-button').unbind();
if ($settings.HideOnBeforeScrolling == true) {
$(window).scroll(function() {
if ($(window).scrollTop() > 300) {
$scrollButton.css("opacity", "1");
} else {
$scrollButton.css("opacity", "0");
}
});
}
$($scrollButton).on('click', function(event){
event.preventDefault();
bdtUIkit.scroll($scrollButton, $settings ).scrollTo($($selector));
});
};
jQuery(window).on('elementor/frontend/init', function() {
elementorFrontend.hooks.addAction( 'frontend/element_ready/bdt-scroll-button.default', widgetScrollButton );
});
}( jQuery, window.elementorFrontend ) );
/**
* End scroll button widget script
*/
/*! For license information please see editor-documents.js.LICENSE.txt */
!function(){"use strict";var t={react:function(t){t.exports=window.React},"@elementor/editor":function(t){t.exports=window.elementorV2.editor},"@elementor/editor-v1-adapters":function(t){t.exports=window.elementorV2.editorV1Adapters},"@elementor/store":function(t){t.exports=window.elementorV2.store},"@wordpress/i18n":function(t){t.exports=window.wp.i18n}},e={};function n(i){var o=e[i];if(void 0!==o)return o.exports;var a=e[i]={exports:{}};return t[i](a,a.exports,n),a.exports}n.d=function(t,e){for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};!function(){n.r(i),n.d(i,{__useActiveDocument:function(){return u},__useActiveDocumentActions:function(){return y},__useHostDocument:function(){return l},__useNavigateToDocument:function(){return S},slice:function(){return v}});var t=n("@elementor/editor"),e=n("@elementor/store"),o=n("react"),a=n("@wordpress/i18n"),r=n("@elementor/editor-v1-adapters"),s=t=>t.documents.entities,c=(0,e.__createSelector)(s,(t=>t.documents.activeId),((t,e)=>e&&t[e]?t[e]:null)),d=(0,e.__createSelector)(s,(t=>t.documents.hostId),((t,e)=>e&&t[e]?t[e]:null));function u(){return(0,e.__useSelector)(c)}function l(){return(0,e.__useSelector)(d)}function m(t){return!(!t.activeId||!t.entities[t.activeId])}var v=(0,e.__createSlice)({name:"documents",initialState:{entities:{},activeId:null,hostId:null},reducers:{init(t,{payload:e}){t.entities=e.entities,t.hostId=e.hostId,t.activeId=e.activeId},activateDocument(t,e){t.entities[e.payload.id]=e.payload,t.activeId=e.payload.id},setAsHost(t,e){t.hostId=e.payload},updateActiveDocument(t,e){m(t)&&(t.entities[t.activeId]={...t.entities[t.activeId],...e.payload})},startSaving(t){m(t)&&(t.entities[t.activeId].isSaving=!0)},endSaving(t,e){m(t)&&(t.entities[t.activeId]={...e.payload,isSaving:!1})},startSavingDraft:t=>{m(t)&&(t.entities[t.activeId].isSavingDraft=!0)},endSavingDraft(t,e){m(t)&&(t.entities[t.activeId]={...e.payload,isSavingDraft:!1})},markAsDirty(t){m(t)&&(t.entities[t.activeId].isDirty=!0)},markAsPristine(t){m(t)&&(t.entities[t.activeId].isDirty=!1)}}});function p(){const t=window.elementor?.documents;if(!t)throw new Error("Elementor Editor V1 documents manager not found");return t}function _(t){switch(window.elementor?.getPreferences?.("exit_to")||"this_post"){case"dashboard":return t.config.urls.main_dashboard;case"all_posts":return t.config.urls.all_post_type;default:return t.config.urls.exit_to_dashboard}}function f(t){return t?.config?.panel?.show_copy_and_share??!1}function g(t){return t.config.urls.permalink??""}function h(t){const e=t.config.revisions.current_id!==t.id,n=_(t);return{id:t.id,title:t.container.settings.get("post_title"),type:{value:t.config.type,label:t.config.panel.title},status:{value:t.config.status.value,label:t.config.status.label},links:{permalink:g(t),platformEdit:n},isDirty:t.editor.isChanged||e,isSaving:t.editor.isSaving,isSavingDraft:!1,permissions:{allowAddingWidgets:t.config.panel?.allow_adding_widgets??!0,showCopyAndShare:f(t)},userCan:{publish:t.config.user.can_publish}}}function w(t,e){let n;return(...i)=>{clearTimeout(n),n=setTimeout((()=>{t(...i)}),e)}}function y(){const t=u(),e=t?.links?.permalink??"";return{save:(0,o.useCallback)((()=>(0,r.__privateRunCommand)("document/save/default")),[]),saveDraft:(0,o.useCallback)((()=>(0,r.__privateRunCommand)("document/save/draft")),[]),saveTemplate:(0,o.useCallback)((()=>(0,r.__privateOpenRoute)("library/save-template")),[]),copyAndShare:(0,o.useCallback)((()=>{navigator.clipboard.writeText(e)}),[e])}}function S(){return(0,o.useCallback)((async t=>{await(0,r.__privateRunCommand)("editor/documents/switch",{id:t,setAsInitial:!0});const e=new URL(window.location.href);e.searchParams.set("post",t.toString()),e.searchParams.delete("active-document"),history.replaceState({},"",e)}),[])}(0,e.__registerSlice)(v),function(){const{init:t}=v.actions;(0,r.__privateListenTo)((0,r.v1ReadyEvent)(),(()=>{const n=p(),i=Object.entries(n.documents).reduce(((t,[e,n])=>(t[e]=h(n),t)),{});(0,e.__dispatch)(t({entities:i,hostId:n.getInitialId(),activeId:n.getCurrentId()}))}))}(),function(){const{activateDocument:t,setAsHost:n}=v.actions;(0,r.__privateListenTo)((0,r.commandEndEvent)("editor/documents/open"),(()=>{const i=p(),o=h(i.getCurrent());(0,e.__dispatch)(t(o)),i.getInitialId()===o.id&&(0,e.__dispatch)(n(o.id))}))}(),function(){const{startSaving:t,endSaving:n,startSavingDraft:i,endSavingDraft:o}=v.actions,a=t=>{const e=t;return"autosave"===e.args?.status};(0,r.__privateListenTo)((0,r.commandStartEvent)("document/save/save"),(n=>{a(n)?(0,e.__dispatch)(i()):(0,e.__dispatch)(t())})),(0,r.__privateListenTo)((0,r.commandEndEvent)("document/save/save"),(t=>{const i=h(p().getCurrent());a(t)?(0,e.__dispatch)(o(i)):(0,e.__dispatch)(n(i))}))}(),function(){const{updateActiveDocument:t}=v.actions,n=w((n=>{const i=n;if(!("post_title"in i.args?.settings))return;const o=p().getCurrent().container.settings.get("post_title");(0,e.__dispatch)(t({title:o}))}),400);(0,r.__privateListenTo)((0,r.commandEndEvent)("document/elements/settings"),n)}(),function(){const{markAsDirty:t,markAsPristine:n}=v.actions;(0,r.__privateListenTo)((0,r.commandEndEvent)("document/save/set-is-modified"),(()=>{p().getCurrent().editor.isChanged?(0,e.__dispatch)(t()):(0,e.__dispatch)(n())}))}(),function(){const{updateActiveDocument:t}=v.actions,n=w((n=>{const i=n;if(!("exit_to"in i.args?.settings))return;const o=p().getCurrent(),a=_(o),r=g(o);(0,e.__dispatch)(t({links:{platformEdit:a,permalink:r}}))}),400);(0,r.__privateListenTo)((0,r.commandEndEvent)("document/elements/settings"),n)}(),(0,t.injectIntoLogic)({id:"documents-hooks",component:function(){return function(){const t=u(),e=l(),n=t&&"kit"!==t.type.value?t:e;(0,o.useEffect)((()=>{if(void 0===n?.title)return;const t=(0,a.__)('Edit "%s" with Elementor',"elementor").replace("%s",n.title);window.document.title=t}),[n?.title])}(),null}})}(),(window.elementorV2=window.elementorV2||{}).editorDocuments=i}();import {
useEffect, useState, useRef,
} from '@wordpress/element'
import { useTemplatesStore } from '../state/Templates'
import { AuthorizationCheck, Middleware } from '../middleware'
import { injectTemplateBlocks } from '../util/templateInjection'
import { useWantedTemplateStore } from '../state/Importing'
import { useUserStore } from '../state/User'
import { useGlobalStore } from '../state/GlobalState'
import { __, sprintf } from '@wordpress/i18n'
import { Templates as TemplatesApi } from '../api/Templates'
import { render } from '@wordpress/element'
import ExtendifyLibrary from '../ExtendifyLibrary'
const canImportMiddleware = Middleware(['NeedsRegistrationModal', 'hasRequiredPlugins', 'hasPluginsActivated'])
export function ImportButton({ template }) {
const importButtonRef = useRef(null)
const activeTemplateBlocks = useTemplatesStore(state => state.activeTemplateBlocks)
const canImport = useUserStore(state => state.canImport)
const apiKey = useUserStore(state => state.apiKey)
const setOpen = useGlobalStore(state => state.setOpen)
const [importing, setImporting] = useState(false)
const [middlewareChecked, setMiddlewareChecked] = useState(false)
const setWanted = useWantedTemplateStore(state => state.setWanted)
const importTemplates = () => {
AuthorizationCheck(canImportMiddleware.stack).then(() => {
// Give it a bit of time for the importing state to render
setTimeout(() => {
injectTemplateBlocks(activeTemplateBlocks, template)
.then(() => setOpen(false))
.then(() => render( , document.getElementById('extendify-root')))
.then(() => setTimeout(() => useGlobalStore.setState({ currentPage: 'main' }), 500))
}, 100)
})
}
useEffect(() => {
canImportMiddleware.check(template).then(() => setMiddlewareChecked(true))
return () => canImportMiddleware.reset() && setMiddlewareChecked(false)
}, [template])
useEffect(() => {
if (!importing && importButtonRef.current) {
importButtonRef.current.focus()
}
}, [importButtonRef, importing, middlewareChecked])
const importTemplate = () => {
// This was added here to make the call fire before rendering is finished.
// This is because some users would drop this call otherwise.
TemplatesApi.maybeImport(template)
setImporting(true)
setWanted(template)
importTemplates()
}
if (!middlewareChecked || !Object.keys(activeTemplateBlocks).length) {
return ''
}
if (!apiKey && !canImport()) {
return
{__('Sign up now', 'extendify-sdk')}
}
if (importing) {
return {}}>
{__('Importing...', 'extendify-sdk')}
}
return importTemplate()}>
{sprintf(__('Add %s', 'extendify-sdk'), template.fields.type)}
}
Frequently Asked Questions - MorPipe.com
Pipeline Management for Mortgage Professionals
Home » Frequently Asked Questions
Q: Is there a place for key contacts
A: Yes, every borrower file contains fields to enter key contacts for the transaction – Listing Agent, Buyer’s Agent, Title Company, Homeowners Insurance, etc.
Q: Can I import an existing list of clients so I can track their rate using your system
A: Yes, we’ve made the import process simple. First, make sure that your spreadsheet has key data points in the correct order. Then, upload the Excel or CSV file into our system. Begin tracking your clients based on their rate, loan program, term, etc.
Q: Can I choose which fields I want to display on the pipeline tool?
A: Absolutely. We’ve made customization simple. Use our Column Customizer tool to select which fields you want to see on the main pipeline tool. Some are required (i.e. borrower’s name, status, lender, etc.) but most are easily customizable.
Q: Are there any filters when viewing archived loans?
A: Yes, we’ve created several filters to make it easy for you to find what you are looking for. You can filter by month, by loan officer, by interest rate, etc. This is a powerful tool for analyzing your past client base for potential opportunities.
Q: Do I have to belong to a large organization to use MorPipe?
A: No, you can be a one person shop and still use MorPipe’s powerful pipeline management software. Our system works for small and large organizations as well and allows administrators to group loan officers into teams for more effective pipeline management and also control who is able to edit pipeline fields.
Q: Are there any contracts?
A: No. You can pay month-to-month.
Top
?> ?>
?>