@theia/toolbar 1.23.0-next.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/LICENSE +642 -0
  2. package/README.md +32 -0
  3. package/lib/browser/abstract-toolbar-contribution.d.ts +32 -0
  4. package/lib/browser/abstract-toolbar-contribution.d.ts.map +1 -0
  5. package/lib/browser/abstract-toolbar-contribution.js +69 -0
  6. package/lib/browser/abstract-toolbar-contribution.js.map +1 -0
  7. package/lib/browser/application-shell-with-toolbar-override.d.ts +30 -0
  8. package/lib/browser/application-shell-with-toolbar-override.d.ts.map +1 -0
  9. package/lib/browser/application-shell-with-toolbar-override.js +99 -0
  10. package/lib/browser/application-shell-with-toolbar-override.js.map +1 -0
  11. package/lib/browser/codicons.d.ts +17 -0
  12. package/lib/browser/codicons.d.ts.map +1 -0
  13. package/lib/browser/codicons.js +21 -0
  14. package/lib/browser/codicons.js.map +1 -0
  15. package/lib/browser/font-awesome-icons.d.ts +17 -0
  16. package/lib/browser/font-awesome-icons.d.ts.map +1 -0
  17. package/lib/browser/font-awesome-icons.js +21 -0
  18. package/lib/browser/font-awesome-icons.js.map +1 -0
  19. package/lib/browser/package.spec.d.ts +16 -0
  20. package/lib/browser/package.spec.d.ts.map +1 -0
  21. package/lib/browser/package.spec.js +19 -0
  22. package/lib/browser/package.spec.js.map +1 -0
  23. package/lib/browser/toolbar-command-contribution.d.ts +41 -0
  24. package/lib/browser/toolbar-command-contribution.d.ts.map +1 -0
  25. package/lib/browser/toolbar-command-contribution.js +212 -0
  26. package/lib/browser/toolbar-command-contribution.js.map +1 -0
  27. package/lib/browser/toolbar-command-quick-input-service.d.ts +35 -0
  28. package/lib/browser/toolbar-command-quick-input-service.d.ts.map +1 -0
  29. package/lib/browser/toolbar-command-quick-input-service.js +108 -0
  30. package/lib/browser/toolbar-command-quick-input-service.js.map +1 -0
  31. package/lib/browser/toolbar-constants.d.ts +39 -0
  32. package/lib/browser/toolbar-constants.d.ts.map +1 -0
  33. package/lib/browser/toolbar-constants.js +76 -0
  34. package/lib/browser/toolbar-constants.js.map +1 -0
  35. package/lib/browser/toolbar-controller.d.ts +49 -0
  36. package/lib/browser/toolbar-controller.d.ts.map +1 -0
  37. package/lib/browser/toolbar-controller.js +185 -0
  38. package/lib/browser/toolbar-controller.js.map +1 -0
  39. package/lib/browser/toolbar-defaults.d.ts +19 -0
  40. package/lib/browser/toolbar-defaults.d.ts.map +1 -0
  41. package/lib/browser/toolbar-defaults.js +61 -0
  42. package/lib/browser/toolbar-defaults.js.map +1 -0
  43. package/lib/browser/toolbar-frontend-module.d.ts +20 -0
  44. package/lib/browser/toolbar-frontend-module.d.ts.map +1 -0
  45. package/lib/browser/toolbar-frontend-module.js +26 -0
  46. package/lib/browser/toolbar-frontend-module.js.map +1 -0
  47. package/lib/browser/toolbar-icon-selector-dialog.d.ts +79 -0
  48. package/lib/browser/toolbar-icon-selector-dialog.d.ts.map +1 -0
  49. package/lib/browser/toolbar-icon-selector-dialog.js +237 -0
  50. package/lib/browser/toolbar-icon-selector-dialog.js.map +1 -0
  51. package/lib/browser/toolbar-interfaces.d.ts +61 -0
  52. package/lib/browser/toolbar-interfaces.d.ts.map +1 -0
  53. package/lib/browser/toolbar-interfaces.js +43 -0
  54. package/lib/browser/toolbar-interfaces.js.map +1 -0
  55. package/lib/browser/toolbar-preference-contribution.d.ts +25 -0
  56. package/lib/browser/toolbar-preference-contribution.d.ts.map +1 -0
  57. package/lib/browser/toolbar-preference-contribution.js +35 -0
  58. package/lib/browser/toolbar-preference-contribution.js.map +1 -0
  59. package/lib/browser/toolbar-preference-schema.d.ts +21 -0
  60. package/lib/browser/toolbar-preference-schema.d.ts.map +1 -0
  61. package/lib/browser/toolbar-preference-schema.js +73 -0
  62. package/lib/browser/toolbar-preference-schema.js.map +1 -0
  63. package/lib/browser/toolbar-storage-provider.d.ts +62 -0
  64. package/lib/browser/toolbar-storage-provider.d.ts.map +1 -0
  65. package/lib/browser/toolbar-storage-provider.js +354 -0
  66. package/lib/browser/toolbar-storage-provider.js.map +1 -0
  67. package/lib/browser/toolbar.d.ts +72 -0
  68. package/lib/browser/toolbar.d.ts.map +1 -0
  69. package/lib/browser/toolbar.js +381 -0
  70. package/lib/browser/toolbar.js.map +1 -0
  71. package/package.json +51 -0
  72. package/src/browser/abstract-toolbar-contribution.tsx +53 -0
  73. package/src/browser/application-shell-with-toolbar-override.ts +94 -0
  74. package/src/browser/codicons.ts +18 -0
  75. package/src/browser/font-awesome-icons.ts +18 -0
  76. package/src/browser/package.spec.ts +19 -0
  77. package/src/browser/style/toolbar.css +253 -0
  78. package/src/browser/toolbar-command-contribution.ts +211 -0
  79. package/src/browser/toolbar-command-quick-input-service.ts +86 -0
  80. package/src/browser/toolbar-constants.ts +79 -0
  81. package/src/browser/toolbar-controller.ts +182 -0
  82. package/src/browser/toolbar-defaults.ts +58 -0
  83. package/src/browser/toolbar-frontend-module.ts +30 -0
  84. package/src/browser/toolbar-icon-selector-dialog.tsx +296 -0
  85. package/src/browser/toolbar-interfaces.ts +76 -0
  86. package/src/browser/toolbar-preference-contribution.ts +38 -0
  87. package/src/browser/toolbar-preference-schema.ts +74 -0
  88. package/src/browser/toolbar-storage-provider.ts +347 -0
  89. package/src/browser/toolbar.tsx +420 -0
