
  onTab?: (e: SyntheticKeyboardEvent) => void,
  onUpArrow?: (e: SyntheticKeyboardEvent) => void,
  onDownArrow?: (e: SyntheticKeyboardEvent) => void,

  onBlur?: (e: SyntheticEvent) => void,
  onFocus?: (e: SyntheticEvent) => void,

  // Provide a map of inline style names corresponding to CSS style objects
  // that will be rendered for matching ranges.
  customStyleMap?: Object,

  // Provide a map of block rendering configurations. Each block type maps to
  // an element tag and am optional react element wrapper. This configuration
  // is used for both rendering and paste processing.
  blockRenderMap: DraftBlockRenderMap,
};<commit_msg>Fix a typo in the comment for blockRenderMap<commit_after>/**
 * Copyright (c) 2013-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule DraftEditorProps
 * @flow
 */

'use strict';

import type ContentBlock from 'ContentBlock';
import type {DraftBlockRenderMap} from 'DraftBlockRenderMap';
import type {DraftDragType} from 'DraftDragType';
import type {DraftEditorCommand} from 'DraftEditorCommand';
import type {DraftTextAlignment} from 'DraftTextAlignment';
import type EditorState from 'EditorState';
import type SelectionState from 'SelectionState';

export type DraftEditorProps = {
  /**
   * The two most critical props are `editorState` and `onChange`.
   *
   * The `editorState` prop defines the entire state of the editor, while the
   * `onChange` prop is the method in which all state changes are propagated
   * upward to higher-level components.
   *
   * These props are analagous to `value` and `onChange` in controlled React
   * text inputs.
   */
  editorState: EditorState,
  onChange: (editorState: EditorState) => void,

  placeholder?: string,

  // Specify whether text alignment should be forced in a direction
  // regardless of input characters.
  textAlignment?: DraftTextAlignment,

  // For a given `ContentBlock` object, return an object that specifies
  // a custom block component and/or props. If no object is returned,
  // the default `TextEditorBlock` is used.
  blockRendererFn?: (block: ContentBlock) =>?Object,

  // Function that returns a cx map corresponding to block-level styles.
  blockStyleFn?: (type: number) => string,

  // A function that accepts a synthetic key event and returns
  // the matching DraftEditorCommand constant, or null if no command should
  // be invoked.
  keyBindingFn?: (e: SyntheticKeyboardEvent) =>?string,

  // Set whether the `DraftEditor` component should be editable. Useful for
  // temporarily disabling edit behavior or allowing `DraftEditor` rendering
  // to be used for consumption purposes.
  readOnly?: boolean,

  // Note: spellcheck is always disabled for IE. If enabled in Safari, OSX
  // autocorrect is enabled as well.
  spellCheck?: boolean,

  // Set whether to remove all style information from pasted content. If your
  // use case should not have any block or inline styles, it is recommended
  // that you set this to `true`.
  stripPastedStyles?: boolean,

  tabIndex?: number,

  ariaActiveDescendantID?: string,
  ariaAutoComplete?: string,
  ariaDescribedBy?: string,
  ariaExpanded?: boolean,
  ariaHasPopup?: boolean,
  ariaLabel?: string,
  ariaOwneeID?: string,

  webDriverTestID?: string,

  /**
   * Cancelable event handlers, handled from the top level down. A handler
   * that returns true will be the last handler to execute for that event.
   */

  // Useful for managing special behavior for pressing the `Return` key. E.g.
  // removing the style from an empty list item.
  handleReturn?: (e: SyntheticKeyboardEvent) => boolean,

  // Map a key command string provided by your key binding function to a
  // specified behavior.
  handleKeyCommand?: (command: DraftEditorCommand) => boolean,

  // Handle intended text insertion before the insertion occurs. This may be
  // useful in cases where the user has entered characters that you would like
  // to trigger some special behavior. E.g. immediately converting `:)` to an
  // emoji Unicode character, or replacing ASCII quote characters with smart
  // quotes.
  handleBeforeInput?: (chars: string) => boolean,

  handlePastedText?: (text: string, html?: string) => boolean,

  handlePastedFiles?: (files: Array<Blob>) => boolean,

  // Handle dropped files
  handleDroppedFiles?: (
    selection: SelectionState,
    files: Array<Blob>
  ) => boolean,

  // Handle other drops to prevent default text movement/insertion behaviour
  handleDrop?: (
    selection: SelectionState,
    dataTransfer: Object,
    isInternal: DraftDragType
  ) => boolean,

  /**
   * Non-cancelable event triggers.
   */
  onEscape?: (e: SyntheticKeyboardEvent) => void,
  onTab?: (e: SyntheticKeyboardEvent) => void,
  onUpArrow?: (e: SyntheticKeyboardEvent) => void,
  onDownArrow?: (e: SyntheticKeyboardEvent) => void,

  onBlur?: (e: SyntheticEvent) => void,
  onFocus?: (e: SyntheticEvent) => void,

  // Provide a map of inline style names corresponding to CSS style objects
  // that will be rendered for matching ranges.
  customStyleMap?: Object,

  // Provide a map of block rendering configurations. Each block type maps to
  // an element tag and an optional react element wrapper. This configuration
  // is used for both rendering and paste processing.
  blockRenderMap: DraftBlockRenderMap,
};RI conducts the curriculum courses according to the MOES approval which provides a balance of breadth and depth, and offers a solid educational basis from which graduates may pursue a professional management career. It consists of general educational course work and an area of specialization. The curriculum is continually adjusted to the need of the labor market and to those who want to upgrade their skills required by their jobs. The educational practices at RI are in line with the general aims of the recent macroeconomic planning strategies of the Lao Government.
One of the most popular community events of the year, MAINx24, returns to the Southside this Saturday for a 24-hour long festival celebrating Main Street and the surrounding Southside.
The 15th annual MAINx24 parade and street festival will take place on the Southside on Saturday, Dec. 4, starting at 8 a.m. with breakfast specials. Look for lard fried donuts at Niedlov’s Bakery, breakfast burritos at Conga and breakfast sandwiches to-go from Main Street meats (opens at 9 a.m.). Swing by Smile Studio Orthodontics to take advantage of the waffle bar!
MAINx24 features programming all day long, from parades to music to poetry readings to chili cook-offs, and has become a way to celebrate and showcase the burgeoning Southside.
Thanks to a generous sponsorship from Volkswagen Chattanooga, crossing guards will be located on Main Street at several intersections to increase safety and slow traffic following the parade. Volkswagen employees will assist pedestrians at the crosswalks. Festival-goers are encouraged to obey traffic laws and look for volunteers wearing yellow safety vests and cross Main Street at designated crosswalks.
Behind MAINx24 is an audacious dream: make Chattanooga a 24-hour city. In its first year in 2007, MAINx24 was a project of CreateHere, a five year non-profit initiative based in the Southside. Today, it’s owned, beloved and organized completely by residents, merchants and friends of the Southside community.
The success of MAINx24 is based on the awesome neighbors, businesses and guests of the Southside community. The events are put on by the restaurants, stores, galleries and non-profits.
MAINx24 EPB Southside Parade, Main Street, 10:30 a.m. is the highlight of MAINx24! View the parade on Main Street starting at the Corner of Main and Jefferson Street and traveling West on Main St. through Broad Street.
World Heavyweight Chili Championship & Vendor Market, presented by EPB to support green|spaces, at Office Coordinators, Inc., 11:30 a.m