Index

src/app/books/books-data/reducers/books-cache.reducer.ts

adapter
Type : EntityAdapter<Book>
Default value : createEntityAdapter<Book>()
bookISBNs
Default value : seed.bookISBNs
booksCacheReducer
Default value : createReducer( initialState, // Books Actions on( booksActions.requestBooksHydrateSuccess, (state, { books }) => adapter.updateMany(books.map(book => ({id: book.id, changes: {...book}})), state) ), // Book Actions on( bookActions.bookSelected, (state, { bookId }) => ({...state, activeBookId: bookId}) ), on( bookActions.clearBookSelected, state => ({...state, activeBookId: -1}) ) )
initialState
Type : State
Default value : { activeBookId: -1, // no book selected ids: bookISBNs.map((isbn, index) => index + 1), entities: bookISBNs.reduce((entities, isbn, index) => ({ ...entities, [index+1]: { id: index+1, isbn } }), {}) }

src/app/cart/cart-data/actions/cart.actions.ts

addBookToCart
Default value : createAction( '[Cart] Added Book to Cart', props<{bookId: number}>() )
alreadyHaveBookInCartError
Default value : createAction( '[Cart] Attempt to Add Book Error: Already In Cart' )
attemptToAddBookToCart
Default value : createAction( '[Cart] Attempt to Add Book To Cart', props<{bookId: number}>() )
cantAddAnyMoreBooksInCartError
Default value : createAction( '[Cart] Attempt to Add Book Error: At Maxium Number of Books being Checked Out' )
clearCart
Default value : createAction( '[Cart] Removed all Books from Cart' )
removeBookFromCart
Default value : createAction( '[Cart] Removed Book from Cart', props<{bookId: number}>() )

src/app/cart/cart-data/actions/cart-icon.actions.ts

animateLayoutHeaderShoppingCartIcon
Default value : createAction( '[Cart-Icon] Animation ON', )
animateOffLayoutHeaderShoppingCartIcon
Default value : createAction( '[Cart-Icon] Animation OFF' )
hideCartIconDropDown
Default value : createAction( '[Cart-Icon] Hide Drop-Down' )
showCartIconDropDown
Default value : createAction( '[Cart-Icon] Show Drop-Down' )
toggleCartIconDropDown
Default value : createAction( '[Cart-Icon] Toggle Drop-Down' )

src/app/cart/cart-components/components/shopping-cart/ui/shopping-cart-ui.component.stories.ts

book1
Type : object
Default value : { id: 1, title: 'Book1', cover: { small: 'https://placekitten.com/125/120' }, authors: [ { name: 'Book1 Author' } ] }
book2
Type : object
Default value : { id: 2, title: 'Book2', cover: { small: 'https://placekitten.com/126/120' }, authors: [ { name: 'Book2 Author' } ] }
book3
Type : object
Default value : { id: 3, title: 'Book3', cover: { small: 'https://placekitten.com/128/120' }, authors: [ { name: 'Book3 Author' } ] }
onClickRemove
Default value : action('Remove Cart Item Click')
template
Default value : ` <div style="padding-top: 40px;"> <shopping-cart-ui [books]="books" [ui]="ui" (onClickRemove)="onClickRemove()" style="display: block;max-width: 350px; margin: 0 auto;"></shopping-cart-ui> </div> `

src/app/books/books-components/components/books/ui/books-ui.component.stories.ts

book1
Type : object
Default value : { id: 1, cover: { medium: 'https://placekitten.com/250/400' } }
book2
Type : object
Default value : { id: 2, cover: { medium: 'https://placekitten.com/250/405' } }
book3
Type : object
Default value : { id: 3, cover: { medium: 'https://placekitten.com/250/410' } }
template
Default value : `<books-ui [books]="books" style="display:block; width:100%; height:100%;"></books-ui>`

src/app/book/book-components/components/book/ui/book-ui.component.stories.ts

bookClicked
Default value : action('Book Clicked')
template
Default value : `<book-ui [book]="book" (onSelect)="bookClicked()" style="max-width: 175px;margin: 0 auto;display:block;"></book-ui>`

src/app/book/book-data/actions/book.actions.ts

bookSelected
Default value : createAction( '[Book] Book Selected', props<{ bookId: number }>() )
clearBookSelected
Default value : createAction( '[Book] Selected Book Cleared' )
selectedBookAddToCartBtnClick
Default value : createAction( '[Book] Selected Book\'s "Add to Basket" Button Click' )

src/app/core/services/local-storage.service.ts

BROWSER_STORAGE
Default value : new InjectionToken<Storage>('Browser Storage', { providedIn: 'root', factory: () => localStorage })
localStorageAppStateKey
Type : string
Default value : 'APP-STATE'

src/app/cart/cart-data/reducers/cart-icon.reducer.ts

cartIconReducer
Default value : createReducer( initialState, on( cartIconActions.animateLayoutHeaderShoppingCartIcon, state => ({...state, animating: true}) ), on( cartIconActions.animateOffLayoutHeaderShoppingCartIcon, state => ({...state, animating: false}) ), on( cartIconActions.showCartIconDropDown, state => ({...state, dropDownIsVisible: true}) ), on( cartIconActions.hideCartIconDropDown, state => ({...state, dropDownIsVisible: false}) ) )
initialState
Type : State
Default value : { animating: false, dropDownIsVisible: false }

src/app/cart/cart-data/reducers/cart-status.reducer.ts

cartStatusReducer
Default value : createReducer( initialState, on( cartActions.addBookToCart, (state, { bookId }) => ({...state, bookIds: [...state.bookIds, bookId]}) ), on( cartActions.removeBookFromCart, (state, { bookId }) => ({...state, bookIds: state.bookIds.filter(id => id !== bookId)}) ), on( cartActions.clearCart, state => ({...state, bookIds: []}) ) )
initialState
Type : State
Default value : { bookIds: [] }

src/app/checkout/checkout-data/actions/checkout.actions.ts

checkoutClearUserInfo
Default value : createAction( '[Checkout] Clear Request User Info' )
checkoutComplete
Default value : createAction( '[Checkout] Complete' )
checkoutSubmit
Default value : createAction( '[Checkout] Submit Request' )
checkoutSubmitError
Default value : createAction( '[Checkout] Submit Request Error' )
checkoutSubmitSuccess
Default value : createAction( '[Checkout] Submit Request Success' )
checkoutUpdateUserInfo
Default value : createAction( '[Checkout] Update Request User Info', props<{user: Partial<User>}>() )

src/app/checkout/checkout-data/reducers/checkout-request.reducer.ts

checkoutRequestReducer
Default value : createReducer( initialState, on( checkoutActions.checkoutUpdateUserInfo, (state, { user }) => ({...state, user: {...user}}) ), on( checkoutActions.checkoutClearUserInfo, state => ({...state, user: null}) ) )
initialState
Type : State
Default value : { user: null }

src/app/shared/dynamic-form/dynamic-form-input-components.ts

DynamicFormInputComponentsMap
Type : object
Default value : { text: FormInputTextComponent, submit: FormButtonSubmitComponent }

src/environments/environment.ts

environment
Type : object
Default value : { production: false }

src/environments/environment.prod.ts

environment
Type : object
Default value : { production: true }

src/app/books/books-data/selectors/books-cache.selectors.ts

Default value : adapter.getSelectors(selectBooksCache)
selectActiveBookId
Default value : createSelector( selectBooksCache, (state: BooksCacheState) => state.activeBookId )
selectAllCacheBooks
Default value : selectAll
selectBooksCache
Default value : createSelector( selectBooks, (state: BooksState) => state.cache )
selectBooksCacheEntities
Default value : selectEntities
selectBooksCacheIds
Default value : selectIds
selectBooksCacheTotal
Default value : selectTotal

src/app/cart/cart-data/effects/cart.effects.ts

maximumNumberOfBooksAUserCanCheckOut
Type : number
Default value : 4

src/app/core/reducers/meta.reducers.ts

metaReducersFactory
Default value : (storageService: LocalStorageService): MetaReducer<RootState>[] => [actionStatesLogger, syncStateWithLocalStorageMetaReducer(['books', 'cart', 'checkout'], storageService)]

src/app/book/book-components/components/selected-book/ui/selected-book-ui.component.stories.ts

onAddToBasket
Default value : action('Book Added to Basket')
template
Default value : `<selected-book-ui [selectedBook]="book" (onAddToBasket)="onAddToBasket()" style="max-width: 250px;margin: 0 auto;display:block;"></selected-book-ui>`

src/app/cart/cart-components/components/shopping-cart-icon/ui/shopping-cart-icon-ui.component.stories.ts

onIconClick
Default value : action('Icon Click')
template
Default value : ` <div style="padding-top: 40px;"> <shopping-cart-icon-ui [animating]="animating" [cartItemsCount]="cartItemsCount" (onIconClick)="onIconClick()" style="max-width: 175px;margin: 0 auto;display:block;"></shopping-cart-icon-ui> </div> `

src/app/checkout/checkout-components/components/checkout-submit-button/ui/checkout-submit-button-ui.component.stories.ts

onSubmit
Default value : action('Submit Button Click')
template
Default value : ` <div style="padding-top: 40px; text-align: center;"> <checkout-submit-button-ui [isDisabled]="isDisabled" [fontColor]="fontColor" (onSubmit)="onSubmit()" style="display:inline-block;"></checkout-submit-button-ui> </div> `

src/app/core/reducers/root.reducers.ts

reducers
Type : ActionReducerMap<RootState>
Default value : { router: routerReducer }
selectRouter
Default value : createFeatureSelector('router')

src/app/cart/cart-data/reducers/cart.reducers.ts

reducers
Type : object
Default value : { status: fromCartStatus.reducer, icon: fromCartIcon.reducer }

src/app/books/books-data/reducers/books.reducers.ts

reducers
Type : object
Default value : { cache: fromBooksCache.reducer }

src/app/checkout/checkout-data/reducers/checkout.reducers.ts

reducers
Type : object
Default value : { request: fromCheckoutRequest.reducer }

src/app/books/books-data/actions/books.actions.ts

requestBooksHydrate
Default value : createAction( '[Books] Request to Hydrate Books' )
requestBooksHydrateError
Default value : createAction( '[Books] Request to Hydrate Books Error' )
requestBooksHydrateSuccess
Default value : createAction( '[Books] Request to Hydrate Books Success', props<{ books: Book[] }>() )

src/app/books/books-data/selectors/books.selector.ts

selectBooks
Default value : createFeatureSelector<BooksState>('books')

src/app/cart/cart-data/selectors/cart.selector.ts

selectCart
Default value : createFeatureSelector<CartState>('cart')

src/app/cart/cart-data/selectors/cart-icon.selectors.ts

selectCartIcon
Default value : createSelector( selectCart, (state: CartState) => state.icon )
selectCartIconAnimatingStatus
Default value : createSelector( selectCartIcon, (cartIconState: CartIconState) => cartIconState.animating )
selectCartIconDropDownIsVisible
Default value : createSelector( selectCartIcon, (cartIconState: CartIconState) => cartIconState.dropDownIsVisible )

src/app/cart/cart-data/selectors/cart-status.selectors.ts

selectCartStatus
Default value : createSelector( selectCart, (state: CartState) => state.status )
selectCartStatusBookIds
Default value : createSelector( selectCartStatus, (cartStatus: CartStatusState) => cartStatus.bookIds )
selectCartStatusBooksCount
Default value : createSelector( selectCartStatusBookIds, (bookIds: number[]) => bookIds.length )

src/app/checkout/checkout-data/selectors/checkout.selector.ts

selectCheckout
Default value : createFeatureSelector<CheckoutState>('checkout')

src/app/checkout/checkout-data/selectors/checkout-request.selectors.ts

selectCheckoutRequest
Default value : createSelector( selectCheckout, (state: CheckoutState) => state.request )
selectCheckoutRequestUser
Default value : createSelector( selectCheckoutRequest, (cartStatus: CheckoutRequestState) => cartStatus.user )

src/app/core/reducers/sync-state-with-local-storage.meta-reducer.ts

syncStateWithLocalStorageMetaReducer
Default value : <S, A extends Action = Action>(stateFeatureKeys: string[], storageService: LocalStorageService) => { let hasInitLocalStore = false return (reducer: ActionReducer<S, A>) => { return (state: S, action: A): S => { const nextState = reducer(state, action) if (!hasInitLocalStore) { hasInitLocalStore = true const savedState = storageService.getState() return merge(nextState, savedState) } const stateToStore = pick(nextState, stateFeatureKeys) storageService.storeState(stateToStore) return nextState } } }

result-matching ""

    No results matching ""