VDS

Vtiger Design System (a.k.a VDS) provides core HTML components as part of VTAP. These components can be used when creating your custom pages, widgets, popups.

v-select2

Drop-down component with options.

<v-select2 :required=true :emptyOption=false 
    v-model="" :multiple=false :options=""></v-selec2>
PropertyTypeDefaultDescription
requiredboolfalsetrue - mandatory, false - optional
emptyOptionboolfalsetrue - show empty option, false - otherwise
v-modelstring-store the choice made into variable
multipleboolfalsetrue - allow multiple selection, false - otherwise
optionsobject-list of map: [ {label: 'Private', value: 'private'}. {label: 'Public', value: 'public'} ]

vds-switch

A custom toggle switch component.

<vds-switch v-model="" :disabled=false :status=false label="" ></vds-switch>
PropertyTypeDefaultDescription
v-modelstring-store the choice made into variable
disabledboolfalsetrue - disables the switch, making it non-clickable
statusboolfalsetrue - controls the checked state of the switch i.e switch is on
labelstring-optional text label displayed next to the switch

vds-checkbox

A custom checkbox component.

<vds-checkbox v-model="" :disabled=false :status=false name="" :type="" label="" ></vds-checkbox>
PropertyTypeDefaultDescription
v-modelstring-store the choice made into variable
disabledboolfalsetrue - disables the checkbox, making it non-clickable
statusboolfalsetrue - controls the checked state of the checkbox i.e checkbox is checked
namestring-defines the name attribute of the checkbox, helps in identifying the checkboxes
typestringcheckboxradio - shows radio button instead of checkbox
labelstring-optional text label displayed next to the switch

vds-progress

A progress bar component.

<vds-progress :value="" :size="'lg'" customColourCode="" :total="" @vds::progressbar::clicked=""></vds-progress>
PropertyTypeDefaultDescription
valuenumber-A number representing the progress percentage to be shown in the progress
sizestring'lg'A string controlling the size of the progress bar. It accepts values like 'xxl', 'xl', 'lg', 'md', 'sm'
customColorCodestring-A string allowing you to specify a custom background color for the progress bar
total--Displays a value inside the progress made of the progress bar
vds::progressbar::clicked--Binds the custom click event to a method

vds-datepicker

A date picker component.

<vds-datepicker
  :dateFormat="'YYYY-MM-DD'"
  :name=""
  :validators="{ required: true }"
  :placeHolder="'Select Date'"
  :readonly="false"
  :allowDefault="false"
  :pickerPosition="{ horizontal: 'right', vertical: 'bottom' }"
/>
PropertyTypeDefaultDescription
dateFormatstring-Defines the format in which the date will be displayed
namestring-The name of the date picker input field
validatorsobject-Custom validation rules for the date input (e.g., { required: true })
placeHolderstring-Placeholder text to show when no date is selected
readonlyboolfalsetrue - disables the input so the user cannot interact with or modify it
allowdefaultboolfalsetrue - sets a default date (current date) when no date is selected
pickerPositionobject-Controls the position of the date picker widget (e.g., { horizontal: 'right', vertical: 'bottom' })

vds-daterange-picker

A date range picker component that allows users to select a range of dates.

<vds-daterange-picker
  v-model="dateRange"
  :dateFormat="'MM/DD/YYYY'"
  :name=""
  :showDefaultDateRange="true"
></vds-daterange-picker>
PropertyTypeDefaultDescription
v-modelstring-store the choice made into variable
dateFormatstring'MM/DD/YYYY'The format for displaying dates
namestring-The name attribute for the input field
showDefaultDateRangeboolfalsetrue - the date range picker will automatically show the default date range when initialized

vds-datepicker-inline

An inline date picker component that allows users to select a single date.

<vds-datepicker-inline
  v-model="selectedDate"
  :dateFormat="'MM/DD/YYYY'"
></vds-datepicker-inline>
PropertyTypeDefaultDescription
v-modelstring-store the choice made into variable
dateFormatstring'MM/DD/YYYY'The format for displaying dates

vds-time-picker

A time picker component that allows users to select a time.

<vds-timepicker v-model="selectedTime" :timeFormat="'24'" :field="{ name: 'appointmentTime', validateRules: { required: true } }" :disabled="false"></vds-timepicker>
PropertyTypeDefaultDescription
v-modelstring-store the choice made into variable
timeFormatstring, number-Defines the time format. Use '24' for 24-hour format or '12' for 12-hour format
fieldobject{ validateRules: {} }An object containing the field name and validation rules for the time picker
disabledboolfalsetrue - the user wont be able to select time

vds-nav

A navigation component for paginated data.

<vds-nav
  :currentPage=""
  :totalCount=""
  :pageLimit=""
  :showPageJump="true"
