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

export default {
  EDIT_CONFIG: 'EDIT_CONFIG',
  LOADING_CONFIG: 'LOADING_CONFIG',
  EDIT_OPTION: 'EDIT_OPTION',
  CANCEL_EDIT: 'CANCEL_EDIT',
  SAVING_OPTION: 'SAVING_OPTION',
  OPTION_SAVE_SUCCESS: 'OPTION_SAVE_SUCCESS',
  OPTION_SAVE_FAILURE: 'OPTION_SAVE_FAILURE',
  DELETING_OPTION: 'DELETING_OPTION',
  OPTION_DELETE_SUCCESS: 'OPTION_DELETE_SUCCESS',
  OPTION_DELETE_FAILURE: 'OPTION_DELETE_FAILURE',
  ADDING_OPTION: 'ADDING_OPTION',
  OPTION_ADD_SUCCESS: 'OPTION_ADD_SUCCESS',
  OPTION_ADD_FAILURE: 'OPTION_ADD_FAILURE'
};
