/*
 Copyright 2020 TATA ELXSI

 Licensed under the Apache License, Version 2.0 (the 'License');
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

 Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
 */
/*Roboto Fonts*/
$roboto-font-path: "~roboto-fontface/fonts" !default;
@import "../../../node_modules/roboto-fontface/css/roboto/sass/roboto-fontface-regular.scss";
/*Custom mixin*/
@import "mixins/mixin.scss";
/*Theme setup color*/
@import "variable";
/*bootstrap styles*/
@import "../../../node_modules/bootstrap/scss/bootstrap.scss";
/*Custom theme styles*/
@import "app.scss";
/*Code Mirror styles*/
@import "../../../node_modules/codemirror/lib/codemirror.css";
@import "../../../node_modules/codemirror/addon/fold/foldgutter.css";
@import "../../../node_modules/codemirror/theme/neat.css";
@import "../../../node_modules/codemirror/theme/material.css";
@import "../../../node_modules/codemirror/addon/dialog/dialog.css";
@import "../../../node_modules/codemirror/addon/display/fullscreen.css";
/*ng-select styles*/
@import "../../../node_modules/@ng-select/ng-select/themes/default.theme.css";
/*Angular notifier styles*/
@import "../../../node_modules/angular-notifier/styles/core.scss";
@import "../../../node_modules/angular-notifier/styles/themes/theme-material.scss";
@import "../../../node_modules/angular-notifier/styles/themes/theme-material.scss";
@import "../../../node_modules/angular-notifier/styles/types/type-success.scss";
@import "../../../node_modules/angular-notifier/styles/types/type-error.scss";
@import "../../../node_modules/angular-notifier/styles/types/type-warning.scss";
@import "../../../node_modules/angular-notifier/styles/types/type-default.scss";
@import "../../../node_modules/angular-notifier/styles/types/type-info.scss";