/>
PropertyTypeDefaultDescription
currentPagenumber-Controls the currently active page number for pagination
totalcountnumber-Represents the total number of records available across all pages
pageLimitnumber-Defines the number of records displayed on each page
showPageJumpbooltruetrue - a dropdown is displayed allowing users to jump to a specific page, false - doesn't show any dropdown

vds-input-clear

An enhanced input component with clearing functionality and custom events.

<vds-input-clear
  :inputvalue=""
  :placeholder=""
  :iconclass="true"
  :autoFocus="true"
   @vds::search::on::keyup="onKeyUp"
   @vds::search::on::enter="onEnter"
/>
PropertyTypeDefaultDescription
inputvaluestring-This is the value that will be entered into the input field
placeholderstring-Placeholder text shown inside the input field when it is empty
iconclassboolfalsetrue - displays an icon inside the input field for clearing the input
autofocusboolfalsetrue - the input field is automatically focused when the component is mounted
vds::search::on::keyupevent-This event is emitted whenever a key is pressed inside the input field. The event object is passed as an argument, which you can use to capture the key pressed or other details
vds::search::on::enterevent-This event allows you to easily trigger actions such as performing a search when the user submits their query by pressing the "Enter" key

vds-field-label

A custom field label component.

<vds-field-label
  :field="fieldObject"
  module="ModuleName"
  :isEditView="true"
  :smallLabels="false"
  :largeLabels="true"
/>
PropertyTypeDefaultDescription
fieldobject-Object containing field information, such as name, label, and type
modulestring-Module Name
isEditViewboolfalseIndicates if the current view is an edit view
smallLabelsboolfalseControls if the label should be displayed in a smaller size
largeLabelsboolfalseControls if the label should be displayed in a larger size

vds-inventory-adress-dropdown

A custom dropdown component to select or copy an address from organization or related records in the inventory system.

<vds-inventory-address-dropdown :field="{fieldname: 'bill_street'}" :editable=true :record="recordData"></vds-inventory-address-dropdown>
PropertyTypeDefaultDescription
fieldobject-It is a mandatory field. Field object that represents the address field in the inventory, used to determine if the field is for billing or shipping address (i.e bill_street or ship_street)
editablebooltruefalse - the dropdown is disabled and non-selectable
recordobject-The record object that contains multipleaddresses. These addresses are displayed as options in the dropdown for selection.
Options are grouped under "Copy from Organization" (for account_id addresses) or "Copy from Related To" (for related_to addresses), with additional options for copying between billing and shipping addresses

Example for recordData :

 recordData: {
        multipleaddresses: {
          account_id: [
            { id: '1', name: '' },
            { id: '2', name: '' }
          ],
          related_to: [
            { id: '3', name: '' },
            { id: '4', name: '' }
          ]
        }
      }

vds-record-star

A component to toggle the star status of a record.

<vds-record-star :status="false" :recordId="" module="" @update:status=""></vds-record-star>
PropertyTypeDefaultDescription
statusboolfalsetrue - indicates the record is starred
recordIdnumberfalsecrmID of the record
modulestring-Module Name to which the record belongs
@update:statusevent-Emitted when the star status changes. Passes the updated status (true for starred, false for unstarred)

A component to search, select, and manage email addresses from multiple sources (e.g., users, groups, and modules).

<vds-email-search
  :searchModule="''"
  :sourceModule="''"
  :searchUsers="1"
  :searchGroups="1"
  :selected=""
  :maximumSelectionLength=""
  :showNoResultsMsg="false"
/>
PropertyTypeDefaultDescription
searchModulestring, array-Defines the module(s) to search within. Accepts either a string or an array of module names
sourceModulestring-Specifies the source module to use for the email search
searcUsersnumber-Controls whether users are included in the search (1 to include, 0 to exclude)
searchGroupsnumber-Controls whether groups are included in the search (1 to include, 0 to exclude)
selectedstring, array, object-The currently selected email address(es). Can be a string, array, or object depending on the selection
maximumSelectionLengthnumber0Sets the maximum number of email addresses that can be selected. When the limit is crossed, shows a max selection message
showNoResultsMsgboolfalsetrue - Displays a custom "no results found" message if no matching emails are found

vds-iframe

A component to render content inside an iframe

<vds-iframe :content="iframeContent"></vds-iframe>
PropertyTypeDefaultDescription
contentstring-HTML content to be displayed inside the iframe

vds-document-basic

A component to display basic text content.

<vds-document-basic :content="textContent"></vds-document-basic>
PropertyTypeDefaultDescription
contentstring-The text content to be displayed

vds-document-pdf

A component to display a PDF Document within an iframe.

<vds-document-pdf :filePath="pdfFilePath" :divheight="iframeHeight"></vds-document-pdf>
PropertyTypeDefaultDescription
filePathstring-The path or URL to the PDF file to be displayed
divheightnumber-The height of the iframe in pixels

