mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-07 16:48:02 +08:00
51602f69a5
Converted all references of global atom to NylasEnv Temporary rename atom.io find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.io/temporaryAtomIoReplacement/g' atom.config to NylasEnv.config find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.config/NylasEnv.config/g' atom.packages -> NylasEnv.packages atom.commands -> NylasEnv.commands atom.getLoadSettings find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.commands/NylasEnv.commands/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getLoadSettings/NylasEnv.getLoadSettings/g' More common atom methods find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.styles/NylasEnv.styles/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.emitError/NylasEnv.emitError/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.inSpecMode/NylasEnv.inSpecMode/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.inDevMode/NylasEnv.inDevMode/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getWindowType/NylasEnv.getWindowType/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.displayWindow/NylasEnv.displayWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.quit/NylasEnv.quit/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.close/NylasEnv.close/g' More atom method changes find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.keymaps/NylasEnv.keymaps/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.hide/NylasEnv.hide/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getCurrentWindow/NylasEnv.getCurrentWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.menu/NylasEnv.menu/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getConfigDirPath/NylasEnv.getConfigDirPath/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.isMainWindow/NylasEnv.isMainWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.finishUnload/NylasEnv.finishUnload/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.isWorkWindow/NylasEnv.isWorkWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.showSaveDialog/NylasEnv.showSaveDialog/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.append/NylasEnv.append/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.confirm/NylasEnv.confirm/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.clipboard/NylasEnv.clipboard/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getVersion/NylasEnv.getVersion/g' More atom renaming Rename atom methods More atom methods Fix grunt config variable Change atom.cmd to N1.cmd Rename atom.coffee and atom.js to nylas-env.coffee nylas-env.js Fix atom global reference in specs manually Fix atom requires Change engine from atom to nylas got rid of global/nylas-env rename to nylas-win-bootup Fix onWindowPropsChanged to onWindowPropsReceived fix nylas-workspace atom-text-editor to nylas-theme-wrap atom-text-editor -> nylas-theme-wrap Replacing atom keyword AtomWindow -> NylasWindow Replace Atom -> N1 Rename atom items nylas.asar -> atom.asar Remove more atom references Remove 6to5 references Remove license exception for atom
109 lines
3.5 KiB
CoffeeScript
109 lines
3.5 KiB
CoffeeScript
_ = require 'underscore'
|
|
_ = _.extend(_, require('./space-pen-utils'))
|
|
SpacePen = require 'space-pen'
|
|
{Subscriber} = require 'emissary'
|
|
|
|
###
|
|
Edgehill Note:
|
|
|
|
I want this file gone—plan is to slowly delete stuff below as we clean spacepen
|
|
and it's helpers out of the project.
|
|
|
|
- Ben
|
|
###
|
|
|
|
|
|
Subscriber.includeInto(SpacePen.View)
|
|
|
|
jQuery = SpacePen.jQuery
|
|
JQueryCleanData = jQuery.cleanData
|
|
jQuery.cleanData = (elements) ->
|
|
jQuery(element).view()?.unsubscribe?() for element in elements
|
|
JQueryCleanData(elements)
|
|
|
|
SpacePenCallRemoveHooks = SpacePen.callRemoveHooks
|
|
SpacePen.callRemoveHooks = (element) ->
|
|
view.unsubscribe?() for view in SpacePen.viewsForElement(element)
|
|
SpacePenCallRemoveHooks(element)
|
|
|
|
NativeEventNames = new Set
|
|
NativeEventNames.add(nativeEvent) for nativeEvent in ["blur", "focus", "focusin",
|
|
"focusout", "load", "resize", "scroll", "unload", "click", "dblclick", "mousedown",
|
|
"mouseup", "mousemove", "mouseover", "mouseout", "mouseenter", "mouseleave", "change",
|
|
"select", "submit", "keydown", "keypress", "keyup", "error", "contextmenu", "textInput",
|
|
"textinput", "beforeunload"]
|
|
|
|
JQueryTrigger = jQuery.fn.trigger
|
|
jQuery.fn.trigger = (eventName, data) ->
|
|
if NativeEventNames.has(eventName) or typeof eventName is 'object'
|
|
JQueryTrigger.call(this, eventName, data)
|
|
else
|
|
data ?= {}
|
|
data.jQueryTrigger = true
|
|
|
|
for element in this
|
|
NylasEnv.commands.dispatch(element, eventName, data)
|
|
this
|
|
|
|
HandlersByOriginalHandler = new WeakMap
|
|
CommandDisposablesByElement = new WeakMap
|
|
|
|
AddEventListener = (element, type, listener) ->
|
|
if NativeEventNames.has(type)
|
|
element.addEventListener(type, listener)
|
|
else
|
|
disposable = NylasEnv.commands.add(element, type, listener)
|
|
|
|
unless disposablesByType = CommandDisposablesByElement.get(element)
|
|
disposablesByType = {}
|
|
CommandDisposablesByElement.set(element, disposablesByType)
|
|
|
|
unless disposablesByListener = disposablesByType[type]
|
|
disposablesByListener = new WeakMap
|
|
disposablesByType[type] = disposablesByListener
|
|
|
|
disposablesByListener.set(listener, disposable)
|
|
|
|
RemoveEventListener = (element, type, listener) ->
|
|
if NativeEventNames.has(type)
|
|
element.removeEventListener(type, listener)
|
|
else
|
|
CommandDisposablesByElement.get(element)?[type]?.get(listener)?.dispose()
|
|
|
|
JQueryEventAdd = jQuery.event.add
|
|
jQuery.event.add = (elem, types, originalHandler, data, selector) ->
|
|
handler = (event) ->
|
|
if arguments.length is 1 and event.originalEvent?.detail?
|
|
{detail} = event.originalEvent
|
|
if Array.isArray(detail)
|
|
originalHandler.apply(this, [event].concat(detail))
|
|
else
|
|
originalHandler.call(this, event, detail)
|
|
else
|
|
originalHandler.apply(this, arguments)
|
|
|
|
HandlersByOriginalHandler.set(originalHandler, handler)
|
|
|
|
JQueryEventAdd.call(this, elem, types, handler, data, selector, AddEventListener if NylasEnv?.commands?)
|
|
|
|
JQueryEventRemove = jQuery.event.remove
|
|
jQuery.event.remove = (elem, types, originalHandler, selector, mappedTypes) ->
|
|
if originalHandler?
|
|
handler = HandlersByOriginalHandler.get(originalHandler) ? originalHandler
|
|
JQueryEventRemove(elem, types, handler, selector, mappedTypes, RemoveEventListener if NylasEnv?.commands?)
|
|
|
|
JQueryContains = jQuery.contains
|
|
|
|
jQuery.contains = (a, b) ->
|
|
shadowRoot = null
|
|
currentNode = b
|
|
while currentNode
|
|
if currentNode instanceof ShadowRoot and a.contains(currentNode.host)
|
|
return true
|
|
currentNode = currentNode.parentNode
|
|
|
|
JQueryContains.call(this, a, b)
|
|
|
|
Object.defineProperty jQuery.fn, 'element', get: -> @[0]
|
|
|
|
module.exports = SpacePen
|