@gisce/react-ooui 2.121.0 → 2.122.0-alpha.2

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.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/dist/TabContent-476e3ced.mjs +25230 -0
  3. package/dist/TabContent-476e3ced.mjs.map +1 -0
  4. package/dist/docs/BaseMockConnectionProvider.d.ts +118 -0
  5. package/dist/docs/BaseMockConnectionProvider.d.ts.map +1 -0
  6. package/dist/docs/FormPreview.d.ts +11 -0
  7. package/dist/docs/FormPreview.d.ts.map +1 -0
  8. package/dist/docs/createDocsMockProvider.d.ts +4 -0
  9. package/dist/docs/createDocsMockProvider.d.ts.map +1 -0
  10. package/dist/docs/index.d.ts +3 -0
  11. package/dist/docs/index.d.ts.map +1 -0
  12. package/dist/docs/types.d.ts +46 -0
  13. package/dist/docs/types.d.ts.map +1 -0
  14. package/dist/docs.d.ts +1 -0
  15. package/dist/docs.es.js +457 -0
  16. package/dist/docs.es.js.map +1 -0
  17. package/dist/hooks/useLocalizedInput.d.ts +12 -0
  18. package/dist/hooks/useLocalizedInput.d.ts.map +1 -0
  19. package/dist/hooks/useNumberFormatter.d.ts +9 -0
  20. package/dist/hooks/useNumberFormatter.d.ts.map +1 -0
  21. package/dist/index.d.ts +5 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/locales/ca_ES.d.ts +1 -1
  24. package/dist/react-ooui.d.ts +1 -0
  25. package/dist/react-ooui.es.js +418 -25329
  26. package/dist/react-ooui.es.js.map +1 -1
  27. package/dist/types/index.d.ts +1 -1
  28. package/dist/types/index.d.ts.map +1 -1
  29. package/dist/views/actionViews/TreeActionView.d.ts.map +1 -1
  30. package/dist/widgets/base/Float.d.ts.map +1 -1
  31. package/dist/widgets/base/Integer.d.ts.map +1 -1
  32. package/dist/widgets/base/one2many/AggregatesFooter.d.ts +3 -2
  33. package/dist/widgets/base/one2many/AggregatesFooter.d.ts.map +1 -1
  34. package/dist/widgets/views/Kanban/kanbanComponents.d.ts +10 -3
  35. package/dist/widgets/views/Kanban/kanbanComponents.d.ts.map +1 -1
  36. package/dist/widgets/views/Tree/Tree.d.ts.map +1 -1
  37. package/dist/widgets/views/Tree/TreeSummary.d.ts +17 -0
  38. package/dist/widgets/views/Tree/TreeSummary.d.ts.map +1 -0
  39. package/dist/widgets/views/Tree/treeComponents.d.ts +10 -3
  40. package/dist/widgets/views/Tree/treeComponents.d.ts.map +1 -1
  41. package/package.json +8 -7
