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.