adapter |
Type : EntityAdapter<Book>
|
Default value : createEntityAdapter<Book>()
|
bookISBNs |
Default value : seed.bookISBNs
|
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
}
}), {})
}
|
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}>()
)
|
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'
)
|
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')
|
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>`
|
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>`
|
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'
)
|
BROWSER_STORAGE |
Default value : new InjectionToken<Storage>('Browser Storage', {
providedIn: 'root',
factory: () => localStorage
})
|
localStorageAppStateKey |
Type : string
|
Default value : 'APP-STATE'
|
initialState |
Type : State
|
Default value : {
animating: false,
dropDownIsVisible: false
}
|
initialState |
Type : State
|
Default value : {
bookIds: []
}
|
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>}>()
)
|
initialState |
Type : State
|
Default value : {
user: null
}
|
DynamicFormInputComponentsMap |
Type : object
|
Default value : {
text: FormInputTextComponent,
submit: FormButtonSubmitComponent
}
|
environment |
Type : object
|
Default value : {
production: false
}
|
environment |
Type : object
|
Default value : {
production: true
}
|
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
|
maximumNumberOfBooksAUserCanCheckOut |
Type : number
|
Default value : 4
|
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>`
|
onIconClick |
Default value : action('Icon Click')
|
onSubmit |
Default value : action('Submit Button Click')
|
reducers |
Type : ActionReducerMap<RootState>
|
Default value : {
router: routerReducer
}
|
selectRouter |
Default value : createFeatureSelector('router')
|
reducers |
Type : object
|
Default value : {
status: fromCartStatus.reducer,
icon: fromCartIcon.reducer
}
|
reducers |
Type : object
|
Default value : {
cache: fromBooksCache.reducer
}
|
reducers |
Type : object
|
Default value : {
request: fromCheckoutRequest.reducer
}
|
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[] }>()
)
|
selectBooks |
Default value : createFeatureSelector<BooksState>('books')
|
selectCart |
Default value : createFeatureSelector<CartState>('cart')
|
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
)
|
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
)
|
selectCheckout |
Default value : createFeatureSelector<CheckoutState>('checkout')
|
selectCheckoutRequest |
Default value : createSelector(
selectCheckout,
(state: CheckoutState) => state.request
)
|
selectCheckoutRequestUser |
Default value : createSelector(
selectCheckoutRequest,
(cartStatus: CheckoutRequestState) => cartStatus.user
)
|