PageSourceSearch

https://www.classitplus.com/chunk-OQNOEQ2S.js

js classitplus.com collected 2026-10-08 15:57:09 UTC 12,063 bytes, 329 lines download raw bytes

1import {
2  WhatsNewChangeType
3} from "./chunk-GKL4XSYI.js";
4import {
5  ResponseStatus
6} from "./chunk-I5O6MS2V.js";
7import {
8  environment,
9  patchState,
10  rxMethod,
11  signalStore,
12  tapResponse,
13  withDevtools,
14  withMethods,
15  withState
16} from "./chunk-2R66D2SU.js";
17import {
18  HttpClient
19} from "./chunk-YMUBKLGP.js";
20import {
21  Injectable,
22  inject,
23  setClassMetadata,
24  ɵɵdefineInjectable
25} from "./chunk-52VUJERO.js";
26import {
27  __objRest,
28  __spreadProps,
29  __spreadValues,
30  pipe,
31  switchMap,
32  tap
33} from "./chunk-5ZUB67RD.js";
34
35// src/app/features/home/models/home.model.ts
36var HomePageTileType;
37(function(HomePageTileType2) {
38  HomePageTileType2[HomePageTileType2["None"] = 0] = "None";
39  HomePageTileType2[HomePageTileType2["SearchHistory"] = 1] = "SearchHistory";
40  HomePageTileType2[HomePageTileType2["Favorite"] = 2] = "Favorite";
41  HomePageTileType2[HomePageTileType2["Synonym"] = 3] = "Synonym";
42  HomePageTileType2[HomePageTileType2["NmfcBook"] = 4] = "NmfcBook";
43  HomePageTileType2[HomePageTileType2["Comment"] = 5] = "Comment";
44  HomePageTileType2[HomePageTileType2["CompanyCommon"] = 6] = "CompanyCommon";
45  HomePageTileType2[HomePageTileType2["Default"] = 100] = "Default";
46})(HomePageTileType || (HomePageTileType = {}));
47var HomePageTileSubType;
48(function(HomePageTileSubType2) {
49  HomePageTileSubType2[HomePageTileSubType2["MostVisited"] = 0] = "MostVisited";
50  HomePageTileSubType2[HomePageTileSubType2["LastVisited"] = 1] = "LastVisited";
51  HomePageTileSubType2[HomePageTileSubType2["NMFCBookSummary"] = 2] = "NMFCBookSummary";
52  HomePageTileSubType2[HomePageTileSubType2["RecentlyVisited"] = 3] = "RecentlyVisited";
53  HomePageTileSubType2[HomePageTileSubType2["Bookmarked"] = 4] = "Bookmarked";
54  HomePageTileSubType2[HomePageTileSubType2["SearchHistorySummary"] = 5] = "SearchHistorySummary";
55  HomePageTileSubType2[HomePageTileSubType2["Recently"] = 6] = "Recently";
56  HomePageTileSubType2[HomePageTileSubType2["Yesterday"] = 7] = "Yesterday";
57  HomePageTileSubType2[HomePageTileSubType2["Previous"] = 8] = "Previous";
58  HomePageTileSubType2[HomePageTileSubType2["CompanyCommonSummary"] = 9] = "CompanyCommonSummary";
59  HomePageTileSubType2[HomePageTileSubType2["SearchHistory"] = 10] = "SearchHistory";
60  HomePageTileSubType2[HomePageTileSubType2["Bookmarks"] = 11] = "Bookmarks";
61  HomePageTileSubType2[HomePageTileSubType2["Synonyms"] = 12] = "Synonyms";
62  HomePageTileSubType2[HomePageTileSubType2["Favorites"] = 13] = "Favorites";
63})(HomePageTileSubType || (HomePageTileSubType = {}));
64var HomePageTileSubjectMatter;
65(function(HomePageTileSubjectMatter2) {
66  HomePageTileSubjectMatter2[HomePageTileSubjectMatter2["NONE"] = 0] = "NONE";
67  HomePageTileSubjectMatter2[HomePageTileSubjectMatter2["SYNONYM"] = 1] = "SYNONYM";
68  HomePageTileSubjectMatter2[HomePageTileSubjectMatter2["ARTICLE"] = 2] = "ARTICLE";
69  HomePageTileSubjectMatter2[HomePageTileSubjectMatter2["FAVORITE"] = 3] = "FAVORITE";
70  HomePageTileSubjectMatter2[HomePageTileSubjectMatter2["BOOKMARK"] = 4] = "BOOKMARK";
71  HomePageTileSubjectMatter2[HomePageTileSubjectMatter2["SEARCH_HISTORY"] = 5] = "SEARCH_HISTORY";
72})(HomePageTileSubjectMatter || (HomePageTileSubjectMatter = {}));
73
74// src/app/features/home/services/home.service.ts
75var HomeService = class _HomeService {
76  // DI Services
77  http = inject(HttpClient);
78  getHomeData() {
79    return this.http.get(new URL("homepage/gettiles", environment.apiUrl).href);
80  }
81  //Set custom user tiles
82  setUserTiles(setHomePageTileRequests) {
83    return this.http.post(new URL(`/Homepage/SetUserTiles`, environment.apiUrl).href, setHomePageTileRequests);
84  }
85  static \u0275fac = function HomeService_Factory(__ngFactoryType__) {
86    return new (__ngFactoryType__ || _HomeService)();
87  };
88  static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _HomeService, factory: _HomeService.\u0275fac, providedIn: "root" });
89};
90(() => {
91  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(HomeService, [{
92    type: Injectable,
93    args: [{
94      providedIn: "root"
95    }]
96  }], null, null);
97})();
98
99// src/app/features/home/store/home.store.ts
100var initialState = {
101  tiles: [],
102  pinned: [],
103  unpinned: [],
104  pinnedNames: [],
105  loading: false,
106  status: {
107    updateHomePageStatus: ResponseStatus.IDLE
108  }
109};
110var HomeStore = signalStore({ providedIn: "root" }, withDevtools("home"), withState(initialState), withMethods((store) => ({
111  updatePinnedOrder(homeTiles) {
112    homeTiles = homeTiles.map((tile) => {
113      const homeTile = __spreadProps(__spreadValues({}, tile), {
114        isPinned: true
115      });
116      return homeTile;
117    });
118    patchState(store, {
119      pinned: [...homeTiles],
120      loading: false,
121      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADED })
122    });
123  }
124})), withMethods((store) => ({
125  updateUnpinnedOrder(homeTiles) {
126    homeTiles = homeTiles.map((tile) => {
127      const homeTile = __spreadProps(__spreadValues({}, tile), {
128        isPinned: false
129      });
130      return homeTile;
131    });
132    patchState(store, {
133      unpinned: [...homeTiles],
134      loading: false,
135      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADED })
136    });
137  }
138})), withMethods((store) => ({
139  pinItem: (item) => {
140    item.isPinned = true;
141    patchState(store, {
142      pinned: [...store.pinned(), item],
143      unpinned: store.unpinned().filter((t) => t.isPinned == false),
144      loading: false,
145      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADED })
146    });
147  }
148})), withMethods((store) => ({
149  unpinItem: (item) => {
150    item.isPinned = false;
151    patchState(store, {
152      unpinned: [...store.unpinned(), item],
153      pinned: store.pinned().filter((t) => t.isPinned == true),
154      loading: false,
155      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADED })
156    });
157  }
158})), withMethods((store) => ({
159  addToFavoriteTile: (favoriteInfo) => {
160    patchState(store, {
161      loading: true,
162      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADING })
163    });
164    const tileItem = {
165      id: "",
166      tileType: 2,
167      subjectMatter: HomePageTileSubjectMatter.FAVORITE,
168      itemPrefix: favoriteInfo.articleNumber,
169      description: favoriteInfo.articleHeading,
170      enabled: true
171    };
172    const tiles = store.tiles();
173    const favHomePageTileIndex = tiles.findIndex((item) => item.tileType == HomePageTileType.Favorite);
174    if (favHomePageTileIndex) {
175      tiles[favHomePageTileIndex].items[0].push(tileItem);
176    }
177    patchState(store, {
178      tiles,
179      loading: false,
180      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADED })
181    });
182  }
183})), withMethods((store) => ({
184  updateFavoritesTile: (favoriteInfo) => {
185    patchState(store, {
186      loading: true,
187      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADING })
188    });
189    const tileItems = favoriteInfo.map((info) => {
190      const tileItem = {
191        id: "",
192        tileType: 2,
193        subjectMatter: HomePageTileSubjectMatter.NONE,
194        itemPrefix: info.articleNumber,
195        description: info.articleHeading,
196        enabled: true
197      };
198      return tileItem;
199    });
200    let tiles = store.tiles();
201    const favHomePageTileIndex = tiles.findIndex((item) => item.tileType == HomePageTileType.Favorite);
202    if (favHomePageTileIndex !== -1) {
203      tiles = tiles.map((tile, index) => {
204        if (index === favHomePageTileIndex) {
205          tile.items[0] = tileItems;
206          return __spreadValues({}, tile);
207        }
208        return tile;
209      });
210    }
211    patchState(store, {
212      tiles,
213      loading: false,
214      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADED })
215    });
216  }
217})), withMethods((store, homeService = inject(HomeService)) => ({
218  loadHomeData: rxMethod(pipe(tap(() => patchState(store, { loading: true })), switchMap(() => {
219    return homeService.getHomeData().pipe(tapResponse({
220      next: (resp) => {
221        let homeTiles = [];
222        if (resp.success && resp.data) {
223          homeTiles = resp.data.tiles.map((tile) => {
224            const homeTile = __spreadProps(__spreadValues({}, tile), {
225              items: []
226            });
227            return homeTile;
228          });
229          const returnedTileItems = resp.data.cards.map((card) => {
230            const tileItem = __spreadProps(__spreadValues({}, card), {
231              id: "",
232              tileType: card.tileType,
233              changeType: card.changeType ?? WhatsNewChangeType.None,
234              enabled: card.changeType !== WhatsNewChangeType.Cancelled
235            });
236            return tileItem;
237          });
238          const groupedItems = {};
239          returnedTileItems.forEach((item) => {
240            if (item.tileSubType != null) {
241              if (!groupedItems[item.tileType]) {
242                groupedItems[item.tileType] = {};
243              }
244              if (!groupedItems[item.tileType][item.tileSubType]) {
245                groupedItems[item.tileType][item.tileSubType] = [];
246              }
247              groupedItems[item.tileType][item.tileSubType].push(item);
248            }
249          });
250          homeTiles.forEach((tile) => {
251            if ([HomePageTileType.Comment, HomePageTileType.Synonym].includes(tile.tileType)) {
252              const tileItems = returnedTileItems.filter((item) => item.tileType == tile.tileType);
253              tile.items = [tileItems];
254            } else {
255              const itemsByType = groupedItems[tile.tileType];
256              if (itemsByType) {
257                const itemArrays = Object.values(itemsByType);
258                tile.items = itemArrays;
259              }
260            }
261          });
262        }
263        const pinned = homeTiles.filter((tile) => tile.isPinned == true);
264        const unpinned = homeTiles.filter((tile) => tile.isPinned == false);
265        patchState(store, {
266          tiles: homeTiles,
267          pinned,
268          unpinned,
269          loading: false
270        });
271      },
272      error: (err) => {
273        patchState(store, {
274          tiles: [],
275          pinned: [],
276          unpinned: [],
277          loading: false
278        });
279        console.error(err);
280      }
281    }));
282  }))),
283  updateHomePageTiles: rxMethod(pipe(tap(() => {
284    patchState(store, {
285      loading: true,
286      status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADING })
287    });
288  }), switchMap(() => {
289    const pinnedTiles = store.pinned();
290    const unPinnedTiles = store.unpinned();
291    const allTiles = [...pinnedTiles, ...unPinnedTiles];
292    return homeService.setUserTiles(allTiles.map((_a) => {
293      var _b = _a, { items } = _b, tile = __objRest(_b, ["items"]);
294      return tile;
295    })).pipe(tapResponse({
296      next: (resp) => {
297        if (resp.success && resp.data) {
298          let homeTiles = resp.data.map((tile) => {
299            const matching = allTiles.find((t) => t.name === tile.name);
300            const homeTile = __spreadProps(__spreadValues({}, tile), {
301              items: matching ? matching.items : []
302            });
303            return homeTile;
304          });
305          const pinned = homeTiles.filter((tile) => tile.isPinned == true);
306          const unpinned = homeTiles.filter((tile) => tile.isPinned == false);
307          patchState(store, {
308            loading: false,
309            pinned,
310            unpinned,
311            status: __spreadProps(__spreadValues({}, store.status()), { updateHomePageStatus: ResponseStatus.LOADED })
312          });
313        }
314      },
315      error: (err) => {
316        patchState(store, initialState);
317        console.error(err);
318      }
319    }));
320  })))
321})));
322
323export {
324  HomePageTileType,
325  HomePageTileSubType,
326  HomePageTileSubjectMatter,
327  HomeStore
328};
329//# sourceMappingURL=chunk-OQNOEQ2S.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.