{
  "properties": [
    {
      "name": "value",
      "type": "null",
      "description": "Binds value property to input"
    },
    {
      "name": "lg",
      "type": "Boolean",
      "description": "Large size - 464px"
    },
    {
      "name": "md",
      "type": "Boolean",
      "description": "Medium size - 252px"
    },
    {
      "name": "sm",
      "type": "Boolean",
      "description": "Small size -  144px"
    },
    {
      "name": "placeholderMd",
      "type": "Boolean",
      "description": "Set placeholder smaller size than usual as 14px"
    },
    {
      "name": "width",
      "type": "String",
      "description": "Setup the width"
    },
    {
      "name": "lang",
      "type": "String",
      "description": "BCP 47 code. Language to be used in the calendar for month names and weekday labels. Can be set globally with $root.locale. This property overrides global setting"
    },
    {
      "name": "label",
      "type": "String",
      "description": "Label at the top of the input"
    },
    {
      "name": "slideLabel",
      "type": "Boolean",
      "description": "Set up slideble input label"
    },
    {
      "name": "placeholder",
      "type": "String",
      "description": "Passed directly to the input"
    },
    {
      "name": "disabled",
      "type": "Boolean",
      "description": "Disable input of calendar"
    },
    {
      "name": "minDate",
      "type": "Date",
      "description": "Earliest selectable day for the calendar"
    },
    {
      "name": "maxDate",
      "type": "Date",
      "description": "Latest selectable day for the calendar"
    },
    {
      "name": "rangeStart",
      "type": "Date",
      "description": "Point of reference for the range property"
    },
    {
      "name": "range",
      "type": "Object",
      "description": "An alternative to minDate/maxDate"
    },
    {
      "name": "position",
      "type": "String",
      "default": "bottom-middle",
      "description": "Forwarded to calendar dropdown position."
    },
    {
      "name": "positionChangeable",
      "type": "Boolean",
      "description": "Set up changeable position of calendar depend on device resolution"
    },
    {
      "name": "fullWidth",
      "type": "Boolean",
      "default": "false",
      "description": "Responsible for full width"
    },
    {
      "name": "textAlign",
      "type": "String",
      "default": "left",
      "description": "Used to specify the horizontal alignment of text"
    },
    {
      "name": "iconSize",
      "type": "String",
      "default": "18px",
      "description": "Size for icon"
    },
    {
      "name": "iconColor",
      "type": "String",
      "default": "gray-400",
      "description": "Icon color variable name or a CSS value"
    },
    {
      "name": "iconPadding",
      "type": "String",
      "description": "Set icon padding"
    },
    {
      "name": "activeIcon",
      "type": "Boolean",
      "default": "false",
      "description": "When setup as true allow dispatch 'icon-click' event when click on Icon"
    },
    {
      "name": "borderColorDesktop",
      "type": "String",
      "description": "Set border color for desktop calendar"
    },
    {
      "name": "backgroundColor",
      "type": "String",
      "description": "Set background color of calendar backdrop"
    },
    {
      "name": "backdropOpacity",
      "type": "String",
      "description": "Set opacity of calendar backdrop"
    },
    {
      "name": "wrapperStyleObject",
      "type": "Object",
      "description": "Styles object responsible for styles which will be applied to calendar wrapper"
    },
    {
      "name": "validators",
      "type": "Array<Object>",
      "description": " Array of validator Objects. When multiple validators fail, only one error is displayed, determined by their order in the array. Each Object should have three fields:",
      "subProperty": [
        {
          "name": "name",
          "type": "String",
          "description": "Validator id"
        },
        {
          "name": "message",
          "type": "String",
          "description": "Error message that shown when validation fails"
        },
        {
          "name": "validator",
          "type": "Function",
          "description": " Function that takes input value as an argument and returns Boolean"
        }
      ]
    },
    {
      "name": "showErrors",
      "type": "Boolean",
      "default": "true",
      "description": "Responsible for showing error message"
    },
    {
      "name": "secondDate",
      "type": "null",
      "description": "Binds secondDate property to input with value property when rangeAvailable set as true"
    },
    {
      "name": "rangeAvailable",
      "type": "Boolean",
      "description": "Allowed select date range"
    },
    {
      "name": "selectDayList",
      "type": "Boolean",
      "description": "Allowed display on desktop version of calendar sidebar on right side with list days for select of date range"
    },
    {
      "name": "dayListPositive",
      "type": "Boolean",
      "default": "true",
      "description": "Set positive or negative days list range depend on the value"
    },
    {
      "name": "shortMonthFormat",
      "type": "Boolean",
      "description": "Set as true for displaying date in next format: 23 Nov 2019"
    },
    {
      "name": "iconLeft",
      "type": "Boolean",
      "description": "Display the icon on the left side instead of default right side"
    },
    {
      "name": "marginDropdown",
      "type": "Number",
      "default": "4",
      "description": "Set a space between input and dropdown of calendar"
    },
    {
      "name": "backlight",
      "type": "Boolean",
      "default": "false",
      "description": "Allow backlight for input when this prop equal as true"
    },
    {
      "name": "inputBorderBacklight",
      "type": "Boolean",
      "description": "Backlight input border when calendar is open"
    },
    {
      "name": "autoInitialize",
      "type": "Boolean",
      "default": "true",
      "description": "Responsible for auto initialize value of Calendar's input"
    },
    {
      "name": "editableMode",
      "type": "Boolean",
      "default": "false",
      "description": "Allow manually writing date inside input of Calendar"
    },
    {
      "name": "name",
      "type": "String",
      "description": "With this property calendar will be listening to validation with current value for e.g. 'validateTest'"
    },
    {
      "name": "validationClose",
      "type": "Boolean",
      "description": "When property is active validation will be triggered on close of dropdown or dialog"
    },
    {
      "name": "usualModal",
      "type": "Boolean",
      "default": "false",
      "description": "Display usual modal window and set displayActions to true for datepicker in modal mode"
    },
    {
      "name": "alt",
      "type": "Boolean",
      "default": "false",
      "description": "Set alternative styles for calendar"
    },
    {
      "name": "iconDefault",
      "type": "String",
      "default": "calendar",
      "description": "Set default icon inside input"
    },
    {
      "name": "iconClearActive",
      "type": "Boolean",
      "default": "true",
      "description": "Responsible for displaying close icon and functionality that's related to it"
    },
    {
      "name": "iconDefaultActive",
      "type": "Boolean",
      "default": "false",
      "description": "Responsible for switch open calendar state by click on icon, this prop is required for proper work activeIcon prop set as true"
    }
  ],
  "events": [
    {
      "name": "calendarVisible",
      "description": "Dispatched when calendar visible state is changed"
    },
    {
      "name": "inputFocus",
      "description": "Triggered when the input field of Calendar Component will dispatch focus event"
    },
    {
      "name": "inputBlur",
      "description": "Triggered when the input field of Calendar Component will dispatch blur event"
    },
    {
      "name": "icon-click",
      "description": "Dispatched when Icon get click and activeIcon prop is true"
    },
    {
      "name": "input",
      "description": "Emitted for updating the value props"
    },
    {
      "name": "update:secondDate",
      "description": "Emitted for updating the secondDate props"
    },
    {
      "name": "validation",
      "description": "Emitted when triggered the validate event"
    },
    {
      "name": "maxSelectedDate",
      "description": "Emitted when value and secondDate properties are defined, that's allow define is max selected date"
    },
    {
      "name": "minSelectedDate",
      "description": "Emitted when value and secondDate properties are defined, that's allow define is min selected date"
    }
  ]
}
