@lls/store 24.1.59-6b359862 → 24.1.59-80c28b0a

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 +637 -61
  2. package/package.json +4 -4
package/lib/index.js CHANGED
@@ -198,7 +198,7 @@ var require_lib = __commonJS({
198
198
  for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
199
199
  memoizeOptionsFromArgs[_key - 1] = arguments[_key];
200
200
  }
201
- var createSelector3 = function createSelector4() {
201
+ var createSelector6 = function createSelector7() {
202
202
  for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
203
203
  funcs[_key2] = arguments[_key2];
204
204
  }
@@ -247,13 +247,13 @@ var require_lib = __commonJS({
247
247
  });
248
248
  return selector;
249
249
  };
250
- return createSelector3;
250
+ return createSelector6;
251
251
  }
252
- var createSelector2 = /* @__PURE__ */ createSelectorCreator(_defaultMemoize.defaultMemoize);
253
- exports.createSelector = createSelector2;
252
+ var createSelector5 = /* @__PURE__ */ createSelectorCreator(_defaultMemoize.defaultMemoize);
253
+ exports.createSelector = createSelector5;
254
254
  var createStructuredSelector = function createStructuredSelector2(selectors, selectorCreator) {
255
255
  if (selectorCreator === void 0) {
256
- selectorCreator = createSelector2;
256
+ selectorCreator = createSelector5;
257
257
  }
258
258
  if (typeof selectors !== "object") {
259
259
  throw new Error("createStructuredSelector expects first argument to be an object " + ("where each property is a selector, instead received a " + typeof selectors));
@@ -733,6 +733,13 @@ var require_normalizr = __commonJS({
733
733
  // src/index.ts
734
734
  init_define_import_meta();
735
735
 
736
+ // src/selectors/auth.ts
737
+ init_define_import_meta();
738
+ import _ from "lodash/fp.js";
739
+ var getAuth = _.get("auth");
740
+ var getIsLogged = _.flow(_.get("auth.id"), _.negate(_.isNil));
741
+ var getToken = _.get("auth.token");
742
+
736
743
  // src/selectors/school.ts
737
744
  init_define_import_meta();
738
745
  import { filterEntitiesSimpleFieldByValues } from "@lls/utils";
@@ -741,21 +748,21 @@ import _2 from "lodash/fp.js";
741
748
  // src/selectors/crud.ts
742
749
  init_define_import_meta();
743
750
  import { createSearchSelector, makeGetAllEntities, makeGetEntityById } from "@lls/utils";
744
- import _ from "lodash/fp.js";
745
- var crud = (entityName, { search: search3 }) => {
751
+ var crud = (entityName, { search: search23 }) => {
746
752
  const getElements = makeGetAllEntities(entityName);
747
753
  const makeSearchElements = () => createSearchSelector(
748
754
  getElements,
749
755
  (_state, params) => params,
750
- (elements, params) => search3(params)(elements)
756
+ (elements, params) => search23(params)(elements)
751
757
  );
752
- const methodName = _.capitalize(entityName);
758
+ const methodName = `${entityName.charAt(0).toUpperCase()}${entityName.slice(1)}`;
753
759
  const getElementById = makeGetEntityById(entityName);
754
760
  const back = {
755
761
  [`get${methodName}`]: getElements,
756
762
  [`search${methodName}`]: makeSearchElements(),
757
763
  [`get${methodName.replace(/s$/, "")}`]: getElementById,
758
- [`makeSearch${methodName}`]: makeSearchElements
764
+ [`makeSearch${methodName}`]: makeSearchElements,
765
+ [`filter${methodName}`]: search23
759
766
  };
760
767
  return back;
761
768
  };
@@ -766,23 +773,64 @@ var { getSchools, getSchool, searchSchools, makeSearchSchools } = crud("schools"
766
773
  search
767
774
  });
768
775
 
769
- // src/selectors/user.ts
770
- init_define_import_meta();
771
- var import_reselect = __toESM(require_lib(), 1);
772
- import { filterEntitiesArrayFieldByValues, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues2 } from "@lls/utils";
773
- import _4 from "lodash/fp.js";
774
-
775
- // src/selectors/auth.ts
776
+ // src/selectors/book.ts
776
777
  init_define_import_meta();
778
+ import {
779
+ createSearchSelector as createSearchSelector2,
780
+ filterEntitiesArrayFieldByValues,
781
+ filterEntitiesSimpleFieldByValue,
782
+ filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues2,
783
+ makeGetEntityById as makeGetEntityById2
784
+ } from "@lls/utils";
777
785
  import _3 from "lodash/fp.js";
778
- var getAuth = _3.get("auth");
779
- var getIsLogged = _3.flow(_3.get("auth.id"), _3.negate(_3.isNil));
780
- var getToken = _3.get("auth.token");
786
+ var search2 = ({
787
+ ids,
788
+ levelIds,
789
+ subjectIds,
790
+ years,
791
+ isValid,
792
+ isWorkbook,
793
+ isWorkplan,
794
+ hasNoTeacherBook,
795
+ sortByQuery,
796
+ hasNewDesign,
797
+ slugs,
798
+ uris,
799
+ publishers,
800
+ isRenewed,
801
+ isPrimary
802
+ }) => _3.flow(
803
+ filterEntitiesSimpleFieldByValues2("id", ids),
804
+ filterEntitiesSimpleFieldByValues2("year", years),
805
+ filterEntitiesArrayFieldByValues("levels", levelIds),
806
+ filterEntitiesArrayFieldByValues("subjects", subjectIds),
807
+ filterEntitiesSimpleFieldByValues2("valid", _3.isNil(isValid) ? void 0 : [isValid]),
808
+ filterEntitiesSimpleFieldByValues2("publisher", publishers),
809
+ filterEntitiesSimpleFieldByValues2("hasNewDesign", _3.isNil(hasNewDesign) ? void 0 : [hasNewDesign]),
810
+ filterEntitiesSimpleFieldByValues2("isWorkbook", _3.isNil(isWorkbook) ? void 0 : [isWorkbook]),
811
+ filterEntitiesSimpleFieldByValues2("isWorkplan", _3.isNil(isWorkplan) ? void 0 : [isWorkplan]),
812
+ filterEntitiesSimpleFieldByValues2("hasNoTeacherBook", _3.isNil(hasNoTeacherBook) ? void 0 : [hasNoTeacherBook]),
813
+ filterEntitiesSimpleFieldByValues2("slug", slugs),
814
+ filterEntitiesSimpleFieldByValues2("uri", uris),
815
+ filterEntitiesSimpleFieldByValues2("isRenewed", _3.isNil(isRenewed) ? void 0 : [isRenewed]),
816
+ filterEntitiesSimpleFieldByValue("isPrimary", isPrimary),
817
+ _3.isFunction(sortByQuery) ? sortByQuery : sortByQuery ? _3.sortBy(sortByQuery) : _3.identity
818
+ );
819
+ var { getBooks, getBook, searchBooks, makeSearchBooks } = crud("books", {
820
+ search: search2
821
+ });
822
+ var makeSearchValidBooks = () => createSearchSelector2(makeSearchBooks(), (books) => _3.filter({ valid: true, hasNewDesign: true }, books));
823
+ var searchValidBooks = makeSearchValidBooks();
824
+ var makeGetBook = () => makeGetEntityById2("books");
781
825
 
782
826
  // src/selectors/user.ts
783
- var search2 = ({ ids, schoolIds }) => _4.flow(filterEntitiesArrayFieldByValues("schools", schoolIds), filterEntitiesSimpleFieldByValues2("id", ids));
827
+ init_define_import_meta();
828
+ var import_reselect = __toESM(require_lib(), 1);
829
+ import { filterEntitiesArrayFieldByValues as filterEntitiesArrayFieldByValues2, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues3 } from "@lls/utils";
830
+ import _4 from "lodash/fp.js";
831
+ var search3 = ({ ids, schoolIds }) => _4.flow(filterEntitiesArrayFieldByValues2("schools", schoolIds), filterEntitiesSimpleFieldByValues3("id", ids));
784
832
  var { getUsers, getUser, searchUsers, makeSearchUsers } = crud("users", {
785
- search: search2
833
+ search: search3
786
834
  });
787
835
  var getCurrentUser = (0, import_reselect.createSelector)(
788
836
  getAuth,
@@ -790,10 +838,433 @@ var getCurrentUser = (0, import_reselect.createSelector)(
790
838
  (auth2, users) => users?.find((user2) => user2?.id === auth2?.id)
791
839
  );
792
840
 
841
+ // src/selectors/chapter.ts
842
+ init_define_import_meta();
843
+ import { filterEntitiesFieldExists, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues4 } from "@lls/utils";
844
+ import _5 from "lodash/fp.js";
845
+ var search4 = ({ bookIds, ids, hasTeacherBook }) => _5.flow(
846
+ filterEntitiesSimpleFieldByValues4("book", bookIds),
847
+ filterEntitiesSimpleFieldByValues4("id", ids),
848
+ filterEntitiesFieldExists("teacherBook", hasTeacherBook)
849
+ );
850
+ var { getChapters, getChapter, searchChapters, makeSearchChapters } = crud("chapters", {
851
+ search: search4
852
+ });
853
+
854
+ // src/selectors/page.ts
855
+ init_define_import_meta();
856
+ import {
857
+ createSearchSelector as createSearchSelector3,
858
+ filterEntitiesArrayFieldByValues as filterEntitiesArrayFieldByValues3,
859
+ filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues5,
860
+ makeGetAllEntities as makeGetAllEntities2,
861
+ makeGetEntityById as makeGetEntityById3
862
+ } from "@lls/utils";
863
+ import _6 from "lodash/fp.js";
864
+ var search5 = ({
865
+ ids,
866
+ chapterIds,
867
+ isValid,
868
+ oldLessonIds,
869
+ premium,
870
+ thematicNames,
871
+ bookIds,
872
+ isOriginal,
873
+ hasNewDesign,
874
+ slugs,
875
+ isLearningAssessment,
876
+ isCreatedFromScratch
877
+ }) => _6.flow(
878
+ filterEntitiesSimpleFieldByValues5("id", ids),
879
+ filterEntitiesSimpleFieldByValues5("chapter", chapterIds),
880
+ filterEntitiesSimpleFieldByValues5("valid", _6.isNil(isValid) ? void 0 : [isValid]),
881
+ filterEntitiesSimpleFieldByValues5("isOriginal", _6.isNil(isOriginal) ? void 0 : [isOriginal]),
882
+ filterEntitiesSimpleFieldByValues5("hasNewDesign", _6.isNil(hasNewDesign) ? void 0 : [hasNewDesign]),
883
+ filterEntitiesSimpleFieldByValues5("slug", slugs),
884
+ filterEntitiesSimpleFieldByValues5("oldLesson", oldLessonIds),
885
+ filterEntitiesSimpleFieldByValues5(
886
+ "isLearningAssessment",
887
+ _6.isNil(isLearningAssessment) ? void 0 : [isLearningAssessment]
888
+ ),
889
+ filterEntitiesSimpleFieldByValues5(
890
+ "isCreatedFromScratch",
891
+ _6.isNil(isCreatedFromScratch) ? void 0 : [isCreatedFromScratch]
892
+ ),
893
+ filterEntitiesSimpleFieldByValues5("premium", _6.isNil(premium) ? void 0 : [premium]),
894
+ filterEntitiesSimpleFieldByValues5("thematicName", thematicNames),
895
+ filterEntitiesSimpleFieldByValues5("book", bookIds)
896
+ );
897
+ var { getPages, getPage, searchPages, makeSearchPages, filterPages } = crud("pages", {
898
+ search: search5
899
+ });
900
+ var getDraftPages = makeGetAllEntities2("drafts");
901
+ var makeGetDraftPage = () => makeGetEntityById3("drafts");
902
+ var getDraftPage = makeGetDraftPage();
903
+ var makeSearchDraftPages = () => createSearchSelector3(
904
+ getDraftPages,
905
+ (_state, params) => params,
906
+ (pages, params) => search5(params)(pages)
907
+ );
908
+ var searchDraftPages = makeSearchDraftPages();
909
+ var makeSearchModifiedPages = () => createSearchSelector3(
910
+ getPages,
911
+ (_state, params) => params,
912
+ (pages, {
913
+ chapterIds,
914
+ userIds,
915
+ originalPageIds,
916
+ parentIds,
917
+ bookIds,
918
+ sharedUserIds,
919
+ updatedAfter,
920
+ isLearningAssessment,
921
+ thematicNames,
922
+ isDraft,
923
+ isCreatedFromScratch,
924
+ isParentCreatedFromScratch,
925
+ sharedGroups
926
+ }) => _6.flow(
927
+ filterEntitiesSimpleFieldByValues5("parent", parentIds),
928
+ filterEntitiesSimpleFieldByValues5("chapter", chapterIds),
929
+ filterEntitiesSimpleFieldByValues5("book", bookIds),
930
+ filterEntitiesSimpleFieldByValues5("user", userIds),
931
+ filterEntitiesSimpleFieldByValues5("originalPage", originalPageIds),
932
+ filterEntitiesArrayFieldByValues3("sharedUsers", sharedUserIds),
933
+ filterEntitiesArrayFieldByValues3("sharedGroups", sharedGroups),
934
+ filterEntitiesSimpleFieldByValues5("isOriginal", [false]),
935
+ filterEntitiesSimpleFieldByValues5("thematicName", thematicNames),
936
+ !_6.isNil(isLearningAssessment) ? filterEntitiesSimpleFieldByValues5("isLearningAssessment", [isLearningAssessment]) : _6.identity,
937
+ !_6.isNil(isCreatedFromScratch) ? filterEntitiesSimpleFieldByValues5("isCreatedFromScratch", [isCreatedFromScratch]) : _6.identity,
938
+ !_6.isNil(isDraft) ? filterEntitiesSimpleFieldByValues5("isDraft", [isDraft]) : _6.identity,
939
+ isParentCreatedFromScratch ? _6.filter(
940
+ (entity) => _6.flow(_6.find({ id: entity?.originalPage }), _6.get("isCreatedFromScratch"))(pages)
941
+ ) : _6.identity,
942
+ updatedAfter ? _6.filter(
943
+ _6.flow(_6.get("updatedAt"), (date) => new Date(date) - updatedAfter >= 0)
944
+ ) : _6.identity
945
+ )(pages)
946
+ );
947
+ var searchModifiedPages = makeSearchModifiedPages();
948
+
949
+ // src/selectors/collection.ts
950
+ init_define_import_meta();
951
+ import _7 from "lodash/fp.js";
952
+ var search6 = (_params) => _7.identity;
953
+ var { getCollections, getCollection, searchCollections, makeSearchCollections } = crud("collections", {
954
+ search: search6
955
+ });
956
+
957
+ // src/selectors/communityProject.ts
958
+ init_define_import_meta();
959
+ import { filterEntitiesArrayFieldByValues as filterEntitiesArrayFieldByValues4, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues6 } from "@lls/utils";
960
+ import _8 from "lodash/fp.js";
961
+ var search7 = ({
962
+ slugs,
963
+ isFeatured,
964
+ projectTypes
965
+ }) => _8.flow(
966
+ filterEntitiesSimpleFieldByValues6("slug", slugs),
967
+ filterEntitiesSimpleFieldByValues6("isFeatured", _8.isNil(isFeatured) ? void 0 : [isFeatured]),
968
+ filterEntitiesArrayFieldByValues4("projectTypes", projectTypes)
969
+ );
970
+ var { getCommunityProjects, getCommunityProject, searchCommunityProjects, makeSearchCommunityProjects } = crud(
971
+ "communityProjects",
972
+ {
973
+ search: search7
974
+ }
975
+ );
976
+
977
+ // src/selectors/contact.ts
978
+ init_define_import_meta();
979
+ import _9 from "lodash/fp.js";
980
+ var search8 = (_params) => _9.identity;
981
+ var { getContacts, getContact, searchContacts, makeSearchContacts } = crud("contacts", {
982
+ search: search8
983
+ });
984
+
985
+ // src/selectors/copyNotification.ts
986
+ init_define_import_meta();
987
+ import { createSearchSelector as createSearchSelector4, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues7, makeGetAllEntities as makeGetAllEntities3 } from "@lls/utils";
988
+ import _10 from "lodash/fp.js";
989
+ var getCopyNotifications = makeGetAllEntities3("copyNotifications");
990
+ var makeSearchCopyNotifications = () => createSearchSelector4(
991
+ [getCurrentUser, getCopyNotifications, (_25, params) => params],
992
+ (currentUser, copyNotifications, { pageIds, read }) => _10.flow(
993
+ _10.get("copyNotifications"),
994
+ (ids) => _10.flow(
995
+ filterEntitiesSimpleFieldByValues7("id", ids),
996
+ filterEntitiesSimpleFieldByValues7("page", pageIds),
997
+ filterEntitiesSimpleFieldByValues7("read", _10.isNil(read) ? void 0 : [read])
998
+ )(copyNotifications)
999
+ )(currentUser)
1000
+ );
1001
+ var searchCopyNotifications = makeSearchCopyNotifications();
1002
+
1003
+ // src/selectors/drawerNotification.ts
1004
+ init_define_import_meta();
1005
+ import { createSearchSelector as createSearchSelector5, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues8, makeGetAllEntities as makeGetAllEntities4 } from "@lls/utils";
1006
+ import _11 from "lodash/fp.js";
1007
+ var getDrawerNotifications = makeGetAllEntities4("drawerNotifications");
1008
+ var makeSearchDrawerNotifications = () => createSearchSelector5(
1009
+ [getCurrentUser, getDrawerNotifications, (_25, params) => params],
1010
+ (currentUser, drawerNotifications, { read, pageIds }) => _11.flow(
1011
+ _11.get("drawerNotifications"),
1012
+ (ids) => _11.flow(
1013
+ filterEntitiesSimpleFieldByValues8("id", ids),
1014
+ filterEntitiesSimpleFieldByValues8("read", _11.isNil(read) ? void 0 : [read]),
1015
+ filterEntitiesSimpleFieldByValues8("page", pageIds)
1016
+ )(drawerNotifications)
1017
+ )(currentUser)
1018
+ );
1019
+ var searchDrawerNotifications = makeSearchDrawerNotifications();
1020
+
1021
+ // src/selectors/faq.ts
1022
+ init_define_import_meta();
1023
+ import { makeGetAllEntities as makeGetAllEntities5 } from "@lls/utils";
1024
+ var getFaqs = makeGetAllEntities5("faq");
1025
+
1026
+ // src/selectors/garDivision.ts
1027
+ init_define_import_meta();
1028
+ import _12 from "lodash/fp.js";
1029
+ var search9 = (_params) => _12.identity;
1030
+ var { getGarDivisions, getGarDivision, searchGarDivisions, makeSearchGarDivisions } = crud("garDivisions", {
1031
+ search: search9
1032
+ });
1033
+
1034
+ // src/selectors/group.ts
1035
+ init_define_import_meta();
1036
+ var import_reselect2 = __toESM(require_lib(), 1);
1037
+ import { filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues9 } from "@lls/utils";
1038
+ import _13 from "lodash/fp.js";
1039
+ var search10 = ({ ownerIds }) => _13.flow(filterEntitiesSimpleFieldByValues9("owner", ownerIds), _13.orderBy("createdAt", ["desc"]));
1040
+ var { getGroups, getGroup, searchGroups, makeSearchGroups } = crud("groups", {
1041
+ search: search10
1042
+ });
1043
+ var getUserGroups = (0, import_reselect2.createSelector)(
1044
+ [getGroups, getCurrentUser],
1045
+ (groups, currentUser) => search10({ ownerIds: [currentUser?.id] })(groups)
1046
+ );
1047
+
1048
+ // src/selectors/level.ts
1049
+ init_define_import_meta();
1050
+ var import_reselect3 = __toESM(require_lib(), 1);
1051
+ import { filterEntitiesSimpleFieldByValue as filterEntitiesSimpleFieldByValue2, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues10 } from "@lls/utils";
1052
+ import _14 from "lodash/fp.js";
1053
+ var search11 = ({
1054
+ ids,
1055
+ slugs,
1056
+ isPreSchool,
1057
+ isMiddleSchool,
1058
+ isHighSchool,
1059
+ isProHighSchool,
1060
+ isGenHighSchool,
1061
+ isElementarySchool
1062
+ }) => _14.flow(
1063
+ filterEntitiesSimpleFieldByValues10("id", ids),
1064
+ filterEntitiesSimpleFieldByValues10("slug", slugs),
1065
+ filterEntitiesSimpleFieldByValue2("isPreSchool", isPreSchool),
1066
+ filterEntitiesSimpleFieldByValue2("isMiddleSchool", isMiddleSchool),
1067
+ filterEntitiesSimpleFieldByValue2("isHighSchool", isHighSchool),
1068
+ filterEntitiesSimpleFieldByValue2("isProHighSchool", isProHighSchool),
1069
+ filterEntitiesSimpleFieldByValue2("isGenHighSchool", isGenHighSchool),
1070
+ filterEntitiesSimpleFieldByValue2("isElementarySchool", isElementarySchool),
1071
+ _14.orderBy("order", "desc")
1072
+ );
1073
+ var crudLevels = crud("levels", { search: search11 });
1074
+ var { getLevel, searchLevels, makeSearchLevels } = crudLevels;
1075
+ var getLevels = (0, import_reselect3.createSelector)(crudLevels.getLevels, _14.orderBy("order", "desc"));
1076
+
1077
+ // src/selectors/mainNotification.ts
1078
+ init_define_import_meta();
1079
+ var import_reselect4 = __toESM(require_lib(), 1);
1080
+ import { filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues11, makeGetAllEntities as makeGetAllEntities6 } from "@lls/utils";
1081
+ import _15 from "lodash/fp.js";
1082
+ var getAllMainNotifications = makeGetAllEntities6("mainNotifications");
1083
+ var search12 = ({ ids }) => _15.flow(filterEntitiesSimpleFieldByValues11("id", ids));
1084
+ var getMainNotifications = (0, import_reselect4.createSelector)(
1085
+ [_15.flow(getCurrentUser, _15.get("mainNotifications")), getAllMainNotifications],
1086
+ (userNotifications, notifications) => search12({ ids: userNotifications })(notifications)
1087
+ );
1088
+
1089
+ // src/selectors/news.ts
1090
+ init_define_import_meta();
1091
+ import { filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues12 } from "@lls/utils";
1092
+ var search13 = ({ ids }) => filterEntitiesSimpleFieldByValues12("id", ids);
1093
+ var {
1094
+ getNews: getAllNews,
1095
+ getNew: getNews,
1096
+ searchNews,
1097
+ makeSearchNews
1098
+ } = crud("news", {
1099
+ search: search13
1100
+ });
1101
+
1102
+ // src/selectors/panorama.ts
1103
+ init_define_import_meta();
1104
+ import { makeGetEntityById as makeGetEntityById4 } from "@lls/utils";
1105
+ var getPanorama = makeGetEntityById4("panoramas");
1106
+
1107
+ // src/selectors/premiumResource.ts
1108
+ init_define_import_meta();
1109
+ import { filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues13 } from "@lls/utils";
1110
+ var search14 = ({ bookIds }) => filterEntitiesSimpleFieldByValues13("book", bookIds);
1111
+ var { getPremiumResources, getPremiumResource, searchPremiumResources, makeSearchPremiumResources } = crud(
1112
+ "premiumResources",
1113
+ {
1114
+ search: search14
1115
+ }
1116
+ );
1117
+
1118
+ // src/selectors/product.ts
1119
+ init_define_import_meta();
1120
+ import _16 from "lodash/fp.js";
1121
+ import {
1122
+ createSearchSelector as createSearchSelector6,
1123
+ filterEntitiesArrayFieldByValues as filterEntitiesArrayFieldByValues5,
1124
+ filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues14,
1125
+ makeGetAllEntities as makeGetAllEntities7
1126
+ } from "@lls/utils";
1127
+ var getProducts = makeGetAllEntities7("products");
1128
+ var search15 = ({
1129
+ ids,
1130
+ eans,
1131
+ isAdoptant,
1132
+ isSupportPlus,
1133
+ levelIds,
1134
+ subjectIds,
1135
+ productTypes
1136
+ }) => {
1137
+ return _16.flow(
1138
+ (products, books) => levelIds || subjectIds ? filterEntitiesArrayFieldByValues5("books", _16.map("id", books))(products) : products,
1139
+ filterEntitiesSimpleFieldByValues14("id", ids),
1140
+ filterEntitiesSimpleFieldByValues14("ean", eans),
1141
+ filterEntitiesSimpleFieldByValues14("isAdoptant", _16.isBoolean(isAdoptant) ? [isAdoptant] : void 0),
1142
+ filterEntitiesSimpleFieldByValues14("isSupportPlus", _16.isBoolean(isSupportPlus) ? [isSupportPlus] : void 0),
1143
+ filterEntitiesSimpleFieldByValues14("productType", productTypes)
1144
+ );
1145
+ };
1146
+ var searchBooks2 = makeSearchBooks();
1147
+ var searchProducts = createSearchSelector6(
1148
+ getProducts,
1149
+ (state, { levelIds, subjectIds }) => searchBooks2(state, { levelIds, subjectIds }),
1150
+ (_state, params) => params,
1151
+ (products, books, params) => search15(params)(products, books)
1152
+ );
1153
+
1154
+ // src/selectors/resource.ts
1155
+ init_define_import_meta();
1156
+ import { filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues15 } from "@lls/utils";
1157
+ import _17 from "lodash/fp.js";
1158
+ var search16 = ({ chapterIds }) => _17.flow(filterEntitiesSimpleFieldByValues15("chapter", chapterIds));
1159
+ var { getResources, getResource, searchResources, makeSearchResources } = crud("resources", {
1160
+ search: search16
1161
+ });
1162
+
1163
+ // src/selectors/schoolType.ts
1164
+ init_define_import_meta();
1165
+ import { filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues16 } from "@lls/utils";
1166
+ var search17 = ({ slugs }) => filterEntitiesSimpleFieldByValues16("slug", slugs);
1167
+ var { getSchoolTypes, getSchoolType, searchSchoolTypes, makeSearchSchoolTypes } = crud("schoolTypes", {
1168
+ search: search17
1169
+ });
1170
+
1171
+ // src/selectors/sharedPage.ts
1172
+ init_define_import_meta();
1173
+ import { createSearchSelector as createSearchSelector7, filterEntitiesSimpleFieldByValue as filterEntitiesSimpleFieldByValue3, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues17 } from "@lls/utils";
1174
+ import _18 from "lodash/fp.js";
1175
+ var search18 = ({
1176
+ parentIds,
1177
+ userIds,
1178
+ bookIds,
1179
+ isCreatedFromScratch,
1180
+ isLearningAssessment,
1181
+ ids
1182
+ }) => _18.flow(
1183
+ filterEntitiesSimpleFieldByValues17("id", ids),
1184
+ filterEntitiesSimpleFieldByValues17("parent", parentIds),
1185
+ filterEntitiesSimpleFieldByValues17("user", userIds),
1186
+ filterEntitiesSimpleFieldByValues17("book", bookIds),
1187
+ filterEntitiesSimpleFieldByValue3("isLearningAssessment", isLearningAssessment),
1188
+ filterEntitiesSimpleFieldByValue3("isCreatedFromScratch", isCreatedFromScratch)
1189
+ );
1190
+ var { getSharedPages, getSharedPage, searchSharedPages, makeSearchSharedPages } = crud("sharedPages", {
1191
+ search: search18
1192
+ });
1193
+ var searchCurrentUserSharedPages = createSearchSelector7(
1194
+ getCurrentUser,
1195
+ getSharedPages,
1196
+ (_25, params) => params,
1197
+ (user2, sharedPages, params) => {
1198
+ const sharedUserPageIds = user2?.sharedPages ?? [];
1199
+ return search18({ ...params, ids: _18.intersection(sharedUserPageIds, params.ids || sharedUserPageIds) })(sharedPages);
1200
+ }
1201
+ );
1202
+
1203
+ // src/selectors/student.ts
1204
+ init_define_import_meta();
1205
+ import { filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues18 } from "@lls/utils";
1206
+ var search19 = ({ ids }) => filterEntitiesSimpleFieldByValues18("id", ids);
1207
+ var { getStudents, getStudent, searchStudents, makeSearchStudents } = crud("students", {
1208
+ search: search19
1209
+ });
1210
+
1211
+ // src/selectors/subject.ts
1212
+ init_define_import_meta();
1213
+ import {
1214
+ filterEntitiesArrayFieldByValues as filterEntitiesArrayFieldByValues6,
1215
+ filterEntitiesFieldExists as filterEntitiesFieldExists2,
1216
+ filterEntitiesSimpleFieldByValue as filterEntitiesSimpleFieldByValue4,
1217
+ filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues19,
1218
+ limitToTeacherSubjects
1219
+ } from "@lls/utils";
1220
+ import _19 from "lodash/fp.js";
1221
+ var search20 = ({
1222
+ ids,
1223
+ slugs,
1224
+ isTeacherSubject,
1225
+ hasNewsletterUrl,
1226
+ schoolTypes,
1227
+ hasBooks,
1228
+ names
1229
+ }) => _19.flow(
1230
+ filterEntitiesSimpleFieldByValues19("id", ids),
1231
+ filterEntitiesSimpleFieldByValues19("slug", slugs),
1232
+ filterEntitiesSimpleFieldByValues19("name", names),
1233
+ filterEntitiesSimpleFieldByValue4("hasBooks", hasBooks),
1234
+ filterEntitiesArrayFieldByValues6("schoolTypes", schoolTypes),
1235
+ (subjects) => _19.isNil(isTeacherSubject) ? subjects : limitToTeacherSubjects(subjects),
1236
+ filterEntitiesFieldExists2("newsletterUrl", hasNewsletterUrl)
1237
+ );
1238
+ var { getSubjects, getSubject, searchSubjects, makeSearchSubjects } = crud("subjects", {
1239
+ search: search20
1240
+ });
1241
+
1242
+ // src/selectors/teacher.ts
1243
+ init_define_import_meta();
1244
+ import { filterEntitiesArrayFieldByValues as filterEntitiesArrayFieldByValues7, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues20 } from "@lls/utils";
1245
+ import _20 from "lodash/fp.js";
1246
+ var search21 = ({ ids, schoolIds }) => _20.flow(filterEntitiesSimpleFieldByValues20("id", ids), filterEntitiesArrayFieldByValues7("schools", schoolIds));
1247
+ var { getTeachers, getTeacher, searchTeachers, makeSearchTeachers } = crud("teachers", {
1248
+ search: search21
1249
+ });
1250
+
1251
+ // src/selectors/tool.ts
1252
+ init_define_import_meta();
1253
+ import { filterEntitiesArrayFieldByValues as filterEntitiesArrayFieldByValues8, filterEntitiesSimpleFieldByValues as filterEntitiesSimpleFieldByValues21 } from "@lls/utils";
1254
+ import _21 from "lodash/fp.js";
1255
+ var search22 = ({ ids, locked, bookIds }) => _21.flow(
1256
+ filterEntitiesSimpleFieldByValues21("id", ids),
1257
+ filterEntitiesSimpleFieldByValues21("locked", _21.isNil(locked) ? void 0 : [locked]),
1258
+ filterEntitiesArrayFieldByValues8("books", bookIds)
1259
+ );
1260
+ var { getTools, getTool, searchTools, makeSearchTools } = crud("tools", {
1261
+ search: search22
1262
+ });
1263
+
793
1264
  // src/reducers/entities.ts
794
1265
  init_define_import_meta();
795
1266
  import { makeReducer } from "@lls/utils";
796
- import _5 from "lodash/fp.js";
1267
+ import _22 from "lodash/fp.js";
797
1268
 
798
1269
  // src/actions/index.ts
799
1270
  init_define_import_meta();
@@ -816,47 +1287,53 @@ var resetAuth = makeActionCreator(actionTypes.RESET_AUTH);
816
1287
  // src/reducers/entities.ts
817
1288
  var deleteEntityReducer = (state, payload) => {
818
1289
  const { path } = payload;
819
- return _5.omit(path, state);
1290
+ return _22.omit(path, state);
820
1291
  };
821
1292
  var updateEntityReducer = (state, payload) => {
822
1293
  const { path, entity } = payload;
823
- const currentEntity = _5.get(path, state);
824
- return _5.set(path, _5.merge(currentEntity, entity), state);
1294
+ const currentEntity = _22.get(path, state);
1295
+ return _22.set(path, _22.merge(currentEntity, entity), state);
825
1296
  };
826
1297
  var setEntityReducer = (state, payload) => {
827
1298
  const { path, entity } = payload;
828
- return _5.set(path, entity, state);
829
- };
830
- var shallowAssign = (old, next, transform) => {
831
- let updated = false;
832
- const merged = _5.flow(
833
- _5.toPairs,
834
- _5.reduce((memo, [key, val]) => {
835
- if (_5.isEmpty(val)) return memo;
836
- if (!old[key]) {
837
- updated = true;
838
- memo[key] = val;
839
- return memo;
840
- }
841
- const maybeEqual = transform(old[key], next[key]);
842
- if (maybeEqual !== old[key]) {
843
- updated = true;
844
- memo[key] = maybeEqual;
845
- return memo;
846
- }
847
- return memo;
848
- }, _5.clone(old))
849
- )(next);
850
- return updated ? merged : old;
1299
+ return _22.set(path, entity, state);
851
1300
  };
852
1301
  var setEntitiesReducer = (state, payload) => {
853
- return shallowAssign(state, payload, (entityKind, nextEntityKind) => {
854
- return shallowAssign(
855
- entityKind,
856
- nextEntityKind,
857
- (oldEntity, nextEntity) => _5.isEqual(oldEntity, nextEntity) ? oldEntity : _5.assign(oldEntity, nextEntity)
858
- );
1302
+ if (typeof payload !== "object") return state;
1303
+ const stateDrafts = {};
1304
+ Object.keys(payload).forEach((entityName) => {
1305
+ const entities2 = payload[entityName];
1306
+ const entityDraft = {};
1307
+ if (!entities2) {
1308
+ return;
1309
+ }
1310
+ Object.keys(entities2).forEach((id) => {
1311
+ const entity = entities2[id];
1312
+ if (!state[entityName]?.[id]) {
1313
+ entityDraft[id] = entity;
1314
+ } else {
1315
+ if (typeof entity === "undefined") {
1316
+ return;
1317
+ }
1318
+ const diff = Object.keys(entity).some((prop) => {
1319
+ const value = entity[prop];
1320
+ if (!_22.isEqual(state[entityName]?.[id]?.[prop], value)) {
1321
+ return true;
1322
+ }
1323
+ });
1324
+ if (diff) {
1325
+ entityDraft[id] = Object.assign({}, state[entityName]?.[id], entity);
1326
+ }
1327
+ }
1328
+ });
1329
+ if (Object.keys(entityDraft).length !== 0) {
1330
+ stateDrafts[entityName] = { ...state[entityName], ...entityDraft };
1331
+ }
859
1332
  });
1333
+ if (Object.keys(stateDrafts).length !== 0) {
1334
+ return { ...state, ...stateDrafts };
1335
+ }
1336
+ return state;
860
1337
  };
861
1338
  var entities = makeReducer(
862
1339
  {},
@@ -872,7 +1349,7 @@ var entities_default = entities;
872
1349
  // src/reducers/auth.ts
873
1350
  init_define_import_meta();
874
1351
  import { makeReducer as makeReducer2 } from "@lls/utils";
875
- import _6 from "lodash/fp.js";
1352
+ import _23 from "lodash/fp.js";
876
1353
  var initialState = {
877
1354
  id: void 0,
878
1355
  role: null,
@@ -885,15 +1362,15 @@ var initialState = {
885
1362
  llsUserId: null
886
1363
  };
887
1364
  var auth = makeReducer2(initialState, {
888
- [actionTypes.SET_AUTH]: _6.assign,
889
- [actionTypes.RESET_AUTH]: _6.constant(initialState)
1365
+ [actionTypes.SET_AUTH]: _23.assign,
1366
+ [actionTypes.RESET_AUTH]: _23.constant(initialState)
890
1367
  });
891
1368
  var auth_default = auth;
892
1369
 
893
1370
  // src/schema/index.ts
894
1371
  init_define_import_meta();
895
1372
  var import_normalizr = __toESM(require_normalizr(), 1);
896
- import _7 from "lodash/fp.js";
1373
+ import _24 from "lodash/fp.js";
897
1374
  var document = new import_normalizr.schema.Entity("documents", {}, { idAttribute: "resourceId" });
898
1375
  var subject = new import_normalizr.schema.Entity("subjects");
899
1376
  var level = new import_normalizr.schema.Entity("levels");
@@ -908,6 +1385,7 @@ var teacher = new import_normalizr.schema.Entity("teachers");
908
1385
  var faq = new import_normalizr.schema.Entity("faq");
909
1386
  var product = new import_normalizr.schema.Entity("products");
910
1387
  var communityProjects = new import_normalizr.schema.Entity("communityProjects");
1388
+ var builderIo = new import_normalizr.schema.Entity("builderIos");
911
1389
  var grammarRule = new import_normalizr.schema.Entity("grammarRules", {}, { idAttribute: "objectID" });
912
1390
  var mainNotification = new import_normalizr.schema.Entity("mainNotifications");
913
1391
  var explorerResult = new import_normalizr.schema.Entity("explorerResults", {}, { idAttribute: "resourceId" });
@@ -1070,7 +1548,8 @@ var querySchema = {
1070
1548
  addLikeFaq: faq,
1071
1549
  communityProjects: [communityProjects],
1072
1550
  createAnalytics: analytic,
1073
- faq: [faq]
1551
+ faq: [faq],
1552
+ builderIos: [builderIo]
1074
1553
  },
1075
1554
  static: {
1076
1555
  projetVoltaire: {
@@ -1078,20 +1557,117 @@ var querySchema = {
1078
1557
  }
1079
1558
  }
1080
1559
  };
1081
- var normalizeData = _7.flow((data) => (0, import_normalizr.normalize)(data, querySchema));
1560
+ var normalizeData = _24.flow((data) => (0, import_normalizr.normalize)(data, querySchema));
1082
1561
  export {
1083
1562
  auth_default as authReducer,
1084
1563
  entities_default as entitiesReducer,
1564
+ filterPages,
1565
+ getAllNews,
1566
+ getAuth,
1567
+ getBook,
1568
+ getBooks,
1569
+ getChapter,
1570
+ getChapters,
1571
+ getCollection,
1572
+ getCollections,
1573
+ getCommunityProject,
1574
+ getCommunityProjects,
1575
+ getContact,
1576
+ getContacts,
1085
1577
  getCurrentUser,
1578
+ getDraftPage,
1579
+ getDraftPages,
1580
+ getFaqs,
1581
+ getGarDivision,
1582
+ getGarDivisions,
1583
+ getGroup,
1584
+ getGroups,
1585
+ getIsLogged,
1586
+ getLevel,
1587
+ getLevels,
1588
+ getMainNotifications,
1589
+ getNews,
1590
+ getPage,
1591
+ getPages,
1592
+ getPanorama,
1593
+ getPremiumResource,
1594
+ getPremiumResources,
1595
+ getProducts,
1596
+ getResource,
1597
+ getResources,
1086
1598
  getSchool,
1599
+ getSchoolType,
1600
+ getSchoolTypes,
1087
1601
  getSchools,
1602
+ getSharedPage,
1603
+ getSharedPages,
1604
+ getStudent,
1605
+ getStudents,
1606
+ getSubject,
1607
+ getSubjects,
1608
+ getTeacher,
1609
+ getTeachers,
1610
+ getToken,
1611
+ getTool,
1612
+ getTools,
1088
1613
  getUser,
1614
+ getUserGroups,
1089
1615
  getUsers,
1616
+ makeGetBook,
1617
+ makeGetDraftPage,
1618
+ makeSearchBooks,
1619
+ makeSearchChapters,
1620
+ makeSearchCollections,
1621
+ makeSearchCommunityProjects,
1622
+ makeSearchContacts,
1623
+ makeSearchCopyNotifications,
1624
+ makeSearchDraftPages,
1625
+ makeSearchDrawerNotifications,
1626
+ makeSearchGarDivisions,
1627
+ makeSearchGroups,
1628
+ makeSearchLevels,
1629
+ makeSearchModifiedPages,
1630
+ makeSearchNews,
1631
+ makeSearchPages,
1632
+ makeSearchPremiumResources,
1633
+ makeSearchResources,
1634
+ makeSearchSchoolTypes,
1090
1635
  makeSearchSchools,
1636
+ makeSearchSharedPages,
1637
+ makeSearchStudents,
1638
+ makeSearchSubjects,
1639
+ makeSearchTeachers,
1640
+ makeSearchTools,
1091
1641
  makeSearchUsers,
1642
+ makeSearchValidBooks,
1092
1643
  normalizeData,
1093
1644
  querySchema,
1645
+ searchBooks,
1646
+ searchChapters,
1647
+ searchCollections,
1648
+ searchCommunityProjects,
1649
+ searchContacts,
1650
+ searchCopyNotifications,
1651
+ searchCurrentUserSharedPages,
1652
+ searchDraftPages,
1653
+ searchDrawerNotifications,
1654
+ searchGarDivisions,
1655
+ searchGroups,
1656
+ searchLevels,
1657
+ searchModifiedPages,
1658
+ searchNews,
1659
+ searchPages,
1660
+ searchPremiumResources,
1661
+ searchProducts,
1662
+ searchResources,
1663
+ searchSchoolTypes,
1094
1664
  searchSchools,
1665
+ searchSharedPages,
1666
+ searchStudents,
1667
+ searchSubjects,
1668
+ searchTeachers,
1669
+ searchTools,
1095
1670
  searchUsers,
1671
+ searchValidBooks,
1096
1672
  setEntitiesReducer
1097
1673
  };
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.1.59-6b359862",
5
+ "version": "24.1.59-80c28b0a",
6
6
  "type": "module",
7
7
  "types": "./lib/builttypes/store/src/index.d.ts",
8
8
  "exports": {
@@ -28,7 +28,7 @@
28
28
  "react": "*"
29
29
  },
30
30
  "devDependencies": {
31
- "@biomejs/biome": "1.8.4-nightly.a579bf7",
31
+ "@biomejs/biome": "1.8.4-nightly.7aaf0ce",
32
32
  "@types/lodash": "4.17.6",
33
33
  "@types/node": "20.14.10",
34
34
  "@types/react": "18.3.3",
@@ -41,8 +41,8 @@
41
41
  "vite": "5.3.3",
42
42
  "vite-tsconfig-paths": "4.3.2",
43
43
  "vitest": "2.0.0",
44
- "@lls/utils": "24.1.59-6b359862",
45
- "@lls/vitescripts": "24.1.59-6b359862"
44
+ "@lls/utils": "24.1.59-80c28b0a",
45
+ "@lls/vitescripts": "24.1.59-80c28b0a"
46
46
  },
47
47
  "license": "ISC",
48
48
  "dependencies": {