@lls/store 24.2.0-d3caec45 → 24.2.0-e287f2e8

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.
@@ -29,6 +29,7 @@ export * from '@lls/store/selectors/teacher';
29
29
  export * from '@lls/store/selectors/method';
30
30
  export * from '@lls/store/selectors/tool';
31
31
  export * from '@lls/store/selectors/builderIo';
32
+ export * from '@lls/store/selectors/circonscription';
32
33
  export { makeUseSearch } from '@lls/store/selectors/crud';
33
34
  export { default as entitiesReducer, setEntitiesReducer } from '@lls/store/reducers/entities';
34
35
  export { default as authReducer } from '@lls/store/reducers/auth';
@@ -1,4 +1,4 @@
1
- import type { Book as BookModel, BuilderIo as BuilderIoModel, Chapter as ChapterModel, Collection as CollectionModel, CommunityProject as CommunityProjectModel, DocJson as DocJsonModel, Faq as FaqModel, GarDivision as GarDivisionModel, Group as GroupModel, Level as LevelModel, LexicalFlower as LexicalFlowerModel, Method as MethodModel, News as NewsModel, Notification as NotificationModel, Page as PageModel, Panorama as PanoramaModel, PremiumResource as PremiumResourceModel, Product as ProductModel, Resource as ResourceModel, School as SchoolModel, SchoolType as SchoolTypeModel, Subject as SubjectModel, Tool as ToolModel, User as UserModel } from '@lls/store/types/models';
1
+ import type { Book as BookModel, BuilderIo as BuilderIoModel, Chapter as ChapterModel, Circonscription as CirconscriptionModel, Collection as CollectionModel, CommunityProject as CommunityProjectModel, DocJson as DocJsonModel, Faq as FaqModel, GarDivision as GarDivisionModel, Group as GroupModel, Level as LevelModel, LexicalFlower as LexicalFlowerModel, Method as MethodModel, News as NewsModel, Notification as NotificationModel, Page as PageModel, Panorama as PanoramaModel, PremiumResource as PremiumResourceModel, Product as ProductModel, Resource as ResourceModel, School as SchoolModel, SchoolType as SchoolTypeModel, Subject as SubjectModel, Tool as ToolModel, User as UserModel } from '@lls/store/types/models';
2
2
  import { schema } from 'normalizr';
