diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 43ff2c0fa9791..9cdf6e013bd25 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -708,6 +708,7 @@ packages/core/application/core-application-browser-mocks @elastic/kibana-core packages/core/application/core-application-common @elastic/kibana-core packages/core/apps/core-apps-browser-internal @elastic/kibana-core packages/core/apps/core-apps-browser-mocks @elastic/kibana-core +packages/core/apps/core-apps-server-internal @elastic/kibana-core packages/core/base/core-base-browser-internal @elastic/kibana-core packages/core/base/core-base-browser-mocks @elastic/kibana-core packages/core/base/core-base-common @elastic/kibana-core diff --git a/package.json b/package.json index a63be94afb18f..e95bd6e7d8116 100644 --- a/package.json +++ b/package.json @@ -161,6 +161,7 @@ "@kbn/core-application-common": "link:bazel-bin/packages/core/application/core-application-common", "@kbn/core-apps-browser-internal": "link:bazel-bin/packages/core/apps/core-apps-browser-internal", "@kbn/core-apps-browser-mocks": "link:bazel-bin/packages/core/apps/core-apps-browser-mocks", + "@kbn/core-apps-server-internal": "link:bazel-bin/packages/core/apps/core-apps-server-internal", "@kbn/core-base-browser-internal": "link:bazel-bin/packages/core/base/core-base-browser-internal", "@kbn/core-base-browser-mocks": "link:bazel-bin/packages/core/base/core-base-browser-mocks", "@kbn/core-base-common": "link:bazel-bin/packages/core/base/core-base-common", diff --git a/packages/BUILD.bazel b/packages/BUILD.bazel index f01c019499c71..81aec2ac8a1ba 100644 --- a/packages/BUILD.bazel +++ b/packages/BUILD.bazel @@ -28,6 +28,7 @@ filegroup( "//packages/core/application/core-application-common:build", "//packages/core/apps/core-apps-browser-internal:build", "//packages/core/apps/core-apps-browser-mocks:build", + "//packages/core/apps/core-apps-server-internal:build", "//packages/core/base/core-base-browser-internal:build", "//packages/core/base/core-base-browser-mocks:build", "//packages/core/base/core-base-common:build", @@ -386,6 +387,7 @@ filegroup( "//packages/core/application/core-application-common:build_types", "//packages/core/apps/core-apps-browser-internal:build_types", "//packages/core/apps/core-apps-browser-mocks:build_types", + "//packages/core/apps/core-apps-server-internal:build_types", "//packages/core/base/core-base-browser-internal:build_types", "//packages/core/base/core-base-browser-mocks:build_types", "//packages/core/base/core-base-common:build_types", diff --git a/packages/core/apps/core-apps-server-internal/BUILD.bazel b/packages/core/apps/core-apps-server-internal/BUILD.bazel new file mode 100644 index 0000000000000..adf8562deb1aa --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/BUILD.bazel @@ -0,0 +1,140 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-apps-server-internal" +PKG_REQUIRE_NAME = "@kbn/core-apps-server-internal" + +SOURCE_FILES = glob( + [ + "**/*.ts", + "src/**/*.css", + "src/**/*.ttf", + "src/**/*.woff", + "src/**/*.woff2", + "src/**/*.ico", + "src/**/*.png", + "src/**/*.svg", + ], + exclude = [ + "**/*.config.js", + "**/*.mock.*", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ + "@npm//elastic-apm-node", + "@npm//lru-cache", + "@npm//mime-types", + "//packages/kbn-config", + "//packages/kbn-config-schema", + "//packages/kbn-utils", + "//packages/kbn-logging", + "//packages/kbn-ui-shared-deps-npm", + "//packages/kbn-ui-shared-deps-src", + "//packages/core/base/core-base-server-internal", + "//packages/core/lifecycle/core-lifecycle-server-internal", + "//packages/core/plugins/core-plugins-base-server-internal", +] + +TYPES_DEPS = [ + "@npm//elastic-apm-node", + "@npm//@types/node", + "@npm//@types/jest", + "@npm//@types/lru-cache", + "@npm//@types/mime-types", + "//packages/kbn-config:npm_module_types", + "//packages/kbn-config-schema:npm_module_types", + "//packages/kbn-ui-shared-deps-npm:npm_module_types", + "//packages/kbn-ui-shared-deps-src:npm_module_types", + "//packages/kbn-utils:npm_module_types", + "//packages/kbn-logging:npm_module_types", + "//packages/core/base/core-base-server-internal:npm_module_types", + "//packages/core/http/core-http-resources-server:npm_module_types", + "//packages/core/http/core-http-server:npm_module_types", + "//packages/core/lifecycle/core-lifecycle-server-internal:npm_module_types", + "//packages/core/plugins/core-plugins-base-server-internal:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), + additional_args = [ + "--copy-files", + "--quiet" + ], +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +js_library( + name = "npm_module_types", + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node", ":tsc_types"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "build_types", + deps = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/apps/core-apps-server-internal/README.md b/packages/core/apps/core-apps-server-internal/README.md new file mode 100644 index 0000000000000..979146f37207c --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/README.md @@ -0,0 +1,3 @@ +# @kbn/core-apps-server-internal + +This package contains the internal types and implementation of Core's server-side `coreApps` service. diff --git a/packages/core/apps/core-apps-server-internal/index.ts b/packages/core/apps/core-apps-server-internal/index.ts new file mode 100644 index 0000000000000..7a28e9f9d2f87 --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { CoreAppsService } from './src'; +export type { + InternalCoreAppsServiceRequestHandlerContext, + InternalCoreAppsServiceRouter, +} from './src'; +// only used by integration tests +export { FileHashCache, registerRouteForBundle } from './src'; diff --git a/src/core/server/core_app/index.ts b/packages/core/apps/core-apps-server-internal/jest.config.js similarity index 70% rename from src/core/server/core_app/index.ts rename to packages/core/apps/core-apps-server-internal/jest.config.js index e2846537bda65..d52363b8a2c1e 100644 --- a/src/core/server/core_app/index.ts +++ b/packages/core/apps/core-apps-server-internal/jest.config.js @@ -6,4 +6,8 @@ * Side Public License, v 1. */ -export { CoreApp } from './core_app'; +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['/packages/core/apps/core-apps-server-internal'], +}; diff --git a/packages/core/apps/core-apps-server-internal/kibana.jsonc b/packages/core/apps/core-apps-server-internal/kibana.jsonc new file mode 100644 index 0000000000000..976f82a69e7c9 --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-apps-server-internal", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [], +} diff --git a/packages/core/apps/core-apps-server-internal/package.json b/packages/core/apps/core-apps-server-internal/package.json new file mode 100644 index 0000000000000..04c52e856bf2a --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/package.json @@ -0,0 +1,9 @@ +{ + "name": "@kbn/core-apps-server-internal", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0", + "types": "./target_types/index.d.ts" +} diff --git a/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.ico b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.ico new file mode 100644 index 0000000000000..b466b3b4f4eb3 Binary files /dev/null and b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.ico differ diff --git a/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.png b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.png new file mode 100644 index 0000000000000..9be046aba59b6 Binary files /dev/null and b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.png differ diff --git a/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.svg b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.svg new file mode 100644 index 0000000000000..2d02461a0b8f9 --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.distribution.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.ico b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.ico new file mode 100644 index 0000000000000..7ac743a2d1fe4 Binary files /dev/null and b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.ico differ diff --git a/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.png b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.png new file mode 100644 index 0000000000000..cba7a268c6c59 Binary files /dev/null and b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.png differ diff --git a/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.svg b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.svg new file mode 100644 index 0000000000000..4ae6524bf0d18 --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/src/assets/favicons/favicon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Black.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Black.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Black.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Black.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Black.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Black.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Black.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Black.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-BlackItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BlackItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-BlackItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BlackItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-BlackItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BlackItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-BlackItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BlackItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Bold.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Bold.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Bold.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Bold.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Bold.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Bold.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Bold.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Bold.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-BoldItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BoldItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-BoldItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BoldItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-BoldItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BoldItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-BoldItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-BoldItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraBold.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBold.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraBold.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBold.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraBold.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBold.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraBold.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBold.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraBoldItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBoldItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraBoldItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBoldItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraBoldItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBoldItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraBoldItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraBoldItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraLight.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLight.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraLight.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLight.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraLight.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLight.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraLight.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLight.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraLightItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLightItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraLightItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLightItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ExtraLightItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLightItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ExtraLightItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ExtraLightItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Italic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Italic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Italic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Italic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Italic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Italic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Italic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Italic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Light.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Light.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Light.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Light.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Light.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Light.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Light.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Light.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-LightItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-LightItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-LightItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-LightItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-LightItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-LightItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-LightItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-LightItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Medium.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Medium.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Medium.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Medium.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Medium.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Medium.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Medium.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Medium.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-MediumItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-MediumItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-MediumItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-MediumItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-MediumItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-MediumItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-MediumItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-MediumItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Regular.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Regular.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Regular.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Regular.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Regular.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Regular.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Regular.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Regular.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-SemiBold.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBold.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-SemiBold.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBold.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-SemiBold.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBold.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-SemiBold.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBold.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-SemiBoldItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBoldItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-SemiBoldItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBoldItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-SemiBoldItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBoldItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-SemiBoldItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-SemiBoldItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Thin.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Thin.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Thin.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Thin.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-Thin.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Thin.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-Thin.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-Thin.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ThinItalic.woff b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ThinItalic.woff similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ThinItalic.woff rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ThinItalic.woff diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-ThinItalic.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ThinItalic.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-ThinItalic.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-ThinItalic.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-italic.var.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-italic.var.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-italic.var.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-italic.var.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter-roman.var.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-roman.var.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter-roman.var.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter-roman.var.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/Inter.var.woff2 b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter.var.woff2 similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/Inter.var.woff2 rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/Inter.var.woff2 diff --git a/src/core/server/core_app/assets/fonts/inter/LICENSE.txt b/packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/LICENSE.txt similarity index 100% rename from src/core/server/core_app/assets/fonts/inter/LICENSE.txt rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/inter/LICENSE.txt diff --git a/src/core/server/core_app/assets/fonts/readme.md b/packages/core/apps/core-apps-server-internal/src/assets/fonts/readme.md similarity index 100% rename from src/core/server/core_app/assets/fonts/readme.md rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/readme.md diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/LICENSE.txt b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/LICENSE.txt similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/LICENSE.txt rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/LICENSE.txt diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Bold.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Bold.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Bold.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Bold.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-BoldItalic.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-BoldItalic.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-BoldItalic.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-BoldItalic.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Italic.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Italic.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Italic.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Italic.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Light.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Light.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Light.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Light.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-LightItalic.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-LightItalic.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-LightItalic.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-LightItalic.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Medium.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Medium.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Medium.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Medium.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-MediumItalic.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-MediumItalic.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-MediumItalic.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-MediumItalic.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Regular.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Regular.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Regular.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Regular.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Thin.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Thin.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-Thin.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-Thin.ttf diff --git a/src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-ThinItalic.ttf b/packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-ThinItalic.ttf similarity index 100% rename from src/core/server/core_app/assets/fonts/roboto_mono/RobotoMono-ThinItalic.ttf rename to packages/core/apps/core-apps-server-internal/src/assets/fonts/roboto_mono/RobotoMono-ThinItalic.ttf diff --git a/src/core/server/core_app/assets/legacy_dark_theme.css b/packages/core/apps/core-apps-server-internal/src/assets/legacy_dark_theme.css similarity index 100% rename from src/core/server/core_app/assets/legacy_dark_theme.css rename to packages/core/apps/core-apps-server-internal/src/assets/legacy_dark_theme.css diff --git a/src/core/server/core_app/assets/legacy_dark_theme.min.css b/packages/core/apps/core-apps-server-internal/src/assets/legacy_dark_theme.min.css similarity index 100% rename from src/core/server/core_app/assets/legacy_dark_theme.min.css rename to packages/core/apps/core-apps-server-internal/src/assets/legacy_dark_theme.min.css diff --git a/packages/core/apps/core-apps-server-internal/src/assets/legacy_light_theme.css b/packages/core/apps/core-apps-server-internal/src/assets/legacy_light_theme.css new file mode 100644 index 0000000000000..c5c639f60e3be --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/src/assets/legacy_light_theme.css @@ -0,0 +1,4419 @@ +/*! + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/* @notice + * This product bundles bootstrap@3.3.6 which is available under a + * "MIT" license. + * + * The MIT License (MIT) + * + * Copyright (c) 2011-2015 Twitter, Inc + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.row { + margin-left: -15px; + margin-right: -15px; +} +.col-xs-1, +.col-sm-1, +.col-md-1, +.col-lg-1, +.col-xs-2, +.col-sm-2, +.col-md-2, +.col-lg-2, +.col-xs-3, +.col-sm-3, +.col-md-3, +.col-lg-3, +.col-xs-4, +.col-sm-4, +.col-md-4, +.col-lg-4, +.col-xs-5, +.col-sm-5, +.col-md-5, +.col-lg-5, +.col-xs-6, +.col-sm-6, +.col-md-6, +.col-lg-6, +.col-xs-7, +.col-sm-7, +.col-md-7, +.col-lg-7, +.col-xs-8, +.col-sm-8, +.col-md-8, +.col-lg-8, +.col-xs-9, +.col-sm-9, +.col-md-9, +.col-lg-9, +.col-xs-10, +.col-sm-10, +.col-md-10, +.col-lg-10, +.col-xs-11, +.col-sm-11, +.col-md-11, +.col-lg-11, +.col-xs-12, +.col-sm-12, +.col-md-12, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0%; +} +@media (min-width: 768px) { + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 992px) { + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 1200px) { + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; + font-size: 14px; +} +.table thead { + font-size: 12px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #D3DAE6; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 1px solid #D3DAE6; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #D3DAE6; +} +.table .table { + background-color: #FFF; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; + font-size: 12px; +} +.table-bordered { + border: 1px solid #D3DAE6; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #D3DAE6; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #D3DAE6; +} +.table-hover > tbody > tr:hover { + background-color: #D3DAE6; +} +table col[class*="col-"] { + position: static; + float: none; + display: table-column; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + float: none; + display: table-cell; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #D3DAE6; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #c3ccdd; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #017D73; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #01645c; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #006BB4; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #005c9b; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #F5A700; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #dc9600; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #BD271E; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #a7221b; +} +.table-responsive { + overflow-x: auto; + min-height: 0.01%; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #D3DAE6; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +.form-control { + display: block; + width: 100%; + height: 32px; + padding: 5px 15px; + font-size: 14px; + line-height: 1.42857143; + color: #343741; + background-color: #fafbfd; + background-image: none; + border: 1px solid #D3DAE6; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #006BB4; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 107, 180, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 107, 180, 0.6); +} +.form-control::-moz-placeholder { + color: #98A2B3; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #98A2B3; +} +.form-control::-webkit-input-placeholder { + color: #98A2B3; +} +.form-control::-ms-expand { + border: 0; + background-color: transparent; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #D3DAE6; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +.form-group:not(:empty) { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-left: -20px; + margin-top: 4px \9; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + padding-top: 6px; + padding-bottom: 6px; + margin-bottom: 0; + min-height: 34px; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-left: 0; + padding-right: 0; +} +.input-sm { + height: 32px; + padding: 6px 9px; + font-size: 12px; + line-height: 1.5; + border-radius: 4px; +} +select.input-sm { + height: 32px; + line-height: 32px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 32px; + padding: 6px 9px; + font-size: 12px; + line-height: 1.5; + border-radius: 4px; +} +.form-group-sm select.form-control { + height: 32px; + line-height: 32px; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 32px; + min-height: 32px; + padding: 7px 9px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 62px; + padding: 18px 27px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 4px; +} +select.input-lg { + height: 62px; + line-height: 62px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 62px; + padding: 18px 27px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 4px; +} +.form-group-lg select.form-control { + height: 62px; + line-height: 62px; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 62px; + min-height: 38px; + padding: 19px 27px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 40px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 32px; + height: 32px; + line-height: 32px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 62px; + height: 62px; + line-height: 62px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 32px; + height: 32px; + line-height: 32px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #FFF; +} +.has-success .form-control { + border-color: #FFF; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #e6e6e6; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; +} +.has-success .input-group-addon { + color: #FFF; + border-color: #FFF; + background-color: #017D73; +} +.has-success .form-control-feedback { + color: #FFF; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #FFF; +} +.has-warning .form-control { + border-color: #FFF; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #e6e6e6; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; +} +.has-warning .input-group-addon { + color: #FFF; + border-color: #FFF; + background-color: #F5A700; +} +.has-warning .form-control-feedback { + color: #FFF; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #FFF; +} +.has-error .form-control { + border-color: #FFF; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #e6e6e6; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; +} +.has-error .input-group-addon { + color: #FFF; + border-color: #FFF; + background-color: #BD271E; +} +.has-error .form-control-feedback { + color: #FFF; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #6d7388; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 6px; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 26px; +} +.form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + margin-bottom: 0; + padding-top: 6px; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 19px; + font-size: 18px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 7px; + font-size: 12px; + } +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-muted { + color: #b2bac6; +} +.text-primary { + color: #343741; +} +a.text-primary:hover, +a.text-primary:focus { + color: #1d1f25; +} +.text-success { + color: #FFF; +} +a.text-success:hover, +a.text-success:focus { + color: #e6e6e6; +} +.text-info { + color: #FFF; +} +a.text-info:hover, +a.text-info:focus { + color: #e6e6e6; +} +.text-warning { + color: #FFF; +} +a.text-warning:hover, +a.text-warning:focus { + color: #e6e6e6; +} +.text-danger { + color: #FFF; +} +a.text-danger:hover, +a.text-danger:focus { + color: #e6e6e6; +} +.bg-info { + background-color: #006BB4; +} +a.bg-info:hover, +a.bg-info:focus { + background-color: #004d81; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +@media (min-width: 0) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} +/** + * ui/angular-ui-select depends upon these styles. Don't use them in your markup. + * Please use the UI Framework styles instead. + */ +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 5px 15px; + font-size: 14px; + line-height: 1.42857143; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + box-shadow: 0 0 0 1px white, 0 0 0 2px #0079a5; + /* 3 */ +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #FFF; + text-decoration: none; +} +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #FFF; + background-color: #006BB4; + border-color: #006BB4; +} +.btn-default:focus, +.btn-default.focus { + color: #FFF; + background-color: #004d81; + border-color: #001f35; +} +.btn-default:hover { + color: #FFF; + background-color: #004d81; + border-color: #004777; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #FFF; + background-color: #004d81; + border-color: #004777; +} +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #FFF; + background-color: #00375d; + border-color: #001f35; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #006BB4; + border-color: #006BB4; +} +.btn-default .badge { + color: #006BB4; + background-color: #FFF; +} +.btn-primary { + color: #FFF; + background-color: #006BB4; + border-color: #006BB4; +} +.btn-primary:focus, +.btn-primary.focus { + color: #FFF; + background-color: #004d81; + border-color: #001f35; +} +.btn-primary:hover { + color: #FFF; + background-color: #004d81; + border-color: #004777; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #FFF; + background-color: #004d81; + border-color: #004777; +} +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #FFF; + background-color: #00375d; + border-color: #001f35; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #006BB4; + border-color: #006BB4; +} +.btn-primary .badge { + color: #006BB4; + background-color: #FFF; +} +.btn-xs { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 4px; +} +.navbar { + position: relative; + min-height: 45px; + margin-bottom: 0px; + border: 1px solid transparent; +} +@media (min-width: 0) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 0) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + overflow-x: visible; + padding-right: 10px; + padding-left: 10px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 0) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-left: 0; + padding-right: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -10px; + margin-left: -10px; +} +@media (min-width: 0) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1050; +} +@media (min-width: 0) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + padding: 12.5px 10px; + font-size: 18px; + line-height: 20px; + height: 45px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 0) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -10px; + } +} +.navbar-toggle { + position: relative; + float: right; + margin-right: 10px; + padding: 9px 10px; + margin-top: 5.5px; + margin-bottom: 5.5px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 0) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 6.25px -10px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: -1) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 0) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 12.5px; + padding-bottom: 12.5px; + } +} +.navbar-form { + margin-left: -10px; + margin-right: -10px; + padding: 10px 10px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 6.5px; + margin-bottom: 6.5px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: -1) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 0) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-text { + margin-top: 12.5px; + margin-bottom: 12.5px; +} +@media (min-width: 0) { + .navbar-text { + float: left; + margin-left: 10px; + margin-right: 10px; + } +} +@media (min-width: 0) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -10px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #F5F7FA; + border-color: transparent; +} +.navbar-default .navbar-brand { + color: #69707D; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #69707D; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #69707D; +} +.navbar-default .navbar-nav > li > a { + color: #69707D; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #69707D; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #343741; + background-color: transparent; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #69707D; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #d3dce9; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #d3dce9; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #FFF; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: transparent; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + background-color: transparent; + color: #343741; +} +@media (max-width: -1) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #69707D; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #69707D; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #343741; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #69707D; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #69707D; +} +.navbar-default .navbar-link:hover { + color: #69707D; +} +.navbar-inverse { + background-color: #343741; + border-color: #1d1f25; +} +.navbar-inverse .navbar-brand { + color: #FFF; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #FFF; + background-color: #4b4f5d; +} +.navbar-inverse .navbar-text { + color: #FFF; +} +.navbar-inverse .navbar-nav > li > a { + color: #D3DAE6; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #FFF; + background-color: #61677a; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #FFF; + background-color: #69707D; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #b2bac6; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #1d1f25; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #1d1f25; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #FFF; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #24262d; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + background-color: #69707D; + color: #FFF; +} +@media (max-width: -1) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #1d1f25; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #1d1f25; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #D3DAE6; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #FFF; + background-color: #61677a; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #FFF; + background-color: #69707D; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #b2bac6; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #D3DAE6; +} +.navbar-inverse .navbar-link:hover { + color: #FFF; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: none; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1070; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #FFF; + border: 1px solid #98A2B3; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1060; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #b8bec8; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #FFF; + text-align: center; + background-color: #54B399; + -webkit-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #017D73; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #006BB4; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #F5A700; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #BD271E; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.list-group { + margin-bottom: 20px; + padding-left: 0; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #FFF; + border: 1px solid #D3DAE6; +} +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.list-group-item--noBorder { + border-top: 0; +} +a.list-group-item, +button.list-group-item { + color: #69707D; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #343741; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + text-decoration: none; + color: #69707D; + background-color: #F5F7FA; +} +button.list-group-item { + width: 100%; + text-align: left; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + background-color: #D3DAE6; + color: #b2bac6; + cursor: not-allowed; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #b2bac6; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #343741; + background-color: #343741; + border-color: #343741; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #969bab; +} +.list-group-item-success { + color: #FFF; + background-color: #017D73; +} +a.list-group-item-success, +button.list-group-item-success { + color: #FFF; +} +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #FFF; + background-color: #01645c; +} +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #FFF; + border-color: #FFF; +} +.list-group-item-info { + color: #FFF; + background-color: #006BB4; +} +a.list-group-item-info, +button.list-group-item-info { + color: #FFF; +} +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #FFF; + background-color: #005c9b; +} +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #FFF; + border-color: #FFF; +} +.list-group-item-warning { + color: #FFF; + background-color: #F5A700; +} +a.list-group-item-warning, +button.list-group-item-warning { + color: #FFF; +} +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #FFF; + background-color: #dc9600; +} +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #FFF; + border-color: #FFF; +} +.list-group-item-danger { + color: #FFF; + background-color: #BD271E; +} +a.list-group-item-danger, +button.list-group-item-danger { + color: #FFF; +} +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #FFF; + background-color: #a7221b; +} +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #FFF; + border-color: #FFF; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #D3DAE6; +} +.nav > li.disabled > a { + color: #b2bac6; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #b2bac6; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #D3DAE6; + border-color: #006BB4; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #D3DAE6; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #D3DAE6; + background-color: #FFF; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #343741; + background-color: #FFF; + border: 1px solid #D3DAE6; + border-bottom-color: transparent; + cursor: default; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #FFF; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #FFF; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #FFF; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #FFF; + background-color: #006BB4; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #FFF; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #FFF; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #FFF; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + background-color: #017D73; + border-color: #014a44; + color: #FFF; +} +.alert-success hr { + border-top-color: #00312d; +} +.alert-success .alert-link { + color: #e6e6e6; +} +.alert-info { + background-color: #006BB4; + border-color: #004d81; + color: #FFF; +} +.alert-info hr { + border-top-color: #003e68; +} +.alert-info .alert-link { + color: #e6e6e6; +} +.alert-warning { + background-color: #F5A700; + border-color: #c28400; + color: #FFF; +} +.alert-warning hr { + border-top-color: #a97300; +} +.alert-warning .alert-link { + color: #e6e6e6; +} +.alert-danger { + background-color: #BD271E; + border-color: #911e17; + color: #FFF; +} +.alert-danger hr { + border-top-color: #7b1914; +} +.alert-danger .alert-link { + color: #e6e6e6; +} +.bsTooltip { + position: absolute; + z-index: 1040; + display: block; + font-family: 'Open Sans', Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + font-size: 12px; + opacity: 0; + filter: alpha(opacity=0); +} +.bsTooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.bsTooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.bsTooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.bsTooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.bsTooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.bsTooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} +.bsTooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.bsTooltip.top .bsTooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.bsTooltip.top-left .bsTooltip-arrow { + bottom: 0; + right: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.bsTooltip.top-right .bsTooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.bsTooltip.right .bsTooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.bsTooltip.left .bsTooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.bsTooltip.bottom .bsTooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.bsTooltip.bottom-left .bsTooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.bsTooltip.bottom-right .bsTooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + text-align: left; + background-color: #FFF; + border: 1px solid #D3DAE6; + border-radius: 4px; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1); + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #D3DAE6; +} +.dropdown-menu > li > a, +.dropdown-menu > li > button { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #7b7b7b; + white-space: nowrap; +} +.dropdown-menu > li > button { + appearance: none; + background: none; + border: none; + width: 100%; + text-align: left; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > button:hover, +.dropdown-menu > li > a:focus, +.dropdown-menu > li > button:focus { + text-decoration: none; + color: #FFF; + background-color: #343741; +} +.dropdown-menu > .active > button, +.dropdown-menu > .active > a, +.dropdown-menu > .active > button:hover, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > button:focus, +.dropdown-menu > .active > a:focus { + color: #FFF; + text-decoration: none; + outline: 0; + background-color: #343741; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #98A2B3; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + left: auto; + right: 0; +} +.dropdown-menu-left { + left: 0; + right: auto; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #98A2B3; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 0) { + .navbar-right .dropdown-menu { + left: auto; + right: 0; + } + .navbar-right .dropdown-menu-left { + left: 0; + right: auto; + } +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group .form-control:focus { + z-index: 3; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon { + height: 62px; + padding: 18px 27px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 4px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon { + height: 62px; + line-height: 62px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon { + height: 32px; + padding: 6px 9px; + font-size: 12px; + line-height: 1.5; + border-radius: 4px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon { + height: 32px; + line-height: 32px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon { + height: auto; +} +.input-group-addon, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 5px 15px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #343741; + text-align: center; + background-color: #D3DAE6; + border: 1px solid #D3DAE6; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 6px 9px; + font-size: 12px; + border-radius: 4px; +} +.input-group-addon.input-lg { + padding: 18px 27px; + font-size: 18px; + border-radius: 4px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 5px 15px; + line-height: 1.42857143; + text-decoration: none; + color: #006BB4; + background-color: transparent; + border: 1px solid transparent; + margin-left: -1px; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #006BB4; + background-color: rgba(0, 0, 0, 0); + border-color: transparent; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #343741; + background-color: rgba(0, 0, 0, 0); + border-color: transparent; + cursor: default; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #343741; + background-color: rgba(38, 38, 38, 0); + border-color: transparent; + cursor: not-allowed; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 18px 27px; + font-size: 18px; + line-height: 1.3333333; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 6px 9px; + font-size: 12px; + line-height: 1.5; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: rgba(0, 0, 0, 0); +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #FFF; + background-color: transparent; + cursor: not-allowed; +} +.label { + display: inline; + padding: 0.2em 0.6em 0.3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #FFF; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25em; +} +a.label:hover, +a.label:focus { + color: #FFF; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.label-default { + background-color: #006BB4; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #004d81; +} +.label-primary { + background-color: #343741; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #1d1f25; +} +.label-success { + background-color: #017D73; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #014a44; +} +.label-info { + background-color: #006BB4; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #004d81; +} +.label-warning { + background-color: #F5A700; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #c28400; +} +.label-danger { + background-color: #BD271E; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #911e17; +} +.panel { + margin-bottom: 20px; + background-color: #FFF; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #F5F7FA; + border-top: 1px solid #D3DAE6; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-left: 15px; + padding-right: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #D3DAE6; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + border: 0; + margin-bottom: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #D3DAE6; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #D3DAE6; +} +.panel-default { + border-color: #D3DAE6; +} +.panel-default > .panel-heading { + color: #7b7b7b; + background-color: #F5F7FA; + border-color: #D3DAE6; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #D3DAE6; +} +.panel-default > .panel-heading .badge { + color: #F5F7FA; + background-color: #7b7b7b; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #D3DAE6; +} +.panel-primary { + border-color: #343741; +} +.panel-primary > .panel-heading { + color: #FFF; + background-color: #343741; + border-color: #343741; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #343741; +} +.panel-primary > .panel-heading .badge { + color: #343741; + background-color: #FFF; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #343741; +} +.panel-success { + border-color: #014a44; +} +.panel-success > .panel-heading { + color: #FFF; + background-color: #017D73; + border-color: #014a44; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #014a44; +} +.panel-success > .panel-heading .badge { + color: #017D73; + background-color: #FFF; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #014a44; +} +.panel-info { + border-color: #004d81; +} +.panel-info > .panel-heading { + color: #FFF; + background-color: #006BB4; + border-color: #004d81; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #004d81; +} +.panel-info > .panel-heading .badge { + color: #006BB4; + background-color: #FFF; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #004d81; +} +.panel-warning { + border-color: #c28400; +} +.panel-warning > .panel-heading { + color: #FFF; + background-color: #F5A700; + border-color: #c28400; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #c28400; +} +.panel-warning > .panel-heading .badge { + color: #F5A700; + background-color: #FFF; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #c28400; +} +.panel-danger { + border-color: #911e17; +} +.panel-danger > .panel-heading { + color: #FFF; + background-color: #BD271E; + border-color: #911e17; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #911e17; +} +.panel-danger > .panel-heading .badge { + color: #BD271E; + background-color: #FFF; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #911e17; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + font-family: 'Open Sans', Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + font-size: 14px; + background-color: #FFF; + background-clip: padding-box; + border: 1px solid #D3DAE6; + border-radius: 4px; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1); +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 3px 3px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top > .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #92a3c1; + border-top-color: #d3dae6; + bottom: -11px; +} +.popover.top > .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #FFF; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #92a3c1; + border-right-color: #d3dae6; +} +.popover.right > .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #FFF; +} +.popover.bottom > .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #92a3c1; + border-bottom-color: #d3dae6; + top: -11px; +} +.popover.bottom > .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #FFF; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #92a3c1; + border-left-color: #d3dae6; +} +.popover.left > .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #FFF; + bottom: -10px; +} +.clearfix:before, +.clearfix:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after, +.nav:before, +.nav:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after { + content: " "; + display: table; +} +.clearfix:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.dl-horizontal dd:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.modal-header:after, +.modal-footer:after, +.nav:after, +.pager:after, +.panel-body:after { + clear: both; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +.navbar > .container-fluid > .navbar-nav:not(.pull-right):first-child, +.navbar > .container-fluid > .navbar-form:not(.pull-right):first-child { + margin-left: -15px; + margin-top: 4px; +} +.navbar { + border-width: 0; +} +.navbar-btn-link { + margin: 0; + border-radius: 0; +} +@media (max-width: 768px) { + .navbar-btn-link { + width: 100%; + text-align: left; + } +} +.navbar-default .badge { + background-color: #FFF; + color: #F5F7FA; +} +.navbar-inverse .kbnGlobalNav__logoBrand { + height: 45px; + width: 252px; + background-color: #4b4f5d; +} +.navbar-inverse .kbnGlobalNav__smallLogoBrand { + height: 45px; + width: 45px; + background-color: #4b4f5d; +} +.navbar-inverse .badge { + background-color: #FFF; + color: #4b4f5d; +} +.navbar-brand { + cursor: default; + font-size: 1.8em; + user-select: none; +} +.navbar-nav { + font-size: 12px; +} +.navbar-nav > .active > a { + border-bottom-color: #7b7b7b; + background-color: transparent; +} +.navbar-toggle { + margin-top: 4px; +} +.text-primary, +.text-primary:hover { + color: #343741; +} +.text-success, +.text-success:hover { + color: #017D73; +} +.text-danger, +.text-danger:hover { + color: #BD271E; +} +.text-warning, +.text-warning:hover { + color: #F5A700; +} +.text-info, +.text-info:hover { + color: #006BB4; +} +table .success, +.table .success, +table .warning, +.table .warning, +table .danger, +.table .danger, +table .info, +.table .info { + color: #FFF; +} +table .success a, +.table .success a, +table .warning a, +.table .warning a, +table .danger a, +.table .danger a, +table .info a, +.table .info a { + color: #FFF; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #D3DAE6; +} +.form-control, +input { + border-width: 1px; + -webkit-box-shadow: none; + box-shadow: none; +} +.form-control:focus, +input:focus { + -webkit-box-shadow: none; + box-shadow: none; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning .form-control-feedback { + color: #F5A700; +} +.has-warning .form-control, +.has-warning .form-control:focus { + border: 1px solid; + border-color: #F5A700; +} +.has-warning .input-group-addon { + border-color: #F5A700; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error .form-control-feedback { + color: #BD271E; +} +.has-error .form-control, +.has-error .form-control:focus { + border: 1px solid; + border-color: #BD271E; +} +.has-error .input-group-addon { + border-color: #BD271E; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success .form-control-feedback { + color: #017D73; +} +.has-success .form-control, +.has-success .form-control:focus { + border: solid #017D73; +} +.has-success .input-group-addon { + border-color: #017D73; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + border-color: transparent; +} +.pager a, +.pager a:hover { + color: #FFF; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + background-color: rgba(38, 38, 38, 0); +} +.panel { + border-radius: 0; + -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + box-shadow: 0 0 0 rgba(0, 0, 0, 0); +} +.progress { + -webkit-box-shadow: none; + box-shadow: none; +} +.progress .progress-bar { + font-size: 10px; + line-height: 10px; +} +.well { + -webkit-box-shadow: none; + box-shadow: none; +} diff --git a/src/core/server/core_app/assets/legacy_light_theme.min.css b/packages/core/apps/core-apps-server-internal/src/assets/legacy_light_theme.min.css similarity index 100% rename from src/core/server/core_app/assets/legacy_light_theme.min.css rename to packages/core/apps/core-apps-server-internal/src/assets/legacy_light_theme.min.css diff --git a/src/core/server/core_app/bundle_routes/bundle_route.test.mocks.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/bundle_route.test.mocks.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/bundle_route.test.mocks.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/bundle_route.test.mocks.ts diff --git a/src/core/server/core_app/bundle_routes/bundle_route.test.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/bundle_route.test.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/bundle_route.test.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/bundle_route.test.ts diff --git a/src/core/server/core_app/bundle_routes/bundles_route.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/bundles_route.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/bundles_route.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/bundles_route.ts diff --git a/src/core/server/core_app/bundle_routes/dynamic_asset_response.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/dynamic_asset_response.ts similarity index 98% rename from src/core/server/core_app/bundle_routes/dynamic_asset_response.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/dynamic_asset_response.ts index 5287ff483f7ab..219beced6ca65 100644 --- a/src/core/server/core_app/bundle_routes/dynamic_asset_response.ts +++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/dynamic_asset_response.ts @@ -13,7 +13,7 @@ import agent from 'elastic-apm-node'; import type { RequestHandler } from '@kbn/core-http-server'; import { fstat, close } from './fs'; -import { IFileHashCache } from './file_hash_cache'; +import type { IFileHashCache } from './file_hash_cache'; import { getFileHash } from './file_hash'; import { selectCompressedFile } from './select_compressed_file'; diff --git a/src/core/server/core_app/bundle_routes/file_hash.test.mocks.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash.test.mocks.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/file_hash.test.mocks.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash.test.mocks.ts diff --git a/src/core/server/core_app/bundle_routes/file_hash.test.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash.test.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/file_hash.test.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash.test.ts diff --git a/src/core/server/core_app/bundle_routes/file_hash.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash.ts similarity index 94% rename from src/core/server/core_app/bundle_routes/file_hash.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash.ts index e309873254999..da3c85edb377e 100644 --- a/src/core/server/core_app/bundle_routes/file_hash.ts +++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash.ts @@ -8,7 +8,7 @@ import type { Stats } from 'fs'; import { generateFileHash, getFileCacheKey } from './utils'; -import { IFileHashCache } from './file_hash_cache'; +import type { IFileHashCache } from './file_hash_cache'; /** * Get the hash of a file via a file descriptor diff --git a/src/core/server/core_app/bundle_routes/file_hash_cache.test.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash_cache.test.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/file_hash_cache.test.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash_cache.test.ts diff --git a/src/core/server/core_app/bundle_routes/file_hash_cache.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash_cache.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/file_hash_cache.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/file_hash_cache.ts diff --git a/src/core/server/core_app/bundle_routes/fs.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/fs.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/fs.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/fs.ts diff --git a/src/core/server/core_app/bundle_routes/index.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/index.ts similarity index 76% rename from src/core/server/core_app/bundle_routes/index.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/index.ts index 5b2374a74356a..1877d85f83409 100644 --- a/src/core/server/core_app/bundle_routes/index.ts +++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/index.ts @@ -7,3 +7,5 @@ */ export { registerBundleRoutes } from './register_bundle_routes'; +export { type IFileHashCache, FileHashCache } from './file_hash_cache'; +export { registerRouteForBundle } from './bundles_route'; diff --git a/src/core/server/core_app/bundle_routes/register_bundle_routes.test.mocks.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.mocks.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/register_bundle_routes.test.mocks.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.mocks.ts diff --git a/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.ts similarity index 98% rename from src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.ts index f816a85404f7a..6ec5603137340 100644 --- a/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts +++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.test.ts @@ -8,7 +8,7 @@ import { registerRouteForBundleMock } from './register_bundle_routes.test.mocks'; -import { PackageInfo } from '@kbn/config'; +import type { PackageInfo } from '@kbn/config'; import { httpServiceMock } from '@kbn/core-http-server-mocks'; import type { InternalPluginInfo, UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { registerBundleRoutes } from './register_bundle_routes'; diff --git a/src/core/server/core_app/bundle_routes/register_bundle_routes.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.ts similarity index 94% rename from src/core/server/core_app/bundle_routes/register_bundle_routes.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.ts index 4adb50fdc96ca..d0b5094edf94c 100644 --- a/src/core/server/core_app/bundle_routes/register_bundle_routes.ts +++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/register_bundle_routes.ts @@ -7,10 +7,10 @@ */ import { join } from 'path'; -import { PackageInfo } from '@kbn/config'; +import type { PackageInfo } from '@kbn/config'; import { fromRoot } from '@kbn/utils'; import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; -import * as UiSharedDepsSrc from '@kbn/ui-shared-deps-src'; +import { distDir as UiSharedDepsSrcDistDir } from '@kbn/ui-shared-deps-src'; import type { IRouter } from '@kbn/core-http-server'; import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { FileHashCache } from './file_hash_cache'; @@ -53,7 +53,7 @@ export function registerBundleRoutes({ registerRouteForBundle(router, { publicPath: `${serverBasePath}/${buildNum}/bundles/kbn-ui-shared-deps-src/`, routePath: `/${buildNum}/bundles/kbn-ui-shared-deps-src/`, - bundlesPath: UiSharedDepsSrc.distDir, + bundlesPath: UiSharedDepsSrcDistDir, fileHashCache, isDist, }); diff --git a/src/core/server/core_app/bundle_routes/select_compressed_file.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/select_compressed_file.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/select_compressed_file.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/select_compressed_file.ts diff --git a/src/core/server/core_app/bundle_routes/utils.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/utils.ts similarity index 100% rename from src/core/server/core_app/bundle_routes/utils.ts rename to packages/core/apps/core-apps-server-internal/src/bundle_routes/utils.ts diff --git a/src/core/server/core_app/core_app.test.mocks.ts b/packages/core/apps/core-apps-server-internal/src/core_app.test.mocks.ts similarity index 100% rename from src/core/server/core_app/core_app.test.mocks.ts rename to packages/core/apps/core-apps-server-internal/src/core_app.test.mocks.ts diff --git a/src/core/server/core_app/core_app.test.ts b/packages/core/apps/core-apps-server-internal/src/core_app.test.ts similarity index 90% rename from src/core/server/core_app/core_app.test.ts rename to packages/core/apps/core-apps-server-internal/src/core_app.test.ts index 31e4b6176a889..13122b4b09eb7 100644 --- a/src/core/server/core_app/core_app.test.ts +++ b/packages/core/apps/core-apps-server-internal/src/core_app.test.ts @@ -11,11 +11,12 @@ import { registerBundleRoutesMock } from './core_app.test.mocks'; import { mockCoreContext } from '@kbn/core-base-server-mocks'; import { mockRouter } from '@kbn/core-http-router-server-mocks'; import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; -import { coreMock, httpServerMock } from '../mocks'; +import { httpServerMock } from '@kbn/core-http-server-mocks'; import { httpResourcesMock } from '@kbn/core-http-resources-server-mocks'; import { PluginType } from '@kbn/core-base-common'; -import { CoreApp } from './core_app'; -import { RequestHandlerContext } from '..'; +import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; +import { coreInternalLifecycleMock } from '@kbn/core-lifecycle-server-mocks'; +import { CoreAppsService } from './core_app'; const emptyPlugins = (): UiPlugins => ({ internal: new Map(), @@ -25,16 +26,17 @@ const emptyPlugins = (): UiPlugins => ({ describe('CoreApp', () => { let coreContext: ReturnType; - let coreApp: CoreApp; - let internalCorePreboot: ReturnType; + let coreApp: CoreAppsService; + let internalCorePreboot: ReturnType; let prebootHTTPResourcesRegistrar: ReturnType; - let internalCoreSetup: ReturnType; + let internalCoreSetup: ReturnType; let httpResourcesRegistrar: ReturnType; beforeEach(() => { coreContext = mockCoreContext.create(); - internalCorePreboot = coreMock.createInternalPreboot(); + internalCorePreboot = coreInternalLifecycleMock.createInternalPreboot(); + internalCorePreboot.http.registerRoutes.mockImplementation((path, callback) => callback(mockRouter.create()) ); @@ -43,10 +45,11 @@ describe('CoreApp', () => { prebootHTTPResourcesRegistrar ); - internalCoreSetup = coreMock.createInternalSetup(); + internalCoreSetup = coreInternalLifecycleMock.createInternalSetup(); + httpResourcesRegistrar = httpResourcesMock.createRegistrar(); internalCoreSetup.httpResources.createRegistrar.mockReturnValue(httpResourcesRegistrar); - coreApp = new CoreApp(coreContext); + coreApp = new CoreAppsService(coreContext); }); afterEach(() => { diff --git a/src/core/server/core_app/core_app.ts b/packages/core/apps/core-apps-server-internal/src/core_app.ts similarity index 95% rename from src/core/server/core_app/core_app.ts rename to packages/core/apps/core-apps-server-internal/src/core_app.ts index 83665512767e7..97c9eadd75707 100644 --- a/src/core/server/core_app/core_app.ts +++ b/packages/core/apps/core-apps-server-internal/src/core_app.ts @@ -22,9 +22,9 @@ import type { } from '@kbn/core-http-server'; import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import type { HttpResources, HttpResourcesServiceToolkit } from '@kbn/core-http-resources-server'; -import { InternalCorePreboot, InternalCoreSetup } from '@kbn/core-lifecycle-server-internal'; +import type { InternalCorePreboot, InternalCoreSetup } from '@kbn/core-lifecycle-server-internal'; import { registerBundleRoutes } from './bundle_routes'; -import type { InternalCoreAppRequestHandlerContext } from './internal_types'; +import type { InternalCoreAppsServiceRequestHandlerContext } from './internal_types'; /** @internal */ interface CommonRoutesParams { @@ -39,7 +39,7 @@ interface CommonRoutesParams { } /** @internal */ -export class CoreApp { +export class CoreAppsService { private readonly logger: Logger; private readonly env: Env; @@ -91,7 +91,7 @@ export class CoreApp { private registerDefaultRoutes(coreSetup: InternalCoreSetup, uiPlugins: UiPlugins) { const httpSetup = coreSetup.http; - const router = httpSetup.createRouter(''); + const router = httpSetup.createRouter(''); const resources = coreSetup.httpResources.createRegistrar(router); router.get({ path: '/', validate: false }, async (context, req, res) => { diff --git a/packages/core/apps/core-apps-server-internal/src/index.ts b/packages/core/apps/core-apps-server-internal/src/index.ts new file mode 100644 index 0000000000000..d2eca9036f40e --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/src/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { CoreAppsService } from './core_app'; +export type { + InternalCoreAppsServiceRequestHandlerContext, + InternalCoreAppsServiceRouter, +} from './internal_types'; +// only used by integration tests +export { registerRouteForBundle, FileHashCache } from './bundle_routes'; diff --git a/src/core/server/core_app/internal_types.ts b/packages/core/apps/core-apps-server-internal/src/internal_types.ts similarity index 72% rename from src/core/server/core_app/internal_types.ts rename to packages/core/apps/core-apps-server-internal/src/internal_types.ts index 49e73a67a11a8..f294c80664ae4 100644 --- a/src/core/server/core_app/internal_types.ts +++ b/packages/core/apps/core-apps-server-internal/src/internal_types.ts @@ -13,15 +13,15 @@ import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-serv * Request handler context used by core's coreApp routes. * @internal */ -export interface InternalCoreAppRequestHandlerContext extends RequestHandlerContextBase { +export interface InternalCoreAppsServiceRequestHandlerContext extends RequestHandlerContextBase { core: Promise<{ uiSettings: UiSettingsRequestHandlerContext; }>; } /** - * Router bound to the {@link InternalCoreAppRequestHandlerContext}. + * Router bound to the {@link InternalCoreAppsServiceRequestHandlerContext}. * Used by core's coreApp routes. * @internal */ -export type InternalCoreAppRouter = IRouter; +export type InternalCoreAppsServiceRouter = IRouter; diff --git a/packages/core/apps/core-apps-server-internal/tsconfig.json b/packages/core/apps/core-apps-server-internal/tsconfig.json new file mode 100644 index 0000000000000..ff48529c6f303 --- /dev/null +++ b/packages/core/apps/core-apps-server-internal/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ] +} diff --git a/src/core/server/integration_tests/core_app/bundle_routes.test.ts b/src/core/server/integration_tests/core_app/bundle_routes.test.ts index b3b02cef691d9..af3782b015912 100644 --- a/src/core/server/integration_tests/core_app/bundle_routes.test.ts +++ b/src/core/server/integration_tests/core_app/bundle_routes.test.ts @@ -15,8 +15,7 @@ import { contextServiceMock } from '@kbn/core-http-context-server-mocks'; import type { IRouter } from '@kbn/core-http-server'; import { HttpService } from '@kbn/core-http-server-internal'; import { createHttpServer } from '@kbn/core-http-server-mocks'; -import { registerRouteForBundle } from '../../core_app/bundle_routes/bundles_route'; -import { FileHashCache } from '../../core_app/bundle_routes/file_hash_cache'; +import { registerRouteForBundle, FileHashCache } from '@kbn/core-apps-server-internal'; const buildNum = 1234; const fooPluginFixture = resolve(__dirname, './__fixtures__/plugin/foo'); diff --git a/src/core/server/server.ts b/src/core/server/server.ts index 7bddb8da80da1..2b5c2ed5beb09 100644 --- a/src/core/server/server.ts +++ b/src/core/server/server.ts @@ -79,7 +79,7 @@ import { PluginsService, config as pluginsConfig, } from '@kbn/core-plugins-server-internal'; -import { CoreApp } from './core_app'; +import { CoreAppsService } from '@kbn/core-apps-server-internal'; import { elasticApmConfig } from './root/elastic_config'; const coreId = Symbol('core'); @@ -118,7 +118,7 @@ export class Server { private readonly httpResources: HttpResourcesService; private readonly status: StatusService; private readonly logging: LoggingService; - private readonly coreApp: CoreApp; + private readonly coreApp: CoreAppsService; private readonly coreUsageData: CoreUsageDataService; private readonly i18n: I18nService; private readonly deprecations: DeprecationsService; @@ -161,7 +161,7 @@ export class Server { this.node = new NodeService(core); this.metrics = new MetricsService(core); this.status = new StatusService(core); - this.coreApp = new CoreApp(core); + this.coreApp = new CoreAppsService(core); this.httpResources = new HttpResourcesService(core); this.logging = new LoggingService(core); this.coreUsageData = new CoreUsageDataService(core); diff --git a/src/dev/precommit_hook/casing_check_config.js b/src/dev/precommit_hook/casing_check_config.js index f79c53e115149..1289768bfbcd9 100644 --- a/src/dev/precommit_hook/casing_check_config.js +++ b/src/dev/precommit_hook/casing_check_config.js @@ -31,7 +31,7 @@ export const IGNORE_FILE_GLOBS = [ '**/.*', '**/__mocks__/**/*', 'x-pack/docs/**/*', - 'src/core/server/core_app/assets/fonts/**/*', + 'packages/core/apps/core-apps-server-internal/src/assets/fonts/**/*', 'src/dev/code_coverage/ingest_coverage/integration_tests/mocks/**/*', 'packages/kbn-utility-types/test-d/**/*', '**/Jenkinsfile*', diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx index 3bf4ae8f91c8c..da1931120d371 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx @@ -232,15 +232,21 @@ describe('Guided setup', () => { expect(find('guideDescription').text()).toContain( `You've completed the Elastic Testing example guide` ); - expect(exists('useElasticButton')).toBe(true); + expect(exists('onboarding--completeGuideButton--testGuide')).toBe(true); }); describe('Steps', () => { - const clickActiveStepButton = async () => { + const clickStepButton = async ({ + telemetryGuideId, + stepNumber, + }: { + telemetryGuideId: string; + stepNumber: number; + }) => { const { component, find } = testBed; await act(async () => { - find('activeStepButton').simulate('click'); + find(`onboarding--stepButton--${telemetryGuideId}--step${stepNumber}`).simulate('click'); }); component.update(); @@ -251,9 +257,9 @@ describe('Guided setup', () => { await updateComponentWithState(component, mockActiveTestGuideState, true); - expect(find('activeStepButton').text()).toEqual('Start'); + expect(find('onboarding--stepButton--testGuide--step1').text()).toEqual('Start'); - await clickActiveStepButton(); + await clickStepButton({ telemetryGuideId: 'testGuide', stepNumber: 1 }); expect(exists('guidePanel')).toBe(false); }); @@ -263,9 +269,9 @@ describe('Guided setup', () => { await updateComponentWithState(component, mockInProgressTestGuideState, true); - expect(find('activeStepButton').text()).toEqual('Continue'); + expect(find('onboarding--stepButton--testGuide--step1').text()).toEqual('Continue'); - await clickActiveStepButton(); + await clickStepButton({ telemetryGuideId: 'testGuide', stepNumber: 1 }); expect(exists('guidePanel')).toBe(false); }); @@ -275,14 +281,14 @@ describe('Guided setup', () => { await updateComponentWithState(component, mockReadyToCompleteTestGuideState, true); - expect(find('activeStepButton').text()).toEqual('Mark done'); + expect(find('onboarding--stepButton--testGuide--step2').text()).toEqual('Mark done'); - await clickActiveStepButton(); + await clickStepButton({ telemetryGuideId: 'testGuide', stepNumber: 2 }); // The guide panel should remain open after marking a step done expect(exists('guidePanel')).toBe(true); - // Dependent on the Search guide config, which expects another step to start - expect(find('activeStepButton').text()).toEqual('Start'); + // Dependent on the Search guide config, which expects step 3 to start + expect(find('onboarding--stepButton--testGuide--step3').text()).toEqual('Start'); }); test('should render the step description as a paragraph if it is only one sentence', async () => { @@ -357,19 +363,19 @@ describe('Guided setup', () => { component.update(); - expect(exists('quitGuideModal')).toBe(true); + expect(exists('onboarding--quitGuideModal')).toBe(true); }); test('quit a guide', async () => { const { component, find, exists } = testBed; await act(async () => { - find('confirmModalConfirmButton').simulate('click'); + find('onboarding--quitGuideButton--testGuide').simulate('click'); }); component.update(); - expect(exists('quitGuideModal')).toBe(false); + expect(exists('onboarding--quitGuideModal')).toBe(false); // TODO check for the correct button behavior once https://github.com/elastic/kibana/issues/141129 is implemented }); @@ -378,12 +384,12 @@ describe('Guided setup', () => { const { component, find, exists } = testBed; await act(async () => { - find('confirmModalCancelButton').simulate('click'); + find('onboarding--cancelQuitGuideButton--testGuide').simulate('click'); }); component.update(); - expect(exists('quitGuideModal')).toBe(false); + expect(exists('onboarding--quitGuideModal')).toBe(false); expect(exists('guideButton')).toBe(true); }); }); diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.tsx b/src/plugins/guided_onboarding/public/components/guide_panel.tsx index 823637b23247a..c81844bc0dbbf 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel.tsx @@ -31,6 +31,7 @@ import { i18n } from '@kbn/i18n'; import { ApplicationStart } from '@kbn/core/public'; import type { GuideState, GuideStep as GuideStepStatus } from '@kbn/guided-onboarding'; +import { GuideId } from '@kbn/guided-onboarding'; import type { GuideConfig, StepConfig } from '../types'; import type { ApiService } from '../services/api'; @@ -58,6 +59,20 @@ const getProgress = (state?: GuideState): number => { return 0; }; +// Temporarily provide a different guide ID for telemetry purposes +// Should not be necessary once https://github.com/elastic/kibana/issues/144452 is addressed +const getTelemetryGuideId = (guideId: GuideId) => { + switch (guideId) { + case 'security': + return 'siem'; + case 'observability': + return 'kubernetes'; + case 'search': + default: + return guideId; + } +}; + export const GuidePanel = ({ api, application }: GuidePanelProps) => { const { euiTheme } = useEuiTheme(); const [isGuideOpen, setIsGuideOpen] = useState(false); @@ -146,6 +161,7 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { const stepsCompleted = getProgress(guideState); const isGuideReadyToComplete = guideState?.status === 'ready_to_complete'; + const telemetryGuideId = getTelemetryGuideId(guideState.guideId); return ( <> @@ -265,6 +281,7 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { stepNumber={index + 1} handleButtonClick={() => handleStepButtonClick(stepState, step)} key={accordionId} + telemetryGuideId={telemetryGuideId} /> ); } @@ -276,7 +293,8 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { completeGuide(guideConfig.completedGuideRedirectLocation)} fill - data-test-subj="useElasticButton" + // data-test-subj used for FS tracking and testing + data-test-subj={`onboarding--completeGuideButton--${telemetryGuideId}`} > {i18n.translate('guidedOnboarding.dropdownPanel.elasticButtonLabel', { defaultMessage: 'Continue using Elastic', @@ -353,7 +371,11 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { )} {isQuitGuideModalOpen && ( - + )} ); diff --git a/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx b/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx index 1def8ce0a266a..eb153efca9102 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx @@ -31,6 +31,7 @@ interface GuideStepProps { stepConfig: StepConfig; stepNumber: number; handleButtonClick: () => void; + telemetryGuideId: string; } export const GuideStep = ({ @@ -39,6 +40,7 @@ export const GuideStep = ({ stepNumber, stepConfig, handleButtonClick, + telemetryGuideId, }: GuideStepProps) => { const { euiTheme } = useEuiTheme(); const styles = getGuidePanelStepStyles(euiTheme, stepStatus); @@ -111,7 +113,8 @@ export const GuideStep = ({ handleButtonClick()} fill - data-test-subj="activeStepButton" + // data-test-subj used for FS tracking and tests + data-test-subj={`onboarding--stepButton--${telemetryGuideId}--step${stepNumber}`} > {getStepButtonLabel()} diff --git a/src/plugins/guided_onboarding/public/components/quit_guide_modal.tsx b/src/plugins/guided_onboarding/public/components/quit_guide_modal.tsx index 171750cd83db5..7325ffb6114d1 100644 --- a/src/plugins/guided_onboarding/public/components/quit_guide_modal.tsx +++ b/src/plugins/guided_onboarding/public/components/quit_guide_modal.tsx @@ -7,7 +7,16 @@ */ import React, { useState } from 'react'; -import { EuiText, EuiConfirmModal } from '@elastic/eui'; +import { + EuiText, + EuiButton, + EuiButtonEmpty, + EuiModal, + EuiModalBody, + EuiModalFooter, + EuiModalHeader, + EuiModalHeaderTitle, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import type { GuideState } from '@kbn/guided-onboarding'; import { apiService } from '../services/api'; @@ -15,9 +24,14 @@ import { apiService } from '../services/api'; interface QuitGuideModalProps { closeModal: () => void; currentGuide: GuideState; + telemetryGuideId: string; } -export const QuitGuideModal = ({ closeModal, currentGuide }: QuitGuideModalProps) => { +export const QuitGuideModal = ({ + closeModal, + currentGuide, + telemetryGuideId, +}: QuitGuideModalProps) => { const [isDeleting, setIsDeleting] = useState(false); const deleteGuide = async () => { @@ -27,32 +41,52 @@ export const QuitGuideModal = ({ closeModal, currentGuide }: QuitGuideModalProps }; return ( - - -

- {i18n.translate('guidedOnboarding.quitGuideModal.modalDescription', { - defaultMessage: - 'You can restart anytime by opening the Setup guide from the Help menu.', + + + {i18n.translate('guidedOnboarding.quitGuideModal.modalTitle', { + defaultMessage: 'Quit this guide?', + })} + + + + +

+ {i18n.translate('guidedOnboarding.quitGuideModal.modalDescription', { + defaultMessage: + 'You can restart anytime by opening the Setup guide from the Help menu.', + })} +

+
+ + + + {i18n.translate('guidedOnboarding.quitGuideModal.cancelButtonLabel', { + defaultMessage: 'Cancel', + })} + + + + {i18n.translate('guidedOnboarding.quitGuideModal.quitButtonLabel', { + defaultMessage: 'Quit guide', })} -

- -
+
+ + ); }; diff --git a/src/plugins/home/public/application/components/guided_onboarding/__snapshots__/getting_started.test.tsx.snap b/src/plugins/home/public/application/components/guided_onboarding/__snapshots__/getting_started.test.tsx.snap index 0886dd9fb0ad8..685e36e46810c 100644 --- a/src/plugins/home/public/application/components/guided_onboarding/__snapshots__/getting_started.test.tsx.snap +++ b/src/plugins/home/public/application/components/guided_onboarding/__snapshots__/getting_started.test.tsx.snap @@ -102,7 +102,7 @@ exports[`getting started should render getting started component 1`] = ` className="eui-textCenter" > I’d like to do something else (skip) diff --git a/src/plugins/home/public/application/components/guided_onboarding/getting_started.test.tsx b/src/plugins/home/public/application/components/guided_onboarding/getting_started.test.tsx index 45b643fd11433..624e56b85538e 100644 --- a/src/plugins/home/public/application/components/guided_onboarding/getting_started.test.tsx +++ b/src/plugins/home/public/application/components/guided_onboarding/getting_started.test.tsx @@ -58,7 +58,7 @@ describe('getting started', () => { test('skip button should disable home welcome screen', async () => { const component = mountWithIntl(); - const skipButton = findTestSubject(component, 'onboarding--skipUseCaseTourLink'); + const skipButton = findTestSubject(component, 'onboarding--skipGuideLink'); skipButton.simulate('click'); expect(localStorage.getItem(KEY_ENABLE_WELCOME)).toBe('false'); diff --git a/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx b/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx index c82b200dfb6bd..eb7f05ef7161a 100644 --- a/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx +++ b/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx @@ -145,7 +145,7 @@ export const GettingStarted = () => {
{/* data-test-subj used for FS tracking */} - + {skipText}
diff --git a/tsconfig.base.json b/tsconfig.base.json index ef94f9bef56c2..95f620b6e4382 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -44,6 +44,8 @@ "@kbn/core-apps-browser-internal/*": ["packages/core/apps/core-apps-browser-internal/*"], "@kbn/core-apps-browser-mocks": ["packages/core/apps/core-apps-browser-mocks"], "@kbn/core-apps-browser-mocks/*": ["packages/core/apps/core-apps-browser-mocks/*"], + "@kbn/core-apps-server-internal": ["packages/core/apps/core-apps-server-internal"], + "@kbn/core-apps-server-internal/*": ["packages/core/apps/core-apps-server-internal/*"], "@kbn/core-base-browser-internal": ["packages/core/base/core-base-browser-internal"], "@kbn/core-base-browser-internal/*": ["packages/core/base/core-base-browser-internal/*"], "@kbn/core-base-browser-mocks": ["packages/core/base/core-base-browser-mocks"], diff --git a/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx b/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx index b78542f291f72..4a6dd62b46e7c 100644 --- a/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx +++ b/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx @@ -93,13 +93,14 @@ export function ServiceNodeMetrics({ serviceNodeName }: Props) { kuery, start, end, + environment, }, }, } ); } }, - [kuery, serviceName, serviceNodeName, start, end] + [kuery, serviceName, serviceNodeName, start, end, environment] ); const { docLinks } = useApmPluginContext().core; diff --git a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/filters/index.tsx b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/filters/index.tsx index 8cad711759aa1..22a1544d2013f 100644 --- a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/filters/index.tsx +++ b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/filters/index.tsx @@ -19,6 +19,7 @@ type MobileFilter = interface Props { end: string; environment: Environment; + transactionType?: string; kuery: string; start: string; filters: Record; @@ -32,6 +33,7 @@ const ALL_OPTION = { export function MobileFilters({ end, environment, + transactionType, kuery, start, filters, @@ -45,12 +47,12 @@ export function MobileFilters({ { params: { path: { serviceName }, - query: { end, environment, kuery, start }, + query: { end, environment, kuery, start, transactionType }, }, } ); }, - [end, environment, kuery, serviceName, start] + [end, environment, kuery, serviceName, start, transactionType] ); function toSelectOptions(items?: string[]) { diff --git a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/service_oveview_mobile_charts.tsx b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/service_oveview_mobile_charts.tsx index 62e8743049552..12948d098af57 100644 --- a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/service_oveview_mobile_charts.tsx +++ b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/service_oveview_mobile_charts.tsx @@ -56,6 +56,7 @@ export function ServiceOverviewMobileCharts({ device, osVersion, appVersion, + transactionType, }, } = useApmParams('/services/{serviceName}/overview'); @@ -75,6 +76,7 @@ export function ServiceOverviewMobileCharts({ start={start} end={end} environment={environment} + transactionType={transactionType} kuery={kuery} filters={{ device, diff --git a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/use_filters_for_mobile_charts.ts b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/use_filters_for_mobile_charts.ts index 2c79c5a34dc75..3412decc3f9be 100644 --- a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/use_filters_for_mobile_charts.ts +++ b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_charts/use_filters_for_mobile_charts.ts @@ -8,13 +8,11 @@ import { useMemo } from 'react'; import { type QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; import { isNil, isEmpty } from 'lodash'; -import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { environmentQuery } from '../../../../../common/utils/environment_query'; import { useApmParams } from '../../../../hooks/use_apm_params'; import { SERVICE_NAME, TRANSACTION_TYPE, - PROCESSOR_EVENT, HOST_OS_VERSION, DEVICE_MODEL_NAME, NETWORK_CONNECTION_TYPE, @@ -48,7 +46,6 @@ export function useFiltersForMobileCharts() { return useMemo( () => [ - ...termQuery(PROCESSOR_EVENT, ProcessorEvent.transaction), ...termQuery(SERVICE_NAME, serviceName), ...termQuery(TRANSACTION_TYPE, transactionType), ...termQuery(HOST_OS_VERSION, osVersion), diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts index 2aac36c721ba1..bdd1667b4c8e8 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts @@ -11,19 +11,17 @@ import { kqlQuery, rangeQuery, } from '@kbn/observability-plugin/server'; +import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { DEVICE_MODEL_NAME, HOST_OS_VERSION, NETWORK_CONNECTION_TYPE, SERVICE_NAME, SERVICE_VERSION, + TRANSACTION_TYPE, } from '../../../common/elasticsearch_fieldnames'; import { environmentQuery } from '../../../common/utils/environment_query'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -import { - getDocumentTypeFilterForTransactions, - getProcessorEventForTransactions, -} from '../../lib/helpers/transactions'; type MobileFiltersTypes = | 'device' @@ -40,22 +38,26 @@ export async function getMobileFilters({ kuery, apmEventClient, serviceName, + transactionType, environment, start, end, - searchAggregatedTransactions, }: { kuery: string; apmEventClient: APMEventClient; serviceName: string; + transactionType?: string; environment: string; start: number; end: number; - searchAggregatedTransactions: boolean; }): Promise { const response = await apmEventClient.search('get_mobile_filters', { apm: { - events: [getProcessorEventForTransactions(searchAggregatedTransactions)], + events: [ + ProcessorEvent.error, + ProcessorEvent.metric, + ProcessorEvent.transaction, + ], }, body: { track_total_hits: false, @@ -64,12 +66,10 @@ export async function getMobileFilters({ bool: { filter: [ ...termQuery(SERVICE_NAME, serviceName), + ...termQuery(TRANSACTION_TYPE, transactionType), ...rangeQuery(start, end), ...environmentQuery(environment), ...kqlQuery(kuery), - ...getDocumentTypeFilterForTransactions( - searchAggregatedTransactions - ), ], }, }, diff --git a/x-pack/plugins/apm/server/routes/mobile/route.ts b/x-pack/plugins/apm/server/routes/mobile/route.ts index 584d6d85f362f..81042f9522d92 100644 --- a/x-pack/plugins/apm/server/routes/mobile/route.ts +++ b/x-pack/plugins/apm/server/routes/mobile/route.ts @@ -7,8 +7,6 @@ import * as t from 'io-ts'; import { getApmEventClient } from '../../lib/helpers/get_apm_event_client'; -import { setupRequest } from '../../lib/helpers/setup_request'; -import { getSearchTransactionsEvents } from '../../lib/helpers/transactions'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; import { getMobileFilters } from './get_mobile_filters'; @@ -19,7 +17,14 @@ const mobileFilters = createApmServerRoute({ path: t.type({ serviceName: t.string, }), - query: t.intersection([kueryRt, rangeRt, environmentRt]), + query: t.intersection([ + kueryRt, + rangeRt, + environmentRt, + t.partial({ + transactionType: t.string, + }), + ]), }), options: { tags: ['access:apm'] }, handler: async ( @@ -27,28 +32,19 @@ const mobileFilters = createApmServerRoute({ ): Promise<{ mobileFilters: Awaited>; }> => { - const [setup, apmEventClient] = await Promise.all([ - setupRequest(resources), - getApmEventClient(resources), - ]); + const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName } = params.path; - const { kuery, environment, start, end } = params.query; - const searchAggregatedTransactions = await getSearchTransactionsEvents({ - apmEventClient, - config: setup.config, - kuery, - start, - end, - }); + const { kuery, environment, start, end, transactionType } = params.query; + const filters = await getMobileFilters({ kuery, environment, + transactionType, start, end, serviceName, apmEventClient, - searchAggregatedTransactions, }); return { mobileFilters: filters }; }, diff --git a/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts index 227dcab3deb41..f85bed4b77bba 100644 --- a/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts @@ -20,7 +20,6 @@ import { environmentQuery, serviceNodeNameQuery, } from '../../../common/utils/environment_query'; -import { ENVIRONMENT_ALL } from '../../../common/environment_filter_values'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; export async function getServiceNodeMetadata({ @@ -30,6 +29,7 @@ export async function getServiceNodeMetadata({ apmEventClient, start, end, + environment, }: { kuery: string; serviceName: string; @@ -37,6 +37,7 @@ export async function getServiceNodeMetadata({ apmEventClient: APMEventClient; start: number; end: number; + environment: string; }) { const params = { apm: { @@ -50,7 +51,7 @@ export async function getServiceNodeMetadata({ filter: [ { term: { [SERVICE_NAME]: serviceName } }, ...rangeQuery(start, end), - ...environmentQuery(ENVIRONMENT_ALL.value), + ...environmentQuery(environment), ...kqlQuery(kuery), ...serviceNodeNameQuery(serviceNodeName), ], diff --git a/x-pack/plugins/apm/server/routes/services/route.ts b/x-pack/plugins/apm/server/routes/services/route.ts index 0dc2de2d68b45..d1b0e25fb4d05 100644 --- a/x-pack/plugins/apm/server/routes/services/route.ts +++ b/x-pack/plugins/apm/server/routes/services/route.ts @@ -426,7 +426,7 @@ const serviceNodeMetadataRoute = createApmServerRoute({ serviceName: t.string, serviceNodeName: t.string, }), - query: t.intersection([kueryRt, rangeRt]), + query: t.intersection([kueryRt, rangeRt, environmentRt]), }), options: { tags: ['access:apm'] }, handler: async ( @@ -435,7 +435,7 @@ const serviceNodeMetadataRoute = createApmServerRoute({ const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName, serviceNodeName } = params.path; - const { kuery, start, end } = params.query; + const { kuery, start, end, environment } = params.query; return getServiceNodeMetadata({ kuery, @@ -444,6 +444,7 @@ const serviceNodeMetadataRoute = createApmServerRoute({ serviceNodeName, start, end, + environment, }); }, }); diff --git a/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts b/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts index faa160063dfa1..9e64bc127db7c 100644 --- a/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts +++ b/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts @@ -28,6 +28,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { start: new Date(start).toISOString(), end: new Date(end).toISOString(), kuery: '', + environment: 'production', }, }, }); diff --git a/x-pack/test/stack_functional_integration/apps/ccs/ccs_console.js b/x-pack/test/stack_functional_integration/apps/ccs/ccs_console.js new file mode 100644 index 0000000000000..8a86c5fc65f15 --- /dev/null +++ b/x-pack/test/stack_functional_integration/apps/ccs/ccs_console.js @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; + +export default function ({ getService, getPageObjects }) { + const retry = getService('retry'); + const log = getService('log'); + const PageObjects = getPageObjects(['common', 'console']); + + describe('Integration Tests - Console App CCS', function describeIndexTests() { + this.tags('includeFirefox'); + before(async () => { + log.debug('navigateTo console'); + await PageObjects.common.navigateToApp('console'); + await retry.try(async () => { + await PageObjects.console.collapseHelp(); + }); + }); + + describe('Perform CCS Search in Console', () => { + before(async () => { + await PageObjects.console.clearTextArea(); + }); + it('it should be able to access remote data', async () => { + await PageObjects.console.enterRequest( + '\nGET data:makelogs工程-*/_search\n {\n "query": {\n "bool": {\n "must": [\n {"match": {"extension" : "jpg"' + ); + await PageObjects.console.clickPlay(); + await retry.try(async () => { + const actualResponse = await PageObjects.console.getResponse(); + expect(actualResponse).to.contain('"_index": "data:makelogs工程-0"'); + }); + }); + }); + }); +} diff --git a/x-pack/test/stack_functional_integration/apps/ccs/index.js b/x-pack/test/stack_functional_integration/apps/ccs/index.js index ac82ca0dfda65..2f24a0e31d7dc 100644 --- a/x-pack/test/stack_functional_integration/apps/ccs/index.js +++ b/x-pack/test/stack_functional_integration/apps/ccs/index.js @@ -8,5 +8,6 @@ export default function ({ loadTestFile }) { describe('ccs test', function () { loadTestFile(require.resolve('./ccs_discover')); + loadTestFile(require.resolve('./ccs_console')); }); } diff --git a/yarn.lock b/yarn.lock index 5ce08cea40dff..ca156c451e3c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2788,6 +2788,10 @@ version "0.0.0" uid "" +"@kbn/core-apps-server-internal@link:bazel-bin/packages/core/apps/core-apps-server-internal": + version "0.0.0" + uid "" + "@kbn/core-base-browser-internal@link:bazel-bin/packages/core/base/core-base-browser-internal": version "0.0.0" uid ""