diff --git a/api-generator/build-api.js b/api-generator/build-api.js new file mode 100644 index 000000000..38cb1c784 --- /dev/null +++ b/api-generator/build-api.js @@ -0,0 +1,164 @@ +const fs = require("fs"); +const path = require("path"); + +const rootDir = path.resolve(__dirname, "../"); +const distDir = path.resolve(rootDir, "dist"); +const componentPath = path.join(__dirname, "./components"); + +// Import project `package.json` +const pkg = require(path.resolve(rootDir, "package.json")); +const libraryName = "PrimeVue"; +const libraryVersion = pkg.version; + +const showcaseURL = "https://primefaces.org/primevue/showcase/#/"; + +const fileModules = {}, + veturTags = {}, + veturAttributes = {}; + +const files = fs.readdirSync(componentPath); +files.forEach(file => { + const { name } = path.parse(file); + + fileModules[name] = require(`./components//${name}`); +}); + +const webTypes = { + $schema: "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json", + framework: "vue", + name: libraryName, + version: libraryVersion, + contributions: { + html: { + "types-syntax": "typescript", + "description-markup": "markdown", + tags: [], + attributes: [] + } + } +}; + +const addURL = (attr, url, value) => { + const newArray = []; + + attr.forEach(att => { + const newObj = {}; + + Object.keys(att).forEach(key => { + newObj[key] = att[key]; + if (key === value) newObj["doc-url"] = url; + }); + + newArray.push(newObj); + }); + + return newArray; +}; + +const createWebTypes = component => { + const url = showcaseURL + `${component["doc-url"] ? component["doc-url"] : component.name.toLowerCase()}`; + + // components + const tag = { + name: component.name, + source: { + module: libraryName, + symbol: component.name + }, + "doc-url": url, + description: component.description + }; + + // directives + const attribute = { + name: component.name, + source: { + module: libraryName, + symbol: component.name + }, + description: component.description, + "doc-url": url, + value: { + kind: "expression", + type: "function" + } + }; + + if (component.props) { + tag.attributes = addURL(component.props, url, "default"); + tag.attributes.forEach(k => { + k["value"] = { + kind: "expression", + type: k["type"] + }; + + delete k["type"]; + }); + } + + if (component.events) { + tag.events = addURL(component.events, url, "name"); + tag.events.forEach(k => { + if (k.arguments) { + k.arguments = addURL(k.arguments, url, "name"); + } + }); + } + + if (component.slots) { + tag.slots = addURL(component.slots, url, "name"); + } + + if (component["vue-modifiers"]) { + attribute.required = false; + attribute["vue-modifiers"] = addURL(component["vue-modifiers"], url, "name"); + + if (attribute["vue-modifiers"].length < 1) + delete attribute["vue-modifiers"]; + + webTypes.contributions.html.attributes.push(attribute); + } + + webTypes.contributions.html.tags.push(tag); +}; + +const createVeturTags = component => { + const attributes = []; + if (component.props) { + component.props.forEach(comp => { + attributes.push(comp.name); + }); + } + if (attributes.length > 0) { + veturTags[component.name] = { + description: component.description, + attributes + }; + } +}; + +const createVeturAttributes = component => { + if (component.props) { + component.props.forEach(comp => { + veturAttributes[component.name.toLowerCase() + `/${comp.name}`] = { + description: comp.description, + type: comp.type + }; + }); + } +}; + +Object.keys(fileModules).forEach(p => { + createWebTypes(fileModules[p][p]); + createVeturTags(fileModules[p][p]); + createVeturAttributes(fileModules[p][p]); +}); + +const webTypesJson = JSON.stringify(webTypes, null, 2); +fs.writeFileSync(path.resolve(distDir, "web-types.json"), webTypesJson); + +const veturTagsJson = JSON.stringify(veturTags, null, 2); +fs.writeFileSync(path.resolve(distDir, "vetur-tags.json"), veturTagsJson); + +const veturAttributesJson = JSON.stringify(veturAttributes, null, 2); +fs.writeFileSync(path.resolve(distDir, "vetur-attributes.json"), veturAttributesJson); diff --git a/api-generator/components/accordion.js b/api-generator/components/accordion.js new file mode 100644 index 000000000..11b7fa0a1 --- /dev/null +++ b/api-generator/components/accordion.js @@ -0,0 +1,104 @@ +const AccordionProps = [ + { + name: "multiple", + type: "boolean", + default: "false", + description: "When enabled, multiple tabs can be activated at the same time." + }, + { + name: "activeIndex", + type: "number|array", + default: "null", + description: "Index of the active tab or an array of indexes in multiple mode." + }, + { + name: "lazy", + type: "boolean", + default: "false", + description: "When enabled, hidden tabs are not rendered at all. Defaults to false that hides tabs with css." + }, + { + name: "expandIcon", + type: "string", + default: "pi-chevron-right", + description: "Icon of a collapsed tab." + }, + { + name: "collapseIcon", + type: "string", + default: "pi-chevron-down", + description: "Icon of a expanded tab." + }, + { + name: "tabindex", + type: "number", + default: "0", + description: "Index of the element in tabbing order." + }, + { + name: "selectOnFocus", + type: "boolean", + default: "false", + description: "When enabled, the focused tab is activated." + } +]; + +const AccordionEvents = [ + { + name: "tab-open", + description: "Callback to invoke when a tab gets expanded.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "index", + type: "number", + description: "Opened tab index" + } + ] + }, + { + name: "tab-close", + description: "Callback to invoke when an active tab is collapsed by clicking on the header.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "index", + type: "number", + description: "Closed tab index" + } + ] + }, + { + name: "tab-click", + description: "Callback to invoke when an active tab is clicked.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "index", + type: "number", + description: "Index of the clicked tab" + } + ] + } +]; + +module.exports = { + accordion: { + name: "Accordion", + description: "Accordion groups a collection of contents in tabs.", + props: AccordionProps, + events: AccordionEvents + } +}; diff --git a/api-generator/components/accordiontab.js b/api-generator/components/accordiontab.js new file mode 100644 index 000000000..1f667a05c --- /dev/null +++ b/api-generator/components/accordiontab.js @@ -0,0 +1,64 @@ +const AccordionTabProps = [ + { + name: "header", + type: "string", + default: "null", + description: "Orientation of tab headers." + }, + { + name: "headerStyle", + type: "any", + default: "null", + description: "Inline style of the tab header." + }, + { + name: "headerClass", + type: "any", + default: "null", + description: "Style class of the tab header." + }, + { + name: "headerProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the tab header." + }, + { + name: "headerActionProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLAnchorElement to the focusable anchor element inside the tab header." + }, + { + name: "contentStyle", + type: "any", + default: "null", + description: "Inline style of the tab content." + }, + { + name: "contentClass", + type: "any", + default: "null", + description: "Style class of the tab content." + }, + { + name: "contentProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the tab content." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "Whether the tab is disabled." + } +]; + +module.exports = { + accordiontab: { + name: "AccordionTab", + description: "Accordion element consists of one or more AccordionTab elements.", + props: AccordionTabProps + } +}; diff --git a/api-generator/components/autocomplete.js b/api-generator/components/autocomplete.js new file mode 100644 index 000000000..888298632 --- /dev/null +++ b/api-generator/components/autocomplete.js @@ -0,0 +1,406 @@ +const AutoCompleteProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "suggestions", + type: "array", + default: "null", + description: "An array of suggestions to display." + }, + { + name: "field", + type: "any", + default: "null", + description: "Property name or getter function of a suggested object to resolve and display." + }, + { + name: "optionLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option." + }, + { + name: "optionDisabled", + type: "boolean", + default: "null", + description: "Property name or getter function to use as the disabled flag of an option, defaults to false when not defined." + }, + { + name: "optionGroupLabel", + type: "string", + default: "null", + description: "Property name or getter function to use as the label of an option group." + }, + { + name: "optionGroupChildren", + type: "string", + default: "null", + description: "Property name or getter function that refers to the children options of option group." + }, + { + name: "scrollHeight", + type: "string", + default: "200px", + description: "Maximum height of the suggestions panel." + }, + { + name: "dropdown", + type: "boolean", + default: "false", + description: "Displays a button next to the input field when enabled." + }, + { + name: "dropdownMode", + type: "string", + default: "blank", + description: 'Specifies the behavior dropdown button. Default "blank" mode sends an empty string and "current" mode sends the input value.' + }, + { + name: "autoHighlight", + type: "boolean", + default: false, + description: "Highlights automatically the first item of the dropdown to be selected." + }, + { + name: "multiple", + type: "boolean", + default: "false", + description: "Specifies if multiple values can be selected." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Default text to display when no option is selected." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "A property to uniquely identify an option." + }, + { + name: "minLength", + type: "number", + default: "1", + description: "Minimum number of characters to initiate a search." + }, + { + name: "delay", + type: "number", + default: "300", + description: "Delay between keystrokes to wait before sending a query." + }, + { + 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: "forceSelection", + type: "boolean", + default: "false", + description: "When present, autocomplete clears the manual input if it does not match of the suggestions to force only accepting values from the suggestions." + }, + { + name: "completeOnFocus", + type: "boolean", + default: "false", + description: "Whether to run a query when input receives focus." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputStyle", + type: "object", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement/HTMLSpanElement to the focusable input element inside the component." + }, + { + name: "panelStyle", + type: "object", + default: "null", + description: "Inline style of the overlay panel." + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + name: "panelProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spinner", + description: "Icon to display in loading state." + }, + { + name: "virtualScrollerOptions", + type: "object", + default: "null", + description: "Whether to use the virtualScroller feature. The properties of VirtualScroller component can be used like an object in it." + }, + { + name: "autoOptionFocus", + type: "boolean", + default: "true", + description: "Whether to focus on the first visible or selected element when the overlay panel is shown." + }, + { + name: "selectOnFocus", + type: "boolean", + default: "false", + description: "When enabled, the focused option is selected." + }, + { + name: "searchLocale", + type: "string", + default: "undefined", + description: "Locale to use in searching. The default locale is the host environment's current locale." + }, + { + name: "searchMessage", + type: "string", + default: "{0} results are available", + description: "Text to be displayed in hidden accessible field when filtering returns any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "selectionMessage", + type: "string", + default: "{0} items selected", + description: "Text to be displayed in hidden accessible field when options are selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptySelectionMessage", + type: "string", + default: "No selected item", + description: "Text to be displayed in hidden accessible field when any option is not selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptySearchMessage", + type: "string", + default: "No results found", + description: "Text to display when filtering does not return any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "tabindex", + type: "number", + default: "0", + description: "Index of the element in tabbing order." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Defines a string value that labels an interactive element." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + } +]; + +const AutoCompleteEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "string", + description: "Selected option value" + } + ] + }, + { + name: "focus", + description: "Callback to invoke when component receives focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "blur", + description: "Callback to invoke when component loses focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "item-select", + description: "Callback to invoke when a suggestion is selected.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "value", + type: "object", + description: "Selected item" + } + ] + }, + { + name: "item-unselect", + description: "Callback to invoke when a selected value is removed.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "value", + type: "object", + description: "Unselected item" + } + ] + }, + { + name: "dropdown-click", + description: "Callback to invoke to when dropdown button is clicked.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "query", + type: "string", + description: "Current value of the input field" + } + ] + }, + { + name: "clear", + description: "Callback to invoke when input is cleared by the user." + }, + { + name: "complete", + description: "Callback to invoke to search for suggestions.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "query", + type: "string", + description: "Value to search with" + } + ] + }, + { + name: "before-show", + description: "Callback to invoke before the overlay is shown." + }, + { + name: "before-hide", + description: "Callback to invoke before the overlay is hidden." + }, + { + name: "show", + description: "Callback to invoke when the overlay is shown." + }, + { + name: "hide", + description: "Callback to invoke when the overlay is hidden." + } +]; + +const AutoCompleteSlots = [ + { + name: "chip", + description: "Custom content for the chip display." + }, + { + name: "header", + description: "Custom content for the component header." + }, + { + name: "footer", + description: "Custom content for the component footer." + }, + { + name: "item", + description: "Custom content for the item." + }, + { + name: "option", + description: "Custom content for the item." + }, + { + name: "optiongroup", + description: "Custom content for the optiongroup item." + }, + { + name: "content", + description: "Custom content for the virtual scroller" + }, + { + name: "loader", + description: "Custom content for the virtual scroller loader items" + } +]; + +module.exports = { + autocomplete: { + name: "AutoComplete", + description: "AutoComplete is an input component that provides real-time suggestions when being typed.", + props: AutoCompleteProps, + events: AutoCompleteEvents, + slots: AutoCompleteSlots + } +}; diff --git a/api-generator/components/avatar.js b/api-generator/components/avatar.js new file mode 100644 index 000000000..d067789c9 --- /dev/null +++ b/api-generator/components/avatar.js @@ -0,0 +1,48 @@ +const AvatarProps = [ + { + name: "label", + type: "string", + default: "null", + description: "Defines the text to display." + }, + { + name: "icon", + type: "string", + default: "null", + description: "Defines the icon to display." + }, + { + name: "image", + type: "string", + default: "null", + description: "Defines the image to display." + }, + { + name: "size", + type: "string", + default: "null", + description: 'Size of the element, valid options are "large" and "xlarge".' + }, + { + name: "shape", + type: "string", + default: "square", + description: 'Shape of the element, valid options are "square" and "circle".' + } +]; + +const AvatarEvents = [ + { + name: "error", + description: "Triggered when an error occurs while loading an image file." + } +]; + +module.exports = { + avatar: { + name: "Avatar", + description: "Avatar represents people using icons, labels and images.", + props: AvatarProps, + events: AvatarEvents + } +}; diff --git a/api-generator/components/avatargroup.js b/api-generator/components/avatargroup.js new file mode 100644 index 000000000..36f15d4b2 --- /dev/null +++ b/api-generator/components/avatargroup.js @@ -0,0 +1,7 @@ +module.exports = { + avatargroup: { + name: "AvatarGroup", + "doc-url": "avatar", + description: "A set of Avatars can be displayed together using the AvatarGroup component." + } +}; diff --git a/api-generator/components/badge.js b/api-generator/components/badge.js new file mode 100644 index 000000000..6e02f0d48 --- /dev/null +++ b/api-generator/components/badge.js @@ -0,0 +1,28 @@ +const BadgeProps = [ + { + name: "value", + type: "any", + default: "null", + description: "Value to display inside the badge." + }, + { + name: "severity", + type: "string", + default: "null", + description: "Severity type of the badge." + }, + { + name: "size", + type: "string", + default: "null", + description: 'Size of the badge, valid options are "large" and "xlarge".' + } +]; + +module.exports = { + badge: { + name: "Badge", + description: "Badge is a small status indicator for another element.", + props: BadgeProps + } +}; diff --git a/api-generator/components/badgedirective.js b/api-generator/components/badgedirective.js new file mode 100644 index 000000000..efd5183b2 --- /dev/null +++ b/api-generator/components/badgedirective.js @@ -0,0 +1,26 @@ +const BadgeDirectiveModifiers = [ + { + name: "success", + description: "Overrides default severity color" + }, + { + name: "info", + description: "Default color for severity levels" + }, + { + name: "warning", + description: "Overrides default severity color" + }, + { + name: "danger", + description: "Overrides default severity color" + } +]; + +module.exports = { + badgedirective: { + name: "BadgeDirective", + description: "When Badge used as a directive, badge needs to be configured at the application with a name of your choice.", + "vue-modifiers": BadgeDirectiveModifiers + } +}; diff --git a/api-generator/components/blockui.js b/api-generator/components/blockui.js new file mode 100644 index 000000000..18006795d --- /dev/null +++ b/api-generator/components/blockui.js @@ -0,0 +1,46 @@ +const BlockUIProps = [ + { + name: "blocked", + type: "array", + default: "null", + description: "Controls the blocked state." + }, + { + name: "fullscreen", + type: "menuitem", + default: "null", + description: "When enabled, the whole document gets blocked." + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + } +]; + +const BlockUIEvents = [ + { + name: "block", + description: "Fired when the element gets blocked." + }, + { + name: "unblock", + description: "Fired when the element gets unblocked." + } +]; + +module.exports = { + blockui: { + name: "BlockUI", + description: "BlockUI can either block other components or the whole page.", + props: BlockUIProps, + events: BlockUIEvents + } +}; diff --git a/api-generator/components/breadcrumb.js b/api-generator/components/breadcrumb.js new file mode 100644 index 000000000..035226d42 --- /dev/null +++ b/api-generator/components/breadcrumb.js @@ -0,0 +1,36 @@ +const BreadcrumbProps = [ + { + name: "model", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "home", + type: "menuitem", + default: "null", + description: "Configuration for the home icon." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const BreadcrumbSlots = [ + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + breadcrumb: { + name: "Breadcrumb", + description: "Breadcrumb provides contextual information about page hierarchy.", + props: BreadcrumbProps, + slots: BreadcrumbSlots + } +}; diff --git a/api-generator/components/button.js b/api-generator/components/button.js new file mode 100644 index 000000000..167aa9bbf --- /dev/null +++ b/api-generator/components/button.js @@ -0,0 +1,58 @@ +const ButtonProps = [ + { + name: "label", + type: "string", + default: "null", + description: "Text of the button." + }, + { + name: "icon", + type: "string", + default: "null", + description: "Name of the icon." + }, + { + name: "iconPos", + type: "string", + default: "left", + description: 'Position of the icon, valid values are "left", "right", "bottom" and "top".' + }, + { + name: "iconClass", + type: "string", + default: "null", + description: "Style class of the icon." + }, + { + name: "badge", + type: "string", + default: "null", + description: "Value of the badge." + }, + { + name: "badgeClass", + type: "string", + default: "null", + description: "Style class of the badge." + }, + { + name: "loading", + type: "boolean", + default: "false", + description: "Whether the button is in loading state." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spinner pi-spin", + description: "Icon to display in loading state." + } +]; + +module.exports = { + button: { + name: "Button", + description: "Button is an extension to standard button element with icons and theming.", + props: ButtonProps + } +}; diff --git a/api-generator/components/calendar.js b/api-generator/components/calendar.js new file mode 100644 index 000000000..f1a19b36b --- /dev/null +++ b/api-generator/components/calendar.js @@ -0,0 +1,450 @@ +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: "pi pi-calendar", + description: "Icon of the calendar button." + }, + { + 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: "Wheter to allow prevents 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", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + name: "panelStyle", + type: "string", + default: "null", + description: "Inline style of the overlay panel." + }, + { + name: "panelProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component." + } +]; + +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." + } +]; + +module.exports = { + calendar: { + name: "Calendar", + description: "Calendar is an input component to select a date.", + props: CalendarProps, + events: CalendarEvents, + slots: CalendarSlots + } +}; diff --git a/api-generator/components/card.js b/api-generator/components/card.js new file mode 100644 index 000000000..c74b61372 --- /dev/null +++ b/api-generator/components/card.js @@ -0,0 +1,30 @@ +const CardSlots = [ + { + name: "header", + description: "Custom content for the component header." + }, + { + name: "title", + description: "Custom content for the component title." + }, + { + name: "subtitle", + description: "Custom content for the component subtitle." + }, + { + name: "content", + description: "Custom content for the component content." + }, + { + name: "footer", + description: "Custom content for the component footer." + } +]; + +module.exports = { + card: { + name: "Card", + description: "Card is a flexible container component.", + slots: CardSlots + } +}; diff --git a/api-generator/components/carousel.js b/api-generator/components/carousel.js new file mode 100644 index 000000000..0731caffe --- /dev/null +++ b/api-generator/components/carousel.js @@ -0,0 +1,110 @@ +const CarouselProps = [ + { + name: "value", + type: "array", + default: "null", + description: "An array of objects to display." + }, + { + name: "page", + type: "number", + default: "null", + description: "Index of the first item." + }, + { + name: "circular", + type: "boolean", + default: "false", + description: "Defines if scrolling would be infinite." + }, + { + name: "autoplayInterval", + type: "number", + default: "null", + description: "Time in milliseconds to scroll items automatically." + }, + { + name: "numVisible", + type: "number", + default: "1", + description: "Number of items per page." + }, + { + name: "numScroll", + type: "number", + default: "1", + description: "Number of items to scroll." + }, + { + name: "responsiveOptions", + type: "any", + default: "null", + description: "An array of options for responsive design." + }, + { + name: "orientation", + type: "string", + default: "horizontal", + description: 'Specifies the layout of the component, valid values are "horizontal" and "vertical".' + }, + { + name: "verticalViewPortHeight", + type: "string", + default: "300px", + description: "Height of the viewport in vertical layout." + }, + { + name: "contentClass", + type: "string", + default: "null", + description: "Style class of main content." + }, + { + name: "containerClass", + type: "string", + default: "null", + description: "Style class of the viewport container." + }, + { + name: "indicatorsContentClass", + type: "string", + default: "null", + description: "Style class of the indicator items." + }, + { + name: "showNavigators", + type: "boolean", + default: "true", + description: "Whether to display navigation buttons in container." + }, + { + name: "showIndicators", + type: "boolean", + default: "true", + description: "Whether to display indicator container." + } +]; + +const CarouselSlots = [ + { + name: "header", + description: "Custom content for the component header." + }, + { + name: "footer", + description: "Custom content for the component footer." + }, + { + name: "item", + description: "Custom content for the component item." + } +]; + +module.exports = { + carousel: { + name: "Carousel", + description: "Carousel is a content slider featuring various customization options.", + props: CarouselProps, + slots: CarouselSlots + } +}; diff --git a/api-generator/components/cascadeselect.js b/api-generator/components/cascadeselect.js new file mode 100644 index 000000000..e3a79c774 --- /dev/null +++ b/api-generator/components/cascadeselect.js @@ -0,0 +1,285 @@ +const CascadeSelectProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "options", + type: "array", + default: "null", + description: "An array of selectitems to display as the available options." + }, + { + name: "optionLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option." + }, + { + name: "optionValue", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the value of an option, defaults to the option itself when not defined." + }, + { + name: "optionDisabled", + type: "boolean", + default: "null", + description: "Property name or getter function to use as the disabled flag of an option, defaults to false when not defined." + }, + { + name: "optionGroupLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option group." + }, + { + name: "optionGroupChildren", + type: "array | function", + default: "null", + description: "Property name or getter function to retrieve the items of a group." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Default text to display when no option is selected." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "A property to uniquely identify an option." + }, + { + name: "inputStyle", + type: "object", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement/HTMLSpanElement to the focusable input element inside the component." + }, + { + name: "panelStyle", + type: "object", + default: "null", + description: "Inline style of the overlay panel." + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + name: "panelProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component." + }, + { + 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: "loading", + type: "boolean", + default: "false", + description: "Whether the multiselect is in loading state." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spinner pi-spin", + description: "Icon to display in loading state." + }, + { + name: "autoOptionFocus", + type: "boolean", + default: "true", + description: "Whether to focus on the first visible or selected element when the overlay panel is shown." + }, + { + name: "selectOnFocus", + type: "boolean", + default: "false", + description: "When enabled, the focused option is selected/opened." + }, + { + name: "searchLocale", + type: "string", + default: "undefined", + description: "Locale to use in searching. The default locale is the host environment's current locale." + }, + { + name: "searchMessage", + type: "string", + default: "{0} results are available", + description: "Text to be displayed in hidden accessible field when filtering returns any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "selectionMessage", + type: "string", + default: "{0} items selected", + description: "Text to be displayed in hidden accessible field when options are selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptySelectionMessage", + type: "string", + default: "No selected item", + description: "Text to be displayed in hidden accessible field when any option is not selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptySearchMessage", + type: "string", + default: "No results found", + description: "Text to display when filtering does not return any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "tabindex", + type: "number", + default: "0", + description: "Index of the element in tabbing order." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Defines a string value that labels an interactive element." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + } +]; + +const CascadeSelectEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "value", + type: "object", + description: "Selected option value" + } + ] + }, + { + name: "focus", + description: "Callback to invoke when component receives focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "blur", + description: "Callback to invoke when component loses focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "click", + description: "Callback to invoke on click.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "group-change", + description: "Callback to invoke when a group changes.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "value", + type: "object", + description: "Selected option value" + } + ] + }, + { + name: "before-show", + description: "Callback to invoke before the overlay is shown." + }, + { + name: "before-hide", + description: "Callback to invoke before the overlay is hidden." + }, + { + name: "show", + description: "Callback to invoke when the overlay is shown." + }, + { + name: "hide", + description: "Callback to invoke when the overlay is hidden." + } +]; + +const CascadeSelectSlots = [ + { + name: "value", + description: "Custom content for the item's value" + }, + { + name: "option", + description: "Custom content for the item's option" + }, + { + name: "indicator", + description: "Custom content for the dropdown indicator" + } +]; + +module.exports = { + cascadeselect: { + name: "CascadeSelect", + description: "CascadeSelect displays a nested structure of options.", + props: CascadeSelectProps, + events: CascadeSelectEvents, + slots: CascadeSelectSlots + } +}; diff --git a/api-generator/components/chart.js b/api-generator/components/chart.js new file mode 100644 index 000000000..ab89d6800 --- /dev/null +++ b/api-generator/components/chart.js @@ -0,0 +1,92 @@ +const ChartProps = [ + { + name: "type", + type: "string", + default: "null", + description: "Type of the chart." + }, + { + name: "data", + type: "any", + default: "null", + description: "Data to display." + }, + { + name: "options", + type: "any", + default: "null", + description: "Options to customize the chart." + }, + { + name: "plugins", + type: "any", + default: "null", + description: "Used to custom plugins of the chart." + }, + { + name: "width", + type: "number", + default: "300", + description: "Width of the chart in non-responsive mode." + }, + { + name: "height", + type: "number", + default: "150", + description: "Height of the chart in non-responsive mode." + } +]; + +const ChartEvents = [ + { + name: "select", + description: "Callback to invoke when a tab gets expanded.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "dataset", + type: "object", + description: "Selected dataset" + }, + { + name: "element", + type: "object", + description: "Selected element" + }, + { + name: "element._datasetIndex", + type: "number", + description: "Index of the dataset in data" + }, + { + name: "element._index", + type: "number", + description: "Index of the data in dataset" + } + ] + }, + { + name: "loaded", + description: "Callback to invoke when chart is loaded.", + arguments: [ + { + name: "chart", + type: "object", + description: "Chart instance." + } + ] + } +]; + +module.exports = { + chart: { + name: "Chart", + description: "Chart components are based on Charts.js, an open source HTML5 based charting library.", + props: ChartProps, + events: ChartEvents + } +}; diff --git a/api-generator/components/checkbox.js b/api-generator/components/checkbox.js new file mode 100644 index 000000000..97cfa845b --- /dev/null +++ b/api-generator/components/checkbox.js @@ -0,0 +1,116 @@ +const CheckboxProps = [ + { + name: "value", + type: "any", + default: "null", + description: "Value of the checkbox." + }, + { + name: "modelValue", + type: "any", + default: "null", + description: "Value binding of the checkbox." + }, + { + name: "binary", + type: "boolean", + default: "false", + description: "Allows to select a boolean value instead of multiple values." + }, + { + 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: "required", + type: "boolean", + default: "false", + description: "When present, it specifies that the element is required." + }, + { + name: "tabindex", + type: "number", + default: "null", + description: "Index of the element in tabbing order." + }, + { + name: "trueValue", + type: "any", + default: "null", + description: "Value in checked state." + }, + { + name: "falseValue", + type: "any", + default: "null", + description: "Value in unchecked state." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputClass", + type: "any", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Establishes relationships between the component and label(s) where its value should be one or more element IDs." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Used to define a string that labels the element." + } +]; + +const CheckboxEvents = [ + { + name: "click", + description: "Callback to invoke on value click.", + }, + { + name: "change", + description: "Callback to invoke on value change.", + }, + { + name: "input", + description: "Callback to invoke on value change." + } +]; + +module.exports = { + checkbox: { + name: "Checkbox", + description: "Checkbox is an extension to standard checkbox element with theming.", + props: CheckboxProps, + events: CheckboxEvents + } +}; diff --git a/api-generator/components/chip.js b/api-generator/components/chip.js new file mode 100644 index 000000000..73e0b4706 --- /dev/null +++ b/api-generator/components/chip.js @@ -0,0 +1,55 @@ +const ChipProps = [ + { + name: "label", + type: "string", + default: "null", + description: "Defines the text to display." + }, + { + name: "icon", + type: "string", + default: "null", + description: "Defines the icon to display." + }, + { + name: "image", + type: "string", + default: "null", + description: "Defines the image to display." + }, + { + name: "removable", + type: "boolean", + default: "false", + description: "Whether to display a remove icon." + }, + { + name: "removeIconClass", + type: "string", + default: "pi pi-times-circle", + description: "Icon of the remove element." + } +]; + +const ChipEvents = [ + { + name: "remove", + description: "Callback to invoke when a chip is removed.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + } +]; + +module.exports = { + chip: { + name: "Chip", + description: "Chip represents entities using icons, labels and images", + props: ChipProps, + events: ChipEvents + } +}; diff --git a/api-generator/components/chips.js b/api-generator/components/chips.js new file mode 100644 index 000000000..e5bdb5690 --- /dev/null +++ b/api-generator/components/chips.js @@ -0,0 +1,120 @@ +const ChipsProps = [ + { + name: "modelValue", + type: "array", + default: "null", + description: "Value of the component." + }, + { + name: "max", + type: "number", + default: "null", + description: "Maximum number of entries allowed." + }, + { + name: "separator", + type: "string", + default: "null", + description: 'Separator char to add an item when pressed in addition to the enter key. Currently only possible value is ","' + }, + { + name: "addOnBlur", + type: "boolean", + default: "false", + description: "Whether to add an item when the input loses focus." + }, + { + name: "allowDuplicate", + type: "boolean", + default: "false", + description: "Whether to allow duplicate values or not." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the element should be disabled." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Placeholder text for the input." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the focus input to match a label defined for the chips." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + } +]; + +const ChipsEvents = [ + { + name: "add", + description: "Callback to invoke when a chip is added.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "value", + type: "array", + description: "Added item value" + } + ] + }, + { + name: "remove", + description: "Callback to invoke when a chip is removed.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "value", + type: "array", + description: "Removed item value" + } + ] + } +]; + +const ChipsSlots = [ + { + name: "chips", + description: "Custom content for the chips" + } +]; + +module.exports = { + chips: { + name: "chips", + description: "Chips is used to enter multiple values on an input field.", + props: ChipsProps, + events: ChipsEvents, + slots: ChipsSlots + } +}; diff --git a/api-generator/components/colorpicker.js b/api-generator/components/colorpicker.js new file mode 100644 index 000000000..c5826a7eb --- /dev/null +++ b/api-generator/components/colorpicker.js @@ -0,0 +1,110 @@ +const ColorPickerProps = [ + { + name: "modelValue", + type: "string", + default: "null", + description: "Value of the component." + }, + { + name: "defaultColor", + type: "string", + default: "ff0000", + description: "Initial color to display when value is not defined." + }, + { + name: "inline", + type: "boolean", + default: "false", + description: "Whether to display as an overlay or not." + }, + { + name: "format", + type: "string", + default: "hex", + description: 'Format to use in value binding, supported formats are "hex", "rgb" and "hsb".' + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "tabindex", + type: "string", + default: "null", + description: "Index of the element in tabbing order." + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + 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: "aria-labelledby", + type: "string", + default: "null", + description: "Establishes relationships between the component and label(s) where its value should be one or more element IDs." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Used to define a string that labels the element." + } +]; + +const ColorPickerEvents = [ + { + name: "change", + description: "Callback to invoke when a color is selected.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.value", + type: "any", + description: "Selected color" + } + ] + }, + { + name: "show", + description: "Callback to invoke when popup is shown." + }, + { + name: "hide", + description: "Callback to invoke when popup is hidden." + } +]; + +module.exports = { + colorpicker: { + name: "ColorPicker", + description: "ColorPicker is an input component to select a color.", + props: ColorPickerProps, + events: ColorPickerEvents + } +}; diff --git a/api-generator/components/column.js b/api-generator/components/column.js new file mode 100644 index 000000000..16c25848c --- /dev/null +++ b/api-generator/components/column.js @@ -0,0 +1,304 @@ +const ColumnProps = [ + { + name: "columnKey", + type: "any", + default: "null", + description: "Identifier of a column if field property is not defined." + }, + { + name: "field", + type: "string", + default: "null", + description: "Property represented by the column." + }, + { + name: "sortField", + type: "string", + default: "null", + description: "Property name to use in sorting, defaults to field." + }, + { + name: "filterField", + type: "string", + default: "null", + description: "Property name to use in filtering, defaults to field." + }, + { + name: "sortable", + type: "any", + default: "false", + description: "Defines if a column is sortable." + }, + { + name: "header", + type: "any", + default: "null", + description: "Header content of the column." + }, + { + name: "footer", + type: "any", + default: "null", + description: "Footer content of the column." + }, + { + name: "style", + type: "object", + default: "null", + description: "Inline style of header, body and footer cells." + }, + { + name: "class", + type: "string", + default: "null", + description: "Style class of header, body and footer cells." + }, + { + name: "headerStyle", + type: "object", + default: "null", + description: "Inline style of the column header." + }, + { + name: "headerClass", + type: "string", + default: "null", + description: "Style class of the column header." + }, + { + name: "bodyStyle", + type: "object", + default: "null", + description: "Inline style of the column body." + }, + { + name: "bodyClass", + type: "string", + default: "null", + description: "Style class of the column body." + }, + { + name: "footerStyle", + type: "object", + default: "null", + description: "Inline style of the column footer." + }, + { + name: "footerClass", + type: "string", + default: "null", + description: "Style class of the footer body." + }, + { + name: "showFilterMenu", + type: "boolean", + default: "true", + description: "Whether to display the filter overlay." + }, + { + name: "showFilterOperator", + type: "boolean", + default: "true", + description: "When enabled, match all and match any operator selector is displayed." + }, + { + name: "showClearButton", + type: "boolean", + default: "true", + description: "Displays a button to clear the column filtering." + }, + { + name: "showApplyButton", + type: "boolean", + default: "true", + description: "Displays a button to apply the column filtering." + }, + { + name: "showFilterMatchModes", + type: "boolean", + default: "true", + description: "Whether to show the match modes selector." + }, + { + name: "showAddButton", + type: "boolean", + default: "true", + description: "When enabled, a button is displayed to add more rules." + }, + { + name: "filterMatchModeOptions", + type: "array", + default: "null", + description: "An array of label-value pairs to override the global match mode options." + }, + { + name: "maxConstraints", + type: "number", + default: "2", + description: "Maximum number of constraints for a column filter." + }, + { + name: "excludeGlobalFilter", + type: "boolean", + default: "false", + description: "Whether to exclude from global filtering or not." + }, + { + name: "filterHeaderStyle", + type: "object", + default: "null", + description: "Inline style of the column filter header in row filter display." + }, + { + name: "filterHeaderClass", + type: "string", + default: "null", + description: "Style class of the column filter header in row filter display." + }, + { + name: "filterMenuStyle", + type: "object", + default: "null", + description: "Inline style of the column filter overlay." + }, + { + name: "filterMenuClass", + type: "string", + default: "null", + description: "Style class of the column filter overlay." + }, + { + name: "selectionMode", + type: "string", + default: "null", + description: 'Defines column based selection mode, options are "single" and "multiple".' + }, + { + name: "expander", + type: "boolean", + default: "false", + description: "Displays an icon to toggle row expansion." + }, + { + name: "colspan", + type: "number", + default: "null", + description: "Number of columns to span for grouping." + }, + { + name: "rowspan", + type: "number", + default: "null", + description: "Number of rows to span for grouping." + }, + { + name: "rowReorder", + type: "boolean", + default: "false", + description: "Whether this column displays an icon to reorder the rows." + }, + { + name: "rowReorderIcon", + type: "string", + default: "pi pi-bars", + description: "Icon of the drag handle to reorder rows." + }, + { + name: "reorderableColumn", + type: "boolean", + default: "true", + description: "Defines if the column itself can be reordered with dragging." + }, + { + name: "rowEditor", + type: "boolean", + default: "false", + description: "When enabled, column displays row editor controls." + }, + { + name: "frozen", + type: "boolean", + default: "false", + description: "Whether the column is fixed in horizontal scrolling." + }, + { + name: "alignFrozen", + type: "string", + default: "left", + description: "Position of a frozen column, valid values are left and right." + }, + { + name: "exportable", + type: "boolean", + default: "true", + description: "Whether the column is included in data export." + }, + { + name: "exportHeader", + type: "string", + default: "null", + description: "Custom export header of the column to be exported as CSV." + }, + { + name: "exportFooter", + type: "string", + default: "null", + description: "Custom export footer of the column to be exported as CSV." + }, + { + name: "hidden", + type: "boolean", + default: "false", + description: "Whether the column is rendered." + } + +]; + +const ColumnSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "body", + description: "Custom content for the component's body" + }, + { + name: "footer", + description: "Custom content for the component's footer" + }, + { + name: "editor", + description: "Custom content for the editing cell" + }, + { + name: "filter", + description: "Custom content for the filtering items" + }, + { + name: "filterheader", + description: "Custom content for the filter menu's header" + }, + { + name: "filterfooter", + description: "Custom content for the filter menu's footer" + }, + { + name: "filterclear", + description: "Custom content for the filter menu's clear section" + }, + { + name: "filterapply", + description: "Custom content for the filter menu's apply section" + } +]; + +module.exports = { + column: { + name: "Column", + description: "DataTable requires a value as an array of objects and columns defined with Column component.", + "doc-url": "datatable", + props: ColumnProps, + slots: ColumnSlots + } +}; diff --git a/api-generator/components/columngroup.js b/api-generator/components/columngroup.js new file mode 100644 index 000000000..f724ade05 --- /dev/null +++ b/api-generator/components/columngroup.js @@ -0,0 +1,7 @@ +module.exports = { + columngroup: { + name: "ColumnGroup", + description: "Columns can be grouped at header and footer sections by defining a ColumnGroup with nested rows and columns", + "doc-url": "datatable" + } +}; diff --git a/api-generator/components/confirmdialog.js b/api-generator/components/confirmdialog.js new file mode 100644 index 000000000..2d1c38d98 --- /dev/null +++ b/api-generator/components/confirmdialog.js @@ -0,0 +1,30 @@ +const ConfirmDialogProps = [ + { + name: "group", + type: "string", + default: "null", + description: "Optional key to match the key of the confirmation, useful to target a specific confirm dialog instance." + }, + { + name: "breakpoints", + type: "object", + default: "null", + description: "Object literal to define widths per screen size." + } +]; + +const ConfirmDialogSlots = [ + { + name: "message", + description: "Custom content for the component." + } +]; + +module.exports = { + confirmdialog: { + name: "ConfirmDialog", + description: "ConfirmDialog uses a Dialog UI that is integrated with the Confirmation API.", + props: ConfirmDialogProps, + slots: ConfirmDialogSlots + } +}; diff --git a/api-generator/components/confirmpopup.js b/api-generator/components/confirmpopup.js new file mode 100644 index 000000000..4bde12801 --- /dev/null +++ b/api-generator/components/confirmpopup.js @@ -0,0 +1,24 @@ +const ConfirmPopupProps = [ + { + name: "group", + type: "string", + default: "null", + description: "Optional key to match the key of the confirmation, useful to target a specific confirm dialog instance." + } +]; + +const ConfirmPopupSlots = [ + { + name: "message", + description: "Custom content for the component." + } +]; + +module.exports = { + confirmpopup: { + name: "ConfirmPopup", + description: "ConfirmPopup displays a confirmation overlay displayed relatively to its target.", + props: ConfirmPopupProps, + slots: ConfirmPopupSlots + } +}; diff --git a/api-generator/components/contextmenu.js b/api-generator/components/contextmenu.js new file mode 100644 index 000000000..85b9f604b --- /dev/null +++ b/api-generator/components/contextmenu.js @@ -0,0 +1,54 @@ +const ContextMenuProps = [ + { + name: "model", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "appendTo", + type: "string", + default: "body", + description: "A valid query selector or an HTMLElement to specify where the overlay gets attached." + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + }, + { + name: "global", + type: "boolean", + default: "false", + description: "Attaches the menu to document instead of a particular item." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const ContextMenuSlots = [ + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + contextmenu: { + name: "ContextMenu", + description: "ContextMenu displays an overlay menu on right click of its target.", + props: ContextMenuProps, + slots: ContextMenuSlots + } +}; diff --git a/api-generator/components/datatable.js b/api-generator/components/datatable.js new file mode 100644 index 000000000..5108bc7c5 --- /dev/null +++ b/api-generator/components/datatable.js @@ -0,0 +1,1161 @@ +const DataTableProps = [ + { + name: "value", + type: "array", + default: "null", + description: "An array of objects to display." + }, + { + name: "dataKey", + type: "string|function", + default: "null", + description: "Name of the field that uniquely identifies the a record in the data." + }, + { + name: "rows", + type: "number", + default: "null", + description: "Number of rows to display per page." + }, + { + name: "first", + type: "number", + default: "0", + description: "Index of the first row to be displayed." + }, + { + name: "totalRecords", + type: "number", + default: "null", + description: "Number of total records, defaults to length of value when not defined." + }, + { + name: "paginator", + type: "boolean", + default: "false", + description: "When specified as true, enables the pagination." + }, + { + name: "paginatorPosition", + type: "string", + default: "bottom", + description: 'Position of the paginator, options are "top","bottom" or "both".' + }, + { + name: "alwaysShowPaginator", + type: "boolean", + default: "true", + description: "Whether to show it even there is only one page." + }, + { + name: "paginatorTemplate", + type: "string", + default: "FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink CurrentPageReport RowsPerPageDropdown", + description: "emplate of the paginator." + }, + { + name: "pageLinkSize", + type: "number", + default: "5", + description: "Number of page links to display." + }, + { + name: "rowsPerPageOptions", + type: "array", + default: "null", + description: "Array of integer values to display inside rows per page dropdown." + }, + { + name: "currentPageReportTemplate", + type: "string", + default: "({currentPage} of {totalPages})", + description: "Template of the current page report element." + }, + { + name: "lazy", + type: "boolean", + default: "false", + description: "Defines if data is loaded and interacted with in lazy manner." + }, + { + name: "loading", + type: "boolean", + default: "false", + description: "Displays a loader to indicate data load is in progress." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spinner", + description: "The icon to show while indicating data load is in progress." + }, + { + name: "sortField", + type: "string", + default: "null", + description: "Property name or a getter function of a row data used for sorting by default" + }, + { + name: "sortOrder", + type: "number", + default: "null", + description: "Order to sort the data by default." + }, + { + name: "defaultSortOrder", + type: "number", + default: "1", + description: "Default sort order of an unsorted column." + }, + { + name: "multiSortMeta", + type: "array", + default: "null", + description: "An array of SortMeta objects to sort the data by default in multiple sort mode." + }, + { + name: "sortMode", + type: "string", + default: "single", + description: "Defines whether sorting works on single column or on multiple columns." + }, + { + name: "removableSort", + type: "boolean", + default: "false", + description: "When enabled, columns can have an un-sorted state." + }, + { + name: "filters", + type: "object", + default: "null", + description: "Filters object with key-value pairs to define the filters." + }, + { + name: "filterDisplay", + type: "string", + default: "null", + description: 'Layout of the filter elements, valid values are "row" and "menu".' + }, + { + name: "filterLocale", + type: "string", + default: "undefined", + description: "Locale to use in filtering. The default locale is the host environment's current locale." + }, + { + name: "selection", + type: "any", + default: "null", + description: "Selected row in single mode or an array of values in multiple mode." + }, + { + name: "selectionMode", + type: "string", + default: "null", + description: 'Specifies the selection mode, valid values are "single" and "multiple".' + }, + { + name: "compareSelectionBy", + type: "string", + default: "deepEquals", + description: 'Algorithm to define if a row is selected, valid values are "equals" that compares by reference and "deepEquals" that compares all fields.' + }, + { + name: "metaKeySelection", + type: "boolean", + default: "true", + description: "Defines whether metaKey is requred or not for the selection. When true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically." + }, + { + name: "contextMenu", + type: "boolean", + default: "false", + description: "Enables context menu integration." + }, + { + name: "contextMenuSelection", + type: "object", + default: "null", + description: "Selected row instance with the ContextMenu." + }, + { + name: "rowHover", + type: "boolean", + default: "false", + description: "When enabled, background of the rows change on hover." + }, + { + name: "selectAll", + type: "boolean", + default: "null", + description: "Whether all data is selected." + }, + { + name: "csvSeparator", + type: "string", + default: ",", + description: "Character to use as the csv separator." + }, + { + name: "exportFilename", + type: "string", + default: "download", + description: "Name of the exported file." + }, + { + name: "exportFunction", + type: "function", + default: "null", + description: "Custom function to export data." + }, + { + name: "autoLayout", + type: "boolean", + default: "false", + description: "Whether the cell widths scale according to their content or not. Does not apply to scrollable tables." + }, + { + name: "resizableColumns", + type: "boolean", + default: "false", + description: "When enabled, columns can be resized using drag and drop." + }, + { + name: "columnResizeMode", + type: "string", + default: "fit", + description: 'Defines whether the overall table width should change on column resize, valid values are "fit" and "expand".' + }, + { + name: "reorderableColumns", + type: "boolean", + default: "false", + description: "When enabled, columns can be reordered using drag and drop." + }, + { + name: "expandedRows", + type: "array", + default: "null", + description: "A collection of row data display as expanded." + }, + { + name: "expandedRowIcon", + type: "string", + default: "pi-chevron-down", + description: "Icon of the row toggler to display the row as expanded." + }, + { + name: "collapsedRowIcon", + type: "string", + default: "pi pi-chevron-right", + description: "Icon of the row toggler to display the row as collapsed." + }, + { + name: "rowGroupMode", + type: "string", + default: "null", + description: 'Defines the row group mode, valid options are "subheader" and "rowspan".' + }, + { + name: "groupRowsBy", + type: "string|array", + default: "null", + description: "One or more field names to use in row grouping." + }, + { + name: "expandableRowGroups", + type: "boolean", + default: "false", + description: "Whether the row groups can be expandable." + }, + { + name: "expandedRowGroups", + type: "array", + default: "null", + description: "An array of group field values whose groups would be rendered as expanded." + }, + { + name: "stateStorage", + type: "string", + default: "session", + description: 'Defines where a stateful table keeps its state, valid values are "session" for sessionStorage and "local" for localStorage.' + }, + { + name: "stateKey", + type: "string", + default: "null", + description: "Unique identifier of a stateful table to use in state storage." + }, + { + name: "editMode", + type: "string", + default: "null", + description: 'Defines the incell editing mode, valid options are "cell" and "row".' + }, + { + name: "editingRows", + type: "array", + default: "null", + description: "A collection of rows to represent the current editing data in row edit mode." + }, + { + name: "rowClass", + type: "function", + default: "null", + description: "A function that takes the row data and returns a string to apply a particular class for the row." + }, + { + name: "rowStyle", + type: "object", + default: "null", + description: "A function that takes the row data as a parameter and returns the inline style for the corresponding row." + }, + { + name: "scrollable", + type: "boolean", + default: "false", + description: "When specified, enables horizontal and/or vertical scrolling." + }, + { + name: "scrollDirection", + type: "string", + default: "vertical", + description: 'Orientation of the scrolling, options are "vertical", "horizontal" and "both".' + }, + { + name: "scrollHeight", + type: "string", + default: "null", + description: 'Height of the scroll viewport in fixed units or the "flex" keyword for a dynamic size.' + }, + { + name: "virtualScrollerOptions", + type: "object", + default: "null", + description: 'Whether to use the virtualScroller feature. The properties of VirtualScroller component can be used like an object in it. Note: Currently only vertical orientation mode is supported.' + }, + { + name: "frozenValue", + type: "array", + default: "null", + description: "Items of the frozen part in scrollable DataTable." + }, + { + name: "responsiveLayout", + type: "string", + default: "stack", + description: 'Defines the responsive mode, valid options are "stack" and "scroll".' + }, + { + name: "breakpoint", + type: "string", + default: "960px", + description: "The breakpoint to define the maximum width boundary when using stack responsive layout." + }, + { + name: "showGridlines", + type: "boolean", + default: "false", + description: "Whether to show grid lines between cells." + }, + { + name: "stripedRows", + type: "boolean", + default: "false", + description: "Whether to displays rows with alternating colors." + }, + { + name: "tableStyle", + type: "object", + default: "null", + description: "Inline style of the table element." + }, + { + name: "tableClass", + type: "string", + default: "null", + description: "Style class of the table element." + } +]; + +const DataTableEvents = [ + { + name: "page", + description: "Callback to invoke on pagination. Sort and Filter information is also available for lazy loading implementation.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.page", + type: "number", + description: "New page number" + }, + { + name: "event.pageCount", + type: "number", + description: "Total page count" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "object", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.filterMatchModes", + type: "object", + description: "Match modes per field" + } + ] + }, + { + name: "sort", + description: "Callback to invoke on sort. Page and Filter information is also available for lazy loading implementation.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "object", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.filterMatchModes", + type: "object", + description: "Match modes per field" + } + ] + }, + { + name: "filter", + description: "Event to emit after filtering, not triggered in lazy mode.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "object", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.filteredValue", + type: "string", + description: "Filtered collection" + }, + { + name: "event.filterMatchModes", + type: "object", + description: "Match modes per field" + } + ] + }, + { + name: "value-change", + description: "Invoked after filtering, sorting, pagination and cell editing to pass the rendered value.", + arguments: [ + { + name: "value", + type: "array", + description: "Value displayed by the table." + } + ] + }, + { + name: "row-click", + description: "Callback to invoke when a row is clicked.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event." + }, + { + name: "event.data", + type: "object", + description: "Selected row data." + }, + { + name: "event.index", + type: "number", + description: "Row index" + } + ] + }, + { + name: "row-contextmenu", + description: "Callback to invoke when a row is selected with a ContextMenu", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event." + }, + { + name: "event.data", + type: "object", + description: "Selected row data." + }, + { + name: "event.index", + type: "number", + description: "Row index" + } + ] + }, + { + name: "row-select", + description: "Callback to invoke when a row is selected.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event." + }, + { + name: "event.data", + type: "object", + description: "Selected row data." + }, + { + name: "event.index", + type: "number", + description: "Row index" + }, + { + name: "event.type", + type: "string", + description: + 'Type of the selection, valid values are "row", "radio" or "checkbox".' + } + ] + }, + { + name: "row-unselect", + description: "Callback to invoke when a row is unselected.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event." + }, + { + name: "event.data", + type: "object", + description: "Selected row data." + }, + { + name: "event.index", + type: "number", + description: "Row index" + }, + { + name: "event.type", + type: "string", + description: + 'Type of the selection, valid values are "row", "radio" or "checkbox".' + } + ] + }, + { + name: "select-all-change", + description: "Callback to invoke when all data is selected.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event." + }, + { + name: "event.checked", + type: "object", + description: "Whether all data is selected." + } + ] + }, + { + name: "column-resize-end", + description: "Callback to invoke when a column is resized.", + arguments: [ + { + name: "event.element", + type: "object", + description: "DOM element of the resized column." + }, + { + name: "event.delta", + type: "number", + description: "Change in column width" + } + ] + }, + { + name: "column-reorder", + description: "Callback to invoke when a column is reordered.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.dragIndex", + type: "number", + description: "Index of the dragged column" + }, + { + name: "event.dropIndex", + type: "number", + description: "Index of the dropped column" + } + ] + }, + { + name: "row-reorder", + description: "Callback to invoke when a row is reordered.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.dragIndex", + type: "number", + description: "Index of the dragged row" + }, + { + name: "event.dropIndex", + type: "number", + description: "Index of the dropped row" + }, + { + name: "value", + type: "array", + description: "Reordered value" + } + ] + }, + { + name: "row-expand", + description: "Callback to invoke when a row is expanded.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Expanded row data." + } + ] + }, + { + name: "row-collapse", + description: "Callback to invoke when a row is collapsed.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Collapsed row data." + } + ] + }, + { + name: "rowgroup-expand", + description: "Callback to invoke when a row group is expanded.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Expanded group value." + } + ] + }, + { + name: "rowgroup-collapse", + description: "Callback to invoke when a row group is collapsed.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Collapsed group value." + } + ] + }, + { + name: "cell-edit-init", + description: "Callback to invoke when cell edit is initiated.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Row data to edit." + }, + { + name: "event.field", + type: "string", + description: "Field name of the row data." + }, + { + name: "event.index", + type: "number", + description: "Index of the row data to edit." + } + ] + }, + { + name: "cell-edit-complete", + description: "Callback to invoke when cell edit is completed.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Row data to edit." + }, + { + name: "event.newData", + type: "object", + description: "New row data after editing." + }, + { + name: "event.value", + type: "object", + description: "Field value of row data to edit." + }, + { + name: "event.newValue", + type: "object", + description: "Field value of new row data after editing" + }, + { + name: "event.field", + type: "string", + description: "Field name of the row data." + }, + { + name: "event.index", + type: "number", + description: "Index of the row data to edit." + }, + { + name: "event.type", + type: "string", + description: + 'Type of completion such as "enter", "outside" or "tab".' + } + ] + }, + { + name: "cell-edit-cancel", + description: "Callback to invoke when cell edit is cancelled with escape key.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Row data to edit." + }, + { + name: "event.field", + type: "string", + description: "Field name of the row data." + }, + { + name: "event.index", + type: "number", + description: "Index of the row data to edit." + } + ] + }, + { + name: "row-edit-init", + description: "Callback to invoke when row edit is initiated.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Row data to edit." + }, + { + name: "event.newData", + type: "object", + description: "New row data after editing." + }, + { + name: "event.field", + type: "string", + description: "Field name of the row data." + }, + { + name: "event.index", + type: "number", + description: "Index of the row data to edit." + } + ] + }, + { + name: "row-edit-save", + description: "Callback to invoke when row edit is saved.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Row data to edit." + }, + { + name: "event.newData", + type: "object", + description: "New row data after editing." + }, + { + name: "event.field", + type: "string", + description: "Field name of the row data." + }, + { + name: "event.index", + type: "number", + description: "Index of the row data to edit." + } + ] + }, + { + name: "row-edit-cancel", + description: "Callback to invoke when row edit is cancelled.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.data", + type: "object", + description: "Row data to edit." + }, + { + name: "event.newData", + type: "object", + description: "New row data after editing." + }, + { + name: "event.field", + type: "string", + description: "Field name of the row data." + }, + { + name: "event.index", + type: "number", + description: "Index of the row data to edit." + } + ] + }, + { + name: "state-save", + description: "Invoked when a stateful table saves the state.", + arguments: [ + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "number", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.columnWidths", + type: "number", + description: "Comma separated list of column widths" + }, + { + name: "event.columnOrder", + type: "number", + description: "Order of the columns" + }, + { + name: "event.expandedRows", + type: "array", + description: "Instances of rows in expanded state" + }, + { + name: "event.expandedRowKeys", + type: "array", + description: "Keys of rows in expanded state" + }, + { + name: "event.expandedRowGroups", + type: "array", + description: "Instances of row groups in expanded state" + }, + { + name: "event.selection", + type: "object", + description: "Selected rows" + }, + { + name: "event.selectionKeys", + type: "object", + description: "Keys of selected rows" + } + ] + }, + { + name: "state-restore", + description: "Invoked when a stateful table restores the state.", + arguments: [ + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "number", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.columnWidths", + type: "number", + description: "Comma separated list of column widths" + }, + { + name: "event.columnOrder", + type: "number", + description: "Order of the columns" + }, + { + name: "event.expandedRows", + type: "array", + description: "Instances of rows in expanded state" + }, + { + name: "event.expandedRowKeys", + type: "array", + description: "Keys of rows in expanded state" + }, + { + name: "event.expandedRowGroups", + type: "array", + description: "Instances of row groups in expanded state" + }, + { + name: "event.selection", + type: "object", + description: "Selected rows" + }, + { + name: "event.selectionKeys", + type: "object", + description: "Keys of selected rows" + } + ] + } +]; + +const DataTableSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "paginatorstart", + description: "Custom content for the component paginator's left side" + }, + { + name: "paginatorend", + description: "Custom content for the component paginator's right side" + }, + { + name: "footer", + description: "Custom content for the component's footer" + }, + { + name: "groupheader", + description: "Custom content for the component's subgroup header" + }, + { + name: "groupfooter", + description: "Custom content for the component's subgroup footer" + }, + { + name: "expansion", + description: "Custom content for the component's expanded content" + } +]; + +module.exports = { + datatable: { + name: "DataTable", + description: "DataTable displays data in tabular format.", + props: DataTableProps, + events: DataTableEvents, + slots: DataTableSlots + } +}; diff --git a/api-generator/components/dataview.js b/api-generator/components/dataview.js new file mode 100644 index 000000000..99c5e0ad2 --- /dev/null +++ b/api-generator/components/dataview.js @@ -0,0 +1,168 @@ +const DataViewProps = [ + { + name: "value", + type: "array", + default: "null", + description: "An array of objects to display." + }, + { + name: "layout", + type: "string", + default: "list", + description: 'Layout of the items, valid values are "list" and "grid".' + }, + { + name: "rows", + type: "number", + default: "0", + description: "Number of rows to display per page." + }, + { + name: "first", + type: "number", + default: "0", + description: "ndex of the first record to render." + }, + { + name: "totalRecords", + type: "number", + default: "null", + description: "Number of total records, defaults to length of value when not defined." + }, + { + name: "paginator", + type: "boolean", + default: "false", + description: "When specified as true, enables the pagination." + }, + { + name: "paginatorPosition", + type: "string", + default: "bottom", + description: 'Position of the paginator, options are "top","bottom" or "both".' + }, + { + name: "alwaysShowPaginator", + type: "boolean", + default: "true", + description: "Whether to show it even there is only one page." + }, + { + name: "paginatorTemplate", + type: "string", + default: "FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown", + description: "Template of the paginator." + }, + { + name: "pageLinkSize", + type: "number", + default: "5", + description: "Number of page links to display." + }, + { + name: "rowsPerPageOptions", + type: "array", + default: "null", + description: "Array of integer values to display inside rows per page dropdown." + }, + { + name: "currentPageReportTemplate", + type: "string", + default: "({currentPage} of {totalPages})", + description: "Template of the current page report element." + }, + { + name: "sortField", + type: "string", + default: "null", + description: "Property name or a getter function of data to use in sorting by default." + }, + { + name: "sortOrder", + type: "number", + default: "null", + description: "Order to sort the data by default." + }, + { + name: "lazy", + type: "boolean", + default: "false", + description: "Defines if data is loaded and interacted with in lazy manner." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "Name of the data that uniquely identifies the a record in the data." + } +]; + +const DataViewEvents = [ + { + name: "page", + description: "Callback to invoke when page changes, the event object contains information about the new state.", + arguments: [ + { + name: "event.page", + type: "number", + description: "New page number" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.pageCount", + type: "number", + description: "Total number of pages" + } + ] + } +]; + +const DataViewSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "paginatorstart", + description: "Custom content for the component paginator's left side" + }, + { + name: "paginatorend", + description: "Custom content for the component paginator's right side" + }, + { + name: "list", + description: "Content for the list layout" + }, + { + name: "grid", + description: "Content for the grid layout" + }, + { + name: "empty", + description: "Custom content when there is no data to display" + }, + { + name: "footer", + description: "Custom content for the component's footer" + } +]; + +module.exports = { + dataview: { + name: "DataView", + description: "DataView displays data in grid or list layout with pagination and sorting features.", + props: DataViewProps, + events: DataViewEvents, + slots: DataViewSlots + } +}; diff --git a/api-generator/components/dataviewlayoutoptions.js b/api-generator/components/dataviewlayoutoptions.js new file mode 100644 index 000000000..4bfe49a36 --- /dev/null +++ b/api-generator/components/dataviewlayoutoptions.js @@ -0,0 +1,7 @@ +module.exports = { + dataviewlayoutoptions: { + name: "DataViewLayoutOptions", + description: "When both layout modes are enabled in DataView, a UI element would be necessary to let the user toggle between the view. DataViewLayoutOptions is a helper component to display a buttonset to choose the layout mode in DataView.", + "doc-url": "dataview" + } +}; diff --git a/api-generator/components/deferredcontent.js b/api-generator/components/deferredcontent.js new file mode 100644 index 000000000..c916185f4 --- /dev/null +++ b/api-generator/components/deferredcontent.js @@ -0,0 +1,21 @@ +const DeferredContentEvents = [ + { + name: "load", + description: "Callback to invoke when deferred content is loaded..", + arguments: [ + { + name: "event", + type: "object", + description: "Event object" + } + ] + } +]; + +module.exports = { + deferredcontent: { + name: "DeferredContent", + description: "DeferredContent postpones the loading the content that is initially not in the viewport until it becomes visible on scroll.", + events: DeferredContentEvents + } +}; diff --git a/api-generator/components/dialog.js b/api-generator/components/dialog.js new file mode 100644 index 000000000..066f1320d --- /dev/null +++ b/api-generator/components/dialog.js @@ -0,0 +1,203 @@ +const DialogProps = [ + { + name: "header", + type: "any", + default: "null", + description: "Title content of the dialog." + }, + { + name: "footer", + type: "any", + default: "null", + description: "Footer content of the dialog." + }, + { + name: "visible", + type: "boolean", + default: "false", + description: "Specifies the visibility of the dialog." + }, + { + name: "modal", + type: "boolean", + default: "null", + description: "Defines if background should be blocked when dialog is displayed." + }, + { + name: "closeOnEscape", + type: "boolean", + default: "true", + description: "Specifies if pressing escape key should hide the dialog." + }, + { + name: "dismissableMask", + type: "boolean", + default: "false", + description: "Specifies if clicking the modal background should hide the dialog." + }, + { + name: "position", + type: "string", + default: "center", + description: 'Position of the dialog, options are "center", "top", "bottom", "left", "right", "topleft", "topright", "bottomleft" or "bottomright".' + }, + { + name: "contentStyle", + type: "object", + default: "null", + description: "Style of the content section." + }, + { + name: "contentClass", + type: "string", + default: "null", + description: "Style class of the content section." + }, + { + name: "rtl", + type: "boolean", + default: "null", + description: "When enabled dialog is displayed in RTL direction." + }, + { + name: "closable", + type: "boolean", + default: "true", + description: "Adds a close icon to the header to hide the dialog." + }, + { + name: "showHeader", + type: "boolean", + default: "true", + description: "Whether to show the header or not." + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + }, + { + name: "ariaCloseLabel", + type: "string", + default: "close", + description: "Aria label of the close icon." + }, + { + name: "maximizable", + type: "boolean", + default: "false", + description: "Whether the dialog can be displayed full screen." + }, + { + name: "breakpoints", + type: "object", + default: "null", + description: "Object literal to define widths per screen size." + }, + { + name: "draggable", + type: "boolean", + default: "true", + description: "Whether the dialog can be relocated by dragging." + }, + { + name: "minX", + type: "number", + default: "0", + description: "Minimum value for the left coordinate of dialog in dragging." + }, + { + name: "minY", + type: "number", + default: "0", + description: "Minimum value for the top coordinate of dialog in dragging." + }, + { + name: "keepInViewport", + type: "boolean", + default: "true", + description: "Keeps dialog in the viewport when dragging." + }, + { + name: "appendTo", + type: "string", + default: "body", + description: 'A valid query selector or an HTMLElement to specify where the dialog gets attached. Special keywords are "body" for document body and "self" for the element itself.' + } +]; + +const DialogEvents = [ + { + name: "hide", + description: "Callback to invoke when dialog is hidden." + }, + { + name: "after-hide", + description: "Callback to invoke after dialog is hidden." + }, + { + name: "show", + description: "Callback to invoke when dialog is showed." + }, + { + name: "maximize", + description: "Fired when a dialog gets maximized.", + arguments: [ + { + name: "event", + type: "object", + description: "Event Object" + } + ] + }, + { + name: "unmaximize", + description: "Fired when a dialog gets unmaximized.", + arguments: [ + { + name: "event", + type: "object", + description: "Event Object" + } + ] + }, + { + name: "dragend", + description: "Fired when a dialog drag completes.", + arguments: [ + { + name: "event", + type: "object", + description: "Event Object" + } + ] + } +]; + +const DialogSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "footer", + description: "Custom content for the component's footer" + } +]; + +module.exports = { + dialog: { + name: "Dialog", + description: "Dialog is a container to display content in an overlay window.", + props: DialogProps, + events: DialogEvents, + slots: DialogSlots + } +}; diff --git a/api-generator/components/divider.js b/api-generator/components/divider.js new file mode 100644 index 000000000..03faa97ed --- /dev/null +++ b/api-generator/components/divider.js @@ -0,0 +1,28 @@ +const DividerProps = [ + { + name: "align", + type: "string", + default: "null", + description: 'Alignment of the content, options are "left", "center", "right" for horizontal layout and "top", "center", "bottom" for vertical.' + }, + { + name: "layout", + type: "string", + default: "horizontal", + description: 'Specifies the orientation, valid values are "horizontal" and "vertical".' + }, + { + name: "type", + type: "string", + default: "solid", + description: 'Border style type, default is "solid" and other options are "dashed" and "dotted".' + } +]; + +module.exports = { + divider: { + name: "Divider", + description: "Divider is used to separate contents.", + props: DividerProps + } +}; diff --git a/api-generator/components/dock.js b/api-generator/components/dock.js new file mode 100644 index 000000000..06ca44781 --- /dev/null +++ b/api-generator/components/dock.js @@ -0,0 +1,58 @@ +const DockProps = [ + { + name: "model", + type: "object", + default: "null", + description: "MenuModel instance to define the action items." + }, + { + name: "position", + type: "string", + default: "bottom", + description: "Position of element. Valid values are 'bottom', 'top', 'left' and 'right'." + }, + { + name: "class", + type: "string", + default: "null", + description: "Style class of the element." + }, + { + name: "style", + type: "object", + default: "null", + description: "Inline style of the element." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: "tooltipOptions", + type: "object", + default: "null", + description: "Whether to display the tooltip on items. The modifiers of tooltip can be used like an object in it. Valid keys are 'event' and 'position'." + } +]; + +const DockSlots = [ + { + name: "item", + description: "Custom content for the item." + }, + { + name: "icon", + description: "Custom content for the icon." + } +]; + +module.exports = { + dock: { + name: "Dock", + description: "Dock is a navigation component consisting of menuitems.", + props: DockProps, + slots: DockSlots + } +} diff --git a/api-generator/components/dropdown.js b/api-generator/components/dropdown.js new file mode 100644 index 000000000..f4064690e --- /dev/null +++ b/api-generator/components/dropdown.js @@ -0,0 +1,386 @@ +const DropdownProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "options", + type: "array", + default: "null", + description: "An array of selectitems to display as the available options." + }, + { + name: "optionLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option." + }, + { + name: "optionValue", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the value of an option, defaults to the option itself when not defined." + }, + { + name: "optionDisabled", + type: "boolean", + default: "null", + description: "Property name or getter function to use as the disabled flag of an option, defaults to false when not defined." + }, + { + name: "optionGroupLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option group." + }, + { + name: "optionGroupChildren", + type: "string | function", + default: "null", + description: "Property name or getter function that refers to the children options of option group." + }, + { + name: "scrollHeight", + type: "string", + default: "200px", + description: "Height of the viewport, a scrollbar is defined if height of list exceeds this value." + }, + { + name: "filter", + type: "boolean", + default: "false", + description: "When specified, displays a filter input at header." + }, + { + name: "filterPlaceholder", + type: "string", + default: "null", + description: "Placeholder text to show when filter input is empty." + }, + { + name: "filterLocale", + type: "string", + default: "undefined", + description: "Locale to use in filtering. The default locale is the host environment's current locale." + }, + { + name: "filterMatchMode", + type: "string", + default: "contains", + description: 'Defines the filtering algorithm to use when searching the options. Valid values are "contains" (default), "startsWith" and "endsWith"' + }, + { + name: "filterFields", + type: "array", + default: "null", + description: "Fields used when filtering the options, defaults to optionLabel." + }, + { + name: "editable", + type: "boolean", + default: "false", + description: "When present, custom value instead of predefined options can be entered using the editable input field." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Default text to display when no option is selected." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "A property to uniquely identify an option." + }, + { + name: "showClear", + type: "boolean", + default: "false", + description: "When enabled, a clear icon is displayed to clear the value." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputStyle", + type: "object", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement/HTMLSpanElement to the focusable input element inside the component." + }, + { + name: "panelStyle", + type: "object", + default: "null", + description: "Inline style of the overlay panel." + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + name: "panelProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component." + }, + { + name: "filterInputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the filter input inside the component." + }, + { + name: "clearIconProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLElement to the clear icon inside the component." + }, + { + 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: "loading", + type: "boolean", + default: "false", + description: "Whether the multiselect is in loading state." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spinner pi-spin", + description: "Icon to display in loading state." + }, + { + name: "resetFilterOnHide", + type: "boolean", + default: "false", + description: "Clears the filter value when hiding the dropdown." + }, + { + name: "virtualScrollerOptions", + type: "object", + default: "null", + description: "Whether to use the virtualScroller feature. The properties of VirtualScroller component can be used like an object in it." + }, + { + name: "autoOptionFocus", + type: "boolean", + default: "true", + description: "Whether to focus on the first visible or selected element when the overlay panel is shown." + }, + { + name: "autoFilterFocus", + type: "boolean", + default: "false", + description: "Whether to focus on the filter element when the overlay panel is shown." + }, + { + name: "selectOnFocus", + type: "boolean", + default: "false", + description: "When enabled, the focused option is selected." + }, + { + name: "filterMessage", + type: "string", + default: "{0} results are available", + description: "Text to be displayed in hidden accessible field when filtering returns any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "selectionMessage", + type: "string", + default: "{0} items selected", + description: "Text to be displayed in hidden accessible field when options are selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptySelectionMessage", + type: "string", + default: "No selected item", + description: "Text to be displayed in hidden accessible field when any option is not selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptyFilterMessage", + type: "string", + default: "No results found", + description: "Text to display when filtering does not return any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptyMessage", + type: "string", + default: "No results found", + description: "Text to display when there are no options available. Defaults to value from PrimeVue locale configuration." + }, + { + name: "tabindex", + type: "number", + default: "0", + description: "Index of the element in tabbing order." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Defines a string value that labels an interactive element." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + } +]; + +const DropdownEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "string", + description: "Selected option value" + } + ] + }, + { + name: "focus", + description: "Callback to invoke when component receives focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "blur", + description: "Callback to invoke when component loses focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "before-show", + description: "Callback to invoke before the overlay is shown." + }, + { + name: "before-hide", + description: "Callback to invoke before the overlay is hidden." + }, + { + name: "show", + description: "Callback to invoke when the overlay is shown." + }, + { + name: "hide", + description: "Callback to invoke when the overlay is hidden." + }, + { + name: "filter", + description: "Callback to invoke when the overlay is shown.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "string", + description: "Filter value" + } + ] + } +]; + +const DropdownSlots = [ + { + name: "value", + description: "Custom content for the item's value" + }, + { + name: "indicator", + description: "Custom content for the dropdown indicator" + }, + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "footer", + description: "Custom content for the component's footer" + }, + { + name: "option", + description: "Custom content for the item's option" + }, + { + name: "optiongroup", + description: "Custom content for the item's optiongroup" + }, + { + name: "emptyfilter", + description: "Custom content when there is no filtered data to display" + }, + { + name: "empty", + description: "Custom content when there is no data to display" + }, + { + name: "content", + description: "Custom content for the virtual scroller" + }, + { + name: "loader", + description: "Custom content for the virtual scroller loader items" + } +]; + +module.exports = { + dropdown: { + name: "Dropdown", + description: "Dropdown is used to select an item from a list of options.", + props: DropdownProps, + events: DropdownEvents, + slots: DropdownSlots + } +}; diff --git a/api-generator/components/dynamicdialog.js b/api-generator/components/dynamicdialog.js new file mode 100644 index 000000000..270742556 --- /dev/null +++ b/api-generator/components/dynamicdialog.js @@ -0,0 +1,15 @@ +const DynamicDialogProps = []; + +const DynamicDialogEvents = []; + +const DynamicDialogSlots = []; + +module.exports = { + dynamicdialog: { + name: "DynamicDialog", + description: "Dialogs can be created dynamically with any component as the content using a DialogService.", + props: DynamicDialogProps, + events: DynamicDialogEvents, + slots: DynamicDialogSlots + } +}; diff --git a/api-generator/components/editor.js b/api-generator/components/editor.js new file mode 100644 index 000000000..f3478b3db --- /dev/null +++ b/api-generator/components/editor.js @@ -0,0 +1,136 @@ +const EditorProps = [ + { + name: "modelValue", + type: "string", + default: "null", + description: "Value of the content." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Placeholder text to show when editor is empty." + }, + { + name: "readonly", + type: "boolean", + default: "false", + description: "Whether to instantiate the editor to readonly mode." + }, + { + name: "formats", + type: "string[]", + default: "null", + description: "Whitelist of formats to display." + }, + { + name: "editorStyle", + type: "any", + default: "null", + description: "Inline style of the container." + }, + { + name: 'modules', + type: 'object', + default: 'null', + description: 'Modules configuration, see here for available options.' + } +]; + +const EditorEvents = [ + { + name: "text-change", + description: "Callback to invoke when text of editor changes.", + arguments: [ + { + name: "event.delta", + type: "object", + description: "Representation of the change." + }, + { + name: "event.source", + type: "string", + description: 'Source of change. Will be either "user" or "api".' + }, + { + name: "event.htmlValue", + type: "string", + description: "Current value as html." + }, + { + name: "event.textValue", + type: "string", + description: "Current value as text." + }, + { + name: "event.instance", + type: "object", + description: "Text editor instance." + } + ] + }, + { + name: "selection-change", + description: "Callback to invoke when selection of the text changes.", + arguments: [ + { + name: "event.range", + type: "object", + description: "Representation of the selection boundaries." + }, + { + name: "event.oldRange", + type: "string", + description: 'Representation of the previous selection boundaries.' + }, + { + name: "event.source", + type: "string", + description: 'Source of change. Will be either "user" or "api".' + }, + { + name: "event.htmlValue", + type: "string", + description: "Current value as html." + }, + { + name: "event.textValue", + type: "string", + description: "Current value as text." + }, + { + name: "event.instance", + type: "object", + description: "Text editor instance." + } + ] + }, + { + name: 'load', + description: 'Callback to invoke when the quill modules are loaded.', + arguments: [ + { + name: 'event.instance', + type: 'any', + description: 'Quill instance' + } + ] + } +]; + +const EditorSlots = [ + { + name: "toolbar", + description: "Custom content for the component's toolbar" + } +]; + +module.exports = { + editor: { + name: "Editor", + description: "Editor is rich text editor component based on Quill.", + props: EditorProps, + events: EditorEvents, + slots: EditorSlots + } +}; diff --git a/api-generator/components/fieldset.js b/api-generator/components/fieldset.js new file mode 100644 index 000000000..e59469918 --- /dev/null +++ b/api-generator/components/fieldset.js @@ -0,0 +1,63 @@ +const FieldsetProps = [ + { + name: "legend", + type: "string", + default: "null", + description: "Header text of the fieldset." + }, + { + name: "toggleable", + type: "boolean", + default: "null", + description: + "When specified, content can toggled by clicking the legend." + }, + { + name: "collapsed", + type: "boolean", + default: "true", + description: "Defines the default visibility state of the content." + }, + { + name: "toggleButtonProps", + type: "string", + default: "null", + description: "Uses to pass the custom value to read for the anchor inside the component." + } +]; + +const FieldsetEvents = [ + { + name: "toggle", + description: "Callback to invoke when a tab gets expanded or collapsed.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "boolean", + description: "collapsed state as a boolean" + } + ] + } +]; + +const FieldsetSlots = [ + { + name: "legend", + description: "Custom content for the component's header" + } +]; + +module.exports = { + fieldset: { + name: "Fieldset", + description: "Fieldset is a grouping component with the optional content toggle feature.", + props: FieldsetProps, + events: FieldsetEvents, + slots: FieldsetSlots + } +}; diff --git a/api-generator/components/fileupload.js b/api-generator/components/fileupload.js new file mode 100644 index 000000000..7b30267b4 --- /dev/null +++ b/api-generator/components/fileupload.js @@ -0,0 +1,293 @@ +const FileUploadProps = [ + { + name: "name", + type: "string", + default: "null", + description: "Name of the request parameter to identify the files at backend." + }, + { + name: "url", + type: "string", + default: "null", + description: "Remote url to upload the files." + }, + { + name: "mode", + type: "string", + default: "advanced", + description: 'Defines the UI of the component, possible values are "advanced" and "basic".' + }, + { + name: "multiple", + type: "boolean", + default: "false", + description: "Used to select multiple files at once from file dialog." + }, + { + name: "accept", + type: "string", + default: "null", + description: 'Pattern to restrict the allowed file types such as "image/*".' + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "Disables the upload functionality." + }, + { + name: "auto", + type: "boolean", + default: "false", + description: "When enabled, upload begins automatically after selection is completed." + }, + { + name: "maxFileSize", + type: "number", + default: "null", + description: "Maximum file size allowed in bytes." + }, + { + name: "invalidFileSizeMessage", + type: "string", + default: '"{0}: Invalid file size, file size should be smaller than {1}."', + description: "Message of the invalid fize size." + }, + { + name: "invalidFileLimitMessage", + type: "string", + default: "Maximum number of files exceeded, limit is {0} at most.", + description: "Message to display when number of files to be uploaded exceeeds the limit." + }, + { + name: "fileLimit", + type: "number", + default: "null", + description: "Maximum number of files that can be uploaded." + }, + { + name: "withCredentials", + type: "boolean", + default: "false", + description: "Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates." + }, + { + name: "previewWidth", + type: "number", + default: "50", + description: "Width of the image thumbnail in pixels." + }, + { + name: "chooseLabel", + type: "string", + default: "null", + description: "Label of the choose button. Defaults to PrimeVue Locale configuration." + }, + { + name: "uploadLabel", + type: "string", + default: "Upoad", + description: "Label of the upload button. Defaults to PrimeVue Locale configuration." + }, + { + name: "cancelLabel", + type: "string", + default: "Cancel", + description: "Label of the cancel button. Defaults to PrimeVue Locale configuration." + }, + { + name: "customUpload", + type: "boolean", + default: "false", + description: "Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to PrimeVue Locale configuration." + }, + { + name: "showUploadButton", + type: "boolean", + default: "true", + description: "Whether to show the upload button." + }, + { + name: "showCancelButton", + type: "boolean", + default: "true", + description: "Whether to cancel the upload button." + }, + { + name: "chooseIcon", + type: "string", + default: "pi pi-plus", + description: "Icon of the choose button." + }, + { + name: "uploadIcon", + type: "string", + default: "pi pi-upload", + description: "Icon of the upload button." + }, + { + name: "cancelIcon", + type: "string", + default: "pi pi-times", + description: "Icon of the cancel button." + }, + { + name: "style", + type: "any", + default: "null", + description: "Inline style of the component." + }, + { + name: "class", + type: "string", + default: "null", + description: "Style class of the component." + } +]; + +const FileUploadEvents = [ + { + name: "before-upload", + description: "Callback to invoke before file upload begins to customize the request such as post parameters before the files.", + arguments: [ + { + name: "event.xhr", + type: "object", + description: "XmlHttpRequest instance." + }, + { + name: "event.formData", + type: "object", + description: "FormData object." + } + ] + }, + { + name: "before-send", + description: "Callback to invoke before file send begins to customize the request such as adding headers.", + arguments: [ + { + name: "event.xhr", + type: "object", + description: "XmlHttpRequest instance." + }, + { + name: "event.formData", + type: "object", + description: "FormData object." + } + ] + }, + { + name: "upload", + description: "Callback to invoke when file upload is complete.", + arguments: [ + { + name: "event.xhr", + type: "object", + description: "XmlHttpRequest instance." + }, + { + name: "event.files", + type: "object", + description: "Uploaded files." + } + ] + }, + { + name: "error", + description: "Callback to invoke if file upload fails.", + arguments: [ + { + name: "event.xhr", + type: "object", + description: "XmlHttpRequest instance." + }, + { + name: "event.files", + type: "object", + description: "Files that are not uploaded." + } + ] + }, + { + name: "clear", + description: "Callback to invoke when files in queue are removed without uploading." + }, + { + name: "select", + description: "Callback to invoke when file upload is complete.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original browser event." + }, + { + name: "event.files", + type: "object", + description: "List of selected files." + } + ] + }, + { + name: "progress", + description: "Callback to invoke when files are selected.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original browser event." + }, + { + name: "event.progress", + type: "number", + description: "Calculated progress value." + } + ] + }, + { + name: "uploader", + description: "Callback to invoke to implement a custom upload.", + arguments: [ + { + name: "event.files", + type: "object", + description: "List of selected files." + } + ] + }, + { + name: "remove", + description: "Callback to invoke when a singe file is removed from the list.", + arguments: [ + { + name: "event.file", + type: "object", + description: "Removed file." + }, + { + name: "event.files", + type: "object", + description: "Remaining files to be uploaded." + } + ] + } +]; + +const FileUploadSlots = [ + { + name: "empty", + description: "Custom content when there is no selected file" + } +]; + +module.exports = { + fileupload: { + name: "FileUpload", + description: "FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.", + props: FileUploadProps, + events: FileUploadEvents, + slots: FileUploadSlots + } +}; diff --git a/api-generator/components/fullcalendar.js b/api-generator/components/fullcalendar.js new file mode 100644 index 000000000..d1cd3ad60 --- /dev/null +++ b/api-generator/components/fullcalendar.js @@ -0,0 +1,22 @@ +const FullCalendarProps = [ + { + name: "events", + type: "array", + default: "null", + description: "An array of events to display." + }, + { + name: "options", + type: "object", + default: "null", + description: "A configuration object to define properties of FullCalendar." + } +]; + +module.exports = { + fullcalendar: { + name: "FullCalendar", + description: "An event calendar based on the FullCalendar library.", + props: FullCalendarProps + } +}; diff --git a/api-generator/components/galleria.js b/api-generator/components/galleria.js new file mode 100644 index 000000000..cc0ea47a7 --- /dev/null +++ b/api-generator/components/galleria.js @@ -0,0 +1,182 @@ +const GalleriaProps = [ + { + name: "id", + type: "string", + default: "null", + description: "Unique identifier of the element." + }, + { + name: "value", + type: "array", + default: "null", + description: "An array of objects to display." + }, + { + name: "activeIndex", + type: "number", + default: "0", + description: "Index of the first item." + }, + { + name: "fullscreen", + type: "boolean", + default: "false", + description: "Whether to display the component on fullscreen." + }, + { + name: "visible", + type: "boolean", + default: "false", + description: "Specifies the visibility of the mask on fullscreen mode." + }, + { + name: "numVisible", + type: "number", + default: "3", + description: "Number of items per page." + }, + { + name: "responsiveOptions", + type: "any", + default: "null", + description: "An array of options for responsive design." + }, + { + name: "showItemNavigators", + type: "boolean", + default: "false", + description: "Whether to display navigation buttons in item section." + }, + { + name: "showThumbnailNavigators", + type: "boolean", + default: "true", + description: "Whether to display navigation buttons in thumbnail container." + }, + { + name: "showItemNavigatorsOnHover", + type: "boolean", + default: "false", + description: "Whether to display navigation buttons on item hover." + }, + { + name: "changeItemOnIndicatorHover", + type: "boolean", + default: "false", + description: "When enabled, item is changed on indicator hover." + }, + { + name: "circular", + type: "boolean", + default: "false", + description: "Defines if scrolling would be infinite." + }, + { + name: "autoPlay", + type: "boolean", + default: "false", + description: "Items are displayed with a slideshow in autoPlay mode." + }, + { + name: "transitionInterval", + type: "number", + default: "4000", + description: "Time in milliseconds to scroll items." + }, + { + name: "showThumbnails", + type: "boolean", + default: "true", + description: "Whether to display thumbnail container." + }, + { + name: "thumbnailsPosition", + type: "string", + default: "bottom", + description: 'Position of thumbnails. Valid values are "bottom", "top", "left" and "right".' + }, + { + name: "verticalThumbnailViewPortHeight", + type: "string", + default: "300px", + description: "Height of the viewport in vertical thumbnail." + }, + { + name: "showIndicators", + type: "boolean", + default: "false", + description: "Whether to display indicator container." + }, + { + name: "showIndicatorsOnItem", + type: "boolean", + default: "false", + description: "When enabled, indicator container is displayed on item container." + }, + { + name: "indicatorsPosition", + type: "string", + default: "bottom", + description: 'Position of indicators. Valid values are "bottom", "top", "left" and "right".' + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "ase zIndex value to use in layering." + }, + { + name: "maskClass", + type: "string", + default: "null", + description: "Style class of the mask on fullscreen mode." + }, + { + name: "containerStyle", + type: "any", + default: "null", + description: "Inline style of the component on fullscreen mode. Otherwise, the 'style' property can be used." + }, + { + name: "containerClass", + type: "any", + default: "null", + description: "Style class of the component on fullscreen mode. Otherwise, the 'class' property can be used." + } +]; + +const GalleriaSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "footer", + description: "Custom content for the component's header" + }, + { + name: "item", + description: "Custom content for the item" + }, + { + name: "caption", + description: "Custom caption content" + }, + { + name: "thumbnail", + description: "Custom thumbnail content" + }, + { + name: "indicator", + description: "Custom indicator content" + } +]; + +module.exports = { + galleria: { + name: "Galleria", + description: "Galleria is an advanced content gallery component.", + props: GalleriaProps, + slots: GalleriaSlots + } +}; diff --git a/api-generator/components/image.js b/api-generator/components/image.js new file mode 100644 index 000000000..f486b2c84 --- /dev/null +++ b/api-generator/components/image.js @@ -0,0 +1,40 @@ +const ImageProps = [ + { + name: "preview", + type: "boolean", + default: "false", + description: "Controls the preview functionality." + } +]; + +const ImageEvents = [ + { + name: "show", + description: "Triggered when the preview overlay is shown." + }, + { + name: "hide", + description: "Triggered when the preview overlay is hidden." + }, + { + name: "error", + description: "Triggered when an error occurs while loading an image file." + } +]; + +const ImageSlots = [ + { + name: "indicator", + description: "Custom content for the preview indicator" + } +]; + +module.exports = { + image: { + name: "Image", + description: "Displays an image with preview and tranformation options.", + props: ImageProps, + events: ImageEvents, + slots: ImageSlots + } +}; diff --git a/api-generator/components/inlinemessage.js b/api-generator/components/inlinemessage.js new file mode 100644 index 000000000..e15a9c45b --- /dev/null +++ b/api-generator/components/inlinemessage.js @@ -0,0 +1,17 @@ +const InlineMessageProps = [ + { + name: "severity", + type: "string", + default: "error", + description: 'Severity level of the message. Valid severities are "success", "info", "warn" and "error".' + } +]; + +module.exports = { + inlinemessage: { + name: "InlineMessage", + description: "InlineMessage component is useful in cases where a single message needs to be displayed related to an element such as forms", + "doc-url": "message", + props: InlineMessageProps + } +}; diff --git a/api-generator/components/inplace.js b/api-generator/components/inplace.js new file mode 100644 index 000000000..fb5245f1d --- /dev/null +++ b/api-generator/components/inplace.js @@ -0,0 +1,66 @@ +const InplaceProps = [ + { + name: "active", + type: "boolean", + default: "false", + description: "Whether the content is displayed or not." + }, + { + name: "closable", + type: "boolean", + default: "false", + description: "Displays a button to switch back to display mode." + }, + { + name: "diabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the element should be disabled." + } +]; + +const InplaceEvents = [ + { + name: "open", + description: "Callback to invoke when inplace is opened.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "close", + description: "Callback to invoke when inplace is closed.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + } +]; + +const InplaceSlots = [ + { + name: "display", + description: "Output content" + }, + { + name: "content", + description: "Actual content" + } +]; + +module.exports = { + inplace: { + name: "Inplace", + description: "Inplace provides an easy to do editing and display at the same time where clicking the output displays the actual content.", + props: InplaceProps, + events: InplaceEvents, + slots: InplaceSlots + } +}; diff --git a/api-generator/components/inputmask.js b/api-generator/components/inputmask.js new file mode 100644 index 000000000..b562a38e8 --- /dev/null +++ b/api-generator/components/inputmask.js @@ -0,0 +1,40 @@ +const InputMaskProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "mask", + type: "string", + default: "null", + description: "Mask pattern." + }, + { + name: "slotChar", + type: "string", + default: "-", + description: "Placeholder character in mask, default is underscore." + }, + { + name: "autoClear", + type: "boolean", + default: "true", + description: "Clears the incomplete value on blur." + }, + { + name: "unmask", + type: "boolean", + default: "false", + description: "Defines if model sets the raw unmasked value to bound value or the formatted mask value." + } +]; + +module.exports = { + inputmask: { + name: "InputMask", + description: "InputMask component is used to enter input in a certain format such as numeric, date, currency, email and phone.", + props: InputMaskProps + } +}; diff --git a/api-generator/components/inputnumber.js b/api-generator/components/inputnumber.js new file mode 100644 index 000000000..c0c9775ee --- /dev/null +++ b/api-generator/components/inputnumber.js @@ -0,0 +1,237 @@ +const InputNumberProps = [ + { + name: "modelValue", + type: "number", + default: "null", + description: "Value of the component." + }, + { + name: "format", + type: "boolean", + default: "true", + description: "Whether to format the value." + }, + { + name: "showButtons", + type: "boolean", + default: "false", + description: "Displays spinner buttons." + }, + { + name: "buttonLayout", + type: "string", + default: "stacked", + description: 'Layout of the buttons, valid values are "stacked" (default), "horizontal" and "vertical".' + }, + { + name: "incrementButtonClass", + type: "string", + default: "null", + description: "Style class of the increment button." + }, + { + name: "decrementButtonClass", + type: "string", + default: "null", + description: "Style class of the decrement button." + }, + { + name: "incrementButtonIcon", + type: "string", + default: "pi pi-angle-up", + description: "Style class of the increment button." + }, + { + name: "decrementButtonIcon", + type: "string", + default: "pi pi-angle-down", + description: "Style class of the decrement button." + }, + { + name: "locale", + type: "string", + default: "null", + description: "Locale to be used in formatting." + }, + { + name: "localeMatcher", + type: "string", + default: "best fit", + description: 'The locale matching algorithm to use. Possible values are "lookup" and "best fit".' + }, + { + name: "mode", + type: "string", + default: "decimal", + description: 'Defines the behavior of the component, valid values are "decimal" and "currency".' + }, + { + name: "prefix", + type: "string", + default: "null", + description: "Text to display before the value." + }, + { + name: "suffix", + type: "string", + default: "decimal", + description: "Text to display after the value." + }, + { + name: "currency", + type: "string", + default: "null", + description: 'The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as "USD" for the US dollar, "EUR" for the euro, or "CNY" for the Chinese RMB. There is no default value; if the style is "currency", the currency property must be provided.' + }, + { + name: "currencyDisplay", + type: "string", + default: "symbol", + description: 'How to display the currency in currency formatting. Possible values are "symbol" to use a localized currency symbol such as €, "code" to use the ISO currency code, "name" to use a localized currency name such as "dollar"; the default is "symbol".' + }, + { + name: "useGrouping", + type: "boolean", + default: "true", + description: "Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators." + }, + { + name: "minFractionDigits", + type: "number", + default: "null", + description: "The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information)." + }, + { + name: "maxFractionDigits", + type: "number", + default: "null", + description: "The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information)." + }, + { + name: "min", + type: "number", + default: "null", + description: "Mininum boundary value." + }, + { + name: "max", + type: "number", + default: "null", + description: "Maximum boundary value." + }, + { + name: "step", + type: "number", + default: "1", + description: "Step factor to increment/decrement the value." + }, + { + name: "allowEmpty", + type: "boolean", + default: "true", + description: "Determines whether the input field is empty." + }, + { + 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: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + }, + { + name: "incrementButtonProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLButtonElement to increment button inside the component." + }, + { + name: "decrementButtonProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLButtonElement to decrement button inside the component." + } +]; + +const InputNumberEvents = [ + { + name: "input", + description: "Callback to invoke when the value is entered.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "number", + description: "New value" + } + ] + }, + { + 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" + } + ] + } +]; + +module.exports = { + inputnumber: { + name: "InputNumber", + description: "InputNumber is an input component to provide numerical input.", + props: InputNumberProps, + events: InputNumberEvents + } +}; diff --git a/api-generator/components/inputswitch.js b/api-generator/components/inputswitch.js new file mode 100644 index 000000000..262ad3ed2 --- /dev/null +++ b/api-generator/components/inputswitch.js @@ -0,0 +1,68 @@ +const InputSwitchProps = [ + { + name: "modelValue", + type: "boolean", + default: "null", + description: "Specifies whether a inputswitch should be checked or not." + }, + { + name: "trueValue", + type: "any", + default: "null", + description: "Value in checked state." + }, + { + name: "falseValue", + type: "any", + default: "null", + description: "Value in unchecked state." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + } +]; + +const InputSwitchEvents = [ + { + name: "click", + description: "Callback to invoke on click." + }, + { + name: "change", + description: "Callback to invoke on value change." + }, + { + name: "input", + description: "Callback to invoke on value change." + } +]; + +module.exports = { + inputswitch: { + name: "InputSwitch", + description: "InputSwitch is used to select a boolean value.", + props: InputSwitchProps, + events: InputSwitchEvents + } +}; diff --git a/api-generator/components/inputtext.js b/api-generator/components/inputtext.js new file mode 100644 index 000000000..2241399be --- /dev/null +++ b/api-generator/components/inputtext.js @@ -0,0 +1,16 @@ +const InputTextProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + } +]; + +module.exports = { + inputtext: { + name: "InputText", + description: "InputText renders a text field to enter data.", + props: InputTextProps + } +}; diff --git a/api-generator/components/knob.js b/api-generator/components/knob.js new file mode 100644 index 000000000..33d027b8f --- /dev/null +++ b/api-generator/components/knob.js @@ -0,0 +1,121 @@ +const KnobProps = [ + { + name: "modelValue", + type: "number", + default: "null", + description: "Value of the component." + }, + { + name: "size", + type: "number", + default: "100", + description: "Size of the component in pixels." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "readonly", + type: "boolean", + default: "false", + description: "When present, it specifies that the component value cannot be edited." + }, + { + name: "step", + type: "number", + default: "null", + description: "Step factor to increment/decrement the value." + }, + { + name: "min", + type: "number", + default: "0", + description: "Mininum boundary value." + }, + { + name: "max", + type: "number", + default: "100", + description: "Maximum boundary value." + }, + { + name: "valueColor", + type: "string", + default: "null", + description: "Background of the value." + }, + { + name: "rangeColor", + type: "string", + default: "null", + description: "Background color of the range." + }, + { + name: "textColor", + type: "string", + default: "null", + description: "Color of the value text." + }, + { + name: "strokeWidth", + type: "number", + default: "14", + description: "Width of the knob stroke." + }, + { + name: "showValue", + type: "boolean", + default: "true", + description: "Whether the show the value inside the knob." + }, + { + name: "valueTemplate", + type: "string", + default: "{value}", + description: "Template string of the value." + }, + { + name: "tabindex", + type: "number", + default: "null", + description: "Index of the element in tabbing order." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Establishes relationships between the component and label(s) where its value should be one or more element IDs." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Used to define a string that labels the element." + } +]; + +const KnobEvents = [ + { + name: "change", + description: "Callback to invoke when the value changes.", + arguments: [ + { + name: "value", + type: "number", + description: "New value" + } + ] + } +]; + +module.exports = { + knob: { + name: "Knob", + description: "Knob is a form component to define number inputs with a dial.", + props: KnobProps, + events: KnobEvents + } +}; diff --git a/api-generator/components/listbox.js b/api-generator/components/listbox.js new file mode 100644 index 000000000..4741ab862 --- /dev/null +++ b/api-generator/components/listbox.js @@ -0,0 +1,278 @@ +const ListboxProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "options", + type: "array", + default: "null", + description: "An array of selectitems to display as the available options." + }, + { + name: "optionLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option." + }, + { + name: "optionValue", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the value of an option, defaults to the option itself when not defined." + }, + { + name: "optionDisabled", + type: "boolean | function", + default: "null", + description: "Property name or getter function to use as the disabled flag of an option, defaults to false when not defined." + }, + { + name: "optionGroupLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option group." + }, + { + name: "optionGroupChildren", + type: "string | function", + default: "null", + description: "Property name or getter function that refers to the children options of option group." + }, + { + name: "listStyle", + type: "string", + default: "null", + description: "Inline style of inner list element." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When specified, disables the component." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "A property to uniquely identify an option." + }, + { + name: "multiple", + type: "boolean", + default: "false", + description: "When specified, allows selecting multiple values." + }, + { + name: "metaKeySelection", + type: "boolean", + default: "true", + description: "Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically." + }, + { + name: "filter", + type: "boolean", + default: "false", + description: "When specified, displays a filter input at header." + }, + { + name: "filterPlaceholder", + type: "string", + default: "null", + description: "Placeholder text to show when filter input is empty." + }, + { + name: "filterLocale", + type: "string", + default: "undefined", + description: "Locale to use in filtering. The default locale is the host environment's current locale." + }, + { + name: "filterMatchMode", + type: "string", + default: "contains", + description: 'Defines the filtering algorithm to use when searching the options. Valid values are "contains" (default), "startsWith" and "endsWith"' + }, + { + name: "filterFields", + type: "array", + default: "null", + description: "Fields used when filtering the options, defaults to optionLabel." + }, + { + name: "filterInputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the filter input inside the component." + }, + { + name: "virtualScrollerOptions", + type: "object", + default: "null", + description: "Whether to use the virtualScroller feature. The properties of VirtualScroller component can be used like an object in it." + }, + { + name: "autoOptionFocus", + type: "boolean", + default: "true", + description: "Whether to focus on the first visible or selected element." + }, + { + name: "selectOnFocus", + type: "boolean", + default: "false", + description: "When enabled, the focused option is selected." + }, + { + name: "filterMessage", + type: "string", + default: "{0} results are available", + description: "Text to be displayed in hidden accessible field when filtering returns any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "selectionMessage", + type: "string", + default: "{0} items selected", + description: "Text to be displayed in hidden accessible field when options are selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptySelectionMessage", + type: "string", + default: "No selected item", + description: "Text to be displayed in hidden accessible field when any option is not selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptyFilterMessage", + type: "string", + default: "No results found", + description: "Text to display when filtering does not return any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptyMessage", + type: "string", + default: "No results found", + description: "Text to display when there are no options available. Defaults to value from PrimeVue locale configuration." + }, + { + name: "tabindex", + type: "number", + default: "0", + description: "Index of the element in tabbing order." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Defines a string value that labels an interactive element." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + } +]; + +const ListboxEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "object", + description: "Selected option value" + } + ] + }, + { + name: "focus", + description: "Callback to invoke when component receives focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "blur", + description: "Callback to invoke when component loses focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "filter", + description: "Callback to invoke on filter input.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "string", + description: "Filter value" + } + ] + } +]; + +const ListboxSlots = [ + { + name: "option", + description: "Custom content for the item's option" + }, + { + name: "optiongroup", + description: "Custom content for the item's optiongroup" + }, + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "footer", + description: "Custom content for the component's footer" + }, + { + name: "emptyfilter", + description: "Custom content when there is no filtered data to display" + }, + { + name: "empty", + description: "Custom content when there is no data to display" + }, + { + name: "content", + description: "Custom content for the virtual scroller" + }, + { + name: "loader", + description: "Custom content for the virtual scroller loader items" + } +]; + +module.exports = { + listbox: { + name: "Listbox", + description: "Listbox is used to select one or more values from a list of items.", + props: ListboxProps, + events: ListboxEvents, + slots: ListboxSlots + } +}; diff --git a/api-generator/components/megamenu.js b/api-generator/components/megamenu.js new file mode 100644 index 000000000..ee6aaf138 --- /dev/null +++ b/api-generator/components/megamenu.js @@ -0,0 +1,44 @@ +const MegaMenuProps = [ + { + name: "modelValue", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "orientation", + type: "string", + default: "horizontal", + description: "Defines the orientation, valid values are horizontal and vertical." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const MegaMenuSlots = [ + { + name: "start", + description: "Custom content before the content" + }, + { + name: "end", + description: "Custom content after the content" + }, + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + megamenu: { + name: "MegaMenu", + description: "MegaMenu is navigation component that displays submenus together.", + props: MegaMenuProps, + slots: MegaMenuSlots + } +}; diff --git a/api-generator/components/menu.js b/api-generator/components/menu.js new file mode 100644 index 000000000..eb53f3637 --- /dev/null +++ b/api-generator/components/menu.js @@ -0,0 +1,66 @@ +const MenuProps = [ + { + name: "modelValue", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "popup", + type: "boolean", + default: "false", + description: "Defines if menu would displayed as a popup." + }, + { + name: "appendTo", + type: "string", + default: "body", + description: "A valid query selector or an HTMLElement to specify where the overlay gets attached." + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const MenuEvents = [ + { + name: "show", + description: "Callback to invoke when the overlay is shown." + }, + { + name: "hide", + description: "Callback to invoke when the overlay is hidden." + } +]; + +const MenuSlots = [ + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + menu: { + name: "Menu", + description: "Menu is a navigation / command component that supports dynamic and static positioning.", + props: MenuProps, + events: MenuEvents, + slots: MenuSlots + } +}; diff --git a/api-generator/components/menubar.js b/api-generator/components/menubar.js new file mode 100644 index 000000000..675607011 --- /dev/null +++ b/api-generator/components/menubar.js @@ -0,0 +1,38 @@ +const MenubarProps = [ + { + name: "modelValue", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const MenubarSlots = [ + { + name: "start", + description: "Custom content before the content" + }, + { + name: "end", + description: "Custom content after the content" + }, + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + menubar: { + name: "Menubar", + description: "Menubar is a horizontal menu component.", + props: MenubarProps, + slots: MenubarSlots + } +}; diff --git a/api-generator/components/message.js b/api-generator/components/message.js new file mode 100644 index 000000000..beaa32e89 --- /dev/null +++ b/api-generator/components/message.js @@ -0,0 +1,55 @@ +const MessageProps = [ + { + name: "severity", + type: "string", + default: "info", + description: 'Severity level of the message. Valid severities are "success", "info", "warn" and "error".' + }, + { + name: "closable", + type: "boolean", + default: "true", + description: "Whether the message can be closed manually using the close icon." + }, + { + name: "sticky", + type: "boolean", + default: "null", + description: "When enabled, message is not removed automatically." + }, + { + name: "life", + type: "number", + default: "300", + description: "Delay in milliseconds to close the message automatically." + }, + { + name: "icon", + type: "string", + default: "null", + description: "Display a custom icon for the message." + } +]; + +const MessageEvents = [ + { + name: "close", + description: "Callback to invoke when a message is closed.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + } +]; + +module.exports = { + message: { + name: "Message", + description: "Messages is used to display inline messages with various severities.", + props: MessageProps, + events: MessageEvents + } +}; diff --git a/api-generator/components/multiselect.js b/api-generator/components/multiselect.js new file mode 100644 index 000000000..e6eebd89f --- /dev/null +++ b/api-generator/components/multiselect.js @@ -0,0 +1,412 @@ +const MultiSelectProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "options", + type: "array", + default: "null", + description: "An array of selectitems to display as the available options." + }, + { + name: "optionLabel", + type: "string", + default: "null", + description: "Property name or getter function to use as the label of an option." + }, + { + name: "optionValue", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the value of an option, defaults to the option itself when not defined." + }, + { + name: "optionDisabled", + type: "boolean | function", + default: "null", + description: "Property name or getter function to use as the disabled flag of an option, defaults to false when not defined." + }, + { + name: "optionGroupLabel", + type: "string | function", + default: "null", + description: "Property name or getter function to use as the label of an option group." + }, + { + name: "optionGroupChildren", + type: "string | function", + default: "null", + description: "Property name or getter function that refers to the children options of option group." + }, + { + name: "scrollHeight", + type: "string", + default: "200px", + description: "Height of the viewport, a scrollbar is defined if height of list exceeds this value." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Label to display when there are no selections." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + }, + { + name: "panelStyle", + type: "object", + default: "null", + description: "Inline style of the overlay panel." + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + name: "panelProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the overlay panel." + }, + { + name: "filterInputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the filter input inside the overlay panel." + }, + { + name: "closeButtonProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLButtonElement to the close button inside the overlay panel." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "A property to uniquely identify an option." + }, + { + name: "filter", + type: "boolean", + default: "false", + description: "When specified, displays a filter input at header." + }, + { + name: "filterPlaceholder", + type: "string", + default: "null", + description: "Placeholder text to show when filter input is empty." + }, + { + name: "filterLocale", + type: "string", + default: "undefined", + description: "Locale to use in filtering. The default locale is the host environment's current locale." + }, + { + name: "filterMatchMode", + type: "string", + default: "contains", + description: 'Defines the filtering algorithm to use when searching the options. Valid values are "contains" (default), "startsWith" and "endsWith"' + }, + { + name: "filterFields", + type: "array", + default: "null", + description: "Fields used when filtering the options, defaults to optionLabel." + }, + { + 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: "display", + type: "string", + default: "comma", + description: 'Defines how the selected items are displayed, valid values are "comma" and "chip".' + }, + { + name: "selectedItemsLabel", + type: "string", + default: "{0} items selected", + description: "Label to display after exceeding max selected labels." + }, + { + name: "maxSelectedLabels", + type: "number", + default: "null", + description: "Decides how many selected item labels to show at most." + }, + { + name: "selectionLimit", + type: "number", + default: "null", + description: "Maximum number of selectable items." + }, + { + name: "showToggleAll", + type: "boolean", + default: "false", + description: "Whether to show the header checkbox to toggle the selection of all items at once." + }, + { + name: "loading", + type: "boolean", + default: "false", + description: "Whether the multiselect is in loading state." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spinner pi-spin", + description: "Icon to display in loading state." + }, + { + name: "selectAll", + type: "boolean", + default: "false", + description: "Whether all data is selected." + }, + { + name: "resetFilterOnHide", + type: "boolean", + default: "false", + description: "Clears the filter value when hiding the dropdown." + }, + { + name: "virtualScrollerOptions", + type: "object", + default: "null", + description: "Whether to use the virtualScroller feature. The properties of VirtualScroller component can be used like an object in it." + }, + { + name: "autoOptionFocus", + type: "boolean", + default: "true", + description: "Whether to focus on the first visible or selected element when the overlay panel is shown." + }, + { + name: "autoFilterFocus", + type: "boolean", + default: "false", + description: "Whether to focus on the filter element when the overlay panel is shown." + }, + { + name: "filterMessage", + type: "string", + default: "{0} results are available", + description: "Text to be displayed in hidden accessible field when filtering returns any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "selectionMessage", + type: "string", + default: "{0} items selected", + description: "Text to be displayed in hidden accessible field when options are selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptySelectionMessage", + type: "string", + default: "No selected item", + description: "Text to be displayed in hidden accessible field when any option is not selected. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptyFilterMessage", + type: "string", + default: "No results found", + description: "Text to display when filtering does not return any results. Defaults to value from PrimeVue locale configuration." + }, + { + name: "emptyMessage", + type: "string", + default: "No results found", + description: "Text to display when there are no options available. Defaults to value from PrimeVue locale configuration." + }, + { + name: "tabindex", + type: "number", + default: "0", + description: "Index of the element in tabbing order." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Defines a string value that labels an interactive element." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + } +]; + +const MultiSelectEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "array", + description: "Selected option value" + } + ] + }, + { + name: "focus", + description: "Callback to invoke when component receives focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "blur", + description: "Callback to invoke when component loses focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "before-show", + description: "Callback to invoke before the overlay is shown." + }, + { + name: "before-hide", + description: "Callback to invoke before the overlay is hidden." + }, + { + name: "show", + description: "Callback to invoke when the overlay is shown." + }, + { + name: "hide", + description: "Callback to invoke when the overlay is hidden." + }, + { + name: "filter", + description: "Callback to invoke on filter input.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "string", + description: "Filter value" + } + ] + }, + { + name: "selectall-change", + description: "Callback to invoke when all data is selected.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.checked", + type: "boolean", + description: "Whether all data is selected." + } + ] + } +]; + +const MultiSelectSlots = [ + { + name: "value", + description: "Custom content for the item value" + }, + { + name: "chip", + description: "Custom content for the chip display." + }, + { + name: "indicator", + description: "Custom content for the dropdown indicator" + }, + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "footer", + description: "Custom content for the component's footer" + }, + { + name: "option", + description: "Custom content for the item's option" + }, + { + name: "optiongroup", + description: "Custom content for the item's optiongroup" + }, + { + name: "emptyfilter", + description: "Custom content when there is no filtered data to display" + }, + { + name: "empty", + description: "Custom content when there is no data to display" + }, + { + name: "content", + description: "Custom content for the virtual scroller" + }, + { + name: "loader", + description: "Custom content for the virtual scroller loader items" + } +]; + +module.exports = { + multiselect: { + name: "MultiSelect", + description: "MultiSelect is used to multiple values from a list of options.", + props: MultiSelectProps, + events: MultiSelectEvents, + slots: MultiSelectSlots + } +}; diff --git a/api-generator/components/orderlist.js b/api-generator/components/orderlist.js new file mode 100644 index 000000000..29b1086de --- /dev/null +++ b/api-generator/components/orderlist.js @@ -0,0 +1,120 @@ +const OrderListProps = [ + { + name: "modelValue", + type: "array", + default: "null", + description: "Value of the component." + }, + { + name: "selection", + type: "any", + default: "null", + description: "Selected items in the list." + }, + { + name: "metaKeySelection", + type: "boolean", + default: "true", + description: "Defines whether metaKey is requred or not for the selection. When true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "Name of the field that uniquely identifies the a record in the data." + }, + { + name: "listStyle", + type: "object", + default: "null", + description: "Inline style of the the list element." + }, + { + name: "responsive", + type: "boolean", + default: "true", + description: "Whether the list optimizes layout based on screen size." + }, + { + name: "breakpoint", + type: "string", + default: "960px", + description: "The breakpoint to define the maximum width boundary when responsiveness is enabled." + }, + { + name: "stripedRows", + type: "boolean", + default: "false", + description: "Whether to displays rows with alternating colors." + } +]; + +const OrderListEvents = [ + { + name: "reorder", + description: "Callback to invoke when the list is reordered.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "array", + description: "Ordered list" + }, + { + name: "event.direction", + type: "string", + description: + 'Direction of the change; "up", "down", "bottom", "top"' + } + ] + }, + { + name: "selection-change", + description: "Callback to invoke when selection changes.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "array", + description: "Ordered list" + } + ] + } +]; + +const OrderListSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "item", + description: "Custom content for the item" + }, + { + name: "controlsstart", + description: "Custom content before the buttons" + }, + { + name: "controlsend", + description: "Custom content after the buttons" + } +]; + +module.exports = { + orderlist: { + name: "OrderList", + description: "OrderList is used to managed the order of a collection.", + props: OrderListProps, + events: OrderListEvents, + slots: OrderListSlots + } +}; diff --git a/api-generator/components/organizationchart.js b/api-generator/components/organizationchart.js new file mode 100644 index 000000000..a775f204e --- /dev/null +++ b/api-generator/components/organizationchart.js @@ -0,0 +1,88 @@ +const OrganizationChartProps = [ + { + name: "value", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "selectionKeys", + type: "object", + default: "null", + description: "A map instance of key-value pairs to represented the selected nodes." + }, + { + name: "selectionMode", + type: "string", + default: "null", + description: 'Type of the selection, valid values are "single" and "multiple".' + }, + { + name: "collapsible", + type: "boolean", + default: "false", + description: "Whether the nodes can be expanded or toggled." + }, + { + name: "collapsedKeys", + type: "object", + default: "null", + description: "A map instance of key-value pairs to represented the collapsed nodes." + } +]; + +const OrganizationChartEvents = [ + { + name: "node-select", + description: "Callback to invoke when a node is selected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-unselect", + description: "Callback to invoke when a node is unselected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-expand", + description: "Callback to invoke when a node is expanded.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-collapse", + description: "Callback to invoke when a node is collapsed.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + } +]; + +module.exports = { + organizationchart: { + name: "OrganizationChart", + description: "OrganizationChart visualizes hierarchical organization data.", + props: OrganizationChartProps, + events: OrganizationChartEvents + } +}; diff --git a/api-generator/components/overlaypanel.js b/api-generator/components/overlaypanel.js new file mode 100644 index 000000000..d7aeac610 --- /dev/null +++ b/api-generator/components/overlaypanel.js @@ -0,0 +1,64 @@ +const OverlayPanelProps = [ + { + name: "dismissable", + type: "boolean", + default: "true", + description: "Enables to hide the overlay when outside is clicked." + }, + { + name: "showCloseIcon", + type: "boolean", + default: "false", + description: "When enabled, displays a close icon at top right corner." + }, + { + name: "appendTo", + type: "string", + default: "body", + description: "A valid query selector or an HTMLElement to specify where the overlay gets attached." + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + }, + { + name: "ariaCloseLabel", + type: "string", + default: "close", + description: "Aria label of the close icon." + }, + { + name: "breakpoints", + type: "object", + default: "null", + description: "Object literal to define widths per screen size." + } +]; + +const OverlayPanelEvents = [ + { + name: "show", + description: "Callback to invoke before the overlay is shown." + }, + { + name: "hide", + description: "Callback to invoke before the overlay is hidden." + }, +]; + +module.exports = { + overlaypanel: { + name: "OverlayPanel", + description: "OverlayPanel is a container component positioned as connected to its target.", + props: OverlayPanelProps, + events: OverlayPanelEvents + } +}; diff --git a/api-generator/components/paginator.js b/api-generator/components/paginator.js new file mode 100644 index 000000000..9598b60c6 --- /dev/null +++ b/api-generator/components/paginator.js @@ -0,0 +1,100 @@ +const PaginatorProps = [ + { + name: "totalRecords", + type: "number", + default: "0", + description: "Number of total records." + }, + { + name: "rows", + type: "number", + default: "0", + description: "Data count to display per page." + }, + { + name: "first", + type: "number", + default: "0", + description: "Zero-relative number of the first row to be displayed." + }, + { + name: "pageLinkSize", + type: "number", + default: "5", + description: "Number of page links to display." + }, + { + name: "rowsPerPageOptions", + type: "array", + default: "null", + description: "Array of integer values to display inside rows per page dropdown." + }, + { + name: "template", + type: "string", + default: "FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown", + description: "Template of the paginator." + }, + { + name: "currentPageReportTemplate", + type: "string", + default: "({currentPage} of {totalPages})", + description: "Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}" + }, + { + name: "alwaysShow", + type: "boolean", + default: "true", + description: "Whether to show the paginator even there is only one page." + } +]; + +const PaginatorEvents = [ + { + name: "page", + description: "Callback to invoke when page changes, the event object contains information about the new state.", + arguments: [ + { + name: "event.page", + type: "number", + description: "New page number" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.pageCount", + type: "number", + description: "Total number of pages" + } + ] + } +]; + +const PaginatorSlots = [ + { + name: "left", + description: "Custom content for the component's left side" + }, + { + name: "right", + description: "Custom content for the component's right side" + } +]; + +module.exports = { + paginator: { + name: "Paginator", + description: "Paginator is a generic component to display content in paged format.", + props: PaginatorProps, + events: PaginatorEvents, + slots: PaginatorSlots + } +}; diff --git a/api-generator/components/panel.js b/api-generator/components/panel.js new file mode 100644 index 000000000..5f5794bb9 --- /dev/null +++ b/api-generator/components/panel.js @@ -0,0 +1,66 @@ +const PanelProps = [ + { + name: "header", + type: "string", + default: "null", + description: "Header text of the panel." + }, + { + name: "toggleable", + type: "boolean", + default: "null", + description: "Defines if content of panel can be expanded and collapsed." + }, + { + name: "collapsed", + type: "boolean", + default: "null", + description: "Defines the initial state of panel content." + }, + { + name: "toggleButtonProps", + type: "string", + default: "null", + description: "Uses to pass the custom value to read for the anchor inside the component." + } +]; + +const PanelEvents = [ + { + name: "toggle", + description: "Callback to invoke when a tab toggle.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "boolean", + description: "collapsed state as a boolean" + } + ] + } +]; + +const PanelSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "icons", + description: "Custom content for the header's icon" + } +]; + +module.exports = { + panel: { + name: "Panel", + description: "Panel is a container with the optional content toggle feature.", + props: PanelProps, + events: PanelEvents, + slots: PanelSlots + } +}; diff --git a/api-generator/components/panelmenu.js b/api-generator/components/panelmenu.js new file mode 100644 index 000000000..4a1928644 --- /dev/null +++ b/api-generator/components/panelmenu.js @@ -0,0 +1,36 @@ +const PanelMenuProps = [ + { + name: "model", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "expandedKeys", + type: "object", + default: "null", + description: "A map of keys to represent the expansion state in controlled mode." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const PanelMenuSlots = [ + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + panelmenu: { + name: "PanelMenu", + description: "PanelMenu is a hybrid of Accordion and Tree components", + props: PanelMenuProps, + slots: PanelMenuSlots + } +}; diff --git a/api-generator/components/password.js b/api-generator/components/password.js new file mode 100644 index 000000000..6dcfdd278 --- /dev/null +++ b/api-generator/components/password.js @@ -0,0 +1,164 @@ +const PasswordProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "promptLabel", + type: "string", + default: "null", + description: "Text to prompt password entry. Defaults to PrimeVue Locale configuration." + }, + { + name: "mediumRegex", + type: "string", + default: "^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})", + description: "Regex for a medium level password." + }, + { + name: "strongRegex", + type: "string", + default: "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})", + description: "Regex for a strong level password." + }, + { + name: "weakLabel", + type: "string", + default: "null", + description: "Text for a weak password. Defaults to PrimeVue Locale configuration." + }, + { + name: "mediumLabel", + type: "string", + default: "null", + description: "Text for a medium password. Defaults to PrimeVue Locale configuration." + }, + { + name: "strongLabel", + type: "string", + default: "null", + description: "Text for a strong password. Defaults to PrimeVue Locale configuration." + }, + { + name: "feedback", + type: "boolean", + default: "true", + description: "Whether to show the strength indicator or not." + }, + { + name: "toogleMask", + type: "boolean", + default: "false", + description: "Whether to show an icon to display the password as plain text." + }, + { + 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: "hideIcon", + type: "string", + default: "pi pi-eye-slash", + description: "Icon to hide displaying the password as plain text." + }, + { + name: "showIcon", + type: "string", + default: "pi pi-eye", + description: "Icon to show displaying the password as plain text." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Placeholder text for the input." + }, + { + name: "required", + type: "boolean", + default: "false", + description: "When present, it specifies that an input field must be filled out before submitting the form." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputClass", + type: "any", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + }, + { + name: "panelId", + type: "string", + default: "null", + description: "Identifier of the underlying overlay panel element." + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + name: "panelStyle", + type: "string", + default: "null", + description: "Inline style of the overlay panel." + }, + { + name: "panelProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component." + } +]; + +const PasswordSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "content", + description: "Custom content for the component" + }, + { + name: "footer", + description: "Custom content for the component's footer" + } +]; + +module.exports = { + password: { + name: "Password", + description: "Password displays strength indicator for password fields.", + props: PasswordProps, + slots: PasswordSlots + } +}; diff --git a/api-generator/components/picklist.js b/api-generator/components/picklist.js new file mode 100644 index 000000000..9b22f78dd --- /dev/null +++ b/api-generator/components/picklist.js @@ -0,0 +1,220 @@ +const PickListProps = [ + { + name: "modelValue", + type: "array", + default: "null", + description: "Value of the component as a multidimensional array." + }, + { + name: "selection", + type: "array", + default: "null", + description: "Selected items in the list as a multidimensional array." + }, + { + name: "metaKeySelection", + type: "boolean", + default: "true", + description: "Defines whether metaKey is requred or not for the selection. When true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "Name of the field that uniquely identifies the a record in the data." + }, + { + name: "listStyle", + type: "object", + default: "null", + description: "Inline style of the the list element." + }, + { + name: "responsive", + type: "boolean", + default: "true", + description: "Whether the list optimizes layout based on screen size." + }, + { + name: "breakpoint", + type: "string", + default: "960px", + description: "The breakpoint to define the maximum width boundary when responsiveness is enabled." + }, + { + name: "stripedRows", + type: "boolean", + default: "false", + description: "Whether to displays rows with alternating colors." + }, + { + name: "showSourceControls", + type: "boolean", + default: "true", + description: "Whether to show buttons of source list." + }, + { + name: "showTargetControls", + type: "boolean", + default: "true", + description: "Whether to show buttons of target list." + } +]; + +const PickListEvents = [ + { + name: "reorder", + description: "Callback to invoke when the list is reordered.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "array", + description: "Ordered list" + }, + { + name: "event.direction", + type: "string", + description: 'Direction of the change; "up", "down", "bottom", "top"' + }, + { + name: "event.listIndex", + type: "number", + description: "Index of the list that is ordered, 0 represents the source and 1 represents the target list." + } + ] + }, + { + name: "move-to-target", + description: "Callback to invoke when one or more items are moved to the target list.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.items", + type: "object", + description: "Moved items" + } + ] + }, + { + name: "move-all-to-target", + description: "Callback to invoke when all items are moved to the target list.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.items", + type: "object", + description: "Moved items" + } + ] + }, + { + name: "move-to-source", + description: "Callback to invoke when one or more items are moved to the source list.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.items", + type: "object", + description: "Moved items" + } + ] + }, + { + name: "move-all-to-source", + description: "Callback to invoke when all items are moved to the source list.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.items", + type: "object", + description: "Moved items" + } + ] + }, + { + name: "selection-change", + description: "Callback to invoke when one or more items are moved to the other list.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "array", + description: "Selected items" + } + ] + } +]; + +const PickListSlots = [ + { + name: "sourceheader", + description: "Custom content for the component's source header" + }, + { + name: "item", + description: "Custom content for the item" + }, + { + name: "targetheader", + description: "Custom content for the component's target header" + }, + { + name: "sourcecontrolsstart", + description: "Custom content before source control buttons" + }, + { + name: "sourcecontrolsend", + description: "Custom content after source control buttons" + }, + { + name: "movecontrolsstart", + description: "Custom content before move buttons" + }, + { + name: "movecontrolsend", + description: "Custom content after move buttons" + }, + { + name: "targetcontrolsstart", + description: "Custom content before target control buttons" + }, + { + name: "targetcontrolsend", + description: "Custom content after target control buttons" + } +]; + +module.exports = { + picklist: { + name: "PickList", + description: "PickList is used to reorder items between different lists.", + props: PickListProps, + events: PickListEvents, + slots: PickListSlots + } +}; diff --git a/api-generator/components/portal.js b/api-generator/components/portal.js new file mode 100644 index 000000000..7e23b1d47 --- /dev/null +++ b/api-generator/components/portal.js @@ -0,0 +1,28 @@ +const PortalProps = [ + { + name: "appendTo", + type: "string", + default: "body", + description: 'A valid query selector or an HTMLElement to specify where the dialog gets attached. Special keywords are "body" for document body and "self" for the element itself.' + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "If disabled, the Portal feature is eliminated and the content is displayed directly." + } +]; + +const PortalEvents = []; + +const PortalSlots = []; + +module.exports = { + portal: { + name: "Portal", + description: "Portal moves its container to a specific location based on target elements. Basically it uses in the background.", + props: PortalProps, + events: PortalEvents, + slots: PortalSlots + } +}; diff --git a/api-generator/components/progressbar.js b/api-generator/components/progressbar.js new file mode 100644 index 000000000..f126ffd2c --- /dev/null +++ b/api-generator/components/progressbar.js @@ -0,0 +1,28 @@ +const ProgressbarProps = [ + { + name: "value", + type: "number", + default: "null", + description: "Current value of the progress." + }, + { + name: "mode", + type: "string", + default: "determinate", + description: 'Defines the mode of the progress, valid values are "determinate" and "indeterminate".' + }, + { + name: "showValue", + type: "boolean", + default: "true", + description: "Whether to display the progress bar value." + } +]; + +module.exports = { + progressbar: { + name: "ProgressBar", + description: "ProgressBar is a process status indicator.", + props: ProgressbarProps + } +}; diff --git a/api-generator/components/progressspinner.js b/api-generator/components/progressspinner.js new file mode 100644 index 000000000..0cbe3c8e5 --- /dev/null +++ b/api-generator/components/progressspinner.js @@ -0,0 +1,28 @@ +const ProgressSpinnerProps = [ + { + name: "strokeWidth", + type: "string", + default: "2", + description: "Width of the circle stroke." + }, + { + name: "fill", + type: "string", + default: "null", + description: "Color for the background of the circle." + }, + { + name: "animationDuration", + type: "string", + default: "2s", + description: "Duration of the rotate animation." + } +]; + +module.exports = { + progressspinner: { + name: "ProgressSpinner", + description: "ProgressSpinner is a process status indicator", + props: ProgressSpinnerProps + } +}; diff --git a/api-generator/components/radiobutton.js b/api-generator/components/radiobutton.js new file mode 100644 index 000000000..86e87b9b0 --- /dev/null +++ b/api-generator/components/radiobutton.js @@ -0,0 +1,96 @@ +const RadioButtonProps = [ + { + name: "value", + type: "any", + default: "null", + description: "Value of the checkbox." + }, + { + name: "modelValue", + type: "any", + default: "null", + description: "Value binding of the checkbox." + }, + { + name: "name", + type: "string", + default: "null", + description: "Name of the input element." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the element should be disabled." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Establishes relationships between the component and label(s) where its value should be one or more element IDs." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Used to define a string that labels the element." + } +]; + +const RadioButtonEvents = [ + { + name: "click", + description: "Callback to invoke on radio button click.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "change", + description: "Callback to invoke on radio button value change.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + } +]; + +module.exports = { + radiobutton: { + name: "RadioButton", + description: "RadioButton is an extension to standard radio button element with theming.", + props: RadioButtonProps, + events: RadioButtonEvents + } +}; diff --git a/api-generator/components/rating.js b/api-generator/components/rating.js new file mode 100644 index 000000000..ddd99334b --- /dev/null +++ b/api-generator/components/rating.js @@ -0,0 +1,60 @@ +const RatingProps = [ + { + name: "modelValue", + type: "number", + default: "null", + description: "Value of the rating." + }, + { + 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 component is read-only." + }, + { + name: "stars", + type: "number", + default: "5", + description: "Number of stars." + }, + { + name: "cancel", + type: "boolean", + default: "true", + description: "When specified a cancel icon is displayed to allow clearing the value." + } +]; + +const RatingEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "number", + description: "Selected option value" + } + ] + } +]; + +module.exports = { + rating: { + name: "rating", + description: "Rating component is a star based selection input.", + props: RatingProps, + events: RatingEvents + } +}; diff --git a/api-generator/components/ripple.js b/api-generator/components/ripple.js new file mode 100644 index 000000000..b3a324344 --- /dev/null +++ b/api-generator/components/ripple.js @@ -0,0 +1,7 @@ +module.exports = { + ripple: { + name: "Ripple", + description: "Ripple directive adds ripple effect to the host element.", + "vue-modifiers": [] + } +}; diff --git a/api-generator/components/row.js b/api-generator/components/row.js new file mode 100644 index 000000000..a2bb8f8f0 --- /dev/null +++ b/api-generator/components/row.js @@ -0,0 +1,7 @@ +module.exports = { + row: { + name: "Row", + description: "DataTable can be grouped by defining a Row component with nested columns", + "doc-url": "datatable" + } +}; diff --git a/api-generator/components/scrollpanel.js b/api-generator/components/scrollpanel.js new file mode 100644 index 000000000..9ebb33e2e --- /dev/null +++ b/api-generator/components/scrollpanel.js @@ -0,0 +1,16 @@ +const ScrollPanelProps = [ + { + name: "step", + type: "number", + default: "5", + description: "Step factor to scroll the content while pressing the arrow keys." + } +]; + +module.exports = { + scrollpanel: { + name: "ScrollPanel", + description: "ScrollPanel is a cross browser, lightweight and themable alternative to native browser scrollbar.", + props: ScrollPanelProps + } +}; diff --git a/api-generator/components/scrolltop.js b/api-generator/components/scrolltop.js new file mode 100644 index 000000000..b81941984 --- /dev/null +++ b/api-generator/components/scrolltop.js @@ -0,0 +1,34 @@ +const ScrollTopProps = [ + { + name: "target", + type: "string", + default: "window", + description: 'Target of the ScrollTop, valid values are "window" and "parent".' + }, + { + name: "threshold", + type: "number", + default: "400", + description: "Defines the threshold value of the vertical scroll position of the target to toggle the visibility." + }, + { + name: "icon", + type: "string", + default: "pi pi-chevron-up", + description: "Icon to display." + }, + { + name: "behavior", + type: "string", + default: "smooth", + description: 'Defines the scrolling behavi, "smooth" adds an animation and "auto" scrolls with a jump.' + } +]; + +module.exports = { + scrolltop: { + name: "ScrollTop", + description: "ScrollTop gets displayed after a certain scroll position and used to navigates to the top of the page quickly.", + props: ScrollTopProps + } +}; diff --git a/api-generator/components/selectbutton.js b/api-generator/components/selectbutton.js new file mode 100644 index 000000000..a7e5a05da --- /dev/null +++ b/api-generator/components/selectbutton.js @@ -0,0 +1,120 @@ +const SelectButtonProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "options", + type: "array", + default: "null", + description: "An array of selectitems to display as the available options." + }, + { + name: "optionLabel", + type: "string", + default: "null", + description: "Property name or getter function to use as the label of an option." + }, + { + name: "optionValue", + type: "string", + default: "null", + description: "Property name or getter function to use as the value of an option, defaults to the option itself when not defined." + }, + { + name: "optionDisabled", + type: "boolean", + default: "null", + description: "Property name or getter function to use as the disabled flag of an option, defaults to false when not defined." + }, + { + name: "multiple", + type: "boolean", + default: "false", + description: "When specified, allows selecting multiple values." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the element should be disabled." + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "A property to uniquely identify an option." + }, + { + name: "unselectable", + type: "boolean", + default: "true", + description: "Whether selection can be cleared." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Identifier of the underlying element." + } +]; + +const SelectButtonEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "any", + description: "Single value or an array of values that are selected." + } + ] + }, + { + name: "focus", + description: "Callback to invoke on focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "blur", + description: "Callback to invoke on blur.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + } +]; + +const SelectButtonSlots = [ + { + name: "option", + description: "Custom content for the item's option" + } +]; + +module.exports = { + selectbutton: { + name: "SelectButton", + description: "SelectButton is a form component to choose a value from a list of options using button elements.", + props: SelectButtonProps, + events: SelectButtonEvents, + slots: SelectButtonSlots + } +}; diff --git a/api-generator/components/sidebar.js b/api-generator/components/sidebar.js new file mode 100644 index 000000000..8aef51f89 --- /dev/null +++ b/api-generator/components/sidebar.js @@ -0,0 +1,78 @@ +const SidebarProps = [ + { + name: "visible", + type: "boolean", + default: "false", + description: "Specifies the visibility of the dialog." + }, + { + name: "position", + type: "string", + default: "left", + description: 'Specifies the position of the sidebar, valid values are "left", "right", "top", "bottom" and "full".' + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + }, + { + name: "dismissable", + type: "boolean", + default: "true", + description: "Whether clicking outside closes the panel." + }, + { + name: "showCloseIcon", + type: "boolean", + default: "true", + description: "Whether to display a close icon inside the panel." + }, + { + name: "modal", + type: "boolean", + default: "true", + description: "Whether to a modal layer behind the sidebar." + }, + { + name: "ariaCloseLabel", + type: "string", + default: "close", + description: "Aria label of the close icon." + } +]; + +const SidebarEvents = [ + { + name: "hide", + description: "Callback to invoke when sidebar gets hidden." + }, + { + name: "show", + description: "Callback to invoke when sidebar gets shown." + } +]; + +const SidebarSlots = [ + { + name: "header", + description: "Custom content for the component header." + } +]; + +module.exports = { + sidebar: { + name: "Sidebar", + description: "Sidebar is a panel component displayed as an overlay at the edges of the screen.", + props: SidebarProps, + events: SidebarEvents, + slots: SidebarSlots + } +}; diff --git a/api-generator/components/skeleton.js b/api-generator/components/skeleton.js new file mode 100644 index 000000000..e03a03673 --- /dev/null +++ b/api-generator/components/skeleton.js @@ -0,0 +1,46 @@ +const SkeletonProps = [ + { + name: "shape", + type: "string", + default: "rectangle", + description: 'Shape of the element, options are "rectangle" and "circle".' + }, + { + name: "size", + type: "string", + default: "null", + description: "Size of the Circle or Square." + }, + { + name: "width", + type: "string", + default: "100%", + description: "Width of the element." + }, + { + name: "height", + type: "string", + default: "1rem", + description: "Height of the element." + }, + { + name: "borderRadius", + type: "string", + default: "null", + description: "Border radius of the element, defaults to value from theme." + }, + { + name: "animation", + type: "string", + default: "wave", + description: 'Type of the animation, valid options are "wave" and "none".' + } +]; + +module.exports = { + skeleton: { + name: "Skeleton", + description: "Skeleton is a placeholder to display instead of the actual content.", + props: SkeletonProps + } +}; diff --git a/api-generator/components/slider.js b/api-generator/components/slider.js new file mode 100644 index 000000000..f6727378e --- /dev/null +++ b/api-generator/components/slider.js @@ -0,0 +1,101 @@ +const SliderProps = [ + { + name: "modelValue", + type: "number", + default: "0", + description: "Value of the component." + }, + { + name: "min", + type: "number", + default: "0", + description: "Mininum boundary value." + }, + { + name: "max", + type: "number", + default: "100", + description: "Maximum boundary value." + }, + { + name: "orientation", + type: "string", + default: "horizontal", + description: "Orientation of the slider, valid values are horizontal and vertical." + }, + { + name: "step", + type: "number", + default: "1", + description: "Step factor to increment/decrement the value." + }, + { + name: "range", + type: "boolean", + default: "false", + description: "When speficed, allows two boundary values to be picked." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "tabindex", + type: "number", + default: "null", + description: "Index of the element in tabbing order." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Establishes relationships between the component and label(s) where its value should be one or more element IDs." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Used to define a string that labels the element." + } +]; + +const SliderEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "value", + type: "number", + description: "Selected option value" + } + ] + }, + { + name: "slideend", + description: "Callback to invoke when slide ends.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.value", + type: "number", + description: "New value." + } + ] + } +]; + +module.exports = { + slider: { + name: "Slider", + description: "Slider is an input component to provide a numerical input", + props: SliderProps, + events: SliderEvents + } +}; diff --git a/api-generator/components/speeddial.js b/api-generator/components/speeddial.js new file mode 100644 index 000000000..db135fca0 --- /dev/null +++ b/api-generator/components/speeddial.js @@ -0,0 +1,153 @@ +const SpeedDialProps = [ + { + name: "model", + type: "object", + default: "any", + description: "MenuModel instance to define the action items." + }, + { + name: "visible", + type: "boolean", + default: "false", + description: "Specifies the visibility of the overlay." + }, + { + name: "direction", + type: "string", + default: "up", + description: "Specifies the opening direction of actions. Valid values are 'up', 'down', 'left', 'right', 'up-left', 'up-right', 'down-left' and 'down-right'" + }, + { + name: "transitionDelay", + type: "number", + default: "30", + description: "Transition delay step for each action item." + }, + { + name: "type", + type: "string", + default: "linear", + description: "Specifies the opening type of actions." + }, + { + name: "radius", + type: "number", + default: "0", + description: "Radius for *circle types." + }, + { + name: "mask", + type: "boolean", + default: "false", + description: "Whether to show a mask element behind the speeddial" + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "Whether the component is disabled." + }, + { + name: "hideOnClickOutside", + type: "boolean", + default: "true", + description: "Whether the actions close when clicked outside." + }, + { + name: "buttonClass", + type: "string", + default: "null", + description: "Style class of the button element." + }, + { + name: "maskClass", + type: "string", + default: "null", + description: "Style class of the mask element." + }, + { + name: "maskStyle", + type: "object", + default: "null", + description: "Inline style of the mask element." + }, + { + name: "showIcon", + type: "string", + default: "pi pi-plus", + description: "Show icon of the button element." + }, + { + name: "hideIcon", + type: "string", + default: "null", + description: " Hide icon of the button element." + }, + { + name: "rotateAnimation", + type: "boolean", + default: "true", + description: "Defined to rotate showIcon when hideIcon is not present." + }, + { + name: "class", + type: "object", + default: "null", + description: "Style class of the element." + }, + { + name: "style", + type: "any", + default: "null", + description: "Style class of the element." + }, + { + name: "tooltipOptions", + type: "object", + default: "null", + description: "Whether to display the tooltip on items. The modifiers of tooltip can be used like an object in it. Valid keys are 'event' and 'position'." + } +]; + +const SpeedDialEvents = [ + { + name: "click", + description: "Fired when the button element clicked.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "show", + description: "Fired when the actions are visible." + }, + { + name: "hide", + description: "Fired when the actions are hidden." + }, +]; + +const SpeedDialSlots = [ + { + name: "item", + description: "Custom content for the item" + }, + { + name: "toggle", + description: "toggle: toggle metadata" + } +]; + +module.exports = { + speeddial: { + name: "SpeedDial", + description: "When pressed, a floating action button can display multiple primary actions that can be performed on a page.", + props: SpeedDialProps, + events: SpeedDialEvents, + slots: SpeedDialSlots + } +} diff --git a/api-generator/components/splitbutton.js b/api-generator/components/splitbutton.js new file mode 100644 index 000000000..d78f64003 --- /dev/null +++ b/api-generator/components/splitbutton.js @@ -0,0 +1,73 @@ +const SplitButtonProps = [ + { + name: "label", + type: "string", + default: "null", + description: "Text of the button." + }, + { + name: "icon", + type: "string", + default: "null", + description: "Name of the icon." + }, + { + name: "model", + type: "object", + default: "null", + description: "MenuModel instance to define the overlay items." + }, + { + 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: "appendTo", + type: "string", + default: "body", + description: "A valid query selector or an HTMLElement to specify where the overlay gets attached." + }, + { + name: "class", + type: "string", + default: "null", + description: "Style class of the component." + }, + { + name: "style", + type: "any", + default: "null", + description: "Inline of the component." + } +]; + +const SplitButtonEvents = [ + { + name: "click", + description: "Callback to invoke when main button is clicked.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + } +]; + +module.exports = { + splitbutton: { + name: "SplitButton", + description: "SplitButton groups a set of commands in an overlay with a default command.", + props: SplitButtonProps, + events: SplitButtonEvents + } +}; diff --git a/api-generator/components/splitter.js b/api-generator/components/splitter.js new file mode 100644 index 000000000..4ba1f300f --- /dev/null +++ b/api-generator/components/splitter.js @@ -0,0 +1,60 @@ +const SplitterProps = [ + { + name: "layout", + type: "string", + default: "horizontal", + description: 'Orientation of the panels, valid values are "horizontal" and "vertical".' + }, + { + name: "gutterSize", + type: "number", + default: "4", + description: "Size of the divider in pixels." + }, + { + name: "stateKey", + type: "string", + default: "null", + description: "Storage identifier of a stateful Splitter." + }, + { + name: "stateStorage", + type: "string", + default: "storage", + description: 'Defines where a stateful splitter keeps its state, valid values are "session" for sessionStorage and "local" for localStorage.' + }, + { + name: "step", + type: "number", + default: "5", + description: "Step factor to increment/decrement the size of the panels while pressing the arrow keys." + } +]; + +const SplitterEvents = [ + { + name: "resizened", + description: "Callback to invoke when resize ends.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Browser event" + }, + { + name: "event.sizes", + type: "array", + description: "Sizes of the panels as an array" + } + ] + } +]; + +module.exports = { + splitter: { + name: "Splitter", + description: "Splitter is utilized to separate and resize panels", + props: SplitterProps, + events: SplitterEvents + } +}; diff --git a/api-generator/components/splitterpanel.js b/api-generator/components/splitterpanel.js new file mode 100644 index 000000000..fc3a8595b --- /dev/null +++ b/api-generator/components/splitterpanel.js @@ -0,0 +1,23 @@ +const SplitterPanelProps = [ + { + name: "size", + type: "number", + default: "null", + description: "Size of the element relative to 100%." + }, + { + name: "minSize", + type: "number", + default: "null", + description: "Minimum size of the element relative to 100%." + } +]; + +module.exports = { + splitterpanel: { + name: "SplitterPanel", + description: "Splitter requires two SplitterPanel components to wrap.", + "doc-url": "splitter", + props: SplitterPanelProps + } +}; diff --git a/api-generator/components/steps.js b/api-generator/components/steps.js new file mode 100644 index 000000000..bbc787fba --- /dev/null +++ b/api-generator/components/steps.js @@ -0,0 +1,42 @@ +const StepsProps = [ + { + name: "id", + type: "string", + default: "null", + description: "Unique identifier of the element." + }, + { + name: "model", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "readonly", + type: "boolean", + default: "true", + description: "Whether the items are clickable or not." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const StepsSlots = [ + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + steps: { + name: "steps", + description: "Steps components is an indicator for the steps in a wizard workflow.", + props: StepsProps, + slots: StepsSlots + } +}; diff --git a/api-generator/components/styleclass.js b/api-generator/components/styleclass.js new file mode 100644 index 000000000..e2cb9b5f1 --- /dev/null +++ b/api-generator/components/styleclass.js @@ -0,0 +1,7 @@ +module.exports = { + styleclass: { + name: "StyleClass", + description: "StyleClass manages css classes declaratively to during enter/leave animations or just to toggle classes on an element.", + "vue-modifiers": [] + } +}; \ No newline at end of file diff --git a/api-generator/components/tabmenu.js b/api-generator/components/tabmenu.js new file mode 100644 index 000000000..de136a868 --- /dev/null +++ b/api-generator/components/tabmenu.js @@ -0,0 +1,56 @@ +const TabMenuProps = [ + { + name: "model", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Defines if active route highlight should match the exact route path." + }, + { + name: "activeIndex", + type: "number", + default: "0", + description: "Active index of menuitem." + } +]; + +const TabMenuEvents = [ + { + name: "tab-change", + description: "Callback to invoke when an active tab is changed.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.index", + type: "number", + description: "Index of the selected tab" + } + ] + } +]; + +const TabMenuSlots = [ + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + tabmenu: { + name: "TabMenu", + description: "TabMenu is a navigation component that displays items as tab headers.", + props: TabMenuProps, + events: TabMenuEvents, + slots: TabMenuSlots + } +}; diff --git a/api-generator/components/tabpanel.js b/api-generator/components/tabpanel.js new file mode 100644 index 000000000..ac1d7ab7a --- /dev/null +++ b/api-generator/components/tabpanel.js @@ -0,0 +1,101 @@ +const TabPanelProps = [ + { + name: "header", + type: "string", + default: "null", + description: "Orientation of tab headers." + }, + { + name: "headerStyle", + type: "any", + default: "null", + description: "Inline style of the tab header." + }, + { + name: "headerClass", + type: "any", + default: "null", + description: "Style class of the tab header." + }, + { + name: "headerProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLLiElement to the tab header." + }, + { + name: "headerActionProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLAnchorElement to the focusable anchor element inside the tab header." + }, + { + name: "contentStyle", + type: "any", + default: "null", + description: "Inline style of the tab content." + }, + { + name: "contentClass", + type: "any", + default: "null", + description: "Style class of the tab content." + }, + { + name: "contentProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLDivElement to the tab content." + }, + { + name: "disabled", + type: "boolean", + default: "null", + description: "Whether the tab is disabled." + } +]; + +const TabPanelEvents = [ + { + name: "tab-change", + description: "Callback to invoke when an active tab is changed.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.index", + type: "number", + description: "Index of the selected tab" + } + ] + }, + { + name: "tab-click", + description: "Callback to invoke when an active tab is clicked.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.index", + type: "number", + description: "Index of the selected tab" + } + ] + } +]; + +module.exports = { + tabpanel: { + name: "TabPanel", + description: "TabView element consists of one or more TabPanel elements.", + "doc-url": "tabview", + props: TabPanelProps, + events: TabPanelEvents + } +}; diff --git a/api-generator/components/tabview.js b/api-generator/components/tabview.js new file mode 100644 index 000000000..ff61e617b --- /dev/null +++ b/api-generator/components/tabview.js @@ -0,0 +1,88 @@ +const TabViewProps = [ + { + name: "activeIndex", + type: "number", + default: "0", + description: "Index of the active tab." + }, + { + name: "lazy", + type: "boolean", + default: "false", + description: "When enabled, hidden tabs are not rendered at all. Defaults to false that hides tabs with css." + }, + { + name: "scrollable", + type: "boolean", + default: "false", + description: "When enabled displays buttons at each side of the tab headers to scroll the tab list." + }, + { + name: "tabindex", + type: "number", + default: "0", + description: "Index of the element in tabbing order." + }, + { + name: "selectOnFocus", + type: "boolean", + default: "false", + description: "When enabled, the focused tab is activated." + }, + { + name: "previousButtonProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLButtonElement to the previous button." + }, + { + name: "nextButtonProps", + type: "any", + default: "null", + description: "Uses to pass all properties of the HTMLButtonElement to the next button." + } +]; + +const TabViewEvents = [ + { + name: "tab-change", + description: "Callback to invoke when an active tab is changed.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "index", + type: "number", + description: "Index of the selected tab" + } + ] + }, + { + name: "tab-click", + description: "Callback to invoke when an active tab is clicked.", + arguments: [ + { + name: "originalEvent", + type: "object", + description: "Original event" + }, + { + name: "index", + type: "number", + description: "Index of the clicked tab" + } + ] + } +]; + +module.exports = { + tabview: { + name: "TabView", + description: "TabView is a container component to group content with tabs.", + props: TabViewProps, + event: TabViewEvents + } +}; diff --git a/api-generator/components/tag.js b/api-generator/components/tag.js new file mode 100644 index 000000000..3dafac8f4 --- /dev/null +++ b/api-generator/components/tag.js @@ -0,0 +1,34 @@ +const TagProps = [ + { + name: "value", + type: "any", + default: "null", + description: "Value to display inside the tag." + }, + { + name: "severity", + type: "string", + default: "null", + description: 'Severity type of the tag. Valid severities are "success", "info", "warning" and "danger".' + }, + { + name: "rounded", + type: "boolean", + default: "false", + description: "Whether the corners of the tag are rounded." + }, + { + name: "icon", + type: "string", + default: "null", + description: "Icon of the tag to display next to the value." + } +]; + +module.exports = { + tag: { + name: "Tag", + description: "Tag component is used to categorize content.", + props: TagProps + } +}; diff --git a/api-generator/components/terminal.js b/api-generator/components/terminal.js new file mode 100644 index 000000000..94b554fc4 --- /dev/null +++ b/api-generator/components/terminal.js @@ -0,0 +1,22 @@ +const TerminalProps = [ + { + name: "welcomeMessage", + type: "string", + default: "null", + description: "Initial text to display on terminal." + }, + { + name: "prompt", + type: "string", + default: "null", + description: "Prompt text for each command." + } +]; + +module.exports = { + terminal: { + name: "Terminal", + description: "Terminal is a text based user interface.", + props: TerminalProps + } +}; diff --git a/api-generator/components/textarea.js b/api-generator/components/textarea.js new file mode 100644 index 000000000..85721ea9e --- /dev/null +++ b/api-generator/components/textarea.js @@ -0,0 +1,22 @@ +const TextareaProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "autoResize", + type: "boolean", + default: "false", + description: "When present, height of textarea changes as being typed." + } +]; + +module.exports = { + textarea: { + name: "Textarea", + description: "Textarea is a multi-line text input element.", + props: TextareaProps + } +}; diff --git a/api-generator/components/tieredmenu.js b/api-generator/components/tieredmenu.js new file mode 100644 index 000000000..7d8b2c1e0 --- /dev/null +++ b/api-generator/components/tieredmenu.js @@ -0,0 +1,54 @@ +const TieredMenuProps = [ + { + name: "model", + type: "array", + default: "null", + description: "An array of menuitems." + }, + { + name: "popup", + type: "boolean", + default: "false", + description: "Defines if menu would displayed as a popup." + }, + { + name: "appendTo", + type: "string", + default: "body", + description: "A valid query selector or an HTMLElement to specify where the overlay gets attached." + }, + { + name: "baseZIndex", + type: "number", + default: "0", + description: "Base zIndex value to use in layering." + }, + { + name: "autoZIndex", + type: "boolean", + default: "true", + description: "Whether to automatically manage layering." + }, + { + name: "exact", + type: "boolean", + default: "true", + description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + } +]; + +const TieredMenuSlots = [ + { + name: "item", + description: "Template of a menuitem." + } +]; + +module.exports = { + tieredmenu: { + name: "TieredMenu", + description: "TieredMenu displays submenus in nested overlays.", + props: TieredMenuProps, + slots: TieredMenuSlots + } +}; diff --git a/api-generator/components/timeline.js b/api-generator/components/timeline.js new file mode 100644 index 000000000..a7b30cee4 --- /dev/null +++ b/api-generator/components/timeline.js @@ -0,0 +1,54 @@ +const TimelineProps = [ + { + name: "value", + type: "array", + default: "null", + description: "An array of events to display." + }, + { + name: "align", + type: "string", + default: "left", + description: 'Position of the timeline bar relative to the content. Valid values are "left", "right" and "alternate" for vertical layout and "top", "bottom" for horizontal layout.' + }, + { + name: "layout", + type: "string", + default: "vertical", + description: 'Orientation of the timeline, valid values are "vertical" and "horizontal".' + }, + { + name: "dataKey", + type: "string", + default: "null", + description: "Name of the field that uniquely identifies the a record in the data." + } +]; + +const TimelineSlots = [ + { + name: "opposite", + description: "Custom content for the content to be placed at the other side of the bar" + }, + { + name: "marker", + description: "Custom content for the marker" + }, + { + name: "content", + description: "Custom content" + }, + { + name: "connector", + description: "Connector element" + } +]; + +module.exports = { + timeline: { + name: "Timeline", + description: "Timeline visualizes a series of chained events.", + props: TimelineProps, + slots: TimelineSlots + } +}; diff --git a/api-generator/components/toast.js b/api-generator/components/toast.js new file mode 100644 index 000000000..0b38018f3 --- /dev/null +++ b/api-generator/components/toast.js @@ -0,0 +1,48 @@ +const ToastProps = [ + { + name: "group", + type: "string", + default: "null", + description: "Unique identifier of a message group." + }, + { + name: "position", + type: "string", + default: "top-right", + description: 'Position of the toast in viewport. Other valid values are "top-left", "top-center", "bottom-left", "bottom-center", "bottom-right" and "center".' + }, + { + 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: "breakpoints", + type: "object", + default: "null", + description: "Object literal to define widths per screen size." + } +]; + +const ToastSlots = [ + { + name: "message", + description: "Custom content for the toast message" + } +]; + +module.exports = { + toast: { + name: "Toast", + description: "Toast is used to display messages in an overlay.", + props: ToastProps, + slots: ToastSlots + } +}; diff --git a/api-generator/components/togglebutton.js b/api-generator/components/togglebutton.js new file mode 100644 index 000000000..0f1bfaf90 --- /dev/null +++ b/api-generator/components/togglebutton.js @@ -0,0 +1,119 @@ +const ToggleButtonProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "onIcon", + type: "string", + default: "null", + description: "Icon for the on state." + }, + { + name: "offIcon", + type: "string", + default: "null", + description: "Icon for the off state." + }, + { + name: "onLabel", + type: "string", + default: "yes", + description: "Label for the on state." + }, + { + name: "offLabel", + type: "string", + default: "no", + description: "Label for the off state." + }, + { + name: "iconPos", + type: "string", + default: "left", + description: 'Position of the icon, valid values are "left" and "right".' + }, + { + name: "tabindex", + type: "number", + default: "null", + description: "Index of the element in tabbing order." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the element should be disabled." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the focus input to match a label defined for the chips." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + } +]; + +const ToggleButtonEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "focus", + description: "Callback to invoke when the component receives focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + }, + { + name: "blur", + description: "Callback to invoke when the component loses focus.", + arguments: [ + { + name: "event", + type: "object", + description: "Browser event" + } + ] + } +]; + +module.exports = { + togglebutton: { + name: "ToggleButton", + description: "ToggleButton is used to select a boolean value using a button.", + props: ToggleButtonProps, + events: ToggleButtonEvents + } +}; diff --git a/api-generator/components/toolbar.js b/api-generator/components/toolbar.js new file mode 100644 index 000000000..a9484f8ef --- /dev/null +++ b/api-generator/components/toolbar.js @@ -0,0 +1,28 @@ +const ToolbarProps = [ + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Defines a string value that labels an interactive element." + } +]; + +const ToolbarSlots = [ + { + name: "start", + description: "Custom content for the component's left side" + }, + { + name: "end", + description: "Custom content for the component's right side" + } +]; + +module.exports = { + toolbar: { + name: "Toolbar", + description: "Toolbar is a grouping component for buttons and other content.", + props: ToolbarProps, + slots: ToolbarSlots + } +}; diff --git a/api-generator/components/tooltip.js b/api-generator/components/tooltip.js new file mode 100644 index 000000000..a1a7b11f1 --- /dev/null +++ b/api-generator/components/tooltip.js @@ -0,0 +1,34 @@ +const TooltipModifiers = [ + { + name: "right", + description: "Positions the tooltip on the right of the trigger element (default)" + }, + { + name: "top", + description: "Positions the tooltip on the top of the trigger element" + }, + { + name: "bottom", + description: "Positions the tooltip on the bottom of the trigger element" + }, + { + name: "left", + description: "Positions the tooltip on the left of the trigger element" + }, + { + name: "focus", + description: "Focus on the trigger element" + }, + { + name: "blur", + description: "Blur the trigger element" + } +]; + +module.exports = { + tooltip: { + name: "Tooltip", + description: "Tooltip directive provides advisory information for a component.", + "vue-modifiers": TooltipModifiers + } +}; diff --git a/api-generator/components/tree.js b/api-generator/components/tree.js new file mode 100644 index 000000000..550c670e7 --- /dev/null +++ b/api-generator/components/tree.js @@ -0,0 +1,136 @@ +const TreeProps = [ + { + name: "value", + type: "any", + default: "null", + description: "An array of treenodes." + }, + { + name: "expandedKeys", + type: "array", + default: "null", + description: "A map of keys to represent the expansion state in controlled mode." + }, + { + name: "selectionMode", + type: "string", + default: "null", + description: 'Defines the selection mode, valid values "single", "multiple", and "checkbox".' + }, + { + name: "selectionKeys", + type: "any", + default: "null", + description: "A map of keys to control the selection state." + }, + { + name: "metaKeySelection", + type: "boolean", + default: "true", + description: "Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically." + }, + { + name: "loading", + type: "boolean", + default: "false", + description: "Whether to display loading indicator." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spin", + description: "Icon to display when tree is loading." + }, + { + name: "filter", + type: "boolean", + default: "false", + description: "When specified, displays an input field to filter the items." + }, + { + name: "filterBy", + type: "string", + default: "label", + description: "When filtering is enabled, filterBy decides which field or fields (comma separated) to search against." + }, + { + name: "filterMode", + type: "string", + default: "lenient", + description: 'Mode for filtering valid values are "lenient" and "strict". Default is lenient.' + }, + { + name: "filterPlaceholder", + type: "string", + default: "null", + description: "Placeholder text to show when filter input is empty." + }, + { + name: "filterLocale", + type: "string", + default: "undefined", + description: "Locale to use in filtering. The default locale is the host environment's current locale." + }, + { + name: "scrollHeight", + type: "string", + default: "null", + description: 'Height of the scroll viewport in fixed units or the "flex" keyword for a dynamic size.' + } +]; + +const TreeEvents = [ + { + name: "node-select", + description: "Callback to invoke when a node is selected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-unselect", + description: "Callback to invoke when a node is unselected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-expand", + description: "Callback to invoke when a node is expanded.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-collapse", + description: "Callback to invoke when a node is collapsed.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + } +]; + +module.exports = { + tree: { + name: "Tree", + description: "Tree is used to display hierarchical data.", + props: TreeProps, + events: TreeEvents + } +}; diff --git a/api-generator/components/treeselect.js b/api-generator/components/treeselect.js new file mode 100644 index 000000000..0ce81e756 --- /dev/null +++ b/api-generator/components/treeselect.js @@ -0,0 +1,211 @@ +const TreeSelectProps = [ + { + name: "modelValue", + type: "any", + default: "null", + description: "Value of the component." + }, + { + name: "options", + type: "array", + default: "null", + description: "An array of treenodes." + }, + { + name: "scrollHeight", + type: "string", + default: "200px", + description: "Height of the viewport, a scrollbar is defined if height of list exceeds this value." + }, + { + name: "placeholder", + type: "string", + default: "null", + description: "Label to display when there are no selections." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "tabindex", + type: "string", + default: "null", + description: "Index of the element in tabbing order." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputStyle", + type: "any", + default: "null", + description: "Inline style of the input field." + }, + { + name: "inputClass", + type: "string", + default: "null", + description: "Style class of the input field." + }, + { + name: "selectionMode", + type: "string", + default: "null", + description: 'Defines the selection mode, valid values "single", "multiple", and "checkbox".' + }, + { + name: "panelClass", + type: "string", + default: "null", + description: "Style class of the overlay panel." + }, + { + 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: "emptyMessage", + type: "string", + default: "No results found", + description: "Text to display when there are no options available. Defaults to value from PrimeVue locale configuration." + }, + { + name: "display", + type: "string", + default: "comma", + description: 'Defines how the selected items are displayed, valid values are "comma" and "chip".' + }, + { + name: "metaKeySelection", + type: "boolean", + default: "true", + description: "Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Establishes relationships between the component and label(s) where its value should be one or more element IDs." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Used to define a string that labels the element." + } +]; + +const TreeSelectEvents = [ + { + name: "change", + description: "Callback to invoke on value change.", + arguments: [ + { + name: "event", + type: "object", + description: "Selected node keys" + } + ] + }, + { + name: "before-show", + description: "Callback to invoke before the overlay is shown." + }, + { + name: "before-hide", + description: "Callback to invoke before the overlay is hidden." + }, + { + name: "show", + description: "Callback to invoke when the overlay is shown." + }, + { + name: "hide", + description: "Callback to invoke when the overlay is hidden." + }, + { + name: "node-select", + description: "Callback to invoke when a node is selected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-unselect", + description: "Callback to invoke when a node is unselected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-expand", + description: "Callback to invoke when a node is expanded.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-collapse", + description: "Callback to invoke when a node is collapsed.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + } +]; + +const TreeSelectSlots = [ + { + name: "value", + description: "Custom content for the item's value" + }, + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "footer", + description: "Custom content for the component's footer" + }, + { + name: "empty", + description: "Custom content when there is no data to display" + }, + { + name: "indicator", + description: "Custom content for the dropdown indicator" + } +]; + +module.exports = { + treeselect: { + name: "TreeSelect", + description: "TreeSelect is a form component to choose from hierarchical data.", + props: TreeSelectProps, + events: TreeSelectEvents, + slots: TreeSelectSlots + } +}; diff --git a/api-generator/components/treetable.js b/api-generator/components/treetable.js new file mode 100644 index 000000000..73d54b3b4 --- /dev/null +++ b/api-generator/components/treetable.js @@ -0,0 +1,473 @@ +const TreeTableProps = [ + { + name: "value", + type: "array", + default: "null", + description: "An array of treenodes." + }, + { + name: "expandedKeys", + type: "array", + default: "null", + description: "A map of keys to represent the state of the tree expansion state in controlled mode." + }, + { + name: "selectionKeys", + type: "any", + default: "null", + description: "A map of keys to control the selection state." + }, + { + name: "selectionMode", + type: "string", + default: "null", + description: 'Defines the selection mode, valid values "single", "multiple", and "checkbox".' + }, + { + name: "metaKeySelection", + type: "boolean", + default: "true", + description: "Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically." + }, + { + name: "rows", + type: "number", + default: "null", + description: "Number of rows to display per page." + }, + { + name: "first", + type: "number", + default: "0", + description: "Index of the first row to be displayed." + }, + { + name: "totalRecords", + type: "number", + default: "null", + description: "Number of total records, defaults to length of value when not defined." + }, + { + name: "paginator", + type: "boolean", + default: "false", + description: "When specified as true, enables the pagination." + }, + { + name: "paginatorPosition", + type: "string", + default: "bottom", + description: 'Position of the paginator, options are "top", "bottom" or "both".' + }, + { + name: "alwaysShowPaginator", + type: "boolean", + default: "true", + description: "Whether to show it even there is only one page." + }, + { + name: "paginatorTemplate", + type: "string", + default: "FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown", + description: "Template of the paginator." + }, + { + name: "pageLinkSize", + type: "number", + default: "5", + description: "Number of page links to display." + }, + { + name: "rowsPerPageOptions", + type: "array", + default: "null", + description: "Array of integer values to display inside rows per page dropdown." + }, + { + name: "currentPageReportTemplate", + type: "string", + default: "({currentPage} of {totalPages})", + description: "Template of the current page report element." + }, + { + name: "lazy", + type: "boolean", + default: "false", + description: "Defines if data is loaded and interacted with in lazy manner." + }, + { + name: "loading", + type: "boolean", + default: "false", + description: "Displays a loader to indicate data load is in progress." + }, + { + name: "loadingIcon", + type: "string", + default: "pi pi-spinner", + description: "The icon to show while indicating data load is in progress." + }, + { + name: "rowHover", + type: "boolean", + default: "false", + description: "When enabled, background of the rows change on hover." + }, + { + name: "autoLayout", + type: "boolean", + default: "false", + description: "Whether the cell widths scale according to their content or not." + }, + { + name: "sortField", + type: "string", + default: "null", + description: "Property name or a getter function of a row data used for sorting by default." + }, + { + name: "sortOrder", + type: "number", + default: "null", + description: "Order to sort the data by default." + }, + { + name: "defaultSortOrder", + type: "number", + default: "1", + description: "Default sort order of an unsorted column." + }, + { + name: "multiSortMeta", + type: "array", + default: "null", + description: "An array of SortMeta objects to sort the data by default in multiple sort mode." + }, + { + name: "sortMode", + type: "string", + default: "single", + description: "Defines whether sorting works on single column or on multiple columns." + }, + { + name: "removableSort", + type: "boolean", + default: "false", + description: "When enabled, columns can have an un-sorted state." + }, + { + name: "filters", + type: "object", + default: "null", + description: "Filters object with key-value pairs to define the filters." + }, + { + name: "filterMode", + type: "string", + default: "lenient", + description: 'Mode for filtering valid values are "lenient" and "strict". Default is lenient.' + }, + { + name: "filterLocale", + type: "string", + default: "undefined", + description: "Locale to use in filtering. The default locale is the host environment's current locale." + }, + { + name: "resizableColumns", + type: "boolean", + default: "false", + description: "When enabled, columns can be resized using drag and drop." + }, + { + name: "columnResizeMode", + type: "string", + default: "fit", + description: 'Defines whether the overall table width should change on column resize, valid values are "fit" and "expand".' + }, + { + name: "indentation", + type: "number", + default: "1", + description: "Indentation factor as rem value for children nodes. Defaults to 1rem." + }, + { + name: "showGridlines", + type: "boolean", + default: "false", + description: "Whether to show grid lines between cells." + }, + { + name: "scrollable", + type: "boolean", + default: "false", + description: "When specified, enables horizontal and/or vertical scrolling." + }, + { + name: "scrollDirection", + type: "string", + default: "vertical", + description: 'Orientation of the scrolling, options are "vertical", "horizontal" and "both".' + }, + { + name: "scrollHeight", + type: "string", + default: "null", + description: 'Height of the scroll viewport in fixed units or the "flex" keyword for a dynamic size.' + }, + { + name: "responsiveLayout", + type: "string", + default: "null", + description: 'Defines the responsive mode, currently only option is scroll.' + } +]; + +const TreeTableEvents = [ + { + name: "page", + description: "Callback to invoke on pagination. Sort and Filter information is also available for lazy loading implementation.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.page", + type: "number", + description: "New page number" + }, + { + name: "event.pageCount", + type: "number", + description: "Total page count" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "object", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.filterMatchModes", + type: "object", + description: "Match modes per field" + } + ] + }, + { + name: "sort", + description: "Callback to invoke on sort. Page and Filter information is also available for lazy loading implementation.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "object", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.filterMatchModes", + type: "object", + description: "Match modes per field" + } + ] + }, + { + name: "filter", + description: "Event to emit after filtering, not triggered in lazy mode.", + arguments: [ + { + name: "event.originalEvent", + type: "object", + description: "Original event" + }, + { + name: "event.first", + type: "number", + description: "Index of first record" + }, + { + name: "event.rows", + type: "number", + description: "Number of rows to display in new page" + }, + { + name: "event.sortField", + type: "object", + description: "Field to sort against" + }, + { + name: "event.sortOrder", + type: "number", + description: "Sort order as integer" + }, + { + name: "event.multiSortMeta", + type: "object", + description: "MultiSort metadata" + }, + { + name: "event.filters", + type: "object", + description: "Collection of active filters" + }, + { + name: "event.filteredValue", + type: "string", + description: "Filtered collection" + }, + { + name: "event.filterMatchModes", + type: "object", + description: "Match modes per field" + } + ] + }, + { + name: "node-select", + description: "Callback to invoke when a node is selected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-unselect", + description: "Callback to invoke when a node is unselected.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-expand", + description: "Callback to invoke when a node is expanded.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "node-collapse", + description: "Callback to invoke when a node is collapsed.", + arguments: [ + { + name: "node", + type: "object", + description: "Node instance" + } + ] + }, + { + name: "column-resize-end", + description: "Callback to invoke when a column is resized.", + arguments: [ + { + name: "event.element", + type: "object", + description: "DOM element of the resized column." + }, + { + name: "event.delta", + type: "number", + description: "Change in column width" + } + ] + } +]; + +const TreeTableSlots = [ + { + name: "header", + description: "Custom content for the component's header" + }, + { + name: "paginatorstart", + description: "Custom content for the component paginator's left side" + }, + { + name: "paginatorend", + description: "Custom content for the component paginator's right side" + }, + { + name: "empty", + description: "Custom content when there is no data to display" + }, + { + name: "footer", + description: "Custom content for the component's footer" + } +]; + +module.exports = { + treetable: { + name: "TreeTable", + description: "TreeTable is used to display hierarchical data in tabular format.", + props: TreeTableProps, + events: TreeTableEvents, + slots: TreeTableSlots + } +}; diff --git a/api-generator/components/tristatecheckbox.js b/api-generator/components/tristatecheckbox.js new file mode 100644 index 000000000..646725d49 --- /dev/null +++ b/api-generator/components/tristatecheckbox.js @@ -0,0 +1,52 @@ +const TriStateCheckboxProps = [ + { + name: "modelValue", + type: "boolean", + default: "null", + description: "Value of the component." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "When present, it specifies that the component should be disabled." + }, + { + name: "tabindex", + type: "string", + default: "null", + description: "Index of the element in tabbing order." + }, + { + name: "inputId", + type: "string", + default: "null", + description: "Identifier of the underlying input element." + }, + { + name: "inputProps", + type: "object", + default: "null", + description: "Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component." + }, + { + name: "aria-labelledby", + type: "string", + default: "null", + description: "Establishes relationships between the component and label(s) where its value should be one or more element IDs." + }, + { + name: "aria-label", + type: "string", + default: "null", + description: "Used to define a string that labels the element." + } +]; + +module.exports = { + tristatecheckbox: { + name: "TriStateCheckbox", + description: 'TriStateCheckbox is used to select either "true", "false" or "null" as the value.', + props: TriStateCheckboxProps + } +}; diff --git a/api-generator/components/virtualscroller.js b/api-generator/components/virtualscroller.js new file mode 100644 index 000000000..d9cc37f3a --- /dev/null +++ b/api-generator/components/virtualscroller.js @@ -0,0 +1,175 @@ +const VirtualScrollerProps = [ + { + name: "id", + type: "string", + default: "null", + description: "Unique identifier of the element." + }, + { + name: "style", + type: "any", + default: "null", + description: "Inline style of the component." + }, + { + name: "class", + type: "string", + default: "null", + description: "Style class of the component." + }, + { + name: "items", + type: "array", + default: "null", + description: "An array of objects to display." + }, + { + name: "itemSize", + type: "number|array", + default: "null", + description: "The height/width of item according to orientation." + }, + { + name: "scrollHeight", + type: "string", + default: "null", + description: "Height of the scroll viewport." + }, + { + name: "scrollWidth", + type: "string", + default: "null", + description: "Width of the scroll viewport." + }, + { + name: "orientation", + type: "string", + default: "vertical", + description: "The orientation of scrollbar, valid values are 'vertical', 'horizontal' and 'both'." + }, + { + name: "numToleratedItems", + type: "number", + default: "null", + description: "Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view." + }, + { + name: "delay", + type: "number", + default: "0", + description: "Delay in scroll before new data is loaded." + }, + { + name: "lazy", + type: "boolean", + default: "false", + description: "Defines if data is loaded and interacted with in lazy manner." + }, + { + name: "disabled", + type: "boolean", + default: "false", + description: "If disabled, the VirtualScroller feature is eliminated and the content is displayed directly." + }, + { + name: "loaderDisabled", + type: "boolean", + default: "false", + description: "Used to implement a custom loader instead of using the loader feature in the VirtualScroller." + }, + { + name: "loading", + type: "boolean", + default: "false", + description: "Whether the data is loaded." + }, + { + name: "showSpacer", + type: "boolean", + default: "true", + description: "Used to implement a custom spacer instead of using the spacer feature in the VirtualScroller." + }, + { + name: "showLoader", + type: "boolean", + default: "false", + description: "Whether to show loader." + }, + { + name: "tabindex", + type: "number|string", + default: "0", + description: "Index of the element in tabbing order." + } +]; + +const VirtualScrollerEvents = [ + { + name: "scroll", + description: "Callback to invoke when scroll position changes.", + arguments: [ + { + name: "event", + type: "any", + description: "Browser event." + } + ] + }, + { + name: "scroll-index-change", + description: "Callback to invoke when scroll position and item's range in view changes.", + arguments: [ + { + name: "event.first", + type: "number", + description: "First index of the new data range to be loaded." + }, + { + name: "event.last", + type: "number", + description: "Last index of the new data range to be loaded." + } + ] + }, + { + name: "lazy-load", + description: "Callback to invoke in lazy mode to load new data.", + arguments: [ + { + name: "event.first", + type: "number", + description: "First index of the new data range to be loaded." + }, + { + name: "event.last", + type: "number", + description: "Last index of the new data range to be loaded." + } + ] + } +]; + +const VirtualScrollerSlots = [ + { + name: "item", + description: "Content for the item" + }, + { + name: "content", + description: "Custom content for the component" + }, + { + name: "loader", + description: "Custom content for the loader items" + } +]; + +module.exports = { + virtualscroller: { + name: "VirtualScroller", + description: "VirtualScroller is a performant approach to handle huge data efficiently.", + props: VirtualScrollerProps, + events: VirtualScrollerEvents, + slots: VirtualScrollerSlots + } +}; diff --git a/pages/chart/BarChartDemo.vue b/pages/chart/Bar.vue similarity index 100% rename from pages/chart/BarChartDemo.vue rename to pages/chart/Bar.vue diff --git a/pages/chart/ComboChartDemo.vue b/pages/chart/Combo.vue similarity index 100% rename from pages/chart/ComboChartDemo.vue rename to pages/chart/Combo.vue diff --git a/pages/chart/DoughnutChartDemo.vue b/pages/chart/Doughnut.vue similarity index 100% rename from pages/chart/DoughnutChartDemo.vue rename to pages/chart/Doughnut.vue diff --git a/pages/chart/LineChartDemo.vue b/pages/chart/Line.vue similarity index 100% rename from pages/chart/LineChartDemo.vue rename to pages/chart/Line.vue diff --git a/pages/chart/PieChartDemo.vue b/pages/chart/Pie.vue similarity index 100% rename from pages/chart/PieChartDemo.vue rename to pages/chart/Pie.vue diff --git a/pages/chart/PolarAreaChartDemo.vue b/pages/chart/PolarArea.vue similarity index 100% rename from pages/chart/PolarAreaChartDemo.vue rename to pages/chart/PolarArea.vue diff --git a/pages/chart/RadarChartDemo.vue b/pages/chart/Radar.vue similarity index 100% rename from pages/chart/RadarChartDemo.vue rename to pages/chart/Radar.vue diff --git a/pages/datatable/DataTableBasicDemo.vue b/pages/datatable/Basic.vue similarity index 95% rename from pages/datatable/DataTableBasicDemo.vue rename to pages/datatable/Basic.vue index c2335107d..496e0ca10 100755 --- a/pages/datatable/DataTableBasicDemo.vue +++ b/pages/datatable/Basic.vue @@ -24,7 +24,7 @@