Files
JiboOs/docs/rendering/gui/components/ElementGroup.js
2026-03-16 13:53:01 +02:00

155 lines
5.6 KiB
JavaScript

/**
* @description Interface describing some point in space with 'x' and 'y' properties.
* @interface jibo.face.views.ElementGroup~PointData
* @property {Number|String} [x] X value for the point
* @property {Number|String} [y] Y value for the point
*/
/**
* @description Interface - Configuration values for creating an ElementGroup.
* @interface jibo.face.views.ElementGroup~ElementOptions
* @extends jibo.face.views.Component~ComponentOptions
* @prop {Boolean} [interactable] - Flag that indicates if user can interact with the element.
*/
/**
* Base class for element groups that extend component
* groups. Has base methods that deal with display
* and positioning.
*
* @class ElementGroup
* @extends jibo.face.views.ComponentGroup
* @implements jibo.face.views.IElement
* @memberof jibo.face.views
*/
/**
* The default class identifier.
* Generally used to register the class.
* @name jibo.face.views.ElementGroup.DEFAULT_TYPE
* @type {String}
* @readOnly
*/
/**
* Flag determines if ElementGroup can be interactive.
* If `false` prevents locking and unlocking input from effecting the display's interactivity.
* @name jibo.face.views.ElementGroup#interactable
* @default false
* @type {boolean}
*/
/**
* Display container for the ElementGroup.
* @name jibo.face.views.ElementGroup#display
* @type {PIXI.Container}
*/
/**
* The target position.
* Can be specified prior to the creation of the display, when the display is created this position is applied.
* @name jibo.face.views.ElementGroup#targetPosition
* @type {PIXI.Point}
*/
/**
* Create ElementGroup from configuration.
* @method jibo.face.views.ElementGroup#createFromConfig
* @param {Object} configData Configuration to create list from.
* @returns {jibo.face.views.ElementGroup}
*/
/**
* FOR OVERRIDE ONLY. DO NOT CALL.
*
* Assign data passed via Object to class.
* Method can be overridden to allow for manual definition of values, assets, etc.
* @method jibo.face.views.ElementGroup#assignConfig
* @param {any} configData - Object derived from JSON containing values specific to ElementGroup.
*/
/**
* FOR OVERRIDE ONLY. DO NOT CALL.
*
* Create ElementGroup's display and add to container.
* @method jibo.face.views.ElementGroup#createDisplay
* @param {PIXI.Container} container Parent Container which all DisplayObject
* created within this ElementGroup should be added to.
* @param {Object} assets Object passed back from loader namespace load method,
* refer to {@link jibo.loader} for detail
*/
/**
* Set up the display.
* Assign assets, set timelines, etc.
* @method jibo.face.views.ElementGroup#setupDisplay
* @param {Object} [assets] Object passed back from loader namespace load method,
* refer to {@link jibo.loader} for detail
*/
/**
* Destroy display's children
* Clean up all processes using display's children
* (i.e. tweens).
* @method jibo.face.views.ElementGroup#emptyDisplay
*/
/**
* Stop all tweens whose targets are children of ElementGroup's display.
* Option to stop tweens on ElementGroup's display as well.
* @param {boolean} [includeDisplay = false] If `true` will stop tween on display.
* @method jibo.face.views.ElementGroup#stopChildTweens
*/
/**
* Used to define the position for the display before it is created.
* @method jibo.face.views.ElementGroup#setTargetPosition
* @param {Number} [x = 0] The x position target.
* @param {Number} [y = 0] The y position target.
* @param {Boolean} [applyNow = false] Flag determining if given target position should be applied to display within this method.
* (Display must be defined for this to take effect.)
*/
/**
* Apply position that was defined in config to display's actual position.
* @method jibo.face.views.ElementGroup#applyPosition
* @public
*/
/**
* FOR OVERRIDE ONLY. DO NOT CALL.
*
* Open transition, defaults to vertical tween upward from below viewport.
* @method jibo.face.views.ElementGroup#open
* @param {Function} callback Function to be called once open is complete.
* @param {String} transitionType String used to determine ElementGroup's open transition,
* refer to ViewManager for constants used
* @param {number} [duration = ViewManager.TRANS_TIME] Duration in milliseconds of the transition.
* @param {String} [tweenType = 'backOut'] Type of tween used.
*/
/**
* FOR OVERRIDE ONLY. DO NOT CALL.
*
* Close transition, defaults to vertical tween upward out of viewport.
* @method jibo.face.views.ElementGroup#close
* @param {Function} callback Function to be called once open is complete.
* @param {String} [transitionType] String used to determine way ElementGroup's close transition,
* refer to ViewManager for constants used.
* @param {number} [duration = ViewManager.TRANS_TIME] Duration in milliseconds of the transition.
* @param {String} [tweenType = 'backIn'] Type of tween used.
*/
/**
* FOR OVERRIDE ONLY. DO NOT CALL.
*
* Destroy, stops any tweens that may be active on the ElementGroup's display.
* @method jibo.face.views.ElementGroup#destroy
*/
/**
* Lock or unlock input.
* If display is defined and interactable is `true` sets display's interactivity.
* @method jibo.face.views.ElementGroup#lockInput
* @param {Boolean} flag Determines if input is locked.
*/