nexus-shared 1.1.20 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +903 -0
- package/dist/Client.Index.d.ts +44 -0
- package/dist/Client.Index.js +49 -0
- package/dist/Components/Documents/Button.d.ts +29 -0
- package/dist/Components/Documents/Button.js +11 -0
- package/dist/Components/Documents/Menu.d.ts +102 -0
- package/dist/Components/Documents/Menu.js +238 -0
- package/dist/Components/Documents/SplitButton.d.ts +64 -0
- package/dist/Components/Documents/SplitButton.js +127 -0
- package/dist/Components/Documents/TabButtons.d.ts +62 -0
- package/dist/Components/Documents/TabButtons.js +19 -0
- package/dist/Components/Forms/ApiForm.d.ts +21 -0
- package/dist/Components/Forms/ApiForm.js +99 -0
- package/dist/Components/Forms/Crud.d.ts +17 -0
- package/dist/Components/Forms/Crud.js +556 -0
- package/dist/Components/Forms/CrudParts.d.ts +15 -0
- package/dist/Components/Forms/CrudParts.js +36 -0
- package/dist/Components/Forms/Form.d.ts +52 -0
- package/dist/Components/Forms/Form.js +319 -0
- package/dist/Components/Forms/SubmitForm.d.ts +65 -0
- package/dist/Components/Forms/SubmitForm.js +198 -0
- package/dist/Components/Inputs/Calendar.d.ts +69 -0
- package/dist/Components/Inputs/Calendar.js +258 -0
- package/dist/Components/Inputs/CheckBox.d.ts +53 -0
- package/dist/Components/Inputs/CheckBox.js +87 -0
- package/dist/Components/Inputs/CheckBoxGroup.d.ts +20 -0
- package/dist/Components/Inputs/CheckBoxGroup.js +80 -0
- package/dist/Components/Inputs/ChoiceField.d.ts +122 -0
- package/dist/Components/Inputs/ChoiceField.js +169 -0
- package/dist/Components/Inputs/DatePicker.d.ts +54 -0
- package/dist/Components/Inputs/DatePicker.js +246 -0
- package/dist/Components/Inputs/DateRangePicker.d.ts +62 -0
- package/dist/Components/Inputs/DateRangePicker.js +283 -0
- package/dist/Components/Inputs/DateTimePicker.d.ts +75 -0
- package/dist/Components/Inputs/DateTimePicker.js +399 -0
- package/dist/Components/Inputs/Dropdown.d.ts +117 -0
- package/dist/Components/Inputs/Dropdown.js +839 -0
- package/dist/Components/Inputs/DropdownParts.d.ts +84 -0
- package/dist/Components/Inputs/DropdownParts.js +102 -0
- package/dist/Components/Inputs/EditorShell.d.ts +45 -0
- package/dist/Components/Inputs/EditorShell.js +214 -0
- package/dist/Components/Inputs/Field.d.ts +53 -0
- package/dist/Components/Inputs/Field.js +16 -0
- package/dist/Components/Inputs/GroupForm.d.ts +20 -0
- package/dist/Components/Inputs/GroupForm.js +170 -0
- package/dist/Components/Inputs/InputField.d.ts +59 -0
- package/dist/Components/Inputs/InputField.js +169 -0
- package/dist/Components/Inputs/InputRenderer.d.ts +35 -0
- package/dist/Components/Inputs/InputRenderer.js +99 -0
- package/dist/Components/Inputs/MarkdownEditor.d.ts +67 -0
- package/dist/Components/Inputs/MarkdownEditor.js +289 -0
- package/dist/Components/Inputs/NumberBox.d.ts +53 -0
- package/dist/Components/Inputs/NumberBox.js +228 -0
- package/dist/Components/Inputs/RadioGroup.d.ts +20 -0
- package/dist/Components/Inputs/RadioGroup.js +43 -0
- package/dist/Components/Inputs/ReadOnlyNotice.d.ts +36 -0
- package/dist/Components/Inputs/ReadOnlyNotice.js +116 -0
- package/dist/Components/Inputs/RichTextEditor.d.ts +103 -0
- package/dist/Components/Inputs/RichTextEditor.js +1170 -0
- package/dist/Components/Inputs/RichTextParts.d.ts +63 -0
- package/dist/Components/Inputs/RichTextParts.js +157 -0
- package/dist/Components/Inputs/RowsInput.d.ts +104 -0
- package/dist/Components/Inputs/RowsInput.js +259 -0
- package/dist/Components/Inputs/Slider.d.ts +87 -0
- package/dist/Components/Inputs/Slider.js +216 -0
- package/dist/Components/Inputs/TabularForm.d.ts +23 -0
- package/dist/Components/Inputs/TabularForm.js +283 -0
- package/dist/Components/Inputs/TextArea.d.ts +43 -0
- package/dist/Components/Inputs/TextArea.js +31 -0
- package/dist/Components/Inputs/TextBox.d.ts +52 -0
- package/dist/Components/Inputs/TextBox.js +58 -0
- package/dist/Components/Inputs/TextField.d.ts +31 -0
- package/dist/Components/Inputs/TextField.js +35 -0
- package/dist/Components/Inputs/TimePanel.d.ts +34 -0
- package/dist/Components/Inputs/TimePanel.js +288 -0
- package/dist/Components/Inputs/TimePicker.d.ts +54 -0
- package/dist/Components/Inputs/TimePicker.js +239 -0
- package/dist/Components/Inputs/TreeView.d.ts +160 -0
- package/dist/Components/Inputs/TreeView.js +947 -0
- package/dist/Components/Layouts/MessageBox.d.ts +71 -0
- package/dist/Components/Layouts/MessageBox.js +104 -0
- package/dist/Components/Layouts/Popup.d.ts +92 -0
- package/dist/Components/Layouts/Popup.js +376 -0
- package/dist/Components/Layouts/PopupContext.d.ts +2 -0
- package/dist/Components/Layouts/PopupContext.js +4 -0
- package/dist/Components/Layouts/PopupDock.d.ts +22 -0
- package/dist/Components/Layouts/PopupDock.js +121 -0
- package/dist/Components/Layouts/PopupHost.d.ts +56 -0
- package/dist/Components/Layouts/PopupHost.js +163 -0
- package/dist/Components/Layouts/PopupRules.d.ts +30 -0
- package/dist/Components/Layouts/PopupRules.js +63 -0
- package/dist/Components/Layouts/ThemePicker.d.ts +13 -0
- package/dist/Components/Layouts/ThemePicker.js +22 -0
- package/dist/Components/Layouts/ThemeScript.d.ts +14 -0
- package/dist/Components/Layouts/ThemeScript.js +13 -0
- package/dist/Components/Layouts/ThemeSwitcher.d.ts +13 -0
- package/dist/Components/Layouts/ThemeSwitcher.js +29 -0
- package/dist/Components/Layouts/Toaster.d.ts +76 -0
- package/dist/Components/Layouts/Toaster.js +172 -0
- package/dist/Components/Viewers/DataTable.d.ts +25 -0
- package/dist/Components/Viewers/DataTable.js +542 -0
- package/dist/Components/Viewers/DataTableParts.d.ts +134 -0
- package/dist/Components/Viewers/DataTableParts.js +145 -0
- package/dist/Components/Viewers/MarkdownView.d.ts +26 -0
- package/dist/Components/Viewers/MarkdownView.js +79 -0
- package/dist/Components/Viewers/RichTextView.d.ts +18 -0
- package/dist/Components/Viewers/RichTextView.js +17 -0
- package/dist/Helpers/AnimationHelpers.d.ts +6 -0
- package/dist/Helpers/AnimationHelpers.js +35 -0
- package/dist/Helpers/ApiClient.d.ts +74 -0
- package/dist/Helpers/ApiClient.js +197 -0
- package/dist/Helpers/ApiFormHelpers.d.ts +26 -0
- package/dist/Helpers/ApiFormHelpers.js +56 -0
- package/dist/Helpers/ApiModules.d.ts +135 -0
- package/dist/Helpers/ApiModules.js +194 -0
- package/dist/Helpers/ApiResponses.d.ts +41 -0
- package/dist/Helpers/ApiResponses.js +159 -0
- package/dist/Helpers/ApiRoutes.d.ts +150 -0
- package/dist/Helpers/ApiRoutes.js +191 -0
- package/dist/Helpers/ApiToasts.d.ts +21 -0
- package/dist/Helpers/ApiToasts.js +22 -0
- package/dist/Helpers/ClassHelpers.d.ts +3 -0
- package/dist/Helpers/ClassHelpers.js +4 -0
- package/dist/Helpers/CrudBackend.d.ts +56 -0
- package/dist/Helpers/CrudBackend.js +119 -0
- package/dist/Helpers/CrudHelpers.d.ts +76 -0
- package/dist/Helpers/CrudHelpers.js +202 -0
- package/dist/Helpers/DateHelpers.d.ts +88 -0
- package/dist/Helpers/DateHelpers.js +363 -0
- package/dist/Helpers/DatePreferences.d.ts +14 -0
- package/dist/Helpers/DatePreferences.js +94 -0
- package/dist/Helpers/DateTimeHelpers.d.ts +87 -0
- package/dist/Helpers/DateTimeHelpers.js +286 -0
- package/dist/Helpers/DragHelpers.d.ts +129 -0
- package/dist/Helpers/DragHelpers.js +281 -0
- package/dist/Helpers/DropdownHelpers.d.ts +56 -0
- package/dist/Helpers/DropdownHelpers.js +180 -0
- package/dist/Helpers/FormDrafts.d.ts +18 -0
- package/dist/Helpers/FormDrafts.js +76 -0
- package/dist/Helpers/FormStore.d.ts +231 -0
- package/dist/Helpers/FormStore.js +734 -0
- package/dist/Helpers/InputParamsHelpers.d.ts +79 -0
- package/dist/Helpers/InputParamsHelpers.js +388 -0
- package/dist/Helpers/MarkdownEditing.d.ts +27 -0
- package/dist/Helpers/MarkdownEditing.js +250 -0
- package/dist/Helpers/MarkdownHelpers.d.ts +82 -0
- package/dist/Helpers/MarkdownHelpers.js +775 -0
- package/dist/Helpers/MessageBuilder.d.ts +74 -0
- package/dist/Helpers/MessageBuilder.js +254 -0
- package/dist/Helpers/NepaliCalendar.d.ts +25 -0
- package/dist/Helpers/NepaliCalendar.js +107 -0
- package/dist/Helpers/NumberHelpers.d.ts +71 -0
- package/dist/Helpers/NumberHelpers.js +202 -0
- package/dist/Helpers/Permissions.d.ts +62 -0
- package/dist/Helpers/Permissions.js +133 -0
- package/dist/Helpers/PopoverHelpers.d.ts +43 -0
- package/dist/Helpers/PopoverHelpers.js +91 -0
- package/dist/Helpers/RichTextHelpers.d.ts +77 -0
- package/dist/Helpers/RichTextHelpers.js +1072 -0
- package/dist/Helpers/RowsStore.d.ts +160 -0
- package/dist/Helpers/RowsStore.js +584 -0
- package/dist/Helpers/TableColumns.d.ts +40 -0
- package/dist/Helpers/TableColumns.js +254 -0
- package/dist/Helpers/TableExport.d.ts +30 -0
- package/dist/Helpers/TableExport.js +97 -0
- package/dist/Helpers/TableHelpers.d.ts +102 -0
- package/dist/Helpers/TableHelpers.js +281 -0
- package/dist/Helpers/TableStore.d.ts +142 -0
- package/dist/Helpers/TableStore.js +530 -0
- package/dist/Helpers/ThemeHelpers.d.ts +15 -0
- package/dist/Helpers/ThemeHelpers.js +16 -0
- package/dist/Helpers/TimeHelpers.d.ts +73 -0
- package/dist/Helpers/TimeHelpers.js +253 -0
- package/dist/Helpers/TreeStore.d.ts +188 -0
- package/dist/Helpers/TreeStore.js +577 -0
- package/dist/Helpers/ValidationHelpers.d.ts +124 -0
- package/dist/Helpers/ValidationHelpers.js +301 -0
- package/dist/Interfaces/ApiInterfaces.d.ts +149 -0
- package/dist/Interfaces/ApiInterfaces.js +24 -0
- package/dist/Interfaces/CrudInterfaces.d.ts +171 -0
- package/{src/sso-client.tsx → dist/Interfaces/CrudInterfaces.js} +1 -1
- package/dist/Interfaces/DateInterfaces.d.ts +154 -0
- package/dist/Interfaces/DateInterfaces.js +29 -0
- package/dist/Interfaces/FormInterfaces.d.ts +352 -0
- package/dist/Interfaces/FormInterfaces.js +1 -0
- package/dist/Interfaces/InputInterfaces.d.ts +141 -0
- package/dist/Interfaces/InputInterfaces.js +1 -0
- package/dist/Interfaces/MessageInterfaces.d.ts +111 -0
- package/dist/Interfaces/MessageInterfaces.js +5 -0
- package/dist/Interfaces/TableInterfaces.d.ts +291 -0
- package/dist/Interfaces/TableInterfaces.js +1 -0
- package/dist/Interfaces/ThemeInterfaces.d.ts +17 -0
- package/dist/Interfaces/ThemeInterfaces.js +17 -0
- package/dist/Interfaces/TypeInterfaces.d.ts +4 -0
- package/dist/Interfaces/TypeInterfaces.js +1 -0
- package/dist/Server.Index.d.ts +2 -0
- package/dist/Server.Index.js +5 -0
- package/dist/Services/ApiProxy.d.ts +32 -0
- package/dist/Services/ApiProxy.js +111 -0
- package/dist/Services/BrowserApi.d.ts +78 -0
- package/dist/Services/BrowserApi.js +111 -0
- package/dist/Services/ServerApi.d.ts +49 -0
- package/dist/Services/ServerApi.js +75 -0
- package/dist/Services/ThemeService.d.ts +17 -0
- package/dist/Services/ThemeService.js +83 -0
- package/dist/Shared.Index.d.ts +43 -0
- package/dist/Shared.Index.js +47 -0
- package/package.json +82 -33
- package/src/Styles/Nexus.Base.css +70 -0
- package/src/Styles/Nexus.Button.css +151 -0
- package/src/Styles/Nexus.Calendar.css +275 -0
- package/src/Styles/Nexus.Choice.css +345 -0
- package/src/Styles/Nexus.Crud.css +84 -0
- package/src/Styles/Nexus.DateTime.css +81 -0
- package/src/Styles/Nexus.Dropdown.css +774 -0
- package/src/Styles/Nexus.Editor.css +297 -0
- package/src/Styles/Nexus.Form.css +298 -0
- package/src/Styles/Nexus.Index.css +34 -0
- package/src/Styles/Nexus.Input.css +637 -0
- package/src/Styles/Nexus.Markdown.css +265 -0
- package/src/Styles/Nexus.Menu.css +249 -0
- package/src/Styles/Nexus.Popup.css +731 -0
- package/src/Styles/Nexus.RichText.css +463 -0
- package/src/Styles/Nexus.Rows.css +566 -0
- package/src/Styles/Nexus.Slider.css +278 -0
- package/src/Styles/Nexus.Tab.Buttons.css +364 -0
- package/src/Styles/Nexus.Table.css +1014 -0
- package/src/Styles/Nexus.Theme.Picker.css +159 -0
- package/src/Styles/Nexus.Themes.css +194 -0
- package/src/Styles/Nexus.Time.css +147 -0
- package/src/Styles/Nexus.Toast.css +265 -0
- package/src/Styles/Nexus.Tokens.css +72 -0
- package/src/Styles/Nexus.Tree.css +435 -0
- package/src/api-services/authentication-service.tsx +0 -23
- package/src/api-services/preference-service.tsx +0 -5
- package/src/api-services/system-service.tsx +0 -34
- package/src/client.ts +0 -31
- package/src/components/documents/button.tsx +0 -142
- package/src/components/documents/icon-box.tsx +0 -93
- package/src/components/documents/page-title.tsx +0 -7
- package/src/components/documents/tab-button.tsx +0 -172
- package/src/components/documents/tag.tsx +0 -30
- package/src/components/index.js +0 -0
- package/src/components/inputs/checkbox-input.tsx +0 -66
- package/src/components/inputs/input-box.tsx +0 -48
- package/src/components/inputs/input-element.tsx +0 -65
- package/src/components/inputs/input-form.tsx +0 -164
- package/src/components/inputs/input.tsx +0 -181
- package/src/components/inputs/number-input.tsx +0 -108
- package/src/components/inputs/radiobox-input.tsx +0 -53
- package/src/components/inputs/textarea-input.tsx +0 -47
- package/src/components/inputs/textbox-input.tsx +0 -45
- package/src/components/layouts/global-dialogbox.tsx +0 -431
- package/src/components/layouts/global-layout.tsx +0 -59
- package/src/components/layouts/layout-helpers.tsx +0 -20
- package/src/components/layouts/panels/user-panel.tsx +0 -112
- package/src/components/layouts/utility-menu.tsx +0 -49
- package/src/components/panels/theme-panel.tsx +0 -46
- package/src/helpers/bitwise-helpers.tsx +0 -11
- package/src/helpers/browser-helpers.tsx +0 -156
- package/src/helpers/datasource-helpers.tsx +0 -99
- package/src/helpers/element-helpers.tsx +0 -57
- package/src/helpers/input-helpers.tsx +0 -74
- package/src/helpers/string-helpers.tsx +0 -28
- package/src/helpers/utility-helpers.tsx +0 -45
- package/src/helpers/validation-helpers.tsx +0 -302
- package/src/index.ts +0 -26
- package/src/interface.ts +0 -19
- package/src/interfaces/auth-token-interfaces.tsx +0 -6
- package/src/interfaces/browser-interfaces.tsx +0 -36
- package/src/interfaces/button-interfaces.tsx +0 -63
- package/src/interfaces/datasource-interfaces.tsx +0 -22
- package/src/interfaces/datatable-interfaces.tsx +0 -25
- package/src/interfaces/dialogbox-interfaces.tsx +0 -5
- package/src/interfaces/exception-interfaces.tsx +0 -99
- package/src/interfaces/http-interfaces.tsx +0 -129
- package/src/interfaces/icon-interfaces.tsx +0 -129
- package/src/interfaces/input-interfaces.tsx +0 -410
- package/src/interfaces/layout-interfaces.tsx +0 -191
- package/src/interfaces/menu-interfaces.tsx +0 -49
- package/src/interfaces/message-interfaces.tsx +0 -32
- package/src/interfaces/permission-interfaces.tsx +0 -9
- package/src/interfaces/storage-interfaces.tsx +0 -5
- package/src/interfaces/system-interfaces.tsx +0 -22
- package/src/interfaces/theme-interfaces.tsx +0 -123
- package/src/interfaces/type-interfaces.tsx +0 -28
- package/src/interfaces/user-interfaces.tsx +0 -47
- package/src/nexus-client.tsx +0 -21
- package/src/nexus.environments.tsx +0 -66
- package/src/proxy-api/proxy-backend.tsx +0 -60
- package/src/proxy-api/proxy-constants.tsx +0 -28
- package/src/proxy-api/proxy-helpers.tsx +0 -91
- package/src/proxy-api-client.tsx +0 -1
- package/src/proxy-api-server.tsx +0 -2
- package/src/services/http-client-services.tsx +0 -75
- package/src/services/http-services.tsx +0 -158
- package/src/services/loader-service.tsx +0 -185
- package/src/services/localstorage-service.tsx +0 -119
- package/src/services/message-services.tsx +0 -383
- package/src/services/theme-service.tsx +0 -161
- package/src/services/user-services.tsx +0 -10
- package/src/sso-config/auth-token-validation.ts +0 -16
- package/src/sso-config/callback-route.tsx +0 -35
- package/src/sso-config/cookie-encryption.ts +0 -51
- package/src/sso-config/cookie-helpers.tsx +0 -102
- package/src/sso-config/forgot-password-route.tsx +0 -36
- package/src/sso-config/oauth-callback-state.ts +0 -61
- package/src/sso-config/pkce-helpers.ts +0 -9
- package/src/sso-config/provider-complete-route.tsx +0 -18
- package/src/sso-config/redirect-context-actions.tsx +0 -45
- package/src/sso-config/redirect-context-helpers.tsx +0 -159
- package/src/sso-config/redirect-context-persist.tsx +0 -18
- package/src/sso-config/redirect-context-route.tsx +0 -45
- package/src/sso-config/refresh-route.tsx +0 -23
- package/src/sso-config/sign-in-route.tsx +0 -74
- package/src/sso-config/sign-out-route.tsx +0 -57
- package/src/sso-config/sign-up-route.tsx +0 -57
- package/src/sso-config/sso-backend-flow.ts +0 -38
- package/src/sso-config/sso-complete-route.tsx +0 -50
- package/src/sso-config/sso-config.ts +0 -59
- package/src/sso-config/sso-interfaces.tsx +0 -99
- package/src/sso-config/sso-response-helpers.tsx +0 -20
- package/src/sso-server.tsx +0 -21
- package/src/styles/nexus.animation.css +0 -269
- package/src/styles/nexus.core.css +0 -119
- package/src/styles/nexus.dialog.css +0 -144
- package/src/styles/nexus.icon.css +0 -51
- package/src/styles/nexus.input.css +0 -207
- package/src/styles/nexus.loader.css +0 -11
- package/src/styles/nexus.logic.css +0 -47
- package/src/styles/nexus.utility.css +0 -347
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { InputParams, InputValidationContext, RowsInputProps, RowValue } from "../Interfaces/FormInterfaces.ts";
|
|
2
|
+
export type RowsStoreOptions<TRow extends RowValue = RowValue> = Pick<RowsInputProps<TRow>, "inputs" | "required" | "min" | "max" | "unique" | "validate" | "itemLabel" | "itemLabelPlural" | "rowKey" | "newRow" | "onRowChange"> & {
|
|
3
|
+
/** The row's name when there is no `itemLabel`: "Row" in a table, "Item" in sections. */
|
|
4
|
+
fallbackItem?: string;
|
|
5
|
+
/** The user's date settings, so messages write dates the way the fields show them. */
|
|
6
|
+
context?: InputValidationContext;
|
|
7
|
+
};
|
|
8
|
+
/** What a rows input renders from, replaced whenever it changes. */
|
|
9
|
+
export interface RowsSnapshot {
|
|
10
|
+
/** The rows' keys, in order. */
|
|
11
|
+
keys: readonly string[];
|
|
12
|
+
/** Grows when every row is loaded again (`replace`, `reset`): rows render anew with their loaded values. */
|
|
13
|
+
generation: number;
|
|
14
|
+
/** The rows' own message, once it shows: after a check, or once a row was added, removed, or moved. */
|
|
15
|
+
message: string | null;
|
|
16
|
+
/** Every message shows, after `validateAll` (a submit). */
|
|
17
|
+
showAll: boolean;
|
|
18
|
+
/** Rows with a value that fails, once messages show. */
|
|
19
|
+
invalidRows: number;
|
|
20
|
+
/** The row `undoRemove` can put back: its position, from 0. */
|
|
21
|
+
removed: {
|
|
22
|
+
index: number;
|
|
23
|
+
} | null;
|
|
24
|
+
}
|
|
25
|
+
/** Where the first problem is: a value in a row, or the rows' own message. */
|
|
26
|
+
export type RowsProblemPlace = {
|
|
27
|
+
key: string;
|
|
28
|
+
name: string;
|
|
29
|
+
} | {
|
|
30
|
+
key: null;
|
|
31
|
+
name: null;
|
|
32
|
+
};
|
|
33
|
+
export declare class RowsStore<TRow extends RowValue = RowValue> {
|
|
34
|
+
private options;
|
|
35
|
+
private inputByName;
|
|
36
|
+
private entries;
|
|
37
|
+
private positions;
|
|
38
|
+
private initial;
|
|
39
|
+
private seq;
|
|
40
|
+
private generation;
|
|
41
|
+
private ruleErrors;
|
|
42
|
+
private duplicateErrors;
|
|
43
|
+
private invalidByRow;
|
|
44
|
+
private invalidCells;
|
|
45
|
+
private message;
|
|
46
|
+
private messageShown;
|
|
47
|
+
private showAll;
|
|
48
|
+
private touched;
|
|
49
|
+
private removed;
|
|
50
|
+
private revisions;
|
|
51
|
+
private versions;
|
|
52
|
+
private rowListeners;
|
|
53
|
+
private listeners;
|
|
54
|
+
private valueListeners;
|
|
55
|
+
private snapshot;
|
|
56
|
+
private valueCache;
|
|
57
|
+
private keysCache;
|
|
58
|
+
private dirtyUnique;
|
|
59
|
+
/** The array last given to value listeners. A controlled parent that passes it back changes nothing. */
|
|
60
|
+
lastValue: readonly TRow[] | null;
|
|
61
|
+
constructor(options: RowsStoreOptions<TRow>, rows?: readonly TRow[]);
|
|
62
|
+
/** Every row as it is now. The same array until something changes; do not change it. */
|
|
63
|
+
getValue(): TRow[];
|
|
64
|
+
getSnapshot: () => RowsSnapshot;
|
|
65
|
+
get count(): number;
|
|
66
|
+
get inputs(): readonly InputParams[];
|
|
67
|
+
/** The item's names for titles and messages. */
|
|
68
|
+
get names(): {
|
|
69
|
+
title: string;
|
|
70
|
+
item: string;
|
|
71
|
+
items: string;
|
|
72
|
+
};
|
|
73
|
+
indexOf(key: string): number;
|
|
74
|
+
keyAt(index: number): string | null;
|
|
75
|
+
row(key: string): TRow | undefined;
|
|
76
|
+
get(key: string, name: string): unknown;
|
|
77
|
+
/** Grows when a value was set from code; an input renders again from the store with a new one. */
|
|
78
|
+
revision(key: string, name: string): number;
|
|
79
|
+
/** Grows whenever what a row shows changes: a message, or a value set from code. */
|
|
80
|
+
version(key: string): number;
|
|
81
|
+
/** The message a value shows now: every message after `validateAll`; before, a repeated value once its input was left. */
|
|
82
|
+
shownError(key: string, name: string): string | undefined;
|
|
83
|
+
/** How many values in a row fail. */
|
|
84
|
+
rowProblems(key: string): number;
|
|
85
|
+
/** Whether any value or the rows' own rules fail, shown or not. */
|
|
86
|
+
hasProblems(): boolean;
|
|
87
|
+
/** The first problem in row order, then the rows' own message; `null` when all is valid. */
|
|
88
|
+
firstProblem(): RowsProblemPlace | null;
|
|
89
|
+
/** The first problem's message, named with its row: "Address 2: City is required." */
|
|
90
|
+
firstMessage(): string | null;
|
|
91
|
+
/** Whether the rows differ from the ones loaded last (`replace`) or first. */
|
|
92
|
+
isChanged(): boolean;
|
|
93
|
+
/** Structure: the rows, their order, and the rows' own message. */
|
|
94
|
+
subscribe: (listener: () => void) => (() => void);
|
|
95
|
+
/** One row: its messages and the values set from code. */
|
|
96
|
+
subscribeRow(key: string, listener: () => void): () => void;
|
|
97
|
+
/** Every row, after each change of a value or of the rows. */
|
|
98
|
+
subscribeValue(listener: (rows: TRow[]) => void): () => void;
|
|
99
|
+
/**
|
|
100
|
+
* New rules or inputs. `recheck` checks every value again (after a change of inputs or rules); without it, only the
|
|
101
|
+
* callbacks (`validate`, `onRowChange`, `newRow`) are swapped, which a parent's render does every time.
|
|
102
|
+
*/
|
|
103
|
+
configure(options: RowsStoreOptions<TRow>, recheck?: boolean): void;
|
|
104
|
+
/** Sets a value in a row. `input` is a change the user made in the row's input: it runs `onRowChange`. */
|
|
105
|
+
set(key: string, name: string, value: unknown, source?: "input" | "code"): void;
|
|
106
|
+
/** Marks a value as left by the user: a repeated value shows its message from now on. */
|
|
107
|
+
touch(key: string, name: string): void;
|
|
108
|
+
/** Adds a row with the inputs' defaults, `newRow`, and `values`, at `index` or at the end. Returns its key. */
|
|
109
|
+
add(values?: Partial<TRow>, index?: number): string;
|
|
110
|
+
/** Adds a copy of a row after it, without its id and with its radios off. Returns the copy's key. */
|
|
111
|
+
duplicate(key: string): string | null;
|
|
112
|
+
/** Removes a row. A radio it had on moves to the first row left. `undoRemove` puts it back. */
|
|
113
|
+
remove(key: string): void;
|
|
114
|
+
/** Puts the last removed row back where it was. Returns its key, or `null` when there is nothing to undo. */
|
|
115
|
+
undoRemove(): string | null;
|
|
116
|
+
/** Moves a row to a new position. */
|
|
117
|
+
move(key: string, toIndex: number): void;
|
|
118
|
+
/**
|
|
119
|
+
* Loads new rows, e.g. fresh data from a server. With `asInitial` (default), they become the rows `reset` and
|
|
120
|
+
* `isChanged` compare with. `emit` tells value listeners, for a change the parent does not know of yet.
|
|
121
|
+
*/
|
|
122
|
+
replace(rows: readonly TRow[], { asInitial, emit }?: {
|
|
123
|
+
asInitial?: boolean;
|
|
124
|
+
emit?: boolean;
|
|
125
|
+
}): void;
|
|
126
|
+
/** Back to the rows loaded last, as a form reset does. */
|
|
127
|
+
reset(): void;
|
|
128
|
+
/** Shows every message, as a submit does. Returns the first problem, or `null` when all is valid. */
|
|
129
|
+
validateAll(): RowsProblemPlace | null;
|
|
130
|
+
private indexInputs;
|
|
131
|
+
private newKey;
|
|
132
|
+
/** Each input's value in the type the input reports, and the other fields of the row as they came. */
|
|
133
|
+
private normalizeRow;
|
|
134
|
+
private load;
|
|
135
|
+
private afterStructure;
|
|
136
|
+
/** Drops what the store knew about a removed row. */
|
|
137
|
+
private forget;
|
|
138
|
+
private write;
|
|
139
|
+
/** Turns a radio off in every row but this one. */
|
|
140
|
+
private radioOn;
|
|
141
|
+
/** Checks one value against its input's rules. */
|
|
142
|
+
private checkCell;
|
|
143
|
+
private setError;
|
|
144
|
+
private isInvalid;
|
|
145
|
+
private markUniqueDirty;
|
|
146
|
+
/**
|
|
147
|
+
* Finds repeated values in one `unique` input. Every row with the value gets a message, so the one just edited says
|
|
148
|
+
* so: the first row names the second, the others name the first.
|
|
149
|
+
*/
|
|
150
|
+
private checkUnique;
|
|
151
|
+
private checkEverything;
|
|
152
|
+
/** After a change: repeated values, the rows' own message, the rows to render again, and value listeners. */
|
|
153
|
+
private settle;
|
|
154
|
+
private bump;
|
|
155
|
+
private touchAllRows;
|
|
156
|
+
private emit;
|
|
157
|
+
private buildSnapshot;
|
|
158
|
+
/** Replaces the snapshot when what it holds changed, and tells structure listeners. */
|
|
159
|
+
private refresh;
|
|
160
|
+
}
|