diff --git a/resources/celerity/map.php b/resources/celerity/map.php index fa7dd1a36..46b30dd69 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -1,2307 +1,2307 @@ array( - 'core.pkg.css' => '6cdd937e', - 'core.pkg.js' => '8335fe3f', + 'core.pkg.css' => 'a8d8a51c', + 'core.pkg.js' => '07b01d4f', 'darkconsole.pkg.js' => 'ca8671ce', 'differential.pkg.css' => '4a93db37', 'differential.pkg.js' => 'eca39a2c', 'diffusion.pkg.css' => '471bc9eb', 'diffusion.pkg.js' => '077e3ad0', 'maniphest.pkg.css' => 'f88a8402', 'maniphest.pkg.js' => 'd1347a35', 'rsrc/css/aphront/aphront-bars.css' => '231ac33c', 'rsrc/css/aphront/context-bar.css' => '1c3b0529', 'rsrc/css/aphront/dark-console.css' => '6378ef3d', 'rsrc/css/aphront/dialog-view.css' => '318fe7e1', 'rsrc/css/aphront/error-view.css' => '9f1d5518', 'rsrc/css/aphront/lightbox-attachment.css' => '7acac05d', 'rsrc/css/aphront/list-filter-view.css' => '2ae43867', 'rsrc/css/aphront/multi-column.css' => '1b95ab2e', 'rsrc/css/aphront/notification.css' => 'ef2c9b34', 'rsrc/css/aphront/pager-view.css' => '2e3539af', 'rsrc/css/aphront/panel-view.css' => '5846dfa2', 'rsrc/css/aphront/phabricator-nav-view.css' => '9283c2df', 'rsrc/css/aphront/request-failure-view.css' => 'da14df31', 'rsrc/css/aphront/table-view.css' => 'b22b7216', 'rsrc/css/aphront/tokenizer.css' => '82ce2142', 'rsrc/css/aphront/tooltip.css' => '9c90229d', 'rsrc/css/aphront/transaction.css' => 'ce491938', 'rsrc/css/aphront/two-column.css' => '16ab3ad2', 'rsrc/css/aphront/typeahead.css' => 'a989b5b3', 'rsrc/css/application/auth/auth.css' => '1e655982', - 'rsrc/css/application/base/main-menu-view.css' => '72d1d2ef', + 'rsrc/css/application/base/main-menu-view.css' => 'b597e539', 'rsrc/css/application/base/notification-menu.css' => 'cbff1b94', 'rsrc/css/application/base/phabricator-application-launch-view.css' => '8b7e271d', 'rsrc/css/application/base/standard-page-view.css' => '517cdfb1', 'rsrc/css/application/chatlog/chatlog.css' => '852140ff', 'rsrc/css/application/config/config-options.css' => '7fedf08b', 'rsrc/css/application/config/config-template.css' => '25d446d6', 'rsrc/css/application/config/setup-issue.css' => '69e640e7', 'rsrc/css/application/conpherence/menu.css' => 'e1e0fdf1', 'rsrc/css/application/conpherence/message-pane.css' => '11a393ca', 'rsrc/css/application/conpherence/notification.css' => '04a6e10a', 'rsrc/css/application/conpherence/update.css' => '1099a660', 'rsrc/css/application/conpherence/widget-pane.css' => 'bf275a6c', 'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4', 'rsrc/css/application/countdown/timer.css' => '86b7b0a0', 'rsrc/css/application/dashboard/dashboard.css' => '0594a469', 'rsrc/css/application/diff/inline-comment-summary.css' => '8cfd34e8', 'rsrc/css/application/differential/add-comment.css' => 'c478bcaa', 'rsrc/css/application/differential/changeset-view.css' => 'ff8eacf8', 'rsrc/css/application/differential/core.css' => '7ac3cabc', 'rsrc/css/application/differential/results-table.css' => '239924f9', 'rsrc/css/application/differential/revision-comment.css' => '48186045', 'rsrc/css/application/differential/revision-history.css' => '0e8eb855', 'rsrc/css/application/differential/revision-list.css' => 'f3c47d33', 'rsrc/css/application/differential/table-of-contents.css' => '6bf8e1d2', 'rsrc/css/application/diffusion/commit-view.css' => '92d1e8f9', 'rsrc/css/application/diffusion/diffusion-icons.css' => '9c5828da', 'rsrc/css/application/diffusion/diffusion-source.css' => '66fdf661', 'rsrc/css/application/feed/feed.css' => 'dd43ce00', 'rsrc/css/application/files/global-drag-and-drop.css' => '697324ad', 'rsrc/css/application/flag/flag.css' => '5337623f', 'rsrc/css/application/harbormaster/harbormaster.css' => 'cec833b7', 'rsrc/css/application/herald/herald-test.css' => '778b008e', 'rsrc/css/application/herald/herald.css' => 'c544dd1c', 'rsrc/css/application/maniphest/batch-editor.css' => '8f380ebc', 'rsrc/css/application/maniphest/report.css' => '6fc16517', 'rsrc/css/application/maniphest/task-edit.css' => '8e23031b', 'rsrc/css/application/maniphest/task-summary.css' => '00c3be7a', 'rsrc/css/application/objectselector/object-selector.css' => '029a133d', 'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b', 'rsrc/css/application/paste/paste.css' => 'aa1767d1', 'rsrc/css/application/people/people-profile.css' => 'ba7b2762', 'rsrc/css/application/phame/phame.css' => '19ecc703', 'rsrc/css/application/pholio/pholio-edit.css' => 'b9e59b6d', 'rsrc/css/application/pholio/pholio-inline-comments.css' => '52be33f0', 'rsrc/css/application/pholio/pholio.css' => 'e059f955', 'rsrc/css/application/phortune/phortune-credit-card-form.css' => 'b25b4beb', 'rsrc/css/application/phrequent/phrequent.css' => 'ffc185ad', 'rsrc/css/application/phriction/phriction-document-css.css' => '7d7f0071', 'rsrc/css/application/policy/policy-edit.css' => '05cca26a', 'rsrc/css/application/policy/policy-transaction-detail.css' => '82100a43', 'rsrc/css/application/policy/policy.css' => '957ea14c', 'rsrc/css/application/ponder/comments.css' => '6cdccea7', 'rsrc/css/application/ponder/feed.css' => 'e62615b6', 'rsrc/css/application/ponder/post.css' => 'ebab8a70', 'rsrc/css/application/ponder/vote.css' => '8ed6ed8b', 'rsrc/css/application/profile/profile-view.css' => '91c6dd26', 'rsrc/css/application/projects/project-icon.css' => 'c2ecb7f1', 'rsrc/css/application/projects/project-tag.css' => '095c9404', 'rsrc/css/application/releeph/releeph-core.css' => '9b3c5733', 'rsrc/css/application/releeph/releeph-preview-branch.css' => 'b7a6f4a5', 'rsrc/css/application/releeph/releeph-request-differential-create-dialog.css' => '8d8b92cd', 'rsrc/css/application/releeph/releeph-request-typeahead.css' => '667a48ae', 'rsrc/css/application/search/search-results.css' => 'f240504c', 'rsrc/css/application/slowvote/slowvote.css' => '266df6a1', 'rsrc/css/application/tokens/tokens.css' => '3d0f239e', 'rsrc/css/application/uiexample/example.css' => '528b19de', 'rsrc/css/core/core.css' => '40151074', 'rsrc/css/core/remarkup.css' => '864d4f5e', 'rsrc/css/core/syntax.css' => '3c18c1cb', 'rsrc/css/core/z-index.css' => 'efb673ac', 'rsrc/css/diviner/diviner-shared.css' => '38813222', 'rsrc/css/font/font-awesome.css' => '73d075c3', 'rsrc/css/font/font-source-sans-pro.css' => '91d53463', 'rsrc/css/font/phui-font-icon-base.css' => 'eb84f033', 'rsrc/css/layout/phabricator-action-header-view.css' => 'f11f18b5', 'rsrc/css/layout/phabricator-action-list-view.css' => '35dbd16e', 'rsrc/css/layout/phabricator-crumbs-view.css' => '7fbf25b8', 'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82', 'rsrc/css/layout/phabricator-hovercard-view.css' => 'cae6e28f', 'rsrc/css/layout/phabricator-side-menu-view.css' => 'a2ccd7bd', 'rsrc/css/layout/phabricator-source-code-view.css' => '7d346aa4', 'rsrc/css/phui/calendar/phui-calendar-day.css' => 'de035c8a', 'rsrc/css/phui/calendar/phui-calendar-list.css' => 'c1d0ca59', 'rsrc/css/phui/calendar/phui-calendar-month.css' => 'a92e47d2', 'rsrc/css/phui/calendar/phui-calendar.css' => '5e1ad989', 'rsrc/css/phui/phui-box.css' => '7b3a2eed', 'rsrc/css/phui/phui-button.css' => 'c7412aa1', 'rsrc/css/phui/phui-document.css' => 'a5615198', 'rsrc/css/phui/phui-feed-story.css' => 'e2c9bc83', 'rsrc/css/phui/phui-fontkit.css' => 'de84aa4a', 'rsrc/css/phui/phui-form-view.css' => 'ed856191', 'rsrc/css/phui/phui-form.css' => 'b78ec020', 'rsrc/css/phui/phui-header-view.css' => 'a2071a67', 'rsrc/css/phui/phui-icon.css' => 'd8526aa1', 'rsrc/css/phui/phui-info-panel.css' => '27ea50a1', 'rsrc/css/phui/phui-list.css' => '43ed2d93', 'rsrc/css/phui/phui-object-box.css' => 'ce92d8ec', 'rsrc/css/phui/phui-object-item-list-view.css' => '46e12abc', 'rsrc/css/phui/phui-pinboard-view.css' => '32e8e1a9', 'rsrc/css/phui/phui-property-list-view.css' => '2f7199e8', 'rsrc/css/phui/phui-remarkup-preview.css' => '19ad512b', 'rsrc/css/phui/phui-spacing.css' => '042804d6', 'rsrc/css/phui/phui-status.css' => '2f562399', 'rsrc/css/phui/phui-tag-view.css' => 'ef0a9ca8', 'rsrc/css/phui/phui-text.css' => '23e9b4b7', 'rsrc/css/phui/phui-timeline-view.css' => 'bbd990d0', 'rsrc/css/phui/phui-workboard-view.css' => '2bf82d00', 'rsrc/css/phui/phui-workpanel-view.css' => 'fddd97bf', 'rsrc/css/sprite-apps-large.css' => '12ea1ced', 'rsrc/css/sprite-apps.css' => '37ee4f4e', 'rsrc/css/sprite-conpherence.css' => '3b4a0487', 'rsrc/css/sprite-docs.css' => '5f65d0da', 'rsrc/css/sprite-gradient.css' => '4aec2401', 'rsrc/css/sprite-login.css' => '67ff30b2', 'rsrc/css/sprite-main-header.css' => '92720ee2', 'rsrc/css/sprite-menu.css' => '28281e16', 'rsrc/css/sprite-minicons.css' => 'df4f76fe', 'rsrc/css/sprite-payments.css' => 'cc085d44', 'rsrc/css/sprite-projects.css' => '7578fa56', 'rsrc/css/sprite-tokens.css' => '1706b943', 'rsrc/externals/font/fontawesome/fontawesome-webfont.eot' => '1cab0752', 'rsrc/externals/font/fontawesome/fontawesome-webfont.ttf' => '2ff84fd2', 'rsrc/externals/font/fontawesome/fontawesome-webfont.woff' => 'a119ee5e', 'rsrc/externals/font/sourcesans/SourceSansPro.woff' => '3614608c', 'rsrc/externals/font/sourcesans/SourceSansProBold.woff' => 'cbf46566', 'rsrc/externals/javelin/core/Event.js' => '69815cac', 'rsrc/externals/javelin/core/Stratcom.js' => 'c293f7b9', 'rsrc/externals/javelin/core/__tests__/event-stop-and-kill.js' => '717554e4', 'rsrc/externals/javelin/core/__tests__/install.js' => 'c432ee85', 'rsrc/externals/javelin/core/__tests__/stratcom.js' => 'da194d4b', 'rsrc/externals/javelin/core/__tests__/util.js' => 'd3b157a9', 'rsrc/externals/javelin/core/init.js' => 'b88ab49e', 'rsrc/externals/javelin/core/init_node.js' => 'd7dde471', 'rsrc/externals/javelin/core/install.js' => '52a92793', 'rsrc/externals/javelin/core/util.js' => '65b0b249', 'rsrc/externals/javelin/docs/Base.js' => '897bb199', 'rsrc/externals/javelin/docs/onload.js' => '81fb4862', 'rsrc/externals/javelin/ext/fx/Color.js' => '7e41274a', 'rsrc/externals/javelin/ext/fx/FX.js' => '54b612ba', 'rsrc/externals/javelin/ext/reactor/core/DynVal.js' => 'f6555212', 'rsrc/externals/javelin/ext/reactor/core/Reactor.js' => '77b1cf6f', 'rsrc/externals/javelin/ext/reactor/core/ReactorNode.js' => 'b4c30592', 'rsrc/externals/javelin/ext/reactor/core/ReactorNodeCalmer.js' => '76f4ebed', 'rsrc/externals/javelin/ext/reactor/dom/RDOM.js' => 'b6d401d6', 'rsrc/externals/javelin/ext/view/HTMLView.js' => 'e5b406f9', 'rsrc/externals/javelin/ext/view/View.js' => '0f764c35', 'rsrc/externals/javelin/ext/view/ViewInterpreter.js' => '0c33c1a0', 'rsrc/externals/javelin/ext/view/ViewPlaceholder.js' => '2fa810fc', 'rsrc/externals/javelin/ext/view/ViewRenderer.js' => '6c2b09a2', 'rsrc/externals/javelin/ext/view/ViewVisitor.js' => 'efe49472', 'rsrc/externals/javelin/ext/view/__tests__/HTMLView.js' => 'f92d7bcb', 'rsrc/externals/javelin/ext/view/__tests__/View.js' => 'bda69c40', 'rsrc/externals/javelin/ext/view/__tests__/ViewInterpreter.js' => '7a94d6a5', 'rsrc/externals/javelin/ext/view/__tests__/ViewRenderer.js' => '5426001c', 'rsrc/externals/javelin/lib/Cookie.js' => '6b3dcf44', 'rsrc/externals/javelin/lib/DOM.js' => '07d99a3d', 'rsrc/externals/javelin/lib/History.js' => 'c60f4327', 'rsrc/externals/javelin/lib/JSON.js' => '08e56a4e', 'rsrc/externals/javelin/lib/Mask.js' => 'b9f26029', 'rsrc/externals/javelin/lib/Request.js' => '7bad574b', 'rsrc/externals/javelin/lib/Resource.js' => '0f81f8df', 'rsrc/externals/javelin/lib/Routable.js' => 'b3e7d692', 'rsrc/externals/javelin/lib/Router.js' => '29274e2b', 'rsrc/externals/javelin/lib/URI.js' => 'd9a9b862', 'rsrc/externals/javelin/lib/Vector.js' => 'bd0aedcd', 'rsrc/externals/javelin/lib/Workflow.js' => '09b15cf1', 'rsrc/externals/javelin/lib/__tests__/Cookie.js' => '5ed109e8', 'rsrc/externals/javelin/lib/__tests__/DOM.js' => 'c984504b', 'rsrc/externals/javelin/lib/__tests__/JSON.js' => '2295d074', 'rsrc/externals/javelin/lib/__tests__/URI.js' => '003ed329', 'rsrc/externals/javelin/lib/__tests__/behavior.js' => '1ea62783', 'rsrc/externals/javelin/lib/behavior.js' => '8a3ed18b', 'rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js' => 'e7c21fb3', 'rsrc/externals/javelin/lib/control/typeahead/Typeahead.js' => 'c54eeefb', 'rsrc/externals/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js' => '5f850b5c', 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js' => '84f34ab1', 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js' => 'a79b75a4', 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js' => '66815d9c', 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadSource.js' => '62e18640', 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js' => 'cdde23f1', 'rsrc/externals/raphael/g.raphael.js' => '40dde778', 'rsrc/externals/raphael/g.raphael.line.js' => '40da039e', 'rsrc/externals/raphael/raphael.js' => '51ee6b43', 'rsrc/image/BFCFDA.png' => 'd5ec91f4', 'rsrc/image/actions/edit.png' => '2fc41442', 'rsrc/image/apple-touch-icon.png' => '8458dda7', 'rsrc/image/avatar.png' => '3eb28cd9', 'rsrc/image/checker_dark.png' => 'd8e65881', 'rsrc/image/checker_light.png' => 'a0155918', 'rsrc/image/credit_cards.png' => '72b8ede8', 'rsrc/image/darkload.gif' => '1ffd3ec6', 'rsrc/image/divot.png' => '94dded62', 'rsrc/image/grippy_texture.png' => 'aca81e2f', 'rsrc/image/icon/fatcow/arrow_branch.png' => '2537c01c', 'rsrc/image/icon/fatcow/arrow_merge.png' => '21b660e0', 'rsrc/image/icon/fatcow/bullet_black.png' => 'ff190031', 'rsrc/image/icon/fatcow/bullet_orange.png' => 'e273e5bb', 'rsrc/image/icon/fatcow/bullet_red.png' => 'c0b75434', 'rsrc/image/icon/fatcow/calendar_edit.png' => '24632275', 'rsrc/image/icon/fatcow/document_black.png' => '45fe1c60', 'rsrc/image/icon/fatcow/flag_blue.png' => 'a01abb1d', 'rsrc/image/icon/fatcow/flag_finish.png' => '67825cee', 'rsrc/image/icon/fatcow/flag_ghost.png' => '20ca8783', 'rsrc/image/icon/fatcow/flag_green.png' => '7e0eaa7a', 'rsrc/image/icon/fatcow/flag_orange.png' => '9e73df66', 'rsrc/image/icon/fatcow/flag_pink.png' => '7e92f3b2', 'rsrc/image/icon/fatcow/flag_purple.png' => 'cc517522', 'rsrc/image/icon/fatcow/flag_red.png' => '04ec726f', 'rsrc/image/icon/fatcow/flag_yellow.png' => '73946fd4', 'rsrc/image/icon/fatcow/folder.png' => '95a435af', 'rsrc/image/icon/fatcow/folder_go.png' => '001cbc94', 'rsrc/image/icon/fatcow/key_question.png' => '52a0c26a', 'rsrc/image/icon/fatcow/link.png' => '7afd4d5e', 'rsrc/image/icon/fatcow/page_white_edit.png' => '39a2eed8', 'rsrc/image/icon/fatcow/page_white_link.png' => 'a90023c7', 'rsrc/image/icon/fatcow/page_white_put.png' => '08c95a0c', 'rsrc/image/icon/fatcow/page_white_text.png' => '1e1f79c3', 'rsrc/image/icon/fatcow/source/conduit.png' => '4ea01d2f', 'rsrc/image/icon/fatcow/source/email.png' => '9bab3239', 'rsrc/image/icon/fatcow/source/fax.png' => '04195e68', 'rsrc/image/icon/fatcow/source/mobile.png' => 'f1321264', 'rsrc/image/icon/fatcow/source/tablet.png' => '49396799', 'rsrc/image/icon/fatcow/source/web.png' => '136ccb5d', 'rsrc/image/icon/fatcow/thumbnails/default160x120.png' => 'f2e8a2eb', 'rsrc/image/icon/fatcow/thumbnails/default60x45.png' => '0118abed', 'rsrc/image/icon/fatcow/thumbnails/image160x120.png' => '79bb556a', 'rsrc/image/icon/fatcow/thumbnails/image60x45.png' => 'c5e1685e', 'rsrc/image/icon/fatcow/thumbnails/pdf160x120.png' => 'ac9edbf5', 'rsrc/image/icon/fatcow/thumbnails/pdf60x45.png' => 'c0db4143', 'rsrc/image/icon/fatcow/thumbnails/zip160x120.png' => '75f9cd0f', 'rsrc/image/icon/fatcow/thumbnails/zip60x45.png' => 'af11bf3e', 'rsrc/image/icon/lightbox/close-2.png' => 'cc40e7c8', 'rsrc/image/icon/lightbox/close-hover-2.png' => 'fb5d6d9e', 'rsrc/image/icon/lightbox/left-arrow-2.png' => '8426133b', 'rsrc/image/icon/lightbox/left-arrow-hover-2.png' => '701e5ee3', 'rsrc/image/icon/lightbox/right-arrow-2.png' => '6d5519a0', 'rsrc/image/icon/lightbox/right-arrow-hover-2.png' => '3a04aa21', 'rsrc/image/icon/subscribe.png' => 'd03ed5a5', 'rsrc/image/icon/tango/attachment.png' => 'ecc8022e', 'rsrc/image/icon/tango/edit.png' => '929a1363', 'rsrc/image/icon/tango/go-down.png' => '96d95e43', 'rsrc/image/icon/tango/log.png' => 'b08cc63a', 'rsrc/image/icon/tango/upload.png' => '7bbb7984', 'rsrc/image/icon/unsubscribe.png' => '25725013', 'rsrc/image/lightblue-header.png' => '5c168b6d', 'rsrc/image/loading.gif' => '75d384cc', 'rsrc/image/loading/boating_24.gif' => '5c90f086', 'rsrc/image/loading/compass_24.gif' => 'b36b4f46', 'rsrc/image/loading/loading_24.gif' => '26bc9adc', 'rsrc/image/loading/loading_48.gif' => '6a4994c7', 'rsrc/image/loading/loading_d48.gif' => 'cdcbe900', 'rsrc/image/loading/loading_w24.gif' => '7662fa2b', 'rsrc/image/main_texture.png' => '29a2c5ad', 'rsrc/image/menu_texture.png' => '5a17580d', 'rsrc/image/people/harding.png' => '45aa614e', 'rsrc/image/people/jefferson.png' => 'afca0e53', 'rsrc/image/people/lincoln.png' => '9369126d', 'rsrc/image/people/mckinley.png' => 'fb8f16ce', 'rsrc/image/people/taft.png' => 'd7bc402c', 'rsrc/image/people/washington.png' => '40dd301c', 'rsrc/image/phrequent_active.png' => 'a466a8ed', 'rsrc/image/phrequent_inactive.png' => 'bfc15a69', 'rsrc/image/search-white.png' => '64cc0d45', 'rsrc/image/search.png' => '82625a7e', 'rsrc/image/sprite-apps-X2.png' => '10fe124a', 'rsrc/image/sprite-apps-X4.png' => '9c151271', 'rsrc/image/sprite-apps-large-X2.png' => '4a828a0f', 'rsrc/image/sprite-apps-large.png' => '141d8c93', 'rsrc/image/sprite-apps-xlarge.png' => 'a751a580', 'rsrc/image/sprite-apps.png' => 'f6a0599f', 'rsrc/image/sprite-conpherence-X2.png' => 'cd2d08d7', 'rsrc/image/sprite-conpherence.png' => 'a5ab2eb7', 'rsrc/image/sprite-docs-X2.png' => '6dc1adad', 'rsrc/image/sprite-docs.png' => '4636297f', 'rsrc/image/sprite-gradient.png' => '7c71fb29', 'rsrc/image/sprite-login-X2.png' => '5f75d60b', 'rsrc/image/sprite-login.png' => 'efe40ddb', 'rsrc/image/sprite-main-header.png' => '83521873', 'rsrc/image/sprite-menu-X2.png' => '39d78f97', 'rsrc/image/sprite-menu.png' => '259dab45', 'rsrc/image/sprite-minicons-X2.png' => '55377e4e', 'rsrc/image/sprite-minicons.png' => '272644ea', 'rsrc/image/sprite-payments.png' => 'd8576309', 'rsrc/image/sprite-projects-X2.png' => '218fdc8b', 'rsrc/image/sprite-projects.png' => '631ff9a7', 'rsrc/image/sprite-tokens-X2.png' => 'b4776580', 'rsrc/image/sprite-tokens.png' => '25b75533', 'rsrc/image/texture/card-gradient.png' => '815f26e8', 'rsrc/image/texture/dark-menu-hover.png' => '5fa7ece8', 'rsrc/image/texture/dark-menu.png' => '7e22296e', 'rsrc/image/texture/grip.png' => '719404f3', 'rsrc/image/texture/panel-header-gradient.png' => 'e3b8dcfe', 'rsrc/image/texture/phlnx-bg.png' => '8d819209', 'rsrc/image/texture/pholio-background.gif' => 'ba29239c', 'rsrc/image/texture/table_header.png' => '5c433037', 'rsrc/image/texture/table_header_hover.png' => '038ec3b9', 'rsrc/image/texture/table_header_tall.png' => 'd56b434f', 'rsrc/js/application/aphlict/Aphlict.js' => '08be8878', 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '2a2dba85', 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => '1da67f34', 'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18', 'rsrc/js/application/config/behavior-reorder-fields.js' => '938aed89', 'rsrc/js/application/conpherence/behavior-menu.js' => '7ee23816', 'rsrc/js/application/conpherence/behavior-pontificate.js' => 'd83a949c', 'rsrc/js/application/conpherence/behavior-widget-pane.js' => '40b1ff90', 'rsrc/js/application/countdown/timer.js' => '361e3ed3', 'rsrc/js/application/dashboard/behavior-dashboard-async-panel.js' => '469c0d9e', 'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => 'fa187a68', 'rsrc/js/application/dashboard/behavior-dashboard-tab-panel.js' => 'aa077691', 'rsrc/js/application/differential/ChangesetViewManager.js' => 'db09a523', 'rsrc/js/application/differential/DifferentialInlineCommentEditor.js' => 'f2441746', 'rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js' => '533a187b', 'rsrc/js/application/differential/behavior-comment-jump.js' => '71755c79', 'rsrc/js/application/differential/behavior-comment-preview.js' => '127f2018', 'rsrc/js/application/differential/behavior-diff-radios.js' => 'e1ff79b1', 'rsrc/js/application/differential/behavior-dropdown-menus.js' => '64a79839', 'rsrc/js/application/differential/behavior-edit-inline-comments.js' => '00861799', 'rsrc/js/application/differential/behavior-keyboard-nav.js' => '173ce7e7', 'rsrc/js/application/differential/behavior-populate.js' => 'bdb3e4d0', 'rsrc/js/application/differential/behavior-show-all-comments.js' => '7c273581', 'rsrc/js/application/differential/behavior-show-field-details.js' => '441f2137', 'rsrc/js/application/differential/behavior-show-more.js' => 'dd7e8ef5', 'rsrc/js/application/differential/behavior-toggle-files.js' => 'ca3f91eb', 'rsrc/js/application/differential/behavior-user-select.js' => 'a8d8459d', 'rsrc/js/application/diffusion/DiffusionLocateFileSource.js' => '5afdb2f8', 'rsrc/js/application/diffusion/behavior-audit-preview.js' => 'be81801d', 'rsrc/js/application/diffusion/behavior-commit-branches.js' => 'bdaf4d04', 'rsrc/js/application/diffusion/behavior-commit-graph.js' => 'f7f1289f', 'rsrc/js/application/diffusion/behavior-jump-to.js' => '9db3d160', 'rsrc/js/application/diffusion/behavior-load-blame.js' => '42126667', 'rsrc/js/application/diffusion/behavior-locate-file.js' => '6d3e1947', 'rsrc/js/application/diffusion/behavior-pull-lastmodified.js' => '2b228192', 'rsrc/js/application/doorkeeper/behavior-doorkeeper-tag.js' => 'e5822781', 'rsrc/js/application/files/behavior-icon-composer.js' => '8ef9ab58', 'rsrc/js/application/files/behavior-launch-icon-composer.js' => '48086888', 'rsrc/js/application/harbormaster/behavior-reorder-steps.js' => '957a7fde', 'rsrc/js/application/herald/HeraldRuleEditor.js' => '22d2966a', 'rsrc/js/application/herald/PathTypeahead.js' => 'f7fc67ec', 'rsrc/js/application/herald/herald-rule-editor.js' => '7ebaeed3', 'rsrc/js/application/maniphest/behavior-batch-editor.js' => 'fe80fb6d', 'rsrc/js/application/maniphest/behavior-batch-selector.js' => 'ead554ec', 'rsrc/js/application/maniphest/behavior-line-chart.js' => '64ef2fd2', 'rsrc/js/application/maniphest/behavior-list-edit.js' => 'cf76cfd5', 'rsrc/js/application/maniphest/behavior-subpriorityeditor.js' => '84845b5b', 'rsrc/js/application/maniphest/behavior-transaction-controls.js' => 'dddd43ac', 'rsrc/js/application/maniphest/behavior-transaction-expand.js' => '2f2e18aa', 'rsrc/js/application/maniphest/behavior-transaction-preview.js' => 'f8248bc5', 'rsrc/js/application/owners/OwnersPathEditor.js' => '46efd18e', 'rsrc/js/application/owners/owners-path-editor.js' => '7a68dda3', 'rsrc/js/application/passphrase/phame-credential-control.js' => '1e1c8a59', 'rsrc/js/application/phame/phame-post-preview.js' => '61d927ec', 'rsrc/js/application/pholio/behavior-pholio-mock-edit.js' => '1e1e8bb0', 'rsrc/js/application/pholio/behavior-pholio-mock-view.js' => '28497740', 'rsrc/js/application/phortune/behavior-balanced-payment-form.js' => '3b3e1664', 'rsrc/js/application/phortune/behavior-stripe-payment-form.js' => '1693a296', 'rsrc/js/application/phortune/behavior-test-payment-form.js' => 'b3e5ee60', 'rsrc/js/application/phortune/phortune-credit-card-form.js' => '2290aeef', 'rsrc/js/application/policy/behavior-policy-control.js' => 'f3fef818', 'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '263aeb8c', 'rsrc/js/application/ponder/behavior-votebox.js' => '327dbe61', 'rsrc/js/application/projects/behavior-boards-filter.js' => '22f113af', 'rsrc/js/application/projects/behavior-project-boards.js' => 'd8e135db', 'rsrc/js/application/projects/behavior-project-create.js' => '065227cc', 'rsrc/js/application/releeph/releeph-preview-branch.js' => '9eb2cedb', 'rsrc/js/application/releeph/releeph-request-state-change.js' => 'd259e7c9', 'rsrc/js/application/releeph/releeph-request-typeahead.js' => 'cd9e7094', 'rsrc/js/application/repository/repository-crossreference.js' => '8ab282be', 'rsrc/js/application/search/behavior-reorder-queries.js' => '37871df4', 'rsrc/js/application/slowvote/behavior-slowvote-embed.js' => 'a51fdb2e', 'rsrc/js/application/transactions/behavior-transaction-comment-form.js' => '9084a36f', 'rsrc/js/application/transactions/behavior-transaction-list.js' => 'cf656c84', 'rsrc/js/application/uiexample/JavelinViewExample.js' => 'd4a14807', 'rsrc/js/application/uiexample/ReactorButtonExample.js' => '44524435', 'rsrc/js/application/uiexample/ReactorCheckboxExample.js' => '7ba325ee', 'rsrc/js/application/uiexample/ReactorFocusExample.js' => '82f568cd', 'rsrc/js/application/uiexample/ReactorInputExample.js' => 'd6ca6b1c', 'rsrc/js/application/uiexample/ReactorMouseoverExample.js' => '4e37e4de', 'rsrc/js/application/uiexample/ReactorRadioExample.js' => '858f9728', 'rsrc/js/application/uiexample/ReactorSelectExample.js' => '189e4fe3', 'rsrc/js/application/uiexample/ReactorSendClassExample.js' => 'bf97561d', 'rsrc/js/application/uiexample/ReactorSendPropertiesExample.js' => '551add57', 'rsrc/js/application/uiexample/busy-example.js' => 'fbbce3bf', 'rsrc/js/application/uiexample/gesture-example.js' => 'f42bb8c6', 'rsrc/js/application/uiexample/notification-example.js' => 'c51a6616', 'rsrc/js/core/Busy.js' => '6453c869', 'rsrc/js/core/DragAndDropFileUpload.js' => 'ae6abfba', 'rsrc/js/core/DraggableList.js' => '109e2a87', 'rsrc/js/core/FileUpload.js' => 'a4ae61bf', 'rsrc/js/core/Hovercard.js' => '4f344388', 'rsrc/js/core/KeyboardShortcut.js' => '1ae869f2', 'rsrc/js/core/KeyboardShortcutManager.js' => 'ad7a69ca', 'rsrc/js/core/MultirowRowManager.js' => '50395a1b', 'rsrc/js/core/Notification.js' => '0c6946e7', 'rsrc/js/core/Prefab.js' => '41ed7994', 'rsrc/js/core/ShapedRequest.js' => '7cbe244b', 'rsrc/js/core/TextAreaUtils.js' => 'b3ec3cfc', 'rsrc/js/core/ToolTip.js' => '3915d490', 'rsrc/js/core/behavior-active-nav.js' => 'c81bc98f', 'rsrc/js/core/behavior-audio-source.js' => '59b251eb', 'rsrc/js/core/behavior-autofocus.js' => '7319e029', 'rsrc/js/core/behavior-crop.js' => 'b98fc918', 'rsrc/js/core/behavior-dark-console.js' => 'e9fdb5e5', 'rsrc/js/core/behavior-device.js' => '03d6ed07', 'rsrc/js/core/behavior-drag-and-drop-textarea.js' => '4a11ea9c', 'rsrc/js/core/behavior-error-log.js' => 'a5d7cf86', 'rsrc/js/core/behavior-fancy-datepicker.js' => '5d584426', 'rsrc/js/core/behavior-file-tree.js' => 'c8728c70', 'rsrc/js/core/behavior-form.js' => 'a9aaba0c', 'rsrc/js/core/behavior-gesture.js' => 'fe2e0ba4', 'rsrc/js/core/behavior-global-drag-and-drop.js' => '8fd76bab', 'rsrc/js/core/behavior-high-security-warning.js' => '8fc1c918', 'rsrc/js/core/behavior-history-install.js' => '7ee2b591', 'rsrc/js/core/behavior-hovercard.js' => '9c808199', 'rsrc/js/core/behavior-keyboard-pager.js' => 'b657bdf8', 'rsrc/js/core/behavior-keyboard-shortcuts.js' => 'd75709e6', 'rsrc/js/core/behavior-konami.js' => '5bc2cb21', 'rsrc/js/core/behavior-lightbox-attachments.js' => '3aa45ad9', 'rsrc/js/core/behavior-line-linker.js' => 'f726d506', 'rsrc/js/core/behavior-more.js' => '9b9197be', 'rsrc/js/core/behavior-object-selector.js' => 'e6f67523', 'rsrc/js/core/behavior-oncopy.js' => 'c3e218fe', 'rsrc/js/core/behavior-phabricator-nav.js' => 'b5842a5e', 'rsrc/js/core/behavior-phabricator-remarkup-assist.js' => 'ba22863c', 'rsrc/js/core/behavior-refresh-csrf.js' => '7814b593', 'rsrc/js/core/behavior-remarkup-preview.js' => 'f7379f45', 'rsrc/js/core/behavior-reorder-applications.js' => 'a8e3795d', 'rsrc/js/core/behavior-reveal-content.js' => '8f24abfc', - 'rsrc/js/core/behavior-search-typeahead.js' => '86549ee3', + 'rsrc/js/core/behavior-search-typeahead.js' => 'fbeabd1e', 'rsrc/js/core/behavior-select-on-click.js' => '0e34ca02', 'rsrc/js/core/behavior-toggle-class.js' => 'a82a7769', 'rsrc/js/core/behavior-tokenizer.js' => 'b3a4b884', 'rsrc/js/core/behavior-tooltip.js' => '48db4145', 'rsrc/js/core/behavior-watch-anchor.js' => '06e05112', 'rsrc/js/core/behavior-workflow.js' => '0a3f3021', 'rsrc/js/core/phtize.js' => 'd254d646', 'rsrc/js/phui/behavior-phui-object-box-tabs.js' => 'a3e2244e', 'rsrc/js/phui/behavior-phui-timeline-dropdown-menu.js' => '4d94d9c3', 'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8', 'rsrc/js/phuix/PHUIXActionView.js' => '6e8cefa4', 'rsrc/js/phuix/PHUIXDropdownMenu.js' => 'bd4c8dca', 'rsrc/swf/aphlict.swf' => '14d5aa2e', ), 'symbols' => array( 'aphront-bars' => '231ac33c', 'aphront-contextbar-view-css' => '1c3b0529', 'aphront-dark-console-css' => '6378ef3d', 'aphront-dialog-view-css' => '318fe7e1', 'aphront-error-view-css' => '9f1d5518', 'aphront-list-filter-view-css' => '2ae43867', 'aphront-multi-column-view-css' => '1b95ab2e', 'aphront-pager-view-css' => '2e3539af', 'aphront-panel-view-css' => '5846dfa2', 'aphront-request-failure-view-css' => 'da14df31', 'aphront-table-view-css' => 'b22b7216', 'aphront-tokenizer-control-css' => '82ce2142', 'aphront-tooltip-css' => '9c90229d', 'aphront-two-column-view-css' => '16ab3ad2', 'aphront-typeahead-control-css' => 'a989b5b3', 'auth-css' => '1e655982', 'changeset-view-manager' => 'db09a523', 'config-options-css' => '7fedf08b', 'conpherence-menu-css' => 'e1e0fdf1', 'conpherence-message-pane-css' => '11a393ca', 'conpherence-notification-css' => '04a6e10a', 'conpherence-update-css' => '1099a660', 'conpherence-widget-pane-css' => 'bf275a6c', 'differential-changeset-view-css' => 'ff8eacf8', 'differential-core-view-css' => '7ac3cabc', 'differential-inline-comment-editor' => 'f2441746', 'differential-results-table-css' => '239924f9', 'differential-revision-add-comment-css' => 'c478bcaa', 'differential-revision-comment-css' => '48186045', 'differential-revision-history-css' => '0e8eb855', 'differential-revision-list-css' => 'f3c47d33', 'differential-table-of-contents-css' => '6bf8e1d2', 'diffusion-commit-view-css' => '92d1e8f9', 'diffusion-icons-css' => '9c5828da', 'diffusion-source-css' => '66fdf661', 'diviner-shared-css' => '38813222', 'font-fontawesome' => '73d075c3', 'font-source-sans-pro' => '91d53463', 'global-drag-and-drop-css' => '697324ad', 'harbormaster-css' => 'cec833b7', 'herald-css' => 'c544dd1c', 'herald-rule-editor' => '22d2966a', 'herald-test-css' => '778b008e', 'inline-comment-summary-css' => '8cfd34e8', 'javelin-aphlict' => '08be8878', 'javelin-behavior' => '8a3ed18b', 'javelin-behavior-aphlict-dropdown' => '2a2dba85', 'javelin-behavior-aphlict-listen' => '1da67f34', 'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884', 'javelin-behavior-aphront-crop' => 'b98fc918', 'javelin-behavior-aphront-drag-and-drop-textarea' => '4a11ea9c', 'javelin-behavior-aphront-form-disable-on-submit' => 'a9aaba0c', 'javelin-behavior-aphront-more' => '9b9197be', 'javelin-behavior-audio-source' => '59b251eb', 'javelin-behavior-audit-preview' => 'be81801d', 'javelin-behavior-balanced-payment-form' => '3b3e1664', 'javelin-behavior-boards-filter' => '22f113af', 'javelin-behavior-config-reorder-fields' => '938aed89', 'javelin-behavior-conpherence-menu' => '7ee23816', 'javelin-behavior-conpherence-pontificate' => 'd83a949c', 'javelin-behavior-conpherence-widget-pane' => '40b1ff90', 'javelin-behavior-countdown-timer' => '361e3ed3', 'javelin-behavior-dark-console' => 'e9fdb5e5', 'javelin-behavior-dashboard-async-panel' => '469c0d9e', 'javelin-behavior-dashboard-move-panels' => 'fa187a68', 'javelin-behavior-dashboard-tab-panel' => 'aa077691', 'javelin-behavior-device' => '03d6ed07', 'javelin-behavior-differential-add-reviewers-and-ccs' => '533a187b', 'javelin-behavior-differential-comment-jump' => '71755c79', 'javelin-behavior-differential-diff-radios' => 'e1ff79b1', 'javelin-behavior-differential-dropdown-menus' => '64a79839', 'javelin-behavior-differential-edit-inline-comments' => '00861799', 'javelin-behavior-differential-feedback-preview' => '127f2018', 'javelin-behavior-differential-keyboard-navigation' => '173ce7e7', 'javelin-behavior-differential-populate' => 'bdb3e4d0', 'javelin-behavior-differential-show-field-details' => '441f2137', 'javelin-behavior-differential-show-more' => 'dd7e8ef5', 'javelin-behavior-differential-toggle-files' => 'ca3f91eb', 'javelin-behavior-differential-user-select' => 'a8d8459d', 'javelin-behavior-diffusion-commit-branches' => 'bdaf4d04', 'javelin-behavior-diffusion-commit-graph' => 'f7f1289f', 'javelin-behavior-diffusion-jump-to' => '9db3d160', 'javelin-behavior-diffusion-locate-file' => '6d3e1947', 'javelin-behavior-diffusion-pull-lastmodified' => '2b228192', 'javelin-behavior-doorkeeper-tag' => 'e5822781', 'javelin-behavior-error-log' => 'a5d7cf86', 'javelin-behavior-fancy-datepicker' => '5d584426', 'javelin-behavior-global-drag-and-drop' => '8fd76bab', 'javelin-behavior-harbormaster-reorder-steps' => '957a7fde', 'javelin-behavior-herald-rule-editor' => '7ebaeed3', 'javelin-behavior-high-security-warning' => '8fc1c918', 'javelin-behavior-history-install' => '7ee2b591', 'javelin-behavior-icon-composer' => '8ef9ab58', 'javelin-behavior-konami' => '5bc2cb21', 'javelin-behavior-launch-icon-composer' => '48086888', 'javelin-behavior-lightbox-attachments' => '3aa45ad9', 'javelin-behavior-line-chart' => '64ef2fd2', 'javelin-behavior-load-blame' => '42126667', 'javelin-behavior-maniphest-batch-editor' => 'fe80fb6d', 'javelin-behavior-maniphest-batch-selector' => 'ead554ec', 'javelin-behavior-maniphest-list-editor' => 'cf76cfd5', 'javelin-behavior-maniphest-subpriority-editor' => '84845b5b', 'javelin-behavior-maniphest-transaction-controls' => 'dddd43ac', 'javelin-behavior-maniphest-transaction-expand' => '2f2e18aa', 'javelin-behavior-maniphest-transaction-preview' => 'f8248bc5', 'javelin-behavior-owners-path-editor' => '7a68dda3', 'javelin-behavior-passphrase-credential-control' => '1e1c8a59', 'javelin-behavior-persona-login' => '9414ff18', 'javelin-behavior-phabricator-active-nav' => 'c81bc98f', 'javelin-behavior-phabricator-autofocus' => '7319e029', 'javelin-behavior-phabricator-busy-example' => 'fbbce3bf', 'javelin-behavior-phabricator-file-tree' => 'c8728c70', 'javelin-behavior-phabricator-gesture' => 'fe2e0ba4', 'javelin-behavior-phabricator-gesture-example' => 'f42bb8c6', 'javelin-behavior-phabricator-hovercards' => '9c808199', 'javelin-behavior-phabricator-keyboard-pager' => 'b657bdf8', 'javelin-behavior-phabricator-keyboard-shortcuts' => 'd75709e6', 'javelin-behavior-phabricator-line-linker' => 'f726d506', 'javelin-behavior-phabricator-nav' => 'b5842a5e', 'javelin-behavior-phabricator-notification-example' => 'c51a6616', 'javelin-behavior-phabricator-object-selector' => 'e6f67523', 'javelin-behavior-phabricator-oncopy' => 'c3e218fe', 'javelin-behavior-phabricator-remarkup-assist' => 'ba22863c', 'javelin-behavior-phabricator-reveal-content' => '8f24abfc', - 'javelin-behavior-phabricator-search-typeahead' => '86549ee3', + 'javelin-behavior-phabricator-search-typeahead' => 'fbeabd1e', 'javelin-behavior-phabricator-show-all-transactions' => '7c273581', 'javelin-behavior-phabricator-tooltips' => '48db4145', 'javelin-behavior-phabricator-transaction-comment-form' => '9084a36f', 'javelin-behavior-phabricator-transaction-list' => 'cf656c84', 'javelin-behavior-phabricator-watch-anchor' => '06e05112', 'javelin-behavior-phame-post-preview' => '61d927ec', 'javelin-behavior-pholio-mock-edit' => '1e1e8bb0', 'javelin-behavior-pholio-mock-view' => '28497740', 'javelin-behavior-phui-object-box-tabs' => 'a3e2244e', 'javelin-behavior-phui-timeline-dropdown-menu' => '4d94d9c3', 'javelin-behavior-policy-control' => 'f3fef818', 'javelin-behavior-policy-rule-editor' => '263aeb8c', 'javelin-behavior-ponder-votebox' => '327dbe61', 'javelin-behavior-project-boards' => 'd8e135db', 'javelin-behavior-project-create' => '065227cc', 'javelin-behavior-refresh-csrf' => '7814b593', 'javelin-behavior-releeph-preview-branch' => '9eb2cedb', 'javelin-behavior-releeph-request-state-change' => 'd259e7c9', 'javelin-behavior-releeph-request-typeahead' => 'cd9e7094', 'javelin-behavior-remarkup-preview' => 'f7379f45', 'javelin-behavior-reorder-applications' => 'a8e3795d', 'javelin-behavior-repository-crossreference' => '8ab282be', 'javelin-behavior-search-reorder-queries' => '37871df4', 'javelin-behavior-select-on-click' => '0e34ca02', 'javelin-behavior-slowvote-embed' => 'a51fdb2e', 'javelin-behavior-stripe-payment-form' => '1693a296', 'javelin-behavior-test-payment-form' => 'b3e5ee60', 'javelin-behavior-toggle-class' => 'a82a7769', 'javelin-behavior-view-placeholder' => '2fa810fc', 'javelin-behavior-workflow' => '0a3f3021', 'javelin-color' => '7e41274a', 'javelin-cookie' => '6b3dcf44', 'javelin-diffusion-locate-file-source' => '5afdb2f8', 'javelin-dom' => '07d99a3d', 'javelin-dynval' => 'f6555212', 'javelin-event' => '69815cac', 'javelin-fx' => '54b612ba', 'javelin-history' => 'c60f4327', 'javelin-install' => '52a92793', 'javelin-json' => '08e56a4e', 'javelin-magical-init' => 'b88ab49e', 'javelin-mask' => 'b9f26029', 'javelin-reactor' => '77b1cf6f', 'javelin-reactor-dom' => 'b6d401d6', 'javelin-reactor-node-calmer' => '76f4ebed', 'javelin-reactornode' => 'b4c30592', 'javelin-request' => '7bad574b', 'javelin-resource' => '0f81f8df', 'javelin-routable' => 'b3e7d692', 'javelin-router' => '29274e2b', 'javelin-stratcom' => 'c293f7b9', 'javelin-tokenizer' => 'e7c21fb3', 'javelin-typeahead' => 'c54eeefb', 'javelin-typeahead-composite-source' => '84f34ab1', 'javelin-typeahead-normalizer' => '5f850b5c', 'javelin-typeahead-ondemand-source' => 'a79b75a4', 'javelin-typeahead-preloaded-source' => '66815d9c', 'javelin-typeahead-source' => '62e18640', 'javelin-typeahead-static-source' => 'cdde23f1', 'javelin-uri' => 'd9a9b862', 'javelin-util' => '65b0b249', 'javelin-vector' => 'bd0aedcd', 'javelin-view' => '0f764c35', 'javelin-view-html' => 'e5b406f9', 'javelin-view-interpreter' => '0c33c1a0', 'javelin-view-renderer' => '6c2b09a2', 'javelin-view-visitor' => 'efe49472', 'javelin-workflow' => '09b15cf1', 'lightbox-attachment-css' => '7acac05d', 'maniphest-batch-editor' => '8f380ebc', 'maniphest-report-css' => '6fc16517', 'maniphest-task-edit-css' => '8e23031b', 'maniphest-task-summary-css' => '00c3be7a', 'multirow-row-manager' => '50395a1b', 'owners-path-editor' => '46efd18e', 'owners-path-editor-css' => '2f00933b', 'paste-css' => 'aa1767d1', 'path-typeahead' => 'f7fc67ec', 'people-profile-css' => 'ba7b2762', 'phabricator-action-header-view-css' => 'f11f18b5', 'phabricator-action-list-view-css' => '35dbd16e', 'phabricator-application-launch-view-css' => '8b7e271d', 'phabricator-busy' => '6453c869', 'phabricator-chatlog-css' => '852140ff', 'phabricator-content-source-view-css' => '4b8b05d4', 'phabricator-core-css' => '40151074', 'phabricator-countdown-css' => '86b7b0a0', 'phabricator-crumbs-view-css' => '7fbf25b8', 'phabricator-dashboard-css' => '0594a469', 'phabricator-drag-and-drop-file-upload' => 'ae6abfba', 'phabricator-draggable-list' => '109e2a87', 'phabricator-fatal-config-template-css' => '25d446d6', 'phabricator-feed-css' => 'dd43ce00', 'phabricator-file-upload' => 'a4ae61bf', 'phabricator-filetree-view-css' => 'fccf9f82', 'phabricator-flag-css' => '5337623f', 'phabricator-hovercard' => '4f344388', 'phabricator-hovercard-view-css' => 'cae6e28f', 'phabricator-keyboard-shortcut' => '1ae869f2', 'phabricator-keyboard-shortcut-manager' => 'ad7a69ca', - 'phabricator-main-menu-view' => '72d1d2ef', + 'phabricator-main-menu-view' => 'b597e539', 'phabricator-nav-view-css' => '9283c2df', 'phabricator-notification' => '0c6946e7', 'phabricator-notification-css' => 'ef2c9b34', 'phabricator-notification-menu-css' => 'cbff1b94', 'phabricator-object-selector-css' => '029a133d', 'phabricator-phtize' => 'd254d646', 'phabricator-prefab' => '41ed7994', 'phabricator-profile-css' => '91c6dd26', 'phabricator-project-tag-css' => '095c9404', 'phabricator-remarkup-css' => '864d4f5e', 'phabricator-search-results-css' => 'f240504c', 'phabricator-shaped-request' => '7cbe244b', 'phabricator-side-menu-view-css' => 'a2ccd7bd', 'phabricator-slowvote-css' => '266df6a1', 'phabricator-source-code-view-css' => '7d346aa4', 'phabricator-standard-page-view' => '517cdfb1', 'phabricator-textareautils' => 'b3ec3cfc', 'phabricator-tooltip' => '3915d490', 'phabricator-transaction-view-css' => 'ce491938', 'phabricator-ui-example-css' => '528b19de', 'phabricator-uiexample-javelin-view' => 'd4a14807', 'phabricator-uiexample-reactor-button' => '44524435', 'phabricator-uiexample-reactor-checkbox' => '7ba325ee', 'phabricator-uiexample-reactor-focus' => '82f568cd', 'phabricator-uiexample-reactor-input' => 'd6ca6b1c', 'phabricator-uiexample-reactor-mouseover' => '4e37e4de', 'phabricator-uiexample-reactor-radio' => '858f9728', 'phabricator-uiexample-reactor-select' => '189e4fe3', 'phabricator-uiexample-reactor-sendclass' => 'bf97561d', 'phabricator-uiexample-reactor-sendproperties' => '551add57', 'phabricator-zindex-css' => 'efb673ac', 'phame-css' => '19ecc703', 'pholio-css' => 'e059f955', 'pholio-edit-css' => 'b9e59b6d', 'pholio-inline-comments-css' => '52be33f0', 'phortune-credit-card-form' => '2290aeef', 'phortune-credit-card-form-css' => 'b25b4beb', 'phrequent-css' => 'ffc185ad', 'phriction-document-css' => '7d7f0071', 'phui-box-css' => '7b3a2eed', 'phui-button-css' => 'c7412aa1', 'phui-calendar-css' => '5e1ad989', 'phui-calendar-day-css' => 'de035c8a', 'phui-calendar-list-css' => 'c1d0ca59', 'phui-calendar-month-css' => 'a92e47d2', 'phui-document-view-css' => 'a5615198', 'phui-feed-story-css' => 'e2c9bc83', 'phui-font-icon-base-css' => 'eb84f033', 'phui-fontkit-css' => 'de84aa4a', 'phui-form-css' => 'b78ec020', 'phui-form-view-css' => 'ed856191', 'phui-header-view-css' => 'a2071a67', 'phui-icon-view-css' => 'd8526aa1', 'phui-info-panel-css' => '27ea50a1', 'phui-list-view-css' => '43ed2d93', 'phui-object-box-css' => 'ce92d8ec', 'phui-object-item-list-view-css' => '46e12abc', 'phui-pinboard-view-css' => '32e8e1a9', 'phui-property-list-view-css' => '2f7199e8', 'phui-remarkup-preview-css' => '19ad512b', 'phui-spacing-css' => '042804d6', 'phui-status-list-view-css' => '2f562399', 'phui-tag-view-css' => 'ef0a9ca8', 'phui-text-css' => '23e9b4b7', 'phui-timeline-view-css' => 'bbd990d0', 'phui-workboard-view-css' => '2bf82d00', 'phui-workpanel-view-css' => 'fddd97bf', 'phuix-action-list-view' => 'b5c256b8', 'phuix-action-view' => '6e8cefa4', 'phuix-dropdown-menu' => 'bd4c8dca', 'policy-css' => '957ea14c', 'policy-edit-css' => '05cca26a', 'policy-transaction-detail-css' => '82100a43', 'ponder-comment-table-css' => '6cdccea7', 'ponder-feed-view-css' => 'e62615b6', 'ponder-post-css' => 'ebab8a70', 'ponder-vote-css' => '8ed6ed8b', 'project-icon-css' => 'c2ecb7f1', 'raphael-core' => '51ee6b43', 'raphael-g' => '40dde778', 'raphael-g-line' => '40da039e', 'releeph-core' => '9b3c5733', 'releeph-preview-branch' => 'b7a6f4a5', 'releeph-request-differential-create-dialog' => '8d8b92cd', 'releeph-request-typeahead-css' => '667a48ae', 'setup-issue-css' => '69e640e7', 'sprite-apps-css' => '37ee4f4e', 'sprite-apps-large-css' => '12ea1ced', 'sprite-conpherence-css' => '3b4a0487', 'sprite-docs-css' => '5f65d0da', 'sprite-gradient-css' => '4aec2401', 'sprite-login-css' => '67ff30b2', 'sprite-main-header-css' => '92720ee2', 'sprite-menu-css' => '28281e16', 'sprite-minicons-css' => 'df4f76fe', 'sprite-payments-css' => 'cc085d44', 'sprite-projects-css' => '7578fa56', 'sprite-tokens-css' => '1706b943', 'syntax-highlighting-css' => '3c18c1cb', 'tokens-css' => '3d0f239e', ), 'requires' => array( '00861799' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-util', 4 => 'javelin-vector', 5 => 'differential-inline-comment-editor', ), '029a133d' => array( 0 => 'aphront-dialog-view-css', ), '03d6ed07' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-vector', 4 => 'javelin-install', ), '065227cc' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-workflow', ), '06e05112' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-vector', ), '07d99a3d' => array( 0 => 'javelin-magical-init', 1 => 'javelin-install', 2 => 'javelin-util', 3 => 'javelin-vector', 4 => 'javelin-stratcom', ), '08be8878' => array( 0 => 'javelin-install', 1 => 'javelin-util', ), '08e56a4e' => array( 0 => 'javelin-install', ), '09b15cf1' => array( 0 => 'javelin-stratcom', 1 => 'javelin-request', 2 => 'javelin-dom', 3 => 'javelin-vector', 4 => 'javelin-install', 5 => 'javelin-util', 6 => 'javelin-mask', 7 => 'javelin-uri', 8 => 'javelin-routable', ), '0a3f3021' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-workflow', 3 => 'javelin-dom', 4 => 'javelin-router', ), '0c33c1a0' => array( 0 => 'javelin-view', 1 => 'javelin-install', 2 => 'javelin-dom', ), '0c6946e7' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-util', 4 => 'phabricator-notification-css', ), '0e34ca02' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), '0f764c35' => array( 0 => 'javelin-install', 1 => 'javelin-util', ), '0f81f8df' => array( 0 => 'javelin-util', 1 => 'javelin-uri', 2 => 'javelin-install', ), '109e2a87' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-util', 4 => 'javelin-vector', 5 => 'javelin-magical-init', ), '127f2018' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-request', 4 => 'javelin-util', 5 => 'phabricator-shaped-request', ), '1693a296' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'phortune-credit-card-form', ), '173ce7e7' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'phabricator-keyboard-shortcut', ), '189e4fe3' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), '1ae869f2' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'phabricator-keyboard-shortcut-manager', ), '1da67f34' => array( 0 => 'javelin-behavior', 1 => 'javelin-aphlict', 2 => 'javelin-stratcom', 3 => 'javelin-request', 4 => 'javelin-uri', 5 => 'javelin-dom', 6 => 'javelin-json', 7 => 'javelin-router', 8 => 'phabricator-notification', ), '1e1c8a59' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-workflow', 4 => 'javelin-util', 5 => 'javelin-uri', ), '1e1e8bb0' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-workflow', 4 => 'phabricator-phtize', 5 => 'phabricator-drag-and-drop-file-upload', 6 => 'phabricator-draggable-list', ), '2290aeef' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-json', 3 => 'javelin-workflow', 4 => 'javelin-util', ), '22d2966a' => array( 0 => 'multirow-row-manager', 1 => 'javelin-install', 2 => 'javelin-util', 3 => 'javelin-dom', 4 => 'javelin-stratcom', 5 => 'javelin-json', 6 => 'phabricator-prefab', ), '22f113af' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'phuix-dropdown-menu', ), '263aeb8c' => array( 0 => 'javelin-behavior', 1 => 'multirow-row-manager', 2 => 'javelin-dom', 3 => 'javelin-util', 4 => 'phabricator-prefab', 5 => 'javelin-tokenizer', 6 => 'javelin-typeahead', 7 => 'javelin-typeahead-preloaded-source', 8 => 'javelin-json', ), '29274e2b' => array( 0 => 'javelin-install', 1 => 'javelin-util', ), '2a2dba85' => array( 0 => 'javelin-behavior', 1 => 'javelin-request', 2 => 'javelin-stratcom', 3 => 'javelin-vector', 4 => 'javelin-dom', 5 => 'javelin-uri', 6 => 'javelin-behavior-device', ), '2b228192' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-workflow', 4 => 'javelin-json', ), '2f2e18aa' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-workflow', 3 => 'javelin-stratcom', ), '2fa810fc' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-view-renderer', 3 => 'javelin-install', ), '327dbe61' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-stratcom', 4 => 'javelin-request', ), '361e3ed3' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', ), '37871df4' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-workflow', 3 => 'javelin-dom', 4 => 'phabricator-draggable-list', ), '3915d490' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-dom', 3 => 'javelin-vector', ), '3aa45ad9' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-mask', 4 => 'javelin-util', 5 => 'phabricator-busy', ), '3b3e1664' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'phortune-credit-card-form', ), '40b1ff90' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-workflow', 4 => 'javelin-util', 5 => 'phabricator-notification', 6 => 'javelin-behavior-device', 7 => 'phuix-dropdown-menu', 8 => 'phuix-action-list-view', 9 => 'phuix-action-view', ), '41ed7994' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-dom', 3 => 'javelin-typeahead', 4 => 'javelin-tokenizer', 5 => 'javelin-typeahead-preloaded-source', 6 => 'javelin-typeahead-ondemand-source', 7 => 'javelin-dom', 8 => 'javelin-stratcom', 9 => 'javelin-util', ), '441f2137' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), '469c0d9e' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-workflow', ), '46efd18e' => array( 0 => 'multirow-row-manager', 1 => 'javelin-install', 2 => 'path-typeahead', 3 => 'javelin-dom', 4 => 'javelin-util', 5 => 'phabricator-prefab', ), '48db4145' => array( 0 => 'javelin-behavior', 1 => 'javelin-behavior-device', 2 => 'javelin-stratcom', 3 => 'phabricator-tooltip', ), '4a11ea9c' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'phabricator-drag-and-drop-file-upload', 3 => 'phabricator-textareautils', ), '4d94d9c3' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'phuix-dropdown-menu', ), '4e37e4de' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), '4f344388' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-vector', 3 => 'javelin-request', 4 => 'javelin-uri', ), '50395a1b' => array( 0 => 'javelin-install', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-util', ), '52a92793' => array( 0 => 'javelin-util', 1 => 'javelin-magical-init', ), '533a187b' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'phabricator-prefab', ), '54b612ba' => array( 0 => 'javelin-color', 1 => 'javelin-install', 2 => 'javelin-util', ), '551add57' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), '59b251eb' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-vector', 3 => 'javelin-dom', ), '5afdb2f8' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-typeahead-preloaded-source', 3 => 'javelin-util', ), '5bc2cb21' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', ), '5d584426' => array( 0 => 'javelin-behavior', 1 => 'javelin-util', 2 => 'javelin-dom', 3 => 'javelin-stratcom', 4 => 'javelin-vector', ), '5f850b5c' => array( 0 => 'javelin-install', ), '61d927ec' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'phabricator-shaped-request', ), '7319e029' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', ), '62e18640' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-dom', 3 => 'javelin-typeahead-normalizer', ), '6453c869' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-fx', ), '64a79839' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-stratcom', 4 => 'phuix-dropdown-menu', 5 => 'phuix-action-list-view', 6 => 'phuix-action-view', 7 => 'phabricator-phtize', 8 => 'changeset-view-manager', ), '64ef2fd2' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-vector', ), '66815d9c' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-request', 3 => 'javelin-typeahead-source', ), '69815cac' => array( 0 => 'javelin-install', ), '6b3dcf44' => array( 0 => 'javelin-install', 1 => 'javelin-util', ), '6c2b09a2' => array( 0 => 'javelin-install', 1 => 'javelin-util', ), '6d3e1947' => array( 0 => 'javelin-behavior', 1 => 'javelin-diffusion-locate-file-source', 2 => 'javelin-dom', 3 => 'javelin-typeahead', 4 => 'javelin-uri', ), '6e8cefa4' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-util', ), '71755c79' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), '76f4ebed' => array( 0 => 'javelin-install', 1 => 'javelin-reactor', 2 => 'javelin-util', ), '77b1cf6f' => array( 0 => 'javelin-install', 1 => 'javelin-util', ), '7814b593' => array( 0 => 'javelin-request', 1 => 'javelin-behavior', 2 => 'javelin-dom', 3 => 'javelin-router', 4 => 'javelin-util', 5 => 'phabricator-busy', ), '7a68dda3' => array( 0 => 'owners-path-editor', 1 => 'javelin-behavior', ), '7ba325ee' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), '7bad574b' => array( 0 => 'javelin-install', 1 => 'javelin-stratcom', 2 => 'javelin-util', 3 => 'javelin-behavior', 4 => 'javelin-json', 5 => 'javelin-dom', 6 => 'javelin-resource', 7 => 'javelin-routable', ), '7c273581' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), '7cbe244b' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-request', 3 => 'javelin-router', ), '7e41274a' => array( 0 => 'javelin-install', ), '7ebaeed3' => array( 0 => 'herald-rule-editor', 1 => 'javelin-behavior', ), '7ee23816' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-stratcom', 4 => 'javelin-workflow', 5 => 'javelin-behavior-device', 6 => 'javelin-history', 7 => 'javelin-vector', 8 => 'phabricator-shaped-request', ), '7ee2b591' => array( 0 => 'javelin-behavior', 1 => 'javelin-history', ), '82ce2142' => array( 0 => 'aphront-typeahead-control-css', ), '82f568cd' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), '84845b5b' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-workflow', 4 => 'phabricator-draggable-list', ), '84f34ab1' => array( 0 => 'javelin-install', 1 => 'javelin-typeahead-source', 2 => 'javelin-util', ), '858f9728' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), - '86549ee3' => - array( - 0 => 'javelin-behavior', - 1 => 'javelin-typeahead-ondemand-source', - 2 => 'javelin-typeahead', - 3 => 'javelin-dom', - 4 => 'javelin-uri', - 5 => 'javelin-util', - 6 => 'javelin-stratcom', - ), '8a3ed18b' => array( 0 => 'javelin-magical-init', 1 => 'javelin-util', ), '8ab282be' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-uri', ), '8ef9ab58' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', ), '8f24abfc' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), '8fc1c918' => array( 0 => 'javelin-behavior', 1 => 'javelin-uri', 2 => 'phabricator-notification', ), '8fd76bab' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-uri', 3 => 'javelin-mask', 4 => 'phabricator-drag-and-drop-file-upload', ), '9084a36f' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-fx', 4 => 'javelin-request', 5 => 'phabricator-shaped-request', ), '938aed89' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-json', 4 => 'phabricator-draggable-list', ), '9414ff18' => array( 0 => 'javelin-behavior', 1 => 'javelin-resource', 2 => 'javelin-stratcom', 3 => 'javelin-workflow', 4 => 'javelin-util', ), '957a7fde' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-workflow', 3 => 'javelin-dom', 4 => 'phabricator-draggable-list', ), '9b9197be' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), '9c808199' => array( 0 => 'javelin-behavior', 1 => 'javelin-behavior-device', 2 => 'javelin-stratcom', 3 => 'javelin-vector', 4 => 'phabricator-hovercard', ), '9db3d160' => array( 0 => 'javelin-behavior', 1 => 'javelin-vector', 2 => 'javelin-dom', ), '9eb2cedb' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-uri', 3 => 'javelin-request', ), 'a3e2244e' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), 'a4ae61bf' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'phabricator-notification', ), 'a51fdb2e' => array( 0 => 'javelin-behavior', 1 => 'javelin-request', 2 => 'javelin-stratcom', 3 => 'javelin-dom', ), 'a5d7cf86' => array( 0 => 'javelin-dom', ), 'a79b75a4' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-request', 3 => 'javelin-typeahead-source', ), 'a82a7769' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), 'a8d8459d' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', ), 'a8e3795d' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-workflow', 3 => 'javelin-dom', 4 => 'phabricator-draggable-list', ), 'a9aaba0c' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), 'aa077691' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', ), 'ad7a69ca' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-stratcom', 3 => 'javelin-dom', 4 => 'javelin-vector', ), 'ae6abfba' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-request', 3 => 'javelin-dom', 4 => 'javelin-uri', 5 => 'phabricator-file-upload', ), 'b3a4b884' => array( 0 => 'javelin-behavior', 1 => 'phabricator-prefab', ), 'b3e5ee60' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'phortune-credit-card-form', ), 'b3e7d692' => array( 0 => 'javelin-install', ), 'b3ec3cfc' => array( 0 => 'javelin-install', ), 'b4c30592' => array( 0 => 'javelin-install', 1 => 'javelin-reactor', 2 => 'javelin-util', 3 => 'javelin-reactor-node-calmer', ), 'b5842a5e' => array( 0 => 'javelin-behavior', 1 => 'javelin-behavior-device', 2 => 'javelin-stratcom', 3 => 'javelin-dom', 4 => 'javelin-magical-init', 5 => 'javelin-vector', 6 => 'javelin-request', 7 => 'javelin-util', ), 'b5c256b8' => array( 0 => 'javelin-install', 1 => 'javelin-dom', ), 'b657bdf8' => array( 0 => 'javelin-behavior', 1 => 'javelin-uri', 2 => 'phabricator-keyboard-shortcut', ), 'b6d401d6' => array( 0 => 'javelin-dom', 1 => 'javelin-dynval', 2 => 'javelin-reactor', 3 => 'javelin-reactornode', 4 => 'javelin-install', 5 => 'javelin-util', ), 'b98fc918' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-vector', 3 => 'javelin-magical-init', ), 'b9f26029' => array( 0 => 'javelin-install', 1 => 'javelin-dom', ), 'ba22863c' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'phabricator-phtize', 4 => 'phabricator-textareautils', 5 => 'javelin-workflow', 6 => 'javelin-vector', ), 'bd0aedcd' => array( 0 => 'javelin-install', 1 => 'javelin-event', ), 'bd4c8dca' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-dom', 3 => 'javelin-vector', 4 => 'javelin-stratcom', ), 'bdaf4d04' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-request', ), 'bdb3e4d0' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'phabricator-tooltip', 4 => 'changeset-view-manager', ), 'be81801d' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'phabricator-shaped-request', ), 'bf97561d' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), 'c293f7b9' => array( 0 => 'javelin-install', 1 => 'javelin-event', 2 => 'javelin-util', 3 => 'javelin-magical-init', ), 'c3e218fe' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', ), 'c51a6616' => array( 0 => 'phabricator-notification', 1 => 'javelin-stratcom', 2 => 'javelin-behavior', ), 'c54eeefb' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-vector', 3 => 'javelin-util', ), 'c60f4327' => array( 0 => 'javelin-stratcom', 1 => 'javelin-install', 2 => 'javelin-uri', 3 => 'javelin-util', ), 'c81bc98f' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-vector', 3 => 'javelin-dom', 4 => 'javelin-uri', ), 'c8728c70' => array( 0 => 'javelin-behavior', 1 => 'phabricator-keyboard-shortcut', 2 => 'javelin-stratcom', ), 'ca3f91eb' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'phabricator-phtize', ), 'cd9e7094' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-typeahead', 3 => 'javelin-typeahead-ondemand-source', 4 => 'javelin-dom', ), 'cdde23f1' => array( 0 => 'javelin-install', 1 => 'javelin-typeahead-source', ), 'cf656c84' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-workflow', 3 => 'javelin-dom', 4 => 'javelin-fx', 5 => 'javelin-uri', 6 => 'phabricator-textareautils', ), 'cf76cfd5' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-workflow', 4 => 'javelin-fx', 5 => 'javelin-util', ), 'd254d646' => array( 0 => 'javelin-util', ), 'd259e7c9' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-workflow', 4 => 'javelin-util', 5 => 'phabricator-keyboard-shortcut', ), 'd4a14807' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-view', ), 'd6ca6b1c' => array( 0 => 'javelin-install', 1 => 'javelin-reactor-dom', 2 => 'javelin-view-html', 3 => 'javelin-view-interpreter', 4 => 'javelin-view-renderer', ), 'd75709e6' => array( 0 => 'javelin-behavior', 1 => 'javelin-workflow', 2 => 'javelin-json', 3 => 'javelin-dom', 4 => 'phabricator-keyboard-shortcut', ), 'd83a949c' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-workflow', 4 => 'javelin-stratcom', ), 'd8e135db' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-stratcom', 4 => 'javelin-workflow', 5 => 'phabricator-draggable-list', ), 'd9a9b862' => array( 0 => 'javelin-install', 1 => 'javelin-util', 2 => 'javelin-stratcom', ), 'db09a523' => array( 0 => 'javelin-dom', 1 => 'javelin-util', 2 => 'javelin-stratcom', 3 => 'javelin-install', 4 => 'javelin-workflow', 5 => 'javelin-router', 6 => 'javelin-behavior-device', 7 => 'javelin-vector', ), 'dd7e8ef5' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-workflow', 3 => 'javelin-util', 4 => 'javelin-stratcom', ), 'dddd43ac' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'phabricator-prefab', ), 'e1ff79b1' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', ), 'e5822781' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-json', 3 => 'javelin-workflow', 4 => 'javelin-magical-init', ), 'e5b406f9' => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-view-visitor', 3 => 'javelin-util', ), 'e6f67523' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-request', 3 => 'javelin-util', ), 'e7c21fb3' => array( 0 => 'javelin-dom', 1 => 'javelin-util', 2 => 'javelin-stratcom', 3 => 'javelin-install', ), 'e9fdb5e5' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-util', 3 => 'javelin-dom', 4 => 'javelin-request', 5 => 'phabricator-keyboard-shortcut', ), 'ead554ec' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', 3 => 'javelin-util', ), 'efe49472' => array( 0 => 'javelin-install', 1 => 'javelin-util', ), 'f2441746' => array( 0 => 'javelin-dom', 1 => 'javelin-util', 2 => 'javelin-stratcom', 3 => 'javelin-install', 4 => 'javelin-request', 5 => 'javelin-workflow', ), 'f3fef818' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'phuix-dropdown-menu', 4 => 'phuix-action-list-view', 5 => 'phuix-action-view', 6 => 'javelin-workflow', ), 'f42bb8c6' => array( 0 => 'javelin-stratcom', 1 => 'javelin-behavior', 2 => 'javelin-vector', 3 => 'javelin-dom', ), 'f6555212' => array( 0 => 'javelin-install', 1 => 'javelin-reactornode', 2 => 'javelin-util', 3 => 'javelin-reactor', ), 'f726d506' => array( 0 => 'javelin-behavior', 1 => 'javelin-stratcom', 2 => 'javelin-dom', 3 => 'javelin-history', ), 'f7379f45' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'phabricator-shaped-request', ), 'f7f1289f' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-stratcom', ), 'f7fc67ec' => array( 0 => 'javelin-install', 1 => 'javelin-typeahead', 2 => 'javelin-dom', 3 => 'javelin-request', 4 => 'javelin-typeahead-ondemand-source', 5 => 'javelin-util', ), 'f8248bc5' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-json', 4 => 'javelin-stratcom', 5 => 'phabricator-shaped-request', ), 'fa187a68' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-stratcom', 4 => 'javelin-workflow', 5 => 'phabricator-draggable-list', ), 'fbbce3bf' => array( 0 => 'phabricator-busy', 1 => 'javelin-behavior', ), + 'fbeabd1e' => + array( + 0 => 'javelin-behavior', + 1 => 'javelin-typeahead-ondemand-source', + 2 => 'javelin-typeahead', + 3 => 'javelin-dom', + 4 => 'javelin-uri', + 5 => 'javelin-util', + 6 => 'javelin-stratcom', + ), 'fe2e0ba4' => array( 0 => 'javelin-behavior', 1 => 'javelin-behavior-device', 2 => 'javelin-stratcom', 3 => 'javelin-vector', 4 => 'javelin-dom', 5 => 'javelin-magical-init', ), 'fe80fb6d' => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'phabricator-prefab', 4 => 'multirow-row-manager', 5 => 'javelin-json', ), 28497740 => array( 0 => 'javelin-behavior', 1 => 'javelin-util', 2 => 'javelin-stratcom', 3 => 'javelin-dom', 4 => 'javelin-vector', 5 => 'javelin-magical-init', 6 => 'javelin-request', 7 => 'javelin-history', 8 => 'javelin-workflow', 9 => 'javelin-mask', 10 => 'javelin-behavior-device', 11 => 'phabricator-keyboard-shortcut', ), 42126667 => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-request', ), 44524435 => array( 0 => 'javelin-install', 1 => 'javelin-dom', 2 => 'javelin-util', 3 => 'javelin-dynval', 4 => 'javelin-reactor-dom', ), 48086888 => array( 0 => 'javelin-behavior', 1 => 'javelin-dom', 2 => 'javelin-workflow', ), ), 'packages' => array( 'core.pkg.css' => array( 0 => 'phabricator-core-css', 1 => 'phabricator-zindex-css', 2 => 'phui-button-css', 3 => 'phabricator-standard-page-view', 4 => 'aphront-dialog-view-css', 5 => 'phui-form-view-css', 6 => 'aphront-panel-view-css', 7 => 'aphront-table-view-css', 8 => 'aphront-tokenizer-control-css', 9 => 'aphront-typeahead-control-css', 10 => 'aphront-list-filter-view-css', 11 => 'phabricator-remarkup-css', 12 => 'syntax-highlighting-css', 13 => 'aphront-pager-view-css', 14 => 'phabricator-transaction-view-css', 15 => 'aphront-tooltip-css', 16 => 'phabricator-flag-css', 17 => 'aphront-error-view-css', 18 => 'sprite-gradient-css', 19 => 'sprite-menu-css', 20 => 'sprite-apps-css', 21 => 'sprite-apps-large-css', 22 => 'phabricator-main-menu-view', 23 => 'phabricator-notification-css', 24 => 'phabricator-notification-menu-css', 25 => 'lightbox-attachment-css', 26 => 'phui-header-view-css', 27 => 'phabricator-filetree-view-css', 28 => 'phabricator-nav-view-css', 29 => 'phabricator-side-menu-view-css', 30 => 'phabricator-crumbs-view-css', 31 => 'phui-object-item-list-view-css', 32 => 'global-drag-and-drop-css', 33 => 'phui-spacing-css', 34 => 'phui-form-css', 35 => 'phui-icon-view-css', 36 => 'phabricator-application-launch-view-css', 37 => 'phabricator-action-list-view-css', 38 => 'phui-property-list-view-css', 39 => 'phui-tag-view-css', 40 => 'phui-list-view-css', 41 => 'font-fontawesome', 42 => 'phui-font-icon-base-css', 43 => 'sprite-main-header-css', 44 => 'phui-box-css', 45 => 'phui-object-box-css', 46 => 'phui-timeline-view-css', 47 => 'sprite-tokens-css', 48 => 'tokens-css', 49 => 'phui-status-list-view-css', ), 'core.pkg.js' => array( 0 => 'javelin-util', 1 => 'javelin-install', 2 => 'javelin-event', 3 => 'javelin-stratcom', 4 => 'javelin-behavior', 5 => 'javelin-resource', 6 => 'javelin-request', 7 => 'javelin-vector', 8 => 'javelin-dom', 9 => 'javelin-json', 10 => 'javelin-uri', 11 => 'javelin-workflow', 12 => 'javelin-mask', 13 => 'javelin-typeahead', 14 => 'javelin-typeahead-normalizer', 15 => 'javelin-typeahead-source', 16 => 'javelin-typeahead-preloaded-source', 17 => 'javelin-typeahead-ondemand-source', 18 => 'javelin-tokenizer', 19 => 'javelin-history', 20 => 'javelin-router', 21 => 'javelin-routable', 22 => 'javelin-behavior-aphront-basic-tokenizer', 23 => 'javelin-behavior-workflow', 24 => 'javelin-behavior-aphront-form-disable-on-submit', 25 => 'phabricator-keyboard-shortcut-manager', 26 => 'phabricator-keyboard-shortcut', 27 => 'javelin-behavior-phabricator-keyboard-shortcuts', 28 => 'javelin-behavior-refresh-csrf', 29 => 'javelin-behavior-phabricator-watch-anchor', 30 => 'javelin-behavior-phabricator-autofocus', 31 => 'phuix-dropdown-menu', 32 => 'phuix-action-list-view', 33 => 'phuix-action-view', 34 => 'phabricator-phtize', 35 => 'javelin-behavior-phabricator-oncopy', 36 => 'phabricator-tooltip', 37 => 'javelin-behavior-phabricator-tooltips', 38 => 'phabricator-prefab', 39 => 'javelin-behavior-device', 40 => 'javelin-behavior-toggle-class', 41 => 'javelin-behavior-lightbox-attachments', 42 => 'phabricator-busy', 43 => 'javelin-aphlict', 44 => 'phabricator-notification', 45 => 'javelin-behavior-aphlict-listen', 46 => 'javelin-behavior-phabricator-search-typeahead', 47 => 'javelin-behavior-konami', 48 => 'javelin-behavior-aphlict-dropdown', 49 => 'javelin-behavior-history-install', 50 => 'javelin-behavior-phabricator-gesture', 51 => 'javelin-behavior-phabricator-active-nav', 52 => 'javelin-behavior-phabricator-nav', 53 => 'javelin-behavior-phabricator-remarkup-assist', 54 => 'phabricator-textareautils', 55 => 'phabricator-file-upload', 56 => 'javelin-behavior-global-drag-and-drop', 57 => 'javelin-behavior-phabricator-reveal-content', 58 => 'phabricator-hovercard', 59 => 'javelin-behavior-phabricator-hovercards', 60 => 'javelin-color', 61 => 'javelin-fx', 62 => 'phabricator-draggable-list', 63 => 'javelin-behavior-phabricator-transaction-list', 64 => 'javelin-behavior-phabricator-show-all-transactions', 65 => 'javelin-behavior-phui-timeline-dropdown-menu', 66 => 'javelin-behavior-doorkeeper-tag', ), 'darkconsole.pkg.js' => array( 0 => 'javelin-behavior-dark-console', 1 => 'javelin-behavior-error-log', ), 'differential.pkg.css' => array( 0 => 'differential-core-view-css', 1 => 'differential-changeset-view-css', 2 => 'differential-results-table-css', 3 => 'differential-revision-history-css', 4 => 'differential-revision-list-css', 5 => 'differential-table-of-contents-css', 6 => 'differential-revision-comment-css', 7 => 'differential-revision-add-comment-css', 8 => 'phabricator-object-selector-css', 9 => 'phabricator-content-source-view-css', 10 => 'inline-comment-summary-css', ), 'differential.pkg.js' => array( 0 => 'phabricator-drag-and-drop-file-upload', 1 => 'phabricator-shaped-request', 2 => 'javelin-behavior-differential-feedback-preview', 3 => 'javelin-behavior-differential-edit-inline-comments', 4 => 'javelin-behavior-differential-populate', 5 => 'javelin-behavior-differential-show-more', 6 => 'javelin-behavior-differential-diff-radios', 7 => 'javelin-behavior-differential-comment-jump', 8 => 'javelin-behavior-differential-add-reviewers-and-ccs', 9 => 'javelin-behavior-differential-keyboard-navigation', 10 => 'javelin-behavior-aphront-drag-and-drop-textarea', 11 => 'javelin-behavior-phabricator-object-selector', 12 => 'javelin-behavior-repository-crossreference', 13 => 'javelin-behavior-load-blame', 14 => 'differential-inline-comment-editor', 15 => 'javelin-behavior-differential-dropdown-menus', 16 => 'javelin-behavior-differential-toggle-files', 17 => 'javelin-behavior-differential-user-select', 18 => 'javelin-behavior-aphront-more', ), 'diffusion.pkg.css' => array( 0 => 'diffusion-commit-view-css', 1 => 'diffusion-icons-css', ), 'diffusion.pkg.js' => array( 0 => 'javelin-behavior-diffusion-pull-lastmodified', 1 => 'javelin-behavior-diffusion-commit-graph', 2 => 'javelin-behavior-audit-preview', ), 'maniphest.pkg.css' => array( 0 => 'maniphest-task-summary-css', 1 => 'phabricator-project-tag-css', ), 'maniphest.pkg.js' => array( 0 => 'javelin-behavior-maniphest-batch-selector', 1 => 'javelin-behavior-maniphest-transaction-controls', 2 => 'javelin-behavior-maniphest-transaction-preview', 3 => 'javelin-behavior-maniphest-transaction-expand', 4 => 'javelin-behavior-maniphest-subpriority-editor', 5 => 'javelin-behavior-maniphest-list-editor', ), ), ); diff --git a/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php b/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php index 29bf07ead..957eed0ae 100644 --- a/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php +++ b/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php @@ -1,440 +1,443 @@ type = $data['type']; } public function processRequest() { $request = $this->getRequest(); $viewer = $request->getUser(); $query = $request->getStr('q'); $raw_query = $request->getStr('raw'); $need_rich_data = false; $need_users = false; $need_agents = false; $need_applications = false; $need_lists = false; $need_projs = false; $need_repos = false; $need_packages = false; $need_upforgrabs = false; $need_arcanist_projects = false; $need_noproject = false; $need_symbols = false; $need_jump_objects = false; $need_build_plans = false; $need_task_priority = false; $need_macros = false; $need_legalpad_documents = false; switch ($this->type) { case 'mainsearch': $need_users = true; $need_applications = true; $need_rich_data = true; $need_symbols = true; $need_projs = true; $need_jump_objects = true; break; case 'searchowner': $need_users = true; $need_upforgrabs = true; break; case 'searchproject': $need_projs = true; $need_noproject = true; break; case 'users': case 'accounts': case 'authors': $need_users = true; break; case 'mailable': case 'allmailable': $need_users = true; $need_lists = true; $need_projs = true; break; case 'projects': $need_projs = true; break; case 'usersorprojects': case 'accountsorprojects': $need_users = true; $need_projs = true; break; case 'usersprojectsorpackages': $need_users = true; $need_projs = true; $need_packages = true; break; case 'repositories': $need_repos = true; break; case 'packages': $need_packages = true; break; case 'arcanistprojects': $need_arcanist_projects = true; break; case 'buildplans': $need_build_plans = true; break; case 'taskpriority': $need_task_priority = true; break; case 'macros': $need_macros = true; break; case 'legalpaddocuments': $need_legalpad_documents = true; break; } $results = array(); if ($need_upforgrabs) { $results[] = id(new PhabricatorTypeaheadResult()) ->setName('upforgrabs (Up For Grabs)') ->setPHID(ManiphestTaskOwner::OWNER_UP_FOR_GRABS); } if ($need_noproject) { $results[] = id(new PhabricatorTypeaheadResult()) ->setName('noproject (No Project)') ->setPHID(ManiphestTaskOwner::PROJECT_NO_PROJECT); } if ($need_users) { $columns = array( 'isSystemAgent', 'isAdmin', 'isDisabled', 'userName', 'realName', 'phid'); if ($query) { // This is an arbitrary limit which is just larger than any limit we // actually use in the application. // TODO: The datasource should pass this in the query. $limit = 15; $user_table = new PhabricatorUser(); $conn_r = $user_table->establishConnection('r'); $ids = queryfx_all( $conn_r, 'SELECT id FROM %T WHERE username LIKE %> ORDER BY username ASC LIMIT %d', $user_table->getTableName(), $query, $limit); $ids = ipull($ids, 'id'); if (count($ids) < $limit) { // If we didn't find enough username hits, look for real name hits. // We need to pull the entire pagesize so that we end up with the // right number of items if this query returns many duplicate IDs // that we've already selected. $realname_ids = queryfx_all( $conn_r, 'SELECT DISTINCT userID FROM %T WHERE token LIKE %> ORDER BY token ASC LIMIT %d', PhabricatorUser::NAMETOKEN_TABLE, $query, $limit); $realname_ids = ipull($realname_ids, 'userID'); $ids = array_merge($ids, $realname_ids); $ids = array_unique($ids); $ids = array_slice($ids, 0, $limit); } // Always add the logged-in user because some tokenizers autosort them // first. They'll be filtered out on the client side if they don't // match the query. $ids[] = $request->getUser()->getID(); if ($ids) { $users = id(new PhabricatorUser())->loadColumnsWhere( $columns, 'id IN (%Ld)', $ids); } else { $users = array(); } } else { $users = id(new PhabricatorUser())->loadColumns($columns); } if ($need_rich_data) { $phids = mpull($users, 'getPHID'); $handles = $this->loadViewerHandles($phids); } foreach ($users as $user) { $closed = null; if ($user->getIsDisabled()) { $closed = pht('Disabled'); } else if ($user->getIsSystemAgent()) { $closed = pht('Bot/Script'); } $result = id(new PhabricatorTypeaheadResult()) ->setName($user->getFullName()) ->setURI('/p/'.$user->getUsername()) ->setPHID($user->getPHID()) ->setPriorityString($user->getUsername()) ->setIcon('fa-user bluegrey') ->setPriorityType('user') ->setClosed($closed); if ($need_rich_data) { $display_type = 'User'; if ($user->getIsAdmin()) { $display_type = 'Administrator'; } $result->setDisplayType($display_type); $result->setImageURI($handles[$user->getPHID()]->getImageURI()); } $results[] = $result; } } if ($need_lists) { $lists = id(new PhabricatorMailingListQuery()) ->setViewer($viewer) ->execute(); foreach ($lists as $list) { $results[] = id(new PhabricatorTypeaheadResult()) ->setName($list->getName()) ->setURI($list->getURI()) ->setPHID($list->getPHID()); } } if ($need_build_plans) { $plans = id(new HarbormasterBuildPlanQuery()) ->setViewer($viewer) ->execute(); foreach ($plans as $plan) { $results[] = id(new PhabricatorTypeaheadResult()) ->setName($plan->getName()) ->setPHID($plan->getPHID()); } } if ($need_task_priority) { $priority_map = ManiphestTaskPriority::getTaskPriorityMap(); foreach ($priority_map as $value => $name) { // NOTE: $value is not a phid but is unique. This'll work. $results[] = id(new PhabricatorTypeaheadResult()) ->setPHID($value) ->setName($name); } } if ($need_macros) { $macros = id(new PhabricatorMacroQuery()) ->setViewer($viewer) ->withStatus(PhabricatorMacroQuery::STATUS_ACTIVE) ->execute(); $macros = mpull($macros, 'getName', 'getPHID'); foreach ($macros as $phid => $name) { $results[] = id(new PhabricatorTypeaheadResult()) ->setPHID($phid) ->setName($name); } } if ($need_legalpad_documents) { $documents = id(new LegalpadDocumentQuery()) ->setViewer($viewer) ->execute(); $documents = mpull($documents, 'getTitle', 'getPHID'); foreach ($documents as $phid => $title) { $results[] = id(new PhabricatorTypeaheadResult()) ->setPHID($phid) ->setName($title); } } if ($need_projs) { $projs = id(new PhabricatorProjectQuery()) ->setViewer($viewer) ->needImages(true) ->execute(); foreach ($projs as $proj) { $closed = null; if ($proj->isArchived()) { $closed = pht('Archived'); } $proj_result = id(new PhabricatorTypeaheadResult()) ->setName($proj->getName()) ->setDisplayType('Project') ->setURI('/project/view/'.$proj->getID().'/') ->setPHID($proj->getPHID()) ->setIcon($proj->getIcon().' bluegrey') ->setPriorityType('proj') ->setClosed($closed); $proj_result->setImageURI($proj->getProfileImageURI()); $results[] = $proj_result; } } if ($need_repos) { $repos = id(new PhabricatorRepositoryQuery()) ->setViewer($viewer) ->execute(); foreach ($repos as $repo) { $results[] = id(new PhabricatorTypeaheadResult()) ->setName('r'.$repo->getCallsign().' ('.$repo->getName().')') ->setURI('/diffusion/'.$repo->getCallsign().'/') ->setPHID($repo->getPHID()) ->setPriorityString('r'.$repo->getCallsign()); } } if ($need_packages) { $packages = id(new PhabricatorOwnersPackage())->loadAll(); foreach ($packages as $package) { $results[] = id(new PhabricatorTypeaheadResult()) - ->setIcon('pl-testplan') + ->setIcon('fa-list-alt bluegrey') ->setName($package->getName()) ->setURI('/owners/package/'.$package->getID().'/') ->setPHID($package->getPHID()); } } if ($need_arcanist_projects) { $arcprojs = id(new PhabricatorRepositoryArcanistProject())->loadAll(); foreach ($arcprojs as $proj) { $results[] = id(new PhabricatorTypeaheadResult()) ->setName($proj->getName()) ->setPHID($proj->getPHID()); } } if ($need_applications) { $applications = PhabricatorApplication::getAllInstalledApplications(); foreach ($applications as $application) { $uri = $application->getTypeaheadURI(); if (!$uri) { continue; } $name = $application->getName().' '.$application->getShortDescription(); - + $img = 'apps-'.$application->getIconName().'-dark-large'; $results[] = id(new PhabricatorTypeaheadResult()) ->setName($name) ->setURI($uri) ->setPHID($application->getPHID()) ->setPriorityString($application->getName()) ->setDisplayName($application->getName()) ->setDisplayType($application->getShortDescription()) ->setImageuRI($application->getIconURI()) - ->setPriorityType('apps'); + ->setPriorityType('apps') + ->setImageSprite('phabricator-search-icon sprite-apps-large '.$img); } } if ($need_symbols) { $symbols = id(new DiffusionSymbolQuery()) ->setNamePrefix($query) ->setLimit(15) ->needArcanistProjects(true) ->needRepositories(true) ->needPaths(true) ->execute(); foreach ($symbols as $symbol) { $lang = $symbol->getSymbolLanguage(); $name = $symbol->getSymbolName(); $type = $symbol->getSymbolType(); $proj = $symbol->getArcanistProject()->getName(); $results[] = id(new PhabricatorTypeaheadResult()) ->setName($name) ->setURI($symbol->getURI()) ->setPHID(md5($symbol->getURI())) // Just needs to be unique. ->setDisplayName($name) ->setDisplayType(strtoupper($lang).' '.ucwords($type).' ('.$proj.')') ->setPriorityType('symb'); } } if ($need_jump_objects) { $objects = id(new PhabricatorObjectQuery()) ->setViewer($viewer) ->withNames(array($raw_query)) ->execute(); if ($objects) { $handles = id(new PhabricatorHandleQuery()) ->setViewer($viewer) ->withPHIDs(mpull($objects, 'getPHID')) ->execute(); $handle = head($handles); if ($handle) { $results[] = id(new PhabricatorTypeaheadResult()) ->setName($handle->getFullName()) ->setDisplayType($handle->getTypeName()) ->setURI($handle->getURI()) ->setPHID($handle->getPHID()) ->setPriorityType('jump'); } } } $content = mpull($results, 'getWireFormat'); if ($request->isAjax()) { return id(new AphrontAjaxResponse())->setContent($content); } // If there's a non-Ajax request to this endpoint, show results in a tabular // format to make it easier to debug typeahead output. $rows = array(); foreach ($results as $result) { $wire = $result->getWireFormat(); $rows[] = $wire; } $table = new AphrontTableView($rows); $table->setHeaders( array( 'Name', 'URI', 'PHID', 'Priority', 'Display Name', 'Display Type', 'Image URI', 'Priority Type', + 'Sprite Class', )); $panel = new AphrontPanelView(); $panel->setHeader('Typeahead Results'); $panel->appendChild($table); return $this->buildStandardPageResponse( $panel, array( - 'title' => 'Typeahead Results', + 'title' => pht('Typeahead Results'), + 'device' => true )); } } diff --git a/src/applications/typeahead/storage/PhabricatorTypeaheadResult.php b/src/applications/typeahead/storage/PhabricatorTypeaheadResult.php index 9ec4955be..ee4c8609f 100644 --- a/src/applications/typeahead/storage/PhabricatorTypeaheadResult.php +++ b/src/applications/typeahead/storage/PhabricatorTypeaheadResult.php @@ -1,85 +1,92 @@ icon = $icon; return $this; } public function setName($name) { $this->name = $name; return $this; } public function setURI($uri) { $this->uri = $uri; return $this; } public function setPHID($phid) { $this->phid = $phid; return $this; } public function setPriorityString($priority_string) { $this->priorityString = $priority_string; return $this; } public function setDisplayName($display_name) { $this->displayName = $display_name; return $this; } public function setDisplayType($display_type) { $this->displayType = $display_type; return $this; } public function setImageURI($image_uri) { $this->imageURI = $image_uri; return $this; } public function setPriorityType($priority_type) { $this->priorityType = $priority_type; return $this; } + public function setImageSprite($image_sprite) { + $this->imageSprite = $image_sprite; + return $this; + } + public function setClosed($closed) { $this->closed = $closed; return $this; } public function getWireFormat() { $data = array( $this->name, $this->uri ? (string)$this->uri : null, $this->phid, $this->priorityString, $this->displayName, $this->displayType, $this->imageURI ? (string)$this->imageURI : null, $this->priorityType, $this->icon, $this->closed, + $this->imageSprite ? (string)$this->imageSprite : null, ); while (end($data) === null) { array_pop($data); } return $data; } } diff --git a/webroot/rsrc/css/application/base/main-menu-view.css b/webroot/rsrc/css/application/base/main-menu-view.css index 25ca943e7..e7e59b87f 100644 --- a/webroot/rsrc/css/application/base/main-menu-view.css +++ b/webroot/rsrc/css/application/base/main-menu-view.css @@ -1,436 +1,446 @@ /** * @provides phabricator-main-menu-view */ /* - Main Menu ----------------------------------------------------------------- Main menu at the top of every page that has chrome. It reacts to resolution changes in order to behave reasonably on tablets and phones. */ .phabricator-main-menu { background: #2d3236; background-repeat: repeat-x; position: relative; min-height: 44px; } .device-desktop .phabricator-main-menu { height: 44px; padding-right: 4px; } .phabricator-main-menu a:hover { text-decoration: none; } /* - Logo ---------------------------------------------------------------------- The "Phabricator" logo group in the main menu. On tablet and phone devices, this shows a "reveal" button to expand/collapse the rest of the menu. */ .device-desktop .phabricator-main-menu-group-logo { float: left; } .phabricator-main-menu-logo { display: inline-block; width: 149px; height: 44px; float: left; margin-right: 6px; padding-right: 6px; padding-left: 6px; } .menu-logo-image { position: absolute; width: 149px; height: 26px; top: 9px; } .device-phone .phabricator-main-menu-logo { margin-left: -45px; } .device .phabricator-main-menu-logo:hover { background-color: transparent; } /* - Expand/Collapse Button ---------------------------------------------------- On phones, the menu switches to a vertical layout and uses a button to expand or collapse the items. */ .phabricator-menu-button-icon { width: 24px; height: 24px; float: left; margin: 10px 10px 0 5px; } .phabricator-expand-application-menu, .phabricator-expand-search-menu { float: right; } .device-desktop .phabricator-main-menu-search-button, .device-desktop .phabricator-main-menu-expand-button { display: none; } /* - Search -------------------------------------------------------------------- The main search input in the menu bar. */ .device-desktop .phabricator-main-menu-search { width: 220px; } .device .phabricator-main-menu-search { height: 40px; } .phabricator-main-menu-search-container { padding: 9px 0 10px 0; position: relative; height: 24px; margin: 0 8px; } .phabricator-main-menu-search-target { position: absolute; top: 46px; } .device-desktop .phabricator-main-menu-search-target { width: 320px; margin-left: -150px; } .device .phabricator-main-menu-search-target { width: 100%; margin-left: -25px; } .device .phabricator-main-menu-search-container { padding: 4px 0; } .phabricator-main-menu .phabricator-main-menu-search input { outline: 0; margin: 0; box-shadow: none; transition: none; color: {$lightgreytext}; width: 100%; right: 0; position: absolute; font-size: 13px; border: 1px solid #333; border-radius: 12px; background-color: #222; opacity: .8; height: 26px; line-height: 12px; box-shadow: 0px 1px 1px rgba(128, 128, 128, 0.25); padding: 6px 32px 6px 10px; } .phabricator-main-menu.main-header-dark .phabricator-main-menu-search input { background-color: #555; } .device .phabricator-main-menu-search input { height: 30px; font-size: 15px; border-radius: 15px; } .phabricator-main-menu .phabricator-main-menu-search input:focus { background: #fff; opacity: 1; color: #333; border-color: #e7e7e7; box-shadow: none; } .phabricator-main-menu-search input.jx-typeahead-placeholder { color: #fff; } .phabricator-main-menu-search button { position: absolute; color: transparent; background: transparent 5px 6px url(/rsrc/image/search-white.png) no-repeat; border: none; outline: none; box-shadow: none; text-shadow: none; min-width: 0; height: 20px; width: 20px; top: 10px; right: 6px; } .device .phabricator-main-menu-search button { top: 7px; } .phabricator-main-menu-search-target div.jx-typeahead-results { background: #ffffff; word-wrap: break-word; overflow-y: auto; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.35); border: {$blueborder}; border-radius: 3px; margin-left: 40px; } +.phabricator-main-search-typeahead-result .phabricator-search-icon { + display: inline-block; + width: 28px; + height: 28px; + position: absolute; + top: 9px; + left: 9px; +} + .phabricator-main-search-typeahead-result { display: block; padding: 6px 8px 8px 44px; background-position: 8px; background-size: 30px 30px; background-repeat: no-repeat; + position: relative; } .phabricator-main-search-typeahead-result .result-name { display: block; font-size: 13px; font-weight: bold; color: {$darkgreytext}; } .phabricator-main-search-typeahead-result .result-type { color: {$lightgreytext}; font-size: 11px; font-weight: normal; } .device .phabricator-application-menu-expanded.phabricator-search-menu-expanded .phabricator-search-menu { padding: 0; } /* - Alert --------------------------------------------------------------------- Alert menus are like icon menus but don't obey collapse rules. */ .phabricator-main-menu-alerts { display: inline-block; border-radius: 15px; float: left; background: rgba(0,0,0,.5); height: 20px; padding: 2px 10px 3px 8px; margin-top: 10px; } .phabricator-main-menu-alert-icon, .phabricator-main-menu-message-icon { width: 18px; height: 18px; display: block; float: left; margin: 2px 0 0 0; } .alert-notifications .phabricator-main-menu-message-icon { margin: 2px 0 0 6px; } .phabricator-main-menu-alert-count, .phabricator-main-menu-message-count { font-weight: bold; line-height: 20px; color: #ffffff; text-align: center; display: none; float: left; margin-left: 3px; } .alert-unread .phabricator-main-menu-alert-count, .message-unread .phabricator-main-menu-message-count { display: block; } /* - Dark Menu ----------------------------------------------------------------- Styles shared between the "core" menu (left button on mobile) and "application" menu (right button on mobile). These styles give the menu a white-on-black appearance. */ .device .phabricator-dark-menu, .device .phabricator-dark-menu a.phui-list-item-href { color: #fff; -webkit-font-smoothing: antialiased; } .device .phabricator-dark-menu .phui-list-item-type-label { text-transform: uppercase; font-size: 13px; background-color: #151719; padding: 6px 0; display: block; font-weight: bold; } .device .phabricator-dark-menu .phui-list-item-href { border-width: 1px 0; border-style: solid; border-color: #34373b transparent #282c2d; background-color: #272c2f; padding: 4px 0 4px 16px; display: block; } /* - Core Menu ----------------------------------------------------------------- Styles unique to the core menu (left button on mobile). */ .phabricator-core-menu-profile-image { background-size: 28px 28px; } .device .phabricator-search-menu { display: none; } .device-desktop .phabricator-search-menu { float: right; } .device .phabricator-search-menu-expanded .phabricator-search-menu { display: block; padding-top: 44px; } .device .phabricator-dark-menu .phui-list-item-type-link { font-size: 15px; min-height: 30px; line-height: 28px; background: #000; } .device .phui-list-item-type-link .phabricator-core-menu-icon + .phui-list-item-name { margin-left: 30px; } .device-desktop .phabricator-application-menu { float: right; } .device-desktop .phabricator-application-menu .phui-list-item-view, .device-desktop .phabricator-application-menu .phui-list-item-name { display: none; } .phabricator-application-menu .phui-list-item-icon { display: none; } .device-desktop .phabricator-application-menu .phui-list-item-view.core-menu-item { display: block; } .device-desktop .main-header-dark .phabricator-application-menu .core-menu-item.phui-list-item-view:hover, .device-desktop .main-header-dark .phabricator-main-menu-logo:hover { background-color: rgba(0,0,0,.6); } .device-desktop .phabricator-application-menu .core-menu-item.phui-list-item-view:hover, .device-desktop .phabricator-main-menu-logo:hover { background-color: rgba(0,0,0,.3); box-shadow: inset 0 5px 10px rgba(0,0,0,0.5); border-radius: 3px; } .device-desktop .phabricator-application-menu .phui-list-item-view { float: left; position: relative; min-width: 36px; height: 36px; margin-top: 4px; } .device-desktop .phabricator-core-menu-icon { top: 5px; left: 4px; } .device .phabricator-core-menu-icon { left: 24px; } .phabricator-core-menu-icon { position: absolute; display: block; width: 28px; height: 28px; } .phabricator-main-menu-dropdown { position: absolute; background: #fff; top: 38px; padding: 2px; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.35); border: {$blueborder}; border-radius: 3px; } /* - Application Menu ---------------------------------------------------------- Styles unique to the application menu (right button on mobile). */ .device .phabricator-application-menu-expanded .phabricator-application-menu { display: block; padding-top: 44px; } .device .phabricator-application-menu, .device-desktop .phabricator-dark-menu .phui-list-item-type-label { display: none; } .phabricator-application-menu .phui-list-item-name { padding-left: 12px; } /* - Print --------------------------------------------------------------------- */ !print .phabricator-main-menu { display: none; } diff --git a/webroot/rsrc/js/core/behavior-search-typeahead.js b/webroot/rsrc/js/core/behavior-search-typeahead.js index 2b5fa4c66..fadf255ac 100644 --- a/webroot/rsrc/js/core/behavior-search-typeahead.js +++ b/webroot/rsrc/js/core/behavior-search-typeahead.js @@ -1,139 +1,140 @@ /** * @provides javelin-behavior-phabricator-search-typeahead * @requires javelin-behavior * javelin-typeahead-ondemand-source * javelin-typeahead * javelin-dom * javelin-uri * javelin-util * javelin-stratcom */ JX.behavior('phabricator-search-typeahead', function(config) { var datasource = new JX.TypeaheadOnDemandSource(config.src); function transform(object) { var attr = { className: 'phabricator-main-search-typeahead-result' }; if (object[6]) { attr.style = {backgroundImage: 'url('+object[6]+')'}; } var render = JX.$N( 'span', attr, [ + JX.$N('span', {className: object[10]}), JX.$N('span', {className: 'result-name'}, object[4] || object[0]), JX.$N('span', {className: 'result-type'}, object[5]) ]); return { name: object[0], display: render, uri: object[1], id: object[2], priority: object[3], type: object[7] }; } datasource.setTransformer(transform); // Sort handler that orders results by type (e.g., applications, users) // and then selects for good matches on the "priority" substrings if they // exist (for instance, username matches are preferred over real name // matches, and application name matches are preferred over application // flavor text matches). var sort_handler = function(value, list, cmp) { var priority_hits = {}; var type_priority = { 'jump' : 1, 'apps' : 2, 'proj' : 3, 'user' : 4, 'symb' : 5 }; var tokens = this.tokenize(value); var ii; for (ii = 0; ii < list.length; ii++) { var item = list[ii]; if (!item.priority) { continue; } for (var jj = 0; jj < tokens.length; jj++) { if (item.priority.substr(0, tokens[jj].length) == tokens[jj]) { priority_hits[item.id] = true; } } } list.sort(function(u, v) { var u_type = type_priority[u.type] || 999; var v_type = type_priority[v.type] || 999; if (u_type != v_type) { return u_type - v_type; } if (priority_hits[u.id] != priority_hits[v.id]) { return priority_hits[v.id] ? 1 : -1; } return cmp(u, v); }); // If we have more results than fit, limit each type of result to 3, so // we show 3 applications, then 3 users, etc. For jump items, we show only // one result. var type_count = 0; var current_type = null; for (ii = 0; ii < list.length; ii++) { if (list[ii].type != current_type) { current_type = list[ii].type; type_count = 1; } else { type_count++; // Skip this item if: // - it's a jump nav item, and we already have at least one jump // nav item; or // - we have more items than will fit in the typeahead, and this // is the 4..Nth result of its type. var skip = ((current_type == 'jump') && (type_count > 1)) || ((list.length > config.limit) && (type_count > 3)); if (skip) { list.splice(ii, 1); ii--; } } } }; datasource.setSortHandler(JX.bind(datasource, sort_handler)); datasource.setMaximumResultCount(config.limit); var typeahead = new JX.Typeahead(JX.$(config.id), JX.$(config.input)); typeahead.setDatasource(datasource); typeahead.setPlaceholder(config.placeholder); typeahead.listen('choose', function(r) { JX.$U(r.href).go(); JX.Stratcom.context().kill(); }); typeahead.start(); JX.DOM.listen(JX.$(config.button), 'click', null, function (e) { typeahead.setPlaceholder(''); typeahead.updatePlaceHolder(); }); });