UNPKG

samagra-x-enketo-core

Version:

Extensible Enketo form engine

260 lines (232 loc) 6.21 kB
/** * @module event */ // TODO: add second "propagate" parameter to constructors to add .enketo namespace to event. /** * Data update event. * * @static * @param {*} detail - Data to be passed with event * @return {CustomEvent} Custom "dataupdate" event */ function DataUpdate( detail ) { return new CustomEvent( 'dataupdate', { detail } ); } /** * Fake focus event. * * @return {CustomEvent} Custom "fakefocus" event (bubbling) */ function FakeFocus() { return new CustomEvent( 'fakefocus', { bubbles: true } ); } /** * Apply focus event. * * @return {CustomEvent} Custom "applyfocus" event */ function ApplyFocus() { return new CustomEvent( 'applyfocus' ); } /** * Page flip event. * * @return {CustomEvent} Custom "pageflip" event (bubbling) */ function PageFlip() { return new CustomEvent( 'pageflip', { bubbles: true } ); } /** * Removed event. * * @param {*} detail - Data to be passed with event * @return {CustomEvent} Custom "removed" event (bubbling) */ function Removed( detail ) { return new CustomEvent( 'removed', { detail, bubbles: true } ); } /** * The odk-instance-first-load event as defined in the ODK XForms spec. * * @see https://getodk.github.io/xforms-spec/#event:odk-instance-first-load *@return {CustomEvent} Custom "odk-instance-first-load" event (bubbling) */ function InstanceFirstLoad() { return new CustomEvent( 'odk-instance-first-load', { bubbles: true } ); } /** * The odk-new-repeat event as defined in the ODK XForms spec. * * @see https://getodk.github.io/xforms-spec/#event:odk-new-repeat * @param {{repeatPath: string, repeatIndex: number, trigger: string}} detail - Data to be passed with event. * @return {CustomEvent} Custom "odk-new-repeat" event (bubbling) */ function NewRepeat( detail ) { return new CustomEvent( 'odk-new-repeat', { detail, bubbles: true } ); } /** * The addrepeat event is similar but fired under different circumstances. * * @param {{repeatPath: string, repeatIndex: number, trigger: string}} detail - Data to be passed with event. * @return {CustomEvent} Custom "odk-new-repeat" event (bubbling) */ function AddRepeat( detail ) { return new CustomEvent( 'addrepeat', { detail, bubbles: true } ); } /** * Remove repeat event. * * @return {CustomEvent} Custom "removerepeat" event (bubbling) */ function RemoveRepeat() { return new CustomEvent( 'removerepeat', { bubbles: true } ); } /** * Change language event. * * @return {CustomEvent} Custom "changelanguage" event (bubbling) */ function ChangeLanguage() { return new CustomEvent( 'changelanguage', { bubbles: true } ); } /** * Change event. * * @return {Event} The regular HTML "change" event (bubbling) */ function Change() { return new Event( 'change', { bubbles: true } ); } /** * Xforms-value-changed event as defined in the ODK XForms spec. * * @see https://getodk.github.io/xforms-spec/#event:xforms-value-changed * @param {{repeatIndex: number}} detail - Data to be passed with event. * @return {CustomEvent} Custom "xforms-value-changed" event (bubbling). */ function XFormsValueChanged( detail ) { return new CustomEvent( 'xforms-value-changed', { detail, bubbles: true } ); } /** * Input event. * * @return {Event} "input" event (bubbling) */ function Input() { return new Event( 'input', { bubbles: true } ); } /** * Input update event which fires when a form control value is updated programmatically. * * @return {CustomEvent} Custom "inputupdate" event (bubbling) */ function InputUpdate() { return new CustomEvent( 'inputupdate', { bubbles: true } ); } /** * Edited event. * * @return {CustomEvent} Custom "edited" event (bubbling) */ function Edited() { return new CustomEvent( 'edited', { bubbles: true } ); } /** * Before save event. * * @return {CustomEvent} Custom "edited" event (bubbling) */ function BeforeSave() { return new CustomEvent( 'before-save', { bubbles: true } ); } /** * Validation complete event. * * @return {CustomEvent} Custom "validationcomplete" event (bubbling) */ function ValidationComplete() { return new CustomEvent( 'validation-complete', { bubbles: true } ); } /** * Invalidated event. * * @return {CustomEvent} Custom "invalidated" event (bubbling) */ function Invalidated() { return new CustomEvent( 'invalidated', { bubbles: true } ); } /** * Progress update event. * * @param {*} detail - Data to be passed with event * @return {CustomEvent} Custom "progressupdate" event (bubbling) */ function ProgressUpdate( detail ) { return new CustomEvent( 'progress-update', { detail, bubbles: true } ); } /** * Go to hidden event fired when the goto target is not relevant. * * @return {CustomEvent} Custom "gotoirrelevant" event (bubbling) */ function GoToIrrelevant() { return new CustomEvent( 'goto-irrelevant', { bubbles: true } ); } /** * Go to invisible event fired when the target has no form control. * This is event has prevalence of the "go to hidden" event. * * @return {CustomEvent} Custom "gotoinvisible" event (bubbling) */ function GoToInvisible() { return new CustomEvent( 'goto-invisible', { bubbles: true } ); } function ChangeOption() { return new CustomEvent( 'change-option', { bubbles: true } ); } /** * Go to printify text event. * * @return {CustomEvent} Custom "printify" event (bubbling) */ function Printify() { return new CustomEvent( 'printify', { bubbles: true } ); } /** * Go to deprintify text event. * * @return {CustomEvent} Custom "deprintify" event (bubbling) */ function DePrintify() { return new CustomEvent( 'deprintify', { bubbles: true } ); } function UpdateMaxSize() { return new CustomEvent( 'update-max-size', { bubbles: true } ); } export default { DataUpdate, FakeFocus, ApplyFocus, PageFlip, Removed, InstanceFirstLoad, NewRepeat, AddRepeat, RemoveRepeat, ChangeLanguage, Change, Input, InputUpdate, Edited, BeforeSave, ValidationComplete, Invalidated, ProgressUpdate, GoToIrrelevant, GoToInvisible, XFormsValueChanged, ChangeOption, Printify, DePrintify, UpdateMaxSize };