2022-01-31 00:57:14 -06:00
|
|
|
@use 'sass:list';
|
2017-11-29 08:26:16 -06:00
|
|
|
$input-border: 1px solid $input-border-color;
|
2016-02-15 15:24:28 -06:00
|
|
|
|
2016-02-15 08:27:41 -06:00
|
|
|
.gf-form {
|
2016-02-15 15:24:28 -06:00
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
2019-01-29 07:36:09 -06:00
|
|
|
align-items: flex-start;
|
2016-02-18 07:44:36 -06:00
|
|
|
text-align: left;
|
2016-04-15 18:56:39 -05:00
|
|
|
position: relative;
|
2020-04-13 02:58:40 -05:00
|
|
|
margin-bottom: $space-xs;
|
2016-02-15 08:27:41 -06:00
|
|
|
|
2016-04-17 11:14:25 -05:00
|
|
|
&--offset-1 {
|
|
|
|
margin-left: $spacer;
|
2016-02-15 08:27:41 -06:00
|
|
|
}
|
2016-04-17 21:04:43 -05:00
|
|
|
|
|
|
|
&--grow {
|
|
|
|
flex-grow: 1;
|
|
|
|
}
|
2017-08-31 09:38:49 -05:00
|
|
|
|
|
|
|
&--flex-end {
|
|
|
|
justify-content: flex-end;
|
|
|
|
}
|
2017-11-29 10:13:50 -06:00
|
|
|
|
2019-09-12 07:42:28 -05:00
|
|
|
&--align-center {
|
|
|
|
align-content: center;
|
|
|
|
}
|
|
|
|
|
2017-11-29 10:13:50 -06:00
|
|
|
&--alt {
|
|
|
|
flex-direction: column;
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
|
|
.gf-form-label {
|
|
|
|
padding: 4px 0;
|
|
|
|
}
|
|
|
|
}
|
2016-02-15 08:27:41 -06:00
|
|
|
}
|
|
|
|
|
2017-12-14 05:46:00 -06:00
|
|
|
.gf-form--has-input-icon {
|
|
|
|
position: relative;
|
2019-03-12 06:30:34 -05:00
|
|
|
margin-right: $space-xs;
|
2017-12-14 05:46:00 -06:00
|
|
|
|
|
|
|
.gf-form-input-icon {
|
|
|
|
position: absolute;
|
2020-04-12 15:20:02 -05:00
|
|
|
top: 8px;
|
2017-12-14 05:46:00 -06:00
|
|
|
font-size: $font-size-lg;
|
|
|
|
left: 10px;
|
|
|
|
color: $input-color-placeholder;
|
|
|
|
}
|
|
|
|
|
|
|
|
> input {
|
2017-12-14 06:08:32 -06:00
|
|
|
padding-left: 35px;
|
2017-12-14 05:46:00 -06:00
|
|
|
|
|
|
|
&:focus + .gf-form-input-icon {
|
2017-12-19 09:22:41 -06:00
|
|
|
color: $text-muted;
|
2017-12-14 05:46:00 -06:00
|
|
|
}
|
|
|
|
}
|
2018-01-16 05:52:13 -06:00
|
|
|
|
|
|
|
.Select--multi .Select-multi-value-wrapper,
|
|
|
|
.Select-placeholder {
|
|
|
|
padding-left: 30px;
|
|
|
|
}
|
2017-12-14 05:46:00 -06:00
|
|
|
}
|
|
|
|
|
2016-04-18 10:35:24 -05:00
|
|
|
.gf-form-disabled {
|
|
|
|
color: $text-color-weak;
|
|
|
|
|
2017-06-22 16:10:43 -05:00
|
|
|
.gf-form-select-wrapper::after {
|
|
|
|
color: $text-color-weak;
|
|
|
|
}
|
|
|
|
|
2016-04-18 10:35:24 -05:00
|
|
|
a,
|
|
|
|
.gf-form-input {
|
|
|
|
color: $text-color-weak;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-02-15 08:27:41 -06:00
|
|
|
.gf-form-group {
|
2016-02-18 05:28:49 -06:00
|
|
|
margin-bottom: $spacer * 2.5;
|
2016-02-15 08:27:41 -06:00
|
|
|
}
|
|
|
|
|
2016-02-15 15:24:28 -06:00
|
|
|
.gf-form-inline {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
align-content: flex-start;
|
2017-12-13 08:05:43 -06:00
|
|
|
|
2019-02-04 10:26:20 -06:00
|
|
|
&--nowrap {
|
|
|
|
flex-wrap: nowrap;
|
|
|
|
}
|
2020-04-13 02:58:40 -05:00
|
|
|
|
2020-06-01 03:52:57 -05:00
|
|
|
&--xs-view-flex-column {
|
|
|
|
flex-direction: row;
|
|
|
|
flex-wrap: nowrap;
|
|
|
|
@include media-breakpoint-down(xs) {
|
|
|
|
flex-direction: column;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-13 02:58:40 -05:00
|
|
|
.select-container {
|
|
|
|
margin-right: $space-xs;
|
|
|
|
}
|
2020-04-27 11:29:41 -05:00
|
|
|
|
|
|
|
.gf-form-spacing {
|
|
|
|
margin-right: $space-xs;
|
|
|
|
}
|
2016-02-15 08:27:41 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
.gf-form-button-row {
|
2016-02-24 10:49:08 -06:00
|
|
|
padding-top: $spacer * 1.5;
|
2017-12-19 09:22:41 -06:00
|
|
|
a,
|
|
|
|
button {
|
2016-02-18 05:16:47 -06:00
|
|
|
margin-right: $spacer;
|
|
|
|
}
|
2016-02-15 08:27:41 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
.gf-form-label {
|
2020-04-05 13:02:52 -05:00
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
2019-03-28 05:13:53 -05:00
|
|
|
padding: $input-padding;
|
2016-02-15 15:24:28 -06:00
|
|
|
flex-shrink: 0;
|
2017-08-14 15:44:01 -05:00
|
|
|
font-weight: $font-weight-semi-bold;
|
2017-12-10 05:21:04 -06:00
|
|
|
font-size: $font-size-sm;
|
2017-10-18 00:49:52 -05:00
|
|
|
background-color: $input-label-bg;
|
2019-03-13 03:40:56 -05:00
|
|
|
height: $input-height;
|
2020-04-26 14:59:14 -05:00
|
|
|
line-height: $input-height;
|
2020-04-13 02:58:40 -05:00
|
|
|
margin-right: $space-xs;
|
|
|
|
border-radius: $input-border-radius;
|
|
|
|
justify-content: space-between;
|
2020-04-14 04:32:14 -05:00
|
|
|
border: none;
|
2016-03-29 12:03:24 -05:00
|
|
|
|
2016-04-17 21:04:43 -05:00
|
|
|
&--grow {
|
|
|
|
flex-grow: 1;
|
|
|
|
}
|
2017-05-19 04:14:11 -05:00
|
|
|
|
|
|
|
&--error {
|
|
|
|
color: $critical;
|
|
|
|
}
|
2017-12-19 06:33:34 -06:00
|
|
|
|
2018-12-07 10:15:46 -06:00
|
|
|
&--transparent {
|
|
|
|
background-color: transparent;
|
|
|
|
border: 0;
|
|
|
|
text-align: right;
|
|
|
|
padding-left: 0px;
|
2018-11-02 02:25:36 -05:00
|
|
|
}
|
|
|
|
|
2020-04-05 13:02:52 -05:00
|
|
|
&--variable {
|
|
|
|
color: $variable;
|
|
|
|
background: $panel-bg;
|
|
|
|
border: $panel-border;
|
|
|
|
}
|
|
|
|
|
2020-10-29 13:48:54 -05:00
|
|
|
&--dashlink {
|
|
|
|
background: $panel-bg;
|
|
|
|
border: $panel-border;
|
|
|
|
}
|
|
|
|
|
2020-04-14 14:17:44 -05:00
|
|
|
&--justify-left {
|
|
|
|
justify-content: left;
|
|
|
|
}
|
|
|
|
|
2018-12-17 10:54:40 -06:00
|
|
|
&--btn {
|
2020-04-13 02:58:40 -05:00
|
|
|
border: none;
|
2018-12-17 10:54:40 -06:00
|
|
|
border-radius: $border-radius;
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background: $list-item-hover-bg;
|
2019-01-29 01:14:07 -06:00
|
|
|
color: $link-color;
|
|
|
|
}
|
2018-12-17 10:54:40 -06:00
|
|
|
}
|
|
|
|
|
2017-12-19 06:33:34 -06:00
|
|
|
&:disabled {
|
2017-12-20 04:22:29 -06:00
|
|
|
color: $text-color-weak;
|
2017-12-19 06:33:34 -06:00
|
|
|
}
|
2016-03-29 12:03:24 -05:00
|
|
|
}
|
|
|
|
|
2017-12-12 05:02:44 -06:00
|
|
|
.gf-form-label + .gf-form-label {
|
2019-03-12 06:30:34 -05:00
|
|
|
margin-right: $space-xs;
|
2017-12-12 05:02:44 -06:00
|
|
|
}
|
|
|
|
|
2017-04-21 08:52:42 -05:00
|
|
|
.gf-form-pre {
|
2020-05-14 09:04:53 -05:00
|
|
|
display: block !important;
|
2017-04-21 08:52:42 -05:00
|
|
|
flex-grow: 1;
|
|
|
|
margin: 0;
|
2019-03-12 06:30:34 -05:00
|
|
|
margin-right: $space-xs;
|
2019-03-13 03:40:56 -05:00
|
|
|
border: $border-width solid transparent;
|
2017-12-09 14:42:48 -06:00
|
|
|
border-left: none;
|
2020-04-13 02:58:40 -05:00
|
|
|
@include border-radius($input-border-radius);
|
2017-04-21 08:52:42 -05:00
|
|
|
}
|
|
|
|
|
2016-11-18 09:53:07 -06:00
|
|
|
.gf-form-textarea {
|
|
|
|
max-width: 650px;
|
|
|
|
}
|
|
|
|
|
2016-02-16 07:07:41 -06:00
|
|
|
.gf-form-input {
|
|
|
|
display: block;
|
|
|
|
width: 100%;
|
2019-03-13 03:40:56 -05:00
|
|
|
height: $input-height;
|
2019-03-28 05:13:53 -05:00
|
|
|
padding: $input-padding;
|
2017-12-09 14:42:48 -06:00
|
|
|
font-size: $font-size-md;
|
2016-02-16 07:07:41 -06:00
|
|
|
line-height: $input-line-height;
|
|
|
|
color: $input-color;
|
|
|
|
background-color: $input-bg;
|
|
|
|
background-image: none;
|
|
|
|
background-clip: padding-box;
|
2017-11-29 08:26:16 -06:00
|
|
|
border: $input-border;
|
2017-12-09 14:42:48 -06:00
|
|
|
border-radius: $input-border-radius;
|
2020-04-13 02:58:40 -05:00
|
|
|
margin-right: $space-xs;
|
2017-06-19 15:23:12 -05:00
|
|
|
white-space: nowrap;
|
|
|
|
overflow: hidden;
|
|
|
|
text-overflow: ellipsis;
|
2016-02-16 07:07:41 -06:00
|
|
|
|
2017-07-06 02:36:57 -05:00
|
|
|
// text areas should be scrollable
|
|
|
|
@at-root textarea#{&} {
|
|
|
|
overflow: auto;
|
2017-10-16 06:39:16 -05:00
|
|
|
white-space: pre-wrap;
|
2020-04-16 10:55:08 -05:00
|
|
|
padding: 6px $space-sm;
|
|
|
|
min-height: $input-height;
|
2020-04-21 11:34:20 -05:00
|
|
|
height: auto;
|
2017-07-06 02:36:57 -05:00
|
|
|
}
|
|
|
|
|
2016-02-16 07:07:41 -06:00
|
|
|
// Unstyle the caret on `<select>`s in IE10+.
|
|
|
|
&::-ms-expand {
|
|
|
|
background-color: transparent;
|
|
|
|
border: 0;
|
2016-02-27 00:11:45 -06:00
|
|
|
display: none;
|
2016-02-16 07:07:41 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
// Customize the `:focus` state to imitate native WebKit styles.
|
|
|
|
@include form-control-focus();
|
|
|
|
|
|
|
|
// Placeholder
|
|
|
|
&::placeholder {
|
|
|
|
color: $input-color-placeholder;
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:disabled,
|
|
|
|
&[readonly] {
|
|
|
|
background-color: $input-bg-disabled;
|
|
|
|
// iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
|
|
|
|
opacity: 1;
|
|
|
|
}
|
2016-02-16 05:15:09 -06:00
|
|
|
|
2016-02-16 07:07:41 -06:00
|
|
|
&:disabled {
|
|
|
|
cursor: $cursor-disabled;
|
2016-02-16 05:15:09 -06:00
|
|
|
}
|
|
|
|
|
2017-12-19 09:22:41 -06:00
|
|
|
&.gf-size-auto {
|
|
|
|
width: auto;
|
|
|
|
}
|
2016-04-25 08:49:33 -05:00
|
|
|
|
|
|
|
&--dropdown {
|
2019-03-28 05:13:53 -05:00
|
|
|
padding-right: $space-lg;
|
2020-05-10 10:11:51 -05:00
|
|
|
position: relative;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
2016-04-26 02:58:55 -05:00
|
|
|
|
2016-06-20 03:37:47 -05:00
|
|
|
&::after {
|
2016-04-25 08:49:33 -05:00
|
|
|
position: absolute;
|
2017-06-22 14:16:41 -05:00
|
|
|
top: 36%;
|
|
|
|
right: 11px;
|
|
|
|
font-size: 11px;
|
2016-04-25 08:49:33 -05:00
|
|
|
background-color: transparent;
|
2017-06-22 14:16:41 -05:00
|
|
|
color: $text-color;
|
2022-01-06 07:09:52 -06:00
|
|
|
font: normal normal normal list.slash($font-size-sm, 1) FontAwesome;
|
2017-12-21 04:56:45 -06:00
|
|
|
content: '\f0d7';
|
2016-04-25 08:49:33 -05:00
|
|
|
pointer-events: none;
|
|
|
|
}
|
|
|
|
}
|
2017-10-04 00:56:41 -05:00
|
|
|
|
|
|
|
&--small {
|
|
|
|
padding-top: 4px;
|
|
|
|
padding-bottom: 4px;
|
|
|
|
font-size: $font-size-sm;
|
|
|
|
}
|
2017-12-14 13:20:36 -06:00
|
|
|
|
|
|
|
&--plaintext {
|
|
|
|
white-space: unset;
|
|
|
|
}
|
2019-03-06 07:45:13 -06:00
|
|
|
|
|
|
|
&--has-help-icon {
|
2019-03-28 05:13:53 -05:00
|
|
|
padding-right: $space-xl;
|
2019-03-06 07:45:13 -06:00
|
|
|
}
|
2016-02-16 05:15:09 -06:00
|
|
|
}
|
|
|
|
|
History and Version Control for Dashboard Updates
A simple version control system for dashboards. Closes #1504.
Goals
1. To create a new dashboard version every time a dashboard is saved.
2. To allow users to view all versions of a given dashboard.
3. To allow users to rollback to a previous version of a dashboard.
4. To allow users to compare two versions of a dashboard.
Usage
Navigate to a dashboard, and click the settings cog. From there, click
the "Changelog" button to be brought to the Changelog view. In this
view, a table containing each version of a dashboard can be seen. Each
entry in the table represents a dashboard version. A selectable
checkbox, the version number, date created, name of the user who created
that version, and commit message is shown in the table, along with a
button that allows a user to restore to a previous version of that
dashboard. If a user wants to restore to a previous version of their
dashboard, they can do so by clicking the previously mentioned button.
If a user wants to compare two different versions of a dashboard, they
can do so by clicking the checkbox of two different dashboard versions,
then clicking the "Compare versions" button located below the dashboard.
From there, the user is brought to a view showing a summary of the
dashboard differences. Each summarized change contains a link that can
be clicked to take the user a JSON diff highlighting the changes line by
line.
Overview of Changes
Backend Changes
- A `dashboard_version` table was created to store each dashboard
version, along with a dashboard version model and structs to represent
the queries and commands necessary for the dashboard version API
methods.
- API endpoints were created to support working with dashboard
versions.
- Methods were added to create, update, read, and destroy dashboard
versions in the database.
- Logic was added to compute the diff between two versions, and
display it to the user.
- The dashboard migration logic was updated to save a "Version
1" of each existing dashboard in the database.
Frontend Changes
- New views
- Methods to pull JSON and HTML from endpoints
New API Endpoints
Each endpoint requires the authorization header to be sent in
the format,
```
Authorization: Bearer <jwt>
```
where `<jwt>` is a JSON web token obtained from the Grafana
admin panel.
`GET "/api/dashboards/db/:dashboardId/versions?orderBy=<string>&limit=<int>&start=<int>"`
Get all dashboard versions for the given dashboard ID. Accepts
three URL parameters:
- `orderBy` String to order the results by. Possible values
are `version`, `created`, `created_by`, `message`. Default
is `versions`. Ordering is always in descending order.
- `limit` Maximum number of results to return
- `start` Position in results to start from
`GET "/api/dashboards/db/:dashboardId/versions/:id"`
Get an individual dashboard version by ID, for the given
dashboard ID.
`POST "/api/dashboards/db/:dashboardId/restore"`
Restore to the given dashboard version. Post body is of
content-type `application/json`, and must contain.
```json
{
"dashboardId": <int>,
"version": <int>
}
```
`GET "/api/dashboards/db/:dashboardId/compare/:versionA...:versionB"`
Compare two dashboard versions by ID for the given
dashboard ID, returning a JSON delta formatted
representation of the diff. The URL format follows
what GitHub does. For example, visiting
[/api/dashboards/db/18/compare/22...33](http://ec2-54-80-139-44.compute-1.amazonaws.com:3000/api/dashboards/db/18/compare/22...33)
will return the diff between versions 22 and 33 for
the dashboard ID 18.
Dependencies Added
- The Go package [gojsondiff](https://github.com/yudai/gojsondiff)
was added and vendored.
2017-05-24 18:14:39 -05:00
|
|
|
.gf-form-hint {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.gf-form-hint-text {
|
|
|
|
display: block;
|
|
|
|
text-align: right;
|
|
|
|
padding-top: 0.5em;
|
|
|
|
}
|
|
|
|
|
2016-02-20 10:21:35 -06:00
|
|
|
.gf-form-select-wrapper {
|
|
|
|
position: relative;
|
2017-12-15 06:34:50 -06:00
|
|
|
background-color: $input-bg;
|
2020-04-13 02:58:40 -05:00
|
|
|
margin-right: $space-xs;
|
2016-02-20 10:21:35 -06:00
|
|
|
|
2017-12-19 06:19:44 -06:00
|
|
|
.gf-form-select-icon {
|
|
|
|
position: absolute;
|
|
|
|
z-index: 1;
|
2019-03-28 05:13:53 -05:00
|
|
|
left: $input-padding;
|
2017-12-19 06:19:44 -06:00
|
|
|
top: 50%;
|
|
|
|
margin-top: -7px;
|
|
|
|
|
2021-10-20 04:34:24 -05:00
|
|
|
+ .gf-form-input {
|
2017-12-19 06:19:44 -06:00
|
|
|
position: relative;
|
|
|
|
z-index: 2;
|
2019-03-28 05:13:53 -05:00
|
|
|
padding-left: $space-xl;
|
2017-12-19 06:19:44 -06:00
|
|
|
background-color: transparent;
|
|
|
|
|
2017-12-20 04:22:29 -06:00
|
|
|
option {
|
|
|
|
// Firefox
|
2017-12-19 06:19:44 -06:00
|
|
|
color: $black;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-01-31 07:19:07 -06:00
|
|
|
.gf-form-input {
|
|
|
|
margin-right: 0;
|
2020-11-03 08:29:43 -06:00
|
|
|
line-height: $input-height;
|
2018-01-31 07:19:07 -06:00
|
|
|
}
|
|
|
|
|
2016-02-20 10:21:35 -06:00
|
|
|
select.gf-form-input {
|
2017-12-19 09:22:41 -06:00
|
|
|
text-indent: 0.01px;
|
2017-12-21 04:56:45 -06:00
|
|
|
text-overflow: '';
|
2019-03-28 05:13:53 -05:00
|
|
|
padding-right: $space-xl;
|
2016-02-20 10:21:35 -06:00
|
|
|
appearance: none;
|
|
|
|
|
|
|
|
&:-moz-focusring {
|
2016-02-27 00:11:45 -06:00
|
|
|
outline: none;
|
2016-02-20 10:21:35 -06:00
|
|
|
color: transparent;
|
2016-02-27 00:11:45 -06:00
|
|
|
text-shadow: 0 0 0 $text-color;
|
2016-02-20 10:21:35 -06:00
|
|
|
}
|
2016-05-27 09:11:05 -05:00
|
|
|
|
|
|
|
&.ng-empty {
|
|
|
|
color: $text-color-weak;
|
|
|
|
}
|
2016-02-20 10:21:35 -06:00
|
|
|
}
|
|
|
|
|
2016-06-20 03:37:47 -05:00
|
|
|
&::after {
|
2016-02-20 10:21:35 -06:00
|
|
|
position: absolute;
|
2017-06-22 14:16:41 -05:00
|
|
|
top: 36%;
|
|
|
|
right: 11px;
|
2016-02-20 10:21:35 -06:00
|
|
|
background-color: transparent;
|
2017-06-22 14:16:41 -05:00
|
|
|
color: $text-color;
|
2022-01-06 07:09:52 -06:00
|
|
|
font: normal normal normal list.slash($font-size-sm, 1) FontAwesome;
|
2017-12-21 04:56:45 -06:00
|
|
|
content: '\f0d7';
|
2016-02-20 10:21:35 -06:00
|
|
|
pointer-events: none;
|
2017-06-22 14:16:41 -05:00
|
|
|
font-size: 11px;
|
2016-02-20 10:21:35 -06:00
|
|
|
}
|
2016-04-15 18:56:39 -05:00
|
|
|
|
|
|
|
&--has-help-icon {
|
2016-06-20 03:37:47 -05:00
|
|
|
&::after {
|
2019-03-28 05:13:53 -05:00
|
|
|
right: $space-xl;
|
2016-04-15 18:56:39 -05:00
|
|
|
}
|
|
|
|
}
|
2016-02-20 10:21:35 -06:00
|
|
|
}
|
2016-02-19 20:24:46 -06:00
|
|
|
|
2016-03-23 09:09:48 -05:00
|
|
|
.gf-form--v-stretch {
|
|
|
|
align-items: stretch;
|
2016-03-18 18:32:50 -05:00
|
|
|
}
|
|
|
|
|
2016-02-18 05:16:47 -06:00
|
|
|
.gf-form-btn {
|
2019-03-28 05:13:53 -05:00
|
|
|
padding: $input-padding;
|
2019-03-12 06:30:34 -05:00
|
|
|
margin-right: $space-xs;
|
2016-02-18 05:16:47 -06:00
|
|
|
line-height: $input-line-height;
|
2016-04-17 11:14:25 -05:00
|
|
|
font-size: $font-size-sm;
|
|
|
|
|
2016-02-18 05:16:47 -06:00
|
|
|
flex-shrink: 0;
|
|
|
|
flex-grow: 0;
|
|
|
|
}
|
2016-03-20 10:18:31 -05:00
|
|
|
|
2016-03-23 09:42:46 -05:00
|
|
|
.natural-language-input {
|
2017-12-21 04:56:45 -06:00
|
|
|
&input[type='number'] {
|
2016-03-23 09:41:01 -05:00
|
|
|
font-size: $font-size-base;
|
|
|
|
line-height: $input-line-height;
|
|
|
|
margin: -6px -5px 0 5px;
|
2019-03-28 05:13:53 -05:00
|
|
|
padding: $space-xs;
|
2016-03-23 09:41:01 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-03-29 05:32:40 -05:00
|
|
|
.gf-form-dropdown-typeahead {
|
2019-03-12 06:30:34 -05:00
|
|
|
//margin-right: $space-xs; ?
|
2016-03-29 05:32:40 -05:00
|
|
|
position: relative;
|
2016-03-20 10:18:31 -05:00
|
|
|
|
2016-06-20 03:37:47 -05:00
|
|
|
&::after {
|
2016-03-29 05:32:40 -05:00
|
|
|
position: absolute;
|
|
|
|
top: 35%;
|
2019-03-28 05:13:53 -05:00
|
|
|
right: $space-sm;
|
2016-03-29 05:32:40 -05:00
|
|
|
background-color: transparent;
|
|
|
|
color: $input-color;
|
2022-01-06 07:09:52 -06:00
|
|
|
font: normal normal normal list.slash($font-size-sm, 1) FontAwesome;
|
2017-12-21 04:56:45 -06:00
|
|
|
content: '\f0d7';
|
2016-03-29 05:32:40 -05:00
|
|
|
pointer-events: none;
|
2018-04-18 03:21:48 -05:00
|
|
|
font-size: 11px;
|
2016-03-29 05:32:40 -05:00
|
|
|
}
|
2016-03-20 10:18:31 -05:00
|
|
|
}
|
2016-03-29 12:03:24 -05:00
|
|
|
|
2016-04-15 18:56:39 -05:00
|
|
|
.gf-form-help-icon {
|
|
|
|
flex-grow: 0;
|
|
|
|
color: $text-color-weak;
|
|
|
|
|
2016-12-06 05:54:44 -06:00
|
|
|
&--bold {
|
|
|
|
color: $text-color-emphasis;
|
2016-12-06 07:53:33 -06:00
|
|
|
padding-left: 0;
|
2016-12-06 05:54:44 -06:00
|
|
|
}
|
|
|
|
|
2016-04-15 18:56:39 -05:00
|
|
|
&--right-absolute {
|
|
|
|
position: absolute;
|
|
|
|
right: $spacer;
|
2020-04-16 06:49:58 -05:00
|
|
|
top: 6px;
|
2016-04-15 18:56:39 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
&--right-normal {
|
|
|
|
float: right;
|
|
|
|
}
|
2016-11-18 09:53:07 -06:00
|
|
|
|
|
|
|
&--header {
|
2019-03-12 06:30:34 -05:00
|
|
|
margin-bottom: $space-xxs;
|
2016-11-18 09:53:07 -06:00
|
|
|
}
|
2018-05-23 04:34:22 -05:00
|
|
|
|
2019-08-08 03:20:54 -05:00
|
|
|
&--small-padding {
|
|
|
|
padding-left: 4px;
|
2018-05-23 04:34:22 -05:00
|
|
|
}
|
2019-01-29 06:42:29 -06:00
|
|
|
|
|
|
|
&:hover {
|
|
|
|
color: $text-color;
|
|
|
|
}
|
2016-04-15 18:56:39 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
select.gf-form-input ~ .gf-form-help-icon {
|
|
|
|
right: 10px;
|
|
|
|
}
|
2017-03-21 08:34:48 -05:00
|
|
|
|
|
|
|
.gf-form-icon--right-absolute {
|
|
|
|
position: absolute;
|
|
|
|
right: $spacer;
|
|
|
|
top: 10px;
|
|
|
|
color: $text-muted;
|
|
|
|
}
|
2018-01-31 03:39:38 -06:00
|
|
|
|
|
|
|
.cta-form {
|
2018-01-31 07:19:07 -06:00
|
|
|
position: relative;
|
2019-03-27 02:48:24 -05:00
|
|
|
padding: $space-lg;
|
2018-02-01 07:32:19 -06:00
|
|
|
background-color: $empty-list-cta-bg;
|
2019-03-27 02:48:24 -05:00
|
|
|
margin-bottom: $space-lg;
|
2019-02-20 09:11:36 -06:00
|
|
|
border-top: 3px solid $green-base;
|
2018-01-31 07:19:07 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
.cta-form__close {
|
2018-11-06 11:14:29 -06:00
|
|
|
background: transparent;
|
|
|
|
padding: 4px 8px 4px 9px;
|
|
|
|
border: none;
|
2018-01-31 07:19:07 -06:00
|
|
|
position: absolute;
|
|
|
|
right: 0;
|
2018-11-06 11:14:29 -06:00
|
|
|
top: -2px;
|
2018-11-09 06:17:41 -06:00
|
|
|
font-size: $font-size-md;
|
2018-11-06 11:14:29 -06:00
|
|
|
|
|
|
|
&:hover {
|
|
|
|
color: $text-color-strong;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.cta-form__bar {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
align-content: center;
|
|
|
|
margin-bottom: 20px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.cta-form__bar-header {
|
|
|
|
font-size: $font-size-h4;
|
|
|
|
padding-right: 20px;
|
2018-01-31 03:39:38 -06:00
|
|
|
}
|