* Custom Forms: Allow HTML in labels and help text
Fixes#5003.
* Vue: Sanitize labels and helper text input
* Form editor: Fix blur on input for select option values
---------
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
Domains are case-insensitive, so this comparision should be too.
I encountered this issue with a Citadel user who accidentially named their domain an uppercase name (Pay.example.com), but browsers automatically converted it to pay.example.com
* Add grouping feature to the PoS with Cart
* Improve UI
* Rename groups to categories
* Make it easier to select categories of the items
* Refactor TemplateEditor, use TomSelect for categories
* Prevent Vue code insertion
* Prevent empty categories
* Add label ids
* Add test case
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Ajaxify the wallet transaction list to avoid timeout (Fix#4987)
* Add cancellation to request to wallet transactions
* Fix tests
* Improve empty state
* Cleanups
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Remove Order ID link
* Add separate print version for receipt
* Fix POS number handling and add keypad test
Fixes#5056.
* Add formatting function
* Remove OrderUrl for POS, bring back order link for receipt
* Update BTCPayServer/Plugins/PointOfSale/Controllers/UIPointOfSaleController.cs
Items with type topup have a price = null and hence not even the property set (ignored in JSON). This needs to be handled in the temlate, otherwise this exception occurs:
```
An unhandled exception was thrown by the application.
System.InvalidOperationException: Nullable object must have a value.
at AspNetCoreGeneratedDocument.Views_Shared_Crowdfund_Public_ContributeForm.<>c__DisplayClass24_0.<<ExecuteAsync>b__0>d.MoveNext()
```
* Pluginify on chain wallet setup
This PR fixes a few logical points in the wallet setup flow to allow more extensive plugin flexibility; It also fixes an issue when building plugins that requires an Altcoin config profile. Here is an example showcasing the Liquid+ plugin using this to enforce that it is a hot wallet (a requirement it has) and that import to RPC is always set, and a new option that is used to configure the wallet further https://i.imgur.com/pDPQ73v.gif
* Update BTCPayServer/Controllers/UIStoresController.Onchain.cs
* update nbx
* Add What's New in v1.10.0
* Update BTCPayServer/Views/UIStores/Dashboard.cshtml
Co-authored-by: B <102448109+Bas02@users.noreply.github.com>
---------
Co-authored-by: B <102448109+Bas02@users.noreply.github.com>