const CalendarProps = [ { name: 'modelValue', type: 'any', default: 'null', description: 'Value of the component.' }, { name: 'selectionMode', type: 'string', default: 'single', description: 'Defines the quantity of the selection, valid values are "single", "multiple" and "range".' }, { name: 'dateFormat', type: 'string', default: 'null', description: 'Format of the date. Defaults to PrimeVue Locale configuration.' }, { name: 'inline', type: 'boolean', default: 'false', description: 'When enabled, displays the calendar as inline instead of an overlay.' }, { name: 'showOtherMonths', type: 'boolean', default: 'true', description: 'Whether to display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use the selectOtherMonths option.' }, { name: 'selectOtherMonths', type: 'boolean', default: 'false', description: 'Whether days in other months shown before or after the current month are selectable. This only applies if the showOtherMonths option is set to true.' }, { name: 'showIcon', type: 'boolean', default: 'false', description: 'When enabled, displays a button with icon next to input.' }, { name: 'icon', type: 'string', default: 'null', description: 'Icon of the calendar button.' }, { name: 'previousIcon', type: 'string', default: 'null', description: 'Icon to show in the previous button.' }, { name: 'nextIcon', type: 'string', default: 'null', description: 'Icon to show in the next button.' }, { name: 'incrementIcon', type: 'string', default: 'null', description: 'Icon to show in each of the increment buttons.' }, { name: 'decrementIcon', type: 'string', default: 'null', description: 'Icon to show in each of the decrement buttons.' }, { name: 'numberOfMonths', type: 'number', default: '1', description: 'Number of months to display.' }, { name: 'view', type: 'string', default: 'date', description: 'Type of view to display, valid valids are "date" for datepicker and "month" for month picker.' }, { name: 'touchUI', type: 'boolean', default: 'false', description: 'When enabled, calendar overlay is displayed as optimized for touch devices.' }, { name: 'monthNavigator', type: 'boolean', default: 'false', description: 'Whether the month should be rendered as a dropdown instead of text.' }, { name: 'yearNavigator', type: 'boolean', default: 'false', description: 'Whether the year should be rendered as a dropdown instead of text.' }, { name: 'yearRange', type: 'string', default: 'null', description: 'The range of years displayed in the year drop-down in (nnnn:nnnn) format such as (2000:2020).' }, { name: 'panelClass', type: 'string', default: 'null', description: 'Style class of the datetimepicker panel.' }, { name: 'minDate', type: 'Date', default: 'null', description: 'The minimum selectable date.' }, { name: 'maxDate', type: 'Date', default: 'null', description: 'The maximum selectable date.' }, { name: 'disabledDates', type: 'array', default: 'null', description: 'Array with dates to disable.' }, { name: 'disabledDays', type: 'array', default: 'null', description: 'Array with disabled weekday numbers.' }, { name: 'maxDateCount', type: 'number', default: 'null', description: 'Maximum number of selectable dates in multiple mode.' }, { name: 'showOnFocus', type: 'boolean', default: 'true', description: 'When disabled, datepicker will not be visible with input focus.' }, { name: 'autoZIndex', type: 'boolean', default: 'true', description: 'Whether to automatically manage layering.' }, { name: 'baseZIndex', type: 'number', default: '0', description: 'Base zIndex value to use in layering.' }, { name: 'showButtonBar', type: 'boolean', default: 'false', description: 'Whether to display today and clear buttons at the footer' }, { name: 'shortYearCutoff', type: 'string', default: '+10', description: 'The cutoff year for determining the century for a date.' }, { name: 'showTime', type: 'boolean', default: 'false', description: 'Whether to display timepicker.' }, { name: 'timeOnly', type: 'boolean', default: 'false', description: 'Whether to display timepicker only.' }, { name: 'hourFormat', type: 'string', default: '24', description: 'Specifies 12 or 24 hour format.' }, { name: 'stepHour', type: 'number', default: '1', description: 'Hours to change per step.' }, { name: 'stepMinute', type: 'number', default: '1', description: 'Minutes to change per step.' }, { name: 'stepSeconds', type: 'number', default: '1', description: 'Seconds to change per step.' }, { name: 'showSeconds', type: 'boolean', default: 'false', description: 'Whether to show the seconds in time picker.' }, { name: 'hideOnDateTimeSelect', type: 'boolean', default: 'false', description: 'Whether to hide the overlay on date selection when showTime is enabled.' }, { name: 'hideOnRangeSelection', type: 'boolean', default: 'false', description: 'Whether to hide the overlay on date selection is completed when selectionMode is range.' }, { name: 'timeSeparator', type: 'string', default: ':', description: 'Separator of time selector.' }, { name: 'showWeek', type: 'boolean', default: 'false', description: 'When enabled, calendar will show week numbers.' }, { name: 'manualInput', type: 'boolean', default: 'true', description: 'Whether to allow entering the date manually via typing.' }, { name: 'appendTo', type: 'string', default: 'body', description: 'A valid query selector or an HTMLElement to specify where the overlay gets attached. Special keywords are "body" for document body and "self" for the element itself.' }, { name: 'disabled', type: 'boolean', default: 'false', description: 'When present, it specifies that the element should be disabled.' }, { name: 'readonly', type: 'boolean', default: 'false', description: 'When present, it specifies that an input field is read-only.' }, { name: 'placeholder', type: 'string', default: 'null', description: 'Placeholder text for the input.' }, { name: 'id', type: 'string', default: 'null', description: 'Identifier of the element.' }, { name: 'inputId', type: 'string', default: 'null', description: 'Identifier of the underlying input element.' }, { name: 'inputClass', type: 'string | object', default: 'null', description: 'Style class of the input field.' }, { name: 'inputStyle', type: 'object', default: 'null', description: 'Inline style of the input field.' }, { name: 'inputProps', type: 'object', default: 'null', description: 'Used to pass all properties of the HTMLInputElement to the focusable input element inside the component.' }, { name: 'panelClass', type: 'string | object', default: 'null', description: 'Style class of the overlay panel.' }, { name: 'panelStyle', type: 'object', default: 'null', description: 'Inline style of the overlay panel.' }, { name: 'panelProps', type: 'object', default: 'null', description: 'Used to pass all properties of the HTMLDivElement to the overlay panel inside the component.' }, { name: 'pt', type: 'any', default: 'null', description: 'Used to pass attributes to DOM elements inside the component.' }, { name: 'unstyled', type: 'boolean', default: 'false', description: 'When enabled, it removes component related styles in the core.' } ]; const CalendarEvents = [ { name: 'input', description: 'Callback to invoke when input field is being typed.', arguments: [ { name: 'event', type: 'object', description: 'New date' } ] }, { name: 'date-select', description: 'Callback to invoke when a date is selected.', arguments: [ { name: 'value', type: 'Date', description: 'Selected value' } ] }, { name: 'show', description: 'Callback to invoke when datepicker panel is shown.' }, { name: 'hide', description: 'Callback to invoke when datepicker panel is hidden.' }, { name: 'today-click', description: 'Callback to invoke when today button is clicked.', arguments: [ { name: 'date', type: 'Date', description: 'Today as a date instance' } ] }, { name: 'clear-click', description: 'Callback to invoke when clear button is clicked.', arguments: [ { name: 'event', type: 'object', description: 'Click event' } ] }, { name: 'month-change', description: 'Callback to invoke when a month is changed using the navigators.', arguments: [ { name: 'event.month', type: 'number', description: 'New month' }, { name: 'event.year', type: 'number', description: 'New year' } ] }, { name: 'year-change', description: 'Callback to invoke when a year is changed using the navigators.', arguments: [ { name: 'event.month', type: 'number', description: 'New month' }, { name: 'event.year', type: 'number', description: 'New year' } ] }, { name: 'focus', description: 'Callback to invoke on focus of input field.', arguments: [ { name: 'event', type: 'object', description: 'Focus event' } ] }, { name: 'blur', description: 'Callback to invoke on blur of input field.', arguments: [ { name: 'event.originalEvent', type: 'object', description: 'Browser event' }, { name: 'event.value', type: 'string', description: 'Input value' } ] }, { name: 'keydown', description: 'Callback to invoke when a key is pressed.', arguments: [ { name: 'event', type: 'object', description: 'Keydown event' } ] } ]; const CalendarSlots = [ { name: 'header', description: 'Custom content for the component header.' }, { name: 'footer', description: 'Custom content for the component footer.' }, { name: 'date', description: 'Custom content for the calendar cell.' }, { name: 'decade', description: 'Custom content for the calendar decade.' }, { name: 'dropdownicon', description: 'Custom dropdown icon template.' }, { name: 'previousicon', description: 'Custom previous icon template.' }, { name: 'nexticon', description: 'Custom next icon template.' }, { name: 'incrementicon', description: 'Custom increment icon template.' }, { name: 'decrementicon', description: 'Custom decrement icon template.' } ]; module.exports = { calendar: { name: 'Calendar', description: 'Calendar is an input component to select a date.', props: CalendarProps, events: CalendarEvents, slots: CalendarSlots } };