@@ -0,0 +1,118 @@
1
+ import type { MockViewDefinition, MockRecord, MockRelatedModel } from "./types";
2
+ export interface BaseMockConfig {
3
+ model: string;
4
+ view: MockViewDefinition;
5
+ records: MockRecord[];
6
+ relatedModels?: Record<string, MockRelatedModel>;
7
+ }
8
+ export declare class BaseMockConnectionProvider {
9
+ protected config: BaseMockConfig;
10
+ protected data: MockRecord[];
11
+ constructor(config: BaseMockConfig);
12
+ fieldsViewGet({ model, viewType }: any): Promise<MockViewDefinition | undefined>;
13
+ getView({ model, type }: any): Promise<MockViewDefinition | undefined>;
14
+ readObjects(params: {
15
+ model: string;
16
+ ids: number[];
17
+ fieldsToRetrieve?: string[];
18
+ }): Promise<MockRecord[]>;
19
+ read({ model, ids }: any): Promise<MockRecord[]>;
20
+ search({ model }: any): Promise<number[]>;
21
+ searchForTree({ model }: any): Promise<{
22
+ results: MockRecord[];
23
+ totalItems: () => Promise<number>;
24
+ attrsEvaluated: never[];
25
+ items: MockRecord[];
26
+ }>;
27
+ nameGet({ model, ids }: any): Promise<any[][]>;
28
+ nameSearch({ model, name, payload, limit }: any): Promise<any[][]>;
29
+ create({ model, values }: any): Promise<number | null>;
30
+ write({ model, ids, values }: any): Promise<boolean>;
31
+ unlink({ model, ids }: any): Promise<boolean>;
32
+ defaultGet({ model, extraValues }: any): Promise<any>;
33
+ executeOnChange(): Promise<{
34
+ value: {};
35
+ warning: null;
36
+ domain: {};
37
+ }>;
38
+ getPermissions(): {
39
+ read: boolean;
40
+ write: boolean;
41
+ create: boolean;
42
+ unlink: boolean;
43
+ };
44
+ checkPermission: () => {
45
+ read: boolean;
46
+ write: boolean;
47
+ create: boolean;
48
+ unlink: boolean;
49
+ };
50
+ checkPermissions: () => {
51
+ read: boolean;
52
+ write: boolean;
53
+ create: boolean;
54
+ unlink: boolean;
55
+ };
56
+ permissions: () => {
57
+ read: boolean;
58
+ write: boolean;
59
+ create: boolean;
60
+ unlink: boolean;
61
+ };
62
+ fieldsGet(): Promise<{}>;
63
+ getDefaults(): Promise<{}>;
64
+ getToolbar(): Promise<{
65
+ action: {};
66
+ relate: never[];
67
+ print: never[];
68
+ other: never[];
69
+ }>;
70
+ execute(): Promise<null>;
71
+ executeButton(): Promise<null>;
72
+ executeWorkflow(): Promise<null>;
73
+ searchCount({ model }: any): Promise<number>;
74
+ readGroup(): Promise<never[]>;
75
+ export(): Promise<string>;
76
+ getTree(): Promise<{
77
+ field_parent: string;
78
+ name: string;
79
+ }>;
80
+ getXMLViewContent(): Promise<string>;
81
+ getActionData(): Promise<{}>;
82
+ getActionDomain(): Promise<never[]>;
83
+ getDashboardActionData(): Promise<{}>;
84
+ evalDomain(): Promise<never[]>;
85
+ evalContext(): Promise<{}>;
86
+ getSessionInfo(): Promise<{
87
+ session_id: string;
88
+ }>;
89
+ isConnectionOnline(): Promise<boolean>;
90
+ canCreateNewDatabase(): Promise<boolean>;
91
+ createNewDatabase(): Promise<boolean>;
92
+ getDatabaseList(): Promise<never[]>;
93
+ getDistinctValues(): Promise<never[]>;
94
+ copy(): Promise<null>;
95
+ getReportData(): Promise<null>;
96
+ printReport(): Promise<null>;
97
+ call(): Promise<null>;
98
+ callWithContext(): Promise<null>;
99
+ getSomeCounters(): Promise<{}>;
100
+ callWizard(): Promise<null>;
101
+ callDefaultGetFunction(): Promise<{}>;
102
+ getRelatedFieldData(): Promise<null>;
103
+ getReferencedModels(): Promise<never[]>;
104
+ getTitleFromId(): Promise<string>;
105
+ treeButOpen(): Promise<({} | null)[][]>;
106
+ readAggregates(): Promise<{}>;
107
+ writeConcurrencyField(): Promise<boolean>;
108
+ parseConditions(): Promise<never[]>;
109
+ parseCondition(): Promise<{}>;
110
+ processSearchResults(): Promise<{
111
+ results: never[];
112
+ attrsEvaluated: never[];
113
+ }>;
114
+ update({ model, id, values }: any): Promise<boolean>;
115
+ readUserViewPrefs(): Promise<boolean>;
116
+ saveUserViewPrefs(): Promise<boolean>;
117
+ }
118
+ //# sourceMappingURL=BaseMockConnectionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseMockConnectionProvider.d.ts","sourceRoot":"","sources":["../../src/docs/BaseMockConnectionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAClD;AAED,qBAAa,0BAA0B;IACrC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;gBAEjB,MAAM,EAAE,cAAc;IAK5B,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG;IAUtC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG;IAU5B,WAAW,CAAC,MAAM,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC7B;IAaK,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG;IAIxB,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG;IAOrB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG;;;;;;IAiB5B,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG;IAc3B,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG;IAsB/C,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG;IAS7B,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG;IAUjC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG;IAQ1B,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG;IAItC,eAAe;;;;;IAIrB,cAAc;;;;;;IAId,eAAe;;;;;MAKZ;IACH,gBAAgB;;;;;MAKb;IACH,WAAW;;;;;MAAmE;IAExE,SAAS;IAGT,WAAW;IAGX,UAAU;;;;;;IAGV,OAAO;IAGP,aAAa;IAGb,eAAe;IAGf,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG;IAG1B,SAAS;IAGT,MAAM;IAGN,OAAO;;;;IAGP,iBAAiB;IAGjB,aAAa;IAGb,eAAe;IAGf,sBAAsB;IAGtB,UAAU;IAGV,WAAW;IAGX,cAAc;;;IAGd,kBAAkB;IAGlB,oBAAoB;IAGpB,iBAAiB;IAGjB,eAAe;IAGf,iBAAiB;IAGjB,IAAI;IAGJ,aAAa;IAGb,WAAW;IAGX,IAAI;IAGJ,eAAe;IAGf,eAAe;IAGf,UAAU;IAGV,sBAAsB;IAGtB,mBAAmB;IAGnB,mBAAmB;IAGnB,cAAc;IAGd,WAAW;IAGX,cAAc;IAGd,qBAAqB;IAGrB,eAAe;IAGf,cAAc;IAGd,oBAAoB;;;;IAGpB,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG;IAGjC,iBAAiB;IAGjB,iBAAiB;CAGxB"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { type Locale } from "@gisce/react-formiga-components";
3
+ import type { FormPreviewConfig } from "./types";
4
+ interface FormPreviewProps extends FormPreviewConfig {
5
+ height?: number | string;
6
+ showFooter?: boolean;
7
+ locale?: Locale;
8
+ }
9
+ export declare const FormPreview: import("react").NamedExoticComponent<FormPreviewProps>;
10
+ export {};
11
+ //# sourceMappingURL=FormPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormPreview.d.ts","sourceRoot":"","sources":["../../src/docs/FormPreview.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,KAAK,MAAM,EACZ,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAErE,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkGD,eAAO,MAAM,WAAW,wDAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type BaseMockConfig } from "./BaseMockConnectionProvider";
2
+ import type { ConnectionProviderType } from "../types";
3
+ export declare function createDocsMockProvider(config: BaseMockConfig): ConnectionProviderType;
4
+ //# sourceMappingURL=createDocsMockProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDocsMockProvider.d.ts","sourceRoot":"","sources":["../../src/docs/createDocsMockProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAwIvD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,GACrB,sBAAsB,CAsBxB"}
@@ -0,0 +1,3 @@
1
+ export type { MockViewDefinition, MockFieldDefinition, MockRecord, MockRelatedModel, FormPreviewConfig, } from "./types";
2
+ export { FormPreview } from "./FormPreview";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docs/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,46 @@
1
+ export interface MockFieldDefinition {
2
+ type: "char" | "text" | "integer" | "float" | "boolean" | "date" | "datetime" | "time" | "selection" | "many2one" | "one2many" | "many2many" | "binary" | "html" | "reference";
3
+ string: string;
4
+ required?: boolean;
5
+ readonly?: boolean;
6
+ help?: string;
7
+ digits?: [number, number];
8
+ selection?: Array<[string | number, string]>;
9
+ relation?: string;
10
+ relation_field?: string;
11
+ domain?: any[];
12
+ context?: Record<string, any>;
13
+ is_function?: boolean;
14
+ }
15
+ export interface MockViewDefinition {
16
+ view_id?: number;
17
+ type: "form" | "tree" | "dashboard" | "graph" | "calendar" | "kanban";
18
+ arch: string;
19
+ fields: Record<string, MockFieldDefinition>;
20
+ toolbar?: {
21
+ action?: any[];
22
+ relate?: any[];
23
+ print?: any[];
24
+ };
25
+ }
26
+ export interface MockRecord {
27
+ id: number;
28
+ [key: string]: any;
29
+ }
30
+ export interface MockRelatedModel {
31
+ records: Array<{
32
+ id: number;
33
+ name: string;
34
+ [key: string]: any;
35
+ }>;
36
+ view?: MockViewDefinition;
37
+ }
38
+ export interface FormPreviewConfig {
39
+ arch: string;
40
+ fields: Record<string, MockFieldDefinition>;
41
+ values: Record<string, any>;
42
+ model?: string;
43
+ relatedModels?: Record<string, MockRelatedModel>;
44
+ readOnly?: boolean;
45
+ }
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docs/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EACA,MAAM,GACN,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,MAAM,GACN,WAAW,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
package/dist/docs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './docs/index'
@@ -0,0 +1,457 @@
1
+ var F = Object.defineProperty;
2
+ var x = (c, r, e) => r in c ? F(c, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[r] = e;
3
+ var d = (c, r, e) => (x(c, typeof r != "symbol" ? r + "" : r, e), e);
4
+ import { jsxs as P, jsx as f } from "react/jsx-runtime";
5
+ import { memo as D, useState as w, useMemo as k, useCallback as b, useEffect as E } from "react";
6
+ import V from "antd/es/alert/ErrorBoundary";
7
+ import { NotificationProvider as R } from "@gisce/react-formiga-components";
8
+ import { C as L, a7 as G, i as I } from "./TabContent-476e3ced.mjs";
9
+ import "antd";
10
+ import "@gisce/ooui";
11
+ import "@ant-design/icons";
12
+ import "interweave";
13
+ import "dayjs";
14
+ import "dayjs/plugin/advancedFormat";
15
+ import "dayjs/plugin/customParseFormat";
16
+ import "dayjs/plugin/isoWeek";
17
+ import "dayjs/plugin/timezone";
18
+ import "dayjs/plugin/duration";
19
+ import "dayjs/plugin/relativeTime";
20
+ import "dayjs/plugin/weekday";
21
+ import "dayjs/plugin/localeData";
22
+ import "antd/lib/input/TextArea";
23
+ import "styled-components";
24
+ import "react-measure";
25
+ import "lodash/debounce";
26
+ import "use-deep-compare";
27
+ import "nanoid";
28
+ import "@ant-design/colors";
29
+ import "antd/lib/typography/Title";
30
+ import "@ant-design/plots";
31
+ import "react-dom/client";
32
+ import "file-type-buffer-browser";
33
+ import "@gisce/react-formiga-table";
34
+ import "antd/es/typography/Link";
35
+ import "antd/lib/_util/colors";
36
+ import "validator";
37
+ import "@gisce/react-formiga-table/style.css";
38
+ import "@gisce/fiber-diagram";
39
+ import "tinycolor2";
40
+ import "react-hotkeys-hook";
41
+ import "validator/lib/isURL";
42
+ import "validator/lib/isEmail";
43
+ import "react-markdown";
44
+ import "remark-gfm";
45
+ import "@monaco-editor/react";
46
+ import "md5";
47
+ import "react-grid-layout";
48
+ import "react-grid-layout/css/styles.css";
49
+ import "@dnd-kit/core";
50
+ import "@dnd-kit/modifiers";
51
+ import "@dnd-kit/sortable";
52
+ import "framer-motion";
53
+ import "@tanstack/react-virtual";
54
+ import "focus-trap-react";
55
+ class _ {
56
+ constructor(r) {
57
+ d(this, "config");
58
+ d(this, "data");
59
+ d(this, "checkPermission", () => ({
60
+ read: !0,
61
+ write: !0,
62
+ create: !0,
63
+ unlink: !0
64
+ }));
65
+ d(this, "checkPermissions", () => ({
66
+ read: !0,
67
+ write: !0,
68
+ create: !0,
69
+ unlink: !0
70
+ }));
71
+ d(this, "permissions", () => ({ read: !0, write: !0, create: !0, unlink: !0 }));
72
+ this.config = r, this.data = [...r.records];
73
+ }
74
+ async fieldsViewGet({ model: r, viewType: e }) {
75
+ var t, n;
76
+ if (r === this.config.model)
77
+ return this.config.view;
78
+ if ((n = (t = this.config.relatedModels) == null ? void 0 : t[r]) != null && n.view)
79
+ return this.config.relatedModels[r].view;
80
+ throw new Error(`View not found for model: ${r}`);
81
+ }
82
+ async getView({ model: r, type: e }) {
83
+ var t, n;
84
+ if (r === this.config.model)
85
+ return this.config.view;
86
+ if ((n = (t = this.config.relatedModels) == null ? void 0 : t[r]) != null && n.view)
87
+ return this.config.relatedModels[r].view;
88
+ throw new Error(`View not found for model: ${r}`);
89
+ }
90
+ async readObjects(r) {
91
+ var n;
92
+ const { model: e, ids: t } = r;
93
+ return e === this.config.model ? this.data.filter((i) => t.includes(i.id)) : (n = this.config.relatedModels) != null && n[e] ? this.config.relatedModels[e].records.filter(
94
+ (i) => t.includes(i.id)
95
+ ) : [];
96
+ }
97
+ async read({ model: r, ids: e }) {
98
+ return this.readObjects({ model: r, ids: e });
99
+ }
100
+ async search({ model: r }) {
101
+ return r === this.config.model ? this.data.map((e) => e.id) : [];
102
+ }
103
+ async searchForTree({ model: r }) {
104
+ return r === this.config.model ? {
105
+ results: this.data,
106
+ totalItems: async () => this.data.length,
107
+ attrsEvaluated: [],
108
+ items: this.data
109
+ } : {
110
+ results: [],
111
+ totalItems: async () => 0,
112
+ attrsEvaluated: [],
113
+ items: []
114
+ };
115
+ }
116
+ async nameGet({ model: r, ids: e }) {
117
+ var t;
118
+ return r === this.config.model ? this.data.filter((n) => e.includes(n.id)).map((n) => [n.id, n.name || `Record ${n.id}`]) : (t = this.config.relatedModels) != null && t[r] ? this.config.relatedModels[r].records.filter((n) => e.includes(n.id)).map((n) => [n.id, n.name]) : [];
119
+ }
120
+ async nameSearch({ model: r, name: e, payload: t, limit: n }) {
121
+ var s;
122
+ const i = (t || e || "").toLowerCase();
123
+ return r === this.config.model ? this.data.filter(
124
+ (o) => (o.name || "").toLowerCase().includes(i)
125
+ ).slice(0, n || 7).map((o) => [o.id, o.name || `Record ${o.id}`]) : (s = this.config.relatedModels) != null && s[r] ? this.config.relatedModels[r].records.filter(
126
+ (o) => o.name.toLowerCase().includes(i)
127
+ ).slice(0, n || 7).map((o) => [o.id, o.name]) : [];
128
+ }
129
+ async create({ model: r, values: e }) {
130
+ if (r === this.config.model) {
131
+ const t = Math.max(0, ...this.data.map((n) => n.id)) + 1;
132
+ return this.data.push({ id: t, ...e }), t;
133
+ }
134
+ return null;
135
+ }
136
+ async write({ model: r, ids: e, values: t }) {
137
+ return r === this.config.model ? (this.data = this.data.map(
138
+ (n) => e.includes(n.id) ? { ...n, ...t } : n
139
+ ), !0) : !1;
140
+ }
141
+ async unlink({ model: r, ids: e }) {
142
+ return r === this.config.model ? (this.data = this.data.filter((t) => !e.includes(t.id)), !0) : !1;
143
+ }
144
+ async defaultGet({ model: r, extraValues: e }) {
145
+ return e || {};
146
+ }
147
+ async executeOnChange() {
148
+ return { value: {}, warning: null, domain: {} };
149
+ }
150
+ getPermissions() {
151
+ return { read: !0, write: !0, create: !0, unlink: !0 };
152
+ }
153
+ async fieldsGet() {
154
+ return {};
155
+ }
156
+ async getDefaults() {
157
+ return {};
158
+ }
159
+ async getToolbar() {
160
+ return { action: {}, relate: [], print: [], other: [] };
161
+ }
162
+ async execute() {
163
+ return null;
164
+ }
165
+ async executeButton() {
166
+ return null;
167
+ }
168
+ async executeWorkflow() {
169
+ return null;
170
+ }
171
+ async searchCount({ model: r }) {
172
+ return r === this.config.model ? this.data.length : 0;
173
+ }
174
+ async readGroup() {
175
+ return [];
176
+ }
177
+ async export() {
178
+ return "";
179
+ }
180
+ async getTree() {
181
+ return { field_parent: "", name: "" };
182
+ }
183
+ async getXMLViewContent() {
184
+ return "";
185
+ }
186
+ async getActionData() {
187
+ return {};
188
+ }
189
+ async getActionDomain() {
190
+ return [];
191
+ }
192
+ async getDashboardActionData() {
193
+ return {};
194
+ }
195
+ async evalDomain() {
196
+ return [];
197
+ }
198
+ async evalContext() {
199
+ return {};
200
+ }
201
+ async getSessionInfo() {
202
+ return { session_id: "docs-mock" };
203
+ }
204
+ async isConnectionOnline() {
205
+ return !0;
206
+ }
207
+ async canCreateNewDatabase() {
208
+ return !1;
209
+ }
210
+ async createNewDatabase() {
211
+ return !1;
212
+ }
213
+ async getDatabaseList() {
214
+ return [];
215
+ }
216
+ async getDistinctValues() {
217
+ return [];
218
+ }
219
+ async copy() {
220
+ return null;
221
+ }
222
+ async getReportData() {
223
+ return null;
224
+ }
225
+ async printReport() {
226
+ return null;
227
+ }
228
+ async call() {
229
+ return null;
230
+ }
231
+ async callWithContext() {
232
+ return null;
233
+ }
234
+ async getSomeCounters() {
235
+ return {};
236
+ }
237
+ async callWizard() {
238
+ return null;
239
+ }
240
+ async callDefaultGetFunction() {
241
+ return {};
242
+ }
243
+ async getRelatedFieldData() {
244
+ return null;
245
+ }
246
+ async getReferencedModels() {
247
+ return [];
248
+ }
249
+ async getTitleFromId() {
250
+ return "";
251
+ }
252
+ async treeButOpen() {
253
+ return [[null, null, {}]];
254
+ }
255
+ async readAggregates() {
256
+ return {};
257
+ }
258
+ async writeConcurrencyField() {
259
+ return !0;
260
+ }
261
+ async parseConditions() {
262
+ return [];
263
+ }
264
+ async parseCondition() {
265
+ return {};
266
+ }
267
+ async processSearchResults() {
268
+ return { results: [], attrsEvaluated: [] };
269
+ }
270
+ async update({ model: r, id: e, values: t }) {
271
+ return this.write({ model: r, ids: [e], values: t });
272
+ }
273
+ async readUserViewPrefs() {
274
+ return !1;
275
+ }
276
+ async saveUserViewPrefs() {
277
+ return !0;
278
+ }
279
+ }
280
+ const v = /* @__PURE__ */ new Map();
281
+ let M = null;
282
+ class T extends _ {
283
+ constructor(e) {
284
+ super({
285
+ model: "__multi__",
286
+ view: { view_id: 0, type: "form", arch: "", fields: {} },
287
+ records: []
288
+ });
289
+ d(this, "configs");
290
+ this.configs = e;
291
+ }
292
+ getConfigForModel(e) {
293
+ return this.configs.get(e);
294
+ }
295
+ async fieldsViewGet({ model: e }) {
296
+ var n, i;
297
+ const t = this.getConfigForModel(e);
298
+ if (t)
299
+ return t.view;
300
+ for (const s of this.configs.values())
301
+ if ((i = (n = s.relatedModels) == null ? void 0 : n[e]) != null && i.view)
302
+ return s.relatedModels[e].view;
303
+ throw new Error(`View not found for model: ${e}`);
304
+ }
305
+ async getView({ model: e }) {
306
+ return this.fieldsViewGet({ model: e });
307
+ }
308
+ async readObjects(e) {
309
+ var s;
310
+ const { model: t, ids: n } = e, i = this.getConfigForModel(t);
311
+ if (i)
312
+ return i.records.filter((a) => n.includes(a.id));
313
+ for (const a of this.configs.values())
314
+ if ((s = a.relatedModels) != null && s[t])
315
+ return a.relatedModels[t].records.filter(
316
+ (o) => n.includes(o.id)
317
+ );
318
+ return [];
319
+ }
320
+ async read({ model: e, ids: t }) {
321
+ return this.readObjects({ model: e, ids: t });
322
+ }
323
+ async search({ model: e }) {
324
+ const t = this.getConfigForModel(e);
325
+ return t ? t.records.map((n) => n.id) : [];
326
+ }
327
+ async searchForTree({ model: e }) {
328
+ const t = this.getConfigForModel(e);
329
+ return t ? {
330
+ results: t.records,
331
+ totalItems: async () => t.records.length,
332
+ attrsEvaluated: [],
333
+ items: t.records
334
+ } : {
335
+ results: [],
336
+ totalItems: async () => 0,
337
+ attrsEvaluated: [],
338
+ items: []
339
+ };
340
+ }
341
+ async nameGet({ model: e, ids: t }) {
342
+ var i;
343
+ const n = this.getConfigForModel(e);
344
+ if (n)
345
+ return n.records.filter((s) => t.includes(s.id)).map((s) => [s.id, s.name || `Record ${s.id}`]);
346
+ for (const s of this.configs.values())
347
+ if ((i = s.relatedModels) != null && i[e])
348
+ return s.relatedModels[e].records.filter((a) => t.includes(a.id)).map((a) => [a.id, a.name]);
349
+ return [];
350
+ }
351
+ async nameSearch({ model: e, name: t, payload: n, limit: i }) {
352
+ var o;
353
+ const s = (n || t || "").toLowerCase(), a = this.getConfigForModel(e);
354
+ if (a)
355
+ return a.records.filter(
356
+ (u) => (u.name || "").toLowerCase().includes(s)
357
+ ).slice(0, i || 7).map((u) => [u.id, u.name || `Record ${u.id}`]);
358
+ for (const m of this.configs.values())
359
+ if ((o = m.relatedModels) != null && o[e])
360
+ return m.relatedModels[e].records.filter(
361
+ (l) => l.name.toLowerCase().includes(s)
362
+ ).slice(0, i || 7).map((l) => [l.id, l.name]);
363
+ return [];
364
+ }
365
+ async searchCount({ model: e }) {
366
+ const t = this.getConfigForModel(e);
367
+ return t ? t.records.length : 0;
368
+ }
369
+ }
370
+ function $(c) {
371
+ v.set(c.model, c), M = new T(v);
372
+ const r = new Proxy(M, {
373
+ get(e, t, n) {
374
+ const i = Reflect.get(e, t, n);
375
+ return i !== void 0 ? i : typeof t == "string" && t !== "constructor" ? function() {
376
+ return { read: !0, write: !0, create: !0, unlink: !0 };
377
+ } : i;
378
+ }
379
+ });
380
+ return L.init(r), r;
381
+ }
382
+ const O = D(function({
383
+ arch: r,
384
+ fields: e,
385
+ values: t,
386
+ model: n = "docs.preview",
387
+ relatedModels: i = {},
388
+ readOnly: s = !0,
389
+ locale: a = "en_US",
390
+ height: o,
391
+ showFooter: m = !1
392
+ }) {
393
+ const [u, l] = w(!1), [h, C] = w(null), p = k(() => r.includes("<?xml") ? r : `<?xml version="1.0"?>
394
+ ${r}`, [r]), y = b(() => {
395
+ try {
396
+ $({
397
+ model: n,
398
+ view: {
399
+ view_id: 1,
400
+ type: "form",
401
+ arch: p,
402
+ fields: e
403
+ },
404
+ records: [{ id: 1, ...t }],
405
+ relatedModels: i
406
+ }), l(!0);
407
+ } catch (g) {
408
+ C(
409
+ g instanceof Error ? g.message : "Failed to initialize mock provider"
410
+ );
411
+ }
412
+ }, [p, e, t, n, i]);
413
+ return E(() => {
414
+ y();
415
+ }, [y]), h ? /* @__PURE__ */ P(
416
+ "div",
417
+ {
418
+ style: {
419
+ color: "red",
420
+ padding: 16,
421
+ border: "1px solid red",
422
+ borderRadius: 4
423
+ },
424
+ children: [
425
+ "Error: ",
426
+ h
427
+ ]
428
+ }
429
+ ) : u ? /* @__PURE__ */ f(V, { children: /* @__PURE__ */ f(R, { children: /* @__PURE__ */ f(
430
+ G,
431
+ {
432
+ locale: a,
433
+ erpFeatures: {},
434
+ userFeatures: { features: {}, canWriteFeatureFlags: !1 },
435
+ globalValues: {},
436
+ rootContext: {},
437
+ devMode: !1,
438
+ title: "Documentation Preview",
439
+ treeMaxLimit: 100,
440
+ children: /* @__PURE__ */ f("div", { style: { height: o || "auto" }, children: /* @__PURE__ */ f(
441
+ I,
442
+ {
443
+ model: n,
444
+ id: 1,
445
+ showFooter: m,
446
+ readOnly: s,
447
+ rootForm: !0,
448
+ parentContext: {}
449
+ }
450
+ ) })
451
+ }
452
+ ) }) }) : /* @__PURE__ */ f("div", { style: { padding: 16, color: "#666" }, children: "Loading preview..." });
453
+ }), $e = O;
454
+ export {
455
+ $e as FormPreview
456
+ };
457
+ //# sourceMappingURL=docs.es.js.map