TiddlyWiki5/core/modules/widgets
FlashSystems 3918e59cc1
Fixed PR to fix popup position if popup is triggered from within an offsetParent element (#7013)
* Fix popup location for tables

This commit introduces the `popupAbsCoords` option to the $button widget
and implements an absolut coordinate format.

Coordinates for popups are stored in the format `(x,y,w,h)`. These
coordinates are relative to the offset parent of the element that
defines the popup.

This commits adds a second format `@(x,y,w,h)`. Coordinates specified in
this format a relative to the pages root element.

The `popupAbsCoords` option of the $button widget enables the use of
this coordinates.

* Unify the declaration of the RegEx for parsing the popup-position

The regular expression was declared in three locations with the same
content. This commit supplies a new function `parseCoordinates` in
`popup.js`. This function returns the parsed coordinates and understands
the classic/absolute coordinates.

This function is used in `reveal.js` and `action-popup.js` to parse the
coordinates.

* Add documentation for coordinate systems

* Consolidate creating coordinate strings

The Popup object now contains a `buildCoordinates` method that can be
used to build coordinate strings. It takes an "enum" for the coordinate-
system to use. This makes everything easily extensible and prevents the
use of magic values.

* Add tests for `parseCoordinates` and `buildCoordinates`

* Add `tv-popup-abs-coords` to `collectDOMVariables`

This will make the absolute coordinates available for the
`DraggableWidget` and the `EventCatcherWidget`.

* Add documentation for the `tv-popup-abs-coords`

... to the `DraggableWidget` and the `EventCatcherWidget`.

* Fix crash when generating a static version of the TW

The Popup class is not initialized in `startup.js` if `$tw.browser` is
not true. After having consolidated the facilities for parsing
coordinate strings into `popup.js` this breaks because the static build
needs to parse coordinate stings even if no Popup module is initialized.
This commit solves this problem by making `readPopupState`,
`parseCoordinates` and `buildCoordinates` static methods of `popup.js`.
It also adds a comment to these functions to show that these can be called
safely even if the Popup-Class is not initialized.
2022-12-01 21:16:44 +00:00
..
action-confirm.js Fix(action-confirm): check if event is defined before accessing its properties (#6063) 2021-09-22 13:43:02 +01:00
action-createtiddler.js Action-createtiddler: Ensure child widgets are refreshed before invocation 2021-06-14 18:13:51 +01:00
action-deletefield.js Fix removing a field with empty name (#6888) 2022-08-09 18:44:45 +02:00
action-deletetiddler.js More action-deletetiddler fixes 2014-11-09 16:53:33 +00:00
action-listops.js Remove erroneously included code 2022-03-18 12:40:12 +00:00
action-log.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
action-navigate.js tm-navigate: add separate properties to access bounds of client rectangle 2021-07-05 09:52:17 +01:00
action-popup.js Fixed PR to fix popup position if popup is triggered from within an offsetParent element (#7013) 2022-12-01 21:16:44 +00:00
action-sendmessage.js Fix typo in d5f72cb282 2021-10-28 09:18:54 +01:00
action-setfield.js action-setfield shouldn't write to the current tiddler if the $tiddler attribute is present but has evaluated to a missing attribute 2022-04-16 18:02:27 +01:00
action-setmultiplefields.js Set multiple fields/variables/params using filters (#6130) 2021-10-27 11:20:11 +01:00
browse.js BrowseWidget: Add "accepts" attribute 2020-04-21 22:18:34 +01:00
button.js Fixed PR to fix popup position if popup is triggered from within an offsetParent element (#7013) 2022-12-01 21:16:44 +00:00
checkbox.js Fix bug when using built-in `list` field as listField parameter to checkbox widget (#6897) 2022-09-22 18:52:55 +01:00
codeblock.js Fix refreshing of codeblock widget 2021-11-05 08:28:56 +00:00
count.js Fix count widget to return "0" for an empty filter string instead of undefined 2020-04-09 11:04:50 +01:00
diff-text.js Improve diff count for diff-text widget 2018-04-03 17:50:17 +01:00
draggable.js Feat: dynamically refresh class for draggable widget DOM node instead of re-rendering the widget (#6787) 2022-07-15 15:37:27 +01:00
droppable.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
dropzone.js Fix: issues with drag and drop in Chrome 96 (#6261) 2021-11-21 20:48:16 +00:00
edit-binary.js Add download button/link to binary tiddler warning banners in view and edit mode (#4423) 2020-01-31 09:13:28 +00:00
edit-bitmap.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
edit-shortcut.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
edit-text.js Introduce text editor toolbar (#2315) 2016-04-22 08:36:29 +01:00
edit.js Add "autocomplete" attribute to <$edit> and <$edit-text> widgets 2020-11-30 18:48:04 +00:00
element.js Style tweaks for #6755 2022-07-05 17:47:57 +01:00
encrypt.js Refactor wiki.filterTiddlers() 2014-04-27 20:03:33 +01:00
entity.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
error.js Improve recursion detection for transclusion and filters (#6970) 2022-10-01 10:13:40 +01:00
eventcatcher.js Fix: eventcatcher widget - variables can be undefined (#6668) 2022-05-06 17:11:13 +01:00
fieldmangler.js Add support for JSON-formatted tiddler store, and make it the default (#5708) 2021-07-14 09:15:30 +01:00
fields.js Add new parameters to fields-widget and fields-operator. (#4433) 2020-04-15 12:36:48 +01:00
genesis.js Introduce genesis widget (#6961) 2022-09-24 14:07:42 +01:00
image.js Image lazy loading (#6809) 2022-07-21 15:30:56 +01:00
importvariables.js Optimise variable prototype chain handling 2022-09-24 08:28:16 +01:00
jsontiddler.js Fix bug with innerwiki template 2021-10-02 16:17:07 +01:00
keyboard.js Allow global keyboard shortcuts to override all other shortcuts by providing a special field (#6735) 2022-10-07 17:31:04 +01:00
let.js Relax the restriction on the let widget being unable to create variables starting with a dollar 2022-10-01 09:47:26 +01:00
link.js Update link-widget refresh method (#6013) 2021-10-27 11:37:08 +01:00
linkcatcher.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
list.js feat: add support for renderEnd method for storyviews in widget's render() method (#6409) 2022-01-19 19:48:02 +00:00
log.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
macrocall.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
messagecatcher.js MessageCatcher: Fix stack overflow when re-issuing a trapped message 2021-09-20 16:46:26 +01:00
navigator.js Introduce JSON parse utility function with error handling (#6401) 2022-02-21 15:29:25 +00:00
password.js Fix default password 2013-11-10 19:22:10 +00:00
qualify.js Change qualify widget parameter name to match qualify macro 2018-11-06 16:41:18 +00:00
radio.js Radio widget should use default if field/index is missing 2022-01-09 17:17:12 +00:00
range.js Add actions parameter to range-widget + docs! (#5158) 2020-12-01 18:11:09 +00:00
raw.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
reveal.js Fixed PR to fix popup position if popup is triggered from within an offsetParent element (#7013) 2022-12-01 21:16:44 +00:00
scrollable.js Revert scrollable changes e49dda3b48 2022-03-29 09:49:31 +01:00
select.js allow select widget class to update if it uses a filter and is output changes (#6987) 2022-10-15 12:26:21 +01:00
setmultiplevariables.js Set multiple fields/variables/params using filters (#6130) 2021-10-27 11:20:11 +01:00
setvariable.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
text.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
tiddler.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
transclude.js Fix tests 2022-10-01 14:05:13 +01:00
vars.js Add $let widget (#6148) 2021-10-30 11:42:22 +01:00
view.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
widget.js Improve recursion detection for transclusion and filters (#6970) 2022-10-01 10:13:40 +01:00
wikify.js style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00