@lls/store 24.7.0 → 24.8.0-0530ef1e

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 (2) hide show
  1. package/lib/index.js +117 -60
  2. package/package.json +6 -8
package/lib/index.js CHANGED
@@ -750,12 +750,12 @@ init_define_import_meta();
750
750
  import { createSearchSelector, makeGetAllEntities, makeGetEntityById } from "@lls/utils";
751
751
  import { useMemo } from "react";
752
752
  import { useSelector } from "react-redux";
753
- var crud = (entityName, { search: search30 }) => {
753
+ var crud = (entityName, { search: search31 }) => {
754
754
  const getElements = makeGetAllEntities(entityName);
755
755
  const makeSearchElements = () => createSearchSelector(
756
756
  makeGetAllEntities(entityName),
757
757
  (_state, params) => params,
758
- (elements, params) => search30(params)(elements)
758
+ (elements, params) => search31(params)(elements)
759
759
  );
760
760
  const methodName = `${entityName.charAt(0).toUpperCase()}${entityName.slice(1)}`;
761
761
  const getElementById = makeGetEntityById(entityName);
@@ -765,7 +765,7 @@ var crud = (entityName, { search: search30 }) => {
765
765
  [`search${methodName}`]: makeSearchElements(),
766
766
  [`get${methodName.replace(/s$/, "")}`]: getElementById,
767
767
  [`makeSearch${methodName}`]: makeSearchElements,
768
- [`filter${methodName}`]: search30,
768
+ [`filter${methodName}`]: search31,
769
769
  [`useSearch${methodName}`]: useSearch
770
770
  };
771
771
  return back;
@@ -979,7 +979,7 @@ var search9 = ({ ids, read, pageIds }) => {
979
979
  return makeEntitiesFilter7({ read, id: ids, page: pageIds });
980
980
  };
981
981
  var makeSearchCopyNotifications = () => createSearchSelector3(
982
- [makeGetCurrentUser(), makeGetAllEntities2("copyNotifications"), (_19, params) => params],
982
+ [makeGetCurrentUser(), makeGetAllEntities2("copyNotifications"), (_20, params) => params],
983
983
  (currentUser, copyNotifications, { pageIds, read }) => {
984
984
  const ids = currentUser?.copyNotifications;
985
985
  return search9({ ids, read, pageIds })(copyNotifications);
@@ -990,10 +990,21 @@ var useSearchCopyNotifications = makeUseSearch(makeSearchCopyNotifications);
990
990
  // src/selectors/document.ts
991
991
  init_define_import_meta();
992
992
  import { makeEntitiesFilter as makeEntitiesFilter8 } from "@lls/utils";
993
- var search10 = ({ ids, resourceIds }) => {
993
+ var search10 = ({
994
+ ids,
995
+ uuids,
996
+ resourceIds,
997
+ levelIds,
998
+ formats,
999
+ documentTypes
1000
+ }) => {
994
1001
  return makeEntitiesFilter8({
995
1002
  id: ids,
996
- resourceId: resourceIds
1003
+ resourceId: resourceIds,
1004
+ levels: levelIds,
1005
+ uuidV2: uuids,
1006
+ format: formats,
1007
+ documentType: documentTypes
997
1008
  });
998
1009
  };
999
1010
  var { useSearchDocuments } = crud("documents", {
@@ -1007,7 +1018,7 @@ var search11 = ({ ids, read, pageIds }) => {
1007
1018
  return makeEntitiesFilter9({ read, id: ids, page: pageIds });
1008
1019
  };
1009
1020
  var makeSearchDrawerNotifications = () => createSearchSelector4(
1010
- [makeGetCurrentUser(), makeGetAllEntities3("drawerNotifications"), (_19, params) => params],
1021
+ [makeGetCurrentUser(), makeGetAllEntities3("drawerNotifications"), (_20, params) => params],
1011
1022
  (currentUser, drawerNotifications, { read, pageIds }) => {
1012
1023
  const ids = currentUser?.drawerNotifications;
1013
1024
  return search11({ ids, read, pageIds })(drawerNotifications);
@@ -1045,9 +1056,22 @@ var getUserGroups = (0, import_reselect2.createSelector)(
1045
1056
  // src/selectors/level.ts
1046
1057
  init_define_import_meta();
1047
1058
  var import_reselect3 = __toESM(require_lib(), 1);
1048
- import { makeEntitiesFilter as makeEntitiesFilter11 } from "@lls/utils";
1059
+ import { createSearchSelector as createSearchSelector5, makeEntitiesFilter as makeEntitiesFilter12, makeGetAllEntities as makeGetAllEntities5 } from "@lls/utils";
1049
1060
  import _10 from "lodash/fp.js";
1050
- var search14 = ({
1061
+
1062
+ // src/selectors/schoolType.ts
1063
+ init_define_import_meta();
1064
+ import { makeEntitiesFilter as makeEntitiesFilter11 } from "@lls/utils";
1065
+ var search14 = ({ slugs }) => makeEntitiesFilter11({ slug: slugs });
1066
+ var { getSchoolTypes, getSchoolType, useSearchSchoolTypes, makeSearchSchoolTypes, searchSchoolTypes } = crud(
1067
+ "schoolTypes",
1068
+ {
1069
+ search: search14
1070
+ }
1071
+ );
1072
+
1073
+ // src/selectors/level.ts
1074
+ var search15 = ({
1051
1075
  ids,
1052
1076
  slugs,
1053
1077
  isPreSchool,
@@ -1055,9 +1079,10 @@ var search14 = ({
1055
1079
  isHighSchool,
1056
1080
  isProHighSchool,
1057
1081
  isGenHighSchool,
1058
- isElementarySchool
1082
+ isElementarySchool,
1083
+ schoolTypes
1059
1084
  }) => _10.flow(
1060
- makeEntitiesFilter11({
1085
+ makeEntitiesFilter12({
1061
1086
  id: ids,
1062
1087
  slug: slugs,
1063
1088
  isPreSchool,
@@ -1065,35 +1090,49 @@ var search14 = ({
1065
1090
  isHighSchool,
1066
1091
  isProHighSchool,
1067
1092
  isGenHighSchool,
1068
- isElementarySchool
1093
+ isElementarySchool,
1094
+ schoolTypes
1069
1095
  }),
1070
1096
  _10.orderBy("order", "desc")
1071
1097
  );
1072
- var crudLevels = crud("levels", { search: search14 });
1073
- var { getLevel, useSearchLevels } = crudLevels;
1074
- var getLevels = (0, import_reselect3.createSelector)(crudLevels.getLevels, _10.orderBy("order", "desc"));
1098
+ var makeSearchLevels = () => {
1099
+ const searchSchoolTypes2 = makeSearchSchoolTypes();
1100
+ return createSearchSelector5(
1101
+ makeGetAllEntities5("levels"),
1102
+ (state, { schoolTypes }) => schoolTypes ? searchSchoolTypes2(state, { slugs: schoolTypes }) : void 0,
1103
+ (_state, params) => params,
1104
+ (levels, schoolTypes, params) => search15({ ...params, schoolTypes: schoolTypes?.length ? schoolTypes?.map(({ id }) => id) : void 0 })(levels)
1105
+ );
1106
+ };
1107
+ var crudLevels = crud("levels", { search: search15 });
1108
+ var { getLevel, searchLevels } = crudLevels;
1109
+ var getLevels = (0, import_reselect3.createSelector)(
1110
+ crudLevels.getLevels,
1111
+ _10.orderBy("order", "desc")
1112
+ );
1113
+ var useSearchLevels = makeUseSearch(makeSearchLevels);
1075
1114
 
1076
1115
  // src/selectors/mainNotification.ts
1077
1116
  init_define_import_meta();
1078
1117
  var import_reselect4 = __toESM(require_lib(), 1);
1079
- import { makeEntitiesFilter as makeEntitiesFilter12, makeGetAllEntities as makeGetAllEntities5 } from "@lls/utils";
1118
+ import { makeEntitiesFilter as makeEntitiesFilter13, makeGetAllEntities as makeGetAllEntities6 } from "@lls/utils";
1080
1119
  import _11 from "lodash/fp.js";
1081
- var search15 = ({ ids }) => makeEntitiesFilter12({ id: ids });
1120
+ var search16 = ({ ids }) => makeEntitiesFilter13({ id: ids });
1082
1121
  var getMainNotifications = (0, import_reselect4.createSelector)(
1083
- [_11.flow(makeGetCurrentUser(), _11.get("mainNotifications")), makeGetAllEntities5("mainNotifications")],
1084
- (userNotifications, notifications) => search15({ ids: userNotifications })(notifications)
1122
+ [_11.flow(makeGetCurrentUser(), _11.get("mainNotifications")), makeGetAllEntities6("mainNotifications")],
1123
+ (userNotifications, notifications) => search16({ ids: userNotifications })(notifications)
1085
1124
  );
1086
1125
 
1087
1126
  // src/selectors/news.ts
1088
1127
  init_define_import_meta();
1089
- import { makeEntitiesFilter as makeEntitiesFilter13 } from "@lls/utils";
1090
- var search16 = ({ ids }) => makeEntitiesFilter13({ id: ids });
1128
+ import { makeEntitiesFilter as makeEntitiesFilter14 } from "@lls/utils";
1129
+ var search17 = ({ ids }) => makeEntitiesFilter14({ id: ids });
1091
1130
  var {
1092
1131
  getNews: getAllNews,
1093
1132
  getNew: getNews,
1094
1133
  useSearchNews
1095
1134
  } = crud("news", {
1096
- search: search16
1135
+ search: search17
1097
1136
  });
1098
1137
 
1099
1138
  // src/selectors/panorama.ts
@@ -1103,26 +1142,26 @@ var getPanorama = makeGetEntityById3("panoramas");
1103
1142
 
1104
1143
  // src/selectors/premiumResource.ts
1105
1144
  init_define_import_meta();
1106
- import { makeEntitiesFilter as makeEntitiesFilter14 } from "@lls/utils";
1107
- var search17 = ({ bookIds }) => makeEntitiesFilter14({ book: bookIds });
1145
+ import { makeEntitiesFilter as makeEntitiesFilter15 } from "@lls/utils";
1146
+ var search18 = ({ bookIds }) => makeEntitiesFilter15({ book: bookIds });
1108
1147
  var { getPremiumResources, getPremiumResource, useSearchPremiumResources } = crud("premiumResources", {
1109
- search: search17
1148
+ search: search18
1110
1149
  });
1111
1150
 
1112
1151
  // src/selectors/lexicalFlower.ts
1113
1152
  init_define_import_meta();
1114
- import { makeEntitiesFilter as makeEntitiesFilter15 } from "@lls/utils";
1115
- var search18 = ({ ids }) => makeEntitiesFilter15({ id: ids });
1153
+ import { makeEntitiesFilter as makeEntitiesFilter16 } from "@lls/utils";
1154
+ var search19 = ({ ids }) => makeEntitiesFilter16({ id: ids });
1116
1155
  var { getLexicalFlowers, useSearchLexicalFlowers } = crud("lexicalFlowers", {
1117
- search: search18
1156
+ search: search19
1118
1157
  });
1119
1158
 
1120
1159
  // src/selectors/product.ts
1121
1160
  init_define_import_meta();
1122
1161
  import _12 from "lodash/fp.js";
1123
- import { createSearchSelector as createSearchSelector5, makeEntitiesFilter as makeEntitiesFilter16, makeGetAllEntities as makeGetAllEntities6 } from "@lls/utils";
1124
- var getProducts = makeGetAllEntities6("products");
1125
- var search19 = ({
1162
+ import { createSearchSelector as createSearchSelector6, makeEntitiesFilter as makeEntitiesFilter17, makeGetAllEntities as makeGetAllEntities7 } from "@lls/utils";
1163
+ var getProducts = makeGetAllEntities7("products");
1164
+ var search20 = ({
1126
1165
  ids,
1127
1166
  eans,
1128
1167
  isAdoptant,
@@ -1132,7 +1171,7 @@ var search19 = ({
1132
1171
  productTypes
1133
1172
  }) => {
1134
1173
  let bookIds;
1135
- const filter = makeEntitiesFilter16(
1174
+ const filter = makeEntitiesFilter17(
1136
1175
  {
1137
1176
  id: ids,
1138
1177
  ean: eans,
@@ -1149,36 +1188,28 @@ var search19 = ({
1149
1188
  };
1150
1189
  var makeSearchProducts = () => {
1151
1190
  const searchBooks = makeSearchBooks();
1152
- return createSearchSelector5(
1153
- makeGetAllEntities6("products"),
1191
+ return createSearchSelector6(
1192
+ makeGetAllEntities7("products"),
1154
1193
  (state, { levelIds, subjectIds }) => searchBooks(state, { levelIds, subjectIds }),
1155
1194
  (_state, params) => params,
1156
- (products, books, params) => search19(params)(products, books)
1195
+ (products, books, params) => search20(params)(products, books)
1157
1196
  );
1158
1197
  };
1159
1198
  var useSearchProducts = makeUseSearch(makeSearchProducts);
1160
1199
 
1161
1200
  // src/selectors/resource.ts
1162
1201
  init_define_import_meta();
1163
- import { makeEntitiesFilter as makeEntitiesFilter17 } from "@lls/utils";
1164
- var search20 = ({ chapterIds }) => makeEntitiesFilter17({
1202
+ import { makeEntitiesFilter as makeEntitiesFilter18 } from "@lls/utils";
1203
+ var search21 = ({ chapterIds }) => makeEntitiesFilter18({
1165
1204
  chapter: chapterIds
1166
1205
  });
1167
1206
  var { getResources, getResource, useSearchResources } = crud("resources", {
1168
- search: search20
1169
- });
1170
-
1171
- // src/selectors/schoolType.ts
1172
- init_define_import_meta();
1173
- import { makeEntitiesFilter as makeEntitiesFilter18 } from "@lls/utils";
1174
- var search21 = ({ slugs }) => makeEntitiesFilter18({ slug: slugs });
1175
- var { getSchoolTypes, getSchoolType, useSearchSchoolTypes, makeSearchSchoolTypes } = crud("schoolTypes", {
1176
1207
  search: search21
1177
1208
  });
1178
1209
 
1179
1210
  // src/selectors/sharedPage.ts
1180
1211
  init_define_import_meta();
1181
- import { createSearchSelector as createSearchSelector6, makeEntitiesFilter as makeEntitiesFilter19 } from "@lls/utils";
1212
+ import { createSearchSelector as createSearchSelector7, makeEntitiesFilter as makeEntitiesFilter19 } from "@lls/utils";
1182
1213
  import _13 from "lodash/fp.js";
1183
1214
  var search22 = ({
1184
1215
  parentIds,
@@ -1198,7 +1229,7 @@ var search22 = ({
1198
1229
  var { getSharedPages, getSharedPage, useSearchSharedPages } = crud("sharedPages", {
1199
1230
  search: search22
1200
1231
  });
1201
- var makeSearchCurrentUserSharedPages = () => createSearchSelector6(
1232
+ var makeSearchCurrentUserSharedPages = () => createSearchSelector7(
1202
1233
  getCurrentUser,
1203
1234
  getSharedPages,
1204
1235
  (__, params) => params,
@@ -1302,10 +1333,18 @@ var { getCirconscriptions } = crud("circonscriptions", {
1302
1333
  search: search29
1303
1334
  });
1304
1335
 
1336
+ // src/selectors/documentType.ts
1337
+ init_define_import_meta();
1338
+ import _16 from "lodash/fp.js";
1339
+ var search30 = (_params) => _16.identity;
1340
+ var { getDocumentTypes, getDocumentType } = crud("documentTypes", {
1341
+ search: search30
1342
+ });
1343
+
1305
1344
  // src/reducers/entities.ts
1306
1345
  init_define_import_meta();
1307
1346
  import { makeReducer } from "@lls/utils";
1308
- import _16 from "lodash/fp.js";
1347
+ import _17 from "lodash/fp.js";
1309
1348
 
1310
1349
  // src/actions/index.ts
1311
1350
  init_define_import_meta();
@@ -1328,16 +1367,16 @@ var resetAuth = makeActionCreator(actionTypes.RESET_AUTH);
1328
1367
  // src/reducers/entities.ts
1329
1368
  var deleteEntityReducer = (state, payload) => {
1330
1369
  const { path } = payload;
1331
- return _16.omit(path, state);
1370
+ return _17.omit(path, state);
1332
1371
  };
1333
1372
  var updateEntityReducer = (state, payload) => {
1334
1373
  const { path, entity } = payload;
1335
- const currentEntity = _16.get(path, state);
1336
- return _16.set(path, _16.merge(currentEntity, entity), state);
1374
+ const currentEntity = _17.get(path, state);
1375
+ return _17.set(path, _17.merge(currentEntity, entity), state);
1337
1376
  };
1338
1377
  var setEntityReducer = (state, payload) => {
1339
1378
  const { path, entity } = payload;
1340
- return _16.set(path, entity, state);
1379
+ return _17.set(path, entity, state);
1341
1380
  };
1342
1381
  var setEntitiesReducer = (state, payload) => {
1343
1382
  if (typeof payload !== "object") return state;
@@ -1358,7 +1397,7 @@ var setEntitiesReducer = (state, payload) => {
1358
1397
  }
1359
1398
  const diff = Object.keys(entity).some((prop) => {
1360
1399
  const value = entity[prop];
1361
- if (!_16.isEqual(state[entityName]?.[id]?.[prop], value)) {
1400
+ if (!_17.isEqual(state[entityName]?.[id]?.[prop], value)) {
1362
1401
  return true;
1363
1402
  }
1364
1403
  });
@@ -1390,7 +1429,7 @@ var entities_default = entities;
1390
1429
  // src/reducers/auth.ts
1391
1430
  init_define_import_meta();
1392
1431
  import { makeReducer as makeReducer2 } from "@lls/utils";
1393
- import _17 from "lodash/fp.js";
1432
+ import _18 from "lodash/fp.js";
1394
1433
  var initialState = {
1395
1434
  id: void 0,
1396
1435
  role: null,
@@ -1403,16 +1442,18 @@ var initialState = {
1403
1442
  llsUserId: null
1404
1443
  };
1405
1444
  var auth = makeReducer2(initialState, {
1406
- [actionTypes.SET_AUTH]: _17.assign,
1407
- [actionTypes.RESET_AUTH]: _17.constant(initialState)
1445
+ [actionTypes.SET_AUTH]: _18.assign,
1446
+ [actionTypes.RESET_AUTH]: _18.constant(initialState)
1408
1447
  });
1409
1448
  var auth_default = auth;
1410
1449
 
1411
1450
  // src/schema/index.ts
1412
1451
  init_define_import_meta();
1413
1452
  var import_normalizr = __toESM(require_normalizr(), 1);
1414
- import _18 from "lodash/fp.js";
1415
- var document = new import_normalizr.schema.Entity("documents", {}, { idAttribute: "resourceId" });
1453
+ import _19 from "lodash/fp.js";
1454
+ var document = new import_normalizr.schema.Entity("documents");
1455
+ var documentType = new import_normalizr.schema.Entity("documentTypes");
1456
+ var subDocumentType = new import_normalizr.schema.Entity("subDocumentTypes");
1416
1457
  var subject = new import_normalizr.schema.Entity("subjects");
1417
1458
  var level = new import_normalizr.schema.Entity("levels");
1418
1459
  var book = new import_normalizr.schema.Entity("books");
@@ -1471,8 +1512,14 @@ var garDivisionSchema = define(garDivision, {
1471
1512
  students: [user],
1472
1513
  school
1473
1514
  });
1515
+ var documentTypeSchema = define(documentType, {
1516
+ subDocumentType
1517
+ });
1474
1518
  var documentSchema = define(document, {
1475
- page
1519
+ page,
1520
+ levels: [level],
1521
+ documentType,
1522
+ subDocumentType
1476
1523
  });
1477
1524
  var chapterSchema = define(chapter, {
1478
1525
  book,
@@ -1562,6 +1609,9 @@ var newsSchema = define(news, {
1562
1609
  var premiumResourceSchema = define(premiumResource, {
1563
1610
  book
1564
1611
  });
1612
+ var levelSchema = define(level, {
1613
+ schoolTypes: [schoolType]
1614
+ });
1565
1615
  var querySchema = {
1566
1616
  viewer: {
1567
1617
  addCorrectionsToGroup: group,
@@ -1577,6 +1627,8 @@ var querySchema = {
1577
1627
  createUser: user,
1578
1628
  createLexicalFlower: lexicalFlower,
1579
1629
  documents: { hits: [document] },
1630
+ documentTypes: { hits: [documentType] },
1631
+ subDocumentTypes: { hits: [subDocumentType] },
1580
1632
  explorerResults: [explorerResult],
1581
1633
  levels: [level],
1582
1634
  me: user,
@@ -1617,7 +1669,7 @@ var querySchema = {
1617
1669
  }
1618
1670
  }
1619
1671
  };
1620
- var normalizeData = _18.flow((data) => (0, import_normalizr.normalize)(data, querySchema));
1672
+ var normalizeData = _19.flow((data) => (0, import_normalizr.normalize)(data, querySchema));
1621
1673
  export {
1622
1674
  auth_default as authReducer,
1623
1675
  entities_default as entitiesReducer,
@@ -1639,6 +1691,8 @@ export {
1639
1691
  getContact,
1640
1692
  getContacts,
1641
1693
  getCurrentUser,
1694
+ getDocumentType,
1695
+ getDocumentTypes,
1642
1696
  getDraft,
1643
1697
  getDrafts,
1644
1698
  getFaqs,
@@ -1683,6 +1737,7 @@ export {
1683
1737
  makeGetCurrentUser,
1684
1738
  makeSearchBooks,
1685
1739
  makeSearchDrawerNotifications,
1740
+ makeSearchLevels,
1686
1741
  makeSearchPages,
1687
1742
  makeSearchSchoolTypes,
1688
1743
  makeSearchSubjects,
@@ -1690,6 +1745,8 @@ export {
1690
1745
  makeUseSearch,
1691
1746
  normalizeData,
1692
1747
  querySchema,
1748
+ searchLevels,
1749
+ searchSchoolTypes,
1693
1750
  setEntitiesReducer,
1694
1751
  useSearchBooks,
1695
1752
  useSearchBuilderIos,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@lls/store",
3
3
  "description": "model de donnée et selecteurs",
4
4
  "homepage": "https://github.com/lelivrescolaire/monorepo/tree/dev/libs/store",
5
- "version": "24.7.0",
5
+ "version": "24.8.0-0530ef1e",
6
6
  "type": "module",
7
7
  "types": "./lib/builttypes/store/src/index.d.ts",
8
8
  "exports": {
@@ -46,11 +46,10 @@
46
46
  "redux": "5.0.1",
47
47
  "reselect": "4.1.8",
48
48
  "typescript": "5.6.3",
49
- "vite": "5.4.10",
50
- "vite-tsconfig-paths": "5.1.1",
51
- "vitest": "2.1.4",
52
- "@lls/utils": "24.7.0",
53
- "@lls/vitescripts": "24.7.0"
49
+ "vite": "5.4.11",
50
+ "vite-tsconfig-paths": "5.1.3",
51
+ "@lls/utils": "24.8.0-0530ef1e",
52
+ "@lls/vitescripts": "24.8.0-0530ef1e"
54
53
  },
55
54
  "license": "ISC",
56
55
  "dependencies": {
@@ -60,7 +59,6 @@
60
59
  "build": "node build.mjs",
61
60
  "lint": "pnpm biome check --apply src __tests__",
62
61
  "dts": "pnpm tsc --project tsconfig.production.json",
63
- "test": "pnpm vitest run",
64
- "v2test": "bun test"
62
+ "test": "bun test"
65
63
  }
66
64
  }