vds-document-opendoc

A component to display OpenDocument files (like .odt) within an iframe.

<vds-document-opendoc :recordId="" :fileId=""></vds-document-opendoc>
PropertyTypeDefaultDescription
recordIdstring-The ID of the record containing the document
fileIdstring-The ID of the file to be displayed

vds-document-image

A component to display an image.

<vds-document-image :imgPath="path/to/imageFile"></vds-document-image>
PropertyTypeDefaultDescription
imagestring-The path or URL to the image file to be displayed

vds-document-audio

A component to display audio player for playing audio files.

<vds-document-audio :filePath="path/to/audioFile" :fileType=""></vds-document-audio>

PropertyTypeDefaultDescription
filePathstring-The path or URL to the audio file to be played
fileTypestring-The type of the audio file (e.g., audio/mpeg)

vds-document-video

A component to display a video player for playing videos.

<vds-document-video :filePath="path/to/videoFile" :fileType=""></vds-document-video>
PropertyTypeDefaultDescription
filePathstring-The path or URL to the video file to be played
fileTypestring-The MIME type of the video file (e.g., video/mp4)

vds-wizardtiles

A component to display a set of action tiles in a wizard view.

<vds-wizardtiles :actions="actions" @vds::wizardtile::select="handleActionSelect"/>
PropertyTypeDefaultDescription
actionsobject{}An object containing a list of actions. Each action should have icon, info, and label properties
@vds::wizardtile::selectEvent-Emitted when a tile is clicked. The payload is the clicked action object

vds-multiple-selection-tiles

A component to display a list of actions as selectable tiles with checkboxes.

<vds-multiple-selection-tiles :actions="actions" :selectedActions="selectedActions" @vds::wizardtilerectangle::select="handleSelect"/>
PropertyTypeDefaultDescription
actionsobject-An object or array containing a list of actions. Each action should have an id and a label property
selectedActionsarray-An array of action IDs that are currently selected
@vds::wizardtilerectangle::selectEvent-Emitted when a tile is clicked. The payload is the clicked action object

vds-wizardtiles-rectangle

A component to display a list of actions in rectangular tiles with icons.

<vds-wizardtiles-rectangle :actions="actions" @vds::wizardtilerectangle::select="handleSelect"/>
PropertyTypeDefaultDescription
actionsobject-An object containing a list of actions. Each action should have label, icon, and optionally isAllowed properties
@vds::wizardtilerectangle::selectEvent-Emitted when a tile is clicked. The payload is the clicked action object

vds-file-icon

A component to display a file icon with customizable size and color.

<vds-file-icon :icon="" :customClass=""/>
PropertyTypeDefaultDescription
iconString/Objectfa-info-circleSpecifies the Font Awesome icon class to display. It can be a string or an object
customClassString-An optional class to apply additional styling to the icon

Examples of icon :

fa-file-pdf
fa-file-image
fa-file
fa-file-word
fa-file-excel
fa-file-archive
fa-file-video
fa-file-powerpoint
fa-file-spreadsheet
fa-file-csv
fa-file-audio
fa-folder

vds-multi-step-wizard

A component to display a multi-step process as breadcrumb-like navigation.

<vds-multi-step-wizard :selectedStep="currentStep" :steps="stepsList"/>
PropertyTypeDefaultDescription
selectStepString, Number-The current step in the wizard. Can be used with v-model to bind the selected step to a parent component
stepsobject-An object containing the list of steps in the wizard. The object keys represent step identifiers (String or Number), and the values are the labels displayed for each step

vds-color-picker

A color picker component to select colors from a predefined palette or choose a custom color.

<vds-color-picker v-model="selectedColor" :selectedColors="['#ff0000','#00ff00']" />
PropertyTypeDefaultDescription
v-modelstring-store the choice made into variable
selectedColorsArray-An array of colors to prioritize and display prominently at the end of the color list

vds-rating

A star rating component that allows users to rate something by clicking on stars.

<vds-rating :rating="" :editable="true"></vds-rating>
PropertyTypeDefaultDescription
ratingNumber, String0The current rating value to display
editablebooltruefalse - rating cannot be changes by the user

vds-typing-progress

A visual indicator for typing activity, used in chat applications to show that someone is typing.

<vds-typing-progress></vds-typing-progress>

vds-circular-progress

A circular progress bar that shows a percentage completion in a circular format.

<vds-circular-progress :radius="50" :progress="70" :stroke="10" progressMessage="70% Complete"></vds-circular-progress>
PropertyTypeDefaultDescription
radiusnumber-The radius of the circular progress bar
progressnumber-The percentage of progress (0-100)
strokenumber-The width of the stroke
progressMessagestring-A message displayed inside the circular progress bar