diff --git a/api-generator/components/textarea.js b/api-generator/components/textarea.js index eb95104f5..fdaf7aaae 100644 --- a/api-generator/components/textarea.js +++ b/api-generator/components/textarea.js @@ -10,6 +10,12 @@ const TextareaProps = [ type: 'boolean', default: 'false', description: 'When present, height of textarea changes as being typed.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/components/lib/config/PrimeVue.d.ts b/components/lib/config/PrimeVue.d.ts index bb81dacfa..f5ca10192 100644 --- a/components/lib/config/PrimeVue.d.ts +++ b/components/lib/config/PrimeVue.d.ts @@ -48,10 +48,10 @@ import { ProgressSpinnerPassThroughOptions } from '../progressspinner'; import { RadioButtonPassThroughOptions } from '../radiobutton'; import { ScrollPanelPassThroughOptions } from '../scrollpanel'; import { ScrollTopPassThroughOptions } from '../scrolltop'; +import { SelectButtonPassThroughOptions } from '../selectbutton'; import { SidebarPassThroughOptions } from '../sidebar'; import { SkeletonPassThroughOptions } from '../skeleton'; import { SpeedDialPassThroughOptions } from '../speeddial'; -import { SelectButtonPassThroughOptions } from '../selectbutton'; import { SplitButtonPassThroughOptions } from '../splitbutton'; import { SplitterPassThroughOptions } from '../splitter'; import { TabMenuPassThroughOptions } from '../tabmenu'; @@ -59,6 +59,7 @@ import { TabPanelPassThroughOptions } from '../tabpanel'; import { TabViewPassThroughOptions } from '../tabview'; import { TagPassThroughOptions } from '../tag'; import { TerminalPassThroughOptions } from '../terminal'; +import { TextareaPassThroughOptions } from '../textarea'; import { TieredMenuPassThroughOptions } from '../tieredmenu'; import { ToastPassThroughOptions } from '../toast'; import { ToolbarPassThroughOptions } from '../toolbar'; @@ -143,6 +144,7 @@ interface PrimeVuePTOptions { tabview?: TabViewPassThroughOptions; tag?: TagPassThroughOptions; terminal?: TerminalPassThroughOptions; + textarea?: TextareaPassThroughOptions; tieredmenu?: TieredMenuPassThroughOptions; toast?: ToastPassThroughOptions; toolbar?: ToolbarPassThroughOptions; diff --git a/components/lib/textarea/Textarea.d.ts b/components/lib/textarea/Textarea.d.ts index 23332f145..c7807a3ff 100755 --- a/components/lib/textarea/Textarea.d.ts +++ b/components/lib/textarea/Textarea.d.ts @@ -10,6 +10,33 @@ import { TextareaHTMLAttributes } from 'vue'; import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers'; +export declare type TextareaPassThroughOptionType = TextareaPassThroughAttributes | ((options: TextareaPassThroughMethodOptions) => TextareaPassThroughAttributes) | null | undefined; + +/** + * Custom passthrough(pt) option method. + */ +export interface TextareaPassThroughMethodOptions { + props: TextareaProps; +} + +/** + * Custom passthrough(pt) options. + * @see {@link TextareaProps.pt} + */ +export interface TextareaPassThroughOptions { + /** + * Uses to pass attributes to the root's DOM element. + */ + root?: TextareaPassThroughOptionType; +} + +/** + * Custom passthrough attributes for each DOM elements + */ +export interface TextareaPassThroughAttributes { + [key: string]: any; +} + /** * Defines valid properties in Textarea component. In addition to these, all properties of TextareaHTMLAttributes can be used in this component. * @extends TextareaHTMLAttributes @@ -24,6 +51,11 @@ export interface TextareaProps extends TextareaHTMLAttributes { * @defaultValue false */ autoResize?: boolean | undefined; + /** + * Uses to pass attributes to DOM elements inside the component. + * @type {TextareaPassThroughOptions} + */ + pt?: TextareaPassThroughOptions; } /** diff --git a/components/lib/textarea/Textarea.vue b/components/lib/textarea/Textarea.vue index ac7024031..8dee0b9fe 100755 --- a/components/lib/textarea/Textarea.vue +++ b/components/lib/textarea/Textarea.vue @@ -1,10 +1,13 @@