@lls/store 24.1.56-bf6e400c
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 +8 -0
- package/lib/index.js +139 -0
- package/package.json +54 -0
package/README.md
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// src/selectors/school.ts
|
|
2
|
+
import {
|
|
3
|
+
createSearchSelector,
|
|
4
|
+
filterEntitiesSimpleFieldByValues,
|
|
5
|
+
makeGetAllEntities,
|
|
6
|
+
makeGetEntityById
|
|
7
|
+
} from "@lls/utils";
|
|
8
|
+
import _ from "lodash/fp.js";
|
|
9
|
+
var getSchools = makeGetAllEntities("schools");
|
|
10
|
+
var getSchool = makeGetEntityById("schools");
|
|
11
|
+
var searchSchools = createSearchSelector(
|
|
12
|
+
getSchools,
|
|
13
|
+
(_state, params) => params,
|
|
14
|
+
(schools, { ids }) => {
|
|
15
|
+
return _.flow(filterEntitiesSimpleFieldByValues("id", ids))(schools);
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
// src/reducers/entities.ts
|
|
20
|
+
import { makeReducer } from "@lls/utils";
|
|
21
|
+
import _2 from "lodash/fp.js";
|
|
22
|
+
|
|
23
|
+
// ../core/src/actions/index.ts
|
|
24
|
+
import { makeActionCreator } from "@lls/utils";
|
|
25
|
+
var actionTypes = {
|
|
26
|
+
DELETE_ENTITY: "DELETE_ENTITY",
|
|
27
|
+
UPDATE_ENTITY: "UPDATE_ENTITY",
|
|
28
|
+
SET_ENTITY: "SET_ENTITY",
|
|
29
|
+
SET_ENTITIES: "SET_ENTITIES",
|
|
30
|
+
RESET_AUTH: "RESET_AUTH",
|
|
31
|
+
SET_AUTH: "SET_AUTH",
|
|
32
|
+
SET_LOADING_SCREEN: "SET_LOADING_SCREEN",
|
|
33
|
+
SET_MODAL: "SET_MODAL",
|
|
34
|
+
ADD_NOTIFICATION: "ADD_NOTIFICATION",
|
|
35
|
+
REMOVE_NOTIFICATION: "REMOVE_NOTIFICATION",
|
|
36
|
+
SET_SHOWN_CONTEXTUAL_ACTIONS: "SET_SHOW_CONTEXTUAL_ACTIONS",
|
|
37
|
+
SET_IS_DRAWER_OPEN: "SET_IS_DRAWER_OPEN",
|
|
38
|
+
SET_DRAWER_EXPANDED_ID: "SET_DRAWER_EXPANDED_ID",
|
|
39
|
+
SET_IS_OPEN_SAVE_MODAL: "SET_IS_OPEN_SAVE_MODAL",
|
|
40
|
+
SET_IS_VIEWER_READY: "SET_IS_VIEWER_READY",
|
|
41
|
+
SET_CURRENT_TOUR_ID: "SET_CURRENT_TOUR_ID",
|
|
42
|
+
SET_CURRENT_TOUR_STEP: "SET_CURRENT_TOUR_STEP",
|
|
43
|
+
RESET_TOUR: "RESET_TOUR",
|
|
44
|
+
SET_IS_TOUR_PANEL_OPEN: "SET_IS_TOUR_PANEL_OPEN",
|
|
45
|
+
SET_TOUR_PANEL_MODE: "SET_TOUR_PANEL_MODE",
|
|
46
|
+
SET_IS_STUDENT_VIEW_ACTIVATED: "SET_IS_STUDENT_VIEW_ACTIVATED",
|
|
47
|
+
SET_SCENARIO_ID: "SET_SCENARIO_ID",
|
|
48
|
+
SET_SSR_FAKE_PAGE_ID: "SET_SSR_FAKE_PAGE_ID"
|
|
49
|
+
};
|
|
50
|
+
var deleteEntity = makeActionCreator(actionTypes.DELETE_ENTITY);
|
|
51
|
+
var updateEntity = makeActionCreator(actionTypes.UPDATE_ENTITY);
|
|
52
|
+
var setEntity = makeActionCreator(actionTypes.SET_ENTITY);
|
|
53
|
+
var setEntities = makeActionCreator(actionTypes.SET_ENTITIES);
|
|
54
|
+
var setAuth = makeActionCreator(actionTypes.SET_AUTH);
|
|
55
|
+
var resetAuth = makeActionCreator(actionTypes.RESET_AUTH);
|
|
56
|
+
var setLoadingScreen = makeActionCreator(actionTypes.SET_LOADING_SCREEN);
|
|
57
|
+
var setModal = makeActionCreator(actionTypes.SET_MODAL);
|
|
58
|
+
var addNotification = makeActionCreator(actionTypes.ADD_NOTIFICATION);
|
|
59
|
+
var removeNotification = makeActionCreator(actionTypes.REMOVE_NOTIFICATION);
|
|
60
|
+
var setShownContextualActions = makeActionCreator(actionTypes.SET_SHOWN_CONTEXTUAL_ACTIONS);
|
|
61
|
+
var setIsDrawerOpen = makeActionCreator(actionTypes.SET_IS_DRAWER_OPEN);
|
|
62
|
+
var setIsViewerReady = makeActionCreator(actionTypes.SET_IS_VIEWER_READY);
|
|
63
|
+
var setDrawerExpandedId = makeActionCreator(actionTypes.SET_DRAWER_EXPANDED_ID);
|
|
64
|
+
var setIsOpenSaveModal = makeActionCreator(actionTypes.SET_IS_OPEN_SAVE_MODAL);
|
|
65
|
+
var setCurrentTourId = makeActionCreator(actionTypes.SET_CURRENT_TOUR_ID);
|
|
66
|
+
var setCurrentTourStep = makeActionCreator(actionTypes.SET_CURRENT_TOUR_STEP);
|
|
67
|
+
var resetTour = makeActionCreator(actionTypes.RESET_TOUR);
|
|
68
|
+
var setIsTourPanelOpen = makeActionCreator(actionTypes.SET_IS_TOUR_PANEL_OPEN);
|
|
69
|
+
var setTourPanelMode = makeActionCreator(actionTypes.SET_TOUR_PANEL_MODE);
|
|
70
|
+
var setScenarioId = makeActionCreator(actionTypes.SET_SCENARIO_ID);
|
|
71
|
+
var setIsStudentViewActivated = makeActionCreator(actionTypes.SET_IS_STUDENT_VIEW_ACTIVATED);
|
|
72
|
+
var setSsrFakePageId = makeActionCreator(actionTypes.SET_SSR_FAKE_PAGE_ID);
|
|
73
|
+
|
|
74
|
+
// src/reducers/entities.ts
|
|
75
|
+
var deleteEntityReducer = (state, payload) => {
|
|
76
|
+
const { path } = payload;
|
|
77
|
+
return _2.omit(path, state);
|
|
78
|
+
};
|
|
79
|
+
var updateEntityReducer = (state, payload) => {
|
|
80
|
+
const { path, entity } = payload;
|
|
81
|
+
const currentEntity = _2.get(path, state);
|
|
82
|
+
return _2.set(path, _2.merge(currentEntity, entity), state);
|
|
83
|
+
};
|
|
84
|
+
var setEntityReducer = (state, payload) => {
|
|
85
|
+
const { path, entity } = payload;
|
|
86
|
+
return _2.set(path, entity, state);
|
|
87
|
+
};
|
|
88
|
+
var shallowAssign = (old, next, transform) => {
|
|
89
|
+
let updated = false;
|
|
90
|
+
const merged = _2.flow(
|
|
91
|
+
_2.toPairs,
|
|
92
|
+
_2.reduce((memo, [key, val]) => {
|
|
93
|
+
if (_2.isEmpty(val)) return memo;
|
|
94
|
+
if (!old[key]) {
|
|
95
|
+
updated = true;
|
|
96
|
+
memo[key] = val;
|
|
97
|
+
return memo;
|
|
98
|
+
}
|
|
99
|
+
const maybeEqual = transform(old[key], next[key]);
|
|
100
|
+
if (maybeEqual !== old[key]) {
|
|
101
|
+
updated = true;
|
|
102
|
+
memo[key] = maybeEqual;
|
|
103
|
+
return memo;
|
|
104
|
+
}
|
|
105
|
+
return memo;
|
|
106
|
+
}, _2.clone(old))
|
|
107
|
+
)(next);
|
|
108
|
+
return updated ? merged : old;
|
|
109
|
+
};
|
|
110
|
+
var setEntitiesReducer = (state, payload) => {
|
|
111
|
+
return shallowAssign(state, payload, (entityKind, nextEntityKind) => {
|
|
112
|
+
return shallowAssign(
|
|
113
|
+
entityKind,
|
|
114
|
+
nextEntityKind,
|
|
115
|
+
(oldEntity, nextEntity) => _2.isEqual(oldEntity, nextEntity) ? oldEntity : _2.assign(oldEntity, nextEntity)
|
|
116
|
+
);
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
var entities = makeReducer(
|
|
120
|
+
{},
|
|
121
|
+
{
|
|
122
|
+
[actionTypes.DELETE_ENTITY]: deleteEntityReducer,
|
|
123
|
+
[actionTypes.UPDATE_ENTITY]: updateEntityReducer,
|
|
124
|
+
[actionTypes.SET_ENTITY]: setEntityReducer,
|
|
125
|
+
[actionTypes.SET_ENTITIES]: setEntitiesReducer
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
var entities_default = entities;
|
|
129
|
+
|
|
130
|
+
// src/schema/index.ts
|
|
131
|
+
var schema = "TODO";
|
|
132
|
+
var schema_default = schema;
|
|
133
|
+
export {
|
|
134
|
+
entities_default as entitiesReducer,
|
|
135
|
+
getSchool,
|
|
136
|
+
getSchools,
|
|
137
|
+
schema_default as schema,
|
|
138
|
+
searchSchools
|
|
139
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lls/store",
|
|
3
|
+
"description": "model de donnée et selecteurs",
|
|
4
|
+
"homepage": "https://github.com/lelivrescolaire/monorepo/tree/dev/libs/store",
|
|
5
|
+
"version": "24.1.56-bf6e400c",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"types": "./lib/builttypes/store/src/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./lib/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"lib/",
|
|
13
|
+
"package.json",
|
|
14
|
+
"index.js"
|
|
15
|
+
],
|
|
16
|
+
"author": "",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/lelivrescolaire/monorepo.git"
|
|
20
|
+
},
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/lelivrescolaire/monorepo/issues"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [],
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"@lls/utils": "*",
|
|
27
|
+
"lodash": "*",
|
|
28
|
+
"react": "*"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@biomejs/biome": "1.8.4-nightly.a579bf7",
|
|
32
|
+
"@types/lodash": "4.17.6",
|
|
33
|
+
"@types/node": "20.14.10",
|
|
34
|
+
"@types/react": "18.3.3",
|
|
35
|
+
"@vitejs/plugin-react-swc": "3.7.0",
|
|
36
|
+
"esbuild": "0.23.0",
|
|
37
|
+
"lodash": "4.17.21",
|
|
38
|
+
"react": "18.3.1",
|
|
39
|
+
"reselect": "4.1.8",
|
|
40
|
+
"typescript": "5.5.3",
|
|
41
|
+
"vite": "5.3.3",
|
|
42
|
+
"vite-tsconfig-paths": "4.3.2",
|
|
43
|
+
"vitest": "2.0.0",
|
|
44
|
+
"@lls/utils": "24.1.56-bf6e400c",
|
|
45
|
+
"@lls/vitescripts": "24.1.56-bf6e400c"
|
|
46
|
+
},
|
|
47
|
+
"license": "ISC",
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "node build.mjs",
|
|
50
|
+
"lint": "pnpm biome check --apply src __tests__",
|
|
51
|
+
"dts": "pnpm tsc --project tsconfig.production.json",
|
|
52
|
+
"test": "pnpm vitest run"
|
|
53
|
+
}
|
|
54
|
+
}
|