forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
1 lines (1 loc) · 8.59 KB
/
main.js
File metadata and controls
1 lines (1 loc) · 8.59 KB
1
define(function main(require,exports,module){const CONSTANTS=require("LiveDevelopment/LivePreviewConstants"),Commands=require("command/Commands"),AppInit=require("utils/AppInit"),MultiBrowserLiveDev=require("LiveDevelopment/LiveDevMultiBrowser"),LivePreviewTransport=require("LiveDevelopment/MultiBrowserImpl/transports/LivePreviewTransport"),CommandManager=require("command/CommandManager"),PreferencesManager=require("preferences/PreferencesManager"),UrlParams=require("utils/UrlParams").UrlParams,Strings=require("strings"),ExtensionUtils=require("utils/ExtensionUtils"),StringUtils=require("utils/StringUtils"),EventDispatcher=require("utils/EventDispatcher"),LIVE_PREVIEW_MODE=CONSTANTS.LIVE_PREVIEW_MODE,LIVE_HIGHLIGHT_MODE=CONSTANTS.LIVE_HIGHLIGHT_MODE,LIVE_EDIT_MODE=CONSTANTS.LIVE_EDIT_MODE;let hasLiveEditCapability=!1,isPaidUser=!1,isLoggedIn=!1;const PREFERENCE_LIVE_PREVIEW_MODE=CONSTANTS.PREFERENCE_LIVE_PREVIEW_MODE;PreferencesManager.definePreference(PREFERENCE_LIVE_PREVIEW_MODE,"string",LIVE_HIGHLIGHT_MODE,{description:StringUtils.format(Strings.LIVE_PREVIEW_MODE_PREFERENCE,LIVE_PREVIEW_MODE,LIVE_HIGHLIGHT_MODE,LIVE_EDIT_MODE),values:[LIVE_PREVIEW_MODE,LIVE_HIGHLIGHT_MODE,LIVE_EDIT_MODE]}).on("change",function(){_previewModeUpdated()});let params=new UrlParams;const defaultConfig={mode:LIVE_HIGHLIGHT_MODE,elemHighlights:CONSTANTS.HIGHLIGHT_HOVER,showRulerLines:!1,showSpacingHandles:!0,syncSourceAndPreview:!0,isPaidUser:!1,isLoggedIn:!1,hasLiveEditCapability:!1};var _status,_allStatusStyles=["warning","info","success","out-of-sync","sync-error"].join(" "),_$btnGoLive;function _loadStyles(){var lessText=require("text!LiveDevelopment/main.less");less.render(lessText,function onParse(err,tree){console.assert(!err,err),ExtensionUtils.addEmbeddedStyleSheet(tree.css)})}function _setLabel($btn,text,style,tooltip){$("span",$btn).remove(),$btn.removeClass(_allStatusStyles),text&&text.length>0?$('<span class="label">').addClass(style).text(text).appendTo($btn):$btn.addClass(style),tooltip&&$btn.attr("title",tooltip)}function closeLivePreview(){MultiBrowserLiveDev.close()}function openLivePreview(doc){Phoenix.isTestWindow||MultiBrowserLiveDev.open(doc)}function isInactive(){return MultiBrowserLiveDev.status===MultiBrowserLiveDev.STATUS_INACTIVE}function isActive(){return MultiBrowserLiveDev.status===MultiBrowserLiveDev.STATUS_ACTIVE}function setLivePreviewPinned(urlPinned,currentPinnedFilePath){MultiBrowserLiveDev.setLivePreviewPinned(urlPinned,currentPinnedFilePath)}function setLivePreviewTransportBridge(transportBridge){LivePreviewTransport.setLivePreviewTransportBridge(transportBridge)}function _showStatusChangeReason(reason){if(_$btnGoLive.twipsy("hide").removeData("twipsy"),reason&&"explicit_close"!==reason){var translatedReason=Strings["LIVE_DEV_"+reason.toUpperCase()];translatedReason||(translatedReason=StringUtils.format(Strings.LIVE_DEV_CLOSED_UNKNOWN_REASON,reason));var options={placement:"left",trigger:"manual",autoHideDelay:5e3,title:function(){return translatedReason}};_$btnGoLive.twipsy(options).twipsy("show")}}function _setupGoLiveButton(){_$btnGoLive||(_$btnGoLive=$("#toolbar-go-live")),MultiBrowserLiveDev.on(MultiBrowserLiveDev.EVENT_STATUS_CHANGE,function statusChange(event,status,reason){_setLabel(_$btnGoLive,null,_status[status+1].style,_status[status+1].tooltip),_showStatusChangeReason(reason)}),_setLabel(_$btnGoLive,null,_status[1].style,_status[1].tooltip)}function _setupGoLiveMenu(){MultiBrowserLiveDev.on(MultiBrowserLiveDev.EVENT_STATUS_CHANGE,function statusChange(event,status){CommandManager.get(Commands.FILE_LIVE_FILE_PREVIEW).setChecked(status===MultiBrowserLiveDev.STATUS_ACTIVE)})}function _liveEditCapabilityChanged(newCapability){if(newCapability!==hasLiveEditCapability){hasLiveEditCapability=newCapability;const config=MultiBrowserLiveDev.getConfig();config.hasLiveEditCapability=hasLiveEditCapability,MultiBrowserLiveDev.updateConfig(config),hasLiveEditCapability||getCurrentMode()!==LIVE_EDIT_MODE?hasLiveEditCapability&&setMode(LIVE_EDIT_MODE):setMode(LIVE_HIGHLIGHT_MODE)}}function _isPaidUserChanged(newStatus){if(newStatus!==isPaidUser){isPaidUser=newStatus;const config=MultiBrowserLiveDev.getConfig();config.isPaidUser=isPaidUser,MultiBrowserLiveDev.updateConfig(config)}}function _isLoggedInChanged(newStatus){if(newStatus!==isLoggedIn){isLoggedIn=newStatus;const config=MultiBrowserLiveDev.getConfig();config.isLoggedIn=isLoggedIn,MultiBrowserLiveDev.updateConfig(config)}}function setMode(mode){return!(mode===LIVE_EDIT_MODE&&!hasLiveEditCapability)&&(PreferencesManager.set(PREFERENCE_LIVE_PREVIEW_MODE,mode),!0)}function getCurrentMode(){return PreferencesManager.get(PREFERENCE_LIVE_PREVIEW_MODE)}function isInPreviewMode(){return getCurrentMode()===LIVE_PREVIEW_MODE}function _previewModeUpdated(){const currentMode=getCurrentMode();if(currentMode===LIVE_EDIT_MODE&&!hasLiveEditCapability)return void PreferencesManager.set(PREFERENCE_LIVE_PREVIEW_MODE,LIVE_HIGHLIGHT_MODE);const config=MultiBrowserLiveDev.getConfig();config.mode=currentMode,MultiBrowserLiveDev.updateConfig(config)}function updateElementHighlightConfig(){const prefValue=PreferencesManager.get(CONSTANTS.PREFERENCE_PROJECT_ELEMENT_HIGHLIGHT),config=MultiBrowserLiveDev.getConfig();config.elemHighlights=prefValue||CONSTANTS.HIGHLIGHT_HOVER,MultiBrowserLiveDev.updateConfig(config)}function updateRulerLinesConfig(){const prefValue=PreferencesManager.get(CONSTANTS.PREFERENCE_SHOW_RULER_LINES),config=MultiBrowserLiveDev.getConfig();config.showRulerLines=prefValue||!1,MultiBrowserLiveDev.updateConfig(config)}function updateSpacingHandlesConfig(){const prefValue=PreferencesManager.get(CONSTANTS.PREFERENCE_SHOW_SPACING_HANDLES),config=MultiBrowserLiveDev.getConfig();config.showSpacingHandles=!1!==prefValue,MultiBrowserLiveDev.updateConfig(config)}function updateSyncConfig(){const prefValue=PreferencesManager.get(CONSTANTS.PREFERENCE_LIVE_PREVIEW_SYNC),config=MultiBrowserLiveDev.getConfig();config.syncSourceAndPreview=!1!==prefValue,MultiBrowserLiveDev.updateConfig(config)}AppInit.appReady(function(){params.parse();const config=Object.assign({},defaultConfig,MultiBrowserLiveDev.getConfig());config.mode=getCurrentMode(),MultiBrowserLiveDev.init(config),_loadStyles(),_status=[{tooltip:Strings.LIVE_DEV_STATUS_TIP_NOT_CONNECTED,style:"warning"},{tooltip:Strings.LIVE_DEV_STATUS_TIP_NOT_CONNECTED,style:""},{tooltip:Strings.LIVE_DEV_STATUS_TIP_PROGRESS1,style:"info"},{tooltip:Strings.LIVE_DEV_STATUS_TIP_CONNECTED,style:"success"},{tooltip:Strings.LIVE_DEV_STATUS_TIP_OUT_OF_SYNC,style:"out-of-sync"},{tooltip:Strings.LIVE_DEV_STATUS_TIP_SYNC_ERROR,style:"sync-error"},{tooltip:Strings.LIVE_DEV_STATUS_TIP_PROGRESS1,style:"info"},{tooltip:Strings.LIVE_DEV_STATUS_TIP_PROGRESS1,style:"info"}],_setupGoLiveButton(),_setupGoLiveMenu(),MultiBrowserLiveDev.on(MultiBrowserLiveDev.EVENT_OPEN_PREVIEW_URL,function(event,previewDetails){exports.trigger(exports.EVENT_OPEN_PREVIEW_URL,previewDetails)}),MultiBrowserLiveDev.on(MultiBrowserLiveDev.EVENT_CONNECTION_CLOSE,function(event,{clientId:clientId}){exports.trigger(exports.EVENT_CONNECTION_CLOSE,{clientId:clientId})}),MultiBrowserLiveDev.on(MultiBrowserLiveDev.EVENT_LIVE_PREVIEW_CLICKED,function(_event,clickDetails){exports.trigger(exports.EVENT_LIVE_PREVIEW_CLICKED,clickDetails)}),MultiBrowserLiveDev.on(MultiBrowserLiveDev.EVENT_LIVE_PREVIEW_RELOAD,function(_event,clientDetails){exports.trigger(exports.EVENT_LIVE_PREVIEW_RELOAD,clientDetails)})}),EventDispatcher.makeEventDispatcher(exports),exports._liveEditCapabilityChanged=_liveEditCapabilityChanged,exports._isPaidUserChanged=_isPaidUserChanged,exports._isLoggedInChanged=_isLoggedInChanged,exports.EVENT_OPEN_PREVIEW_URL=MultiBrowserLiveDev.EVENT_OPEN_PREVIEW_URL,exports.EVENT_CONNECTION_CLOSE=MultiBrowserLiveDev.EVENT_CONNECTION_CLOSE,exports.EVENT_LIVE_PREVIEW_CLICKED=MultiBrowserLiveDev.EVENT_LIVE_PREVIEW_CLICKED,exports.EVENT_LIVE_PREVIEW_RELOAD=MultiBrowserLiveDev.EVENT_LIVE_PREVIEW_RELOAD,exports.CONSTANTS=CONSTANTS,exports.openLivePreview=openLivePreview,exports.closeLivePreview=closeLivePreview,exports.isInactive=isInactive,exports.isActive=isActive,exports.setLivePreviewPinned=setLivePreviewPinned,exports.setLivePreviewTransportBridge=setLivePreviewTransportBridge,exports.updateElementHighlightConfig=updateElementHighlightConfig,exports.updateRulerLinesConfig=updateRulerLinesConfig,exports.updateSpacingHandlesConfig=updateSpacingHandlesConfig,exports.updateSyncConfig=updateSyncConfig,exports.getConnectionIds=MultiBrowserLiveDev.getConnectionIds,exports.getLivePreviewDetails=MultiBrowserLiveDev.getLivePreviewDetails,exports.hideHighlight=MultiBrowserLiveDev.hideHighlight,exports.setMode=setMode,exports.getCurrentMode=getCurrentMode,exports.isInPreviewMode=isInPreviewMode});