diff --git a/api-generator/components/terminal.js b/api-generator/components/terminal.js index abe7e54a8..7946ad94e 100644 --- a/api-generator/components/terminal.js +++ b/api-generator/components/terminal.js @@ -10,6 +10,12 @@ const TerminalProps = [ type: 'string', default: 'null', description: 'Prompt text for each command.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/components/lib/terminal/Terminal.d.ts b/components/lib/terminal/Terminal.d.ts index 9844f6358..52de7c213 100755 --- a/components/lib/terminal/Terminal.d.ts +++ b/components/lib/terminal/Terminal.d.ts @@ -9,6 +9,80 @@ */ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers'; +export declare type TerminalPassThroughOptionType = TerminalPassThroughAttributes | ((options: TerminalPassThroughMethodOptions) => TerminalPassThroughAttributes) | null | undefined; + +/** + * Custom passthrough(pt) option method. + */ +export interface TerminalPassThroughMethodOptions { + props: TerminalProps; + state: TerminalState; +} + +/** + * Custom passthrough(pt) options. + * @see {@link TerminalProps.pt} + */ +export interface TerminalPassThroughOptions { + /** + * Uses to pass attributes to the root's DOM element. + */ + root?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the welcome message's DOM element. + */ + welcomeMessage?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the content's DOM element. + */ + content?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the commands' DOM element. + */ + commands?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the prompt's DOM element. + */ + prompt?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the command's DOM element. + */ + command?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the response's DOM element. + */ + response?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the container's DOM element. + */ + container?: TerminalPassThroughOptionType; + /** + * Uses to pass attributes to the command text's DOM element. + */ + commandText?: TerminalPassThroughOptionType; +} + +/** + * Custom passthrough attributes for each DOM elements + */ +export interface TerminalPassThroughAttributes { + [key: string]: any; +} + +/** + * Defines current inline state in Terminal component. + */ +export interface TerminalState { + /** + * Current command text as a string. + */ + commandText: string; + /** + * Current commands as an array. + */ + commands: string[]; +} + /** * Defines valid properties in Terminal component. */ @@ -21,6 +95,11 @@ export interface TerminalProps { * Prompt text for each command. */ prompt?: string | undefined; + /** + * Uses to pass attributes to DOM elements inside the component. + * @type {TerminalPassThroughOptions} + */ + pt?: TerminalPassThroughOptions; } /** diff --git a/components/lib/terminal/Terminal.vue b/components/lib/terminal/Terminal.vue index 0152c49c1..baeef3314 100755 --- a/components/lib/terminal/Terminal.vue +++ b/components/lib/terminal/Terminal.vue @@ -1,25 +1,27 @@