* Fix Bug #7054: Reuse of $:/core/ui/EditTemplate/fields broken
This fixes Bug #7054 by creating a new variable
`safeNewFieldValueTiddlerPrefix` that is always set to a valid,
temporary prefix. This variable is used within `$action-deletetiddler`.
If the passed `newFieldValueTiddlerPrefix` variable is empty a new
prefix will be generated by the same logic that creates the original
`newFieldValueTiddlerPrefix` variable.
To be even more defensive, the prefix-filter was prepended with another
prefix filter that limits matches to `$:/temp/NewFieldValue`. This
prevents a bogus but non empty value in `newFieldValueTiddlerPrefix`
to delete arbitrary tiddlers.
* Add a default for `newFieldValueTiddlerPrefix`
This fixes a problem that was identified while fixing bug #7054. If the
tiddler `$:/core/ui/EditTemplate/fields` is transcluded directly and
`newFieldValueTiddlerPrefix` is not set, it will be generated. This
makes sure that this value is defined. It can not be redefined
unconditionally because if this tiddler is transcluded from
`EditTemplate.tid` these two tiddlers must agree on the same prefix
because the clean-up is duplicated between `EditTemplate.tid` and
`fields.tid`.
This would make `safeNewFieldValueTiddlerPrefix` obsolete, but I leave
it in there to make the macros safe and prevent any problems if the
`newFieldValueTiddlerPrefix` is unset by a later change.
* feat: option to allow click on modalBackdrop to close modal
* feat: allow switcher modals closable
* feat: allow use caption field as modal title
* refactor: make maskClosable a variable
* fix: use "true"
* fix: code style
* docs: add description about maskClosable
* fix: convention is to have double quotes for strings in the TW core
* refactor: using a "mask-closable" field on the modal tiddlers instead of as a message parameter
* docs: move to modal tid
* Update WidgetMessage_ tm-modal.tid
* Add focus attribute to $select widget
This address https://github.com/Jermolene/TiddlyWiki5/issues/7070
* Update SelectWidget.tid
Update the documentation for $select widget to include the new attribute: focus
* 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.
* make more sidebar tabs configurable vertical or horizontal
* more sidebar tabs orientation German translation
* remove language specific texts for more-horizontal setting
* Add More -> tabs horizontal setting to Hidden Settings
* Added failing linked-list test for #7059
* Fixed linked-list remove bug #7059
* Added failing linked-list test for #7059
* Switched LinkedList to use Map
* Removed this.last from LinkedList
* Removed this.first from LinkedList
* Switching to deleting old LinkedList entries
* LinkedList rewritten to be better
* Using null as LinkList ends to reduce hashing
* Using adhoc map... cause it's better than ECMA6 Map
* compliance with TiddlyWiki coding conventions
* Made link-list tests confirm the prev links
Co-authored-by: btheado <brian.theado@gmail.com>