constructor(properties) {
    super(properties);

    let value;

    if (has(properties, 'valueLink')) {
      value = properties.valueLink.value;
    } else if (has(properties, 'value')) {
      value = properties.value;
    } else if (has(properties, 'defaultValue')) {
      value = properties.defaultValue;
    }

    this.state = {
      value,
      focusedValue: undefined,
      generalProps: sanitizeWrapperProps(properties),
      characterProps: sanitizeCharacterProps(properties.characterProps),
      isFocus: false,
      isActive: false,
    };

    this.preventFocusStyleForTouchAndClick = has(properties, 'preventFocusStyleForTouchAndClick') ? properties.preventFocusStyleForTouchAndClick : config.preventFocusStyleForTouchAndClick;
  }
Rating component

The component leverages 5 characters (by default stars) to allow the user to
to rate.