From 4687f9710d5ff8929d1122a0fb3833103b8047d5 Mon Sep 17 00:00:00 2001 From: phoenixide Date: Wed, 30 Oct 2024 02:41:39 +0000 Subject: [PATCH] deploy: 606b7d045a60ae2f4fb4379b29619432e49cf184 --- appConfig.js | 4 +- assets/default-project/en.zip | Bin 147650 -> 147650 bytes assets/sample-projects/HTML5.zip | Bin 689 -> 689 bytes assets/sample-projects/bootstrap-blog.zip | Bin 375520 -> 375520 bytes assets/sample-projects/dashboard.zip | Bin 368772 -> 368772 bytes assets/sample-projects/explore.zip | Bin 2271029 -> 2271029 bytes assets/sample-projects/home-pages.zip | Bin 372053 -> 372053 bytes brackets-min.js | 435 +++++++++++++++--- cacheManifest.json | 48 +- config.json | 4 +- src/appConfig.js | 4 +- src/assets/default-project/en.zip | Bin 147650 -> 147650 bytes src/assets/sample-projects/HTML5.zip | Bin 689 -> 689 bytes src/assets/sample-projects/bootstrap-blog.zip | Bin 375520 -> 375520 bytes src/assets/sample-projects/dashboard.zip | Bin 368772 -> 368772 bytes src/assets/sample-projects/explore.zip | Bin 2271029 -> 2271029 bytes src/assets/sample-projects/home-pages.zip | Bin 372053 -> 372053 bytes src/brackets-min.js | 435 +++++++++++++++--- src/cacheManifest.json | 48 +- src/config.json | 4 +- src/view/MainViewManager.js | 24 +- src/view/Pane.js | 11 +- src/view/PanelView.js | 30 +- src/view/PluginPanelView.js | 29 +- src/view/ThemeManager.js | 20 +- src/view/ViewCommandHandlers.js | 35 +- src/view/ViewStateManager.js | 3 +- src/view/WorkspaceManager.js | 76 ++- src/web-cache/3.10.0/appConfig.js | 4 +- .../3.10.0/assets/default-project/en.zip | Bin 147650 -> 147650 bytes .../3.10.0/assets/sample-projects/HTML5.zip | Bin 689 -> 689 bytes .../assets/sample-projects/bootstrap-blog.zip | Bin 375520 -> 375520 bytes .../assets/sample-projects/dashboard.zip | Bin 368772 -> 368772 bytes .../3.10.0/assets/sample-projects/explore.zip | Bin 2271029 -> 2271029 bytes .../assets/sample-projects/home-pages.zip | Bin 372053 -> 372053 bytes src/web-cache/3.10.0/brackets-min.js | 435 +++++++++++++++--- src/web-cache/3.10.0/cacheManifest.json | 48 +- src/web-cache/3.10.0/config.json | 4 +- src/web-cache/3.10.0/view/MainViewManager.js | 24 +- src/web-cache/3.10.0/view/Pane.js | 11 +- src/web-cache/3.10.0/view/PanelView.js | 30 +- src/web-cache/3.10.0/view/PluginPanelView.js | 29 +- src/web-cache/3.10.0/view/ThemeManager.js | 20 +- .../3.10.0/view/ViewCommandHandlers.js | 35 +- src/web-cache/3.10.0/view/ViewStateManager.js | 3 +- src/web-cache/3.10.0/view/WorkspaceManager.js | 76 ++- .../3.10.0/widgets/DefaultDialogs.js | 46 +- src/web-cache/3.10.0/widgets/Dialogs.js | 107 ++++- .../3.10.0/widgets/DropdownButton.js | 37 +- src/web-cache/3.10.0/widgets/ModalBar.js | 4 + .../3.10.0/widgets/NotificationUI.js | 10 + src/web-cache/3.10.0/widgets/PopUpManager.js | 3 +- src/widgets/DefaultDialogs.js | 46 +- src/widgets/Dialogs.js | 107 ++++- src/widgets/DropdownButton.js | 37 +- src/widgets/ModalBar.js | 4 + src/widgets/NotificationUI.js | 10 + src/widgets/PopUpManager.js | 3 +- test/test_folders.zip | Bin 6107064 -> 6107064 bytes view/MainViewManager.js | 24 +- view/Pane.js | 11 +- view/PanelView.js | 30 +- view/PluginPanelView.js | 29 +- view/ThemeManager.js | 20 +- view/ViewCommandHandlers.js | 35 +- view/ViewStateManager.js | 3 +- view/WorkspaceManager.js | 76 ++- web-cache/3.10.0/appConfig.js | 4 +- .../3.10.0/assets/default-project/en.zip | Bin 147650 -> 147650 bytes .../3.10.0/assets/sample-projects/HTML5.zip | Bin 689 -> 689 bytes .../assets/sample-projects/bootstrap-blog.zip | Bin 375520 -> 375520 bytes .../assets/sample-projects/dashboard.zip | Bin 368772 -> 368772 bytes .../3.10.0/assets/sample-projects/explore.zip | Bin 2271029 -> 2271029 bytes .../assets/sample-projects/home-pages.zip | Bin 372053 -> 372053 bytes web-cache/3.10.0/brackets-min.js | 435 +++++++++++++++--- web-cache/3.10.0/cacheManifest.json | 48 +- web-cache/3.10.0/config.json | 4 +- web-cache/3.10.0/view/MainViewManager.js | 24 +- web-cache/3.10.0/view/Pane.js | 11 +- web-cache/3.10.0/view/PanelView.js | 30 +- web-cache/3.10.0/view/PluginPanelView.js | 29 +- web-cache/3.10.0/view/ThemeManager.js | 20 +- web-cache/3.10.0/view/ViewCommandHandlers.js | 35 +- web-cache/3.10.0/view/ViewStateManager.js | 3 +- web-cache/3.10.0/view/WorkspaceManager.js | 76 ++- web-cache/3.10.0/widgets/DefaultDialogs.js | 46 +- web-cache/3.10.0/widgets/Dialogs.js | 107 ++++- web-cache/3.10.0/widgets/DropdownButton.js | 37 +- web-cache/3.10.0/widgets/ModalBar.js | 4 + web-cache/3.10.0/widgets/NotificationUI.js | 10 + web-cache/3.10.0/widgets/PopUpManager.js | 3 +- widgets/DefaultDialogs.js | 46 +- widgets/Dialogs.js | 107 ++++- widgets/DropdownButton.js | 37 +- widgets/ModalBar.js | 4 + widgets/NotificationUI.js | 10 + widgets/PopUpManager.js | 3 +- 97 files changed, 3072 insertions(+), 632 deletions(-) diff --git a/appConfig.js b/appConfig.js index 4b6e66d6a..d341b6b12 100644 --- a/appConfig.js +++ b/appConfig.js @@ -26,7 +26,7 @@ window.AppConfig = { "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -38,7 +38,7 @@ window.AppConfig = { "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/assets/default-project/en.zip b/assets/default-project/en.zip index 235ae21c38a4057674972944e0242f7fe89a1005..323b886aff8492ffe44c5a3bcdf716bba36ab6ff 100644 GIT binary patch delta 287 zcmX@q$a$!dlQ+PdnMH(wfrEoVNi=RF?>YfyAU%1XfD(w_{8+$_8O%@-@nHlribdI3 zz>HeSr(9r0s)`6Nm{DW6n-9#ea(D<4k@L%91&eeC%TER~);^2v1u?esmN1%%f?2Me zj9p;m+b>OHR9*%WoBqRw$qCG`wPi8_Gm31POu>v*woE2q#zUBhq#ctDSR?|*m=0rH lgE2(yp$10TGdX}2&$VZAgqUN`4L6pOO6 zfEl%tPr1O1R230kFr&tBHy@Z`S3u0{NEnzej1+!c` z8N0yBw_lpZsJsj$HvNYUlM|R>Ys+K=W)#^nnSvRsY?(~JjE680NjoMRut)@qF&)OZ l24jfYLk*0wXL0~5o@>wK2r_%QTMrI&AS&VTZnBK+c2Bw*rOu@7@lL?qEVzLJS D3ycy9 diff --git a/assets/sample-projects/bootstrap-blog.zip b/assets/sample-projects/bootstrap-blog.zip index 74b03ede6240b99a49fff1d25772c6e6db9bb0ae..e97797e085ae2a6b93e24ed451aaa9b0caeb1901 100644 GIT binary patch delta 331 zcmaFxRqVl6G2Q@gW)=|!1`Y-WCDFKvyh_YKYNHV|6Nuhy!Ss$1%+O>xC2J3vDp1YpDfR5oOtz1!6S6UcCMFV#dR+AkOxU zFB#W@h1(NDn6@W|Fi+S47XQM-VjTrywHu|gY&S}0W%dX0rdw=dH3Bnox3L<78H=~E znu8g4x3OA+8Is#sO~H)7?W`7HM$dMrnq%8p10ZU4uzGpIWgKd6k%f)J7v_CJ?>Zg6SP2n4!sXPzKC+tKcFC zVoWwM(g4%(M(SXRPNR5;p4TRVEMS@c7TRE1*HR0tBFeHa3&d!Cy?FcU#f*ntL7eRy zUox%*3%4hRFl|o^VV051%Ipu~O}E&_Y6NEFZeukDGZt@S zH3u{9Zez6sGbFdOnt~aD+gUBZjGpaKHOIEI20+y8VD$ns(sr;~gBeS9uv&o`4|lNo dfEflmp^BSfjB7htL%>qHyI2FkjK*E8@c_5Df6f2^ diff --git a/assets/sample-projects/dashboard.zip b/assets/sample-projects/dashboard.zip index 4ad2bd8a77f3fe33987250bab5616eb5c7ad6924..8fccb96f3694a1c138700118980e37e6fbe26843 100644 GIT binary patch delta 367 zcmZoUDAsaNj5olWnMH(wfrEiTNi=REuM#tm+Gte91fn;uX8OShW-Mb#gNX36dvSq9 zVg#ijQdL5aSU@6^I^u!>f>zAO-zzm-`tfpW_3yiU64yzeh&Nt-%bBd8}4oM(aFQA28#}Jg8#z`A|mHeAW=K)W!L%fnbK}0@io{KE`Ax delta 367 zcmZoUDAsaNj5olWnMH(wfrEkJr&jDlUL|HAwb7`I2}EyR&Gds2%vi>f1`*+B_u>MJ z#0W}5q^g7-v4BJ-$BS!#=`L|~u!=3>@en;?Qi2c_T5{T86%le;U=^)$eOVwzvsmYL zu};Rrt{~3#JLeeJf`!|AESa|VSTax80T!44#B3b}VztNmuxyX@VP*CQ@unxwW;Fsc zX3S=_05dMnW;F*hc;~R%fEhk>SWUr<78qmC99A>1$k#bgT?TWZy0Yf727smZ&Smui vGq~olT7wxL^H{CGjMjOqK48X`c~Hgb^P!BY`K%#esf+Vj1HlZ{1+4J^)wPES diff --git a/assets/sample-projects/explore.zip b/assets/sample-projects/explore.zip index 9ddc6357332290e3506dcc57d519f4345a36a9c7..649ce1d73dd316745fc440cd286dec6247930f68 100644 GIT binary patch delta 1873 zcmXw&e@s(X6vqpXzJjGxp-Aa_1-!#W1`;7Ul{pm==P(T17;{;%`$7Lf!-ftq+l(77 zyg?Kxg}y>tD!&Iy_6ylv24gsqMQ4I;8XN?(SQd1sV?<#KZrScT_r5<)`sq2}^S$@n zo(_)Jg$$A~6z=1~Od3sixCX@@{K62X<;drNNn7Ors4w$!0BPk(;Q$54z7M0CccoPT zZKo$!0=(nDp$91H>!;$7FDF7FGj;xF9l&S98v#zuj!Cm)A$WEy^w2*_1s9ESAM-%} z{lNVZ0`%uaE_wx!_8NDKR)3%5BrwHCr@6y$4i5gteHy9gB-a8*A`H70v?Dg?EP9UL z3p3!re*Pnv4?pn|KL=CbI2%7qJtj)|vKZ*dInIAhbxSAsOsY$*=GU2^TI}W>5kMmW zewp5GsGq-0UAhN&uaUZp@u%QU_|g^r13FLsPyE_=s8-JL_hBB%vA~nikq9RdfgKAg zOdo>gy-NKqcu;)deZ3Z*4PTPCIi`?w`7L`oh!2J&jNZ_Z&{=r_uQ5?1LV$hS*~CpyG__hJ30;u544c; zlnO;Ap!ws%X4os7QYXYG!VPl!gsjvka+jBXtXjS>snuw5dHJ=VV8-3og?n14T;xQd zR;SS{>YyT*1W*JXof2I1-HL;P-2i4^&kKpsKvN-N;cB4uW^pDCY@XclUHYvAjix$L z&ZrRM@TLvoVgl6^h)ZjL9VG8O29lfBS$~Dpu@tKW3;NZ1>oVQ8e>1Ee_)lTaE^8eP@cn)gu2N%ooq5{cMelXMu4lE!P3@ObT-1AjwLN;Nu4cQsIt zvSC-{nX_oSQk0V$(9-~=4JZqsy#Z|jm~KE@0nARc8^G>l8lRJuesQ85P_i^Kur)G6 zU!$r~!Q^7j1unD=y6RnM55Nr<+5}*1LiqspCiN^8CYxB7xtaOA(2Sk}v9p<#uBs)y zn;GV~*)>k8Fyuy?p=;62j>weJUdWt~na{AyG)pq`N%x>k(7fSch5--S2$=~FdIlh= zg_UeAXeVR>Dg;~52FS#=viEthmA$G@%}lqlcC(kYzv3m6l0T>H_M!rSJ6@tuGRZzN zy8^HK$jd9xrDlRYa%UxD@iTF;pZPfb#91j__mcq?h-zaa=eMy(@Tf4;#(tf&0E0>u zMpV$9W2HhBT2u(CklM~PZ@06Nhg1mdV3}uCXy`zB@K859*or1}GL54XWkab?h5IUG sbg@l%vkT>bW>AGkDr9%FlGM$7E_btwnR*zM^e|0l56T6fyFDoHe?HVnf&c&j delta 1873 zcmXw&e^69a6vr1H`v8|^6;@gHy#>63jR-QrXewEXh#3xnMP$>`_JjQg9SRL`D#yZx z7mO0i!oG#wW#xC!OuvwB6GRv@jphtmIv5O2pFmKT{{j93*pF^_o}Ys)Xq=TFW*!rzd|51Xv!j*_nB9ht{ zRv6z0%{!I4-Eg7w{JT0WTpPV8=}z7VR^|QnsH7lB<@P9AZr9hqP`!Va>tSMP`G{VL zXeA6vtW;u^5;01|Dq&P&wGwOS@{zb5XM#q9+f7&B07pZGi5e>64^{>Lqh+__v)JLi z^YLX*K+c$M&P@igK4Z>ipW|$i`9K!r9@Lu`S;t+MxlIqbGhOD(6v$>3cCn6*mxTN5 zqTQuJ5xd^`IHCmbFg&(Sx&rfPKnp|FfB_Nn+_ch_J7AhAw zQK${qXcohvBA56{Bpsa+oNSQdfM8>Td^Im5#(?cqh*-D=XroD-i36KQcYd3GGeM)N zPLwk$#5lTTlen0`GzH?)TA)WN#JN$V@ko?EoeR*#ls6pvLRK($5aE6H4Yr z1ZyK2dK*=Z3PvY77dXid=&E;;y#UvpWD9_yiR1&=n$)vYm~6r>Q#1NJ+e{taGni0&%kPBjE%K|Z)6{l`joXU9E6~x*8{1)R{uyFfySElXLU708B0E=t=W44Y0 zvDz~tShiNivl@aKiCF)+MmW?)cdK!7EU zo0KPatI1CPu!>a-tci0qt2C2{8c;lT1PUmH zX)!P)78j?M6zivC7MJK}73(83f~}t(wwl!ktYPVD)&MZ$2aMsphBX8%vSpIWgKc@>#Kl%W!s3R3}7wP3-G3x9HfxRd8{Yk=t! z-0C2D^C#|wOkl<|zETK-Pw*x;Smc#VH6xgjAs58T3btahsg^cKXmYZa7FcS(ay&$r zq8dL7D+kCKnNivl@aKidHRo4ta4yE$mB|KbvXfscb4{;b#mWOV zpbsRGuLhJ*oPK5%D;FeiriZO&^#RK-UCkN*X8eFLyw|XXfJGLqVGRT`zO7-62LM*` BvvL3c diff --git a/brackets-min.js b/brackets-min.js index 3c708776e..860842a1d 100644 --- a/brackets-min.js +++ b/brackets-min.js @@ -150535,6 +150535,11 @@ define("view/MainViewManager", function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -150658,6 +150663,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -150731,6 +150737,7 @@ define("view/MainViewManager", function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -150767,6 +150774,7 @@ define("view/MainViewManager", function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -150847,6 +150855,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -151591,6 +151600,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -151729,6 +151739,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -151854,7 +151865,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -151875,6 +151886,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -151892,6 +151904,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -151931,7 +151944,8 @@ define("view/MainViewManager", function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -151956,7 +151970,7 @@ define("view/MainViewManager", function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -151981,7 +151995,7 @@ define("view/MainViewManager", function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -152071,7 +152085,7 @@ define("view/MainViewManager", function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { @@ -152491,6 +152505,7 @@ define("view/Pane", function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -152755,18 +152770,21 @@ define("view/Pane", function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -152832,6 +152850,7 @@ define("view/Pane", function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -152932,7 +152951,7 @@ define("view/Pane", function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -153181,6 +153200,7 @@ define("view/Pane", function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -153507,6 +153527,7 @@ define("view/Pane", function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -153624,6 +153645,7 @@ define("view/Pane", function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -153774,6 +153796,7 @@ define("view/Pane", function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ @@ -153897,6 +153920,7 @@ define("view/Pane", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -153906,10 +153930,29 @@ define("view/Pane", function (require, exports, module) { define("view/PanelView", function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -153994,7 +154037,7 @@ define("view/PanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154029,6 +154072,7 @@ define("view/PanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -154037,10 +154081,28 @@ define("view/PanelView", function (require, exports, module) { define("view/PluginPanelView", function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -154138,7 +154200,7 @@ define("view/PluginPanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154178,6 +154240,8 @@ define("view/PluginPanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -154205,8 +154269,19 @@ define("view/ThemeManager", function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -154228,6 +154303,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -154532,7 +154608,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. @@ -155093,6 +155169,8 @@ define("view/ThemeView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -155189,12 +155267,14 @@ span.brackets-js-hints-with-type-details { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -155454,7 +155534,10 @@ span.brackets-js-hints-with-type-details { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -155499,12 +155582,18 @@ span.brackets-js-hints-with-type-details { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -155532,6 +155621,7 @@ span.brackets-js-hints-with-type-details { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -155651,17 +155741,26 @@ span.brackets-js-hints-with-type-details { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } @@ -155776,7 +155875,8 @@ define("view/ViewStateManager", function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ @@ -155868,21 +155968,43 @@ define("view/WorkspaceManager", function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -155890,28 +156012,33 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -155924,6 +156051,7 @@ define("view/WorkspaceManager", function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -155939,7 +156067,10 @@ define("view/WorkspaceManager", function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -155959,7 +156090,7 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -155976,7 +156107,10 @@ define("view/WorkspaceManager", function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -156001,7 +156135,8 @@ define("view/WorkspaceManager", function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -156118,7 +156253,10 @@ define("view/WorkspaceManager", function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -156196,6 +156334,12 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -156328,7 +156472,17 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); @@ -156353,17 +156507,51 @@ define("view/WorkspaceManager", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + define("widgets/DefaultDialogs", function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; + + /** + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); @@ -156388,6 +156576,8 @@ define("widgets/DefaultDialogs", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -156420,27 +156610,72 @@ define("widgets/Dialogs", function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_PRIMARY = "primary"; /** - * Dialog Buttons Class Names - * @const {string} + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_NORMAL = ""; + + /** + * Left-aligned button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -156456,7 +156691,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -156533,6 +156768,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -156622,6 +156858,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -156630,7 +156867,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -156639,6 +156876,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -156647,6 +156885,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -156656,6 +156895,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -156664,6 +156904,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -156817,6 +157058,14 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -156826,10 +157075,26 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } @@ -156948,10 +157213,33 @@ define("widgets/DropdownButton", function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -157038,7 +157326,6 @@ define("widgets/DropdownButton", function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -157086,6 +157373,7 @@ define("widgets/DropdownButton", function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -157207,7 +157495,9 @@ define("widgets/DropdownButton", function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { @@ -157956,11 +158246,13 @@ define("widgets/ModalBar", function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -158078,6 +158370,7 @@ define("widgets/ModalBar", function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -158091,6 +158384,7 @@ define("widgets/ModalBar", function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { @@ -158201,6 +158495,11 @@ define("widgets/NotificationUI", function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -158209,6 +158508,11 @@ define("widgets/NotificationUI", function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', @@ -158592,7 +158896,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -158646,6 +158950,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp(); diff --git a/cacheManifest.json b/cacheManifest.json index f5b9af666..540eac411 100644 --- a/cacheManifest.json +++ b/cacheManifest.json @@ -1,6 +1,6 @@ { - "appConfig.js": "be4be788a60f44a4012f992067f36e5b0e9b23154a6f7b54fb150f18c5117010", - "assets/default-project/en.zip": "2aaee558434cf447488010c1629e5d871eeec19b0dd388ac8ea7c78c9affa491", + "appConfig.js": "385cc2dcc9270e7c8c1f82d38359a37d45ae1d11ad18c50c7ea73e84bbd3ae5d", + "assets/default-project/en.zip": "6b3be3c074d758f89add0edfe6169f0f1c84c37d65d734ed016ce5def8c97919", "assets/default-project/en/images/cloud1.svg": "527399dadfa3357c3ee1a63d6c1c7dda81ecebb832f7383db26f1aaeaf722a8d", "assets/default-project/en/images/cloud2.svg": "8127c63c0987bc674e2d25f7d24ead017853326c1e43d07706fec46091904418", "assets/default-project/en/images/cloud3.svg": "15de53aa41dea3b0f685292814563f97213a9736c3cec2f8e17b5d9d45b3ae3d", @@ -125,7 +125,7 @@ "assets/pwa/32x32.png": "4f8f75bfcdb6efbbed1732f49edab4e292274cdeb1841e285ccc8194f4c9d8ac", "assets/pwa/phoenix.png": "d292bf76d6d61fdece2f97fb4cd71b8b0060d1058e9c1d02c94bfb20da8b7f0d", "assets/pwa/Square284x284Logo.png": "9887c2967039b4fae1214817925f1fb4f9227cba12d37612457c1c8ee1110c67", - "assets/sample-projects/bootstrap-blog.zip": "33eb4ed07770d71846362b1356181ae3f990751d18bf1d4cde7ef567b920202d", + "assets/sample-projects/bootstrap-blog.zip": "11a7f9b296538f542787ff8afc7d283dff516184b67c7e21ba8a4bb697132cbf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/bootstrap-blog/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -135,7 +135,7 @@ "assets/sample-projects/bootstrap-blog/blog.rtl.css": "33f49d02bbcb2e78f019b7582408fad2b5a76a2ecf79fe09d5b3c08c6ee3872b", "assets/sample-projects/bootstrap-blog/index-rtl.html": "c582278884060098ff51b9d350b0739e1a0396debdc76772c62b6ec375b6efcb", "assets/sample-projects/bootstrap-blog/index.html": "f4716c2affa299a27ab6f8c74c22fe67564f1b1d36ff2f0b322672bf0479d739", - "assets/sample-projects/dashboard.zip": "15f4e33cc542b2a17b2c6a2576590d86fb80cf9d65a340738cdf479893ac9207", + "assets/sample-projects/dashboard.zip": "85ba5d86af5841b13f0169cdc7f2741f12ade1e4813592c73954bf254545e0df", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/dashboard/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -147,7 +147,7 @@ "assets/sample-projects/dashboard/index.html": "1fb0c934f816d728cad85e180f78369679dc9edb1eca2d5c625b9360e6264235", "assets/sample-projects/dashboard/signin.css": "083bef710a6170a5112ce257c2ecf8580ca97ce19136d770f10460e5b85862de", "assets/sample-projects/dashboard/signin.html": "8c602e656631aeee624673397c0dc00c339498914ed930ab177478c4662a8d26", - "assets/sample-projects/explore.zip": "5d36207b029b0bbfac3b4f99d819eea6586cb9ae8dc0465b145e6e5b793979db", + "assets/sample-projects/explore.zip": "22925cf817562cf2f8d98779b7498453b1b806ce2904c4d66e956494a0129759", "assets/sample-projects/explore/A-tribute-page.html": "bd510c60f444058b7fcb71d83841f32b1cb5193c1a39421d7739bd6af9fef248", "assets/sample-projects/explore/adjustable-fireworks.html": "11e69bb2dd8708ed8fbf1acc62b0aaaf88c7ffec859ee958dc1ae51cd53ddac8", "assets/sample-projects/explore/ant_colony.html": "bc9435ed1b9868f2fbc7212d526f7532c533a5fdf45da988fa5e575bc5f363b7", @@ -237,7 +237,7 @@ "assets/sample-projects/explore/watermelon-pixel.html": "765a3fbffb5db97910512fbabaa7c55c0b52dc8eedfcc630811be39d0af98663", "assets/sample-projects/explore/webmine.html": "6b808f52812dc03db28483411500c04daf8ee0226f535c600a36999d6b7837c0", "assets/sample-projects/explore/whack-a-mole.html": "25be94a3640553b4801f80edd49998bae3a360988e8a26ff3bdfdc2a76b77191", - "assets/sample-projects/home-pages.zip": "788d50571c283b36a7001dee1332073c0628f409916c5429901f278b8a0b2760", + "assets/sample-projects/home-pages.zip": "fbb623bc259d796fcf3f19486f552a609851c89093d8fcadcac587cbe2506bc3", "assets/sample-projects/home-pages/album/index.html": "e29a1e96644bc17bab1a7e3724e822d65a479e10df182725ee1afa916efbfdc1", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", @@ -249,7 +249,7 @@ "assets/sample-projects/home-pages/carousel/index.html": "235d650043a09f2954f24e4659f64d99ef3988858567fb2221fb1cf34df057e6", "assets/sample-projects/home-pages/cover/cover.css": "2fbb596077c570cad7ee9e98fb88f5665e0ecfc11e7085c3e04639ad03f7bc10", "assets/sample-projects/home-pages/cover/index.html": "759214701ff759432711b3421d80aca692c7a2b4c978c516a0bcd0c81a43f381", - "assets/sample-projects/HTML5.zip": "c5fd6821a5a5d5e86e3e4d3b3f71cc7c0a997816c54eb83544dbf0feea550cf2", + "assets/sample-projects/HTML5.zip": "19eae80598c9037a1c7842bde100ea5e1c6eec1281ca66a9d5bc4cdeb85d1ba2", "assets/sample-projects/HTML5/index.html": "2dc94c7d3e33aeeb44ec4f75bc7df86a5fd19f3121f2fd3638636fbf7c476c6a", "assets/sample-projects/HTML5/script.js": "c49e4b01cded4defbc21f5d5d0102719ce4cccbe1b9cb19f9232c5a05df658da", "assets/sample-projects/HTML5/styles.css": "744b85a9c31affbb00976694c4b9c9149b31e575ed9efdec386231d062ae93f2", @@ -257,11 +257,11 @@ "assets/sample-projects/zips/bootstrap.zip": "6f10407c00ce5d598e77f890528743dc645bc28014335483992b481e63fd7b97", "base-config/keyboard.json": "f3380c609a293a95644965958286b31863d733293824d56b7087fa0ce4c2d618", "base-config/readme-keyboard.md": "27e98128176dbd060e93b1f321a4ddcd609571b7b8eb8c9112588f4767d08a03", - "brackets-min.js": "316255803d76c5eac5113188294dc6a4246bdfe70e654646c56aac42652c7a88", + "brackets-min.js": "a2b9df20210a74da94f55b82e4c8d38111ea1748c4a1daac065ea27bcb4ba3e0", "brackets.config.dist.json": "8faa5c0a82bb4f49784e93d1225dbd5e1fd8ec6ab07b95f5f874c7c7bd7bb234", "brackets.config.staging.json": "c0e1f22c772c80f4f5756ab947e40538bcaf7fb7f8925834cfd4ef57c55e477a", "brackets.js": "f7a3164510e76e012591c9758acb47f2445526642503180c57209d30faa24d69", - "cacheManifest.json": "5922554792f6188f81969d301aa04a398b6c9ebd9167ea45be720bbaa8600247", + "cacheManifest.json": "4652cbca5ad8a64923b31bb0057dbf818aa78ee3f16c2913d946c027aa0ee066", "command/ChangeShortcutTemplate.html": "345d682d8bde29380822824778cf09acc79affae6e82b9db00c6205b2b3dd2ee", "command/CommandManager.js": "ecd5ccb7ffacb8fa24b6c284f5a19576e774f204746dbef75872992becbe5fb0", "command/Commands.js": "99fa4895ba13713db0bf8c3d14ba57969ffbfe236ea29bebb309c5e367524d7d", @@ -270,7 +270,7 @@ "command/KeyboardOverlayMode.js": "8ed49bc8728a109e3850d8ad2df374b51021f24a65811ac826210a1adcdbbb56", "command/Keys.js": "31cd87a01ce41de28e56ccbdd4fa14866cccc2b7bcde61c5134095adaa5cb674", "command/Menus.js": "729fd0ba4969590acafbfee188101244f7c2113b49c3617985f1d12544cee52e", - "config.json": "1f77a154fa6c48dff8113fe56005d98e9c384226bb622361b160647bc7624856", + "config.json": "f71c74386195f142a07523d92628aa3367e3d4a84853568e5cac7bd33a8920cc", "desktop-metrics.html": "66f87550ddf04f284a6c1e81567b7dfbefb2b8007f48f0bad7d8f7aacdb11bac", "devEnable.html": "44aa1a496a8be413299f651e6b0c3e62ac50cd5d40126ad1bb6b70b9b2b818c4", "document/ChangedDocumentTracker.js": "03b0eaf0995fee6d27c782a8028a1314f61214e383f5f5e198320b2faac4cf40", @@ -1763,16 +1763,16 @@ "verify-dependencies-loaded.js": "98f5fd53dafdb1c319a1cfe6ae316deda6bf30019663925bc2b4c4a592b3b3ed", "view/fontrules/font-based-rules.less": "ae3a98c651522d06b43a0b5e1bbf28bda59c34bcce23d025b6c0f0d2fe445de7", "view/MainViewFactory.js": "5156ee0a57341256819d3c5288a8c89cebf22d3a6269f43ca30cd661a5d659df", - "view/MainViewManager.js": "61a33edcec4735f734ec62f5b564ca6d221ae82ad7d890abfdd7c0e8e20b6a1f", - "view/Pane.js": "0c77d8f64d54297af26fa5c3621af2598c71cb9f8957408532c01bd131e5c7f7", - "view/PanelView.js": "e70d00d7a76c8adfdf17d2b3eaf21c409ed69e170d997c2f77daa83c28d065de", - "view/PluginPanelView.js": "c272385acb8a9213fb231b7e55442ecc28d9f75f2853e745b6d810110d181623", - "view/ThemeManager.js": "de703acae34b5f6741e93e9a5de7cce9af6c41e6c52d8cb6396c96b35054cab3", + "view/MainViewManager.js": "6ce89e63d68117b9bdc94941954adf0b210e0cae264d3861bf557a99875e84df", + "view/Pane.js": "3b60e5fb7aaf865ba743c48c410f7bb27c2a3cb7e65e0da55bbec7396d366601", + "view/PanelView.js": "6caf159a2500a23e0957707e60cc029a5e6fbdc733e04670a4dd4c3aff6847a2", + "view/PluginPanelView.js": "1f313d224d8fe121a9347c1035da5e69e1b7309e4e26331009b15a52466530d5", + "view/ThemeManager.js": "5ed6e2148d38feb13258470ddf831e86b2224b2be7e676bdf70c0886c742d0cb", "view/ThemeSettings.js": "b1823abbb2043ff19babfbb51b72076975db6d39f9928387bf40c3080e422511", "view/ThemeView.js": "e958ecb95d48f08e79d4082eaa957512d67d3845b23d29496e207762ac39c62b", - "view/ViewCommandHandlers.js": "88b3346b729e6d5b65e5e71a7dff3b0ae2eadc2f331500ec3ba2b71bab7b9a47", - "view/ViewStateManager.js": "6d87c1612a8436f6d828509029ca24c9e9e65a4afc4213771ae0c6a057c823a2", - "view/WorkspaceManager.js": "3bb72ea86714af9108fb5f7b898f429a48115257f87615b63ec8dff45dc939f5", + "view/ViewCommandHandlers.js": "f175b2dea61627fa99312c3b0a92b6770fe0af71823ddc2aeb8028d2b704339a", + "view/ViewStateManager.js": "92a2a04cdfb9bf394125662d950405287263786aa73d56da05a37d47505a702a", + "view/WorkspaceManager.js": "3efbf6502abe30991705d6f96f99bb9c9bd05c298e53796b99148fd3a1f3439a", "virtual-server-main.js": "8738b7477f1e42295d7305ef4bdbc0303b37c29fffe86522c73124b34ab15448", "widgets/bootstrap-alerts.js": "df642f7d793199d1abf0730312ad28a89cc2010f17c27dcae48faef97ac6ea45", "widgets/bootstrap-button.js": "815bd5b4dffe890f135f6d375b42a87a9911cf107cf24c70313fc88ffdecbec0", @@ -1783,15 +1783,15 @@ "widgets/bootstrap-tab.js": "2ffae170607365ae77f3e6d247dab0157b31f5ae9f368775c08c6eeebf66102a", "widgets/bootstrap-tooltip.js": "21f5003f2ff159eddd0d5a1a75738d0c9d710b338b38c93e71f7c7cbb09bcadd", "widgets/bootstrap-twipsy-mod.js": "3e57a1d781e6308fddf2dd7f14f5d6746741dfbaf2a07f800135754caaa85645", - "widgets/DefaultDialogs.js": "9c2d21e1e7ef69050f73cb9d2e3ff9cea8f4b9175575b44125cbba289eee3e4c", - "widgets/Dialogs.js": "a64a7f4f6824c62a560ce08d07a469b520e35ca3d81f3b92a608e9546152552d", - "widgets/DropdownButton.js": "a34f4d227b3f1f1996bb6fe1d3868d14eef16e67e26429996bf45e4cde1ce15d", + "widgets/DefaultDialogs.js": "273f569b0d6e4cc6d68e623ba41bce3b7637a60da20631cca89a246abe90f0de", + "widgets/Dialogs.js": "099ebd07a4da618c4dbc0bf5b1faa92596e9b71eaad6776e5ce22ace480cb9ec", + "widgets/DropdownButton.js": "25ce5b4397547e5f9899b0a893918dc6c25d3071e9d8001801db1186da476427", "widgets/html/toast-popup.html": "7b37d47271f5b8bd565235f984c4205fff394208c99ac31b2ce6f8dffb6ca3dc", "widgets/infobar.js": "57d512952235998745b1c01fd9d2dd3b054bed54671470902aa83172168c234c", "widgets/InlineMenu.js": "b1f02dc10678ca4cf0dd4a1a6512fb16600adb0faa0f461d20edddcef1f4a7d7", - "widgets/ModalBar.js": "dc422180fda4c534679b110c6b897ace9a44ecd588f5c18e91605200b554ca9b", - "widgets/NotificationUI.js": "a74366a131b1f8e5dd5741df34beea5afa61e1ec46534bc216c3d0fe1495f384", - "widgets/PopUpManager.js": "f672649cab57f1a660006ada5e34c89536eead870909c409a4ade212fb673947", + "widgets/ModalBar.js": "fce131bf57f92d733f86ae5ee51f18f68d40af0af30dacf041704d16fb632960", + "widgets/NotificationUI.js": "6307c92754315f3f31f09d22b626afa933a68291b05093e842181c278dbb97b8", + "widgets/PopUpManager.js": "530941ac8f482cde29e6474e6b1de092046e897daf419fe11b869ddbad511a50", "widgets/StatusBar.js": "666179a4ed7c512246db2a162db7400600ea0bf442d42cfad473c3667186857c", "worker/extensions-worker-thread.js": "e819ddc615de8ddb5547aa4be4e5943524f4f373ff49a0c7c2fa8469a0f3361d", "worker/ExtensionsWorker.js": "5ba848bf08c36a7fd0d265aac38265537908e50643859748064ba6b3d74d6991", diff --git a/config.json b/config.json index 1465f02d4..079750f71 100644 --- a/config.json +++ b/config.json @@ -25,7 +25,7 @@ "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -37,7 +37,7 @@ "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/src/appConfig.js b/src/appConfig.js index 4b6e66d6a..d341b6b12 100644 --- a/src/appConfig.js +++ b/src/appConfig.js @@ -26,7 +26,7 @@ window.AppConfig = { "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -38,7 +38,7 @@ window.AppConfig = { "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/src/assets/default-project/en.zip b/src/assets/default-project/en.zip index 235ae21c38a4057674972944e0242f7fe89a1005..323b886aff8492ffe44c5a3bcdf716bba36ab6ff 100644 GIT binary patch delta 287 zcmX@q$a$!dlQ+PdnMH(wfrEoVNi=RF?>YfyAU%1XfD(w_{8+$_8O%@-@nHlribdI3 zz>HeSr(9r0s)`6Nm{DW6n-9#ea(D<4k@L%91&eeC%TER~);^2v1u?esmN1%%f?2Me zj9p;m+b>OHR9*%WoBqRw$qCG`wPi8_Gm31POu>v*woE2q#zUBhq#ctDSR?|*m=0rH lgE2(yp$10TGdX}2&$VZAgqUN`4L6pOO6 zfEl%tPr1O1R230kFr&tBHy@Z`S3u0{NEnzej1+!c` z8N0yBw_lpZsJsj$HvNYUlM|R>Ys+K=W)#^nnSvRsY?(~JjE680NjoMRut)@qF&)OZ l24jfYLk*0wXL0~5o@>wK2r_%QTMrI&AS&VTZnBK+c2Bw*rOu@7@lL?qEVzLJS D3ycy9 diff --git a/src/assets/sample-projects/bootstrap-blog.zip b/src/assets/sample-projects/bootstrap-blog.zip index 74b03ede6240b99a49fff1d25772c6e6db9bb0ae..e97797e085ae2a6b93e24ed451aaa9b0caeb1901 100644 GIT binary patch delta 331 zcmaFxRqVl6G2Q@gW)=|!1`Y-WCDFKvyh_YKYNHV|6Nuhy!Ss$1%+O>xC2J3vDp1YpDfR5oOtz1!6S6UcCMFV#dR+AkOxU zFB#W@h1(NDn6@W|Fi+S47XQM-VjTrywHu|gY&S}0W%dX0rdw=dH3Bnox3L<78H=~E znu8g4x3OA+8Is#sO~H)7?W`7HM$dMrnq%8p10ZU4uzGpIWgKd6k%f)J7v_CJ?>Zg6SP2n4!sXPzKC+tKcFC zVoWwM(g4%(M(SXRPNR5;p4TRVEMS@c7TRE1*HR0tBFeHa3&d!Cy?FcU#f*ntL7eRy zUox%*3%4hRFl|o^VV051%Ipu~O}E&_Y6NEFZeukDGZt@S zH3u{9Zez6sGbFdOnt~aD+gUBZjGpaKHOIEI20+y8VD$ns(sr;~gBeS9uv&o`4|lNo dfEflmp^BSfjB7htL%>qHyI2FkjK*E8@c_5Df6f2^ diff --git a/src/assets/sample-projects/dashboard.zip b/src/assets/sample-projects/dashboard.zip index 4ad2bd8a77f3fe33987250bab5616eb5c7ad6924..8fccb96f3694a1c138700118980e37e6fbe26843 100644 GIT binary patch delta 367 zcmZoUDAsaNj5olWnMH(wfrEiTNi=REuM#tm+Gte91fn;uX8OShW-Mb#gNX36dvSq9 zVg#ijQdL5aSU@6^I^u!>f>zAO-zzm-`tfpW_3yiU64yzeh&Nt-%bBd8}4oM(aFQA28#}Jg8#z`A|mHeAW=K)W!L%fnbK}0@io{KE`Ax delta 367 zcmZoUDAsaNj5olWnMH(wfrEkJr&jDlUL|HAwb7`I2}EyR&Gds2%vi>f1`*+B_u>MJ z#0W}5q^g7-v4BJ-$BS!#=`L|~u!=3>@en;?Qi2c_T5{T86%le;U=^)$eOVwzvsmYL zu};Rrt{~3#JLeeJf`!|AESa|VSTax80T!44#B3b}VztNmuxyX@VP*CQ@unxwW;Fsc zX3S=_05dMnW;F*hc;~R%fEhk>SWUr<78qmC99A>1$k#bgT?TWZy0Yf727smZ&Smui vGq~olT7wxL^H{CGjMjOqK48X`c~Hgb^P!BY`K%#esf+Vj1HlZ{1+4J^)wPES diff --git a/src/assets/sample-projects/explore.zip b/src/assets/sample-projects/explore.zip index 9ddc6357332290e3506dcc57d519f4345a36a9c7..649ce1d73dd316745fc440cd286dec6247930f68 100644 GIT binary patch delta 1873 zcmXw&e@s(X6vqpXzJjGxp-Aa_1-!#W1`;7Ul{pm==P(T17;{;%`$7Lf!-ftq+l(77 zyg?Kxg}y>tD!&Iy_6ylv24gsqMQ4I;8XN?(SQd1sV?<#KZrScT_r5<)`sq2}^S$@n zo(_)Jg$$A~6z=1~Od3sixCX@@{K62X<;drNNn7Ors4w$!0BPk(;Q$54z7M0CccoPT zZKo$!0=(nDp$91H>!;$7FDF7FGj;xF9l&S98v#zuj!Cm)A$WEy^w2*_1s9ESAM-%} z{lNVZ0`%uaE_wx!_8NDKR)3%5BrwHCr@6y$4i5gteHy9gB-a8*A`H70v?Dg?EP9UL z3p3!re*Pnv4?pn|KL=CbI2%7qJtj)|vKZ*dInIAhbxSAsOsY$*=GU2^TI}W>5kMmW zewp5GsGq-0UAhN&uaUZp@u%QU_|g^r13FLsPyE_=s8-JL_hBB%vA~nikq9RdfgKAg zOdo>gy-NKqcu;)deZ3Z*4PTPCIi`?w`7L`oh!2J&jNZ_Z&{=r_uQ5?1LV$hS*~CpyG__hJ30;u544c; zlnO;Ap!ws%X4os7QYXYG!VPl!gsjvka+jBXtXjS>snuw5dHJ=VV8-3og?n14T;xQd zR;SS{>YyT*1W*JXof2I1-HL;P-2i4^&kKpsKvN-N;cB4uW^pDCY@XclUHYvAjix$L z&ZrRM@TLvoVgl6^h)ZjL9VG8O29lfBS$~Dpu@tKW3;NZ1>oVQ8e>1Ee_)lTaE^8eP@cn)gu2N%ooq5{cMelXMu4lE!P3@ObT-1AjwLN;Nu4cQsIt zvSC-{nX_oSQk0V$(9-~=4JZqsy#Z|jm~KE@0nARc8^G>l8lRJuesQ85P_i^Kur)G6 zU!$r~!Q^7j1unD=y6RnM55Nr<+5}*1LiqspCiN^8CYxB7xtaOA(2Sk}v9p<#uBs)y zn;GV~*)>k8Fyuy?p=;62j>weJUdWt~na{AyG)pq`N%x>k(7fSch5--S2$=~FdIlh= zg_UeAXeVR>Dg;~52FS#=viEthmA$G@%}lqlcC(kYzv3m6l0T>H_M!rSJ6@tuGRZzN zy8^HK$jd9xrDlRYa%UxD@iTF;pZPfb#91j__mcq?h-zaa=eMy(@Tf4;#(tf&0E0>u zMpV$9W2HhBT2u(CklM~PZ@06Nhg1mdV3}uCXy`zB@K859*or1}GL54XWkab?h5IUG sbg@l%vkT>bW>AGkDr9%FlGM$7E_btwnR*zM^e|0l56T6fyFDoHe?HVnf&c&j delta 1873 zcmXw&e^69a6vr1H`v8|^6;@gHy#>63jR-QrXewEXh#3xnMP$>`_JjQg9SRL`D#yZx z7mO0i!oG#wW#xC!OuvwB6GRv@jphtmIv5O2pFmKT{{j93*pF^_o}Ys)Xq=TFW*!rzd|51Xv!j*_nB9ht{ zRv6z0%{!I4-Eg7w{JT0WTpPV8=}z7VR^|QnsH7lB<@P9AZr9hqP`!Va>tSMP`G{VL zXeA6vtW;u^5;01|Dq&P&wGwOS@{zb5XM#q9+f7&B07pZGi5e>64^{>Lqh+__v)JLi z^YLX*K+c$M&P@igK4Z>ipW|$i`9K!r9@Lu`S;t+MxlIqbGhOD(6v$>3cCn6*mxTN5 zqTQuJ5xd^`IHCmbFg&(Sx&rfPKnp|FfB_Nn+_ch_J7AhAw zQK${qXcohvBA56{Bpsa+oNSQdfM8>Td^Im5#(?cqh*-D=XroD-i36KQcYd3GGeM)N zPLwk$#5lTTlen0`GzH?)TA)WN#JN$V@ko?EoeR*#ls6pvLRK($5aE6H4Yr z1ZyK2dK*=Z3PvY77dXid=&E;;y#UvpWD9_yiR1&=n$)vYm~6r>Q#1NJ+e{taGni0&%kPBjE%K|Z)6{l`joXU9E6~x*8{1)R{uyFfySElXLU708B0E=t=W44Y0 zvDz~tShiNivl@aKiCF)+MmW?)cdK!7EU zo0KPatI1CPu!>a-tci0qt2C2{8c;lT1PUmH zX)!P)78j?M6zivC7MJK}73(83f~}t(wwl!ktYPVD)&MZ$2aMsphBX8%vSpIWgKc@>#Kl%W!s3R3}7wP3-G3x9HfxRd8{Yk=t! z-0C2D^C#|wOkl<|zETK-Pw*x;Smc#VH6xgjAs58T3btahsg^cKXmYZa7FcS(ay&$r zq8dL7D+kCKnNivl@aKidHRo4ta4yE$mB|KbvXfscb4{;b#mWOV zpbsRGuLhJ*oPK5%D;FeiriZO&^#RK-UCkN*X8eFLyw|XXfJGLqVGRT`zO7-62LM*` BvvL3c diff --git a/src/brackets-min.js b/src/brackets-min.js index 3c708776e..860842a1d 100644 --- a/src/brackets-min.js +++ b/src/brackets-min.js @@ -150535,6 +150535,11 @@ define("view/MainViewManager", function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -150658,6 +150663,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -150731,6 +150737,7 @@ define("view/MainViewManager", function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -150767,6 +150774,7 @@ define("view/MainViewManager", function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -150847,6 +150855,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -151591,6 +151600,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -151729,6 +151739,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -151854,7 +151865,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -151875,6 +151886,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -151892,6 +151904,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -151931,7 +151944,8 @@ define("view/MainViewManager", function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -151956,7 +151970,7 @@ define("view/MainViewManager", function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -151981,7 +151995,7 @@ define("view/MainViewManager", function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -152071,7 +152085,7 @@ define("view/MainViewManager", function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { @@ -152491,6 +152505,7 @@ define("view/Pane", function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -152755,18 +152770,21 @@ define("view/Pane", function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -152832,6 +152850,7 @@ define("view/Pane", function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -152932,7 +152951,7 @@ define("view/Pane", function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -153181,6 +153200,7 @@ define("view/Pane", function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -153507,6 +153527,7 @@ define("view/Pane", function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -153624,6 +153645,7 @@ define("view/Pane", function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -153774,6 +153796,7 @@ define("view/Pane", function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ @@ -153897,6 +153920,7 @@ define("view/Pane", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -153906,10 +153930,29 @@ define("view/Pane", function (require, exports, module) { define("view/PanelView", function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -153994,7 +154037,7 @@ define("view/PanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154029,6 +154072,7 @@ define("view/PanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -154037,10 +154081,28 @@ define("view/PanelView", function (require, exports, module) { define("view/PluginPanelView", function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -154138,7 +154200,7 @@ define("view/PluginPanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154178,6 +154240,8 @@ define("view/PluginPanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -154205,8 +154269,19 @@ define("view/ThemeManager", function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -154228,6 +154303,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -154532,7 +154608,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. @@ -155093,6 +155169,8 @@ define("view/ThemeView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -155189,12 +155267,14 @@ span.brackets-js-hints-with-type-details { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -155454,7 +155534,10 @@ span.brackets-js-hints-with-type-details { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -155499,12 +155582,18 @@ span.brackets-js-hints-with-type-details { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -155532,6 +155621,7 @@ span.brackets-js-hints-with-type-details { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -155651,17 +155741,26 @@ span.brackets-js-hints-with-type-details { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } @@ -155776,7 +155875,8 @@ define("view/ViewStateManager", function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ @@ -155868,21 +155968,43 @@ define("view/WorkspaceManager", function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -155890,28 +156012,33 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -155924,6 +156051,7 @@ define("view/WorkspaceManager", function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -155939,7 +156067,10 @@ define("view/WorkspaceManager", function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -155959,7 +156090,7 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -155976,7 +156107,10 @@ define("view/WorkspaceManager", function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -156001,7 +156135,8 @@ define("view/WorkspaceManager", function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -156118,7 +156253,10 @@ define("view/WorkspaceManager", function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -156196,6 +156334,12 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -156328,7 +156472,17 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); @@ -156353,17 +156507,51 @@ define("view/WorkspaceManager", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + define("widgets/DefaultDialogs", function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; + + /** + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); @@ -156388,6 +156576,8 @@ define("widgets/DefaultDialogs", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -156420,27 +156610,72 @@ define("widgets/Dialogs", function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_PRIMARY = "primary"; /** - * Dialog Buttons Class Names - * @const {string} + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_NORMAL = ""; + + /** + * Left-aligned button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -156456,7 +156691,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -156533,6 +156768,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -156622,6 +156858,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -156630,7 +156867,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -156639,6 +156876,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -156647,6 +156885,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -156656,6 +156895,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -156664,6 +156904,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -156817,6 +157058,14 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -156826,10 +157075,26 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } @@ -156948,10 +157213,33 @@ define("widgets/DropdownButton", function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -157038,7 +157326,6 @@ define("widgets/DropdownButton", function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -157086,6 +157373,7 @@ define("widgets/DropdownButton", function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -157207,7 +157495,9 @@ define("widgets/DropdownButton", function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { @@ -157956,11 +158246,13 @@ define("widgets/ModalBar", function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -158078,6 +158370,7 @@ define("widgets/ModalBar", function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -158091,6 +158384,7 @@ define("widgets/ModalBar", function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { @@ -158201,6 +158495,11 @@ define("widgets/NotificationUI", function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -158209,6 +158508,11 @@ define("widgets/NotificationUI", function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', @@ -158592,7 +158896,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -158646,6 +158950,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp(); diff --git a/src/cacheManifest.json b/src/cacheManifest.json index f5b9af666..540eac411 100644 --- a/src/cacheManifest.json +++ b/src/cacheManifest.json @@ -1,6 +1,6 @@ { - "appConfig.js": "be4be788a60f44a4012f992067f36e5b0e9b23154a6f7b54fb150f18c5117010", - "assets/default-project/en.zip": "2aaee558434cf447488010c1629e5d871eeec19b0dd388ac8ea7c78c9affa491", + "appConfig.js": "385cc2dcc9270e7c8c1f82d38359a37d45ae1d11ad18c50c7ea73e84bbd3ae5d", + "assets/default-project/en.zip": "6b3be3c074d758f89add0edfe6169f0f1c84c37d65d734ed016ce5def8c97919", "assets/default-project/en/images/cloud1.svg": "527399dadfa3357c3ee1a63d6c1c7dda81ecebb832f7383db26f1aaeaf722a8d", "assets/default-project/en/images/cloud2.svg": "8127c63c0987bc674e2d25f7d24ead017853326c1e43d07706fec46091904418", "assets/default-project/en/images/cloud3.svg": "15de53aa41dea3b0f685292814563f97213a9736c3cec2f8e17b5d9d45b3ae3d", @@ -125,7 +125,7 @@ "assets/pwa/32x32.png": "4f8f75bfcdb6efbbed1732f49edab4e292274cdeb1841e285ccc8194f4c9d8ac", "assets/pwa/phoenix.png": "d292bf76d6d61fdece2f97fb4cd71b8b0060d1058e9c1d02c94bfb20da8b7f0d", "assets/pwa/Square284x284Logo.png": "9887c2967039b4fae1214817925f1fb4f9227cba12d37612457c1c8ee1110c67", - "assets/sample-projects/bootstrap-blog.zip": "33eb4ed07770d71846362b1356181ae3f990751d18bf1d4cde7ef567b920202d", + "assets/sample-projects/bootstrap-blog.zip": "11a7f9b296538f542787ff8afc7d283dff516184b67c7e21ba8a4bb697132cbf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/bootstrap-blog/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -135,7 +135,7 @@ "assets/sample-projects/bootstrap-blog/blog.rtl.css": "33f49d02bbcb2e78f019b7582408fad2b5a76a2ecf79fe09d5b3c08c6ee3872b", "assets/sample-projects/bootstrap-blog/index-rtl.html": "c582278884060098ff51b9d350b0739e1a0396debdc76772c62b6ec375b6efcb", "assets/sample-projects/bootstrap-blog/index.html": "f4716c2affa299a27ab6f8c74c22fe67564f1b1d36ff2f0b322672bf0479d739", - "assets/sample-projects/dashboard.zip": "15f4e33cc542b2a17b2c6a2576590d86fb80cf9d65a340738cdf479893ac9207", + "assets/sample-projects/dashboard.zip": "85ba5d86af5841b13f0169cdc7f2741f12ade1e4813592c73954bf254545e0df", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/dashboard/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -147,7 +147,7 @@ "assets/sample-projects/dashboard/index.html": "1fb0c934f816d728cad85e180f78369679dc9edb1eca2d5c625b9360e6264235", "assets/sample-projects/dashboard/signin.css": "083bef710a6170a5112ce257c2ecf8580ca97ce19136d770f10460e5b85862de", "assets/sample-projects/dashboard/signin.html": "8c602e656631aeee624673397c0dc00c339498914ed930ab177478c4662a8d26", - "assets/sample-projects/explore.zip": "5d36207b029b0bbfac3b4f99d819eea6586cb9ae8dc0465b145e6e5b793979db", + "assets/sample-projects/explore.zip": "22925cf817562cf2f8d98779b7498453b1b806ce2904c4d66e956494a0129759", "assets/sample-projects/explore/A-tribute-page.html": "bd510c60f444058b7fcb71d83841f32b1cb5193c1a39421d7739bd6af9fef248", "assets/sample-projects/explore/adjustable-fireworks.html": "11e69bb2dd8708ed8fbf1acc62b0aaaf88c7ffec859ee958dc1ae51cd53ddac8", "assets/sample-projects/explore/ant_colony.html": "bc9435ed1b9868f2fbc7212d526f7532c533a5fdf45da988fa5e575bc5f363b7", @@ -237,7 +237,7 @@ "assets/sample-projects/explore/watermelon-pixel.html": "765a3fbffb5db97910512fbabaa7c55c0b52dc8eedfcc630811be39d0af98663", "assets/sample-projects/explore/webmine.html": "6b808f52812dc03db28483411500c04daf8ee0226f535c600a36999d6b7837c0", "assets/sample-projects/explore/whack-a-mole.html": "25be94a3640553b4801f80edd49998bae3a360988e8a26ff3bdfdc2a76b77191", - "assets/sample-projects/home-pages.zip": "788d50571c283b36a7001dee1332073c0628f409916c5429901f278b8a0b2760", + "assets/sample-projects/home-pages.zip": "fbb623bc259d796fcf3f19486f552a609851c89093d8fcadcac587cbe2506bc3", "assets/sample-projects/home-pages/album/index.html": "e29a1e96644bc17bab1a7e3724e822d65a479e10df182725ee1afa916efbfdc1", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", @@ -249,7 +249,7 @@ "assets/sample-projects/home-pages/carousel/index.html": "235d650043a09f2954f24e4659f64d99ef3988858567fb2221fb1cf34df057e6", "assets/sample-projects/home-pages/cover/cover.css": "2fbb596077c570cad7ee9e98fb88f5665e0ecfc11e7085c3e04639ad03f7bc10", "assets/sample-projects/home-pages/cover/index.html": "759214701ff759432711b3421d80aca692c7a2b4c978c516a0bcd0c81a43f381", - "assets/sample-projects/HTML5.zip": "c5fd6821a5a5d5e86e3e4d3b3f71cc7c0a997816c54eb83544dbf0feea550cf2", + "assets/sample-projects/HTML5.zip": "19eae80598c9037a1c7842bde100ea5e1c6eec1281ca66a9d5bc4cdeb85d1ba2", "assets/sample-projects/HTML5/index.html": "2dc94c7d3e33aeeb44ec4f75bc7df86a5fd19f3121f2fd3638636fbf7c476c6a", "assets/sample-projects/HTML5/script.js": "c49e4b01cded4defbc21f5d5d0102719ce4cccbe1b9cb19f9232c5a05df658da", "assets/sample-projects/HTML5/styles.css": "744b85a9c31affbb00976694c4b9c9149b31e575ed9efdec386231d062ae93f2", @@ -257,11 +257,11 @@ "assets/sample-projects/zips/bootstrap.zip": "6f10407c00ce5d598e77f890528743dc645bc28014335483992b481e63fd7b97", "base-config/keyboard.json": "f3380c609a293a95644965958286b31863d733293824d56b7087fa0ce4c2d618", "base-config/readme-keyboard.md": "27e98128176dbd060e93b1f321a4ddcd609571b7b8eb8c9112588f4767d08a03", - "brackets-min.js": "316255803d76c5eac5113188294dc6a4246bdfe70e654646c56aac42652c7a88", + "brackets-min.js": "a2b9df20210a74da94f55b82e4c8d38111ea1748c4a1daac065ea27bcb4ba3e0", "brackets.config.dist.json": "8faa5c0a82bb4f49784e93d1225dbd5e1fd8ec6ab07b95f5f874c7c7bd7bb234", "brackets.config.staging.json": "c0e1f22c772c80f4f5756ab947e40538bcaf7fb7f8925834cfd4ef57c55e477a", "brackets.js": "f7a3164510e76e012591c9758acb47f2445526642503180c57209d30faa24d69", - "cacheManifest.json": "5922554792f6188f81969d301aa04a398b6c9ebd9167ea45be720bbaa8600247", + "cacheManifest.json": "4652cbca5ad8a64923b31bb0057dbf818aa78ee3f16c2913d946c027aa0ee066", "command/ChangeShortcutTemplate.html": "345d682d8bde29380822824778cf09acc79affae6e82b9db00c6205b2b3dd2ee", "command/CommandManager.js": "ecd5ccb7ffacb8fa24b6c284f5a19576e774f204746dbef75872992becbe5fb0", "command/Commands.js": "99fa4895ba13713db0bf8c3d14ba57969ffbfe236ea29bebb309c5e367524d7d", @@ -270,7 +270,7 @@ "command/KeyboardOverlayMode.js": "8ed49bc8728a109e3850d8ad2df374b51021f24a65811ac826210a1adcdbbb56", "command/Keys.js": "31cd87a01ce41de28e56ccbdd4fa14866cccc2b7bcde61c5134095adaa5cb674", "command/Menus.js": "729fd0ba4969590acafbfee188101244f7c2113b49c3617985f1d12544cee52e", - "config.json": "1f77a154fa6c48dff8113fe56005d98e9c384226bb622361b160647bc7624856", + "config.json": "f71c74386195f142a07523d92628aa3367e3d4a84853568e5cac7bd33a8920cc", "desktop-metrics.html": "66f87550ddf04f284a6c1e81567b7dfbefb2b8007f48f0bad7d8f7aacdb11bac", "devEnable.html": "44aa1a496a8be413299f651e6b0c3e62ac50cd5d40126ad1bb6b70b9b2b818c4", "document/ChangedDocumentTracker.js": "03b0eaf0995fee6d27c782a8028a1314f61214e383f5f5e198320b2faac4cf40", @@ -1763,16 +1763,16 @@ "verify-dependencies-loaded.js": "98f5fd53dafdb1c319a1cfe6ae316deda6bf30019663925bc2b4c4a592b3b3ed", "view/fontrules/font-based-rules.less": "ae3a98c651522d06b43a0b5e1bbf28bda59c34bcce23d025b6c0f0d2fe445de7", "view/MainViewFactory.js": "5156ee0a57341256819d3c5288a8c89cebf22d3a6269f43ca30cd661a5d659df", - "view/MainViewManager.js": "61a33edcec4735f734ec62f5b564ca6d221ae82ad7d890abfdd7c0e8e20b6a1f", - "view/Pane.js": "0c77d8f64d54297af26fa5c3621af2598c71cb9f8957408532c01bd131e5c7f7", - "view/PanelView.js": "e70d00d7a76c8adfdf17d2b3eaf21c409ed69e170d997c2f77daa83c28d065de", - "view/PluginPanelView.js": "c272385acb8a9213fb231b7e55442ecc28d9f75f2853e745b6d810110d181623", - "view/ThemeManager.js": "de703acae34b5f6741e93e9a5de7cce9af6c41e6c52d8cb6396c96b35054cab3", + "view/MainViewManager.js": "6ce89e63d68117b9bdc94941954adf0b210e0cae264d3861bf557a99875e84df", + "view/Pane.js": "3b60e5fb7aaf865ba743c48c410f7bb27c2a3cb7e65e0da55bbec7396d366601", + "view/PanelView.js": "6caf159a2500a23e0957707e60cc029a5e6fbdc733e04670a4dd4c3aff6847a2", + "view/PluginPanelView.js": "1f313d224d8fe121a9347c1035da5e69e1b7309e4e26331009b15a52466530d5", + "view/ThemeManager.js": "5ed6e2148d38feb13258470ddf831e86b2224b2be7e676bdf70c0886c742d0cb", "view/ThemeSettings.js": "b1823abbb2043ff19babfbb51b72076975db6d39f9928387bf40c3080e422511", "view/ThemeView.js": "e958ecb95d48f08e79d4082eaa957512d67d3845b23d29496e207762ac39c62b", - "view/ViewCommandHandlers.js": "88b3346b729e6d5b65e5e71a7dff3b0ae2eadc2f331500ec3ba2b71bab7b9a47", - "view/ViewStateManager.js": "6d87c1612a8436f6d828509029ca24c9e9e65a4afc4213771ae0c6a057c823a2", - "view/WorkspaceManager.js": "3bb72ea86714af9108fb5f7b898f429a48115257f87615b63ec8dff45dc939f5", + "view/ViewCommandHandlers.js": "f175b2dea61627fa99312c3b0a92b6770fe0af71823ddc2aeb8028d2b704339a", + "view/ViewStateManager.js": "92a2a04cdfb9bf394125662d950405287263786aa73d56da05a37d47505a702a", + "view/WorkspaceManager.js": "3efbf6502abe30991705d6f96f99bb9c9bd05c298e53796b99148fd3a1f3439a", "virtual-server-main.js": "8738b7477f1e42295d7305ef4bdbc0303b37c29fffe86522c73124b34ab15448", "widgets/bootstrap-alerts.js": "df642f7d793199d1abf0730312ad28a89cc2010f17c27dcae48faef97ac6ea45", "widgets/bootstrap-button.js": "815bd5b4dffe890f135f6d375b42a87a9911cf107cf24c70313fc88ffdecbec0", @@ -1783,15 +1783,15 @@ "widgets/bootstrap-tab.js": "2ffae170607365ae77f3e6d247dab0157b31f5ae9f368775c08c6eeebf66102a", "widgets/bootstrap-tooltip.js": "21f5003f2ff159eddd0d5a1a75738d0c9d710b338b38c93e71f7c7cbb09bcadd", "widgets/bootstrap-twipsy-mod.js": "3e57a1d781e6308fddf2dd7f14f5d6746741dfbaf2a07f800135754caaa85645", - "widgets/DefaultDialogs.js": "9c2d21e1e7ef69050f73cb9d2e3ff9cea8f4b9175575b44125cbba289eee3e4c", - "widgets/Dialogs.js": "a64a7f4f6824c62a560ce08d07a469b520e35ca3d81f3b92a608e9546152552d", - "widgets/DropdownButton.js": "a34f4d227b3f1f1996bb6fe1d3868d14eef16e67e26429996bf45e4cde1ce15d", + "widgets/DefaultDialogs.js": "273f569b0d6e4cc6d68e623ba41bce3b7637a60da20631cca89a246abe90f0de", + "widgets/Dialogs.js": "099ebd07a4da618c4dbc0bf5b1faa92596e9b71eaad6776e5ce22ace480cb9ec", + "widgets/DropdownButton.js": "25ce5b4397547e5f9899b0a893918dc6c25d3071e9d8001801db1186da476427", "widgets/html/toast-popup.html": "7b37d47271f5b8bd565235f984c4205fff394208c99ac31b2ce6f8dffb6ca3dc", "widgets/infobar.js": "57d512952235998745b1c01fd9d2dd3b054bed54671470902aa83172168c234c", "widgets/InlineMenu.js": "b1f02dc10678ca4cf0dd4a1a6512fb16600adb0faa0f461d20edddcef1f4a7d7", - "widgets/ModalBar.js": "dc422180fda4c534679b110c6b897ace9a44ecd588f5c18e91605200b554ca9b", - "widgets/NotificationUI.js": "a74366a131b1f8e5dd5741df34beea5afa61e1ec46534bc216c3d0fe1495f384", - "widgets/PopUpManager.js": "f672649cab57f1a660006ada5e34c89536eead870909c409a4ade212fb673947", + "widgets/ModalBar.js": "fce131bf57f92d733f86ae5ee51f18f68d40af0af30dacf041704d16fb632960", + "widgets/NotificationUI.js": "6307c92754315f3f31f09d22b626afa933a68291b05093e842181c278dbb97b8", + "widgets/PopUpManager.js": "530941ac8f482cde29e6474e6b1de092046e897daf419fe11b869ddbad511a50", "widgets/StatusBar.js": "666179a4ed7c512246db2a162db7400600ea0bf442d42cfad473c3667186857c", "worker/extensions-worker-thread.js": "e819ddc615de8ddb5547aa4be4e5943524f4f373ff49a0c7c2fa8469a0f3361d", "worker/ExtensionsWorker.js": "5ba848bf08c36a7fd0d265aac38265537908e50643859748064ba6b3d74d6991", diff --git a/src/config.json b/src/config.json index 1465f02d4..079750f71 100644 --- a/src/config.json +++ b/src/config.json @@ -25,7 +25,7 @@ "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -37,7 +37,7 @@ "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/src/view/MainViewManager.js b/src/view/MainViewManager.js index e652117a2..9a437adfd 100644 --- a/src/view/MainViewManager.js +++ b/src/view/MainViewManager.js @@ -97,6 +97,11 @@ define(function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -220,6 +225,7 @@ define(function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -293,6 +299,7 @@ define(function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -329,6 +336,7 @@ define(function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -409,6 +417,7 @@ define(function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -1153,6 +1162,7 @@ define(function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -1291,6 +1301,7 @@ define(function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -1416,7 +1427,7 @@ define(function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -1437,6 +1448,7 @@ define(function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -1454,6 +1466,7 @@ define(function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -1493,7 +1506,8 @@ define(function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -1518,7 +1532,7 @@ define(function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -1543,7 +1557,7 @@ define(function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -1633,7 +1647,7 @@ define(function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { diff --git a/src/view/Pane.js b/src/view/Pane.js index 82fb6e275..b25e0673b 100644 --- a/src/view/Pane.js +++ b/src/view/Pane.js @@ -200,6 +200,7 @@ define(function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -464,18 +465,21 @@ define(function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -541,6 +545,7 @@ define(function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -641,7 +646,7 @@ define(function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -890,6 +895,7 @@ define(function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -1216,6 +1222,7 @@ define(function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -1333,6 +1340,7 @@ define(function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -1483,6 +1491,7 @@ define(function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ diff --git a/src/view/PanelView.js b/src/view/PanelView.js index c237b19f1..d3c6e266f 100644 --- a/src/view/PanelView.js +++ b/src/view/PanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -25,10 +26,29 @@ define(function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -113,7 +133,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/src/view/PluginPanelView.js b/src/view/PluginPanelView.js index e1a8ec4a3..8d1e829a4 100644 --- a/src/view/PluginPanelView.js +++ b/src/view/PluginPanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -24,10 +25,28 @@ define(function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -125,7 +144,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/src/view/ThemeManager.js b/src/view/ThemeManager.js index 6360d52e0..4a06887db 100644 --- a/src/view/ThemeManager.js +++ b/src/view/ThemeManager.js @@ -21,6 +21,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -48,8 +50,19 @@ define(function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -71,6 +84,7 @@ define(function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -375,7 +389,7 @@ define(function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. diff --git a/src/view/ViewCommandHandlers.js b/src/view/ViewCommandHandlers.js index 7a4c6045c..280d1b6f3 100644 --- a/src/view/ViewCommandHandlers.js +++ b/src/view/ViewCommandHandlers.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -75,12 +77,14 @@ define(function (require, exports, module) { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -340,7 +344,10 @@ define(function (require, exports, module) { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -385,12 +392,18 @@ define(function (require, exports, module) { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -418,6 +431,7 @@ define(function (require, exports, module) { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -537,17 +551,26 @@ define(function (require, exports, module) { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } diff --git a/src/view/ViewStateManager.js b/src/view/ViewStateManager.js index 0d3f4cfcf..d4a371831 100644 --- a/src/view/ViewStateManager.js +++ b/src/view/ViewStateManager.js @@ -52,7 +52,8 @@ define(function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ diff --git a/src/view/WorkspaceManager.js b/src/view/WorkspaceManager.js index 2458d69b4..bfab7b05d 100644 --- a/src/view/WorkspaceManager.js +++ b/src/view/WorkspaceManager.js @@ -44,21 +44,43 @@ define(function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -66,28 +88,33 @@ define(function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -100,6 +127,7 @@ define(function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -115,7 +143,10 @@ define(function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -135,7 +166,7 @@ define(function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -152,7 +183,10 @@ define(function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -177,7 +211,8 @@ define(function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -294,7 +329,10 @@ define(function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -372,6 +410,12 @@ define(function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -504,6 +548,16 @@ define(function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); diff --git a/src/web-cache/3.10.0/appConfig.js b/src/web-cache/3.10.0/appConfig.js index 4b6e66d6a..d341b6b12 100644 --- a/src/web-cache/3.10.0/appConfig.js +++ b/src/web-cache/3.10.0/appConfig.js @@ -26,7 +26,7 @@ window.AppConfig = { "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -38,7 +38,7 @@ window.AppConfig = { "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/src/web-cache/3.10.0/assets/default-project/en.zip b/src/web-cache/3.10.0/assets/default-project/en.zip index 235ae21c38a4057674972944e0242f7fe89a1005..323b886aff8492ffe44c5a3bcdf716bba36ab6ff 100644 GIT binary patch delta 287 zcmX@q$a$!dlQ+PdnMH(wfrEoVNi=RF?>YfyAU%1XfD(w_{8+$_8O%@-@nHlribdI3 zz>HeSr(9r0s)`6Nm{DW6n-9#ea(D<4k@L%91&eeC%TER~);^2v1u?esmN1%%f?2Me zj9p;m+b>OHR9*%WoBqRw$qCG`wPi8_Gm31POu>v*woE2q#zUBhq#ctDSR?|*m=0rH lgE2(yp$10TGdX}2&$VZAgqUN`4L6pOO6 zfEl%tPr1O1R230kFr&tBHy@Z`S3u0{NEnzej1+!c` z8N0yBw_lpZsJsj$HvNYUlM|R>Ys+K=W)#^nnSvRsY?(~JjE680NjoMRut)@qF&)OZ l24jfYLk*0wXL0~5o@>wK2r_%QTMrI&AS&VTZnBK+c2Bw*rOu@7@lL?qEVzLJS D3ycy9 diff --git a/src/web-cache/3.10.0/assets/sample-projects/bootstrap-blog.zip b/src/web-cache/3.10.0/assets/sample-projects/bootstrap-blog.zip index 74b03ede6240b99a49fff1d25772c6e6db9bb0ae..e97797e085ae2a6b93e24ed451aaa9b0caeb1901 100644 GIT binary patch delta 331 zcmaFxRqVl6G2Q@gW)=|!1`Y-WCDFKvyh_YKYNHV|6Nuhy!Ss$1%+O>xC2J3vDp1YpDfR5oOtz1!6S6UcCMFV#dR+AkOxU zFB#W@h1(NDn6@W|Fi+S47XQM-VjTrywHu|gY&S}0W%dX0rdw=dH3Bnox3L<78H=~E znu8g4x3OA+8Is#sO~H)7?W`7HM$dMrnq%8p10ZU4uzGpIWgKd6k%f)J7v_CJ?>Zg6SP2n4!sXPzKC+tKcFC zVoWwM(g4%(M(SXRPNR5;p4TRVEMS@c7TRE1*HR0tBFeHa3&d!Cy?FcU#f*ntL7eRy zUox%*3%4hRFl|o^VV051%Ipu~O}E&_Y6NEFZeukDGZt@S zH3u{9Zez6sGbFdOnt~aD+gUBZjGpaKHOIEI20+y8VD$ns(sr;~gBeS9uv&o`4|lNo dfEflmp^BSfjB7htL%>qHyI2FkjK*E8@c_5Df6f2^ diff --git a/src/web-cache/3.10.0/assets/sample-projects/dashboard.zip b/src/web-cache/3.10.0/assets/sample-projects/dashboard.zip index 4ad2bd8a77f3fe33987250bab5616eb5c7ad6924..8fccb96f3694a1c138700118980e37e6fbe26843 100644 GIT binary patch delta 367 zcmZoUDAsaNj5olWnMH(wfrEiTNi=REuM#tm+Gte91fn;uX8OShW-Mb#gNX36dvSq9 zVg#ijQdL5aSU@6^I^u!>f>zAO-zzm-`tfpW_3yiU64yzeh&Nt-%bBd8}4oM(aFQA28#}Jg8#z`A|mHeAW=K)W!L%fnbK}0@io{KE`Ax delta 367 zcmZoUDAsaNj5olWnMH(wfrEkJr&jDlUL|HAwb7`I2}EyR&Gds2%vi>f1`*+B_u>MJ z#0W}5q^g7-v4BJ-$BS!#=`L|~u!=3>@en;?Qi2c_T5{T86%le;U=^)$eOVwzvsmYL zu};Rrt{~3#JLeeJf`!|AESa|VSTax80T!44#B3b}VztNmuxyX@VP*CQ@unxwW;Fsc zX3S=_05dMnW;F*hc;~R%fEhk>SWUr<78qmC99A>1$k#bgT?TWZy0Yf727smZ&Smui vGq~olT7wxL^H{CGjMjOqK48X`c~Hgb^P!BY`K%#esf+Vj1HlZ{1+4J^)wPES diff --git a/src/web-cache/3.10.0/assets/sample-projects/explore.zip b/src/web-cache/3.10.0/assets/sample-projects/explore.zip index 9ddc6357332290e3506dcc57d519f4345a36a9c7..649ce1d73dd316745fc440cd286dec6247930f68 100644 GIT binary patch delta 1873 zcmXw&e@s(X6vqpXzJjGxp-Aa_1-!#W1`;7Ul{pm==P(T17;{;%`$7Lf!-ftq+l(77 zyg?Kxg}y>tD!&Iy_6ylv24gsqMQ4I;8XN?(SQd1sV?<#KZrScT_r5<)`sq2}^S$@n zo(_)Jg$$A~6z=1~Od3sixCX@@{K62X<;drNNn7Ors4w$!0BPk(;Q$54z7M0CccoPT zZKo$!0=(nDp$91H>!;$7FDF7FGj;xF9l&S98v#zuj!Cm)A$WEy^w2*_1s9ESAM-%} z{lNVZ0`%uaE_wx!_8NDKR)3%5BrwHCr@6y$4i5gteHy9gB-a8*A`H70v?Dg?EP9UL z3p3!re*Pnv4?pn|KL=CbI2%7qJtj)|vKZ*dInIAhbxSAsOsY$*=GU2^TI}W>5kMmW zewp5GsGq-0UAhN&uaUZp@u%QU_|g^r13FLsPyE_=s8-JL_hBB%vA~nikq9RdfgKAg zOdo>gy-NKqcu;)deZ3Z*4PTPCIi`?w`7L`oh!2J&jNZ_Z&{=r_uQ5?1LV$hS*~CpyG__hJ30;u544c; zlnO;Ap!ws%X4os7QYXYG!VPl!gsjvka+jBXtXjS>snuw5dHJ=VV8-3og?n14T;xQd zR;SS{>YyT*1W*JXof2I1-HL;P-2i4^&kKpsKvN-N;cB4uW^pDCY@XclUHYvAjix$L z&ZrRM@TLvoVgl6^h)ZjL9VG8O29lfBS$~Dpu@tKW3;NZ1>oVQ8e>1Ee_)lTaE^8eP@cn)gu2N%ooq5{cMelXMu4lE!P3@ObT-1AjwLN;Nu4cQsIt zvSC-{nX_oSQk0V$(9-~=4JZqsy#Z|jm~KE@0nARc8^G>l8lRJuesQ85P_i^Kur)G6 zU!$r~!Q^7j1unD=y6RnM55Nr<+5}*1LiqspCiN^8CYxB7xtaOA(2Sk}v9p<#uBs)y zn;GV~*)>k8Fyuy?p=;62j>weJUdWt~na{AyG)pq`N%x>k(7fSch5--S2$=~FdIlh= zg_UeAXeVR>Dg;~52FS#=viEthmA$G@%}lqlcC(kYzv3m6l0T>H_M!rSJ6@tuGRZzN zy8^HK$jd9xrDlRYa%UxD@iTF;pZPfb#91j__mcq?h-zaa=eMy(@Tf4;#(tf&0E0>u zMpV$9W2HhBT2u(CklM~PZ@06Nhg1mdV3}uCXy`zB@K859*or1}GL54XWkab?h5IUG sbg@l%vkT>bW>AGkDr9%FlGM$7E_btwnR*zM^e|0l56T6fyFDoHe?HVnf&c&j delta 1873 zcmXw&e^69a6vr1H`v8|^6;@gHy#>63jR-QrXewEXh#3xnMP$>`_JjQg9SRL`D#yZx z7mO0i!oG#wW#xC!OuvwB6GRv@jphtmIv5O2pFmKT{{j93*pF^_o}Ys)Xq=TFW*!rzd|51Xv!j*_nB9ht{ zRv6z0%{!I4-Eg7w{JT0WTpPV8=}z7VR^|QnsH7lB<@P9AZr9hqP`!Va>tSMP`G{VL zXeA6vtW;u^5;01|Dq&P&wGwOS@{zb5XM#q9+f7&B07pZGi5e>64^{>Lqh+__v)JLi z^YLX*K+c$M&P@igK4Z>ipW|$i`9K!r9@Lu`S;t+MxlIqbGhOD(6v$>3cCn6*mxTN5 zqTQuJ5xd^`IHCmbFg&(Sx&rfPKnp|FfB_Nn+_ch_J7AhAw zQK${qXcohvBA56{Bpsa+oNSQdfM8>Td^Im5#(?cqh*-D=XroD-i36KQcYd3GGeM)N zPLwk$#5lTTlen0`GzH?)TA)WN#JN$V@ko?EoeR*#ls6pvLRK($5aE6H4Yr z1ZyK2dK*=Z3PvY77dXid=&E;;y#UvpWD9_yiR1&=n$)vYm~6r>Q#1NJ+e{taGni0&%kPBjE%K|Z)6{l`joXU9E6~x*8{1)R{uyFfySElXLU708B0E=t=W44Y0 zvDz~tShiNivl@aKiCF)+MmW?)cdK!7EU zo0KPatI1CPu!>a-tci0qt2C2{8c;lT1PUmH zX)!P)78j?M6zivC7MJK}73(83f~}t(wwl!ktYPVD)&MZ$2aMsphBX8%vSpIWgKc@>#Kl%W!s3R3}7wP3-G3x9HfxRd8{Yk=t! z-0C2D^C#|wOkl<|zETK-Pw*x;Smc#VH6xgjAs58T3btahsg^cKXmYZa7FcS(ay&$r zq8dL7D+kCKnNivl@aKidHRo4ta4yE$mB|KbvXfscb4{;b#mWOV zpbsRGuLhJ*oPK5%D;FeiriZO&^#RK-UCkN*X8eFLyw|XXfJGLqVGRT`zO7-62LM*` BvvL3c diff --git a/src/web-cache/3.10.0/brackets-min.js b/src/web-cache/3.10.0/brackets-min.js index 3c708776e..860842a1d 100644 --- a/src/web-cache/3.10.0/brackets-min.js +++ b/src/web-cache/3.10.0/brackets-min.js @@ -150535,6 +150535,11 @@ define("view/MainViewManager", function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -150658,6 +150663,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -150731,6 +150737,7 @@ define("view/MainViewManager", function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -150767,6 +150774,7 @@ define("view/MainViewManager", function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -150847,6 +150855,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -151591,6 +151600,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -151729,6 +151739,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -151854,7 +151865,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -151875,6 +151886,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -151892,6 +151904,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -151931,7 +151944,8 @@ define("view/MainViewManager", function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -151956,7 +151970,7 @@ define("view/MainViewManager", function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -151981,7 +151995,7 @@ define("view/MainViewManager", function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -152071,7 +152085,7 @@ define("view/MainViewManager", function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { @@ -152491,6 +152505,7 @@ define("view/Pane", function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -152755,18 +152770,21 @@ define("view/Pane", function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -152832,6 +152850,7 @@ define("view/Pane", function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -152932,7 +152951,7 @@ define("view/Pane", function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -153181,6 +153200,7 @@ define("view/Pane", function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -153507,6 +153527,7 @@ define("view/Pane", function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -153624,6 +153645,7 @@ define("view/Pane", function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -153774,6 +153796,7 @@ define("view/Pane", function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ @@ -153897,6 +153920,7 @@ define("view/Pane", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -153906,10 +153930,29 @@ define("view/Pane", function (require, exports, module) { define("view/PanelView", function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -153994,7 +154037,7 @@ define("view/PanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154029,6 +154072,7 @@ define("view/PanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -154037,10 +154081,28 @@ define("view/PanelView", function (require, exports, module) { define("view/PluginPanelView", function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -154138,7 +154200,7 @@ define("view/PluginPanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154178,6 +154240,8 @@ define("view/PluginPanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -154205,8 +154269,19 @@ define("view/ThemeManager", function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -154228,6 +154303,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -154532,7 +154608,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. @@ -155093,6 +155169,8 @@ define("view/ThemeView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -155189,12 +155267,14 @@ span.brackets-js-hints-with-type-details { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -155454,7 +155534,10 @@ span.brackets-js-hints-with-type-details { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -155499,12 +155582,18 @@ span.brackets-js-hints-with-type-details { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -155532,6 +155621,7 @@ span.brackets-js-hints-with-type-details { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -155651,17 +155741,26 @@ span.brackets-js-hints-with-type-details { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } @@ -155776,7 +155875,8 @@ define("view/ViewStateManager", function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ @@ -155868,21 +155968,43 @@ define("view/WorkspaceManager", function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -155890,28 +156012,33 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -155924,6 +156051,7 @@ define("view/WorkspaceManager", function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -155939,7 +156067,10 @@ define("view/WorkspaceManager", function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -155959,7 +156090,7 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -155976,7 +156107,10 @@ define("view/WorkspaceManager", function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -156001,7 +156135,8 @@ define("view/WorkspaceManager", function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -156118,7 +156253,10 @@ define("view/WorkspaceManager", function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -156196,6 +156334,12 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -156328,7 +156472,17 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); @@ -156353,17 +156507,51 @@ define("view/WorkspaceManager", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + define("widgets/DefaultDialogs", function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; + + /** + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); @@ -156388,6 +156576,8 @@ define("widgets/DefaultDialogs", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -156420,27 +156610,72 @@ define("widgets/Dialogs", function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_PRIMARY = "primary"; /** - * Dialog Buttons Class Names - * @const {string} + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_NORMAL = ""; + + /** + * Left-aligned button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -156456,7 +156691,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -156533,6 +156768,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -156622,6 +156858,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -156630,7 +156867,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -156639,6 +156876,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -156647,6 +156885,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -156656,6 +156895,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -156664,6 +156904,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -156817,6 +157058,14 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -156826,10 +157075,26 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } @@ -156948,10 +157213,33 @@ define("widgets/DropdownButton", function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -157038,7 +157326,6 @@ define("widgets/DropdownButton", function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -157086,6 +157373,7 @@ define("widgets/DropdownButton", function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -157207,7 +157495,9 @@ define("widgets/DropdownButton", function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { @@ -157956,11 +158246,13 @@ define("widgets/ModalBar", function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -158078,6 +158370,7 @@ define("widgets/ModalBar", function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -158091,6 +158384,7 @@ define("widgets/ModalBar", function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { @@ -158201,6 +158495,11 @@ define("widgets/NotificationUI", function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -158209,6 +158508,11 @@ define("widgets/NotificationUI", function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', @@ -158592,7 +158896,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -158646,6 +158950,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp(); diff --git a/src/web-cache/3.10.0/cacheManifest.json b/src/web-cache/3.10.0/cacheManifest.json index f5b9af666..540eac411 100644 --- a/src/web-cache/3.10.0/cacheManifest.json +++ b/src/web-cache/3.10.0/cacheManifest.json @@ -1,6 +1,6 @@ { - "appConfig.js": "be4be788a60f44a4012f992067f36e5b0e9b23154a6f7b54fb150f18c5117010", - "assets/default-project/en.zip": "2aaee558434cf447488010c1629e5d871eeec19b0dd388ac8ea7c78c9affa491", + "appConfig.js": "385cc2dcc9270e7c8c1f82d38359a37d45ae1d11ad18c50c7ea73e84bbd3ae5d", + "assets/default-project/en.zip": "6b3be3c074d758f89add0edfe6169f0f1c84c37d65d734ed016ce5def8c97919", "assets/default-project/en/images/cloud1.svg": "527399dadfa3357c3ee1a63d6c1c7dda81ecebb832f7383db26f1aaeaf722a8d", "assets/default-project/en/images/cloud2.svg": "8127c63c0987bc674e2d25f7d24ead017853326c1e43d07706fec46091904418", "assets/default-project/en/images/cloud3.svg": "15de53aa41dea3b0f685292814563f97213a9736c3cec2f8e17b5d9d45b3ae3d", @@ -125,7 +125,7 @@ "assets/pwa/32x32.png": "4f8f75bfcdb6efbbed1732f49edab4e292274cdeb1841e285ccc8194f4c9d8ac", "assets/pwa/phoenix.png": "d292bf76d6d61fdece2f97fb4cd71b8b0060d1058e9c1d02c94bfb20da8b7f0d", "assets/pwa/Square284x284Logo.png": "9887c2967039b4fae1214817925f1fb4f9227cba12d37612457c1c8ee1110c67", - "assets/sample-projects/bootstrap-blog.zip": "33eb4ed07770d71846362b1356181ae3f990751d18bf1d4cde7ef567b920202d", + "assets/sample-projects/bootstrap-blog.zip": "11a7f9b296538f542787ff8afc7d283dff516184b67c7e21ba8a4bb697132cbf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/bootstrap-blog/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -135,7 +135,7 @@ "assets/sample-projects/bootstrap-blog/blog.rtl.css": "33f49d02bbcb2e78f019b7582408fad2b5a76a2ecf79fe09d5b3c08c6ee3872b", "assets/sample-projects/bootstrap-blog/index-rtl.html": "c582278884060098ff51b9d350b0739e1a0396debdc76772c62b6ec375b6efcb", "assets/sample-projects/bootstrap-blog/index.html": "f4716c2affa299a27ab6f8c74c22fe67564f1b1d36ff2f0b322672bf0479d739", - "assets/sample-projects/dashboard.zip": "15f4e33cc542b2a17b2c6a2576590d86fb80cf9d65a340738cdf479893ac9207", + "assets/sample-projects/dashboard.zip": "85ba5d86af5841b13f0169cdc7f2741f12ade1e4813592c73954bf254545e0df", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/dashboard/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -147,7 +147,7 @@ "assets/sample-projects/dashboard/index.html": "1fb0c934f816d728cad85e180f78369679dc9edb1eca2d5c625b9360e6264235", "assets/sample-projects/dashboard/signin.css": "083bef710a6170a5112ce257c2ecf8580ca97ce19136d770f10460e5b85862de", "assets/sample-projects/dashboard/signin.html": "8c602e656631aeee624673397c0dc00c339498914ed930ab177478c4662a8d26", - "assets/sample-projects/explore.zip": "5d36207b029b0bbfac3b4f99d819eea6586cb9ae8dc0465b145e6e5b793979db", + "assets/sample-projects/explore.zip": "22925cf817562cf2f8d98779b7498453b1b806ce2904c4d66e956494a0129759", "assets/sample-projects/explore/A-tribute-page.html": "bd510c60f444058b7fcb71d83841f32b1cb5193c1a39421d7739bd6af9fef248", "assets/sample-projects/explore/adjustable-fireworks.html": "11e69bb2dd8708ed8fbf1acc62b0aaaf88c7ffec859ee958dc1ae51cd53ddac8", "assets/sample-projects/explore/ant_colony.html": "bc9435ed1b9868f2fbc7212d526f7532c533a5fdf45da988fa5e575bc5f363b7", @@ -237,7 +237,7 @@ "assets/sample-projects/explore/watermelon-pixel.html": "765a3fbffb5db97910512fbabaa7c55c0b52dc8eedfcc630811be39d0af98663", "assets/sample-projects/explore/webmine.html": "6b808f52812dc03db28483411500c04daf8ee0226f535c600a36999d6b7837c0", "assets/sample-projects/explore/whack-a-mole.html": "25be94a3640553b4801f80edd49998bae3a360988e8a26ff3bdfdc2a76b77191", - "assets/sample-projects/home-pages.zip": "788d50571c283b36a7001dee1332073c0628f409916c5429901f278b8a0b2760", + "assets/sample-projects/home-pages.zip": "fbb623bc259d796fcf3f19486f552a609851c89093d8fcadcac587cbe2506bc3", "assets/sample-projects/home-pages/album/index.html": "e29a1e96644bc17bab1a7e3724e822d65a479e10df182725ee1afa916efbfdc1", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", @@ -249,7 +249,7 @@ "assets/sample-projects/home-pages/carousel/index.html": "235d650043a09f2954f24e4659f64d99ef3988858567fb2221fb1cf34df057e6", "assets/sample-projects/home-pages/cover/cover.css": "2fbb596077c570cad7ee9e98fb88f5665e0ecfc11e7085c3e04639ad03f7bc10", "assets/sample-projects/home-pages/cover/index.html": "759214701ff759432711b3421d80aca692c7a2b4c978c516a0bcd0c81a43f381", - "assets/sample-projects/HTML5.zip": "c5fd6821a5a5d5e86e3e4d3b3f71cc7c0a997816c54eb83544dbf0feea550cf2", + "assets/sample-projects/HTML5.zip": "19eae80598c9037a1c7842bde100ea5e1c6eec1281ca66a9d5bc4cdeb85d1ba2", "assets/sample-projects/HTML5/index.html": "2dc94c7d3e33aeeb44ec4f75bc7df86a5fd19f3121f2fd3638636fbf7c476c6a", "assets/sample-projects/HTML5/script.js": "c49e4b01cded4defbc21f5d5d0102719ce4cccbe1b9cb19f9232c5a05df658da", "assets/sample-projects/HTML5/styles.css": "744b85a9c31affbb00976694c4b9c9149b31e575ed9efdec386231d062ae93f2", @@ -257,11 +257,11 @@ "assets/sample-projects/zips/bootstrap.zip": "6f10407c00ce5d598e77f890528743dc645bc28014335483992b481e63fd7b97", "base-config/keyboard.json": "f3380c609a293a95644965958286b31863d733293824d56b7087fa0ce4c2d618", "base-config/readme-keyboard.md": "27e98128176dbd060e93b1f321a4ddcd609571b7b8eb8c9112588f4767d08a03", - "brackets-min.js": "316255803d76c5eac5113188294dc6a4246bdfe70e654646c56aac42652c7a88", + "brackets-min.js": "a2b9df20210a74da94f55b82e4c8d38111ea1748c4a1daac065ea27bcb4ba3e0", "brackets.config.dist.json": "8faa5c0a82bb4f49784e93d1225dbd5e1fd8ec6ab07b95f5f874c7c7bd7bb234", "brackets.config.staging.json": "c0e1f22c772c80f4f5756ab947e40538bcaf7fb7f8925834cfd4ef57c55e477a", "brackets.js": "f7a3164510e76e012591c9758acb47f2445526642503180c57209d30faa24d69", - "cacheManifest.json": "5922554792f6188f81969d301aa04a398b6c9ebd9167ea45be720bbaa8600247", + "cacheManifest.json": "4652cbca5ad8a64923b31bb0057dbf818aa78ee3f16c2913d946c027aa0ee066", "command/ChangeShortcutTemplate.html": "345d682d8bde29380822824778cf09acc79affae6e82b9db00c6205b2b3dd2ee", "command/CommandManager.js": "ecd5ccb7ffacb8fa24b6c284f5a19576e774f204746dbef75872992becbe5fb0", "command/Commands.js": "99fa4895ba13713db0bf8c3d14ba57969ffbfe236ea29bebb309c5e367524d7d", @@ -270,7 +270,7 @@ "command/KeyboardOverlayMode.js": "8ed49bc8728a109e3850d8ad2df374b51021f24a65811ac826210a1adcdbbb56", "command/Keys.js": "31cd87a01ce41de28e56ccbdd4fa14866cccc2b7bcde61c5134095adaa5cb674", "command/Menus.js": "729fd0ba4969590acafbfee188101244f7c2113b49c3617985f1d12544cee52e", - "config.json": "1f77a154fa6c48dff8113fe56005d98e9c384226bb622361b160647bc7624856", + "config.json": "f71c74386195f142a07523d92628aa3367e3d4a84853568e5cac7bd33a8920cc", "desktop-metrics.html": "66f87550ddf04f284a6c1e81567b7dfbefb2b8007f48f0bad7d8f7aacdb11bac", "devEnable.html": "44aa1a496a8be413299f651e6b0c3e62ac50cd5d40126ad1bb6b70b9b2b818c4", "document/ChangedDocumentTracker.js": "03b0eaf0995fee6d27c782a8028a1314f61214e383f5f5e198320b2faac4cf40", @@ -1763,16 +1763,16 @@ "verify-dependencies-loaded.js": "98f5fd53dafdb1c319a1cfe6ae316deda6bf30019663925bc2b4c4a592b3b3ed", "view/fontrules/font-based-rules.less": "ae3a98c651522d06b43a0b5e1bbf28bda59c34bcce23d025b6c0f0d2fe445de7", "view/MainViewFactory.js": "5156ee0a57341256819d3c5288a8c89cebf22d3a6269f43ca30cd661a5d659df", - "view/MainViewManager.js": "61a33edcec4735f734ec62f5b564ca6d221ae82ad7d890abfdd7c0e8e20b6a1f", - "view/Pane.js": "0c77d8f64d54297af26fa5c3621af2598c71cb9f8957408532c01bd131e5c7f7", - "view/PanelView.js": "e70d00d7a76c8adfdf17d2b3eaf21c409ed69e170d997c2f77daa83c28d065de", - "view/PluginPanelView.js": "c272385acb8a9213fb231b7e55442ecc28d9f75f2853e745b6d810110d181623", - "view/ThemeManager.js": "de703acae34b5f6741e93e9a5de7cce9af6c41e6c52d8cb6396c96b35054cab3", + "view/MainViewManager.js": "6ce89e63d68117b9bdc94941954adf0b210e0cae264d3861bf557a99875e84df", + "view/Pane.js": "3b60e5fb7aaf865ba743c48c410f7bb27c2a3cb7e65e0da55bbec7396d366601", + "view/PanelView.js": "6caf159a2500a23e0957707e60cc029a5e6fbdc733e04670a4dd4c3aff6847a2", + "view/PluginPanelView.js": "1f313d224d8fe121a9347c1035da5e69e1b7309e4e26331009b15a52466530d5", + "view/ThemeManager.js": "5ed6e2148d38feb13258470ddf831e86b2224b2be7e676bdf70c0886c742d0cb", "view/ThemeSettings.js": "b1823abbb2043ff19babfbb51b72076975db6d39f9928387bf40c3080e422511", "view/ThemeView.js": "e958ecb95d48f08e79d4082eaa957512d67d3845b23d29496e207762ac39c62b", - "view/ViewCommandHandlers.js": "88b3346b729e6d5b65e5e71a7dff3b0ae2eadc2f331500ec3ba2b71bab7b9a47", - "view/ViewStateManager.js": "6d87c1612a8436f6d828509029ca24c9e9e65a4afc4213771ae0c6a057c823a2", - "view/WorkspaceManager.js": "3bb72ea86714af9108fb5f7b898f429a48115257f87615b63ec8dff45dc939f5", + "view/ViewCommandHandlers.js": "f175b2dea61627fa99312c3b0a92b6770fe0af71823ddc2aeb8028d2b704339a", + "view/ViewStateManager.js": "92a2a04cdfb9bf394125662d950405287263786aa73d56da05a37d47505a702a", + "view/WorkspaceManager.js": "3efbf6502abe30991705d6f96f99bb9c9bd05c298e53796b99148fd3a1f3439a", "virtual-server-main.js": "8738b7477f1e42295d7305ef4bdbc0303b37c29fffe86522c73124b34ab15448", "widgets/bootstrap-alerts.js": "df642f7d793199d1abf0730312ad28a89cc2010f17c27dcae48faef97ac6ea45", "widgets/bootstrap-button.js": "815bd5b4dffe890f135f6d375b42a87a9911cf107cf24c70313fc88ffdecbec0", @@ -1783,15 +1783,15 @@ "widgets/bootstrap-tab.js": "2ffae170607365ae77f3e6d247dab0157b31f5ae9f368775c08c6eeebf66102a", "widgets/bootstrap-tooltip.js": "21f5003f2ff159eddd0d5a1a75738d0c9d710b338b38c93e71f7c7cbb09bcadd", "widgets/bootstrap-twipsy-mod.js": "3e57a1d781e6308fddf2dd7f14f5d6746741dfbaf2a07f800135754caaa85645", - "widgets/DefaultDialogs.js": "9c2d21e1e7ef69050f73cb9d2e3ff9cea8f4b9175575b44125cbba289eee3e4c", - "widgets/Dialogs.js": "a64a7f4f6824c62a560ce08d07a469b520e35ca3d81f3b92a608e9546152552d", - "widgets/DropdownButton.js": "a34f4d227b3f1f1996bb6fe1d3868d14eef16e67e26429996bf45e4cde1ce15d", + "widgets/DefaultDialogs.js": "273f569b0d6e4cc6d68e623ba41bce3b7637a60da20631cca89a246abe90f0de", + "widgets/Dialogs.js": "099ebd07a4da618c4dbc0bf5b1faa92596e9b71eaad6776e5ce22ace480cb9ec", + "widgets/DropdownButton.js": "25ce5b4397547e5f9899b0a893918dc6c25d3071e9d8001801db1186da476427", "widgets/html/toast-popup.html": "7b37d47271f5b8bd565235f984c4205fff394208c99ac31b2ce6f8dffb6ca3dc", "widgets/infobar.js": "57d512952235998745b1c01fd9d2dd3b054bed54671470902aa83172168c234c", "widgets/InlineMenu.js": "b1f02dc10678ca4cf0dd4a1a6512fb16600adb0faa0f461d20edddcef1f4a7d7", - "widgets/ModalBar.js": "dc422180fda4c534679b110c6b897ace9a44ecd588f5c18e91605200b554ca9b", - "widgets/NotificationUI.js": "a74366a131b1f8e5dd5741df34beea5afa61e1ec46534bc216c3d0fe1495f384", - "widgets/PopUpManager.js": "f672649cab57f1a660006ada5e34c89536eead870909c409a4ade212fb673947", + "widgets/ModalBar.js": "fce131bf57f92d733f86ae5ee51f18f68d40af0af30dacf041704d16fb632960", + "widgets/NotificationUI.js": "6307c92754315f3f31f09d22b626afa933a68291b05093e842181c278dbb97b8", + "widgets/PopUpManager.js": "530941ac8f482cde29e6474e6b1de092046e897daf419fe11b869ddbad511a50", "widgets/StatusBar.js": "666179a4ed7c512246db2a162db7400600ea0bf442d42cfad473c3667186857c", "worker/extensions-worker-thread.js": "e819ddc615de8ddb5547aa4be4e5943524f4f373ff49a0c7c2fa8469a0f3361d", "worker/ExtensionsWorker.js": "5ba848bf08c36a7fd0d265aac38265537908e50643859748064ba6b3d74d6991", diff --git a/src/web-cache/3.10.0/config.json b/src/web-cache/3.10.0/config.json index 1465f02d4..079750f71 100644 --- a/src/web-cache/3.10.0/config.json +++ b/src/web-cache/3.10.0/config.json @@ -25,7 +25,7 @@ "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -37,7 +37,7 @@ "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/src/web-cache/3.10.0/view/MainViewManager.js b/src/web-cache/3.10.0/view/MainViewManager.js index e652117a2..9a437adfd 100644 --- a/src/web-cache/3.10.0/view/MainViewManager.js +++ b/src/web-cache/3.10.0/view/MainViewManager.js @@ -97,6 +97,11 @@ define(function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -220,6 +225,7 @@ define(function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -293,6 +299,7 @@ define(function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -329,6 +336,7 @@ define(function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -409,6 +417,7 @@ define(function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -1153,6 +1162,7 @@ define(function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -1291,6 +1301,7 @@ define(function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -1416,7 +1427,7 @@ define(function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -1437,6 +1448,7 @@ define(function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -1454,6 +1466,7 @@ define(function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -1493,7 +1506,8 @@ define(function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -1518,7 +1532,7 @@ define(function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -1543,7 +1557,7 @@ define(function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -1633,7 +1647,7 @@ define(function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { diff --git a/src/web-cache/3.10.0/view/Pane.js b/src/web-cache/3.10.0/view/Pane.js index 82fb6e275..b25e0673b 100644 --- a/src/web-cache/3.10.0/view/Pane.js +++ b/src/web-cache/3.10.0/view/Pane.js @@ -200,6 +200,7 @@ define(function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -464,18 +465,21 @@ define(function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -541,6 +545,7 @@ define(function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -641,7 +646,7 @@ define(function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -890,6 +895,7 @@ define(function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -1216,6 +1222,7 @@ define(function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -1333,6 +1340,7 @@ define(function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -1483,6 +1491,7 @@ define(function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ diff --git a/src/web-cache/3.10.0/view/PanelView.js b/src/web-cache/3.10.0/view/PanelView.js index c237b19f1..d3c6e266f 100644 --- a/src/web-cache/3.10.0/view/PanelView.js +++ b/src/web-cache/3.10.0/view/PanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -25,10 +26,29 @@ define(function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -113,7 +133,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/src/web-cache/3.10.0/view/PluginPanelView.js b/src/web-cache/3.10.0/view/PluginPanelView.js index e1a8ec4a3..8d1e829a4 100644 --- a/src/web-cache/3.10.0/view/PluginPanelView.js +++ b/src/web-cache/3.10.0/view/PluginPanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -24,10 +25,28 @@ define(function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -125,7 +144,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/src/web-cache/3.10.0/view/ThemeManager.js b/src/web-cache/3.10.0/view/ThemeManager.js index 6360d52e0..4a06887db 100644 --- a/src/web-cache/3.10.0/view/ThemeManager.js +++ b/src/web-cache/3.10.0/view/ThemeManager.js @@ -21,6 +21,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -48,8 +50,19 @@ define(function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -71,6 +84,7 @@ define(function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -375,7 +389,7 @@ define(function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. diff --git a/src/web-cache/3.10.0/view/ViewCommandHandlers.js b/src/web-cache/3.10.0/view/ViewCommandHandlers.js index 7a4c6045c..280d1b6f3 100644 --- a/src/web-cache/3.10.0/view/ViewCommandHandlers.js +++ b/src/web-cache/3.10.0/view/ViewCommandHandlers.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -75,12 +77,14 @@ define(function (require, exports, module) { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -340,7 +344,10 @@ define(function (require, exports, module) { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -385,12 +392,18 @@ define(function (require, exports, module) { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -418,6 +431,7 @@ define(function (require, exports, module) { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -537,17 +551,26 @@ define(function (require, exports, module) { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } diff --git a/src/web-cache/3.10.0/view/ViewStateManager.js b/src/web-cache/3.10.0/view/ViewStateManager.js index 0d3f4cfcf..d4a371831 100644 --- a/src/web-cache/3.10.0/view/ViewStateManager.js +++ b/src/web-cache/3.10.0/view/ViewStateManager.js @@ -52,7 +52,8 @@ define(function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ diff --git a/src/web-cache/3.10.0/view/WorkspaceManager.js b/src/web-cache/3.10.0/view/WorkspaceManager.js index 2458d69b4..bfab7b05d 100644 --- a/src/web-cache/3.10.0/view/WorkspaceManager.js +++ b/src/web-cache/3.10.0/view/WorkspaceManager.js @@ -44,21 +44,43 @@ define(function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -66,28 +88,33 @@ define(function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -100,6 +127,7 @@ define(function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -115,7 +143,10 @@ define(function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -135,7 +166,7 @@ define(function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -152,7 +183,10 @@ define(function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -177,7 +211,8 @@ define(function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -294,7 +329,10 @@ define(function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -372,6 +410,12 @@ define(function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -504,6 +548,16 @@ define(function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); diff --git a/src/web-cache/3.10.0/widgets/DefaultDialogs.js b/src/web-cache/3.10.0/widgets/DefaultDialogs.js index 440f066a9..d7e6b2eac 100644 --- a/src/web-cache/3.10.0/widgets/DefaultDialogs.js +++ b/src/web-cache/3.10.0/widgets/DefaultDialogs.js @@ -19,16 +19,50 @@ * */ +// @INCLUDE_IN_API_DOCS + define(function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; + + /** + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); diff --git a/src/web-cache/3.10.0/widgets/Dialogs.js b/src/web-cache/3.10.0/widgets/Dialogs.js index 691408d02..cf24836da 100644 --- a/src/web-cache/3.10.0/widgets/Dialogs.js +++ b/src/web-cache/3.10.0/widgets/Dialogs.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -38,27 +40,72 @@ define(function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_PRIMARY = "primary"; + + /** + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_NORMAL = ""; /** - * Dialog Buttons Class Names - * @const {string} + * Left-aligned button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -74,7 +121,7 @@ define(function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -151,6 +198,7 @@ define(function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -240,6 +288,7 @@ define(function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -248,7 +297,7 @@ define(function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -257,6 +306,7 @@ define(function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -265,6 +315,7 @@ define(function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -274,6 +325,7 @@ define(function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -282,6 +334,7 @@ define(function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -435,6 +488,14 @@ define(function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -444,10 +505,26 @@ define(function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } diff --git a/src/web-cache/3.10.0/widgets/DropdownButton.js b/src/web-cache/3.10.0/widgets/DropdownButton.js index 27f7a2bbd..cf776becf 100644 --- a/src/web-cache/3.10.0/widgets/DropdownButton.js +++ b/src/web-cache/3.10.0/widgets/DropdownButton.js @@ -48,10 +48,33 @@ define(function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -138,7 +161,6 @@ define(function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -186,6 +208,7 @@ define(function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -307,7 +330,9 @@ define(function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { diff --git a/src/web-cache/3.10.0/widgets/ModalBar.js b/src/web-cache/3.10.0/widgets/ModalBar.js index 27dbbc60a..e33dcc35f 100644 --- a/src/web-cache/3.10.0/widgets/ModalBar.js +++ b/src/web-cache/3.10.0/widgets/ModalBar.js @@ -104,11 +104,13 @@ define(function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -226,6 +228,7 @@ define(function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -239,6 +242,7 @@ define(function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { diff --git a/src/web-cache/3.10.0/widgets/NotificationUI.js b/src/web-cache/3.10.0/widgets/NotificationUI.js index 10e915023..eb098459f 100644 --- a/src/web-cache/3.10.0/widgets/NotificationUI.js +++ b/src/web-cache/3.10.0/widgets/NotificationUI.js @@ -73,6 +73,11 @@ define(function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -81,6 +86,11 @@ define(function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', diff --git a/src/web-cache/3.10.0/widgets/PopUpManager.js b/src/web-cache/3.10.0/widgets/PopUpManager.js index 1357b7788..d90b319db 100644 --- a/src/web-cache/3.10.0/widgets/PopUpManager.js +++ b/src/web-cache/3.10.0/widgets/PopUpManager.js @@ -90,7 +90,7 @@ define(function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -144,6 +144,7 @@ define(function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp(); diff --git a/src/widgets/DefaultDialogs.js b/src/widgets/DefaultDialogs.js index 440f066a9..d7e6b2eac 100644 --- a/src/widgets/DefaultDialogs.js +++ b/src/widgets/DefaultDialogs.js @@ -19,16 +19,50 @@ * */ +// @INCLUDE_IN_API_DOCS + define(function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; + + /** + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); diff --git a/src/widgets/Dialogs.js b/src/widgets/Dialogs.js index 691408d02..cf24836da 100644 --- a/src/widgets/Dialogs.js +++ b/src/widgets/Dialogs.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -38,27 +40,72 @@ define(function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_PRIMARY = "primary"; + + /** + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_NORMAL = ""; /** - * Dialog Buttons Class Names - * @const {string} + * Left-aligned button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -74,7 +121,7 @@ define(function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -151,6 +198,7 @@ define(function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -240,6 +288,7 @@ define(function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -248,7 +297,7 @@ define(function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -257,6 +306,7 @@ define(function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -265,6 +315,7 @@ define(function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -274,6 +325,7 @@ define(function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -282,6 +334,7 @@ define(function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -435,6 +488,14 @@ define(function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -444,10 +505,26 @@ define(function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } diff --git a/src/widgets/DropdownButton.js b/src/widgets/DropdownButton.js index 27f7a2bbd..cf776becf 100644 --- a/src/widgets/DropdownButton.js +++ b/src/widgets/DropdownButton.js @@ -48,10 +48,33 @@ define(function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -138,7 +161,6 @@ define(function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -186,6 +208,7 @@ define(function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -307,7 +330,9 @@ define(function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { diff --git a/src/widgets/ModalBar.js b/src/widgets/ModalBar.js index 27dbbc60a..e33dcc35f 100644 --- a/src/widgets/ModalBar.js +++ b/src/widgets/ModalBar.js @@ -104,11 +104,13 @@ define(function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -226,6 +228,7 @@ define(function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -239,6 +242,7 @@ define(function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { diff --git a/src/widgets/NotificationUI.js b/src/widgets/NotificationUI.js index 10e915023..eb098459f 100644 --- a/src/widgets/NotificationUI.js +++ b/src/widgets/NotificationUI.js @@ -73,6 +73,11 @@ define(function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -81,6 +86,11 @@ define(function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', diff --git a/src/widgets/PopUpManager.js b/src/widgets/PopUpManager.js index 1357b7788..d90b319db 100644 --- a/src/widgets/PopUpManager.js +++ b/src/widgets/PopUpManager.js @@ -90,7 +90,7 @@ define(function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -144,6 +144,7 @@ define(function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp(); diff --git a/test/test_folders.zip b/test/test_folders.zip index 8e4271f8308d45fa578f23d56c4d39e613fd194f..7b49ad48715c5a7c82b378ec7a3450987d8b12f0 100644 GIT binary patch delta 39432 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 delta 39294 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 diff --git a/view/MainViewManager.js b/view/MainViewManager.js index e652117a2..9a437adfd 100644 --- a/view/MainViewManager.js +++ b/view/MainViewManager.js @@ -97,6 +97,11 @@ define(function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -220,6 +225,7 @@ define(function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -293,6 +299,7 @@ define(function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -329,6 +336,7 @@ define(function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -409,6 +417,7 @@ define(function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -1153,6 +1162,7 @@ define(function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -1291,6 +1301,7 @@ define(function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -1416,7 +1427,7 @@ define(function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -1437,6 +1448,7 @@ define(function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -1454,6 +1466,7 @@ define(function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -1493,7 +1506,8 @@ define(function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -1518,7 +1532,7 @@ define(function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -1543,7 +1557,7 @@ define(function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -1633,7 +1647,7 @@ define(function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { diff --git a/view/Pane.js b/view/Pane.js index 82fb6e275..b25e0673b 100644 --- a/view/Pane.js +++ b/view/Pane.js @@ -200,6 +200,7 @@ define(function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -464,18 +465,21 @@ define(function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -541,6 +545,7 @@ define(function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -641,7 +646,7 @@ define(function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -890,6 +895,7 @@ define(function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -1216,6 +1222,7 @@ define(function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -1333,6 +1340,7 @@ define(function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -1483,6 +1491,7 @@ define(function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ diff --git a/view/PanelView.js b/view/PanelView.js index c237b19f1..d3c6e266f 100644 --- a/view/PanelView.js +++ b/view/PanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -25,10 +26,29 @@ define(function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -113,7 +133,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/view/PluginPanelView.js b/view/PluginPanelView.js index e1a8ec4a3..8d1e829a4 100644 --- a/view/PluginPanelView.js +++ b/view/PluginPanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -24,10 +25,28 @@ define(function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -125,7 +144,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/view/ThemeManager.js b/view/ThemeManager.js index 6360d52e0..4a06887db 100644 --- a/view/ThemeManager.js +++ b/view/ThemeManager.js @@ -21,6 +21,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -48,8 +50,19 @@ define(function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -71,6 +84,7 @@ define(function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -375,7 +389,7 @@ define(function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. diff --git a/view/ViewCommandHandlers.js b/view/ViewCommandHandlers.js index 7a4c6045c..280d1b6f3 100644 --- a/view/ViewCommandHandlers.js +++ b/view/ViewCommandHandlers.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -75,12 +77,14 @@ define(function (require, exports, module) { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -340,7 +344,10 @@ define(function (require, exports, module) { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -385,12 +392,18 @@ define(function (require, exports, module) { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -418,6 +431,7 @@ define(function (require, exports, module) { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -537,17 +551,26 @@ define(function (require, exports, module) { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } diff --git a/view/ViewStateManager.js b/view/ViewStateManager.js index 0d3f4cfcf..d4a371831 100644 --- a/view/ViewStateManager.js +++ b/view/ViewStateManager.js @@ -52,7 +52,8 @@ define(function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ diff --git a/view/WorkspaceManager.js b/view/WorkspaceManager.js index 2458d69b4..bfab7b05d 100644 --- a/view/WorkspaceManager.js +++ b/view/WorkspaceManager.js @@ -44,21 +44,43 @@ define(function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -66,28 +88,33 @@ define(function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -100,6 +127,7 @@ define(function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -115,7 +143,10 @@ define(function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -135,7 +166,7 @@ define(function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -152,7 +183,10 @@ define(function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -177,7 +211,8 @@ define(function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -294,7 +329,10 @@ define(function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -372,6 +410,12 @@ define(function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -504,6 +548,16 @@ define(function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); diff --git a/web-cache/3.10.0/appConfig.js b/web-cache/3.10.0/appConfig.js index 4b6e66d6a..d341b6b12 100644 --- a/web-cache/3.10.0/appConfig.js +++ b/web-cache/3.10.0/appConfig.js @@ -26,7 +26,7 @@ window.AppConfig = { "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -38,7 +38,7 @@ window.AppConfig = { "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/web-cache/3.10.0/assets/default-project/en.zip b/web-cache/3.10.0/assets/default-project/en.zip index 235ae21c38a4057674972944e0242f7fe89a1005..323b886aff8492ffe44c5a3bcdf716bba36ab6ff 100644 GIT binary patch delta 287 zcmX@q$a$!dlQ+PdnMH(wfrEoVNi=RF?>YfyAU%1XfD(w_{8+$_8O%@-@nHlribdI3 zz>HeSr(9r0s)`6Nm{DW6n-9#ea(D<4k@L%91&eeC%TER~);^2v1u?esmN1%%f?2Me zj9p;m+b>OHR9*%WoBqRw$qCG`wPi8_Gm31POu>v*woE2q#zUBhq#ctDSR?|*m=0rH lgE2(yp$10TGdX}2&$VZAgqUN`4L6pOO6 zfEl%tPr1O1R230kFr&tBHy@Z`S3u0{NEnzej1+!c` z8N0yBw_lpZsJsj$HvNYUlM|R>Ys+K=W)#^nnSvRsY?(~JjE680NjoMRut)@qF&)OZ l24jfYLk*0wXL0~5o@>wK2r_%QTMrI&AS&VTZnBK+c2Bw*rOu@7@lL?qEVzLJS D3ycy9 diff --git a/web-cache/3.10.0/assets/sample-projects/bootstrap-blog.zip b/web-cache/3.10.0/assets/sample-projects/bootstrap-blog.zip index 74b03ede6240b99a49fff1d25772c6e6db9bb0ae..e97797e085ae2a6b93e24ed451aaa9b0caeb1901 100644 GIT binary patch delta 331 zcmaFxRqVl6G2Q@gW)=|!1`Y-WCDFKvyh_YKYNHV|6Nuhy!Ss$1%+O>xC2J3vDp1YpDfR5oOtz1!6S6UcCMFV#dR+AkOxU zFB#W@h1(NDn6@W|Fi+S47XQM-VjTrywHu|gY&S}0W%dX0rdw=dH3Bnox3L<78H=~E znu8g4x3OA+8Is#sO~H)7?W`7HM$dMrnq%8p10ZU4uzGpIWgKd6k%f)J7v_CJ?>Zg6SP2n4!sXPzKC+tKcFC zVoWwM(g4%(M(SXRPNR5;p4TRVEMS@c7TRE1*HR0tBFeHa3&d!Cy?FcU#f*ntL7eRy zUox%*3%4hRFl|o^VV051%Ipu~O}E&_Y6NEFZeukDGZt@S zH3u{9Zez6sGbFdOnt~aD+gUBZjGpaKHOIEI20+y8VD$ns(sr;~gBeS9uv&o`4|lNo dfEflmp^BSfjB7htL%>qHyI2FkjK*E8@c_5Df6f2^ diff --git a/web-cache/3.10.0/assets/sample-projects/dashboard.zip b/web-cache/3.10.0/assets/sample-projects/dashboard.zip index 4ad2bd8a77f3fe33987250bab5616eb5c7ad6924..8fccb96f3694a1c138700118980e37e6fbe26843 100644 GIT binary patch delta 367 zcmZoUDAsaNj5olWnMH(wfrEiTNi=REuM#tm+Gte91fn;uX8OShW-Mb#gNX36dvSq9 zVg#ijQdL5aSU@6^I^u!>f>zAO-zzm-`tfpW_3yiU64yzeh&Nt-%bBd8}4oM(aFQA28#}Jg8#z`A|mHeAW=K)W!L%fnbK}0@io{KE`Ax delta 367 zcmZoUDAsaNj5olWnMH(wfrEkJr&jDlUL|HAwb7`I2}EyR&Gds2%vi>f1`*+B_u>MJ z#0W}5q^g7-v4BJ-$BS!#=`L|~u!=3>@en;?Qi2c_T5{T86%le;U=^)$eOVwzvsmYL zu};Rrt{~3#JLeeJf`!|AESa|VSTax80T!44#B3b}VztNmuxyX@VP*CQ@unxwW;Fsc zX3S=_05dMnW;F*hc;~R%fEhk>SWUr<78qmC99A>1$k#bgT?TWZy0Yf727smZ&Smui vGq~olT7wxL^H{CGjMjOqK48X`c~Hgb^P!BY`K%#esf+Vj1HlZ{1+4J^)wPES diff --git a/web-cache/3.10.0/assets/sample-projects/explore.zip b/web-cache/3.10.0/assets/sample-projects/explore.zip index 9ddc6357332290e3506dcc57d519f4345a36a9c7..649ce1d73dd316745fc440cd286dec6247930f68 100644 GIT binary patch delta 1873 zcmXw&e@s(X6vqpXzJjGxp-Aa_1-!#W1`;7Ul{pm==P(T17;{;%`$7Lf!-ftq+l(77 zyg?Kxg}y>tD!&Iy_6ylv24gsqMQ4I;8XN?(SQd1sV?<#KZrScT_r5<)`sq2}^S$@n zo(_)Jg$$A~6z=1~Od3sixCX@@{K62X<;drNNn7Ors4w$!0BPk(;Q$54z7M0CccoPT zZKo$!0=(nDp$91H>!;$7FDF7FGj;xF9l&S98v#zuj!Cm)A$WEy^w2*_1s9ESAM-%} z{lNVZ0`%uaE_wx!_8NDKR)3%5BrwHCr@6y$4i5gteHy9gB-a8*A`H70v?Dg?EP9UL z3p3!re*Pnv4?pn|KL=CbI2%7qJtj)|vKZ*dInIAhbxSAsOsY$*=GU2^TI}W>5kMmW zewp5GsGq-0UAhN&uaUZp@u%QU_|g^r13FLsPyE_=s8-JL_hBB%vA~nikq9RdfgKAg zOdo>gy-NKqcu;)deZ3Z*4PTPCIi`?w`7L`oh!2J&jNZ_Z&{=r_uQ5?1LV$hS*~CpyG__hJ30;u544c; zlnO;Ap!ws%X4os7QYXYG!VPl!gsjvka+jBXtXjS>snuw5dHJ=VV8-3og?n14T;xQd zR;SS{>YyT*1W*JXof2I1-HL;P-2i4^&kKpsKvN-N;cB4uW^pDCY@XclUHYvAjix$L z&ZrRM@TLvoVgl6^h)ZjL9VG8O29lfBS$~Dpu@tKW3;NZ1>oVQ8e>1Ee_)lTaE^8eP@cn)gu2N%ooq5{cMelXMu4lE!P3@ObT-1AjwLN;Nu4cQsIt zvSC-{nX_oSQk0V$(9-~=4JZqsy#Z|jm~KE@0nARc8^G>l8lRJuesQ85P_i^Kur)G6 zU!$r~!Q^7j1unD=y6RnM55Nr<+5}*1LiqspCiN^8CYxB7xtaOA(2Sk}v9p<#uBs)y zn;GV~*)>k8Fyuy?p=;62j>weJUdWt~na{AyG)pq`N%x>k(7fSch5--S2$=~FdIlh= zg_UeAXeVR>Dg;~52FS#=viEthmA$G@%}lqlcC(kYzv3m6l0T>H_M!rSJ6@tuGRZzN zy8^HK$jd9xrDlRYa%UxD@iTF;pZPfb#91j__mcq?h-zaa=eMy(@Tf4;#(tf&0E0>u zMpV$9W2HhBT2u(CklM~PZ@06Nhg1mdV3}uCXy`zB@K859*or1}GL54XWkab?h5IUG sbg@l%vkT>bW>AGkDr9%FlGM$7E_btwnR*zM^e|0l56T6fyFDoHe?HVnf&c&j delta 1873 zcmXw&e^69a6vr1H`v8|^6;@gHy#>63jR-QrXewEXh#3xnMP$>`_JjQg9SRL`D#yZx z7mO0i!oG#wW#xC!OuvwB6GRv@jphtmIv5O2pFmKT{{j93*pF^_o}Ys)Xq=TFW*!rzd|51Xv!j*_nB9ht{ zRv6z0%{!I4-Eg7w{JT0WTpPV8=}z7VR^|QnsH7lB<@P9AZr9hqP`!Va>tSMP`G{VL zXeA6vtW;u^5;01|Dq&P&wGwOS@{zb5XM#q9+f7&B07pZGi5e>64^{>Lqh+__v)JLi z^YLX*K+c$M&P@igK4Z>ipW|$i`9K!r9@Lu`S;t+MxlIqbGhOD(6v$>3cCn6*mxTN5 zqTQuJ5xd^`IHCmbFg&(Sx&rfPKnp|FfB_Nn+_ch_J7AhAw zQK${qXcohvBA56{Bpsa+oNSQdfM8>Td^Im5#(?cqh*-D=XroD-i36KQcYd3GGeM)N zPLwk$#5lTTlen0`GzH?)TA)WN#JN$V@ko?EoeR*#ls6pvLRK($5aE6H4Yr z1ZyK2dK*=Z3PvY77dXid=&E;;y#UvpWD9_yiR1&=n$)vYm~6r>Q#1NJ+e{taGni0&%kPBjE%K|Z)6{l`joXU9E6~x*8{1)R{uyFfySElXLU708B0E=t=W44Y0 zvDz~tShiNivl@aKiCF)+MmW?)cdK!7EU zo0KPatI1CPu!>a-tci0qt2C2{8c;lT1PUmH zX)!P)78j?M6zivC7MJK}73(83f~}t(wwl!ktYPVD)&MZ$2aMsphBX8%vSpIWgKc@>#Kl%W!s3R3}7wP3-G3x9HfxRd8{Yk=t! z-0C2D^C#|wOkl<|zETK-Pw*x;Smc#VH6xgjAs58T3btahsg^cKXmYZa7FcS(ay&$r zq8dL7D+kCKnNivl@aKidHRo4ta4yE$mB|KbvXfscb4{;b#mWOV zpbsRGuLhJ*oPK5%D;FeiriZO&^#RK-UCkN*X8eFLyw|XXfJGLqVGRT`zO7-62LM*` BvvL3c diff --git a/web-cache/3.10.0/brackets-min.js b/web-cache/3.10.0/brackets-min.js index 3c708776e..860842a1d 100644 --- a/web-cache/3.10.0/brackets-min.js +++ b/web-cache/3.10.0/brackets-min.js @@ -150535,6 +150535,11 @@ define("view/MainViewManager", function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -150658,6 +150663,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -150731,6 +150737,7 @@ define("view/MainViewManager", function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -150767,6 +150774,7 @@ define("view/MainViewManager", function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -150847,6 +150855,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -151591,6 +151600,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -151729,6 +151739,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -151854,7 +151865,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -151875,6 +151886,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -151892,6 +151904,7 @@ define("view/MainViewManager", function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -151931,7 +151944,8 @@ define("view/MainViewManager", function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -151956,7 +151970,7 @@ define("view/MainViewManager", function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -151981,7 +151995,7 @@ define("view/MainViewManager", function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -152071,7 +152085,7 @@ define("view/MainViewManager", function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { @@ -152491,6 +152505,7 @@ define("view/Pane", function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -152755,18 +152770,21 @@ define("view/Pane", function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -152832,6 +152850,7 @@ define("view/Pane", function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -152932,7 +152951,7 @@ define("view/Pane", function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -153181,6 +153200,7 @@ define("view/Pane", function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -153507,6 +153527,7 @@ define("view/Pane", function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -153624,6 +153645,7 @@ define("view/Pane", function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -153774,6 +153796,7 @@ define("view/Pane", function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ @@ -153897,6 +153920,7 @@ define("view/Pane", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -153906,10 +153930,29 @@ define("view/Pane", function (require, exports, module) { define("view/PanelView", function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -153994,7 +154037,7 @@ define("view/PanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154029,6 +154072,7 @@ define("view/PanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -154037,10 +154081,28 @@ define("view/PanelView", function (require, exports, module) { define("view/PluginPanelView", function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -154138,7 +154200,7 @@ define("view/PluginPanelView", function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { @@ -154178,6 +154240,8 @@ define("view/PluginPanelView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -154205,8 +154269,19 @@ define("view/ThemeManager", function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -154228,6 +154303,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -154532,7 +154608,7 @@ define("view/ThemeManager", function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. @@ -155093,6 +155169,8 @@ define("view/ThemeView", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -155189,12 +155267,14 @@ span.brackets-js-hints-with-type-details { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -155454,7 +155534,10 @@ span.brackets-js-hints-with-type-details { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -155499,12 +155582,18 @@ span.brackets-js-hints-with-type-details { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -155532,6 +155621,7 @@ span.brackets-js-hints-with-type-details { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -155651,17 +155741,26 @@ span.brackets-js-hints-with-type-details { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } @@ -155776,7 +155875,8 @@ define("view/ViewStateManager", function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ @@ -155868,21 +155968,43 @@ define("view/WorkspaceManager", function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -155890,28 +156012,33 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -155924,6 +156051,7 @@ define("view/WorkspaceManager", function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -155939,7 +156067,10 @@ define("view/WorkspaceManager", function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -155959,7 +156090,7 @@ define("view/WorkspaceManager", function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -155976,7 +156107,10 @@ define("view/WorkspaceManager", function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -156001,7 +156135,8 @@ define("view/WorkspaceManager", function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -156118,7 +156253,10 @@ define("view/WorkspaceManager", function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -156196,6 +156334,12 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -156328,7 +156472,17 @@ define("view/WorkspaceManager", function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); @@ -156353,17 +156507,51 @@ define("view/WorkspaceManager", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + define("widgets/DefaultDialogs", function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; + + /** + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); @@ -156388,6 +156576,8 @@ define("widgets/DefaultDialogs", function (require, exports, module) { * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -156420,27 +156610,72 @@ define("widgets/Dialogs", function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_PRIMARY = "primary"; /** - * Dialog Buttons Class Names - * @const {string} + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_NORMAL = ""; + + /** + * Left-aligned button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -156456,7 +156691,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -156533,6 +156768,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -156622,6 +156858,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -156630,7 +156867,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -156639,6 +156876,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -156647,6 +156885,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -156656,6 +156895,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -156664,6 +156904,7 @@ define("widgets/Dialogs", function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -156817,6 +157058,14 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -156826,10 +157075,26 @@ define("widgets/Dialogs", function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } @@ -156948,10 +157213,33 @@ define("widgets/DropdownButton", function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -157038,7 +157326,6 @@ define("widgets/DropdownButton", function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -157086,6 +157373,7 @@ define("widgets/DropdownButton", function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -157207,7 +157495,9 @@ define("widgets/DropdownButton", function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { @@ -157956,11 +158246,13 @@ define("widgets/ModalBar", function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -158078,6 +158370,7 @@ define("widgets/ModalBar", function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -158091,6 +158384,7 @@ define("widgets/ModalBar", function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { @@ -158201,6 +158495,11 @@ define("widgets/NotificationUI", function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -158209,6 +158508,11 @@ define("widgets/NotificationUI", function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', @@ -158592,7 +158896,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -158646,6 +158950,7 @@ define("widgets/PopUpManager", function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp(); diff --git a/web-cache/3.10.0/cacheManifest.json b/web-cache/3.10.0/cacheManifest.json index f5b9af666..540eac411 100644 --- a/web-cache/3.10.0/cacheManifest.json +++ b/web-cache/3.10.0/cacheManifest.json @@ -1,6 +1,6 @@ { - "appConfig.js": "be4be788a60f44a4012f992067f36e5b0e9b23154a6f7b54fb150f18c5117010", - "assets/default-project/en.zip": "2aaee558434cf447488010c1629e5d871eeec19b0dd388ac8ea7c78c9affa491", + "appConfig.js": "385cc2dcc9270e7c8c1f82d38359a37d45ae1d11ad18c50c7ea73e84bbd3ae5d", + "assets/default-project/en.zip": "6b3be3c074d758f89add0edfe6169f0f1c84c37d65d734ed016ce5def8c97919", "assets/default-project/en/images/cloud1.svg": "527399dadfa3357c3ee1a63d6c1c7dda81ecebb832f7383db26f1aaeaf722a8d", "assets/default-project/en/images/cloud2.svg": "8127c63c0987bc674e2d25f7d24ead017853326c1e43d07706fec46091904418", "assets/default-project/en/images/cloud3.svg": "15de53aa41dea3b0f685292814563f97213a9736c3cec2f8e17b5d9d45b3ae3d", @@ -125,7 +125,7 @@ "assets/pwa/32x32.png": "4f8f75bfcdb6efbbed1732f49edab4e292274cdeb1841e285ccc8194f4c9d8ac", "assets/pwa/phoenix.png": "d292bf76d6d61fdece2f97fb4cd71b8b0060d1058e9c1d02c94bfb20da8b7f0d", "assets/pwa/Square284x284Logo.png": "9887c2967039b4fae1214817925f1fb4f9227cba12d37612457c1c8ee1110c67", - "assets/sample-projects/bootstrap-blog.zip": "33eb4ed07770d71846362b1356181ae3f990751d18bf1d4cde7ef567b920202d", + "assets/sample-projects/bootstrap-blog.zip": "11a7f9b296538f542787ff8afc7d283dff516184b67c7e21ba8a4bb697132cbf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/bootstrap-blog/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -135,7 +135,7 @@ "assets/sample-projects/bootstrap-blog/blog.rtl.css": "33f49d02bbcb2e78f019b7582408fad2b5a76a2ecf79fe09d5b3c08c6ee3872b", "assets/sample-projects/bootstrap-blog/index-rtl.html": "c582278884060098ff51b9d350b0739e1a0396debdc76772c62b6ec375b6efcb", "assets/sample-projects/bootstrap-blog/index.html": "f4716c2affa299a27ab6f8c74c22fe67564f1b1d36ff2f0b322672bf0479d739", - "assets/sample-projects/dashboard.zip": "15f4e33cc542b2a17b2c6a2576590d86fb80cf9d65a340738cdf479893ac9207", + "assets/sample-projects/dashboard.zip": "85ba5d86af5841b13f0169cdc7f2741f12ade1e4813592c73954bf254545e0df", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/dashboard/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", "assets/sample-projects/dashboard/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf", @@ -147,7 +147,7 @@ "assets/sample-projects/dashboard/index.html": "1fb0c934f816d728cad85e180f78369679dc9edb1eca2d5c625b9360e6264235", "assets/sample-projects/dashboard/signin.css": "083bef710a6170a5112ce257c2ecf8580ca97ce19136d770f10460e5b85862de", "assets/sample-projects/dashboard/signin.html": "8c602e656631aeee624673397c0dc00c339498914ed930ab177478c4662a8d26", - "assets/sample-projects/explore.zip": "5d36207b029b0bbfac3b4f99d819eea6586cb9ae8dc0465b145e6e5b793979db", + "assets/sample-projects/explore.zip": "22925cf817562cf2f8d98779b7498453b1b806ce2904c4d66e956494a0129759", "assets/sample-projects/explore/A-tribute-page.html": "bd510c60f444058b7fcb71d83841f32b1cb5193c1a39421d7739bd6af9fef248", "assets/sample-projects/explore/adjustable-fireworks.html": "11e69bb2dd8708ed8fbf1acc62b0aaaf88c7ffec859ee958dc1ae51cd53ddac8", "assets/sample-projects/explore/ant_colony.html": "bc9435ed1b9868f2fbc7212d526f7532c533a5fdf45da988fa5e575bc5f363b7", @@ -237,7 +237,7 @@ "assets/sample-projects/explore/watermelon-pixel.html": "765a3fbffb5db97910512fbabaa7c55c0b52dc8eedfcc630811be39d0af98663", "assets/sample-projects/explore/webmine.html": "6b808f52812dc03db28483411500c04daf8ee0226f535c600a36999d6b7837c0", "assets/sample-projects/explore/whack-a-mole.html": "25be94a3640553b4801f80edd49998bae3a360988e8a26ff3bdfdc2a76b77191", - "assets/sample-projects/home-pages.zip": "788d50571c283b36a7001dee1332073c0628f409916c5429901f278b8a0b2760", + "assets/sample-projects/home-pages.zip": "fbb623bc259d796fcf3f19486f552a609851c89093d8fcadcac587cbe2506bc3", "assets/sample-projects/home-pages/album/index.html": "e29a1e96644bc17bab1a7e3724e822d65a479e10df182725ee1afa916efbfdc1", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf", "assets/sample-projects/home-pages/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2", @@ -249,7 +249,7 @@ "assets/sample-projects/home-pages/carousel/index.html": "235d650043a09f2954f24e4659f64d99ef3988858567fb2221fb1cf34df057e6", "assets/sample-projects/home-pages/cover/cover.css": "2fbb596077c570cad7ee9e98fb88f5665e0ecfc11e7085c3e04639ad03f7bc10", "assets/sample-projects/home-pages/cover/index.html": "759214701ff759432711b3421d80aca692c7a2b4c978c516a0bcd0c81a43f381", - "assets/sample-projects/HTML5.zip": "c5fd6821a5a5d5e86e3e4d3b3f71cc7c0a997816c54eb83544dbf0feea550cf2", + "assets/sample-projects/HTML5.zip": "19eae80598c9037a1c7842bde100ea5e1c6eec1281ca66a9d5bc4cdeb85d1ba2", "assets/sample-projects/HTML5/index.html": "2dc94c7d3e33aeeb44ec4f75bc7df86a5fd19f3121f2fd3638636fbf7c476c6a", "assets/sample-projects/HTML5/script.js": "c49e4b01cded4defbc21f5d5d0102719ce4cccbe1b9cb19f9232c5a05df658da", "assets/sample-projects/HTML5/styles.css": "744b85a9c31affbb00976694c4b9c9149b31e575ed9efdec386231d062ae93f2", @@ -257,11 +257,11 @@ "assets/sample-projects/zips/bootstrap.zip": "6f10407c00ce5d598e77f890528743dc645bc28014335483992b481e63fd7b97", "base-config/keyboard.json": "f3380c609a293a95644965958286b31863d733293824d56b7087fa0ce4c2d618", "base-config/readme-keyboard.md": "27e98128176dbd060e93b1f321a4ddcd609571b7b8eb8c9112588f4767d08a03", - "brackets-min.js": "316255803d76c5eac5113188294dc6a4246bdfe70e654646c56aac42652c7a88", + "brackets-min.js": "a2b9df20210a74da94f55b82e4c8d38111ea1748c4a1daac065ea27bcb4ba3e0", "brackets.config.dist.json": "8faa5c0a82bb4f49784e93d1225dbd5e1fd8ec6ab07b95f5f874c7c7bd7bb234", "brackets.config.staging.json": "c0e1f22c772c80f4f5756ab947e40538bcaf7fb7f8925834cfd4ef57c55e477a", "brackets.js": "f7a3164510e76e012591c9758acb47f2445526642503180c57209d30faa24d69", - "cacheManifest.json": "5922554792f6188f81969d301aa04a398b6c9ebd9167ea45be720bbaa8600247", + "cacheManifest.json": "4652cbca5ad8a64923b31bb0057dbf818aa78ee3f16c2913d946c027aa0ee066", "command/ChangeShortcutTemplate.html": "345d682d8bde29380822824778cf09acc79affae6e82b9db00c6205b2b3dd2ee", "command/CommandManager.js": "ecd5ccb7ffacb8fa24b6c284f5a19576e774f204746dbef75872992becbe5fb0", "command/Commands.js": "99fa4895ba13713db0bf8c3d14ba57969ffbfe236ea29bebb309c5e367524d7d", @@ -270,7 +270,7 @@ "command/KeyboardOverlayMode.js": "8ed49bc8728a109e3850d8ad2df374b51021f24a65811ac826210a1adcdbbb56", "command/Keys.js": "31cd87a01ce41de28e56ccbdd4fa14866cccc2b7bcde61c5134095adaa5cb674", "command/Menus.js": "729fd0ba4969590acafbfee188101244f7c2113b49c3617985f1d12544cee52e", - "config.json": "1f77a154fa6c48dff8113fe56005d98e9c384226bb622361b160647bc7624856", + "config.json": "f71c74386195f142a07523d92628aa3367e3d4a84853568e5cac7bd33a8920cc", "desktop-metrics.html": "66f87550ddf04f284a6c1e81567b7dfbefb2b8007f48f0bad7d8f7aacdb11bac", "devEnable.html": "44aa1a496a8be413299f651e6b0c3e62ac50cd5d40126ad1bb6b70b9b2b818c4", "document/ChangedDocumentTracker.js": "03b0eaf0995fee6d27c782a8028a1314f61214e383f5f5e198320b2faac4cf40", @@ -1763,16 +1763,16 @@ "verify-dependencies-loaded.js": "98f5fd53dafdb1c319a1cfe6ae316deda6bf30019663925bc2b4c4a592b3b3ed", "view/fontrules/font-based-rules.less": "ae3a98c651522d06b43a0b5e1bbf28bda59c34bcce23d025b6c0f0d2fe445de7", "view/MainViewFactory.js": "5156ee0a57341256819d3c5288a8c89cebf22d3a6269f43ca30cd661a5d659df", - "view/MainViewManager.js": "61a33edcec4735f734ec62f5b564ca6d221ae82ad7d890abfdd7c0e8e20b6a1f", - "view/Pane.js": "0c77d8f64d54297af26fa5c3621af2598c71cb9f8957408532c01bd131e5c7f7", - "view/PanelView.js": "e70d00d7a76c8adfdf17d2b3eaf21c409ed69e170d997c2f77daa83c28d065de", - "view/PluginPanelView.js": "c272385acb8a9213fb231b7e55442ecc28d9f75f2853e745b6d810110d181623", - "view/ThemeManager.js": "de703acae34b5f6741e93e9a5de7cce9af6c41e6c52d8cb6396c96b35054cab3", + "view/MainViewManager.js": "6ce89e63d68117b9bdc94941954adf0b210e0cae264d3861bf557a99875e84df", + "view/Pane.js": "3b60e5fb7aaf865ba743c48c410f7bb27c2a3cb7e65e0da55bbec7396d366601", + "view/PanelView.js": "6caf159a2500a23e0957707e60cc029a5e6fbdc733e04670a4dd4c3aff6847a2", + "view/PluginPanelView.js": "1f313d224d8fe121a9347c1035da5e69e1b7309e4e26331009b15a52466530d5", + "view/ThemeManager.js": "5ed6e2148d38feb13258470ddf831e86b2224b2be7e676bdf70c0886c742d0cb", "view/ThemeSettings.js": "b1823abbb2043ff19babfbb51b72076975db6d39f9928387bf40c3080e422511", "view/ThemeView.js": "e958ecb95d48f08e79d4082eaa957512d67d3845b23d29496e207762ac39c62b", - "view/ViewCommandHandlers.js": "88b3346b729e6d5b65e5e71a7dff3b0ae2eadc2f331500ec3ba2b71bab7b9a47", - "view/ViewStateManager.js": "6d87c1612a8436f6d828509029ca24c9e9e65a4afc4213771ae0c6a057c823a2", - "view/WorkspaceManager.js": "3bb72ea86714af9108fb5f7b898f429a48115257f87615b63ec8dff45dc939f5", + "view/ViewCommandHandlers.js": "f175b2dea61627fa99312c3b0a92b6770fe0af71823ddc2aeb8028d2b704339a", + "view/ViewStateManager.js": "92a2a04cdfb9bf394125662d950405287263786aa73d56da05a37d47505a702a", + "view/WorkspaceManager.js": "3efbf6502abe30991705d6f96f99bb9c9bd05c298e53796b99148fd3a1f3439a", "virtual-server-main.js": "8738b7477f1e42295d7305ef4bdbc0303b37c29fffe86522c73124b34ab15448", "widgets/bootstrap-alerts.js": "df642f7d793199d1abf0730312ad28a89cc2010f17c27dcae48faef97ac6ea45", "widgets/bootstrap-button.js": "815bd5b4dffe890f135f6d375b42a87a9911cf107cf24c70313fc88ffdecbec0", @@ -1783,15 +1783,15 @@ "widgets/bootstrap-tab.js": "2ffae170607365ae77f3e6d247dab0157b31f5ae9f368775c08c6eeebf66102a", "widgets/bootstrap-tooltip.js": "21f5003f2ff159eddd0d5a1a75738d0c9d710b338b38c93e71f7c7cbb09bcadd", "widgets/bootstrap-twipsy-mod.js": "3e57a1d781e6308fddf2dd7f14f5d6746741dfbaf2a07f800135754caaa85645", - "widgets/DefaultDialogs.js": "9c2d21e1e7ef69050f73cb9d2e3ff9cea8f4b9175575b44125cbba289eee3e4c", - "widgets/Dialogs.js": "a64a7f4f6824c62a560ce08d07a469b520e35ca3d81f3b92a608e9546152552d", - "widgets/DropdownButton.js": "a34f4d227b3f1f1996bb6fe1d3868d14eef16e67e26429996bf45e4cde1ce15d", + "widgets/DefaultDialogs.js": "273f569b0d6e4cc6d68e623ba41bce3b7637a60da20631cca89a246abe90f0de", + "widgets/Dialogs.js": "099ebd07a4da618c4dbc0bf5b1faa92596e9b71eaad6776e5ce22ace480cb9ec", + "widgets/DropdownButton.js": "25ce5b4397547e5f9899b0a893918dc6c25d3071e9d8001801db1186da476427", "widgets/html/toast-popup.html": "7b37d47271f5b8bd565235f984c4205fff394208c99ac31b2ce6f8dffb6ca3dc", "widgets/infobar.js": "57d512952235998745b1c01fd9d2dd3b054bed54671470902aa83172168c234c", "widgets/InlineMenu.js": "b1f02dc10678ca4cf0dd4a1a6512fb16600adb0faa0f461d20edddcef1f4a7d7", - "widgets/ModalBar.js": "dc422180fda4c534679b110c6b897ace9a44ecd588f5c18e91605200b554ca9b", - "widgets/NotificationUI.js": "a74366a131b1f8e5dd5741df34beea5afa61e1ec46534bc216c3d0fe1495f384", - "widgets/PopUpManager.js": "f672649cab57f1a660006ada5e34c89536eead870909c409a4ade212fb673947", + "widgets/ModalBar.js": "fce131bf57f92d733f86ae5ee51f18f68d40af0af30dacf041704d16fb632960", + "widgets/NotificationUI.js": "6307c92754315f3f31f09d22b626afa933a68291b05093e842181c278dbb97b8", + "widgets/PopUpManager.js": "530941ac8f482cde29e6474e6b1de092046e897daf419fe11b869ddbad511a50", "widgets/StatusBar.js": "666179a4ed7c512246db2a162db7400600ea0bf442d42cfad473c3667186857c", "worker/extensions-worker-thread.js": "e819ddc615de8ddb5547aa4be4e5943524f4f373ff49a0c7c2fa8469a0f3361d", "worker/ExtensionsWorker.js": "5ba848bf08c36a7fd0d265aac38265537908e50643859748064ba6b3d74d6991", diff --git a/web-cache/3.10.0/config.json b/web-cache/3.10.0/config.json index 1465f02d4..079750f71 100644 --- a/web-cache/3.10.0/config.json +++ b/web-cache/3.10.0/config.json @@ -25,7 +25,7 @@ "app_notification_url": "assets/notifications/dev/", "app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json", "linting.enabled_by_default": true, - "build_timestamp": "2024-10-29T05:24:14.640Z", + "build_timestamp": "2024-10-30T02:41:25.004Z", "googleAnalyticsID": "G-P4HJFPDB76", "googleAnalyticsIDDesktop": "G-VE5BXWJ0HF", "mixPanelID": "49c4d164b592be2350fc7af06a259bf3", @@ -37,7 +37,7 @@ "bugsnagEnv": "development" }, "name": "Phoenix Code", - "version": "3.10.0-20638", + "version": "3.10.0-20642", "apiVersion": "3.10.0", "homepage": "https://core.ai", "issues": { diff --git a/web-cache/3.10.0/view/MainViewManager.js b/web-cache/3.10.0/view/MainViewManager.js index e652117a2..9a437adfd 100644 --- a/web-cache/3.10.0/view/MainViewManager.js +++ b/web-cache/3.10.0/view/MainViewManager.js @@ -97,6 +97,11 @@ define(function (require, exports, module) { Pane = require("view/Pane").Pane, KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + /** + * Event current file change + * @const + * @type {string} + */ const EVENT_CURRENT_FILE_CHANGE = "currentFileChange"; /** @@ -220,6 +225,7 @@ define(function (require, exports, module) { /** * The global MRU list (for traversing) * @type {Array.} + * @private */ var _mruList = []; @@ -293,6 +299,7 @@ define(function (require, exports, module) { * Resolve paneId to actual pane. * @param {?string} paneId - id of the desired pane. May be symbolic or null (to indicate current pane) * @return {string} id of the pane in which to open the document + * @private */ function _resolvePaneId(paneId) { if (!paneId || paneId === ACTIVE_PANE) { @@ -329,6 +336,7 @@ define(function (require, exports, module) { * Determines if the pane id is a special pane id * @param {!string} paneId - the id to test * @return {boolean} true if the pane id is a special identifier, false if not + * @private */ function _isSpecialPaneId(paneId) { return paneId === ACTIVE_PANE || paneId === ALL_PANES; @@ -409,6 +417,7 @@ define(function (require, exports, module) { /** * Retrieves the Pane ID for the specified container + * @private * @param {!jQuery} $el - the element of the pane to fetch * @return {?string} the id of the pane that matches the container or undefined if a pane doesn't exist for that container */ @@ -1153,6 +1162,7 @@ define(function (require, exports, module) { /** * Updates the header text for all panes + * @private */ function _updatePaneHeaders() { _forEachPaneOrPanes(ALL_PANES, function (pane) { @@ -1291,6 +1301,7 @@ define(function (require, exports, module) { /** * Opens a file in the specified pane this can be used to open a file with a custom viewer * or a document for editing. If it's a document for editing, edit is called on the document + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!File} file - file to open * @param {{noPaneActivate:boolean=}=} optionsIn - options @@ -1416,7 +1427,7 @@ define(function (require, exports, module) { /** * Closes a file in the specified pane or panes. - * + * @private * @param {!string} paneId - The ID of the pane in which to close the document. * @param {!File} file - The file to close. * @param {Object} [optionsIn] - Optional parameters for the close operation. @@ -1437,6 +1448,7 @@ define(function (require, exports, module) { /** * Closes a list of file in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * @param {!Array.} fileList - files to close * This function does not fail if the file is not open @@ -1454,6 +1466,7 @@ define(function (require, exports, module) { /** * Closes all files in the specified pane or panes + * @private * @param {!string} paneId - id of the pane in which to open the document * This function does not fail if the file is not open */ @@ -1493,7 +1506,8 @@ define(function (require, exports, module) { /** * Destroys an editor object if a document is no longer referenced - * @param {!Document} doc - document to destroy + * @private + * @param {!Document} document - document to destroy */ function _destroyEditorIfNotNeeded(document) { if (!(document instanceof DocumentManager.Document)) { @@ -1518,7 +1532,7 @@ define(function (require, exports, module) { /** - * Loads the workingset state + * Loads the working set state * @private */ function _loadViewState(e) { @@ -1543,7 +1557,7 @@ define(function (require, exports, module) { } }; - // Add all files to the workingset without verifying that + // Add all files to the working set without verifying that // they still exist on disk (for faster project switching) files.forEach(function (value) { result.panes[FIRST_PANE].push(value); @@ -1633,7 +1647,7 @@ define(function (require, exports, module) { } /** - * Saves the workingset state + * Saves the working set state * @private */ function _saveViewState() { diff --git a/web-cache/3.10.0/view/Pane.js b/web-cache/3.10.0/view/Pane.js index 82fb6e275..b25e0673b 100644 --- a/web-cache/3.10.0/view/Pane.js +++ b/web-cache/3.10.0/view/Pane.js @@ -200,6 +200,7 @@ define(function (require, exports, module) { /** * Make an index request object + * @private * @param {boolean} requestIndex - true to request an index, false if not * @param {number} index - the index to request * @return {{indexRequested: boolean, index: number}} An object that can be passed to @@ -464,18 +465,21 @@ define(function (require, exports, module) { /** * The list of files views + * @private * @type {Array.} */ Pane.prototype._viewList = []; /** * The list of files views in MRU order + * @private * @type {Array.} */ Pane.prototype._viewListMRUOrder = []; /** * The list of files views in Added order + * @private * @type {Array.} */ Pane.prototype._viewListAddedOrder = []; @@ -541,6 +545,7 @@ define(function (require, exports, module) { /** * Hides the current view if there is one, shows the * interstitial screen and notifies that the view changed + * @private */ Pane.prototype._hideCurrentView = function () { if (this._currentView) { @@ -641,7 +646,7 @@ define(function (require, exports, module) { /** * Merges the another Pane object's contents into this Pane - * @param {!Pane} Other - Pane from which to copy + * @param {!Pane} other - Pane from which to copy */ Pane.prototype.mergeFrom = function (other) { // save this because we're setting it to null and we @@ -890,6 +895,7 @@ define(function (require, exports, module) { /** * Dispatches a currentViewChange event + * @private * @param {?View} newView - the view become the current view * @param {?View} oldView - the view being replaced */ @@ -1216,6 +1222,7 @@ define(function (require, exports, module) { /** * Update header and content height + * @private */ Pane.prototype._updateHeaderHeight = function () { var paneContentHeight = this.$el.height(); @@ -1333,6 +1340,7 @@ define(function (require, exports, module) { /** * Executes a FILE_OPEN command to open a file + * @private * @param {!string} fullPath - path of the file to open * @return {jQuery.promise} promise that will resolve when the file is opened */ @@ -1483,6 +1491,7 @@ define(function (require, exports, module) { /** * MainViewManager.activePaneChange handler + * @private * @param {jQuery.event} e - event data * @param {!string} activePaneId - the new active pane id */ diff --git a/web-cache/3.10.0/view/PanelView.js b/web-cache/3.10.0/view/PanelView.js index c237b19f1..d3c6e266f 100644 --- a/web-cache/3.10.0/view/PanelView.js +++ b/web-cache/3.10.0/view/PanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -25,10 +26,29 @@ define(function (require, exports, module) { const EventDispatcher = require("utils/EventDispatcher"), - Resizer = require("utils/Resizer"), - EVENT_PANEL_HIDDEN = 'panelHidden', - EVENT_PANEL_SHOWN = 'panelShown', - PANEL_TYPE_BOTTOM_PANEL = "bottomPanel"; + Resizer = require("utils/Resizer"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for bottom panel + * @type {string} + * @constant + */ + const PANEL_TYPE_BOTTOM_PANEL = 'bottomPanel'; + /** * Represents a panel below the editor area (a child of ".content"). @@ -113,7 +133,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/web-cache/3.10.0/view/PluginPanelView.js b/web-cache/3.10.0/view/PluginPanelView.js index e1a8ec4a3..8d1e829a4 100644 --- a/web-cache/3.10.0/view/PluginPanelView.js +++ b/web-cache/3.10.0/view/PluginPanelView.js @@ -16,6 +16,7 @@ * */ +// @INCLUDE_IN_API_DOCS /*global fs, Phoenix, process*/ /*eslint no-console: 0*/ @@ -24,10 +25,28 @@ define(function (require, exports, module) { - const EventDispatcher = require("utils/EventDispatcher"), - EVENT_PANEL_SHOWN = "panelShown", - EVENT_PANEL_HIDDEN = "panelHidden", - PANEL_TYPE_PLUGIN_PANEL = "pluginPanel"; + const EventDispatcher = require("utils/EventDispatcher"); + + /** + * Event when panel is hidden + * @type {string} + * @constant + */ + const EVENT_PANEL_HIDDEN = 'panelHidden'; + + /** + * Event when panel is shown + * @type {string} + * @constant + */ + const EVENT_PANEL_SHOWN = 'panelShown'; + + /** + * type for plugin panel + * @type {string} + * @constant + */ + const PANEL_TYPE_PLUGIN_PANEL = 'pluginPanel'; /** * Represents a panel below the editor area (a child of ".content"). @@ -125,7 +144,7 @@ define(function (require, exports, module) { }; /** - * gets the Panle's type + * gets the Panel's type * @return {string} */ Panel.prototype.getPanelType = function () { diff --git a/web-cache/3.10.0/view/ThemeManager.js b/web-cache/3.10.0/view/ThemeManager.js index 6360d52e0..4a06887db 100644 --- a/web-cache/3.10.0/view/ThemeManager.js +++ b/web-cache/3.10.0/view/ThemeManager.js @@ -21,6 +21,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*jslint regexp: true */ /*global less, path, Phoenix */ @@ -48,8 +50,19 @@ define(function (require, exports, module) { scrollbarsRegex = /((?:[^}|,]*)::-webkit-scrollbar(?:[^{]*)[{](?:[^}]*?)[}])/mgi, stylesPath = FileUtils.getNativeBracketsDirectoryPath() + "/styles/"; - const EVENT_THEME_CHANGE = "themeChange", - EVENT_THEME_LOADED = "themeLoaded"; + /** + * Event when theme is changed + * @type {string} + * @const + */ + const EVENT_THEME_CHANGE = "themeChange"; + + /** + * Event when theme is loaded + * @type {string} + * @const + */ + const EVENT_THEME_LOADED = "themeLoaded"; /** * @private @@ -71,6 +84,7 @@ define(function (require, exports, module) { /** * @constructor + * @private * Theme contains all the essential bit to load a theme from disk, display a theme in the settings * dialog, and to properly add a theme into CodeMirror along with the rest of brackets. * @@ -375,7 +389,7 @@ define(function (require, exports, module) { /** * Loads a theme from a url. - * + * @private * @param {string} url is the full http/https url of the theme file * @param {Object} options is an optional parameter to specify metadata * for the theme. diff --git a/web-cache/3.10.0/view/ViewCommandHandlers.js b/web-cache/3.10.0/view/ViewCommandHandlers.js index 7a4c6045c..280d1b6f3 100644 --- a/web-cache/3.10.0/view/ViewCommandHandlers.js +++ b/web-cache/3.10.0/view/ViewCommandHandlers.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /*global less, Phoenix */ /** @@ -75,12 +77,14 @@ define(function (require, exports, module) { /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts"; /** * @const * @type {string} + * @private */ var DYNAMIC_FONT_FAMILY_ID = "codemirror-dynamic-font-family"; @@ -340,7 +344,10 @@ define(function (require, exports, module) { return true; } - /** Increases the font size by 1 */ + /** + * Increases the font size by 1 + * @private + */ function _handleIncreaseFontSize() { _adjustFontSize(1); } @@ -385,12 +392,18 @@ define(function (require, exports, module) { } } - /** Decreases the font size by 1 */ + /** + * Decreases the font size by 1 + * @private + */ function _handleDecreaseFontSize() { _adjustFontSize(-1); } - /** Restores the font size to the original size */ + /** + * Restores the font size to the original size + * @private + */ function _handleRestoreFontSize() { setFontSize(DEFAULT_FONT_SIZE + "px"); } @@ -418,6 +431,7 @@ define(function (require, exports, module) { /** * Initializes the different settings that need to loaded + * @private */ function init() { currFontFamily = prefs.get("fontFamily"); @@ -537,17 +551,26 @@ define(function (require, exports, module) { editor.setScrollPos(scrollInfo.left, (textHeight * lines) + removedScroll); } - /** Scrolls one line up */ + /** + * Scrolls one line up + * @private + */ function _handleScrollLineUp() { _scrollLine(-1); } - /** Scrolls one line down */ + /** + * Scrolls one line down + * @private + */ function _handleScrollLineDown() { _scrollLine(1); } - /** Open theme settings dialog */ + /** + * Open theme settings dialog + * @private + */ function _handleThemeSettings() { ThemeSettings.showDialog(); } diff --git a/web-cache/3.10.0/view/ViewStateManager.js b/web-cache/3.10.0/view/ViewStateManager.js index 0d3f4cfcf..d4a371831 100644 --- a/web-cache/3.10.0/view/ViewStateManager.js +++ b/web-cache/3.10.0/view/ViewStateManager.js @@ -52,7 +52,8 @@ define(function (require, exports, module) { } /** - * Sets the view state for the specfied file + * Sets the view state for the specified file + * @private * @param {!File} file - the file to record the view state for * @param {?*} viewState - any data that the view needs to restore the view state. */ diff --git a/web-cache/3.10.0/view/WorkspaceManager.js b/web-cache/3.10.0/view/WorkspaceManager.js index 2458d69b4..bfab7b05d 100644 --- a/web-cache/3.10.0/view/WorkspaceManager.js +++ b/web-cache/3.10.0/view/WorkspaceManager.js @@ -44,21 +44,43 @@ define(function (require, exports, module) { EditorManager = require("editor/EditorManager"), KeyEvent = require("utils/KeyEvent"); - //constants - const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout", - EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN, - EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN, - MAIN_TOOLBAR_WIDTH = 30; + + /** + * Event triggered when the workspace layout updates. + * @const + */ + const EVENT_WORKSPACE_UPDATE_LAYOUT = "workspaceUpdateLayout"; + + /** + * Event triggered when a panel is shown. + * @const + */ + const EVENT_WORKSPACE_PANEL_SHOWN = PanelView.EVENT_PANEL_SHOWN; + + /** + * Event triggered when a panel is hidden. + * @const + */ + const EVENT_WORKSPACE_PANEL_HIDDEN = PanelView.EVENT_PANEL_HIDDEN; + + /** + * Width of the main toolbar in pixels. + * @const + * @private + */ + const MAIN_TOOLBAR_WIDTH = 30; /** * The ".content" vertical stack (editor + all header/footer panels) * @type {jQueryObject} + * @private */ var $windowContent; /** * The "#editor-holder": has only one visible child, the current CodeMirror instance (or the no-editor placeholder) * @type {jQueryObject} + * @private */ var $editorHolder; @@ -66,28 +88,33 @@ define(function (require, exports, module) { /** * The "#main-toolbay": to the right side holding plugin panels and icons * @type {jQueryObject} + * @private */ var $mainToolbar; /** * The "#main-plugin-panel": The plugin panel main container * @type {jQueryObject} + * @private */ let $mainPluginPanel; /** * The "#plugin-icons-bar": holding all the plugin icons * @type {jQueryObject} + * @private */ let $pluginIconsBar; /** - * A map from panel ID's to all reated panels + * A map from panel ID's to all related panels + * @private */ var panelIDMap = {}; /** * Have we already started listening for the end of the ongoing window resize? + * @private * @type {boolean} */ var windowResizing = false; @@ -100,6 +127,7 @@ define(function (require, exports, module) { * Calculates the available height for the full-size Editor (or the no-editor placeholder), * accounting for the current size of all visible panels, toolbar, & status bar. * @return {number} + * @private */ function calcAvailableHeight() { var availableHt = $windowContent.height(); @@ -115,7 +143,10 @@ define(function (require, exports, module) { return Math.max(availableHt, 0); } - /** Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 */ + /** + * Updates panel resize limits to disallow making panels big enough to shrink editor area below 0 + * @private + */ function updateResizeLimits() { var editorAreaHeight = $editorHolder.height(); @@ -135,7 +166,7 @@ define(function (require, exports, module) { /** * Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "workspaceUpdateLayout" * event. (The editors within are resized by EditorManager, in response to that event). - * + * @private * @param {boolean=} refreshHint true to force a complete refresh */ function triggerUpdateLayout(refreshHint) { @@ -152,7 +183,10 @@ define(function (require, exports, module) { } - /** Trigger editor area resize whenever the window is resized */ + /** + * Trigger editor area resize whenever the window is resized + * @private + */ function handleWindowResize() { // These are not initialized in Jasmine Spec Runner window until a test // is run that creates a mock document. @@ -177,7 +211,8 @@ define(function (require, exports, module) { } /** Trigger editor area resize whenever the given panel is shown/hidden/resized - * @param {!jQueryObject} $panel the jquery object in which to attach event handlers + * @private + * @param {!jQueryObject} $panel the jquery object in which to attach event handlers */ function listenToResize($panel) { // Update editor height when shown/hidden, & continuously as panel is resized @@ -294,7 +329,10 @@ define(function (require, exports, module) { listenToResize($("#main-toolbar")); }); - /* Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() */ + /** + * Unit test only: allow passing in mock DOM notes, e.g. for use with SpecRunnerUtils.createMockEditor() + * @private + */ function _setMockDOM($mockWindowContent, $mockEditorHolder, $mockMainToolbar, $mockMainPluginPanel, $mockPluginIconsBar) { $windowContent = $mockWindowContent; $editorHolder = $mockEditorHolder; @@ -372,6 +410,12 @@ define(function (require, exports, module) { exports.trigger(EVENT_WORKSPACE_PANEL_HIDDEN, panelID); }); + /** + * Responsible to check if the panel is visible or not. + * Returns true if visible else false. + * @param panelID + * @returns {boolean} + */ function isPanelVisible(panelID) { let panel = getPanelForID(panelID); if(panel && panel.isVisible()){ @@ -504,6 +548,16 @@ define(function (require, exports, module) { exports.EVENT_WORKSPACE_UPDATE_LAYOUT = EVENT_WORKSPACE_UPDATE_LAYOUT; exports.EVENT_WORKSPACE_PANEL_SHOWN = EVENT_WORKSPACE_PANEL_SHOWN; exports.EVENT_WORKSPACE_PANEL_HIDDEN = EVENT_WORKSPACE_PANEL_HIDDEN; + + /** + * Constant representing the type of bottom panel + * @type {string} + */ exports.PANEL_TYPE_BOTTOM_PANEL = PanelView.PANEL_TYPE_BOTTOM_PANEL; + + /** + * Constant representing the type of plugin panel + * @type {string} + */ exports.PANEL_TYPE_PLUGIN_PANEL = PluginPanelView.PANEL_TYPE_PLUGIN_PANEL; }); diff --git a/web-cache/3.10.0/widgets/DefaultDialogs.js b/web-cache/3.10.0/widgets/DefaultDialogs.js index 440f066a9..d7e6b2eac 100644 --- a/web-cache/3.10.0/widgets/DefaultDialogs.js +++ b/web-cache/3.10.0/widgets/DefaultDialogs.js @@ -19,16 +19,50 @@ * */ +// @INCLUDE_IN_API_DOCS + define(function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; + + /** + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); diff --git a/web-cache/3.10.0/widgets/Dialogs.js b/web-cache/3.10.0/widgets/Dialogs.js index 691408d02..cf24836da 100644 --- a/web-cache/3.10.0/widgets/Dialogs.js +++ b/web-cache/3.10.0/widgets/Dialogs.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -38,27 +40,72 @@ define(function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_PRIMARY = "primary"; + + /** + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_NORMAL = ""; /** - * Dialog Buttons Class Names - * @const {string} + * Left-aligned button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -74,7 +121,7 @@ define(function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -151,6 +198,7 @@ define(function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -240,6 +288,7 @@ define(function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -248,7 +297,7 @@ define(function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -257,6 +306,7 @@ define(function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -265,6 +315,7 @@ define(function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -274,6 +325,7 @@ define(function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -282,6 +334,7 @@ define(function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -435,6 +488,14 @@ define(function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -444,10 +505,26 @@ define(function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } diff --git a/web-cache/3.10.0/widgets/DropdownButton.js b/web-cache/3.10.0/widgets/DropdownButton.js index 27f7a2bbd..cf776becf 100644 --- a/web-cache/3.10.0/widgets/DropdownButton.js +++ b/web-cache/3.10.0/widgets/DropdownButton.js @@ -48,10 +48,33 @@ define(function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -138,7 +161,6 @@ define(function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -186,6 +208,7 @@ define(function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -307,7 +330,9 @@ define(function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { diff --git a/web-cache/3.10.0/widgets/ModalBar.js b/web-cache/3.10.0/widgets/ModalBar.js index 27dbbc60a..e33dcc35f 100644 --- a/web-cache/3.10.0/widgets/ModalBar.js +++ b/web-cache/3.10.0/widgets/ModalBar.js @@ -104,11 +104,13 @@ define(function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -226,6 +228,7 @@ define(function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -239,6 +242,7 @@ define(function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { diff --git a/web-cache/3.10.0/widgets/NotificationUI.js b/web-cache/3.10.0/widgets/NotificationUI.js index 10e915023..eb098459f 100644 --- a/web-cache/3.10.0/widgets/NotificationUI.js +++ b/web-cache/3.10.0/widgets/NotificationUI.js @@ -73,6 +73,11 @@ define(function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -81,6 +86,11 @@ define(function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', diff --git a/web-cache/3.10.0/widgets/PopUpManager.js b/web-cache/3.10.0/widgets/PopUpManager.js index 1357b7788..d90b319db 100644 --- a/web-cache/3.10.0/widgets/PopUpManager.js +++ b/web-cache/3.10.0/widgets/PopUpManager.js @@ -90,7 +90,7 @@ define(function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -144,6 +144,7 @@ define(function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp(); diff --git a/widgets/DefaultDialogs.js b/widgets/DefaultDialogs.js index 440f066a9..d7e6b2eac 100644 --- a/widgets/DefaultDialogs.js +++ b/widgets/DefaultDialogs.js @@ -19,16 +19,50 @@ * */ +// @INCLUDE_IN_API_DOCS + define(function (require, exports, module) { + /** + * Constants representing dialog IDs + * These IDs are used to identify different types of dialogs + * + * @module DefaultDialogs + */ + + /** + * ID for error dialog + * @constant {string} + */ + exports.DIALOG_ID_ERROR = "error-dialog"; + + /** + * ID for information dialog (currently uses the same template as DIALOG_ID_ERROR) + * @constant {string} + */ + exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future + + /** + * ID for save and close dialog + * @constant {string} + */ + exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; + + /** + * ID for `external change detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; + + /** + * ID for `external deletion detected` dialog + * @constant {string} + */ + exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; /** - * List of constants for the default dialogs IDs. + * ID for `change extensions` dialog + * @constant {string} */ - exports.DIALOG_ID_ERROR = "error-dialog"; - exports.DIALOG_ID_INFO = "error-dialog"; // uses the same template for now--could be different in future - exports.DIALOG_ID_SAVE_CLOSE = "save-close-dialog"; - exports.DIALOG_ID_EXT_CHANGED = "ext-changed-dialog"; - exports.DIALOG_ID_EXT_DELETED = "ext-deleted-dialog"; exports.DIALOG_ID_CHANGE_EXTENSIONS = "change-marked-extensions"; }); diff --git a/widgets/Dialogs.js b/widgets/Dialogs.js index 691408d02..cf24836da 100644 --- a/widgets/Dialogs.js +++ b/widgets/Dialogs.js @@ -19,6 +19,8 @@ * */ +// @INCLUDE_IN_API_DOCS + /** * Utilities for creating and managing standard modal dialogs. */ @@ -38,27 +40,72 @@ define(function (require, exports, module) { Mustache = require("thirdparty/mustache/mustache"); /** - * Dialog Buttons IDs - * @const {string} + * `CANCEL` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_CANCEL = "cancel"; + + /** + * `OK` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_OK = "ok"; + + /** + * `DONT SAVE` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DONTSAVE = "dontsave"; + + /** + * `SAVE AS` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_SAVE_AS = "save_as"; + + /** + * `CANCELED` dialog button ID + * @type {string} + * @const + */ + let DIALOG_CANCELED = "_canceled"; + + /** + * `DOWNLOAD` dialog button ID + * @type {string} + * @const + */ + let DIALOG_BTN_DOWNLOAD = "download"; + + /** + * Primary button class name + * @type {string} + * @const + */ + let DIALOG_BTN_CLASS_PRIMARY = "primary"; + + /** + * Normal button class name + * @type {string} + * @const */ - let DIALOG_BTN_CANCEL = "cancel", - DIALOG_BTN_OK = "ok", - DIALOG_BTN_DONTSAVE = "dontsave", - DIALOG_BTN_SAVE_AS = "save_as", - DIALOG_CANCELED = "_canceled", - DIALOG_BTN_DOWNLOAD = "download"; + let DIALOG_BTN_CLASS_NORMAL = ""; /** - * Dialog Buttons Class Names - * @const {string} + * Left-aligned button class name + * @type {string} + * @const */ - let DIALOG_BTN_CLASS_PRIMARY = "primary", - DIALOG_BTN_CLASS_NORMAL = "", - DIALOG_BTN_CLASS_LEFT = "left"; + let DIALOG_BTN_CLASS_LEFT = "left"; /** * The z-index used for the dialogs. Each new dialog increase this number by 2 * @type {number} + * @private */ let zIndex = 1050; @@ -74,7 +121,7 @@ define(function (require, exports, module) { /** * @private - * Dismises a modal dialog + * Dismisses a modal dialog * @param {$.Element} $dlg * @param {string} buttonId */ @@ -151,6 +198,7 @@ define(function (require, exports, module) { /** * Handles the keyDown event for the dialogs + * @private * @param {$.Event} e * @param {boolean} autoDismiss * @return {boolean} @@ -240,6 +288,7 @@ define(function (require, exports, module) { /** * The dialog jQuery element * @type {$.Element} + * @private */ Dialog.prototype.getElement = function () { return this._$dlg; @@ -248,7 +297,7 @@ define(function (require, exports, module) { /** * Determines whether the dialog is currently shown. Note that even if other dialogs occlude this dialog when * multiple dialogs are shown, this will still return true. - * + * @private * @returns {boolean} true if the dialog is visible, false otherwise. */ Dialog.prototype.isVisible = function () { @@ -257,6 +306,7 @@ define(function (require, exports, module) { /** * The dialog promise + * @private * @type {$.Promise} */ Dialog.prototype.getPromise = function () { @@ -265,6 +315,7 @@ define(function (require, exports, module) { /** * Closes the dialog if is visible + * @private */ Dialog.prototype.close = function () { if (this._$dlg.is(":visible")) { // Bootstrap breaks if try to hide dialog that's already hidden @@ -274,6 +325,7 @@ define(function (require, exports, module) { /** * Adds a done callback to the dialog promise + * @private */ Dialog.prototype.done = function (callback) { this._promise.done(callback); @@ -282,6 +334,7 @@ define(function (require, exports, module) { /** * Don't allow dialog to exceed viewport size + * @private */ function setDialogMaxSize() { let maxWidth, maxHeight, @@ -435,6 +488,14 @@ define(function (require, exports, module) { return showModalDialogUsingTemplate(template, autoDismiss); } + /** + * Display a confirmation dialog with `OK` and `CANCEL` button + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showConfirmDialog(title, message, autoDismiss) { const buttons = [ { className: DIALOG_BTN_CLASS_NORMAL, id: DIALOG_BTN_CANCEL, text: Strings.CANCEL }, @@ -444,10 +505,26 @@ define(function (require, exports, module) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, buttons, autoDismiss); } + /** + * Display information dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showInfoDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_INFO, title, message, null, autoDismiss); } + /** + * Display error dialog + * + * @param {string} title dialog title + * @param {string} message message to display in the dialog + * @param {boolean=} autoDismiss whether to automatically dismiss the dialog or not + * @return {Dialog} the created dialog instance + */ function showErrorDialog(title, message, autoDismiss) { return showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message, null, autoDismiss); } diff --git a/widgets/DropdownButton.js b/widgets/DropdownButton.js index 27f7a2bbd..cf776becf 100644 --- a/widgets/DropdownButton.js +++ b/widgets/DropdownButton.js @@ -48,10 +48,33 @@ define(function (require, exports, module) { ViewUtils = require("utils/ViewUtils"), _ = require("thirdparty/lodash"); - const EVENT_SELECTED = "select", - EVENT_LIST_RENDERED = "listRendered", - EVENT_DROPDOWN_SHOWN = "shown", - EVENT_DROPDOWN_CLOSED = "closed"; + /** + * Event triggered when an item is selected. + * @type {string} + * @const + */ + const EVENT_SELECTED = "select"; + + /** + * Event triggered when the list is rendered. + * @type {string} + * @const + */ + const EVENT_LIST_RENDERED = "listRendered"; + + /** + * Event triggered when the dropdown is shown. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_SHOWN = "shown"; + + /** + * Event triggered when the dropdown is closed. + * @type {string} + * @const + */ + const EVENT_DROPDOWN_CLOSED = "closed"; /** * Creates a single dropdown-button instance. The DOM node is created but not attached to @@ -138,7 +161,6 @@ define(function (require, exports, module) { */ DropdownButton.prototype._dropdownEventHandler = null; - /** * @private * Handle clicking button @@ -186,6 +208,7 @@ define(function (require, exports, module) { /** * Converts the list of item objects into HTML list items in format required by DropdownEventHandler + * @private * @param {!jQueryObject} $parent The dropdown element * @return {!jQueryObject} The dropdown element with the rendered list items appended. */ @@ -307,7 +330,9 @@ define(function (require, exports, module) { }); }; - /** Pops open the dropdown if currently closed. Does nothing if items.length == 0 */ + /** + * Pops open the dropdown if currently closed. Does nothing if items.length == 0 + */ DropdownButton.prototype.showDropdown = function () { // Act like a plain old button if no items to show if (!this.items.length) { diff --git a/widgets/ModalBar.js b/widgets/ModalBar.js index 27dbbc60a..e33dcc35f 100644 --- a/widgets/ModalBar.js +++ b/widgets/ModalBar.js @@ -104,11 +104,13 @@ define(function (require, exports, module) { /** * A jQuery object containing the root node of the ModalBar. + * @private */ ModalBar.prototype._$root = null; /** * True if this ModalBar is set to autoclose. + * @private */ ModalBar.prototype._autoClose = false; @@ -226,6 +228,7 @@ define(function (require, exports, module) { /** * If autoClose is set, close the bar when Escape is pressed + * @private */ ModalBar.prototype._handleKeydown = function (e) { if (e.keyCode === KeyEvent.DOM_VK_ESCAPE) { @@ -239,6 +242,7 @@ define(function (require, exports, module) { * If autoClose is set, detects when something other than the modal bar is getting focus and * dismisses the modal bar. DOM nodes with "attached-to" jQuery metadata referencing an element * within the ModalBar are allowed to take focus without closing it. + * @private */ ModalBar.prototype._handleFocusChange = function (e) { if (this.isLockedOpen && this.isLockedOpen()) { diff --git a/widgets/NotificationUI.js b/widgets/NotificationUI.js index 10e915023..eb098459f 100644 --- a/widgets/NotificationUI.js +++ b/widgets/NotificationUI.js @@ -73,6 +73,11 @@ define(function (require, exports, module) { const NOTIFICATION_TYPE_ARROW = "arrow", NOTIFICATION_TYPE_TOAST = "toast"; + /** + * CSS class names for notification styles. + * @enum {string} + * @const + */ const NOTIFICATION_STYLES_CSS_CLASS = { INFO: "style-info", WARNING: "style-warning", @@ -81,6 +86,11 @@ define(function (require, exports, module) { DANGER: "style-danger" }; + /** + * Closing notification reason. + * @enum {string} + * @const + */ const CLOSE_REASON ={ TIMEOUT: 'closeTimeout', CLICK_DISMISS: 'clickDismiss', diff --git a/widgets/PopUpManager.js b/widgets/PopUpManager.js index 1357b7788..d90b319db 100644 --- a/widgets/PopUpManager.js +++ b/widgets/PopUpManager.js @@ -90,7 +90,7 @@ define(function (require, exports, module) { /** * Remove Esc key handling for a pop-up. Removes the pop-up from the DOM * if the pop-up is currently visible and was not originally attached. - * + * @private * @param {KeyboardEvent=} keyEvent (optional) */ function removeCurrentPopUp(keyEvent) { @@ -144,6 +144,7 @@ define(function (require, exports, module) { /** * A menu is being popped up, so remove any menu that is currently popped up + * @private */ function _beforeMenuPopup() { removeCurrentPopUp();