| 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
)
|