page.js

/**
 * ConnexCS Page
 * 
 * @module Page
 * @namespace page
 * @class
 * @hideconstructor
 * @classdesc ConnexCS Page Component
 */

function page() {
	/**
	* Refresh
	* @function refresh
	* @memberof page
	* @description refresh the form, when the form data changes, you need to call this method for re-render
	* @example
	* this.refresh()
	*/
	function refresh () {
	}
	/**
	* Set Data
	* @function setData
	* @memberof page
	* @param {Object} Value
	* @apiDescription setData can be used to populate a page/form with information stored in a key:value object
	* @example
	* var myData = {name: 'Joe Blogs', age: 30};
	* this.setData(myData);
	*/
	function setData (value) {
	}
	/**
	* Get Form Data From A Component
	* @function getData
	* @memberof page
	* @param {Boolean} [isValidate = true]
	* @returns {Promise<Object>} All of the form data
	* @example
	* Validate form data Object by default
	* try {
	*	var data = await this.getData()
	*	// if success returns validated data as an object {name: 'XYZ'}
	*} catch (err) {
	*	// returns  err message
	*}
	}
	* @example
	* var data = await this.getData(false)
	* // data contains {name: 'XYZ'}
	* @description To get form data
	*/
	function getData (value) {
	}
	/**
	* Reset Form Fields Data
	* @function reset
	* @memberof page
	* @apiDescription Reset form fields
	* @example
	* this.reset()
	*/
	function reset () {
	}
	/**
	* Hide Fields. This is opposite of {@link https://page-builder-api-docs.connexcs.com/page.html#.display display function}
	* @function hide
	* @memberof page
	* @param {Array} fields - ['name', 'age']
	* @apiDescription Hide the fields
	* @example
	* var formData = {name: 'XYZ', age: 28, country: 'England'}
	* var fields = ['name', 'age']
	* this.hide(fields)
	* // Displays only 'country' field in the form
	*/
	function hide (fields) {
	}
	/**
	* Display/Show Fields. This is opposite of {@link https://page-builder-api-docs.connexcs.com/page.html#.hide hide function}
	* @function display
	* @memberof page
	* @param {Array} fields
	* @apiDescription Display/Show the fields
	* @example
	* var formData = {name: 'XYZ', age: 28, country: 'England'}
	* var fields = ['name', 'age']
	* this.display(fields)
	* // Displays only 'name' and 'age' fields in the form
	*/
	function display (fields) {
	}
	/**
	* Disable Fields
	* @function disabled
	* @memberof page
	* @param {Array} fields
	* @param {Boolean} disabled - true/false
	* @apiDescription Disable the fields
	* @description Dynamically set whether a form field is disabled
	* @example
	* // Disable name and age fields from user interaction
	* var formData = {name: 'XYZ', age: 28, country: 'England'}
	* var fields = ['name', 'age']
	* this.disabled(fields, true)
	* // 'name' and 'age' fields in the form are unclickable and unchangeable
	* @example
	* // Enable name and age fields for user interaction
	* this.disabled(fields, false)
	* // 'name' and 'age' fields in the form are now enabled for user interaction
	*/
	function disabled (fields, disabled) {
	}
	/**
	* Get A Component
	* @function getComponent
	* @memberof page
	* @param {string} name - The component name
	* @description 'dialog' is the ID field in the 'Component Attribute' tab
	* @returns {Object} - Component Object
	* @example
	* var myDialog = this.getComponent('myDialog')
	* // myDialog component object
	*/
	function getComponent (name) {
	}
	/**
	* Add style class to form item. This is opposite of {@link https://page-builder-api-docs.connexcs.com/page.html#.removeClassName removeClassName function}
	* @function addClassName
	* @memberof page
	* @param {Array} fields
	* @param {Boolean} disabled - true/false
	* @example
	* var formData = {name: 'XYZ', age: 28, country: 'England'}
	* .custom-style {
	*	background: red;		
	* }
	* var className = 'custom-style'
	* var fields = ['name', 'age']
	* this.addClassName(fields, className)
	* // Now the 'background color' of Name and Age fields are 'red' in color
	*/
	function addClassName (name) {
	}
	/**
	* Remove form item style class. This is opposite of {@link https://page-builder-api-docs.connexcs.com/page.html#.addClassName addClassName function}
	* @function removeClassName
	* @memberof page
	* @param {Array} fields
	* @param {Boolean} disabled - true/false
	* @example
	* var formData = {name: 'XYZ', age: 28, country: 'England'}
	* .custom-style {
	*	background: red;		
	* }
	* var className = 'custom-style'
	* var fields = ['name', 'age']
	* this.removeClassName(fields, className)
	* // Now the 'background color' of Name and Age fields are not 'red' in color
	*/
	function removeClassName (name) {
	}
	/**
	* Get Form Values From A Component
	* @function getValues
	* @memberof page
	* @returns {Object}
	* @description Get the values of all fields in the dialg
	* @example
	* var data = this.getValues()
	* console.log(data) // {name: 'XYZ', age: 28, country: 'England'}
	*/
	function getValues () {
	}
	/**
	* Get A Value From An Object
	* @function getValue
	* @memberof page
	* @param {string} fieldName - Field Name
	* @returns 'Joe Blogs'
	* @example
	* var myData = {name: 'Joe Blogs', age: 30};
	* this.getValue('name')
	*/
	function getValue (fieldName) {
	}
	/**
	* send a request to GET, POST, PUT, DELETE
	* @function sendRequest
	* @memberof page
	* @param {string} name
	* @param {Object} args - arguments, datasource parameters
	* @param {Object} extendOptions - extendOptions
	* @returns {Promise<Boolean>} Validation Success or Failure
	* @example
	* try {
	*	var res = await this.sendRequest('customer')
	*	// if success returns response and data as an array [{id: 1, name: 'XYZ'}, {id: 2, name: 'JOE'}]
	*} catch (err) {
	*	// returns  err message
	*}
	*/
	function sendRequest (name, args) {
	}
	/**
	* Access database for List(get all records), Read (get a record), Update (update a record), Delete (delete a record).
	* This is an Object of functions. {@link https://page-builder-api-docs.connexcs.com/database.html Click Here}
	* @function database
	* @memberof page
	* @param {string} name - Database name
	*/
	function database (name) {
	}
	/**
	* Access scriptForge
	* @function scriptForge
	* @memberof page
	* @param {string} name - script forge name
	* @param {Object} data
	* @param {string} fn - function name
	* @param {Object} args - arguments
	* @returns {Promise<Boolean>} Validation Success or Failure
	*/
	function scriptForge (name = '', data = {}, fn = '', args = {}) {
	}
	/**
	* Set Form Field Validation Rules
	* @function setRules
	* @memberof page
	* @param {string} field
	* @param {Array} rules - Array of Objects
	* @example
	// Make Name as a required field
	* var field = 'name'
	* var rules = [
	* { required: true, message: 'Name is requried' }
	* ]
	* this.setRules(field, rules)
	* @example
	* // Remove name as a required field
	* var field = 'name'
	* var rules = [
	* { required: false }
	* ]
	* this.setRules(field, rules)
	*/
	function setRules (field, rules) {
	}
	/**
	* Set Form Field Configuration Item
	* @function setOptions
	* @memberof page
	* @param {Array} fields
	* @param {Object} options - key-value pair
	* @example
	* // Make Name field: Have a default value, a placeholder and as required
	* var formData = {name: '', age: 28, country: 'England'}
	* var field = ['name']
	* var options = {defaultValue: 'Default Name', placeholder: 'Name', required: true}
	* this.setOptions(fields, options)
	*/
	function setOptions (fields, options) {
	}
	/**
	* Dynamic option data assignment
	* @function setOptionData
	* @param {Array} fields
	* @memberof page
	* @param {Object} newData - key-value pair
	* @example
	* // pending
	* var formData = {name: '', age: 28, country: 'England'}
	* var field = ['name']
	* var newData = {}
	* this.setOptionData(fields, newData)
	* Ask Jon
	*/
	function setOptionData (fields, newData) {
	}
	/**
	* Refresh the datasource data bound to the form field
	* @function refreshFieldDataSource
	* @memberof page
	* @param {String} field - Datasource name
	* @param {Object} args - key-value pair
	* @example
	* Get Provider Rate Cards When Provider Field Is selected
	* var providerId = 1789
	* var providerRateCards = this.refreshFieldDataSource('card', {id: providerId})
	* @retuns Array of objects (key-value pairs)
	* // Returns array of objects [
	* //	{key: 23, value: 'Provider Rate Card 1'},
	* //	{key: 28, value: 'Provider Rate Card 3'}
	]
	*/
	function refreshFieldDataSource (field, args) {
	}
	/**
	* Validate Form Fields
	* @function validate
	* @memberof page
	* @param {Array} [fields = []]
	* @returns {Promise<Boolean>} Validation Success or Failure
	* @example
	* Validate Only A Set Of Array Of Fields
	* var formData = {name: '', age: 28, country: 'England'}
	* var fields = ['name', 'age']
	* this.validate(fields)
	* @example
	* If No Array Of Fields, Validates The Entire Form
	* this.validate()
	* @description Validates the form data or a key-value pair
	* // Returns Both The Success And Failure Results
	*/
	function validate (fields) {
	}
/*
	/**
	* Call The JS Event Of The Form Configuration
	function triggerEvent (eventName, args) {
	}
	/**
	* Delete Component
	* @function deleteComponentInstance
	* @memberof page
	* @param {string} key
	* @example - Delete a Dialog Component
	* this.deleteComponentInstance('dialog')
	* @description Deletes the component if it exists
	function deleteComponentInstance (key) {
	}
	*/
}