Home Manual Reference Source

src/EditorFacade.js

import { editorLogger as logger } from './configuration/LoggerConfig';
import { Editor } from './Editor';
import * as DefaultConfiguration from './configuration/DefaultConfiguration';
import Constants from './configuration/Constants';
import * as NetworkInterface from './recognizer/rest/networkInterface';

/**
 * Attach an Editor to a DOMElement
 * @param {Element} element DOM element to attach an editor
 * @param {Configuration} [configuration] Configuration to apply
 * @param {PenStyle} [penStyle] Pen style to apply
 * @param {Theme} [theme] Theme to apply
 * @param {Behaviors} [behaviors] Custom behaviors to apply
 * @return {Editor} New editor
 */
export function register(element, configuration, penStyle, theme, behaviors) {
  logger.debug('Registering a new editor');
  return new Editor(element, configuration, penStyle, theme, behaviors);
}

/**
 * Return the list of available recognition languages
 * @param {Configuration} configuration Current configuration
 * @param {Boolean} [sortByValue=true] True if the language list should be sort by value, false otherwise
 * @return {Promise.<Object>} A list of languages available for the current configuration
 */
export function getAvailableLanguageList(configuration, sortByValue = true) {
  const innerConfiguration = DefaultConfiguration.overrideDefaultConfiguration(configuration);
  const data = {
    applicationKey: innerConfiguration.recognitionParams.server.applicationKey,
    sortByValue
  };

  switch (innerConfiguration.recognitionParams.type) {
    case Constants.RecognitionType.TEXT:
      data.inputMode = innerConfiguration.recognitionParams.v3.textParameter.textInputMode;
      break;
    case Constants.RecognitionType.ANALYZER:
      data.inputMode = innerConfiguration.recognitionParams.v3.analyzerParameter.textParameter.textInputMode;
      break;
    default:
      break;
  }

  const suffixUrl = innerConfiguration.recognitionParams.apiVersion === 'V3' ? 'api/v3.0/recognition/rest/text/availableLanguageList.json' : 'api/v4.0/iink/availableLanguageList.json';

  return NetworkInterface.get({}, `${innerConfiguration.recognitionParams.server.scheme}://${innerConfiguration.recognitionParams.server.host}/${suffixUrl}`, data);
}