From 13ea11723ae5be73cf6fcf6375f5caa0e8d1d7d0 Mon Sep 17 00:00:00 2001 From: Kuchuk Andrey Date: Mon, 10 Apr 2023 17:56:53 +0400 Subject: [PATCH] rename frontend folder --- .husky/pre-commit | 2 +- {new-frontend => frontend}/.env.sample | 0 {new-frontend => frontend}/.eslintrc | 0 frontend/.gitignore | 92 +--- frontend/.nuxtignore | 2 - {new-frontend => frontend}/.prettierignore | 0 {new-frontend => frontend}/.storybook/main.ts | 0 .../.storybook/preview.ts | 0 frontend/Components/Events/Event.vue | 104 ----- .../Components/Events/Inspector/Event.vue | 44 -- .../Events/Inspector/_partials/Cards.vue | 44 -- frontend/Components/Events/Monolog/Event.vue | 52 --- frontend/Components/Events/Profiler/Event.vue | 28 -- .../Events/Profiler/_partials/Cards.vue | 96 ----- frontend/Components/Events/Sentry/Event.vue | 18 - .../Components/Events/Sentry/Show/App.vue | 52 --- .../Events/Sentry/Show/Breadcrumbs.vue | 62 --- .../Components/Events/Sentry/Show/Device.vue | 147 ------- .../Events/Sentry/Show/Exception.vue | 22 - .../Events/Sentry/Show/Exceptions.vue | 18 - frontend/Components/Events/Sentry/Show/OS.vue | 36 -- .../Components/Events/Sentry/Show/Request.vue | 29 -- .../Components/Events/Sentry/Show/Tags.vue | 68 --- .../Components/Events/Sentry/Show/Trace.vue | 46 -- .../Components/Events/Sentry/Show/User.vue | 37 -- .../Events/Sentry/_partials/Exception.vue | 40 -- .../Events/Sentry/_partials/File.vue | 55 --- frontend/Components/Events/Smtp/Event.vue | 19 - frontend/Components/Events/VarDump/Event.vue | 21 - frontend/Components/UI/CodeSnippet.vue | 86 ---- frontend/Components/UI/Collapsed.vue | 33 -- frontend/Components/UI/Dump.vue | 258 ----------- frontend/Components/UI/Host.vue | 35 -- frontend/Components/UI/HtmlPreview.vue | 43 -- frontend/Components/UI/Icons/CopyIcon.vue | 11 - frontend/Components/UI/Icons/DocsIcon.vue | 10 - .../Components/UI/Icons/FullscreenIcon.vue | 9 - frontend/Components/UI/Icons/GithubIcon.vue | 10 - frontend/Components/UI/Icons/HeartBeat.vue | 12 - .../Components/UI/Icons/InspectorIcon.vue | 13 - frontend/Components/UI/Icons/Logo.vue | 14 - frontend/Components/UI/Icons/LogoutIcon.vue | 10 - frontend/Components/UI/Icons/MinusIcon.vue | 10 - .../Components/UI/Icons/NewScreenIcon.vue | 10 - frontend/Components/UI/Icons/PlusIcon.vue | 11 - frontend/Components/UI/Icons/ScreenIcon.vue | 9 - frontend/Components/UI/Icons/SentryIcon.vue | 8 - frontend/Components/UI/Icons/TimesIcon.vue | 10 - frontend/Components/UI/ImageExport.vue | 46 -- frontend/Components/UI/JsonChip.vue | 17 - frontend/Components/UI/Label.vue | 16 - frontend/Components/UI/Tab.vue | 20 - frontend/Components/UI/Table.vue | 11 - frontend/Components/UI/TableRow.vue | 16 - frontend/Components/UI/Tabs.vue | 65 --- frontend/README.md | 22 +- frontend/Utils/LazyComponent.js | 48 --- frontend/Utils/converters.js | 40 -- frontend/Utils/download.js | 153 ------- frontend/Utils/dumper.js | 401 ------------------ frontend/Websocket/Channel.js | 108 ----- frontend/Websocket/Client.js | 69 --- frontend/api.js | 19 - {new-frontend => frontend}/app.vue | 0 frontend/app/Event/Event.js | 73 ---- frontend/app/Event/Factory.js | 61 --- frontend/app/Event/Inspector.js | 74 ---- frontend/app/Event/Monolog.js | 48 --- frontend/app/Event/Profiler.js | 38 -- frontend/app/Event/Ray.js | 139 ------ frontend/app/Event/Sentry.js | 124 ------ frontend/app/Event/Smtp.js | 15 - frontend/app/Event/VarDump.js | 23 - frontend/app/Profiler/DigraphBuilder.js | 142 ------- frontend/app/Profiler/FlamegraphBuilder.js | 57 --- frontend/assets/css/tailwind.css | 3 - {new-frontend => frontend}/assets/index.css | 0 {new-frontend => frontend}/assets/index.ts | 0 {new-frontend => frontend}/assets/mixins.scss | 0 frontend/assets/scss/app.scss | 38 -- frontend/assets/scss/components/buttons.scss | 7 - .../assets/scss/components/collapsed.scss | 15 - .../assets/scss/components/event-table.scss | 19 - .../assets/scss/components/html-preview.scss | 92 ---- frontend/assets/scss/components/label.scss | 74 ---- frontend/assets/scss/components/tab.scss | 17 - frontend/assets/scss/layout.scss | 1 - frontend/assets/scss/layout/main-layout.scss | 19 - frontend/assets/scss/pages.scss | 50 --- frontend/assets/scss/pages/auth.scss | 58 --- frontend/assets/scss/pages/index.scss | 80 ---- .../assets/scss/pages/index/event-ray.scss | 106 ----- .../assets/scss/pages/index/event-sentry.scss | 64 --- .../assets/scss/pages/index/event-smtp.scss | 31 -- frontend/assets/scss/pages/sentry.scss | 35 -- frontend/assets/scss/pages/settings.scss | 14 - frontend/assets/scss/pages/smtp.scss | 33 -- frontend/assets/scss/vendor.scss | 3 - .../assets/symfony-var-dump.css | 0 .../assets/tailwind.css | 0 {new-frontend => frontend}/assets/vendor.css | 0 .../assets/vue3-tabs-component.scss | 0 .../CodeSnippet/CodeSnippet.stories.ts | 0 .../components/CodeSnippet/CodeSnippet.vue | 0 .../EventTable/EventTable.stories.ts | 0 .../components/EventTable/EventTable.vue | 0 .../EventTableRow/EventTableRow.stories.ts | 0 .../EventTableRow/EventTableRow.vue | 0 .../components/IconSvg/IconSvg.stories.ts | 0 .../components/IconSvg/IconSvg.vue | 52 ++- .../components/IconSvg/connected.svg | 0 .../components/IconSvg/copy.svg | 0 .../components/IconSvg/dd.svg | 0 .../components/IconSvg/desktop-device.svg | 0 .../components/IconSvg/disconnected.svg | 0 .../components/IconSvg/docs.svg | 0 .../components/IconSvg/events.svg | 0 .../components/IconSvg/fullscreen.svg | 0 .../components/IconSvg/github.svg | 0 .../components/IconSvg/heartBeat.svg | 0 .../components/IconSvg/host.svg | 0 .../components/IconSvg/inspector.svg | 0 .../components/IconSvg/logo.svg | 0 .../components/IconSvg/logout.svg | 0 .../components/IconSvg/minus.svg | 0 .../components/IconSvg/mobile-device.svg | 0 .../components/IconSvg/moon.svg | 0 .../components/IconSvg/newScreen.svg | 0 .../components/IconSvg/plus.svg | 0 .../components/IconSvg/profiler.svg | 0 .../components/IconSvg/screen.svg | 0 .../components/IconSvg/sentry.svg | 0 .../components/IconSvg/settings.svg | 0 .../components/IconSvg/smtp.svg | 0 .../components/IconSvg/sun.svg | 0 .../components/IconSvg/tablet-device.svg | 0 .../components/IconSvg/times.svg | 0 .../components/IconSvg/trash-bin.svg | 0 .../InspectorPage/InspectorPage.stories.ts | 0 .../InspectorPage/InspectorPage.vue | 0 .../InspectorPageTimeline.stories.ts | 0 .../InspectorPageTimeline.vue | 0 .../InspectorPreview.stories.ts | 0 .../InspectorPreview/InspectorPreview.vue | 0 .../InspectorStatBoard.stories.ts | 0 .../InspectorStatBoard/InspectorStatBoard.vue | 0 .../LayoutSidebar/LayoutSidebar.stories.ts | 0 .../LayoutSidebar/LayoutSidebar.vue | 0 .../MonologPreview/MonologPreview.stories.ts | 0 .../MonologPreview/MonologPreview.vue | 0 .../PageHeader/PageHeader.stories.ts | 0 .../components/PageHeader/PageHeader.vue | 0 .../PagePlaceholder.stories.ts | 0 .../PagePlaceholder/PagePlaceholder.vue | 10 +- .../PreviewCard/PreviewCard.stories.ts | 0 .../components/PreviewCard/PreviewCard.vue | 0 .../PreviewCardFooter.stories.ts | 0 .../PreviewCardFooter/PreviewCardFooter.vue | 2 +- .../PreviewCardHeader.stories.ts | 0 .../PreviewCardHeader/PreviewCardHeader.vue | 0 .../PreviewEventMapper.stories.ts | 0 .../PreviewEventMapper/PreviewEventMapper.vue | 0 .../PreviewFallback.stories.ts | 0 .../PreviewFallback/PreviewFallback.vue | 0 .../ProfilePageFlamegraph.stories.ts | 0 .../ProfilePageFlamegraph.vue | 0 .../ProfilerPage/ProfilerPage.stories.ts | 0 .../components/ProfilerPage/ProfilerPage.vue | 0 .../ProfilerPageCallGraph.stories.ts | 0 .../ProfilerPageCallGraph.vue | 0 .../ProfilerPageCallStack.stories.ts | 0 .../ProfilerPageCallStack.vue | 0 .../ProfilerPageCallStackRow.stories.ts | 0 .../ProfilerPageCallStackRow.vue | 0 .../ProfilerPreview.stories.ts | 0 .../ProfilerPreview/ProfilerPreview.vue | 0 .../SentryException.stories.ts | 0 .../SentryException/SentryException.vue | 0 .../SentryExceptionFrame.stories.ts | 0 .../SentryExceptionFrame.vue | 0 .../SentryPage/SentryPage.stories.ts | 0 .../components/SentryPage/SentryPage.vue | 0 .../SentryPageApp/SentryPageApp.stories.ts | 0 .../SentryPageApp/SentryPageApp.vue | 0 .../SentryPageBreadcrumbs.stories.ts | 0 .../SentryPageBreadcrumbs.vue | 0 .../SentryPageDevice.stories.ts | 0 .../SentryPageDevice/SentryPageDevice.vue | 0 .../SentryPageRequest.stories.ts | 0 .../SentryPageRequest/SentryPageRequest.vue | 0 .../SentryPageTags/SentryPageTags.stories.ts | 0 .../SentryPageTags/SentryPageTags.vue | 0 .../SentryPreview/SentryPreview.stories.ts | 0 .../SentryPreview/SentryPreview.vue | 0 .../components/SmtpPage/SmtpPage.stories.ts | 0 .../components/SmtpPage/SmtpPage.vue | 0 .../SmtpPageAddresses.stories.ts | 0 .../SmtpPageAddresses/SmtpPageAddresses.vue | 0 .../SmtpPagePreview.stories.ts | 0 .../SmtpPagePreview/SmtpPagePreview.vue | 0 .../SmtpPreview/SmtpPreview.stories.ts | 0 .../components/SmtpPreview/SmtpPreview.vue | 0 .../components/StatBoard/StatBoard.stories.ts | 0 .../components/StatBoard/StatBoard.vue | 0 .../VarDumpPreview/VarDumpPreview.stories.ts | 0 .../VarDumpPreview/VarDumpPreview.vue | 0 .../config/constants.ts | 0 {new-frontend => frontend}/config/types.ts | 0 {new-frontend => frontend}/error.vue | 0 frontend/layouts/Sidebar/Left.vue | 117 ----- frontend/layouts/Sidebar/Logout.vue | 42 -- frontend/layouts/Sidebar/WsConnectionIcon.vue | 33 -- frontend/layouts/default.vue | 74 +++- frontend/layouts/smtp.vue | 68 --- frontend/mixins/EventsPage.vue | 44 -- .../mocks/inspector.json | 25 +- {new-frontend => frontend}/mocks/mail.ts | 0 {new-frontend => frontend}/mocks/monolog.json | 0 .../mocks/profiler.json | 2 +- .../mocks/sentry-common.json | 107 ++--- .../mocks/sentry-laravel.json | 88 +--- .../mocks/sentry-spiral.json | 252 ++--------- .../mocks/smtp-order.json | 2 +- .../mocks/smtp-welcome.json | 2 +- .../mocks/var-dump-array.json | 2 +- .../mocks/var-dump-number.json | 2 +- .../mocks/var-dump-object.json | 2 +- .../mocks/var-dump-string.json | 2 +- frontend/nuxt.config.js | 65 --- {new-frontend => frontend}/nuxt.config.ts | 0 frontend/package.json | 97 +++-- frontend/pages/_partials/Fiilters.vue | 46 -- frontend/pages/_partials/Tips.vue | 99 ----- .../pages/_partials/WsConnectionStatus.vue | 31 -- frontend/pages/index.vue | 140 +++--- .../pages/inspector/[id].vue | 0 .../pages/inspector/_partials/Request.vue | 33 -- .../pages/inspector/_partials/Timeline.vue | 93 ---- frontend/pages/inspector/_partials/Url.vue | 20 - frontend/pages/inspector/_uuid.vue | 66 --- frontend/pages/inspector/index.vue | 44 +- .../pages/profiler/[id].vue | 0 .../pages/profiler/_partials/CallInfo.vue | 54 --- .../pages/profiler/_partials/CallsItem.vue | 78 ---- .../pages/profiler/_partials/CallsList.vue | 53 --- .../pages/profiler/_partials/Flamegraph.vue | 114 ----- frontend/pages/profiler/_partials/Graph.vue | 196 --------- frontend/pages/profiler/_uuid.vue | 124 ------ frontend/pages/profiler/index.vue | 40 +- .../pages/sentry/[id].vue | 0 frontend/pages/sentry/_uuid.vue | 83 ---- frontend/pages/sentry/index.vue | 39 +- frontend/pages/settings.vue | 157 +++++-- .../pages/smtp/[id].vue | 0 frontend/pages/smtp/_partials/Addresses.vue | 15 - frontend/pages/smtp/_partials/NavItem.vue | 40 -- frontend/pages/smtp/_uuid.vue | 165 ------- frontend/pages/smtp/index.vue | 57 +-- frontend/plugins/api.js | 17 - frontend/plugins/axios.js | 20 - frontend/plugins/bootstrap.js | 7 - frontend/plugins/cenrifugo.js | 31 -- .../plugins/events.client.ts | 0 frontend/plugins/logger.js | 57 --- .../plugins/vendors.client.ts | 0 {new-frontend => frontend}/postcss.config.js | 0 frontend/store/events.js | 103 ----- frontend/store/index.js | 0 frontend/store/theme.js | 39 -- frontend/store/ws.js | 18 - {new-frontend => frontend}/stores/events.ts | 0 {new-frontend => frontend}/stores/theme.ts | 0 frontend/tailwind.config.js | 58 +-- {new-frontend => frontend}/tsconfig.json | 0 .../utils/digraph-builder.ts | 0 .../utils/events-transport.ts | 0 .../utils/flamegraph-builder.ts | 0 {new-frontend => frontend}/utils/formats.ts | 0 .../utils/normalize-event.ts | 0 {new-frontend => frontend}/vendor/dumper.js | 0 new-frontend/.editorconfig | 13 - new-frontend/.gitignore | 8 - new-frontend/README.md | 81 ---- new-frontend/layouts/default.vue | 77 ---- new-frontend/package.json | 77 ---- new-frontend/pages/index.vue | 80 ---- new-frontend/pages/inspector/index.vue | 36 -- new-frontend/pages/profiler/index.vue | 32 -- new-frontend/pages/sentry/index.vue | 31 -- new-frontend/pages/settings.vue | 119 ------ new-frontend/pages/smtp/index.vue | 36 -- .../static/favicon/android-chrome-192x192.png | Bin 16881 -> 0 bytes .../static/favicon/android-chrome-512x512.png | Bin 52877 -> 0 bytes .../static/favicon/apple-touch-icon.png | Bin 15363 -> 0 bytes new-frontend/static/favicon/browserconfig.xml | 9 - new-frontend/static/favicon/favicon-16x16.png | Bin 1400 -> 0 bytes new-frontend/static/favicon/favicon-32x32.png | Bin 2254 -> 0 bytes new-frontend/static/favicon/favicon.ico | Bin 15086 -> 0 bytes .../static/favicon/mstile-144x144.png | Bin 11872 -> 0 bytes .../static/favicon/mstile-150x150.png | Bin 10862 -> 0 bytes .../static/favicon/mstile-310x150.png | Bin 11556 -> 0 bytes .../static/favicon/mstile-310x310.png | Bin 26832 -> 0 bytes new-frontend/static/favicon/mstile-70x70.png | Bin 8007 -> 0 bytes .../static/favicon/safari-pinned-tab.svg | 33 -- new-frontend/static/favicon/site.webmanifest | 19 - new-frontend/static/robots.txt | 2 - new-frontend/tailwind.config.js | 50 --- package.json | 6 +- 308 files changed, 611 insertions(+), 7665 deletions(-) rename {new-frontend => frontend}/.env.sample (100%) rename {new-frontend => frontend}/.eslintrc (100%) delete mode 100644 frontend/.nuxtignore rename {new-frontend => frontend}/.prettierignore (100%) rename {new-frontend => frontend}/.storybook/main.ts (100%) rename {new-frontend => frontend}/.storybook/preview.ts (100%) delete mode 100644 frontend/Components/Events/Event.vue delete mode 100644 frontend/Components/Events/Inspector/Event.vue delete mode 100644 frontend/Components/Events/Inspector/_partials/Cards.vue delete mode 100644 frontend/Components/Events/Monolog/Event.vue delete mode 100644 frontend/Components/Events/Profiler/Event.vue delete mode 100644 frontend/Components/Events/Profiler/_partials/Cards.vue delete mode 100644 frontend/Components/Events/Sentry/Event.vue delete mode 100644 frontend/Components/Events/Sentry/Show/App.vue delete mode 100644 frontend/Components/Events/Sentry/Show/Breadcrumbs.vue delete mode 100644 frontend/Components/Events/Sentry/Show/Device.vue delete mode 100644 frontend/Components/Events/Sentry/Show/Exception.vue delete mode 100644 frontend/Components/Events/Sentry/Show/Exceptions.vue delete mode 100644 frontend/Components/Events/Sentry/Show/OS.vue delete mode 100644 frontend/Components/Events/Sentry/Show/Request.vue delete mode 100644 frontend/Components/Events/Sentry/Show/Tags.vue delete mode 100644 frontend/Components/Events/Sentry/Show/Trace.vue delete mode 100644 frontend/Components/Events/Sentry/Show/User.vue delete mode 100644 frontend/Components/Events/Sentry/_partials/Exception.vue delete mode 100644 frontend/Components/Events/Sentry/_partials/File.vue delete mode 100644 frontend/Components/Events/Smtp/Event.vue delete mode 100644 frontend/Components/Events/VarDump/Event.vue delete mode 100644 frontend/Components/UI/CodeSnippet.vue delete mode 100644 frontend/Components/UI/Collapsed.vue delete mode 100644 frontend/Components/UI/Dump.vue delete mode 100644 frontend/Components/UI/Host.vue delete mode 100644 frontend/Components/UI/HtmlPreview.vue delete mode 100644 frontend/Components/UI/Icons/CopyIcon.vue delete mode 100644 frontend/Components/UI/Icons/DocsIcon.vue delete mode 100644 frontend/Components/UI/Icons/FullscreenIcon.vue delete mode 100644 frontend/Components/UI/Icons/GithubIcon.vue delete mode 100644 frontend/Components/UI/Icons/HeartBeat.vue delete mode 100644 frontend/Components/UI/Icons/InspectorIcon.vue delete mode 100644 frontend/Components/UI/Icons/Logo.vue delete mode 100644 frontend/Components/UI/Icons/LogoutIcon.vue delete mode 100644 frontend/Components/UI/Icons/MinusIcon.vue delete mode 100644 frontend/Components/UI/Icons/NewScreenIcon.vue delete mode 100644 frontend/Components/UI/Icons/PlusIcon.vue delete mode 100644 frontend/Components/UI/Icons/ScreenIcon.vue delete mode 100644 frontend/Components/UI/Icons/SentryIcon.vue delete mode 100644 frontend/Components/UI/Icons/TimesIcon.vue delete mode 100644 frontend/Components/UI/ImageExport.vue delete mode 100644 frontend/Components/UI/JsonChip.vue delete mode 100644 frontend/Components/UI/Label.vue delete mode 100644 frontend/Components/UI/Tab.vue delete mode 100644 frontend/Components/UI/Table.vue delete mode 100644 frontend/Components/UI/TableRow.vue delete mode 100644 frontend/Components/UI/Tabs.vue delete mode 100644 frontend/Utils/LazyComponent.js delete mode 100644 frontend/Utils/converters.js delete mode 100644 frontend/Utils/download.js delete mode 100644 frontend/Utils/dumper.js delete mode 100644 frontend/Websocket/Channel.js delete mode 100644 frontend/Websocket/Client.js delete mode 100644 frontend/api.js rename {new-frontend => frontend}/app.vue (100%) delete mode 100644 frontend/app/Event/Event.js delete mode 100644 frontend/app/Event/Factory.js delete mode 100644 frontend/app/Event/Inspector.js delete mode 100644 frontend/app/Event/Monolog.js delete mode 100644 frontend/app/Event/Profiler.js delete mode 100644 frontend/app/Event/Ray.js delete mode 100644 frontend/app/Event/Sentry.js delete mode 100644 frontend/app/Event/Smtp.js delete mode 100644 frontend/app/Event/VarDump.js delete mode 100644 frontend/app/Profiler/DigraphBuilder.js delete mode 100644 frontend/app/Profiler/FlamegraphBuilder.js delete mode 100644 frontend/assets/css/tailwind.css rename {new-frontend => frontend}/assets/index.css (100%) rename {new-frontend => frontend}/assets/index.ts (100%) rename {new-frontend => frontend}/assets/mixins.scss (100%) delete mode 100644 frontend/assets/scss/app.scss delete mode 100644 frontend/assets/scss/components/buttons.scss delete mode 100644 frontend/assets/scss/components/collapsed.scss delete mode 100644 frontend/assets/scss/components/event-table.scss delete mode 100644 frontend/assets/scss/components/html-preview.scss delete mode 100644 frontend/assets/scss/components/label.scss delete mode 100644 frontend/assets/scss/components/tab.scss delete mode 100644 frontend/assets/scss/layout.scss delete mode 100644 frontend/assets/scss/layout/main-layout.scss delete mode 100644 frontend/assets/scss/pages.scss delete mode 100644 frontend/assets/scss/pages/auth.scss delete mode 100644 frontend/assets/scss/pages/index.scss delete mode 100644 frontend/assets/scss/pages/index/event-ray.scss delete mode 100644 frontend/assets/scss/pages/index/event-sentry.scss delete mode 100644 frontend/assets/scss/pages/index/event-smtp.scss delete mode 100644 frontend/assets/scss/pages/sentry.scss delete mode 100644 frontend/assets/scss/pages/settings.scss delete mode 100644 frontend/assets/scss/pages/smtp.scss delete mode 100644 frontend/assets/scss/vendor.scss rename {new-frontend => frontend}/assets/symfony-var-dump.css (100%) rename {new-frontend => frontend}/assets/tailwind.css (100%) rename {new-frontend => frontend}/assets/vendor.css (100%) rename {new-frontend => frontend}/assets/vue3-tabs-component.scss (100%) rename {new-frontend => frontend}/components/CodeSnippet/CodeSnippet.stories.ts (100%) rename {new-frontend => frontend}/components/CodeSnippet/CodeSnippet.vue (100%) rename {new-frontend => frontend}/components/EventTable/EventTable.stories.ts (100%) rename {new-frontend => frontend}/components/EventTable/EventTable.vue (100%) rename {new-frontend => frontend}/components/EventTableRow/EventTableRow.stories.ts (100%) rename {new-frontend => frontend}/components/EventTableRow/EventTableRow.vue (100%) rename {new-frontend => frontend}/components/IconSvg/IconSvg.stories.ts (100%) rename {new-frontend => frontend}/components/IconSvg/IconSvg.vue (89%) rename {new-frontend => frontend}/components/IconSvg/connected.svg (100%) rename {new-frontend => frontend}/components/IconSvg/copy.svg (100%) rename {new-frontend => frontend}/components/IconSvg/dd.svg (100%) rename {new-frontend => frontend}/components/IconSvg/desktop-device.svg (100%) rename {new-frontend => frontend}/components/IconSvg/disconnected.svg (100%) rename {new-frontend => frontend}/components/IconSvg/docs.svg (100%) rename {new-frontend => frontend}/components/IconSvg/events.svg (100%) rename {new-frontend => frontend}/components/IconSvg/fullscreen.svg (100%) rename {new-frontend => frontend}/components/IconSvg/github.svg (100%) rename {new-frontend => frontend}/components/IconSvg/heartBeat.svg (100%) rename {new-frontend => frontend}/components/IconSvg/host.svg (100%) rename {new-frontend => frontend}/components/IconSvg/inspector.svg (100%) rename {new-frontend => frontend}/components/IconSvg/logo.svg (100%) rename {new-frontend => frontend}/components/IconSvg/logout.svg (100%) rename {new-frontend => frontend}/components/IconSvg/minus.svg (100%) rename {new-frontend => frontend}/components/IconSvg/mobile-device.svg (100%) rename {new-frontend => frontend}/components/IconSvg/moon.svg (100%) rename {new-frontend => frontend}/components/IconSvg/newScreen.svg (100%) rename {new-frontend => frontend}/components/IconSvg/plus.svg (100%) rename {new-frontend => frontend}/components/IconSvg/profiler.svg (100%) rename {new-frontend => frontend}/components/IconSvg/screen.svg (100%) rename {new-frontend => frontend}/components/IconSvg/sentry.svg (100%) rename {new-frontend => frontend}/components/IconSvg/settings.svg (100%) rename {new-frontend => frontend}/components/IconSvg/smtp.svg (100%) rename {new-frontend => frontend}/components/IconSvg/sun.svg (100%) rename {new-frontend => frontend}/components/IconSvg/tablet-device.svg (100%) rename {new-frontend => frontend}/components/IconSvg/times.svg (100%) rename {new-frontend => frontend}/components/IconSvg/trash-bin.svg (100%) rename {new-frontend => frontend}/components/InspectorPage/InspectorPage.stories.ts (100%) rename {new-frontend => frontend}/components/InspectorPage/InspectorPage.vue (100%) rename {new-frontend => frontend}/components/InspectorPageTimeline/InspectorPageTimeline.stories.ts (100%) rename {new-frontend => frontend}/components/InspectorPageTimeline/InspectorPageTimeline.vue (100%) rename {new-frontend => frontend}/components/InspectorPreview/InspectorPreview.stories.ts (100%) rename {new-frontend => frontend}/components/InspectorPreview/InspectorPreview.vue (100%) rename {new-frontend => frontend}/components/InspectorStatBoard/InspectorStatBoard.stories.ts (100%) rename {new-frontend => frontend}/components/InspectorStatBoard/InspectorStatBoard.vue (100%) rename {new-frontend => frontend}/components/LayoutSidebar/LayoutSidebar.stories.ts (100%) rename {new-frontend => frontend}/components/LayoutSidebar/LayoutSidebar.vue (100%) rename {new-frontend => frontend}/components/MonologPreview/MonologPreview.stories.ts (100%) rename {new-frontend => frontend}/components/MonologPreview/MonologPreview.vue (100%) rename {new-frontend => frontend}/components/PageHeader/PageHeader.stories.ts (100%) rename {new-frontend => frontend}/components/PageHeader/PageHeader.vue (100%) rename {new-frontend => frontend}/components/PagePlaceholder/PagePlaceholder.stories.ts (100%) rename {new-frontend => frontend}/components/PagePlaceholder/PagePlaceholder.vue (96%) rename {new-frontend => frontend}/components/PreviewCard/PreviewCard.stories.ts (100%) rename {new-frontend => frontend}/components/PreviewCard/PreviewCard.vue (100%) rename {new-frontend => frontend}/components/PreviewCardFooter/PreviewCardFooter.stories.ts (100%) rename {new-frontend => frontend}/components/PreviewCardFooter/PreviewCardFooter.vue (95%) rename {new-frontend => frontend}/components/PreviewCardHeader/PreviewCardHeader.stories.ts (100%) rename {new-frontend => frontend}/components/PreviewCardHeader/PreviewCardHeader.vue (100%) rename {new-frontend => frontend}/components/PreviewEventMapper/PreviewEventMapper.stories.ts (100%) rename {new-frontend => frontend}/components/PreviewEventMapper/PreviewEventMapper.vue (100%) rename {new-frontend => frontend}/components/PreviewFallback/PreviewFallback.stories.ts (100%) rename {new-frontend => frontend}/components/PreviewFallback/PreviewFallback.vue (100%) rename {new-frontend => frontend}/components/ProfilePageFlamegraph/ProfilePageFlamegraph.stories.ts (100%) rename {new-frontend => frontend}/components/ProfilePageFlamegraph/ProfilePageFlamegraph.vue (100%) rename {new-frontend => frontend}/components/ProfilerPage/ProfilerPage.stories.ts (100%) rename {new-frontend => frontend}/components/ProfilerPage/ProfilerPage.vue (100%) rename {new-frontend => frontend}/components/ProfilerPageCallGraph/ProfilerPageCallGraph.stories.ts (100%) rename {new-frontend => frontend}/components/ProfilerPageCallGraph/ProfilerPageCallGraph.vue (100%) rename {new-frontend => frontend}/components/ProfilerPageCallStack/ProfilerPageCallStack.stories.ts (100%) rename {new-frontend => frontend}/components/ProfilerPageCallStack/ProfilerPageCallStack.vue (100%) rename {new-frontend => frontend}/components/ProfilerPageCallStackRow/ProfilerPageCallStackRow.stories.ts (100%) rename {new-frontend => frontend}/components/ProfilerPageCallStackRow/ProfilerPageCallStackRow.vue (100%) rename {new-frontend => frontend}/components/ProfilerPreview/ProfilerPreview.stories.ts (100%) rename {new-frontend => frontend}/components/ProfilerPreview/ProfilerPreview.vue (100%) rename {new-frontend => frontend}/components/SentryException/SentryException.stories.ts (100%) rename {new-frontend => frontend}/components/SentryException/SentryException.vue (100%) rename {new-frontend => frontend}/components/SentryExceptionFrame/SentryExceptionFrame.stories.ts (100%) rename {new-frontend => frontend}/components/SentryExceptionFrame/SentryExceptionFrame.vue (100%) rename {new-frontend => frontend}/components/SentryPage/SentryPage.stories.ts (100%) rename {new-frontend => frontend}/components/SentryPage/SentryPage.vue (100%) rename {new-frontend => frontend}/components/SentryPageApp/SentryPageApp.stories.ts (100%) rename {new-frontend => frontend}/components/SentryPageApp/SentryPageApp.vue (100%) rename {new-frontend => frontend}/components/SentryPageBreadcrumbs/SentryPageBreadcrumbs.stories.ts (100%) rename {new-frontend => frontend}/components/SentryPageBreadcrumbs/SentryPageBreadcrumbs.vue (100%) rename {new-frontend => frontend}/components/SentryPageDevice/SentryPageDevice.stories.ts (100%) rename {new-frontend => frontend}/components/SentryPageDevice/SentryPageDevice.vue (100%) rename {new-frontend => frontend}/components/SentryPageRequest/SentryPageRequest.stories.ts (100%) rename {new-frontend => frontend}/components/SentryPageRequest/SentryPageRequest.vue (100%) rename {new-frontend => frontend}/components/SentryPageTags/SentryPageTags.stories.ts (100%) rename {new-frontend => frontend}/components/SentryPageTags/SentryPageTags.vue (100%) rename {new-frontend => frontend}/components/SentryPreview/SentryPreview.stories.ts (100%) rename {new-frontend => frontend}/components/SentryPreview/SentryPreview.vue (100%) rename {new-frontend => frontend}/components/SmtpPage/SmtpPage.stories.ts (100%) rename {new-frontend => frontend}/components/SmtpPage/SmtpPage.vue (100%) rename {new-frontend => frontend}/components/SmtpPageAddresses/SmtpPageAddresses.stories.ts (100%) rename {new-frontend => frontend}/components/SmtpPageAddresses/SmtpPageAddresses.vue (100%) rename {new-frontend => frontend}/components/SmtpPagePreview/SmtpPagePreview.stories.ts (100%) rename {new-frontend => frontend}/components/SmtpPagePreview/SmtpPagePreview.vue (100%) rename {new-frontend => frontend}/components/SmtpPreview/SmtpPreview.stories.ts (100%) rename {new-frontend => frontend}/components/SmtpPreview/SmtpPreview.vue (100%) rename {new-frontend => frontend}/components/StatBoard/StatBoard.stories.ts (100%) rename {new-frontend => frontend}/components/StatBoard/StatBoard.vue (100%) rename {new-frontend => frontend}/components/VarDumpPreview/VarDumpPreview.stories.ts (100%) rename {new-frontend => frontend}/components/VarDumpPreview/VarDumpPreview.vue (100%) rename {new-frontend => frontend}/config/constants.ts (100%) rename {new-frontend => frontend}/config/types.ts (100%) rename {new-frontend => frontend}/error.vue (100%) delete mode 100644 frontend/layouts/Sidebar/Left.vue delete mode 100644 frontend/layouts/Sidebar/Logout.vue delete mode 100644 frontend/layouts/Sidebar/WsConnectionIcon.vue delete mode 100644 frontend/layouts/smtp.vue delete mode 100644 frontend/mixins/EventsPage.vue rename {new-frontend => frontend}/mocks/inspector.json (98%) rename {new-frontend => frontend}/mocks/mail.ts (100%) rename {new-frontend => frontend}/mocks/monolog.json (100%) rename {new-frontend => frontend}/mocks/profiler.json (99%) rename {new-frontend => frontend}/mocks/sentry-common.json (96%) rename {new-frontend => frontend}/mocks/sentry-laravel.json (98%) rename {new-frontend => frontend}/mocks/sentry-spiral.json (96%) rename {new-frontend => frontend}/mocks/smtp-order.json (99%) rename {new-frontend => frontend}/mocks/smtp-welcome.json (99%) rename {new-frontend => frontend}/mocks/var-dump-array.json (99%) rename {new-frontend => frontend}/mocks/var-dump-number.json (99%) rename {new-frontend => frontend}/mocks/var-dump-object.json (99%) rename {new-frontend => frontend}/mocks/var-dump-string.json (99%) delete mode 100644 frontend/nuxt.config.js rename {new-frontend => frontend}/nuxt.config.ts (100%) delete mode 100644 frontend/pages/_partials/Fiilters.vue delete mode 100644 frontend/pages/_partials/Tips.vue delete mode 100644 frontend/pages/_partials/WsConnectionStatus.vue rename {new-frontend => frontend}/pages/inspector/[id].vue (100%) delete mode 100644 frontend/pages/inspector/_partials/Request.vue delete mode 100644 frontend/pages/inspector/_partials/Timeline.vue delete mode 100644 frontend/pages/inspector/_partials/Url.vue delete mode 100644 frontend/pages/inspector/_uuid.vue rename {new-frontend => frontend}/pages/profiler/[id].vue (100%) delete mode 100644 frontend/pages/profiler/_partials/CallInfo.vue delete mode 100644 frontend/pages/profiler/_partials/CallsItem.vue delete mode 100644 frontend/pages/profiler/_partials/CallsList.vue delete mode 100644 frontend/pages/profiler/_partials/Flamegraph.vue delete mode 100644 frontend/pages/profiler/_partials/Graph.vue delete mode 100644 frontend/pages/profiler/_uuid.vue rename {new-frontend => frontend}/pages/sentry/[id].vue (100%) delete mode 100644 frontend/pages/sentry/_uuid.vue rename {new-frontend => frontend}/pages/smtp/[id].vue (100%) delete mode 100644 frontend/pages/smtp/_partials/Addresses.vue delete mode 100644 frontend/pages/smtp/_partials/NavItem.vue delete mode 100644 frontend/pages/smtp/_uuid.vue delete mode 100644 frontend/plugins/api.js delete mode 100644 frontend/plugins/axios.js delete mode 100644 frontend/plugins/bootstrap.js delete mode 100644 frontend/plugins/cenrifugo.js rename {new-frontend => frontend}/plugins/events.client.ts (100%) delete mode 100644 frontend/plugins/logger.js rename {new-frontend => frontend}/plugins/vendors.client.ts (100%) rename {new-frontend => frontend}/postcss.config.js (100%) delete mode 100644 frontend/store/events.js delete mode 100644 frontend/store/index.js delete mode 100644 frontend/store/theme.js delete mode 100644 frontend/store/ws.js rename {new-frontend => frontend}/stores/events.ts (100%) rename {new-frontend => frontend}/stores/theme.ts (100%) rename {new-frontend => frontend}/tsconfig.json (100%) rename {new-frontend => frontend}/utils/digraph-builder.ts (100%) rename {new-frontend => frontend}/utils/events-transport.ts (100%) rename {new-frontend => frontend}/utils/flamegraph-builder.ts (100%) rename {new-frontend => frontend}/utils/formats.ts (100%) rename {new-frontend => frontend}/utils/normalize-event.ts (100%) rename {new-frontend => frontend}/vendor/dumper.js (100%) delete mode 100644 new-frontend/.editorconfig delete mode 100644 new-frontend/.gitignore delete mode 100644 new-frontend/README.md delete mode 100644 new-frontend/layouts/default.vue delete mode 100644 new-frontend/package.json delete mode 100644 new-frontend/pages/index.vue delete mode 100644 new-frontend/pages/inspector/index.vue delete mode 100644 new-frontend/pages/profiler/index.vue delete mode 100644 new-frontend/pages/sentry/index.vue delete mode 100644 new-frontend/pages/settings.vue delete mode 100644 new-frontend/pages/smtp/index.vue delete mode 100644 new-frontend/static/favicon/android-chrome-192x192.png delete mode 100644 new-frontend/static/favicon/android-chrome-512x512.png delete mode 100644 new-frontend/static/favicon/apple-touch-icon.png delete mode 100644 new-frontend/static/favicon/browserconfig.xml delete mode 100644 new-frontend/static/favicon/favicon-16x16.png delete mode 100644 new-frontend/static/favicon/favicon-32x32.png delete mode 100644 new-frontend/static/favicon/favicon.ico delete mode 100644 new-frontend/static/favicon/mstile-144x144.png delete mode 100644 new-frontend/static/favicon/mstile-150x150.png delete mode 100644 new-frontend/static/favicon/mstile-310x150.png delete mode 100644 new-frontend/static/favicon/mstile-310x310.png delete mode 100644 new-frontend/static/favicon/mstile-70x70.png delete mode 100644 new-frontend/static/favicon/safari-pinned-tab.svg delete mode 100644 new-frontend/static/favicon/site.webmanifest delete mode 100644 new-frontend/static/robots.txt delete mode 100644 new-frontend/tailwind.config.js diff --git a/.husky/pre-commit b/.husky/pre-commit index 0eac90a3..103e37a5 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,5 +1,5 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -cd new-frontend +cd frontend yarn lint-staged diff --git a/new-frontend/.env.sample b/frontend/.env.sample similarity index 100% rename from new-frontend/.env.sample rename to frontend/.env.sample diff --git a/new-frontend/.eslintrc b/frontend/.eslintrc similarity index 100% rename from new-frontend/.eslintrc rename to frontend/.eslintrc diff --git a/frontend/.gitignore b/frontend/.gitignore index e8f682ba..03a5024d 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -1,90 +1,8 @@ -# Created by .ignore support plugin (hsz.mobi) -### Node template -# Logs -/logs +node_modules *.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# next.js build output -.next - -# nuxt.js build output .nuxt - -# Nuxt generate -dist - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless - -# IDE / Editor -.idea - -# Service worker -sw.* - -# macOS +nuxt.d.ts +.output .DS_Store - -# Vim swap files -*.swp +package-lock.json +dist diff --git a/frontend/.nuxtignore b/frontend/.nuxtignore deleted file mode 100644 index 4a193052..00000000 --- a/frontend/.nuxtignore +++ /dev/null @@ -1,2 +0,0 @@ -# Ignore page inside _partials folder -pages/**/_partials/*.vue diff --git a/new-frontend/.prettierignore b/frontend/.prettierignore similarity index 100% rename from new-frontend/.prettierignore rename to frontend/.prettierignore diff --git a/new-frontend/.storybook/main.ts b/frontend/.storybook/main.ts similarity index 100% rename from new-frontend/.storybook/main.ts rename to frontend/.storybook/main.ts diff --git a/new-frontend/.storybook/preview.ts b/frontend/.storybook/preview.ts similarity index 100% rename from new-frontend/.storybook/preview.ts rename to frontend/.storybook/preview.ts diff --git a/frontend/Components/Events/Event.vue b/frontend/Components/Events/Event.vue deleted file mode 100644 index de8b0ef9..00000000 --- a/frontend/Components/Events/Event.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - diff --git a/frontend/Components/Events/Inspector/Event.vue b/frontend/Components/Events/Inspector/Event.vue deleted file mode 100644 index d083a52d..00000000 --- a/frontend/Components/Events/Inspector/Event.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/frontend/Components/Events/Inspector/_partials/Cards.vue b/frontend/Components/Events/Inspector/_partials/Cards.vue deleted file mode 100644 index 6e64fe72..00000000 --- a/frontend/Components/Events/Inspector/_partials/Cards.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/frontend/Components/Events/Monolog/Event.vue b/frontend/Components/Events/Monolog/Event.vue deleted file mode 100644 index 8d785303..00000000 --- a/frontend/Components/Events/Monolog/Event.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/frontend/Components/Events/Profiler/Event.vue b/frontend/Components/Events/Profiler/Event.vue deleted file mode 100644 index 4bf6acd6..00000000 --- a/frontend/Components/Events/Profiler/Event.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/frontend/Components/Events/Profiler/_partials/Cards.vue b/frontend/Components/Events/Profiler/_partials/Cards.vue deleted file mode 100644 index 7d694f00..00000000 --- a/frontend/Components/Events/Profiler/_partials/Cards.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/frontend/Components/Events/Sentry/Event.vue b/frontend/Components/Events/Sentry/Event.vue deleted file mode 100644 index f4e874c8..00000000 --- a/frontend/Components/Events/Sentry/Event.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/App.vue b/frontend/Components/Events/Sentry/Show/App.vue deleted file mode 100644 index 118e1e77..00000000 --- a/frontend/Components/Events/Sentry/Show/App.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/Breadcrumbs.vue b/frontend/Components/Events/Sentry/Show/Breadcrumbs.vue deleted file mode 100644 index 7cc0a867..00000000 --- a/frontend/Components/Events/Sentry/Show/Breadcrumbs.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/Device.vue b/frontend/Components/Events/Sentry/Show/Device.vue deleted file mode 100644 index e3c62125..00000000 --- a/frontend/Components/Events/Sentry/Show/Device.vue +++ /dev/null @@ -1,147 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/Exception.vue b/frontend/Components/Events/Sentry/Show/Exception.vue deleted file mode 100644 index e5cada93..00000000 --- a/frontend/Components/Events/Sentry/Show/Exception.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/Exceptions.vue b/frontend/Components/Events/Sentry/Show/Exceptions.vue deleted file mode 100644 index d85431e2..00000000 --- a/frontend/Components/Events/Sentry/Show/Exceptions.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/OS.vue b/frontend/Components/Events/Sentry/Show/OS.vue deleted file mode 100644 index 00656110..00000000 --- a/frontend/Components/Events/Sentry/Show/OS.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/Request.vue b/frontend/Components/Events/Sentry/Show/Request.vue deleted file mode 100644 index 6bdb17f2..00000000 --- a/frontend/Components/Events/Sentry/Show/Request.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/Tags.vue b/frontend/Components/Events/Sentry/Show/Tags.vue deleted file mode 100644 index ae785dc7..00000000 --- a/frontend/Components/Events/Sentry/Show/Tags.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/Trace.vue b/frontend/Components/Events/Sentry/Show/Trace.vue deleted file mode 100644 index fdec382d..00000000 --- a/frontend/Components/Events/Sentry/Show/Trace.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/Show/User.vue b/frontend/Components/Events/Sentry/Show/User.vue deleted file mode 100644 index c252880c..00000000 --- a/frontend/Components/Events/Sentry/Show/User.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/_partials/Exception.vue b/frontend/Components/Events/Sentry/_partials/Exception.vue deleted file mode 100644 index 83768e00..00000000 --- a/frontend/Components/Events/Sentry/_partials/Exception.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/frontend/Components/Events/Sentry/_partials/File.vue b/frontend/Components/Events/Sentry/_partials/File.vue deleted file mode 100644 index c471cc31..00000000 --- a/frontend/Components/Events/Sentry/_partials/File.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/frontend/Components/Events/Smtp/Event.vue b/frontend/Components/Events/Smtp/Event.vue deleted file mode 100644 index 3b7b6b40..00000000 --- a/frontend/Components/Events/Smtp/Event.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/frontend/Components/Events/VarDump/Event.vue b/frontend/Components/Events/VarDump/Event.vue deleted file mode 100644 index 4c0f8332..00000000 --- a/frontend/Components/Events/VarDump/Event.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/frontend/Components/UI/CodeSnippet.vue b/frontend/Components/UI/CodeSnippet.vue deleted file mode 100644 index 0780c742..00000000 --- a/frontend/Components/UI/CodeSnippet.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - - diff --git a/frontend/Components/UI/Collapsed.vue b/frontend/Components/UI/Collapsed.vue deleted file mode 100644 index 8a9f1494..00000000 --- a/frontend/Components/UI/Collapsed.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/frontend/Components/UI/Dump.vue b/frontend/Components/UI/Dump.vue deleted file mode 100644 index 04616c16..00000000 --- a/frontend/Components/UI/Dump.vue +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - diff --git a/frontend/Components/UI/Host.vue b/frontend/Components/UI/Host.vue deleted file mode 100644 index dbaf1e1d..00000000 --- a/frontend/Components/UI/Host.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/frontend/Components/UI/HtmlPreview.vue b/frontend/Components/UI/HtmlPreview.vue deleted file mode 100644 index 72fc73d9..00000000 --- a/frontend/Components/UI/HtmlPreview.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/CopyIcon.vue b/frontend/Components/UI/Icons/CopyIcon.vue deleted file mode 100644 index 61e0fff3..00000000 --- a/frontend/Components/UI/Icons/CopyIcon.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/DocsIcon.vue b/frontend/Components/UI/Icons/DocsIcon.vue deleted file mode 100644 index 0bad4072..00000000 --- a/frontend/Components/UI/Icons/DocsIcon.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/FullscreenIcon.vue b/frontend/Components/UI/Icons/FullscreenIcon.vue deleted file mode 100644 index 4fe4cdca..00000000 --- a/frontend/Components/UI/Icons/FullscreenIcon.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/GithubIcon.vue b/frontend/Components/UI/Icons/GithubIcon.vue deleted file mode 100644 index a95f0d5d..00000000 --- a/frontend/Components/UI/Icons/GithubIcon.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/HeartBeat.vue b/frontend/Components/UI/Icons/HeartBeat.vue deleted file mode 100644 index ccae2b16..00000000 --- a/frontend/Components/UI/Icons/HeartBeat.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/InspectorIcon.vue b/frontend/Components/UI/Icons/InspectorIcon.vue deleted file mode 100644 index 0e903b16..00000000 --- a/frontend/Components/UI/Icons/InspectorIcon.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/Logo.vue b/frontend/Components/UI/Icons/Logo.vue deleted file mode 100644 index 002eec57..00000000 --- a/frontend/Components/UI/Icons/Logo.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/LogoutIcon.vue b/frontend/Components/UI/Icons/LogoutIcon.vue deleted file mode 100644 index efdbf1fb..00000000 --- a/frontend/Components/UI/Icons/LogoutIcon.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/MinusIcon.vue b/frontend/Components/UI/Icons/MinusIcon.vue deleted file mode 100644 index ff1dfcb7..00000000 --- a/frontend/Components/UI/Icons/MinusIcon.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/NewScreenIcon.vue b/frontend/Components/UI/Icons/NewScreenIcon.vue deleted file mode 100644 index 7dcdc123..00000000 --- a/frontend/Components/UI/Icons/NewScreenIcon.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/PlusIcon.vue b/frontend/Components/UI/Icons/PlusIcon.vue deleted file mode 100644 index 106cd45b..00000000 --- a/frontend/Components/UI/Icons/PlusIcon.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/ScreenIcon.vue b/frontend/Components/UI/Icons/ScreenIcon.vue deleted file mode 100644 index 582ae1e1..00000000 --- a/frontend/Components/UI/Icons/ScreenIcon.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/SentryIcon.vue b/frontend/Components/UI/Icons/SentryIcon.vue deleted file mode 100644 index 5906d3d9..00000000 --- a/frontend/Components/UI/Icons/SentryIcon.vue +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/frontend/Components/UI/Icons/TimesIcon.vue b/frontend/Components/UI/Icons/TimesIcon.vue deleted file mode 100644 index 22e00c45..00000000 --- a/frontend/Components/UI/Icons/TimesIcon.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/frontend/Components/UI/ImageExport.vue b/frontend/Components/UI/ImageExport.vue deleted file mode 100644 index 84d5fc78..00000000 --- a/frontend/Components/UI/ImageExport.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/frontend/Components/UI/JsonChip.vue b/frontend/Components/UI/JsonChip.vue deleted file mode 100644 index 8e67c790..00000000 --- a/frontend/Components/UI/JsonChip.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/frontend/Components/UI/Label.vue b/frontend/Components/UI/Label.vue deleted file mode 100644 index c175ed35..00000000 --- a/frontend/Components/UI/Label.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/frontend/Components/UI/Tab.vue b/frontend/Components/UI/Tab.vue deleted file mode 100644 index 86660cb7..00000000 --- a/frontend/Components/UI/Tab.vue +++ /dev/null @@ -1,20 +0,0 @@ - - diff --git a/frontend/Components/UI/Table.vue b/frontend/Components/UI/Table.vue deleted file mode 100644 index 43cb16f0..00000000 --- a/frontend/Components/UI/Table.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/frontend/Components/UI/TableRow.vue b/frontend/Components/UI/TableRow.vue deleted file mode 100644 index 223ceca5..00000000 --- a/frontend/Components/UI/TableRow.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/frontend/Components/UI/Tabs.vue b/frontend/Components/UI/Tabs.vue deleted file mode 100644 index fb6f7aba..00000000 --- a/frontend/Components/UI/Tabs.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/frontend/README.md b/frontend/README.md index 09a69d43..2522ee54 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -4,17 +4,20 @@ ```bash # install dependencies -$ yarn install +$ npm run install # serve with hot reload at localhost:3000 -$ yarn dev +$ npm run dev # build for production and launch server -$ yarn build -$ yarn start +$ npm run build +$ npm run start # generate static project -$ yarn generate +$ npm run generate + +# run storybook server +$ npm run sb ``` For detailed explanation on how things work, check out the [documentation](https://nuxtjs.org). @@ -67,3 +70,12 @@ More information about the usage of this directory in [the documentation](https: This directory contains your Vuex store files. Creating a file in this directory automatically activates Vuex. More information about the usage of this directory in [the documentation](https://nuxtjs.org/docs/2.x/directory-structure/store). + +### `TODO:` + +- [ ] add support for events api and websockets +- [ ] fix theme change +- [x] add navigation and tips to main page +- [ ] add profiler event +- [ ] add event pages by uuid +- [ ] move theme-type to layout lvl diff --git a/frontend/Utils/LazyComponent.js b/frontend/Utils/LazyComponent.js deleted file mode 100644 index c83a1843..00000000 --- a/frontend/Utils/LazyComponent.js +++ /dev/null @@ -1,48 +0,0 @@ -export default function lazyLoadComponent({componentFactory, loading, loadingData,}) { - let resolveComponent; - - return () => ({ - // We return a promise to resolve a - // component eventually. - component: new Promise((resolve) => { - resolveComponent = resolve; - }), - - loading: { - mounted() { - // We immediately load the component if - // `IntersectionObserver` is not supported. - if (!('IntersectionObserver' in window)) { - componentFactory().then(resolveComponent); - return; - } - - const observer = new IntersectionObserver((entries) => { - // Use `intersectionRatio` because of Edge 15's - // lack of support for `isIntersecting`. - // See: https://github.com/w3c/IntersectionObserver/issues/211 - if (entries[0].intersectionRatio <= 0) return; - - // Cleanup the observer when it's not - // needed anymore. - observer.unobserve(this.$el); - // The `componentFactory()` resolves - // to the result of a dynamic `import()` - // which is passed to the `resolveComponent()` - // function. - componentFactory().then(resolveComponent); - }); - // We observe the root `$el` of the - // mounted loading component to detect - // when it becomes visible. - observer.observe(this.$el); - }, - - // Here we render the the component passed - // to this function via the `loading` parameter. - render(createElement) { - return createElement(loading, loadingData); - }, - }, - }); -} diff --git a/frontend/Utils/converters.js b/frontend/Utils/converters.js deleted file mode 100644 index 4223f30c..00000000 --- a/frontend/Utils/converters.js +++ /dev/null @@ -1,40 +0,0 @@ -export const humanFileSize = function (bytes, si = false, dp = 1) { - const thresh = si ? 1000 : 1024; - - if (Math.abs(bytes) < thresh) { - return bytes + ' B'; - } - - const units = si ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']; - let u = -1; - const r = 10 ** dp; - - do { - bytes /= thresh; - ++u; - } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1); - - - return bytes.toFixed(dp) + ' ' + units[u]; -} - -export const humaCpuUsage = function (cpuUsage) { - return cpuUsage.toFixed(3) + '%'; -} - - -export const formatDuration = ms => { - if (ms < 0) ms = -ms; - ms = ms / 1_000 - const time = { - d: Math.floor(ms / 86_400_000), - h: Math.floor(ms / 3_600_000) % 24, - m: Math.floor(ms / 60_000) % 60, - s: Math.floor(ms / 1_000) % 60, - ms: ms % 1_000 - }; - return Object.entries(time) - .filter(val => val[1] !== 0) - .map(val => val[1].toFixed(4) + ' ' + (val[1] !== 1 ? val[0] : val[0])) - .join(', '); -}; diff --git a/frontend/Utils/download.js b/frontend/Utils/download.js deleted file mode 100644 index e1998c43..00000000 --- a/frontend/Utils/download.js +++ /dev/null @@ -1,153 +0,0 @@ -export default function (data, strFileName, strMimeType) { - let self = window, // this script is only for browsers anyway... - defaultMime = "application/octet-stream", // this default mime also triggers iframe downloads - mimeType = strMimeType || defaultMime, - payload = data, - url = !strFileName && !strMimeType && payload, - anchor = document.createElement("a"), - toString = function (a) { - return String(a); - }, - myBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString), - fileName = strFileName || "download", - blob, - reader; - myBlob = myBlob.call ? myBlob.bind(self) : Blob; - - if (String(this) === "true") { //reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback - payload = [payload, mimeType]; - mimeType = payload[0]; - payload = payload[1]; - } - - - if (url && url.length < 2048) { // if no filename and no mime, assume a url was passed as the only argument - fileName = url.split("/").pop().split("?")[0]; - anchor.href = url; // assign href prop to temp anchor - if (anchor.href.indexOf(url) !== -1) { // if the browser determines that it's a potentially valid url path: - var ajax = new XMLHttpRequest(); - ajax.open("GET", url, true); - ajax.responseType = 'blob'; - ajax.onload = function (e) { - download(e.target.response, fileName, defaultMime); - }; - setTimeout(function () { - ajax.send(); - }, 0); // allows setting custom ajax headers using the return: - return ajax; - } // end if valid url? - } // end if url? - - - //go ahead and download dataURLs right away - if (/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)) { - - if (payload.length > (1024 * 1024 * 1.999) && myBlob !== toString) { - payload = dataUrlToBlob(payload); - mimeType = payload.type || defaultMime; - } else { - return navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs: - navigator.msSaveBlob(dataUrlToBlob(payload), fileName) : - saver(payload); // everyone else can save dataURLs un-processed - } - - } else {//not data url, is it a string with special needs? - if (/([\x80-\xff])/.test(payload)) { - let i = 0, tempUiArr = new Uint8Array(payload.length), mx = tempUiArr.length; - for (i; i < mx; ++i) tempUiArr[i] = payload.charCodeAt(i); - payload = new myBlob([tempUiArr], {type: mimeType}); - } - } - blob = payload instanceof myBlob ? - payload : - new myBlob([payload], {type: mimeType}); - - - function dataUrlToBlob(strUrl) { - let parts = strUrl.split(/[:;,]/), - type = parts[1], - indexDecoder = strUrl.indexOf("charset") > 0 ? 3 : 2, - decoder = parts[indexDecoder] == "base64" ? atob : decodeURIComponent, - binData = decoder(parts.pop()), - mx = binData.length, - i = 0, - uiArr = new Uint8Array(mx); - - for (i; i < mx; ++i) uiArr[i] = binData.charCodeAt(i); - - return new myBlob([uiArr], {type: type}); - } - - function saver(url, winMode) { - - if ('download' in anchor) { //html5 A[download] - anchor.href = url; - anchor.setAttribute("download", fileName); - anchor.className = "download-js-link"; - anchor.innerHTML = "downloading..."; - anchor.style.display = "none"; - - document.body.appendChild(anchor); - setTimeout(function () { - anchor.click(); - document.body.removeChild(anchor); - if (winMode === true) { - setTimeout(function () { - self.URL.revokeObjectURL(anchor.href); - }, 250); - } - }, 66); - return true; - } - - // handle non-a[download] safari as best we can: - if (/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)) { - if (/^data:/.test(url)) url = "data:" + url.replace(/^data:([\w\/\-\+]+)/, defaultMime); - if (!window.open(url)) { // popup blocked, offer direct download: - if (confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")) { - location.href = url; - } - } - return true; - } - - //do iframe dataURL download (old ch+FF): - const f = document.createElement("iframe"); - document.body.appendChild(f); - - if (!winMode && /^data:/.test(url)) { // force a mime that will download: - url = "data:" + url.replace(/^data:([\w\/\-\+]+)/, defaultMime); - } - f.src = url; - setTimeout(function () { - document.body.removeChild(f); - }, 333); - - }//end saver - - - if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL) - return navigator.msSaveBlob(blob, fileName); - } - - if (self.URL) { // simple fast and modern way using Blob and URL: - saver(self.URL.createObjectURL(blob), true); - } else { - // handle non-Blob()+non-URL browsers: - if (typeof blob === "string" || blob.constructor === toString) { - try { - return saver("data:" + mimeType + ";base64," + self.btoa(blob)); - } catch (y) { - return saver("data:" + mimeType + "," + encodeURIComponent(blob)); - } - } - - // Blob but not URL support: - reader = new FileReader(); - reader.onload = function (e) { - saver(this.result); - }; - reader.readAsDataURL(blob); - } - return true; -} diff --git a/frontend/Utils/dumper.js b/frontend/Utils/dumper.js deleted file mode 100644 index 187c0adf..00000000 --- a/frontend/Utils/dumper.js +++ /dev/null @@ -1,401 +0,0 @@ -export default function (doc) { - var refStyle = doc.createElement('style'), rxEsc = /([.*+?^${}()|\[\]\/\\])/g, idRx = /\bsf-dump-\d+-ref[012]\w+\b/, - keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl', - addEventListener = function (e, n, cb) { - e.addEventListener(n, cb, false); - }; - refStyle.innerHTML = 'pre.sf-dump .sf-dump-compact, .sf-dump-str-collapse .sf-dump-str-collapse, .sf-dump-str-expand .sf-dump-str-expand { display: none; }'; - (doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle); - refStyle = doc.createElement('style'); - (doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle); - if (!doc.addEventListener) { - addEventListener = function (element, eventName, callback) { - element.attachEvent('on' + eventName, function (e) { - e.preventDefault = function () { - e.returnValue = false; - }; - e.target = e.srcElement; - callback(e); - }); - }; - } - - function toggle(a, recursive) { - var s = a.nextSibling || {}, oldClass = s.className, arrow, newClass; - if (/\bsf-dump-compact\b/.test(oldClass)) { - arrow = '▼'; - newClass = 'sf-dump-expanded'; - } else if (/\bsf-dump-expanded\b/.test(oldClass)) { - arrow = '▶'; - newClass = 'sf-dump-compact'; - } else { - return false; - } - if (doc.createEvent && s.dispatchEvent) { - var event = doc.createEvent('Event'); - event.initEvent('sf-dump-expanded' === newClass ? 'sfbeforedumpexpand' : 'sfbeforedumpcollapse', true, false); - s.dispatchEvent(event); - } - a.lastChild.innerHTML = arrow; - s.className = s.className.replace(/\bsf-dump-(compact|expanded)\b/, newClass); - if (recursive) { - try { - a = s.querySelectorAll('.' + oldClass); - for (s = 0; s < a.length; ++s) { - if (-1 == a[s].className.indexOf(newClass)) { - a[s].className = newClass; - a[s].previousSibling.lastChild.innerHTML = arrow; - } - } - } catch (e) { - } - } - return true; - }; - - function collapse(a, recursive) { - var s = a.nextSibling || {}, oldClass = s.className; - if (/\bsf-dump-expanded\b/.test(oldClass)) { - toggle(a, recursive); - return true; - } - return false; - }; - - function expand(a, recursive) { - var s = a.nextSibling || {}, oldClass = s.className; - if (/\bsf-dump-compact\b/.test(oldClass)) { - toggle(a, recursive); - return true; - } - return false; - }; - - function collapseAll(root) { - var a = root.querySelector('a.sf-dump-toggle'); - if (a) { - collapse(a, true); - expand(a); - return true; - } - return false; - } - - function reveal(node) { - var previous, parents = []; - while ((node = node.parentNode || {}) && (previous = node.previousSibling) && 'A' === previous.tagName) { - parents.push(previous); - } - if (0 !== parents.length) { - parents.forEach(function (parent) { - expand(parent); - }); - return true; - } - return false; - } - - function highlight(root, activeNode, nodes) { - resetHighlightedNodes(root); - Array.from(nodes || []).forEach(function (node) { - if (!/\bsf-dump-highlight\b/.test(node.className)) { - node.className = node.className + ' sf-dump-highlight'; - } - }); - if (!/\bsf-dump-highlight-active\b/.test(activeNode.className)) { - activeNode.className = activeNode.className + ' sf-dump-highlight-active'; - } - } - - function resetHighlightedNodes(root) { - Array.from(root.querySelectorAll('.sf-dump-str, .sf-dump-key, .sf-dump-public, .sf-dump-protected, .sf-dump-private')).forEach(function (strNode) { - strNode.className = strNode.className.replace(/\bsf-dump-highlight\b/, ''); - strNode.className = strNode.className.replace(/\bsf-dump-highlight-active\b/, ''); - }); - } - - return function (root, x) { - root = doc.getElementById(root); - var indentRx = new RegExp('^(' + (root.getAttribute('data-indent-pad') || ' ').replace(rxEsc, '\\$1') + ')+', 'm'), - options = {"maxDepth": 1, "maxStringLength": 160, "fileLinkFormat": false}, - elt = root.getElementsByTagName('A'), len = elt.length, i = 0, s, h, t = []; - while (i < len) t.push(elt[i++]); - for (i in x) { - options[i] = x[i]; - } - - function a(e, f) { - addEventListener(root, e, function (e, n) { - if ('A' == e.target.tagName) { - f(e.target, e); - } else if ('A' == e.target.parentNode.tagName) { - f(e.target.parentNode, e); - } else { - n = /\bsf-dump-ellipsis\b/.test(e.target.className) ? e.target.parentNode : e.target; - if ((n = n.nextElementSibling) && 'A' == n.tagName) { - if (!/\bsf-dump-toggle\b/.test(n.className)) { - n = n.nextElementSibling || n; - } - f(n, e, true); - } - } - }); - }; - - function isCtrlKey(e) { - return e.ctrlKey || e.metaKey; - } - - function xpathString(str) { - var parts = str.match(/[^'"]+|['"]/g).map(function (part) { - if ("'" == part) { - return '"\'"'; - } - if ('"' == part) { - return "'\"'"; - } - return "'" + part + "'"; - }); - return "concat(" + parts.join(",") + ", '')"; - } - - function xpathHasClass(className) { - return "contains(concat(' ', normalize-space(@class), ' '), ' " + className + " ')"; - } - - addEventListener(root, 'mouseover', function (e) { - if ('' != refStyle.innerHTML) { - refStyle.innerHTML = ''; - } - }); - a('mouseover', function (a, e, c) { - if (c) { - e.target.style.cursor = "pointer"; - } else if (a = idRx.exec(a.className)) { - try { - refStyle.innerHTML = 'pre.sf-dump .' + a[0] + '{background-color: #B729D9; color: #FFF !important; border-radius: 2px}'; - } catch (e) { - } - } - }); - a('click', function (a, e, c) { - if (/\bsf-dump-toggle\b/.test(a.className)) { - e.preventDefault(); - if (!toggle(a, isCtrlKey(e))) { - var r = doc.getElementById(a.getAttribute('href').substr(1)), s = r.previousSibling, - f = r.parentNode, t = a.parentNode; - t.replaceChild(r, a); - f.replaceChild(a, s); - t.insertBefore(s, r); - f = f.firstChild.nodeValue.match(indentRx); - t = t.firstChild.nodeValue.match(indentRx); - if (f && t && f[0] !== t[0]) { - r.innerHTML = r.innerHTML.replace(new RegExp('^' + f[0].replace(rxEsc, '\\$1'), 'mg'), t[0]); - } - if (/\bsf-dump-compact\b/.test(r.className)) { - toggle(s, isCtrlKey(e)); - } - } - if (c) { - } else if (doc.getSelection) { - try { - doc.getSelection().removeAllRanges(); - } catch (e) { - doc.getSelection().empty(); - } - } else { - doc.selection.empty(); - } - } else if (/\bsf-dump-str-toggle\b/.test(a.className)) { - e.preventDefault(); - e = a.parentNode.parentNode; - e.className = e.className.replace(/\bsf-dump-str-(expand|collapse)\b/, a.parentNode.className); - } - }); - elt = root.getElementsByTagName('SAMP'); - len = elt.length; - i = 0; - while (i < len) t.push(elt[i++]); - len = t.length; - for (i = 0; i < len; ++i) { - elt = t[i]; - if ('SAMP' == elt.tagName) { - a = elt.previousSibling || {}; - if ('A' != a.tagName) { - a = doc.createElement('A'); - a.className = 'sf-dump-ref'; - elt.parentNode.insertBefore(a, elt); - } else { - a.innerHTML += ' '; - } - a.title = (a.title ? a.title + '\n[' : '[') + keyHint + '+click] Expand all children'; - a.innerHTML += elt.className == 'sf-dump-compact' ? '' : ''; - a.className += ' sf-dump-toggle'; - x = 1; - if ('sf-dump' != elt.parentNode.className) { - x += elt.parentNode.getAttribute('data-depth') / 1; - } - } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) { - a = a.substr(1); - elt.className += ' ' + a; - if (/[\[{]$/.test(elt.previousSibling.nodeValue)) { - a = a != elt.nextSibling.id && doc.getElementById(a); - try { - s = a.nextSibling; - elt.appendChild(a); - s.parentNode.insertBefore(a, s); - if (/^[@#]/.test(elt.innerHTML)) { - elt.innerHTML += ' '; - } else { - elt.innerHTML = ''; - elt.className = 'sf-dump-ref'; - } - elt.className += ' sf-dump-toggle'; - } catch (e) { - if ('&' == elt.innerHTML.charAt(0)) { - elt.innerHTML = '…'; - elt.className = 'sf-dump-ref'; - } - } - } - } - } - if (doc.evaluate && Array.from && root.children.length > 1) { - root.setAttribute('tabindex', 0); - var SearchState = function () { - this.nodes = []; - this.idx = 0; - }; - SearchState.prototype = { - next: function () { - if (this.isEmpty()) { - return this.current(); - } - this.idx = this.idx < (this.nodes.length - 1) ? this.idx + 1 : 0; - return this.current(); - }, previous: function () { - if (this.isEmpty()) { - return this.current(); - } - this.idx = this.idx > 0 ? this.idx - 1 : (this.nodes.length - 1); - return this.current(); - }, isEmpty: function () { - return 0 === this.count(); - }, current: function () { - if (this.isEmpty()) { - return null; - } - return this.nodes[this.idx]; - }, reset: function () { - this.nodes = []; - this.idx = 0; - }, count: function () { - return this.nodes.length; - }, - }; - - function showCurrent(state) { - var currentNode = state.current(), currentRect, searchRect; - if (currentNode) { - reveal(currentNode); - highlight(root, currentNode, state.nodes); - if ('scrollIntoView' in currentNode) { - currentNode.scrollIntoView(true); - currentRect = currentNode.getBoundingClientRect(); - searchRect = search.getBoundingClientRect(); - if (currentRect.top < (searchRect.top + searchRect.height)) { - window.scrollBy(0, -(searchRect.top + searchRect.height + 5)); - } - } - } - counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + ' of ' + state.count(); - } - - var search = doc.createElement('div'); - search.className = 'sf-dump-search-wrapper sf-dump-search-hidden'; - search.innerHTML = ' 0 of 0<\/span>