@standardnotes/markdown-visual 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/asset-manifest.json +11 -12
- package/build/index.html +1 -1
- package/build/static/js/2.6a3180fe.chunk.js +3 -0
- package/build/static/js/{2.2cfce575.chunk.js.LICENSE.txt → 2.6a3180fe.chunk.js.LICENSE.txt} +0 -31
- package/build/static/js/2.6a3180fe.chunk.js.map +1 -0
- package/build/static/js/main.18531fb0.chunk.js +3 -0
- package/build/static/js/main.18531fb0.chunk.js.LICENSE.txt +5 -0
- package/build/static/js/main.18531fb0.chunk.js.map +1 -0
- package/build/static/js/runtime-main.0f6dab54.js +2 -0
- package/build/static/js/runtime-main.0f6dab54.js.map +1 -0
- package/package.json +2 -3
- package/build/static/js/2.2cfce575.chunk.js +0 -3
- package/build/static/js/2.2cfce575.chunk.js.map +0 -1
- package/build/static/js/3.bf2ee733.chunk.js +0 -2
- package/build/static/js/3.bf2ee733.chunk.js.map +0 -1
- package/build/static/js/main.7192e457.chunk.js +0 -2
- package/build/static/js/main.7192e457.chunk.js.map +0 -1
- package/build/static/js/runtime-main.54ae45a0.js +0 -2
- package/build/static/js/runtime-main.54ae45a0.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonp@standardnotes/markdown-visual"]=this["webpackJsonp@standardnotes/markdown-visual"]||[]).push([[3],{212:function(t,e,n){"use strict";n.r(e),n.d(e,"getCLS",(function(){return p})),n.d(e,"getFCP",(function(){return S})),n.d(e,"getFID",(function(){return k})),n.d(e,"getLCP",(function(){return F})),n.d(e,"getTTFB",(function(){return C}));var i,a,r,o,u=function(t,e){return{name:t,value:void 0===e?-1:e,delta:0,entries:[],id:"v1-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(t,e){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){if("first-input"===t&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(t){return t.getEntries().map(e)}));return n.observe({type:t,buffered:!0}),n}}catch(t){}},s=function(t,e){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(t(i),e&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},f=function(t){addEventListener("pageshow",(function(e){e.persisted&&t(e)}),!0)},d="function"==typeof WeakSet?new WeakSet:new Set,m=function(t,e,n){var i;return function(){e.value>=0&&(n||d.has(e)||"hidden"===document.visibilityState)&&(e.delta=e.value-(i||0),(e.delta||void 0===i)&&(i=e.value,t(e)))}},p=function(t,e){var n,i=u("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=c("layout-shift",a);r&&(n=m(t,i,e),s((function(){r.takeRecords().map(a),n()})),f((function(){i=u("CLS",0),n=m(t,i,e)})))},v=-1,l=function(){return"hidden"===document.visibilityState?0:1/0},h=function(){s((function(t){var e=t.timeStamp;v=e}),!0)},g=function(){return v<0&&(v=l(),h(),f((function(){setTimeout((function(){v=l(),h()}),0)}))),{get timeStamp(){return v}}},S=function(t,e){var n,i=g(),a=u("FCP"),r=function(t){"first-contentful-paint"===t.name&&(s&&s.disconnect(),t.startTime<i.timeStamp&&(a.value=t.startTime,a.entries.push(t),d.add(a),n()))},o=performance.getEntriesByName("first-contentful-paint")[0],s=o?null:c("paint",r);(o||s)&&(n=m(t,a,e),o&&r(o),f((function(i){a=u("FCP"),n=m(t,a,e),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))})))},y={passive:!0,capture:!0},w=new Date,E=function(t,e){i||(i=e,a=t,r=new Date,b(removeEventListener),L())},L=function(){if(a>=0&&a<r-w){var t={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+a};o.forEach((function(e){e(t)})),o=[]}},T=function(t){if(t.cancelable){var e=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,e){var n=function(){E(t,e),a()},i=function(){a()},a=function(){removeEventListener("pointerup",n,y),removeEventListener("pointercancel",i,y)};addEventListener("pointerup",n,y),addEventListener("pointercancel",i,y)}(e,t):E(e,t)}},b=function(t){["mousedown","keydown","touchstart","pointerdown"].forEach((function(e){return t(e,T,y)}))},k=function(t,e){var n,r=g(),p=u("FID"),v=function(t){t.startTime<r.timeStamp&&(p.value=t.processingStart-t.startTime,p.entries.push(t),d.add(p),n())},l=c("first-input",v);n=m(t,p,e),l&&s((function(){l.takeRecords().map(v),l.disconnect()}),!0),l&&f((function(){var r;p=u("FID"),n=m(t,p,e),o=[],a=-1,i=null,b(addEventListener),r=v,o.push(r),L()}))},F=function(t,e){var n,i=g(),a=u("LCP"),r=function(t){var e=t.startTime;e<i.timeStamp&&(a.value=e,a.entries.push(t)),n()},o=c("largest-contentful-paint",r);if(o){n=m(t,a,e);var p=function(){d.has(a)||(o.takeRecords().map(r),o.disconnect(),d.add(a),n())};["keydown","click"].forEach((function(t){addEventListener(t,p,{once:!0,capture:!0})})),s(p,!0),f((function(i){a=u("LCP"),n=m(t,a,e),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))}))}},C=function(t){var e,n=u("TTFB");e=function(){try{var e=performance.getEntriesByType("navigation")[0]||function(){var t=performance.timing,e={entryType:"navigation",startTime:0};for(var n in t)"navigationStart"!==n&&"toJSON"!==n&&(e[n]=Math.max(t[n]-t.navigationStart,0));return e}();if(n.value=n.delta=e.responseStart,n.value<0)return;n.entries=[e],t(n)}catch(t){}},"complete"===document.readyState?setTimeout(e,0):addEventListener("pageshow",e)}}}]);
|
|
2
|
-
//# sourceMappingURL=3.bf2ee733.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/web-vitals/dist/web-vitals.js"],"names":["e","t","n","i","a","name","value","delta","entries","id","concat","Date","now","Math","floor","random","r","PerformanceObserver","supportedEntryTypes","includes","self","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","c","persisted","u","WeakSet","Set","f","has","s","hadRecentInput","push","takeRecords","m","p","v","timeStamp","d","setTimeout","l","disconnect","startTime","add","performance","getEntriesByName","requestAnimationFrame","h","passive","capture","S","y","w","g","entryType","target","cancelable","processingStart","forEach","E","L","T","once","b","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"mappings":"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","file":"static/js/3.bf2ee733.chunk.js","sourcesContent":["var e,t,n,i,a=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v1-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},r=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},c=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},u=\"function\"==typeof WeakSet?new WeakSet:new Set,f=function(e,t,n){var i;return function(){t.value>=0&&(n||u.has(t)||\"hidden\"===document.visibilityState)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},s=function(e,t){var n,i=a(\"CLS\",0),u=function(e){e.hadRecentInput||(i.value+=e.value,i.entries.push(e),n())},s=r(\"layout-shift\",u);s&&(n=f(e,i,t),o((function(){s.takeRecords().map(u),n()})),c((function(){i=a(\"CLS\",0),n=f(e,i,t)})))},m=-1,p=function(){return\"hidden\"===document.visibilityState?0:1/0},v=function(){o((function(e){var t=e.timeStamp;m=t}),!0)},d=function(){return m<0&&(m=p(),v(),c((function(){setTimeout((function(){m=p(),v()}),0)}))),{get timeStamp(){return m}}},l=function(e,t){var n,i=d(),o=a(\"FCP\"),s=function(e){\"first-contentful-paint\"===e.name&&(p&&p.disconnect(),e.startTime<i.timeStamp&&(o.value=e.startTime,o.entries.push(e),u.add(o),n()))},m=performance.getEntriesByName(\"first-contentful-paint\")[0],p=m?null:r(\"paint\",s);(m||p)&&(n=f(e,o,t),m&&s(m),c((function(i){o=a(\"FCP\"),n=f(e,o,t),requestAnimationFrame((function(){requestAnimationFrame((function(){o.value=performance.now()-i.timeStamp,u.add(o),n()}))}))})))},h={passive:!0,capture:!0},S=new Date,y=function(i,a){e||(e=a,t=i,n=new Date,w(removeEventListener),g())},g=function(){if(t>=0&&t<n-S){var a={entryType:\"first-input\",name:e.type,target:e.target,cancelable:e.cancelable,startTime:e.timeStamp,processingStart:e.timeStamp+t};i.forEach((function(e){e(a)})),i=[]}},E=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){y(e,t),a()},i=function(){a()},a=function(){removeEventListener(\"pointerup\",n,h),removeEventListener(\"pointercancel\",i,h)};addEventListener(\"pointerup\",n,h),addEventListener(\"pointercancel\",i,h)}(t,e):y(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,E,h)}))},L=function(n,s){var m,p=d(),v=a(\"FID\"),l=function(e){e.startTime<p.timeStamp&&(v.value=e.processingStart-e.startTime,v.entries.push(e),u.add(v),m())},h=r(\"first-input\",l);m=f(n,v,s),h&&o((function(){h.takeRecords().map(l),h.disconnect()}),!0),h&&c((function(){var r;v=a(\"FID\"),m=f(n,v,s),i=[],t=-1,e=null,w(addEventListener),r=l,i.push(r),g()}))},T=function(e,t){var n,i=d(),s=a(\"LCP\"),m=function(e){var t=e.startTime;t<i.timeStamp&&(s.value=t,s.entries.push(e)),n()},p=r(\"largest-contentful-paint\",m);if(p){n=f(e,s,t);var v=function(){u.has(s)||(p.takeRecords().map(m),p.disconnect(),u.add(s),n())};[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,v,{once:!0,capture:!0})})),o(v,!0),c((function(i){s=a(\"LCP\"),n=f(e,s,t),requestAnimationFrame((function(){requestAnimationFrame((function(){s.value=performance.now()-i.timeStamp,u.add(s),n()}))}))}))}},b=function(e){var t,n=a(\"TTFB\");t=function(){try{var t=performance.getEntriesByType(\"navigation\")[0]||function(){var e=performance.timing,t={entryType:\"navigation\",startTime:0};for(var n in e)\"navigationStart\"!==n&&\"toJSON\"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0)return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"pageshow\",t)};export{s as getCLS,l as getFCP,L as getFID,T as getLCP,b as getTTFB};\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonp@standardnotes/markdown-visual"]=this["webpackJsonp@standardnotes/markdown-visual"]||[]).push([[0],{130:function(e,t,n){var i,a=n(15),r=n(193).default,s=n(194).default,o=n(197).default,l=n(198).default,c=n(199).default;self,e.exports=(i=n(200),function(){var e,t,n={156:function(e){self,e.exports=function(){"use strict";var e,t,n,i,a,r={d:function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},u={};r.d(u,{default:function(){return L}}),function(e){e.SetSize="set-size",e.StreamItems="stream-items",e.StreamContextItem="stream-context-item",e.SaveItems="save-items",e.SelectItem="select-item",e.AssociateItem="associate-item",e.DeassociateItem="deassociate-item",e.ClearSelection="clear-selection",e.CreateItem="create-item",e.CreateItems="create-items",e.DeleteItems="delete-items",e.SetComponentData="set-component-data",e.InstallLocalComponent="install-local-component",e.ToggleActivateComponent="toggle-activate-component",e.RequestPermissions="request-permissions",e.PresentConflictResolution="present-conflict-resolution",e.DuplicateItem="duplicate-item",e.ComponentRegistered="component-registered",e.ActivateThemes="themes",e.Reply="reply",e.SaveSuccess="save-success",e.SaveError="save-error",e.ThemesActivated="themes-activated",e.KeyDown="key-down",e.KeyUp="key-up",e.Click="click"}(e||(e={})),function(e){e[e.Web=1]="Web",e[e.Desktop=2]="Desktop",e[e.Mobile=3]="Mobile"}(t||(t={})),function(e){e.Any="*",e.Item="SF|Item",e.RootKey="SN|RootKey|NoSync",e.ItemsKey="SN|ItemsKey",e.EncryptedStorage="SN|EncryptedStorage",e.Note="Note",e.Tag="Tag",e.SmartTag="SN|SmartTag",e.Component="SN|Component",e.Editor="SN|Editor",e.ActionsExtension="Extension",e.UserPrefs="SN|UserPreferences",e.HistorySession="SN|HistorySession",e.Theme="SN|Theme",e.Mfa="SF|MFA",e.ServerExtension="SF|Extension",e.FilesafeCredentials="SN|FileSafe|Credentials",e.FilesafeFileMetadata="SN|FileSafe|FileMetadata",e.FilesafeIntegration="SN|FileSafe|Integration",e.ExtensionRepo="SN|ExtensionRepo"}(n||(n={})),function(e){e.Pinned="pinned",e.Archived="archived",e.Locked="locked",e.UserModifiedDate="client_updated_at",e.DefaultEditor="defaultEditor",e.MobileRules="mobileRules",e.NotAvailableOnMobile="notAvailableOnMobile",e.MobileActive="mobileActive",e.LastSize="lastSize",e.PrefersPlainEditor="prefersPlainEditor",e.ComponentInstallError="installError"}(i||(i={}));var d=new Uint8Array(16);function f(){if(!a&&!(a="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return a(d)}for(var m=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,p=function(e){return"string"==typeof e&&m.test(e)},h=[],v=0;v<256;++v)h.push((v+256).toString(16).substr(1));var g,b,y,k,S=function(e,t,n){var i=(e=e||{}).random||(e.rng||f)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t){n=n||0;for(var a=0;a<16;++a)t[n+a]=i[a];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(h[e[t+0]]+h[e[t+1]]+h[e[t+2]]+h[e[t+3]]+"-"+h[e[t+4]]+h[e[t+5]]+"-"+h[e[t+6]]+h[e[t+7]]+"-"+h[e[t+8]]+h[e[t+9]]+"-"+h[e[t+10]]+h[e[t+11]]+h[e[t+12]]+h[e[t+13]]+h[e[t+14]]+h[e[t+15]]).toLowerCase();if(!p(n))throw TypeError("Stringified UUID is invalid");return n}(i)},w=function(e){var n,i,a=(c(n={},t.Web,"web"),c(n,t.Desktop,"desktop"),c(n,t.Mobile,"mobile"),n);return null!==(i=a[e])&&void 0!==i?i:a[t.Web]},E=function(e){return null!=e},x=function(){},T=function(){function e(){o(this,e)}return l(e,null,[{key:"isSupported",get:function(){return!(!window.console&&!console)}},{key:"info",get:function(){return e.isSupported&&this.enabled?console.log.bind(console):x}},{key:"error",get:function(){return e.isSupported?console.error.bind(console):x}}]),e}();function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?C(Object(n),!0).forEach((function(t){I(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}(b="enabled")in(g=T)?Object.defineProperty(g,b,{value:!1,enumerable:!0,configurable:!0,writable:!0}):g[b]=!1,function(e){e.Component="component"}(y||(y={})),function(e){e.Shift="Shift",e.Ctrl="Control",e.Meta="Meta"}(k||(k={}));var L=function(){function i(e){if(o(this,i),I(this,"contentWindow",void 0),I(this,"initialPermissions",void 0),I(this,"onReadyCallback",void 0),I(this,"component",{activeThemes:[],acceptsThemes:!0}),I(this,"sentMessages",[]),I(this,"messageQueue",[]),I(this,"lastStreamedItem",void 0),I(this,"pendingSaveItems",void 0),I(this,"pendingSaveTimeout",void 0),I(this,"pendingSaveParams",void 0),I(this,"coallesedSaving",!0),I(this,"coallesedSavingDelay",250),I(this,"messageHandler",void 0),I(this,"keyDownEventListener",void 0),I(this,"keyUpEventListener",void 0),I(this,"clickEventListener",void 0),I(this,"onThemesChangeCallback",void 0),I(this,"concernTimeouts",[]),!e||!e.targetWindow)throw new Error("contentWindow must be a valid Window object.");this.contentWindow=e.targetWindow,this.processParameters(e),this.registerMessageHandler(),this.registerKeyboardEventListeners(),this.registerMouseEventListeners()}return l(i,[{key:"processParameters",value:function(e){var t,n,i=e.initialPermissions,a=e.options,r=e.onReady,s=e.onThemesChange;i&&i.length>0&&(this.initialPermissions=i),E(null==a?void 0:a.coallesedSaving)&&(this.coallesedSaving=a.coallesedSaving),E(null==a?void 0:a.coallesedSavingDelay)&&(this.coallesedSavingDelay=a.coallesedSavingDelay),E(null==a?void 0:a.acceptsThemes)&&(this.component.acceptsThemes=null===(n=null==a?void 0:a.acceptsThemes)||void 0===n||n),E(r)&&(this.onReadyCallback=r),E(s)&&(this.onThemesChangeCallback=s),T.enabled=null!==(t=null==a?void 0:a.debug)&&void 0!==t&&t}},{key:"deinit",value:function(){this.onReadyCallback=void 0,this.component={acceptsThemes:!0,activeThemes:[]},this.messageQueue=[],this.sentMessages=[],this.lastStreamedItem=void 0,this.pendingSaveItems=void 0,this.pendingSaveTimeout=void 0,this.pendingSaveParams=void 0,this.messageHandler&&(this.contentWindow.document.removeEventListener("message",this.messageHandler),this.contentWindow.removeEventListener("message",this.messageHandler)),this.keyDownEventListener&&this.contentWindow.removeEventListener("keydown",this.keyDownEventListener),this.keyUpEventListener&&this.contentWindow.removeEventListener("keyup",this.keyUpEventListener),this.clickEventListener&&this.contentWindow.removeEventListener("click",this.clickEventListener)}},{key:"registerMessageHandler",value:function(){var t=this;this.messageHandler=function(n){if(T.info("Components API Message received:",n.data),!document.referrer||new URL(document.referrer).origin===new URL(n.origin).origin){var i=n.data,a=function(e){if("string"!=typeof e)return!1;try{var t=JSON.parse(e),n=Object.prototype.toString.call(t);return"[object Object]"===n||"[object Array]"===n}catch(e){return!1}}(i)?JSON.parse(i):i;if(a){if(void 0===t.component.origin&&a.action===e.ComponentRegistered)t.component.origin=n.origin;else if(n.origin!==t.component.origin)return;t.handleMessage(a)}else T.error("Invalid data received. Skipping...")}},this.contentWindow.document.addEventListener("message",this.messageHandler,!1),this.contentWindow.addEventListener("message",this.messageHandler,!1),T.info("Waiting for messages...")}},{key:"registerKeyboardEventListeners",value:function(){var e=this;this.keyDownEventListener=function(t){T.info("A key has been pressed: ".concat(t.key)),t.ctrlKey?e.keyDownEvent(k.Ctrl):t.shiftKey?e.keyDownEvent(k.Shift):(t.metaKey||"Meta"===t.key)&&e.keyDownEvent(k.Meta)},this.keyUpEventListener=function(t){T.info("A key has been released: ".concat(t.key)),"Control"===t.key?e.keyUpEvent(k.Ctrl):"Shift"===t.key?e.keyUpEvent(k.Shift):"Meta"===t.key&&e.keyUpEvent(k.Meta)},this.contentWindow.addEventListener("keydown",this.keyDownEventListener,!1),this.contentWindow.addEventListener("keyup",this.keyUpEventListener,!1)}},{key:"registerMouseEventListeners",value:function(){var e=this;this.clickEventListener=function(t){T.info("A click has been performed."),e.mouseClickEvent()},this.contentWindow.addEventListener("click",this.clickEventListener,!1)}},{key:"handleMessage",value:function(t){switch(t.action){case e.ComponentRegistered:this.component.sessionKey=t.sessionKey,t.componentData&&(this.component.data=t.componentData),this.onReady(t.data),T.info("Component successfully registered with payload:",t);break;case e.ActivateThemes:this.activateThemes(t.data.themes);break;default:var n,i;if(!t.original)return;var a=null===(n=this.sentMessages)||void 0===n?void 0:n.filter((function(e){var n;return e.messageId===(null===(n=t.original)||void 0===n?void 0:n.messageId)}))[0];if(!a){var r=this.contentWindow.document.title,s=("The extension '".concat(r,"' is attempting to communicate with Standard Notes, ")+"but an error is preventing it from doing so. Please restart this extension and try again.").replace(" "," ");return void T.info(s)}null==a||null===(i=a.callback)||void 0===i||i.call(a,t.data)}}},{key:"onReady",value:function(t){this.component.environment=t.environment,this.component.platform=t.platform,this.component.uuid=t.uuid,this.initialPermissions&&this.initialPermissions.length>0&&this.requestPermissions(this.initialPermissions);var n,i=s(this.messageQueue);try{for(i.s();!(n=i.n()).done;){var a=n.value;this.postMessage(a.action,a.data,a.callback)}}catch(r){i.e(r)}finally{i.f()}this.messageQueue=[],T.info("Data passed to onReady:",t),this.activateThemes(t.activeThemeUrls||[]),this.postMessage(e.ThemesActivated,{}),this.onReadyCallback&&this.onReadyCallback()}},{key:"getSelfComponentUUID",value:function(){return this.component.uuid}},{key:"isRunningInDesktopApplication",value:function(){return this.component.environment===w(t.Desktop)}},{key:"isRunningInMobileApplication",value:function(){return this.component.environment===w(t.Mobile)}},{key:"getComponentDataValueForKey",value:function(e){if(this.component.data)return this.component.data[e]}},{key:"setComponentDataValueForKey",value:function(t,n){if(!this.component.data)throw new Error("The component has not been initialized.");if(!t||t&&0===t.length)throw new Error("The key for the data value should be a valid string.");this.component.data=j(j({},this.component.data),{},c({},t,n)),this.postMessage(e.SetComponentData,{componentData:this.component.data})}},{key:"clearComponentData",value:function(){this.component.data={},this.postMessage(e.SetComponentData,{componentData:this.component.data})}},{key:"postMessage",value:function(e,t,n){if(this.component.sessionKey){var i,a={action:e,data:t,messageId:this.generateUUID(),sessionKey:this.component.sessionKey,api:y.Component},r=JSON.parse(JSON.stringify(a));r.callback=n,this.sentMessages.push(r),i=this.isRunningInMobileApplication()?JSON.stringify(a):a,T.info("Posting message:",i),this.contentWindow.parent.postMessage(i,this.component.origin)}else this.messageQueue.push({action:e,data:t,api:y.Component,callback:n})}},{key:"requestPermissions",value:function(t,n){this.postMessage(e.RequestPermissions,{permissions:t},(function(){n&&n()}))}},{key:"activateThemes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(this.component.acceptsThemes){T.info("Incoming themes:",e);var t=this.component.activeThemes;if(!t||t.sort().toString()!=e.sort().toString()){var n,i=e,a=[],r=s(t);try{var o=function(){var t=n.value;e.includes(t)?i=i.filter((function(e){return e!==t})):a.push(t)};for(r.s();!(n=r.n()).done;)o()}catch(h){r.e(h)}finally{r.f()}T.info("Deactivating themes:",a),T.info("Activating themes:",i);for(var l=0,c=a;l<c.length;l++){var u=c[l];this.deactivateTheme(u)}this.component.activeThemes=e;var d,f=s(i);try{for(f.s();!(d=f.n()).done;){var m=d.value;if(m){var p=this.contentWindow.document.createElement("link");p.id=btoa(m),p.href=m,p.type="text/css",p.rel="stylesheet",p.media="screen,print",p.className="custom-theme",this.contentWindow.document.getElementsByTagName("head")[0].appendChild(p)}}}catch(h){f.e(h)}finally{f.f()}this.onThemesChangeCallback&&this.onThemesChangeCallback()}}}},{key:"themeElementForUrl",value:function(e){return Array.from(this.contentWindow.document.getElementsByClassName("custom-theme")).slice().find((function(t){return t.id==btoa(e)}))}},{key:"deactivateTheme",value:function(e){var t=this.themeElementForUrl(e);t&&t.parentNode&&(t.setAttribute("disabled","true"),t.parentNode.removeChild(t))}},{key:"generateUUID",value:function(){return S()}},{key:"platform",get:function(){return this.component.platform}},{key:"environment",get:function(){return this.component.environment}},{key:"streamItems",value:function(t,n){this.postMessage(e.StreamItems,{content_types:t},(function(e){n(e.items)}))}},{key:"streamContextItem",value:function(t){var n=this;this.postMessage(e.StreamContextItem,{},(function(e){var i=e.item;(!n.lastStreamedItem||n.lastStreamedItem.uuid!==i.uuid)&&n.pendingSaveTimeout&&(clearTimeout(n.pendingSaveTimeout),n.performSavingOfItems(n.pendingSaveParams),n.pendingSaveTimeout=void 0,n.pendingSaveParams=void 0),n.lastStreamedItem=i,t(n.lastStreamedItem)}))}},{key:"selectItem",value:function(t){this.postMessage(e.SelectItem,{item:this.jsonObjectForItem(t)})}},{key:"clearSelection",value:function(){this.postMessage(e.ClearSelection,{content_type:n.Tag})}},{key:"createItem",value:function(t,n){var i=this;this.postMessage(e.CreateItem,{item:this.jsonObjectForItem(t)},(function(e){var t=e.item;!t&&e.items&&e.items.length>0&&(t=e.items[0]),i.associateItem(t),n&&n(t)}))}},{key:"createItems",value:function(t,n){var i=this,a=t.map((function(e){return i.jsonObjectForItem(e)}));this.postMessage(e.CreateItems,{items:a},(function(e){n&&n(e.items)}))}},{key:"associateItem",value:function(t){this.postMessage(e.AssociateItem,{item:this.jsonObjectForItem(t)})}},{key:"deassociateItem",value:function(t){this.postMessage(e.DeassociateItem,{item:this.jsonObjectForItem(t)})}},{key:"deleteItem",value:function(e,t){this.deleteItems([e],t)}},{key:"deleteItems",value:function(t,n){var i=this,a={items:t.map((function(e){return i.jsonObjectForItem(e)}))};this.postMessage(e.DeleteItems,a,(function(e){n&&n(e)}))}},{key:"sendCustomEvent",value:function(e,t,n){this.postMessage(e,t,(function(e){n&&n(e)}))}},{key:"saveItem",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.saveItems([e],t,n)}},{key:"saveItemWithPresave",value:function(e,t,n){this.saveItemsWithPresave([e],t,n)}},{key:"saveItemsWithPresave",value:function(e,t,n){this.saveItems(e,n,!1,t)}},{key:"performSavingOfItems",value:function(t){var n=this,i=t.items,a=t.presave,r=t.callback,o=setTimeout((function(){n.concernTimeouts.forEach((function(e){return clearTimeout(e)})),alert("This editor is unable to communicate with Standard Notes. Your changes may not be saved. Please backup your changes, then restart the application and try again.")}),5e3);this.concernTimeouts.push(o),a&&a();var l,c=[],u=s(i);try{for(u.s();!(l=u.n()).done;){var d=l.value;c.push(this.jsonObjectForItem(d))}}catch(f){u.e(f)}finally{u.f()}this.postMessage(e.SaveItems,{items:c},(function(){n.concernTimeouts.forEach((function(e){return clearTimeout(e)})),null==r||r()}))}},{key:"saveItems",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=arguments.length>3?arguments[3]:void 0;if(this.pendingSaveItems||(this.pendingSaveItems=[]),this.coallesedSaving&&!i){this.pendingSaveTimeout&&clearTimeout(this.pendingSaveTimeout);var r=e.map((function(e){return e.uuid})),s=this.pendingSaveItems.filter((function(e){return!r.includes(e.uuid)}));this.pendingSaveItems=s.concat(e),this.pendingSaveParams={items:this.pendingSaveItems,presave:a,callback:t},this.pendingSaveTimeout=setTimeout((function(){n.performSavingOfItems(n.pendingSaveParams),n.pendingSaveItems=[],n.pendingSaveTimeout=void 0,n.pendingSaveParams=null}),this.coallesedSavingDelay)}else this.performSavingOfItems({items:e,presave:a,callback:t})}},{key:"setSize",value:function(t,n){this.postMessage(e.SetSize,{type:"container",width:t,height:n})}},{key:"keyDownEvent",value:function(t){this.postMessage(e.KeyDown,{keyboardModifier:t})}},{key:"keyUpEvent",value:function(t){this.postMessage(e.KeyUp,{keyboardModifier:t})}},{key:"mouseClickEvent",value:function(){this.postMessage(e.Click,{})}},{key:"jsonObjectForItem",value:function(e){var t=Object.assign({},e);return t.children=null,t.parent=null,t}},{key:"getItemAppDataValue",value:function(e,t){var n,i;return null==e||null===(n=e.content)||void 0===n||null===(i=n.appData)||void 0===i?void 0:i["org.standardnotes.sn"][t]}}]),i}();return u.default}()},695:function(e){"use strict";e.exports=i}},u={};function d(e){var t=u[e];if(void 0!==t)return t.exports;var i=u[e]={exports:{}};return n[e](i,i.exports,d),i.exports}d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(n,i){if(1&i&&(n=this(n)),8&i)return n;if("object"==typeof n&&n){if(4&i&&n.__esModule)return n;if(16&i&&"function"==typeof n.then)return n}var a=Object.create(null);d.r(a);var r={};e=e||[null,t({}),t([]),t(t)];for(var s=2&i&&n;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){return r[e]=function(){return n[e]}}));return r.default=function(){return n},d.d(a,r),a},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var f={};return function(){"use strict";d.d(f,{default:function(){return b}});var e=d(156),t=d.n(e),n=function(){var e=r(a.mark((function e(t){return a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,new Promise((function(e){return setTimeout(e,1e3*t)}));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=function(){function e(t){o(this,e),this.options=t,i(this,"uuidToFileTempUrlAndTypeMapping",{}),i(this,"currentlyLoadingIds",[]),i(this,"statusElementMapping",{}),i(this,"fileTypeToElementType",{"image/png":"img","image/jpg":"img","image/jpeg":"img","image/gif":"img","image/tiff":"img","image/bmp":"img","video/mp4":"video","audio/mpeg":"audio","audio/mp3":"audio"})}return l(e,[{key:"fileTypeForElementType",value:function(e){return this.fileTypeToElementType[e.toLowerCase()]}},{key:"loadFileSafeElements",value:function(){var e,t=this.options.getElementsBySelector("*[fsplaceholder]"),n=s(t);try{for(n.s();!(e=n.n()).done;){var i=e.value;this.loadFileSafeElement(i)}}catch(a){n.e(a)}finally{n.f()}}},{key:"loadFileSafeElement",value:function(){var e=r(a.mark((function e(t){var i,r,s,o,l,c,u,d,f,m,p,h,v=this;return a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.options.fileSafeInstance,s=t.getAttribute("fsid"),o=null!==(i=t.getAttribute("fsName"))&&void 0!==i?i:"",l=o&&"undefined"!=o?o:"file",s){e.next=3;break}return e.abrupt("return",!1);case 3:if(!(c=this.uuidToFileTempUrlAndTypeMapping[s])){e.next=6;break}return e.abrupt("return",(this.insertMediaElement({fsid:s,fsElement:t,url:c.url,fileType:c.fileType,fsName:c.fsName}),!1));case 6:if(!this.currentlyLoadingIds.includes(s)){e.next=8;break}return e.abrupt("return",!1);case 8:if(u=r.findFileDescriptor(s)){e.next=11;break}return e.abrupt("return",(this.setStatus({fsElement:t,fsid:s,status:"Unable to find ".concat(l," ").concat(s,"."),removable:!0}),!1));case 11:if(d='[fsid="'.concat(u.uuid,'"][fscollapsable]'),!(document.querySelectorAll("img".concat(d,", figure").concat(d,", video").concat(d,", audio").concat(d)).length>0)){e.next=14;break}return e.abrupt("return",!1);case 14:return this.currentlyLoadingIds.push(s),this.setStatus({fsElement:t,fsid:s,status:"Downloading ".concat(l,"...")}),e.next=18,n(.05);case 18:return e.next=20,r.downloadFileFromDescriptor(u).catch((function(){v.setStatus({fsElement:t,fsid:s,status:"Unable to download ".concat(l," ").concat(s,".")})}));case 20:if(f=e.sent){e.next=23;break}return e.abrupt("return",!1);case 23:return this.setStatus({fsElement:t,fsid:s,status:"Decrypting ".concat(l,"...")}),e.next=26,n(.05);case 26:return e.next=28,r.decryptFile({fileDescriptor:u,fileItem:f}).catch((function(){v.setStatus({fsElement:t,fsid:s,status:"Unable to decrypt ".concat(l," ").concat(s,".")})}));case 28:if(m=e.sent){e.next=31;break}return e.abrupt("return",!1);case 31:return this.setStatus({fsElement:t,fsid:s}),e.next=34,n(.05);case 34:return p=u.content.fileType,h=r.createTemporaryFileUrl({base64Data:m.decryptedData,dataType:p}),e.abrupt("return",(this.insertMediaElement({fsid:s,fileType:p,fsName:o,fsElement:t,url:h}),v.currentlyLoadingIds.splice(v.currentlyLoadingIds.indexOf(s),1),this.uuidToFileTempUrlAndTypeMapping[s]={fileType:p,url:h,fsName:o},!0));case 36:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"insertMediaElement",value:function(e){var t,n=e.url,i=e.fsid,a=e.fsName,r=e.fileType,s=e.fsElement;switch(this.fileTypeForElementType(r)){case"img":t=this.createImageElement({url:n,fsid:i,fsName:a,fsElement:s});break;case"video":t=this.createVideoElement({url:n,fsid:i,fileType:r,fsName:a,fsElement:s});break;case"audio":t=this.createAudioElement({url:n,fsid:i,fsName:a});break;default:t=this.createDownloadElement({url:n,fsid:i,fsName:a})}this.insertElementNearElement(t,s),s.remove()}},{key:"wrapElementInTag",value:function(e){var t=e.element,n=e.tagName,i=e.fsid,a=e.fsName,r=document.createElement(n);return r.setAttribute("fsid",i),r.setAttribute("fsName",a),r.setAttribute("fscollapsable","true"),r.setAttribute("contenteditable","true"),r.append(t),r}},{key:"createImageElement",value:function(e){var t=e.url,n=e.fsid,i=e.fsName,a=e.fsElement,r=document.createElement("img");r.setAttribute("src",t),r.setAttribute("srcset","".concat(t," 2x")),r.setAttribute("fsid",n),r.setAttribute("fsName",i),r.setAttribute("fscollapsable","true");var s=a.getAttribute("width");s&&r.setAttribute("width",s);var o=a.getAttribute("height");return o&&r.setAttribute("height",o),r}},{key:"createVideoElement",value:function(e){var t=e.url,n=e.fsid,i=e.fileType,a=e.fsName,r=e.fsElement,s=document.createElement("video");s.setAttribute("controls","true"),s.setAttribute("fsid",n),s.setAttribute("fsName",a),s.setAttribute("fscollapsable","true");var o=r.getAttribute("width");o&&s.setAttribute("width",o);var l=r.getAttribute("height");l&&s.setAttribute("height",l);var c=document.createElement("source");return c.setAttribute("src",t),c.setAttribute("type",i),s.append(c),this.wrapElementInTag({fsid:n,fsName:a,element:s,tagName:"p"})}},{key:"createDownloadElement",value:function(e){var t=e.url,n=e.fsid,i=e.fsName,a=document.createElement("a");return a.setAttribute("fsid",n),a.setAttribute("fsName",i),a.setAttribute("ghost","true"),a.setAttribute("fscollapsable","true"),a.setAttribute("href",t),a.textContent="".concat(i),a}},{key:"createAudioElement",value:function(e){var t=e.url,n=e.fsid,i=e.fsName,a=document.createElement("audio");return a.setAttribute("src",t),a.setAttribute("controls","true"),a.setAttribute("fsid",n),a.setAttribute("fsName",i),a.setAttribute("fscollapsable","true"),this.wrapElementInTag({fsid:n,fsName:i,element:a,tagName:"p"})}},{key:"setStatus",value:function(e){var t=e.status,n=e.fsElement,i=e.fsid,a=e.removable,r=void 0!==a&&a;if(i){var s=this.statusElementMapping[i];s&&(s.remove(),delete this.statusElementMapping[i])}if(t){var o=document.createElement("label");return o.setAttribute("id",i),o.setAttribute("ghost","true"),o.setAttribute("contenteditable","false"),o.style.fontWeight="bold",o.textContent=t,r&&(o.style.userSelect="all"),o=this.insertElementNearElement(o,n),i&&(this.statusElementMapping[i]=o),o}}},{key:"insertStatusAtCursor",value:function(e){var t=Math.random().toString(36).substring(7);return this.setStatus({status:e,fsid:t,fsElement:null}),t}},{key:"removeCursorStatus",value:function(e){var t=this.options.getElementsBySelector("#".concat(e));t.length>0&&t[0].remove()}},{key:"insertElementNearElement",value:function(e,t){var n=this.options.preprocessElement(e),i="child";if(t&&"figure"==n.tagName.toLowerCase()){var a=t.closest("p");a&&(t=a,i="afterend")}return this.options.insertElement(n,t,i),n}}]),e}(),u=function(){function e(t){o(this,e),this.options=t}return l(e,[{key:"onKeyUp",value:function(e){var t=e.isEnter,n=e.isPaste,i=e.isSpace;(t||n||i)&&this.searchPatterns({searchPreviousLine:null!=t&&t})}},{key:"searchPatterns",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{searchPreviousLine:!1},n=t.searchPreviousLine?this.options.getPreviousLineText():this.options.getCurrentLineText(),i=s(this.options.patterns);try{for(i.s();!(e=i.n()).done;){var a=e.value,r=a.regex.exec(n);if(r){var o=r[0];if(o){var l=a.callback(o);this.replaceSelection(a.regex,l,t.searchPreviousLine)}}}}catch(c){i.e(c)}finally{i.f()}}},{key:"replaceSelection",value:function(e,t,n){var i,a,r;null!==(i=this.options)&&void 0!==i&&i.beforeExpand&&this.options.beforeExpand(),this.options.replaceText({regex:e,replacement:t,searchPreviousLine:n}),null!==(a=this.options)&&void 0!==a&&a.afterExpand&&(null===(r=this.options)||void 0===r||r.afterExpand())}}]),e}(),m=/(<p>)?\[FileSafe[^\]]*\](<\/p>)?/g,p=function(e){return e.replace(m,(function(e){return v(e)}))},h=function(e){return"[FileSafe:".concat(e.uuid,":").concat(e.content.fileName,"]")},v=function(e){var t=(e=(e=(e=e.replace("<p>","")).replace("</p>","")).replace("[","").replace("]","")).split(":"),n=t[1],i=t[2],a=t[3],r="";if(a){var s=a.split("x");r="width=".concat(s[0]," height=").concat(s[1])}return"<p fsplaceholder=true style='display: none;' fscollapsable=true ghost=true fsid='".concat(n,"' fsname='").concat(i,"' ").concat(r,"></p>")};function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function(){function e(t,n){o(this,e),this.delegate=t,this.options=n,g(this,"fileIdsPendingAssociation",[]),g(this,"componentRelay",void 0),g(this,"fileLoader",void 0),g(this,"textExpander",void 0),g(this,"fileSafeLoading",void 0),g(this,"fileSafeClass",void 0),g(this,"fileSafeInstance",void 0),g(this,"note",void 0),g(this,"ignoreNextTextChange",void 0),g(this,"needsFileSafeElementLoad",void 0),g(this,"previousText",void 0),this.connectToBridge(),this.options.supportsFileSafe&&(this.fileSafeLoading=this.importFileSafe())}return l(e,[{key:"connectToBridge",value:function(){var e=this,n=this.options,i=n.coallesedSaving,s=n.coallesedSavingDelay,o=n.mode,l=n.supportsFileSafe;this.componentRelay=new(t())({targetWindow:window,options:{coallesedSaving:i,coallesedSavingDelay:s},onReady:function(){var t=e.componentRelay.platform;t&&document.documentElement.classList.add(t)},onThemesChange:this.delegate.onThemesChange}),this.componentRelay.streamContextItem(function(){var t=r(a.mark((function t(n){var i,r,s,c,u,d,f,m,h,v;return a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=!0,e.note&&e.note.uuid==n.uuid&&(i=!1),r=e.note,l?(s=e.fileSafeClass.getSFItemClass(),e.note=new s(n),e.fileSafeInstance.setCurrentNote(e.note)):e.note=n,!n.isMetadataUpdate){t.next=6;break}return t.abrupt("return");case 6:if(c=n.content.text,"html"===o&&i&&(/<[a-z][\s\S]*>/i.test(c)||(e.ignoreNextTextChange=!0)),e.previousText=c,l&&(e.needsFileSafeElementLoad=!0,c=p(c)),t.t0=e.delegate.onNoteValueChange,!t.t0){t.next=14;break}return t.next=14,e.delegate.onNoteValueChange(n);case 14:if(e.delegate.setEditorRawText(c),!e.delegate.onNoteLockToggle){t.next=18;break}f=null!==(u=e.componentRelay.getItemAppDataValue(r,"locked"))&&void 0!==u&&u,m=null!==(d=e.componentRelay.getItemAppDataValue(e.note,"locked"))&&void 0!==d&&d,f!==m&&e.delegate.onNoteLockToggle(m);case 18:i&&(null===(h=(v=e.delegate).clearUndoHistory)||void 0===h||h.call(v));case 19:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())}},{key:"importFileSafe",value:function(){var e=r(a.mark((function e(){var t=this;return a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve().then(d.t.bind(d,695,23)).then((function(e){return t.fileSafeClass=e.default,t.configureFileSafe(),t.fileSafeInstance})));case 1:case"end":return e.stop()}}),e)})));function t(){return e.apply(this,arguments)}return t}()},{key:"configureFileSafe",value:function(){for(var e=this,t=0,n=["getCurrentLineText","getPreviousLineText","replaceText","getElementsBySelector","insertElement","preprocessElement","insertRawText"];t<n.length;t++){var i=n[t];if(!this.delegate[i])throw Error("Missing ".concat(i," delegate function."))}this.fileSafeInstance=new this.fileSafeClass({componentManager:this.componentRelay}),this.fileSafeInstance.addDataChangeObserver((function(){var t=e.fileSafeInstance.getAllFileDescriptors();if(e.note&&e.fileIdsPendingAssociation.length>0){var n,i=!1,a=s(e.fileIdsPendingAssociation.slice());try{var r=function(){var a=n.value,r=t.find((function(e){return e.uuid==a}));if(!r)return"continue";i=!0,e.fileIdsPendingAssociation.splice(e.fileIdsPendingAssociation.indexOf(a),1);var s=h(r);e.delegate.insertRawText(s)};for(a.s();!(n=a.n()).done;)r()}catch(o){a.e(o)}finally{a.f()}i&&e.textExpander.searchPatterns()}t.length>0&&e.fileLoader.loadFileSafeElements()})),this.fileSafeInstance.addNewFileDescriptorHandler((function(t){e.fileIdsPendingAssociation.push(t.uuid)})),this.fileLoader=new c({fileSafeInstance:this.fileSafeInstance,getElementsBySelector:this.delegate.getElementsBySelector,insertElement:this.delegate.insertElement,preprocessElement:this.delegate.preprocessElement}),this.textExpander=new u({afterExpand:function(){return e.fileLoader.loadFileSafeElements()},getCurrentLineText:this.delegate.getCurrentLineText,getPreviousLineText:this.delegate.getPreviousLineText,replaceText:this.delegate.replaceText,patterns:[{regex:m,callback:function(e){return p(e)}}]})}},{key:"getFileSafe",value:function(){var e=r(a.mark((function e(){return a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!this.fileSafeInstance&&this.fileSafeLoading?this.fileSafeLoading:this.importFileSafe());case 1:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"onEditorKeyUp",value:function(e){var t=e.isSpace,n=e.isEnter;this.textExpander.onKeyUp({isSpace:t,isEnter:n})}},{key:"onEditorPaste",value:function(){this.textExpander.onKeyUp({isPaste:!0})}},{key:"onEditorValueChanged",value:function(e){var t=this,n=this.options,i=n.mode,a=n.supportsFileSafe;if(this.needsFileSafeElementLoad&&(this.needsFileSafeElementLoad=!1,this.fileLoader.loadFileSafeElements()),this.ignoreNextTextChange)this.ignoreNextTextChange=!1;else if((!a||(e=function(e){var t,n=(new DOMParser).parseFromString(e,"text/html"),i=n.querySelectorAll("*[fscollapsable]"),a=s(i);try{for(a.s();!(t=a.n()).done;){var r=t.value,o=r.getAttribute("fsid"),l=r.getAttribute("fsname"),c=r.getAttribute("width"),u=r.getAttribute("height"),d=["FileSafe",o,l];if(c&&u){var f="".concat(c,"x").concat(u);d.push(f)}var m="<p>[".concat(d.join(":"),"]</p>");r.insertAdjacentHTML("afterend",m),r.remove()}}catch(p){a.e(p)}finally{a.f()}return n.querySelectorAll("*[ghost]").forEach((function(e){return e.remove()})),n.body.innerHTML}(e),this.previousText!=e))&&(this.previousText=e,this.note)){var r=this.note;this.componentRelay.saveItemWithPresave(r,(function(){if(r.content.text=e,t.delegate.generateCustomPreview){var n,a=t.delegate.generateCustomPreview(e);r.content.preview_plain=null!==(n=a.plain)&&void 0!==n?n:" ",r.content.preview_html=a.html}else{if("html"===i){var s=e.replace(m,(function(e){return""}));s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:90;return e.length<=t?e:e.substring(0,t)+"..."}(function(e){var t=document.implementation.createHTMLDocument().body;return t.innerHTML=e,t.textContent||t.innerText||""}(s)),r.content.preview_plain=s.length>0?s:" "}else r.content.preview_plain=e;r.content.preview_html=null}}))}}},{key:"canUploadFiles",value:function(){var e=this.fileSafeInstance.getAllCredentials(),t=this.fileSafeInstance.getAllIntegrations();return e.length>0&&t.length>0}},{key:"uploadJSFileObject",value:function(){var e=r(a.mark((function e(t){var n,i=this;return a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.fileLoader.insertStatusAtCursor("Processing file..."),e.abrupt("return",this.fileSafeInstance.encryptAndUploadJavaScriptFileObject(t).then((function(){i.fileLoader.removeCursorStatus(n)})));case 2:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"saveItemWithPresave",value:function(e,t){this.componentRelay.saveItemWithPresave(e,t)}},{key:"platform",get:function(){return this.componentRelay.platform}},{key:"environment",get:function(){return this.componentRelay.environment}}]),e}()}(),f.default}())},138:function(e,t,n){},143:function(e,t,n){},190:function(e,t,n){},201:function(e,t,n){"use strict";n.r(t);var i,a,r,s,o,l,c=n(10),u=n(28),d=n(1),f=n(2),m=n(18),p=n(19),h=n(15),v=n.n(h),g=(n(138),n(20)),b=n(86),y=n.n(b),k=function(e){e&&e instanceof Function&&n.e(3).then(n.bind(null,212)).then((function(t){var n=t.getCLS,i=t.getFID,a=t.getFCP,r=t.getLCP,s=t.getTTFB;n(e),i(e),a(e),r(e),s(e)}))},S=(n(143),n(106)),w=n(5),E=n(7),x=n(120),T=n(134),C=n(104),j=n(133),I=n(124),L=n(135),O=n(125),A=n(75),M=n(119),P=n(123),N=n(136),D=n(126),F=n(127),R=n(78),U=n(9),W=n(12),V=n(23),K=n(79),H=[[{type:"button",icon:"bulletList",key:V.g,disabled:function(e){var t=e.state;return!Object(R.f)(t.schema.nodes.bullet_list)(t)}},{type:"button",icon:"orderedList",key:V.h,disabled:function(e){var t=e.state;return!Object(R.f)(t.schema.nodes.ordered_list)(t)}},{type:"button",icon:"taskList",key:A.b,disabled:function(e){var t=e.state;return!Object(R.f)(t.schema.nodes.task_list_item)(t)}},{type:"button",icon:"liftList",key:V.c,disabled:function(e){var t=e.state;return!Object(K.a)(t.schema.nodes.list_item)(t)}},{type:"button",icon:"sinkList",key:V.d,disabled:function(e){var t=e.state;return!Object(K.b)(t.schema.nodes.list_item)(t)}}],[{type:"button",icon:"image",key:V.b},{type:"button",icon:"table",key:A.a}],[{type:"button",icon:"quote",key:V.f},{type:"button",icon:"divider",key:V.a}]],_=n(76),z=n(17),$=n(53),B=function(){function e(t,n,i,a,r){var o=this;Object(d.a)(this,e),this.utils=n,this.ctx=i,this.options=r,this.config=void 0,this.config=t.map((function(e){return e.map((function(e){return Object(_.a)(Object(_.a)({},e),{},{$:o.$create(e,a)})}))})).map((function(e,n){if(n===t.length-1)return e;var i={type:"divider",group:e.map((function(e){return e.$}))};return[].concat(Object(c.a)(e),[Object(_.a)(Object(_.a)({},i),{},{$:o.$create(i,a)})])})).flat();var l=function(e,t){var n=e.getStyle((function(e){return e.mixin.scrollbar("y")})),i=e.getStyle((function(e){var t=e.mixin.border(),n=e.mixin.scrollbar("x");return Object($.a)(s||(s=Object(z.a)(["\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n overflow-x: auto;\n ",";\n ",";\n background: ",";\n\n -webkit-overflow-scrolling: auto;\n\n .disabled {\n display: none;\n }\n "])),t,n,e.palette("surface"))})),a=document.createElement("div"),r=document.createElement("div");r.classList.add("milkdown-menu"),a.appendChild(r),a.classList.add("milkdown-menu-wrapper"),i&&i.split(" ").forEach((function(e){return r.classList.add(e)}));var o=t.dom;n&&o.classList.add(n);var l=o.parentElement;if(!l)throw new Error("No parent node found");var c=l.parentElement;if(!c)throw new Error("No root node found");return c.replaceChild(a,l),a.appendChild(l),r}(n,a);this.config.forEach((function(e){return l.appendChild(e.$)}))}return Object(f.a)(e,[{key:"update",value:function(e){var t=this.options.enabled;this.config.forEach((function(n){switch(n.type){case"button":if(n.active)n.active(e)?n.$.classList.add("active"):n.$.classList.remove("active");if(n.alwaysVisible)return void n.$.removeAttribute("disabled");!t||n.disabled&&n.disabled(e)?n.$.setAttribute("disabled","true"):n.$.removeAttribute("disabled");break;case"select":if(n.alwaysVisible)return void n.$.removeAttribute("disabled");!t||n.disabled&&n.disabled(e)?(n.$.classList.add("disabled"),n.$.children[0].setAttribute("disabled","true")):(n.$.classList.remove("disabled"),n.$.children[0].removeAttribute("disabled"));break;case"divider":n.group.every((function(e){return e.getAttribute("disabled")||e.classList.contains("disabled")}))?n.$.classList.add("disabled"):n.$.classList.remove("disabled")}}))}},{key:"$create",value:function(e,t){var n=this.utils,s=this.ctx;switch(e.type){case"button":var o=function(e,t,n,a,r){var s=e.getStyle((function(e){return Object($.a)(i||(i=Object(z.a)(["\n border: 0;\n box-sizing: unset;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0.25rem;\n margin: 0.5rem;\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ",";\n color: ",";\n transition: all 0.4s ease-in-out;\n cursor: pointer;\n &.active,\n &:hover {\n background-color: ",";\n color: ",";\n }\n &:disabled {\n display: none;\n }\n "])),e.palette("surface"),e.palette("solid"),e.palette("secondary",.12),e.palette("primary"))})),o=document.createElement("button");o.setAttribute("type","button"),o.classList.add("button"),s&&o.classList.add(s);var l=e.themeTool.slots.label(t.icon);l&&(o.setAttribute("aria-label",l),o.setAttribute("title",l));var c=e.themeTool.slots.icon(t.icon);return o.appendChild(c),o.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),t.callback&&t.callback(),t.key&&n.get(w.g).call(t.key,t.options)})),t.active&&(t.active()?o.classList.add("active"):o.classList.remove("active")),t.alwaysVisible?(o.removeAttribute("disabled"),o):(!r.enabled||t.disabled&&t.disabled(a)?o.setAttribute("disabled","true"):o.removeAttribute("disabled"),o)}(n,e,s,t,this.options);return o;case"select":var l=function(e,t,n,i,a){var s=e.getStyle((function(e){return Object($.a)(r||(r=Object(z.a)(["\n flex-shrink: 0;\n font-weight: 500;\n font-size: 0.875rem;\n ",";\n ",";\n .menu-selector {\n border: 0;\n box-sizing: unset;\n cursor: pointer;\n font: inherit;\n text-align: left;\n justify-content: space-between;\n align-items: center;\n color: ",";\n display: flex;\n padding: 0.25rem 0.5rem;\n margin: 0.5rem;\n background: ",";\n width: 10.375rem;\n &:disabled {\n display: none;\n }\n }\n .menu-selector-value {\n flex: 1;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n .menu-selector-list {\n width: calc(12.375rem);\n position: absolute;\n top: 3rem;\n background: ",";\n ",";\n ",";\n border-bottom-left-radius: ",";\n border-bottom-right-radius: ",";\n z-index: 3;\n }\n .menu-selector-list-item {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: block;\n font: inherit;\n text-align: left;\n padding: 0.75rem 1rem;\n line-height: 1.5rem;\n width: 100%;\n color: ",";\n &:hover {\n background: ",";\n color: ",";\n }\n }\n &.fold {\n border-color: transparent;\n .menu-selector {\n background: unset;\n }\n .menu-selector-list {\n display: none;\n }\n }\n "])),e.mixin.border("right"),e.mixin.border("left"),e.palette("neutral",.87),e.palette("secondary",.12),e.palette("surface"),e.mixin.border(),e.mixin.shadow(),e.size.radius,e.size.radius,e.palette("neutral",.87),e.palette("secondary",.12),e.palette("primary"))})),o=document.createElement("div");o.classList.add("menu-selector-wrapper","fold");var l=document.createElement("button");l.setAttribute("type","button"),l.classList.add("menu-selector","fold"),l.addEventListener("mousedown",(function(e){e.preventDefault(),e.stopPropagation(),o.classList.toggle("fold"),f.style.left="".concat(o.getBoundingClientRect().left-i.dom.getBoundingClientRect().left,"px")})),i.dom.addEventListener("click",(function(){o.classList.add("fold")}));var u=document.createElement("span");u.classList.add("menu-selector-value"),u.textContent=t.text;var d=e.themeTool.slots.icon("downArrow");d.setAttribute("aria-hidden","true"),o.appendChild(l),l.appendChild(u),l.appendChild(d);var f=document.createElement("div");return f.classList.add("menu-selector-list"),t.options.forEach((function(e){var t=document.createElement("button");t.setAttribute("type","button"),t.dataset.id=e.id,t.textContent=e.text,t.classList.add("menu-selector-list-item"),f.appendChild(t)})),f.addEventListener("mousedown",(function(e){var a,r=e.target;r instanceof HTMLButtonElement&&r.dataset.id&&((a=n.get(w.g)).call.apply(a,Object(c.a)(t.onSelect(r.dataset.id,i))),o.classList.add("fold"))})),o.appendChild(f),s&&o.classList.add(s),t.alwaysVisible?(l.removeAttribute("disabled"),o):(!a.enabled||t.disabled&&t.disabled(i)?(l.classList.add("disabled"),l.children[0].setAttribute("disabled","true")):(l.classList.remove("disabled"),l.children[0].removeAttribute("disabled")),o)}(n,e,s,t,this.options);return l;case"divider":var u=function(e,t){var n=e.getStyle((function(e){return Object($.a)(a||(a=Object(z.a)(["\n flex-shrink: 0;\n width: ",";\n background-color: ",";\n margin: 0.75rem 1rem;\n "])),e.size.lineWidth,e.palette("line"))})),i=document.createElement("div");return i.classList.add("divider"),n&&i.classList.add(n),t.group.every((function(e){return e.getAttribute("disabled")||e.classList.contains("disabled")}))?i.classList.add("disabled"):i.classList.remove("disabled"),i}(n,e);return u;default:throw new Error}}}]),e}(),q=Object(W.f)((function(e,t){var n,i,a=null!==(n=null===t||void 0===t?void 0:t.config)&&void 0!==n?n:H,r=null===(i=null===t||void 0===t?void 0:t.enabled)||void 0===i||i,s=Object(w.i)();return{commands:function(){return[Object(w.h)(s,(function(){return R.c}))]},prosePlugins:function(t,n){return[new U.d({key:new U.e("milkdown-advanced-menu"),view:function(t){var i=new B(a,e,n,t,{enabled:r});return{update:function(e){return i.update(e)}}}})]}}})),J=n(31),Q=function(e,t){var n=e.onChange,i=e.value,a=e.menuConfig,r=e.editable,s=e.spellcheck,o=Object(g.useRef)(null);Object(g.useImperativeHandle)(t,(function(){return{update:function(e){if(r&&o.current){var t=o.current.get();t&&t.action((function(t){var n=t.get(w.k),i=t.get(w.q)(e);if(i){var a=n.state;n.dispatch(a.tr.replace(0,a.doc.content.size,new E.j(i.content,0,0)).setMeta("addToHistory",!1))}}))}}}}));var l=Object(S.b)((function(e){return function(e){var t=e.root,n=e.onChange,i=e.value,a=e.menuConfig,r=e.editable,s=e.spellcheck;return w.b.make().config((function(e){e.set(w.t,t),e.get(C.b).markdownUpdated((function(e,t){n(t)})),e.set(w.l,{editable:function(){return r}}),null===t||void 0===t||t.setAttribute("spellcheck",JSON.stringify(s)),i&&e.set(w.j,i)})).use(M.a).use(x.a).use(T.a).use(A.c).use(C.a).use(j.a).use(P.a).use(I.a).use(L.a).use(O.a).use(N.a).use(D.a).use(F.a).use(q({config:a,enabled:r}))}({root:e,onChange:n,value:i,menuConfig:a,editable:r,spellcheck:s})}),[i,n,i,a,r,s]);return Object(J.jsx)("div",{className:"milkdown-container",children:Object(J.jsx)(S.a,{ref:o,editor:l})})},Y=Object(g.forwardRef)(Q),G=n(22),X=(n(190),n(57)),Z=n(132),ee=n(99),te=function(e,t){var n=e.onChange,i=e.value,a=e.editable,r=e.spellcheck,s=Object(g.useState)(!1),o=Object(G.a)(s,2),l=o[0],c=o[1],u=Object(g.useRef)(null),d=[X.a,Object(Z.a)(),ee.a.lineWrapping,ee.a.updateListener.of((function(e){if(e.focusChanged&&c(e.view.hasFocus),e.docChanged){var t=e.state.doc.toString();n(t)}}))];return Object(g.useImperativeHandle)(t,(function(){return{update:function(e){if(!l&&a&&u.current){var t=u.current.view;if(t){var n=t.state;if(n){var i=n.doc;i&&t.dispatch({changes:{from:0,to:i.toString().length,insert:e}})}}}}}})),Object(J.jsx)("div",{className:"codemirror-container",children:Object(J.jsx)(ee.b,{ref:u,extensions:d,value:i,editable:a,spellCheck:r,indentWithTab:!0})})},ne=Object(g.forwardRef)(te),ie=n(77),ae=n.n(ie);!function(e){e.Horizontal="horizontal",e.Vertical="vertical"}(o||(o={})),function(e){e.Row="row",e.Column="column"}(l||(l={}));ae.a.bool.isRequired,ae.a.oneOf([o.Horizontal,o.Vertical]).isRequired,ae.a.arrayOf(ae.a.element).isRequired;var re,se=function(e){var t=e.children,n=e.split,i=e.direction,a=i===o.Horizontal?l.Column:l.Row;return Object(J.jsxs)("div",{className:"container ".concat(i),children:[Object(J.jsx)("div",{className:"".concat(a," ").concat(n?"half":"full"),children:t[0]}),n&&Object(J.jsxs)(J.Fragment,{children:[Object(J.jsx)("div",{className:"separator"}),Object(J.jsx)("div",{className:"".concat(a," half"),children:t[1]})]})]})},oe=Object(g.memo)(se),le=n(130),ce=n.n(le),ue=n(131);!function(e){e.Milkdown="milkdown",e.CodeMirror="codemirror"}(re||(re={}));var de=function(e){Object(m.a)(n,e);var t=Object(p.a)(n);function n(e){var i;return Object(d.a)(this,n),(i=t.call(this,e)).editorKit=void 0,i.prevText="",i.milkdownRef=Object(g.createRef)(),i.codeMirrorRef=Object(g.createRef)(),i.onTextChange=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:re.Milkdown;if(i.prevText!==e.trim())switch(i.prevText=e.trim(),i.editorKit.onEditorValueChanged(e),t){case re.CodeMirror:i.updateMilkdownText(i.prevText);break;case re.Milkdown:default:i.updateCodeMirrorText(i.prevText)}},i.toggleSplitView=function(){var e=i.state.splitView;i.setState({splitView:!e})},i.getSplitViewDirection=function(e){return{web:o.Horizontal,desktop:o.Horizontal,mobile:o.Vertical}[e]},i.state={splitView:!1,editable:!0,spellcheck:!0,isLoading:!0},i}return Object(f.a)(n,[{key:"componentDidMount",value:function(){this.configureEditorKit()}},{key:"configureEditorKit",value:function(){var e=this,t={setEditorRawText:function(t){e.prevText=t.trim(),e.updateMilkdownText(e.prevText),e.updateCodeMirrorText(e.prevText),e.setState({isLoading:!1})},generateCustomPreview:function(t){var n=ue.marked.parse(t),i=document.createElement("div");i.innerHTML=n;var a=i.textContent||i.innerText||"";return{plain:e.truncateString(a).trim()}},onNoteValueChange:function(){var t=Object(u.a)(v.a.mark((function t(n){var i,a,r;return v.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a=null===(i=!n.content.appData["org.standardnotes.sn"].locked)||void 0===i||i,r=n.content.spellcheck,e.setState({editable:a,spellcheck:r});case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),onNoteLockToggle:function(t){var n=!t;e.setState({editable:n})}};this.editorKit=new ce.a(t,{mode:"markdown",supportsFileSafe:!1})}},{key:"updateMilkdownText",value:function(e){var t=this.milkdownRef.current;t&&t.update(e)}},{key:"updateCodeMirrorText",value:function(e){var t=this.codeMirrorRef.current;t&&t.update(e)}},{key:"truncateString",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:90;return e.length<=t?e:e.substring(0,t)+"..."}},{key:"render",value:function(){var e,t,n=this,i=this.state,a=i.splitView,r=i.editable,s=i.spellcheck;if(i.isLoading)return null;var o=null!==(e=null===(t=this.editorKit)||void 0===t?void 0:t.environment)&&void 0!==e?e:"web",l=this.getSplitViewDirection(o),u=[].concat(Object(c.a)(H),[[{type:"button",icon:"code",active:function(){return a},callback:this.toggleSplitView,alwaysVisible:!0}]]);return Object(J.jsxs)(oe,{split:a,direction:l,children:[Object(J.jsx)(Y,{ref:this.milkdownRef,onChange:this.onTextChange,value:this.prevText,menuConfig:u,editable:r,spellcheck:s}),Object(J.jsx)(ne,{ref:this.codeMirrorRef,onChange:function(e){return n.onTextChange(e,re.CodeMirror)},value:this.prevText,editable:r,spellcheck:s})]})}}]),n}(g.Component);y.a.render(Object(J.jsx)(g.StrictMode,{children:Object(J.jsx)(de,{})}),document.getElementById("root")),k(console.log)}},[[201,1,2]]]);
|
|
2
|
-
//# sourceMappingURL=main.7192e457.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../EditorKit/webpack/universalModuleDefinition","../webpack:/EditorKit/webpack/runtime/create fake namespace object","../EditorKit/node_modules/@standardnotes/component-relay/dist/dist.js","../webpack:/EditorKit/external \"filesafe-js\"","../EditorKit/webpack/bootstrap","../webpack:/EditorKit/webpack/runtime/compat get default export","../webpack:/EditorKit/webpack/runtime/define property getters","../webpack:/EditorKit/webpack/runtime/hasOwnProperty shorthand","../webpack:/EditorKit/webpack/runtime/make namespace object","../EditorKit/src/utils.ts","../EditorKit/src/fileLoader.ts","../EditorKit/src/textExpander.ts","../EditorKit/src/fileSafeHtml.ts","../EditorKit/src/editorKit.ts","components/SplitView/index.tsx","reportWebVitals.ts","components/Milkdown/plugins/advanced-menu/config.ts","components/Milkdown/plugins/advanced-menu/manager.ts","components/Milkdown/plugins/advanced-menu/menuBar.ts","components/Milkdown/plugins/advanced-menu/button.ts","components/Milkdown/plugins/advanced-menu/select.ts","components/Milkdown/plugins/advanced-menu/divider.ts","components/Milkdown/plugins/advanced-menu/index.ts","components/Milkdown/index.tsx","components/Milkdown/editor.ts","components/CodeMirror/index.tsx","index.tsx"],"names":["__WEBPACK_EXTERNAL_MODULE__695__","self","module","exports","require","leafPrototypes","getProto","s","n","i","o","a","e","d","t","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","default","w","SetSize","StreamItems","StreamContextItem","SaveItems","SelectItem","AssociateItem","DeassociateItem","ClearSelection","CreateItem","CreateItems","DeleteItems","SetComponentData","InstallLocalComponent","ToggleActivateComponent","RequestPermissions","PresentConflictResolution","DuplicateItem","ComponentRegistered","ActivateThemes","Reply","SaveSuccess","SaveError","ThemesActivated","KeyDown","KeyUp","Click","Web","Desktop","Mobile","Any","Item","RootKey","ItemsKey","EncryptedStorage","Note","Tag","SmartTag","Component","Editor","ActionsExtension","UserPrefs","HistorySession","Theme","Mfa","ServerExtension","FilesafeCredentials","FilesafeFileMetadata","FilesafeIntegration","ExtensionRepo","Pinned","Archived","Locked","UserModifiedDate","DefaultEditor","MobileRules","NotAvailableOnMobile","MobileActive","LastSize","PrefersPlainEditor","ComponentInstallError","r","Uint8Array","c","crypto","getRandomValues","bind","msCrypto","Error","m","l","test","h","push","toString","substr","y","S","b","I","p","random","rng","arguments","length","toLowerCase","TypeError","u","v","g","f","window","console","isSupported","this","enabled","log","error","k","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","E","forEach","C","getOwnPropertyDescriptors","defineProperties","value","configurable","writable","Shift","Ctrl","Meta","activeThemes","acceptsThemes","targetWindow","contentWindow","processParameters","registerMessageHandler","registerKeyboardEventListeners","registerMouseEventListeners","initialPermissions","options","onReady","onThemesChange","coallesedSaving","coallesedSavingDelay","component","onReadyCallback","onThemesChangeCallback","debug","messageQueue","sentMessages","lastStreamedItem","pendingSaveItems","pendingSaveTimeout","pendingSaveParams","messageHandler","document","removeEventListener","keyDownEventListener","keyUpEventListener","clickEventListener","info","data","referrer","URL","origin","JSON","parse","action","handleMessage","addEventListener","concat","key","ctrlKey","keyDownEvent","shiftKey","metaKey","keyUpEvent","mouseClickEvent","sessionKey","componentData","activateThemes","themes","original","messageId","title","replace","callback","environment","platform","uuid","requestPermissions","postMessage","activeThemeUrls","generateUUID","api","stringify","isRunningInMobileApplication","parent","permissions","sort","includes","deactivateTheme","createElement","id","btoa","href","type","rel","media","className","getElementsByTagName","appendChild","Array","from","getElementsByClassName","slice","find","themeElementForUrl","parentNode","setAttribute","removeChild","content_types","items","item","clearTimeout","performSavingOfItems","jsonObjectForItem","content_type","associateItem","map","deleteItems","saveItems","saveItemsWithPresave","presave","setTimeout","concernTimeouts","alert","width","height","keyboardModifier","assign","children","content","appData","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","getPrototypeOf","obj","mode","then","ns","create","def","current","indexOf","getOwnPropertyNames","definition","prop","Symbol","toStringTag","sleep","async","Promise","resolve","seconds","FileLoader","constructor","fileTypeForElementType","fileTypeToElementType","loadFileSafeElements","elements","getElementsBySelector","element","loadFileSafeElement","fsElement","fileSafeInstance","fsid","getAttribute","fsName","fileNameDisplay","existingMapping","uuidToFileTempUrlAndTypeMapping","insertMediaElement","url","fileType","currentlyLoadingIds","descriptor","findFileDescriptor","setStatus","status","removable","selectorSyntax","querySelectorAll","downloadFileFromDescriptor","catch","fileItem","decryptFile","fileDescriptor","tempUrl","createTemporaryFileUrl","base64Data","decryptedData","dataType","splice","mediaElement","createImageElement","createVideoElement","createAudioElement","createDownloadElement","insertElementNearElement","remove","wrapElementInTag","tagName","tag","append","image","elementWidth","elementHeight","video","source","link","textContent","audio","existingStatusElement","statusElementMapping","style","fontWeight","userSelect","insertStatusAtCursor","identifier","Math","substring","removeCursorStatus","domNodeToInsert","inVicinityOfElement","processedElement","preprocessElement","insertionType","paragraphAncestor","closest","insertElement","TextExpander","onKeyUp","isEnter","isPaste","isSpace","searchPatterns","searchPreviousLine","params","text","getPreviousLineText","getCurrentLineText","patterns","pattern","match","regex","exec","matchedText","replaceWith","replaceSelection","replacement","beforeExpand","replaceText","afterExpand","FileSafeSyntaxPattern","expandedFileSafeSyntax","html","fileSafeSyntaxToHtmlElement","insertionSyntaxForFileDescriptor","fileName","syntax","components","split","name","size","sizeString","dimensions","EditorKitBase","delegate","connectToBridge","supportsFileSafe","fileSafeLoading","importFileSafe","componentRelay","ComponentRelay","documentElement","classList","add","streamContextItem","isNewNoteLoad","note","previousNote","itemClass","fileSafeClass","getSFItemClass","setCurrentNote","isMetadataUpdate","ignoreNextTextChange","previousText","needsFileSafeElementLoad","onNoteValueChange","setEditorRawText","onNoteLockToggle","previousLockState","getItemAppDataValue","newLockState","clearUndoHistory","result","configureFileSafe","functionName","componentManager","addDataChangeObserver","allFileDescriptors","getAllFileDescriptors","fileIdsPendingAssociation","hasMatch","candidate","insertRawText","textExpander","fileLoader","addNewFileDescriptorHandler","onEditorKeyUp","onEditorPaste","onEditorValueChanged","domCopy","DOMParser","parseFromString","mediaElements","file","fsSyntax","join","insertAdjacentHTML","ghost","body","innerHTML","saveItemWithPresave","generateCustomPreview","preview_plain","plain","preview_html","preview","_match","limit","tmpDocument","implementation","createHTMLDocument","innerText","canUploadFiles","credentials","getAllCredentials","integrations","getAllIntegrations","cursorIdentifier","encryptAndUploadJavaScriptFileObject","SplitViewDirection","SplitViewType","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","menuConfig","icon","WrapInBulletList","disabled","view","state","wrapIn","schema","nodes","bullet_list","WrapInOrderedList","ordered_list","TurnIntoTaskList","task_list_item","LiftListItem","liftListItem","list_item","SinkListItem","sinkListItem","InsertImage","InsertTable","WrapInBlockquote","InsertHr","Manager","originalConfig","utils","ctx","config","xs","x","$","$create","dividerConfig","group","flat","menu","editorWrapperStyle","getStyle","themeTool","mixin","scrollbar","menuStyle","border","css","palette","menuWrapper","editorDom","dom","milkdown","parentElement","root","replaceChild","MenuBar","active","alwaysVisible","removeAttribute","every","contains","buttonStyle","$button","$label","slots","label","$icon","preventDefault","stopPropagation","commandsCtx","button","selectStyle","shadow","radius","selectorWrapper","selector","toggle","selectorList","left","getBoundingClientRect","selectorValue","selectorButton","option","selectorListItem","dataset","target","HTMLButtonElement","onSelect","select","dividerStyle","lineWidth","$divider","divider","createPlugin","SelectParent","createCmdKey","commands","createCmd","selectParentNode","prosePlugins","_","Plugin","PluginKey","editorView","manager","update","Milkdown","ref","onChange","editable","spellcheck","editorRef","useRef","useImperativeHandle","markdown","editor","editorViewCtx","parserCtx","parser","dispatch","tr","doc","Slice","setMeta","useEditor","make","set","rootCtx","listenerCtx","markdownUpdated","editorViewOptionsCtx","defaultValueCtx","use","nord","clipboard","emoji","gfm","listener","math","indent","prism","slash","tooltip","diagram","cursor","history","createEditor","forwardRef","CodeMirror","useState","hasFocus","setFocus","extensions","basicSetup","EditorView","lineWrapping","updateListener","of","focusChanged","docChanged","changes","to","insert","spellCheck","indentWithTab","PropTypes","bool","isRequired","oneOf","Horizontal","Vertical","arrayOf","TextChangeSource","SplitView","direction","childClassName","Column","Row","memo","AppWrapper","props","editorKit","prevText","milkdownRef","createRef","codeMirrorRef","onTextChange","trim","updateMilkdownText","updateCodeMirrorText","toggleSplitView","splitView","setState","getSplitViewDirection","web","desktop","mobile","isLoading","configureEditorKit","editorKitDelegate","htmlPreview","marked","tmpElement","truncateString","locked","EditorKit","splitViewDirection","customMenu","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.7192e457.chunk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"filesafe-js\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"EditorKit\", [\"filesafe-js\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"EditorKit\"] = factory(require(\"filesafe-js\"));\n\telse\n\t\troot[\"EditorKit\"] = factory(root[\"filesafe-js\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__695__) {\nreturn ","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"ComponentRelay\",[],t):\"object\"==typeof exports?exports.ComponentRelay=t():e.ComponentRelay=t()}(self,(function(){return(()=>{\"use strict\";var e={d:(t,s)=>{for(var n in s)e.o(s,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:s[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t={};let s,n,i,o;var a;e.d(t,{default:()=>w}),function(e){e.SetSize=\"set-size\",e.StreamItems=\"stream-items\",e.StreamContextItem=\"stream-context-item\",e.SaveItems=\"save-items\",e.SelectItem=\"select-item\",e.AssociateItem=\"associate-item\",e.DeassociateItem=\"deassociate-item\",e.ClearSelection=\"clear-selection\",e.CreateItem=\"create-item\",e.CreateItems=\"create-items\",e.DeleteItems=\"delete-items\",e.SetComponentData=\"set-component-data\",e.InstallLocalComponent=\"install-local-component\",e.ToggleActivateComponent=\"toggle-activate-component\",e.RequestPermissions=\"request-permissions\",e.PresentConflictResolution=\"present-conflict-resolution\",e.DuplicateItem=\"duplicate-item\",e.ComponentRegistered=\"component-registered\",e.ActivateThemes=\"themes\",e.Reply=\"reply\",e.SaveSuccess=\"save-success\",e.SaveError=\"save-error\",e.ThemesActivated=\"themes-activated\",e.KeyDown=\"key-down\",e.KeyUp=\"key-up\",e.Click=\"click\"}(s||(s={})),function(e){e[e.Web=1]=\"Web\",e[e.Desktop=2]=\"Desktop\",e[e.Mobile=3]=\"Mobile\"}(n||(n={})),function(e){e.Any=\"*\",e.Item=\"SF|Item\",e.RootKey=\"SN|RootKey|NoSync\",e.ItemsKey=\"SN|ItemsKey\",e.EncryptedStorage=\"SN|EncryptedStorage\",e.Note=\"Note\",e.Tag=\"Tag\",e.SmartTag=\"SN|SmartTag\",e.Component=\"SN|Component\",e.Editor=\"SN|Editor\",e.ActionsExtension=\"Extension\",e.UserPrefs=\"SN|UserPreferences\",e.HistorySession=\"SN|HistorySession\",e.Theme=\"SN|Theme\",e.Mfa=\"SF|MFA\",e.ServerExtension=\"SF|Extension\",e.FilesafeCredentials=\"SN|FileSafe|Credentials\",e.FilesafeFileMetadata=\"SN|FileSafe|FileMetadata\",e.FilesafeIntegration=\"SN|FileSafe|Integration\",e.ExtensionRepo=\"SN|ExtensionRepo\"}(i||(i={})),function(e){e.Pinned=\"pinned\",e.Archived=\"archived\",e.Locked=\"locked\",e.UserModifiedDate=\"client_updated_at\",e.DefaultEditor=\"defaultEditor\",e.MobileRules=\"mobileRules\",e.NotAvailableOnMobile=\"notAvailableOnMobile\",e.MobileActive=\"mobileActive\",e.LastSize=\"lastSize\",e.PrefersPlainEditor=\"prefersPlainEditor\",e.ComponentInstallError=\"installError\"}(o||(o={}));var r=new Uint8Array(16);function c(){if(!a&&!(a=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return a(r)}const m=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,l=function(e){return\"string\"==typeof e&&m.test(e)};for(var d=[],h=0;h<256;++h)d.push((h+256).toString(16).substr(1));const p=function(e,t,s){var n=(e=e||{}).random||(e.rng||c)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){s=s||0;for(var i=0;i<16;++i)t[s+i]=n[i];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=(d[e[t+0]]+d[e[t+1]]+d[e[t+2]]+d[e[t+3]]+\"-\"+d[e[t+4]]+d[e[t+5]]+\"-\"+d[e[t+6]]+d[e[t+7]]+\"-\"+d[e[t+8]]+d[e[t+9]]+\"-\"+d[e[t+10]]+d[e[t+11]]+d[e[t+12]]+d[e[t+13]]+d[e[t+14]]+d[e[t+15]]).toLowerCase();if(!l(s))throw TypeError(\"Stringified UUID is invalid\");return s}(n)},u=e=>{var t;const s={[n.Web]:\"web\",[n.Desktop]:\"desktop\",[n.Mobile]:\"mobile\"};return null!==(t=s[e])&&void 0!==t?t:s[n.Web]},v=e=>null!=e,g=()=>{};class f{static get isSupported(){return!(!window.console&&!console)}static get info(){return f.isSupported&&this.enabled?console.log.bind(console):g}static get error(){return f.isSupported?console.error.bind(console):g}}var y,S,b,I;function k(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,n)}return s}function E(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?k(Object(s),!0).forEach((function(t){C(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):k(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function C(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}(S=\"enabled\")in(y=f)?Object.defineProperty(y,S,{value:false,enumerable:!0,configurable:!0,writable:!0}):y[S]=false,function(e){e.Component=\"component\"}(b||(b={})),function(e){e.Shift=\"Shift\",e.Ctrl=\"Control\",e.Meta=\"Meta\"}(I||(I={}));class w{constructor(e){if(C(this,\"contentWindow\",void 0),C(this,\"initialPermissions\",void 0),C(this,\"onReadyCallback\",void 0),C(this,\"component\",{activeThemes:[],acceptsThemes:!0}),C(this,\"sentMessages\",[]),C(this,\"messageQueue\",[]),C(this,\"lastStreamedItem\",void 0),C(this,\"pendingSaveItems\",void 0),C(this,\"pendingSaveTimeout\",void 0),C(this,\"pendingSaveParams\",void 0),C(this,\"coallesedSaving\",!0),C(this,\"coallesedSavingDelay\",250),C(this,\"messageHandler\",void 0),C(this,\"keyDownEventListener\",void 0),C(this,\"keyUpEventListener\",void 0),C(this,\"clickEventListener\",void 0),C(this,\"onThemesChangeCallback\",void 0),C(this,\"concernTimeouts\",[]),!e||!e.targetWindow)throw new Error(\"contentWindow must be a valid Window object.\");this.contentWindow=e.targetWindow,this.processParameters(e),this.registerMessageHandler(),this.registerKeyboardEventListeners(),this.registerMouseEventListeners()}processParameters(e){var t;const{initialPermissions:s,options:n,onReady:i,onThemesChange:o}=e;var a;s&&s.length>0&&(this.initialPermissions=s),v(null==n?void 0:n.coallesedSaving)&&(this.coallesedSaving=n.coallesedSaving),v(null==n?void 0:n.coallesedSavingDelay)&&(this.coallesedSavingDelay=n.coallesedSavingDelay),v(null==n?void 0:n.acceptsThemes)&&(this.component.acceptsThemes=null===(a=null==n?void 0:n.acceptsThemes)||void 0===a||a),v(i)&&(this.onReadyCallback=i),v(o)&&(this.onThemesChangeCallback=o),f.enabled=null!==(t=null==n?void 0:n.debug)&&void 0!==t&&t}deinit(){this.onReadyCallback=void 0,this.component={acceptsThemes:!0,activeThemes:[]},this.messageQueue=[],this.sentMessages=[],this.lastStreamedItem=void 0,this.pendingSaveItems=void 0,this.pendingSaveTimeout=void 0,this.pendingSaveParams=void 0,this.messageHandler&&(this.contentWindow.document.removeEventListener(\"message\",this.messageHandler),this.contentWindow.removeEventListener(\"message\",this.messageHandler)),this.keyDownEventListener&&this.contentWindow.removeEventListener(\"keydown\",this.keyDownEventListener),this.keyUpEventListener&&this.contentWindow.removeEventListener(\"keyup\",this.keyUpEventListener),this.clickEventListener&&this.contentWindow.removeEventListener(\"click\",this.clickEventListener)}registerMessageHandler(){this.messageHandler=e=>{if(f.info(\"Components API Message received:\",e.data),document.referrer&&new URL(document.referrer).origin!==new URL(e.origin).origin)return;const{data:t}=e,n=(e=>{if(\"string\"!=typeof e)return!1;try{const t=JSON.parse(e),s=Object.prototype.toString.call(t);return\"[object Object]\"===s||\"[object Array]\"===s}catch(e){return!1}})(t)?JSON.parse(t):t;if(n){if(void 0===this.component.origin&&n.action===s.ComponentRegistered)this.component.origin=e.origin;else if(e.origin!==this.component.origin)return;this.handleMessage(n)}else f.error(\"Invalid data received. Skipping...\")},this.contentWindow.document.addEventListener(\"message\",this.messageHandler,!1),this.contentWindow.addEventListener(\"message\",this.messageHandler,!1),f.info(\"Waiting for messages...\")}registerKeyboardEventListeners(){this.keyDownEventListener=e=>{f.info(\"A key has been pressed: \".concat(e.key)),e.ctrlKey?this.keyDownEvent(I.Ctrl):e.shiftKey?this.keyDownEvent(I.Shift):(e.metaKey||\"Meta\"===e.key)&&this.keyDownEvent(I.Meta)},this.keyUpEventListener=e=>{f.info(\"A key has been released: \".concat(e.key)),\"Control\"===e.key?this.keyUpEvent(I.Ctrl):\"Shift\"===e.key?this.keyUpEvent(I.Shift):\"Meta\"===e.key&&this.keyUpEvent(I.Meta)},this.contentWindow.addEventListener(\"keydown\",this.keyDownEventListener,!1),this.contentWindow.addEventListener(\"keyup\",this.keyUpEventListener,!1)}registerMouseEventListeners(){this.clickEventListener=e=>{f.info(\"A click has been performed.\"),this.mouseClickEvent()},this.contentWindow.addEventListener(\"click\",this.clickEventListener,!1)}handleMessage(e){switch(e.action){case s.ComponentRegistered:this.component.sessionKey=e.sessionKey,e.componentData&&(this.component.data=e.componentData),this.onReady(e.data),f.info(\"Component successfully registered with payload:\",e);break;case s.ActivateThemes:this.activateThemes(e.data.themes);break;default:{var t,n;if(!e.original)return;const s=null===(t=this.sentMessages)||void 0===t?void 0:t.filter((t=>{var s;return t.messageId===(null===(s=e.original)||void 0===s?void 0:s.messageId)}))[0];if(!s){const e=this.contentWindow.document.title,t=(\"The extension '\".concat(e,\"' is attempting to communicate with Standard Notes, \")+\"but an error is preventing it from doing so. Please restart this extension and try again.\").replace(\" \",\" \");return void f.info(t)}null==s||null===(n=s.callback)||void 0===n||n.call(s,e.data);break}}}onReady(e){this.component.environment=e.environment,this.component.platform=e.platform,this.component.uuid=e.uuid,this.initialPermissions&&this.initialPermissions.length>0&&this.requestPermissions(this.initialPermissions);for(const e of this.messageQueue)this.postMessage(e.action,e.data,e.callback);this.messageQueue=[],f.info(\"Data passed to onReady:\",e),this.activateThemes(e.activeThemeUrls||[]),this.postMessage(s.ThemesActivated,{}),this.onReadyCallback&&this.onReadyCallback()}getSelfComponentUUID(){return this.component.uuid}isRunningInDesktopApplication(){return this.component.environment===u(n.Desktop)}isRunningInMobileApplication(){return this.component.environment===u(n.Mobile)}getComponentDataValueForKey(e){if(this.component.data)return this.component.data[e]}setComponentDataValueForKey(e,t){if(!this.component.data)throw new Error(\"The component has not been initialized.\");if(!e||e&&0===e.length)throw new Error(\"The key for the data value should be a valid string.\");this.component.data=E(E({},this.component.data),{},{[e]:t}),this.postMessage(s.SetComponentData,{componentData:this.component.data})}clearComponentData(){this.component.data={},this.postMessage(s.SetComponentData,{componentData:this.component.data})}postMessage(e,t,s){if(!this.component.sessionKey)return void this.messageQueue.push({action:e,data:t,api:b.Component,callback:s});const n={action:e,data:t,messageId:this.generateUUID(),sessionKey:this.component.sessionKey,api:b.Component},i=JSON.parse(JSON.stringify(n));let o;i.callback=s,this.sentMessages.push(i),o=this.isRunningInMobileApplication()?JSON.stringify(n):n,f.info(\"Posting message:\",o),this.contentWindow.parent.postMessage(o,this.component.origin)}requestPermissions(e,t){this.postMessage(s.RequestPermissions,{permissions:e},(()=>{t&&t()}))}activateThemes(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!this.component.acceptsThemes)return;f.info(\"Incoming themes:\",e);const{activeThemes:t}=this.component;if(t&&t.sort().toString()==e.sort().toString())return;let s=e;const n=[];for(const i of t)e.includes(i)?s=s.filter((e=>e!==i)):n.push(i);f.info(\"Deactivating themes:\",n),f.info(\"Activating themes:\",s);for(const e of n)this.deactivateTheme(e);this.component.activeThemes=e;for(const e of s){if(!e)continue;const t=this.contentWindow.document.createElement(\"link\");t.id=btoa(e),t.href=e,t.type=\"text/css\",t.rel=\"stylesheet\",t.media=\"screen,print\",t.className=\"custom-theme\",this.contentWindow.document.getElementsByTagName(\"head\")[0].appendChild(t)}this.onThemesChangeCallback&&this.onThemesChangeCallback()}themeElementForUrl(e){return Array.from(this.contentWindow.document.getElementsByClassName(\"custom-theme\")).slice().find((t=>t.id==btoa(e)))}deactivateTheme(e){const t=this.themeElementForUrl(e);t&&t.parentNode&&(t.setAttribute(\"disabled\",\"true\"),t.parentNode.removeChild(t))}generateUUID(){return p()}get platform(){return this.component.platform}get environment(){return this.component.environment}streamItems(e,t){this.postMessage(s.StreamItems,{content_types:e},(e=>{t(e.items)}))}streamContextItem(e){this.postMessage(s.StreamContextItem,{},(t=>{const{item:s}=t;(!this.lastStreamedItem||this.lastStreamedItem.uuid!==s.uuid)&&this.pendingSaveTimeout&&(clearTimeout(this.pendingSaveTimeout),this.performSavingOfItems(this.pendingSaveParams),this.pendingSaveTimeout=void 0,this.pendingSaveParams=void 0),this.lastStreamedItem=s,e(this.lastStreamedItem)}))}selectItem(e){this.postMessage(s.SelectItem,{item:this.jsonObjectForItem(e)})}clearSelection(){this.postMessage(s.ClearSelection,{content_type:i.Tag})}createItem(e,t){this.postMessage(s.CreateItem,{item:this.jsonObjectForItem(e)},(e=>{let{item:s}=e;!s&&e.items&&e.items.length>0&&(s=e.items[0]),this.associateItem(s),t&&t(s)}))}createItems(e,t){const n=e.map((e=>this.jsonObjectForItem(e)));this.postMessage(s.CreateItems,{items:n},(e=>{t&&t(e.items)}))}associateItem(e){this.postMessage(s.AssociateItem,{item:this.jsonObjectForItem(e)})}deassociateItem(e){this.postMessage(s.DeassociateItem,{item:this.jsonObjectForItem(e)})}deleteItem(e,t){this.deleteItems([e],t)}deleteItems(e,t){const n={items:e.map((e=>this.jsonObjectForItem(e)))};this.postMessage(s.DeleteItems,n,(e=>{t&&t(e)}))}sendCustomEvent(e,t,s){this.postMessage(e,t,(e=>{s&&s(e)}))}saveItem(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.saveItems([e],t,s)}saveItemWithPresave(e,t,s){this.saveItemsWithPresave([e],t,s)}saveItemsWithPresave(e,t,s){this.saveItems(e,s,!1,t)}performSavingOfItems(e){let{items:t,presave:n,callback:i}=e;const o=setTimeout((()=>{this.concernTimeouts.forEach((e=>clearTimeout(e))),alert(\"This editor is unable to communicate with Standard Notes. Your changes may not be saved. Please backup your changes, then restart the application and try again.\")}),5e3);this.concernTimeouts.push(o),n&&n();const a=[];for(const e of t)a.push(this.jsonObjectForItem(e));this.postMessage(s.SaveItems,{items:a},(()=>{this.concernTimeouts.forEach((e=>clearTimeout(e))),null==i||i()}))}saveItems(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;if(this.pendingSaveItems||(this.pendingSaveItems=[]),this.coallesedSaving&&!s){this.pendingSaveTimeout&&clearTimeout(this.pendingSaveTimeout);const s=e.map((e=>e.uuid)),i=this.pendingSaveItems.filter((e=>!s.includes(e.uuid)));this.pendingSaveItems=i.concat(e),this.pendingSaveParams={items:this.pendingSaveItems,presave:n,callback:t},this.pendingSaveTimeout=setTimeout((()=>{this.performSavingOfItems(this.pendingSaveParams),this.pendingSaveItems=[],this.pendingSaveTimeout=void 0,this.pendingSaveParams=null}),this.coallesedSavingDelay)}else this.performSavingOfItems({items:e,presave:n,callback:t})}setSize(e,t){this.postMessage(s.SetSize,{type:\"container\",width:e,height:t})}keyDownEvent(e){this.postMessage(s.KeyDown,{keyboardModifier:e})}keyUpEvent(e){this.postMessage(s.KeyUp,{keyboardModifier:e})}mouseClickEvent(){this.postMessage(s.Click,{})}jsonObjectForItem(e){const t=Object.assign({},e);return t.children=null,t.parent=null,t}getItemAppDataValue(e,t){var s,n;return null==e||null===(s=e.content)||void 0===s||null===(n=s.appData)||void 0===n?void 0:n[\"org.standardnotes.sn\"][t]}}return t.default})()}));\n//# sourceMappingURL=dist.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__695__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export const htmlToText = (html: string): string => {\n const tmpDocument = document.implementation.createHTMLDocument().body\n tmpDocument.innerHTML = html\n return tmpDocument.textContent || tmpDocument.innerText || ''\n}\n\nexport const truncateString = (text: string, limit = 90): string => {\n if (text.length <= limit) {\n return text\n }\n return text.substring(0, limit) + '...'\n}\n\nexport const sleep = async (seconds: number): Promise<void> => {\n await new Promise(resolve => setTimeout(resolve, seconds * 1000))\n}\n","import { sleep } from './utils'\n\nexport type FileLoaderOptions = {\n fileSafeInstance: any\n getElementsBySelector: (selector: string) => Element[]\n preprocessElement: (element: Element) => Element\n insertElement: (element: Element, inVicinityOfElement: Element | null, insertionType: string) => void\n}\n\ntype FileTypes = {\n [key: string]: string\n}\n\ntype UuidTypeMapping = {\n [key: string]: {\n url: string\n fileType: string\n fsName: string\n }\n}\n\ntype ElementStatusMapping = {\n [key: string]: Element\n}\n\ntype InsertMediaElementParams = {\n url: string,\n fsid: string,\n fsName: string,\n fileType: string,\n fsElement: Element\n}\n\ntype WrapElementInTagParams = {\n element: Element,\n tagName: string,\n fsid: string,\n fsName: string\n}\n\ntype SetStatusParams = {\n status?: string,\n fsElement: Element | null,\n fsid: string,\n removable?: boolean\n}\n\ntype CreateImageElementParams = {\n url: string,\n fsid: string,\n fsName: string,\n fsElement: Element\n}\n\ntype CreateAudioElementParams = {\n url: string,\n fsid: string,\n fsName: string\n}\n\ntype CreateVideoElementParams = {\n url: string,\n fsid: string,\n fileType: string,\n fsName: string,\n fsElement: Element\n}\n\ntype CreateDownloadElementParams = {\n url: string,\n fsid: string,\n fsName: string\n}\n\nexport default class FileLoader {\n /**\n * When a file is decrypted and loaded into a temp url, we'll place the temp url in here so that subsequent decrypt attempts\n * dont require further work. Mapped values have the shape of { url, fileType, fsName }\n */\n private uuidToFileTempUrlAndTypeMapping: UuidTypeMapping = {}\n\n // The UUIDs of files currently loading, so that we don't start a new load for currently loading file.\n private currentlyLoadingIds: string[] = []\n\n // The UUID to current status element mapping\n private statusElementMapping: ElementStatusMapping = {}\n private readonly fileTypeToElementType: FileTypes = {\n 'image/png': 'img',\n 'image/jpg': 'img',\n 'image/jpeg': 'img',\n 'image/gif': 'img',\n 'image/tiff': 'img',\n 'image/bmp': 'img',\n 'video/mp4': 'video',\n 'audio/mpeg': 'audio',\n 'audio/mp3': 'audio'\n }\n\n constructor(private options: FileLoaderOptions) { }\n\n public fileTypeForElementType(type: string): string {\n return this.fileTypeToElementType[type.toLowerCase()]\n }\n\n /**\n * Scans the document for elements <fileSafe>. If found, begins loading file.\n */\n public loadFileSafeElements(): void {\n const elements = this.options.getElementsBySelector('*[fsplaceholder]')\n for (const element of elements) {\n this.loadFileSafeElement(element)\n }\n }\n\n public async loadFileSafeElement(fsElement: Element): Promise<boolean> {\n const { fileSafeInstance } = this.options\n\n const fsid = fsElement.getAttribute('fsid')\n const fsName = fsElement.getAttribute('fsName') ?? ''\n const fileNameDisplay = (!fsName || fsName == 'undefined') ? 'file' : fsName\n\n if (!fsid) {\n return false\n }\n\n const existingMapping = this.uuidToFileTempUrlAndTypeMapping[fsid]\n\n if (existingMapping) {\n this.insertMediaElement({\n fsid,\n fsElement,\n url: existingMapping.url,\n fileType: existingMapping.fileType,\n fsName: existingMapping.fsName\n })\n return false\n }\n\n if (this.currentlyLoadingIds.includes(fsid)) {\n return false\n }\n\n const descriptor = fileSafeInstance.findFileDescriptor(fsid)\n\n if (!descriptor) {\n this.setStatus({\n fsElement,\n fsid,\n status: `Unable to find ${fileNameDisplay} ${fsid}.`,\n removable: true\n })\n return false\n }\n\n const selectorSyntax = `[fsid=\"${descriptor.uuid}\"][fscollapsable]`\n const existingElements = document.querySelectorAll(\n `img${selectorSyntax}, figure${selectorSyntax}, video${selectorSyntax}, audio${selectorSyntax}`\n )\n\n if (existingElements.length > 0) {\n return false\n }\n\n const cleanup = () => this.currentlyLoadingIds.splice(this.currentlyLoadingIds.indexOf(fsid), 1)\n\n this.currentlyLoadingIds.push(fsid)\n this.setStatus({\n fsElement,\n fsid,\n status: `Downloading ${fileNameDisplay}...`\n })\n\n // Allow UI to update before beginning download...\n await sleep(0.05)\n\n const fileItem = await fileSafeInstance.downloadFileFromDescriptor(descriptor).catch(() => {\n this.setStatus({\n fsElement,\n fsid,\n status: `Unable to download ${fileNameDisplay} ${fsid}.`\n })\n return\n })\n\n if (!fileItem) {\n return false\n }\n\n this.setStatus({\n fsElement,\n fsid,\n status: `Decrypting ${fileNameDisplay}...`\n })\n\n // Allow UI to update before beginning decryption\n await sleep(0.05)\n\n const data = await fileSafeInstance.decryptFile({ fileDescriptor: descriptor, fileItem }).catch(() => {\n this.setStatus({\n fsElement,\n fsid,\n status: `Unable to decrypt ${fileNameDisplay} ${fsid}.`\n })\n return\n })\n\n if (!data) {\n return false\n }\n\n // Remove loading text\n this.setStatus({\n fsElement,\n fsid\n })\n\n // Allow UI to update before adding image\n await sleep(0.05)\n\n // Generate temporary url, must be released later\n const fileType = descriptor.content.fileType\n const tempUrl = fileSafeInstance.createTemporaryFileUrl({\n base64Data: data.decryptedData,\n dataType: fileType\n })\n\n this.insertMediaElement({\n fsid, fileType,\n fsName,\n fsElement,\n url: tempUrl\n })\n\n cleanup()\n\n this.uuidToFileTempUrlAndTypeMapping[fsid] = {\n fileType,\n url: tempUrl,\n fsName,\n }\n\n return true\n }\n\n private insertMediaElement({ url, fsid, fsName, fileType, fsElement }: InsertMediaElementParams) {\n const elementType = this.fileTypeForElementType(fileType)\n\n let mediaElement: Element\n \n switch (elementType) {\n case 'img':\n mediaElement = this.createImageElement({ url, fsid, fsName, fsElement })\n break\n case 'video':\n mediaElement = this.createVideoElement({ url, fsid, fileType, fsName, fsElement })\n break\n case 'audio':\n mediaElement = this.createAudioElement({ url, fsid, fsName })\n break\n default:\n mediaElement = this.createDownloadElement({ url, fsid, fsName })\n break\n }\n\n this.insertElementNearElement(mediaElement, fsElement)\n\n // Remove fsElement now that image is loaded.\n fsElement.remove()\n }\n\n private wrapElementInTag({ element, tagName, fsid, fsName }: WrapElementInTagParams) {\n const tag = document.createElement(tagName)\n tag.setAttribute('fsid', fsid)\n tag.setAttribute('fsName', fsName)\n tag.setAttribute('fscollapsable', 'true')\n tag.setAttribute('contenteditable', 'true')\n tag.append(element)\n return tag\n }\n\n private createImageElement({ url, fsid, fsName, fsElement }: CreateImageElementParams): HTMLImageElement {\n const image = document.createElement('img')\n image.setAttribute('src', url)\n image.setAttribute('srcset', `${url} 2x`)\n\n image.setAttribute('fsid', fsid)\n image.setAttribute('fsName', fsName)\n image.setAttribute('fscollapsable', 'true')\n\n const elementWidth = fsElement.getAttribute('width')\n if (elementWidth) {\n image.setAttribute('width', elementWidth)\n }\n\n const elementHeight = fsElement.getAttribute('height')\n if (elementHeight) {\n image.setAttribute('height', elementHeight)\n }\n\n return image\n }\n\n private createVideoElement({ url, fsid, fileType, fsName, fsElement }: CreateVideoElementParams) {\n const video = document.createElement('video')\n video.setAttribute('controls', 'true')\n video.setAttribute('fsid', fsid)\n video.setAttribute('fsName', fsName)\n video.setAttribute('fscollapsable', 'true')\n\n const elementWidth = fsElement.getAttribute('width')\n if (elementWidth) {\n video.setAttribute('width', elementWidth)\n }\n\n const elementHeight = fsElement.getAttribute('height')\n if (elementHeight) {\n video.setAttribute('height', elementHeight)\n }\n\n const source = document.createElement('source')\n source.setAttribute('src', url)\n source.setAttribute('type', fileType)\n video.append(source)\n\n /**\n * Redactor will automatically insert a video element in a p tag,\n * so we'll do it ourselves so that we can control its attributes.\n */\n return this.wrapElementInTag({\n fsid,\n fsName,\n element: video,\n tagName: 'p'\n })\n }\n\n private createDownloadElement({ url, fsid, fsName }: CreateDownloadElementParams) {\n const link = document.createElement('a')\n link.setAttribute('fsid', fsid)\n link.setAttribute('fsName', fsName)\n link.setAttribute('ghost', 'true')\n link.setAttribute('fscollapsable', 'true')\n link.setAttribute('href', url)\n link.textContent = `${fsName}`\n return link\n }\n\n private createAudioElement({ url, fsid, fsName }: CreateAudioElementParams) {\n const audio = document.createElement('audio')\n audio.setAttribute('src', url)\n audio.setAttribute('controls', 'true')\n audio.setAttribute('fsid', fsid)\n audio.setAttribute('fsName', fsName)\n audio.setAttribute('fscollapsable', 'true')\n\n return this.wrapElementInTag({\n fsid,\n fsName,\n element: audio,\n tagName: 'p'\n })\n }\n\n private setStatus({ status, fsElement, fsid, removable = false }: SetStatusParams): Element | void {\n if (fsid) {\n const existingStatusElement = this.statusElementMapping[fsid]\n\n if (existingStatusElement) {\n existingStatusElement.remove()\n delete this.statusElementMapping[fsid]\n }\n }\n\n if (status) {\n let element = document.createElement('label')\n\n element.setAttribute('id', fsid)\n element.setAttribute('ghost', 'true')\n element.setAttribute('contenteditable', 'false')\n element.style.fontWeight = 'bold'\n element.textContent = status\n\n if (removable) {\n element.style.userSelect = 'all'\n }\n\n element = this.insertElementNearElement(element, fsElement) as HTMLLabelElement\n\n if (fsid) {\n this.statusElementMapping[fsid] = element\n }\n\n return element\n }\n }\n\n public insertStatusAtCursor(status: string): string {\n const identifier = Math.random().toString(36).substring(7)\n this.setStatus({\n status,\n fsid: identifier,\n fsElement: null\n })\n return identifier\n }\n\n public removeCursorStatus(identifier: string): void {\n /**\n * We want to search for the element based on identifier, because the actual element\n * inserted may have been done so as raw HTML, and not via an element pointer.\n */\n const elements = this.options.getElementsBySelector(`#${identifier}`)\n\n if (elements.length > 0) {\n elements[0].remove()\n }\n }\n\n public insertElementNearElement(domNodeToInsert: Element, inVicinityOfElement: Element | null): Element | undefined {\n const processedElement = this.options.preprocessElement(domNodeToInsert)\n let insertionType = 'child'\n\n // <figure> tags cannot be nested inside p tags.\n if (inVicinityOfElement && processedElement.tagName.toLowerCase() == 'figure') {\n // If we have a p ancestor, we need to get out.\n const paragraphAncestor = inVicinityOfElement.closest('p')\n\n if (paragraphAncestor) {\n /**\n * p tags cannot be nested in other p tags, so if we found one, we know its parent isn't and doesn't belong to a p tag.\n * Add the new one right after paragraphAncestor.\n */\n inVicinityOfElement = paragraphAncestor\n insertionType = 'afterend'\n }\n }\n\n this.options.insertElement(processedElement, inVicinityOfElement, insertionType)\n return processedElement as Element\n }\n}\n","type Pattern = {\n regex: RegExp\n callback: (matchedText: string) => string\n}\n\nexport type TextExpanderOptions = {\n patterns: Pattern[]\n beforeExpand?: () => void\n afterExpand?: () => void\n getCurrentLineText: () => string\n getPreviousLineText: () => string\n replaceText: ({ regex: RegExp, replacement: string, searchPreviousLine: boolean }) => string\n}\n\ntype OnKeyUpParams = {\n isEnter?: boolean\n isPaste?: boolean\n isSpace?: boolean\n}\n\ntype SearchPatternsParams = {\n searchPreviousLine: boolean\n}\n\nexport default class TextExpander {\n constructor (private options: TextExpanderOptions) { }\n\n public onKeyUp ({ isEnter, isPaste, isSpace }: OnKeyUpParams): void {\n if (isEnter || isPaste || isSpace) {\n this.searchPatterns({\n searchPreviousLine: isEnter ?? false\n })\n }\n }\n\n public searchPatterns (params: SearchPatternsParams = { searchPreviousLine: false }): void {\n const text = (params.searchPreviousLine) ?\n this.options.getPreviousLineText() : this.options.getCurrentLineText()\n\n for (const pattern of this.options.patterns) {\n const match = pattern.regex.exec(text)\n if (!match) continue\n\n const matchedText = match[0]\n\n if (matchedText) {\n const replaceWith = pattern.callback(matchedText)\n this.replaceSelection(pattern.regex, replaceWith, params.searchPreviousLine)\n }\n }\n }\n\n private replaceSelection (regex: RegExp, replacement: string, searchPreviousLine: boolean): void {\n if (this.options?.beforeExpand) {\n this.options.beforeExpand()\n }\n\n this.options.replaceText({\n regex,\n replacement,\n searchPreviousLine\n })\n\n if (this.options?.afterExpand) {\n this.options?.afterExpand()\n }\n }\n}\n","export type FileSafeFileMetadata = {\n [key: string]: any;\n}\n\n/**\n * Remove matching <p> tags if present.\n * Also capable of matching adjacent [fsSyntax][fsSyntax]\n */\nexport const FileSafeSyntaxPattern = /(<p>)?\\[FileSafe[^\\]]*\\](<\\/p>)?/g\n\n/**\n * Given an HTML string that includes substrings matching `FileSafeSyntaxPattern`,\n * replace occurences with ghost div element <fileSafe uuid='123'>\n */\nexport const expandedFileSafeSyntax = (html: string): string => {\n return html.replace(FileSafeSyntaxPattern, (match) => {\n return fileSafeSyntaxToHtmlElement(match)\n })\n}\n\nexport const removeFileSafeSyntaxFromHtml = (html: string): string => {\n return html.replace(FileSafeSyntaxPattern, (_match) => {\n return ''\n })\n}\n\nexport const insertionSyntaxForFileDescriptor = (descriptor: FileSafeFileMetadata): string => {\n return `[FileSafe:${descriptor.uuid}:${descriptor.content.fileName}]`\n}\n\nexport const fileSafeSyntaxToHtmlElement = (syntax: string): string => {\n // Remove paragraph tags\n syntax = syntax.replace('<p>', '')\n syntax = syntax.replace('</p>', '')\n\n // Remove brackets\n syntax = syntax.replace('[', '').replace(']', '')\n\n const components = syntax.split(':')\n const uuid = components[1]\n const name = components[2]\n const size = components[3]\n\n let sizeString = ''\n\n if (size) {\n const dimensions = size.split('x')\n sizeString = `width=${dimensions[0]} height=${dimensions[1]}`\n }\n\n /**\n * We use a p tag here because if we try something custom, like `fileSafe` tag, the editor will automatically\n * wrap it in a p tag, causing littered p tags remaining in the plaintext representation.\n */\n return `<p fsplaceholder=true style='display: none;' fscollapsable=true ghost=true fsid='${uuid}' fsname='${name}' ${sizeString}></p>`\n}\n\n/**\n * Given a rendered HTML string, replace all <fileSafe> items with [FileSafe:UUID] plaintext items.\n * Also, for any elements that have the 'ghost' attribute, remove it from the resulting string.\n */\nexport const collapseFileSafeSyntax = (html: string): string => {\n const domCopy = new DOMParser().parseFromString(html, 'text/html')\n\n // Elements that have fscollapsable means they should be collapsed to plain syntax.\n const mediaElements = domCopy.querySelectorAll('*[fscollapsable]')\n\n for (const file of mediaElements) {\n const uuid = file.getAttribute('fsid')\n const name = file.getAttribute('fsname')\n const width = file.getAttribute('width')\n const height = file.getAttribute('height')\n\n const components = ['FileSafe', uuid, name]\n\n if (width && height) {\n const size = `${width}x${height}`\n components.push(size)\n }\n\n const fsSyntax = `<p>[${components.join(':')}]</p>`\n file.insertAdjacentHTML('afterend', fsSyntax)\n file.remove()\n }\n\n // Remove any remaining ghost elements.\n const ghosts = domCopy.querySelectorAll('*[ghost]')\n ghosts.forEach((ghost) => ghost.remove())\n\n return domCopy.body.innerHTML\n}\n","import ComponentRelay from '@standardnotes/component-relay'\nimport FileLoader, { FileLoaderOptions } from './fileLoader'\nimport TextExpander, { TextExpanderOptions } from './textExpander'\nimport {\n truncateString,\n htmlToText\n} from './utils'\nimport {\n FileSafeSyntaxPattern,\n collapseFileSafeSyntax,\n expandedFileSafeSyntax,\n insertionSyntaxForFileDescriptor,\n removeFileSafeSyntaxFromHtml,\n FileSafeFileMetadata\n} from './fileSafeHtml'\nimport type { ItemMessagePayload } from '@standardnotes/snjs'\n\n/**\n * The delegate is responsible for responding to events and functions that the EditorKit requires.\n * For example, when EditorKit wants to insert a new HTML element, it won't neccessarily know how,\n * because it's not designed for any particular editor. Instead, it will tell the delegate to\n * insert the element. The consumer of this API, the actual editor, would configure this delegate\n * with the appropriate callbacks.\n */\nexport interface EditorKitDelegate {\n insertRawText?: (text: string) => void\n setEditorRawText: (text: string) => void\n getCurrentLineText?: TextExpanderOptions['getCurrentLineText']\n getPreviousLineText?: TextExpanderOptions['getPreviousLineText']\n replaceText?: TextExpanderOptions['replaceText']\n getElementsBySelector?: FileLoaderOptions['getElementsBySelector']\n insertElement?: FileLoaderOptions['insertElement']\n preprocessElement?: FileLoaderOptions['preprocessElement']\n clearUndoHistory?: () => void\n generateCustomPreview?: (text: string) => { html?: string, plain: string }\n onNoteLockToggle?: (isLocked: boolean) => void\n onNoteValueChange?: (note: ItemMessagePayload) => Promise<void>\n onThemesChange?: () => void\n}\n\nexport type EditorKitMode = 'plaintext' | 'html' | 'markdown' | 'json';\n\ntype EditorKitOptions = {\n mode: EditorKitMode\n /**\n * Indicates if the editor should support FileSafe integration.\n */\n supportsFileSafe?: false\n /**\n * For Component Relay saving. Indicates if debouncer is enabled.\n */\n coallesedSaving?: false\n /**\n * For Component Relay saving. Indicates what the debouncer ms delay should be set to.\n */\n coallesedSavingDelay?: 250\n}\n\ntype OnEditorKeyUpParams = {\n isSpace: boolean\n isEnter: boolean\n}\n\ntype FileUuid = string\n\nexport default class EditorKitBase {\n private fileIdsPendingAssociation: FileUuid[] = []\n private componentRelay?: ComponentRelay\n private fileLoader?: FileLoader\n private textExpander?: TextExpander\n\n private fileSafeLoading?: Promise<void>\n private fileSafeClass?: any\n private fileSafeInstance?: any\n\n private note?: ItemMessagePayload\n private ignoreNextTextChange?: boolean\n private needsFileSafeElementLoad?: boolean\n private previousText?: string\n\n constructor(private delegate: EditorKitDelegate, private options: EditorKitOptions) {\n this.connectToBridge()\n\n if (this.options.supportsFileSafe) {\n this.fileSafeLoading = this.importFileSafe()\n }\n }\n\n private connectToBridge() {\n const {\n coallesedSaving,\n coallesedSavingDelay,\n mode,\n supportsFileSafe\n } = this.options\n\n this.componentRelay = new ComponentRelay({\n targetWindow: window,\n options: {\n coallesedSaving,\n /**\n * The editor does some debouncing for us, so we'll lower the\n * default debounce value from 250 to 150\n */\n coallesedSavingDelay\n },\n onReady: () => {\n const { platform } = this.componentRelay!\n\n if (platform) {\n document.documentElement.classList.add(platform)\n }\n },\n onThemesChange: this.delegate.onThemesChange\n })\n\n this.componentRelay.streamContextItem(async (note: ItemMessagePayload) => {\n /**\n * TODO: If note has changed, release previous temp object URLs.\n */\n let isNewNoteLoad = true\n if (this.note && this.note.uuid == note.uuid) {\n isNewNoteLoad = false\n }\n\n const previousNote = this.note\n\n if (supportsFileSafe) {\n const itemClass = this.fileSafeClass.getSFItemClass()\n this.note = new itemClass(note)\n this.fileSafeInstance.setCurrentNote(this.note)\n } else {\n this.note = note\n }\n\n // Only update UI on non-metadata updates.\n if (note.isMetadataUpdate) {\n return\n }\n\n let text = note.content.text\n\n /**\n * If we're an HTML editor, and we're dealing with a new note,\n * check to see if it's in html format.\n * If it's not, we don't want to convert it to HTML until the user makes an explicit change\n * so we'll ignore the next change event in this case.\n */\n if (mode === 'html' && isNewNoteLoad) {\n const isHtml = /<[a-z][\\s\\S]*>/i.test(text)\n if (!isHtml) {\n this.ignoreNextTextChange = true\n }\n }\n\n /**\n * Set before expanding. \n * We want this value to always be the collapsed value\n */\n this.previousText = text\n\n if (supportsFileSafe) {\n /**\n * We want to expand any filesafe syntax in the text,\n * but only after the text has been inserted.\n * (Will be checked on editor change callback)\n */\n this.needsFileSafeElementLoad = true\n text = expandedFileSafeSyntax(text)\n }\n\n this.delegate.onNoteValueChange && await this.delegate.onNoteValueChange(note)\n this.delegate.setEditorRawText(text)\n\n if (this.delegate.onNoteLockToggle) {\n const previousLockState = this.componentRelay!.getItemAppDataValue(previousNote, 'locked') ?? false\n const newLockState = this.componentRelay!.getItemAppDataValue(this.note, 'locked') ?? false\n\n if (previousLockState !== newLockState) {\n this.delegate.onNoteLockToggle(newLockState)\n }\n }\n\n if (isNewNoteLoad) {\n this.delegate.clearUndoHistory?.()\n }\n })\n }\n\n private async importFileSafe() {\n return import('filesafe-js').then((result) => {\n this.fileSafeClass = result.default\n this.configureFileSafe()\n return this.fileSafeInstance\n })\n }\n\n private configureFileSafe() {\n const requiredDelegateFunctions = [\n 'getCurrentLineText',\n 'getPreviousLineText',\n 'replaceText',\n 'getElementsBySelector',\n 'insertElement',\n 'preprocessElement',\n 'insertRawText'\n ]\n\n for (const functionName of requiredDelegateFunctions) {\n if (!this.delegate[functionName]) {\n throw Error(`Missing ${functionName} delegate function.`)\n }\n }\n\n this.fileSafeInstance = new this.fileSafeClass({\n componentManager: this.componentRelay\n })\n\n this.fileSafeInstance.addDataChangeObserver(() => {\n // Reload UI by querying FileSafe for changes...\n const allFileDescriptors = this.fileSafeInstance.getAllFileDescriptors()\n\n if (this.note && this.fileIdsPendingAssociation.length > 0) {\n let hasMatch = false\n\n for (const uuid of this.fileIdsPendingAssociation.slice()) {\n const descriptor = allFileDescriptors.find((candidate: FileSafeFileMetadata) => candidate.uuid == uuid)\n\n if (!descriptor) {\n continue\n }\n\n hasMatch = true\n this.fileIdsPendingAssociation.splice(this.fileIdsPendingAssociation.indexOf(uuid), 1)\n\n const syntax = insertionSyntaxForFileDescriptor(descriptor)\n this.delegate.insertRawText!(syntax)\n }\n\n if (hasMatch) {\n this.textExpander!.searchPatterns()\n }\n }\n\n if (allFileDescriptors.length > 0) {\n this.fileLoader!.loadFileSafeElements()\n }\n })\n\n this.fileSafeInstance.addNewFileDescriptorHandler((fileDescriptor: FileSafeFileMetadata) => {\n /**\n * Called when a new file is uploaded. We'll wait until the bridge acknowledges\n * receipt of this item, and then it will be added to the editor.\n */\n this.fileIdsPendingAssociation.push(fileDescriptor.uuid)\n })\n\n this.fileLoader = new FileLoader({\n fileSafeInstance: this.fileSafeInstance,\n getElementsBySelector: this.delegate.getElementsBySelector!,\n insertElement: this.delegate.insertElement!,\n preprocessElement: this.delegate.preprocessElement!\n })\n\n this.textExpander = new TextExpander({\n afterExpand: () => this.fileLoader!.loadFileSafeElements(),\n getCurrentLineText: this.delegate.getCurrentLineText!,\n getPreviousLineText: this.delegate.getPreviousLineText!,\n replaceText: this.delegate.replaceText!,\n patterns: [{\n regex: FileSafeSyntaxPattern,\n callback: (matchedText) => {\n return expandedFileSafeSyntax(matchedText)\n }\n }]\n })\n }\n\n /**\n * Gets the FileSafe class.\n * @returns FileSafe class.\n */\n public async getFileSafe(): Promise<void> {\n if (!this.fileSafeInstance && this.fileSafeLoading) {\n return this.fileSafeLoading\n }\n return this.importFileSafe()\n }\n\n /**\n * Called by consumer when the editor has a keyup event.\n */\n public onEditorKeyUp({ isSpace, isEnter }: OnEditorKeyUpParams): void {\n this.textExpander!.onKeyUp({\n isSpace,\n isEnter\n })\n }\n\n /**\n * Called by consumer when user pastes into editor.\n */\n public onEditorPaste(): void {\n this.textExpander!.onKeyUp({\n isPaste: true\n })\n }\n\n /**\n * Called by consumer when the editor has a change/input event.\n */\n public onEditorValueChanged(text: string): void {\n const { mode, supportsFileSafe } = this.options\n\n if (this.needsFileSafeElementLoad) {\n this.needsFileSafeElementLoad = false\n this.fileLoader!.loadFileSafeElements()\n }\n\n if (this.ignoreNextTextChange) {\n this.ignoreNextTextChange = false\n return\n }\n\n if (supportsFileSafe) {\n text = collapseFileSafeSyntax(text)\n\n /**\n * Change events may be triggered several times when expanding filesafe syntax.\n * Ultimately, while the visual layer is changing a lot, the underlying text layer,\n * after being collapsed, will not change. So we'll compare the previous html to new collapsed html before continuing.\n */\n const sameText = this.previousText == text\n if (sameText) {\n return\n }\n }\n\n this.previousText = text\n\n if (!this.note) {\n return\n }\n\n const note = this.note\n\n this.componentRelay!.saveItemWithPresave(note, () => {\n note.content.text = text\n\n if (this.delegate.generateCustomPreview) {\n const result = this.delegate.generateCustomPreview(text)\n\n note.content.preview_plain = result.plain ?? ' '\n note.content.preview_html = result.html\n } else {\n if (mode === 'html') {\n let preview = removeFileSafeSyntaxFromHtml(text)\n preview = truncateString(htmlToText(preview))\n /**\n * If the preview has no length due to either being an empty note, or having just 1 FileSafe file\n * that is stripped above, then we don't want to set to empty string, otherwise SN app will default to content\n * for preview. We'll set a whitespace preview instead so SN doesn't go based on innate content.\n */\n note.content.preview_plain = preview.length > 0 ? preview : ' '\n } else {\n note.content.preview_plain = text\n }\n\n // We're only using plain in this block.\n note.content.preview_html = null\n }\n })\n }\n\n /**\n * Whether or not FileSafe is configured with integrations and keys, and can handle file uploads.\n * If not, user should open files modal and configure FileSafe.\n */\n public canUploadFiles(): boolean {\n const credentials = this.fileSafeInstance.getAllCredentials()\n const integrations = this.fileSafeInstance.getAllIntegrations()\n return credentials.length > 0 && integrations.length > 0\n }\n\n /**\n * Encrypts and Uploads a Javascript file object to FileSafe.\n * @param file The file to upload.\n * @returns A file descriptor if successful.\n */\n public async uploadJSFileObject(file: Blob): Promise<void> {\n const cursorIdentifier = this.fileLoader!.insertStatusAtCursor('Processing file...')\n return this.fileSafeInstance.encryptAndUploadJavaScriptFileObject(file).then(() => {\n this.fileLoader!.removeCursorStatus(cursorIdentifier)\n })\n }\n\n /**\n * saveItemWithPresave from the component relay.\n */\n public saveItemWithPresave(note: ItemMessagePayload, presave?: () => void): void {\n this.componentRelay!.saveItemWithPresave(note, presave)\n }\n\n /**\n * Gets the current platform where the component is running.\n */\n public get platform(): string | undefined {\n return this.componentRelay!.platform\n }\n\n /**\n * Gets the current environment where the component is running.\n */\n public get environment(): string | undefined {\n return this.componentRelay!.environment\n }\n}\n","import { memo } from 'react';\nimport PropTypes, { InferProps } from 'prop-types';\n\nexport const enum SplitViewDirection {\n Horizontal = 'horizontal',\n Vertical = 'vertical',\n}\n\nconst enum SplitViewType {\n Row = 'row',\n Column = 'column',\n}\n\nconst propTypes = {\n split: PropTypes.bool.isRequired,\n direction: PropTypes.oneOf([\n SplitViewDirection.Horizontal,\n SplitViewDirection.Vertical,\n ]).isRequired,\n children: PropTypes.arrayOf(PropTypes.element).isRequired,\n};\n\ntype SplitViewProps = InferProps<typeof propTypes>;\n\nconst SplitView: React.FC<SplitViewProps> = ({\n children,\n split,\n direction,\n}) => {\n const childClassName =\n direction === SplitViewDirection.Horizontal\n ? SplitViewType.Column\n : SplitViewType.Row;\n\n return (\n <div className={`container ${direction}`}>\n <div className={`${childClassName} ${split ? 'half' : 'full'}`}>\n {children[0]}\n </div>\n {split && (\n <>\n <div className=\"separator\" />\n <div className={`${childClassName} half`}>{children[1]}</div>\n </>\n )}\n </div>\n );\n};\n\nSplitView.propTypes = propTypes;\n\nexport default memo(SplitView);\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import {\n WrapInBulletList,\n WrapInOrderedList,\n LiftListItem,\n SinkListItem,\n InsertImage,\n WrapInBlockquote,\n InsertHr,\n} from '@milkdown/preset-commonmark';\nimport { TurnIntoTaskList, InsertTable } from '@milkdown/preset-gfm';\nimport {\n EditorView,\n liftListItem,\n sinkListItem,\n wrapIn,\n} from '@milkdown/prose';\nimport { ButtonConfig } from './button';\nimport { SelectConfig } from './select';\n\nexport type MenuCommonConfig = {\n disabled?: (view: EditorView) => boolean;\n};\n\nexport type MenuConfigItem = SelectConfig | ButtonConfig;\nexport type MenuConfig = Array<Array<MenuConfigItem>>;\n\nexport const menuConfig: any = [\n [\n {\n type: 'button',\n icon: 'bulletList',\n key: WrapInBulletList,\n disabled: (view: EditorView) => {\n const { state } = view;\n return !wrapIn(state.schema.nodes.bullet_list)(state);\n },\n },\n {\n type: 'button',\n icon: 'orderedList',\n key: WrapInOrderedList,\n disabled: (view: EditorView) => {\n const { state } = view;\n return !wrapIn(state.schema.nodes.ordered_list)(state);\n },\n },\n {\n type: 'button',\n icon: 'taskList',\n key: TurnIntoTaskList,\n disabled: (view: EditorView) => {\n const { state } = view;\n return !wrapIn(state.schema.nodes.task_list_item)(state);\n },\n },\n {\n type: 'button',\n icon: 'liftList',\n key: LiftListItem,\n disabled: (view: EditorView) => {\n const { state } = view;\n return !liftListItem(state.schema.nodes.list_item)(state);\n },\n },\n {\n type: 'button',\n icon: 'sinkList',\n key: SinkListItem,\n disabled: (view: EditorView) => {\n const { state } = view;\n return !sinkListItem(state.schema.nodes.list_item)(state);\n },\n },\n ],\n [\n {\n type: 'button',\n icon: 'image',\n key: InsertImage,\n },\n {\n type: 'button',\n icon: 'table',\n key: InsertTable,\n },\n ],\n [\n {\n type: 'button',\n icon: 'quote',\n key: WrapInBlockquote,\n },\n {\n type: 'button',\n icon: 'divider',\n key: InsertHr,\n },\n ],\n];\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { Ctx } from '@milkdown/core';\nimport { EditorView } from '@milkdown/prose';\nimport { Utils } from '@milkdown/utils';\n\nimport { button, ButtonConfig } from './button';\nimport { MenuConfig, MenuConfigItem } from './config';\nimport { divider, DividerConfig } from './divider';\nimport { select, SelectConfig } from './select';\nimport { MenuBar } from './menuBar';\n\ntype InnerConfig = (MenuConfigItem | DividerConfig) & { $: HTMLElement };\n\nexport type ManagerOptions = {\n enabled: boolean;\n};\n\nexport class Manager {\n private config: InnerConfig[];\n\n constructor(\n originalConfig: MenuConfig,\n private utils: Utils,\n private ctx: Ctx,\n view: EditorView,\n private options: ManagerOptions\n ) {\n this.config = originalConfig\n .map((xs) =>\n xs.map((x) => ({\n ...x,\n $: this.$create(x, view),\n }))\n )\n .map((xs, i): Array<InnerConfig> => {\n if (i === originalConfig.length - 1) {\n return xs;\n }\n const dividerConfig: DividerConfig = {\n type: 'divider',\n group: xs.map((x) => x.$),\n };\n return [\n ...xs,\n {\n ...dividerConfig,\n $: this.$create(dividerConfig, view),\n },\n ];\n })\n .flat();\n\n const menu = MenuBar(utils, view);\n this.config.forEach((x) => menu.appendChild(x.$));\n }\n\n public update(view: EditorView) {\n const { enabled } = this.options;\n\n this.config.forEach((config) => {\n switch (config.type) {\n case 'button': {\n if (config.active) {\n const active = config.active(view);\n if (active) {\n config.$.classList.add('active');\n } else {\n config.$.classList.remove('active');\n }\n }\n\n if (config.alwaysVisible) {\n config.$.removeAttribute('disabled');\n return;\n }\n\n const disabled =\n !enabled || (config.disabled && config.disabled(view));\n if (disabled) {\n config.$.setAttribute('disabled', 'true');\n } else {\n config.$.removeAttribute('disabled');\n }\n break;\n }\n\n case 'select': {\n if (config.alwaysVisible) {\n config.$.removeAttribute('disabled');\n return;\n }\n\n const disabled =\n !enabled || (config.disabled && config.disabled(view));\n if (disabled) {\n config.$.classList.add('disabled');\n config.$.children[0].setAttribute('disabled', 'true');\n } else {\n config.$.classList.remove('disabled');\n config.$.children[0].removeAttribute('disabled');\n }\n break;\n }\n\n case 'divider': {\n const disabled = config.group.every(\n (x) =>\n x.getAttribute('disabled') || x.classList.contains('disabled')\n );\n if (disabled) {\n config.$.classList.add('disabled');\n } else {\n config.$.classList.remove('disabled');\n }\n break;\n }\n }\n });\n }\n\n private $create(\n item: ButtonConfig | DividerConfig | SelectConfig,\n view: EditorView\n ): HTMLElement {\n const { utils, ctx } = this;\n\n switch (item.type) {\n case 'button': {\n const $ = button(utils, item, ctx, view, this.options);\n return $;\n }\n case 'select': {\n const $ = select(utils, item, ctx, view, this.options);\n return $;\n }\n case 'divider': {\n const $ = divider(utils, item);\n return $;\n }\n default:\n throw new Error();\n }\n }\n}\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { css } from '@emotion/css';\nimport { EditorView } from '@milkdown/prose';\nimport { Utils } from '@milkdown/utils';\n\nexport const MenuBar = (utils: Utils, view: EditorView) => {\n const editorWrapperStyle = utils.getStyle((themeTool) => {\n return themeTool.mixin.scrollbar('y');\n });\n\n const menuStyle = utils.getStyle((themeTool) => {\n const border = themeTool.mixin.border();\n const scrollbar = themeTool.mixin.scrollbar('x');\n const style = css`\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n overflow-x: auto;\n ${border};\n ${scrollbar};\n background: ${themeTool.palette('surface')};\n\n -webkit-overflow-scrolling: auto;\n\n .disabled {\n display: none;\n }\n `;\n return style;\n });\n\n const menuWrapper = document.createElement('div');\n const menu = document.createElement('div');\n\n menu.classList.add('milkdown-menu');\n menuWrapper.appendChild(menu);\n menuWrapper.classList.add('milkdown-menu-wrapper');\n\n if (menuStyle) {\n menuStyle.split(' ').forEach((x) => menu.classList.add(x));\n }\n\n const editorDom = view.dom;\n if (editorWrapperStyle) {\n editorDom.classList.add(editorWrapperStyle);\n }\n\n const milkdown = editorDom.parentElement;\n if (!milkdown) {\n throw new Error('No parent node found');\n }\n\n const root = milkdown.parentElement;\n if (!root) {\n throw new Error('No root node found');\n }\n root.replaceChild(menuWrapper, milkdown);\n menuWrapper.appendChild(milkdown);\n\n return menu;\n};\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { css } from '@emotion/css';\nimport { CmdKey, commandsCtx, Ctx } from '@milkdown/core';\nimport type { Icon } from '@milkdown/design-system';\nimport type { EditorView } from '@milkdown/prose';\nimport type { Utils } from '@milkdown/utils';\n\nimport type { MenuCommonConfig } from './config';\nimport { ManagerOptions } from './manager';\n\ntype RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<\n T,\n Exclude<keyof T, Keys>\n> &\n {\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;\n }[Keys];\n\ntype Config<T = any> = {\n type: 'button';\n icon: Icon;\n key?: CmdKey<T>;\n callback?: () => void;\n options?: T;\n active?: (view?: EditorView) => boolean;\n alwaysVisible: boolean;\n} & MenuCommonConfig;\n\nexport type ButtonConfig = RequireAtLeastOne<Config, 'key' | 'callback'>;\n\nexport const button = (\n utils: Utils,\n config: Config,\n ctx: Ctx,\n view: EditorView,\n options: ManagerOptions\n) => {\n const buttonStyle = utils.getStyle((themeTool) => {\n return css`\n border: 0;\n box-sizing: unset;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0.25rem;\n margin: 0.5rem;\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${themeTool.palette('surface')};\n color: ${themeTool.palette('solid')};\n transition: all 0.4s ease-in-out;\n cursor: pointer;\n &.active,\n &:hover {\n background-color: ${themeTool.palette('secondary', 0.12)};\n color: ${themeTool.palette('primary')};\n }\n &:disabled {\n display: none;\n }\n `;\n });\n\n const $button = document.createElement('button');\n $button.setAttribute('type', 'button');\n $button.classList.add('button');\n\n if (buttonStyle) {\n $button.classList.add(buttonStyle);\n }\n\n const $label = utils.themeTool.slots.label(config.icon);\n if ($label) {\n $button.setAttribute('aria-label', $label);\n $button.setAttribute('title', $label);\n }\n\n const $icon = utils.themeTool.slots.icon(config.icon);\n $button.appendChild($icon);\n $button.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n config.callback && config.callback();\n config.key && ctx.get(commandsCtx).call(config.key, config.options);\n });\n\n if (config.active) {\n const active = config.active();\n if (active) {\n $button.classList.add('active');\n } else {\n $button.classList.remove('active');\n }\n }\n\n if (config.alwaysVisible) {\n $button.removeAttribute('disabled');\n return $button;\n }\n\n const disabled =\n !options.enabled || (config.disabled && config.disabled(view));\n if (disabled) {\n $button.setAttribute('disabled', 'true');\n } else {\n $button.removeAttribute('disabled');\n }\n\n return $button;\n};\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { css } from '@emotion/css';\nimport { CmdKey, commandsCtx, Ctx } from '@milkdown/core';\nimport { EditorView } from '@milkdown/prose';\nimport { Utils } from '@milkdown/utils';\n\nimport type { MenuCommonConfig } from './config';\nimport { ManagerOptions } from './manager';\n\ntype SelectOptions = {\n id: string;\n text: string;\n};\n\nexport type SelectConfig<T = any> = {\n type: 'select';\n text: string;\n options: SelectOptions[];\n active?: (view: EditorView) => string;\n onSelect: (id: string, view: EditorView) => [key: CmdKey<T>, info?: T];\n alwaysVisible: boolean;\n} & MenuCommonConfig;\n\nexport const select = (\n utils: Utils,\n config: SelectConfig,\n ctx: Ctx,\n view: EditorView,\n options: ManagerOptions\n) => {\n const selectStyle = utils.getStyle((themeTool) => {\n return css`\n flex-shrink: 0;\n font-weight: 500;\n font-size: 0.875rem;\n ${themeTool.mixin.border('right')};\n ${themeTool.mixin.border('left')};\n .menu-selector {\n border: 0;\n box-sizing: unset;\n cursor: pointer;\n font: inherit;\n text-align: left;\n justify-content: space-between;\n align-items: center;\n color: ${themeTool.palette('neutral', 0.87)};\n display: flex;\n padding: 0.25rem 0.5rem;\n margin: 0.5rem;\n background: ${themeTool.palette('secondary', 0.12)};\n width: 10.375rem;\n &:disabled {\n display: none;\n }\n }\n .menu-selector-value {\n flex: 1;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n .menu-selector-list {\n width: calc(12.375rem);\n position: absolute;\n top: 3rem;\n background: ${themeTool.palette('surface')};\n ${themeTool.mixin.border()};\n ${themeTool.mixin.shadow()};\n border-bottom-left-radius: ${themeTool.size.radius};\n border-bottom-right-radius: ${themeTool.size.radius};\n z-index: 3;\n }\n .menu-selector-list-item {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: block;\n font: inherit;\n text-align: left;\n padding: 0.75rem 1rem;\n line-height: 1.5rem;\n width: 100%;\n color: ${themeTool.palette('neutral', 0.87)};\n &:hover {\n background: ${themeTool.palette('secondary', 0.12)};\n color: ${themeTool.palette('primary')};\n }\n }\n &.fold {\n border-color: transparent;\n .menu-selector {\n background: unset;\n }\n .menu-selector-list {\n display: none;\n }\n }\n `;\n });\n\n const selectorWrapper = document.createElement('div');\n selectorWrapper.classList.add('menu-selector-wrapper', 'fold');\n\n const selector = document.createElement('button');\n selector.setAttribute('type', 'button');\n selector.classList.add('menu-selector', 'fold');\n selector.addEventListener('mousedown', (e) => {\n e.preventDefault();\n e.stopPropagation();\n selectorWrapper.classList.toggle('fold');\n selectorList.style.left = `${\n selectorWrapper.getBoundingClientRect().left -\n view.dom.getBoundingClientRect().left\n }px`;\n });\n view.dom.addEventListener('click', () => {\n selectorWrapper.classList.add('fold');\n });\n\n const selectorValue = document.createElement('span');\n selectorValue.classList.add('menu-selector-value');\n selectorValue.textContent = config.text;\n\n const selectorButton = utils.themeTool.slots.icon('downArrow');\n selectorButton.setAttribute('aria-hidden', 'true');\n\n selectorWrapper.appendChild(selector);\n selector.appendChild(selectorValue);\n selector.appendChild(selectorButton);\n\n const selectorList = document.createElement('div');\n selectorList.classList.add('menu-selector-list');\n config.options.forEach((option) => {\n const selectorListItem = document.createElement('button');\n selectorListItem.setAttribute('type', 'button');\n selectorListItem.dataset.id = option.id;\n selectorListItem.textContent = option.text;\n selectorListItem.classList.add('menu-selector-list-item');\n selectorList.appendChild(selectorListItem);\n });\n\n selectorList.addEventListener('mousedown', (e) => {\n const { target } = e;\n if (target instanceof HTMLButtonElement && target.dataset.id) {\n ctx.get(commandsCtx).call(...config.onSelect(target.dataset.id, view));\n selectorWrapper.classList.add('fold');\n }\n });\n\n selectorWrapper.appendChild(selectorList);\n\n if (selectStyle) {\n selectorWrapper.classList.add(selectStyle);\n }\n\n if (config.alwaysVisible) {\n selector.removeAttribute('disabled');\n return selectorWrapper;\n }\n\n const disabled =\n !options.enabled || (config.disabled && config.disabled(view));\n if (disabled) {\n selector.classList.add('disabled');\n selector.children[0].setAttribute('disabled', 'true');\n } else {\n selector.classList.remove('disabled');\n selector.children[0].removeAttribute('disabled');\n }\n\n return selectorWrapper;\n};\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { css } from '@emotion/css';\nimport { Utils } from '@milkdown/utils';\n\nexport type DividerConfig = {\n type: 'divider';\n group: HTMLElement[];\n};\n\nexport const divider = (utils: Utils, config: DividerConfig) => {\n const dividerStyle = utils.getStyle((themeTool) => {\n return css`\n flex-shrink: 0;\n width: ${themeTool.size.lineWidth};\n background-color: ${themeTool.palette('line')};\n margin: 0.75rem 1rem;\n `;\n });\n\n const $divider = document.createElement('div');\n $divider.classList.add('divider');\n\n if (dividerStyle) {\n $divider.classList.add(dividerStyle);\n }\n\n const disabled = config.group.every(\n (x) => x.getAttribute('disabled') || x.classList.contains('disabled')\n );\n\n if (disabled) {\n $divider.classList.add('disabled');\n } else {\n $divider.classList.remove('disabled');\n }\n\n return $divider;\n};\n","/* Copyright 2021, Milkdown by Mirone. */\n\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { Plugin, PluginKey, selectParentNode } from '@milkdown/prose';\nimport { createPlugin } from '@milkdown/utils';\n\nimport { MenuConfig, menuConfig } from './config';\nimport { Manager } from './manager';\n\nexport type Options = {\n config: MenuConfig;\n enabled: boolean;\n};\n\nexport { menuConfig } from './config';\n\nexport const menu = createPlugin<string, Options>((utils, options) => {\n const config = options?.config ?? menuConfig;\n const enabled = options?.enabled ?? true;\n\n const SelectParent = createCmdKey();\n\n return {\n commands: () => [createCmd(SelectParent, () => selectParentNode)],\n prosePlugins: (_, ctx) => {\n const plugin = new Plugin({\n key: new PluginKey('milkdown-advanced-menu'),\n view: (editorView) => {\n const manager = new Manager(config, utils, ctx, editorView, {\n enabled,\n });\n\n return {\n update: (view) => manager.update(view),\n };\n },\n });\n\n return [plugin];\n },\n };\n});\n","import './styles.scss';\n\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { EditorRef, ReactEditor, useEditor } from '@milkdown/react';\nimport { editorViewCtx, parserCtx } from '@milkdown/core';\nimport { Slice } from '@milkdown/prose';\n\nimport { createEditor, CreateEditorParams } from './editor';\nimport { MenuConfig } from './plugins/advanced-menu/config';\n\nexport type MilkdownRef = {\n update: (markdown: string) => void;\n};\n\ntype MilkdownProps = {\n onChange: CreateEditorParams['onChange'];\n value?: CreateEditorParams['value'];\n menuConfig: MenuConfig;\n editable: CreateEditorParams['editable'];\n spellcheck: CreateEditorParams['spellcheck'];\n};\n\nconst Milkdown = (\n { onChange, value, menuConfig, editable, spellcheck }: MilkdownProps,\n ref: React.ForwardedRef<MilkdownRef>\n) => {\n const editorRef = useRef<EditorRef>(null);\n\n useImperativeHandle(ref, () => ({\n update: (markdown: string) => {\n if (!editable || !editorRef.current) {\n return;\n }\n\n const editor = editorRef.current.get();\n if (!editor) {\n return;\n }\n\n editor.action((ctx) => {\n const view = ctx.get(editorViewCtx);\n const parser = ctx.get(parserCtx);\n const document = parser(markdown);\n if (!document) {\n return;\n }\n\n const state = view.state;\n view.dispatch(\n state.tr\n .replace(\n 0,\n state.doc.content.size,\n new Slice(document.content, 0, 0)\n )\n .setMeta('addToHistory', false)\n );\n });\n },\n }));\n\n const editor = useEditor(\n (root) => {\n return createEditor({\n root,\n onChange,\n value,\n menuConfig,\n editable,\n spellcheck,\n });\n },\n [value, onChange, value, menuConfig, editable, spellcheck]\n );\n\n return (\n <div className=\"milkdown-container\">\n <ReactEditor ref={editorRef} editor={editor} />\n </div>\n );\n};\n\nexport default forwardRef<MilkdownRef, MilkdownProps>(Milkdown);\n","import {\n defaultValueCtx,\n Editor,\n rootCtx,\n editorViewOptionsCtx,\n} from '@milkdown/core';\nimport { clipboard } from '@milkdown/plugin-clipboard';\nimport { emoji } from '@milkdown/plugin-emoji';\nimport { listenerCtx, listener } from '@milkdown/plugin-listener';\nimport { math } from '@milkdown/plugin-math';\nimport { prism } from '@milkdown/plugin-prism';\nimport { slash } from '@milkdown/plugin-slash';\nimport { tooltip } from '@milkdown/plugin-tooltip';\nimport { gfm } from '@milkdown/preset-gfm';\nimport { nord } from '@milkdown/theme-nord';\nimport { indent } from '@milkdown/plugin-indent';\nimport { diagram } from '@milkdown/plugin-diagram';\nimport { cursor } from '@milkdown/plugin-cursor';\nimport { history } from '@milkdown/plugin-history';\n\nimport { menu } from './plugins/advanced-menu';\nimport { MenuConfig } from './plugins/advanced-menu/config';\n\nexport type CreateEditorParams = {\n root: HTMLElement | null;\n onChange: (text: string) => void;\n value?: string;\n menuConfig: MenuConfig;\n editable: boolean;\n spellcheck: boolean;\n};\n\nexport const createEditor = ({\n root,\n onChange,\n value,\n menuConfig,\n editable,\n spellcheck,\n}: CreateEditorParams) => {\n const editor = Editor.make()\n .config((ctx) => {\n ctx.set(rootCtx, root);\n\n ctx.get(listenerCtx).markdownUpdated((_, markdown) => {\n onChange(markdown);\n });\n\n ctx.set(editorViewOptionsCtx, {\n editable: () => editable,\n });\n\n root?.setAttribute('spellcheck', JSON.stringify(spellcheck));\n\n value && ctx.set(defaultValueCtx, value);\n })\n .use(nord)\n .use(clipboard)\n .use(emoji)\n .use(gfm)\n .use(listener)\n .use(math)\n .use(indent)\n .use(prism)\n .use(slash)\n .use(tooltip)\n .use(diagram)\n .use(cursor)\n .use(history)\n .use(\n menu({\n config: menuConfig,\n enabled: editable,\n })\n );\n\n return editor;\n};\n","import './styles.scss';\n\nimport { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport { basicSetup } from '@codemirror/basic-setup';\nimport { markdown } from '@codemirror/lang-markdown';\nimport CodeMirrorReact, {\n EditorView,\n ReactCodeMirrorRef,\n} from '@uiw/react-codemirror';\n\nexport type CodeMirrorRef = {\n update: (markdown: string) => void;\n};\n\ntype CodeMirrorProps = {\n onChange: (text: string) => void;\n value?: string;\n editable: boolean;\n spellcheck: boolean;\n};\n\nconst CodeMirror = (\n { onChange, value, editable, spellcheck }: CodeMirrorProps,\n ref: React.ForwardedRef<CodeMirrorRef>\n) => {\n const [hasFocus, setFocus] = useState(false);\n const editorRef = useRef<ReactCodeMirrorRef>(null);\n const extensions = [\n basicSetup,\n markdown(),\n EditorView.lineWrapping,\n EditorView.updateListener.of((update) => {\n if (update.focusChanged) {\n setFocus(update.view.hasFocus);\n }\n\n if (update.docChanged) {\n const text = update.state.doc.toString();\n onChange(text);\n }\n }),\n ];\n\n useImperativeHandle(ref, () => ({\n update: (markdown: string) => {\n /**\n * This will prevent the CodeMirror editor from being updated again when an update\n * is sent back from the Milkdown editor.\n */\n if (hasFocus) {\n return;\n }\n\n if (!editable || !editorRef.current) {\n return;\n }\n\n const view = editorRef.current.view;\n if (!view) {\n return;\n }\n\n const { state } = view;\n if (!state) {\n return;\n }\n\n const document = state.doc;\n if (!document) {\n return;\n }\n\n view.dispatch({\n changes: {\n from: 0,\n to: document.toString().length,\n insert: markdown,\n },\n });\n },\n }));\n\n return (\n <div className=\"codemirror-container\">\n <CodeMirrorReact\n ref={editorRef}\n extensions={extensions}\n value={value}\n editable={editable}\n spellCheck={spellcheck}\n indentWithTab\n />\n </div>\n );\n};\n\nexport default forwardRef<CodeMirrorRef, CodeMirrorProps>(CodeMirror);\n","import './stylesheets/main.scss';\n\nimport { Component, createRef, StrictMode } from 'react';\nimport ReactDOM from 'react-dom';\nimport reportWebVitals from './reportWebVitals';\n\nimport MilkdownEditor, { MilkdownRef } from './components/Milkdown';\nimport CodeMirrorEditor, { CodeMirrorRef } from './components/CodeMirror';\nimport SplitView, { SplitViewDirection } from './components/SplitView';\n\nimport EditorKit, { EditorKitDelegate } from '@standardnotes/editor-kit';\nimport { marked } from 'marked';\n\nimport {\n MenuConfig,\n menuConfig,\n} from './components/Milkdown/plugins/advanced-menu/config';\n\nenum TextChangeSource {\n Milkdown = 'milkdown',\n CodeMirror = 'codemirror',\n}\n\ntype AppProps = {};\ntype AppState = {\n splitView: boolean;\n editable: boolean;\n spellcheck: boolean;\n isLoading: boolean;\n};\n\nclass AppWrapper extends Component<AppProps, AppState> {\n private editorKit?: EditorKit;\n private prevText: string = '';\n\n private milkdownRef = createRef<MilkdownRef>();\n private codeMirrorRef = createRef<CodeMirrorRef>();\n\n constructor(props: AppProps) {\n super(props);\n\n this.state = {\n splitView: false,\n editable: true,\n spellcheck: true,\n isLoading: true,\n };\n }\n\n componentDidMount() {\n this.configureEditorKit();\n }\n\n private configureEditorKit() {\n const editorKitDelegate: EditorKitDelegate = {\n setEditorRawText: (text: string) => {\n this.prevText = text.trim();\n\n this.updateMilkdownText(this.prevText);\n this.updateCodeMirrorText(this.prevText);\n\n this.setState({\n isLoading: false,\n });\n },\n generateCustomPreview: (text: string) => {\n const htmlPreview = marked.parse(text);\n const tmpElement = document.createElement('div');\n tmpElement.innerHTML = htmlPreview;\n\n const preview = tmpElement.textContent || tmpElement.innerText || '';\n\n return {\n plain: this.truncateString(preview).trim(),\n };\n },\n onNoteValueChange: async (note: any) => {\n const editable =\n !note.content.appData['org.standardnotes.sn'].locked ?? true;\n const spellcheck = note.content.spellcheck;\n\n this.setState({\n editable,\n spellcheck,\n });\n },\n onNoteLockToggle: (locked: boolean) => {\n const editable = !locked;\n\n this.setState({\n editable,\n });\n },\n };\n\n this.editorKit = new EditorKit(editorKitDelegate, {\n mode: 'markdown',\n supportsFileSafe: false,\n });\n }\n\n private updateMilkdownText(text: string) {\n const { current } = this.milkdownRef;\n if (current) {\n current.update(text);\n }\n }\n\n private updateCodeMirrorText(text: string) {\n const { current } = this.codeMirrorRef;\n if (current) {\n current.update(text);\n }\n }\n\n private onTextChange = (text: string, source = TextChangeSource.Milkdown) => {\n if (this.prevText === text.trim()) {\n return;\n }\n\n this.prevText = text.trim();\n this.editorKit!.onEditorValueChanged(text);\n\n /**\n * Bi-directional text update:\n *\n * - Codemirror <- Milkdown\n * - Milkdown -> Codemirror\n */\n switch (source) {\n case TextChangeSource.CodeMirror:\n this.updateMilkdownText(this.prevText);\n break;\n case TextChangeSource.Milkdown:\n default:\n this.updateCodeMirrorText(this.prevText);\n break;\n }\n };\n\n private toggleSplitView = () => {\n const { splitView } = this.state;\n\n this.setState({\n splitView: !splitView,\n });\n };\n\n private getSplitViewDirection = (environment: string): SplitViewDirection => {\n const environmentDirectionMap: Record<string, SplitViewDirection> = {\n web: SplitViewDirection.Horizontal,\n desktop: SplitViewDirection.Horizontal,\n mobile: SplitViewDirection.Vertical,\n };\n return environmentDirectionMap[environment];\n };\n\n private truncateString(text: string, limit = 90) {\n if (text.length <= limit) {\n return text;\n }\n return text.substring(0, limit) + '...';\n }\n\n render() {\n const { splitView, editable, spellcheck, isLoading } = this.state;\n\n if (isLoading) {\n return null;\n }\n\n const environment = this.editorKit?.environment ?? 'web';\n const splitViewDirection = this.getSplitViewDirection(environment);\n\n const customMenu: MenuConfig = [\n ...menuConfig,\n [\n {\n type: 'button',\n icon: 'code',\n active: () => splitView,\n callback: this.toggleSplitView,\n alwaysVisible: true,\n },\n ],\n ];\n\n return (\n <SplitView split={splitView} direction={splitViewDirection}>\n <MilkdownEditor\n ref={this.milkdownRef}\n onChange={this.onTextChange}\n value={this.prevText}\n menuConfig={customMenu}\n editable={editable}\n spellcheck={spellcheck}\n />\n <CodeMirrorEditor\n ref={this.codeMirrorRef}\n onChange={(text) =>\n this.onTextChange(text, TextChangeSource.CodeMirror)\n }\n value={this.prevText}\n editable={editable}\n spellcheck={spellcheck}\n />\n </SplitView>\n );\n }\n}\n\nReactDOM.render(\n <StrictMode>\n <AppWrapper />\n </StrictMode>,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals(console.log);\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],f=0,p=[];f<i.length;f++)a=i[f],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var c=t[i];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"bf2ee733"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="./",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonp@standardnotes/markdown-visual"]=this["webpackJsonp@standardnotes/markdown-visual"]||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var s=c;t()}([]);
|
|
2
|
-
//# sourceMappingURL=runtime-main.54ae45a0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.54ae45a0.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"3\":\"bf2ee733\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"webpackJsonp@standardnotes/markdown-visual\"] = this[\"webpackJsonp@standardnotes/markdown-visual\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
|