Skip to main content

module salix::util::WithPopups

rascal-0.42.0
org.rascalmpl.salix-core-0.2.11

Usage​

import salix::util::WithPopups;

Dependencies​

import salix::App;
import salix::HTML;
import salix::Core;
import salix::Index;
import salix::Node;
import Node;
import List;

alias Popups​

lrel[str selector, Popup popup]

Mapping CSS selectors to Popup values

data Popup​

data Popup  
= popup(str text, Placement placement = \auto()
, list[Modifier] modifiers = []
, Strategy strategy = fixed())
;

A Popup has a literal text``, a placementdefaulting toauto()and placementstrategydefaulting tofixed(). In the future we want to support arbitrary HTML in text`.

data Placement​

data Placement  
= \auto()
| \auto-start()
| \auto-end()
| \top()
| \top-start()
| \top-end()
| \bottom()
| \bottom-start()
| \bottom-end()
| \right()
| \right-start()
| \right-end()
| \left()
| \left-start()
| \left-end()
;

Data type encoding PopperJS positions of the tooltip. (see here https://popper.js.org/docs/v2/constructors/).

data Strategy​

data Strategy  
= absolute()
| fixed()
;

function withPopupsWeb​

App[&T] withPopupsWeb(Popups popups, &T appModel, void(&T) appView, str title
, str extraCss=DEFAULT_CSS, list[str] css=[], list[str] scripts=[])

Run a Salix app view function appView on a model value appModel and decorate the resulting page with popups/tooltips according popups, which is a list relation mapping CSS selectors (strings) to Popup values (see above). This function is primarily intended for creating explanatory screenshots for documentation or slide decks. The resulting page view is not interactive anymore; events are simply ignored.

function withPopups​

SalixApp[&T] withPopups(Popups popups, &T appModel, void(&T) appView, str title
, str extraCss=DEFAULT_CSS, list[str] css=[], list[str] scripts=[], str id = "root")

function withPopupView​

void withPopupView(Popups popups, &T model, void(&T) appView, str css)