@mgarlik/datastore 0.1.26 → 0.2.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/dist/index.d.cts CHANGED
@@ -2,6 +2,8 @@ import React$1, { ReactNode } from 'react';
2
2
  import { filterType } from '@mgarlik/json-filter';
3
3
  import { D as DataStoreStorage } from './storage-D_xv8gFb.cjs';
4
4
 
5
+ type DataStoreFilterType = filterType | Record<string, any>;
6
+
5
7
  type formTypes = "textInput" | "select" | "switch" | "dateTime" | "radio";
6
8
 
7
9
  type RemoteUpdateMode =
@@ -25,7 +27,7 @@ type textInputProps = {
25
27
  placeholder?: string;
26
28
  multiline?: boolean;
27
29
  numberOfLines?: number;
28
- secure: boolean;
30
+ secure?: boolean;
29
31
  };
30
32
 
31
33
  type switchProps = {
@@ -39,7 +41,7 @@ type dateTimeProps = {
39
41
 
40
42
  type DataSourceOptions = {
41
43
  dataProvider: string;
42
- filter?: filterType;
44
+ filter?: DataStoreFilterType;
43
45
  map: Record<string, string>;
44
46
  };
45
47
 
@@ -106,7 +108,7 @@ type ProviderDataSourceType = {
106
108
  * Nacist vsechny pole bez ohledu na schema
107
109
  */
108
110
  readAllFields?: boolean;
109
- filter?: filterType;
111
+ filter?: DataStoreFilterType;
110
112
  /**
111
113
  * Nazvy naslouchajicich socketu
112
114
  */
@@ -137,6 +139,17 @@ type ProviderLayoutType = {
137
139
  title?: string;
138
140
  variant?: "grouped" | "insetGrouped" | "plain";
139
141
  tooltip?: string | React.ReactNode;
142
+ /**
143
+ * Režim odesílání formuláře, který určuje, kdy se data odešlou. Může být nastaven na "submit" (výchozí), "onBlur", "onChange", "onValid" nebo na objekt s režimem "debounce" a volitelným zpožděním v milisekundách. Tento režim umožňuje přizpůsobit chování odesílání formuláře podle potřeb aplikace a uživatelských preferencí.
144
+ *
145
+ * @type "submit" | "onBlur" | "onChange" | "onValid" | { mode: "debounce"; delay?: number }
146
+ *
147
+ * - "submit": Odeslat pouze při stisknutí tlačítka submit. Toto je výchozí chování, které zajišťuje, že data se odešlou pouze tehdy, když uživatel explicitně dokončí úpravy a potvrdí je. Tlacitko submit může být povoleno pouze v případě, že formulář je validní a obsahuje změny (dirty). Toto nastavení minimalizuje riziko nechtěného odeslání dat a poskytuje uživateli jasnou kontrolu nad tím, kdy se data odešlou.
148
+ * - "onBlur": Odeslat po opuštění pole (onBlur). Data se odešlou, když uživatel opustí pole, což může být užitečné pro rychlé ukládání změn bez nutnosti explicitního potvrzení. Toto nastavení umožňuje průběžné ukládání dat, ale může vést k častějším odesláním, zejména pokud uživatel často přepíná mezi poli.
149
+ * - "onChange": Odeslat při jakékoliv změně (onChange). Data se odešlou okamžitě po každé změně hodnoty v poli. Toto nastavení poskytuje nejrychlejší zpětnou vazbu a zajišťuje, že data jsou vždy aktuální, ale může způsobit nadměrné odesílání dat, zejména u polí s častými změnami (např. textová pole).
150
+ * - "onValid": Odeslat jakmile je formulář validní (bez ohledu na blur/change). Data se odešlou, jakmile celý formulář splní validační pravidla, bez ohledu na to, zda uživatel opustil pole nebo provedl změnu. Toto nastavení zajišťuje, že data se odešlou pouze tehdy, když jsou platná, ale může být méně předvídatelné pro uživatele, protože odesílání není vázáno na konkrétní akci.
151
+ * - { mode: "debounce"; delay?: number }: Odeslat při změně s zpožděním (debounce). Data se odešlou po určitém zpoždění od poslední změny, což pomáhá snížit počet odesílání u polí s častými změnami. Toto nastavení je užitečné pro optimalizaci výkonu a minimalizaci zbytečných odesílání, zejména u textových polí, kde uživatel může rychle zadávat data.
152
+ */
140
153
  submitMode?: SubmitMode;
141
154
  remoteUpdateMode?: RemoteUpdateMode;
142
155
  sections?: {
@@ -145,13 +158,13 @@ type ProviderLayoutType = {
145
158
  description?: string;
146
159
  footer?: string;
147
160
  tooltip?: string | React.ReactNode;
148
- visible?: boolean | filterType;
161
+ visible?: boolean | DataStoreFilterType;
149
162
  items: Array<string | {
150
163
  field: string;
151
- form?: formType;
164
+ form?: formType | { type: FormTypes; props?: any };
152
165
  label?: string; // jen override
153
- visible?: boolean | filterType;
154
166
  editable?: boolean;
167
+ visible?: boolean | DataStoreFilterType;
155
168
  tooltip?: string | React.ReactNode;
156
169
  /**
157
170
  * Přepíše submitMode formuláře pro toto konkrétní pole.
@@ -162,7 +175,6 @@ type ProviderLayoutType = {
162
175
  }>;
163
176
  }[];
164
177
  };
165
- type ProviderLayoutsType = { [key: string]: ProviderLayoutType };
166
178
 
167
179
  type BasicProviderSchemaItemType = {
168
180
  /**
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ import React$1, { ReactNode } from 'react';
2
2
  import { filterType } from '@mgarlik/json-filter';
3
3
  import { D as DataStoreStorage } from './storage-D_xv8gFb.js';
4
4
 
5
+ type DataStoreFilterType = filterType | Record<string, any>;
6
+
5
7
  type formTypes = "textInput" | "select" | "switch" | "dateTime" | "radio";
6
8
 
7
9
  type RemoteUpdateMode =
@@ -25,7 +27,7 @@ type textInputProps = {
25
27
  placeholder?: string;
26
28
  multiline?: boolean;
27
29
  numberOfLines?: number;
28
- secure: boolean;
30
+ secure?: boolean;
29
31
  };
30
32
 
31
33
  type switchProps = {
@@ -39,7 +41,7 @@ type dateTimeProps = {
39
41
 
40
42
  type DataSourceOptions = {
41
43
  dataProvider: string;
42
- filter?: filterType;
44
+ filter?: DataStoreFilterType;
43
45
  map: Record<string, string>;
44
46
  };
45
47
 
@@ -106,7 +108,7 @@ type ProviderDataSourceType = {
106
108
  * Nacist vsechny pole bez ohledu na schema
107
109
  */
108
110
  readAllFields?: boolean;
109
- filter?: filterType;
111
+ filter?: DataStoreFilterType;
110
112
  /**
111
113
  * Nazvy naslouchajicich socketu
112
114
  */
@@ -137,6 +139,17 @@ type ProviderLayoutType = {
137
139
  title?: string;
138
140
  variant?: "grouped" | "insetGrouped" | "plain";
139
141
  tooltip?: string | React.ReactNode;
142
+ /**
143
+ * Režim odesílání formuláře, který určuje, kdy se data odešlou. Může být nastaven na "submit" (výchozí), "onBlur", "onChange", "onValid" nebo na objekt s režimem "debounce" a volitelným zpožděním v milisekundách. Tento režim umožňuje přizpůsobit chování odesílání formuláře podle potřeb aplikace a uživatelských preferencí.
144
+ *
145
+ * @type "submit" | "onBlur" | "onChange" | "onValid" | { mode: "debounce"; delay?: number }
146
+ *
147
+ * - "submit": Odeslat pouze při stisknutí tlačítka submit. Toto je výchozí chování, které zajišťuje, že data se odešlou pouze tehdy, když uživatel explicitně dokončí úpravy a potvrdí je. Tlacitko submit může být povoleno pouze v případě, že formulář je validní a obsahuje změny (dirty). Toto nastavení minimalizuje riziko nechtěného odeslání dat a poskytuje uživateli jasnou kontrolu nad tím, kdy se data odešlou.
148
+ * - "onBlur": Odeslat po opuštění pole (onBlur). Data se odešlou, když uživatel opustí pole, což může být užitečné pro rychlé ukládání změn bez nutnosti explicitního potvrzení. Toto nastavení umožňuje průběžné ukládání dat, ale může vést k častějším odesláním, zejména pokud uživatel často přepíná mezi poli.
149
+ * - "onChange": Odeslat při jakékoliv změně (onChange). Data se odešlou okamžitě po každé změně hodnoty v poli. Toto nastavení poskytuje nejrychlejší zpětnou vazbu a zajišťuje, že data jsou vždy aktuální, ale může způsobit nadměrné odesílání dat, zejména u polí s častými změnami (např. textová pole).
150
+ * - "onValid": Odeslat jakmile je formulář validní (bez ohledu na blur/change). Data se odešlou, jakmile celý formulář splní validační pravidla, bez ohledu na to, zda uživatel opustil pole nebo provedl změnu. Toto nastavení zajišťuje, že data se odešlou pouze tehdy, když jsou platná, ale může být méně předvídatelné pro uživatele, protože odesílání není vázáno na konkrétní akci.
151
+ * - { mode: "debounce"; delay?: number }: Odeslat při změně s zpožděním (debounce). Data se odešlou po určitém zpoždění od poslední změny, což pomáhá snížit počet odesílání u polí s častými změnami. Toto nastavení je užitečné pro optimalizaci výkonu a minimalizaci zbytečných odesílání, zejména u textových polí, kde uživatel může rychle zadávat data.
152
+ */
140
153
  submitMode?: SubmitMode;
141
154
  remoteUpdateMode?: RemoteUpdateMode;
142
155
  sections?: {
@@ -145,13 +158,13 @@ type ProviderLayoutType = {
145
158
  description?: string;
146
159
  footer?: string;
147
160
  tooltip?: string | React.ReactNode;
148
- visible?: boolean | filterType;
161
+ visible?: boolean | DataStoreFilterType;
149
162
  items: Array<string | {
150
163
  field: string;
151
- form?: formType;
164
+ form?: formType | { type: FormTypes; props?: any };
152
165
  label?: string; // jen override
153
- visible?: boolean | filterType;
154
166
  editable?: boolean;
167
+ visible?: boolean | DataStoreFilterType;
155
168
  tooltip?: string | React.ReactNode;
156
169
  /**
157
170
  * Přepíše submitMode formuláře pro toto konkrétní pole.
@@ -162,7 +175,6 @@ type ProviderLayoutType = {
162
175
  }>;
163
176
  }[];
164
177
  };
165
- type ProviderLayoutsType = { [key: string]: ProviderLayoutType };
166
178
 
167
179
  type BasicProviderSchemaItemType = {
168
180
  /**