data-primals-engine 1.4.2 → 1.5.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/README.md +878 -856
- package/client/package-lock.json +82 -0
- package/client/package.json +2 -0
- package/client/src/App.jsx +1 -1
- package/client/src/App.scss +25 -7
- package/client/src/AssistantChat.scss +3 -2
- package/client/src/ConditionBuilder.jsx +1 -1
- package/client/src/ConditionBuilder2.jsx +2 -1
- package/client/src/DashboardView.jsx +569 -569
- package/client/src/DataEditor.jsx +376 -368
- package/client/src/DataLayout.jsx +4 -10
- package/client/src/DataTable.jsx +858 -817
- package/client/src/Field.jsx +1825 -1784
- package/client/src/FlexDataRenderer.jsx +2 -0
- package/client/src/FlexTreeUtils.js +1 -1
- package/client/src/GeolocationField.jsx +94 -0
- package/client/src/KPIDialog.jsx +11 -1
- package/client/src/ModelCreator.jsx +1 -2
- package/client/src/ModelCreatorField.jsx +24 -27
- package/client/src/ModelList.jsx +1 -1
- package/client/src/RelationField.jsx +2 -2
- package/client/src/constants.js +3 -3
- package/client/src/filter.js +0 -155
- package/client/src/hooks/useTutorials.jsx +62 -65
- package/client/src/translations.js +14 -2
- package/package.json +2 -1
- package/perf/README.md +147 -0
- package/perf/artillery-hooks.js +37 -0
- package/perf/perf-shot-hardwork.yml +84 -0
- package/perf/perf-shot-search.yml +45 -0
- package/perf/setup.yml +26 -0
- package/server.js +1 -1
- package/src/constants.js +264 -31
- package/src/core.js +15 -1
- package/src/data.js +1 -1
- package/src/defaultModels.js +1544 -1540
- package/src/email.js +5 -2
- package/src/engine.js +10 -3
- package/src/filter.js +274 -260
- package/src/i18n.js +187 -177
- package/src/modules/assistant/assistant.js +3 -1
- package/src/modules/bucket.js +12 -15
- package/src/modules/data/data.backup.js +11 -8
- package/src/modules/data/data.core.js +2 -1
- package/src/modules/data/data.js +6 -3
- package/src/modules/data/data.operations.js +610 -168
- package/src/modules/data/data.routes.js +1821 -1785
- package/src/modules/data/data.scheduling.js +2 -1
- package/src/modules/data/data.validation.js +7 -1
- package/src/modules/file.js +4 -2
- package/src/modules/user.js +4 -1
- package/src/modules/workflow.js +9 -10
- package/src/openai.jobs.js +2 -0
- package/src/packs.js +22 -5
- package/src/providers.js +22 -7
- package/swagger-en.yml +133 -0
- package/test/data.integration.test.js +1060 -981
- package/test/import_export.integration.test.js +1 -1
- package/test/model.integration.test.js +377 -221
package/client/package-lock.json
CHANGED
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
"lowlight": "^3.3.0",
|
|
33
33
|
"react": "^18.3.1",
|
|
34
34
|
"react-big-calendar": "^1.15.0",
|
|
35
|
+
"react-color": "^2.19.3",
|
|
35
36
|
"react-dom": "^18.3.1",
|
|
37
|
+
"react-leaflet": "^4.2.1",
|
|
36
38
|
"react-router": "^7.8.1",
|
|
37
39
|
"react-switch": "^7.1.0",
|
|
38
40
|
"uniqid": "^5.4.0",
|
|
@@ -1276,6 +1278,15 @@
|
|
|
1276
1278
|
"url": "https://github.com/sponsors/nzakas"
|
|
1277
1279
|
}
|
|
1278
1280
|
},
|
|
1281
|
+
"node_modules/@icons/material": {
|
|
1282
|
+
"version": "0.2.4",
|
|
1283
|
+
"resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz",
|
|
1284
|
+
"integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==",
|
|
1285
|
+
"license": "MIT",
|
|
1286
|
+
"peerDependencies": {
|
|
1287
|
+
"react": "*"
|
|
1288
|
+
}
|
|
1289
|
+
},
|
|
1279
1290
|
"node_modules/@jridgewell/gen-mapping": {
|
|
1280
1291
|
"version": "0.3.12",
|
|
1281
1292
|
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
|
|
@@ -1692,6 +1703,17 @@
|
|
|
1692
1703
|
"url": "https://opencollective.com/popperjs"
|
|
1693
1704
|
}
|
|
1694
1705
|
},
|
|
1706
|
+
"node_modules/@react-leaflet/core": {
|
|
1707
|
+
"version": "2.1.0",
|
|
1708
|
+
"resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz",
|
|
1709
|
+
"integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==",
|
|
1710
|
+
"license": "Hippocratic-2.1",
|
|
1711
|
+
"peerDependencies": {
|
|
1712
|
+
"leaflet": "^1.9.0",
|
|
1713
|
+
"react": "^18.0.0",
|
|
1714
|
+
"react-dom": "^18.0.0"
|
|
1715
|
+
}
|
|
1716
|
+
},
|
|
1695
1717
|
"node_modules/@remirror/core-constants": {
|
|
1696
1718
|
"version": "3.0.0",
|
|
1697
1719
|
"resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz",
|
|
@@ -5157,6 +5179,13 @@
|
|
|
5157
5179
|
"json-buffer": "3.0.1"
|
|
5158
5180
|
}
|
|
5159
5181
|
},
|
|
5182
|
+
"node_modules/leaflet": {
|
|
5183
|
+
"version": "1.9.4",
|
|
5184
|
+
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
|
|
5185
|
+
"integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==",
|
|
5186
|
+
"license": "BSD-2-Clause",
|
|
5187
|
+
"peer": true
|
|
5188
|
+
},
|
|
5160
5189
|
"node_modules/levn": {
|
|
5161
5190
|
"version": "0.4.1",
|
|
5162
5191
|
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
|
|
@@ -5282,6 +5311,12 @@
|
|
|
5282
5311
|
"remove-accents": "0.5.0"
|
|
5283
5312
|
}
|
|
5284
5313
|
},
|
|
5314
|
+
"node_modules/material-colors": {
|
|
5315
|
+
"version": "1.2.6",
|
|
5316
|
+
"resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz",
|
|
5317
|
+
"integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==",
|
|
5318
|
+
"license": "ISC"
|
|
5319
|
+
},
|
|
5285
5320
|
"node_modules/math-intrinsics": {
|
|
5286
5321
|
"version": "1.1.0",
|
|
5287
5322
|
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
|
@@ -6194,6 +6229,24 @@
|
|
|
6194
6229
|
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
|
|
6195
6230
|
"peer": true
|
|
6196
6231
|
},
|
|
6232
|
+
"node_modules/react-color": {
|
|
6233
|
+
"version": "2.19.3",
|
|
6234
|
+
"resolved": "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz",
|
|
6235
|
+
"integrity": "sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==",
|
|
6236
|
+
"license": "MIT",
|
|
6237
|
+
"dependencies": {
|
|
6238
|
+
"@icons/material": "^0.2.4",
|
|
6239
|
+
"lodash": "^4.17.15",
|
|
6240
|
+
"lodash-es": "^4.17.15",
|
|
6241
|
+
"material-colors": "^1.2.1",
|
|
6242
|
+
"prop-types": "^15.5.10",
|
|
6243
|
+
"reactcss": "^1.2.0",
|
|
6244
|
+
"tinycolor2": "^1.4.1"
|
|
6245
|
+
},
|
|
6246
|
+
"peerDependencies": {
|
|
6247
|
+
"react": "*"
|
|
6248
|
+
}
|
|
6249
|
+
},
|
|
6197
6250
|
"node_modules/react-cookie": {
|
|
6198
6251
|
"version": "8.0.1",
|
|
6199
6252
|
"resolved": "https://registry.npmjs.org/react-cookie/-/react-cookie-8.0.1.tgz",
|
|
@@ -6274,6 +6327,20 @@
|
|
|
6274
6327
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
|
6275
6328
|
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
|
6276
6329
|
},
|
|
6330
|
+
"node_modules/react-leaflet": {
|
|
6331
|
+
"version": "4.2.1",
|
|
6332
|
+
"resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz",
|
|
6333
|
+
"integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==",
|
|
6334
|
+
"license": "Hippocratic-2.1",
|
|
6335
|
+
"dependencies": {
|
|
6336
|
+
"@react-leaflet/core": "^2.1.0"
|
|
6337
|
+
},
|
|
6338
|
+
"peerDependencies": {
|
|
6339
|
+
"leaflet": "^1.9.0",
|
|
6340
|
+
"react": "^18.0.0",
|
|
6341
|
+
"react-dom": "^18.0.0"
|
|
6342
|
+
}
|
|
6343
|
+
},
|
|
6277
6344
|
"node_modules/react-lifecycles-compat": {
|
|
6278
6345
|
"version": "3.0.4",
|
|
6279
6346
|
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
|
@@ -6456,6 +6523,15 @@
|
|
|
6456
6523
|
"react-dom": ">=16.14.0"
|
|
6457
6524
|
}
|
|
6458
6525
|
},
|
|
6526
|
+
"node_modules/reactcss": {
|
|
6527
|
+
"version": "1.2.3",
|
|
6528
|
+
"resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz",
|
|
6529
|
+
"integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==",
|
|
6530
|
+
"license": "MIT",
|
|
6531
|
+
"dependencies": {
|
|
6532
|
+
"lodash": "^4.0.1"
|
|
6533
|
+
}
|
|
6534
|
+
},
|
|
6459
6535
|
"node_modules/readdirp": {
|
|
6460
6536
|
"version": "4.1.2",
|
|
6461
6537
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
|
|
@@ -7639,6 +7715,12 @@
|
|
|
7639
7715
|
"node": ">=16.0.0"
|
|
7640
7716
|
}
|
|
7641
7717
|
},
|
|
7718
|
+
"node_modules/tinycolor2": {
|
|
7719
|
+
"version": "1.6.0",
|
|
7720
|
+
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
|
|
7721
|
+
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
|
|
7722
|
+
"license": "MIT"
|
|
7723
|
+
},
|
|
7642
7724
|
"node_modules/tinyglobby": {
|
|
7643
7725
|
"version": "0.2.14",
|
|
7644
7726
|
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
|
package/client/package.json
CHANGED
package/client/src/App.jsx
CHANGED
|
@@ -55,7 +55,7 @@ import { translations as allTranslations} from "../../src/i18n.js";
|
|
|
55
55
|
import {getBrowserRandom, getRandom} from "../../src/core.js";
|
|
56
56
|
import {getUserHash} from "../../src/data.js";
|
|
57
57
|
import {langs, seoTitle} from "./constants.js";
|
|
58
|
-
import {host
|
|
58
|
+
import {host} from "../../src/constants.js";
|
|
59
59
|
import i18next from "i18next";
|
|
60
60
|
import {websiteTranslations} from "./translations.js";
|
|
61
61
|
|
package/client/src/App.scss
CHANGED
|
@@ -45,6 +45,9 @@ header {
|
|
|
45
45
|
&.flex-start {
|
|
46
46
|
align-items: start;
|
|
47
47
|
}
|
|
48
|
+
&.flex-end {
|
|
49
|
+
justify-content: flex-end;
|
|
50
|
+
}
|
|
48
51
|
&.flex-self-end {
|
|
49
52
|
align-self: end;
|
|
50
53
|
}
|
|
@@ -80,10 +83,9 @@ header {
|
|
|
80
83
|
flex-direction: column;
|
|
81
84
|
}
|
|
82
85
|
gap: 4px;
|
|
83
|
-
@media only screen and (min-width:
|
|
86
|
+
@media only screen and (min-width: 720px){
|
|
84
87
|
gap: 12px;
|
|
85
88
|
}
|
|
86
|
-
|
|
87
89
|
}
|
|
88
90
|
.flex-1 {
|
|
89
91
|
flex: 1;
|
|
@@ -1039,10 +1041,18 @@ h2.shadow {
|
|
|
1039
1041
|
}
|
|
1040
1042
|
}
|
|
1041
1043
|
|
|
1042
|
-
.mini
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1044
|
+
.mini {
|
|
1045
|
+
.field-checkbox.field-bg {
|
|
1046
|
+
background: none;
|
|
1047
|
+
}
|
|
1048
|
+
input[type=checkbox] {
|
|
1049
|
+
cursor: pointer;
|
|
1050
|
+
margin: 0 auto;
|
|
1051
|
+
background: none;
|
|
1052
|
+
width: 16px;
|
|
1053
|
+
height: 16px;
|
|
1054
|
+
display: block;
|
|
1055
|
+
}
|
|
1046
1056
|
}
|
|
1047
1057
|
|
|
1048
1058
|
.pagination-wrapper {
|
|
@@ -1545,4 +1555,12 @@ select[multiple]{
|
|
|
1545
1555
|
}
|
|
1546
1556
|
}
|
|
1547
1557
|
|
|
1548
|
-
|
|
1558
|
+
.gap-2 {
|
|
1559
|
+
gap: 8px;
|
|
1560
|
+
}
|
|
1561
|
+
.gap-3 {
|
|
1562
|
+
gap: 16px;
|
|
1563
|
+
}
|
|
1564
|
+
.gap-4 {
|
|
1565
|
+
gap: 32px;
|
|
1566
|
+
}
|
|
@@ -35,10 +35,11 @@ $input-height: 50px;
|
|
|
35
35
|
|
|
36
36
|
// La fenêtre de chat (quand elle est ouverte)
|
|
37
37
|
.assistant-chat-window {
|
|
38
|
+
|
|
38
39
|
position: fixed;
|
|
39
40
|
bottom: 20px;
|
|
40
|
-
right:
|
|
41
|
-
width: 100
|
|
41
|
+
right: 5px;
|
|
42
|
+
width: calc(100% - 10px);
|
|
42
43
|
max-width: 720px;
|
|
43
44
|
min-height: 400px;
|
|
44
45
|
height: 60vh;
|
|
@@ -14,9 +14,9 @@ import './ConditionBuilder.scss';
|
|
|
14
14
|
import { useTranslation, Trans } from "react-i18next";
|
|
15
15
|
import { CodeField } from "./Field.jsx";
|
|
16
16
|
import { useAuthContext } from "./contexts/AuthContext.jsx";
|
|
17
|
-
import { MONGO_CALC_OPERATORS} from "./filter.js";
|
|
18
17
|
import {ConditionBuilder2} from "./ConditionBuilder2.jsx";
|
|
19
18
|
import {mongoOperators} from "./constants.js";
|
|
19
|
+
import {MONGO_CALC_OPERATORS} from "../../src/constants";
|
|
20
20
|
|
|
21
21
|
const getFieldDefinition = (fields, fieldName) => fields?.find(f => f.name === fieldName);
|
|
22
22
|
const getModelFields = (modelName, allModels, user) => {
|
|
@@ -2,10 +2,11 @@ import React, {useEffect, useState} from 'react';
|
|
|
2
2
|
import { Tooltip } from 'react-tooltip';
|
|
3
3
|
import {FaPlus, FaProjectDiagram, FaTrash, FaInfoCircle, FaEdit, FaTags, FaCalendarAlt} from 'react-icons/fa';
|
|
4
4
|
import { Trans } from 'react-i18next';
|
|
5
|
-
import {convertInputValue
|
|
5
|
+
import {convertInputValue} from "./filter.js";
|
|
6
6
|
import i18n from "i18next";
|
|
7
7
|
import {FaRepeat} from "react-icons/fa6";
|
|
8
8
|
import {useAuthContext} from "./contexts/AuthContext.jsx";
|
|
9
|
+
import {MONGO_CALC_OPERATORS} from "../../src/constants.js";
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
// Déterminer si le champ doit être une date
|