import { CSSProps } from "../../../flex-ui-core/src"; import { RouteComponentProps } from "react-router-dom"; import { ITask } from "../../../models"; import { ViewAdditionalProps } from "../../ViewCollection"; /** * Agent desktop theme props * @typedef Theme.AgentDesktopViewThemeProps * @property {CSSProps} Panel1 panel 1 styles * @property {CSSProps} Panel2 panel 2 styles * @property {CSSProps} ContentSplitter content splitter styles */ export interface AgentDesktopViewThemeProps { Panel1: CSSProps; Panel2: CSSProps; ContentSplitter: CSSProps; } /** * Properties of children from AgentDesktopView * @typedef AgentDesktopView.AgentDesktopViewChildrenProps * @property {string} [selectedTaskSid] SID of the currently selected task * @property {Map} tasks A map of the worker's tasks * @property {RouteComponentProps} route Routing object */ export interface AgentDesktopViewChildrenProps { tasks: Map; selectedTaskSid?: string; selectedPausedConversationSid?: string; pausedConversationsMap?: Map; route: RouteComponentProps; panel2ViewProps?: { showCRMContainer?: boolean; showProfileConnector?: boolean; showFlexUnifyContainer?: boolean; reversePanel2Order?: boolean; }; } export declare enum AgentDesktopViewChildrenKeys { splitter = "splitter", panel1 = "panel1", panel2 = "panel2", container = "container", agentDesktopHeader = "agent-desktop-header", copilot = "copilot" } export interface AgentDesktopViewImplProps extends AgentDesktopViewProps { tasks: Map; } /** * AgentDesktopView properties * @typedef {ViewAdditionalProps} AgentDesktopView.AgentDesktopViewProps * @property {string} [selectedTaskSid] SID of the currently selected task * @property {AgentDesktopView.SplitterProps} [splitterOptions] Options to customise panels sizes * @property {boolean} [showPanel2] If set to false, this flag hides the second panel of the view * @property {RouteComponentProps} route Routing object * @property {DynamicContentStore.DynamicComponentChildren} [children] - children */ export interface AgentDesktopViewProps extends ViewAdditionalProps { selectedTaskSid?: string; selectedPausedConversationSid?: string; pausedConversationsMap?: Map; splitterOptions?: SplitterProps; showPanel2?: boolean; route: RouteComponentProps; panel2ViewProps?: { showCRMContainer?: boolean; showProfileConnector?: boolean; showFlexUnifyContainer?: boolean; reversePanel2Order?: boolean; }; } /** * Splitter configuration * @typedef AgentDesktopView.SplitterProps * @property {string} [initialFirstPanelSize] initial size for the first panel. e.g 320px * @property {string} [minimumFirstPanelSize] minimum allowed size for the first panel. e.g 320px * @property {string} [minimumSecondPanelSize] minimum allowed size for the second panel. e.g 320px */ export interface SplitterProps { initialFirstPanelSize?: string; minimumFirstPanelSize?: string; minimumSecondPanelSize?: string; }