* 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>
* 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
I came across this while debugging #4889. This does not actually fix it, but it fixes an inconsistence in the casing of the parameter name.
However, I think the original issue is a caching problem in the browser. I was able to reproduce it on first load, after reloading the page once more it works as intended. The weird thing is: even though the values are correct on first load (verified via debugger), the `choiceKey` for the first item is set incorrectly to an integer value.
* Checkout v2: Minor copy change
* Allow copying of invoice ID and order ID on results page
* Add copy icons for payment details on results view
* Add missing powered by class to store footers
* UI updates
* Updates modes and calculation
* Unify tip buttons
* White caret
* Add top margin to calculation
* Add space between mode buttons and keypad
* Discount updates