3
3
  type Norm<M, S> = {
4
4
  [K in Exclude<keyof M, keyof S>]?: M[K];
@@ -203,6 +203,7 @@ export declare const querySchema: {
203
203
  createAnalytics: schema.Entity<any>;
204
204
  faq: schema.Entity<any>[];
205
205
  builderIos: schema.Entity<any>[];
206
+ circonscriptions: schema.Entity<any>[];
206
207
  };
207
208
  static: {
208
209
  projetVoltaire: {
@@ -219,6 +220,7 @@ export type Faq = FaqModel;
219
220
  export type LexicalFlower = LexicalFlowerModel;
220
221
  export type SchoolType = Norm<SchoolTypeModel, {}>;
221
222
  export type BuilderIo = BuilderIoModel;
223
+ export type Circonscription = CirconscriptionModel;
222
224
  export declare const normalizeData: (...args: any[]) => any;
223
225
  export type AdminUser = User & {
224
226
  isAdmin: true;
@@ -0,0 +1 @@
1
+ export declare const getCirconscriptions: (state: import("@lls/utils/index").TState<import("../types/models").Circonscription>) => import("../types/models").Circonscription[];
@@ -7,7 +7,7 @@ export declare const getSubjects: (state: import("@lls/utils").TState<Subject>)
7
7
  schoolTypes?: (string | undefined)[] | undefined;
8
8
  hasBooks?: Subject["hasBooks"];
9
9
  names?: ("Autre" | "Design et métiers d'art" | "Langues et cultures de l'Antiquité" | "Littérature, langues et cultures de l'Antiquité" | "Sciences de l'ingénieur" | "Support à l'action managériale" | "Allemand" | "Anglais" | "Arts appliqués et culture artistique" | "Arts plastiques" | "Arts" | "Autre enseignement professionnel" | "Biochimie-Biologie" | "Biologie et physiopathologie humaines" | "Biologie-Écologie" | "Biotechnologies" | "Bâtiment" | "CEJM" | "Chinois" | "Commerce international" | "Communication" | "Comptabilité" | "Conjugaison" | "Culture générale et expression" | "Documentation" | "Droit" | "Economie et Gestion" | "Enseignement Scientifique" | "Enseignement scientifique" | "Enseignements spécifiques STL" | "Espagnol" | "Français" | "Gestion administrative" | "Gestion commerciale" | "Gestion de la PME" | "Gestion" | "Grammaire" | "Géographie" | "Histoire des Arts" | "Histoire" | "Histoire-Géographie, géopolitique et sciences politiques" | "Histoire-Géographie-EMC" | "Humanités, littérature et philosophie" | "Hôtellerie restauration" | "Informatique" | "Ingénierie et développement durable" | "Innovation technologique" | "Italien" | "Langue vivante rare" | "Langues, littératures et cultures étrangères et régionales" | "Logistique" | "Maintenance" | "Management commercial opérationnel" | "Management" | "Mathématiques" | "Mercatique" | "Mécanique" | "Numérique et sciences informatiques" | "Négociation et relation client" | "Orthographe" | "Outils et langages numériques" | "PSE" | "Philosophie" | "Physique-Chimie pour la santé" | "Physique-Chimie" | "Prévention Santé Environnement" | "Relation client" | "SES" | "SNT" | "SVT" | "Sciences appliquées" | "Sciences de gestion et numérique" | "Sciences de la vie et de la Terre" | "Sciences et Technologie" | "Sciences et techniques sanitaires et sociales" | "Sciences numériques et technologie" | "Sciences physiques et chimiques en laboratoire" | "Sciences physiques" | "Sciences économiques et sociales" | "Sciences" | "Technologie" | "Transport" | "Économie et gestion hôtellière" | "Économie" | "Économie-Droit" | "Économie-Gestion" | "Éducation civique" | "Éducation musicale" | null | undefined)[] | undefined;
10
- sortByQuery?: "id" | "slug" | "url" | "name" | "schoolTypes" | "hasBooks" | "newsletterUrl" | "tags" | {} | undefined;
10
+ sortByQuery?: "id" | "slug" | "url" | "code" | "name" | "schoolTypes" | "hasBooks" | "newsletterUrl" | "tags" | {} | undefined;
11
11
  }) => Subject[], makeSearchSubjects: () => ((state: import("../types/store").EntitiesState, params: {
12
12
  ids?: Subject["id"][] | undefined;
13
13
  slugs?: Subject["slug"][] | undefined;
@@ -16,7 +16,7 @@ export declare const getSubjects: (state: import("@lls/utils").TState<Subject>)
16
16
  schoolTypes?: (string | undefined)[] | undefined;
17
17
  hasBooks?: Subject["hasBooks"];
18
18
  names?: ("Autre" | "Design et métiers d'art" | "Langues et cultures de l'Antiquité" | "Littérature, langues et cultures de l'Antiquité" | "Sciences de l'ingénieur" | "Support à l'action managériale" | "Allemand" | "Anglais" | "Arts appliqués et culture artistique" | "Arts plastiques" | "Arts" | "Autre enseignement professionnel" | "Biochimie-Biologie" | "Biologie et physiopathologie humaines" | "Biologie-Écologie" | "Biotechnologies" | "Bâtiment" | "CEJM" | "Chinois" | "Commerce international" | "Communication" | "Comptabilité" | "Conjugaison" | "Culture générale et expression" | "Documentation" | "Droit" | "Economie et Gestion" | "Enseignement Scientifique" | "Enseignement scientifique" | "Enseignements spécifiques STL" | "Espagnol" | "Français" | "Gestion administrative" | "Gestion commerciale" | "Gestion de la PME" | "Gestion" | "Grammaire" | "Géographie" | "Histoire des Arts" | "Histoire" | "Histoire-Géographie, géopolitique et sciences politiques" | "Histoire-Géographie-EMC" | "Humanités, littérature et philosophie" | "Hôtellerie restauration" | "Informatique" | "Ingénierie et développement durable" | "Innovation technologique" | "Italien" | "Langue vivante rare" | "Langues, littératures et cultures étrangères et régionales" | "Logistique" | "Maintenance" | "Management commercial opérationnel" | "Management" | "Mathématiques" | "Mercatique" | "Mécanique" | "Numérique et sciences informatiques" | "Négociation et relation client" | "Orthographe" | "Outils et langages numériques" | "PSE" | "Philosophie" | "Physique-Chimie pour la santé" | "Physique-Chimie" | "Prévention Santé Environnement" | "Relation client" | "SES" | "SNT" | "SVT" | "Sciences appliquées" | "Sciences de gestion et numérique" | "Sciences de la vie et de la Terre" | "Sciences et Technologie" | "Sciences et techniques sanitaires et sociales" | "Sciences numériques et technologie" | "Sciences physiques et chimiques en laboratoire" | "Sciences physiques" | "Sciences économiques et sociales" | "Sciences" | "Technologie" | "Transport" | "Économie et gestion hôtellière" | "Économie" | "Économie-Droit" | "Économie-Gestion" | "Éducation civique" | "Éducation musicale" | null | undefined)[] | undefined;
19
- sortByQuery?: "id" | "slug" | "url" | "name" | "schoolTypes" | "hasBooks" | "newsletterUrl" | "tags" | {} | undefined;
19
+ sortByQuery?: "id" | "slug" | "url" | "code" | "name" | "schoolTypes" | "hasBooks" | "newsletterUrl" | "tags" | {} | undefined;
20
20
  }) => Subject[]) & import("reselect").OutputSelectorFields<(args_0: Subject[], args_1: {
21
21
  ids?: Subject["id"][] | undefined;
22
22
  slugs?: Subject["slug"][] | undefined;
@@ -25,7 +25,7 @@ export declare const getSubjects: (state: import("@lls/utils").TState<Subject>)
25
25
  schoolTypes?: (string | undefined)[] | undefined;
26
26
  hasBooks?: Subject["hasBooks"];
27
27
  names?: ("Autre" | "Design et métiers d'art" | "Langues et cultures de l'Antiquité" | "Littérature, langues et cultures de l'Antiquité" | "Sciences de l'ingénieur" | "Support à l'action managériale" | "Allemand" | "Anglais" | "Arts appliqués et culture artistique" | "Arts plastiques" | "Arts" | "Autre enseignement professionnel" | "Biochimie-Biologie" | "Biologie et physiopathologie humaines" | "Biologie-Écologie" | "Biotechnologies" | "Bâtiment" | "CEJM" | "Chinois" | "Commerce international" | "Communication" | "Comptabilité" | "Conjugaison" | "Culture générale et expression" | "Documentation" | "Droit" | "Economie et Gestion" | "Enseignement Scientifique" | "Enseignement scientifique" | "Enseignements spécifiques STL" | "Espagnol" | "Français" | "Gestion administrative" | "Gestion commerciale" | "Gestion de la PME" | "Gestion" | "Grammaire" | "Géographie" | "Histoire des Arts" | "Histoire" | "Histoire-Géographie, géopolitique et sciences politiques" | "Histoire-Géographie-EMC" | "Humanités, littérature et philosophie" | "Hôtellerie restauration" | "Informatique" | "Ingénierie et développement durable" | "Innovation technologique" | "Italien" | "Langue vivante rare" | "Langues, littératures et cultures étrangères et régionales" | "Logistique" | "Maintenance" | "Management commercial opérationnel" | "Management" | "Mathématiques" | "Mercatique" | "Mécanique" | "Numérique et sciences informatiques" | "Négociation et relation client" | "Orthographe" | "Outils et langages numériques" | "PSE" | "Philosophie" | "Physique-Chimie pour la santé" | "Physique-Chimie" | "Prévention Santé Environnement" | "Relation client" | "SES" | "SNT" | "SVT" | "Sciences appliquées" | "Sciences de gestion et numérique" | "Sciences de la vie et de la Terre" | "Sciences et Technologie" | "Sciences et techniques sanitaires et sociales" | "Sciences numériques et technologie" | "Sciences physiques et chimiques en laboratoire" | "Sciences physiques" | "Sciences économiques et sociales" | "Sciences" | "Technologie" | "Transport" | "Économie et gestion hôtellière" | "Économie" | "Économie-Droit" | "Économie-Gestion" | "Éducation civique" | "Éducation musicale" | null | undefined)[] | undefined;
28
- sortByQuery?: "id" | "slug" | "url" | "name" | "schoolTypes" | "hasBooks" | "newsletterUrl" | "tags" | {} | undefined;
28
+ sortByQuery?: "id" | "slug" | "url" | "code" | "name" | "schoolTypes" | "hasBooks" | "newsletterUrl" | "tags" | {} | undefined;
29
29
  }) => Subject[], {
30
30
  clearCache: () => void;
31
31
  }> & {
package/lib/index.js CHANGED
@@ -749,12 +749,12 @@ init_define_import_meta();
749
749
  import { createSearchSelector, makeGetAllEntities, makeGetEntityById } from "@lls/utils";
750
750
  import { useMemo } from "react";
751
751
  import { useSelector } from "react-redux";
752
- var crud = (entityName, { search: search29 }) => {
752
+ var crud = (entityName, { search: search30 }) => {
753
753
  const getElements = makeGetAllEntities(entityName);
754
754
  const makeSearchElements = () => createSearchSelector(
755
755
  makeGetAllEntities(entityName),
756
756
  (_state, params) => params,
757
- (elements, params) => search29(params)(elements)
757
+ (elements, params) => search30(params)(elements)
758
758
  );
759
759
  const methodName = `${entityName.charAt(0).toUpperCase()}${entityName.slice(1)}`;
760
760
  const getElementById = makeGetEntityById(entityName);
@@ -764,7 +764,7 @@ var crud = (entityName, { search: search29 }) => {
764
764
  [`search${methodName}`]: makeSearchElements(),
765
765
  [`get${methodName.replace(/s$/, "")}`]: getElementById,
766
766
  [`makeSearch${methodName}`]: makeSearchElements,
767
- [`filter${methodName}`]: search29,
767
+ [`filter${methodName}`]: search30,
768
768
  [`useSearch${methodName}`]: useSearch
769
769
  };
770
770
  return back;
@@ -972,7 +972,7 @@ var search9 = ({ ids, read, pageIds }) => {
972
972
  return makeEntitiesFilter7({ read, id: ids, page: pageIds });
973
973
  };
974
974
  var makeSearchCopyNotifications = () => createSearchSelector3(
975
- [makeGetCurrentUser(), makeGetAllEntities2("copyNotifications"), (_17, params) => params],
975
+ [makeGetCurrentUser(), makeGetAllEntities2("copyNotifications"), (_18, params) => params],
976
976
  (currentUser, copyNotifications, { pageIds, read }) => {
977
977
  const ids = currentUser?.copyNotifications;
978
978
  return search9({ ids, read, pageIds })(copyNotifications);
@@ -1000,7 +1000,7 @@ var search11 = ({ ids, read, pageIds }) => {
1000
1000
  return makeEntitiesFilter9({ read, id: ids, page: pageIds });
1001
1001
  };
1002
1002
  var makeSearchDrawerNotifications = () => createSearchSelector4(
1003
- [makeGetCurrentUser(), makeGetAllEntities3("drawerNotifications"), (_17, params) => params],
1003
+ [makeGetCurrentUser(), makeGetAllEntities3("drawerNotifications"), (_18, params) => params],
1004
1004
  (currentUser, drawerNotifications, { read, pageIds }) => {
1005
1005
  const ids = currentUser?.drawerNotifications;
1006
1006
  return search11({ ids, read, pageIds })(drawerNotifications);
@@ -1287,10 +1287,18 @@ var { getBuilderIos, getBuilderIo, useSearchBuilderIos } = crud("builderIos", {
1287
1287
  search: search28
1288
1288
  });
1289
1289
 
1290
+ // src/selectors/circonscription.ts
1291
+ init_define_import_meta();
1292
+ import _14 from "lodash/fp.js";
1293
+ var search29 = (_params) => _14.identity;
1294
+ var { getCirconscriptions } = crud("circonscriptions", {
1295
+ search: search29
1296
+ });
1297
+
1290
1298
  // src/reducers/entities.ts
1291
1299
  init_define_import_meta();
1292
1300
  import { makeReducer } from "@lls/utils";
1293
- import _14 from "lodash/fp.js";
1301
+ import _15 from "lodash/fp.js";
1294
1302
 
1295
1303
  // src/actions/index.ts
1296
1304
  init_define_import_meta();
@@ -1313,16 +1321,16 @@ var resetAuth = makeActionCreator(actionTypes.RESET_AUTH);
1313
1321
  // src/reducers/entities.ts
1314
1322
  var deleteEntityReducer = (state, payload) => {
1315
1323
  const { path } = payload;
1316
- return _14.omit(path, state);
1324
+ return _15.omit(path, state);
1317
1325
  };
1318
1326
  var updateEntityReducer = (state, payload) => {
1319
1327
  const { path, entity } = payload;
1320
- const currentEntity = _14.get(path, state);
1321
- return _14.set(path, _14.merge(currentEntity, entity), state);
1328
+ const currentEntity = _15.get(path, state);
1329
+ return _15.set(path, _15.merge(currentEntity, entity), state);
1322
1330
  };
1323
1331
  var setEntityReducer = (state, payload) => {
1324
1332
  const { path, entity } = payload;
1325
- return _14.set(path, entity, state);
1333
+ return _15.set(path, entity, state);
1326
1334
  };
1327
1335
  var setEntitiesReducer = (state, payload) => {
1328
1336
  if (typeof payload !== "object") return state;
@@ -1343,7 +1351,7 @@ var setEntitiesReducer = (state, payload) => {
1343
1351
  }
1344
1352
  const diff = Object.keys(entity).some((prop) => {
1345
1353
  const value = entity[prop];
1346
- if (!_14.isEqual(state[entityName]?.[id]?.[prop], value)) {
1354
+ if (!_15.isEqual(state[entityName]?.[id]?.[prop], value)) {
1347
1355
  return true;
1348
1356
  }
1349
1357
  });
@@ -1375,7 +1383,7 @@ var entities_default = entities;
1375
1383
  // src/reducers/auth.ts
1376
1384
  init_define_import_meta();
1377
1385
  import { makeReducer as makeReducer2 } from "@lls/utils";
1378
- import _15 from "lodash/fp.js";
1386
+ import _16 from "lodash/fp.js";
1379
1387
  var initialState = {
1380
1388
  id: void 0,
1381
1389
  role: null,
@@ -1388,15 +1396,15 @@ var initialState = {
1388
1396
  llsUserId: null
1389
1397
  };
1390
1398
  var auth = makeReducer2(initialState, {
1391
- [actionTypes.SET_AUTH]: _15.assign,
1392
- [actionTypes.RESET_AUTH]: _15.constant(initialState)
1399
+ [actionTypes.SET_AUTH]: _16.assign,
1400
+ [actionTypes.RESET_AUTH]: _16.constant(initialState)
1393
1401
  });
1394
1402
  var auth_default = auth;
1395
1403
 
1396
1404
  // src/schema/index.ts
1397
1405
  init_define_import_meta();
1398
1406
  var import_normalizr = __toESM(require_normalizr(), 1);
1399
- import _16 from "lodash/fp.js";
1407
+ import _17 from "lodash/fp.js";
1400
1408
  var document = new import_normalizr.schema.Entity("documents", {}, { idAttribute: "resourceId" });
1401
1409
  var subject = new import_normalizr.schema.Entity("subjects");
1402
1410
  var level = new import_normalizr.schema.Entity("levels");
@@ -1431,6 +1439,7 @@ var schoolType = new import_normalizr.schema.Entity("schoolTypes");
1431
1439
  var panorama = new import_normalizr.schema.Entity("panoramas");
1432
1440
  var premiumResource = new import_normalizr.schema.Entity("premiumResources");
1433
1441
  var garDivision = new import_normalizr.schema.Entity("garDivisions");
1442
+ var circonscription = new import_normalizr.schema.Entity("circonscriptions");
1434
1443
  var define = (el, scheme) => {
1435
1444
  el.define(scheme);
1436
1445
  return scheme;
@@ -1592,7 +1601,8 @@ var querySchema = {
1592
1601
  communityProjects: [communityProjects],
1593
1602
  createAnalytics: analytic,
1594
1603
  faq: [faq],
1595
- builderIos: [builderIo]
1604
+ builderIos: [builderIo],
1605
+ circonscriptions: [circonscription]
1596
1606
  },
1597
1607
  static: {
1598
1608
  projetVoltaire: {
@@ -1600,7 +1610,7 @@ var querySchema = {
1600
1610
  }
1601
1611
  }
1602
1612
  };
1603
- var normalizeData = _16.flow((data) => (0, import_normalizr.normalize)(data, querySchema));
1613
+ var normalizeData = _17.flow((data) => (0, import_normalizr.normalize)(data, querySchema));
1604
1614
  export {
1605
1615
  auth_default as authReducer,
1606
1616
  entities_default as entitiesReducer,
@@ -1614,6 +1624,7 @@ export {
1614
1624
  getBuilderIos,
1615
1625
  getChapter,
1616
1626
  getChapters,
1627
+ getCirconscriptions,
1617
1628
  getCollection,
1618
1629
  getCollections,
1619
1630
  getCommunityProject,
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.2.0-d3caec45",
5
+ "version": "24.2.0-e287f2e8",
6
6
  "type": "module",
7
7
  "types": "./lib/builttypes/store/src/index.d.ts",
8
8
  "exports": {
@@ -30,27 +30,27 @@
30
30
  "redux": "*"
31
31
  },
32
32
  "devDependencies": {
33
- "@biomejs/biome": "1.9.1",
34
- "@happy-dom/global-registrator": "14.12.3",
33
+ "@biomejs/biome": "1.9.4",
34
+ "@happy-dom/global-registrator": "15.7.4",
35
35
  "@testing-library/react": "16.0.1",
36
- "@types/lodash": "4.17.7",
37
- "@types/node": "22.5.5",
38
- "@types/react": "18.3.6",
36
+ "@types/lodash": "4.17.12",
37
+ "@types/node": "22.7.9",
38
+ "@types/react": "18.3.12",
39
39
  "@types/react-redux": "7.1.34",
40
- "@vitejs/plugin-react-swc": "3.7.0",
41
- "esbuild": "0.23.1",
42
- "happy-dom": "14.12.3",
40
+ "@vitejs/plugin-react-swc": "3.7.1",
41
+ "esbuild": "0.24.0",
42
+ "happy-dom": "15.7.4",
43
43
  "lodash": "4.17.21",
44
44
  "react": "18.3.1",
45
45
  "react-redux": "8.1.1",
46
46
  "redux": "5.0.1",
47
47
  "reselect": "4.1.8",
48
- "typescript": "5.6.2",
49
- "vite": "5.4.6",
48
+ "typescript": "5.6.3",
49
+ "vite": "5.4.10",
50
50
  "vite-tsconfig-paths": "5.0.1",
51
- "vitest": "2.1.1",
52
- "@lls/utils": "24.2.0-d3caec45",
53
- "@lls/vitescripts": "24.2.0-d3caec45"
51
+ "vitest": "2.1.3",
52
+ "@lls/utils": "24.2.0-e287f2e8",
53
+ "@lls/vitescripts": "24.2.0-e287f2e8"
54
54
  },
55
55
  "license": "ISC",
56
56
  "dependencies": {