diff --git a/.qube.yml b/.qube.yml index 6f09fe6af..70fc53bec 100644 --- a/.qube.yml +++ b/.qube.yml @@ -3,7 +3,7 @@ full_name: Sven Fillinger email: sven.fillinger@qbic.uni-tuebingen.de project_name: qoffer-2-portlet project_short_description: qOffer assists in managing and creating offers -version: 1.0.0-SNAPSHOT +version: 1.0.0-beta.1 domain: portlet language: groovy project_slug: qoffer-2-portlet diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ad05b0e6c..5814990a4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,52 @@ Changelog This project adheres to `Semantic Versioning `_. +1.0.0-beta.1 (2021-04-27) +----------------------------------- + +**Added** + +* Product selection now notifies a user if the provided input is incorrect and disables the button until the given information is valid (`#407 `_) + +* Experimental designs can be defined for an offer (`#263 `_) + +* New dropdown menu bar (`#490 `_) + +* Jump back to maintain view after product creation/update (`#481 `_) + +* Search for affiliations is now possible (`#533 `_) + +* Add confirmation request for product archiving (`#528 `_) + +* Allow offer updated when experimental design has changed (`#515 `_) + +**Fixed** + +* Add timeout of 10 second to PDF rendering (`#494 `_) + +* Allow resetting the date picker in the offer overview (`#486 `_) + +* Naming of the downloaded offer pdf is consistent (`#498 `_) + +* Reset the view after an offer has been created (`#495 `_) + +* Provide ISO 8601 date format renderer for offer overview table (`#299 `_) + +* Provide functionality to remove items from an offer (`#516 `_) + +* Adds amount to existing items on the offer (`#462 `_) + +* Make filter for service product view work (`#523 `_) + +* Add validation for project information input for offer creation/update (`#488 `_) + +**Dependencies** + +* Bump Vaadin 8.12.0 -> 8.12.3 + +**Deprecated** + + 1.0.0-alpha.6 (2021-04-13) ----------------------------------- @@ -125,7 +171,7 @@ This project adheres to `Semantic Versioning `_. * Update offers without changes is not possible anymore (`#222 `_) -* Rename CreateCustomer and UpdateCustomer classes and methods (`#315 https://github.com/qbicsoftware/offer-manager-2-portlet/issues/315`_) +* Rename CreateCustomer and UpdateCustomer classes and methods (`#315 `_) **Dependencies** @@ -134,9 +180,7 @@ This project adheres to `Semantic Versioning `_. 1.0.0-SNAPSHOT (2020-11-09) ----------------------------------------------- -**Added** * Create project with QUBE diff --git a/docs/conf.py b/docs/conf.py index 870d2eb76..bd516e18e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -55,9 +55,9 @@ # the built documents. # # The short X.Y version. -version = '1.0.0-SNAPSHOT' +version = '1.0.0-beta.1' # The full version, including alpha/beta/rc tags. -release = '1.0.0-SNAPSHOT' +release = '1.0.0-beta.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/offer-manager-app/pom.xml b/offer-manager-app/pom.xml index 40ccc5e5d..5d36cddfe 100644 --- a/offer-manager-app/pom.xml +++ b/offer-manager-app/pom.xml @@ -5,7 +5,7 @@ offer-manager life.qbic - 1.0.0-alpha.6 + 1.0.0-beta.1 4.0.0 war @@ -15,7 +15,7 @@ life.qbic offer-manager-domain - 1.0.0-alpha.6 + 1.0.0-beta.1 compile @@ -42,7 +42,7 @@ mysql mysql-connector-java - 8.0.23 + 8.0.24 diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/DependencyManager.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/DependencyManager.groovy index 65124ace3..b5fdaee51 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/DependencyManager.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/DependencyManager.groovy @@ -16,6 +16,8 @@ import life.qbic.datamodel.dtos.business.services.Product import life.qbic.datamodel.dtos.general.Person import life.qbic.datamodel.dtos.projectmanagement.Project import life.qbic.portal.offermanager.communication.EventEmitter +import life.qbic.portal.offermanager.components.affiliation.search.SearchAffiliationView +import life.qbic.portal.offermanager.components.affiliation.search.SearchAffiliationViewModel import life.qbic.portal.offermanager.components.offer.overview.OfferOverviewController import life.qbic.portal.offermanager.components.offer.overview.OfferOverviewPresenter import life.qbic.portal.offermanager.components.offer.overview.projectcreation.CreateProjectController @@ -97,6 +99,7 @@ class DependencyManager { private CreatePersonViewModel createCustomerViewModel private UpdatePersonViewModel updatePersonViewModel private CreateAffiliationViewModel createAffiliationViewModel + private SearchAffiliationViewModel searchAffiliationViewModel private CreateOfferViewModel createOfferViewModel private CreateOfferViewModel updateOfferViewModel private OfferOverviewModel offerOverviewModel @@ -371,6 +374,13 @@ class DependencyManager { }catch (Exception e) { log.error("Unexpected exception during ${CopyProductViewModel.getSimpleName()} view model setup.", e) } + + try { + this.searchAffiliationViewModel = new SearchAffiliationViewModel(affiliationService) + } catch (Exception e) { + log.error("Unexpected exception during ${SearchAffiliationViewModel.getSimpleName()} creation.") + log.debug("Unexpected exception during ${SearchAffiliationViewModel.getSimpleName()} creation.", e) + } } private void setupPresenters() { @@ -636,9 +646,10 @@ class DependencyManager { .viewModel, createCustomerViewModel) CreateAffiliationView createAffiliationView2 = new CreateAffiliationView(this.viewModel, createAffiliationViewModel, createAffiliationController) - + SearchAffiliationView searchAffiliationView = new SearchAffiliationView(this.searchAffiliationViewModel) portletView = new AppView(this.viewModel, createCustomerView2, createAffiliationView2, + searchAffiliationView, createOfferView, overviewView, updateOfferView, diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/OfferFileNameFormatter.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/OfferFileNameFormatter.groovy new file mode 100644 index 000000000..166d38e83 --- /dev/null +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/OfferFileNameFormatter.groovy @@ -0,0 +1,36 @@ +package life.qbic.portal.offermanager + +import life.qbic.datamodel.dtos.business.Offer + +import java.time.LocalDate + +/** + *

Formats the filename for an offer

+ * + *

An offers file name should contain the date of the offer creation, the project conserved part and the offer version

+ * + * @since 1.0.0 + * +*/ +class OfferFileNameFormatter { + + /** + * Returns an offer file name in this schema: + * + * Q______v.pdf + * @param offer + * @return + */ + static String getFileNameForOffer(Offer offer) { + LocalDate date = offer.modificationDate.toLocalDate() + String dateString = createDateString(date) + return "Q_${dateString}_" + + "${offer.identifier.projectConservedPart}_${offer.identifier.randomPart}_" + + "v${offer.identifier.version}.pdf" + } + + private static String createDateString(LocalDate date) { + return String.format("%04d_%02d_%02d", date.getYear(), date.getMonthValue(), date.getDayOfMonth()) + } + +} \ No newline at end of file diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/OfferToPDFConverter.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/OfferToPDFConverter.groovy index 4595e6241..e6802aa6f 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/OfferToPDFConverter.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/OfferToPDFConverter.groovy @@ -25,6 +25,7 @@ import java.nio.file.Paths import java.nio.file.StandardCopyOption import java.text.DateFormat import java.text.DecimalFormat +import java.util.concurrent.TimeUnit /** * Handles the conversion of offers to pdf files @@ -164,6 +165,7 @@ class OfferToPDFConverter implements OfferExporter { private void setProjectInformation() { htmlContent.getElementById("project-title").text(offer.projectTitle) htmlContent.getElementById("project-description").text(offer.projectDescription) + if(offer.experimentalDesign.isPresent()) htmlContent.getElementById("experimental-design").text(offer.experimentalDesign.get()) } private void setCustomerInformation() { @@ -394,7 +396,7 @@ class OfferToPDFConverter implements OfferExporter { builder.directory(new File(sourceFile.getParent().toString())) builder.redirectErrorStream(true) Process process = builder.start() - process.waitFor() + process.waitFor(10, TimeUnit.SECONDS) process.getInputStream().eachLine {log.info(it)} if (! new File(output.toString()).exists()) { throw new RuntimeException("Offer PDF has not been generated.") diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/AppView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/AppView.groovy index e0d282dfb..db06d3b2d 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/AppView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/AppView.groovy @@ -3,8 +3,13 @@ package life.qbic.portal.offermanager.components import com.vaadin.icons.VaadinIcons import com.vaadin.server.Page import com.vaadin.ui.* +import com.vaadin.ui.MenuBar.MenuItem import com.vaadin.ui.themes.ValoTheme +import groovy.transform.CompileStatic +import groovy.util.logging.Log4j2 import life.qbic.portal.offermanager.components.affiliation.create.CreateAffiliationView +import life.qbic.portal.offermanager.components.affiliation.search.SearchAffiliationView +import life.qbic.portal.offermanager.components.affiliation.search.SearchAffiliationViewModel import life.qbic.portal.offermanager.components.offer.create.CreateOfferView import life.qbic.portal.offermanager.components.offer.overview.projectcreation.CreateProjectView import life.qbic.portal.offermanager.components.person.create.CreatePersonView @@ -22,12 +27,14 @@ import life.qbic.portal.offermanager.components.product.MaintainProductsView * @since 1.0.0 * */ +@Log4j2 class AppView extends VerticalLayout { private final AppViewModel portletViewModel private final CreatePersonView createPersonView private final CreateAffiliationView createAffiliationView + private final SearchAffiliationView searchAffiliationView private final CreateOfferView createOfferView private final List featureViews private final OfferOverviewView overviewView @@ -39,6 +46,7 @@ class AppView extends VerticalLayout { AppView(AppViewModel portletViewModel, CreatePersonView createPersonView, CreateAffiliationView createAffiliationView, + SearchAffiliationView searchAffiliationView, CreateOfferView createOfferView, OfferOverviewView overviewView, CreateOfferView updateOfferView, @@ -49,6 +57,7 @@ class AppView extends VerticalLayout { this.portletViewModel = portletViewModel this.createPersonView = createPersonView this.createAffiliationView = createAffiliationView + this.searchAffiliationView = searchAffiliationView this.createOfferView = createOfferView this.featureViews = [] this.overviewView = overviewView @@ -73,6 +82,7 @@ class AppView extends VerticalLayout { featureViews.addAll([ createPersonView, createAffiliationView, + searchAffiliationView, createOfferView, overviewView, updateOfferView, @@ -102,6 +112,7 @@ class AppView extends VerticalLayout { verticalLayout.addComponent(this.createPersonView) verticalLayout.addComponent(this.createOfferView) verticalLayout.addComponents(this.createAffiliationView) + verticalLayout.addComponent(this.searchAffiliationView) verticalLayout.addComponent(this.overviewView) verticalLayout.addComponent(this.updateOfferView) verticalLayout.addComponent(this.searchPersonView) @@ -138,6 +149,20 @@ class AppView extends VerticalLayout { hideAllFeatureViews() this.updateOfferView.setVisible(true) }) + + this.updateOfferView.viewModel.addPropertyChangeListener("offerCreatedSuccessfully", { + if(it.newValue as Boolean){ + this.updateOfferView.setVisible(false) + this.overviewView.setVisible(true) + } + }) + + this.createOfferView.viewModel.addPropertyChangeListener("offerCreatedSuccessfully", { + if(it.newValue as Boolean){ + this.createOfferView.setVisible(false) + this.overviewView.setVisible(true) + } + }) } private static def showNotification(String message, Notification.Type type) { @@ -152,113 +177,48 @@ class AppView extends VerticalLayout { private class TomatoFeatures extends HorizontalLayout { - Button createOfferBtn - - Button createPersonBtn - - Button createAffiliationBtn - - Button overviewBtn - - Button searchPersonBtn - - Button maintainProductBtn - - TomatoFeatures() { - this.createOfferBtn = new Button("New Offer") - this.createPersonBtn = new Button("New Person") - this.createAffiliationBtn = new Button("New Affiliation") - this.overviewBtn = new Button("Offer Overview") - this.searchPersonBtn = new Button("Search Person") - this.maintainProductBtn = new Button("Maintain Products") - - - this.addComponents( - overviewBtn, - createOfferBtn, - createPersonBtn, - createAffiliationBtn, - searchPersonBtn, - maintainProductBtn - ) - setStyles() - setupListeners() - setIcons() - setDefault() - enableFeatures() + createMenuBar() } - private void enableFeatures() { - createOfferBtn.setEnabled(portletViewModel.createOfferFeatureEnabled) - createPersonBtn.setEnabled(portletViewModel.createCustomerFeatureEnabled) - searchPersonBtn.setEnabled(portletViewModel.searchCustomerFeatureEnabled) - maintainProductBtn.setEnabled(portletViewModel.maintainProductsFeatureEnabled) - } - - private void setDefault() { - setButtonActive(overviewBtn) - } - - private void setStyles() { - overviewBtn.addStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) - createOfferBtn.addStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) - createPersonBtn.addStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) - createAffiliationBtn.addStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) - searchPersonBtn.addStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) - maintainProductBtn.addStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) - } - - private void setIcons() { - overviewBtn.setIcon(VaadinIcons.GRID_BIG_O) - createOfferBtn.setIcon(VaadinIcons.GRID_BIG_O) - createPersonBtn.setIcon(VaadinIcons.GRID_BIG_O) - createAffiliationBtn.setIcon(VaadinIcons.GRID_BIG_O) - searchPersonBtn.setIcon(VaadinIcons.GRID_BIG_O) - maintainProductBtn.setIcon(VaadinIcons.GRID_BIG_O) + private void createMenuBar() { + this.addComponent(dropDownButton("Offers", + [ + "New Offer": {toggleView(createOfferView)}, + "Offer Overview": {toggleView(overviewView)} + ])) + this.addComponent(dropDownButton("Persons", + [ + "New Person": {toggleView(createPersonView)}, + "Search": {toggleView(searchPersonView)} + ])) + this.addComponent(dropDownButton("Affiliations", + [ + "New Affiliation": {toggleView(createAffiliationView)}, + "Search": {toggleView(searchAffiliationView)} + ])) + Button maintainProducts = new Button("Service Products", VaadinIcons.GRID_BIG) + maintainProducts.setStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) + maintainProducts.addClickListener({ + toggleView(maintainProductsView) + }) + this.addComponent(maintainProducts) } - private void setButtonActive(Button b) { - b.setIcon(VaadinIcons.GRID_BIG) + private void toggleView(Component component) { + hideAllFeatureViews() + component.setVisible(true) } - private void setupListeners() { - this.overviewBtn.addClickListener(listener -> { - hideAllFeatureViews() - setIcons() - overviewView.setVisible(true) - setButtonActive(this.overviewBtn) - }) - this.createOfferBtn.addClickListener(listener -> { - hideAllFeatureViews() - setIcons() - createOfferView.setVisible(true) - setButtonActive(this.createOfferBtn) - }) - this.createPersonBtn.addClickListener(listener -> { - hideAllFeatureViews() - setIcons() - createPersonView.setVisible(true) - setButtonActive(this.createPersonBtn) - }) - this.createAffiliationBtn.addClickListener(listener -> { - hideAllFeatureViews() - setIcons() - createAffiliationView.setVisible(true) - setButtonActive(this.createAffiliationBtn) - }) - this.searchPersonBtn.addClickListener(listener -> { - hideAllFeatureViews() - setIcons() - searchPersonView.setVisible(true) - setButtonActive(this.searchPersonBtn) - }) - this.maintainProductBtn.addClickListener({ - hideAllFeatureViews() - setIcons() - maintainProductsView.setVisible(true) - setButtonActive(this.maintainProductBtn) - }) + MenuBar dropDownButton(String caption, Map items) { + MenuBar dropDownButton = new MenuBar() + MenuItem content = dropDownButton.addItem(caption) + content.setIcon(VaadinIcons.GRID_BIG) + for (String item : items.keySet()) { + content.addItem(item, items.get(item)) + } + dropDownButton.addStyleName(ValoTheme.MENUBAR_BORDERLESS) + return dropDownButton } } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/ConfirmationDialog.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/ConfirmationDialog.groovy new file mode 100644 index 000000000..b779e4aaf --- /dev/null +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/ConfirmationDialog.groovy @@ -0,0 +1,75 @@ +package life.qbic.portal.offermanager.components + +import com.vaadin.ui.Alignment +import com.vaadin.ui.Button +import com.vaadin.ui.HorizontalLayout +import com.vaadin.ui.Label +import com.vaadin.ui.VerticalLayout +import com.vaadin.ui.Window +import com.vaadin.ui.themes.ValoTheme + +/** + *

Dialog to ask for user confirmation

+ * + *

The confirmation dialog requests the users confirmation about specific processes that will follow. + * E.g before deleting the user should be asked if he really wants to do that

+ * + * @since 1.0.0 + * +*/ +class ConfirmationDialog extends Window{ + + Button confirm + Button decline + private HorizontalLayout buttonLayout + private Label descriptionLabel + private String descriptionText + private VerticalLayout content + + + ConfirmationDialog(String description){ + center() + // Disable the close button + setClosable(false) + + descriptionText = description + + init() + addListeners() + + content.addComponents(descriptionLabel, buttonLayout) + content.setComponentAlignment(buttonLayout, Alignment.MIDDLE_RIGHT) + + setContent(content) + } + + private void init(){ + confirm = new Button("Confirm") + decline = new Button("Decline") + + descriptionLabel = new Label(descriptionText) + + this.setCaptionAsHtml(true) + this.caption = " Are you sure? " + + + this.setResizable(false) + + content = new VerticalLayout() + content.setMargin(true) + + buttonLayout = new HorizontalLayout() + buttonLayout.addComponents(decline, confirm) + } + + private void addListeners(){ + confirm.addClickListener({ + close() + }) + + decline.addClickListener({ + close() + }) + } + +} \ No newline at end of file diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/GridUtils.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/GridUtils.groovy index e3a0c5b94..cecfea8e7 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/GridUtils.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/GridUtils.groovy @@ -7,6 +7,8 @@ import com.vaadin.ui.Grid import com.vaadin.ui.TextField import com.vaadin.ui.components.grid.HeaderRow import com.vaadin.ui.themes.ValoTheme +import life.qbic.business.logging.Logger +import life.qbic.business.logging.Logging import org.apache.commons.lang3.StringUtils import java.time.LocalDate @@ -20,6 +22,8 @@ import java.time.chrono.ChronoLocalDate */ class GridUtils { + private static Logging log = Logger.getLogger(this.class) + /** * Provides a filter field into a header row of a grid for a given column. * @@ -53,7 +57,8 @@ class GridUtils { /** * Provides a filter field into a header row of a grid for a given column of type Date. * - * The current implementation filters a date column based on a picked date + * The current implementation filters a date column based on a picked date. If no date is provided, + * the filter does not apply. * * @param dataProvider The grid's {@link ListDataProvider} * @param column The date column to add the filter to @@ -64,9 +69,15 @@ class GridUtils { HeaderRow headerRow) { DateField dateFilterField = new DateField() dateFilterField.addValueChangeListener(event -> { - dataProvider.addFilter(element -> - isSameDate(dateFilterField.getValue(), column.getValueProvider().apply(element)) - ) + dataProvider.addFilter(element -> { + LocalDate filterValue = dateFilterField.getValue() + Date columnValue = column.getValueProvider().apply(element) + if (filterValue) { + return isSameDate(filterValue, columnValue) + } else { + return true // when no filter argument is provided + } + }) }) dateFilterField.addStyleName(ValoTheme.DATEFIELD_TINY) @@ -75,11 +86,14 @@ class GridUtils { } private static boolean isSameDate(LocalDate localDate, Date date){ - try{ + try { Date dateFromLocal = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()) return dateFromLocal == date - }catch(Exception ignore){ + } catch(Exception unexpected) { + log.error("Unexpected exception for $localDate and $date") + log.debug("Unexpected exception for $localDate and $date", unexpected) return false } } + } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/Resettable.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/Resettable.groovy new file mode 100644 index 000000000..b2b88c228 --- /dev/null +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/Resettable.groovy @@ -0,0 +1,17 @@ +package life.qbic.portal.offermanager.components + +/** + * Reset graphical input elements + * + * A class that inherits the Resettable interface indicates, that + * it supports full reset of graphical input field elements. + * + * @since 1.0.0 + */ +interface Resettable { + + /** + * Resets all input elements of an graphical user interface + */ + void reset() +} diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/create/CreateAffiliationView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/create/CreateAffiliationView.groovy index 2f7acdfc6..c00ab4e6b 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/create/CreateAffiliationView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/create/CreateAffiliationView.groovy @@ -25,7 +25,7 @@ import life.qbic.portal.offermanager.components.AppViewModel * @since: 1.0.0 */ @Log4j2 -class CreateAffiliationView extends VerticalLayout { +class CreateAffiliationView extends FormLayout { final public AppViewModel sharedViewModel final public CreateAffiliationViewModel createAffiliationViewModel private final CreateAffiliationController controller @@ -54,6 +54,11 @@ class CreateAffiliationView extends VerticalLayout { } private void initLayout() { + final Label label = new Label("Create A New Affiliation") + + label.addStyleName(ValoTheme.LABEL_HUGE) + this.addComponent(label) + this.organisationBox = new ComboBox<>("Organisation Name") organisationBox.setPlaceholder("Name of the organisation") organisationBox.setDescription("Select or enter new name of the organisation e.g. Universität Tübingen.") diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/search/SearchAffiliationView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/search/SearchAffiliationView.groovy new file mode 100644 index 000000000..f802bf5e7 --- /dev/null +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/search/SearchAffiliationView.groovy @@ -0,0 +1,172 @@ +package life.qbic.portal.offermanager.components.affiliation.search + +import com.vaadin.data.provider.DataProvider +import com.vaadin.data.provider.ListDataProvider +import com.vaadin.icons.VaadinIcons +import com.vaadin.ui.FormLayout +import com.vaadin.ui.Grid +import com.vaadin.ui.Label +import com.vaadin.ui.Panel +import com.vaadin.ui.TextArea +import com.vaadin.ui.components.grid.HeaderRow +import com.vaadin.ui.themes.ValoTheme +import groovy.util.logging.Log4j2 +import life.qbic.datamodel.dtos.business.Affiliation +import life.qbic.portal.offermanager.components.GridUtils + +/** + *

View allowing the user to search for an affiliation

+ * + *

This view provides functionality for searching for affiliations.

+ * + * @since 1.0.0 + */ +@Log4j2 +class SearchAffiliationView extends FormLayout{ + + private final SearchAffiliationViewModel viewModel + + private Grid affiliationGrid + private Panel selectedAffiliationDetails + + SearchAffiliationView(SearchAffiliationViewModel viewModel) { + this.viewModel = viewModel + initLayout() + generateAffiliationGrid() + listenToAffiliationSelection() + } + + private void initLayout() { + Label heading = new Label("Available Affiliations") + heading.addStyleName(ValoTheme.LABEL_HUGE) + + affiliationGrid = new Grid() + affiliationGrid.setSelectionMode(Grid.SelectionMode.SINGLE) + selectedAffiliationDetails = new Panel("Affiliation Details") + selectedAffiliationDetails.setVisible(viewModel.detailsVisible) + refreshSelectionDetails() + this.addComponents(heading, affiliationGrid, selectedAffiliationDetails) + + } + + private void generateAffiliationGrid() { + Grid affiliationGrid = this.affiliationGrid + affiliationGrid.addColumn({ affiliation -> affiliation.category.value }).setCaption("Category").setId("Category") + affiliationGrid.addColumn({ affiliation -> affiliation.organisation }).setCaption("Organization").setId("Organization") + affiliationGrid.addColumn({ affiliation -> affiliation.addressAddition }).setCaption("Address Addition").setId("AddressAddition") + affiliationGrid.addColumn({ affiliation -> affiliation.street }).setCaption("Street").setId("Street") + affiliationGrid.addColumn({ affiliation -> affiliation.postalCode }).setCaption("Postal Code").setId("PostalCode") + affiliationGrid.addColumn({ affiliation -> affiliation.city }).setCaption("City").setId("City") + affiliationGrid.addColumn({ affiliation -> affiliation.country }).setCaption("Country").setId("Country") + affiliationGrid.setWidthFull() + affiliationGrid.setHeightByRows(5) + + DataProvider affiliationDataProvider = new ListDataProvider(viewModel.getAffiliations()) + affiliationGrid.setDataProvider(affiliationDataProvider) + + addColumnFilters(affiliationGrid, affiliationDataProvider) + } + + private static addColumnFilters(Grid grid, ListDataProvider dataProvider) { + HeaderRow filterRow = grid.appendHeaderRow() + GridUtils.setupColumnFilter(dataProvider, grid.getColumn("Category"), filterRow) + GridUtils.setupColumnFilter(dataProvider, grid.getColumn("Organization"), filterRow) + GridUtils.setupColumnFilter(dataProvider, grid.getColumn("AddressAddition"), filterRow) + GridUtils.setupColumnFilter(dataProvider, grid.getColumn("Street"), filterRow) + GridUtils.setupColumnFilter(dataProvider, grid.getColumn("PostalCode"), filterRow) + GridUtils.setupColumnFilter(dataProvider, grid.getColumn("City"), filterRow) + GridUtils.setupColumnFilter(dataProvider, grid.getColumn("Country"), filterRow) + } + + /** + * Sets a listener to the affiliation grid. + */ + private void listenToAffiliationSelection() { + this.affiliationGrid.addSelectionListener({ + viewModel.selectedAffiliation = it.firstSelectedItem + }) + + this.viewModel.addPropertyChangeListener("selectedAffiliation", { + try { + viewModel.detailsVisible = it.newValue ? true : false + refreshSelectionDetails() + selectedAffiliationDetails.visible = viewModel.detailsVisible + } catch (Exception e) { + log.error("Unexpected exception after affiliation selection change. $e.message") + log.debug("Unexpected exception after affiliation selection change. $e.message", e) + } + }) + } + + private void refreshSelectionDetails() { + FormLayout detailsContent = new FormLayout() + detailsContent.setMargin(true) + if (viewModel.selectedAffiliation.isPresent()) { + Affiliation selectedAffiliation = viewModel.selectedAffiliation.get() + + if (selectedAffiliation.category) { + Label category = new Label("$selectedAffiliation.category") + //there might be a better label + category.setIcon(VaadinIcons.CIRCLE_THIN) + category.setCaption("Affiliation Category") + detailsContent.addComponent(category) + } + + if (selectedAffiliation.organisation) { + Label organisation = new Label("$selectedAffiliation.organisation") + organisation.setIcon(VaadinIcons.BUILDING_O) + organisation.setCaption("Organization") + detailsContent.addComponent(organisation) + } + + if (selectedAffiliation.addressAddition) { + Label addressAddition = new Label("$selectedAffiliation.addressAddition") + addressAddition.setIcon(VaadinIcons.BUILDING) + addressAddition.setCaption("Address Addition") + detailsContent.addComponent(addressAddition) + } + + TextArea address = new TextArea() + address.setValue(generateAddressString(selectedAffiliation)) + address.setEnabled(false) + address.setWidthFull() + address.setIcon(VaadinIcons.ENVELOPE) + address.setCaption("Address") + detailsContent.addComponent(address) + } + selectedAffiliationDetails.setContent(detailsContent) + } + + private static String generateAddressString(Affiliation affiliation) { + StringBuilder stringBuilder = new StringBuilder() + if (affiliation.organisation) { + stringBuilder.append("$affiliation.organisation") + stringBuilder.append("\n") + } + if (affiliation.addressAddition) { + stringBuilder.append("$affiliation.addressAddition") + stringBuilder.append("\n") + } + if (affiliation.street) { + stringBuilder.append("$affiliation.street") + stringBuilder.append("\n") + } + if (affiliation.postalCode) { + stringBuilder.append("$affiliation.postalCode") + if (affiliation.city) { + stringBuilder.append("\t") + } else { + stringBuilder.append("\n") + } + } + if (affiliation.city) { + stringBuilder.append("$affiliation.city").append("\n") + } + if (affiliation.country) { + stringBuilder.append("$affiliation.country") + } + return stringBuilder.toString().trim() + } + + +} diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/search/SearchAffiliationViewModel.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/search/SearchAffiliationViewModel.groovy new file mode 100644 index 000000000..74e08413e --- /dev/null +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/affiliation/search/SearchAffiliationViewModel.groovy @@ -0,0 +1,56 @@ +package life.qbic.portal.offermanager.components.affiliation.search + +import groovy.beans.Bindable +import life.qbic.datamodel.dtos.business.Affiliation +import life.qbic.portal.offermanager.dataresources.persons.AffiliationResourcesService + +/** + *

ViewModel for SearchAffiliationView

+ * + *

Determines state of the view. Listens to data events.

+ * + * @since 1.0.0 + */ +class SearchAffiliationViewModel { + + /** + * A list of available affiliations. All items are of class {@link Affiliation} + */ + ObservableList affiliations + @Bindable Optional selectedAffiliation + @Bindable boolean detailsVisible + + private final AffiliationResourcesService affiliationResourcesService + + SearchAffiliationViewModel(AffiliationResourcesService affiliationResourcesService) { + this.affiliationResourcesService = affiliationResourcesService + this.affiliations = new ObservableList(new ArrayList()) + resetAffiliations() + subscribeToResources() + detailsVisible = selectedAffiliation.isPresent() + } + + /** + * Resets the list of affiliations to the state of the affiliation + * resource service. Deselects selected affiliation. + * @since 1.0.0 + * @see #affiliations + */ + void resetAffiliations() { + affiliations.clear() + selectedAffiliation = Optional.empty() + + affiliations.addAll(affiliationResourcesService.iterator()) + } + + /** + * As we can not distinguish on the type of event. + * Therefore, we reset the whole list. + * @see #resetAffiliations + */ + private void subscribeToResources() { + this.affiliationResourcesService.subscribe({ + resetAffiliations() + }) + } +} diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ButtonNavigationView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ButtonNavigationView.groovy index 1a6501f0f..c10ff56c8 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ButtonNavigationView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ButtonNavigationView.groovy @@ -50,4 +50,12 @@ class ButtonNavigationView extends HorizontalLayout{ if (currentStep >= 0) currentStep-- buttonList.get(currentStep).setStyleName(ValoTheme.BUTTON_BORDERLESS) } + + void rewind() { + buttonList.each { + it.setStyleName(ValoTheme.BUTTON_BORDERLESS) + } + buttonList.first().setStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED) + currentStep = 1 + } } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferController.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferController.groovy index 77c15334c..e723358b4 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferController.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferController.groovy @@ -51,7 +51,8 @@ class CreateOfferController { Customer customer, ProjectManager manager, List items, - Affiliation customerAffiliation){ + Affiliation customerAffiliation, + String experimentalDesign){ Offer offer = new Offer.Builder( customer, @@ -61,6 +62,7 @@ class CreateOfferController { customerAffiliation) .items(items) .identifier(offerId) + .experimentalDesign(experimentalDesign) .build() this.input.createOffer(offer) diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferPresenter.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferPresenter.groovy index 125796776..c90255da0 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferPresenter.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferPresenter.groovy @@ -31,6 +31,7 @@ class CreateOfferPresenter implements CreateOfferOutput, FetchOfferOutput{ "\'${createdOffer.projectTitle}\' successfully") this.offerService.addToResource(createdOffer) + this.createOfferViewModel.setOfferCreatedSuccessfully(true) } @Override diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferView.groovy index df49e6428..358e7f989 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferView.groovy @@ -2,6 +2,9 @@ package life.qbic.portal.offermanager.components.offer.create import com.vaadin.ui.Component import com.vaadin.ui.FormLayout +import com.vaadin.ui.Label +import com.vaadin.ui.VerticalLayout +import com.vaadin.ui.themes.ValoTheme import life.qbic.datamodel.dtos.business.ProductItem import life.qbic.portal.offermanager.components.affiliation.create.CreateAffiliationView import life.qbic.portal.offermanager.components.person.create.CreatePersonView @@ -21,7 +24,7 @@ import life.qbic.portal.offermanager.components.AppViewModel class CreateOfferView extends FormLayout{ final private AppViewModel sharedViewModel - final private CreateOfferViewModel viewModel + final CreateOfferViewModel viewModel private final CreateOfferController controller @@ -43,8 +46,7 @@ class CreateOfferView extends FormLayout{ CreateOfferController controller, CreatePersonView createCustomerView, CreateAffiliationView createAffiliationView, - OfferResourcesService offerProviderService - ) { + OfferResourcesService offerProviderService) { super() this.sharedViewModel = sharedViewModel this.viewModel = createOfferViewModel @@ -68,13 +70,17 @@ class CreateOfferView extends FormLayout{ // Init the view navigation history to be able to navigate back in history this.viewHistory = new ViewHistory(projectInformationView) - } /** * Initializes the view with the ProjectInformationView, which is the first component to be shown */ private void initLayout(){ + final Label label = new Label("Create A New Offer") + + label.addStyleName(ValoTheme.LABEL_HUGE) + this.addComponent(label) + navigationView = new ButtonNavigationView() .addNavigationItem("1. Project Information") .addNavigationItem("2. Select Customer") @@ -94,6 +100,8 @@ class CreateOfferView extends FormLayout{ ) this.setSizeFull() this.setMargin(false) + this.setSpacing(false) + } /** @@ -159,7 +167,11 @@ class CreateOfferView extends FormLayout{ viewModel.customer, viewModel.projectManager, getProductItems(viewModel.productItems), - viewModel.customerAffiliation) + viewModel.customerAffiliation, + viewModel.experimentalDesign) + }) + this.viewModel.addPropertyChangeListener("offerCreatedSuccessfully", { + resetViewContent() }) } @@ -197,6 +209,15 @@ class CreateOfferView extends FormLayout{ this.overviewView) } + void resetViewContent() { + viewHistory.loadNewView(this.projectInformationView) + navigationView.rewind() + projectInformationView.reset() + customerSelectionView.reset() + projectManagerSelectionView.reset() + selectItemsView.reset() + } + /* * Small helper class that assists us keeping track of the view components * history. diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferViewModel.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferViewModel.groovy index 27de04348..3ff0e9bd3 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferViewModel.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CreateOfferViewModel.groovy @@ -1,6 +1,7 @@ package life.qbic.portal.offermanager.components.offer.create import groovy.beans.Bindable +import groovy.transform.CompileStatic import life.qbic.datamodel.dtos.business.Affiliation import life.qbic.datamodel.dtos.business.Customer import life.qbic.datamodel.dtos.business.Offer @@ -27,13 +28,13 @@ import life.qbic.portal.offermanager.communication.Subscription */ class CreateOfferViewModel { - List sequencingProducts = new ObservableList(new ArrayList()) - List primaryAnalysisProducts = new ObservableList(new ArrayList()) - List secondaryAnalysisProducts = new ObservableList(new ArrayList()) - List managementProducts = new ObservableList(new ArrayList()) - List storageProducts = new ObservableList(new ArrayList()) - List proteomicAnalysisProducts = new ObservableList(new ArrayList()) - List metabolomicAnalysisProduct = new ObservableList(new ArrayList()) + List sequencingProducts = new ObservableList(new ArrayList()) + List primaryAnalysisProducts = new ObservableList(new ArrayList()) + List secondaryAnalysisProducts = new ObservableList(new ArrayList()) + List managementProducts = new ObservableList(new ArrayList()) + List storageProducts = new ObservableList(new ArrayList()) + List proteomicAnalysisProducts = new ObservableList(new ArrayList()) + List metabolomicAnalysisProduct = new ObservableList(new ArrayList()) ObservableList productItems = new ObservableList(new ArrayList()) ObservableList foundCustomers = new ObservableList(new ArrayList()) @@ -42,22 +43,45 @@ class CreateOfferViewModel { @Bindable OfferId offerId @Bindable String projectTitle @Bindable String projectObjective + @Bindable String experimentalDesign @Bindable Customer customer @Bindable Affiliation customerAffiliation @Bindable ProjectManager projectManager @Bindable double offerPrice + @Bindable Boolean projectTitleValid = false + @Bindable Boolean projectObjectiveValid = false + @Bindable Boolean experimentalDesignValid = true + @Bindable double netPrice = 0 @Bindable double taxes = 0 @Bindable double overheads = 0 @Bindable double totalPrice = 0 + @Bindable Boolean sequencingGridSelected + @Bindable Boolean primaryAnalysisGridSelected + @Bindable Boolean secondaryAnalysisGridSelected + @Bindable Boolean proteomicsAnalysisGridSelected + @Bindable Boolean metabolomicsAnalysisGridSelected + @Bindable Boolean projectManagementGridSelected + @Bindable Boolean storageGridSelected + + @Bindable Boolean sequencingQuantityValid + @Bindable Boolean primaryAnalysisQuantityValid + @Bindable Boolean secondaryAnalysisQuantityValid + @Bindable Boolean proteomicsAnalysisQuantityValid + @Bindable Boolean metabolomicsAnalysisQuantityValid + @Bindable Boolean projectManagementQuantityValid + @Bindable Boolean storageQuantityValid + Optional savedOffer = Optional.empty() private final CustomerResourceService customerResourceService private final ProductsResourcesService productsResourcesService private final ProjectManagerResourceService managerResourceService + @Bindable Boolean offerCreatedSuccessfully + CreateOfferViewModel(CustomerResourceService customerResourceService, ProjectManagerResourceService managerResourceService, ProductsResourcesService productsResourcesService) { @@ -65,11 +89,52 @@ class CreateOfferViewModel { this.productsResourcesService = productsResourcesService this.managerResourceService = managerResourceService + offerCreatedSuccessfully = false + this.addPropertyChangeListener("offerCreatedSuccessfully", { + if (it.newValue as Boolean) + resetModel() + }) + fetchPersonData() fetchProductData() subscribeToResources() } + void addItem(ProductItemViewModel item) { + // we don't do anything when the amount is equal or smaller zero + if (item.quantity <= 0.0) { + return + } + List alreadyExistingItems = + productItems.findAll { it.product.productId.equals(item.product.productId)} as List + double totalAmount = item.quantity + for (ProductItemViewModel currentItem : alreadyExistingItems) { + totalAmount = totalAmount + currentItem.quantity + } + productItems.add(new ProductItemViewModel(totalAmount, item.product)) + productItems.removeAll(alreadyExistingItems) + } + + protected void resetModel() { + offerCreatedSuccessfully = false + + offerId = null + projectTitle = "" + projectObjective = "" + experimentalDesign = "" + customer = null + customerAffiliation = null + projectManager = null + offerPrice = 0 + + netPrice = 0 + taxes = 0 + overheads = 0 + totalPrice = 0 + + productItems.clear() + } + private void fetchPersonData() { this.availableProjectManagers.clear() this.availableProjectManagers.addAll(managerResourceService.iterator()) @@ -146,29 +211,28 @@ class CreateOfferViewModel { this.metabolomicAnalysisProduct.clear() products.each { product -> - ProductItemViewModel productItem = new ProductItemViewModel(0, product) switch (product) { case Sequencing: - sequencingProducts.add(productItem) + sequencingProducts.add(product) break case ProjectManagement: - managementProducts.add(productItem) + managementProducts.add(product) break case PrimaryAnalysis: - primaryAnalysisProducts.add(productItem) + primaryAnalysisProducts.add(product) break case SecondaryAnalysis: - secondaryAnalysisProducts.add(productItem) + secondaryAnalysisProducts.add(product) break case DataStorage: - storageProducts.add(productItem) + storageProducts.add(product) break case ProteomicAnalysis: - proteomicAnalysisProducts.add(productItem) + proteomicAnalysisProducts.add(product) break case MetabolomicAnalysis: - metabolomicAnalysisProduct.add(productItem) + metabolomicAnalysisProduct.add(product) break default: // this should not happen diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CustomerSelectionView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CustomerSelectionView.groovy index b88aed9cc..b8129a397 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CustomerSelectionView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/CustomerSelectionView.groovy @@ -16,6 +16,7 @@ import life.qbic.datamodel.dtos.business.AcademicTitle import life.qbic.datamodel.dtos.business.Affiliation import life.qbic.datamodel.dtos.business.Customer import life.qbic.portal.offermanager.components.GridUtils +import life.qbic.portal.offermanager.components.Resettable /** * This class generates a Layout in which the user @@ -28,7 +29,7 @@ import life.qbic.portal.offermanager.components.GridUtils * @since: 0.1.0 * */ -class CustomerSelectionView extends VerticalLayout{ +class CustomerSelectionView extends VerticalLayout implements Resettable{ private final CreateOfferViewModel viewModel @@ -289,4 +290,16 @@ class CustomerSelectionView extends VerticalLayout{ customerGrid.getColumn("EmailAddress"), customerFilterRow) } + + @Override + void reset() { + resetSelection() + } + + private void resetSelection() { + selectedCustomer.setValue("-") + selectedAffiliation.setValue("-") + customerGrid.deselectAll() + affiliationGrid.deselectAll() + } } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/OfferOverviewView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/OfferOverviewView.groovy index 3d5fc80d5..41af0011a 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/OfferOverviewView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/OfferOverviewView.groovy @@ -2,25 +2,23 @@ package life.qbic.portal.offermanager.components.offer.create import com.vaadin.data.provider.ListDataProvider import com.vaadin.icons.VaadinIcons -import com.vaadin.server.FileDownloader -import com.vaadin.server.StreamResource import com.vaadin.shared.ui.grid.HeightMode import com.vaadin.ui.Alignment import com.vaadin.ui.Button +import com.vaadin.ui.Component import com.vaadin.ui.Grid import com.vaadin.ui.HorizontalLayout import com.vaadin.ui.Label import com.vaadin.ui.Panel +import com.vaadin.ui.TextArea import com.vaadin.ui.VerticalLayout import com.vaadin.ui.components.grid.HeaderRow import com.vaadin.ui.renderers.NumberRenderer import com.vaadin.ui.themes.ValoTheme import groovy.util.logging.Log4j2 -import life.qbic.datamodel.dtos.business.Offer import life.qbic.datamodel.dtos.business.services.Product import life.qbic.business.offers.Currency import life.qbic.portal.offermanager.components.GridUtils -import life.qbic.portal.offermanager.OfferToPDFConverter import life.qbic.portal.offermanager.dataresources.offers.OfferResourcesService /** @@ -39,13 +37,10 @@ class OfferOverviewView extends VerticalLayout{ private final CreateOfferViewModel createOfferViewModel - private FileDownloader currentFileDownloader - Panel offerOverview Grid itemGrid Button previous Button save - Button downloadOffer CreateOfferController createOfferController OfferOverviewView(CreateOfferViewModel viewModel, CreateOfferController controller, OfferResourcesService service){ @@ -53,16 +48,6 @@ class OfferOverviewView extends VerticalLayout{ this.createOfferController = controller initLayout() setUpGrid() - service.subscribe((Offer offer) -> { - try { - createOfferController.fetchOffer(offer.identifier) - addOfferResource(offer) - } catch (Exception e) { - log.error("Unable to create the offer PDF resource.") - log.error(e.message) - log.error(e.stackTrace.join("\n")) - } - }) } private void setUpGrid() { @@ -94,11 +79,7 @@ class OfferOverviewView extends VerticalLayout{ this.save = new Button("Save Offer", VaadinIcons.CHECK_SQUARE) save.addStyleName(ValoTheme.LABEL_LARGE) - this.downloadOffer = new Button("Download Offer", VaadinIcons.DOWNLOAD) - downloadOffer.addStyleName(ValoTheme.LABEL_LARGE) - downloadOffer.setEnabled(false) - - HorizontalLayout offerActionButtons = new HorizontalLayout(save, downloadOffer) + HorizontalLayout offerActionButtons = new HorizontalLayout(save) HorizontalLayout buttonLayout = new HorizontalLayout(previous, offerActionButtons) buttonLayout.setSizeFull() @@ -154,23 +135,59 @@ class OfferOverviewView extends VerticalLayout{ /* The detailed project information container */ - VerticalLayout projectInfo = new VerticalLayout() - projectInfo.addComponent(new Label("${createOfferViewModel.projectTitle}")) - projectInfo.addComponent(new Label("${createOfferViewModel.projectObjective}")) - projectInfo.addComponent(new Label("${createOfferViewModel.customer}")) - projectInfo.addComponent(new Label("${createOfferViewModel.customerAffiliation}")) - projectInfo.addComponent(new Label("${createOfferViewModel.projectManager}")) + + VerticalLayout projectInfoForm = new VerticalLayout() + + Label customer = new Label("${createOfferViewModel.customer}") + customer.setIcon(VaadinIcons.USER) + customer.setCaption("Customer") + projectInfoForm.addComponent(customer) + + Label affiliation = new Label("${createOfferViewModel.customerAffiliation}") + affiliation.setIcon(VaadinIcons.WORKPLACE) + affiliation.setCaption("Affiliation") + projectInfoForm.addComponent(affiliation) + + Label projectManager = new Label("${createOfferViewModel.projectManager}") + projectManager.setIcon(VaadinIcons.USER_STAR) + projectManager.setCaption("Project Manager") + projectInfoForm.addComponent(projectManager) + + TextArea objective = new TextArea("Objective") + objective.setIcon(VaadinIcons.TRENDING_UP) + objective.setValue(createOfferViewModel.projectObjective) + objective.setEnabled(false) + objective.setWidth("100%") + projectInfoForm.addComponent(objective) + + TextArea experimentInfo = new TextArea("Experimental design") + experimentInfo.setIcon(VaadinIcons.NOTEBOOK) + experimentInfo.setValue( + createOfferViewModel.experimentalDesign ? createOfferViewModel.experimentalDesign: "No design defined.") + experimentInfo.setEnabled(false) + experimentInfo.setWidth("100%") + projectInfoForm.addComponent(experimentInfo) + + + + /* Here we set the header components, which is the project info on the left and a basic cost overview on the right */ - header.addComponent(projectInfo) - header.addComponent(createCostOverview()) + header.addComponent(projectInfoForm) + Component costOverview = createCostOverview() + header.addComponent(costOverview) header.setWidthFull() + header.setComponentAlignment(costOverview, Alignment.TOP_CENTER) header.setDefaultComponentAlignment(Alignment.TOP_LEFT) /* We add the header as top component in the final view */ + Label spacer = new Label("") + Label title = new Label("${createOfferViewModel.projectTitle}") + title.addStyleName(ValoTheme.LABEL_HUGE) + content.addComponents(spacer, title) content.addComponent(header) content.addComponent(itemGrid) @@ -199,36 +216,6 @@ class OfferOverviewView extends VerticalLayout{ return panel } - private void addOfferResource(Offer offer) { - /* - First, we make sure that no download resources are still attached to the download - button. - */ - removeExistingResources() - //Check if an Offer has been saved. - if (!createOfferViewModel.savedOffer.isPresent()) { - downloadOffer.setEnabled(false) - return - } - // Then we create a new PDF resource ... - OfferToPDFConverter converter = new OfferToPDFConverter(createOfferViewModel.savedOffer.get()) - StreamResource offerResource = new StreamResource((StreamResource.StreamSource res) -> { - return converter.getOfferAsPdf() - }, "${offer.identifier.toString()}.pdf") - // ... and attach it to the download button - currentFileDownloader = new FileDownloader(offerResource) - currentFileDownloader.extend(downloadOffer) - downloadOffer.setEnabled(true) - } - - - private void removeExistingResources() { - if (currentFileDownloader) { - downloadOffer.removeExtension(currentFileDownloader) - downloadOffer.setEnabled(false) - } - } - /* Small helper object, that will display information about individual price positions for offer overviews. diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProductItemViewModel.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProductItemViewModel.groovy index f245f01a3..86b5edf27 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProductItemViewModel.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProductItemViewModel.groovy @@ -1,5 +1,6 @@ package life.qbic.portal.offermanager.components.offer.create +import groovy.transform.EqualsAndHashCode import life.qbic.datamodel.dtos.business.services.Product /** @@ -10,6 +11,7 @@ import life.qbic.datamodel.dtos.business.services.Product * @since: 0.1.0 * */ +@EqualsAndHashCode class ProductItemViewModel { double quantity diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectInformationView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectInformationView.groovy index dd2b9e5ee..0dfcf7fc2 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectInformationView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectInformationView.groovy @@ -1,7 +1,11 @@ package life.qbic.portal.offermanager.components.offer.create import com.vaadin.data.Binder +import com.vaadin.data.ValidationResult +import com.vaadin.data.Validator +import com.vaadin.data.ValueContext import com.vaadin.icons.VaadinIcons +import com.vaadin.server.UserError import com.vaadin.ui.Alignment import com.vaadin.ui.Button import com.vaadin.ui.HorizontalLayout @@ -9,6 +13,7 @@ import com.vaadin.ui.TextArea import com.vaadin.ui.TextField import com.vaadin.ui.VerticalLayout import com.vaadin.ui.themes.ValoTheme +import life.qbic.portal.offermanager.components.Resettable /** * This class generates a Layout in which the user @@ -21,12 +26,13 @@ import com.vaadin.ui.themes.ValoTheme * @since: 0.1.0 * */ -class ProjectInformationView extends VerticalLayout { +class ProjectInformationView extends VerticalLayout implements Resettable { private final CreateOfferViewModel createOfferViewModel TextField projectTitle TextArea projectObjective + TextArea experimentalDesign Button next ProjectInformationView(CreateOfferViewModel createOfferViewModel) { @@ -34,6 +40,7 @@ class ProjectInformationView extends VerticalLayout { initLayout() bindViewModel() + setupValidators() } /** @@ -50,11 +57,15 @@ class ProjectInformationView extends VerticalLayout { projectObjective.setRequiredIndicatorVisible(true) projectObjective.setSizeFull() + this.experimentalDesign = new TextArea("Experimental Design") + experimentalDesign.setPlaceholder("Enter the experimental design here") + experimentalDesign.setSizeFull() + this.next = new Button(VaadinIcons.CHEVRON_CIRCLE_RIGHT) next.addStyleName(ValoTheme.LABEL_LARGE) next.setEnabled(false) - VerticalLayout textLayout = new VerticalLayout(projectTitle, projectObjective) + VerticalLayout textLayout = new VerticalLayout(projectTitle, projectObjective, experimentalDesign) textLayout.setComponentAlignment(projectTitle, Alignment.TOP_CENTER) textLayout.setComponentAlignment(projectObjective, Alignment.BOTTOM_CENTER) textLayout.setSizeFull() @@ -68,6 +79,12 @@ class ProjectInformationView extends VerticalLayout { this.addComponents(textLayout, buttonLayout) } + private void resetContent() { + this.projectTitle.setValue("") + this.projectObjective.setValue("") + this.experimentalDesign.setValue("") + } + /** * This method connects the form fields to the corresponding values in the view model @@ -82,6 +99,8 @@ class ProjectInformationView extends VerticalLayout { .bind({ it.projectTitle }, { it, updatedValue -> it.setProjectTitle(updatedValue) }) binder.forField(projectObjective) .bind({ it.projectObjective }, { it, updatedValue -> it.setProjectObjective(updatedValue) }) + binder.forField(experimentalDesign) + .bind({ it.experimentalDesign }, { it, updatedValue -> it.setExperimentalDesign(updatedValue) }) /* @@ -104,6 +123,10 @@ class ProjectInformationView extends VerticalLayout { String newValue = it.newValue as String projectObjective.value = newValue ?: projectObjective.emptyValue break + case "experimentalDesign": + String newValue = it.newValue as String + experimentalDesign.value = newValue ?: experimentalDesign.emptyValue + break default: break } @@ -125,11 +148,69 @@ class ProjectInformationView extends VerticalLayout { projectObjective.componentError = null } break + case "experimentalDesign": + if (it.newValue || it.newValue == null) { + experimentalDesign.componentError = null + } + break default: break } - next.setEnabled(true) + //todo should not always be enabled + next.enabled = allValuesValid() }) } + private boolean allValuesValid(){ + + return createOfferViewModel.projectTitleValid && + createOfferViewModel.projectObjectiveValid && + createOfferViewModel.experimentalDesignValid + } + + private void setupValidators(){ + Validator notNullValidator = Validator.from({ String value -> (value != null)}, "Please provide a valid description.") + Validator notEmptyValidator = Validator.from({ String value -> (value && !value.trim().empty)}, "Please provide a valid description.") + + + //Add Listeners to all Fields in the Form layout + this.projectTitle.addValueChangeListener({ event -> + ValidationResult result = notEmptyValidator.apply(event.getValue(), new ValueContext(this.projectTitle)) + if (result.isError()) { + createOfferViewModel.projectTitleValid = false + UserError error = new UserError(result.getErrorMessage()) + projectTitle.setComponentError(error) + } else { + createOfferViewModel.projectTitleValid = true + } + }) + + this.projectObjective.addValueChangeListener({ event -> + ValidationResult result = notEmptyValidator.apply(event.getValue(), new ValueContext(this.projectObjective)) + if (result.isError()) { + createOfferViewModel.projectObjectiveValid = false + UserError error = new UserError(result.getErrorMessage()) + projectObjective.setComponentError(error) + } else { + createOfferViewModel.projectObjectiveValid = true + } + }) + + this.experimentalDesign.addValueChangeListener({ event -> + ValidationResult result = notNullValidator.apply(event.getValue(), new ValueContext(this.experimentalDesign)) + if (result.isError()) { + createOfferViewModel.experimentalDesignValid = false + UserError error = new UserError(result.getErrorMessage()) + experimentalDesign.setComponentError(error) + } else { + createOfferViewModel.experimentalDesignValid = true + } + }) + + } + + @Override + void reset() { + resetContent() + } } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectManagerSelectionView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectManagerSelectionView.groovy index 0fa4d3d08..141c6da97 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectManagerSelectionView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/ProjectManagerSelectionView.groovy @@ -13,6 +13,7 @@ import com.vaadin.ui.components.grid.HeaderRow import com.vaadin.ui.themes.ValoTheme import life.qbic.datamodel.dtos.business.ProjectManager import life.qbic.portal.offermanager.components.GridUtils +import life.qbic.portal.offermanager.components.Resettable import life.qbic.portal.offermanager.components.offer.create.CreateOfferViewModel /** @@ -25,7 +26,7 @@ import life.qbic.portal.offermanager.components.offer.create.CreateOfferViewMode * @since: 0.1.0 * */ -class ProjectManagerSelectionView extends VerticalLayout{ +class ProjectManagerSelectionView extends VerticalLayout implements Resettable { private final CreateOfferViewModel viewModel @@ -186,4 +187,14 @@ class ProjectManagerSelectionView extends VerticalLayout{ projectManagerGrid.getColumn("EmailAddress"), customerFilterRow) } + + @Override + void reset() { + resetSelection() + } + + private void resetSelection() { + projectManagerGrid.deselectAll() + selectedProjectManager.setValue("-") + } } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/SelectItemsView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/SelectItemsView.groovy index b00ccd46a..b6203c682 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/SelectItemsView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/create/SelectItemsView.groovy @@ -1,7 +1,12 @@ package life.qbic.portal.offermanager.components.offer.create +import com.vaadin.data.ValidationResult +import com.vaadin.data.Validator +import com.vaadin.data.ValueContext import com.vaadin.data.provider.ListDataProvider +import com.vaadin.data.validator.RegexpValidator import com.vaadin.icons.VaadinIcons +import com.vaadin.server.UserError import com.vaadin.shared.ui.grid.HeightMode import com.vaadin.ui.Alignment import com.vaadin.ui.Button @@ -13,10 +18,12 @@ import com.vaadin.ui.VerticalLayout import com.vaadin.ui.components.grid.HeaderRow import com.vaadin.ui.renderers.NumberRenderer import com.vaadin.ui.themes.ValoTheme +import groovy.transform.CompileStatic import life.qbic.datamodel.dtos.business.services.Product import life.qbic.business.offers.Currency import life.qbic.portal.offermanager.components.GridUtils import life.qbic.portal.offermanager.components.AppViewModel +import life.qbic.portal.offermanager.components.Resettable /** * This class generates a Layout in which the user @@ -29,7 +36,7 @@ import life.qbic.portal.offermanager.components.AppViewModel * @since: 0.1.0 * */ -class SelectItemsView extends VerticalLayout{ +class SelectItemsView extends VerticalLayout implements Resettable{ private final CreateOfferViewModel createOfferViewModel private final AppViewModel viewModel @@ -42,13 +49,13 @@ class SelectItemsView extends VerticalLayout{ private List proteomicAnalysisProduct private List metabolomicAnalysisProduct - Grid sequencingGrid - Grid projectManagementGrid - Grid storageGrid - Grid primaryAnalyseGrid - Grid secondaryAnalyseGrid - Grid proteomicsAnalysisGrid - Grid metabolomicsAnalysisGrid + Grid sequencingGrid + Grid projectManagementGrid + Grid storageGrid + Grid primaryAnalyseGrid + Grid secondaryAnalyseGrid + Grid proteomicsAnalysisGrid + Grid metabolomicsAnalysisGrid Grid overviewGrid Button applySequencing @@ -58,6 +65,7 @@ class SelectItemsView extends VerticalLayout{ Button applyProteomicAnalysis Button applyMetabolomicAnalysis Button applyDataStorage + Button removeItemsButton Button next Button previous @@ -69,6 +77,29 @@ class SelectItemsView extends VerticalLayout{ TextField amountMetabolomicAnalysis TextField amountDataStorage + TabSheet packageAccordion + + /** + * Contains regex for filtering the different product types + * + * This enum stores the regex for validating a user input and differences between an atomic product + * which only allows integer input and a partial product which allows double input. + * + */ + enum ProductTypeRegex { + ATOMIC("^[0-9]+\$"), + PARTIAL("[-]?[0-9]*\\.?[0-9]+"), + + private String regex + + ProductTypeRegex(String regex) { + this.regex = regex; + } + + String getRegex() { + return this.regex; + } + } SelectItemsView(CreateOfferViewModel createOfferViewModel, AppViewModel viewModel){ this.createOfferViewModel = createOfferViewModel @@ -128,6 +159,16 @@ class SelectItemsView extends VerticalLayout{ addListener() } + @Override + void reset() { + resetSelectedItems() + } + + private void resetSelectedItems() { + overviewGrid.deselectAll() + packageAccordion.setSelectedTab(0) + } + /** * Initializes the start layout for this view @@ -185,51 +226,56 @@ class SelectItemsView extends VerticalLayout{ this.applyProjectManagement = new Button("Apply", VaadinIcons.PLUS) applyProjectManagement.setEnabled(false) - HorizontalLayout buttonLayout = new HorizontalLayout(previous,next) + this.removeItemsButton = new Button("Remove Item", VaadinIcons.MINUS) + removeItemsButton.setEnabled(false) + removeItemsButton.setStyleName(ValoTheme.BUTTON_DANGER) + + HorizontalLayout buttonLayout = new HorizontalLayout(previous, removeItemsButton, next) + buttonLayout.setComponentAlignment(removeItemsButton, Alignment.BOTTOM_CENTER) buttonLayout.setComponentAlignment(next, Alignment.BOTTOM_RIGHT) buttonLayout.setComponentAlignment(previous, Alignment.BOTTOM_LEFT) buttonLayout.setSizeFull() HorizontalLayout quantitySeq = new HorizontalLayout(amountSequencing,applySequencing) - quantitySeq.setSizeFull() - quantitySeq.setComponentAlignment(applySequencing, Alignment.BOTTOM_RIGHT) + quantitySeq.setComponentAlignment(applySequencing, Alignment.BOTTOM_LEFT) VerticalLayout seqLayout = new VerticalLayout(sequencingGrid,quantitySeq) + sequencingGrid.setHeightByRows(6) seqLayout.setSizeFull() HorizontalLayout quantityPrimary = new HorizontalLayout(amountPrimaryAnalysis,applyPrimaryAnalysis) - quantityPrimary.setSizeFull() - quantityPrimary.setComponentAlignment(applyPrimaryAnalysis, Alignment.BOTTOM_RIGHT) + quantityPrimary.setComponentAlignment(applyPrimaryAnalysis, Alignment.BOTTOM_LEFT) VerticalLayout primaryAnalysisLayout = new VerticalLayout(primaryAnalyseGrid, quantityPrimary) + primaryAnalyseGrid.setHeightByRows(6) primaryAnalysisLayout.setSizeFull() HorizontalLayout quantitySecondary = new HorizontalLayout(amountSecondaryAnalysis,applySecondaryAnalysis) - quantitySecondary.setSizeFull() - quantitySecondary.setComponentAlignment(applySecondaryAnalysis, Alignment.BOTTOM_RIGHT) + quantitySecondary.setComponentAlignment(applySecondaryAnalysis, Alignment.BOTTOM_LEFT) VerticalLayout secondaryAnalysisLayout = new VerticalLayout(secondaryAnalyseGrid, quantitySecondary) + secondaryAnalyseGrid.setHeightByRows(6) secondaryAnalysisLayout.setSizeFull() HorizontalLayout quantityProteomic = new HorizontalLayout(amountProteomicAnalysis,applyProteomicAnalysis) - quantityProteomic.setSizeFull() - quantityProteomic.setComponentAlignment(applyProteomicAnalysis, Alignment.BOTTOM_RIGHT) + quantityProteomic.setComponentAlignment(applyProteomicAnalysis, Alignment.BOTTOM_LEFT) VerticalLayout proteomicsLayout = new VerticalLayout(proteomicsAnalysisGrid, quantityProteomic) + proteomicsAnalysisGrid.setHeightByRows(6) proteomicsLayout.setSizeFull() HorizontalLayout quantityMetabolomic = new HorizontalLayout(amountMetabolomicAnalysis ,applyMetabolomicAnalysis) - quantityMetabolomic.setSizeFull() - quantityMetabolomic.setComponentAlignment(applyMetabolomicAnalysis, Alignment.BOTTOM_RIGHT) + quantityMetabolomic.setComponentAlignment(applyMetabolomicAnalysis, Alignment.BOTTOM_LEFT) VerticalLayout metabolomicsLayout = new VerticalLayout(metabolomicsAnalysisGrid, quantityMetabolomic) + metabolomicsAnalysisGrid.setHeightByRows(6) metabolomicsLayout.setSizeFull() HorizontalLayout quantityStorage = new HorizontalLayout(amountDataStorage,applyDataStorage) - quantityStorage.setSizeFull() - quantityStorage.setComponentAlignment(applyDataStorage, Alignment.BOTTOM_RIGHT) + quantityStorage.setComponentAlignment(applyDataStorage, Alignment.BOTTOM_LEFT) VerticalLayout dataStorageLayout = new VerticalLayout(storageGrid, quantityStorage) + storageGrid.setHeightByRows(6) dataStorageLayout.setSizeFull() HorizontalLayout quantityManagement = new HorizontalLayout(amountProjectManagement,applyProjectManagement) - quantityManagement.setSizeFull() - quantityManagement.setComponentAlignment(applyProjectManagement, Alignment.BOTTOM_RIGHT) + quantityManagement.setComponentAlignment(applyProjectManagement, Alignment.BOTTOM_LEFT) VerticalLayout projectManagementLayout = new VerticalLayout(projectManagementGrid, quantityManagement) + projectManagementGrid.setHeightByRows(6) projectManagementLayout.setSizeFull() HorizontalLayout overview = new HorizontalLayout(overviewGrid) @@ -244,13 +290,13 @@ class SelectItemsView extends VerticalLayout{ generateProductGrid(storageGrid) generateProductGrid(projectManagementGrid) // This grid summarises product items selected for this specific offer, so we set quantity = true - generateProductGrid(overviewGrid, true) + generateItemGrid(overviewGrid) //make the overview over selected items grow dynamically overviewGrid.setHeightMode(HeightMode.UNDEFINED) - TabSheet packageAccordion = new TabSheet() + packageAccordion = new TabSheet() packageAccordion.addTab(seqLayout,"Sequencing") packageAccordion.addTab(primaryAnalysisLayout,"Primary Bioinformatics") packageAccordion.addTab(secondaryAnalysisLayout,"Secondary Bioinformatics") @@ -320,21 +366,41 @@ class SelectItemsView extends VerticalLayout{ * * This Method is responsible for setting up the grid and setting the product information to the individual grid columns. */ - private static void generateProductGrid(Grid grid, boolean showQuantity = false) { + private static void generateProductGrid(Grid grid) { try { - if(showQuantity){ - grid.addColumn({ productItem -> productItem.quantity }) + grid.addColumn({ it.productId}) + .setCaption("Product Id").setId("ProductId") + grid.addColumn({ it.productName }) + .setCaption("Product Name").setId("ProductName") + grid.addColumn({ it.description }) + .setCaption("Product Description").setId("ProductDescription") + grid.addColumn({ it.unitPrice }, new NumberRenderer(Currency.getFormatterWithSymbol())) + .setCaption("Product Unit Price").setId("ProductUnitPrice") + grid.addColumn({ it.unit.value }) + .setCaption("Product Unit").setId("ProductUnit") + + //specify size of grid and layout + grid.setWidthFull() + grid.setHeightMode(HeightMode.ROW) + } catch (Exception e) { + new Exception("Unexpected exception in building the product item grid", e) + } + } + + private static void generateItemGrid(Grid grid) { + try { + grid.addColumn({ it.quantity}) .setCaption("Quantity").setId("Quantity") - } - grid.addColumn({ productItem -> productItem.product.productId}) + grid.addColumn({ it.product.productId}) .setCaption("Product Id").setId("ProductId") - grid.addColumn({ productItem -> productItem.product.productName }) + grid.addColumn({ it.product.productName }) .setCaption("Product Name").setId("ProductName") - grid.addColumn({ productItem -> productItem.product.description }) + grid.addColumn({ it.product.description }) .setCaption("Product Description").setId("ProductDescription") - grid.addColumn({ productItem -> productItem.product.unitPrice }, new NumberRenderer(Currency.getFormatterWithSymbol())) + grid.addColumn({ it.product.unitPrice }, new NumberRenderer(Currency + .getFormatterWithSymbol())) .setCaption("Product Unit Price").setId("ProductUnitPrice") - grid.addColumn({ productItem -> productItem.product.unit.value }) + grid.addColumn({ it.product.unit.value }) .setCaption("Product Unit").setId("ProductUnit") //specify size of grid and layout @@ -350,8 +416,32 @@ class SelectItemsView extends VerticalLayout{ */ private void addListener() { sequencingGrid.addSelectionListener({ - applySequencing.setEnabled(true) + createOfferViewModel.sequencingGridSelected = it.firstSelectedItem.isPresent() + }) + + Validator nonEmptyStringValidator = Validator.from({ String value -> (value && !value.trim().empty)}, "Please provide a number as input.") + Validator atomicValidator = new RegexpValidator("Please provide an integer Input", ProductTypeRegex.ATOMIC.regex) + Validator partialValidator = new RegexpValidator("Please provide a decimal Input", ProductTypeRegex.PARTIAL.regex) + this.amountSequencing.addValueChangeListener({ event -> + ValidationResult emptyResult = nonEmptyStringValidator.apply(event.getValue(), new ValueContext(amountSequencing)) + ValidationResult numberResult = atomicValidator.apply(event.getValue(), new ValueContext(amountSequencing)) + UserError error + if (emptyResult.isError()) { + error = new UserError(emptyResult.getErrorMessage()) + this.amountSequencing.setComponentError(error) + createOfferViewModel.sequencingQuantityValid = false + } + else if (numberResult.isError()){ + error = new UserError(numberResult.getErrorMessage()) + this.amountSequencing.setComponentError(error) + createOfferViewModel.sequencingQuantityValid = false + } + else{ + this.amountSequencing.setComponentError(null) + createOfferViewModel.sequencingQuantityValid = true + } }) + applySequencing.addClickListener({ if(sequencingGrid.getSelectedItems() != null){ String amount = amountSequencing.getValue() @@ -359,9 +449,10 @@ class SelectItemsView extends VerticalLayout{ try{ if(amount != null && amount.isNumber()){ sequencingGrid.getSelectedItems().each { - if(Integer.parseInt(amount) >= 0){ - it.setQuantity(Integer.parseInt(amount)) - updateOverviewGrid(it) + def amountParsed = Integer.parseInt(amount) + if(amountParsed >= 0){ + ProductItemViewModel offerItem = new ProductItemViewModel(amountParsed, it) + updateOverviewGrid(offerItem) } } sequencingGrid.getDataProvider().refreshAll() @@ -375,11 +466,33 @@ class SelectItemsView extends VerticalLayout{ amountSequencing.clear() sequencingGrid.deselectAll() applySequencing.setEnabled(false) + amountSequencing.setComponentError(null) }) primaryAnalyseGrid.addSelectionListener({ - applyPrimaryAnalysis.setEnabled(true) + createOfferViewModel.primaryAnalysisGridSelected = it.firstSelectedItem.isPresent() }) + + this.amountPrimaryAnalysis.addValueChangeListener({ event -> + ValidationResult emptyResult = nonEmptyStringValidator.apply(event.getValue(), new ValueContext(amountPrimaryAnalysis)) + ValidationResult numberResult = atomicValidator.apply(event.getValue(), new ValueContext(amountPrimaryAnalysis)) + UserError error + if (emptyResult.isError()) { + error = new UserError(emptyResult.getErrorMessage()) + this.amountPrimaryAnalysis.setComponentError(error) + createOfferViewModel.primaryAnalysisQuantityValid = false + } + else if (numberResult.isError()){ + error = new UserError(numberResult.getErrorMessage()) + this.amountPrimaryAnalysis.setComponentError(error) + createOfferViewModel.primaryAnalysisQuantityValid = false + } + else{ + this.amountPrimaryAnalysis.setComponentError(null) + createOfferViewModel.primaryAnalysisQuantityValid = true + } + }) + applyPrimaryAnalysis.addClickListener({ if(primaryAnalyseGrid.getSelectedItems() != null) { String amount = amountPrimaryAnalysis.getValue() @@ -387,12 +500,14 @@ class SelectItemsView extends VerticalLayout{ try{ if(amount != null && amount.isNumber()) { primaryAnalyseGrid.getSelectedItems().each { - if(Integer.parseInt(amount) >= 0){ - it.setQuantity(Integer.parseInt(amount)) - updateOverviewGrid(it) + def amountParsed = Integer.parseInt(amount) + if(amountParsed >= 0){ + ProductItemViewModel offerItem = new ProductItemViewModel(amountParsed, it) + updateOverviewGrid(offerItem) } } primaryAnalyseGrid.getDataProvider().refreshAll() + } } catch(NumberFormatException e) { viewModel.failureNotifications.add("The quantity must be an integer number bigger than 0") @@ -403,11 +518,33 @@ class SelectItemsView extends VerticalLayout{ amountPrimaryAnalysis.clear() primaryAnalyseGrid.deselectAll() applyPrimaryAnalysis.setEnabled(false) + amountPrimaryAnalysis.setComponentError(null) }) secondaryAnalyseGrid.addSelectionListener({ - applySecondaryAnalysis.setEnabled(true) + createOfferViewModel.secondaryAnalysisGridSelected = it.firstSelectedItem.isPresent() }) + + this.amountSecondaryAnalysis.addValueChangeListener({ event -> + ValidationResult emptyResult = nonEmptyStringValidator.apply(event.getValue(), new ValueContext(amountSecondaryAnalysis)) + ValidationResult numberResult = atomicValidator.apply(event.getValue(), new ValueContext(amountSecondaryAnalysis)) + UserError error + if (emptyResult.isError()) { + error = new UserError(emptyResult.getErrorMessage()) + this.amountSecondaryAnalysis.setComponentError(error) + createOfferViewModel.secondaryAnalysisQuantityValid = false + } + else if (numberResult.isError()){ + error = new UserError(numberResult.getErrorMessage()) + this.amountSecondaryAnalysis.setComponentError(error) + createOfferViewModel.secondaryAnalysisQuantityValid = false + } + else{ + this.amountPrimaryAnalysis.setComponentError(null) + createOfferViewModel.secondaryAnalysisQuantityValid = true + } + }) + applySecondaryAnalysis.addClickListener({ if(secondaryAnalyseGrid.getSelectedItems() != null){ String amount = amountSecondaryAnalysis.getValue() @@ -415,10 +552,10 @@ class SelectItemsView extends VerticalLayout{ try{ if(amount != null && amount.isNumber()){ secondaryAnalyseGrid.getSelectedItems().each { - - if(Integer.parseInt(amount) >= 0){ - it.setQuantity(Integer.parseInt(amount)) - updateOverviewGrid(it) + def amountParsed = Integer.parseInt(amount) + if(amountParsed >= 0){ + ProductItemViewModel offerItem = new ProductItemViewModel(amountParsed, it) + updateOverviewGrid(offerItem) } } secondaryAnalyseGrid.getDataProvider().refreshAll() @@ -433,10 +570,31 @@ class SelectItemsView extends VerticalLayout{ amountSecondaryAnalysis.clear() secondaryAnalyseGrid.deselectAll() applySecondaryAnalysis.setEnabled(false) + amountSecondaryAnalysis.setComponentError(null) }) proteomicsAnalysisGrid.addSelectionListener({ - applyProteomicAnalysis.setEnabled(true) + createOfferViewModel.proteomicsAnalysisGridSelected = it.firstSelectedItem.isPresent() + }) + + this.amountProteomicAnalysis.addValueChangeListener({ event -> + ValidationResult emptyResult = nonEmptyStringValidator.apply(event.getValue(), new ValueContext(amountProteomicAnalysis)) + ValidationResult numberResult = atomicValidator.apply(event.getValue(), new ValueContext(amountProteomicAnalysis)) + UserError error + if (emptyResult.isError()) { + error = new UserError(emptyResult.getErrorMessage()) + this.amountProteomicAnalysis.setComponentError(error) + createOfferViewModel.proteomicsAnalysisQuantityValid = false + } + else if (numberResult.isError()){ + error = new UserError(numberResult.getErrorMessage()) + this.amountProteomicAnalysis.setComponentError(error) + createOfferViewModel.proteomicsAnalysisQuantityValid = false + } + else{ + this.amountProteomicAnalysis.setComponentError(null) + createOfferViewModel.proteomicsAnalysisQuantityValid = true + } }) applyProteomicAnalysis.addClickListener({ @@ -445,9 +603,10 @@ class SelectItemsView extends VerticalLayout{ try{ if(amount != null && amount.isNumber()) { proteomicsAnalysisGrid.getSelectedItems().each { - if(Integer.parseInt(amount) >= 0){ - it.setQuantity(Integer.parseInt(amount)) - updateOverviewGrid(it) + def amountParsed = Integer.parseInt(amount) + if(amountParsed >= 0){ + ProductItemViewModel offerItem = new ProductItemViewModel(amountParsed, it) + updateOverviewGrid(offerItem) } } proteomicsAnalysisGrid.getDataProvider().refreshAll() @@ -461,20 +620,43 @@ class SelectItemsView extends VerticalLayout{ amountProteomicAnalysis.clear() proteomicsAnalysisGrid.deselectAll() applyProteomicAnalysis.setEnabled(false) + amountProteomicAnalysis.setComponentError(null) }) metabolomicsAnalysisGrid.addSelectionListener({ - applyMetabolomicAnalysis.setEnabled(true) + createOfferViewModel.metabolomicsAnalysisGridSelected = it.firstSelectedItem.isPresent() + }) + + this.amountMetabolomicAnalysis.addValueChangeListener({ event -> + ValidationResult emptyResult = nonEmptyStringValidator.apply(event.getValue(), new ValueContext(amountMetabolomicAnalysis)) + ValidationResult numberResult = atomicValidator.apply(event.getValue(), new ValueContext(amountMetabolomicAnalysis)) + UserError error + if (emptyResult.isError()) { + error = new UserError(emptyResult.getErrorMessage()) + this.amountMetabolomicAnalysis.setComponentError(error) + createOfferViewModel.metabolomicsAnalysisQuantityValid = false + } + else if (numberResult.isError()){ + error = new UserError(numberResult.getErrorMessage()) + this.amountMetabolomicAnalysis.setComponentError(error) + createOfferViewModel.metabolomicsAnalysisQuantityValid = false + } + else{ + this.amountMetabolomicAnalysis.setComponentError(null) + createOfferViewModel.metabolomicsAnalysisQuantityValid = true + } }) + applyMetabolomicAnalysis.addClickListener({ if(metabolomicsAnalysisGrid.getSelectedItems() != null) { String amount = amountMetabolomicAnalysis.getValue() try{ if(amount != null && amount.isNumber()) { metabolomicsAnalysisGrid.getSelectedItems().each { - if(Integer.parseInt(amount) >= 0){ - it.setQuantity(Integer.parseInt(amount)) - updateOverviewGrid(it) + def amountParsed = Integer.parseInt(amount) + if(amountParsed >= 0){ + ProductItemViewModel offerItem = new ProductItemViewModel(amountParsed, it) + updateOverviewGrid(offerItem) } } metabolomicsAnalysisGrid.getDataProvider().refreshAll() @@ -488,11 +670,33 @@ class SelectItemsView extends VerticalLayout{ amountMetabolomicAnalysis.clear() metabolomicsAnalysisGrid.deselectAll() applyMetabolomicAnalysis.setEnabled(false) + amountMetabolomicAnalysis.setComponentError(null) }) projectManagementGrid.addSelectionListener({ - applyProjectManagement.setEnabled(true) + createOfferViewModel.projectManagementGridSelected = it.firstSelectedItem.isPresent() + }) + + this.amountProjectManagement.addValueChangeListener({ event -> + ValidationResult emptyResult = nonEmptyStringValidator.apply(event.getValue(), new ValueContext(amountProjectManagement)) + ValidationResult numberResult = partialValidator.apply(event.getValue(), new ValueContext(amountProjectManagement)) + UserError error + if (emptyResult.isError()) { + error = new UserError(emptyResult.getErrorMessage()) + this.amountProjectManagement.setComponentError(error) + createOfferViewModel.projectManagementQuantityValid = false + } + else if (numberResult.isError()){ + error = new UserError(numberResult.getErrorMessage()) + this.amountProjectManagement.setComponentError(error) + createOfferViewModel.projectManagementQuantityValid = false + } + else{ + this.amountProjectManagement.setComponentError(null) + createOfferViewModel.projectManagementQuantityValid = true + } }) + applyProjectManagement.addClickListener({ if(projectManagementGrid.getSelectedItems() != null){ String amount = amountProjectManagement.getValue() @@ -500,10 +704,10 @@ class SelectItemsView extends VerticalLayout{ try{ if(amount != null && amount.isNumber()){ projectManagementGrid.getSelectedItems().each { - - if(Double.parseDouble(amount) >= 0.0){ - it.setQuantity(Double.parseDouble(amount)) - updateOverviewGrid(it) + def amountParsed = Double.parseDouble(amount) + if(amountParsed >= 0.0){ + ProductItemViewModel offerItem = new ProductItemViewModel(amountParsed, it) + updateOverviewGrid(offerItem) } } projectManagementGrid.getDataProvider().refreshAll() @@ -516,11 +720,33 @@ class SelectItemsView extends VerticalLayout{ amountProjectManagement.clear() projectManagementGrid.deselectAll() applyProjectManagement.setEnabled(false) + amountProjectManagement.setComponentError(null) }) storageGrid.addSelectionListener({ - applyDataStorage.setEnabled(true) + createOfferViewModel.storageGridSelected = it.firstSelectedItem.isPresent() }) + + this.amountDataStorage.addValueChangeListener({ event -> + ValidationResult emptyResult = nonEmptyStringValidator.apply(event.getValue(), new ValueContext(amountDataStorage)) + ValidationResult numberResult = partialValidator.apply(event.getValue(), new ValueContext(amountDataStorage)) + UserError error + if (emptyResult.isError()) { + error = new UserError(emptyResult.getErrorMessage()) + this.amountDataStorage.setComponentError(error) + createOfferViewModel.storageQuantityValid = false + } + else if (numberResult.isError()){ + error = new UserError(numberResult.getErrorMessage()) + this.amountDataStorage.setComponentError(error) + createOfferViewModel.storageQuantityValid = false + } + else{ + this.amountDataStorage.setComponentError(null) + createOfferViewModel.storageQuantityValid = true + } + }) + applyDataStorage.addClickListener({ if(storageGrid.getSelectedItems() != null){ String amount = amountDataStorage.getValue() @@ -528,10 +754,10 @@ class SelectItemsView extends VerticalLayout{ try{ if(amount != null && amount.isNumber()){ storageGrid.getSelectedItems().each { - - if(Double.parseDouble(amount) >= 0.0){ - it.setQuantity(Double.parseDouble(amount)) - updateOverviewGrid(it) + def amountParsed = Double.parseDouble(amount) + if(amountParsed >= 0.0){ + ProductItemViewModel offerItem = new ProductItemViewModel(amountParsed, it) + updateOverviewGrid(offerItem) } } storageGrid.getDataProvider().refreshAll() @@ -544,6 +770,7 @@ class SelectItemsView extends VerticalLayout{ amountDataStorage.clear() storageGrid.deselectAll() applyDataStorage.setEnabled(false) + amountDataStorage.setComponentError(null) }) createOfferViewModel.productItems.addPropertyChangeListener({ @@ -553,20 +780,45 @@ class SelectItemsView extends VerticalLayout{ next.setEnabled(false) } }) + + createOfferViewModel.addPropertyChangeListener({ + applySequencing.setEnabled(createOfferViewModel.sequencingGridSelected && createOfferViewModel.sequencingQuantityValid) + applyPrimaryAnalysis.setEnabled(createOfferViewModel.primaryAnalysisGridSelected && createOfferViewModel.primaryAnalysisQuantityValid) + applySecondaryAnalysis.setEnabled(createOfferViewModel.secondaryAnalysisGridSelected && createOfferViewModel.secondaryAnalysisQuantityValid) + applyProteomicAnalysis.setEnabled(createOfferViewModel.proteomicsAnalysisGridSelected && createOfferViewModel.proteomicsAnalysisQuantityValid) + applyMetabolomicAnalysis.setEnabled(createOfferViewModel.metabolomicsAnalysisGridSelected && createOfferViewModel.metabolomicsAnalysisQuantityValid) + applyProjectManagement.setEnabled(createOfferViewModel.projectManagementGridSelected && createOfferViewModel.projectManagementQuantityValid) + applyDataStorage.setEnabled(createOfferViewModel.storageGridSelected && createOfferViewModel.storageQuantityValid) + }) + + overviewGrid.addSelectionListener({ + if (it.allSelectedItems) { + removeItemsButton.setEnabled(true) + } else { + removeItemsButton.setEnabled(false) + } + }) + + removeItemsButton.addClickListener({ + def selectedItems = overviewGrid.getSelectedItems() + if (selectedItems) { + createOfferViewModel.productItems.removeAll(selectedItems) + overviewGrid.dataProvider.refreshAll() + overviewGrid.deselectAll() + } + }) } /** * This method should be called whenever the quantity of a ProductItemViewModel changes. It updates the items in overview grid respectively */ void updateOverviewGrid(ProductItemViewModel item){ - if(!createOfferViewModel.productItems.contains(item)){ - createOfferViewModel.productItems.add(item) - } - if(item.quantity == 0.0 as Double){ - createOfferViewModel.productItems.remove(item) - } + createOfferViewModel.addItem(item) overviewGrid.getDataProvider().refreshAll() + refreshNavButtons() + } + private void refreshNavButtons() { if(createOfferViewModel.productItems.size() > 0){ next.setEnabled(true) }else{ diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/overview/OfferOverviewView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/overview/OfferOverviewView.groovy index f249025b3..2f9b9176d 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/overview/OfferOverviewView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/overview/OfferOverviewView.groovy @@ -15,18 +15,19 @@ import com.vaadin.ui.ProgressBar import com.vaadin.ui.UI import com.vaadin.ui.VerticalLayout import com.vaadin.ui.components.grid.HeaderRow +import com.vaadin.ui.renderers.DateRenderer import com.vaadin.ui.themes.ValoTheme import com.vaadin.ui.Grid.Column import com.vaadin.ui.renderers.TextRenderer import groovy.util.logging.Log4j2 import life.qbic.datamodel.dtos.business.Offer +import life.qbic.portal.offermanager.OfferFileNameFormatter import life.qbic.portal.offermanager.components.offer.overview.projectcreation.CreateProjectView import life.qbic.portal.offermanager.dataresources.offers.OfferOverview import life.qbic.business.offers.Currency import life.qbic.portal.offermanager.components.GridUtils -import java.time.LocalDate /** * A basic offer overview user interface. @@ -128,8 +129,9 @@ class OfferOverviewView extends FormLayout { } private void setupGrid() { - Column dateColumn = overviewGrid.addColumn({ overview -> overview.getModificationDate() }) - .setCaption("Creation Date").setId("CreationDate") + Column dateColumn = overviewGrid.addColumn({ overview -> overview + .getModificationDate() }).setCaption("Creation Date").setId("CreationDate") + dateColumn.setRenderer(date -> date, new DateRenderer('%1$tY-%1$tm-%1$td')) overviewGrid.addColumn({overview -> overview.offerId.toString()}) .setCaption("Offer ID").setId("OfferId") overviewGrid.addColumn({overview -> overview.getProjectTitle()}) @@ -206,7 +208,7 @@ class OfferOverviewView extends FormLayout { StreamResource offerResource = new StreamResource((StreamResource.StreamSource res) -> { return model.getOfferAsPdf() - }, FileNameFormatter.getFileNameForOffer(model.getSelectedOffer())) + }, OfferFileNameFormatter.getFileNameForOffer(model.getSelectedOffer())) fileDownloader = new FileDownloader(offerResource) fileDownloader.extend(downloadBtn) } @@ -262,26 +264,4 @@ class OfferOverviewView extends FormLayout { } } - private static class FileNameFormatter { - - /** - * Returns an offer file name in this schema: - * - * Q______v.pdf - * @param offer - * @return - */ - static String getFileNameForOffer(Offer offer) { - LocalDate date = offer.modificationDate.toLocalDate() - String dateString = createDateString(date) - return "Q_${dateString}_" + - "${offer.identifier.projectConservedPart}_${offer.identifier.randomPart}_" + - "v${offer.identifier.version}.pdf" - } - - private static String createDateString(LocalDate date) { - return String.format("%04d_%02d_%02d", date.getYear(), date.getMonthValue(), date.getDayOfMonth()) - } - - } } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/update/UpdateOfferViewModel.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/update/UpdateOfferViewModel.groovy index a6834199f..049124dc8 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/update/UpdateOfferViewModel.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/offer/update/UpdateOfferViewModel.groovy @@ -49,6 +49,7 @@ class UpdateOfferViewModel extends CreateOfferViewModel{ super.customer = offer.customer super.customerAffiliation = offer.selectedCustomerAffiliation super.projectManager = offer.projectManager + super.experimentalDesign = offer.experimentalDesign.orElse("") super.productItems.clear() super.productItems.addAll(offer.items.collect { new ProductItemViewModel(it.quantity, it.product)}) diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/create/CreatePersonView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/create/CreatePersonView.groovy index 26d7e4e81..e81a226d0 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/create/CreatePersonView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/create/CreatePersonView.groovy @@ -28,12 +28,14 @@ import life.qbic.portal.offermanager.components.AppViewModel */ @Log4j2 -class CreatePersonView extends VerticalLayout { +class CreatePersonView extends FormLayout { protected final AppViewModel sharedViewModel protected final CreatePersonViewModel createPersonViewModel final CreatePersonController controller protected Registration submitButtonClickListenerRegistration + Label viewCaption + ComboBox titleField TextField firstNameField TextField lastNameField @@ -62,6 +64,10 @@ class CreatePersonView extends VerticalLayout { * to enable user input for person creation */ private def initLayout() { + this.viewCaption = new Label("Create New Person Entry") + + viewCaption.addStyleName(ValoTheme.LABEL_HUGE) + this.addComponent(viewCaption) this.titleField = generateTitleSelector(createPersonViewModel.academicTitles) @@ -229,6 +235,8 @@ class CreatePersonView extends VerticalLayout { ListDataProvider dataProvider = organisation.affiliations this.addressAdditionComboBox.setDataProvider(dataProvider) dataProvider.setSortOrder({it.addressAddition}, SortDirection.ASCENDING) + + this.addressAdditionComboBox.setSelectedItem(dataProvider.getItems().getAt(0)) } /** diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/update/UpdatePersonView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/update/UpdatePersonView.groovy index d51967572..7a7ea1bdf 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/update/UpdatePersonView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/person/update/UpdatePersonView.groovy @@ -39,19 +39,24 @@ class UpdatePersonView extends CreatePersonView{ } private void adjustViewElements() { + viewCaption.setValue("Update Person Entry") + submitButton.caption = "Update Person" abortButton.caption = "Abort Person Update" + //be careful when adding new components to the view + //it is based on the CreatePersonView, you might disrupt the view when adding new components to the wrong position + //add a grid affiliations = new Grid<>() generateAffiliationGrid() - affiliations.setCaption("Current Affiliations") + Label currentAffiliationLabel = new Label("Current Affiliations") affiliations.setSelectionMode(Grid.SelectionMode.NONE) - - this.addComponent(affiliations,2) + this.addComponent(currentAffiliationLabel, 3) + this.addComponent(affiliations,4) //add a heading for adding a new affiliation Label newAffiliation = new Label("Add a new affiliation") - this.addComponent(newAffiliation,3) + this.addComponent(newAffiliation,5) //add the add button addAffiliationButton = new Button("Add Affiliation") diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsPresenter.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsPresenter.groovy index 25921870d..e193e35ff 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsPresenter.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsPresenter.groovy @@ -34,12 +34,14 @@ class MaintainProductsPresenter implements CreateProductOutput, ArchiveProductOu void created(Product product) { mainViewModel.successNotifications << "Successfully added new product $product.productId - $product.productName." productsViewModel.productsResourcesService.addToResource(product) + productsViewModel.productCreatedSuccessfully = true } @Override void copied(Product product) { -mainViewModel.successNotifications << "Successfully copied product $product.productId - $product.productName." + mainViewModel.successNotifications << "Successfully copied product $product.productId - $product.productName." productsViewModel.productsResourcesService.addToResource(product) + productsViewModel.productCreatedSuccessfully = true } @Override diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsView.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsView.groovy index 43859080d..891ed596a 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsView.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsView.groovy @@ -4,6 +4,7 @@ import com.vaadin.data.provider.ListDataProvider import com.vaadin.icons.VaadinIcons import com.vaadin.ui.Alignment import com.vaadin.ui.Button +import com.vaadin.ui.FormLayout import com.vaadin.ui.Grid import com.vaadin.ui.HorizontalLayout import com.vaadin.ui.Label @@ -15,10 +16,10 @@ import com.vaadin.ui.Grid.Column import com.vaadin.ui.renderers.TextRenderer import life.qbic.business.offers.Currency import life.qbic.datamodel.dtos.business.services.Product +import life.qbic.portal.offermanager.components.ConfirmationDialog import life.qbic.portal.offermanager.components.GridUtils import life.qbic.portal.offermanager.components.product.copy.CopyProductView import life.qbic.portal.offermanager.components.product.create.CreateProductView -import life.qbic.portal.offermanager.dataresources.offers.OfferOverview /** * @@ -30,18 +31,20 @@ import life.qbic.portal.offermanager.dataresources.offers.OfferOverview * @since 1.0.0 * */ -class MaintainProductsView extends VerticalLayout{ +class MaintainProductsView extends FormLayout { private final MaintainProductsViewModel viewModel private final MaintainProductsController controller - Grid productGrid - HorizontalLayout buttonLayout - Button addProduct - Button copyProduct - Button archiveProduct - Panel productDescription - VerticalLayout maintenanceLayout + ConfirmationDialog dialog + + private Grid productGrid + private HorizontalLayout buttonLayout + private Button addProduct + private Button copyProduct + private Button archiveProduct + private Panel productDescription + private VerticalLayout maintenanceLayout CreateProductView createProductView CopyProductView copyProductView @@ -53,13 +56,11 @@ class MaintainProductsView extends VerticalLayout{ this.viewModel = viewModel this.createProductView = createProductView this.copyProductView = copyProductView - + setupTitle() setupPanel() createButtons() setupGrid() - setupDataProvider() setupOverviewLayout() - setupTitle() addSubViews() setupListeners() } @@ -67,7 +68,8 @@ class MaintainProductsView extends VerticalLayout{ private void setupTitle(){ Label label = new Label("Service Product Maintenance") label.setStyleName(ValoTheme.LABEL_HUGE) - maintenanceLayout.addComponent(label,0) + this.setMargin(false) + this.addComponent(label, 0) } private void createButtons(){ @@ -96,18 +98,19 @@ class MaintainProductsView extends VerticalLayout{ productGrid.setWidthFull() - def productsDataProvider = setupDataProvider() + ListDataProvider productsDataProvider = setupDataProvider() setupFilters(productsDataProvider) } private ListDataProvider setupDataProvider(){ - def dataProvider = new ListDataProvider(viewModel.products) + ListDataProvider dataProvider = new ListDataProvider(viewModel.products) productGrid.setDataProvider(dataProvider) return dataProvider } - private void setupFilters(ListDataProvider dataProvider){ + private void setupFilters(ListDataProvider dataProvider){ HeaderRow productsFilterRow = productGrid.appendHeaderRow() + GridUtils.setupColumnFilter(dataProvider, productGrid.getColumn("ProductId"), productsFilterRow) @@ -121,7 +124,7 @@ class MaintainProductsView extends VerticalLayout{ } private void setupOverviewLayout(){ - maintenanceLayout = new VerticalLayout(productGrid,buttonLayout) + maintenanceLayout = new VerticalLayout(productGrid, buttonLayout) maintenanceLayout.setSizeFull() maintenanceLayout.setMargin(false) maintenanceLayout.addComponents() @@ -184,12 +187,32 @@ class MaintainProductsView extends VerticalLayout{ }) archiveProduct.addClickListener({ - controller.archiveProduct(viewModel.selectedProduct.get().productId) + dialog = new ConfirmationDialog("Do you want to archive ${viewModel.selectedProduct.get().productId.toString()}?") + UI.getCurrent().addWindow(dialog) + + dialog.confirm.caption = "Archive" + dialog.confirm.setIcon(VaadinIcons.ARCHIVE) + dialog.confirm.addStyleName(ValoTheme.BUTTON_DANGER) + + dialog.decline.caption = "Abort" + dialog.decline.setIcon(VaadinIcons.CLOSE) + + dialog.confirm.addClickListener({ + controller.archiveProduct(viewModel.selectedProduct.get().productId) + }) }) viewModel.products.addPropertyChangeListener({ productGrid.dataProvider.refreshAll() }) + + viewModel.addPropertyChangeListener("productCreatedSuccessfully", { + if(it.newValue as Boolean){ + createProductView.setVisible(false) + maintenanceLayout.setVisible(true) + viewModel.reset() + } + }) } private void checkProductSelected() { diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsViewModel.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsViewModel.groovy index f3655d15e..e471911ac 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsViewModel.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/components/product/MaintainProductsViewModel.groovy @@ -29,13 +29,20 @@ class MaintainProductsViewModel { final ProductsResourcesService productsResourcesService EventEmitter productUpdate + @Bindable Boolean productCreatedSuccessfully + MaintainProductsViewModel(ProductsResourcesService productsResourcesService, EventEmitter productUpdate) { this.productsResourcesService = productsResourcesService this.productUpdate = productUpdate + productCreatedSuccessfully = false fetchProducts() subscribe() } + void reset() { + productCreatedSuccessfully = false + } + private void fetchProducts(){ products.addAll(productsResourcesService.iterator()) } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/offers/OfferDbConnector.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/offers/OfferDbConnector.groovy index 9ebab4cb6..10f9cf24e 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/offers/OfferDbConnector.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/offers/OfferDbConnector.groovy @@ -2,11 +2,14 @@ package life.qbic.portal.offermanager.dataresources.offers import groovy.util.logging.Log4j2 import life.qbic.business.offers.fetch.FetchOfferDataSource +import life.qbic.datamodel.dtos.business.Affiliation import life.qbic.datamodel.dtos.business.OfferId import life.qbic.datamodel.dtos.business.Customer import life.qbic.datamodel.dtos.business.Offer import life.qbic.business.exceptions.DatabaseQueryException import life.qbic.business.offers.create.CreateOfferDataSource +import life.qbic.datamodel.dtos.business.ProductItem +import life.qbic.datamodel.dtos.business.ProjectManager import life.qbic.datamodel.dtos.projectmanagement.ProjectCode import life.qbic.datamodel.dtos.projectmanagement.ProjectIdentifier import life.qbic.datamodel.dtos.projectmanagement.ProjectSpace @@ -37,10 +40,10 @@ class OfferDbConnector implements CreateOfferDataSource, FetchOfferDataSource, P private static final String OFFER_INSERT_QUERY = "INSERT INTO offer (offerId, " + "creationDate, expirationDate, customerId, projectManagerId, projectTitle, " + "projectObjective, totalPrice, customerAffiliationId, vat, netPrice, overheads, " + - "checksum)" + "checksum, experimentalDesign)" private static final String OFFER_SELECT_QUERY = "SELECT offerId, creationDate, expirationDate, customerId, projectManagerId, projectTitle," + - "projectObjective, totalPrice, customerAffiliationId, vat, netPrice, overheads FROM offer" + "projectObjective, totalPrice, customerAffiliationId, vat, netPrice, overheads, experimentalDesign FROM offer" OfferDbConnector(ConnectionProvider connectionProvider, PersonDbConnector personDbConnector, ProductsDbConnector productsDbConnector){ @@ -148,13 +151,14 @@ class OfferDbConnector implements CreateOfferDataSource, FetchOfferDataSource, P * @return the id of the stored offer in the database */ private int storeOffer(Offer offer, int projectManagerId, int customerId, int affiliationId){ - String sqlValues = "VALUE(?,?,?,?,?,?,?,?,?,?,?,?,?)" + String sqlValues = "VALUE(?,?,?,?,?,?,?,?,?,?,?,?,?,?)" String queryTemplate = OFFER_INSERT_QUERY + " " + sqlValues def identifier = offer.identifier List generatedKeys = [] Connection connection = connectionProvider.connect() log.info("New offer with id: ${offer.identifier}") connection.withCloseable { + String experimentalDesign = offer.experimentalDesign.orElse(null) PreparedStatement preparedStatement = it.prepareStatement(queryTemplate, Statement.RETURN_GENERATED_KEYS) preparedStatement.setString(1, identifier.toString()) preparedStatement.setDate(2, new Date(offer.modificationDate.time)) @@ -169,6 +173,7 @@ class OfferDbConnector implements CreateOfferDataSource, FetchOfferDataSource, P preparedStatement.setDouble(11, offer.netPrice) preparedStatement.setDouble(12, offer.overheads) preparedStatement.setString(13, offer.checksum) + preparedStatement.setString(14, experimentalDesign) preparedStatement.execute() @@ -251,31 +256,32 @@ class OfferDbConnector implements CreateOfferDataSource, FetchOfferDataSource, P /* Load the offer Id first */ - def fetchedOfferId = parseOfferId(resultSet.getString("offerId")) - def offerPrimaryId = resultSet.getInt("id") + OfferId fetchedOfferId = parseOfferId(resultSet.getString("offerId")) + int offerPrimaryId = resultSet.getInt("id") /* Load customer and project manager info */ - def customerId = resultSet.getInt("customerId") - def projectManagerId = resultSet.getInt("projectManagerId") - def customer = customerGateway.getCustomer(customerId) - def projectManager = customerGateway.getProjectManager(projectManagerId) + int customerId = resultSet.getInt("customerId") + int projectManagerId = resultSet.getInt("projectManagerId") + Customer customer = customerGateway.getCustomer(customerId) + ProjectManager projectManager = customerGateway.getProjectManager(projectManagerId) /* Load general offer info */ - def projectTitle = resultSet.getString("projectTitle") - def projectObjective = resultSet.getString("projectObjective") - def totalCosts = resultSet.getDouble("totalPrice") - def vat = resultSet.getDouble("vat") - def overheads = resultSet.getDouble("overheads") - def net = resultSet.getDouble("netPrice") - def creationDate = resultSet.getDate("creationDate") - def expirationDate = resultSet.getDate("expirationDate") - def selectedAffiliationId = resultSet.getInt("customerAffiliationId") - def selectedAffiliation = customerGateway.getAffiliation(selectedAffiliationId) - def items = productGateway.getItemsForOffer(offerPrimaryId) - def checksum = resultSet.getString("checksum") - def associatedProject = resultSet.getString("associatedProject") + String projectTitle = resultSet.getString("projectTitle") + String projectObjective = resultSet.getString("projectObjective") + double totalCosts = resultSet.getDouble("totalPrice") + double vat = resultSet.getDouble("vat") + double overheads = resultSet.getDouble("overheads") + double net = resultSet.getDouble("netPrice") + Date creationDate = resultSet.getDate("creationDate") + Date expirationDate = resultSet.getDate("expirationDate") + int selectedAffiliationId = resultSet.getInt("customerAffiliationId") + Affiliation selectedAffiliation = customerGateway.getAffiliation(selectedAffiliationId) + List items = productGateway.getItemsForOffer(offerPrimaryId) + String checksum = resultSet.getString("checksum") + String associatedProject = resultSet.getString("associatedProject") + String experimentalDesign = resultSet.getString("experimentalDesign") def offerBuilder = new Offer.Builder( customer, @@ -296,6 +302,9 @@ class OfferDbConnector implements CreateOfferDataSource, FetchOfferDataSource, P if (projectIdentifier.isPresent()) { offerBuilder.associatedProject(projectIdentifier.get()) } + if(experimentalDesign){ + offerBuilder.experimentalDesign(experimentalDesign) + } offer = Optional.of(offerBuilder.build()) } } diff --git a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/projects/ProjectDbConnector.groovy b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/projects/ProjectDbConnector.groovy index 5a56a6829..cbe1d5273 100644 --- a/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/projects/ProjectDbConnector.groovy +++ b/offer-manager-app/src/main/groovy/life/qbic/portal/offermanager/dataresources/projects/ProjectDbConnector.groovy @@ -64,7 +64,7 @@ class ProjectDbConnector { ProjectCode project = new ProjectCode(tokens[2]) projects.add(new ProjectIdentifier(space, project)) } catch (Exception e) { - e.printStackTrace() + log.error(e) throw new DatabaseQueryException("Could not parse existing projects from database.") } } @@ -160,7 +160,7 @@ class ProjectDbConnector { statement.execute() } catch (Exception e) { log.error("SQL operation unsuccessful: " + e.getMessage()) - e.printStackTrace() + log.debug("SQL operation unsuccessful: " + e.getMessage(), e) } } } @@ -181,7 +181,7 @@ class ProjectDbConnector { } } catch (Exception e) { log.error("SQL operation unsuccessful: " + e.getMessage()) - e.printStackTrace() + log.debug("SQL operation unsuccessful: " + e.getMessage(), e) } return res } diff --git a/offer-manager-app/src/main/resources/offer-template/offer.html b/offer-manager-app/src/main/resources/offer-template/offer.html index bcddd13a1..a36d28c9c 100644 --- a/offer-manager-app/src/main/resources/offer-template/offer.html +++ b/offer-manager-app/src/main/resources/offer-template/offer.html @@ -66,7 +66,12 @@ Explain in short what analysis will be performed.
Describe what is included in the quotation/cost estimation and some general information. -
Detailed information about the comprised services can be found here.
+
+
+ No experimental design has been described. +
+
+
Detailed information about the comprised services are listed in the Quotation Details.
Estimated total (net)
@@ -178,10 +183,6 @@

Quotation Details

- -
-

This is some outro text. It has changed!!

-
diff --git a/offer-manager-app/src/main/webapp/VAADIN/themes/mytheme/styles.css b/offer-manager-app/src/main/webapp/VAADIN/themes/mytheme/styles.css deleted file mode 100644 index 1f0c06059..000000000 --- a/offer-manager-app/src/main/webapp/VAADIN/themes/mytheme/styles.css +++ /dev/null @@ -1,15435 +0,0 @@ -/** - * Checks if a list contains a certain value. - * - * @param {list} $list - the list to check - * @param {value} $var - the value to search for - * @param {bool} $recursive (false) - should any contained lists be checked for the value - * - * @return {bool} true if the value is found from the list, false otherwise - * - * @group lists - */ - -/** - * Cross-browser opacity. - * - * @param {number} $value - opacity value from 0 to 1 - * @param {bool} $important (false) - should the property value be declared with !important - * - * @group util - */ - -@-webkit-keyframes valo-animate-in-fade { - 0% { - opacity: 0; - } - } - -@-moz-keyframes valo-animate-in-fade { - 0% { - opacity: 0; - } - } - -@keyframes valo-animate-in-fade { - 0% { - opacity: 0; - } - } - -@-webkit-keyframes valo-animate-out-fade { - 100% { - opacity: 0; - } - } - -@-moz-keyframes valo-animate-out-fade { - 100% { - opacity: 0; - } - } - -@keyframes valo-animate-out-fade { - 100% { - opacity: 0; - } - } - -@-webkit-keyframes valo-animate-in-slide-down { - 0% { - -webkit-transform: translateY(-100%); - } - } - -@-moz-keyframes valo-animate-in-slide-down { - 0% { - -moz-transform: translateY(-100%); - } - } - -@keyframes valo-animate-in-slide-down { - 0% { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - -ms-transform: translateY(-100%); - -o-transform: translateY(-100%); - transform: translateY(-100%); - } - } - -@-webkit-keyframes valo-animate-in-slide-up { - 0% { - -webkit-transform: translateY(100%); - } - } - -@-moz-keyframes valo-animate-in-slide-up { - 0% { - -moz-transform: translateY(100%); - } - } - -@keyframes valo-animate-in-slide-up { - 0% { - -webkit-transform: translateY(100%); - -moz-transform: translateY(100%); - -ms-transform: translateY(100%); - -o-transform: translateY(100%); - transform: translateY(100%); - } - } - -@-webkit-keyframes valo-animate-in-slide-left { - 0% { - -webkit-transform: translateX(100%); - } - } - -@-moz-keyframes valo-animate-in-slide-left { - 0% { - -moz-transform: translateX(100%); - } - } - -@keyframes valo-animate-in-slide-left { - 0% { - -webkit-transform: translateX(100%); - -moz-transform: translateX(100%); - -ms-transform: translateX(100%); - -o-transform: translateX(100%); - transform: translateX(100%); - } - } - -@-webkit-keyframes valo-animate-in-slide-right { - 0% { - -webkit-transform: translateX(-100%); - } - } - -@-moz-keyframes valo-animate-in-slide-right { - 0% { - -moz-transform: translateX(-100%); - } - } - -@keyframes valo-animate-in-slide-right { - 0% { - -webkit-transform: translateX(-100%); - -moz-transform: translateX(-100%); - -ms-transform: translateX(-100%); - -o-transform: translateX(-100%); - transform: translateX(-100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-down { - 100% { - -webkit-transform: translateY(100%); - } - } - -@-moz-keyframes valo-animate-out-slide-down { - 100% { - -moz-transform: translateY(100%); - } - } - -@keyframes valo-animate-out-slide-down { - 100% { - -webkit-transform: translateY(100%); - -moz-transform: translateY(100%); - -ms-transform: translateY(100%); - -o-transform: translateY(100%); - transform: translateY(100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-up { - 100% { - -webkit-transform: translateY(-100%); - } - } - -@-moz-keyframes valo-animate-out-slide-up { - 100% { - -moz-transform: translateY(-100%); - } - } - -@keyframes valo-animate-out-slide-up { - 100% { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - -ms-transform: translateY(-100%); - -o-transform: translateY(-100%); - transform: translateY(-100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-left { - 100% { - -webkit-transform: translateX(-100%); - } - } - -@-moz-keyframes valo-animate-out-slide-left { - 100% { - -moz-transform: translateX(-100%); - } - } - -@keyframes valo-animate-out-slide-left { - 100% { - -webkit-transform: translateX(-100%); - -moz-transform: translateX(-100%); - -ms-transform: translateX(-100%); - -o-transform: translateX(-100%); - transform: translateX(-100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-right { - 100% { - -webkit-transform: translateX(100%); - } - } - -@-moz-keyframes valo-animate-out-slide-right { - 100% { - -moz-transform: translateX(100%); - } - } - -@keyframes valo-animate-out-slide-right { - 100% { - -webkit-transform: translateX(100%); - -moz-transform: translateX(100%); - -ms-transform: translateX(100%); - -o-transform: translateX(100%); - transform: translateX(100%); - } - } - -@-webkit-keyframes valo-overlay-animate-in { - 0% { - -webkit-transform: translatey(-4px); - opacity: 0; - } - } - -@-moz-keyframes valo-overlay-animate-in { - 0% { - -moz-transform: translatey(-4px); - opacity: 0; - } - } - -@keyframes valo-overlay-animate-in { - 0% { - -webkit-transform: translatey(-4px); - -moz-transform: translatey(-4px); - -ms-transform: translatey(-4px); - -o-transform: translatey(-4px); - transform: translatey(-4px); - opacity: 0; - } - } - -@-webkit-keyframes valo-animate-out-slide-down-fade { - 100% { - opacity: 0; - -webkit-transform: translatey(30%); - } - } - -@-moz-keyframes valo-animate-out-slide-down-fade { - 100% { - opacity: 0; - -moz-transform: translatey(30%); - } - } - -@keyframes valo-animate-out-slide-down-fade { - 100% { - opacity: 0; - -webkit-transform: translatey(30%); - -moz-transform: translatey(30%); - -ms-transform: translatey(30%); - -o-transform: translatey(30%); - transform: translatey(30%); - } - } - -/** - * Outputs cross-browser Valo-specific linear gradient background-image declarations. - * - * @group style - * - * @param {color} $color ($v-background-color) - The base color for the gradient color stops - * @param {list} $gradient ($v-gradient) - Valo-specific gradient value. See the documentation for $v-gradient. - * @param {color} $fallback (null) - A fallback color for browser which do not support linear gradients (IE8 and IE9 in particular). If null, the base $color is used instead. - * @param {string} $direction (to bottom) - the direction of the linear gradient. The color stops are by default so that a lighter shade is at the start and a darker shade is at the end. - */ - -/** - * Computes a CSS border property value for the given base color. - * - * @group style - * - * @param {list} $border ($v-border) - CSS border value which can contain any of the color keywords - * @param {color} $color ($v-background-color) - the base color to which the color keywords are applied to - * @param {color} $context (null) - context/surrounding color where the border is expected to appear. The color of the final border is the darker of the two parameters passed to this function. - * @param {number} $strength (1) - adjustment for the border contrast - * - * @return {list} The input $border value with any color keyword replaced with the corresponding actual color - */ - -/** - * Ouput selectors and properties to vertically center elements inside their parent. - * - * @param {string} $to-align (()) - The selector to match the elements which you wish to align vertically. The targeted elements should be inline or inline-block elements. - * @param {string} $align (middle) - The vertical-align value, e.g. top, middle, bottom - * @param {string} $pseudo-element (after) - Which pseudo element to use for the vertical align guide - * - * @group util - */ - -@font-face { - font-family: "Vaadin-Icons"; - src: url(../valo/fonts/vaadin-icons/Vaadin-Icons.eot); - src: url(../valo/fonts/vaadin-icons/Vaadin-Icons.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.woff) format("woff"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.ttf) format("truetype"), url(../valo/fonts/vaadin-icons/Vaadin-Icons.svg#icomoon) format("svg"); -} - -.Vaadin-Icons { - font-family: "Vaadin-Icons"; -} - -@font-face { - font-family: ThemeIcons; - font-weight: normal; - font-style: normal; - src: url(../valo/util/bourbon/css3/../../../../valo/fonts/themeicons-webfont/themeicons-webfont.eot); - src: url(../valo/util/bourbon/css3/../../../../valo/fonts/themeicons-webfont/themeicons-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../valo/fonts/themeicons-webfont/themeicons-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../valo/fonts/themeicons-webfont/themeicons-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../valo/fonts/themeicons-webfont/themeicons-webfont.svg#ThemeIcons) format("svg"); -} - -.ThemeIcons { - font-family: ThemeIcons; - font-style: normal; - font-weight: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - display: inline-block; - text-align: center; -} - -@font-face { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - src: url(../valo/util/bourbon/css3/../../../../valo/fonts/fontawesome-webfont/fontawesome-webfont.eot); - src: url(../valo/util/bourbon/css3/../../../../valo/fonts/fontawesome-webfont/fontawesome-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../valo/fonts/fontawesome-webfont/fontawesome-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../valo/fonts/fontawesome-webfont/fontawesome-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../valo/fonts/fontawesome-webfont/fontawesome-webfont.svg#FontAwesome) format("svg"); -} - -.FontAwesome { - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - display: inline-block; - text-align: center; -} - -@font-face { - font-family: "Open Sans"; - src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot); - src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.ttf) format("truetype"); - font-weight: 300; - font-style: normal; -} - -@font-face { - font-family: "Open Sans"; - src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot); - src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.ttf) format("truetype"); - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: "Open Sans"; - src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot); - src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.ttf) format("truetype"); - font-weight: 600; - font-style: normal; -} - -@-webkit-keyframes v-rotate-360 { - to { - -webkit-transform: rotate(360deg); - } - } - -@-moz-keyframes v-rotate-360 { - to { - -moz-transform: rotate(360deg); - } - } - -@-o-keyframes v-rotate-360 { - to { - -o-transform: rotate(360deg); - } - } - -@keyframes v-rotate-360 { - to { - transform: rotate(360deg); - } - } - -@-webkit-keyframes v-progress-start { - 0% { - width: 0%; - } - 100% { - width: 50%; - } - } - -@-moz-keyframes v-progress-start { - 0% { - width: 0%; - } - 100% { - width: 50%; - } - } - -@keyframes v-progress-start { - 0% { - width: 0%; - } - 100% { - width: 50%; - } - } - -@-webkit-keyframes v-progress-delay { - 0% { - width: 50%; - } - 100% { - width: 90%; - } - } - -@-moz-keyframes v-progress-delay { - 0% { - width: 50%; - } - 100% { - width: 90%; - } - } - -@keyframes v-progress-delay { - 0% { - width: 50%; - } - 100% { - width: 90%; - } - } - -@-webkit-keyframes v-progress-wait { - 0% { - width: 90%; - height: 4px; - } - 3% { - width: 91%; - height: 7px; - } - 100% { - width: 96%; - height: 7px; - } - } - -@-moz-keyframes v-progress-wait { - 0% { - width: 90%; - height: 4px; - } - 3% { - width: 91%; - height: 7px; - } - 100% { - width: 96%; - height: 7px; - } - } - -@keyframes v-progress-wait { - 0% { - width: 90%; - height: 4px; - } - 3% { - width: 91%; - height: 7px; - } - 100% { - width: 96%; - height: 7px; - } - } - -@-webkit-keyframes v-progress-wait-pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.1; - } - 100% { - opacity: 1; - } - } - -@-moz-keyframes v-progress-wait-pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.1; - } - 100% { - opacity: 1; - } - } - -@keyframes v-progress-wait-pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.1; - } - 100% { - opacity: 1; - } - } - -/** - * Outputs the context menu selectors and styles, which is used by Table and Tree for instance. - * - * @requires {mixin} valo-selection-item-style - * @requires {mixin} valo-selection-item-selected-style - */ - -/** - * The background color for overlay elements. - * - * @type color - * @group overlay - */ - -/** - * The backgound color for tooltips. - * - * @type color - * @group tooltip - */ - -/** - * - * - * @param {string} $primary-stylename (v-absolutelayout) - - * - * @group absolutelayout - */ - -/** - * Outputs the selectors and properties for the Accordion component. - * - * @param {string} $primary-stylename (v-accordion) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * @group accordion - */ - -/** - * Outputs the selectors and properties for the Button component. - * - * @param {string} $primary-stylename (v-button) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group button - */ - -/** - * A list of colors for custom event colors. Can be an empty list of you don't - * need any custom event colors. - * - * @example javascript - * // Java code - * // 'event' is an instance of EditableCalendarEvent - * event.setStyleName("color1"); // 1st color in the list - * event.setStyleName("color2"); // 2nd color in the list - * // etc. - * - * @group calendar - */ - -/** - * Outputs the selectors and properties for the CheckBox component. - * - * @param {string} $primary-stylename (v-checkbox) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group checkbox - */ - -/** - * Outputs the global selectors and properties for the ColorPicker component - styles which are - * considered mandatory for the component to work properly. - * - * @param {string} $primary-stylename (v-colorpicker) - the primary style name for the selectors - * - * @group colorpicker - */ - -/** - * Outputs the selectors and properties for the ComboBox component. - * - * @param {string} $primary-stylename (v-filterselect) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group combobox - */ - -/** - * The amount of spacing between different widgets in a component group. - * If null, a computed value is used ($v-border size * -1, or 1px if $v-border size is 0) - * - * @group csslayout - */ - -/** - * - * - * @param {string} $primary-stylename (v-customcomponent) - - * - * @group customcomponent - */ - -/** - * - * - * @param {string} $primary-stylename (v-customlayout) - - * - * @group customlayout - */ - -/** - * Outputs the selectors and properties for the DateField component. - * - * @param {string} $primary-stylename (v-datefield) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group datefield - */ - -/** - * Outputs the styles and selectors for the DragAndDropWrapper component. - * - * @param {string} $primary-stylename (v-ddwrapper) - the primary style name for the selectors - * - * @group drag-n-drop - */ - -/** - * - * - * @param {string} $primary-stylename (v-form) - - * - * @group form - */ - -/** - * Outputs the selectors and properties for the FormLayout component. - * - * @param {string} $primary-stylename (v-formlayout) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group formlayout - */ - -/** - * - * @group table - */ - -@-webkit-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@-webkit-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -@keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -/** - * - * - * @param {string} $primary-stylename (v-gridlayout) - - * - * @group gridlayout - */ - -/** - * The font weight for headers. - * - * @group label - */ - -/** - * - * @group link - */ - -/** - * - * - * @param {string} $primary-stylename (v-loginform) - - * - * @group loginform - */ - -/** - * - * - * @param {string} $primary-stylename (v-menubar) - - * @param {bool} $include-additional-styles - - * - * @group menubar - */ - -/** - * - * - * @param {string} $primary-stylename (v-nativebutton) - - * - * @group nativebutton - */ - -/** - * - * - * @param {string} $primary-stylename (v-select) - - * - * @group nativeselect - */ - -/** - * - * @group notification - */ - -/** - * - * - * @param {string} $primary-stylename (v-select-optiongroup) - - * @param {bool} $include-additional-styles - - * - * @group optiongroup - */ - -/** - * - * - * - * @group orderedlayout - */ - -/** - * - * @group panel - */ - -@-webkit-keyframes v-popupview-animate-in { - 0% { - -webkit-transform: scale(0); - } - } - -@-moz-keyframes v-popupview-animate-in { - 0% { - -moz-transform: scale(0); - } - } - -@keyframes v-popupview-animate-in { - 0% { - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - } - } - -/** - * - * @group progressbar - */ - -/** - * - * @group richtextarea - */ - -/** - * - * @group slider - */ - -/** - * - * - * @param {string} $primary-stylename (v-splitpanel) - - * @param {bool} $include-additional-styles - - * - * @group splitpanel - */ - -/** - * - * @group table - */ - -/** - * Should the tabsheet content changes be animated. - * - * @group tabsheet - */ - -/** - * The background color for text fields. - * @group textfield - */ - -/** - * Outputs the selectors and properties for the TextArea component. - * - * @param {string} $primary-stylename (v-textarea) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group textarea - */ - -/** - * - * @group tree - */ - -/** - * - * @group table - */ - -@-webkit-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@-webkit-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -@keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -/** - * - * @group table - */ - -@-webkit-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -37px; - } - } - -@-webkit-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -@keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -38px; - } - 100% { - margin-bottom: -1px; - } - } - -/** - * - * - * @param {string} $primary-stylename (v-treetable) - - * - * @group treetable - */ - -/** - * - * - * @param {string} $primary-stylename (v-select-twincol) - - * - * @group twin-column-select - */ - -/** - * - * - * @param {string} $primary-stylename (v-upload) - - * - * @group upload - */ - -/** - * @group window - */ - -@-webkit-keyframes valo-modal-window-indication { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - -@-moz-keyframes valo-modal-window-indication { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - -@keyframes valo-modal-window-indication { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - -@-webkit-keyframes valo-animate-out-scale-down-fade { - 100% { - -webkit-transform: scale(0.8); - opacity: 0; - } - } - -@-moz-keyframes valo-animate-out-scale-down-fade { - 100% { - -moz-transform: scale(0.8); - opacity: 0; - } - } - -@keyframes valo-animate-out-scale-down-fade { - 100% { - -webkit-transform: scale(0.8); - -moz-transform: scale(0.8); - -ms-transform: scale(0.8); - -o-transform: scale(0.8); - transform: scale(0.8); - opacity: 0; - } - } - -/** - * @group valo-menu - */ - -.v-vaadin-version:after { - content: "8.12.0"; -} - -.v-widget { - box-sizing: border-box; - display: inline-block; - vertical-align: top; - text-align: left; - white-space: normal; -} - -.v-generated-body { - overflow: hidden; - margin: 0; - padding: 0; - border: 0; -} - -.v-app { - height: 100%; - -webkit-tap-highlight-color: transparent; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.v-app input[type="text"], .v-app .v-slot > .v-caption, .v-app .v-gridlayout-slot > .v-caption, .v-app .v-has-caption > .v-caption, .v-app .v-formlayout-captioncell > .v-caption, .v-app .v-csslayout > .v-caption { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - -.v-app input::-ms-clear { - display: none; -} - -.v-ui { - position: relative; -} - -.v-ui.v-ui-embedded { - margin-top: -1px; - border-top: 1px solid transparent; -} - -.v-ui:focus { - outline: none; -} - -.v-overlay-container { - width: 0; - height: 0; -} - -.v-drag-element { - z-index: 60000; - position: absolute !important; - cursor: default; -} - -.v-clip { - overflow: hidden; -} - -.v-scrollable { - overflow: auto; -} - -.v-scrollable > .v-widget { - vertical-align: middle; - overflow: hidden; -} - -.v-ios.v-webkit .v-scrollable { - -webkit-overflow-scrolling: touch; -} - -.v-ios5.v-webkit .v-scrollable { - -webkit-overflow-scrolling: none; -} - -.v-webkit.v-ios .v-browserframe { - -webkit-overflow-scrolling: touch; - overflow: auto; -} - -.v-assistive-device-only, .v-assistive-device-only-label label { - position: absolute; - top: -2000px; - left: -2000px; - width: 10px; - overflow: hidden; -} - -.v-icon { - cursor: inherit; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.v-icon, .v-errorindicator, .v-required-field-indicator { - display: inline-block; - line-height: inherit; -} - -.v-caption { - display: inline-block; - white-space: nowrap; - line-height: 1.55; -} - -.v-captiontext { - display: inline-block; - line-height: inherit; -} - -div.v-layout.v-horizontal.v-widget { - white-space: nowrap; -} - -.v-layout.v-vertical > .v-expand, .v-layout.v-horizontal > .v-expand { - box-sizing: border-box; - width: 100%; - height: 100%; -} - -.v-slot, .v-spacing { - display: inline-block; - white-space: nowrap; - vertical-align: top; -} - -.v-vertical > .v-slot:after { - display: inline-block; - clear: both; - width: 0; - height: 0; - overflow: hidden; -} - -.v-vertical > .v-slot, .v-vertical > .v-expand > .v-slot { - display: block; - clear: both; -} - -.v-horizontal > .v-slot, .v-horizontal > .v-expand > .v-slot { - height: 100%; -} - -.v-horizontal > .v-expand > .v-slot { - position: relative; -} - -.v-vertical > .v-spacing, .v-vertical > .v-expand > .v-spacing { - width: 0 !important; - display: block; - clear: both; -} - -.v-horizontal > .v-spacing, .v-horizontal > .v-expand > .v-spacing { - height: 0 !important; -} - -.v-align-middle:before, .v-align-bottom:before, .v-expand > .v-align-middle:before, .v-expand > .v-align-bottom:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; - width: 0; -} - -.v-align-middle, .v-align-bottom { - white-space: nowrap; -} - -.v-align-middle > .v-widget, .v-align-bottom > .v-widget { - display: inline-block; -} - -.v-align-middle, .v-align-middle > .v-widget { - vertical-align: middle; -} - -.v-align-bottom, .v-align-bottom > .v-widget { - vertical-align: bottom; -} - -.v-align-center { - text-align: center; -} - -.v-align-center > .v-widget { - margin-left: auto; - margin-right: auto; -} - -.v-align-right { - text-align: right; -} - -.v-align-right > .v-widget { - margin-left: auto; -} - -.v-has-caption, .v-has-caption > .v-caption { - display: inline-block; -} - -.v-caption-on-left, .v-caption-on-right { - white-space: nowrap; -} - -.v-caption-on-top > .v-caption, .v-caption-on-bottom > .v-caption { - display: block; -} - -.v-caption-on-left > .v-caption { - padding-right: 0.5em; -} - -.v-caption-on-left > .v-widget, .v-caption-on-right > .v-widget { - display: inline-block; -} - -.v-has-caption.v-has-width > .v-widget { - width: 100% !important; -} - -.v-has-caption.v-has-height > .v-widget { - height: 100% !important; -} - -.v-gridlayout { - position: relative; -} - -.v-gridlayout-slot { - position: absolute; - line-height: 1.55; -} - -.v-gridlayout-spacing-on { - overflow: hidden; -} - -.v-gridlayout-spacing, .v-gridlayout-spacing-off { - padding-left: 0; - padding-top: 0; -} - -.v-gridlayout-spacing-off { - overflow: hidden; -} - -.v-calendar-month-day-scrollable { - overflow-y: scroll; -} - -.v-calendar-week-wrapper { - position: relative; - overflow: hidden; -} - -.v-calendar-current-time { - position: absolute; - left: 0; - width: 100%; - height: 1px; - background: red; - z-index: 2; -} - -.v-calendar-event-resizetop, .v-calendar-event-resizebottom { - position: absolute; - height: 5%; - min-height: 3px; - width: 100%; - z-index: 1; -} - -.v-calendar-event-resizetop { - cursor: row-resize; - top: 0; -} - -.v-calendar-event-resizebottom { - cursor: row-resize; - bottom: 0; -} - -.v-calendar-header-month td:first-child { - padding-left: 20px; -} - -.v-calendar-month-sizedheight .v-calendar-month-day { - height: 100px; -} - -.v-calendar-month-sizedwidth .v-calendar-month-day { - width: 100px; -} - -.v-calendar-header-month-Hsized .v-calendar-header-day { - width: 101px; -} - -.v-calendar-header-month-Hsized td:first-child { - padding-left: 21px; -} - -.v-calendar-header-day-Hsized { - width: 200px; -} - -.v-calendar-week-numbers-Vsized .v-calendar-week-number { - height: 100px; - line-height: 100px; -} - -.v-calendar-week-wrapper-Vsized { - height: 400px; - overflow-x: hidden !important; -} - -.v-calendar-times-Vsized .v-calendar-time { - height: 38px; -} - -.v-calendar-times-Hsized .v-calendar-time { - width: 42px; -} - -.v-calendar-day-times-Vsized .v-datecellslot, .v-calendar-day-times-Vsized .v-datecellslot-even { - height: 18px; -} - -.v-calendar-day-times-Hsized, .v-calendar-day-times-Hsized .v-datecellslot, .v-calendar-day-times-Hsized .v-datecellslot-even { - width: 200px; -} - -.v-colorpicker-popup.v-window { - min-width: 220px !important; -} - -.v-colorpicker-gradient-container { - overflow: visible !important; -} - -.v-colorpicker-gradient-clicklayer { - opacity: 0; - filter: alpha(opacity=0) ; -} - -.rgb-gradient .v-colorpicker-gradient-background { - background: url(../valo/components/img/colorpicker/gradient2.png); -} - -.hsv-gradient .v-colorpicker-gradient-foreground { - background: url(../valo/components/img/colorpicker/gradient.png); -} - -.v-colorpicker-gradient-higherbox:before { - content: ""; - width: 11px; - height: 11px; - border-radius: 7px; - border: 1px solid #fff; - -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3); - position: absolute; - bottom: -6px; - left: -6px; -} - -.v-colorpicker-popup .v-slider.v-slider-red:before { - background-color: red; -} - -.v-colorpicker-popup .v-slider.v-slider-green:before { - background-color: green; -} - -.v-colorpicker-popup .v-slider.v-slider-blue:before { - background-color: blue; -} - -.v-colorpicker-popup .v-slider.hue-slider:before { - background: url(../valo/components/img/colorpicker/slider_hue_bg.png); -} - -.v-colorpicker-popup input.v-textfield-dark { - color: #fff; -} - -.v-colorpicker-popup input.v-textfield-light { - color: #000; -} - -.v-colorpicker-grid { - height: 319px; -} - -.v-colorpicker-popup .colorselect td { - line-height: 15px; -} - -.v-table-header table, .v-table-footer table, .v-table-table { - border-spacing: 0; - border-collapse: separate; - margin: 0; - padding: 0; - border: 0; - line-height: 1.55; -} - -.v-table-resizer, .v-table-sort-indicator { - float: right; -} - -.v-table-caption-container-align-center { - text-align: center; -} - -.v-table-caption-container-align-right { - text-align: right; -} - -.v-table-header td, .v-table-footer td, .v-table-cell-content { - padding: 0; -} - -.v-table-sort-indicator { - width: 0; -} - -.v-tabsheet-hidetabs > .v-tabsheet-tabcontainer, .v-tabsheet-spacertd, .v-disabled .v-tabsheet-scroller, .v-tabsheet .v-disabled .v-tabsheet-caption-close { - display: none; -} - -.v-tabsheet { - overflow: visible !important; - position: relative; -} - -.v-tabsheet-tabcontainer table, .v-tabsheet-tabcontainer tbody, .v-tabsheet-tabcontainer tr { - display: inline-block; - border-spacing: 0; - border-collapse: collapse; - vertical-align: top; -} - -.v-tabsheet-tabcontainer td { - display: inline-block; - padding: 0; -} - -.v-tabsheet-tabs { - white-space: nowrap; - box-sizing: border-box; -} - -.v-tabsheet-content { - position: relative; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-top { - padding-top: 12px; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-right { - padding-right: 12px; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-bottom { - padding-bottom: 12px; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-left { - padding-left: 12px; -} - -.v-splitpanel-vertical, .v-splitpanel-horizontal { - overflow: hidden; - white-space: nowrap; -} - -.v-splitpanel-hsplitter { - z-index: 100; - cursor: e-resize; - cursor: col-resize; -} - -.v-splitpanel-vsplitter { - z-index: 100; - cursor: s-resize; - cursor: row-resize; -} - -.v-splitpanel-hsplitter:after, .v-splitpanel-vsplitter:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.v-splitpanel-hsplitter div, .v-splitpanel-vsplitter div { - width: inherit; - height: inherit; - overflow: hidden; - position: relative; -} - -.v-splitpanel-hsplitter div:before, .v-splitpanel-vsplitter div:before { - box-sizing: border-box; - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.v-disabled [class$="splitter"] div { - cursor: default; -} - -.v-disabled [class$="splitter"] div:before { - display: none; -} - -.v-splitpanel-horizontal > div > .v-splitpanel-second-container { - position: static !important; - display: inline-block; - vertical-align: top; -} - -.v-splitpanel-horizontal > div > .v-splitpanel-first-container { - display: inline-block; - vertical-align: top; -} - -.mytheme.v-app, .mytheme.v-app-loading { - font: 300 16px/1.55 "Open Sans", sans-serif; - color: #464646; - background-color: #fafafa; - cursor: default; -} - -.mytheme .v-app-loading { - width: 100%; - height: 100%; - background: #fafafa; -} - -.mytheme .v-app-loading:before { - content: ""; - position: fixed; - z-index: 100; - top: 45%; - left: 50%; - width: 28px; - height: 28px; - padding: 9px; - margin-top: -24px; - margin-left: -24px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50%; - border-radius: 4px; -} - -.mytheme .v-loading-indicator { - position: fixed !important; - z-index: 99999; - left: 0; - right: auto; - top: 0; - width: 50%; - opacity: 1; - height: 4px; - background-color: #197de1; - pointer-events: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - -webkit-animation: v-progress-start 1000ms 200ms both; - -moz-animation: v-progress-start 1000ms 200ms both; - animation: v-progress-start 1000ms 200ms both; -} - -.mytheme .v-loading-indicator[style*="none"] { - display: block !important; - width: 100% !important; - opacity: 0; - -webkit-animation: none; - -moz-animation: none; - animation: none; - -webkit-transition: opacity 500ms 300ms, width 300ms; - -moz-transition: opacity 500ms 300ms, width 300ms; - transition: opacity 500ms 300ms, width 300ms; -} - -.mytheme .v-loading-indicator-delay { - width: 90%; - -webkit-animation: v-progress-delay 3.8s forwards; - -moz-animation: v-progress-delay 3.8s forwards; - animation: v-progress-delay 3.8s forwards; -} - -.v-ff .mytheme .v-loading-indicator-delay { - width: 50%; -} - -.mytheme .v-loading-indicator-wait { - width: 96%; - -webkit-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; - -moz-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; - animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; -} - -.v-ff .mytheme .v-loading-indicator-wait { - width: 90%; -} - -.mytheme .v-scrollable:focus { - outline: none; -} - -.mytheme img.v-icon { - vertical-align: middle; -} - -.mytheme .v-caption { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; -} - -.mytheme .v-caption-on-left .v-caption, .mytheme .v-caption-on-right .v-caption { - padding-top: 0; - padding-bottom: 0; -} - -.mytheme .v-icon + .v-captiontext, .mytheme .v-icon + span { - margin-left: 7px; -} - -.mytheme .v-icon + .v-captiontext:empty, .mytheme .v-icon + span:empty { - margin-left: 0; -} - -.mytheme .v-errorindicator { - color: #ed473b; - font-weight: 600; - width: 19px; - text-align: center; -} - -.mytheme .v-errorindicator:before { - content: "!"; -} - -.mytheme .v-errorindicator-info { - color: #00a7f5; - font-weight: 600; - width: 19px; - text-align: center; -} - -.mytheme .v-errorindicator-info:before { - content: "!"; -} - -.mytheme .v-errorindicator-warning { - color: #fc9c00; - font-weight: 600; - width: 19px; - text-align: center; -} - -.mytheme .v-errorindicator-warning:before { - content: "!"; -} - -.mytheme .v-errorindicator-error { - color: #ed473b; - font-weight: 600; - width: 19px; - text-align: center; -} - -.mytheme .v-errorindicator-error:before { - content: "!"; -} - -.mytheme .v-errorindicator-critical { - color: #fa007d; - font-weight: 600; - width: 19px; - text-align: center; -} - -.mytheme .v-errorindicator-critical:before { - content: "!"; -} - -.mytheme .v-errorindicator-system { - color: #bb00ff; - font-weight: 600; - width: 19px; - text-align: center; -} - -.mytheme .v-errorindicator-system:before { - content: "!"; -} - -.mytheme .v-required-field-indicator { - color: #ed473b; - padding: 0 0.2em; -} - -.mytheme select { - font: inherit; - font-weight: 400; - line-height: inherit; - padding: 5px; - margin: 0; - border-radius: 4px; - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.mytheme select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-disabled { - cursor: default !important; -} - -.mytheme .v-drag-element { - background: #fafafa; - color: #464646; - -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - border-radius: 4px; - overflow: hidden; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-draggable { - -moz-user-select: none !important; - -ms-user-select: none !important; - -webkit-user-select: none !important; - user-select: none !important; -} - -.mytheme .v-tooltip { - background-color: rgba(50, 50, 50, 0.9); - -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - color: white; - padding: 5px 9px; - border-radius: 3px; - max-width: 35em; - overflow: hidden !important; - font-size: 14px; -} - -.mytheme .v-tooltip div[style*="width"] { - width: auto !important; -} - -.mytheme .v-tooltip .v-errormessage { - background-color: white; - background-color: #fff; - color: #ed473b; - margin: -5px -9px; - padding: 5px 9px; - max-height: 10em; - overflow: auto; - font-weight: 400; -} - -.mytheme .v-tooltip .v-errormessage h2:only-child { - font: inherit; - line-height: inherit; -} - -.mytheme .v-tooltip .v-errormessage-info { - color: #00a7f5; -} - -.mytheme .v-tooltip .v-errormessage-warning { - color: #fc9c00; -} - -.mytheme .v-tooltip .v-errormessage-error { - color: #ed473b; -} - -.mytheme .v-tooltip .v-errormessage-critical { - color: #fa007d; -} - -.mytheme .v-tooltip .v-errormessage-system { - color: #bb00ff; -} - -.mytheme .v-tooltip .v-tooltip-text { - max-height: 10em; - overflow: auto; - margin-top: 10px; -} - -.mytheme .v-tooltip .v-tooltip-text pre { - margin: 0px; -} - -.mytheme .v-tooltip .v-errormessage[aria-hidden="true"] + .v-tooltip-text { - margin-top: 0; -} - -.mytheme .v-tooltip h1, .mytheme .v-tooltip h2, .mytheme .v-tooltip h3, .mytheme .v-tooltip h4 { - color: inherit; -} - -.mytheme .v-tooltip pre.v-tooltip-pre { - font: inherit; - white-space: pre-wrap; -} - -.mytheme .v-contextmenu { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - padding: 4px 4px; -} - -.mytheme .v-contextmenu[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.mytheme .v-contextmenu[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.mytheme .v-contextmenu table { - border-spacing: 0; -} - -.mytheme .v-contextmenu .gwt-MenuItem { - cursor: pointer; - line-height: 27px; - padding: 0 20px 0 10px; - border-radius: 3px; - font-weight: 400; - white-space: nowrap; - position: relative; - display: block; -} - -.mytheme .v-contextmenu .gwt-MenuItem:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: #0957a6; - opacity: 0.15; - filter: alpha(opacity=15.0) ; - pointer-events: none; - border-radius: inherit; -} - -.mytheme .v-contextmenu .gwt-MenuItem .v-icon { - max-height: 27px; - margin-right: 5px; - min-width: 1em; -} - -.mytheme .v-contextmenu .gwt-MenuItem-selected { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: #ecf2f8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-reconnect-dialog { - color: white; - top: 12px; - right: 12px; - max-width: 100%; - border-radius: 0; - -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - padding: 12px 15px; - background-color: #444; - background-color: rgba(68, 68, 68, 0.9); - line-height: 22px; - text-align: center; -} - -.mytheme .v-reconnect-dialog .text { - display: inline-block; - padding-left: 10px; -} - -.mytheme .v-reconnect-dialog .spinner { - height: 24px !important; - width: 24px !important; - box-sizing: border-box; - border: 2px solid rgba(25, 125, 225, 0.2); - border-top-color: #197de1; - border-right-color: #197de1; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; - display: none; - vertical-align: middle; -} - -.mytheme .v-reconnect-dialog.active .spinner { - display: inline-block; -} - -.mytheme .v-absolutelayout-wrapper { - position: absolute; -} - -.mytheme .v-absolutelayout-margin, .mytheme .v-absolutelayout-canvas { - box-sizing: border-box; -} - -.mytheme .v-absolutelayout.v-has-height > div, .mytheme .v-absolutelayout.v-has-height .v-absolutelayout-margin { - height: 100%; -} - -.mytheme .v-absolutelayout.v-has-height > div, .mytheme .v-absolutelayout.v-has-width .v-absolutelayout-margin { - width: 100%; -} - -.mytheme .v-margin-top { - padding-top: 37px; -} - -.mytheme .v-margin-right { - padding-right: 37px; -} - -.mytheme .v-margin-bottom { - padding-bottom: 37px; -} - -.mytheme .v-margin-left { - padding-left: 37px; -} - -.mytheme .v-spacing { - width: 12px; - height: 12px; -} - -.mytheme .v-verticallayout-well, .mytheme .v-horizontallayout-well { - background: #f5f5f5; - color: #454545; - -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - border-radius: 4px; - border: 1px solid #c5c5c5; -} - -.mytheme .v-verticallayout-well > div > [class*="-caption"], .mytheme .v-horizontallayout-well > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-verticallayout-well > .v-margin-top, .mytheme .v-horizontallayout-well > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-verticallayout-well > .v-margin-right, .mytheme .v-horizontallayout-well > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-verticallayout-well > .v-margin-bottom, .mytheme .v-horizontallayout-well > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-verticallayout-well > .v-margin-left, .mytheme .v-horizontallayout-well > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-verticallayout-card, .mytheme .v-horizontallayout-card { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.mytheme .v-verticallayout-card > .v-margin-top, .mytheme .v-horizontallayout-card > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-verticallayout-card > .v-margin-right, .mytheme .v-horizontallayout-card > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-verticallayout-card > .v-margin-bottom, .mytheme .v-horizontallayout-card > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-verticallayout-card > .v-margin-left, .mytheme .v-horizontallayout-card > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-horizontallayout-wrapping { - white-space: normal !important; -} - -.mytheme .v-horizontallayout-wrapping > .v-spacing + .v-slot, .mytheme .v-horizontallayout-wrapping > .v-slot:first-child { - margin-bottom: 12px; -} - -.mytheme .v-horizontallayout-wrapping > .v-slot:first-child:last-child { - margin-bottom: 0; -} - -.mytheme .v-button { - position: relative; - text-align: center; - white-space: nowrap; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-button:before { - content: ""; - display: inline-block; - width: 0; - height: 100%; - vertical-align: middle; -} - -.mytheme .v-button > div { - vertical-align: middle; -} - -.v-sa .mytheme .v-button:before { - height: 110%; -} - -.v-ff .mytheme .v-button:before { - height: 107%; -} - -.v-ie .mytheme .v-button:before { - margin-top: 4px; -} - -.mytheme .v-button:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; -} - -.mytheme .v-button:focus:after { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.mytheme .v-button.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-button.v-disabled:after { - display: none; -} - -.mytheme .v-button:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.mytheme .v-button:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-button:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-button-primary { - height: 37px; - padding: 0 16px; - color: #ecf2f8; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #1362b1; - border-top-color: #156ab3; - border-bottom-color: #1156a8; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - -webkit-box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - padding: 0 19px; - font-weight: bold; - min-width: 81px; -} - -.mytheme .v-button-primary:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button-primary:hover:after { - background-color: rgba(90, 163, 237, 0.1); -} - -.mytheme .v-button-primary:focus:after { - border: inherit; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-button-primary:active:after { - background-color: rgba(2, 62, 122, 0.2); -} - -.mytheme .v-button-friendly { - height: 37px; - padding: 0 16px; - color: #eaf4e9; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #227719; - border-top-color: #257d1a; - border-bottom-color: #1e6b15; - background-color: #2c9720; - background-image: -webkit-linear-gradient(top, #2f9f22 2%, #26881b 98%); - background-image: linear-gradient(to bottom,#2f9f22 2%, #26881b 98%); - -webkit-box-shadow: inset 0 1px 0 #46b33a, inset 0 -1px 0 #26811b, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #46b33a, inset 0 -1px 0 #26811b, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-button-friendly:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button-friendly:hover:after { - background-color: rgba(65, 211, 48, 0.1); -} - -.mytheme .v-button-friendly:focus:after { - border: inherit; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-button-friendly:active:after { - background-color: rgba(14, 86, 6, 0.2); -} - -.mytheme .v-button-danger { - height: 37px; - padding: 0 16px; - color: #f9f0ef; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #bb382e; - border-top-color: #bc3c31; - border-bottom-color: #b13028; - background-color: #ed473b; - background-image: -webkit-linear-gradient(top, #ee4c3f 2%, #e13e33 98%); - background-image: linear-gradient(to bottom,#ee4c3f 2%, #e13e33 98%); - -webkit-box-shadow: inset 0 1px 0 #ef786f, inset 0 -1px 0 #da3c31, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #ef786f, inset 0 -1px 0 #da3c31, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-button-danger:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button-danger:hover:after { - background-color: rgba(243, 137, 129, 0.1); -} - -.mytheme .v-button-danger:focus:after { - border: inherit; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-button-danger:active:after { - background-color: rgba(146, 12, 2, 0.2); -} - -.mytheme .v-button-borderless { - border: none; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - color: inherit; -} - -.mytheme .v-button-borderless:hover:after { - background: transparent; -} - -.mytheme .v-button-borderless:active:not(.v-disabled) { - opacity: 0.7; - filter: alpha(opacity=70) ; -} - -.mytheme .v-button-borderless:active:not(.v-disabled):after { - background: transparent; -} - -.mytheme .v-button-borderless-colored { - border: none; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - color: #197de1; -} - -.mytheme .v-button-borderless-colored:hover { - color: #4396ea; -} - -.mytheme .v-button-borderless-colored:hover:after { - background: transparent; -} - -.mytheme .v-button-borderless-colored:active:not(.v-disabled) { - opacity: 0.7; - filter: alpha(opacity=70) ; -} - -.mytheme .v-button-borderless-colored:active:not(.v-disabled):after { - background: transparent; -} - -.mytheme .v-button-quiet { - visibility: hidden; -} - -.mytheme .v-button-quiet:focus, .mytheme .v-button-quiet:hover { - visibility: visible; -} - -.mytheme .v-button-quiet [class*="wrap"] { - visibility: visible; -} - -.mytheme .v-button-quiet [class*="caption"] { - display: inline-block; -} - -.mytheme .v-button-link { - border: none; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - color: inherit; - cursor: pointer; - color: #197de1; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-button-link:hover:after { - background: transparent; -} - -.mytheme .v-button-link:active:not(.v-disabled) { - opacity: 0.7; - filter: alpha(opacity=70) ; -} - -.mytheme .v-button-link:active:not(.v-disabled):after { - background: transparent; -} - -.mytheme .v-button-link:hover { - color: #4396ea; -} - -.mytheme .v-button-link.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-button-tiny { - height: 28px; - padding: 0 13px; - - - font-size: 12px; - - border-radius: 4px; -} - -.mytheme .v-button-tiny:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button-small { - height: 31px; - padding: 0 14px; - - - font-size: 14px; - - border-radius: 4px; -} - -.mytheme .v-button-small:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button-large { - height: 44px; - padding: 0 19px; - - - font-size: 20px; - - border-radius: 4px; -} - -.mytheme .v-button-large:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button-huge { - height: 59px; - padding: 0 26px; - - - font-size: 26px; - - border-radius: 4px; -} - -.mytheme .v-button-huge:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-button-icon-align-right [class*="wrap"] { - display: inline-block; -} - -.mytheme .v-button-icon-align-right .v-icon { - float: right; - margin-left: 13px; -} - -.mytheme .v-button-icon-align-right .v-icon + span:not(:empty) { - margin-left: 0; -} - -.mytheme .v-button-icon-align-top { - height: auto; - padding-top: 5px; - padding-bottom: 5px; -} - -.mytheme .v-button-icon-align-top [class*="wrap"] { - display: inline-block; -} - -.mytheme .v-button-icon-align-top .v-icon { - display: block; - margin-left: auto; - margin-right: auto; -} - -.mytheme .v-button-icon-align-top .v-icon + span:not(:empty) { - margin-top: 7px; - margin-left: 0; -} - -.mytheme .v-button-icon-only { - width: 37px; - padding: 0; -} - -.mytheme .v-button-icon-only.v-button-tiny { - width: 28px; -} - -.mytheme .v-button-icon-only.v-button-small { - width: 31px; -} - -.mytheme .v-button-icon-only.v-button-large { - width: 44px; -} - -.mytheme .v-button-icon-only.v-button-huge { - width: 59px; -} - -.mytheme .v-button-icon-only .v-button-caption { - display: none; -} - -.mytheme .v-checkbox { - position: relative; - line-height: 19px; - white-space: nowrap; -} - -.mytheme .v-checkbox.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-checkbox { - padding-left: 25px; -} - -:root .mytheme .v-checkbox label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-checkbox > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-checkbox > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-checkbox > input ~ label:before, :root .mytheme .v-checkbox > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 19px; - height: 19px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 13px; - text-align: center; -} - -:root .mytheme .v-checkbox > input ~ label:before { - height: 18.5px; - padding: 0 9px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 19px; -} - -:root .mytheme .v-checkbox > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-checkbox > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-checkbox > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-checkbox > .v-icon, .mytheme .v-checkbox > label .v-icon { - margin: 0 6px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-checkbox.v-disabled > label, .mytheme .v-checkbox.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-checkbox.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-checkbox.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-checkbox.v-readonly > label, .mytheme .v-checkbox.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-checkbox.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-checkbox.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-checkbox.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-checkbox-small { - position: relative; - line-height: 16px; - white-space: nowrap; - font-size: 14px; -} - -.mytheme .v-checkbox-small.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-checkbox-small { - padding-left: 21px; -} - -:root .mytheme .v-checkbox-small label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-checkbox-small > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-checkbox-small > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-checkbox-small > input ~ label:before, :root .mytheme .v-checkbox-small > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 16px; - height: 16px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 11px; - text-align: center; -} - -:root .mytheme .v-checkbox-small > input ~ label:before { - height: 15.5px; - padding: 0 7px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 16px; -} - -:root .mytheme .v-checkbox-small > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-checkbox-small > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-checkbox-small > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-checkbox-small > .v-icon, .mytheme .v-checkbox-small > label .v-icon { - margin: 0 5px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-checkbox-small.v-disabled > label, .mytheme .v-checkbox-small.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-checkbox-small.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-checkbox-small.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-checkbox-small.v-readonly > label, .mytheme .v-checkbox-small.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-checkbox-small.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-checkbox-small.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-checkbox-small.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-checkbox-large { - position: relative; - line-height: 22px; - white-space: nowrap; - font-size: 20px; -} - -.mytheme .v-checkbox-large.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-checkbox-large { - padding-left: 29px; -} - -:root .mytheme .v-checkbox-large label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-checkbox-large > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-checkbox-large > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-checkbox-large > input ~ label:before, :root .mytheme .v-checkbox-large > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 22px; - height: 22px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 15px; - text-align: center; -} - -:root .mytheme .v-checkbox-large > input ~ label:before { - height: 22px; - padding: 0 10px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 22px; -} - -:root .mytheme .v-checkbox-large > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-checkbox-large > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-checkbox-large > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-checkbox-large > .v-icon, .mytheme .v-checkbox-large > label .v-icon { - margin: 0 7px 0 4px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-checkbox-large.v-disabled > label, .mytheme .v-checkbox-large.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-checkbox-large.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-checkbox-large.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-checkbox-large.v-readonly > label, .mytheme .v-checkbox-large.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-checkbox-large.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-checkbox-large.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-checkbox-large.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect { - position: relative; - width: 185px; - height: 37px; - border-radius: 4px; - white-space: nowrap; -} - -.mytheme .v-filterselect [class*="input"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 37px; - border-radius: 4px; - padding: 4px 9px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 38px; - border-radius: inherit; -} - -.mytheme .v-filterselect [class*="input"].v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect [class*="input"]:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-filterselect [class*="input"][class*="prompt"] { - color: #a3a3a3; -} - -.mytheme .v-filterselect .v-icon + [class*="input"] { - padding-left: 37px; -} - -.mytheme .v-filterselect img.v-icon { - max-height: 37px; - margin-left: 9px; -} - -.mytheme .v-filterselect span.v-icon { - color: #474747; - width: 37px; - line-height: 1; - padding-top: 0.12em; - margin-left: 9px; -} - -.mytheme .v-filterselect[class*="prompt"] > [class*="input"] { - color: #a3a3a3; -} - -.mytheme .v-filterselect [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 37px; - top: 1px; - right: 1px; - bottom: 1px; - border-left: 1px solid #e4e4e4; - color: #a3a3a3; - border-radius: 0 3px 3px 0; -} - -.mytheme .v-filterselect [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 37px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.mytheme .v-filterselect [class$="button"]:hover:before { - color: #474747; -} - -.mytheme .v-filterselect [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; - background-color: rgba(128, 128, 128, 0.2); -} - -.mytheme .v-filterselect.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect.v-disabled [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-filterselect.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect.v-readonly [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect.v-readonly.borderless [class*="input"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-filterselect.v-readonly.borderless [class*="input"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect.v-readonly.borderless [class*="input"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect .v-icon { - position: absolute; - pointer-events: none; -} - -.mytheme .v-filterselect .v-icon.FontAwesome { - margin-left: 0px; -} - -.mytheme .v-filterselect-error .v-filterselect-input { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-filterselect-error .v-filterselect-button { - color: #ed473b; - border-color: #ed473b; -} - -.mytheme .v-filterselect-error-info .v-filterselect-input { - border-color: #00a7f5 !important; - background: #fafdff; - color: #195774; -} - -.mytheme .v-filterselect-error-info .v-filterselect-button { - color: #00a7f5; - border-color: #00a7f5; -} - -.mytheme .v-filterselect-error-warning .v-filterselect-input { - border-color: #fc9c00 !important; - background: #fffdfa; - color: #745119; -} - -.mytheme .v-filterselect-error-warning .v-filterselect-button { - color: #fc9c00; - border-color: #fc9c00; -} - -.mytheme .v-filterselect-error-error .v-filterselect-input { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-filterselect-error-error .v-filterselect-button { - color: #ed473b; - border-color: #ed473b; -} - -.mytheme .v-filterselect-error-critical .v-filterselect-input { - border-color: #fa007d !important; - background: #fffafc; - color: #741947; -} - -.mytheme .v-filterselect-error-critical .v-filterselect-button { - color: #fa007d; - border-color: #fa007d; -} - -.mytheme .v-filterselect-error-system .v-filterselect-input { - border-color: #bb00ff !important; - background: #fefaff; - color: #5c1974; -} - -.mytheme .v-filterselect-error-system .v-filterselect-button { - color: #bb00ff; - border-color: #bb00ff; -} - -.mytheme .v-filterselect-suggestpopup { - margin-top: 5px !important; -} - -.mytheme .v-filterselect-suggestpopup[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.mytheme .v-filterselect-suggestpopup [class$="suggestmenu"] { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - padding: 4px 4px; - box-sizing: content-box; - position: relative; - z-index: 1; - display: block; -} - -.mytheme .v-filterselect-suggestpopup table, .mytheme .v-filterselect-suggestpopup tbody, .mytheme .v-filterselect-suggestpopup tr, .mytheme .v-filterselect-suggestpopup td { - display: block; - width: 100%; - overflow-y: hidden; - float: left; - clear: both; -} - -.mytheme .v-filterselect-suggestpopup .gwt-MenuItem { - cursor: pointer; - line-height: 27px; - padding: 0 20px 0 10px; - border-radius: 3px; - font-weight: 400; - white-space: nowrap; - position: relative; - height: 27px; - box-sizing: border-box; - text-overflow: ellipsis; - overflow-x: hidden; -} - -.mytheme .v-filterselect-suggestpopup .gwt-MenuItem:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: #0957a6; - opacity: 0.15; - filter: alpha(opacity=15.0) ; - pointer-events: none; - border-radius: inherit; -} - -.mytheme .v-filterselect-suggestpopup .gwt-MenuItem .v-icon { - max-height: 27px; - margin-right: 5px; - min-width: 1em; -} - -.mytheme .v-filterselect-suggestpopup .gwt-MenuItem-selected { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: #ecf2f8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-filterselect-suggestpopup [class$="status"] { - position: absolute; - right: 4px; - background: rgba(212, 212, 212, 0.9); - color: #3b3b3b; - border-radius: 0 0 4px 4px; - height: 23px; - bottom: -23px; - font-size: 12px; - line-height: 23px; - padding: 0 6px; - cursor: default; - pointer-events: none; - -webkit-animation: valo-animate-in-slide-down 200ms 80ms backwards; - -moz-animation: valo-animate-in-slide-down 200ms 80ms backwards; - animation: valo-animate-in-slide-down 200ms 80ms backwards; -} - -.mytheme .v-filterselect-suggestpopup [class$="status"] > * { - color: #3b3b3b; - text-decoration: none; -} - -.mytheme .v-filterselect-suggestpopup div[class*="page"] { - position: absolute; - z-index: 3; - right: 0; - opacity: 0.2; - filter: alpha(opacity=20) ; - cursor: pointer; - -webkit-transition: all 200ms; - -moz-transition: all 200ms; - transition: all 200ms; - width: 25px; - height: 25px; - line-height: 25px; - text-align: center; - font-family: ThemeIcons; - -webkit-transform: scale(0.8); - -moz-transform: scale(0.8); - -ms-transform: scale(0.8); - -o-transform: scale(0.8); - transform: scale(0.8); - color: #464646; -} - -.mytheme .v-filterselect-suggestpopup div[class*="page"]:after { - content: ""; - position: absolute; - display: block; - border-radius: 50%; -} - -.mytheme .v-filterselect-suggestpopup div[class*="page"]:hover { - opacity: 1; - filter: none ; - background: rgba(250, 250, 250, 0.5); -} - -.mytheme .v-filterselect-suggestpopup div[class*="page"]:hover:after { - top: -10px; - bottom: -10px; - left: -20px; - right: -20px; -} - -.mytheme .v-filterselect-suggestpopup div[class*="page"] span { - display: none; -} - -.mytheme .v-filterselect-suggestpopup:hover div[class*="page"] { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); -} - -.mytheme .v-filterselect-suggestpopup div[class*="prev"] { - top: 0; - -webkit-transform-origin: 100% 0%; - -moz-transform-origin: 100% 0%; - -ms-transform-origin: 100% 0%; - -o-transform-origin: 100% 0%; - transform-origin: 100% 0%; - border-radius: 0 4px 0 4px; -} - -.mytheme .v-filterselect-suggestpopup div[class*="prev"]:before { - content: "\f0d8"; -} - -.mytheme .v-filterselect-suggestpopup div[class*="next"] { - bottom: 0; - -webkit-transform-origin: 100% 100%; - -moz-transform-origin: 100% 100%; - -ms-transform-origin: 100% 100%; - -o-transform-origin: 100% 100%; - transform-origin: 100% 100%; - border-radius: 4px 0 4px 0; -} - -.mytheme .v-filterselect-suggestpopup div[class*="next"]:before { - content: "\f0d7"; -} - -.mytheme .v-filterselect-suggestpopup div[class*="-off"] { - display: none; -} - -.mytheme .v-filterselect-no-input { - cursor: pointer; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-filterselect-no-input [class*="input"] { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - cursor: inherit; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - text-shadow: inherit; - text-overflow: ellipsis; - border-radius: inherit; -} - -.mytheme .v-filterselect-no-input [class*="input"]:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-filterselect-no-input [class$="button"] { - border-left: none !important; -} - -.mytheme .v-filterselect-no-input:hover [class$="button"]:before { - color: inherit; -} - -.mytheme .v-filterselect-borderless .v-filterselect-input { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-filterselect-borderless .v-filterselect-input:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-borderless .v-filterselect-input[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-borderless .v-filterselect-button { - border: none; - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-borderless.v-filterselect-prompt .v-filterselect-input { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-align-right input { - text-align: right; -} - -.mytheme .v-filterselect-align-center input { - text-align: center; -} - -.mytheme .v-filterselect-tiny { - height: 28px; - - font-size: 12px; -} - -.mytheme .v-filterselect-tiny [class*="input"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 28px; - - padding: 3px 5px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 29px; - border-radius: inherit; -} - -.mytheme .v-filterselect-tiny .v-icon + [class*="input"] { - padding-left: 28px; -} - -.mytheme .v-filterselect-tiny img.v-icon { - max-height: 28px; - margin-left: 5px; -} - -.mytheme .v-filterselect-tiny span.v-icon { - - width: 28px; - line-height: 1; - padding-top: 0.12em; - margin-left: 5px; -} - -.mytheme .v-filterselect-tiny [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 28px; - border-radius: 0 4px 4px 0; -} - -.mytheme .v-filterselect-tiny [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 28px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.mytheme .v-filterselect-tiny [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-filterselect-tiny.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-tiny.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-tiny.v-disabled [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-tiny.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-tiny.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-filterselect-tiny.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-tiny.v-readonly [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-tiny.v-readonly.borderless [class*="input"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-filterselect-tiny.v-readonly.borderless [class*="input"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-tiny.v-readonly.borderless [class*="input"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-compact, .mytheme .v-filterselect-small { - height: 31px; - -} - -.mytheme .v-filterselect-compact [class*="input"], .mytheme .v-filterselect-small [class*="input"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 31px; - - padding: 3px 6px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 32px; - border-radius: inherit; -} - -.mytheme .v-filterselect-compact .v-icon + [class*="input"], .mytheme .v-filterselect-small .v-icon + [class*="input"] { - padding-left: 31px; -} - -.mytheme .v-filterselect-compact img.v-icon, .mytheme .v-filterselect-small img.v-icon { - max-height: 31px; - margin-left: 6px; -} - -.mytheme .v-filterselect-compact span.v-icon, .mytheme .v-filterselect-small span.v-icon { - - width: 31px; - line-height: 1; - padding-top: 0.12em; - margin-left: 6px; -} - -.mytheme .v-filterselect-compact [class$="button"], .mytheme .v-filterselect-small [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 31px; - border-radius: 0 4px 4px 0; -} - -.mytheme .v-filterselect-compact [class$="button"]:before, .mytheme .v-filterselect-small [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 31px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.mytheme .v-filterselect-compact [class$="button"]:active:after, .mytheme .v-filterselect-small [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-filterselect-compact.v-disabled, .mytheme .v-filterselect-small.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-compact.v-disabled [class$="button"], .mytheme .v-filterselect-small.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-compact.v-disabled [class$="button"]:active:after, .mytheme .v-filterselect-small.v-disabled [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-compact.v-readonly [class*="input"], .mytheme .v-filterselect-small.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-compact.v-readonly [class*="input"]:focus, .mytheme .v-filterselect-small.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-filterselect-compact.v-readonly [class$="button"], .mytheme .v-filterselect-small.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-compact.v-readonly [class$="button"]:active:after, .mytheme .v-filterselect-small.v-readonly [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-compact.v-readonly.borderless [class*="input"], .mytheme .v-filterselect-small.v-readonly.borderless [class*="input"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-filterselect-compact.v-readonly.borderless [class*="input"]:focus, .mytheme .v-filterselect-small.v-readonly.borderless [class*="input"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-compact.v-readonly.borderless [class*="input"][class*="prompt"], .mytheme .v-filterselect-small.v-readonly.borderless [class*="input"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-small { - font-size: 14px; -} - -.mytheme .v-filterselect-large { - height: 44px; - - font-size: 20px; -} - -.mytheme .v-filterselect-large [class*="input"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 44px; - - padding: 5px 8px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 45px; - border-radius: inherit; -} - -.mytheme .v-filterselect-large .v-icon + [class*="input"] { - padding-left: 44px; -} - -.mytheme .v-filterselect-large img.v-icon { - max-height: 44px; - margin-left: 8px; -} - -.mytheme .v-filterselect-large span.v-icon { - - width: 44px; - line-height: 1; - padding-top: 0.12em; - margin-left: 8px; -} - -.mytheme .v-filterselect-large [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 44px; - border-radius: 0 4px 4px 0; -} - -.mytheme .v-filterselect-large [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 44px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.mytheme .v-filterselect-large [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-filterselect-large.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-large.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-large.v-disabled [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-large.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-large.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-filterselect-large.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-large.v-readonly [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-large.v-readonly.borderless [class*="input"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-filterselect-large.v-readonly.borderless [class*="input"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-large.v-readonly.borderless [class*="input"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-huge { - height: 59px; - - font-size: 26px; -} - -.mytheme .v-filterselect-huge [class*="input"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 59px; - - padding: 7px 10px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 60px; - border-radius: inherit; -} - -.mytheme .v-filterselect-huge .v-icon + [class*="input"] { - padding-left: 59px; -} - -.mytheme .v-filterselect-huge img.v-icon { - max-height: 59px; - margin-left: 10px; -} - -.mytheme .v-filterselect-huge span.v-icon { - - width: 59px; - line-height: 1; - padding-top: 0.12em; - margin-left: 10px; -} - -.mytheme .v-filterselect-huge [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 59px; - border-radius: 0 4px 4px 0; -} - -.mytheme .v-filterselect-huge [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 59px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.mytheme .v-filterselect-huge [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-filterselect-huge.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-filterselect-huge.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-huge.v-disabled [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-huge.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-huge.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-filterselect-huge.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-filterselect-huge.v-readonly [class$="button"]:active:after { - display: none; -} - -.mytheme .v-filterselect-huge.v-readonly.borderless [class*="input"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-filterselect-huge.v-readonly.borderless [class*="input"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-filterselect-huge.v-readonly.borderless [class*="input"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-csslayout-well { - background: #f5f5f5; - color: #454545; - -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - border-radius: 4px; - border: 1px solid #c5c5c5; -} - -.mytheme .v-csslayout-well > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-csslayout-well > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-csslayout-well > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-csslayout-well > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-csslayout-well > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-csslayout-card { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.mytheme .v-csslayout-card > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-csslayout-card > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-csslayout-card > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-csslayout-card > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-csslayout-v-component-group { - white-space: nowrap; - position: relative; -} - -.mytheme .v-csslayout-v-component-group .v-widget ~ .v-widget:not(:last-child) { - border-radius: 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget ~ .v-widget.v-upload:not(:last-child) .v-button { - border-radius: 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget:last-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget.v-upload:last-child .v-button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget:first-child, .mytheme .v-csslayout-v-component-group .v-caption:first-child + .v-widget { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget.v-upload:first-child .v-button, .mytheme .v-csslayout-v-component-group .v-caption:first-child + .v-widget.v-upload .v-button { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget ~ .v-widget.first.first { - border-radius: 4px 0 0 4px; -} - -.mytheme .v-csslayout-v-component-group .v-widget ~ .v-widget.first.first.v-upload .v-button { - border-radius: 4px 0 0 4px; -} - -.mytheme .v-csslayout-v-component-group .v-widget ~ .v-widget.last.last { - border-radius: 0 4px 4px 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget ~ .v-widget.last.last.v-upload .v-button { - border-radius: 0 4px 4px 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget { - vertical-align: middle; - margin-left: -1px; -} - -.mytheme .v-csslayout-v-component-group .v-widget:first-child { - margin-left: 0; -} - -.mytheme .v-csslayout-v-component-group .v-widget:focus, .mytheme .v-csslayout-v-component-group .v-widget[class*="focus"], .mytheme .v-csslayout-v-component-group .v-widget [class*="focus"] { - position: relative; - z-index: 5; -} - -.mytheme .v-form fieldset { - border: none; - padding: 0; - margin: 0; - height: 100%; -} - -.mytheme .v-form-content { - height: 100%; - box-sizing: border-box; -} - -.mytheme [class*="spacing"] > tbody > [class*="row"] > td { - padding-top: 12px; -} - -.mytheme [class*="spacing"] > tbody > [class*="firstrow"] > td { - padding-top: 0; -} - -.mytheme [class*="margin-top"] > tbody > [class*="firstrow"] > td { - padding-top: 37px; -} - -.mytheme [class*="margin-bottom"] > tbody > [class*="lastrow"] > td { - padding-bottom: 37px; -} - -.mytheme [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] { - padding-left: 37px; -} - -.mytheme [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .mytheme [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .mytheme [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - left: 37px; -} - -.mytheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] { - padding-right: 37px; -} - -.mytheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .mytheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .mytheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - right: 37px; -} - -.mytheme .v-formlayout > table { - border-spacing: 0; - position: relative; -} - -.mytheme .v-formlayout.v-has-width > table, .mytheme .v-formlayout.v-has-width .v-formlayout-contentcell { - width: 100%; -} - -.mytheme .v-formlayout-error-indicator { - width: 19px; -} - -.mytheme .v-formlayout-captioncell { - vertical-align: top; - line-height: 36px; -} - -.mytheme .v-formlayout-captioncell .v-caption { - padding-bottom: 0; -} - -.mytheme .v-formlayout-captioncell .v-caption-h2, .mytheme .v-formlayout-captioncell .v-caption-h3, .mytheme .v-formlayout-captioncell .v-caption-h4 { - height: 3em; -} - -.mytheme .v-formlayout-contentcell .v-checkbox, .mytheme .v-formlayout-contentcell .v-radiobutton { - font-weight: 400; -} - -.mytheme .v-formlayout-contentcell > .v-label-h2, .mytheme .v-formlayout-contentcell > .v-label-h3, .mytheme .v-formlayout-contentcell > .v-label-h4 { - position: absolute; - left: 0; - right: 0; - width: auto !important; - margin-top: -0.5em; - padding-bottom: 0.5em; - border-bottom: 1px solid #dfdfdf; -} - -.mytheme .v-formlayout.light > table { - padding: 0; -} - -.mytheme .v-formlayout.light > table > tbody > tr > td { - padding-top: 0; - height: 37px; - border-bottom: 1px solid #eaeaea; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="lastrow"] > td { - border-bottom: none; -} - -.mytheme .v-formlayout.light > table > tbody > tr > [class*="captioncell"] { - color: #7d7d7d; - text-align: right; - padding-left: 13px; - line-height: 37px; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] { - padding-right: 0; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect-input, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield-textfield { - width: 100%; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 37px; - border-radius: 0; - padding: 4px 7px; - - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - background: transparent; - border: none; - color: inherit; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield.v-disabled, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea.v-disabled, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input.v-disabled, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input.v-disabled, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), none; - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), none; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input:focus, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea:focus { - box-shadow: none; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield-prompt, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea-prompt, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect-prompt input, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield-prompt input { - color: #a3a3a3; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { - height: auto; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - border-bottom: none; - left: 0; - right: 0; -} - -.mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .mytheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - margin-top: 0; -} - -.mytheme .v-formlayout.light .v-richtextarea { - margin: 5px 0; -} - -.mytheme .v-formlayout.light .v-filterselect-button, .mytheme .v-formlayout.light .v-datefield-button { - border: none; -} - -.mytheme .v-formlayout.light .v-filterselect-button:active:after, .mytheme .v-formlayout.light .v-datefield-button:active:after { - display: none; -} - -.mytheme .v-formlayout.light .v-datefield-button { - right: 0; - left: auto; -} - -.mytheme .v-formlayout.light .v-checkbox { - margin-left: 7px; -} - -.mytheme .v-grid { - position: relative; -} - -.mytheme .v-grid-scroller { - position: absolute; - z-index: 1; - outline: none; - box-sizing: border-box; -} - -.mytheme .v-grid-scroller-horizontal { - left: 0; - right: 0; - bottom: 0; - overflow-y: hidden; - -ms-overflow-y: hidden; -} - -.mytheme .v-grid-scroller-vertical { - right: 0; - top: 0; - bottom: 0; - overflow-x: hidden; - -ms-overflow-x: hidden; -} - -.mytheme .v-grid-tablewrapper { - position: absolute; - overflow: hidden; - box-sizing: border-box; - z-index: 5; -} - -.mytheme .v-grid-tablewrapper > table { - border-spacing: 0; - table-layout: fixed; - width: inherit; -} - -.mytheme .v-grid-header-deco, .mytheme .v-grid-footer-deco { - position: absolute; - right: 0; - box-sizing: border-box; -} - -.mytheme .v-grid-horizontal-scrollbar-deco { - position: absolute; - bottom: 0; - left: 0; - right: 0; - box-sizing: border-box; -} - -.mytheme .v-grid-header, .mytheme .v-grid-body, .mytheme .v-grid-footer { - position: absolute; - left: 0; - width: inherit; - z-index: 10; -} - -.mytheme .v-grid-header, .mytheme .v-grid-header-deco { - top: 0; -} - -.mytheme .v-grid-footer, .mytheme .v-grid-footer-deco { - bottom: 0; -} - -.mytheme .v-grid-body { - -ms-touch-action: none; - touch-action: none; - z-index: 0; - top: 0; -} - -.mytheme .v-grid-body .v-grid-row { - position: absolute; - top: 0; - left: 0; -} - -.mytheme .v-grid-body .v-grid-header > .v-grid-row { - position: relative; -} - -.mytheme .v-grid-row { - display: block; -} - -.mytheme .v-grid-row > td, .mytheme .v-grid-row > th { - background-color: white; -} - -.mytheme .v-grid-row { - width: inherit; -} - -.mytheme .v-grid-cell { - display: block; - float: left; - padding: 2px; - white-space: nowrap; - box-sizing: border-box; - overflow: hidden; - font-size: 16px; -} - -.mytheme .v-grid-cell.frozen { - position: relative; - z-index: 1; -} - -.mytheme .v-grid-spacer { - position: absolute; - display: block; - background-color: white; -} - -.mytheme .v-grid-spacer > td { - width: 100%; - height: 100%; - box-sizing: border-box; -} - -.mytheme .v-grid { - outline: none; -} - -.mytheme .v-grid-scroller-vertical, .mytheme .v-grid-scroller-horizontal { - border: 1px solid #d4d4d4; -} - -.mytheme .v-grid-scroller-vertical { - border-left: none; -} - -.mytheme .v-grid-scroller-horizontal { - border-top: none; -} - -.mytheme .v-grid-tablewrapper { - border: 1px solid #d4d4d4; -} - -.mytheme .v-grid .header-drag-table { - border-spacing: 0; - position: relative; - table-layout: fixed; - width: inherit; -} - -.mytheme .v-grid .header-drag-table .v-grid-header { - position: absolute; -} - -.mytheme .v-grid .header-drag-table .v-grid-header > .v-grid-cell { - border: 1px solid #d4d4d4; - margin-top: -10px; - opacity: 0.9; - filter: alpha(opacity=90); - z-index: 30000; -} - -.mytheme .v-grid .header-drag-table .v-grid-header > .v-grid-drop-marker { - background-color: #197de1; - position: absolute; - width: 3px; -} - -.mytheme .v-grid-sidebar.v-contextmenu { - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 0; - position: absolute; - top: 0; - right: 0; - background-color: #fafafa; - border: 1px solid #d4d4d4; - padding: 0; - z-index: 5; -} - -.mytheme .v-grid-sidebar.v-contextmenu.v-grid-sidebar-popup { - right: auto; -} - -.mytheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button { - background: transparent; - border: none; - color: inherit; - cursor: pointer; - outline: none; - padding: 0 4px; - text-align: right; - line-height: 1; -} - -.mytheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button[disabled] { - cursor: default; -} - -.mytheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button::-moz-focus-inner { - border: 0; -} - -.mytheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button:after { - content: "\f0c9"; - display: block; - font-family: ThemeIcons, sans-serif; - font-size: 14px; -} - -.mytheme .v-grid-sidebar.v-contextmenu.closed { - border-radius: 0; -} - -.mytheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button { - width: 100%; -} - -.mytheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button:after { - content: "\f0c9"; - font-size: 14px; - line-height: 1; -} - -.v-ie .mytheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button { - vertical-align: middle; -} - -.mytheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content { - padding: 4px 0; - overflow-y: auto; - overflow-x: hidden; -} - -.mytheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content .gwt-MenuBar .gwt-MenuItem .column-hiding-toggle { - text-shadow: none; -} - -.mytheme .v-grid-cell { - background-color: white; - padding: 0 18px; - line-height: 37px; - text-overflow: ellipsis; -} - -.mytheme .v-grid-cell > * { - line-height: 1.55; - vertical-align: middle; -} - -.mytheme .v-grid-cell > div { - display: inline-block; -} - -.mytheme .v-grid-cell.frozen { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; - position: relative; - z-index: 11; -} - -.mytheme .v-grid-cell.frozen + th, .mytheme .v-grid-cell.frozen + td { - border-left: none; -} - -.mytheme .v-grid-cell div.component-wrap { - width: 100%; -} - -.mytheme .v-grid-row > td, .mytheme .v-grid-editor-cells > div { - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-grid-row > td:first-child, .mytheme .v-grid-editor-cells > div:first-child { - border-left: none; -} - -.mytheme .v-grid-editor-cells.frozen > div { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; - border-left: none; -} - -.mytheme .v-grid-row-stripe > td { - background-color: #f5f5f5; -} - -.mytheme .v-grid-row-selected > td { - background: #197de1; -} - -.mytheme .v-grid-row-focused > td { - -} - -.mytheme .v-grid-header th { - position: relative; - background-color: #fafafa; - font-size: 14px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; - - text-align: left; -} - -.mytheme .v-grid-header th:first-child { - border-left: none; -} - -.mytheme .v-grid-header .sort-asc, .mytheme .v-grid-header .sort-desc { - padding-right: 35px; -} - -.mytheme .v-grid-header .sort-asc:after, .mytheme .v-grid-header .sort-desc:after { - font-family: ThemeIcons, sans-serif; - content: "\f0de" " " attr(sort-order); - position: absolute; - right: 18px; - font-size: 12px; -} - -.mytheme .v-grid-header .sort-desc:after { - content: "\f0dd" " " attr(sort-order); -} - -.mytheme .v-grid-column-resize-handle { - position: absolute; - width: 36px; - right: -18px; - top: 0px; - bottom: 0px; - cursor: col-resize; - z-index: 10; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.mytheme .v-grid-column-resize-simple-indicator { - position: absolute; - width: 3px; - top: 0px; - left: 18px; - z-index: 9001; - background: #fff; - box-shadow: 0px 0px 5px #000; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.mytheme .v-grid-footer td { - background-color: #fafafa; - font-size: 14px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - border-bottom: none; - -} - -.mytheme .v-grid-footer td:first-child { - border-left: none; -} - -.mytheme .v-grid-header .v-grid-cell, .mytheme .v-grid-footer .v-grid-cell { - overflow: visible; -} - -.mytheme .v-grid-column-header-content, .mytheme .v-grid-column-footer-content { - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 37px; - vertical-align: baseline; -} - -.mytheme .v-grid-header-deco { - border-top: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.mytheme .v-grid-footer-deco { - border-bottom: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.mytheme .v-grid-horizontal-scrollbar-deco { - background-color: #fafafa; - border: 1px solid #d4d4d4; - border-top: none; -} - -.mytheme .v-grid-cell-focused { - position: relative; -} - -.mytheme .v-grid-cell-focused:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border: 2px solid #197de1; - display: none; - pointer-events: none; -} - -.mytheme .v-grid:focus .v-grid-cell-focused:before { - display: block; -} - -.mytheme .v-grid.v-disabled:focus .v-grid-cell-focused:before { - display: none; -} - -.mytheme .v-grid-editor { - position: absolute; - z-index: 20; - overflow: hidden; - left: 0; - right: 0; - border: 1px solid #d4d4d4; - box-sizing: border-box; - -moz-box-sizing: border-box; - margin-top: -1px; - -webkit-box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); -} - -.mytheme .v-grid-editor.unbuffered .v-grid-editor-footer { - width: 100%; -} - -.mytheme .v-grid-editor-cells { - position: relative; - white-space: nowrap; -} - -.mytheme .v-grid-editor-cells.frozen { - z-index: 2; -} - -.mytheme .v-grid-editor-cells > div { - display: inline-block; - box-sizing: border-box; - vertical-align: middle; - background: white; -} - -.mytheme .v-grid-editor-cells > div:first-child { - border-left: none; -} - -.mytheme .v-grid-editor-cells > div > * { - vertical-align: middle; - display: inline-block; -} - -.mytheme .v-grid-editor-cells > div .v-filterselect { - padding-left: 0; -} - -.mytheme .v-grid-editor-cells > div input[type="text"], .mytheme .v-grid-editor-cells > div input[type="text"].v-filterselect-input, .mytheme .v-grid-editor-cells > div input[type="password"] { - padding-left: 18px; -} - -.mytheme .v-grid-editor-cells > div input[type="text"]:not(.v-filterselect-input), .mytheme .v-grid-editor-cells > div input[type="password"] { - padding-right: 9px; -} - -.mytheme .v-grid-editor-cells > div input[type="checkbox"] { - margin-left: 18px; -} - -.mytheme .v-grid-editor-cells > div .v-textfield, .mytheme .v-grid-editor-cells > div .v-datefield, .mytheme .v-grid-editor-cells > div .v-filterselect { - min-width: 100%; - max-width: 100%; - min-height: 100%; - max-height: 100%; -} - -.mytheme .v-grid-editor-cells > div .v-select, .mytheme .v-grid-editor-cells > div .v-select-select { - min-width: 100%; - max-width: 100%; -} - -.mytheme .v-grid-editor-cells > div.not-editable.v-grid-cell { - float: none; -} - -.mytheme .v-grid-editor-cells .error::before { - position: absolute; - display: block; - height: 0; - width: 0; - content: ""; - border-top: 5px solid red; - border-right: 5px solid transparent; -} - -.mytheme .v-grid-editor-cells .error, .mytheme .v-grid-editor-cells .error > input { - background-color: #fee; -} - -.mytheme .v-grid-editor-footer { - display: table; - height: 37px; - border-top: 1px solid #d4d4d4; - margin-top: -1px; - background: white; - padding: 0 5px; -} - -.mytheme .v-grid-editor-footer + .v-grid-editor-cells > div { - border-bottom: none; - border-top: 1px solid #d4d4d4; -} - -.mytheme .v-grid-editor-footer:first-child { - border-top: none; - margin-top: 0; - border-bottom: 1px solid #d4d4d4; - margin-bottom: -1px; -} - -.mytheme .v-grid-editor-message, .mytheme .v-grid-editor-buttons { - display: table-cell; - white-space: nowrap; - vertical-align: middle; -} - -.mytheme .v-grid-editor-message { - width: 100%; - position: relative; -} - -.mytheme .v-grid-editor-message > div { - position: absolute; - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 37px; - top: 0; -} - -.mytheme .v-grid-editor-save { - margin-right: 4px; -} - -.mytheme .v-grid-spacer { - padding-left: 1px; -} - -.mytheme .v-grid-spacer > td { - display: block; - padding: 0; - background-color: white; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-grid-spacer.stripe > td { - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-grid-spacer-deco-container { - border-top: 1px solid transparent; - position: relative; - top: 0; - z-index: 5; -} - -.mytheme .v-grid-spacer-deco { - top: 0; - left: 0; - width: 2px; - background-color: #197de1; - position: absolute; - height: 100%; - pointer-events: none; -} - -.mytheme .v-grid-cell > .v-progressbar { - width: 100%; -} - -.mytheme .v-grid { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - background-color: #fafafa; -} - -.mytheme .v-grid.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-grid-header .v-grid-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-grid-header .v-grid-cell.dragged { - opacity: 0.5; - filter: alpha(opacity=50) ; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} - -.mytheme .v-grid-header .v-grid-cell.dragged-column-header { - margin-top: -19px; -} - -.mytheme .v-grid-footer .v-grid-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-grid-header-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-grid-footer-deco, .mytheme .v-grid-horizontal-scrollbar-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-grid-row-selected > .v-grid-cell { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: #c8dbed; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - border-color: #1d69b4; -} - -.mytheme .v-grid-row-selected > .v-grid-cell-focused:before { - border-color: #71b0ef; -} - -.mytheme .v-grid-editor { - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - border-color: #197de1; -} - -.mytheme .v-grid-editor-footer { - font-size: 14px; - padding: 0 6px; - background: #fafafa; - -webkit-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; -} - -.mytheme .v-grid-editor-footer:first-child { - -webkit-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; -} - -.mytheme .v-grid-editor-cells { - z-index: 1; -} - -.mytheme .v-grid-editor-cells > div:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; -} - -.mytheme .v-grid-editor-cells > div.not-editable.v-grid-cell { - float: none; -} - -.mytheme .v-grid-editor-cells > div .error::before { - border-top: 9px solid #ed473b; - border-right: 9px solid transparent; -} - -.mytheme .v-grid-editor-cells > div .error, .mytheme .v-grid-editor-cells > div .error > input { - background-color: #fffbfb; -} - -.mytheme .v-grid-editor-cells > div .v-textfield, .mytheme .v-grid-editor-cells > div .v-textfield-focus, .mytheme .v-grid-editor-cells > div .v-datefield, .mytheme .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .mytheme .v-grid-editor-cells > div .v-filterselect-input, .mytheme .v-grid-editor-cells > div .v-filterselect-input:focus { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: inset 0 1px 0 #f2f2f2; - box-shadow: inset 0 1px 0 #f2f2f2; -} - -.mytheme .v-grid-editor-cells > div input[type="text"].v-datefield-textfield { - padding-left: 44.4px; -} - -.mytheme .v-grid-editor-cells > div .v-textfield-focus, .mytheme .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .mytheme .v-grid-editor-cells > div .v-filterselect-input:focus { - position: relative; -} - -.mytheme .v-grid-editor-cells > div .v-select { - padding-left: 9px; - padding-right: 9px; -} - -.mytheme .v-grid-editor-cells > div .v-checkbox { - margin: 0 9px 0 18px; -} - -.mytheme .v-grid-editor-cells > div .v-checkbox > input[type="checkbox"] { - margin-left: 0; -} - -.mytheme .v-grid-editor-cells > div .v-checkbox > label { - white-space: nowrap; -} - -.mytheme .v-grid-editor-message > div:before { - display: inline-block; - color: #ed473b; - font-weight: 600; - width: 19px; - text-align: center; - content: "!"; -} - -.mytheme .v-grid-editor-save, .mytheme .v-grid-editor-cancel { - cursor: pointer; - color: #197de1; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - font-weight: 400; - text-decoration: none; - border: none; - background: transparent; - padding: 6px 6px; - margin: 0; - outline: none; -} - -.mytheme .v-grid-editor-save:hover, .mytheme .v-grid-editor-cancel:hover { - color: #4396ea; -} - -.mytheme .v-grid-editor-save.v-disabled, .mytheme .v-grid-editor-cancel.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-grid-spacer { - margin-top: -1px; -} - -.mytheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-content { - margin: 0 0 2px; - padding: 4px 4px 2px; - overflow-y: auto; - overflow-x: hidden; -} - -.mytheme .v-grid-sidebar.v-contextmenu.closed { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-grid-scroller::-webkit-scrollbar { - border: none; -} - -.mytheme .v-grid-scroller::-webkit-scrollbar-thumb { - border-radius: 10px; - border: 4px solid transparent; - background: rgba(0, 0, 0, 0.3); - -webkit-background-clip: content-box; - background-clip: content-box; -} - -.mytheme .v-grid-scroller-vertical::-webkit-scrollbar-thumb { - min-height: 30px; -} - -.mytheme .v-grid-scroller-horizontal::-webkit-scrollbar-thumb { - min-width: 30px; -} - -.mytheme .v-grid-row-drag-badge { - background-color: red; - color: white; - display: block; - width: 30px; - height: 30px; - border-radius: 10px; - line-height: 30px; - text-align: center; - float: left; -} - -.mytheme .v-grid-row-drag-top, .mytheme .v-grid-row-drag-bottom { - z-index: 100; -} - -.mytheme .v-grid-row-drag-top:before, .mytheme .v-grid-row-drag-bottom:after { - content: ""; - display: block; - position: absolute; - height: 2px; - width: 100%; - background: #197de1; - pointer-events: none; - border: none; -} - -.mytheme .v-grid-row-drag-bottom:after { - bottom: -1px; -} - -.mytheme .v-grid-row-drag-top:before { - top: -1px; -} - -.mytheme .v-grid-row-drag-top:first-child:before { - top: 0; -} - -.mytheme .v-grid-row-drag-center:after { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 2px; - border: 2px solid #197de1; - pointer-events: none; -} - -.mytheme .v-grid-row-selected.v-grid-row-drag-center:after { - border-color: #1463b3; -} - -.mytheme .v-grid-row-selected.v-grid-row-drag-top:before, .mytheme .v-grid-row-selected.v-grid-row-drag-bottom:after { - background: #1463b3; -} - -.mytheme .v-grid-body-drag-top:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - pointer-events: none; - border: 2px solid #197de1; - z-index: 100; -} - -.mytheme .v-textfield { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 37px; - border-radius: 4px; - padding: 4px 9px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 185px; -} - -.mytheme .v-textfield.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-textfield:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-textfield[class*="prompt"] { - color: #a3a3a3; -} - -.mytheme .v-textfield-readonly { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-textfield-readonly:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-textfield-error { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-textfield-error-info { - border-color: #00a7f5 !important; - background: #fafdff; - color: #195774; -} - -.mytheme .v-textfield-error-warning { - border-color: #fc9c00 !important; - background: #fffdfa; - color: #745119; -} - -.mytheme .v-textfield-error-error { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-textfield-error-critical { - border-color: #fa007d !important; - background: #fffafc; - color: #741947; -} - -.mytheme .v-textfield-error-system { - border-color: #bb00ff !important; - background: #fefaff; - color: #5c1974; -} - -.mytheme .v-textfield-borderless { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-textfield-borderless:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-textfield-borderless[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-textfield-tiny { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 28px; - border-radius: 4px; - padding: 3px 7px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - font-size: 12px; -} - -.mytheme .v-textfield-compact, .mytheme .v-textfield-small { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 31px; - border-radius: 4px; - padding: 3px 8px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; -} - -.mytheme .v-textfield-small { - font-size: 14px; -} - -.mytheme .v-textfield-large { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 44px; - border-radius: 4px; - padding: 5px 10px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - font-size: 20px; -} - -.mytheme .v-textfield-huge { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 59px; - border-radius: 4px; - padding: 7px 12px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - font-size: 26px; -} - -.mytheme .v-slot-inline-icon { - position: relative; -} - -.mytheme .v-caption-inline-icon { - padding: 0; -} - -.mytheme .v-caption-inline-icon .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.mytheme .v-caption-inline-icon .v-icon { - position: absolute; - z-index: 10; -} - -.mytheme .v-caption-inline-icon span.v-icon { - left: 1px; - bottom: 1px; - width: 37px; - line-height: 35px; - text-align: center; - font-size: 16px; -} - -.mytheme .v-caption-inline-icon img.v-icon { - left: 11px; - bottom: 11px; -} - -.mytheme .v-textfield-inline-icon { - padding-left: 37px; -} - -.mytheme .v-slot-inline-icon.v-slot-tiny { - position: relative; -} - -.mytheme .v-caption-inline-icon.v-caption-tiny { - padding: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-tiny .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-tiny .v-icon { - position: absolute; - z-index: 10; -} - -.mytheme .v-caption-inline-icon.v-caption-tiny span.v-icon { - left: 1px; - bottom: 1px; - width: 28px; - line-height: 26px; - text-align: center; - font-size: 12px; -} - -.mytheme .v-caption-inline-icon.v-caption-tiny img.v-icon { - left: 6px; - bottom: 6px; -} - -.mytheme .v-textfield-inline-icon.v-textfield-tiny { - padding-left: 28px; -} - -.mytheme .v-slot-inline-icon.v-slot-compact { - position: relative; -} - -.mytheme .v-caption-inline-icon.v-caption-compact { - padding: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-compact .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-compact .v-icon { - position: absolute; - z-index: 10; -} - -.mytheme .v-caption-inline-icon.v-caption-compact span.v-icon { - left: 1px; - bottom: 1px; - width: 31px; - line-height: 29px; - text-align: center; - font-size: 16px; -} - -.mytheme .v-caption-inline-icon.v-caption-compact img.v-icon { - left: 8px; - bottom: 8px; -} - -.mytheme .v-textfield-inline-icon.v-textfield-compact { - padding-left: 31px; -} - -.mytheme .v-slot-inline-icon.v-slot-small { - position: relative; -} - -.mytheme .v-caption-inline-icon.v-caption-small { - padding: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-small .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-small .v-icon { - position: absolute; - z-index: 10; -} - -.mytheme .v-caption-inline-icon.v-caption-small span.v-icon { - left: 1px; - bottom: 1px; - width: 31px; - line-height: 29px; - text-align: center; - font-size: 14px; -} - -.mytheme .v-caption-inline-icon.v-caption-small img.v-icon { - left: 8px; - bottom: 8px; -} - -.mytheme .v-textfield-inline-icon.v-textfield-small { - padding-left: 31px; -} - -.mytheme .v-slot-inline-icon.v-slot-large { - position: relative; -} - -.mytheme .v-caption-inline-icon.v-caption-large { - padding: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-large .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-large .v-icon { - position: absolute; - z-index: 10; -} - -.mytheme .v-caption-inline-icon.v-caption-large span.v-icon { - left: 1px; - bottom: 1px; - width: 44px; - line-height: 42px; - text-align: center; - font-size: 20px; -} - -.mytheme .v-caption-inline-icon.v-caption-large img.v-icon { - left: 14px; - bottom: 14px; -} - -.mytheme .v-textfield-inline-icon.v-textfield-large { - padding-left: 44px; -} - -.mytheme .v-slot-inline-icon.v-slot-huge { - position: relative; -} - -.mytheme .v-caption-inline-icon.v-caption-huge { - padding: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-huge .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.mytheme .v-caption-inline-icon.v-caption-huge .v-icon { - position: absolute; - z-index: 10; -} - -.mytheme .v-caption-inline-icon.v-caption-huge span.v-icon { - left: 1px; - bottom: 1px; - width: 59px; - line-height: 57px; - text-align: center; - font-size: 26px; -} - -.mytheme .v-caption-inline-icon.v-caption-huge img.v-icon { - left: 22px; - bottom: 22px; -} - -.mytheme .v-textfield-inline-icon.v-textfield-huge { - padding-left: 59px; -} - -.mytheme .v-textfield-align-right { - text-align: right; -} - -.mytheme .v-textfield-align-center { - text-align: center; -} - -.mytheme .v-textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 37px; - border-radius: 4px; - padding: 6px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - width: 185px; -} - -.mytheme .v-textarea.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-textarea:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-textarea[class*="prompt"] { - color: #a3a3a3; -} - -.mytheme .v-textarea-readonly { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-textarea-readonly:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-textarea-error { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-textarea-borderless { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-textarea-borderless:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-textarea-borderless[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-textarea-tiny { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 28px; - border-radius: 4px; - padding: 6px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 12px; -} - -.mytheme .v-textarea-small { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 31px; - border-radius: 4px; - padding: 6px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 14px; -} - -.mytheme .v-textarea-large { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 44px; - border-radius: 4px; - padding: 6px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 20px; -} - -.mytheme .v-textarea-huge { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 59px; - border-radius: 4px; - padding: 6px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 26px; -} - -.mytheme .v-textarea-align-right { - text-align: right; -} - -.mytheme .v-textarea-align-center { - text-align: center; -} - -.mytheme .v-datefield { - position: relative; - width: 185px; - height: 37px; - border-radius: 4px; -} - -.mytheme .v-datefield [class*="textfield"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 37px; - border-radius: 4px; - padding: 4px 9px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 44.4px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.mytheme .v-datefield [class*="textfield"].v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield [class*="textfield"]:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-datefield [class*="textfield"][class*="prompt"] { - color: #a3a3a3; -} - -.mytheme .v-datefield[class*="prompt"] > [class*="textfield"] { - color: #a3a3a3; -} - -.mytheme .v-datefield [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 37px; - line-height: 35px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - top: 1px; - bottom: 1px; - left: 1px; - border: none; - border-right: 1px solid #e4e4e4; - color: #a3a3a3; - border-radius: 3px 0 0 3px; -} - -.mytheme .v-datefield [class*="button"]:hover { - color: #474747; -} - -.mytheme .v-datefield [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-datefield [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: rgba(128, 128, 128, 0.2); - border-radius: inherit; -} - -.mytheme .v-datefield.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield.v-disabled [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-datefield.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield.v-readonly [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield.v-readonly.borderless [class*="textfield"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-datefield.v-readonly.borderless [class*="textfield"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield.v-readonly.borderless [class*="textfield"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-error .v-datefield-textfield { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-datefield-error .v-datefield-button { - color: #ed473b; - border-color: #ed473b; -} - -.mytheme .v-datefield-error-info .v-datefield-textfield { - border-color: #00a7f5 !important; - background: #fafdff; - color: #195774; -} - -.mytheme .v-datefield-error-info .v-datefield-button { - color: #00a7f5; - border-color: #00a7f5; -} - -.mytheme .v-datefield-error-warning .v-datefield-textfield { - border-color: #fc9c00 !important; - background: #fffdfa; - color: #745119; -} - -.mytheme .v-datefield-error-warning .v-datefield-button { - color: #fc9c00; - border-color: #fc9c00; -} - -.mytheme .v-datefield-error-error .v-datefield-textfield { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-datefield-error-error .v-datefield-button { - color: #ed473b; - border-color: #ed473b; -} - -.mytheme .v-datefield-error-critical .v-datefield-textfield { - border-color: #fa007d !important; - background: #fffafc; - color: #741947; -} - -.mytheme .v-datefield-error-critical .v-datefield-button { - color: #fa007d; - border-color: #fa007d; -} - -.mytheme .v-datefield-error-system .v-datefield-textfield { - border-color: #bb00ff !important; - background: #fefaff; - color: #5c1974; -} - -.mytheme .v-datefield-error-system .v-datefield-button { - color: #bb00ff; - border-color: #bb00ff; -} - -.mytheme .v-datefield-full { - width: 240px; -} - -.mytheme .v-datefield-day { - width: 185px; -} - -.mytheme .v-datefield-month { - width: 120px; -} - -.mytheme .v-datefield-year { - width: 104px; -} - -.mytheme .v-datefield-popup { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - margin-top: 5px !important; - margin-bottom: 5px !important; - margin-right: 5px !important; - cursor: default; - width: auto; -} - -.mytheme .v-datefield-popup[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.mytheme .v-datefield-popup[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.mytheme .v-datefield-popup table { - border-collapse: collapse; - border-spacing: 0; - margin: 0 auto; -} - -.mytheme .v-datefield-popup td { - padding: 2px; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel { - font-size: 16px; - text-align: center; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel:focus { - outline: none; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-day { - box-sizing: border-box; - width: 30px; - height: 26px; - border: 1px solid transparent; - line-height: 26px; - text-align: center; - font-size: 14px; - background: #fafafa; - border-radius: 2px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; - display: inline-block; - box-sizing: border-box; - cursor: pointer; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-day:hover { - color: #197de1; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-day-offmonth { - color: #a0a0a0; - background: transparent; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-day-today { - color: #191919; - font-weight: 600; - border-color: #afafaf; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .mytheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { - color: #c8dbed; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - border: none; - font-weight: 600; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - position: relative; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .mytheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { - color: #a0a0a0; - cursor: not-allowed; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-weekdays { - height: 26px; - color: rgba(133, 133, 133, 0.85); -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-weekdays strong { - font: inherit; - font-size: 14px; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-header { - white-space: nowrap; -} - -.mytheme .v-datefield-popup td[class*="year"] button, .mytheme .v-datefield-popup td[class*="month"] button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - padding: 0; - margin: 0; - cursor: pointer; - color: transparent; - font-size: 0; - width: 19px; - height: 25px; - outline: none; - position: relative; - vertical-align: middle; -} - -.mytheme .v-datefield-popup td[class*="year"] button:before, .mytheme .v-datefield-popup td[class*="month"] button:before { - color: #a0a0a0; - font-size: 21px; - line-height: 24px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; -} - -.mytheme .v-datefield-popup td[class*="year"] button:hover:before, .mytheme .v-datefield-popup td[class*="month"] button:hover:before { - color: #197de1; -} - -.mytheme .v-datefield-popup td[class*="year"] button.outside-range, .mytheme .v-datefield-popup td[class*="month"] button.outside-range { - cursor: default; - opacity: 0.3; - filter: alpha(opacity=30.0) ; -} - -.mytheme .v-datefield-popup td[class*="year"] button.outside-range:hover:before, .mytheme .v-datefield-popup td[class*="month"] button.outside-range:hover:before { - color: #a0a0a0; -} - -.mytheme .v-datefield-popup .v-button-prevyear:before { - font-family: ThemeIcons; - content: "\f100"; -} - -.mytheme .v-datefield-popup .v-button-prevmonth:before { - font-family: ThemeIcons; - content: "\f104"; -} - -.mytheme .v-datefield-popup .v-button-nextyear:before { - font-family: ThemeIcons; - content: "\f101"; -} - -.mytheme .v-datefield-popup .v-button-nextmonth:before { - font-family: ThemeIcons; - content: "\f105"; -} - -.mytheme .v-datefield-popup td.v-datefield-calendarpanel-month { - width: 148px; - cursor: default; - color: #197de1; -} - -.mytheme .v-datefield-popup td.v-datefield-calendarpanel-month.header-month-year { - cursor: pointer; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { - width: 74px; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-weeknumber, .mytheme .v-datefield-popup .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { - width: 30px; - color: rgba(133, 133, 133, 0.85); - font-size: 14px; - display: inline-block; - text-align: left; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-weeknumber { - position: relative; -} - -.mytheme .v-datefield-popup .v-datefield-calendarpanel-weeknumbers .v-first:before { - content: ""; - position: absolute; - top: 38px; - bottom: 0; - left: 0; - width: 34px; - border-top: 1px solid #eaeaea; - border-right: 1px solid #eaeaea; - border-top-right-radius: 4px; - border-bottom-left-radius: 4px; - background: #fafafa; -} - -.mytheme .v-datefield-popup td.v-datefield-calendarpanel-time { - width: 100%; - font-size: 14px; -} - -.mytheme .v-datefield-popup td.v-datefield-calendarpanel-time .v-label { - display: inline; - margin: 0 0.1em; - font-weight: 400; -} - -.mytheme .v-datefield-calendarpanel { - font-size: 16px; - text-align: center; -} - -.mytheme .v-datefield-calendarpanel:focus { - outline: none; -} - -.mytheme .v-datefield-calendarpanel-day { - box-sizing: border-box; - width: 30px; - height: 26px; - border: 1px solid transparent; - line-height: 26px; - text-align: center; - font-size: 14px; - background: #fafafa; - border-radius: 2px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; - display: inline-block; - box-sizing: border-box; - cursor: pointer; -} - -.mytheme .v-datefield-calendarpanel-day:hover { - color: #197de1; -} - -.mytheme .v-datefield-calendarpanel-day-offmonth { - color: #a0a0a0; - background: transparent; -} - -.mytheme .v-datefield-calendarpanel-day-today { - color: #191919; - font-weight: 600; - border-color: #afafaf; -} - -.mytheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .mytheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { - color: #c8dbed; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - border: none; - font-weight: 600; -} - -.mytheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - position: relative; -} - -.mytheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .mytheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { - color: #a0a0a0; - cursor: not-allowed; -} - -.mytheme .v-datefield-calendarpanel-weekdays { - height: 26px; - color: rgba(133, 133, 133, 0.85); -} - -.mytheme .v-datefield-calendarpanel-weekdays strong { - font: inherit; - font-size: 14px; -} - -.mytheme .v-datefield-calendarpanel-header { - white-space: nowrap; -} - -.mytheme td[class*="year"] button, .mytheme td[class*="month"] button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - padding: 0; - margin: 0; - cursor: pointer; - color: transparent; - font-size: 0; - width: 19px; - height: 25px; - outline: none; - position: relative; - vertical-align: middle; -} - -.mytheme td[class*="year"] button:before, .mytheme td[class*="month"] button:before { - color: #a0a0a0; - font-size: 21px; - line-height: 24px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; -} - -.mytheme td[class*="year"] button:hover:before, .mytheme td[class*="month"] button:hover:before { - color: #197de1; -} - -.mytheme td[class*="year"] button.outside-range, .mytheme td[class*="month"] button.outside-range { - cursor: default; - opacity: 0.3; - filter: alpha(opacity=30.0) ; -} - -.mytheme td[class*="year"] button.outside-range:hover:before, .mytheme td[class*="month"] button.outside-range:hover:before { - color: #a0a0a0; -} - -.mytheme .v-button-prevyear:before { - font-family: ThemeIcons; - content: "\f100"; -} - -.mytheme .v-button-prevmonth:before { - font-family: ThemeIcons; - content: "\f104"; -} - -.mytheme .v-button-nextyear:before { - font-family: ThemeIcons; - content: "\f101"; -} - -.mytheme .v-button-nextmonth:before { - font-family: ThemeIcons; - content: "\f105"; -} - -.mytheme td.v-datefield-calendarpanel-month { - width: 148px; - cursor: default; - color: #197de1; -} - -.mytheme td.v-datefield-calendarpanel-month.header-month-year { - cursor: pointer; -} - -.mytheme .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { - width: 74px; -} - -.mytheme .v-datefield-calendarpanel-weeknumber, .mytheme .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { - width: 30px; - color: rgba(133, 133, 133, 0.85); - font-size: 14px; - display: inline-block; - text-align: left; -} - -.mytheme .v-datefield-calendarpanel-weeknumber { - position: relative; -} - -.mytheme .v-datefield-calendarpanel-weeknumbers .v-first:before { - content: ""; - position: absolute; - top: 38px; - bottom: 0; - left: 0; - width: 34px; - border-top: 1px solid #eaeaea; - border-right: 1px solid #eaeaea; - border-top-right-radius: 4px; - border-bottom-left-radius: 4px; - background: #fafafa; -} - -.mytheme td.v-datefield-calendarpanel-time { - width: 100%; - font-size: 14px; -} - -.mytheme td.v-datefield-calendarpanel-time .v-label { - display: inline; - margin: 0 0.1em; - font-weight: 400; -} - -.mytheme .v-datefield-borderless .v-datefield-textfield { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-datefield-borderless .v-datefield-textfield:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-borderless .v-datefield-textfield[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-borderless .v-datefield-button { - border: none; - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-align-right input { - text-align: right; -} - -.mytheme .v-datefield-align-center input { - text-align: center; -} - -.mytheme .v-datefield-tiny { - height: 28px; - border-radius: 4px; - font-size: 12px; -} - -.mytheme .v-datefield-tiny [class*="textfield"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 28px; - border-radius: 4px; - padding: 3px 7px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 33.6px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.mytheme .v-datefield-tiny [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 28px; - line-height: 28px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.mytheme .v-datefield-tiny [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-datefield-tiny [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-datefield-tiny.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-tiny.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-tiny.v-disabled [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-tiny.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-tiny.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-datefield-tiny.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-tiny.v-readonly [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-tiny.v-readonly.borderless [class*="textfield"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-datefield-tiny.v-readonly.borderless [class*="textfield"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-tiny.v-readonly.borderless [class*="textfield"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-compact, .mytheme .v-datefield-small { - height: 31px; - border-radius: 4px; -} - -.mytheme .v-datefield-compact [class*="textfield"], .mytheme .v-datefield-small [class*="textfield"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 31px; - border-radius: 4px; - padding: 3px 8px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 37.2px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.mytheme .v-datefield-compact [class*="button"], .mytheme .v-datefield-small [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 31px; - line-height: 31px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.mytheme .v-datefield-compact [class*="button"]:before, .mytheme .v-datefield-small [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-datefield-compact [class*="button"]:active:after, .mytheme .v-datefield-small [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-datefield-compact.v-disabled, .mytheme .v-datefield-small.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-compact.v-disabled [class*="button"], .mytheme .v-datefield-small.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-compact.v-disabled [class*="button"]:active:after, .mytheme .v-datefield-small.v-disabled [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-compact.v-readonly [class*="textfield"], .mytheme .v-datefield-small.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-compact.v-readonly [class*="textfield"]:focus, .mytheme .v-datefield-small.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-datefield-compact.v-readonly [class*="button"], .mytheme .v-datefield-small.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-compact.v-readonly [class*="button"]:active:after, .mytheme .v-datefield-small.v-readonly [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-compact.v-readonly.borderless [class*="textfield"], .mytheme .v-datefield-small.v-readonly.borderless [class*="textfield"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-datefield-compact.v-readonly.borderless [class*="textfield"]:focus, .mytheme .v-datefield-small.v-readonly.borderless [class*="textfield"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-compact.v-readonly.borderless [class*="textfield"][class*="prompt"], .mytheme .v-datefield-small.v-readonly.borderless [class*="textfield"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-small { - font-size: 14px; -} - -.mytheme .v-datefield-large { - height: 44px; - border-radius: 4px; - font-size: 20px; -} - -.mytheme .v-datefield-large [class*="textfield"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 44px; - border-radius: 4px; - padding: 5px 10px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 52.8px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.mytheme .v-datefield-large [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 44px; - line-height: 44px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.mytheme .v-datefield-large [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-datefield-large [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-datefield-large.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-large.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-large.v-disabled [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-large.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-large.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-datefield-large.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-large.v-readonly [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-large.v-readonly.borderless [class*="textfield"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-datefield-large.v-readonly.borderless [class*="textfield"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-large.v-readonly.borderless [class*="textfield"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-huge { - height: 59px; - border-radius: 4px; - font-size: 26px; -} - -.mytheme .v-datefield-huge [class*="textfield"] { - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 59px; - border-radius: 4px; - padding: 7px 12px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 70.8px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.mytheme .v-datefield-huge [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 59px; - line-height: 59px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.mytheme .v-datefield-huge [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-datefield-huge [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-datefield-huge.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-datefield-huge.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-huge.v-disabled [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-huge.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-huge.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.mytheme .v-datefield-huge.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.mytheme .v-datefield-huge.v-readonly [class*="button"]:active:after { - display: none; -} - -.mytheme .v-datefield-huge.v-readonly.borderless [class*="textfield"] { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.mytheme .v-datefield-huge.v-readonly.borderless [class*="textfield"]:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-datefield-huge.v-readonly.borderless [class*="textfield"][class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-inline-datefield-calendarpanel { - font-size: 16px; - text-align: center; -} - -.mytheme .v-inline-datefield-calendarpanel:focus { - outline: none; -} - -.mytheme .v-inline-datefield-calendarpanel-day { - box-sizing: border-box; - width: 30px; - height: 26px; - border: 1px solid transparent; - line-height: 26px; - text-align: center; - font-size: 14px; - background: #fafafa; - border-radius: 2px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; - display: inline-block; - box-sizing: border-box; - cursor: pointer; -} - -.mytheme .v-inline-datefield-calendarpanel-day:hover { - color: #197de1; -} - -.mytheme .v-inline-datefield-calendarpanel-day-offmonth { - color: #a0a0a0; - background: transparent; -} - -.mytheme .v-inline-datefield-calendarpanel-day-today { - color: #191919; - font-weight: 600; - border-color: #afafaf; -} - -.mytheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected, .mytheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected:hover { - color: #c8dbed; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - border: none; - font-weight: 600; -} - -.mytheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-focused { - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - position: relative; -} - -.mytheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range, .mytheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range:hover { - color: #a0a0a0; - cursor: not-allowed; -} - -.mytheme .v-inline-datefield-calendarpanel-weekdays { - height: 26px; - color: rgba(133, 133, 133, 0.85); -} - -.mytheme .v-inline-datefield-calendarpanel-weekdays strong { - font: inherit; - font-size: 14px; -} - -.mytheme .v-inline-datefield-calendarpanel-header { - white-space: nowrap; -} - -.mytheme td[class*="year"] button, .mytheme td[class*="month"] button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - padding: 0; - margin: 0; - cursor: pointer; - color: transparent; - font-size: 0; - width: 19px; - height: 25px; - outline: none; - position: relative; - vertical-align: middle; -} - -.mytheme td[class*="year"] button:before, .mytheme td[class*="month"] button:before { - color: #a0a0a0; - font-size: 21px; - line-height: 24px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; -} - -.mytheme td[class*="year"] button:hover:before, .mytheme td[class*="month"] button:hover:before { - color: #197de1; -} - -.mytheme td[class*="year"] button.outside-range, .mytheme td[class*="month"] button.outside-range { - cursor: default; - opacity: 0.3; - filter: alpha(opacity=30.0) ; -} - -.mytheme td[class*="year"] button.outside-range:hover:before, .mytheme td[class*="month"] button.outside-range:hover:before { - color: #a0a0a0; -} - -.mytheme .v-button-prevyear:before { - font-family: ThemeIcons; - content: "\f100"; -} - -.mytheme .v-button-prevmonth:before { - font-family: ThemeIcons; - content: "\f104"; -} - -.mytheme .v-button-nextyear:before { - font-family: ThemeIcons; - content: "\f101"; -} - -.mytheme .v-button-nextmonth:before { - font-family: ThemeIcons; - content: "\f105"; -} - -.mytheme td.v-inline-datefield-calendarpanel-month { - width: 148px; - cursor: default; - color: #197de1; -} - -.mytheme td.v-inline-datefield-calendarpanel-month.header-month-year { - cursor: pointer; -} - -.mytheme .v-inline-datefield-calendarpanel-year td.v-inline-datefield-calendarpanel-month { - width: 74px; -} - -.mytheme .v-inline-datefield-calendarpanel-weeknumber, .mytheme .v-inline-datefield-calendarpanel-weekdays.v-inline-datefield-calendarpanel-weeknumbers td:first-child { - width: 30px; - color: rgba(133, 133, 133, 0.85); - font-size: 14px; - display: inline-block; - text-align: left; -} - -.mytheme .v-inline-datefield-calendarpanel-weeknumber { - position: relative; -} - -.mytheme .v-inline-datefield-calendarpanel-weeknumbers .v-first:before { - content: ""; - position: absolute; - top: 38px; - bottom: 0; - left: 0; - width: 34px; - border-top: 1px solid #eaeaea; - border-right: 1px solid #eaeaea; - border-top-right-radius: 4px; - border-bottom-left-radius: 4px; - background: #fafafa; -} - -.mytheme td.v-inline-datefield-calendarpanel-time { - width: 100%; - font-size: 14px; -} - -.mytheme td.v-inline-datefield-calendarpanel-time .v-label { - display: inline; - margin: 0 0.1em; - font-weight: 400; -} - -.mytheme .v-inline-datefield-calendarpanel { - position: relative; - background: white; - padding: 6px; -} - -.mytheme .v-gridlayout-margin-top { - padding-top: 37px; -} - -.mytheme .v-gridlayout-margin-bottom { - padding-bottom: 37px; -} - -.mytheme .v-gridlayout-margin-left { - padding-left: 37px; -} - -.mytheme .v-gridlayout-margin-right { - padding-right: 37px; -} - -.mytheme .v-gridlayout-spacing-on { - padding-left: 12px; - padding-top: 12px; -} - -.mytheme .v-menubar { - position: relative; - text-align: center; - white-space: nowrap; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - cursor: default; - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - text-align: left; - line-height: 35px; -} - -.mytheme .v-menubar:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; -} - -.mytheme .v-menubar:focus:after { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.mytheme .v-menubar.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-menubar.v-disabled:after { - display: none; -} - -.mytheme .v-menubar:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-menubar:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-menubar > .v-menubar-menuitem { - padding: 0 14px; -} - -.mytheme .v-menubar > .v-menubar-menuitem[class*="-icon-only"] { - width: 37px; -} - -.mytheme .v-menubar:active:after { - background: transparent; -} - -.mytheme .v-menubar > .v-menubar-menuitem { - position: relative; - z-index: 1; - display: inline-block; - box-sizing: border-box; - height: 37px; - padding: 0 15px; - color: inherit; - font-weight: 400; - - cursor: pointer; - border-radius: 0; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - border-width: 0 1px 0 0; - border-color: inherit; - height: 100%; - line-height: inherit; - vertical-align: top; - text-align: center; -} - -.mytheme .v-menubar > .v-menubar-menuitem:first-child { - border-left-width: 0; - border-radius: 3px 0 0 3px; -} - -.mytheme .v-menubar > .v-menubar-menuitem:last-child { - border-radius: 0 3px 3px 0; - border-right-width: 0; -} - -.mytheme .v-menubar > .v-menubar-menuitem:first-child:last-child { - border-radius: 3px; -} - -.mytheme .v-menubar > .v-menubar-menuitem:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-menubar > .v-menubar-menuitem:hover { - zoom: 1; -} - -.mytheme .v-menubar > .v-menubar-menuitem:hover:before { - background-color: rgba(186, 186, 186, 0.1); - border: none; -} - -.mytheme .v-menubar > .v-menubar-menuitem:active:before { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-menubar > .v-menubar-menuitem .v-icon { - margin: 0 4px 0 -4px; - cursor: inherit; -} - -.mytheme .v-menubar > .v-menubar-menuitem[class*="-icon-only"] { - width: 37px; - padding: 0; -} - -.mytheme .v-menubar > .v-menubar-menuitem[class*="-icon-only"] .v-icon { - margin: 0; -} - -.mytheme .v-menubar > .v-menubar-menuitem-checked { - -webkit-box-shadow: none; - box-shadow: none; - background-color: #ededed; - background-image: -webkit-linear-gradient(bottom, #ededed 2%, #e9e9e9 98%); - background-image: linear-gradient(to top,#ededed 2%, #e9e9e9 98%); - color: #181818; -} - -.mytheme .v-disabled > .v-menubar-menuitem, .mytheme .v-menubar > .v-menubar-menuitem-disabled { - cursor: default; -} - -.mytheme .v-disabled > .v-menubar-menuitem:before, .mytheme .v-menubar > .v-menubar-menuitem-disabled:before { - display: none; -} - -.mytheme .v-menubar-menuitem-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-menubar > .v-menubar-menuitem-selected { - color: #ecf2f8; - - - - border-radius: 0; - border: 1px solid #1362b1; - border-top-color: #156ab3; - border-bottom-color: #1156a8; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - -webkit-box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca; - box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - border-top-width: 0; - border-left-width: 0; - border-bottom-width: 0; - z-index: 2; -} - -.mytheme .v-menubar > .v-menubar-menuitem-selected:hover:before { - background: none; -} - -.mytheme .v-menubar .v-menubar-submenu-indicator { - display: none; -} - -.mytheme .v-menubar .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:after { - font-family: ThemeIcons; - content: "\f078"; - font-size: 0.7em; - vertical-align: 0.15em; - margin: 0 -0.2em 0 0.5em; - opacity: 0.5; -} - -.mytheme .v-menubar .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:empty:after { - margin-left: -0.2em; -} - -.mytheme .v-menubar-popup { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - padding: 4px 4px; - margin: 5px 0 0 1px !important; -} - -.mytheme .v-menubar-popup[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.mytheme .v-menubar-popup[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.mytheme .v-menubar-popup .v-menubar-submenu { - outline: none; -} - -.mytheme .v-menubar-popup .v-menubar-menuitem { - display: block; - cursor: pointer; - line-height: 27px; - padding: 0 20px 0 10px; - border-radius: 3px; - font-weight: 400; - white-space: nowrap; - position: relative; - padding-left: 32px; - padding-right: 37px; - position: relative; -} - -.mytheme .v-menubar-popup .v-menubar-menuitem:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: #0957a6; - opacity: 0.15; - filter: alpha(opacity=15.0) ; - pointer-events: none; - border-radius: inherit; -} - -.mytheme .v-menubar-popup .v-menubar-menuitem .v-icon { - max-height: 27px; - margin-right: 5px; - min-width: 1em; -} - -.mytheme .v-menubar-popup .v-menubar-submenu-indicator { - display: none; -} - -.mytheme .v-menubar-popup .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:after { - position: absolute; - right: 10px; - font-family: ThemeIcons; - content: "\f054"; - line-height: 29px; -} - -.mytheme .v-menubar-popup .v-menubar-menuitem-selected { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: #ecf2f8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-menubar-popup .v-menubar-separator { - display: block; - margin: 4px 0; - height: 0; - overflow: hidden; - border-bottom: 1px solid #e4e4e4; -} - -.mytheme .v-menubar-popup [class*="checked"] .v-menubar-menuitem-caption:before { - content: "\f00c"; - font-family: ThemeIcons; - position: absolute; - left: 10px; -} - -.mytheme .v-menubar-popup [class*="unchecked"] .v-menubar-menuitem-caption:before { - content: ""; -} - -.mytheme .v-menubar-popup [class*="disabled"] { - cursor: default; -} - -.mytheme .v-menubar-small { - height: 31px; - padding: 0 14px; - - font-weight: 400; - - cursor: default; - border-radius: 4px; - padding: 0; - text-align: left; - line-height: 29px; - font-size: 14px; -} - -.mytheme .v-menubar-small:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-menubar-small > .v-menubar-menuitem { - padding: 0 12px; -} - -.mytheme .v-menubar-small > .v-menubar-menuitem[class*="-icon-only"] { - width: 31px; -} - -.mytheme .v-menubar-borderless { - border: none; - border-radius: 0; - padding: 1px; - -webkit-box-shadow: none; - box-shadow: none; - text-shadow: none; - background: transparent; - color: inherit; -} - -.mytheme .v-menubar-borderless:focus:after { - display: none; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem { - -webkit-box-shadow: none; - box-shadow: none; - border: none; - margin-right: 1px; - border-radius: 4px; - color: #197de1; - padding: 0 12px; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem:first-child, .mytheme .v-menubar-borderless .v-menubar-menuitem:last-child, .mytheme .v-menubar-borderless .v-menubar-menuitem:first-child:last-child { - border-radius: 4px; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem:before { - content: none; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem:hover { - color: #4396ea; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem:active { - color: inherit; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem-checked, .mytheme .v-menubar-borderless .v-menubar-menuitem-checked:first-child { - border: 1px solid #c5c5c5; - color: #197de1; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .mytheme .v-menubar-borderless .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { - position: relative; - top: -1px; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem-selected { - color: #ecf2f8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem-selected:hover { - color: #ecf2f8; -} - -.mytheme .v-menubar-borderless .v-menubar-menuitem-disabled, .mytheme .v-menubar-borderless .v-menubar-menuitem-disabled:hover { - color: inherit; -} - -.mytheme .v-radiobutton { - position: relative; - line-height: 19px; - white-space: nowrap; -} - -.mytheme .v-radiobutton.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-radiobutton { - padding-left: 25px; -} - -:root .mytheme .v-radiobutton label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-radiobutton > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-radiobutton > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-radiobutton > input ~ label:before, :root .mytheme .v-radiobutton > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 19px; - height: 19px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 13px; - text-align: center; -} - -:root .mytheme .v-radiobutton > input ~ label:before { - height: 18.5px; - padding: 0 9px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 19px; -} - -:root .mytheme .v-radiobutton > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-radiobutton > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-radiobutton > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-radiobutton > .v-icon, .mytheme .v-radiobutton > label .v-icon { - margin: 0 6px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-radiobutton.v-disabled > label, .mytheme .v-radiobutton.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-radiobutton.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-radiobutton.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-radiobutton.v-readonly > label, .mytheme .v-radiobutton.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-radiobutton.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-radiobutton.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-radiobutton.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -:root .mytheme .v-radiobutton > input:checked ~ label:after { - width: 7px; - height: 7px; - top: 6px; - left: 6px; - background: #197de1; -} - -:root .mytheme .v-radiobutton > input ~ label:before, :root .mytheme .v-radiobutton > input ~ label:after { - border-radius: 50%; - content: ""; -} - -.mytheme .v-select-optiongroup .v-radiobutton, .mytheme .v-select-optiongroup .v-checkbox { - display: block; - margin: 9px 16px 0 0; -} - -.mytheme .v-select-optiongroup .v-radiobutton:first-child, .mytheme .v-select-optiongroup .v-checkbox:first-child { - margin-top: 6px; -} - -.mytheme .v-select-optiongroup .v-radiobutton:last-child, .mytheme .v-select-optiongroup .v-checkbox:last-child { - margin-bottom: 6px; -} - -.mytheme .v-select-optiongroup.v-has-width label { - white-space: normal; -} - -.mytheme .v-select-optiongroup-small { - font-size: 14px; -} - -.mytheme .v-select-optiongroup-small .v-checkbox { - position: relative; - line-height: 16px; - white-space: nowrap; -} - -.mytheme .v-select-optiongroup-small .v-checkbox.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox { - padding-left: 21px; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox > input ~ label:before, :root .mytheme .v-select-optiongroup-small .v-checkbox > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 16px; - height: 16px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 11px; - text-align: center; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox > input ~ label:before { - height: 15.5px; - padding: 0 7px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 16px; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-select-optiongroup-small .v-checkbox > .v-icon, .mytheme .v-select-optiongroup-small .v-checkbox > label .v-icon { - margin: 0 5px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-select-optiongroup-small .v-checkbox.v-disabled > label, .mytheme .v-select-optiongroup-small .v-checkbox.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-select-optiongroup-small .v-checkbox.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-select-optiongroup-small .v-checkbox.v-readonly > label, .mytheme .v-select-optiongroup-small .v-checkbox.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-select-optiongroup-small .v-checkbox.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-select-optiongroup-small .v-checkbox.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton { - position: relative; - line-height: 16px; - white-space: nowrap; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton { - padding-left: 21px; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .mytheme .v-select-optiongroup-small .v-radiobutton > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 16px; - height: 16px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 11px; - text-align: center; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input ~ label:before { - height: 15.5px; - padding: 0 7px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 16px; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton > .v-icon, .mytheme .v-select-optiongroup-small .v-radiobutton > label .v-icon { - margin: 0 5px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton.v-disabled > label, .mytheme .v-select-optiongroup-small .v-radiobutton.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton.v-readonly > label, .mytheme .v-select-optiongroup-small .v-radiobutton.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { - width: 6px; - height: 6px; - top: 5px; - left: 5px; - background: #197de1; -} - -:root .mytheme .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .mytheme .v-select-optiongroup-small .v-radiobutton > input ~ label:after { - border-radius: 50%; - content: ""; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton, .mytheme .v-select-optiongroup-small .v-checkbox { - display: block; - margin: 8px 16px 0 0; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton:first-child, .mytheme .v-select-optiongroup-small .v-checkbox:first-child { - margin-top: 5px; -} - -.mytheme .v-select-optiongroup-small .v-radiobutton:last-child, .mytheme .v-select-optiongroup-small .v-checkbox:last-child { - margin-bottom: 5px; -} - -.mytheme .v-select-optiongroup-small.v-has-width label { - white-space: normal; -} - -.mytheme .v-select-optiongroup-large { - font-size: 20px; -} - -.mytheme .v-select-optiongroup-large .v-checkbox { - position: relative; - line-height: 22px; - white-space: nowrap; -} - -.mytheme .v-select-optiongroup-large .v-checkbox.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox { - padding-left: 29px; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox > input ~ label:before, :root .mytheme .v-select-optiongroup-large .v-checkbox > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 22px; - height: 22px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 15px; - text-align: center; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox > input ~ label:before { - height: 22px; - padding: 0 10px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 22px; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-select-optiongroup-large .v-checkbox > .v-icon, .mytheme .v-select-optiongroup-large .v-checkbox > label .v-icon { - margin: 0 7px 0 4px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-select-optiongroup-large .v-checkbox.v-disabled > label, .mytheme .v-select-optiongroup-large .v-checkbox.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-select-optiongroup-large .v-checkbox.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-select-optiongroup-large .v-checkbox.v-readonly > label, .mytheme .v-select-optiongroup-large .v-checkbox.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-select-optiongroup-large .v-checkbox.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-select-optiongroup-large .v-checkbox.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton { - position: relative; - line-height: 22px; - white-space: nowrap; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton.v-has-width label { - white-space: normal; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton { - padding-left: 29px; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input:focus ~ label:before { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .mytheme .v-select-optiongroup-large .v-radiobutton > input ~ label:after { - content: ""; - display: inline-block; - box-sizing: border-box; - width: 22px; - height: 22px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 15px; - text-align: center; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input ~ label:before { - height: 22px; - padding: 0 10px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 22px; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { - color: #197de1; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton > .v-icon, .mytheme .v-select-optiongroup-large .v-radiobutton > label .v-icon { - margin: 0 7px 0 4px; - min-width: 1em; - cursor: pointer; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton.v-disabled > label, .mytheme .v-select-optiongroup-large .v-radiobutton.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton.v-disabled > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton.v-disabled > input:active ~ label:after { - background: transparent; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton.v-readonly > label, .mytheme .v-select-optiongroup-large .v-radiobutton.v-readonly > .v-icon { - cursor: default; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton.v-readonly > label > .v-icon { - cursor: default; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { - width: 8px; - height: 8px; - top: 7px; - left: 7px; - background: #197de1; -} - -:root .mytheme .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .mytheme .v-select-optiongroup-large .v-radiobutton > input ~ label:after { - border-radius: 50%; - content: ""; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton, .mytheme .v-select-optiongroup-large .v-checkbox { - display: block; - margin: 11px 16px 0 0; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton:first-child, .mytheme .v-select-optiongroup-large .v-checkbox:first-child { - margin-top: 7px; -} - -.mytheme .v-select-optiongroup-large .v-radiobutton:last-child, .mytheme .v-select-optiongroup-large .v-checkbox:last-child { - margin-bottom: 7px; -} - -.mytheme .v-select-optiongroup-large.v-has-width label { - white-space: normal; -} - -.mytheme .v-select-optiongroup-horizontal { - white-space: nowrap; -} - -.mytheme .v-select-optiongroup-horizontal .v-radiobutton, .mytheme .v-select-optiongroup-horizontal .v-checkbox { - display: inline-block; -} - -.mytheme .v-select-optiongroup-horizontal.v-has-width { - white-space: normal; -} - -.mytheme .v-select-optiongroup-horizontal.v-has-width label { - white-space: nowrap; -} - -.mytheme .v-link { - cursor: pointer; - color: #197de1; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-link:hover { - color: #4396ea; -} - -.mytheme .v-link.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-link a { - cursor: pointer; - color: #197de1; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - cursor: inherit; - color: inherit; - text-decoration: inherit; - -webkit-transition: inherit; - -moz-transition: inherit; - transition: inherit; -} - -.mytheme .v-link a:hover { - color: #4396ea; -} - -.mytheme .v-link a.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-link .v-icon { - cursor: inherit; -} - -.mytheme .v-link-small { - font-size: 14px; -} - -.mytheme .v-link-large { - font-size: 20px; -} - -.mytheme .v-window { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.09098); - padding: 0; - min-width: 148px !important; - min-height: 37px !important; - white-space: nowrap; - overflow: hidden !important; - -webkit-transition: width 200ms, height 200ms, top 200ms, left 200ms; - -moz-transition: width 200ms, height 200ms, top 200ms, left 200ms; - transition: width 200ms, height 200ms, top 200ms, left 200ms; -} - -.mytheme .v-window[class*="animate-in"] { - -webkit-animation: valo-animate-in-fade 140ms; - -moz-animation: valo-animate-in-fade 140ms; - animation: valo-animate-in-fade 140ms; -} - -.mytheme .v-window[class*="animate-out"] { - -webkit-animation: valo-animate-out-scale-down-fade 100ms; - -moz-animation: valo-animate-out-scale-down-fade 100ms; - animation: valo-animate-out-scale-down-fade 100ms; -} - -.mytheme .v-window.v-window-animate-in { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.mytheme .v-window-modalitycurtain { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #222; - background-image: -webkit-radial-gradient(50% 50%, circle, #222, #0e0e0e); - background-image: radial-gradient( circle at 50% 50%, #222, #0e0e0e); - opacity: 0.72; - filter: alpha(opacity=72) ; - -webkit-animation: valo-animate-in-fade 400ms 100ms backwards; - -moz-animation: valo-animate-in-fade 400ms 100ms backwards; - animation: valo-animate-in-fade 400ms 100ms backwards; -} - -.v-op12 .mytheme .v-window-modalitycurtain { - -webkit-animation: none; - -moz-animation: none; - animation: none; -} - -.mytheme .v-window-draggingCurtain { - position: fixed !important; -} - -.mytheme .v-window-resizingCurtain + .v-window, .mytheme .v-window-draggingCurtain + .v-window { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.mytheme .v-window-outerheader { - cursor: move; - position: absolute; - z-index: 2; - top: 0; - left: 0; - right: 0; - -webkit-transform: translatez(0); - -moz-transform: translatez(0); - -ms-transform: translatez(0); - -o-transform: translatez(0); - transform: translatez(0); -} - -.mytheme .v-window-outerheader:after { - content: ""; - position: absolute; - bottom: -1px; - right: 0; - left: 0; - height: 0; - border-top: 1px solid #dfdfdf; - border-color: rgba(197, 197, 197, 0.5); -} - -.mytheme .v-window-header { - line-height: 36px; - padding-left: 12px; - margin-right: 74px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: #7e7e7e; -} - -.mytheme .v-window-restorebox-disabled ~ .v-window-closebox ~ .v-window-header, .mytheme .v-window-maximizebox-disabled ~ .v-window-closebox ~ .v-window-header { - margin-right: 37px; -} - -.mytheme .v-window-restorebox-disabled ~ .v-window-closebox-disabled ~ .v-window-header, .mytheme .v-window-maximizebox-disabled ~ .v-window-closebox-disabled ~ .v-window-header { - margin-right: 12px; -} - -.mytheme .v-window-closebox, .mytheme .v-window-maximizebox, .mytheme .v-window-restorebox { - position: absolute; - z-index: 3; - top: 0; - right: 0; - box-sizing: border-box; - width: 33px; - height: 36px; - background-color: white; - line-height: 34px; - text-align: center; - cursor: pointer; - font-size: 21px; - color: #999999; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-window-closebox:focus, .mytheme .v-window-maximizebox:focus, .mytheme .v-window-restorebox:focus { - outline: none; -} - -.mytheme .v-window-closebox:hover, .mytheme .v-window-maximizebox:hover, .mytheme .v-window-restorebox:hover { - opacity: 1; - filter: none ; - color: #197de1; -} - -.mytheme .v-window-closebox:active, .mytheme .v-window-maximizebox:active, .mytheme .v-window-restorebox:active { - color: inherit; -} - -.mytheme .v-window-closebox:focus::after { - content: ""; - position: absolute; - top: 6px; - right: 6px; - bottom: 6px; - left: 2px; - border-radius: 4px; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-window-maximizebox:focus::after, .mytheme .v-window-restorebox:focus::after { - content: ""; - position: absolute; - top: 6px; - right: 2px; - bottom: 6px; - left: 6px; - border-radius: 4px; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-window-closebox { - padding-right: 4px; - border-radius: 0 4px 0 4px; -} - -.mytheme .v-window-closebox:before { - content: "\00d7"; -} - -.mytheme .v-window-maximizebox, .mytheme .v-window-restorebox { - right: 33px; - padding-left: 4px; - border-radius: 0 0 0 4px; -} - -.mytheme .v-window-maximizebox + .v-window-closebox, .mytheme .v-window-restorebox + .v-window-closebox { - border-bottom-left-radius: 0; -} - -.mytheme .v-window-closebox-disabled, .mytheme .v-window-resizebox-disabled, .mytheme .v-window-restorebox-disabled, .mytheme .v-window-maximizebox-disabled { - display: none; -} - -.mytheme .v-window-closebox-disabled + .v-window-closebox, .mytheme .v-window-resizebox-disabled + .v-window-closebox, .mytheme .v-window-restorebox-disabled + .v-window-closebox, .mytheme .v-window-maximizebox-disabled + .v-window-closebox { - width: 37px; - padding-right: 0; - border-bottom-left-radius: 4px; -} - -.mytheme .v-window-closebox-disabled + .v-window-closebox:focus::after, .mytheme .v-window-resizebox-disabled + .v-window-closebox:focus::after, .mytheme .v-window-restorebox-disabled + .v-window-closebox:focus::after, .mytheme .v-window-maximizebox-disabled + .v-window-closebox:focus::after { - left: 6px; -} - -.mytheme .v-window-maximizebox:before { - content: "+"; -} - -.mytheme .v-window-restorebox:before { - content: "\2013"; -} - -.mytheme .v-window > .popupContent, .mytheme .v-window-wrap, .mytheme .v-window-contents, .mytheme .v-window-contents > .v-scrollable { - height: 100%; -} - -.mytheme .v-window-contents { - box-sizing: border-box; - border-radius: 4px; - margin-top: 0 !important; -} - -.mytheme .v-window-contents > .v-scrollable { - position: relative; -} - -.mytheme .v-window-contents > .v-scrollable > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-top"] > tbody > [class*="firstrow"] > td { - padding-top: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-bottom"] > tbody > [class*="lastrow"] > td { - padding-bottom: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] { - padding-left: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - left: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] { - padding-right: 12px; -} - -.mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .mytheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - right: 12px; -} - -.mytheme .v-window-contents > .v-scrollable:focus { - outline: none; -} - -.mytheme .v-window-contents > .v-scrollable:before { - content: ""; - position: absolute; - z-index: 2; - top: 0; - height: 0; - border-top: 1px solid white; - left: 0; - right: 0; -} - -.mytheme .v-window-contents > .v-scrollable .v-panel-captionwrap:after { - border-color: #dfdfdf; -} - -.mytheme .v-window-contents > .v-scrollable .v-panel-content:before { - border-color: white; -} - -.mytheme .v-window-footer { - height: 0; -} - -.mytheme .v-window-resizebox { - position: absolute; - z-index: 1000; - right: 0; - bottom: 0; - width: 19px; - height: 19px; - cursor: nwse-resize; -} - -.mytheme .v-window-modalitycurtain:active ~ .v-window { - -webkit-animation: none; - -moz-animation: none; - animation: none; -} - -.mytheme .v-window-top-toolbar > .v-widget, .mytheme .v-window-bottom-toolbar > .v-widget { - vertical-align: top; -} - -.mytheme .v-window-top-toolbar .v-label, .mytheme .v-window-bottom-toolbar .v-label { - line-height: 36px; -} - -.mytheme .v-window-top-toolbar .v-spacing, .mytheme .v-window-bottom-toolbar .v-spacing { - width: 6px; -} - -.mytheme .v-window-top-toolbar.v-layout { - padding: 7px 12px; - position: relative; - z-index: 2; - border-top: 1px solid #dfdfdf; - border-bottom: 1px solid #dfdfdf; - background-color: #fafafa; -} - -.mytheme .v-window-top-toolbar.v-menubar { - margin: 12px 12px 6px; -} - -.mytheme .v-window-top-toolbar.v-menubar-borderless { - padding-left: 6px; - padding-right: 6px; - margin: 5px 0; -} - -.mytheme .v-window-bottom-toolbar.v-layout { - padding: 7px 12px; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #f0f0f0 0, #fafafa 4px); - background-image: linear-gradient(to bottom,#f0f0f0 0, #fafafa 4px); - border-top: 1px solid #dfdfdf; - border-radius: 0 0 4px 4px; -} - -.mytheme .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-layout { - box-sizing: content-box; - margin: -12px -12px 0; -} - -.mytheme .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar { - margin: 0; -} - -.mytheme .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar-borderless { - margin: -6px -6px 0; - padding: 0; -} - -.mytheme .v-margin-left.v-margin-right.v-margin-bottom .v-window-bottom-toolbar.v-layout { - box-sizing: content-box; - margin: 0 -12px -12px; -} - -.mytheme .v-tree { - position: relative; - white-space: nowrap; -} - -.mytheme .v-tree:focus { - outline: none; -} - -.mytheme .v-tree-node:before { - content: ""; - position: absolute; - display: inline-block; - z-index: 3; - width: 1.9em; - height: 28px; - cursor: pointer; - background: red; - opacity: 0; -} - -.mytheme .v-tree-node-caption { - height: 28px; - line-height: 27px; - overflow: hidden; - white-space: nowrap; - vertical-align: top; -} - -.mytheme .v-tree-node-caption > div { - display: inline-block; - width: 100%; - position: relative; - z-index: 2; -} - -.mytheme .v-tree-node-caption > div:before { - content: "\f0da"; - font-family: ThemeIcons; - display: inline-block; - width: 0.5em; - text-align: center; - margin: 0 0.6em 0 0.8em; - -webkit-transition: all 100ms; - -moz-transition: all 100ms; - transition: all 100ms; -} - -.mytheme .v-tree-node-caption span { - padding-right: 28px; - cursor: pointer; - display: inline-block; - width: 100%; -} - -.v-ie .mytheme .v-tree-node-caption span { - width: auto; -} - -.mytheme .v-tree-node-caption .v-icon { - padding-right: 0; - width: auto; - min-width: 1em; -} - -.mytheme .v-tree-node-caption:after { - content: ""; - display: block; - vertical-align: top; - position: absolute; - z-index: 1; - left: 0; - margin-top: -28px; - width: 100%; - height: 28px; - border-radius: 4px; - opacity: 0; - -webkit-transition: opacity 120ms; - -moz-transition: opacity 120ms; - transition: opacity 120ms; -} - -.mytheme .v-tree-node-expanded > .v-tree-node-caption > div:before { - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); - content: "\f0da"; - font-family: ThemeIcons; -} - -.mytheme .v-tree-node-leaf:before, .mytheme .v-tree-node-leaf > .v-tree-node-caption > div:before { - visibility: hidden; -} - -.mytheme .v-tree-node-focused:after { - opacity: 1; - border: 1px solid #197de1; -} - -.mytheme .v-tree-node-selected { - color: #ecf2f8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-tree-node-selected:after { - opacity: 1; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - border: none; -} - -.mytheme .v-tree-node-children { - padding-left: 19px; -} - -.mytheme .v-tree-node-drag-top:before, .mytheme .v-tree-node-drag-bottom:after, .mytheme .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded > .v-tree-node-children:before { - content: "\2022"; - display: block; - position: absolute; - height: 2px; - width: 100%; - background: #197de1; - font-size: 32px; - line-height: 2px; - color: #197de1; - text-indent: -4px; - text-shadow: 0 0 1px #fafafa, 0 0 1px #fafafa; - opacity: 1; - visibility: visible; -} - -.mytheme .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded:after { - content: none; -} - -.mytheme .v-tree-node-caption-drag-center { - -webkit-box-shadow: 0 0 0 2px #197de1; - box-shadow: 0 0 0 2px #197de1; - position: relative; - border-radius: 4px; -} - -.v-ff .mytheme .v-tree-node-drag-top:before, .v-ff .mytheme .v-tree-node-drag-bottom:after { - line-height: 1px; -} - -.mytheme .v-tree8 { - position: relative; -} - -.mytheme .v-tree8-scroller { - position: absolute; - z-index: 1; - outline: none; - box-sizing: border-box; -} - -.mytheme .v-tree8-scroller-horizontal { - left: 0; - right: 0; - bottom: 0; - overflow-y: hidden; - -ms-overflow-y: hidden; -} - -.mytheme .v-tree8-scroller-vertical { - right: 0; - top: 0; - bottom: 0; - overflow-x: hidden; - -ms-overflow-x: hidden; -} - -.mytheme .v-tree8-tablewrapper { - position: absolute; - overflow: hidden; - box-sizing: border-box; - z-index: 5; -} - -.mytheme .v-tree8-tablewrapper > table { - border-spacing: 0; - table-layout: fixed; - width: inherit; -} - -.mytheme .v-tree8-header-deco, .mytheme .v-tree8-footer-deco { - position: absolute; - right: 0; - box-sizing: border-box; -} - -.mytheme .v-tree8-horizontal-scrollbar-deco { - position: absolute; - bottom: 0; - left: 0; - right: 0; - box-sizing: border-box; -} - -.mytheme .v-tree8-header, .mytheme .v-tree8-body, .mytheme .v-tree8-footer { - position: absolute; - left: 0; - width: inherit; - z-index: 10; -} - -.mytheme .v-tree8-header, .mytheme .v-tree8-header-deco { - top: 0; -} - -.mytheme .v-tree8-footer, .mytheme .v-tree8-footer-deco { - bottom: 0; -} - -.mytheme .v-tree8-body { - -ms-touch-action: none; - touch-action: none; - z-index: 0; - top: 0; -} - -.mytheme .v-tree8-body .v-tree8-row { - position: absolute; - top: 0; - left: 0; -} - -.mytheme .v-tree8-body .v-tree8-header > .v-tree8-row { - position: relative; -} - -.mytheme .v-tree8-row { - display: block; -} - -.mytheme .v-tree8-row > td, .mytheme .v-tree8-row > th { - background-color: white; -} - -.mytheme .v-tree8-row { - width: inherit; -} - -.mytheme .v-tree8-cell { - display: block; - float: left; - padding: 2px; - white-space: nowrap; - box-sizing: border-box; - overflow: hidden; - font-size: 16px; -} - -.mytheme .v-tree8-cell.frozen { - position: relative; - z-index: 1; -} - -.mytheme .v-tree8-spacer { - position: absolute; - display: block; - background-color: white; -} - -.mytheme .v-tree8-spacer > td { - width: 100%; - height: 100%; - box-sizing: border-box; -} - -.mytheme .v-tree8 { - outline: none; -} - -.mytheme .v-tree8-scroller-vertical, .mytheme .v-tree8-scroller-horizontal { - border: 1px solid #d4d4d4; -} - -.mytheme .v-tree8-scroller-vertical { - border-left: none; -} - -.mytheme .v-tree8-scroller-horizontal { - border-top: none; -} - -.mytheme .v-tree8-tablewrapper { - border: 1px solid #d4d4d4; -} - -.mytheme .v-tree8 .header-drag-table { - border-spacing: 0; - position: relative; - table-layout: fixed; - width: inherit; -} - -.mytheme .v-tree8 .header-drag-table .v-tree8-header { - position: absolute; -} - -.mytheme .v-tree8 .header-drag-table .v-tree8-header > .v-tree8-cell { - border: 1px solid #d4d4d4; - margin-top: -10px; - opacity: 0.9; - filter: alpha(opacity=90); - z-index: 30000; -} - -.mytheme .v-tree8 .header-drag-table .v-tree8-header > .v-tree8-drop-marker { - background-color: #197de1; - position: absolute; - width: 3px; -} - -.mytheme .v-tree8-sidebar.v-contextmenu { - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 0; - position: absolute; - top: 0; - right: 0; - background-color: #fafafa; - border: 1px solid #d4d4d4; - padding: 0; - z-index: 5; -} - -.mytheme .v-tree8-sidebar.v-contextmenu.v-tree8-sidebar-popup { - right: auto; -} - -.mytheme .v-tree8-sidebar.v-contextmenu .v-tree8-sidebar-button { - background: transparent; - border: none; - color: inherit; - cursor: pointer; - outline: none; - padding: 0 4px; - text-align: right; - line-height: 1; -} - -.mytheme .v-tree8-sidebar.v-contextmenu .v-tree8-sidebar-button[disabled] { - cursor: default; -} - -.mytheme .v-tree8-sidebar.v-contextmenu .v-tree8-sidebar-button::-moz-focus-inner { - border: 0; -} - -.mytheme .v-tree8-sidebar.v-contextmenu .v-tree8-sidebar-button:after { - content: "\f0c9"; - display: block; - font-family: ThemeIcons, sans-serif; - font-size: 14px; -} - -.mytheme .v-tree8-sidebar.v-contextmenu.closed { - border-radius: 0; -} - -.mytheme .v-tree8-sidebar.v-contextmenu.open .v-tree8-sidebar-button { - width: 100%; -} - -.mytheme .v-tree8-sidebar.v-contextmenu.open .v-tree8-sidebar-button:after { - content: "\f0c9"; - font-size: 14px; - line-height: 1; -} - -.v-ie .mytheme .v-tree8-sidebar.v-contextmenu.open .v-tree8-sidebar-button { - vertical-align: middle; -} - -.mytheme .v-tree8-sidebar.v-contextmenu .v-tree8-sidebar-content { - padding: 4px 0; - overflow-y: auto; - overflow-x: hidden; -} - -.mytheme .v-tree8-sidebar.v-contextmenu .v-tree8-sidebar-content .gwt-MenuBar .gwt-MenuItem .column-hiding-toggle { - text-shadow: none; -} - -.mytheme .v-tree8-cell { - background-color: white; - padding: 0 18px; - line-height: 37px; - text-overflow: ellipsis; -} - -.mytheme .v-tree8-cell > * { - line-height: 1.55; - vertical-align: middle; -} - -.mytheme .v-tree8-cell > div { - display: inline-block; -} - -.mytheme .v-tree8-cell.frozen { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; - position: relative; - z-index: 11; -} - -.mytheme .v-tree8-cell.frozen + th, .mytheme .v-tree8-cell.frozen + td { - border-left: none; -} - -.mytheme .v-tree8-cell div.component-wrap { - width: 100%; -} - -.mytheme .v-tree8-row > td, .mytheme .v-tree8-editor-cells > div { - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-tree8-row > td:first-child, .mytheme .v-tree8-editor-cells > div:first-child { - border-left: none; -} - -.mytheme .v-tree8-editor-cells.frozen > div { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; - border-left: none; -} - -.mytheme .v-tree8-row-stripe > td { - background-color: #f5f5f5; -} - -.mytheme .v-tree8-row-selected > td { - background: #197de1; -} - -.mytheme .v-tree8-row-focused > td { - -} - -.mytheme .v-tree8-header th { - position: relative; - background-color: #fafafa; - font-size: 14px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; - - text-align: left; -} - -.mytheme .v-tree8-header th:first-child { - border-left: none; -} - -.mytheme .v-tree8-header .sort-asc, .mytheme .v-tree8-header .sort-desc { - padding-right: 35px; -} - -.mytheme .v-tree8-header .sort-asc:after, .mytheme .v-tree8-header .sort-desc:after { - font-family: ThemeIcons, sans-serif; - content: "\f0de" " " attr(sort-order); - position: absolute; - right: 18px; - font-size: 12px; -} - -.mytheme .v-tree8-header .sort-desc:after { - content: "\f0dd" " " attr(sort-order); -} - -.mytheme .v-tree8-column-resize-handle { - position: absolute; - width: 36px; - right: -18px; - top: 0px; - bottom: 0px; - cursor: col-resize; - z-index: 10; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.mytheme .v-tree8-column-resize-simple-indicator { - position: absolute; - width: 3px; - top: 0px; - left: 18px; - z-index: 9001; - background: #fff; - box-shadow: 0px 0px 5px #000; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.mytheme .v-tree8-footer td { - background-color: #fafafa; - font-size: 14px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - border-bottom: none; - -} - -.mytheme .v-tree8-footer td:first-child { - border-left: none; -} - -.mytheme .v-tree8-header .v-tree8-cell, .mytheme .v-tree8-footer .v-tree8-cell { - overflow: visible; -} - -.mytheme .v-tree8-column-header-content, .mytheme .v-tree8-column-footer-content { - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 37px; - vertical-align: baseline; -} - -.mytheme .v-tree8-header-deco { - border-top: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.mytheme .v-tree8-footer-deco { - border-bottom: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.mytheme .v-tree8-horizontal-scrollbar-deco { - background-color: #fafafa; - border: 1px solid #d4d4d4; - border-top: none; -} - -.mytheme .v-tree8-cell-focused { - position: relative; -} - -.mytheme .v-tree8-cell-focused:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border: 2px solid #197de1; - display: none; - pointer-events: none; -} - -.mytheme .v-tree8:focus .v-tree8-cell-focused:before { - display: block; -} - -.mytheme .v-tree8.v-disabled:focus .v-tree8-cell-focused:before { - display: none; -} - -.mytheme .v-tree8-editor { - position: absolute; - z-index: 20; - overflow: hidden; - left: 0; - right: 0; - border: 1px solid #d4d4d4; - box-sizing: border-box; - -moz-box-sizing: border-box; - margin-top: -1px; - -webkit-box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); -} - -.mytheme .v-tree8-editor.unbuffered .v-tree8-editor-footer { - width: 100%; -} - -.mytheme .v-tree8-editor-cells { - position: relative; - white-space: nowrap; -} - -.mytheme .v-tree8-editor-cells.frozen { - z-index: 2; -} - -.mytheme .v-tree8-editor-cells > div { - display: inline-block; - box-sizing: border-box; - vertical-align: middle; - background: white; -} - -.mytheme .v-tree8-editor-cells > div:first-child { - border-left: none; -} - -.mytheme .v-tree8-editor-cells > div > * { - vertical-align: middle; - display: inline-block; -} - -.mytheme .v-tree8-editor-cells > div .v-filterselect { - padding-left: 0; -} - -.mytheme .v-tree8-editor-cells > div input[type="text"], .mytheme .v-tree8-editor-cells > div input[type="text"].v-filterselect-input, .mytheme .v-tree8-editor-cells > div input[type="password"] { - padding-left: 18px; -} - -.mytheme .v-tree8-editor-cells > div input[type="text"]:not(.v-filterselect-input), .mytheme .v-tree8-editor-cells > div input[type="password"] { - padding-right: 9px; -} - -.mytheme .v-tree8-editor-cells > div input[type="checkbox"] { - margin-left: 18px; -} - -.mytheme .v-tree8-editor-cells > div .v-textfield, .mytheme .v-tree8-editor-cells > div .v-datefield, .mytheme .v-tree8-editor-cells > div .v-filterselect { - min-width: 100%; - max-width: 100%; - min-height: 100%; - max-height: 100%; -} - -.mytheme .v-tree8-editor-cells > div .v-select, .mytheme .v-tree8-editor-cells > div .v-select-select { - min-width: 100%; - max-width: 100%; -} - -.mytheme .v-tree8-editor-cells > div.not-editable.v-tree8-cell { - float: none; -} - -.mytheme .v-tree8-editor-cells .error::before { - position: absolute; - display: block; - height: 0; - width: 0; - content: ""; - border-top: 5px solid red; - border-right: 5px solid transparent; -} - -.mytheme .v-tree8-editor-cells .error, .mytheme .v-tree8-editor-cells .error > input { - background-color: #fee; -} - -.mytheme .v-tree8-editor-footer { - display: table; - height: 37px; - border-top: 1px solid #d4d4d4; - margin-top: -1px; - background: white; - padding: 0 5px; -} - -.mytheme .v-tree8-editor-footer + .v-tree8-editor-cells > div { - border-bottom: none; - border-top: 1px solid #d4d4d4; -} - -.mytheme .v-tree8-editor-footer:first-child { - border-top: none; - margin-top: 0; - border-bottom: 1px solid #d4d4d4; - margin-bottom: -1px; -} - -.mytheme .v-tree8-editor-message, .mytheme .v-tree8-editor-buttons { - display: table-cell; - white-space: nowrap; - vertical-align: middle; -} - -.mytheme .v-tree8-editor-message { - width: 100%; - position: relative; -} - -.mytheme .v-tree8-editor-message > div { - position: absolute; - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 37px; - top: 0; -} - -.mytheme .v-tree8-editor-save { - margin-right: 4px; -} - -.mytheme .v-tree8-spacer { - padding-left: 1px; -} - -.mytheme .v-tree8-spacer > td { - display: block; - padding: 0; - background-color: white; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-tree8-spacer.stripe > td { - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-tree8-spacer-deco-container { - border-top: 1px solid transparent; - position: relative; - top: 0; - z-index: 5; -} - -.mytheme .v-tree8-spacer-deco { - top: 0; - left: 0; - width: 2px; - background-color: #197de1; - position: absolute; - height: 100%; - pointer-events: none; -} - -.mytheme .v-tree8-cell > .v-progressbar { - width: 100%; -} - -.mytheme .v-tree8 { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - background-color: #fafafa; -} - -.mytheme .v-tree8.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-tree8-header .v-tree8-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-tree8-header .v-tree8-cell.dragged { - opacity: 0.5; - filter: alpha(opacity=50) ; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} - -.mytheme .v-tree8-header .v-tree8-cell.dragged-column-header { - margin-top: -19px; -} - -.mytheme .v-tree8-footer .v-tree8-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-tree8-header-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-tree8-footer-deco, .mytheme .v-tree8-horizontal-scrollbar-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-tree8-row-selected > .v-tree8-cell { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: #c8dbed; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - border-color: #1d69b4; -} - -.mytheme .v-tree8-row-selected > .v-tree8-cell-focused:before { - border-color: #71b0ef; -} - -.mytheme .v-tree8-editor { - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - border-color: #197de1; -} - -.mytheme .v-tree8-editor-footer { - font-size: 14px; - padding: 0 6px; - background: #fafafa; - -webkit-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; -} - -.mytheme .v-tree8-editor-footer:first-child { - -webkit-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; -} - -.mytheme .v-tree8-editor-cells { - z-index: 1; -} - -.mytheme .v-tree8-editor-cells > div:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; -} - -.mytheme .v-tree8-editor-cells > div.not-editable.v-tree8-cell { - float: none; -} - -.mytheme .v-tree8-editor-cells > div .error::before { - border-top: 9px solid #ed473b; - border-right: 9px solid transparent; -} - -.mytheme .v-tree8-editor-cells > div .error, .mytheme .v-tree8-editor-cells > div .error > input { - background-color: #fffbfb; -} - -.mytheme .v-tree8-editor-cells > div .v-textfield, .mytheme .v-tree8-editor-cells > div .v-textfield-focus, .mytheme .v-tree8-editor-cells > div .v-datefield, .mytheme .v-tree8-editor-cells > div .v-datefield .v-textfield-focus, .mytheme .v-tree8-editor-cells > div .v-filterselect-input, .mytheme .v-tree8-editor-cells > div .v-filterselect-input:focus { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: inset 0 1px 0 #f2f2f2; - box-shadow: inset 0 1px 0 #f2f2f2; -} - -.mytheme .v-tree8-editor-cells > div input[type="text"].v-datefield-textfield { - padding-left: 44.4px; -} - -.mytheme .v-tree8-editor-cells > div .v-textfield-focus, .mytheme .v-tree8-editor-cells > div .v-datefield .v-textfield-focus, .mytheme .v-tree8-editor-cells > div .v-filterselect-input:focus { - position: relative; -} - -.mytheme .v-tree8-editor-cells > div .v-select { - padding-left: 9px; - padding-right: 9px; -} - -.mytheme .v-tree8-editor-cells > div .v-checkbox { - margin: 0 9px 0 18px; -} - -.mytheme .v-tree8-editor-cells > div .v-checkbox > input[type="checkbox"] { - margin-left: 0; -} - -.mytheme .v-tree8-editor-cells > div .v-checkbox > label { - white-space: nowrap; -} - -.mytheme .v-tree8-editor-message > div:before { - display: inline-block; - color: #ed473b; - font-weight: 600; - width: 19px; - text-align: center; - content: "!"; -} - -.mytheme .v-tree8-editor-save, .mytheme .v-tree8-editor-cancel { - cursor: pointer; - color: #197de1; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - font-weight: 400; - text-decoration: none; - border: none; - background: transparent; - padding: 6px 6px; - margin: 0; - outline: none; -} - -.mytheme .v-tree8-editor-save:hover, .mytheme .v-tree8-editor-cancel:hover { - color: #4396ea; -} - -.mytheme .v-tree8-editor-save.v-disabled, .mytheme .v-tree8-editor-cancel.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-tree8-spacer { - margin-top: -1px; -} - -.mytheme .v-tree8-sidebar.v-contextmenu.open .v-tree8-sidebar-content { - margin: 0 0 2px; - padding: 4px 4px 2px; - overflow-y: auto; - overflow-x: hidden; -} - -.mytheme .v-tree8-sidebar.v-contextmenu.closed { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-tree8-scroller::-webkit-scrollbar { - border: none; -} - -.mytheme .v-tree8-scroller::-webkit-scrollbar-thumb { - border-radius: 10px; - border: 4px solid transparent; - background: rgba(0, 0, 0, 0.3); - -webkit-background-clip: content-box; - background-clip: content-box; -} - -.mytheme .v-tree8-scroller-vertical::-webkit-scrollbar-thumb { - min-height: 30px; -} - -.mytheme .v-tree8-scroller-horizontal::-webkit-scrollbar-thumb { - min-width: 30px; -} - -.mytheme .v-tree8-row-drag-badge { - background-color: red; - color: white; - display: block; - width: 30px; - height: 30px; - border-radius: 10px; - line-height: 30px; - text-align: center; - float: left; -} - -.mytheme .v-tree8-row-drag-top, .mytheme .v-tree8-row-drag-bottom { - z-index: 100; -} - -.mytheme .v-tree8-row-drag-top:before, .mytheme .v-tree8-row-drag-bottom:after { - content: ""; - display: block; - position: absolute; - height: 2px; - width: 100%; - background: #197de1; - pointer-events: none; - border: none; -} - -.mytheme .v-tree8-row-drag-bottom:after { - bottom: -1px; -} - -.mytheme .v-tree8-row-drag-top:before { - top: -1px; -} - -.mytheme .v-tree8-row-drag-top:first-child:before { - top: 0; -} - -.mytheme .v-tree8-row-drag-center:after { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 2px; - border: 2px solid #197de1; - pointer-events: none; -} - -.mytheme .v-tree8-row-selected.v-tree8-row-drag-center:after { - border-color: #1463b3; -} - -.mytheme .v-tree8-row-selected.v-tree8-row-drag-top:before, .mytheme .v-tree8-row-selected.v-tree8-row-drag-bottom:after { - background: #1463b3; -} - -.mytheme .v-tree8-body-drag-top:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - pointer-events: none; - border: 2px solid #197de1; - z-index: 100; -} - -.mytheme .v-tree8-expander { - display: inline-block; - vertical-align: top; -} - -.mytheme .v-tree8-expander::before { - display: inline-block; - width: 1.5em; - text-align: center; - content: ""; -} - -.mytheme .v-tree8-expander.expanded::before { - content: "\f0d7"; - font-family: ThemeIcons; -} - -.mytheme .v-tree8-expander.collapsed::before { - content: "\f0da"; - font-family: ThemeIcons; -} - -.mytheme .v-tree8-expander.collapse-disabled::before { - opacity: 0.5; - filter: alpha(opacity=50) ; - cursor: default; -} - -.mytheme .v-tree8-node.depth-0 { - padding-left: 0em; -} - -.mytheme .v-tree8-node.depth-1 { - padding-left: 1em; -} - -.mytheme .v-tree8-node.depth-2 { - padding-left: 2em; -} - -.mytheme .v-tree8-node.depth-3 { - padding-left: 3em; -} - -.mytheme .v-tree8-node.depth-4 { - padding-left: 4em; -} - -.mytheme .v-tree8-node.depth-5 { - padding-left: 5em; -} - -.mytheme .v-tree8-node.depth-6 { - padding-left: 6em; -} - -.mytheme .v-tree8-node.depth-7 { - padding-left: 7em; -} - -.mytheme .v-tree8-node.depth-8 { - padding-left: 8em; -} - -.mytheme .v-tree8-node.depth-9 { - padding-left: 9em; -} - -.mytheme .v-tree8-node.depth-10 { - padding-left: 10em; -} - -.mytheme .v-tree8-node.depth-11 { - padding-left: 11em; -} - -.mytheme .v-tree8-node.depth-12 { - padding-left: 12em; -} - -.mytheme .v-tree8-node.depth-13 { - padding-left: 13em; -} - -.mytheme .v-tree8-node.depth-14 { - padding-left: 14em; -} - -.mytheme .v-tree8-node.depth-15 { - padding-left: 15em; -} - -.mytheme .v-tree8-node.depth-16 { - padding-left: 16em; -} - -.mytheme .v-tree8-node.depth-17 { - padding-left: 17em; -} - -.mytheme .v-tree8-node.depth-18 { - padding-left: 18em; -} - -.mytheme .v-tree8-node.depth-19 { - padding-left: 19em; -} - -.mytheme .v-tree8-node.depth-20 { - padding-left: 20em; -} - -.mytheme .v-tree8-node.depth-21 { - padding-left: 21em; -} - -.mytheme .v-tree8-node.depth-22 { - padding-left: 22em; -} - -.mytheme .v-tree8-node.depth-23 { - padding-left: 23em; -} - -.mytheme .v-tree8-node.depth-24 { - padding-left: 24em; -} - -.mytheme .v-tree8-node.depth-25 { - padding-left: 25em; -} - -.mytheme .v-tree8-node.depth-26 { - padding-left: 26em; -} - -.mytheme .v-tree8-node.depth-27 { - padding-left: 27em; -} - -.mytheme .v-tree8-node.depth-28 { - padding-left: 28em; -} - -.mytheme .v-tree8-node.depth-29 { - padding-left: 29em; -} - -.mytheme .v-tree8-node.depth-30 { - padding-left: 30em; -} - -.mytheme .v-tree8-node.depth-31 { - padding-left: 31em; -} - -.mytheme .v-tree8-cell-content { - display: inline-block; - vertical-align: middle; -} - -.mytheme .v-tree8-row-focused::before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border: 2px solid #197de1; - display: none; - pointer-events: none; -} - -.mytheme .v-tree8-cell-focused { - position: static; -} - -.mytheme .v-tree8-cell-focused::before { - display: none; -} - -.mytheme .v-tree8:focus .v-tree8-row-focused::before { - display: block; -} - -.mytheme .v-tree8.v-disabled:focus .v-tree8-row-focused::before { - display: none; -} - -.mytheme .v-tree8:focus .v-tree8-cell-focused::before { - display: none; -} - -.mytheme .v-tree8 { - background-color: transparent; -} - -.mytheme .v-tree8-row > td { - background-color: transparent; - border: 0; - line-height: 28px; -} - -.mytheme .v-tree8-row > td > * { - vertical-align: baseline; -} - -.mytheme .v-tree8-tablewrapper { - background-color: transparent; - border: none; -} - -.mytheme .v-tree8-row::before { - content: ""; - display: none; - position: absolute; - top: 0; - left: 0; - box-sizing: border-box; - width: 100%; - height: 100%; - border-radius: 4px; - pointer-events: none; - border-width: 1px; -} - -.mytheme .v-tree8-cell { - position: relative; -} - -.mytheme .v-tree8-row-selected > .v-tree8-cell { - background: transparent; -} - -.mytheme .v-tree8-row-selected::before { - display: block; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); -} - -.mytheme .v-tree8:focus .v-tree8-row-selected.v-tree8-row-focused::before { - border-color: transparent; - box-shadow: inset 0 0 0 1px #c8dbed; -} - -.mytheme .v-tree8-scroller-vertical { - border: none; -} - -.mytheme .v-tree8-scroller-horizontal { - border: none; -} - -.mytheme .v-tree8-header-deco, .mytheme .v-tree8-footer-deco, .mytheme .v-tree8-horizontal-scrollbar-deco { - border: none; - background: transparent; -} - -.mytheme .v-treegrid { - position: relative; -} - -.mytheme .v-treegrid-scroller { - position: absolute; - z-index: 1; - outline: none; - box-sizing: border-box; -} - -.mytheme .v-treegrid-scroller-horizontal { - left: 0; - right: 0; - bottom: 0; - overflow-y: hidden; - -ms-overflow-y: hidden; -} - -.mytheme .v-treegrid-scroller-vertical { - right: 0; - top: 0; - bottom: 0; - overflow-x: hidden; - -ms-overflow-x: hidden; -} - -.mytheme .v-treegrid-tablewrapper { - position: absolute; - overflow: hidden; - box-sizing: border-box; - z-index: 5; -} - -.mytheme .v-treegrid-tablewrapper > table { - border-spacing: 0; - table-layout: fixed; - width: inherit; -} - -.mytheme .v-treegrid-header-deco, .mytheme .v-treegrid-footer-deco { - position: absolute; - right: 0; - box-sizing: border-box; -} - -.mytheme .v-treegrid-horizontal-scrollbar-deco { - position: absolute; - bottom: 0; - left: 0; - right: 0; - box-sizing: border-box; -} - -.mytheme .v-treegrid-header, .mytheme .v-treegrid-body, .mytheme .v-treegrid-footer { - position: absolute; - left: 0; - width: inherit; - z-index: 10; -} - -.mytheme .v-treegrid-header, .mytheme .v-treegrid-header-deco { - top: 0; -} - -.mytheme .v-treegrid-footer, .mytheme .v-treegrid-footer-deco { - bottom: 0; -} - -.mytheme .v-treegrid-body { - -ms-touch-action: none; - touch-action: none; - z-index: 0; - top: 0; -} - -.mytheme .v-treegrid-body .v-treegrid-row { - position: absolute; - top: 0; - left: 0; -} - -.mytheme .v-treegrid-body .v-treegrid-header > .v-treegrid-row { - position: relative; -} - -.mytheme .v-treegrid-row { - display: block; -} - -.mytheme .v-treegrid-row > td, .mytheme .v-treegrid-row > th { - background-color: white; -} - -.mytheme .v-treegrid-row { - width: inherit; -} - -.mytheme .v-treegrid-cell { - display: block; - float: left; - padding: 2px; - white-space: nowrap; - box-sizing: border-box; - overflow: hidden; - font-size: 16px; -} - -.mytheme .v-treegrid-cell.frozen { - position: relative; - z-index: 1; -} - -.mytheme .v-treegrid-spacer { - position: absolute; - display: block; - background-color: white; -} - -.mytheme .v-treegrid-spacer > td { - width: 100%; - height: 100%; - box-sizing: border-box; -} - -.mytheme .v-treegrid { - outline: none; -} - -.mytheme .v-treegrid-scroller-vertical, .mytheme .v-treegrid-scroller-horizontal { - border: 1px solid #d4d4d4; -} - -.mytheme .v-treegrid-scroller-vertical { - border-left: none; -} - -.mytheme .v-treegrid-scroller-horizontal { - border-top: none; -} - -.mytheme .v-treegrid-tablewrapper { - border: 1px solid #d4d4d4; -} - -.mytheme .v-treegrid .header-drag-table { - border-spacing: 0; - position: relative; - table-layout: fixed; - width: inherit; -} - -.mytheme .v-treegrid .header-drag-table .v-treegrid-header { - position: absolute; -} - -.mytheme .v-treegrid .header-drag-table .v-treegrid-header > .v-treegrid-cell { - border: 1px solid #d4d4d4; - margin-top: -10px; - opacity: 0.9; - filter: alpha(opacity=90); - z-index: 30000; -} - -.mytheme .v-treegrid .header-drag-table .v-treegrid-header > .v-treegrid-drop-marker { - background-color: #197de1; - position: absolute; - width: 3px; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu { - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 0; - position: absolute; - top: 0; - right: 0; - background-color: #fafafa; - border: 1px solid #d4d4d4; - padding: 0; - z-index: 5; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu.v-treegrid-sidebar-popup { - right: auto; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu .v-treegrid-sidebar-button { - background: transparent; - border: none; - color: inherit; - cursor: pointer; - outline: none; - padding: 0 4px; - text-align: right; - line-height: 1; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu .v-treegrid-sidebar-button[disabled] { - cursor: default; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu .v-treegrid-sidebar-button::-moz-focus-inner { - border: 0; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu .v-treegrid-sidebar-button:after { - content: "\f0c9"; - display: block; - font-family: ThemeIcons, sans-serif; - font-size: 14px; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu.closed { - border-radius: 0; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu.open .v-treegrid-sidebar-button { - width: 100%; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu.open .v-treegrid-sidebar-button:after { - content: "\f0c9"; - font-size: 14px; - line-height: 1; -} - -.v-ie .mytheme .v-treegrid-sidebar.v-contextmenu.open .v-treegrid-sidebar-button { - vertical-align: middle; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu .v-treegrid-sidebar-content { - padding: 4px 0; - overflow-y: auto; - overflow-x: hidden; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu .v-treegrid-sidebar-content .gwt-MenuBar .gwt-MenuItem .column-hiding-toggle { - text-shadow: none; -} - -.mytheme .v-treegrid-cell { - background-color: white; - padding: 0 18px; - line-height: 37px; - text-overflow: ellipsis; -} - -.mytheme .v-treegrid-cell > * { - line-height: 1.55; - vertical-align: middle; -} - -.mytheme .v-treegrid-cell > div { - display: inline-block; -} - -.mytheme .v-treegrid-cell.frozen { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; - position: relative; - z-index: 11; -} - -.mytheme .v-treegrid-cell.frozen + th, .mytheme .v-treegrid-cell.frozen + td { - border-left: none; -} - -.mytheme .v-treegrid-cell div.component-wrap { - width: 100%; -} - -.mytheme .v-treegrid-row > td, .mytheme .v-treegrid-editor-cells > div { - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-treegrid-row > td:first-child, .mytheme .v-treegrid-editor-cells > div:first-child { - border-left: none; -} - -.mytheme .v-treegrid-editor-cells.frozen > div { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; - border-left: none; -} - -.mytheme .v-treegrid-row-stripe > td { - background-color: #f5f5f5; -} - -.mytheme .v-treegrid-row-selected > td { - background: #197de1; -} - -.mytheme .v-treegrid-row-focused > td { - -} - -.mytheme .v-treegrid-header th { - position: relative; - background-color: #fafafa; - font-size: 14px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; - - text-align: left; -} - -.mytheme .v-treegrid-header th:first-child { - border-left: none; -} - -.mytheme .v-treegrid-header .sort-asc, .mytheme .v-treegrid-header .sort-desc { - padding-right: 35px; -} - -.mytheme .v-treegrid-header .sort-asc:after, .mytheme .v-treegrid-header .sort-desc:after { - font-family: ThemeIcons, sans-serif; - content: "\f0de" " " attr(sort-order); - position: absolute; - right: 18px; - font-size: 12px; -} - -.mytheme .v-treegrid-header .sort-desc:after { - content: "\f0dd" " " attr(sort-order); -} - -.mytheme .v-treegrid-column-resize-handle { - position: absolute; - width: 36px; - right: -18px; - top: 0px; - bottom: 0px; - cursor: col-resize; - z-index: 10; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.mytheme .v-treegrid-column-resize-simple-indicator { - position: absolute; - width: 3px; - top: 0px; - left: 18px; - z-index: 9001; - background: #fff; - box-shadow: 0px 0px 5px #000; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.mytheme .v-treegrid-footer td { - background-color: #fafafa; - font-size: 14px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - border-bottom: none; - -} - -.mytheme .v-treegrid-footer td:first-child { - border-left: none; -} - -.mytheme .v-treegrid-header .v-treegrid-cell, .mytheme .v-treegrid-footer .v-treegrid-cell { - overflow: visible; -} - -.mytheme .v-treegrid-column-header-content, .mytheme .v-treegrid-column-footer-content { - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 37px; - vertical-align: baseline; -} - -.mytheme .v-treegrid-header-deco { - border-top: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.mytheme .v-treegrid-footer-deco { - border-bottom: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.mytheme .v-treegrid-horizontal-scrollbar-deco { - background-color: #fafafa; - border: 1px solid #d4d4d4; - border-top: none; -} - -.mytheme .v-treegrid-cell-focused { - position: relative; -} - -.mytheme .v-treegrid-cell-focused:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border: 2px solid #197de1; - display: none; - pointer-events: none; -} - -.mytheme .v-treegrid:focus .v-treegrid-cell-focused:before { - display: block; -} - -.mytheme .v-treegrid.v-disabled:focus .v-treegrid-cell-focused:before { - display: none; -} - -.mytheme .v-treegrid-editor { - position: absolute; - z-index: 20; - overflow: hidden; - left: 0; - right: 0; - border: 1px solid #d4d4d4; - box-sizing: border-box; - -moz-box-sizing: border-box; - margin-top: -1px; - -webkit-box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); -} - -.mytheme .v-treegrid-editor.unbuffered .v-treegrid-editor-footer { - width: 100%; -} - -.mytheme .v-treegrid-editor-cells { - position: relative; - white-space: nowrap; -} - -.mytheme .v-treegrid-editor-cells.frozen { - z-index: 2; -} - -.mytheme .v-treegrid-editor-cells > div { - display: inline-block; - box-sizing: border-box; - vertical-align: middle; - background: white; -} - -.mytheme .v-treegrid-editor-cells > div:first-child { - border-left: none; -} - -.mytheme .v-treegrid-editor-cells > div > * { - vertical-align: middle; - display: inline-block; -} - -.mytheme .v-treegrid-editor-cells > div .v-filterselect { - padding-left: 0; -} - -.mytheme .v-treegrid-editor-cells > div input[type="text"], .mytheme .v-treegrid-editor-cells > div input[type="text"].v-filterselect-input, .mytheme .v-treegrid-editor-cells > div input[type="password"] { - padding-left: 18px; -} - -.mytheme .v-treegrid-editor-cells > div input[type="text"]:not(.v-filterselect-input), .mytheme .v-treegrid-editor-cells > div input[type="password"] { - padding-right: 9px; -} - -.mytheme .v-treegrid-editor-cells > div input[type="checkbox"] { - margin-left: 18px; -} - -.mytheme .v-treegrid-editor-cells > div .v-textfield, .mytheme .v-treegrid-editor-cells > div .v-datefield, .mytheme .v-treegrid-editor-cells > div .v-filterselect { - min-width: 100%; - max-width: 100%; - min-height: 100%; - max-height: 100%; -} - -.mytheme .v-treegrid-editor-cells > div .v-select, .mytheme .v-treegrid-editor-cells > div .v-select-select { - min-width: 100%; - max-width: 100%; -} - -.mytheme .v-treegrid-editor-cells > div.not-editable.v-treegrid-cell { - float: none; -} - -.mytheme .v-treegrid-editor-cells .error::before { - position: absolute; - display: block; - height: 0; - width: 0; - content: ""; - border-top: 5px solid red; - border-right: 5px solid transparent; -} - -.mytheme .v-treegrid-editor-cells .error, .mytheme .v-treegrid-editor-cells .error > input { - background-color: #fee; -} - -.mytheme .v-treegrid-editor-footer { - display: table; - height: 37px; - border-top: 1px solid #d4d4d4; - margin-top: -1px; - background: white; - padding: 0 5px; -} - -.mytheme .v-treegrid-editor-footer + .v-treegrid-editor-cells > div { - border-bottom: none; - border-top: 1px solid #d4d4d4; -} - -.mytheme .v-treegrid-editor-footer:first-child { - border-top: none; - margin-top: 0; - border-bottom: 1px solid #d4d4d4; - margin-bottom: -1px; -} - -.mytheme .v-treegrid-editor-message, .mytheme .v-treegrid-editor-buttons { - display: table-cell; - white-space: nowrap; - vertical-align: middle; -} - -.mytheme .v-treegrid-editor-message { - width: 100%; - position: relative; -} - -.mytheme .v-treegrid-editor-message > div { - position: absolute; - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 37px; - top: 0; -} - -.mytheme .v-treegrid-editor-save { - margin-right: 4px; -} - -.mytheme .v-treegrid-spacer { - padding-left: 1px; -} - -.mytheme .v-treegrid-spacer > td { - display: block; - padding: 0; - background-color: white; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-treegrid-spacer.stripe > td { - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - border-bottom: 1px solid #d4d4d4; -} - -.mytheme .v-treegrid-spacer-deco-container { - border-top: 1px solid transparent; - position: relative; - top: 0; - z-index: 5; -} - -.mytheme .v-treegrid-spacer-deco { - top: 0; - left: 0; - width: 2px; - background-color: #197de1; - position: absolute; - height: 100%; - pointer-events: none; -} - -.mytheme .v-treegrid-cell > .v-progressbar { - width: 100%; -} - -.mytheme .v-treegrid { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - background-color: #fafafa; -} - -.mytheme .v-treegrid.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-treegrid-header .v-treegrid-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-treegrid-header .v-treegrid-cell.dragged { - opacity: 0.5; - filter: alpha(opacity=50) ; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} - -.mytheme .v-treegrid-header .v-treegrid-cell.dragged-column-header { - margin-top: -19px; -} - -.mytheme .v-treegrid-footer .v-treegrid-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-treegrid-header-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-treegrid-footer-deco, .mytheme .v-treegrid-horizontal-scrollbar-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-treegrid-row-selected > .v-treegrid-cell { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: #c8dbed; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - border-color: #1d69b4; -} - -.mytheme .v-treegrid-row-selected > .v-treegrid-cell-focused:before { - border-color: #71b0ef; -} - -.mytheme .v-treegrid-editor { - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - border-color: #197de1; -} - -.mytheme .v-treegrid-editor-footer { - font-size: 14px; - padding: 0 6px; - background: #fafafa; - -webkit-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; -} - -.mytheme .v-treegrid-editor-footer:first-child { - -webkit-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; -} - -.mytheme .v-treegrid-editor-cells { - z-index: 1; -} - -.mytheme .v-treegrid-editor-cells > div:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; -} - -.mytheme .v-treegrid-editor-cells > div.not-editable.v-treegrid-cell { - float: none; -} - -.mytheme .v-treegrid-editor-cells > div .error::before { - border-top: 9px solid #ed473b; - border-right: 9px solid transparent; -} - -.mytheme .v-treegrid-editor-cells > div .error, .mytheme .v-treegrid-editor-cells > div .error > input { - background-color: #fffbfb; -} - -.mytheme .v-treegrid-editor-cells > div .v-textfield, .mytheme .v-treegrid-editor-cells > div .v-textfield-focus, .mytheme .v-treegrid-editor-cells > div .v-datefield, .mytheme .v-treegrid-editor-cells > div .v-datefield .v-textfield-focus, .mytheme .v-treegrid-editor-cells > div .v-filterselect-input, .mytheme .v-treegrid-editor-cells > div .v-filterselect-input:focus { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: inset 0 1px 0 #f2f2f2; - box-shadow: inset 0 1px 0 #f2f2f2; -} - -.mytheme .v-treegrid-editor-cells > div input[type="text"].v-datefield-textfield { - padding-left: 44.4px; -} - -.mytheme .v-treegrid-editor-cells > div .v-textfield-focus, .mytheme .v-treegrid-editor-cells > div .v-datefield .v-textfield-focus, .mytheme .v-treegrid-editor-cells > div .v-filterselect-input:focus { - position: relative; -} - -.mytheme .v-treegrid-editor-cells > div .v-select { - padding-left: 9px; - padding-right: 9px; -} - -.mytheme .v-treegrid-editor-cells > div .v-checkbox { - margin: 0 9px 0 18px; -} - -.mytheme .v-treegrid-editor-cells > div .v-checkbox > input[type="checkbox"] { - margin-left: 0; -} - -.mytheme .v-treegrid-editor-cells > div .v-checkbox > label { - white-space: nowrap; -} - -.mytheme .v-treegrid-editor-message > div:before { - display: inline-block; - color: #ed473b; - font-weight: 600; - width: 19px; - text-align: center; - content: "!"; -} - -.mytheme .v-treegrid-editor-save, .mytheme .v-treegrid-editor-cancel { - cursor: pointer; - color: #197de1; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - font-weight: 400; - text-decoration: none; - border: none; - background: transparent; - padding: 6px 6px; - margin: 0; - outline: none; -} - -.mytheme .v-treegrid-editor-save:hover, .mytheme .v-treegrid-editor-cancel:hover { - color: #4396ea; -} - -.mytheme .v-treegrid-editor-save.v-disabled, .mytheme .v-treegrid-editor-cancel.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-treegrid-spacer { - margin-top: -1px; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu.open .v-treegrid-sidebar-content { - margin: 0 0 2px; - padding: 4px 4px 2px; - overflow-y: auto; - overflow-x: hidden; -} - -.mytheme .v-treegrid-sidebar.v-contextmenu.closed { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-treegrid-scroller::-webkit-scrollbar { - border: none; -} - -.mytheme .v-treegrid-scroller::-webkit-scrollbar-thumb { - border-radius: 10px; - border: 4px solid transparent; - background: rgba(0, 0, 0, 0.3); - -webkit-background-clip: content-box; - background-clip: content-box; -} - -.mytheme .v-treegrid-scroller-vertical::-webkit-scrollbar-thumb { - min-height: 30px; -} - -.mytheme .v-treegrid-scroller-horizontal::-webkit-scrollbar-thumb { - min-width: 30px; -} - -.mytheme .v-treegrid-row-drag-badge { - background-color: red; - color: white; - display: block; - width: 30px; - height: 30px; - border-radius: 10px; - line-height: 30px; - text-align: center; - float: left; -} - -.mytheme .v-treegrid-row-drag-top, .mytheme .v-treegrid-row-drag-bottom { - z-index: 100; -} - -.mytheme .v-treegrid-row-drag-top:before, .mytheme .v-treegrid-row-drag-bottom:after { - content: ""; - display: block; - position: absolute; - height: 2px; - width: 100%; - background: #197de1; - pointer-events: none; - border: none; -} - -.mytheme .v-treegrid-row-drag-bottom:after { - bottom: -1px; -} - -.mytheme .v-treegrid-row-drag-top:before { - top: -1px; -} - -.mytheme .v-treegrid-row-drag-top:first-child:before { - top: 0; -} - -.mytheme .v-treegrid-row-drag-center:after { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 2px; - border: 2px solid #197de1; - pointer-events: none; -} - -.mytheme .v-treegrid-row-selected.v-treegrid-row-drag-center:after { - border-color: #1463b3; -} - -.mytheme .v-treegrid-row-selected.v-treegrid-row-drag-top:before, .mytheme .v-treegrid-row-selected.v-treegrid-row-drag-bottom:after { - background: #1463b3; -} - -.mytheme .v-treegrid-body-drag-top:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - pointer-events: none; - border: 2px solid #197de1; - z-index: 100; -} - -.mytheme .v-treegrid-expander { - display: inline-block; - vertical-align: top; -} - -.mytheme .v-treegrid-expander::before { - display: inline-block; - width: 1.5em; - text-align: center; - content: ""; -} - -.mytheme .v-treegrid-expander.expanded::before { - content: "\f0d7"; - font-family: ThemeIcons; -} - -.mytheme .v-treegrid-expander.collapsed::before { - content: "\f0da"; - font-family: ThemeIcons; -} - -.mytheme .v-treegrid-expander.collapse-disabled::before { - opacity: 0.5; - filter: alpha(opacity=50) ; - cursor: default; -} - -.mytheme .v-treegrid-node.depth-0 { - padding-left: 0em; -} - -.mytheme .v-treegrid-node.depth-1 { - padding-left: 1em; -} - -.mytheme .v-treegrid-node.depth-2 { - padding-left: 2em; -} - -.mytheme .v-treegrid-node.depth-3 { - padding-left: 3em; -} - -.mytheme .v-treegrid-node.depth-4 { - padding-left: 4em; -} - -.mytheme .v-treegrid-node.depth-5 { - padding-left: 5em; -} - -.mytheme .v-treegrid-node.depth-6 { - padding-left: 6em; -} - -.mytheme .v-treegrid-node.depth-7 { - padding-left: 7em; -} - -.mytheme .v-treegrid-node.depth-8 { - padding-left: 8em; -} - -.mytheme .v-treegrid-node.depth-9 { - padding-left: 9em; -} - -.mytheme .v-treegrid-node.depth-10 { - padding-left: 10em; -} - -.mytheme .v-treegrid-node.depth-11 { - padding-left: 11em; -} - -.mytheme .v-treegrid-node.depth-12 { - padding-left: 12em; -} - -.mytheme .v-treegrid-node.depth-13 { - padding-left: 13em; -} - -.mytheme .v-treegrid-node.depth-14 { - padding-left: 14em; -} - -.mytheme .v-treegrid-node.depth-15 { - padding-left: 15em; -} - -.mytheme .v-treegrid-node.depth-16 { - padding-left: 16em; -} - -.mytheme .v-treegrid-node.depth-17 { - padding-left: 17em; -} - -.mytheme .v-treegrid-node.depth-18 { - padding-left: 18em; -} - -.mytheme .v-treegrid-node.depth-19 { - padding-left: 19em; -} - -.mytheme .v-treegrid-node.depth-20 { - padding-left: 20em; -} - -.mytheme .v-treegrid-node.depth-21 { - padding-left: 21em; -} - -.mytheme .v-treegrid-node.depth-22 { - padding-left: 22em; -} - -.mytheme .v-treegrid-node.depth-23 { - padding-left: 23em; -} - -.mytheme .v-treegrid-node.depth-24 { - padding-left: 24em; -} - -.mytheme .v-treegrid-node.depth-25 { - padding-left: 25em; -} - -.mytheme .v-treegrid-node.depth-26 { - padding-left: 26em; -} - -.mytheme .v-treegrid-node.depth-27 { - padding-left: 27em; -} - -.mytheme .v-treegrid-node.depth-28 { - padding-left: 28em; -} - -.mytheme .v-treegrid-node.depth-29 { - padding-left: 29em; -} - -.mytheme .v-treegrid-node.depth-30 { - padding-left: 30em; -} - -.mytheme .v-treegrid-node.depth-31 { - padding-left: 31em; -} - -.mytheme .v-treegrid-cell-content { - display: inline-block; - vertical-align: middle; -} - -.mytheme .v-treegrid-row-focused::before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border: 2px solid #197de1; - display: none; - pointer-events: none; -} - -.mytheme .v-treegrid-cell-focused { - position: static; -} - -.mytheme .v-treegrid-cell-focused::before { - display: none; -} - -.mytheme .v-treegrid:focus .v-treegrid-row-focused::before { - display: block; -} - -.mytheme .v-treegrid.v-disabled:focus .v-treegrid-row-focused::before { - display: none; -} - -.mytheme .v-treegrid:focus .v-treegrid-cell-focused::before { - display: none; -} - -.mytheme .v-table { - position: relative; - background: #fafafa; - color: #464646; - overflow: hidden; -} - -.mytheme .v-table-header table, .mytheme .v-table-footer table, .mytheme .v-table-table { - -webkit-box-shadow: 0 0 0 1px #d4d4d4; - box-shadow: 0 0 0 1px #d4d4d4; -} - -.mytheme .v-table-header-wrap, .mytheme .v-table-footer-wrap, .mytheme .v-table-header-drag { - border: 1px solid #d4d4d4; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - white-space: nowrap; - font-size: 14px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-table-header-wrap { - position: relative; - border-bottom: none; -} - -.mytheme .v-table-footer-wrap { - border-top: none; -} - -.mytheme .v-table-footer td { - border-left: 1px solid #d4d4d4; -} - -.mytheme .v-table-footer-container, .mytheme .v-table-caption-container { - overflow: hidden; - line-height: 1; - min-height: 37px; - box-sizing: border-box; -} - -.mytheme .v-table-footer-container { - padding: 11px 12px 12px; - float: right; -} - -.mytheme [class^="v-table-header-cell"] { - position: relative; -} - -.mytheme .v-table-caption-container, .mytheme .v-table-header-drag { - padding: 12px 12px 11px; - border-left: 1px solid #d4d4d4; -} - -.mytheme .v-table-caption-container-align-right { - padding-right: 4px; -} - -.mytheme .v-table-resizer { - height: 37px; - width: 8px; - cursor: e-resize; - cursor: col-resize; - position: relative; - right: -4px; - z-index: 1; - margin-left: -8px; -} - -.mytheme .v-table-cell-content { - border-left: 1px solid #d4d4d4; - overflow: hidden; - height: 37px; - vertical-align: middle; -} - -.mytheme .v-table-cell-content:first-child { - border-left: none; - padding-left: 1px; -} - -.mytheme .v-table-header td:first-child .v-table-caption-container, .mytheme .v-table-footer td:first-child { - border-left-color: transparent; -} - -.mytheme .v-table-cell-wrapper { - line-height: 1; - padding: 0 12px; - box-sizing: border-box; - margin-right: 0 !important; -} - -.mytheme .v-table-cell-wrapper > .v-widget { - margin: 3px -6px; -} - -.mytheme .v-table-cell-wrapper > .v-widget.v-label, .mytheme .v-table-cell-wrapper > .v-widget.v-checkbox, .mytheme .v-table-cell-wrapper > .v-widget.v-select-optiongroup { - margin: 0; -} - -.mytheme .v-table-cell-wrapper > .v-widget.v-progressbar { - margin-left: 0; - margin-right: 0; -} - -.mytheme .v-table-body { - border: 1px solid #d4d4d4; - overflow-anchor: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - -.mytheme .v-table-table { - background-color: white; - white-space: nowrap; -} - -.mytheme .v-table-table td { - border-top: 1px solid #d4d4d4; -} - -.mytheme .v-table-table tr:first-child > td { - border-top: none; -} - -.mytheme .v-table-row { - background-color: white; - cursor: pointer; -} - -.mytheme .v-table-row-odd { - background-color: #f5f5f5; - cursor: pointer; -} - -.mytheme .v-table-body-noselection .v-table-row, .mytheme .v-table-body-noselection .v-table-row-odd { - cursor: default; -} - -.mytheme .v-table [class*="-row"].v-selected { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - background-origin: border-box; - color: #ecf2f8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-table [class*="-row"].v-selected + .v-selected { - background: #166ed5; -} - -.mytheme .v-table [class*="-row"].v-selected + .v-selected td { - border-top-color: #166ed5; -} - -.mytheme .v-table [class*="-row"].v-selected .v-table-cell-content { - border-color: transparent; - border-left-color: #1d69b4; -} - -.mytheme .v-table [class*="-row"].v-selected .v-table-cell-content:first-child { - border-left-color: transparent; -} - -.mytheme .v-table-header-cell-asc .v-table-sort-indicator, .mytheme .v-table-header-cell-desc .v-table-sort-indicator { - background: transparent; - width: 19px; - height: 37px; - line-height: 37px; - margin-left: -19px; -} - -.mytheme .v-table-header-cell-asc .v-table-sort-indicator:before, .mytheme .v-table-header-cell-desc .v-table-sort-indicator:before { - font-style: normal; - font-weight: normal; - display: inline-block; -} - -.mytheme .v-table-header-cell-asc .v-table-sort-indicator:before { - content: "\f0de"; - font-family: ThemeIcons; -} - -.mytheme .v-table-header-cell-desc .v-table-sort-indicator:before { - content: "\f0dd"; - font-family: ThemeIcons; -} - -.mytheme [class*="rowheader"] span.v-icon { - min-width: 1em; -} - -.mytheme .v-table-focus { - outline: 1px solid #197de1; - outline-offset: -1px; -} - -.mytheme .v-drag-element.v-table-focus, .mytheme .v-drag-element .v-table-focus { - outline: none; -} - -.mytheme .v-table-header-drag { - position: absolute; - opacity: 0.9; - filter: alpha(opacity=90) ; - margin-top: -19px; - z-index: 30000; - line-height: 1; -} - -.mytheme .v-table-focus-slot-right { - border-right: 3px solid #197de1; - right: -2px; - margin-left: -11px !important; -} - -.mytheme .v-table-focus-slot-left { - float: left; - border-left: 3px solid #197de1; - left: -1px; - right: auto; - margin-left: 0 !important; - margin-right: -11px; -} - -.mytheme .v-table-column-selector { - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - position: absolute; - z-index: 2; - top: 0; - right: 0; - width: 19px; - height: 19px; - line-height: 19px; - padding: 0; - border-top-width: 0; - border-right-width: 0; - border-radius: 0 0 0 4px; - cursor: pointer; - text-align: center; - opacity: 0; - filter: alpha(opacity=0) ; - -webkit-transition: opacity 200ms 2s; - -moz-transition: opacity 200ms 2s; - transition: opacity 200ms 2s; -} - -.mytheme .v-table-column-selector:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-table-column-selector:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.mytheme .v-table-column-selector:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-table-column-selector:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-table-column-selector:after { - content: ""; - position: absolute; - border: none; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.mytheme .v-table-column-selector:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-table-column-selector:before { - font-family: ThemeIcons; - content: "\f013"; -} - -.mytheme .v-table-header-wrap:hover .v-table-column-selector { - opacity: 1; - filter: none ; - -webkit-transition-delay: 200ms; - -moz-transition-delay: 200ms; - transition-delay: 200ms; -} - -.mytheme .v-on:before, .mytheme .v-off:before { - content: "\f00c"; - font-family: ThemeIcons; - font-size: 0.9em; - margin-right: 6px; -} - -.mytheme .v-on div, .mytheme .v-off div { - display: inline; -} - -.mytheme .v-on.v-disabled, .mytheme .v-off.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-off:before { - visibility: hidden; -} - -.mytheme tbody.v-drag-element { - display: block; - overflow: visible; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - opacity: 1; - filter: none ; -} - -.mytheme tbody.v-drag-element tr { - display: block; - - - -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - border-radius: 4px; - overflow: hidden; - opacity: 0.5; - filter: alpha(opacity=50) ; - background: white; -} - -.mytheme .v-table-body { - position: relative; - z-index: 1; -} - -.mytheme .v-table-scrollposition { - position: absolute; - top: 50%; - width: 100%; - height: 37px; - line-height: 37px; - margin: -19px 0 0 !important; - text-align: center; -} - -.mytheme .v-table-drag { - overflow: visible; -} - -.mytheme .v-table-drag .v-table-body { - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - border-color: #197de1; -} - -.mytheme .v-table-drag .v-table-body .v-table-focus { - outline: none; -} - -.mytheme .v-table-row-drag-middle .v-table-cell-content { - background-color: #d1e5f9; - color: #214060; -} - -.mytheme .v-table-row-drag-bottom td.v-table-cell-content { - border-bottom: 2px solid #197de1; - height: 35px; -} - -.mytheme .v-table-row-drag-bottom .v-table-cell-wrapper { - margin-bottom: -2px; -} - -.mytheme .v-table-row-drag-top td.v-table-cell-content { - border-top: 2px solid #197de1; - height: 36px; -} - -.mytheme .v-table-row-drag-top .v-table-cell-wrapper { - margin-top: -1px; -} - -.mytheme .v-table-no-stripes .v-table-row, .mytheme .v-table-no-stripes .v-table-row-odd { - background: transparent; -} - -.mytheme .v-table-no-vertical-lines .v-table-cell-content { - border-left: none; - padding-left: 1px; -} - -.mytheme .v-table-no-vertical-lines.v-treetable .v-table-cell-content { - padding-left: 13px; -} - -.mytheme .v-table-no-horizontal-lines .v-table-cell-content { - border-top: none; - border-bottom: none; -} - -.mytheme .v-table-no-horizontal-lines .v-table-row-drag-top .v-table-cell-content, .mytheme .v-table-no-horizontal-lines .v-table-row-drag-bottom .v-table-cell-content { - height: 36px; -} - -.mytheme .v-table-no-header .v-table-header-wrap { - display: none; -} - -.mytheme .v-table-borderless .v-table-header-wrap, .mytheme .v-table-borderless .v-table-footer-wrap, .mytheme .v-table-borderless .v-table-header-drag, .mytheme .v-table-borderless .v-table-body { - border: none; -} - -.mytheme .v-table-borderless .v-table-header-wrap { - border-bottom: 1px solid #d9d9d9; -} - -.mytheme .v-table-borderless .v-table-footer-wrap { - border-top: 1px solid #d9d9d9; -} - -.mytheme .v-table-compact .v-table-header-wrap, .mytheme .v-table-compact .v-table-footer-wrap, .mytheme .v-table-compact .v-table-header-drag, .mytheme .v-table-small .v-table-header-wrap, .mytheme .v-table-small .v-table-footer-wrap, .mytheme .v-table-small .v-table-header-drag { - font-size: 14px; -} - -.mytheme .v-table-compact .v-table-footer-container, .mytheme .v-table-small .v-table-footer-container { - padding: 8px 7px 9px; -} - -.mytheme .v-table-compact .v-table-caption-container, .mytheme .v-table-compact .v-table-header-drag, .mytheme .v-table-small .v-table-caption-container, .mytheme .v-table-small .v-table-header-drag { - padding-top: 9px; - padding-bottom: 8px; - padding-left: 6px; - padding-right: 6px; -} - -.mytheme .v-table-compact .v-table-caption-container-align-right, .mytheme .v-table-small .v-table-caption-container-align-right { - padding-right: 0; -} - -.mytheme .v-table-compact .v-table-resizer, .mytheme .v-table-small .v-table-resizer { - height: 31px; -} - -.mytheme .v-table-compact .v-table-cell-content, .mytheme .v-table-small .v-table-cell-content { - height: 31px; -} - -.mytheme .v-table-compact .v-table-cell-wrapper, .mytheme .v-table-small .v-table-cell-wrapper { - padding-left: 6px; - padding-right: 6px; -} - -.mytheme .v-table-compact .v-table-cell-wrapper > .v-widget, .mytheme .v-table-small .v-table-cell-wrapper > .v-widget { - margin: 2px -3px; -} - -.mytheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-label, .mytheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-checkbox, .mytheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-select-optiongroup, .mytheme .v-table-small .v-table-cell-wrapper > .v-widget.v-label, .mytheme .v-table-small .v-table-cell-wrapper > .v-widget.v-checkbox, .mytheme .v-table-small .v-table-cell-wrapper > .v-widget.v-select-optiongroup { - margin: 0; -} - -.mytheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-progressbar, .mytheme .v-table-small .v-table-cell-wrapper > .v-widget.v-progressbar { - margin-left: 0; - margin-right: 0; -} - -.mytheme .v-table-compact .v-table-header-cell-asc .v-table-sort-indicator, .mytheme .v-table-compact .v-table-header-cell-desc .v-table-sort-indicator, .mytheme .v-table-small .v-table-header-cell-asc .v-table-sort-indicator, .mytheme .v-table-small .v-table-header-cell-desc .v-table-sort-indicator { - height: 31px; - line-height: 31px; -} - -.mytheme .v-table-compact .v-table-header-drag, .mytheme .v-table-small .v-table-header-drag { - margin-top: -16px; -} - -.mytheme .v-table-compact.v-treetable .v-table-cell-wrapper, .mytheme .v-table-small.v-treetable .v-table-cell-wrapper { - padding-left: 0; - padding-right: 0; - min-height: 16px; -} - -.mytheme .v-table-compact.v-treetable .v-table-cell-content, .mytheme .v-table-small.v-treetable .v-table-cell-content { - padding-left: 6px; - padding-right: 6px; -} - -.mytheme .v-table-compact.v-treetable .v-table-cell-content:first-child, .mytheme .v-table-small.v-treetable .v-table-cell-content:first-child { - padding-left: 7px; -} - -.mytheme .v-table-compact.v-treetable .v-table-footer-container, .mytheme .v-table-small.v-treetable .v-table-footer-container { - padding-left: 6px; - padding-right: 6px; -} - -.mytheme .v-table-compact .v-table-row-drag-top .v-table-cell-content, .mytheme .v-table-compact .v-table-row-drag-bottom .v-table-cell-content, .mytheme .v-table-small .v-table-row-drag-top .v-table-cell-content, .mytheme .v-table-small .v-table-row-drag-bottom .v-table-cell-content { - height: 30px; -} - -.mytheme .v-table-small { - font-size: 14px; -} - -.mytheme .v-table-small.v-treetable .v-table-cell-wrapper { - min-height: 14px; -} - -.mytheme .v-treetable [class*="caption-container"], .mytheme .v-treetable [class*="footer-container"], .mytheme .v-treetable [class*="cell-wrapper"] { - box-sizing: content-box; - padding-left: 0; - padding-right: 0; -} - -.mytheme .v-treetable [class*="caption-container"], .mytheme .v-treetable [class*="footer-container"] { - min-height: 14px; -} - -.mytheme .v-treetable [class*="cell-wrapper"] { - min-height: 16px; -} - -.mytheme .v-treetable [class*="caption-container"] { - padding-left: 12px; -} - -.mytheme .v-treetable [class*="caption-container-align-right"] { - padding-left: 20px; -} - -.mytheme .v-treetable [class*="footer-container"] { - padding-right: 12px; -} - -.mytheme .v-treetable [class*="cell-content"] { - padding-left: 12px; - padding-right: 12px; -} - -.mytheme .v-treetable [class*="cell-content"]:first-child { - padding-left: 13px; -} - -.mytheme .v-treetable-treespacer { - display: inline-block; - position: absolute; - width: 19px !important; - margin-left: -25px; - text-align: center; - cursor: pointer; -} - -.mytheme .v-treetable-node-closed:before { - content: "\f0da"; - font-family: ThemeIcons; -} - -.mytheme .v-treetable-node-open:before { - content: "\f0d7"; - font-family: ThemeIcons; -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter { - width: 1px; -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter:after { - left: -6px; - right: -6px; -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before { - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; - background-color: #fafafa; - background-image: -webkit-linear-gradient(left, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to right,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-splitpanel-horizontal > div > .v-splitpanel-second-container { - margin-left: 1px; -} - -.mytheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter { - height: 1px; -} - -.mytheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter:after { - top: -6px; - bottom: -6px; -} - -.mytheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before { - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; -} - -.mytheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.mytheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter { - width: 12px; -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter:after { - left: 0px; - right: 0px; -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before { - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; - background-color: #fafafa; - background-image: -webkit-linear-gradient(left, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to right,#fafafa 2%, #efefef 98%); -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:after { - content: ""; - border: 1px solid #dadada; - border-top-color: #bababa; - border-left-color: #bababa; - position: absolute; - top: 50%; - left: 50%; - width: 0; - height: 37px; - margin-left: -1px; - margin-top: -19px; -} - -.mytheme .v-splitpanel-horizontal.large > div > .v-splitpanel-second-container { - margin-left: 12px; -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter { - height: 12px; -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter:after { - top: 0px; - bottom: 0px; -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before { - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:after { - content: ""; - border: 1px solid #dadada; - border-top-color: #bababa; - border-left-color: #bababa; - position: absolute; - top: 50%; - left: 50%; - width: 37px; - height: 0; - margin-left: -19px; - margin-top: -1px; -} - -.mytheme .v-progressbar-wrapper { - border-radius: 4px; - height: 9px; - background-color: #d4d4d4; - background-image: -webkit-linear-gradient(bottom, #d7d7d7 2%, #c7c7c7 98%); - background-image: linear-gradient(to top,#d7d7d7 2%, #c7c7c7 98%); - box-sizing: border-box; - min-width: 74px; -} - -.mytheme .v-progressbar-indicator { - border-radius: 4px; - height: inherit; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - - - border: 1px solid #1362b1; - box-sizing: border-box; - max-width: 100%; - min-width: 8px; - -webkit-transition: width 160ms; - -moz-transition: width 160ms; - transition: width 160ms; -} - -.mytheme .v-progressbar-point .v-progressbar-indicator { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - border: none; - text-align: right; - overflow: hidden; -} - -.mytheme .v-progressbar-point .v-progressbar-indicator:before { - content: ""; - display: inline-block; - border-radius: 4px; - height: inherit; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - - - border: 1px solid #1362b1; - box-sizing: border-box; - max-width: 100%; - width: 9px; - vertical-align: top; -} - -.mytheme .v-progressbar-indeterminate { - height: 24px !important; - width: 24px !important; - box-sizing: border-box; - border: 2px solid rgba(25, 125, 225, 0.2); - border-top-color: #197de1; - border-right-color: #197de1; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; -} - -.mytheme .v-progressbar-indeterminate .v-progressbar-wrapper { - display: none; -} - -.mytheme .v-slider { - position: relative; -} - -.mytheme .v-slider:focus { - outline: none; -} - -.mytheme .v-slider:focus .v-slider-handle:after { - opacity: 1; -} - -.mytheme .v-slider.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-slider-base { - border-radius: 4px; - height: 9px; - background-color: #d4d4d4; - background-image: -webkit-linear-gradient(bottom, #d7d7d7 2%, #c7c7c7 98%); - background-image: linear-gradient(to top,#d7d7d7 2%, #c7c7c7 98%); - box-sizing: border-box; - min-width: 74px; - height: 6px; - margin: 16px 11px; - white-space: nowrap; - overflow: hidden; - -} - -.mytheme .v-slider-base:before { - content: ""; - position: absolute; - top: 16px; - bottom: 16px; - left: 11px; - width: 8px; - border-radius: 4px; - border-left: 1px solid #1362b1; -} - -.mytheme .v-slider-base:after { - border-radius: 4px; - height: inherit; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - - - border: 1px solid #1362b1; - box-sizing: border-box; - max-width: 100%; - content: ""; - display: inline-block; - margin-left: -100%; - width: 100%; - vertical-align: top; -} - -.mytheme .v-has-width > .v-slider-base { - min-width: 0; -} - -.mytheme .v-slider-handle { - margin-top: -16px; - width: 0.1px; - display: inline-block; - vertical-align: top; -} - -.mytheme .v-slider-handle:before { - height: 37px; - padding: 0 16px; - color: #191919; - font-weight: 400; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.mytheme .v-slider-handle:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.mytheme .v-slider-handle:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.mytheme .v-slider-handle:before:focus:after { - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-slider-handle:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-slider-handle:after { - border: 1px solid #c5c5c5; - border-color: #197de1; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - opacity: 0; - -webkit-transition: opacity 200ms; - -moz-transition: opacity 200ms; - transition: opacity 200ms; -} - -.mytheme .v-slider-handle:before, .mytheme .v-slider-handle:after { - content: ""; - box-sizing: border-box; - padding: 0; - width: 22px; - height: 22px; - border-radius: 11px; - position: absolute; - z-index: 1; - margin-top: 8px; - margin-left: -11px; -} - -.mytheme .v-slider-feedback { - background-color: rgba(50, 50, 50, 0.9); - -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - color: white; - padding: 5px 9px; - border-radius: 3px; - max-width: 35em; - overflow: hidden !important; - font-size: 14px; -} - -.mytheme .v-slider-vertical { - padding: 11px 0; - height: 96px; -} - -.mytheme .v-slider-vertical .v-slider-base { - background-color: #d4d4d4; - background-image: -webkit-linear-gradient(right, #d7d7d7 2%, #c7c7c7 98%); - background-image: linear-gradient(to left,#d7d7d7 2%, #c7c7c7 98%); - width: 6px; - height: 100% !important; - min-width: 0; - margin: 0 16px; -} - -.mytheme .v-slider-vertical .v-slider-base:before { - top: auto; - bottom: 11px; - left: 16px; - right: 16px; - width: auto; - height: 8px; - border-left: none; - border-bottom: 1px solid #1362b1; -} - -.mytheme .v-slider-vertical .v-slider-base:after { - height: 101%; - margin-left: 0; - background-color: #197de1; - background-image: -webkit-linear-gradient(left, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to right,#1b87e3 2%, #166ed5 98%); -} - -.mytheme .v-slider-vertical .v-slider-handle { - width: 0; - height: 0.1px; - width: 37px; - display: block; -} - -.mytheme .v-slider-vertical .v-slider-handle:before, .mytheme .v-slider-vertical .v-slider-handle:after { - width: 22px; - height: 22px; - margin-top: -11px; - margin-left: -8px; -} - -.mytheme .v-slider-no-indicator .v-slider-base:before, .mytheme .v-slider-no-indicator .v-slider-base:after { - display: none; -} - -.mytheme .v-tabsheet:not(.v-has-width) { - width: auto !important; -} - -.mytheme .v-tabsheet-spacertd { - display: none !important; -} - -.mytheme .v-tabsheet-tabcontainer { - position: relative; - box-sizing: border-box; -} - -.mytheme .v-tabsheet-tabcontainer:before { - content: ""; - position: absolute; - height: 0; - border-top: 1px solid #dfdfdf; - bottom: 0; - left: 0; - right: 0; -} - -.mytheme .v-tabsheet-tabcontainer .v-tabsheet-tabs { - position: relative; -} - -.mytheme .v-tabsheet-tabitemcell { - vertical-align: bottom; -} - -.mytheme .v-tabsheet-tabitemcell .v-tabsheet-tabitem { - line-height: 0; - overflow: hidden; -} - -.mytheme .v-tabsheet-tabitemcell .v-caption { - margin-left: 19px; - padding: 0 4px; - box-sizing: border-box; - cursor: pointer; - text-align: center; - line-height: 37px; - font-size: 15px; - font-weight: 300; - color: #696969; - width: auto !important; - overflow: hidden; - text-overflow: ellipsis; - border-bottom: 2px solid transparent; - position: relative; - -webkit-transition: border-bottom 200ms, color 200ms; - -moz-transition: border-bottom 200ms, color 200ms; - transition: border-bottom 200ms, color 200ms; -} - -.mytheme .v-tabsheet-tabitemcell .v-caption .v-captiontext { - display: inline; -} - -.mytheme .v-tabsheet-tabitemcell .v-caption .v-icon + .v-captiontext { - margin-left: 9px; -} - -.mytheme .v-tabsheet-tabitemcell .v-caption:hover { - color: #197de1; -} - -.mytheme .v-tabsheet-tabitemcell .v-caption.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; - cursor: default; - color: inherit !important; -} - -.mytheme .v-tabsheet-tabitemcell:first-child .v-caption, .mytheme .v-tabsheet-tabitemcell[aria-hidden="true"] + td .v-caption { - margin-left: 0; -} - -.mytheme .v-tabsheet-tabitemcell:not([aria-hidden="true"]) ~ td .v-caption { - margin-left: 19px; -} - -.mytheme .v-tabsheet-tabitemcell:focus { - outline: none; -} - -.mytheme .v-tabsheet-tabitemcell:focus .v-caption { - color: #197de1; -} - -.mytheme .v-tabsheet-tabitemcell .v-tabsheet-tabitem-selected .v-caption.v-caption { - border-bottom-color: #197de1; - color: #197de1; -} - -.mytheme .v-tabsheet-tabitemcell .v-caption-closable { - padding-right: 22px; -} - -.mytheme .v-tabsheet-tabitemcell.icons-on-top .v-caption-closable { - padding-right: 4px; -} - -.mytheme .v-tabsheet-tabitemcell .v-tabsheet-caption-close { - position: absolute; - right: 0; - top: 50%; - margin: -8px 0 0; - font-size: 18px; - line-height: 18px; - width: 18px; - text-align: center; - border-radius: 2px; - color: #969696; -} - -.mytheme .v-tabsheet-tabitemcell .v-tabsheet-caption-close:hover { - background: rgba(0, 0, 0, 0.03); - color: #197de1; -} - -.mytheme .v-tabsheet-tabitemcell .v-tabsheet-caption-close:active { - background: #197de1; - color: #c8dbed; -} - -.mytheme .v-tabsheet-scroller { - position: absolute; - top: 0; - right: 0; - bottom: 0; - padding-left: 19px; - background-color: transparent; - background-image: -webkit-linear-gradient(right, #fafafa 70%, rgba(250, 250, 250, 0) 100%); - background-image: linear-gradient(to left,#fafafa 70%, rgba(250, 250, 250, 0) 100%); - pointer-events: none; -} - -.mytheme .v-tabsheet-scroller:after { - content: ""; - height: 1px; - position: absolute; - bottom: 0; - left: 0; - right: 0; - display: block; - background-color: transparent; - background-image: -webkit-linear-gradient(right, #dfdfdf 70%, rgba(223, 223, 223, 0) 100%); - background-image: linear-gradient(to left,#dfdfdf 70%, rgba(223, 223, 223, 0) 100%); -} - -.mytheme .v-tabsheet-scroller button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - font: inherit; - color: inherit; - height: 100%; - margin: 0; - padding: 0 9px; - outline: none; - cursor: pointer; - pointer-events: auto; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-tabsheet-scroller button:hover { - opacity: 1; - filter: none ; - color: #197de1; -} - -.mytheme .v-tabsheet-scroller button:active { - opacity: 0.7; - filter: alpha(opacity=70) ; - color: #197de1; -} - -.mytheme .v-tabsheet-scroller button::-moz-focus-inner { - padding: 0; - border: 0; -} - -.mytheme .v-tabsheet-scroller [class*="Next"] { - padding-left: 5px; -} - -.mytheme .v-tabsheet-scroller [class*="Next"]:before { - font-family: ThemeIcons; - content: "\f054"; -} - -.mytheme .v-tabsheet-scroller [class*="Prev"] { - padding-right: 5px; -} - -.mytheme .v-tabsheet-scroller [class*="Prev"]:before { - font-family: ThemeIcons; - content: "\f053"; -} - -.mytheme .v-tabsheet-scroller [class*="disabled"] { - cursor: default; - color: inherit !important; - opacity: 0.1 !important; - filter: alpha(opacity=10) !important; -} - -.mytheme .v-tabsheet-tabsheetpanel > .v-scrollable > .v-widget { - -webkit-animation: valo-animate-in-fade 300ms backwards; - -moz-animation: valo-animate-in-fade 300ms backwards; - animation: valo-animate-in-fade 300ms backwards; -} - -.mytheme .v-tabsheet-deco { - height: 20px !important; - width: 20px !important; - box-sizing: border-box; - border: 2px solid rgba(25, 125, 225, 0.2); - border-top-color: #197de1; - border-right-color: #197de1; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; - display: none; - position: absolute; - z-index: 1; - bottom: 50%; - margin-bottom: -29px; - left: 50%; - margin-left: -10px; -} - -.mytheme .v-tabsheet-loading .v-tabsheet-deco { - display: block; -} - -.mytheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer table, .mytheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tbody, .mytheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tr { - width: 100%; -} - -.mytheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tr { - display: table; - table-layout: fixed; -} - -.mytheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer td { - display: table-cell; -} - -.mytheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer .v-caption { - margin: 0; - display: block; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption { - margin-left: 4px; - padding: 0 12px; - background-color: #fafafa; - border: 1px solid transparent; - line-height: 36px; - border-radius: 4px 4px 0 0; - font-weight: 400; - -webkit-transition: background-color 160ms; - -moz-transition: background-color 160ms; - transition: background-color 160ms; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption:hover { - background-color: #f2f2f2; - border-bottom-color: #dfdfdf; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption.v-disabled:hover { - background-color: #fafafa; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption-closable { - padding-right: 30px; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { - top: 4px; - right: 4px; - margin-top: 0; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer td:first-child .v-caption, .mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer [aria-hidden="true"] + td .v-caption { - margin-left: 0; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer :not([aria-hidden="true"]) ~ td .v-caption { - margin-left: 4px; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-tabitem .v-caption { - border-color: #dfdfdf; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption { - background: white; - border-color: #dfdfdf; - border-bottom: none; - padding-bottom: 1px; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-content { - border: 1px solid #dfdfdf; - border-top: none; -} - -.mytheme .v-tabsheet-framed > .v-tabsheet-content > div { - background: white; -} - -.mytheme .v-tabsheet-framed.padded-tabbar > .v-tabsheet-tabcontainer { - border: 1px solid #dfdfdf; - border-bottom: none; - background: #fafafa; - padding-top: 6px; -} - -.mytheme .v-tabsheet-framed.icons-on-top > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption { - padding-bottom: 7px; -} - -.mytheme .v-tabsheet-centered-tabs > .v-tabsheet-tabcontainer { - text-align: center; -} - -.mytheme .v-tabsheet-right-aligned-tabs > .v-tabsheet-tabcontainer { - text-align: right; -} - -.mytheme .v-tabsheet-right-aligned-tabs .v-tabsheet-spacertd { - display: inline-block !important; -} - -.mytheme .v-tabsheet-right-aligned-tabs .v-tabsheet-scroller { - padding-left: 9px; -} - -.mytheme .v-tabsheet-padded-tabbar > .v-tabsheet-tabcontainer .v-tabsheet-tabs { - padding: 0 9px; -} - -.mytheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-caption { - padding-top: 6px; - padding-bottom: 6px; - line-height: 1.2; -} - -.mytheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-icon { - display: block; -} - -.mytheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-icon + .v-captiontext.v-captiontext { - margin-left: 0; -} - -.mytheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-caption-closable { - padding-right: 12px; -} - -.mytheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { - top: 4px; - margin-top: 0; -} - -.mytheme .v-tabsheet-compact-tabbar > .v-tabsheet-tabcontainer-compact-tabbar .v-caption { - line-height: 1.8; -} - -.mytheme .v-tabsheet-only-selected-closable > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { - visibility: hidden; -} - -.mytheme .v-tabsheet-only-selected-closable > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-tabsheet-caption-close { - visibility: visible; -} - -.mytheme .v-colorpicker-popup.v-window { - min-width: 220px !important; -} - -.mytheme .v-colorpicker-popup .v-tabsheet-tabs { - padding: 0 9px; -} - -.mytheme .v-colorpicker-popup [class$="sliders"] { - padding: 12px; -} - -.mytheme .v-colorpicker-popup [class$="sliders"] .v-widget { - width: 100% !important; - vertical-align: middle; -} - -.mytheme .v-colorpicker-popup [class$="sliders"] .v-has-caption { - white-space: nowrap; - padding-left: 48px; -} - -.mytheme .v-colorpicker-popup [class$="sliders"] .v-caption { - display: inline-block; - margin-left: -48px; - width: 48px; -} - -.mytheme .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-has-caption { - padding-left: 80px; -} - -.mytheme .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-caption { - margin-left: -80px; - width: 80px; -} - -.mytheme .v-colorpicker-popup .v-slider-red .v-slider-base:after { - background: red; - border: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-colorpicker-popup .v-slider-green .v-slider-base:after { - background: green; - border: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-colorpicker-popup .v-slider-blue .v-slider-base:after { - background: blue; - border: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-colorpicker-popup .v-margin-bottom { - padding-bottom: 0; -} - -.mytheme .v-colorpicker-popup .resize-button { - width: 100% !important; - height: auto !important; - text-align: center; - outline: none; -} - -.mytheme .v-colorpicker-popup .resize-button:before { - font-family: ThemeIcons; - content: "\f141"; -} - -.mytheme .v-colorpicker-popup .resize-button-caption { - display: none; -} - -.mytheme .v-colorpicker-popup .v-horizontallayout { - height: auto !important; - padding: 9px 0; - background-color: #fafafa; - border-top: 1px solid #ededed; -} - -.mytheme .v-colorpicker-popup .v-horizontallayout .v-expand { - overflow: visible; -} - -.mytheme .v-colorpicker-popup .v-horizontallayout .v-button { - width: 80% !important; -} - -.mytheme .v-colorpicker-preview { - width: 100% !important; - height: auto !important; - padding: 9px; - display: inline-flex; -} - -.mytheme .v-colorpicker-preview-textfield { - height: auto !important; - text-align: center; - border: none; -} - -.mytheme .v-colorpicker { - width: auto; -} - -.mytheme .v-colorpicker-button-color { - position: absolute; - top: 6px; - right: 6px; - bottom: 6px; - left: 6px; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.5); - max-width: 23px; -} - -.mytheme .v-colorpicker-button-color + .v-button-caption:not(:empty) { - margin-left: 19px; -} - -.mytheme .v-panel { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - overflow: visible !important; -} - -.mytheme .v-panel-caption { - box-sizing: border-box; - padding: 0 12px; - line-height: 36px; - border-bottom: 1px solid #d5d5d5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #f6f6f6 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #f6f6f6 98%); - color: #464646; - font-weight: 400; - font-size: 14px; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - border-radius: 3px 3px 0 0; -} - -.mytheme .v-panel-content { - box-sizing: border-box; - width: 100%; - height: 100%; -} - -.mytheme .v-panel-content > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-panel-content > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-panel-content > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-panel-content > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-panel-borderless { - background: transparent; - color: inherit; - border: none; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-panel-borderless > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; - padding: 0; - margin: 0 12px; - border-bottom: none; -} - -.mytheme .v-panel-well { - background: #f5f5f5; - color: #454545; - -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - border-radius: 4px; - border: 1px solid #c5c5c5; -} - -.mytheme .v-panel-well > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-panel-scroll-divider > [class*="-captionwrap"] { - position: relative; - z-index: 2; -} - -.mytheme .v-panel-scroll-divider > [class*="-captionwrap"]:after { - content: ""; - position: absolute; - bottom: -1px; - right: 0; - left: 0; - height: 0; - border-top: 1px solid #dfdfdf; - border-color: rgba(197, 197, 197, 0.5); -} - -.mytheme .v-panel-scroll-divider > [class*="-content"]:before { - content: ""; - position: absolute; - z-index: 2; - top: 0; - height: 0; - border-top: 1px solid #fafafa; - left: 0; - right: 0; -} - -.mytheme .v-panel-caption.v-horizontallayout { - height: auto !important; - line-height: 0; -} - -.mytheme .v-panel-caption.v-horizontallayout .v-slot { - vertical-align: middle; -} - -.mytheme .v-panel-caption.v-horizontallayout .v-label { - line-height: 37px; -} - -.mytheme .v-accordion { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #f4f4f4 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #f4f4f4 98%); - overflow: hidden; -} - -.mytheme .v-accordion-item { - position: relative; -} - -.mytheme .v-accordion-item:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} - -.mytheme .v-accordion-item:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -.mytheme .v-accordion-item:last-child [class*="item-content"] { - border-radius: inherit; -} - -.mytheme .v-accordion-item[class*="item-open"]:last-child > div > .v-caption { - border-radius: 0; -} - -.mytheme .v-accordion-item:not([class*="item-open"]):last-child > div > .v-caption { - border-bottom: none; - margin-bottom: 0; -} - -.mytheme .v-accordion-item[class*="item-open"] + [class*="item"] { - border-top: 1px solid #d9d9d9; -} - -.mytheme .v-accordion-item-caption { - border-radius: inherit; -} - -.mytheme .v-accordion-item-caption > .v-caption { - box-sizing: border-box; - padding: 0 12px; - line-height: 36px; - border-bottom: 1px solid #d5d5d5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #f6f6f6 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #f6f6f6 98%); - color: #464646; - font-weight: 400; - font-size: 14px; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - display: block; - background: transparent; - border-bottom-color: #c9c9c9; - border-radius: inherit; - cursor: pointer; - position: relative; -} - -.mytheme .v-accordion-item-caption > .v-caption:hover:before, .mytheme .v-accordion-item-caption > .v-caption:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.mytheme .v-accordion-item-caption > .v-caption:hover:before { - background-color: rgba(186, 186, 186, 0.1); - border: none; -} - -.mytheme .v-accordion-item-caption > .v-caption:active:before { - background-color: rgba(125, 125, 125, 0.2); -} - -.mytheme .v-accordion-item-content { - -webkit-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05); - background-color: white; - box-sizing: border-box; -} - -.mytheme .v-accordion-item-content > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-accordion-item-content > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-accordion-item-content > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-accordion-item-content > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-accordion-borderless { - border: none; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; -} - -.mytheme .v-accordion-borderless > .v-accordion-item, .mytheme .v-accordion-borderless > .v-accordion-item > div > .v-caption, .mytheme .v-accordion-borderless > .v-accordion-item > .v-accordion-item-content { - border-radius: 0; -} - -.mytheme .v-select-twincol { - white-space: normal; -} - -.mytheme .v-select-twincol select { - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.mytheme .v-select-twincol select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-select-twincol .v-textfield, .mytheme .v-select-twincol .v-nativebutton { - width: auto !important; - margin-top: 9px; -} - -.mytheme .v-select-twincol .v-nativebutton { - margin-left: 9px; -} - -.mytheme .v-select-twincol-caption-left, .mytheme .v-select-twincol-caption-right { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; -} - -.mytheme .v-select-twincol-buttons { - white-space: nowrap; - display: inline-block; - vertical-align: top; - position: relative; - min-width: 3.5em; -} - -.mytheme .v-select-twincol-buttons .v-button { - box-sizing: border-box; - display: inline-block; - vertical-align: top; - text-align: left; - white-space: normal; - position: absolute; - left: 9px; - right: 9px; - top: 36px; - padding: 0; - text-align: center; -} - -.mytheme .v-select-twincol-buttons .v-button:first-child { - top: 0; -} - -.mytheme .v-select-twincol-buttons .v-button-caption { - display: none; -} - -.mytheme .v-select-twincol-buttons .v-button:focus { - z-index: 1; -} - -.mytheme .v-select-twincol-buttons .v-button:first-child { - border-radius: 4px 4px 0 0; -} - -.mytheme .v-select-twincol-buttons .v-button:last-child { - border-radius: 0 0 4px 4px; -} - -.mytheme .v-select-twincol-buttons .v-button-wrap:before { - font-family: ThemeIcons; - content: "\f053"; -} - -.mytheme .v-select-twincol-buttons .v-button:first-child .v-button-wrap:before { - font-family: ThemeIcons; - content: "\f054"; -} - -.mytheme .v-select-twincol-error .v-select-twincol-options, .mytheme .v-select-twincol-error .v-select-twincol-selections { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-select-twincol-error-info .v-select-twincol-options, .mytheme .v-select-twincol-error-info .v-select-twincol-selections { - border-color: #00a7f5 !important; - background: #fafdff; - color: #195774; -} - -.mytheme .v-select-twincol-error-warning .v-select-twincol-options, .mytheme .v-select-twincol-error-warning .v-select-twincol-selections { - border-color: #fc9c00 !important; - background: #fffdfa; - color: #745119; -} - -.mytheme .v-select-twincol-error-error .v-select-twincol-options, .mytheme .v-select-twincol-error-error .v-select-twincol-selections { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-select-twincol-error-critical .v-select-twincol-options, .mytheme .v-select-twincol-error-critical .v-select-twincol-selections { - border-color: #fa007d !important; - background: #fffafc; - color: #741947; -} - -.mytheme .v-select-twincol-error-system .v-select-twincol-options, .mytheme .v-select-twincol-error-system .v-select-twincol-selections { - border-color: #bb00ff !important; - background: #fefaff; - color: #5c1974; -} - -.mytheme .v-select select { - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.mytheme .v-select select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-select-select { - display: block; -} - -.mytheme .v-select-select + .v-textfield { - width: auto !important; - margin-top: 9px; -} - -.mytheme .v-select-select + .v-textfield + .v-nativebutton { - margin-top: 9px; - margin-left: 9px; -} - -.mytheme .v-select-error .v-select-select { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-calendar-header-day { - font-weight: 400; - text-align: center; - padding: 7px 0; -} - -.mytheme .v-calendar-header-week .v-calendar-back, .mytheme .v-calendar-header-week .v-calendar-next { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - background: transparent; - border: none; - padding: 0; - margin: 0; - cursor: pointer; - outline: none; - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-calendar-header-week .v-calendar-back:focus, .mytheme .v-calendar-header-week .v-calendar-next:focus { - outline: none; -} - -.mytheme .v-calendar-header-week .v-calendar-back:hover, .mytheme .v-calendar-header-week .v-calendar-next:hover { - opacity: 1; - filter: none ; -} - -.mytheme .v-calendar-header-week .v-calendar-back:active, .mytheme .v-calendar-header-week .v-calendar-next:active { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-calendar-header-week .v-calendar-back:before { - font-family: ThemeIcons; - content: "\f053"; -} - -.mytheme .v-calendar-header-week .v-calendar-next:before { - font-family: ThemeIcons; - content: "\f054"; -} - -.mytheme .v-calendar-month { - outline: none; - overflow: hidden; -} - -.mytheme .v-calendar-month td { - vertical-align: top; -} - -.mytheme .v-calendar-week-number { - cursor: pointer; - width: 20px; - text-align: center; - font-size: 0.8em; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-calendar-week-number:hover { - opacity: 1; - filter: none ; -} - -.mytheme .v-calendar-month-day { - outline: none; - box-sizing: border-box; - line-height: 1.2; -} - -.mytheme .v-calendar-bottom-spacer, .mytheme .v-calendar-spacer, .mytheme .v-calendar-bottom-spacer-empty { - height: 19px; - margin-bottom: 3px; -} - -.mytheme .v-calendar-bottom-spacer { - font-size: 0.8em; - padding: 0 5px; - cursor: pointer; -} - -.mytheme .v-calendar-bottom-spacer:hover { - color: #197de1; -} - -.mytheme .v-calendar-day-number { - line-height: 25px; - font-size: 16px; - text-align: right; - margin: 0 5px; - white-space: nowrap; - border-top: 1px solid #f2f2f2; - cursor: pointer; -} - -.mytheme .v-calendar-day-number:hover { - color: #197de1; -} - -.mytheme .v-calendar-month-day-today { - background: #eef3f8; -} - -.mytheme .v-calendar-month-day-today .v-calendar-day-number { - font-weight: 400; - color: #197de1; - border-top: 2px solid #197de1; - line-height: 24px; - margin: 0; - padding: 0 5px; -} - -.mytheme .v-calendar-month-day-selected { - background-color: #e3edf7; -} - -.mytheme .v-calendar-month-day-dragemphasis { - background-color: #a8a8a8; -} - -.mytheme .v-calendar-month-day-scrollable { - overflow-y: scroll; -} - -.mytheme .v-calendar-weekly-longevents { - margin-left: 50px; - border-bottom: 3px solid #e0e0e0; -} - -.mytheme .v-calendar-weekly-longevents .v-calendar-event-all-day { - height: 22px; - line-height: 1.6; - margin-bottom: 3px; -} - -.mytheme .v-calendar-header-week td { - vertical-align: middle !important; -} - -.mytheme .v-calendar-header-week .v-calendar-header-day { - cursor: pointer; -} - -.mytheme .v-calendar-times { - width: 50px; - font-size: 0.77em; - line-height: 1; - white-space: nowrap; -} - -.mytheme .v-calendar-time { - text-align: right; - padding-right: 9px; - margin-top: -6px; - padding-bottom: 6px; -} - -.mytheme .v-calendar-day-times, .mytheme .v-calendar-day-times-today { - outline: none; - border-right: 1px solid transparent; -} - -.mytheme .v-calendar-day-times:focus, .mytheme .v-calendar-day-times-today:focus { - outline: none; -} - -.mytheme .v-calendar .v-datecellslot, .mytheme .v-calendar .v-datecellslot-even { - border-top: 1px solid #dfdfdf; -} - -.mytheme .v-calendar .v-datecellslot:first-child, .mytheme .v-calendar .v-datecellslot-even:first-child { - border-top-color: transparent; -} - -.mytheme .v-calendar .v-datecellslot { - border-top-style: dotted; -} - -.mytheme .v-calendar .v-datecellslot, .mytheme .v-calendar .v-datecellslot-even { - margin-right: 5px; -} - -.mytheme .v-calendar-current-time { - background: #197de1; - line-height: 1px; - pointer-events: none; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-calendar-current-time:before { - content: "\2022"; - color: #197de1; - font-size: 22px; - margin-left: -0.07em; -} - -.mytheme .v-calendar .v-daterange { - position: relative; -} - -.mytheme .v-calendar .v-daterange:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: -1px; - left: 0; - background: #197de1; - opacity: 0.5; - filter: alpha(opacity=50) ; - border-radius: 4px 4px 0 0; -} - -.mytheme .v-calendar .v-daterange + .v-daterange { - border-color: transparent; -} - -.mytheme .v-calendar .v-daterange + .v-daterange:before { - border-radius: 0; -} - -.mytheme .v-calendar-event { - font-size: 0.85em; - overflow: hidden; - cursor: pointer; - outline: none; - border-radius: 4px; -} - -.mytheme .v-calendar-event:focus { - outline: none; -} - -.mytheme .v-calendar-event-month { - padding: 0 5px; - box-sizing: border-box; - margin-bottom: 3px; - white-space: nowrap; - text-overflow: ellipsis; - height: 19px; - line-height: 19px; -} - -.mytheme .v-calendar-event-month .v-calendar-event-time { - float: right; - font-size: 0.9em; - line-height: 19px; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-calendar-event-month:before { - content: "\25cf"; - margin-right: 0.2em; -} - -.mytheme .v-calendar-event-all-day { - padding: 0 5px; - box-sizing: border-box; - height: 19px; - line-height: 19px; - border-radius: 0; - margin-left: -1px; - white-space: nowrap; -} - -.mytheme .v-calendar-event-all-day:before { - content: ""; -} - -.mytheme .v-calendar-event-start { - overflow: visible; - margin-left: 0; -} - -.mytheme .v-calendar-event-start.v-calendar-event-continued-to, .mytheme .v-calendar-event-start.v-calendar-event-end { - overflow: hidden; - text-overflow: ellipsis; -} - -.mytheme .v-calendar-event-start { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - margin-left: 5px; -} - -.mytheme .v-calendar-event-end { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - margin-right: 5px; -} - -.mytheme .v-calendar-event-caption { - font-weight: 500; - line-height: 1.2; - padding: 5px 0; - position: absolute; - overflow: hidden; - right: 9px; - left: 5px; - bottom: 0; - top: 0; -} - -.mytheme .v-calendar-event-caption span { - font-weight: 300; - white-space: nowrap; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event { - overflow: visible; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event-content { - margin-top: -1px; - border-radius: 5px; - border: 1px solid #fafafa; - padding-top: 3px; - margin-right: 5px; -} - -.mytheme .v-calendar-event-month:before { - color: #00ace0; -} - -.mytheme .v-calendar-event-all-day { - background-color: #c8eaf4; - background-color: rgba(200, 234, 244, 0.8); - color: #00ace0; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event { - color: #00ace0; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event .v-calendar-event-content { - background-color: #c8eaf4; - background-color: rgba(200, 234, 244, 0.8); -} - -.mytheme .v-calendar-event-month[class*="color2"]:before { - color: #2d9f19; -} - -.mytheme .v-calendar-event-all-day[class*="color2"] { - background-color: #d1e7cd; - background-color: rgba(209, 231, 205, 0.8); - color: #2d9f19; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color2"] { - color: #2d9f19; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color2"] .v-calendar-event-content { - background-color: #d1e7cd; - background-color: rgba(209, 231, 205, 0.8); -} - -.mytheme .v-calendar-event-month[class*="color3"]:before { - color: #d18100; -} - -.mytheme .v-calendar-event-all-day[class*="color3"] { - background-color: #f1e1c8; - background-color: rgba(241, 225, 200, 0.8); - color: #d18100; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color3"] { - color: #d18100; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color3"] .v-calendar-event-content { - background-color: #f1e1c8; - background-color: rgba(241, 225, 200, 0.8); -} - -.mytheme .v-calendar-event-month[class*="color4"]:before { - color: #ce3812; -} - -.mytheme .v-calendar-event-all-day[class*="color4"] { - background-color: #f1d3cb; - background-color: rgba(241, 211, 203, 0.8); - color: #ce3812; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color4"] { - color: #ce3812; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color4"] .v-calendar-event-content { - background-color: #f1d3cb; - background-color: rgba(241, 211, 203, 0.8); -} - -.mytheme .v-calendar-event-month[class*="color5"]:before { - color: #2d55cd; -} - -.mytheme .v-calendar-event-all-day[class*="color5"] { - background-color: #d1d9f1; - background-color: rgba(209, 217, 241, 0.8); - color: #2d55cd; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color5"] { - color: #2d55cd; -} - -.mytheme .v-calendar-week-wrapper .v-calendar-event[class*="color5"] .v-calendar-event-content { - background-color: #d1d9f1; - background-color: rgba(209, 217, 241, 0.8); -} - -.mytheme .v-calendar.v-disabled * { - cursor: default; -} - -.mytheme .v-label { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - -.mytheme .v-label.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-label-undef-w { - white-space: nowrap; -} - -.mytheme h1, .mytheme .v-label-h1, .mytheme h2, .mytheme .v-label-h2, .mytheme h3, .mytheme .v-label-h3 { - line-height: 1.1; - font-weight: 200; - color: #141414; -} - -.mytheme h1, .mytheme .v-label-h1 { - font-size: 2.4em; - margin-top: 1.4em; - margin-bottom: 1em; - - letter-spacing: -0.03em; -} - -.mytheme h2, .mytheme .v-label-h2 { - font-size: 1.6em; - - margin-top: 1.6em; - margin-bottom: 0.77em; - letter-spacing: -0.02em; -} - -.mytheme h3, .mytheme .v-label-h3 { - font-size: 1.2em; - - margin-top: 1.8em; - margin-bottom: 0.77em; - letter-spacing: 0; -} - -.mytheme h4, .mytheme .v-label-h4 { - line-height: 1.1; - font-weight: 500; - font-size: 14px; - color: #414141; - text-transform: uppercase; - letter-spacing: 0; - margin-top: 2.4em; - margin-bottom: 0.8em; -} - -.mytheme .v-csslayout > h1:first-child, .mytheme .v-csslayout > h2:first-child, .mytheme .v-csslayout > h3:first-child, .mytheme .v-csslayout > h4 > .v-label-h1:first-child, .mytheme .v-csslayout > .v-label-h2:first-child, .mytheme .v-csslayout > .v-label-h3:first-child, .mytheme .v-csslayout > .v-label-h4:first-child { - margin-top: 16px; -} - -.mytheme .v-verticallayout > .v-slot:first-child h1, .mytheme .v-verticallayout > .v-slot:first-child .v-label-h1, .mytheme .v-verticallayout > .v-slot:first-child h2, .mytheme .v-verticallayout > .v-slot:first-child .v-label-h2, .mytheme .v-verticallayout > .v-slot:first-child h3, .mytheme .v-verticallayout > .v-slot:first-child .v-label-h3, .mytheme .v-verticallayout > .v-slot:first-child h4, .mytheme .v-verticallayout > .v-slot:first-child .v-label-h4, .mytheme .v-verticallayout > div > .v-slot:first-child h1, .mytheme .v-verticallayout > div > .v-slot:first-child .v-label-h1, .mytheme .v-verticallayout > div > .v-slot:first-child h2, .mytheme .v-verticallayout > div > .v-slot:first-child .v-label-h2, .mytheme .v-verticallayout > div > .v-slot:first-child h3, .mytheme .v-verticallayout > div > .v-slot:first-child .v-label-h3, .mytheme .v-verticallayout > div > .v-slot:first-child h4, .mytheme .v-verticallayout > div > .v-slot:first-child .v-label-h4 { - margin-top: 16px; -} - -.mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h1, .mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h2, .mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h3, .mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h4, .mytheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h4, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h1, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h2, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h3, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h4, .mytheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h4 { - margin-top: -0.5em; -} - -.mytheme h1.no-margin, .mytheme .v-label-h1.no-margin, .mytheme h2.no-margin, .mytheme .v-label-h2.no-margin, .mytheme h3.no-margin, .mytheme .v-label-h3.no-margin, .mytheme h4.no-margin, .mytheme .v-label-h4.no-margin { - margin: 0 !important; -} - -.mytheme .v-label-colored { - color: #197de1; -} - -.mytheme .v-label-large { - font-size: 20px; -} - -.mytheme .v-label-small { - font-size: 14px; -} - -.mytheme .v-label-tiny { - font-size: 12px; -} - -.mytheme .v-label-huge { - font-size: 26px; -} - -.mytheme .v-label-bold { - font-weight: 500; -} - -.mytheme .v-label-light { - font-weight: 200; - color: #7d7d7d; -} - -.mytheme .v-label-align-right { - text-align: right; -} - -.mytheme .v-label-align-center { - text-align: center; -} - -.mytheme .v-label-spinner { - height: 24px !important; - width: 24px !important; - box-sizing: border-box; - border: 2px solid rgba(25, 125, 225, 0.2); - border-top-color: #197de1; - border-right-color: #197de1; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; -} - -.mytheme .v-label-success, .mytheme .v-label-failure { - background: white; - color: #474747; - border: 2px solid #2c9720; - border-radius: 4px; - padding: 7px 19px 7px 37px; - font-weight: 400; - font-size: 15px; -} - -.mytheme .v-label-success:before, .mytheme .v-label-failure:before { - font-family: ThemeIcons; - content: "\f00c"; - margin-right: 0.5em; - margin-left: -19px; - color: #2c9720; -} - -.mytheme .v-label-failure { - border-color: #ed473b; -} - -.mytheme .v-label-failure:before { - content: "\f05e"; - color: #ed473b; -} - -.mytheme [draggable=true] { - -khtml-user-drag: element; - -webkit-user-drag: element; -} - -.mytheme .v-ddwrapper { - position: relative; -} - -.mytheme .v-ddwrapper-over:before, .mytheme .v-ddwrapper-over:after { - content: ""; - position: absolute; - z-index: 10; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; - border: 0 solid #197de1; -} - -.mytheme .v-ddwrapper-over-top:before { - border-top-width: 2px; -} - -.mytheme .v-ddwrapper-over-right:before { - border-right-width: 2px; -} - -.mytheme .v-ddwrapper-over-bottom:before { - border-bottom-width: 2px; -} - -.mytheme .v-ddwrapper-over-left:before { - border-left-width: 2px; -} - -.mytheme .no-vertical-drag-hints .v-ddwrapper-over-top:before, .mytheme .no-vertical-drag-hints.v-ddwrapper-over-top:before { - border-top-width: 0; -} - -.mytheme .no-vertical-drag-hints .v-ddwrapper-over-top:after, .mytheme .no-vertical-drag-hints.v-ddwrapper-over-top:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #8abef2; -} - -.mytheme .no-vertical-drag-hints .v-ddwrapper-over-bottom:before, .mytheme .no-vertical-drag-hints.v-ddwrapper-over-bottom:before { - border-bottom-width: 0; -} - -.mytheme .no-vertical-drag-hints .v-ddwrapper-over-bottom:after, .mytheme .no-vertical-drag-hints.v-ddwrapper-over-bottom:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #8abef2; -} - -.mytheme .no-horizontal-drag-hints.v-ddwrapper-over-left:before, .mytheme .no-horizontal-drag-hints .v-ddwrapper-over-left:before { - border-left-width: 0; -} - -.mytheme .no-horizontal-drag-hints.v-ddwrapper-over-left:after, .mytheme .no-horizontal-drag-hints .v-ddwrapper-over-left:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #8abef2; -} - -.mytheme .no-horizontal-drag-hints.v-ddwrapper-over-right:before, .mytheme .no-horizontal-drag-hints .v-ddwrapper-over-right:before { - border-right-width: 0; -} - -.mytheme .no-horizontal-drag-hints.v-ddwrapper-over-right:after, .mytheme .no-horizontal-drag-hints .v-ddwrapper-over-right:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #8abef2; -} - -.mytheme .v-ddwrapper-over-middle:after, .mytheme .v-ddwrapper-over-center:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #8abef2; -} - -.mytheme .no-box-drag-hints.v-ddwrapper:after, .mytheme .no-box-drag-hints .v-ddwrapper:after { - display: none !important; - content: none; -} - -.mytheme button { - font: inherit; - font-weight: 400; - line-height: 1.55; -} - -.mytheme .v-nativebutton { - -webkit-touch-callout: none; -} - -.mytheme .v-select select { - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.mytheme .v-select select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); - box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5); -} - -.mytheme .v-select-select { - display: block; -} - -.mytheme .v-select-select + .v-textfield { - width: auto !important; - margin-top: 9px; -} - -.mytheme .v-select-select + .v-textfield + .v-nativebutton { - margin-top: 9px; - margin-left: 9px; -} - -.mytheme .v-select-error .v-select-select { - border-color: #ed473b !important; - background: #fffbfb; - color: #6c2621; -} - -.mytheme .v-popupview { - cursor: pointer; - color: #197de1; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-popupview:hover { - color: #4396ea; -} - -.mytheme .v-popupview.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.mytheme .v-popupview-popup { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; -} - -.mytheme .v-popupview-popup[class*="animate-in"] { - -webkit-animation: v-popupview-animate-in 120ms; - -moz-animation: v-popupview-animate-in 120ms; - animation: v-popupview-animate-in 120ms; -} - -.mytheme .v-popupview-popup[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.mytheme .v-popupview-popup .popupContent > .v-margin-top { - padding-top: 12px; -} - -.mytheme .v-popupview-popup .popupContent > .v-margin-right { - padding-right: 12px; -} - -.mytheme .v-popupview-popup .popupContent > .v-margin-bottom { - padding-bottom: 12px; -} - -.mytheme .v-popupview-popup .popupContent > .v-margin-left { - padding-left: 12px; -} - -.mytheme .v-popupview-loading { - margin: 12px 12px; - height: 24px !important; - width: 24px !important; - box-sizing: border-box; - border: 2px solid rgba(25, 125, 225, 0.2); - border-top-color: #197de1; - border-right-color: #197de1; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; -} - -.mytheme .v-richtextarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 37px; - border-radius: 4px; - padding: 0; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - overflow: hidden; -} - -.mytheme .v-richtextarea[class*="prompt"] { - color: #a3a3a3; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - border-bottom: 1px solid #c5c5c5; - color: #464646; -} - -.mytheme .v-richtextarea .gwt-ToggleButton, .mytheme .v-richtextarea .gwt-PushButton { - display: inline-block; - line-height: 37px; - width: 37px; - text-align: center; - outline: none; -} - -.mytheme .v-richtextarea .gwt-ToggleButton:hover, .mytheme .v-richtextarea .gwt-PushButton:hover { - color: black; -} - -.mytheme .v-richtextarea .gwt-ToggleButton-down, .mytheme .v-richtextarea .gwt-ToggleButton-down-hovering { - background-color: #e0e0e0; - background-image: -webkit-linear-gradient(bottom, #e0e0e0 2%, #dcdcdc 98%); - background-image: linear-gradient(to top,#e0e0e0 2%, #dcdcdc 98%); -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top img { - display: none; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div:before { - font-family: ThemeIcons; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Bold"]:before { - content: "\f032"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Italic"]:before { - content: "\f033"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Underline"]:before { - content: "\f0cd"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Subscript"]:before { - content: "\f12c"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Superscript"]:before { - content: "\f12b"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Left Justify"]:before { - content: "\f036"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Center"]:before { - content: "\f037"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Right Justify"]:before { - content: "\f038"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Strikethrough"]:before { - content: "\f0cc"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Right"]:before { - content: "\f03c"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Left"]:before { - content: "\f03b"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Horizontal Rule"]:before { - content: "\2014"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Ordered List"]:before { - content: "\f0cb"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Unordered List"]:before { - content: "\f0ca"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Image"]:before { - content: "\f03e"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Create Link"]:before { - content: "\f0c1"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Link"]:before { - content: "\f127"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Formatting"]:before { - content: "\f12d"; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-bottom { - font-size: 13px; - padding: 0 9px 9px 0; -} - -.mytheme .v-richtextarea .gwt-RichTextToolbar-bottom select { - margin: 9px 0 0 9px; -} - -.mytheme .v-richtextarea .gwt-RichTextArea { - background: #fff; - border: none; - display: block; -} - -.mytheme .v-richtextarea-readonly { - padding: 5px 7px; - background: transparent; -} - -.mytheme .v-upload .v-button { - box-sizing: border-box; - display: inline-block; - vertical-align: top; - text-align: left; - white-space: normal; -} - -.mytheme .v-upload-immediate .v-button { - width: 100%; -} - -.mytheme .v-upload-immediate input[type="file"] { - opacity: 0; - filter: alpha(opacity=0) ; - z-index: -1; - position: absolute; - right: 0; - height: 37px; - text-align: right; - border: none; - background: transparent; -} - -.mytheme .v-Notification.v-position-top { - top: 12px; -} - -.mytheme .v-Notification.v-position-right { - right: 12px; -} - -.mytheme .v-Notification.v-position-bottom { - bottom: 12px; -} - -.mytheme .v-Notification.v-position-left { - left: 12px; -} - -.mytheme .v-Notification.v-position-assistive { - top: -9999px; - left: -9999px; -} - -.mytheme .v-Notification-animate-in { - -webkit-animation: valo-animate-in-fade 180ms 10ms backwards; - -moz-animation: valo-animate-in-fade 180ms 10ms backwards; - animation: valo-animate-in-fade 180ms 10ms backwards; -} - -.mytheme .v-Notification-animate-in.v-position-top { - -webkit-animation: valo-animate-in-slide-down 400ms 10ms backwards; - -moz-animation: valo-animate-in-slide-down 400ms 10ms backwards; - animation: valo-animate-in-slide-down 400ms 10ms backwards; -} - -.mytheme .v-Notification-animate-in.v-position-bottom { - -webkit-animation: valo-animate-in-slide-up 400ms 10ms backwards; - -moz-animation: valo-animate-in-slide-up 400ms 10ms backwards; - animation: valo-animate-in-slide-up 400ms 10ms backwards; -} - -.mytheme .v-Notification-animate-out { - -webkit-animation: valo-animate-out-fade 150ms; - -moz-animation: valo-animate-out-fade 150ms; - animation: valo-animate-out-fade 150ms; -} - -.mytheme .v-Notification-animate-out.v-position-top, .mytheme .v-Notification-animate-out.v-position-bottom { - -webkit-animation: valo-animate-out-slide-down-fade 200ms; - -moz-animation: valo-animate-out-slide-down-fade 200ms; - animation: valo-animate-out-slide-down-fade 200ms; -} - -.mytheme .v-Notification { - border-radius: 4px; - text-align: center; - position: fixed !important; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - background: white; - -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15); - box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15); - padding: 19px 22px; -} - -.mytheme .v-Notification .v-Notification-caption { - color: #197de1; - font-size: 19px; - line-height: 1; -} - -.mytheme .v-Notification .v-Notification-description { - line-height: 1.4; -} - -.mytheme .v-Notification-caption { - margin: 0; - display: inline-block; - text-align: left; - font-weight: inherit; - line-height: inherit; - white-space: nowrap; - letter-spacing: 0; -} - -.mytheme .v-Notification-description, .mytheme .v-Notification-details { - margin: 0; - display: inline-block; - vertical-align: middle; - max-width: 30em; - text-align: left; - max-height: 20em; - overflow: auto; -} - -.mytheme .v-Notification-caption ~ .v-Notification-description, .mytheme .v-Notification-caption ~ .v-Notification-details { - margin-left: 24px; -} - -.mytheme .v-icon + .v-Notification-caption { - margin-left: 16px; -} - -.mytheme .v-Notification-system { - left: 0 !important; - right: 0; - max-width: 100%; - margin: 0 !important; - border-radius: 0; - -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - padding: 12px 15px; - background-color: #444; - background-color: rgba(68, 68, 68, 0.9); - font-weight: 400; - line-height: 22px; -} - -.mytheme .v-Notification-system .v-Notification-description, .mytheme .v-Notification-system .v-Notification-details { - max-width: 50em; -} - -.mytheme .v-Notification-system.v-position-top { - top: 0; -} - -.mytheme .v-Notification-system.v-position-top[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-down 300ms 10ms backwards; - animation: valo-animate-in-slide-down 300ms 10ms backwards; -} - -.mytheme .v-Notification-system.v-position-top[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-up 200ms; - -moz-animation: valo-animate-out-slide-up 200ms; - animation: valo-animate-out-slide-up 200ms; -} - -.mytheme .v-Notification-system.v-position-bottom { - bottom: 0; -} - -.mytheme .v-Notification-system.v-position-bottom[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-up 300ms 10ms backwards; - animation: valo-animate-in-slide-up 300ms 10ms backwards; -} - -.mytheme .v-Notification-system.v-position-bottom[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-down 200ms; - -moz-animation: valo-animate-out-slide-down 200ms; - animation: valo-animate-out-slide-down 200ms; -} - -.mytheme .v-Notification-system .v-Notification-caption { - color: #fff; - vertical-align: middle; -} - -.mytheme .v-Notification-system .v-Notification-description, .mytheme .v-Notification-system .v-Notification-details { - color: #e6e6e6; -} - -.mytheme .v-Notification-system u { - text-decoration: none; -} - -.mytheme .v-Notification.tray { - text-align: left; -} - -.mytheme .v-Notification.tray .v-Notification-caption + .v-Notification-description { - display: block; - margin: 0.5em 0 0; -} - -.mytheme .v-Notification.warning { - background: #FFF3D2; -} - -.mytheme .v-Notification.warning .v-Notification-caption { - color: #AC7C00; -} - -.mytheme .v-Notification.warning .v-Notification-description { - color: #9D874D; -} - -.mytheme .v-Notification.error { - background: #ed473b; - font-weight: 400; - -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); - box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); - padding-right: 59px; - overflow: hidden !important; - cursor: pointer; -} - -.mytheme .v-Notification.error .v-Notification-caption { - color: white; -} - -.mytheme .v-Notification.error .v-Notification-description { - color: #f4e0df; -} - -.mytheme .v-Notification.error:after { - content: "\00d7"; - font-size: 1.5em; - position: absolute; - top: 50%; - margin-top: -12px; - right: 12px; - width: 25px; - height: 25px; - line-height: 24px; - cursor: pointer; - color: #000; - opacity: 0.5; - filter: alpha(opacity=50) ; - text-align: center; - border: 1px solid #000; - border-color: rgba(0, 0, 0, 0.3); - border-radius: 50%; - -webkit-transition: opacity 200ms; - -moz-transition: opacity 200ms; - transition: opacity 200ms; -} - -.mytheme .v-Notification.error:hover:after { - opacity: 1; - filter: none ; -} - -.mytheme .v-Notification.error:active:after { - background-color: #000; - color: #fff; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - -webkit-transition: none 200ms; - -moz-transition: none 200ms; - transition: none 200ms; -} - -.mytheme .v-Notification.error:after { - color: #fff; - border-color: #fff; - border-color: rgba(255, 255, 255, 0.3); -} - -.mytheme .v-Notification.error:active:after { - background-color: #fff; - color: #000; -} - -.mytheme .v-Notification.dark { - background-color: #444; - background-color: rgba(68, 68, 68, 0.9); - font-weight: 400; - line-height: 22px; -} - -.mytheme .v-Notification.dark .v-Notification-caption { - color: #fff; - vertical-align: middle; -} - -.mytheme .v-Notification.dark .v-Notification-description, .mytheme .v-Notification.dark .v-Notification-details { - color: #e6e6e6; -} - -.mytheme .v-Notification.bar { - left: 0 !important; - right: 0; - max-width: 100%; - margin: 0 !important; - border-radius: 0; - -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - padding: 12px 15px; -} - -.mytheme .v-Notification.bar .v-Notification-description, .mytheme .v-Notification.bar .v-Notification-details { - max-width: 50em; -} - -.mytheme .v-Notification.bar.v-position-top { - top: 0; -} - -.mytheme .v-Notification.bar.v-position-top[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-down 300ms 10ms backwards; - animation: valo-animate-in-slide-down 300ms 10ms backwards; -} - -.mytheme .v-Notification.bar.v-position-top[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-up 200ms; - -moz-animation: valo-animate-out-slide-up 200ms; - animation: valo-animate-out-slide-up 200ms; -} - -.mytheme .v-Notification.bar.v-position-bottom { - bottom: 0; -} - -.mytheme .v-Notification.bar.v-position-bottom[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-up 300ms 10ms backwards; - animation: valo-animate-in-slide-up 300ms 10ms backwards; -} - -.mytheme .v-Notification.bar.v-position-bottom[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-down 200ms; - -moz-animation: valo-animate-out-slide-down 200ms; - animation: valo-animate-out-slide-down 200ms; -} - -.mytheme .v-Notification.small { - padding: 11px 13px; -} - -.mytheme .v-Notification.small .v-Notification-caption { - font-size: 16px; -} - -.mytheme .v-Notification.small .v-Notification-description { - font-size: 14px; -} - -.mytheme .v-Notification.critical-error { - background: #ed473b; - font-weight: 400; - -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); - box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); -} - -.mytheme .v-Notification.critical-error .v-Notification-caption { - color: white; -} - -.mytheme .v-Notification.critical-error .v-Notification-description { - color: #f4e0df; -} - -.mytheme .v-Notification.closable { - padding-right: 59px; - overflow: hidden !important; - cursor: pointer; -} - -.mytheme .v-Notification.closable:after { - content: "\00d7"; - font-size: 1.5em; - position: absolute; - top: 50%; - margin-top: -12px; - right: 12px; - width: 25px; - height: 25px; - line-height: 24px; - cursor: pointer; - color: #000; - opacity: 0.5; - filter: alpha(opacity=50) ; - text-align: center; - border: 1px solid #000; - border-color: rgba(0, 0, 0, 0.3); - border-radius: 50%; - -webkit-transition: opacity 200ms; - -moz-transition: opacity 200ms; - transition: opacity 200ms; -} - -.mytheme .v-Notification.closable:hover:after { - opacity: 1; - filter: none ; -} - -.mytheme .v-Notification.closable:active:after { - background-color: #000; - color: #fff; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - -webkit-transition: none 200ms; - -moz-transition: none 200ms; - transition: none 200ms; -} - -.mytheme .v-Notification.closable.dark:after, .mytheme .v-Notification.closable.critical-error:after, .mytheme .v-Notification.closable.system:after { - color: #fff; - border-color: #fff; - border-color: rgba(255, 255, 255, 0.3); -} - -.mytheme .v-Notification.closable.dark:active:after, .mytheme .v-Notification.closable.critical-error:active:after, .mytheme .v-Notification.closable.system:active:after { - background-color: #fff; - color: #000; -} - -.mytheme .v-Notification.closable.tray:after { - top: 16px; - margin-top: 0; -} - -.mytheme .v-Notification.success, .mytheme .v-Notification.failure { - background: #fff; - color: #555; - border: 2px solid #2c9720; -} - -.mytheme .v-Notification.success .v-Notification-caption, .mytheme .v-Notification.failure .v-Notification-caption { - color: #2c9720; - font-weight: 400; -} - -.mytheme .v-Notification.success .v-Notification-caption:before, .mytheme .v-Notification.failure .v-Notification-caption:before { - font-family: ThemeIcons; - content: "\f00c"; - margin-right: 0.5em; -} - -.mytheme .v-Notification.success.bar, .mytheme .v-Notification.failure.bar { - margin: -2px !important; -} - -.mytheme .v-Notification.failure { - border-color: #ed473b; -} - -.mytheme .v-Notification.failure .v-Notification-caption { - color: #ed473b; -} - -.mytheme .v-Notification.failure .v-Notification-caption:before { - content: "\f05e"; -} - -.mytheme .valo-menu { - height: 100%; - background-color: #4b4b4b; - background-image: -webkit-linear-gradient(right, #414141 0%, #4b4b4b 9px); - background-image: linear-gradient(to left,#414141 0%, #4b4b4b 9px); - color: #a5a5a5; - font-size: 14px; - line-height: 30px; - border-right: 1px solid #3b3b3b; - white-space: nowrap; -} - -.mytheme .valo-menu-toggle { - display: none; - position: fixed; - z-index: 200; - top: 3px; - left: 3px; - min-width: 0; -} - -.mytheme .valo-menu-part { - border-left: 1px solid #414141; - height: 100%; - padding-bottom: 37px; - overflow: auto; -} - -.mytheme .valo-menu-part:first-child { - border-left: none; -} - -.mytheme .valo-menu-title, .mytheme .valo-menu-subtitle, .mytheme .valo-menu-item { - display: block; - line-height: inherit; - white-space: nowrap; - position: relative; -} - -.mytheme .valo-menu-title .valo-menu-badge, .mytheme .valo-menu-subtitle .valo-menu-badge, .mytheme .valo-menu-item .valo-menu-badge { - position: absolute; - right: 19px; -} - -.mytheme .valo-menu-title { - line-height: 1.2; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - padding: 12px 19px; - font-size: 14px; - border-bottom: 1px solid #1362b1; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - text-align: center; -} - -.mytheme .valo-menu-title .v-menubar.v-menubar { - background: transparent; - border-color: #1362b1; - color: inherit; - -webkit-box-shadow: none; - box-shadow: none; - text-shadow: inherit; -} - -.mytheme .valo-menu-title .v-menubar-menuitem { - background: transparent; - -webkit-box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca; - box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca; - text-shadow: inherit; - font-size: 16px; - border-color: inherit; -} - -.mytheme .valo-menu-title h1, .mytheme .valo-menu-title .v-label-h1, .mytheme .valo-menu-title h2, .mytheme .valo-menu-title .v-label-h2, .mytheme .valo-menu-title h3, .mytheme .valo-menu-title .v-label-h3, .mytheme .valo-menu-title h4, .mytheme .valo-menu-title .v-label-h4 { - margin-top: 0; - margin-bottom: 0; - color: inherit; -} - -.mytheme .v-menubar-user-menu { - border: none; - border-radius: 0; - padding: 1px; - -webkit-box-shadow: none; - box-shadow: none; - text-shadow: none; - background: transparent; - color: inherit; - margin: 19px 7px; - display: block; - overflow: hidden; - text-align: center; - height: auto; - color: inherit; -} - -.mytheme .v-menubar-user-menu:focus:after { - display: none; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem { - -webkit-box-shadow: none; - box-shadow: none; - border: none; - margin-right: 1px; - border-radius: 4px; - color: #197de1; - padding: 0 12px; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem:first-child, .mytheme .v-menubar-user-menu .v-menubar-menuitem:last-child, .mytheme .v-menubar-user-menu .v-menubar-menuitem:first-child:last-child { - border-radius: 4px; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem:before { - content: none; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem:hover { - color: #4396ea; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem:active { - color: inherit; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem-checked, .mytheme .v-menubar-user-menu .v-menubar-menuitem-checked:first-child { - border: 1px solid #c5c5c5; - color: #197de1; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .mytheme .v-menubar-user-menu .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { - position: relative; - top: -1px; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem-selected { - color: #ecf2f8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem-selected:hover { - color: #ecf2f8; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem-disabled, .mytheme .v-menubar-user-menu .v-menubar-menuitem-disabled:hover { - color: inherit; -} - -.mytheme .v-menubar-user-menu > .v-menubar-menuitem { - color: inherit; - white-space: normal; - line-height: 1.4; - margin: 0; -} - -.mytheme .v-menubar-user-menu > .v-menubar-menuitem img.v-icon { - width: 56px; - height: 56px; - border-radius: 29px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - display: block; - margin: 0 auto 0.3em; - border: 1px solid #c5c5c5; -} - -.mytheme .v-menubar-user-menu > .v-menubar-menuitem:after { - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.mytheme .v-menubar-user-menu .v-menubar-menuitem-selected { - background: transparent; -} - -.mytheme .valo-menu-subtitle { - color: #868686; - margin: 7px 0 7px 19px; - border-bottom: 1px solid #666666; -} - -.mytheme .valo-menu-subtitle [class*="badge"] { - color: #73a5d7; -} - -.mytheme .valo-menuitems { - display: block; -} - -.mytheme .valo-menu-item { - outline: none; - font-weight: 400; - padding: 0 37px 0 19px; - cursor: pointer; - position: relative; - overflow: hidden; - text-shadow: 0 2px 0 rgba(0, 0, 0, 0.05); - -webkit-transition: background-color 300ms, color 60ms; - -moz-transition: background-color 300ms, color 60ms; - transition: background-color 300ms, color 60ms; -} - -.mytheme .valo-menu-item [class*="caption"] { - vertical-align: middle; - display: inline-block; - width: 90%; - max-width: 15em; - padding-right: 19px; - text-overflow: ellipsis; - overflow: hidden; -} - -.mytheme .valo-menu-item [class*="badge"] { - color: #73a5d7; -} - -.mytheme .valo-menu-item.selected { - background: #434343; -} - -.mytheme .valo-menu-item.selected .v-icon { - color: #197de1; -} - -.mytheme .valo-menu-item.selected [class*="badge"] { - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: #c8dbed; -} - -.mytheme .valo-menu-item:focus, .mytheme .valo-menu-item:hover, .mytheme .valo-menu-item.selected { - color: white; -} - -.mytheme .valo-menu-item span.v-icon { - min-width: 1em; - margin-right: 19px; - text-align: center; - vertical-align: middle; - -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(black), to(rgba(0, 0, 0, 0.75))); -} - -.mytheme .valo-menu-item span.v-icon + span { - margin-left: 0; -} - -.mytheme .valo-menu-item [class*="badge"] { - background-color: #585858; - -webkit-transition: background-color 300ms; - -moz-transition: background-color 300ms; - transition: background-color 300ms; - line-height: 1; - padding: 4px 6px; - min-width: 11px; - text-align: center; - top: 4px; - border-radius: 4px; -} - -.mytheme .valo-menu-part.large-icons { - background-color: #4b4b4b; - min-width: 74px; - max-width: 111px; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-title { - font-size: 12px; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-title .v-label-undef-w { - white-space: normal; -} - -.mytheme .valo-menu-part.large-icons .v-menubar-user-menu { - margin-left: 0; - margin-right: 0; - font-size: 11px; -} - -.mytheme .valo-menu-part.large-icons .v-menubar-user-menu img.v-icon { - width: 28px; - height: 28px; -} - -.mytheme .valo-menu-part.large-icons [class*="subtitle"] { - margin: 9px 0 0; - padding: 7px 25px 7px 9px; - line-height: 1; - border: none; - text-overflow: ellipsis; - overflow: hidden; - background: #3c3c3c; - font-size: 13px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.mytheme .valo-menu-part.large-icons [class*="subtitle"] [class*="badge"] { - right: 9px; -} - -.mytheme .valo-menu-part.large-icons [class*="subtitle"] + .valo-menu-item { - border-top: none; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item { - display: block; - font-size: 26px; - line-height: 1; - padding: 12px; - text-align: center; - border-top: 1px solid #555555; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item:first-child { - border-top: none; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item [class*="caption"] { - display: block; - width: auto; - margin: 0.3em 0 0; - padding: 0; - font-size: 11px; - line-height: 1.3; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item .v-icon { - margin: 0; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item span.v-icon { - opacity: 0.8; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item.selected { - background: #434343; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item.selected .v-icon { - opacity: 1; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item.selected [class*="badge"] { - border-color: #434343; -} - -.mytheme .valo-menu-part.large-icons .valo-menu-item [class*="badge"] { - padding-left: 4px; - padding-right: 4px; - top: 7px; - right: 7px; - border: 2px solid #4b4b4b; -} - -.mytheme .valo-menu-logo { - display: block; - overflow: hidden; - width: 44px !important; - height: 44px; - border-radius: 4px; - text-align: center; - background-color: #197de1; - background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%); - background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%); - color: white; - font-size: 25px; - line-height: 44px; - margin: 19px auto; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.mytheme .valo-menu-logo:focus { - outline: none; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part { - background-color: #4b4b4b; - min-width: 74px; - max-width: 111px; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title { - font-size: 12px; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title .v-label-undef-w { - white-space: normal; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu { - margin-left: 0; - margin-right: 0; - font-size: 11px; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu img.v-icon { - width: 28px; - height: 28px; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] { - margin: 9px 0 0; - padding: 7px 25px 7px 9px; - line-height: 1; - border: none; - text-overflow: ellipsis; - overflow: hidden; - background: #3c3c3c; - font-size: 13px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] [class*="badge"] { - right: 9px; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] + .valo-menu-item { - border-top: none; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item { - display: block; - font-size: 26px; - line-height: 1; - padding: 12px; - text-align: center; - border-top: 1px solid #555555; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item:first-child { - border-top: none; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="caption"] { - display: block; - width: auto; - margin: 0.3em 0 0; - padding: 0; - font-size: 11px; - line-height: 1.3; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item .v-icon { - margin: 0; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item span.v-icon { - opacity: 0.8; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected { - background: #434343; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected .v-icon { - opacity: 1; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected [class*="badge"] { - border-color: #434343; -} - -.mytheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="badge"] { - padding-left: 4px; - padding-right: 4px; - top: 7px; - right: 7px; - border: 2px solid #4b4b4b; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] { - padding-top: 37px; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .v-loading-indicator { - top: 37px; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] > .v-widget { - position: relative !important; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu { - border-right: none; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-part { - overflow: visible; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-toggle { - display: inline-block; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-title { - position: fixed; - z-index: 100; - top: 0; - left: 0; - right: 0; - height: 37px !important; - padding-top: 0; - padding-bottom: 0; - -webkit-backface-visibility: hidden; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu { - position: fixed; - z-index: 100; - top: 0; - right: 0; - margin: 0; - padding: 0; - height: 37px; - color: #97bee5; - max-width: 30%; - -webkit-backface-visibility: hidden; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem { - line-height: 36px; - white-space: nowrap; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu img.v-icon { - display: inline-block; - margin: 0 6px 0 0; - width: 19px; - height: 19px; - border-radius: 10px; - border: none; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menuitems { - height: 100%; - background-color: #4b4b4b; - background-image: -webkit-linear-gradient(right, #414141 0%, #4b4b4b 9px); - background-image: linear-gradient(to left,#414141 0%, #4b4b4b 9px); - color: #a5a5a5; - font-size: 14px; - line-height: 30px; - border-right: 1px solid #3b3b3b; - white-space: nowrap; - position: fixed; - z-index: 9000; - top: 37px; - bottom: 0; - height: auto; - max-width: 100%; - overflow: auto; - padding: 19px 0; - -webkit-transform: translatex(-100%); - -moz-transform: translatex(-100%); - -ms-transform: translatex(-100%); - -o-transform: translatex(-100%); - transform: translatex(-100%); - -webkit-transition: all 300ms; - -moz-transition: all 300ms; - transition: all 300ms; -} - -.mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-visible .valo-menuitems, .mytheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-hover:hover .valo-menuitems { - -webkit-transform: translatex(0%); - -moz-transform: translatex(0%); - -ms-transform: translatex(0%); - -o-transform: translatex(0%); - transform: translatex(0%); -} - -.mytheme .valo-menu-responsive[width-range~="0-500px"] .valo-menu-toggle .v-button-caption { - display: none; -} - -.mytheme .valo-menu-responsive[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { - display: inline-block; - width: 19px; - overflow: hidden; -} - -.mytheme .portlet-footer { - font-size: 9pt; - text-align: right; - padding-top: 50px; -} \ No newline at end of file diff --git a/offer-manager-domain/pom.xml b/offer-manager-domain/pom.xml index b66356d3b..317521bb4 100644 --- a/offer-manager-domain/pom.xml +++ b/offer-manager-domain/pom.xml @@ -7,7 +7,7 @@ offer-manager life.qbic - 1.0.0-alpha.6 + 1.0.0-beta.1 diff --git a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Converter.groovy b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Converter.groovy index 2d760d918..97df8539b 100644 --- a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Converter.groovy +++ b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Converter.groovy @@ -49,6 +49,10 @@ class Converter { builder.associatedProject(offer.associatedProject.get()) } + if(offer.experimentalDesign.isPresent()){ + builder.experimentalDesign(offer.experimentalDesign.get()) + } + return builder.build() } static Offer buildOfferForCostCalculation(List items, @@ -88,6 +92,7 @@ class Converter { offer.projectDescription, offer.items, offer.selectedCustomerAffiliation) + .experimentalDesign(offer.experimentalDesign) .identifier(buildOfferId(offer.identifier)) //ToDo Is this the correct mapping? .creationDate(offer.modificationDate) diff --git a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Offer.groovy b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Offer.groovy index 1a016f58a..bb8a7ccc8 100644 --- a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Offer.groovy +++ b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/Offer.groovy @@ -10,11 +10,8 @@ import life.qbic.datamodel.dtos.business.Customer import life.qbic.datamodel.dtos.business.ProductItem import life.qbic.datamodel.dtos.business.ProjectManager import life.qbic.datamodel.dtos.business.services.DataStorage -import life.qbic.datamodel.dtos.business.services.PrimaryAnalysis import life.qbic.datamodel.dtos.business.services.ProjectManagement import life.qbic.business.offers.identifier.OfferId -import life.qbic.datamodel.dtos.business.services.SecondaryAnalysis -import life.qbic.datamodel.dtos.business.services.Sequencing import life.qbic.datamodel.dtos.projectmanagement.ProjectIdentifier import java.nio.charset.StandardCharsets @@ -59,6 +56,10 @@ class Offer { * A short objective of the project */ private String projectObjective + /** + * A short description of the experimental design of the project + */ + private Optional experimentalDesign /** * A list of items for which the customer will be charged */ @@ -124,6 +125,7 @@ class Offer { ProjectManager projectManager String projectTitle String projectObjective + Optional experimentalDesign List items OfferId identifier Affiliation selectedCustomerAffiliation @@ -139,6 +141,7 @@ class Offer { this.items = [] this.availableVersions = [] this.creationDate = new Date() + this.experimentalDesign = Optional.empty() // Since the incoming item list is mutable we need to // copy all immutable items to out internal list items.each {this.items.add(it)} @@ -171,6 +174,10 @@ class Offer { return this } + Builder experimentalDesign(Optional experimentalDesign){ + this.experimentalDesign = experimentalDesign + return this + } Offer build() { return new Offer(this) @@ -186,6 +193,13 @@ class Offer { this.creationDate = builder.creationDate this.projectManager = builder.projectManager this.projectObjective = builder.projectObjective + + if (builder.experimentalDesign.isPresent()) { + this.experimentalDesign = builder.experimentalDesign + } else { + this.experimentalDesign = Optional.empty() + } + this.projectTitle = builder.projectTitle this.selectedCustomerAffiliation = builder.selectedCustomerAffiliation this.overhead = determineOverhead() @@ -352,6 +366,10 @@ class Offer { return projectObjective } + Optional getExperimentalDesign(){ + return experimentalDesign + } + List getItems() { return items } @@ -470,6 +488,8 @@ class Offer { { //digest crucial offer characteristics digest.update(offer.projectTitle.getBytes(StandardCharsets.UTF_8)) + digest.update(offer.projectObjective.getBytes(StandardCharsets.UTF_8)) + if(offer.experimentalDesign.isPresent()) digest.update(offer.experimentalDesign.get().getBytes(StandardCharsets.UTF_8)) offer.items.each {item -> digest.update(item.product.productName.getBytes(StandardCharsets.UTF_8)) diff --git a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/create/CreateOffer.groovy b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/create/CreateOffer.groovy index c8572ec58..1033b747a 100644 --- a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/create/CreateOffer.groovy +++ b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/create/CreateOffer.groovy @@ -1,5 +1,7 @@ package life.qbic.business.offers.create +import life.qbic.business.logging.Logger +import life.qbic.business.logging.Logging import life.qbic.business.offers.Converter import life.qbic.business.offers.update.UpdateOffer import life.qbic.business.offers.identifier.OfferId @@ -24,6 +26,8 @@ import life.qbic.business.exceptions.DatabaseQueryException */ class CreateOffer implements CreateOfferInput, CalculatePrice, UpdateOfferOutput{ + private static final Logging log = Logger.getLogger(this.class) + private CreateOfferDataSource dataSource private CreateOfferOutput output private UpdateOffer updateOffer @@ -54,6 +58,7 @@ class CreateOffer implements CreateOfferInput, CalculatePrice, UpdateOfferOutput offerContent.projectDescription, offerContent.items, offerContent.selectedCustomerAffiliation) + .experimentalDesign(offerContent.experimentalDesign) .identifier(newOfferId) .build() @@ -68,9 +73,8 @@ class CreateOffer implements CreateOfferInput, CalculatePrice, UpdateOfferOutput } catch (DatabaseQueryException e) { output.failNotification(e.message) } catch (Exception unexpected) { - //TODO use logger facade instead of println - println unexpected.message - println unexpected.stackTrace.join("\n") + log.error(unexpected.message) + log.debug(unexpected.message, unexpected) output.failNotification("An unexpected during the saving of your offer occurred. " + "Please contact ${Constants.QBIC_HELPDESK_EMAIL}.") } diff --git a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/update/UpdateOffer.groovy b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/update/UpdateOffer.groovy index f0421d1a9..df965483c 100644 --- a/offer-manager-domain/src/main/groovy/life/qbic/business/offers/update/UpdateOffer.groovy +++ b/offer-manager-domain/src/main/groovy/life/qbic/business/offers/update/UpdateOffer.groovy @@ -97,6 +97,7 @@ class UpdateOffer{ offer.projectDescription, offer.items, offer.selectedCustomerAffiliation) + .experimentalDesign(offer.experimentalDesign) .identifier(Converter.buildOfferId(offer.identifier)) .build() } diff --git a/offer-manager-domain/src/main/groovy/life/qbic/business/persons/create/CreatePerson.groovy b/offer-manager-domain/src/main/groovy/life/qbic/business/persons/create/CreatePerson.groovy index 0651f0be6..66166bb59 100644 --- a/offer-manager-domain/src/main/groovy/life/qbic/business/persons/create/CreatePerson.groovy +++ b/offer-manager-domain/src/main/groovy/life/qbic/business/persons/create/CreatePerson.groovy @@ -41,10 +41,8 @@ class CreatePerson implements CreatePersonInput, UpdatePersonOutput { } catch(DatabaseQueryException databaseQueryException){ output.failNotification(databaseQueryException.message) } catch(Exception unexpected) { - println "-------------------------" - println "Unexpected Exception ...." - println unexpected.message - println unexpected.stackTrace.join("\n") + log.error("Unexpected Exception: $unexpected.message") + log.debug("Unexpected Exception: $unexpected.message", unexpected) output.failNotification("Could not create new person") } } diff --git a/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/OfferSpec.groovy b/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/OfferSpec.groovy index fcda8a06d..f3d3c0753 100644 --- a/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/OfferSpec.groovy +++ b/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/OfferSpec.groovy @@ -88,7 +88,9 @@ class OfferSpec extends Specification { when: "we create an offer with that id" Offer offer = new Offer.Builder(customerWithAllAffiliations, projectManager, "Awesome Project", "An " + "awesome project", items, internalAffiliation) - .identifier(offerId)build() + .identifier(offerId) + .experimentalDesign(Optional.of("this is a design")) + .build() offer.addAllAvailableVersions(versions) then: "the latest version must be 4" diff --git a/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/create/CreateOfferSpec.groovy b/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/create/CreateOfferSpec.groovy index 874a6244d..909ec785a 100644 --- a/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/create/CreateOfferSpec.groovy +++ b/offer-manager-domain/src/test/groovy/life/qbic/portal/portlet/offers/create/CreateOfferSpec.groovy @@ -74,7 +74,7 @@ class CreateOfferSpec extends Specification { ] Offer offer = new Offer.Builder(customer, projectManager, projectTitle, projectDescription, selectedAffiliation) - .modificationDate(date).expirationDate(date).items([items[0]]) + .modificationDate(date).expirationDate(date).items([items[0]]).experimentalDesign("A design") .build() when: @@ -93,8 +93,8 @@ class CreateOfferSpec extends Specification { List items = [new ProductItem(1,new Sequencing("This is a sequencing package", "a short description",1.4, ProductUnit.PER_SAMPLE, "1")), new ProductItem(1,new Sequencing("This is a sequencing package", "a short description",1.4, ProductUnit.PER_SAMPLE, "1"))] when: - createOffer.calculatePrice(items, new Affiliation.Builder("Test", "", "", "").category - (AffiliationCategory.INTERNAL).build()) + createOffer.calculatePrice(items, new Affiliation.Builder("Test", "", "", "") + .category(AffiliationCategory.INTERNAL).build()) then: 1 * output.calculatedPrice(2.8, 0, 0, 2.8) diff --git a/pom.xml b/pom.xml index 35bb0c971..712f8d014 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ offer-manager-app offer-manager - 1.0.0-alpha.6 + 1.0.0-beta.1 life.qbic The new offer manager http://github.com/qbicsoftware/qOffer_2.0 @@ -19,10 +19,10 @@ 1.8 1.8 - 3.0.7 + 3.0.8 - 8.12.0 - 8.12.0 + 8.12.3 + 8.12.3 @@ -119,7 +119,7 @@ life.qbic data-model-lib - 2.5.0-SNAPSHOT + 2.5.0 com.vaadin diff --git a/qube.cfg b/qube.cfg index 5c68f276a..e15b6ee94 100644 --- a/qube.cfg +++ b/qube.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.0.0-alpha.6 +current_version = 1.0.0-beta.1 [bumpversion_files_whitelisted] dot_qube = .qube.yml @@ -12,3 +12,4 @@ pom = pom.xml ct_sync_level = patch [sync_files_blacklisted] +