gristlabs_grist-core/app/client/widgets
Alex Hall 0d460ac2d4 (core) Parsing pasted ChoiceLists
Summary:
Added ChoiceListParser capable of parsing JSON, CSVs, and other strings containing user-configured choices (e.g. separated by spaces)

I got a little carried away here. It works, and I can't think of any bugs, but it's complicated enough that there could be hidden edge cases or difficulties maintaining it in the future. The advantage of the current method is that it should work well for ambiguous or poorly formatted inputs, e.g. choices separated only by spaces or choices containing commas which are not escaped/quoted properly. The code can be vastly simplified if we don't try to support that and require that users paste proper JSON or CSVs.

Test Plan: Added a new file test/common/ChoiceListParser.ts with pure unit tests. Waiting for approval of the overall approach before adding to the nbrowser CopyPaste test.

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D3141
2021-11-20 19:00:36 +02:00
..
AbstractWidget.js (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
AttachmentsEditor.ts (core) Readonly editors 2021-06-17 19:12:16 +02:00
AttachmentsWidget.css (core) Revamp attachment editor + preview UI, and support more types, including PDFs. 2020-11-19 21:30:09 -05:00
AttachmentsWidget.ts (core) Revamp attachment editor + preview UI, and support more types, including PDFs. 2020-11-19 21:30:09 -05:00
BaseEditor.js (core) Change how formula columns can be converted to data. 2021-03-05 12:42:57 -05:00
CheckBox.css (core) Making cells colors effective also in Card and Card List views 2021-02-09 15:08:44 +01:00
CheckBox.js (core) Add new color select to the app 2021-03-02 16:41:37 +01:00
CheckBoxEditor.js (core) Readonly editors 2021-06-17 19:12:16 +02:00
ChoiceEditor.js (core) Fixing bug on a fresh Choice and ChoiceList column 2021-07-21 15:44:10 +02:00
ChoiceListCell.ts (core) Barely working reference lists in frontend 2021-07-23 18:41:44 +02:00
ChoiceListEditor.ts (core) Fixing bug on a fresh Choice and ChoiceList column 2021-07-21 15:44:10 +02:00
ChoiceListEntry.ts (core) Parsing pasted ChoiceLists 2021-11-20 19:00:36 +02:00
ChoiceTextBox.ts (core) Label editor for Choice/ChoiceList column editor 2021-10-07 11:55:38 +02:00
ChoiceToken.ts (core) Enhance autocomplete and choice colors 2021-07-16 09:10:51 -07:00
CurrencyPicker.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
DateEditor.js (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
DateTextBox.js (core) Formatting date time editor 2021-07-13 09:22:39 +02:00
DateTimeEditor.css (core) move client code to core 2020-10-02 13:24:21 -04:00
DateTimeEditor.js (core) Readonly editors 2021-06-17 19:12:16 +02:00
DateTimeTextBox.js (core) Replace time zone selector with one based on the newer autocomplete. 2021-07-23 08:02:05 -04:00
DiffBox.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
EditorButtons.ts (core) Add support for editing on mobile. 2021-02-03 23:10:51 -05:00
EditorPlacement.ts (core) Add support for editing on mobile. 2021-02-03 23:10:51 -05:00
EditorTooltip.ts (core) Add a button and a tooltip to Access Rules page item, in View-As mode. 2021-03-08 16:08:21 -05:00
ErrorDom.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
FieldBuilder.css (core) move client code to core 2020-10-02 13:24:21 -04:00
FieldBuilder.ts (core) Add column matching to Importer 2021-11-09 12:30:52 -08:00
FieldEditor.ts (core) Add column matching to Importer 2021-11-09 12:30:52 -08:00
FormulaEditor.ts (core) Adding traceback to trigger formulas 2021-09-27 17:12:39 +02:00
HyperLinkEditor.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
HyperLinkTextBox.ts (core) Showing links in text cells 2021-10-13 23:22:03 +02:00
NewAbstractWidget.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
NewBaseEditor.ts (core) Readonly editors 2021-06-17 19:12:16 +02:00
NTextBox.ts (core) Showing links in text cells 2021-10-13 23:22:03 +02:00
NTextEditor.ts (core) Adding more space for text editor to avoid scrollbars 2021-11-09 12:36:40 +01:00
NumericTextBox.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
Reference.css (core) move client code to core 2020-10-02 13:24:21 -04:00
Reference.ts (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
ReferenceEditor.ts (core) Value parsing for refs, parsing data entry for numbers 2021-11-01 19:31:52 +02:00
ReferenceList.ts (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
ReferenceListEditor.ts (core) Value parsing for refs, parsing data entry for numbers 2021-11-01 19:31:52 +02:00
Spinner.css (core) move client code to core 2020-10-02 13:24:21 -04:00
Spinner.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
Switch.css (core) Making cells colors effective also in Card and Card List views 2021-02-09 15:08:44 +01:00
Switch.js (core) Add new color select to the app 2021-03-02 16:41:37 +01:00
TextBox.css (core) Readonly editors 2021-06-17 19:12:16 +02:00
TextEditor.css (core) Set min-height for cells, including in Card view, to make them look consistent. 2021-11-19 17:23:03 -05:00
TextEditor.js (core) Readonly editors 2021-06-17 19:12:16 +02:00
TZAutocomplete.ts (core) Replace time zone selector with one based on the newer autocomplete. 2021-07-23 08:02:05 -04:00
UserType.js (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
UserTypeImpl.js (core) Barely working reference lists in frontend 2021-07-23 18:41:44 +02:00