@@ -0,0 +1,18 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2022 Ericsson and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ /* eslint-disable @typescript-eslint/quotes, max-len */
18
+ export const codicons = ["codicon-add", "codicon-plus", "codicon-gist-new", "codicon-repo-create", "codicon-lightbulb", "codicon-light-bulb", "codicon-repo", "codicon-repo-delete", "codicon-gist-fork", "codicon-repo-forked", "codicon-git-pull-request", "codicon-git-pull-request-abandoned", "codicon-record-keys", "codicon-keyboard", "codicon-tag", "codicon-tag-add", "codicon-tag-remove", "codicon-person", "codicon-person-follow", "codicon-person-outline", "codicon-person-filled", "codicon-git-branch", "codicon-git-branch-create", "codicon-git-branch-delete", "codicon-source-control", "codicon-mirror", "codicon-mirror-public", "codicon-star", "codicon-star-add", "codicon-star-delete", "codicon-star-empty", "codicon-comment", "codicon-comment-add", "codicon-alert", "codicon-warning", "codicon-search", "codicon-search-save", "codicon-log-out", "codicon-sign-out", "codicon-log-in", "codicon-sign-in", "codicon-eye", "codicon-eye-unwatch", "codicon-eye-watch", "codicon-circle-filled", "codicon-primitive-dot", "codicon-close-dirty", "codicon-debug-breakpoint", "codicon-debug-breakpoint-disabled", "codicon-debug-hint", "codicon-primitive-square", "codicon-edit", "codicon-pencil", "codicon-info", "codicon-issue-opened", "codicon-gist-private", "codicon-git-fork-private", "codicon-lock", "codicon-mirror-private", "codicon-close", "codicon-remove-close", "codicon-x", "codicon-repo-sync", "codicon-sync", "codicon-clone", "codicon-desktop-download", "codicon-beaker", "codicon-microscope", "codicon-vm", "codicon-device-desktop", "codicon-file", "codicon-file-text", "codicon-more", "codicon-ellipsis", "codicon-kebab-horizontal", "codicon-mail-reply", "codicon-reply", "codicon-organization", "codicon-organization-filled", "codicon-organization-outline", "codicon-new-file", "codicon-file-add", "codicon-new-folder", "codicon-file-directory-create", "codicon-trash", "codicon-trashcan", "codicon-history", "codicon-clock", "codicon-folder", "codicon-file-directory", "codicon-symbol-folder", "codicon-logo-github", "codicon-mark-github", "codicon-github", "codicon-terminal", "codicon-console", "codicon-repl", "codicon-zap", "codicon-symbol-event", "codicon-error", "codicon-stop", "codicon-variable", "codicon-symbol-variable", "codicon-array", "codicon-symbol-array", "codicon-symbol-module", "codicon-symbol-package", "codicon-symbol-namespace", "codicon-symbol-object", "codicon-symbol-method", "codicon-symbol-function", "codicon-symbol-constructor", "codicon-symbol-boolean", "codicon-symbol-null", "codicon-symbol-numeric", "codicon-symbol-number", "codicon-symbol-structure", "codicon-symbol-struct", "codicon-symbol-parameter", "codicon-symbol-type-parameter", "codicon-symbol-key", "codicon-symbol-text", "codicon-symbol-reference", "codicon-go-to-file", "codicon-symbol-enum", "codicon-symbol-value", "codicon-symbol-ruler", "codicon-symbol-unit", "codicon-activate-breakpoints", "codicon-archive", "codicon-arrow-both", "codicon-arrow-down", "codicon-arrow-left", "codicon-arrow-right", "codicon-arrow-small-down", "codicon-arrow-small-left", "codicon-arrow-small-right", "codicon-arrow-small-up", "codicon-arrow-up", "codicon-bell", "codicon-bold", "codicon-book", "codicon-bookmark", "codicon-debug-breakpoint-conditional-unverified", "codicon-debug-breakpoint-conditional", "codicon-debug-breakpoint-conditional-disabled", "codicon-debug-breakpoint-data-unverified", "codicon-debug-breakpoint-data", "codicon-debug-breakpoint-data-disabled", "codicon-debug-breakpoint-log-unverified", "codicon-debug-breakpoint-log", "codicon-debug-breakpoint-log-disabled", "codicon-briefcase", "codicon-broadcast", "codicon-browser", "codicon-bug", "codicon-calendar", "codicon-case-sensitive", "codicon-check", "codicon-checklist", "codicon-chevron-down", "codicon-chevron-left", "codicon-chevron-right", "codicon-chevron-up", "codicon-chrome-close", "codicon-chrome-maximize", "codicon-chrome-minimize", "codicon-chrome-restore", "codicon-circle-outline", "codicon-debug-breakpoint-unverified", "codicon-circle-slash", "codicon-circuit-board", "codicon-clear-all", "codicon-clippy", "codicon-close-all", "codicon-cloud-download", "codicon-cloud-upload", "codicon-code", "codicon-collapse-all", "codicon-color-mode", "codicon-comment-discussion", "codicon-credit-card", "codicon-dash", "codicon-dashboard", "codicon-database", "codicon-debug-continue", "codicon-debug-disconnect", "codicon-debug-pause", "codicon-debug-restart", "codicon-debug-start", "codicon-debug-step-into", "codicon-debug-step-out", "codicon-debug-step-over", "codicon-debug-stop", "codicon-debug", "codicon-device-camera-video", "codicon-device-camera", "codicon-device-mobile", "codicon-diff-added", "codicon-diff-ignored", "codicon-diff-modified", "codicon-diff-removed", "codicon-diff-renamed", "codicon-diff", "codicon-discard", "codicon-editor-layout", "codicon-empty-window", "codicon-exclude", "codicon-extensions", "codicon-eye-closed", "codicon-file-binary", "codicon-file-code", "codicon-file-media", "codicon-file-pdf", "codicon-file-submodule", "codicon-file-symlink-directory", "codicon-file-symlink-file", "codicon-file-zip", "codicon-files", "codicon-filter", "codicon-flame", "codicon-fold-down", "codicon-fold-up", "codicon-fold", "codicon-folder-active", "codicon-folder-opened", "codicon-gear", "codicon-gift", "codicon-gist-secret", "codicon-gist", "codicon-git-commit", "codicon-git-compare", "codicon-compare-changes", "codicon-git-merge", "codicon-github-action", "codicon-github-alt", "codicon-globe", "codicon-grabber", "codicon-graph", "codicon-gripper", "codicon-heart", "codicon-home", "codicon-horizontal-rule", "codicon-hubot", "codicon-inbox", "codicon-issue-reopened", "codicon-issues", "codicon-italic", "codicon-jersey", "codicon-json", "codicon-kebab-vertical", "codicon-key", "codicon-law", "codicon-lightbulb-autofix", "codicon-link-external", "codicon-link", "codicon-list-ordered", "codicon-list-unordered", "codicon-live-share", "codicon-loading", "codicon-location", "codicon-mail-read", "codicon-mail", "codicon-markdown", "codicon-megaphone", "codicon-mention", "codicon-milestone", "codicon-mortar-board", "codicon-move", "codicon-multiple-windows", "codicon-mute", "codicon-no-newline", "codicon-note", "codicon-octoface", "codicon-open-preview", "codicon-package", "codicon-paintcan", "codicon-pin", "codicon-play", "codicon-run", "codicon-plug", "codicon-preserve-case", "codicon-preview", "codicon-project", "codicon-pulse", "codicon-question", "codicon-quote", "codicon-radio-tower", "codicon-reactions", "codicon-references", "codicon-refresh", "codicon-regex", "codicon-remote-explorer", "codicon-remote", "codicon-remove", "codicon-replace-all", "codicon-replace", "codicon-repo-clone", "codicon-repo-force-push", "codicon-repo-pull", "codicon-repo-push", "codicon-report", "codicon-request-changes", "codicon-rocket", "codicon-root-folder-opened", "codicon-root-folder", "codicon-rss", "codicon-ruby", "codicon-save-all", "codicon-save-as", "codicon-save", "codicon-screen-full", "codicon-screen-normal", "codicon-search-stop", "codicon-server", "codicon-settings-gear", "codicon-settings", "codicon-shield", "codicon-smiley", "codicon-sort-precedence", "codicon-split-horizontal", "codicon-split-vertical", "codicon-squirrel", "codicon-star-full", "codicon-star-half", "codicon-symbol-class", "codicon-symbol-color", "codicon-symbol-constant", "codicon-symbol-enum-member", "codicon-symbol-field", "codicon-symbol-file", "codicon-symbol-interface", "codicon-symbol-keyword", "codicon-symbol-misc", "codicon-symbol-operator", "codicon-symbol-property", "codicon-wrench", "codicon-wrench-subaction", "codicon-symbol-snippet", "codicon-tasklist", "codicon-telescope", "codicon-text-size", "codicon-three-bars", "codicon-thumbsdown", "codicon-thumbsup", "codicon-tools", "codicon-triangle-down", "codicon-triangle-left", "codicon-triangle-right", "codicon-triangle-up", "codicon-twitter", "codicon-unfold", "codicon-unlock", "codicon-unmute", "codicon-unverified", "codicon-verified", "codicon-versions", "codicon-vm-active", "codicon-vm-outline", "codicon-vm-running", "codicon-watch", "codicon-whitespace", "codicon-whole-word", "codicon-window", "codicon-word-wrap", "codicon-zoom-in", "codicon-zoom-out", "codicon-list-filter", "codicon-list-flat", "codicon-list-selection", "codicon-selection", "codicon-list-tree", "codicon-debug-breakpoint-function-unverified", "codicon-debug-breakpoint-function", "codicon-debug-breakpoint-function-disabled", "codicon-debug-stackframe-active", "codicon-debug-stackframe-dot", "codicon-debug-stackframe", "codicon-debug-stackframe-focused", "codicon-debug-breakpoint-unsupported", "codicon-symbol-string", "codicon-debug-reverse-continue", "codicon-debug-step-back", "codicon-debug-restart-frame", "codicon-debug-alt", "codicon-call-incoming", "codicon-call-outgoing", "codicon-menu", "codicon-expand-all", "codicon-feedback", "codicon-group-by-ref-type", "codicon-ungroup-by-ref-type", "codicon-account", "codicon-bell-dot", "codicon-debug-console", "codicon-library", "codicon-output", "codicon-run-all", "codicon-sync-ignored", "codicon-pinned", "codicon-github-inverted", "codicon-server-process", "codicon-server-environment", "codicon-pass", "codicon-issue-closed", "codicon-stop-circle", "codicon-play-circle", "codicon-record", "codicon-debug-alt-small", "codicon-vm-connect", "codicon-cloud", "codicon-merge", "codicon-export", "codicon-graph-left", "codicon-magnet", "codicon-notebook", "codicon-redo", "codicon-check-all", "codicon-pinned-dirty", "codicon-pass-filled", "codicon-circle-large-filled", "codicon-circle-large-outline", "codicon-combine", "codicon-gather", "codicon-table", "codicon-variable-group", "codicon-type-hierarchy", "codicon-type-hierarchy-sub", "codicon-type-hierarchy-super", "codicon-git-pull-request-create", "codicon-run-above", "codicon-run-below", "codicon-notebook-template", "codicon-debug-rerun", "codicon-workspace-trusted", "codicon-workspace-untrusted", "codicon-workspace-unknown", "codicon-terminal-cmd", "codicon-terminal-debian", "codicon-terminal-linux", "codicon-terminal-powershell", "codicon-terminal-tmux", "codicon-terminal-ubuntu", "codicon-terminal-bash", "codicon-arrow-swap", "codicon-copy", "codicon-person-add", "codicon-filter-filled", "codicon-wand", "codicon-debug-line-by-line", "codicon-inspect", "codicon-layers", "codicon-layers-dot", "codicon-layers-active", "codicon-compass", "codicon-compass-dot", "codicon-compass-active", "codicon-azure", "codicon-issue-draft", "codicon-git-pull-request-closed", "codicon-git-pull-request-draft", "codicon-debug-all", "codicon-debug-coverage"];
@@ -0,0 +1,18 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2022 Ericsson and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ /* eslint-disable @typescript-eslint/quotes, max-len */
18
+ export const fontAwesomeIcons = ["fa-glass", "fa-music", "fa-search", "fa-envelope-o", "fa-heart", "fa-star", "fa-star-o", "fa-user", "fa-film", "fa-th-large", "fa-th", "fa-th-list", "fa-check", "fa-remove", "fa-close", "fa-times", "fa-search-plus", "fa-search-minus", "fa-power-off", "fa-signal", "fa-gear", "fa-cog", "fa-trash-o", "fa-home", "fa-file-o", "fa-clock-o", "fa-road", "fa-download", "fa-arrow-circle-o-down", "fa-arrow-circle-o-up", "fa-inbox", "fa-play-circle-o", "fa-rotate-right", "fa-repeat", "fa-refresh", "fa-list-alt", "fa-lock", "fa-flag", "fa-headphones", "fa-volume-off", "fa-volume-down", "fa-volume-up", "fa-qrcode", "fa-barcode", "fa-tag", "fa-tags", "fa-book", "fa-bookmark", "fa-print", "fa-camera", "fa-font", "fa-bold", "fa-italic", "fa-text-height", "fa-text-width", "fa-align-left", "fa-align-center", "fa-align-right", "fa-align-justify", "fa-list", "fa-dedent", "fa-outdent", "fa-indent", "fa-video-camera", "fa-photo", "fa-image", "fa-picture-o", "fa-pencil", "fa-map-marker", "fa-adjust", "fa-tint", "fa-edit", "fa-pencil-square-o", "fa-share-square-o", "fa-check-square-o", "fa-arrows", "fa-step-backward", "fa-fast-backward", "fa-backward", "fa-play", "fa-pause", "fa-stop", "fa-forward", "fa-fast-forward", "fa-step-forward", "fa-eject", "fa-chevron-left", "fa-chevron-right", "fa-plus-circle", "fa-minus-circle", "fa-times-circle", "fa-check-circle", "fa-question-circle", "fa-info-circle", "fa-crosshairs", "fa-times-circle-o", "fa-check-circle-o", "fa-ban", "fa-arrow-left", "fa-arrow-right", "fa-arrow-up", "fa-arrow-down", "fa-mail-forward", "fa-share", "fa-expand", "fa-compress", "fa-plus", "fa-minus", "fa-asterisk", "fa-exclamation-circle", "fa-gift", "fa-leaf", "fa-fire", "fa-eye", "fa-eye-slash", "fa-warning", "fa-exclamation-triangle", "fa-plane", "fa-calendar", "fa-random", "fa-comment", "fa-magnet", "fa-chevron-up", "fa-chevron-down", "fa-retweet", "fa-shopping-cart", "fa-folder", "fa-folder-open", "fa-arrows-v", "fa-arrows-h", "fa-bar-chart-o", "fa-bar-chart", "fa-twitter-square", "fa-facebook-square", "fa-camera-retro", "fa-key", "fa-gears", "fa-cogs", "fa-comments", "fa-thumbs-o-up", "fa-thumbs-o-down", "fa-star-half", "fa-heart-o", "fa-sign-out", "fa-linkedin-square", "fa-thumb-tack", "fa-external-link", "fa-sign-in", "fa-trophy", "fa-github-square", "fa-upload", "fa-lemon-o", "fa-phone", "fa-square-o", "fa-bookmark-o", "fa-phone-square", "fa-twitter", "fa-facebook-f", "fa-facebook", "fa-github", "fa-unlock", "fa-credit-card", "fa-feed", "fa-rss", "fa-hdd-o", "fa-bullhorn", "fa-bell", "fa-certificate", "fa-hand-o-right", "fa-hand-o-left", "fa-hand-o-up", "fa-hand-o-down", "fa-arrow-circle-left", "fa-arrow-circle-right", "fa-arrow-circle-up", "fa-arrow-circle-down", "fa-globe", "fa-wrench", "fa-tasks", "fa-filter", "fa-briefcase", "fa-arrows-alt", "fa-group", "fa-users", "fa-chain", "fa-link", "fa-cloud", "fa-flask", "fa-cut", "fa-scissors", "fa-copy", "fa-files-o", "fa-paperclip", "fa-save", "fa-floppy-o", "fa-square", "fa-navicon", "fa-reorder", "fa-bars", "fa-list-ul", "fa-list-ol", "fa-strikethrough", "fa-underline", "fa-table", "fa-magic", "fa-truck", "fa-pinterest", "fa-pinterest-square", "fa-google-plus-square", "fa-google-plus", "fa-money", "fa-caret-down", "fa-caret-up", "fa-caret-left", "fa-caret-right", "fa-columns", "fa-unsorted", "fa-sort", "fa-sort-down", "fa-sort-desc", "fa-sort-up", "fa-sort-asc", "fa-envelope", "fa-linkedin", "fa-rotate-left", "fa-undo", "fa-legal", "fa-gavel", "fa-dashboard", "fa-tachometer", "fa-comment-o", "fa-comments-o", "fa-flash", "fa-bolt", "fa-sitemap", "fa-umbrella", "fa-paste", "fa-clipboard", "fa-lightbulb-o", "fa-exchange", "fa-cloud-download", "fa-cloud-upload", "fa-user-md", "fa-stethoscope", "fa-suitcase", "fa-bell-o", "fa-coffee", "fa-cutlery", "fa-file-text-o", "fa-building-o", "fa-hospital-o", "fa-ambulance", "fa-medkit", "fa-fighter-jet", "fa-beer", "fa-h-square", "fa-plus-square", "fa-angle-double-left", "fa-angle-double-right", "fa-angle-double-up", "fa-angle-double-down", "fa-angle-left", "fa-angle-right", "fa-angle-up", "fa-angle-down", "fa-desktop", "fa-laptop", "fa-tablet", "fa-mobile-phone", "fa-mobile", "fa-circle-o", "fa-quote-left", "fa-quote-right", "fa-spinner", "fa-circle", "fa-mail-reply", "fa-reply", "fa-github-alt", "fa-folder-o", "fa-folder-open-o", "fa-smile-o", "fa-frown-o", "fa-meh-o", "fa-gamepad", "fa-keyboard-o", "fa-flag-o", "fa-flag-checkered", "fa-terminal", "fa-code", "fa-mail-reply-all", "fa-reply-all", "fa-star-half-empty", "fa-star-half-full", "fa-star-half-o", "fa-location-arrow", "fa-crop", "fa-code-fork", "fa-unlink", "fa-chain-broken", "fa-question", "fa-info", "fa-exclamation", "fa-superscript", "fa-subscript", "fa-eraser", "fa-puzzle-piece", "fa-microphone", "fa-microphone-slash", "fa-shield", "fa-calendar-o", "fa-fire-extinguisher", "fa-rocket", "fa-maxcdn", "fa-chevron-circle-left", "fa-chevron-circle-right", "fa-chevron-circle-up", "fa-chevron-circle-down", "fa-html5", "fa-css3", "fa-anchor", "fa-unlock-alt", "fa-bullseye", "fa-ellipsis-h", "fa-ellipsis-v", "fa-rss-square", "fa-play-circle", "fa-ticket", "fa-minus-square", "fa-minus-square-o", "fa-level-up", "fa-level-down", "fa-check-square", "fa-pencil-square", "fa-external-link-square", "fa-share-square", "fa-compass", "fa-toggle-down", "fa-caret-square-o-down", "fa-toggle-up", "fa-caret-square-o-up", "fa-toggle-right", "fa-caret-square-o-right", "fa-euro", "fa-eur", "fa-gbp", "fa-dollar", "fa-usd", "fa-rupee", "fa-inr", "fa-cny", "fa-rmb", "fa-yen", "fa-jpy", "fa-ruble", "fa-rouble", "fa-rub", "fa-won", "fa-krw", "fa-bitcoin", "fa-btc", "fa-file", "fa-file-text", "fa-sort-alpha-asc", "fa-sort-alpha-desc", "fa-sort-amount-asc", "fa-sort-amount-desc", "fa-sort-numeric-asc", "fa-sort-numeric-desc", "fa-thumbs-up", "fa-thumbs-down", "fa-youtube-square", "fa-youtube", "fa-xing", "fa-xing-square", "fa-youtube-play", "fa-dropbox", "fa-stack-overflow", "fa-instagram", "fa-flickr", "fa-adn", "fa-bitbucket", "fa-bitbucket-square", "fa-tumblr", "fa-tumblr-square", "fa-long-arrow-down", "fa-long-arrow-up", "fa-long-arrow-left", "fa-long-arrow-right", "fa-apple", "fa-windows", "fa-android", "fa-linux", "fa-dribbble", "fa-skype", "fa-foursquare", "fa-trello", "fa-female", "fa-male", "fa-gittip", "fa-gratipay", "fa-sun-o", "fa-moon-o", "fa-archive", "fa-bug", "fa-vk", "fa-weibo", "fa-renren", "fa-pagelines", "fa-stack-exchange", "fa-arrow-circle-o-right", "fa-arrow-circle-o-left", "fa-toggle-left", "fa-caret-square-o-left", "fa-dot-circle-o", "fa-wheelchair", "fa-vimeo-square", "fa-turkish-lira", "fa-try", "fa-plus-square-o", "fa-space-shuttle", "fa-slack", "fa-envelope-square", "fa-wordpress", "fa-openid", "fa-institution", "fa-bank", "fa-university", "fa-mortar-board", "fa-graduation-cap", "fa-yahoo", "fa-google", "fa-reddit", "fa-reddit-square", "fa-stumbleupon-circle", "fa-stumbleupon", "fa-delicious", "fa-digg", "fa-pied-piper-pp", "fa-pied-piper-alt", "fa-drupal", "fa-joomla", "fa-language", "fa-fax", "fa-building", "fa-child", "fa-paw", "fa-spoon", "fa-cube", "fa-cubes", "fa-behance", "fa-behance-square", "fa-steam", "fa-steam-square", "fa-recycle", "fa-automobile", "fa-car", "fa-cab", "fa-taxi", "fa-tree", "fa-spotify", "fa-deviantart", "fa-soundcloud", "fa-database", "fa-file-pdf-o", "fa-file-word-o", "fa-file-excel-o", "fa-file-powerpoint-o", "fa-file-photo-o", "fa-file-picture-o", "fa-file-image-o", "fa-file-zip-o", "fa-file-archive-o", "fa-file-sound-o", "fa-file-audio-o", "fa-file-movie-o", "fa-file-video-o", "fa-file-code-o", "fa-vine", "fa-codepen", "fa-jsfiddle", "fa-life-bouy", "fa-life-buoy", "fa-life-saver", "fa-support", "fa-life-ring", "fa-circle-o-notch", "fa-ra", "fa-resistance", "fa-rebel", "fa-ge", "fa-empire", "fa-git-square", "fa-git", "fa-y-combinator-square", "fa-yc-square", "fa-hacker-news", "fa-tencent-weibo", "fa-qq", "fa-wechat", "fa-weixin", "fa-send", "fa-paper-plane", "fa-send-o", "fa-paper-plane-o", "fa-history", "fa-circle-thin", "fa-header", "fa-paragraph", "fa-sliders", "fa-share-alt", "fa-share-alt-square", "fa-bomb", "fa-soccer-ball-o", "fa-futbol-o", "fa-tty", "fa-binoculars", "fa-plug", "fa-slideshare", "fa-twitch", "fa-yelp", "fa-newspaper-o", "fa-wifi", "fa-calculator", "fa-paypal", "fa-google-wallet", "fa-cc-visa", "fa-cc-mastercard", "fa-cc-discover", "fa-cc-amex", "fa-cc-paypal", "fa-cc-stripe", "fa-bell-slash", "fa-bell-slash-o", "fa-trash", "fa-copyright", "fa-at", "fa-eyedropper", "fa-paint-brush", "fa-birthday-cake", "fa-area-chart", "fa-pie-chart", "fa-line-chart", "fa-lastfm", "fa-lastfm-square", "fa-toggle-off", "fa-toggle-on", "fa-bicycle", "fa-bus", "fa-ioxhost", "fa-angellist", "fa-cc", "fa-shekel", "fa-sheqel", "fa-ils", "fa-meanpath", "fa-buysellads", "fa-connectdevelop", "fa-dashcube", "fa-forumbee", "fa-leanpub", "fa-sellsy", "fa-shirtsinbulk", "fa-simplybuilt", "fa-skyatlas", "fa-cart-plus", "fa-cart-arrow-down", "fa-diamond", "fa-ship", "fa-user-secret", "fa-motorcycle", "fa-street-view", "fa-heartbeat", "fa-venus", "fa-mars", "fa-mercury", "fa-intersex", "fa-transgender", "fa-transgender-alt", "fa-venus-double", "fa-mars-double", "fa-venus-mars", "fa-mars-stroke", "fa-mars-stroke-v", "fa-mars-stroke-h", "fa-neuter", "fa-genderless", "fa-facebook-official", "fa-pinterest-p", "fa-whatsapp", "fa-server", "fa-user-plus", "fa-user-times", "fa-hotel", "fa-bed", "fa-viacoin", "fa-train", "fa-subway", "fa-medium", "fa-yc", "fa-y-combinator", "fa-optin-monster", "fa-opencart", "fa-expeditedssl", "fa-battery-4", "fa-battery", "fa-battery-full", "fa-battery-3", "fa-battery-three-quarters", "fa-battery-2", "fa-battery-half", "fa-battery-1", "fa-battery-quarter", "fa-battery-0", "fa-battery-empty", "fa-mouse-pointer", "fa-i-cursor", "fa-object-group", "fa-object-ungroup", "fa-sticky-note", "fa-sticky-note-o", "fa-cc-jcb", "fa-cc-diners-club", "fa-clone", "fa-balance-scale", "fa-hourglass-o", "fa-hourglass-1", "fa-hourglass-start", "fa-hourglass-2", "fa-hourglass-half", "fa-hourglass-3", "fa-hourglass-end", "fa-hourglass", "fa-hand-grab-o", "fa-hand-rock-o", "fa-hand-stop-o", "fa-hand-paper-o", "fa-hand-scissors-o", "fa-hand-lizard-o", "fa-hand-spock-o", "fa-hand-pointer-o", "fa-hand-peace-o", "fa-trademark", "fa-registered", "fa-creative-commons", "fa-gg", "fa-gg-circle", "fa-tripadvisor", "fa-odnoklassniki", "fa-odnoklassniki-square", "fa-get-pocket", "fa-wikipedia-w", "fa-safari", "fa-chrome", "fa-firefox", "fa-opera", "fa-internet-explorer", "fa-tv", "fa-television", "fa-contao", "fa-500px", "fa-amazon", "fa-calendar-plus-o", "fa-calendar-minus-o", "fa-calendar-times-o", "fa-calendar-check-o", "fa-industry", "fa-map-pin", "fa-map-signs", "fa-map-o", "fa-map", "fa-commenting", "fa-commenting-o", "fa-houzz", "fa-vimeo", "fa-black-tie", "fa-fonticons", "fa-reddit-alien", "fa-edge", "fa-credit-card-alt", "fa-codiepie", "fa-modx", "fa-fort-awesome", "fa-usb", "fa-product-hunt", "fa-mixcloud", "fa-scribd", "fa-pause-circle", "fa-pause-circle-o", "fa-stop-circle", "fa-stop-circle-o", "fa-shopping-bag", "fa-shopping-basket", "fa-hashtag", "fa-bluetooth", "fa-bluetooth-b", "fa-percent", "fa-gitlab", "fa-wpbeginner", "fa-wpforms", "fa-envira", "fa-universal-access", "fa-wheelchair-alt", "fa-question-circle-o", "fa-blind", "fa-audio-description", "fa-volume-control-phone", "fa-braille", "fa-assistive-listening-systems", "fa-asl-interpreting", "fa-american-sign-language-interpreting", "fa-deafness", "fa-hard-of-hearing", "fa-deaf", "fa-glide", "fa-glide-g", "fa-signing", "fa-sign-language", "fa-low-vision", "fa-viadeo", "fa-viadeo-square", "fa-snapchat", "fa-snapchat-ghost", "fa-snapchat-square", "fa-pied-piper", "fa-first-order", "fa-yoast", "fa-themeisle", "fa-google-plus-circle", "fa-google-plus-official", "fa-fa", "fa-font-awesome", "fa-handshake-o", "fa-envelope-open", "fa-envelope-open-o", "fa-linode", "fa-address-book", "fa-address-book-o", "fa-vcard", "fa-address-card", "fa-vcard-o", "fa-address-card-o", "fa-user-circle", "fa-user-circle-o", "fa-user-o", "fa-id-badge", "fa-drivers-license", "fa-id-card", "fa-drivers-license-o", "fa-id-card-o", "fa-quora", "fa-free-code-camp", "fa-telegram", "fa-thermometer-4", "fa-thermometer", "fa-thermometer-full", "fa-thermometer-3", "fa-thermometer-three-quarters", "fa-thermometer-2", "fa-thermometer-half", "fa-thermometer-1", "fa-thermometer-quarter", "fa-thermometer-0", "fa-thermometer-empty", "fa-shower", "fa-bathtub", "fa-s15", "fa-bath", "fa-podcast", "fa-window-maximize", "fa-window-minimize", "fa-window-restore", "fa-times-rectangle", "fa-window-close", "fa-times-rectangle-o", "fa-window-close-o", "fa-bandcamp", "fa-grav", "fa-etsy", "fa-imdb", "fa-ravelry", "fa-eercast", "fa-microchip", "fa-snowflake-o", "fa-superpowers", "fa-wpexplorer", "fa-meetup"];
@@ -0,0 +1,19 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2022 Ericsson and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ describe('timeline package', () => {
18
+ it('supports code coverage statistics', () => true);
19
+ });
@@ -0,0 +1,253 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2022 Ericsson and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ #main-toolbar {
18
+ --theia-toolbar-height: calc(var(--theia-private-menubar-height) - 2px);
19
+ --theia-toolbar-item-padding: 5px;
20
+ --theia-toolbar-icon-size: 20px;
21
+
22
+ min-height: var(--theia-toolbar-height);
23
+ color: var(--theia-mainToolbar-foreground);
24
+ background: var(--theia-mainToolbar-background);
25
+ padding: 2px 4px;
26
+ display: flex;
27
+ flex-direction: column;
28
+ justify-content: center;
29
+ position: relative;
30
+ }
31
+
32
+ #main-toolbar .theia-progress-bar-container {
33
+ position: absolute;
34
+ bottom: 0;
35
+ }
36
+
37
+ .toolbar-wrapper {
38
+ display: flex;
39
+ flex-direction: row;
40
+ width: 100%;
41
+ overflow: hidden;
42
+ }
43
+
44
+ .toolbar-wrapper .toolbar-column {
45
+ display: flex;
46
+ flex: 1;
47
+ }
48
+
49
+ .toolbar-wrapper .left {
50
+ justify-content: flex-start;
51
+ }
52
+
53
+ .toolbar-wrapper .center {
54
+ justify-content: center;
55
+ }
56
+
57
+ .toolbar-wrapper .right {
58
+ justify-content: flex-end;
59
+ }
60
+
61
+ .toolbar-wrapper:focus {
62
+ outline: none;
63
+ }
64
+
65
+ #main-toolbar .toolbar-item {
66
+ padding: 2px;
67
+ margin: 0 2px;
68
+ box-sizing: border-box;
69
+ position: relative;
70
+ background: unset;
71
+ cursor: pointer;
72
+ }
73
+
74
+ #main-toolbar .empty-column-space {
75
+ flex-grow: 1;
76
+ }
77
+
78
+ #main-toolbar .toolbar-item .codicon,
79
+ #main-toolbar .toolbar-item .fa {
80
+ font-size: var(--theia-toolbar-icon-size);
81
+ width: unset;
82
+ min-width: var(--theia-toolbar-icon-size);
83
+ height: var(--theia-toolbar-icon-size);
84
+ line-height: var(--theia-toolbar-icon-size);
85
+ }
86
+
87
+ #main-toolbar .toolbar-item.action-item.enabled:hover:not(.dragging):not(.active) {
88
+ background-color: var(--theia-toolbar-hoverBackground);
89
+ }
90
+
91
+ #main-toolbar .toolbar-item.action-item:not(.enabled) {
92
+ cursor: default;
93
+ }
94
+
95
+ #main-toolbar .toolbar-item .hover-overlay {
96
+ position: absolute;
97
+ pointer-events: none;
98
+ height: 100%;
99
+ width: 100%;
100
+ left: 0;
101
+ top: 0;
102
+ }
103
+
104
+ #main-toolbar .toolbar-item .hover-overlay.drag-over {
105
+ background-color: var(--theia-activityBar-foreground);
106
+ opacity: 0.3;
107
+ }
108
+
109
+ #main-toolbar .toolbar-item .hover-overlay.location-left {
110
+ width: 25%;
111
+ }
112
+
113
+ #main-toolbar .toolbar-item .hover-overlay.location-right {
114
+ width: 25%;
115
+ left: 75%;
116
+ right: 0;
117
+ }
118
+
119
+ #main-toolbar .toolbar-item.dragging {
120
+ opacity: 0.3;
121
+ }
122
+
123
+ #main-toolbar .toolbar-item:focus {
124
+ outline: none;
125
+ }
126
+
127
+ #main-toolbar .item:focus,
128
+ #main-toolbar .item div:focus {
129
+ outline: none;
130
+ }
131
+
132
+ #main-toolbar .separator {
133
+ width: 1px;
134
+ background-color: var(--theia-activityBar-foreground);
135
+ opacity: var(--theia-mod-disabled-opacity);
136
+ margin: 0 5px;
137
+ }
138
+
139
+ .toolbar-column {
140
+ display: flex;
141
+ }
142
+
143
+ .toolbar-column.left {
144
+ margin-right: var(--theia-toolbar-item-padding);
145
+ }
146
+
147
+ .toolbar-column.right {
148
+ margin-left: var(--theia-toolbar-item-padding);
149
+ }
150
+
151
+ .toolbar-column.empty {
152
+ min-width: 60px;
153
+ }
154
+
155
+ .empty-column-space.drag-over {
156
+ background-color: var(--theia-activityBar-foreground);
157
+ opacity: 0.3;
158
+ border-radius: 2px;
159
+ }
160
+
161
+ #toolbar-icon-selector-dialog {
162
+ --theia-icon-dialog-icon-size: 20px;
163
+ }
164
+
165
+ #toolbar-icon-selector-dialog .dialogBlock {
166
+ max-height: 75%;
167
+ width: 600px;
168
+ }
169
+
170
+ #toolbar-icon-selector-dialog .dialogContent {
171
+ overflow: hidden;
172
+ display: block;
173
+ }
174
+
175
+ #toolbar-icon-selector-dialog .dialogContent .icon-selector-options {
176
+ display: flex;
177
+ }
178
+
179
+ #toolbar-icon-selector-dialog .dialogContent .icon-wrapper:focus {
180
+ box-shadow: unset;
181
+ outline: solid 1px var(--theia-focusBorder);
182
+ }
183
+
184
+ #toolbar-icon-selector-dialog .dialogControl {
185
+ padding-top: var(--theia-ui-padding);
186
+ }
187
+
188
+ #toolbar-icon-selector-dialog .toolbar-icon-dialog-content.grid {
189
+ --grid-size: 28px;
190
+ display: grid;
191
+ grid-template-columns: repeat(20, var(--grid-size));
192
+ grid-template-rows: var(--grid-size);
193
+ grid-auto-rows: var(--grid-size);
194
+ }
195
+
196
+ #toolbar-icon-selector-dialog .toolbar-icon-dialog-content .icon-wrapper {
197
+ height: 100%;
198
+ width: 100%;
199
+ display: flex;
200
+ justify-content: center;
201
+ align-items: center;
202
+ }
203
+
204
+ #toolbar-icon-selector-dialog .toolbar-icon-dialog-content .search-placeholder {
205
+ text-align: center;
206
+ margin-top: var(--theia-ui-padding);
207
+ font-size: 1.2em;
208
+ }
209
+
210
+ #toolbar-icon-selector-dialog .toolbar-icon-controls {
211
+ display: flex;
212
+ width: 100%;
213
+ justify-content: space-between;
214
+ }
215
+
216
+ #toolbar-icon-selector-dialog .toolbar-icon-controls .default-button {
217
+ display: flex;
218
+ }
219
+
220
+ #toolbar-icon-selector-dialog .toolbar-icon-controls .toolbar-default-icon {
221
+ margin-left: var(--theia-ui-padding);
222
+ font-size: var(--theia-icon-dialog-icon-size);
223
+ }
224
+
225
+ #toolbar-icon-selector-dialog .icon-selector-options {
226
+ justify-content: space-between;
227
+ }
228
+
229
+ #toolbar-icon-selector-dialog .icon-selector-options .icon-filter-input {
230
+ height: 18px;
231
+ }
232
+
233
+ #toolbar-icon-selector-dialog .toolbar-icon-select {
234
+ margin-bottom: var(--theia-ui-padding);
235
+ }
236
+
237
+
238
+ #toolbar-icon-selector-dialog .toolbar-icon-dialog-content .icon-wrapper.selected {
239
+ background-color: var(--theia-list-activeSelectionBackground);
240
+ }
241
+
242
+ #toolbar-icon-selector-dialog .toolbar-icon-dialog-content .fa,
243
+ #toolbar-icon-selector-dialog .toolbar-icon-dialog-content .codicon {
244
+ font-size: var(--theia-icon-dialog-icon-size);
245
+ }
246
+
247
+ #toolbar-icon-selector-dialog .toolbar-scroll-container {
248
+ height: 375px;
249
+ position: relative;
250
+ padding: 0 var(--theia-ui-padding);
251
+ border: 1px solid var(--theia-editorWidget-border);
252
+ background-color: var(--theia-dropdown-background);
253
+ }
@@ -0,0 +1,211 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2022 Ericsson and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ import {
18
+ bindContributionProvider,
19
+ CommandContribution,
20
+ CommandRegistry,
21
+ CommandService,
22
+ InMemoryResources,
23
+ MenuContribution,
24
+ MenuModelRegistry,
25
+ } from '@theia/core';
26
+ import {
27
+ CommonMenus,
28
+ createPreferenceProxy,
29
+ KeybindingContribution,
30
+ KeybindingRegistry,
31
+ PreferenceContribution,
32
+ PreferenceScope,
33
+ PreferenceService,
34
+ QuickInputService,
35
+ Widget,
36
+ } from '@theia/core/lib/browser';
37
+ import { injectable, inject, interfaces, Container } from '@theia/core/shared/inversify';
38
+ import { EditorManager } from '@theia/editor/lib/browser';
39
+ import { ToolbarImpl } from './toolbar';
40
+ import { bindToolbarIconDialog } from './toolbar-icon-selector-dialog';
41
+ import {
42
+ ToolbarContribution,
43
+ ToolbarItemPosition,
44
+ ToolbarFactory,
45
+ Toolbar,
46
+ LateInjector,
47
+ lateInjector,
48
+ } from './toolbar-interfaces';
49
+ import { ToolbarCommandQuickInputService } from './toolbar-command-quick-input-service';
50
+ import { ToolbarStorageProvider } from './toolbar-storage-provider';
51
+ import { ToolbarController } from './toolbar-controller';
52
+ import { ToolbarPreferencesSchema, ToolbarPreferences, TOOLBAR_ENABLE_PREFERENCE_ID } from './toolbar-preference-contribution';
53
+ import { ToolbarDefaults, ToolbarDefaultsFactory } from './toolbar-defaults';
54
+ import { ToolbarCommands, ToolbarMenus, UserToolbarURI, USER_TOOLBAR_URI } from './toolbar-constants';
55
+ import { JsonSchemaContribution, JsonSchemaRegisterContext } from '@theia/core/lib/browser/json-schema-store';
56
+ import { toolbarConfigurationSchema, toolbarSchemaId } from './toolbar-preference-schema';
57
+ import URI from '@theia/core/lib/common/uri';
58
+
59
+ @injectable()
60
+ export class ToolbarCommandContribution implements CommandContribution, KeybindingContribution, MenuContribution, JsonSchemaContribution {
61
+ @inject(ToolbarController) protected readonly model: ToolbarController;
62
+ @inject(QuickInputService) protected readonly quickInputService: QuickInputService;
63
+ @inject(ToolbarCommandQuickInputService) protected toolbarCommandPickService: ToolbarCommandQuickInputService;
64
+ @inject(CommandService) protected readonly commandService: CommandService;
65
+ @inject(EditorManager) protected readonly editorManager: EditorManager;
66
+ @inject(PreferenceService) protected readonly preferenceService: PreferenceService;
67
+ @inject(ToolbarController) protected readonly toolbarModel: ToolbarController;
68
+ @inject(InMemoryResources) protected readonly inMemoryResources: InMemoryResources;
69
+ protected readonly schemaURI = new URI(toolbarSchemaId);
70
+
71
+ registerSchemas(context: JsonSchemaRegisterContext): void {
72
+ this.inMemoryResources.add(this.schemaURI, JSON.stringify(toolbarConfigurationSchema));
73
+ context.registerSchema({
74
+ fileMatch: ['toolbar.json'],
75
+ url: this.schemaURI.toString(),
76
+ });
77
+ }
78
+
79
+ registerCommands(registry: CommandRegistry): void {
80
+ registry.registerCommand(ToolbarCommands.CUSTOMIZE_TOOLBAR, {
81
+ execute: () => this.model.openOrCreateJSONFile(true),
82
+ });
83
+ registry.registerCommand(ToolbarCommands.RESET_TOOLBAR, {
84
+ execute: () => this.model.clearAll(),
85
+ });
86
+ registry.registerCommand(ToolbarCommands.TOGGLE_TOOLBAR, {
87
+ execute: () => {
88
+ const isVisible = this.preferenceService.get<boolean>(TOOLBAR_ENABLE_PREFERENCE_ID);
89
+ this.preferenceService.set(TOOLBAR_ENABLE_PREFERENCE_ID, !isVisible, PreferenceScope.User);
90
+ },
91
+ });
92
+
93
+ registry.registerCommand(ToolbarCommands.REMOVE_COMMAND_FROM_TOOLBAR, {
94
+ execute: async (_widget, position: ToolbarItemPosition | undefined, id?: string) => position && this.model.removeItem(position, id),
95
+ isVisible: (...args) => this.isToolbarWidget(args[0]),
96
+ });
97
+ registry.registerCommand(ToolbarCommands.INSERT_GROUP_LEFT, {
98
+ execute: async (_widget: Widget, position: ToolbarItemPosition | undefined) => position && this.model.insertGroup(position, 'left'),
99
+ isVisible: (widget: Widget, position: ToolbarItemPosition | undefined) => {
100
+ if (position) {
101
+ const { alignment, groupIndex, itemIndex } = position;
102
+ const owningGroupLength = this.toolbarModel.toolbarItems.items[alignment][groupIndex].length;
103
+ return this.isToolbarWidget(widget) && (owningGroupLength > 1) && (itemIndex > 0);
104
+ }
105
+ return false;
106
+ },
107
+ });
108
+ registry.registerCommand(ToolbarCommands.INSERT_GROUP_RIGHT, {
109
+ execute: async (_widget: Widget, position: ToolbarItemPosition | undefined) => position && this.model.insertGroup(position, 'right'),
110
+ isVisible: (widget: Widget, position: ToolbarItemPosition | undefined) => {
111
+ if (position) {
112
+ const { alignment, groupIndex, itemIndex } = position;
113
+ const owningGroupLength = this.toolbarModel.toolbarItems.items[alignment][groupIndex].length;
114
+ const isNotLastItem = itemIndex < (owningGroupLength - 1);
115
+ return this.isToolbarWidget(widget) && owningGroupLength > 1 && isNotLastItem;
116
+ }
117
+ return false;
118
+ },
119
+ });
120
+ registry.registerCommand(ToolbarCommands.ADD_COMMAND_TO_TOOLBAR, {
121
+ execute: () => this.toolbarCommandPickService.openIconDialog(),
122
+ });
123
+ }
124
+
125
+ protected isToolbarWidget(arg: unknown): boolean {
126
+ return arg instanceof ToolbarImpl;
127
+ }
128
+
129
+ registerKeybindings(keys: KeybindingRegistry): void {
130
+ keys.registerKeybinding({
131
+ command: ToolbarCommands.TOGGLE_TOOLBAR.id,
132
+ keybinding: 'alt+t',
133
+ });
134
+ }
135
+
136
+ registerMenus(registry: MenuModelRegistry): void {
137
+ registry.registerMenuAction(CommonMenus.VIEW_LAYOUT, {
138
+ commandId: ToolbarCommands.TOGGLE_TOOLBAR.id,
139
+ order: 'z',
140
+ });
141
+
142
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_ITEM_CONTEXT_MENU, {
143
+ commandId: ToolbarCommands.ADD_COMMAND_TO_TOOLBAR.id,
144
+ order: 'a',
145
+ });
146
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_ITEM_CONTEXT_MENU, {
147
+ commandId: ToolbarCommands.INSERT_GROUP_LEFT.id,
148
+ order: 'b',
149
+ });
150
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_ITEM_CONTEXT_MENU, {
151
+ commandId: ToolbarCommands.INSERT_GROUP_RIGHT.id,
152
+ order: 'c',
153
+ });
154
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_ITEM_CONTEXT_MENU, {
155
+ commandId: ToolbarCommands.REMOVE_COMMAND_FROM_TOOLBAR.id,
156
+ order: 'd',
157
+ });
158
+
159
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_BACKGROUND_CONTEXT_MENU, {
160
+ commandId: ToolbarCommands.ADD_COMMAND_TO_TOOLBAR.id,
161
+ order: 'a',
162
+ });
163
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_BACKGROUND_CONTEXT_MENU, {
164
+ commandId: ToolbarCommands.CUSTOMIZE_TOOLBAR.id,
165
+ order: 'b',
166
+ });
167
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_BACKGROUND_CONTEXT_MENU, {
168
+ commandId: ToolbarCommands.TOGGLE_TOOLBAR.id,
169
+ order: 'c',
170
+ });
171
+ registry.registerMenuAction(ToolbarMenus.TOOLBAR_BACKGROUND_CONTEXT_MENU, {
172
+ commandId: ToolbarCommands.RESET_TOOLBAR.id,
173
+ order: 'd',
174
+ });
175
+ }
176
+ }
177
+
178
+ export function bindToolbar(bind: interfaces.Bind): void {
179
+ bind(ToolbarFactory).toFactory(({ container }) => (): Toolbar => {
180
+ const child = new Container({ defaultScope: 'Singleton' });
181
+ child.parent = container;
182
+ child.bind(Toolbar).to(ToolbarImpl);
183
+ return child.get(Toolbar);
184
+ });
185
+ bind(ToolbarCommandContribution).toSelf().inSingletonScope();
186
+ bind(CommandContribution).to(ToolbarCommandContribution);
187
+ bind(MenuContribution).toService(ToolbarCommandContribution);
188
+ bind(KeybindingContribution).toService(ToolbarCommandContribution);
189
+ bind(JsonSchemaContribution).toService(ToolbarCommandContribution);
190
+
191
+ bind(ToolbarCommandQuickInputService).toSelf().inSingletonScope();
192
+
193
+ bindToolbarIconDialog(bind);
194
+ bind(ToolbarDefaultsFactory).toConstantValue(ToolbarDefaults);
195
+ bind(ToolbarPreferences).toDynamicValue(({ container }) => {
196
+ const preferences = container.get<PreferenceService>(PreferenceService);
197
+ return createPreferenceProxy(preferences, ToolbarPreferencesSchema);
198
+ }).inSingletonScope();
199
+ bind(PreferenceContribution).toConstantValue({
200
+ schema: ToolbarPreferencesSchema,
201
+ });
202
+
203
+ bind(UserToolbarURI).toConstantValue(USER_TOOLBAR_URI);
204
+
205
+ bind(ToolbarController).toSelf().inSingletonScope();
206
+ bind(ToolbarStorageProvider).toSelf().inSingletonScope();
207
+ bindContributionProvider(bind, ToolbarContribution);
208
+ bind(LateInjector).toFactory(
209
+ <T>(context: interfaces.Context) => (id: interfaces.ServiceIdentifier<T>): T => lateInjector(context.container, id),
210
+ );
211
+ }