
/*
 * Copyright 2017-present Open Networking Foundation

 * 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.
 */


import {xosHeader} from './header/header';
import {xosFooter} from './footer/footer';
import {xosNav} from './nav/nav';
import routesConfig from './routes';
import {xosLogin} from './login/login';
import {xosTable} from './table/table';
import {XosRuntimeStates} from './services/runtime-states';
import {IXosNavigationService} from './services/navigation';
import {PageTitle} from './services/page-title';
import {ConfigHelpers} from './services/helpers/config.helpers';
import {xosLinkWrapper} from './link-wrapper/link-wrapper';
import {XosFormHelpers} from './form/form-helpers';
import {xosForm} from './form/form';
import {xosField} from './field/field';
import 'angular-toastr';
import 'angular-sanitize';
import {xosAlert} from './alert/alert';
import {xosValidation} from './validation/validation';
import {xosSidePanel} from './side-panel/side-panel';
import {XosSidePanel} from './side-panel/side-panel.service';
import {XosComponentInjector} from './services/helpers/component-injector.helpers';
import {XosKeyboardShortcut} from './services/keyboard-shortcut';
import {xosKeyBindingPanel} from './key-binding/key-binding-panel';
import {xosPagination} from './pagination/pagination';
import {PaginationFilter} from './pagination/pagination.filter';
import {XosDebouncer} from './services/helpers/debounce.helper';
import {ArrayToListFilter} from './table/array-to-list.filter';
import {xosLoader} from './loader/loader';
import {xosDebugSummary} from './debug/debug-summary';
import {XosDebugService} from './debug/debug.service';
import {xosDebugModel} from './debug/debug-model';
import {xosConfirm} from './confirm/confirm';
import {XosConfirm} from './confirm/confirm.service';
import {xosServiceStatus} from './service-status/service-status';
import {XosVersionReaderService} from './services/version-reader';

export const xosCore = 'xosCore';

angular
  .module('xosCore', [
    'ngSanitize',
    'ui.router',
    'toastr',
    'ui.bootstrap.typeahead',
    'ui.bootstrap.tabs',
  ])
  .config(routesConfig)
  .provider('XosRuntimeStates', XosRuntimeStates)
  .service('XosNavigationService', IXosNavigationService)
  .service('PageTitle', PageTitle)
  .service('XosFormHelpers', XosFormHelpers)
  .service('ConfigHelpers', ConfigHelpers)
  .service('XosSidePanel', XosSidePanel)
  .service('XosKeyboardShortcut', XosKeyboardShortcut)
  .service('XosComponentInjector', XosComponentInjector)
  .service('XosDebouncer', XosDebouncer)
  .service('XosDebug', XosDebugService)
  .service('XosConfirm', XosConfirm)
  .service('XosVersionReaderService', XosVersionReaderService)
  .directive('xosLinkWrapper', xosLinkWrapper)
  .component('xosHeader', xosHeader)
  .component('xosFooter', xosFooter)
  .component('xosNav', xosNav)
  .component('xosLogin', xosLogin)
  .component('xosLoader', xosLoader)
  .component('xosPagination', xosPagination)
  .component('xosTable', xosTable)
  .component('xosForm', xosForm)
  .component('xosField', xosField)
  .component('xosAlert', xosAlert)
  .component('xosValidation', xosValidation)
  .component('xosSidePanel', xosSidePanel)
  .component('xosKeyBindingPanel', xosKeyBindingPanel)
  .component('xosDebugSummary', xosDebugSummary)
  .component('xosDebugModel', xosDebugModel)
  .component('xosConfirm', xosConfirm)
  .component('serviceStatus', xosServiceStatus)
  .filter('pagination', PaginationFilter)
  .filter('arrayToList', ArrayToListFilter);
