0.5.1 • Published 5 years ago

@lynx-json/jsua-lynx v0.5.1

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

jsua-lynx (PRELIMINARY DOCUMENTATION)

Extensions to the jsua package for the Lynx JSON media type.

building.build accepts content and then:

  • parses content.blob as Lynx JSON and assigns it to the content.document property
  • passes the content object to building.documentViewBuilder

builders.nodeViewBuilder accepts result and then:

  • finds (see building.register) the builder that matches the most specific hint
  • passes the result object to the builder

building.register registers a view builder (for a Lynx JSON node) function that accepts the following params:

  • hint - the hint to build views for
  • builder - the builder function with signature f(node) -> view || Promise
  • condition - a function that accepts a Lynx node param and returns true if the builder will build a view for the node or false if the builder will not

building.registrations returns the registrations added via building.register

building.setNodeViewBuilder sets the default nodeViewBuilder, accepting a function with signature f(node) -> view || Promise

View Attributes

A view representing a Lynx JSON document may have the following attributes:

  • data-content-url - the document's URL
  • data-content-type - the document's content type (application/lynx+json)
  • data-lynx-realm - the document's realm URI
  • data-lynx-context - the document's context URI
  • data-lynx-focus - the document's focus name
  • data-transfer-started-at - the start date/time of the transfer that the view represents (see ECMASCript Date.prototype.valueOf()).

A view representing a node of a Lynx JSON document may have the following attributes:

  • data-lynx-visibility - the node's visibility
  • data-lynx-hints - the node's hints
  • data-lynx-name - the node's name
  • data-lynx-labeled-by - the node's labeledBy property value
  • data-lynx-scope - the node's scope (container nodes)
  • href - the node's href property value (link nodes)
  • type - the node's type property value (link nodes)
  • data-lynx-input - the node's input name for form data submission
  • data-lynx-submitter - the node's submitter property value (form and input nodes)
  • formaction - the node's action property value (submit nodes)
  • data-lynx-submit-method - the node's method property value (submit nodes)
  • data-lynx-submit-enctype - the node's enctype property value (submit nodes)
  • data-lynx-send - the node's send property value (submit nodes)
  • data-lynx-embedded-view - the view for the node's src or data property value (content nodes)
  • alt - the node's alt property value (content nodes)
  • title - the node's alt property value (image nodes)
  • data-lynx-height - the node's height property value (image nodes)
  • data-lynx-width - the node's width property value (image nodes)
  • data-lynx-container-input-add - the control used to add a new value to a container input node
  • data-lynx-container-input-value - the view for the value of an item in the container input node
  • data-lynx-container-input-remove - the control used to remove a value from a container input node
  • data-lynx-container-input-item - contains the data-lynx-container-input-value view and its associated data-lynx-container-input-remove control
  • data-lynx-validation-state - the current validation state of the view
  • data-lynx-visibility-conceal - the control used to toggle a view's data-lynx-visibility between revealed and concealed
  • data-lynx-options-name - the node's options property value (input nodes)
  • data-lynx-options-connected - the input view is connected to its source of options (input nodes)
  • data-lynx-options-role=options - the view is a source of options for an input view
  • data-lynx-option-selected - the current option selected state of the view
  • data-lynx-var-* - lynx data (unspecified) properties are added with this namespace

View Functions

A view representing a node of a Lynx JSON document may have the following methods/functions:

  • lynxGetVisibility - gets the visibility of a view
  • lynxSetVisibility - sets the visibility of a view
  • lynxGetValue - gets the value of a view (text, content, text input, content input, container input, option, and option value views)
  • lynxSetValue - sets the value of an input view
  • lynxHasValue - tests an input view's value and returns a Promise for a boolean
  • lynxClearValue - clears an input view's value
  • lynxAddValue - adds a value to a container input view
  • lynxRemoveValue - removes a value from a container input view
  • lynxValidateValue - if the view can be validated, performs the validation
  • lynxGetValidationState - if the view can be validated, gets the validation state of the view
  • lynxGetValidationConstraintSetObject - gets the normalized validation constraint set of a view
  • lynxGetConcealView - gets the view that represents the conceal action of a view
  • lynxSetConcealView - sets the view that represents the conceal action of a view
  • lynxGetRevealView - gets the view that represents the reveal action of a view
  • lynxSetRevealView - sets the view that represents the reveal action of a view
  • lynxConnectOptions - connects an input view that has options with its source of options (if found)
  • lynxDisconnectOptions - disconnects an input view from its source of options (if connected)
  • lynxGetInputView - gets the input view for an options view
  • lynxGetOptionsView - gets the options view for an input view
  • lynxSetEmbeddedView - sets both the view and the value (Blob) for a content view
  • lynxGetFocusableView - optional function to get the element from a view that is an appropriate focus target (i.e., an input control)

View Events

A view representing a node of a Lynx JSON document may emit the following events:

  • change - emitted when an input view's value changes
  • lynx-visibility-change - emitted when the view's data-lynx-visibility value changes
  • lynx-validation-state-change - emitted when the view's data-lynx-validation-state value changes. The event object will have a validation property whose value is an object (conforming to Lynx JSON's "Validation Constraint Set Object" interface) with the following additional properties:
    • state - the overall validation state for the view after considering the state of all constraints
    • priorState - the overall validation state for the view prior to the change
    • constraints - an array of the validation constraints (conforming Lynx JSON's "Validation Constraint Object" interface) for the view also with their own state and priorState properties
    • changes - an array of references to the validation constraints that have changed state
  • lynx-options-connected - emitted when a view that provides options to an input view is connected to the input view
  • lynx-options-disconnected - emitted when a view that provides options to an input view is disconnected from the input view
  • lynx-option-attached - emitted when an option view has been added to an options view
  • lynx-option-selected - emitted when a view that provides a value to an input view is selected
  • lynx-option-deselected - emitted when a view that provides a value to an input view is deselected
  • lynx-marker-here - emitted when a marker view determines the current view contains the content it marks
  • lynx-marker-there - emitted when a marker view determines the current view does not contain the content it marks
0.5.1

5 years ago

0.5.0

5 years ago

0.4.8

5 years ago

0.4.7

5 years ago

0.4.6

5 years ago

0.4.5

6 years ago

0.4.4

6 years ago

0.4.3

6 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.35

6 years ago

0.2.34

6 years ago

0.2.33

6 years ago

0.2.32

6 years ago

0.2.31

7 years ago

0.2.30

7 years ago

0.2.29

7 years ago

0.2.28

7 years ago

0.2.27

7 years ago

0.2.26

7 years ago

0.2.25

7 years ago

0.2.24

7 years ago

0.2.23

7 years ago

0.2.22

7 years ago

0.2.21

7 years ago

0.2.20

7 years ago

0.2.19

7 years ago

0.2.18

7 years ago

0.2.17

7 years ago

0.2.16

7 years ago

0.2.13

7 years ago

0.2.12

7 years ago

0.2.11

7 years ago

0.2.10

7 years ago

0.2.9

7 years ago

0.2.8

7 years ago

0.2.7

7 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.49

7 years ago

0.1.48

7 years ago

0.1.47

7 years ago

0.1.46

7 years ago

0.1.45

7 years ago

0.1.43

7 years ago

0.1.41

7 years ago

0.1.40

7 years ago

0.1.39

7 years ago